32 #ifndef G4DNAPTBElasticModel_h
33 #define G4DNAPTBElasticModel_h 1
61 const G4String& nam =
"DNAPTBElasticModel");
125 typedef std::map<G4String, std::map<G4String, std::map<double, std::map<double, double> > > >
TriDimensionMap;
128 typedef std::map<G4String, std::map<G4String, std::map<double, std::vector<double> > > >
VecMap;
130 std::map<G4String, std::map<G4String, std::vector<double> > >
tValuesVec;
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 s...
G4int verboseLevel
verbose level
std::map< G4String, std::map< G4String, std::map< double, std::vector< double > > > > VecMap
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 select...
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 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...
TriDimensionMap diffCrossSectionData
A map: [materialName][particleName]=DiffCrossSectionTable.
std::map< G4String, double > killBelowEnergyTable
map to save the different energy kill limits for the materials
static const G4double emax
G4double RandomizeCosTheta(G4double k, const G4String &materialName)
RandomizeCosTheta.
virtual ~G4DNAPTBElasticModel()
~G4DNAPTBElasticModel Destructor
std::map< G4String, std::map< G4String, std::vector< double > > > tValuesVec
map with vectors containing all the incident (T) energy of the differential file
G4double fKillBelowEnergy
energy kill limit
G4DNAPTBElasticModel(const G4String &applyToMaterial="all", const G4ParticleDefinition *p=0, const G4String &nam="DNAPTBElasticModel")
G4DNAPTBElasticModel Constructor.
G4double LogLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2)
LogLogInterpolate.
G4double LinLinInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2)
LinLinInterpolate.
The G4DNAPTBElasticModel class This class implements the elastic model for the DNA materials and prec...
std::map< G4String, std::map< G4String, std::map< double, std::map< double, double > > > > TriDimensionMap
G4double LinLogInterpolate(G4double e1, G4double e2, G4double e, G4double xs1, G4double xs2)
LinLogInterpolate.
G4DNAPTBElasticModel & operator=(const G4DNAPTBElasticModel &right)
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 u...
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 sec...