52#ifndef G4LossTableManager_h
53#define G4LossTableManager_h 1
251 void CopyDEDXTables();
262 std::map<PD,G4VEnergyLossProcess*,std::less<PD> > loss_map;
264 std::vector<G4VEnergyLossProcess*> loss_vector;
265 std::vector<PD> part_vector;
266 std::vector<PD> base_part_vector;
267 std::vector<G4bool> tables_are_built;
268 std::vector<G4bool> isActive;
269 std::vector<G4PhysicsTable*> dedx_vector;
270 std::vector<G4PhysicsTable*> range_vector;
271 std::vector<G4PhysicsTable*> inv_range_vector;
272 std::vector<G4VMultipleScattering*> msc_vector;
273 std::vector<G4VEmProcess*> emp_vector;
274 std::vector<G4VEmModel*> mod_vector;
275 std::vector<G4VEmFluctuationModel*> fmod_vector;
276 std::vector<G4VProcess*> p_vector;
288 G4bool all_tables_are_built;
289 G4bool startInitialisation;
316 return currentLoss ? currentLoss->
GetDEDX(kineticEnergy, couple) : 0.0;
327 return currentLoss ? currentLoss->
GetDEDXForSubsec(kineticEnergy, couple) : 0.0;
361 return currentLoss ? currentLoss->
GetRange(kineticEnergy, couple) :
DBL_MAX;
399 return emCorrections;
406 return atomDeexcitation;
413 return subcutProducer;
const G4ParticleDefinition * GetParticleDefinition() const
void SetAtomDeexcitation(G4VAtomDeexcitation *)
static G4LossTableManager * Instance()
const std::vector< G4VEmProcess * > & GetEmProcessVector()
G4double GetCSDARange(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
G4VEnergyLossProcess * GetEnergyLossProcess(const G4ParticleDefinition *)
void SetGammaGeneralProcess(G4VEmProcess *)
void LocalPhysicsTables(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
G4LossTableBuilder * GetTableBuilder()
G4double GetSubDEDX(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
void PreparePhysicsTable(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p, G4bool theMaster)
void BuildPhysicsTable(const G4ParticleDefinition *aParticle)
void SetPositronGeneralProcess(G4VEmProcess *)
G4VSubCutProducer * SubCutProducer()
G4double GetEnergy(const G4ParticleDefinition *aParticle, G4double range, const G4MaterialCutsCouple *couple)
const std::vector< G4VMultipleScattering * > & GetMultipleScatteringVector()
G4VEmProcess * GetGammaGeneralProcess()
void SetVerbose(G4int val)
void DeRegister(G4VEnergyLossProcess *p)
G4NIELCalculator * NIELCalculator()
void SetNIELCalculator(G4NIELCalculator *)
G4VEmProcess * GetPositronGeneralProcess()
G4EmConfigurator * EmConfigurator()
void Register(G4VEnergyLossProcess *p)
G4ElectronIonPair * ElectronIonPair()
void SetElectronGeneralProcess(G4VEmProcess *)
G4EmSaturation * EmSaturation()
G4VEmProcess * GetElectronGeneralProcess()
const std::vector< G4VEnergyLossProcess * > & GetEnergyLossProcessVector()
G4VAtomDeexcitation * AtomDeexcitation()
G4double GetRangeFromRestricteDEDX(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
G4EmCorrections * EmCorrections()
void SetSubCutProducer(G4VSubCutProducer *)
G4double GetDEDXDispersion(const G4MaterialCutsCouple *couple, const G4DynamicParticle *dp, G4double &length)
void RegisterExtraParticle(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
G4double GetRange(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
G4double GetDEDX(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
G4double GetRangeForLoss(G4double kineticEnergy, const G4MaterialCutsCouple *)
G4double GetKineticEnergy(G4double range, const G4MaterialCutsCouple *)
G4double GetDEDXForSubsec(G4double kineticEnergy, const G4MaterialCutsCouple *)
G4double GetCSDARange(G4double kineticEnergy, const G4MaterialCutsCouple *)
G4double GetDEDX(G4double kineticEnergy, const G4MaterialCutsCouple *)
G4double GetRange(G4double kineticEnergy, const G4MaterialCutsCouple *)
G4double GetDEDXDispersion(const G4MaterialCutsCouple *couple, const G4DynamicParticle *dp, G4double length)