·¢²¼Ê±¼ä : ÐÇÆÚÒ» ÎÄÕÂGeant4ÈëÃÅÖ¸µ¼Óë°²×°¸üÐÂÍê±Ï¿ªÊ¼ÔĶÁ
ÄÚ²¿×ÊÁÏ Geant4°²×°ºÍÈëÃÅ runManager->Initialize();
// get the pointer to the UI manager and set verbosities G4UImanager* UI = G4UImanager::GetUIpointer(); UI->ApplyCommand(\ UI->ApplyCommand(\ UI->ApplyCommand(\ // start a run
int numberOfEvent = 3;
runManager->BeamOn(numberOfEvent); // job termination delete runManager; return 0; }
////////////////////////////////////////////////////////////////////////////////////
3. ¶¨Òå̽²âÆ÷¼¸ºÎÐÎ×´ 1) »ù±¾¸ÅÄî
Geant4ÖÐ̽²âÆ÷ÓдóÁ¿µÄ¼¸ºÎ¿é×é³É, ÆäÖÐ×î´óµÄ¼¸ºÎ¿é±»³ÆΪ\volume\Ëü°üº¬ÁËÆäËûËùÓеļ¸ºÎ¿é, ºó¶¨ÒåµÄ¼¸ºÎ¿é±»·ÅÖÃÔÚÇ°ÃæµÄ¼¸ºÎ¿éÖÐ.
¶¨Òåijһ¸ö¼¸ºÎ¿éʱ, ±ØÐëÌṩËüµÄÐÎ×´ºÍÎïÀíÌØÕ÷, ÒÔ¼°Ëù´¦µÄλÖÃ. µ±Ò»¸ö¼¸ºÎ¿é±»·ÅÖÃÔÚÁíÒ»¸ö¼¸ºÎ¿éÖÐʱ, Ç°Õß±»³ÆΪ\volume\, ºóÕß±»³ÆΪ\volume\¸ù¾Ý\volume\À´È·¶¨\volume\µÄλÖÃ. ÃèÊö¼¸ºÎ¿éÐÎ״ʱ, ±ØÐë¸ø³ö¾ßÌåµÄÊýÖµ, Èç:±ß³¤Îª10cmµÄÁ¢·½ÌåºÍ°ë¾¶Îª30cm, ³¤75cmµÄÔ²ÖùÌå.
2) ¶¨ÒåÒ»¸ö¼òµ¥µÄ¼¸ºÎ¿é i) Ñ¡ÔñÒ»¸öÐÎ×´
¶¨ÒåÒ»¸ö¼òµ¥µÄ³¤·½Ìå, Óû§Ö÷Òª¸ø³öËüµÄÃû×ÖºÍÈý¸öÖáÏòµÄ³¤¶È. ÈçÏÂ: //////////////////////////////////////////////////////////////////////////////////// G4double expHall_x=3.0*m; G4double expHall_y=1.0*m; G4double expHall_z=1.0*m;
G4Box* experimentalHall_box
= new G4Box(\
9 Geant4°²×°ºÍÈëÃÅ ÄÚ²¿×ÊÁÏ ////////////////////////////////////////////////////////////////////////////////////
ÉÏÃæÕâÒ»¶Î´úÂë¾Í¶¨ÒåÁËÒ»¸öÃûΪ\µÄ³¤·½Ìå, XÖá·½Ïò´Ó-3*m~3*m, YÖá´Ó-1*m~1*m, ZÖá´Ó-1*m~1*m.
¶¨ÒåÒ»¸öÔ²ÖùÌåÒ²ºÜ¼òµ¥, ÐèÒªG4TubsÀà. //////////////////////////////////////////////////////////////////////////////////// G4double innerRadiusOfTheTube=0*cm; G4double outerRadiusOfTheTube=60*cm; G4double halfhightOfTheTube=25*cm; G4double startAngleOfTheTube=0*deg; G4double spanningAngleOfTheTube=360*deg;
G4Tubs* tracker_tube
= new G4Tubs(\ innerRadiusOfTheTube, outerRadiusOfTheTube, halfhightOfTheTube, startAngleOfTheTube, spanningAngleOfTheTube); ////////////////////////////////////////////////////////////////////////////////////
ÉÏÃæÕâ¶Î´úÂë¾Í¶¨ÒåÁËÒ»¸öÃûΪ\°ë¾¶Îª60*cm, ³¤Îª50*cmµÄÔ²ÖùÌå. ii) ´´½¨Ò»¸öÂß¼¿é
ÔÚ´´½¨Ò»¸öÂß¼¿é֮ǰ, Ê×ÏÈÐèÒª¶¨ÒåÐÎ×´ºÍ²ÄÁÏ. ÈçÉÏÃæËù¶¨ÒåµÄ³¤·½Ìå, ²ÄÁÏΪë²Æø, ËüµÄÂß¼¿é¶¨ÒåΪ:
G4LogicalVolume* experimentalHall_log
= new G4LogicalVolume(experimentHall_box, Ar, \Õâ¸öÂß¼¿éµÄÃû×ÖΪ\
ÉÏÃæËù¶¨ÒåµÄÔ²ÖùÌå, ²ÄÁÏΪÂÁ, ËüµÄÂß¼¿éΪ: G4LogicalVolume* tracker_log
= new G4LogicalVolume(tracker_tube, Al, \¸ÃÂß¼¿éÃûΪ\ iii) ´´½¨Ò»¸öÎïÀí¿é
Óû§´´½¨Ò»¸öÎïÀí¿éÀ´È·¶¨Ëù¶¨ÒåµÄ¼¸ºÎ¿éµÄλÖÃ. ÈçÏÂ: //////////////////////////////////////////////////////////////////////////////////// G4double trackerPos_x = -1*m; G4double trackerPos_y = 0*m; G4double trackerPos_z = 0*m;
G4VPhysicalVolume* tracker_phys
10 ÄÚ²¿×ÊÁÏ Geant4°²×°ºÍÈëÃÅ = new G4PVPlacement(0, //ÎÞÐýת
G4ThreeVector(trackerPos_x,trackerPos_y,trackerPos_z), //ÖÐÐÄλÖÃ×ø±ê tracker_log, //Âß¼¿é \ //Ãû×Ö
experimentalHall_log, //\Âß¼¿é) false, //no boolean operation 0); //¸´ÖÆÊý ////////////////////////////////////////////////////////////////////////////////////
¶ÔÓÚ\volume\À´Ëµ, ËüÊÇ×î´óµÄ¼¸ºÎ¿é, ²»¿ÉÄܱ»ÆäËû¼¸ºÎ¿éËù°üº¬, ¾ÍÐèÒªÓÃG4PVPlacementÀ´´´½¨Ò»¸öÎÞ\volume\µÄÎïÀí¿é, Ëü±ØÐëÊÇÎÞÐýתµÄ, ¶øÇÒÖÐÐÄÔÚÕû¸ö×ø±êϵµÄÔµã. ÈçÏÂ:
//////////////////////////////////////////////////////////////////////////////////// G4VPhysicalVolume* experimentallHall_phys = new G4PVPlacement(0,
G4ThreeVector(0,0,0), experimentalHall_log, \ 0, false, 0);
////////////////////////////////////////////////////////////////////////////////////
4. ¶¨Òå²ÄÁÏ 1) »ù±¾¸ÅÄî
×ÔÈ»½çÖÐ, ²ÄÁÏ(»¯ºÏÎï, »ìºÏÎï)Ò»°ãÊÇÓÉÔªËØ×é³É, ¶øÔªËØÓÉͬλËØ×é³É. Geant4ÖÐÓÐÈý¸öÀàÓÃÀ´¶¨Òå̽²âÆ÷²ÄÁϵÄ.
ÀàG4ElementÃèÊöÁËÔ×ÓÊôÐÔ:Ô×ÓÁ¿, Ô×ÓºËÖÐÖÊ×ÓÊý, Ô×ÓÖÊÁ¿, ¿Ç²ãÄÜÁ¿, »¹ÓÐÿ¸öÔ×ÓµÄÉ¢Éä½ØÃæµÈ.
ÀàG4MaterialÃèÊöÁ˲ÄÁϵĺê¹ÛÊôÐÔ:ÃܶÈ, ״̬, ζÈ, ѹǿ, »¹ÓзøÉ䳤¶È, ƽ¾ù×ÔÓɳÌ, dE/dxµÈ.
2) ¶¨Òåµ¥ÖʲÄÁÏ
ÈçÏÂÀý, ¸ø³ö²ÄÁÏÃû³Æ, ÃܶÈ, Ħ¶ûÖÊÁ¿ºÍÔ×ÓÁ¿, ¶¨ÒåÁËҺ̬ë². //////////////////////////////////////////////////////////////////////////////////// G4double density = 1.390*g/cm3; G4double a = 39.95*g/mole;
G4Material* lAr = new G4Material(name=\
11 Geant4°²×°ºÍÈëÃÅ ÄÚ²¿×ÊÁÏ //////////////////////////////////////////////////////////////////////////////////// Õâ¾Í¿ÉÒÔÓÃÀ´È·¶¨Ëù¶¨ÒåµÄÂß¼¿éµÄ²ÄÁÏ:
G4LogicalVolume* myLbox = new G4LogicalVolume(abox, lAr, \
3) ¶¨Ò廯ºÏÎï ÈçÀý, ¶¨ÒåË®(H2O):
//////////////////////////////////////////////////////////////////////////////////// a = 1.01*g/mole;
G4Element* elH = new G4Element(name=\
a = 16.00*g/mole;
G4Element* elO = new G4Element(\
density=1.0*g/cm3;
G4Material* H2O = new G4Material(\ H2O->AddElement(elH, natoms=2); H2O->AddElement(elO, natoms=1);
////////////////////////////////////////////////////////////////////////////////////
4) ¶¨Òå»ìºÏÎï ÈçÀý, ¶¨Òå¿ÕÆø(Air):
//////////////////////////////////////////////////////////////////////////////////// a = 14.01*g/mole;
G4Element* elN = new G4Element(\
a = 16.0*g/mole;
G4Element* elO = new G4Element(\
density = 1.290*g/cm3;
G4Material* Air = new G4Material(\ Air->AddElement(elN, fractionmass=70*perCent); Air->AddElement(elO, fractionmass=30*perCent); ////////////////////////////////////////////////////////////////////////////////////
ÔÚ/home/username/geant4.7.0/examples/novice/N03/ExN03DetectorConstruction.ccÎļþÖнéÉÜÁËËùÓж¨Òå²ÄÁϵķ½·¨.
5. Ö¸¶¨Á£×Ó 1) Ò»°ã¸ÅÄî
12