µÚÒ»·¶ÎÄÍø - רҵÎÄÕ·¶ÀýÎĵµ×ÊÁÏ·ÖÏíÆ½Ì¨

µÚÈý½² - GEANT4³ÌÐò½á¹¹¼°»ù±¾Àà

À´Ô´£ºÓû§·ÖÏí ʱ¼ä£º2026/7/31 8:00:56 ±¾ÎÄÓÉloading ·ÖÏí ÏÂÔØÕâÆªÎĵµÊÖ»ú°æ
˵Ã÷£ºÎÄÕÂÄÚÈݽö¹©Ô¤ÀÀ£¬²¿·ÖÄÚÈÝ¿ÉÄܲ»È«£¬ÐèÒªÍêÕûÎĵµ»òÕßÐèÒª¸´ÖÆÄÚÈÝ£¬ÇëÏÂÔØwordºóʹÓá£ÏÂÔØwordÓÐÎÊÌâÇëÌí¼Ó΢ÐźÅ:xxxxxxx»òQQ£ºxxxxxx ´¦Àí£¨¾¡¿ÉÄܸøÄúÌṩÍêÕûÎĵµ£©£¬¸ÐлÄúµÄÖ§³ÖÓëÁ½⡣

ÓÐÁËC++µÄ»ù´¡ÖªÊ¶ÎÒÃǾÍÄܹ»ºÜºÃµØÀí½âG4µÄ³ÌÐò½á¹¹ÁË¡£

G4ÊDzÉÓõÄgcc±àÒëÆ÷£¬Òò´ËÆä³ÌÐò½á¹¹ÊǺÍC++Ò»ÑùµÄ¡£

Ê×ÏȰüÀ¨ÓÐÒ»¸öÖ÷³ÌÐòmain£¬È»ºó·Ö±ð°üº¬ÓÐ×Ó³ÌÐòsrcºÍÍ·Îļþinclude ÒÔ¼°ÆäËûµ÷ÓÃÎļþothers

G4ÀïÃæÎªÁËÓëC++ÏàÇø±ð£¬³ÌÐòºó׺¶¼ÊÇ.cc£¬Í·Îļþºó׺¶¼ÊÇ.hh

ÆäÖÐÍ·ÎļþÔÚ.ccÀïÃæÐ´Ò²Ã»ÎÊÌ⣬µ«ÊÇÄÇÑù¿´ÆðÀ´²»·½±ã£¬½¨Ò黹Êǰ´ÕÕc++µÄϰ¹ßÒ»Ò»¶ÔÓ¦±È½ÏºÃ¡£

ÄÇô£¬¹Ø¼üÎÊÌâÊÇÒª½øÐÐÒ»¸öÄ£ÄâÎÒÃǶ¼ÐèҪдÄÄЩsrcºÍincludeµÄ£¿

ÏÂÃæÎÒÃÇÊ×ÏÈ¿´G4ÀïÃæµÄ¼¸¸ö»ù±¾À࣬ÕâЩ»ù±¾Àà»ù±¾ÉÏÊÇÓësrcÒ»Ò»¶ÔÓ¦µÄ¡£

G4RunManager¡ª¡ª¶ÔÓ¦Ö÷³ÌÐò

Õâ¸öÀàÔÚÖ÷³ÌÐòÖÐÓÃÒÔ³õʼ»¯Ä£ÄâÐÅÏ¢µÄ£¬»òÕßÐÎÏóµØËµÊÇÓÃÓÚÁ¬½Ó×Ó³ÌÐòµÄ£¬ ¶øÁ¬½Ó·½Ê½ÊÇͨ¹ýSetº¯ÊýÀ´Íê³ÉµÄ

´ó¼Ò¿ÉÒÔ´Ó$G4INSTALL/source/run/G4RunManager.hhÀïÃæ²é¿´¸÷ÖÖSetº¯Êý£¬Èç public: // with description

inline void SetUserInitialization(G4VUserDetectorConstruction* userInit) { userDetector = userInit; }

inline void SetUserInitialization(G4VUserPhysicsList* userInit) {

physicsList = userInit;

kernel->SetPhysics(userInit); }

¿ÉÒÔ˵G4RunManagerÀàÊǹᴩÕû¸ö³ÌÐòÄ£Äâ¹ý³ÌµÄ×ÜÏߣ¬Òò´ËÒ»°ã˵À´Ö»ÄÜÓÐÒ»¸ö ¶ø¿ªÊ¼Ò»´ÎRunµÄÐźÅÔòÊÇͨ¹ýBeamOnº¯Êý·¢³öµÄ£¬Æä¸ñʽÊÇ

virtual void BeamOn(G4int n_event,const char* macroFile=0,G4int n_select=-1); ¿ÉÒÔͨ¹ý¶à´Îµ÷ÓÃBeamOnÀ´ÊµÏÖÑ­»·¼ÆËã¡£

