




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Geant4 ExampleB4a 源碼解讀今天繼續(xù)簡單講一下exampleB4中的幾個子例子,先是 exampleB4a ,仍然是采用SteppingAction 一步一步抽取事件,這種方法的好處是能夠很詳細(xì)的考慮、輸出每一步的信 息,但有時候我們只希望對感興趣部分(位置)進(jìn)行事件抽取,則用 SD和Hit要明顯方便 一些,例如在exampleB4c中用到的就是 SD和Hit進(jìn)行數(shù)據(jù)抽取。exampleB4a和exampleB4c 描述的是同一個幾何、物理過程,只是數(shù)據(jù)抽取的方式不同,因此將這兩個例子放在一起具有比較意義。本次先對 exampleB4a進(jìn)行講解。exampleB4a計算了入射粒
2、子(默認(rèn)電子,能 量50 MeV ,軸向方向)在多層鉛-液僦材料中(由10個吸收體和間隙復(fù)制組成)的能量沉 積及帶電粒子(包括次級粒子)徑跡長度。圖1.幾何可視化及粒子輸運(yùn)可視化exampleB4a.ec#include B4DetectorConstruction.hh#include B4aActionInitialization.hh#ifdef G4MULTITHREADED#include G4MTRunManager.hh#else#include G4RunManager.hh#endif#include G4UImanager.hh#include G4UIcommand.hh
3、#include FTFP_BERT.hh”#include Randomize.hh#include G4VisExecutive.hh#include G4UIExecutive.hh.oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOspace void PrintUsage() G4cerr Usage: G4endl;G4cerr exampleB4a -m macro -u UIsession -t nThreads G4endl;G4cerr note: -t option is available only for multi-t
4、hreaded mode. 7 ) PrintUsage();return 1;G4String macro;G4String session;#ifdef G4MULTITHREADEDG4int nThreads = 0;#endiffor ( G4int i=1; i 0 ) runManager-SetNumberOfThreads(nThreads);)#elseauto runManager = new G4RunManager;#endif/ Set mandatory initialization classes/auto detConstruction = new B4Det
5、ectorConstruction();runManager-SetUserInitialization(detConstruction);auto physicsList = new FTFP_BERT;runManager-SetUserInitialization(physicsList);auto actioninitialization = new B4aActionInitialization(detConstruction);runManager-SetUserInitialization(actionInitialization);/ Initialize visualizat
6、ion/auto visManager = new G4VisExecutive;/ G4VisExecutive can take a verbosity argument - see /vis/verbose guidance./ G4VisManager* visManager = new G4VisExecutive(Quiet);visManager-Initialize();/ Get the pointer to the User Interface managerauto UImanager = G4UImanager:GetUIpointer();/ Process macr
7、o or start UI session/if ( macro.size() ) / batch modeG4String command = /control/execute ;UImanager-ApplyCommand(command+macro);)else / interactive mode : define UI sessionUImanager-ApplyCommand(/control/execute init_vis.mac);if (ui-IsGUI() UImanager-ApplyCommand(/control/execute gui.mac);)ui-Sessi
8、onStart();delete ui;)/ Job termination/ Free the store: user actions, physics_list and detector_description are/ owned and deleted by the run manager, so they should not be deleted/ in the main() program !delete visManager;delete runManager;用戶在終端輸入字符串個數(shù)大于7則調(diào)用PrintUsage提示出錯,并返回1,跳出main()-m”給macro賦值該字
9、函數(shù)。通過for-m”給macro賦值該字符串后一個字符串;若程序名后字符串為“-u”給session賦值該字符串后一個字符串,否則調(diào)用PrintUsage提示出錯,并返回1,跳出main()函數(shù)。定義一個 UI操作類又松史ui指針初始化空指針,若用戶沒有調(diào)用macro控制文件,則new一個ui指針,分內(nèi)存空間辟。初始化探測器、物理過程以及用戶行為,其中,用戶行為與探測器構(gòu)造有關(guān)。new一個可視化管理器并對其初始化。定義一個UI管理類,通過判斷條件macro是否為空,來決定執(zhí)行交互式界面模式還是批處理模式。最后delete所有管理類,釋放內(nèi)存。B4DetectorConstruction.hh
10、#ifndef B4DetectorConstruction_h#define B4DetectorConstruction_h 1#include G4VUserDetectorConstruction.hh#include globals.hhclass G4VPhysicalV olume;class G4GlobalMagFieldMessenger;class B4DetectorConstruction : public G4VUserDetectorConstruction public:B4DetectorConstruction();virtual B4DetectorCon
11、struction();public:virtual G4VPhysicalV olume* Construct(); virtual void ConstructSDandField();/ get methods /const G4VPhysicalV olume* GetAbsorberPV() const;/const 修飾指針, 指針的內(nèi)存空間數(shù)據(jù)不能改變;函數(shù)重載const G4VPhysicalV olume* GetGapPV() const;private:/ methods/void DefineMaterials();G4VPhysicalV olume* DefineV
12、 olumes();/ data members/static G4ThreadLocal G4GlobalMagFieldMessenger* fMagFieldMessenger;/ magnetic field messengerG4VPhysicalV olume* fAbsorberPV; / the absorber physical volumeG4VPhysicalV olume* fGapPV; / the gap physical volumeG4bool fCheckOverlaps; / option to activate checking of volumes ov
13、erlaps ;/ inline functionsinline const G4VPhysicalV olume* B4DetectorConstruction:GetAbsorberPV() const return fAbsorberPV;inline const G4VPhysicalV olume* B4DetectorConstruction:GetGapPV() const return fGapPV;B4DetectorConstruction 繼承于 G4VUserDetectorConstruction 基類,聲明構(gòu)造函數(shù)、析構(gòu) 函數(shù),Construct。返回物理體。虛方法
14、ConstructSDandField()用于定義SD探測器以及空間內(nèi) 的電磁場。GetAbsorberPV()和GetGapPV()為自定義的內(nèi)聯(lián)函數(shù)在類體外進(jìn)行定義,分別返 回物理體fAbsorberPV和fGapPV (私有數(shù)據(jù)成員)。G4GlobalMagFieldMessenger類用于描 述電磁場的大小、方向等信息。B4DetectorConstruction.ccB4DetectorConstruction:B4DetectorConstruction():G4VUserDetectorConstruction(),fAbsorberPV(nullptr),fGapPV(null
15、ptr), fCheckOverlaps(true)/.oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOooo.B4DetectorConstruction二B4DetectorConstruction()()/.oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOooo.G4VPhysicalVolume* B4DetectorConstruction:Construct()(/ Define materials DefineMaterials();/ Define volumes return DefineVolumes();
16、)/oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOooovoid B4DetectorConstruction:DefineMaterials()(/ Lead material defined using NIST Managerauto nistManager = G4NistManager二Instance。; nistManager-FindOrBuildMaterial(G4_Pb);/ Liquid argon materialG4double a; / mass of a mole;G4double z; / z=mean number of
17、protons;G4double density;new G4Material(liquidArgon, z=18., a= 39.95*g/mole, density= 1.390*g/cm3);/ The argon by NIST Manager is a gas with a different density/ Vacuumnew G4Material(Galactic, z=1., a=1.01*g/mole,density= universe_mean_density,kStateGas, 2.73*kelvin, 3.e-18*pascal);/ Print materials
18、G4cout *(G4Material:GetMaterialTable() G4endl;).oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOooo G4VPhysicalVolume* B4DetectorConstruction:DefineV olumes() / Geometry parametersG4int nofLayers = 10;定義有多少層 copynumberG4double absoThickness = 10.*mm;G4double gapThickness =5.*mm;G4double calorSizeXY = 10.*c
19、m;auto layerThickness = absoThickness + gapThickness;一層厚度auto calorThickness = nofLayers * layerThickness; 整體厚度auto worldSizeXY = 1.2 * calorSizeXY;auto worldSizeZ = 1.2 * calorThickness;/ Get materialsauto defaultMaterial = G4Material二GetMaterial(Galactic);auto absorberMaterial = G4Material:GetMate
20、rial(G4_Pb);auto gapMaterial = G4Material:GetMaterial(liquidArgon);if ( ! defaultMaterial | ! absorberMaterial | ! gapMaterial ) G4ExceptionDescription msg;msg Cannot retrieve materials already defined.;G4Exception(B4DetectorConstruction:DefineV olumes(), MyCode0001, FatalException, msg);)/ World/au
21、to worldS= new G4Box(World,/ its nameworldSizeXY/2, worldSizeXY/2, worldSizeZ/2); / its sizeauto worldLV=new G4LogicalV olume(worldS,/ its soliddefaultMaterial,/ its materialWorld);/ its nameauto worldPV=new G4PVPlacement(0,/ no rotationG4ThreeVector(),/ at (0,0,0)worldLV ,/ its logical volumeWorld,
22、/ its name0,/ its mother volumefalse,/ no boolean operation0,/ copy numberfCheckOverlaps);/ checking overlaps/ Calorimeter/auto calorimeters=new G4Box(Calorimeter, / its namecalorSizeXY/2, calorSizeXY/2, calorThickness/2); / its sizeauto calorLV=new G4LogicalV olume( calorimeterS, defaultMaterial, C
23、alorimeter);/ its solid/ its material/ its solid/ its material/ its name/ no rotation/ at (0,0,0)/ its logical volume/ its name/ its mother volume/ no boolean operation/ copy number/ checking overlaps/ Layer/auto layers=new G4Box(Layer,/ its namecalorSizeXY/2, calorSizeXY/2, layerThickness/2); / its
24、 sizeauto layerLV=new G4LogicalV olume( layerS,/ its soliddefaultMaterial, / its materialLayer);/ its namenew G4PVReplica(Layer,/its namelayerLV ,/its logical volumecalorLV ,/its motherkZAxis,/ axis of replicationnofLayers,/number of replicalayerThickness); / witdth of replica/ Absorber/auto absorbe
25、rS=new G4Box(Abso,/ its namecalorSizeXY/2, calorSizeXY/2, absoThickness/2); / its sizeauto absorberLV=new G4LogicalV olume(absorberS,/ its solidabsorberMaterial, / its material Abso);/ its namefAbsorberPV=new G4PVPlacement(0,/ no rotationG4ThreeVector(0., 0., -gapThickness/2), its position absorberL
26、V, / its logical volumeAbso, layerLV, false,0, fCheckOverlaps);Abso, layerLV, false,0, fCheckOverlaps);/ its mother volume/ no boolean operation/ copy number/ checking overlaps/ Gap/auto gapS=new G4Box(Gap,/ its namecalorSizeXY/2, calorSizeXY/2, gapThickness/2); / its sizeauto gapLV=new G4LogicalV o
27、lume( gapS,/ its solidgapMaterial, / its material Gap);/ its namefGapPV=new G4PVPlacement(0,/ no rotationG4ThreeVector(0., 0., absoThickness/2), / its position gapLV,/ its logical volumeGap,/ its namelayerLV ,/ its mother volumefalse,/ no boolean operation0,/ copy numberfCheckOverlaps); / checking o
28、verlaps/ print parameters /G4cout G4endl G4endl The calorimeter is nofLayers layers of: absoThickness/mm mm of GetName() + gapThickness/mm mm of GetName() G4endl SetVisAttributes (G4VisAttributes:GetInvisible();auto simpleBoxVisAtt= new G4VisAttributes(G4Colour(1.0,1.0,1.0);simpleBoxVisAtt-SetVisibi
29、lity(true);calorLV-SetVisAttributes(simpleBoxVisAtt);/ Always return the physical World /return worldPV; /oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOooovoid B4DetectorConstruction:ConstructSDandField() / Create global magnetic field messenger./ Uniform magnetic field is then created automatically if /
30、 the field value is not zero.G4ThreeVector fieldV alue;fMagFieldMessenger = new G4GlobalMagFieldMessenger(fieldValue); fMagFieldMessenger-SetVerboseLevel(1);/ Register the field messenger for deletingG4AutoDelete:Register(fMagFieldMessenger); 在 construct。函數(shù)中,定義了 Calorimeter、Layer、Abso以及Gap四個邏輯 體,它們之
31、間的關(guān)系是:構(gòu)建一個大長方體 Calorimeter”,往里面復(fù)制并放置 10個規(guī)格相 同的長方體稱之為層“ Layer,再往“ Layer”中分別放置“ Abso”以及“ Gap”。在 ConstructSDandField()函數(shù)體里,我們可以定義 SD探測器以及空間電磁場, 在本例 exampleB4a中我們只是定義了電磁場,可以通過run1.mac中命令行控制磁場屬性:/globalField/setValue 0.2 0 0 tesla設(shè)置均勻磁場,強(qiáng)度 0.2特斯拉,方向沿 x軸exampleB4c中,我們在 ConstructSDandField()函數(shù)體里還定義了兩個SD探測器
32、,這樣做簡化了后續(xù)數(shù)據(jù)抽取工作中對每一個step的位置判斷,具體怎么操作到B4c例中再說。B4aActionInitialization.hh#ifndef B4aActionInitialization_h#define B4aActionInitialization_h 1#include G4VUserActionInitialization.hhclass B4DetectorConstruction;/ Action initialization class./class B4aActionInitialization : public G4VUserActionInitializa
33、tion public:B4aActionInitialization(B4DetectorConstruction*);virtual B4aActionInitialization();virtual void BuildForMaster() const;virtual void Build() const;private:B4DetectorConstruction* fDetConstruction; ;#endif在構(gòu)造函數(shù)中,用到了 B4DetectorConstruction類的對象做形參,這是因為在后續(xù)判斷 粒子當(dāng)前位置過程中用到了探測器幾何,用于獲取幾何的物理體,后面會說,
34、這里只需要知道用戶初始化過程用到了B4DetectorConstruction類。B4aActionInitialization.ccB4aActionInitialization:B4aActionInitialization(B4DetectorConstruction* detConstruction): G4VUserActionInitialization(),fDetConstruction(detConstruction) ()/.oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOoooB4aActionInitialization二B4aActi
35、onInitialization() ()/.oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOooovoid B4aActionInitialization二BuildForMaster() const (SetUserAction(new B4RunAction); )/oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOooovoid B4aActionInitialization二Build() const (SetUserAction(new B4PrimaryGeneratorAction);SetUserAction(
36、new B4RunAction);auto eventAction = new B4aEventAction;SetUserAction(eventAction);SetUserAction(new B4aSteppingAction(fDetConstruction,eventAction); 在 step 里面用 到了 fDetConstruction 變量)將 detConstruction 賦值給 fDetConstruction,另外,對粒子發(fā)射器、RunAction、EventAction 進(jìn)行用戶行為設(shè)置,其中,B4aSteppingAction用到了探測器幾何信息,一般是用于位
37、置判斷。SetUserAction(new B4aSteppingAction(fDetConstruction,eventAction);B4PrimaryGeneratorAction.hhclass G4ParticleGun;class G4Event;/ The primary generator action class with particle gum./Ill It defines a single particle which hits the calorimeterIII perpendicular to the input face. The type of the p
38、articleIll can be changed via the G4 build-in commands of G4ParticleGun classIll (see the macros provided with this example).class B4PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction ( public:B4PrimaryGeneratorAction();virtual B4PrimaryGeneratorAction();virtual void GeneratePrimaries(G4E
39、vent* event);II set methodsvoid SetRandomFlag(G4bool value);private:G4ParticleGun* fParticleGun; II G4 particle gun);粒子發(fā)射器用的是 G4ParticleGun類。B4PrimaryGeneratorAction.cc#include B4PrimaryGeneratorAction.hh#include G4RunManager.hh#include G4LogicalV olumeStore.hh#include G4LogicalV olume.hh#include G4
40、Box.hh#include G4Event.hh#include G4ParticleGun.hh#include G4ParticleTable.hh#include G4ParticleDefinition.hh#include G4SystemOfUnits.hh#include Randomize.hh/.oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOoooB4PrimaryGeneratorAction:B4PrimaryGeneratorAction():G4VUserPrimaryGeneratorAction(), fParticleGun
41、(nullptr)G4int nofParticles = 1;fParticleGun = new G4ParticleGun(nofParticles);/ default particle kinematic/auto particleDefinition=G4ParticleTable:GetParticleTable()-FindParticle(e-);fParticleGun-SetParticleDefinition(particleDefinition);fParticleGun-SetParticleMomentumDirection(G4ThreeVector(0.,0.
42、,1.);fParticleGun-SetParticleEnergy(50.*MeV);/oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOoooB4PrimaryGeneratorAction:B4PrimaryGeneratorAction()delete fParticleGun;/oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOooovoid B4PrimaryGeneratorAction:GeneratePrimaries(G4Event* anEvent)/ This function is called at
43、the begining of event/ In order to avoid dependence of PrimaryGeneratorAction/ on DetectorConstruction class we get world volume/ from G4LogicalVolumeStore/G4double worldZHalfLength = 0.;auto worldLV = G4LogicalV olumeStore:GetInstance()-GetV olume(World); / 將G4LogicalVolumeStore 實例化,把存儲在constructd的
44、邏輯體找出來/ Check that the world volume has box shapeG4Box* worldBox = nullptr;把 world solid 把 world solid 類worldBox = dynamic_cast(worldLV-GetSolid();型強(qiáng)制轉(zhuǎn)化成box型if ( worldBox ) worldZHalfLength = worldBox-GetZHalfLength();抽取 word 的 Z 軸半長else G4ExceptionDescription msg;msg World volume of box shape not f
45、ound. G4endl;msg Perhaps you have changed geometry. G4endl;msg SetParticlePosition(G4ThreeVector(0., 0., -worldZHalfLength); 義在 word體上的 x-y面將源的位置定調(diào)用,開始fParticleGun-GeneratePrimaryVertex(anEvent);粒子槍的設(shè)置應(yīng)該一樣,設(shè)置一個默認(rèn)初始值(可以在macro中更改),默認(rèn)是電子發(fā)射,電子能量50 MeV,方向沿z軸。在對源位置定義時,從world邏輯體中把實體 get出來后賦值給worldBox指針,此時w
46、orldBox指針的地址就是在幾何體中構(gòu)建的world實體,通過 worldZHalfLength = worldBox-GetZHalfLength() ;就是將 world 實體指向的內(nèi)存空間的值 拿出來賦給 worldZHalfLength ,于是源的位置就出來了,是一個貼著world的x-y面的源。然后每一個 event 到來時調(diào)用 fParticleGun-GeneratePrimaryVertex(anEvent);發(fā)射粒子。B4RunAction.hhclass B4RunAction : public G4UserRunAction (public:B4RunAction();
47、virtual -B4RunAction();virtual void BeginOfRunAction(const G4Run*);virtual void EndOfRunAction(const G4Run*); ;B4RunAction繼承于 G4UserRunAction基類,構(gòu)造函數(shù)、析構(gòu)函數(shù)以及每次run的begin和end虛方法。B4RunAction.cc (Begin)B4RunAction:B4RunAction(): G4UserRunAction()(/ set printing event number per each eventG4RunManager二GetR
48、unManager()-SetPrintProgress(1);/通過 RunManager 管理器獲取進(jìn)程,并打印/ Create analysis manager/ The choice of analysis technology is done via selectin of a namespace/ in B4Analysis.hhauto analysisManager = G4AnalysisManager:Instance(); / G4AnalysisManager 實例化對 象 analysisManagerG4cout Using GetType() SetHistoDi
49、rectoryName(histograms);/analysisManager-SetNtupleDirectoryName(ntuple);/analysisManager-SetVerboseLevel(1);analysisManager-SetNtupleMerging(true);/ Note: merging ntuples is available only with Root output/ Book histograms, ntuple/ Creating histogramsanalysisManager-CreateH1(Eabs,Edep in absorber, 1
50、00, 0., 800*MeV); 創(chuàng)建 histogramanalysisManager-CreateH1(Egap,Edep in gap, 100, 0., 100*MeV);analysisManager-CreateH1(Labs,trackL in absorber, 100, 0., 1*m); analysisManager-CreateH1(Lgap,trackL in gap, 100, 0., 50*cm);/ Creating ntuple創(chuàng)建 ntuple/ 分支/analysisManager-CreateNtuple(B4, Edep and TrackL); /
51、ntuple 名稱: B4 analysisManager-CreateNtupleDColumn(Eabs);analysisManager-CreateNtupleDColumn(Egap); analysisManager-CreateNtupleDColumn(Labs); analysisManager-CreateNtupleDColumn(Lgap); analysisManager-FinishNtuple();/oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOoooB4RunAction:B4RunAction()delete G4Analy
52、sisManager:Instance();/oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOooovoid B4RunAction:BeginOfRunAction(const G4Run* /*run*/) /inform the runManager to save random number seed /G4RunManager:GetRunManager()-SetRandomNumberStore(true);/ Get analysis manager auto analysisManager = G4AnalysisManager:Instan
53、ce();/ Open an output file/G4String fileName = B4;analysisManager-OpenFile(fileName);打開B4打開B4文件在B4RunAction的構(gòu)造函數(shù)中,通過runmanager獲取進(jìn)程,設(shè)置每隔多少event打印出 event數(shù)。analysisManager指針開始創(chuàng)建 histogram和ntuple用于數(shù)據(jù)存放, 相當(dāng)于在root中 新建一個TH1F和tree。析構(gòu)函數(shù)中,最后將刪除analysisManager,釋放內(nèi)存空間。通過analysisManager打開B4”文件,用于在 EventAction中存儲
54、信息。B4aEventAction.hhclass B4aEventAction : public G4UserEventActionpublic:B4aEventAction();virtual B4aEventAction();virtual void BeginOfEventAction(const G4Event* event);virtual void EndOfEventAction(const G4Event* event);void AddAbs(G4double de, G4double dl);/函數(shù),吸收體屬性void AddGap(G4double de, G4doub
55、le dl);/函數(shù),間隙屬性private:G4double fEnergyAbs;G4double fEnergyGap;G4double fTrackLAbs;G4double fTrackLGap;/ inline functionsinline void B4aEventAction:AddAbs(G4double de, G4double dl) fEnergyAbs += de;fTrackLAbs += dl;inline void B4aEventAction:AddGap(G4double de, G4double dl) fEnergyGap += de;fTrackLG
56、ap += dl;)/.oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOooo#endif在 B4aEventAction 類中自定義了兩個內(nèi)聯(lián)系函數(shù),AddAbs(G4double de, G4double dl)和AddGap(G4double de, G4double dl),在類體外對他們進(jìn)行了定義,分別用于累加。B4aEventAction.cc (Begin)B4aEventAction:B4aEventAction(): G4UserEventAction(),fEnergyAbs(0.),fEnergyGap(0.),fTrackLAbs(0.
57、),fTrackLGap(0.) )/oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOoooB4aEventAction:B4aEventAction() )/oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOooovoid B4aEventAction:BeginOfEventAction(const G4Event* /*event*/) / initialisation per event/每一個 event 開始,首先初始化fEnergyAbs = 0.;fEnergyGap = 0.;fTrackLAbs = 0.;f
58、TrackLGap = 0.; )構(gòu)造函數(shù)中,對私有變量 fEnergyAbs、fEnergyGap、fTrackLAbs、fTrackLGap 賦初值 0, 在BeginOfEvebtAction()中,每一次 event開始,都對他們進(jìn)行初始化。B4aSteppingAction.hh#ifndef B4aSteppingAction_h#define B4aSteppingAction_h 1#include G4UserSteppingAction.hhclass B4DetectorConstruction;class B4aEventAction;/ Stepping action
59、 class./ In UserSteppingAction() there are collected the energy deposit and track/ lengths of charged particles in Absober and Gap layers and/ updated in B4aEventAction.class B4aSteppingAction : public G4UserSteppingActionpublic:B4aSteppingAction(const B4DetectorConstruction* detectorConstruction,與探
60、測器的位置是有關(guān)系的B4aEventAction* eventAction);virtual B4aSteppingAction();virtual void UserSteppingAction(const G4Step* step);private:const B4DetectorConstruction* fDetConstruction;B4aEventAction* fEventAction;.oooOO0OOooooooOO0OOooooooOO0OOooooooOO0OOooo#endif在 B4aSteppingAction 的構(gòu)造函數(shù)中, B4aSteppingAction(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 鍋爐行業(yè)法律法規(guī)與合規(guī)管理考核試卷
- 生態(tài)農(nóng)業(yè)與面源污染控制考核試卷
- 中職幼兒衛(wèi)生常見疾病
- 急診急救班小講課
- 兒童呼吸道系統(tǒng)概述
- Pyralomicin-2b-生命科學(xué)試劑-MCE
- 6-Alkyne-F-araNAD-生命科學(xué)試劑-MCE
- 探索2025年成人教育線上學(xué)習(xí)新模式下的個性化學(xué)習(xí)體驗報告
- 2025年腫瘤精準(zhǔn)醫(yī)療臨床實踐研究進(jìn)展報告
- 【高中語文】高一下學(xué)期期末適應(yīng)性模擬考試語文試題
- 唐俊蘭分享材料終稿
- AI驅(qū)動測試優(yōu)化
- 2022-2023學(xué)年遼寧省沈陽市高一下學(xué)期期末數(shù)學(xué)試題【含答案】
- 中國歷史地理
- 國考云在線考試系統(tǒng)試題
- 砼攪拌車駕駛員安全生產(chǎn)責(zé)任制
- 部編版三年級道德與法治下冊《大家的“朋友”》教案及教學(xué)反思
- 世界各國國別簡稱三位英文縮寫
- 光伏電站的運(yùn)行維護(hù)
- 教導(dǎo)型組織模式一心靈管理(一)課件
- 小升初ST圖專題
評論
0/150
提交評論