70#ifndef G4EmModelManager_h
71#define G4EmModelManager_h 1
95 if (nModelsForRegion>1) {
96 idx = nModelsForRegion;
98 do {--idx;}
while (idx > 0 && e <= lowKineticEnergy[idx]);
100 return theListOfModelIndexes[idx];
104 return theListOfModelIndexes[
n];
107 inline G4int NumberOfModels()
const {
108 return nModelsForRegion;
112 return lowKineticEnergy[
n];
115 inline const G4Region* Region()
const {
123 G4int nModelsForRegion;
124 G4int* theListOfModelIndexes;
160 G4bool startFromNull =
true,
212 std::vector<G4VEmModel*> models;
213 std::vector<G4VEmFluctuationModel*> flucModels;
214 std::vector<const G4Region*> regions;
215 std::vector<G4int> orderOfModels;
216 std::vector<G4int> isUsed;
221 std::vector<G4int> idxOfRegionModels;
222 std::vector<G4RegionModels*> setOfRegionModels;
245 currRegionModel = setOfRegionModels[idxOfRegionModels[index]];
247 currModel = models[currRegionModel->SelectIndex(kinEnergy)];
283G4EmModelManager::ComputeDEDX(
G4VEmModel* model,
290 if(model && cut > emin) {
292 if(emin > 0.0) {dedx -= model->
ComputeDEDX(couple,particle,e,emin);}
void AddEmModel(G4int, G4VEmModel *, G4VEmFluctuationModel *, const G4Region *)
G4EmModelManager & operator=(const G4EmModelManager &right)=delete
void UpdateEmModel(const G4String &model_name, G4double emin, G4double emax)
void DumpModelList(std::ostream &out, G4int verb)
G4int NumberOfModels() const
void SetFluoFlag(G4bool val)
const G4DataVector * Initialise(const G4ParticleDefinition *part, const G4ParticleDefinition *secPart, G4double minSubRange, G4int verb)
void FillLambdaVector(G4PhysicsVector *, const G4MaterialCutsCouple *, G4bool startFromNull=true, G4EmTableType t=fRestricted)
void FillDEDXVector(G4PhysicsVector *, const G4MaterialCutsCouple *, G4EmTableType t=fRestricted)
G4VEmModel * SelectModel(G4double &energy, size_t &index)
const G4DataVector * SubCutoff() const
G4int NumberOfRegionModels(size_t index_couple) const
const G4DataVector * Cuts() const
G4EmModelManager(G4EmModelManager &)=delete
G4VEmModel * GetRegionModel(G4int idx, size_t index_couple)
G4VEmModel * GetModel(G4int idx, G4bool ver=false)
virtual G4double ComputeDEDX(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)