35# pragma warning(disable : 4503)
132 return fHighEnergyLimits[materialID][particle];
143 return fLowEnergyLimits[materialID][particle];
154 fHighEnergyLimits[materialID][particle] = lim;
165 fLowEnergyLimits[materialID][particle] = lim;
174 std::map<const G4ParticleDefinition*, std::unique_ptr<G4DNACrossSectionDataSet>>>;
273 G4bool IsMaterialExistingInModel(
const size_t& materialID);
291 std::vector<size_t> fModelMaterials;
293 std::vector<const G4ParticleDefinition*>
295 std::vector<G4String> fModelCSFiles;
296 std::vector<G4String> fModelDiffCSFiles;
297 std::vector<G4double>
300 std::map<size_t, std::map<const G4ParticleDefinition*, G4double>>
302 std::map<size_t, std::map<const G4ParticleDefinition*, G4double>>
~G4VDNAModel() override
~G4VDNAModel
G4String GetName()
GetName.
void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin=0, G4double tmax=DBL_MAX) override=0
SampleSecondaries Each model must implement SampleSecondaries to decide if a particle will be created...
void LoadCrossSectionData(const G4ParticleDefinition *particleName)
LoadCrossSectionData Method to loop on all the registered materials in the model and load the corresp...
G4bool IsMaterialDefine(const size_t &materialID)
IsMaterialDefine Check if the given material is defined in the simulation.
void Initialise(const G4ParticleDefinition *particle, const G4DataVector &cuts) override=0
Initialise Each model must implement an Initialize method.
void EnableForMaterialAndParticle(const size_t &materialID, const G4ParticleDefinition *p)
EnableMaterialAndParticle.
std::map< size_t, std::map< const G4ParticleDefinition *, std::unique_ptr< G4DNACrossSectionDataSet > > > MaterialParticleMapData
G4VDNAModel(const G4String &nam, const G4String &applyToMaterial="")
G4VDNAModel Constructeur of the G4VDNAModel class.
void SetLowELimit(const size_t &materialID, const G4ParticleDefinition *particle, G4double lim)
SetLowEnergyLimit.
void SetHighELimit(const size_t &materialID, const G4ParticleDefinition *particle, G4double lim)
SetHighEnergyLimit.
G4double GetHighELimit(const size_t &materialID, const G4ParticleDefinition *particle)
GetHighEnergyLimit.
G4int RandomSelectShell(const G4double &k, const G4ParticleDefinition *particle, const size_t &materialName)
RandomSelectShell Method to randomely select a shell from the data table uploaded....
std::vector< G4String > BuildApplyToMatVect(const G4String &materials)
BuildApplyToMatVect Build the material name vector which is used to know the materials the user want ...
G4bool IsParticleExistingInModelForMaterial(const G4ParticleDefinition *particleName, const size_t &materialID)
IsParticleExistingInModelForMaterial To check two things: 1- is the material existing in model ?...
void AddCrossSectionData(const size_t &materialName, const G4ParticleDefinition *particleName, const G4String &fileCS, const G4String &fileDiffCS, const G4double &scaleFactor)
AddCrossSectionData Method used during the initialization of the model class to add a new material....
G4double GetLowELimit(const size_t &materialID, const G4ParticleDefinition *particle)
GetLowEnergyLimit.
G4double CrossSectionPerVolume(const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax) override=0
CrossSectionPerVolume Every model must implement its own CrossSectionPerVolume method....
virtual void ReadDiffCSFile(const size_t &materialName, const G4ParticleDefinition *particleName, const G4String &path, const G4double &scaleFactor)
ReadDiffCSFile Virtual method that need to be implemented if one wish to use the differential cross s...
void ReadAndSaveCSFile(const size_t &materialID, const G4ParticleDefinition *p, const G4String &file, const G4double &scaleFactor)
ReadAndSaveCSFile Read and save a "simple" cross section file : use of G4DNACrossSectionDataSet->load...
MaterialParticleMapData * GetData()
GetTableData.
void AddCrossSectionData(const size_t &materialName, const G4ParticleDefinition *particleName, const G4String &fileCS, const G4double &scaleFactor)
AddCrossSectionData Method used during the initialization of the model class to add a new material....