ÆäÓà×ÓÀà°üÀ¨¼¸ºÎ½á¹¹Àà¡¢ÎïÀíÉ趨Àà¡¢Á£×Ó·¢ÉäÆ÷ÀࣨԴÃèÊöÀࣩ¡¢Ê¼þ´¦ÀíÀà¡¢¾¶¼£´¦ÀíÀàµÈ¡£

ÕâЩÀà¿ÉÒÔ°´ÕÕÁ½ÖÖ²»Í¬µÄ·ÖÀ෽ʽ·ÖÀ࣬ÿÖÖ·ÖÀ෽ʽ¶¼¿ÉÒÔ·ÖΪÁ½Àà¡£

×ÓÀà°´ÕÕÖØÒªÐÔ·ÖÎªÇ¿ÖÆÀàºÍ¿ÉÑ¡Àà¡£ ÆäÖм¸ºÎ½á¹¹ÀࣨDetectorConstruction£©¡¢ÎïÀíÉ趨ÀࣨPhysicsList£©¡¢

Ô´ÃèÊöÀࣨPrimaryGenerator£©¶¼ÊôÓÚÇ¿ÖÆÀ࣬ÊDZØÐëÓеģ¬È±ÉÙÈÎÒ»¸ö³ÌÐò¶¼ÎÞ·¨ÔËÐС£ ¶øÊ¼þ´¦ÀíÀࣨEventAction£©¡¢²½Êý¾Ý´¦ÀíÀࣨSteppingAction£©¡¢¾¶¼£´¦ÀíÀࣨTrackingAction£©¡¢ÔËÐд¦ÀíÀࣨRunAction£©

¶¼ÊôÓÚ¿ÉÑ¡À࣬Óû§¿ÉÒÔͨ¹ýÉ趨ÕâЩÀàÀ´»ñÈ¡¸ÐÐËȤµÄÐÅÏ¢£¬ËäȻûÓÐÕâЩÀà³ÌÐòÒ»Ñù¿ÉÒÔÔËÐУ¬µ«ÊÇÈç¹ûÒ»¸ö¶¼Ã»Óеϰ£¬

ÕâÑùµÄÄ£ÄâÊÇûÓÐÒâÒåµÄ£¬³ý·ÇÊÇÓÃÀ´¼ìÑ鼸ºÎ½á¹¹µÄÍ걸ÐÔ¡£

×ÓÀà°´ÕÕµ÷Óùý³Ì·ÖΪ³õʼ»¯ÀàºÍÓû§¸ÉÉæÀà ÆäÖм¸ºÎ½á¹¹ÀࣨDetectorConstruction£©¡¢ÎïÀíÉ趨ÀࣨPhysicsList£©ÊôÓÚ³õʼ»¯À࣬ ÕâÁ½¸öÀàÔÚÿ´ÎRun¿ªÊ¼ºó¾Í¶ÔÄ£Äâ¹ý³Ì½øÐгõʼ»¯£¬Ö®ºóÔÚÁ£×Ó·¢É俪ʼºó£¨BeamOn

¿ªÊ¼ºó£©¾Í²»ÔÙ¼ÌÐøµ÷ÓÃÁË¡£

¶øÆäÓàµÄÀàÔòÊÇÔÚÿ·¢ÉäÒ»¸öÁ£×Óºó¶¼ÐèÒªµ÷Óõ쬾ßÌåµ÷Óùý³ÌÇ븴ϰµÚ¶þ½²ÖеÄÄ£ÄâËã·¨¡£

ÏÂÃæ½²Ò»¸öÌØÊâµÄÀà¡£

G4UImanager¡ª¡ªUI£¨user interface£©¹ÜÀíÆ÷

Õâ¸öÀàµÄÓ¢ÎÄÈ«ÃûÊÇuser interface manager£¬¹ËÃû˼ÒåÊÇÓÃÓÚÈË»ú½»»¥µÄ£¬Óû§¿ÉÒÔͨ¹ýÕâ¸öÀàÀ´ÏòÄ£Äâ¹ý³Ì·¢³ö¡°ÃüÁ£¬

Õâ¸öÀàÔÚÒ»¶¨³Ì¶ÈÉÏʹÓúܼò½àµÄÃüÁîÓï¾ä´úÌæÁËÉÏÊöÓû§¸ÉÉæÀàµÄ¹¦ÄÜ¡£

ÐèҪ˵Ã÷µÄÊÇ£¬ÉÏÃæËù˵µÄ¼¸¸öÀಢûÓаüÀ¨ËùÓпÉÑ¡À࣬¸ù¾Ýÿ¸öÓû§µÄÐèÇó£¬Óû§¿ÉÒÔÓкܶàÆäËûÀà¡£

ÏÂÃæÒÔ$G4INSTALL/example/novice/N01µÄÀý×ÓΪÀý¿´Ò»ÏÂÕâЩÀ࣬

