Geant4ÈëÃÅÖ¸µ¼Óë°²×°

·¢²¼Ê±¼ä : ÐÇÆÚÒ» ÎÄÕÂ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

ÁªÏµºÏͬ·¶ÎÄ¿Í·þ£ºxxxxx#qq.com(#Ì滻Ϊ@)