71#ifndef G4EmModelManager_h
72#define G4EmModelManager_h 1
98 if (nModelsForRegion>1) {
99 idx = nModelsForRegion;
100 do {--idx;}
while (idx > 0 && e <= lowKineticEnergy[idx]);
102 return theListOfModelIndexes[idx];
106 return theListOfModelIndexes[
n];
109 inline G4int NumberOfModels()
const {
110 return nModelsForRegion;
114 return lowKineticEnergy[
n];
117 inline const G4Region* Region()
const {
125 G4int nModelsForRegion;
126 G4int* theListOfModelIndexes;
201 std::vector<G4VEmModel*> models;
202 std::vector<G4VEmFluctuationModel*> flucModels;
203 std::vector<const G4Region*> regions;
204 std::vector<G4int> orderOfModels;
205 std::vector<G4int> isUsed;
210 std::vector<G4int> idxOfRegionModels;
211 std::vector<G4RegionModels*> setOfRegionModels;
234 currRegionModel = setOfRegionModels[idxOfRegionModels[index]];
236 currModel = models[currRegionModel->SelectIndex(kinEnergy)];
272G4EmModelManager::ComputeDEDX(
G4VEmModel* model,
279 if(model && cut > emin) {
281 if(emin > 0.0) {dedx -= model->
ComputeDEDX(couple,particle,e,emin);}
void UpdateEmModel(const G4String &, G4double, G4double)
void AddEmModel(G4int, G4VEmModel *, G4VEmFluctuationModel *, const G4Region *)
G4int NumberOfModels() const
void SetFluoFlag(G4bool val)
void DumpModelList(G4int verb)
G4VEmModel * GetModel(G4int, G4bool ver=false)
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
const G4DataVector * Cuts() const
const G4DataVector * Initialise(const G4ParticleDefinition *, const G4ParticleDefinition *, G4double, G4int)
G4double ComputeDEDX(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)