ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
The G4DNAPTBIonisationModel class Implements the PTB ionisation model. More...
Public Member Functions | |
G4DNAPTBIonisationModel (const G4String &applyToMaterial="all", const G4ParticleDefinition *p=0, const G4String &nam="DNAPTBIonisationModel", const G4bool isAuger=true) | |
G4DNAPTBIonisationModel Constructor. | |
virtual | ~G4DNAPTBIonisationModel () |
~G4DNAPTBIonisationModel Destructor | |
virtual void | Initialise (const G4ParticleDefinition *particle, const G4DataVector &=*(new G4DataVector()), G4ParticleChangeForGamma *fpChangeForGamme=nullptr) |
Initialise Method called once at the beginning of the simulation. It is used to setup the list of the materials managed by the model and the energy limits. All the materials are setup but only a part of them can be activated by the user through the constructor. | |
virtual G4double | CrossSectionPerVolume (const G4Material *material, const G4String &materialName, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax) |
CrossSectionPerVolume Mandatory for every model the CrossSectionPerVolume method is in charge of returning the cross section value corresponding to the material, particle and energy current values. | |
virtual void | SampleSecondaries (std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4String &materialName, const G4DynamicParticle *, G4ParticleChangeForGamma *particleChangeForGamma, G4double tmin, G4double tmax) |
SampleSecondaries If the model is selected for the ModelInterface then SampleSecondaries will be called. The method sets the characteristics of the particles implied with the physical process after the ModelInterface (energy, momentum...). This method is mandatory for every model. | |
Public Member Functions inherited from G4VDNAModel | |
G4VDNAModel (const G4String &nam, const G4String &applyToMaterial) | |
G4VDNAModel Constructeur of the G4VDNAModel class. | |
virtual | ~G4VDNAModel () |
~G4VDNAModel | |
G4bool | IsMaterialDefine (const G4String &materialName) |
IsMaterialDefine Check if the given material is defined in the simulation. | |
G4bool | IsMaterialExistingInModel (const G4String &materialName) |
IsMaterialExistingInModel Check if the given material is defined in the current model class. | |
G4bool | IsParticleExistingInModelForMaterial (const G4String &particleName, const G4String &materialName) |
IsParticleExistingInModelForMaterial To check two things: 1- is the material existing in model ? 2- if yes, is the particle defined for that material ? | |
G4String | GetName () |
GetName. | |
G4double | GetHighELimit (const G4String &material, const G4String &particle) |
GetHighEnergyLimit. | |
G4double | GetLowELimit (const G4String &material, const G4String &particle) |
GetLowEnergyLimit. | |
void | SetHighELimit (const G4String &material, const G4String &particle, G4double lim) |
SetHighEnergyLimit. | |
void | SetLowELimit (const G4String &material, const G4String &particle, G4double lim) |
SetLowEnergyLimit. | |
Private Types | |
typedef std::map< G4String, std::map< G4String, std::map < double, std::map< double, std::map< double, double > > > > > | TriDimensionMap |
typedef std::map< G4String, std::map< G4String, std::map < double, std::vector< double > > > > | VecMap |
typedef std::map< G4String, std::map< G4String, std::map < double, std::map< double, std::vector< double > > > > > | VecMapWithShell |
Private Member Functions | |
G4double | RandomizeEjectedElectronEnergy (G4ParticleDefinition *aParticleDefinition, G4double incomingParticleEnergy, G4int shell, const G4String &materialName) |
double | DifferentialCrossSection (G4ParticleDefinition *aParticleDefinition, G4double k, G4double energyTransfer, G4int shell, const G4String &materialName) |
G4double | RandomizeEjectedElectronEnergyFromCumulated (G4ParticleDefinition *particleDefinition, G4double k, G4int shell, const G4String &materialName) |
RandomizeEjectedElectronEnergyFromCumulated Uses the cumulated tables to find the energy of the ejected particle (electron) | |
void | RandomizeEjectedElectronDirection (G4ParticleDefinition *aParticleDefinition, G4double incomingParticleEnergy, G4double outgoingParticleEnergy, G4double &cosTheta, G4double &phi) |
RandomizeEjectedElectronDirection Method to calculate the ejected electron direction. | |
void | ReadDiffCSFile (const G4String &materialName, const G4String &particleName, const G4String &file, const G4double scaleFactor) |
ReadDiffCSFile Method to read the differential cross section files. | |
G4double | QuadInterpolator (G4double e11, G4double e12, G4double e21, G4double e22, G4double xs11, G4double xs12, G4double xs21, G4double xs22, G4double t1, G4double t2, G4double t, G4double e) |
QuadInterpolator. | |
G4double | LogLogInterpolate (G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2) |
LogLogInterpolate. | |
G4DNAPTBIonisationModel (const G4DNAPTBIonisationModel &) | |
G4DNAPTBIonisationModel & | operator= (const G4DNAPTBIonisationModel &right) |
Private Attributes | |
G4DNAPTBAugerModel * | fDNAPTBAugerModel |
PTB Auger model instanciated in the constructor and deleted in the destructor of the class. | |
G4int | verboseLevel |
verbose level | |
G4DNAPTBIonisationStructure | ptbStructure |
TriDimensionMap | diffCrossSectionData |
TriDimensionMap | fEnergySecondaryData |
std::map< G4String, std::map < G4String, std::vector < double > > > | fTMapWithVec |
VecMap | fEMapWithVector |
VecMapWithShell | fProbaShellMap |
Additional Inherited Members | |
Protected Types inherited from G4VDNAModel | |
typedef std::map< G4String, std::map< G4String, G4DNACrossSectionDataSet *, std::less< G4String > > > | TableMapData |
typedef std::map< G4String, std::map< G4String, G4double > > | RatioMapData |
typedef std::map< G4String, G4double >::const_iterator | ItCompoMapData |
Protected Member Functions inherited from G4VDNAModel | |
TableMapData * | GetTableData () |
GetTableData. | |
std::vector< G4String > | BuildApplyToMatVect (const G4String &materials) |
BuildApplyToMatVect Build the material name vector which is used to know the materials the user want to include in the model. | |
void | ReadAndSaveCSFile (const G4String &materialName, const G4String &particleName, const G4String &file, G4double scaleFactor) |
ReadAndSaveCSFile Read and save a "simple" cross section file : use of G4DNACrossSectionDataSet->loadData() | |
G4int | RandomSelectShell (G4double k, const G4String &particle, const G4String &materialName) |
RandomSelectShell Method to randomely select a shell from the data table uploaded. The size of the table (number of columns) is used to determine the total number of possible shells. | |
void | AddCrossSectionData (G4String materialName, G4String particleName, G4String fileCS, G4String fileDiffCS, G4double scaleFactor) |
AddCrossSectionData Method used during the initialization of the model class to add a new material. It adds a material to the model and fills vectors with informations. | |
void | AddCrossSectionData (G4String materialName, G4String particleName, G4String fileCS, G4double scaleFactor) |
AddCrossSectionData Method used during the initialization of the model class to add a new material. It adds a material to the model and fills vectors with informations. Not every model needs differential cross sections. | |
void | LoadCrossSectionData (const G4String &particleName) |
LoadCrossSectionData Method to loop on all the registered materials in the model and load the corresponding data. | |
void | EnableForMaterialAndParticle (const G4String &materialName, const G4String &particleName) |
EnableMaterialAndParticle. | |
The G4DNAPTBIonisationModel class Implements the PTB ionisation model.
Definition at line 53 of file G4DNAPTBIonisationModel.hh.
View newest version in sPHENIX GitHub at line 53 of file G4DNAPTBIonisationModel.hh
|
private |
Definition at line 130 of file G4DNAPTBIonisationModel.hh.
View newest version in sPHENIX GitHub at line 130 of file G4DNAPTBIonisationModel.hh
|
private |
Definition at line 134 of file G4DNAPTBIonisationModel.hh.
View newest version in sPHENIX GitHub at line 134 of file G4DNAPTBIonisationModel.hh
|
private |
Definition at line 136 of file G4DNAPTBIonisationModel.hh.
View newest version in sPHENIX GitHub at line 136 of file G4DNAPTBIonisationModel.hh
G4DNAPTBIonisationModel::G4DNAPTBIonisationModel | ( | const G4String & | applyToMaterial = "all" , |
const G4ParticleDefinition * | p = 0 , |
||
const G4String & | nam = "DNAPTBIonisationModel" , |
||
const G4bool | isAuger = true |
||
) |
G4DNAPTBIonisationModel Constructor.
applyToMaterial | |
p | |
nam | |
isAuger |
Definition at line 38 of file G4DNAPTBIonisationModel.cc.
View newest version in sPHENIX GitHub at line 38 of file G4DNAPTBIonisationModel.cc
References fDNAPTBAugerModel, G4cout, G4endl, and verboseLevel.
|
virtual |
~G4DNAPTBIonisationModel Destructor
Definition at line 70 of file G4DNAPTBIonisationModel.cc.
View newest version in sPHENIX GitHub at line 70 of file G4DNAPTBIonisationModel.cc
References fDNAPTBAugerModel.
|
private |
|
virtual |
CrossSectionPerVolume Mandatory for every model the CrossSectionPerVolume method is in charge of returning the cross section value corresponding to the material, particle and energy current values.
material | |
materialName | |
p | |
ekin | |
emin | |
emax |
Implements G4VDNAModel.
Definition at line 250 of file G4DNAPTBIonisationModel.cc.
View newest version in sPHENIX GitHub at line 250 of file G4DNAPTBIonisationModel.cc
References cm, eV, G4cout, G4endl, G4VDNAModel::GetHighELimit(), G4VDNAModel::GetLowELimit(), G4ParticleDefinition::GetParticleName(), G4VDNAModel::GetTableData(), and verboseLevel.
|
private |
Definition at line 673 of file G4DNAPTBIonisationModel.cc.
View newest version in sPHENIX GitHub at line 673 of file G4DNAPTBIonisationModel.cc
References diffCrossSectionData, G4Electron::ElectronDefinition(), fEMapWithVector, fTMapWithVec, G4ParticleDefinition::GetParticleName(), G4DNAPTBIonisationStructure::IonisationEnergy(), G4Proton::ProtonDefinition(), ptbStructure, QuadInterpolator(), t1, and t2.
Referenced by RandomizeEjectedElectronEnergy().
|
virtual |
Initialise Method called once at the beginning of the simulation. It is used to setup the list of the materials managed by the model and the energy limits. All the materials are setup but only a part of them can be activated by the user through the constructor.
Implements G4VDNAModel.
Definition at line 78 of file G4DNAPTBIonisationModel.cc.
View newest version in sPHENIX GitHub at line 78 of file G4DNAPTBIonisationModel.cc
References G4VDNAModel::AddCrossSectionData(), cm, e, G4Electron::ElectronDefinition(), eV, fDNAPTBAugerModel, G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4DNAPTBAugerModel::Initialise(), keV, G4VDNAModel::LoadCrossSectionData(), m, MeV, G4Proton::ProtonDefinition(), G4VDNAModel::SetHighELimit(), G4VDNAModel::SetLowELimit(), and verboseLevel.
|
private |
LogLogInterpolate.
e1 | |
e2 | |
e | |
xs1 | |
xs2 |
Definition at line 939 of file G4DNAPTBIonisationModel.cc.
View newest version in sPHENIX GitHub at line 939 of file G4DNAPTBIonisationModel.cc
Referenced by QuadInterpolator().
|
private |
|
private |
QuadInterpolator.
e11 | |
e12 | |
e21 | |
e22 | |
xs11 | |
xs12 | |
xs21 | |
xs22 | |
t1 | |
t2 | |
t | |
e |
Definition at line 971 of file G4DNAPTBIonisationModel.cc.
View newest version in sPHENIX GitHub at line 971 of file G4DNAPTBIonisationModel.cc
References LogLogInterpolate().
Referenced by DifferentialCrossSection(), and RandomizeEjectedElectronEnergyFromCumulated().
|
private |
RandomizeEjectedElectronDirection Method to calculate the ejected electron direction.
aParticleDefinition | |
incomingParticleEnergy | |
outgoingParticleEnergy | |
cosTheta | |
phi |
Definition at line 634 of file G4DNAPTBIonisationModel.cc.
View newest version in sPHENIX GitHub at line 634 of file G4DNAPTBIonisationModel.cc
References source.hepunit::electron_mass_c2, G4Electron::ElectronDefinition(), eV, G4UniformRand, k, source.hepunit::proton_mass_c2, G4Proton::ProtonDefinition(), and twopi.
Referenced by SampleSecondaries().
|
private |
Definition at line 537 of file G4DNAPTBIonisationModel.cc.
View newest version in sPHENIX GitHub at line 537 of file G4DNAPTBIonisationModel.cc
References DifferentialCrossSection(), source.hepunit::electron_mass_c2, G4Electron::ElectronDefinition(), eV, G4UniformRand, G4DNAPTBIonisationStructure::IonisationEnergy(), k, source.hepunit::proton_mass_c2, G4Proton::ProtonDefinition(), ptbStructure, and Acts::Test::step().
Referenced by SampleSecondaries().
|
private |
RandomizeEjectedElectronEnergyFromCumulated Uses the cumulated tables to find the energy of the ejected particle (electron)
particleDefinition | |
k | |
shell | |
materialName |
Definition at line 772 of file G4DNAPTBIonisationModel.cc.
View newest version in sPHENIX GitHub at line 772 of file G4DNAPTBIonisationModel.cc
References G4InuclSpecialFunctions::bindingEnergy(), eV, g4zmq::exit(), fEnergySecondaryData, fProbaShellMap, fTMapWithVec, G4cerr, G4cout, G4endl, G4UniformRand, G4ParticleDefinition::GetParticleName(), G4DNAPTBIonisationStructure::IonisationEnergy(), k1, k2, ptbStructure, and QuadInterpolator().
Referenced by SampleSecondaries().
|
privatevirtual |
ReadDiffCSFile Method to read the differential cross section files.
materialName | |
particleName | |
file | |
scaleFactor |
Reimplemented from G4VDNAModel.
Definition at line 432 of file G4DNAPTBIonisationModel.cc.
View newest version in sPHENIX GitHub at line 432 of file G4DNAPTBIonisationModel.cc
References diffCrossSectionData, E, FatalException, fEMapWithVector, fEnergySecondaryData, file, fProbaShellMap, fTMapWithVec, G4Exception(), G4DNAPTBIonisationStructure::NumberOfLevels(), ptbStructure, T, and test().
|
virtual |
SampleSecondaries If the model is selected for the ModelInterface then SampleSecondaries will be called. The method sets the characteristics of the particles implied with the physical process after the ModelInterface (energy, momentum...). This method is mandatory for every model.
materialName | |
particleChangeForGamma | |
tmin | |
tmax |
Implements G4VDNAModel.
Definition at line 295 of file G4DNAPTBIonisationModel.cc.
View newest version in sPHENIX GitHub at line 295 of file G4DNAPTBIonisationModel.cc
References G4InuclSpecialFunctions::bindingEnergy(), G4DNAPTBAugerModel::ComputeAugerEffect(), G4Electron::Electron(), source.hepunit::electron_mass_c2, G4Electron::ElectronDefinition(), eV, g4zmq::exit(), fDNAPTBAugerModel, G4cout, G4endl, G4DynamicParticle::GetDefinition(), G4VDNAModel::GetHighELimit(), G4DynamicParticle::GetKineticEnergy(), G4VDNAModel::GetLowELimit(), G4DynamicParticle::GetMomentumDirection(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGMass(), CLHEP::Hep3Vector::getX(), CLHEP::Hep3Vector::getY(), CLHEP::Hep3Vector::getZ(), G4DNAPTBIonisationStructure::IonisationEnergy(), k, phi, G4VParticleChange::ProposeLocalEnergyDeposit(), G4ParticleChangeForGamma::ProposeMomentumDirection(), ptbStructure, RandomizeEjectedElectronDirection(), RandomizeEjectedElectronEnergy(), RandomizeEjectedElectronEnergyFromCumulated(), G4VDNAModel::RandomSelectShell(), CLHEP::Hep3Vector::rotateUz(), G4ParticleChangeForGamma::SetProposedKineticEnergy(), CLHEP::Hep3Vector::unit(), verboseLevel, CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().
|
private |
Definition at line 131 of file G4DNAPTBIonisationModel.hh.
View newest version in sPHENIX GitHub at line 131 of file G4DNAPTBIonisationModel.hh
Referenced by DifferentialCrossSection(), and ReadDiffCSFile().
|
private |
PTB Auger model instanciated in the constructor and deleted in the destructor of the class.
Definition at line 124 of file G4DNAPTBIonisationModel.hh.
View newest version in sPHENIX GitHub at line 124 of file G4DNAPTBIonisationModel.hh
Referenced by G4DNAPTBIonisationModel(), Initialise(), SampleSecondaries(), and ~G4DNAPTBIonisationModel().
|
private |
Definition at line 135 of file G4DNAPTBIonisationModel.hh.
View newest version in sPHENIX GitHub at line 135 of file G4DNAPTBIonisationModel.hh
Referenced by DifferentialCrossSection(), and ReadDiffCSFile().
|
private |
Definition at line 132 of file G4DNAPTBIonisationModel.hh.
View newest version in sPHENIX GitHub at line 132 of file G4DNAPTBIonisationModel.hh
Referenced by RandomizeEjectedElectronEnergyFromCumulated(), and ReadDiffCSFile().
|
private |
Definition at line 137 of file G4DNAPTBIonisationModel.hh.
View newest version in sPHENIX GitHub at line 137 of file G4DNAPTBIonisationModel.hh
Referenced by RandomizeEjectedElectronEnergyFromCumulated(), and ReadDiffCSFile().
|
private |
Definition at line 133 of file G4DNAPTBIonisationModel.hh.
View newest version in sPHENIX GitHub at line 133 of file G4DNAPTBIonisationModel.hh
Referenced by DifferentialCrossSection(), RandomizeEjectedElectronEnergyFromCumulated(), and ReadDiffCSFile().
|
private |
ptbStructure class which contains the shell binding energies
Definition at line 128 of file G4DNAPTBIonisationModel.hh.
View newest version in sPHENIX GitHub at line 128 of file G4DNAPTBIonisationModel.hh
Referenced by DifferentialCrossSection(), RandomizeEjectedElectronEnergy(), RandomizeEjectedElectronEnergyFromCumulated(), ReadDiffCSFile(), and SampleSecondaries().
|
private |
verbose level
Definition at line 126 of file G4DNAPTBIonisationModel.hh.
View newest version in sPHENIX GitHub at line 126 of file G4DNAPTBIonisationModel.hh
Referenced by CrossSectionPerVolume(), G4DNAPTBIonisationModel(), Initialise(), and SampleSecondaries().