Example fast simulation model for EM showers. More...
#include <Doxymodules_parameterisations.h>
Public Member Functions | |
Par03EMShowerModel (G4String, G4Region *) | |
Par03EMShowerModel (G4String) | |
~Par03EMShowerModel () | |
virtual G4bool | ModelTrigger (const G4FastTrack &) final |
There are no kinematics constraints. True is returned. | |
virtual G4bool | IsApplicable (const G4ParticleDefinition &) final |
Model is applicable to electrons, positrons, and photons. | |
virtual void | DoIt (const G4FastTrack &, G4FastStep &) final |
Take particle out of the full simulation (kill it at the entrance depositing all the energy). | |
void | Print () const |
Print current settings. | |
void | SetSigma (const G4double aSigma) |
Set standard deviation of a Gaussian distribution that describes the transverse shower profile. | |
G4double | GetSigma () const |
Get standard deviation of a Gaussian distribution that describes the transverse shower profile. | |
void | SetAlpha (const G4double aAlpha) |
Set alpha parameter of a Gamma distribution that describes the longitudinal shower profile. | |
G4double | GetAlpha () const |
Get alpha parameter of a Gamma distribution that describes the longitudinal shower profile. | |
void | SetBeta (const G4double aBeta) |
Set beta parameter of a Gamma distribution that describes the longitudinal shower profile. | |
G4double | GetBeta () const |
Get beta parameter of a Gamma distribution that describes the longitudinal shower profile. | |
void | SetNbOfHits (const G4int aNumber) |
Set number of (same energy) hits created in the parametrisation. | |
G4int | GetNbOfHits () const |
Get number of (same energy) hits created in the parametrisation.s. | |
void | SetLongMaxDepth (const G4double aDepth) |
Set maximum depth of shower created in fast simulation. | |
G4double | GetLongMaxDepth () const |
Get maximum depth of shower created in fast simulation. | |
Private Member Functions | |
G4double | Gamma (G4double x, G4double alpha, G4double beta) |
Gamma distribution. | |
G4double | Gaussian (G4double x, G4double sigma=1, G4double x0=0) |
Gaussian distribution. | |
Private Attributes | |
Par03EMShowerMessenger * | fMessenger |
Messenger for configuration. | |
std::unique_ptr< G4FastSimHitMaker > | fHitMaker |
Helper class for creation of hits within the sensitive detector. | |
G4double | fSigma = -1 |
Standard deviation of the Gaussian distribution Can be changed with UI command /Par03/fastSim/transverseProfile/sigma <sigma> If sigma is smaller than 0, it will be estimated from the detector material (Moliere radius). | |
G4double | fAlpha = -1 |
Alpha parameter of the Gamma distribution Can be changed with UI command /Par03/fastSim/longitudunalProfile/alpha <alpha> If alpha is smaller than 0, it will be estimated from particle energy and the detector material. | |
G4double | fBeta = 0.5 |
Beta parameter of the Gamma distribution Can be changed with UI command /Par03/fastSim/longitudinalProfile/beta <beta> | |
G4int | fNbOfHits = 100 |
Number of (same energy) hits created by the parametrisation. | |
G4double | fLongMaxDepth = 30 |
Maximum depth of a shower created in fast simulation. | |
Example fast simulation model for EM showers.
Parametrisation of electrons, positrons, and gammas. It is triggered if those particles enter the detector so that there is sufficient length for the shower development (max depth, controlled by the UI command).
Parametrisation is based on the PDG chapter on the electromagnetic cascades (chapter 33.5). Longitudinal profile of the shower is described with Gamma distribution, with beta parameter on average equal to 0.5 (default value, Fig. 33.21), and alpha parameter calcluated from the incident particle energy and material of the detector (critical energy) following Eq.(33.36).
Transverse profile is in this model approximated by the Gaussian distribution, with the mean along the shower axis (incident particle momentum direction) and the standard deviation calculated from the detector material (Moliere radius). This assumes that EM shower is in 90% contained within a cylinder of radius equal to Moliere radius, and that area below Gaussian distribution from mean-1.645 sigma
to mean+1.645 sigma
is also equal to 90% of total distribution.
Parameters of both distributions (alpha, beta for Gamma, sigma for Gaussian) can be overwritten by UI commands.
Parametrisation creates N hits of same energy (N can be set by UI command), using rejection sampling to generate position along shower axis from Gamma distribution, and then sampling from uniform and Gaussian distributions to sample phi and radius, respectively. Created hits are deposited in the detector using its readout geometry, using the helper class G4FastSimHitMaker that locates the volume, and calls appropriate sensitive detector class.
PDG Chapter 33: https://pdg.lbl.gov/2019/reviews/rpp2018-rev-passage-particles-matter.pdf
Definition at line 63 of file Doxymodules_parameterisations.h.
Definition at line 38 of file Par03EMShowerModel.cc.
Par03EMShowerModel::Par03EMShowerModel | ( | G4String | aModelName | ) |
Definition at line 46 of file Par03EMShowerModel.cc.
|
default |
|
finalvirtual |
There are no kinematics constraints. True is returned.
Definition at line 68 of file Par03EMShowerModel.cc.
|
finalvirtual |
Model is applicable to electrons, positrons, and photons.
Definition at line 58 of file Par03EMShowerModel.cc.
|
finalvirtual |
Take particle out of the full simulation (kill it at the entrance depositing all the energy).
Calculate energy deposited in the detector according to Gamma distribution (along the particle direction) and Gaussian distribution in the transverse direction. Mean of the Gaussian is centred on the shower axis. Create energy deposits on a cylindrical mesh. Parameters of the mesh (size, number of cells) and of the distributions (alpha, beta for Gamma, sigma for Gaussian) can be set with UI commands.
Definition at line 95 of file Par03EMShowerModel.cc.
void Par03EMShowerModel::Print | ( | ) | const |
Print current settings.
Definition at line 188 of file Par03EMShowerModel.cc.
|
inline |
Set standard deviation of a Gaussian distribution that describes the transverse shower profile.
Definition at line 94 of file Par03EMShowerModel.hh.
|
inline |
Get standard deviation of a Gaussian distribution that describes the transverse shower profile.
Definition at line 97 of file Par03EMShowerModel.hh.
|
inline |
Set alpha parameter of a Gamma distribution that describes the longitudinal shower profile.
Definition at line 100 of file Par03EMShowerModel.hh.
|
inline |
Get alpha parameter of a Gamma distribution that describes the longitudinal shower profile.
Definition at line 103 of file Par03EMShowerModel.hh.
|
inline |
Set beta parameter of a Gamma distribution that describes the longitudinal shower profile.
Definition at line 106 of file Par03EMShowerModel.hh.
|
inline |
Get beta parameter of a Gamma distribution that describes the longitudinal shower profile.
Definition at line 109 of file Par03EMShowerModel.hh.
|
inline |
Set number of (same energy) hits created in the parametrisation.
Definition at line 111 of file Par03EMShowerModel.hh.
|
inline |
Get number of (same energy) hits created in the parametrisation.s.
Definition at line 113 of file Par03EMShowerModel.hh.
|
inline |
Set maximum depth of shower created in fast simulation.
It is expressed in units of radiaton length.
Definition at line 116 of file Par03EMShowerModel.hh.
|
inline |
Get maximum depth of shower created in fast simulation.
It is expressed in units of radiaton length.
Definition at line 122 of file Par03EMShowerModel.hh.
|
inlineprivate |
Gamma distribution.
Definition at line 126 of file Par03EMShowerModel.hh.
|
inlineprivate |
Gaussian distribution.
Definition at line 132 of file Par03EMShowerModel.hh.
|
private |
Messenger for configuration.
Definition at line 140 of file Par03EMShowerModel.hh.
|
private |
Helper class for creation of hits within the sensitive detector.
Definition at line 142 of file Par03EMShowerModel.hh.
|
private |
Standard deviation of the Gaussian distribution Can be changed with UI command /Par03/fastSim/transverseProfile/sigma <sigma>
If sigma is smaller than 0, it will be estimated from the detector material (Moliere radius).
Definition at line 148 of file Par03EMShowerModel.hh.
|
private |
Alpha parameter of the Gamma distribution Can be changed with UI command /Par03/fastSim/longitudunalProfile/alpha <alpha>
If alpha is smaller than 0, it will be estimated from particle energy and the detector material.
Definition at line 154 of file Par03EMShowerModel.hh.
|
private |
Beta parameter of the Gamma distribution Can be changed with UI command /Par03/fastSim/longitudinalProfile/beta <beta>
Definition at line 158 of file Par03EMShowerModel.hh.
|
private |
Number of (same energy) hits created by the parametrisation.
Can be changed with UI command /Par03/fastSim/numberOfHits <number>
Definition at line 161 of file Par03EMShowerModel.hh.
|
private |
Maximum depth of a shower created in fast simulation.
It is expressed in units of radiation length. Can be changed with UI command /Par03/fastSim/longitudinalProfile/maxDepth <depth>
Definition at line 165 of file Par03EMShowerModel.hh.