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];
110 return nModelsForRegion;
114 return lowKineticEnergy[
n];
117 inline const G4Region* Region()
const {
125 G4int nModelsForRegion;
126 G4int* theListOfModelIndexes;
161 G4bool startFromNull =
true,
203 std::vector<G4VEmModel*> models;
204 std::vector<G4VEmFluctuationModel*> flucModels;
205 std::vector<const G4Region*> regions;
206 std::vector<G4int> orderOfModels;
207 std::vector<G4int> isUsed;
212 std::vector<G4int> idxOfRegionModels;
213 std::vector<G4RegionModels*> setOfRegionModels;
236 currRegionModel = setOfRegionModels[idxOfRegionModels[
index]];
238 currModel = models[currRegionModel->SelectIndex(kinEnergy)];
281 if(model && cut > emin) {
283 if(emin > 0.0) {dedx -= model->
ComputeDEDX(couple,particle,e,emin);}
void UpdateEmModel(const G4String &, G4double, G4double)
const G4DataVector * Cuts() const
G4VEmModel * GetModel(G4int, G4bool ver=false)
void AddEmModel(G4int, G4VEmModel *, G4VEmFluctuationModel *, const G4Region *)
const G4DataVector * SubCutoff() const
void FillLambdaVector(G4PhysicsVector *, const G4MaterialCutsCouple *, G4bool startFromNull=true, G4EmTableType t=fRestricted)
void FillDEDXVector(G4PhysicsVector *, const G4MaterialCutsCouple *, G4EmTableType t=fRestricted)
const XML_Char XML_Content * model
void DumpModelList(G4int verb)
const G4DataVector * Initialise(const G4ParticleDefinition *part, const G4ParticleDefinition *secPart, G4double minSubRange, G4int verb)
G4int NumberOfModels() const
G4double ComputeDEDX(const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)
G4VEmModel * SelectModel(G4double &energy, size_t &index)
void SetFluoFlag(G4bool val)