42#ifndef G4DNACPA100ElasticModel_h
43#define G4DNACPA100ElasticModel_h 1
57 using TriDimensionMap =
59 std::map<G4double, std::map<G4double, G4double>>>>;
62 std::map<const G4ParticleDefinition*, std::map<G4double, std::vector<G4double>>>>;
66 const G4String& nam =
"DNACPA100ElasticModel");
92 G4bool isInitialised =
false;
93 G4int verboseLevel = 0;
96 const std::size_t& materialID);
109 TriDimensionMap diffCrossSectionData;
111 std::map<std::size_t, std::map<const G4ParticleDefinition*, std::vector<G4double>>> tValuesVec;
129 std::map<std::size_t ,
G4double> fLevels;
G4DNACPA100ElasticModel(const G4DNACPA100ElasticModel &)=delete
void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy) override
SampleSecondaries Each model must implement SampleSecondaries to decide if a particle will be created...
G4DNACPA100ElasticModel(const G4ParticleDefinition *p=nullptr, const G4String &nam="DNACPA100ElasticModel")
G4double GetElasticLevel(const std::size_t &l)
~G4DNACPA100ElasticModel() override=default
void SelectStationary(G4bool input)
G4DNACPA100ElasticModel & operator=(const G4DNACPA100ElasticModel &right)=delete
G4double CrossSectionPerVolume(const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax) override
CrossSectionPerVolume Every model must implement its own CrossSectionPerVolume method....
void Initialise(const G4ParticleDefinition *, const G4DataVector &) override
Initialise Each model must implement an Initialize method.