ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
The G4DNAPTBElasticModel class This class implements the elastic model for the DNA materials and precursors. More...
Public Member Functions | |
G4DNAPTBElasticModel (const G4String &applyToMaterial="all", const G4ParticleDefinition *p=0, const G4String &nam="DNAPTBElasticModel") | |
G4DNAPTBElasticModel Constructor. | |
virtual | ~G4DNAPTBElasticModel () |
~G4DNAPTBElasticModel Destructor | |
virtual void | Initialise (const G4ParticleDefinition *particle, const G4DataVector &, G4ParticleChangeForGamma *fpChangeForGamme=nullptr) |
Initialise Mandatory method for every model class. The material/particle for which the model can be used have to be added here through the AddCrossSectionData method. Then the LoadCrossSectionData method must be called to trigger the load process. Scale factors to be applied to the cross section can be defined here. | |
virtual G4double | CrossSectionPerVolume (const G4Material *material, const G4String &materialName, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax) |
CrossSectionPerVolume This method is mandatory for any model class. It finds and return the cross section value for the current material, particle and energy values. The number of molecule per volume is not used here but in the G4DNAModelInterface class. | |
virtual void | SampleSecondaries (std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4String &materialName, const G4DynamicParticle *, G4ParticleChangeForGamma *particleChangeForGamma, G4double tmin, G4double tmax) |
SampleSecondaries Method called after CrossSectionPerVolume if the process is the one which is selected (according to the sampling on the calculated path length). Here, the characteristics of the incident and created (if any) particle(s) are set (energy, momentum ...). | |
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, double > > > > | TriDimensionMap |
typedef std::map< G4String, std::map< G4String, std::map < double, std::vector< double > > > > | VecMap |
Private Member Functions | |
void | ReadDiffCSFile (const G4String &materialName, const G4String &particleName, const G4String &file, const G4double) |
ReadDiffCSFile Method to read the differential cross section files. This method is not standard yet so every model must implement its own. | |
G4double | Theta (G4ParticleDefinition *fParticleDefinition, G4double k, G4double integrDiff, const G4String &materialName) |
Theta To return an angular theta value from the differential file. This method uses interpolations to calculate the theta value. | |
G4double | LinLinInterpolate (G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2) |
LinLinInterpolate. | |
G4double | LinLogInterpolate (G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2) |
LinLogInterpolate. | |
G4double | LogLogInterpolate (G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2) |
LogLogInterpolate. | |
G4double | QuadInterpolator (G4double e11, G4double e12, G4double e21, G4double e22, G4double x11, G4double x12, G4double x21, G4double x22, G4double t1, G4double t2, G4double t, G4double e) |
QuadInterpolator. | |
G4double | RandomizeCosTheta (G4double k, const G4String &materialName) |
RandomizeCosTheta. | |
G4DNAPTBElasticModel (G4DNAPTBElasticModel &) | |
G4DNAPTBElasticModel & | operator= (const G4DNAPTBElasticModel &right) |
Private Attributes | |
G4int | verboseLevel |
verbose level | |
std::map< G4String, double > | killBelowEnergyTable |
map to save the different energy kill limits for the materials | |
G4double | fKillBelowEnergy |
energy kill limit | |
TriDimensionMap | diffCrossSectionData |
A map: [materialName][particleName]=DiffCrossSectionTable. | |
VecMap | eValuesVect |
std::map< G4String, std::map < G4String, std::vector < double > > > | tValuesVec |
map with vectors containing all the incident (T) energy of the differential file | |
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 G4DNAPTBElasticModel class This class implements the elastic model for the DNA materials and precursors.
Definition at line 48 of file G4DNAPTBElasticModel.hh.
View newest version in sPHENIX GitHub at line 48 of file G4DNAPTBElasticModel.hh
|
private |
Definition at line 125 of file G4DNAPTBElasticModel.hh.
View newest version in sPHENIX GitHub at line 125 of file G4DNAPTBElasticModel.hh
|
private |
Definition at line 128 of file G4DNAPTBElasticModel.hh.
View newest version in sPHENIX GitHub at line 128 of file G4DNAPTBElasticModel.hh
G4DNAPTBElasticModel::G4DNAPTBElasticModel | ( | const G4String & | applyToMaterial = "all" , |
const G4ParticleDefinition * | p = 0 , |
||
const G4String & | nam = "DNAPTBElasticModel" |
||
) |
G4DNAPTBElasticModel Constructor.
applyToMaterial | |
p | |
nam |
Definition at line 38 of file G4DNAPTBElasticModel.cc.
View newest version in sPHENIX GitHub at line 38 of file G4DNAPTBElasticModel.cc
References eV, fKillBelowEnergy, G4cout, G4endl, and verboseLevel.
|
virtual |
~G4DNAPTBElasticModel Destructor
Definition at line 60 of file G4DNAPTBElasticModel.cc.
View newest version in sPHENIX GitHub at line 60 of file G4DNAPTBElasticModel.cc
|
private |
|
virtual |
CrossSectionPerVolume This method is mandatory for any model class. It finds and return the cross section value for the current material, particle and energy values. The number of molecule per volume is not used here but in the G4DNAModelInterface class.
material | |
materialName | |
p | |
ekin | |
emin | |
emax |
Implements G4VDNAModel.
Definition at line 295 of file G4DNAPTBElasticModel.cc.
View newest version in sPHENIX GitHub at line 295 of file G4DNAPTBElasticModel.cc
References cm, DBL_MAX, eV, fKillBelowEnergy, G4cout, G4endl, G4VDNAModel::GetHighELimit(), G4VDNAModel::GetLowELimit(), G4ParticleDefinition::GetParticleName(), G4VDNAModel::GetTableData(), and verboseLevel.
|
virtual |
Initialise Mandatory method for every model class. The material/particle for which the model can be used have to be added here through the AddCrossSectionData method. Then the LoadCrossSectionData method must be called to trigger the load process. Scale factors to be applied to the cross section can be defined here.
Implements G4VDNAModel.
Definition at line 67 of file G4DNAPTBElasticModel.cc.
View newest version in sPHENIX GitHub at line 67 of file G4DNAPTBElasticModel.cc
References G4VDNAModel::AddCrossSectionData(), cm, e, G4Electron::ElectronDefinition(), eV, G4cout, G4endl, G4ParticleDefinition::GetParticleName(), keV, G4VDNAModel::LoadCrossSectionData(), G4VDNAModel::SetHighELimit(), G4VDNAModel::SetLowELimit(), and verboseLevel.
|
private |
LinLinInterpolate.
e1 | |
e2 | |
e | |
xs1 | |
xs2 |
Definition at line 470 of file G4DNAPTBElasticModel.cc.
View newest version in sPHENIX GitHub at line 470 of file G4DNAPTBElasticModel.cc
Referenced by QuadInterpolator().
|
private |
LinLogInterpolate.
e1 | |
e2 | |
e | |
xs1 | |
xs2 |
Definition at line 456 of file G4DNAPTBElasticModel.cc.
View newest version in sPHENIX GitHub at line 456 of file G4DNAPTBElasticModel.cc
|
private |
LogLogInterpolate.
e1 | |
e2 | |
e | |
xs1 | |
xs2 |
Definition at line 484 of file G4DNAPTBElasticModel.cc.
View newest version in sPHENIX GitHub at line 484 of file G4DNAPTBElasticModel.cc
|
private |
|
private |
QuadInterpolator.
e11 | |
e12 | |
e21 | |
e22 | |
x11 | |
x12 | |
x21 | |
x22 | |
t1 | |
t2 | |
t | |
e |
Definition at line 499 of file G4DNAPTBElasticModel.cc.
View newest version in sPHENIX GitHub at line 499 of file G4DNAPTBElasticModel.cc
References LinLinInterpolate().
|
private |
RandomizeCosTheta.
k | |
materialName |
Definition at line 529 of file G4DNAPTBElasticModel.cc.
View newest version in sPHENIX GitHub at line 529 of file G4DNAPTBElasticModel.cc
References G4Electron::ElectronDefinition(), eV, G4UniformRand, pi, Theta(), and theta().
Referenced by SampleSecondaries().
|
privatevirtual |
ReadDiffCSFile Method to read the differential cross section files. This method is not standard yet so every model must implement its own.
materialName | |
particleName | |
file |
Reimplemented from G4VDNAModel.
Definition at line 197 of file G4DNAPTBElasticModel.cc.
View newest version in sPHENIX GitHub at line 197 of file G4DNAPTBElasticModel.cc
References diffCrossSectionData, eValuesVect, FatalException, file, G4Exception(), test(), and tValuesVec.
|
virtual |
SampleSecondaries Method called after CrossSectionPerVolume if the process is the one which is selected (according to the sampling on the calculated path length). Here, the characteristics of the incident and created (if any) particle(s) are set (energy, momentum ...).
materialName | |
particleChangeForGamma | |
tmin | |
tmax |
Implements G4VDNAModel.
Definition at line 346 of file G4DNAPTBElasticModel.cc.
View newest version in sPHENIX GitHub at line 346 of file G4DNAPTBElasticModel.cc
References CLHEP::Hep3Vector::cross(), fKillBelowEnergy, fStopAndKill, G4cout, G4endl, G4UniformRand, G4VDNAModel::GetHighELimit(), G4DynamicParticle::GetKineticEnergy(), G4VDNAModel::GetLowELimit(), G4DynamicParticle::GetMomentumDirection(), G4DynamicParticle::GetParticleDefinition(), G4ParticleDefinition::GetParticleName(), CLHEP::Hep3Vector::orthogonal(), phi, pi, G4VParticleChange::ProposeLocalEnergyDeposit(), G4ParticleChangeForGamma::ProposeMomentumDirection(), G4VParticleChange::ProposeTrackStatus(), RandomizeCosTheta(), G4ParticleChangeForGamma::SetProposedKineticEnergy(), CLHEP::Hep3Vector::unit(), and verboseLevel.
|
private |
Theta To return an angular theta value from the differential file. This method uses interpolations to calculate the theta value.
fParticleDefinition | |
k | |
integrDiff | |
materialName |
Definition at line 403 of file G4DNAPTBElasticModel.cc.
View newest version in sPHENIX GitHub at line 403 of file G4DNAPTBElasticModel.cc
References G4Electron::ElectronDefinition(), G4ParticleDefinition::GetParticleName(), t1, t2, and theta().
Referenced by RandomizeCosTheta().
|
private |
A map: [materialName][particleName]=DiffCrossSectionTable.
Definition at line 126 of file G4DNAPTBElasticModel.hh.
View newest version in sPHENIX GitHub at line 126 of file G4DNAPTBElasticModel.hh
Referenced by ReadDiffCSFile().
|
private |
map with vectors containing all the output energy (E) of the differential file
Definition at line 129 of file G4DNAPTBElasticModel.hh.
View newest version in sPHENIX GitHub at line 129 of file G4DNAPTBElasticModel.hh
Referenced by ReadDiffCSFile().
|
private |
energy kill limit
Definition at line 123 of file G4DNAPTBElasticModel.hh.
View newest version in sPHENIX GitHub at line 123 of file G4DNAPTBElasticModel.hh
Referenced by CrossSectionPerVolume(), G4DNAPTBElasticModel(), and SampleSecondaries().
|
private |
map to save the different energy kill limits for the materials
Definition at line 122 of file G4DNAPTBElasticModel.hh.
View newest version in sPHENIX GitHub at line 122 of file G4DNAPTBElasticModel.hh
|
private |
map with vectors containing all the incident (T) energy of the differential file
Definition at line 130 of file G4DNAPTBElasticModel.hh.
View newest version in sPHENIX GitHub at line 130 of file G4DNAPTBElasticModel.hh
Referenced by ReadDiffCSFile().
|
private |
verbose level
Definition at line 121 of file G4DNAPTBElasticModel.hh.
View newest version in sPHENIX GitHub at line 121 of file G4DNAPTBElasticModel.hh
Referenced by CrossSectionPerVolume(), G4DNAPTBElasticModel(), Initialise(), and SampleSecondaries().