ÒòΪÕâ¸öÁ£×Ó½öΪÁË˵Ã÷Geant4µÄ»ù±¾ÔËÓã¬ËùÒÔÕâ¸öÀý×ÓÀïÃæÖ»¶¨ÒåÁË3¸öÇ¿ÖÆÀ࣬ûÓÐʹÓÿÉÑ¡ÀàÀ´Êä³ö¸ÐÐËȤµÄÐÅÏ¢¡£

µ«ÊÇͨ¹ýUI¹ÜÀíÆ÷²é¿´ÁËÁ£×ÓÊäÔ˹ý³ÌÖеÄһЩÐÅÏ¢¡£

// Construct the default run manager

//Ê×ÏÈÊÇÒª´´½¨Ò»¸öÔËÐйÜÀíÆ÷µÄʵÀý£¬¸ù¾ÝC++µÄ֪ʶÎÒÃÇÖªµÀÿ¸öÀà¶¼±ØÐëͨ¹ýËûµÄʵÀýÀ´½øÐвÙ×÷

G4RunManager* runManager = new G4RunManager;

// set mandatory initialization classes

//ͨ¹ýSetº¯ÊýÉèÖü¸ºÎ½á¹¹ºÍÎïÀí¹ý³Ì£¬ÕâÁ½¸öÀàÊôÓÚÇ¿ÖÆÀ࣬ҲÊôÓÚ³õʼ»¯Àà G4VUserDetectorConstruction* detector = new ExN01DetectorConstruction; runManager->SetUserInitialization(detector);

//

G4VUserPhysicsList* physics = new ExN01PhysicsList; runManager->SetUserInitialization(physics);

// set mandatory user action class

//ͨ¹ýSetº¯Êý½øÐÐÔ´ÃèÊö£¬Õâ¸öÀàÊôÓÚÇ¿ÖÆÀ࣬ҲÊôÓÚÓû§¸ÉÉæÀà

G4VUserPrimaryGeneratorAction* gen_action = new ExN01PrimaryGeneratorAction; runManager->SetUserAction(gen_action);

// Initialize G4 kernel

//SetÍê³Éºó£¬Í¨¹ýInitialize()º¯Êý³õʼ»¯G4ÄÚºË runManager->Initialize();

// Get the pointer to the UI manager and set verbosities

//´´½¨UI¹ÜÀíÆ÷£¬Í¨¹ýUI¹ÜÀíÆ÷ÉèÖÃÔËÐС¢Ê¼þ¡¢¾¶¼£µÄ¿ÉÊÓ»¯¾«Ï¸³Ì¶È¡£ G4UImanager* UI = G4UImanager::GetUIpointer(); UI->ApplyCommand(\ UI->ApplyCommand(\

UI->ApplyCommand(\

// Start a run

//ͨ¹ýBeamOn()º¯Êý¿ªÊ¼Ä£Ä⣬ÕâÀïmacroFileºÍn_Select¶¼ÊÇʹÓÃÁËĬÈÏÖµ G4int numberOfEvent = 3;

runManager->BeamOn(numberOfEvent);

ËÑË÷¸ü¶à¹ØÓÚ£º µÚÈý½² - GEANT4³ÌÐò½á¹¹¼°»ù±¾Àà µÄÎĵµ
µÚÈý½² - GEANT4³ÌÐò½á¹¹¼°»ù±¾Àà.doc ½«±¾ÎĵÄWordÎĵµÏÂÔØµ½µçÄÔ£¬·½±ã¸´ÖÆ¡¢±à¼­¡¢ÊղغʹòÓ¡
±¾ÎÄÁ´½Ó£ºhttps://www.diyifanwen.net/c7g5ch9gly49sc9l3qcye_1.html£¨×ªÔØÇë×¢Ã÷ÎÄÕÂÀ´Ô´£©
ÈÈÃÅÍÆ¼ö
Copyright © 2012-2023 µÚÒ»·¶ÎÄÍø °æÈ¨ËùÓÐ ÃâÔðÉùÃ÷ | ÁªÏµÎÒÃÇ
ÉùÃ÷ :±¾ÍøÕ¾×ðÖØ²¢±£»¤ÖªÊ¶²úȨ£¬¸ù¾Ý¡¶ÐÅÏ¢ÍøÂç´«²¥È¨±£»¤ÌõÀý¡·£¬Èç¹ûÎÒÃÇ×ªÔØµÄ×÷Æ·ÇÖ·¸ÁËÄúµÄȨÀû,ÇëÔÚÒ»¸öÔÂÄÚ֪ͨÎÒÃÇ£¬ÎÒÃǻἰʱɾ³ý¡£
¿Í·þQQ£ºxxxxxx ÓÊÏ䣺xxxxxx@qq.com
ÓåICP±¸2023013149ºÅ
Top