GSantin_Geant4_Paris07_PrimaryParticle_v08
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• Never use hard-coded UI commands
Invoke GeneratePrimaryVertex() method of primary generator(s)
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007 4
gsantingeant4paris07primaryparticlev08geant4geant4安装geant4论坛geant4学习geant4教程geant4100安装geant4中文手册geant4质子
Primary particle
Geant4 tutorial Paris, 4-8 June 2007
– Various set methods are available – Intercoms commands are also available for setting initial values
• G4ParticleGun is basic, but it can be used from inside UserPrimaryGeneratorAction to model complex source types / distributions:
– Pre-assigned decay channels attached to particles – Also, “exotic” particles can be imported from Particle Generators, followed by either decay or user defined physics processes (e.g. Higgs, W/Z boson, SUSY particle, …)
• See talk by Makoto Asai
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007 6
Built-in primary particle generators
• Geant4 provides some concrete implementations of G4VPrimaryGenerator.
•
G4HEPEvtInterface
– – – – Event record structure based on /HEPEVT/ common block Used by (FORTRAN) HEP physics generators Developed and agreed on within the framework of the 1989 LEP physics study ASCII file input
•
Constructor
– – Instantiate primary generator(s) Set default values to it (them)
•
GeneratePrimaries() method
– – – Randomize particle-by-particle value(s) Set these values to primary generator(s)
MyPrimaryGenerator (G4VUserPrimaryGeneratorAction) Computes desired –primary properties They will become
– These classes don’t have any dependency to G4ParticleDefinition norMyParticleGun G4Track.
2
User classes
• Initialization classes
– Use G4RunManager::SetUserInitialization() to define. – Invoked at the initialization
• G4VUserDetectorConstruction • G4VUserPhysicsList
– – – – Generate the desired distributions (by shooting random numbers) Use set methods of G4ParticleGun Use G4ParticleGun as many times as you want Use any other primary generators as many times as you want to make overlapping events
(G4VPrimaryGenerator)
“primary tracks” only at Begin of Vertices and G4Event
Primary particles intoare“stack” a created Primaries are stored for later tracking
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007
9
Interfaces to HEPEvt and HepMC
• Concrete implementations of G4VPrimaryGenerator
– – Good examples for experiment-specific primary generator implementation Interface to external physics generators
• Concrete implementations of G4VPrimaryGenerator
– A good example for experiment-specific primary generator implementation
• It shoots one primary particle of a certain energy from a certain point at a certain time to a certain direction.
G4VUserPrimaryGeneratorAction
• This class is one of the mandatory user classes and controls the generation of primaries
– What kind of particle (how many) what energy, position, direction, polarisation, etc
• Action classes
– Use G4RunManager::SetUserAction() to define. – Invoked during an event loop
• • • • • • G4VUserPrimaryGeneratorAction G4UserRunAction G4UserEventAction G4UserStackingAction G4UserTrackingAction G4UserSteppingAction
– Particle gun – Interfaces to HEPEVT and HEPMC – General particle source
• (Exotic primary particle, pre-assigned decay)
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007
Primary vertices and primary particles
• Primary vertices and primary particles are stored in G4Event in advance to processing an event.
– G4PrimaryVertex and G4PrimaryParticle classes
5
Event phase and put
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007
Pre-assigned decay for primaries
• Capability of bookkeeping decay chains • Primary particles may not necessarily be particles which can be tracked by Geant4
•
This class itself should NOT generate primaries but invoke GeneratePrimaryVertex() method of primary generator(s) to make primaries (G4VPrimaryGenerator)
• main()
– Geant4 does not provide main(). Note : classes written in orange are mandatory.
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007 3
Giovanni Santin ESA / ESTEC Rhea System SA With material from previous tutorials by Makoto rimaryGeneratorAction • Primary vertex and primary particle • Built-in primary particle generators
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007 8
G4VUserPrimaryGeneratorAction
• Example of usage of G4ParticleGun void T01PrimaryGeneratorAction:: GeneratePrimaries(G4Event* anEvent) { G4ParticleDefinition* particle; G4int i = (int)(5.*G4UniformRand()); switch(i) { case 0: particle = positron; break; ... } particleGun->SetParticleDefinition(particle); G4double pp = momentum+(G4UniformRand()-0.5)*sigmaMomentum; G4double mass = particle->GetPDGMass(); G4double Ekin = sqrt(pp*pp+mass*mass)-mass; particleGun->SetParticleEnergy(Ekin); G4double angle = (G4UniformRand()-0.5)*sigmaAngle; particleGun->SetParticleMomentumDirection (G4ThreeVector(sin(angle),0.,cos(angle))); particleGun->GeneratePrimaryVertex(anEvent); } • You can repeat this for generating more than one primary particles.
– G4ParticleGun – G4HEPEvtInterface, G4HEPMCInterface – G4GeneralParticleSource
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007
7
G4ParticleGun
Invoke GeneratePrimaryVertex() method of primary generator(s)
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007 4
gsantingeant4paris07primaryparticlev08geant4geant4安装geant4论坛geant4学习geant4教程geant4100安装geant4中文手册geant4质子
Primary particle
Geant4 tutorial Paris, 4-8 June 2007
– Various set methods are available – Intercoms commands are also available for setting initial values
• G4ParticleGun is basic, but it can be used from inside UserPrimaryGeneratorAction to model complex source types / distributions:
– Pre-assigned decay channels attached to particles – Also, “exotic” particles can be imported from Particle Generators, followed by either decay or user defined physics processes (e.g. Higgs, W/Z boson, SUSY particle, …)
• See talk by Makoto Asai
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007 6
Built-in primary particle generators
• Geant4 provides some concrete implementations of G4VPrimaryGenerator.
•
G4HEPEvtInterface
– – – – Event record structure based on /HEPEVT/ common block Used by (FORTRAN) HEP physics generators Developed and agreed on within the framework of the 1989 LEP physics study ASCII file input
•
Constructor
– – Instantiate primary generator(s) Set default values to it (them)
•
GeneratePrimaries() method
– – – Randomize particle-by-particle value(s) Set these values to primary generator(s)
MyPrimaryGenerator (G4VUserPrimaryGeneratorAction) Computes desired –primary properties They will become
– These classes don’t have any dependency to G4ParticleDefinition norMyParticleGun G4Track.
2
User classes
• Initialization classes
– Use G4RunManager::SetUserInitialization() to define. – Invoked at the initialization
• G4VUserDetectorConstruction • G4VUserPhysicsList
– – – – Generate the desired distributions (by shooting random numbers) Use set methods of G4ParticleGun Use G4ParticleGun as many times as you want Use any other primary generators as many times as you want to make overlapping events
(G4VPrimaryGenerator)
“primary tracks” only at Begin of Vertices and G4Event
Primary particles intoare“stack” a created Primaries are stored for later tracking
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007
9
Interfaces to HEPEvt and HepMC
• Concrete implementations of G4VPrimaryGenerator
– – Good examples for experiment-specific primary generator implementation Interface to external physics generators
• Concrete implementations of G4VPrimaryGenerator
– A good example for experiment-specific primary generator implementation
• It shoots one primary particle of a certain energy from a certain point at a certain time to a certain direction.
G4VUserPrimaryGeneratorAction
• This class is one of the mandatory user classes and controls the generation of primaries
– What kind of particle (how many) what energy, position, direction, polarisation, etc
• Action classes
– Use G4RunManager::SetUserAction() to define. – Invoked during an event loop
• • • • • • G4VUserPrimaryGeneratorAction G4UserRunAction G4UserEventAction G4UserStackingAction G4UserTrackingAction G4UserSteppingAction
– Particle gun – Interfaces to HEPEVT and HEPMC – General particle source
• (Exotic primary particle, pre-assigned decay)
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007
Primary vertices and primary particles
• Primary vertices and primary particles are stored in G4Event in advance to processing an event.
– G4PrimaryVertex and G4PrimaryParticle classes
5
Event phase and put
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007
Pre-assigned decay for primaries
• Capability of bookkeeping decay chains • Primary particles may not necessarily be particles which can be tracked by Geant4
•
This class itself should NOT generate primaries but invoke GeneratePrimaryVertex() method of primary generator(s) to make primaries (G4VPrimaryGenerator)
• main()
– Geant4 does not provide main(). Note : classes written in orange are mandatory.
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007 3
Giovanni Santin ESA / ESTEC Rhea System SA With material from previous tutorials by Makoto rimaryGeneratorAction • Primary vertex and primary particle • Built-in primary particle generators
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007 8
G4VUserPrimaryGeneratorAction
• Example of usage of G4ParticleGun void T01PrimaryGeneratorAction:: GeneratePrimaries(G4Event* anEvent) { G4ParticleDefinition* particle; G4int i = (int)(5.*G4UniformRand()); switch(i) { case 0: particle = positron; break; ... } particleGun->SetParticleDefinition(particle); G4double pp = momentum+(G4UniformRand()-0.5)*sigmaMomentum; G4double mass = particle->GetPDGMass(); G4double Ekin = sqrt(pp*pp+mass*mass)-mass; particleGun->SetParticleEnergy(Ekin); G4double angle = (G4UniformRand()-0.5)*sigmaAngle; particleGun->SetParticleMomentumDirection (G4ThreeVector(sin(angle),0.,cos(angle))); particleGun->GeneratePrimaryVertex(anEvent); } • You can repeat this for generating more than one primary particles.
– G4ParticleGun – G4HEPEvtInterface, G4HEPMCInterface – G4GeneralParticleSource
Giovanni Santin - Primary particle Geant4 tutorial, Paris 2007
7
G4ParticleGun