71 #ifndef G4EmModelManager_h
72 #define G4EmModelManager_h 1
98 if (nModelsForRegion>1) {
99 idx = nModelsForRegion;
101 do {--idx;}
while (idx > 0 && e <= lowKineticEnergy[idx]);
103 return theListOfModelIndexes[idx];
107 return theListOfModelIndexes[
n];
111 return nModelsForRegion;
115 return lowKineticEnergy[
n];
118 inline const G4Region* Region()
const {
126 G4int nModelsForRegion;
127 G4int* theListOfModelIndexes;
162 G4bool startFromNull =
true,
217 std::vector<G4VEmModel*> models;
218 std::vector<G4VEmFluctuationModel*> flucModels;
219 std::vector<const G4Region*> regions;
220 std::vector<G4int> orderOfModels;
221 std::vector<G4int> isUsed;
226 std::vector<G4int> idxOfRegionModels;
227 std::vector<G4RegionModels*> setOfRegionModels;
250 currRegionModel = setOfRegionModels[idxOfRegionModels[index]];
252 currModel = models[currRegionModel->SelectIndex(kinEnergy)];
295 if(model && cut > emin) {
297 if(emin > 0.0) {dedx -= model->
ComputeDEDX(couple,particle,e,emin);}
G4int NumberOfRegionModels(size_t index_couple) const
G4VEmModel * GetModel(G4int idx, G4bool ver=false)
const G4DataVector * Cuts() const
void UpdateEmModel(const G4String &model_name, G4double emin, G4double emax)
void AddEmModel(G4int, G4VEmModel *, G4VEmFluctuationModel *, const G4Region *)
const G4DataVector * SubCutoff() const
void FillLambdaVector(G4PhysicsVector *, const G4MaterialCutsCouple *, G4bool startFromNull=true, G4EmTableType t=fRestricted)
static const G4double reg
G4VEmModel * GetRegionModel(G4int idx, size_t index_couple)
void FillDEDXVector(G4PhysicsVector *, const G4MaterialCutsCouple *, G4EmTableType t=fRestricted)
void DumpModelList(G4int verb)
const G4DataVector * Initialise(const G4ParticleDefinition *part, const G4ParticleDefinition *secPart, G4double minSubRange, G4int verb)
static const G4double emax
G4int NumberOfModels() const
virtual G4double ComputeDEDX(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)
G4double energy(const ThreeVector &p, const G4double m)
G4VEmModel * SelectModel(G4double &energy, size_t &index)
void SetFluoFlag(G4bool val)
const XML_Char XML_Content * model