* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Geant4: Electromagnetic Processes 1
Double-slit experiment wikipedia , lookup
ALICE experiment wikipedia , lookup
Standard Model wikipedia , lookup
Future Circular Collider wikipedia , lookup
ATLAS experiment wikipedia , lookup
Theoretical and experimental justification for the Schrödinger equation wikipedia , lookup
Elementary particle wikipedia , lookup
Geant4:
Electromagnetic Processes 1
Introduction
Interfaces
PhysicsList
Optical process
V.Ivanchenko
16.07.02 Salamanca
1
Radiation effects
Charged particles lost energy primary to
ionization
For high energy electrons radiation losses
dominates
Gammas convert to e+e- or transform
energy to atomic electrons
Heavy particles interact with atomic
nucleus
V.Ivanchenko
16.07.02 Salamanca
2
What is tracked in Geant4 ?
G4Track
• Propagated by the tracking,
• Snapshot of the particle state.
G4DynamicParticle
• Momentum, pre-assigned decay…
• The « particle type »:
G4ParticleDefinition
G4Electron,
G4PionPlus…
G4ProcessManager • « Hangs » the
physics sensitivity;
• The classes involved in the building
the « physics list » are:
Process_1 • The physics
• The G4ParticleDefinition
processes;
concrete classes;
Process_2
• The G4ProcessManager;
Process_3
• The processes;
V.Ivanchenko
16.07.02 Salamanca
3
Geant4 physics processes
There are following
processes:
Electromagnetic
Hadronic
Decay
Optical
Transportation
Parameterized
V.Ivanchenko
Subcategories of
Electromagnetic
domain:
16.07.02 Salamanca
Muons
Lowenergy
Standard
Xrays
Utils
4
Geant4 physics processes
Physics is described via abstract interface called
process associated with particles
Process provides Interaction Lenths, StepLimits,
and DoIt methods
Process active AlongStep, PostStep, AtRest
Distinction between process and model – one
process may includes many models
Generation of final state is independent from the
access and use of cross sections and from
tracking
V.Ivanchenko
16.07.02 Salamanca
5
PhysicsList
It is one of the « mandatory user classes »;
– Defined in source/run
Defines the three pure virtual methods:
– ConstructParticles();
– ConstructProcesses();
– SetCuts();
Concrete PhysicsList needs to inherit from
G4VUserPhysicsList;
For interactivity G4UserPhysicsListMessenger
can be used to handle PhysicsList parameters
V.Ivanchenko
16.07.02 Salamanca
6
Processes ordering
Ordering of following processes is critical:
– Assuming n processes, the ordering of the
AlongGetPhysicalInteractionLength should be:
[n-2] …
[n-1] multiple scattering
[n] transportation
Why ?
– Processes return a « true path length »;
– The multiple scattering « virtually folds up » this
true path length into a shorter « geometrical »
path length;
– Based on this new length, the transportation can
geometrically limits the step.
Other processes ordering usually do not matter.
V.Ivanchenko
16.07.02 Salamanca
7
AddTransportation
void G4VUserPhysicsList::AddTransportation()
{
G4Transportation* theTransportationProcess= new G4Transportation();
// loop over all particles in G4ParticleTable
theParticleIterator->reset();
while( (*theParticleIterator)() ){
G4ParticleDefinition* particle = theParticleIterator->value();
G4ProcessManager* pmanager = particle->GetProcessManager();
if (!particle->IsShortLived()) {
if ( pmanager == 0) {
G4Exception("G4VUserPhysicsList::AddTransportation : no process manager!");
} else {
// add transportation with ordering = ( -1, "first", "first" )
pmanager->AddProcess(theTransportationProcess);
pmanager->SetProcessOrderingToFirst(theTransportationProcess, idxAlongStep);
pmanager->SetProcessOrderingToFirst(theTransportationProcess, idxPostStep);
}
}
}
V.Ivanchenko
16.07.02 Salamanca
8
Gamma processes
Discrete processes - only PostStep actions;
– Use function AddDiscreteProcess;
– pmanager is the G4ProcessManager of the gamma;
– Assume the transportation has been set by
AddTransportation;
Code sample:
// Construct processes for gamma:
pmanager->AddDiscreteProcess(new G4GammaConversion());
pmanager->AddDiscreteProcess(new G4ComptonScattering());
pmanager->AddDiscreteProcess(new G4PhotoElectricEffect());
V.Ivanchenko
16.07.02 Salamanca
9
Electron processes
// Construct processes for positron
G4VProcess* theMultipleScattering = new G4MultipleScattering();
G4VProcess* eIonisation = new G4eIonisation();
G4VProcess* eBremsstrahlung = new G4eBremsstrahlung();
// add processes
pmanager->AddProcess(theMultipleScattering);
pmanager->AddProcess(eIonisation);
pmanager->AddProcess(eBremsstrahlung);
// set ordering for AlongStepDoIt
pmanager->SetProcessOrdering(theMultipleScattering, idxAlongStep, 1);
pmanager->SetProcessOrdering(eIonisation,
idxAlongStep, 2);
// set ordering for PostStepDoIt
pmanager->SetProcessOrdering(theMultipleScattering, idxPostStep, 1);
pmanager->SetProcessOrdering(eIonisation,
idxPostStep, 2);
pmanager->SetProcessOrdering(eBremsstrahlung, idxPostStep, 3);
V.Ivanchenko
16.07.02 Salamanca
10
Positrons processes
G4VProcess* theeplusMultipleScattering = new G4MultipleScattering();
G4VProcess* theeplusIonisation = new G4eIonisation();
G4VProcess* theeplusBremsstrahlung = new G4eBremsstrahlung();
G4VProcess* theeplusAnnihilation = new G4eplusAnnihilation();
pmanager->AddProcess(theeplusMultipleScattering);
pmanager->AddProcess(theeplusIonisation);
pmanager->AddProcess(theeplusBremsstrahlung);
pmanager->AddProcess(theeplusAnnihilation);
pmanager->SetProcessOrderingToFirst(theeplusAnnihilation, idxAtRest);
pmanager->SetProcessOrdering(theeplusMultipleScattering, idxAlongStep, 1);
pmanager->SetProcessOrdering(theeplusIonisation,
idxAlongStep, 2);
pmanager->SetProcessOrdering(theeplusMultipleScattering, idxPostStep, 1);
pmanager->SetProcessOrdering(theeplusIonisation,
idxPostStep, 2);
pmanager->SetProcessOrdering(theeplusBremsstrahlung, idxPostStep, 3);
pmanager->SetProcessOrdering(theeplusAnnihilation,
idxPostStep, 4);
V.Ivanchenko
16.07.02 Salamanca
11
Hadrons EM processes
Hadrons (pions, kaons, proton,…)
Light ions (deuteron, triton, alpha)
Heavy ions (GenericIon)
Example:
G4VProcess* theMultipleScattering = new G4MultipleScattering();
G4VProcess* hIonisation = new G4hIonisation();
pmanager->AddProcess(theMultipleScattering);
pmanager->AddProcess(hIonisation);
pmanager->SetProcessOrdering(theMultipleScattering, idxAlongStep, 1);
pmanager->SetProcessOrdering(hIonisation,
idxAlongStep, 2);
pmanager->SetProcessOrdering(theMultipleScattering, idxPostStep, 1);
pmanager->SetProcessOrdering(hIonisation,
idxPostStep, 2);
V.Ivanchenko
16.07.02 Salamanca
12
PhysicsList
In contrary to other codes Geant4 requires from
users to build PhysicsList
Novice examples
– N02: Simplified tracker geometry with
uniform magnetic field
– N03: Simplified calorimeter geometry
– N04: Simplified collider detector with a
readout geometry
Extended examples
Advance examples
V.Ivanchenko
16.07.02 Salamanca
13
Optical Photon
Processes in GEANT4
Concept of “optical photon” in G4
λ >> atomic spacing
G4OpticalPhoton: wave like nature of EM radiation
G4OpticalPhoton <=|=> G4Gamma
(no smooth transition)
When generated polarisation should be set:
aphoton->SetPolarization(ux,uy,uz); // unit vector!!!
V.Ivanchenko
16.07.02 Salamanca
14
Optical Photon
Processes in GEANT4
Optical photons generated by following processes
(processes/electromagnetic/xrays):
Scintillation
Cherenkov
Transition radiation
Optical photons have following physics processes
(processes/optical/):
Refraction and Reflection at medium boundaries
Bulk Absorption
Rayleigh scattering
ExampleN06 at /examples/novice/N06
V.Ivanchenko
16.07.02 Salamanca
15
Optical Photon
Processes in GEANT4
Material properties should be defined for
G4Scintillation process, so only one type
of scintillators can be defined in the run
G4Cherenkov is active only if for the given
material an index of refraction is provided
For simulation of optical photons
propogation G4OpticalSurface should be
defined for given optical system
V.Ivanchenko
16.07.02 Salamanca
16
Conclusion remarks
Using Geant4 examples novice user can design
his/her PhysicsList without detailed studying of
interaction of particles with matter
Default values of internal model parameters are
reasonably defined
To estimate the accuracy of simulation results
indeed one have to study Geant4 in more details
It is true for any simulation software!
V.Ivanchenko
16.07.02 Salamanca
17