Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Friends
G4LossTableManager Class Reference

#include <G4LossTableManager.hh>

Public Member Functions

 ~G4LossTableManager ()
 
void Clear ()
 
void PreparePhysicsTable (const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p, G4bool theMaster)
 
void PreparePhysicsTable (const G4ParticleDefinition *aParticle, G4VEmProcess *p, G4bool theMaster)
 
void PreparePhysicsTable (const G4ParticleDefinition *aParticle, G4VMultipleScattering *p, G4bool theMaster)
 
void BuildPhysicsTable (const G4ParticleDefinition *aParticle)
 
void BuildPhysicsTable (const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
 
void LocalPhysicsTables (const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
 
G4double GetDEDX (const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
G4double GetSubDEDX (const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
G4double GetRange (const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
G4double GetCSDARange (const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
G4double GetRangeFromRestricteDEDX (const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
G4double GetEnergy (const G4ParticleDefinition *aParticle, G4double range, const G4MaterialCutsCouple *couple)
 
G4double GetDEDXDispersion (const G4MaterialCutsCouple *couple, const G4DynamicParticle *dp, G4double &length)
 
void Register (G4VEnergyLossProcess *p)
 
void DeRegister (G4VEnergyLossProcess *p)
 
void Register (G4VMultipleScattering *p)
 
void DeRegister (G4VMultipleScattering *p)
 
void Register (G4VEmProcess *p)
 
void DeRegister (G4VEmProcess *p)
 
void Register (G4VEmModel *p)
 
void DeRegister (G4VEmModel *p)
 
void Register (G4VEmFluctuationModel *p)
 
void DeRegister (G4VEmFluctuationModel *p)
 
void RegisterExtraParticle (const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
 
void SetLossFluctuations (G4bool val)
 
void SetSubCutoff (G4bool val, const G4Region *r=0)
 
void SetIntegral (G4bool val)
 
void SetRandomStep (G4bool val)
 
void SetMinSubRange (G4double val)
 
void SetMinEnergy (G4double val)
 
void SetMaxEnergy (G4double val)
 
void SetMaxEnergyForCSDARange (G4double val)
 
void SetMaxEnergyForMuons (G4double val)
 
void SetDEDXBinning (G4int val)
 
void SetDEDXBinningForCSDARange (G4int val)
 
void SetLambdaBinning (G4int val)
 
G4int GetNumberOfBinsPerDecade () const
 
void SetStepFunction (G4double v1, G4double v2)
 
void SetBuildCSDARange (G4bool val)
 
void SetLPMFlag (G4bool val)
 
void SetSplineFlag (G4bool val)
 
void SetLinearLossLimit (G4double val)
 
void SetBremsstrahlungTh (G4double val)
 
void SetFactorForAngleLimit (G4double val)
 
void SetVerbose (G4int val)
 
G4EnergyLossMessengerGetMessenger ()
 
G4bool BuildCSDARange () const
 
G4bool LPMFlag () const
 
G4bool SplineFlag () const
 
G4bool IsMaster () const
 
G4double BremsstrahlungTh () const
 
G4double FactorForAngleLimit () const
 
G4double MinKinEnergy () const
 
G4double MaxKinEnergy () const
 
const std::vector
< G4VEnergyLossProcess * > & 
GetEnergyLossProcessVector ()
 
const std::vector
< G4VEmProcess * > & 
GetEmProcessVector ()
 
const std::vector
< G4VMultipleScattering * > & 
GetMultipleScatteringVector ()
 
G4VEnergyLossProcessGetEnergyLossProcess (const G4ParticleDefinition *)
 
G4EmCorrectionsEmCorrections ()
 
G4EmSaturationEmSaturation ()
 
G4EmConfiguratorEmConfigurator ()
 
G4ElectronIonPairElectronIonPair ()
 
G4VAtomDeexcitationAtomDeexcitation ()
 
G4LossTableBuilderGetTableBuilder ()
 
void SetAtomDeexcitation (G4VAtomDeexcitation *)
 

Static Public Member Functions

static G4LossTableManagerInstance ()
 

Friends

class G4ThreadLocalSingleton< G4LossTableManager >
 

Detailed Description

Definition at line 100 of file G4LossTableManager.hh.

Constructor & Destructor Documentation

G4LossTableManager::~G4LossTableManager ( )

Definition at line 126 of file G4LossTableManager.cc.

References test::a, test::b, and Clear().

127 {
128  //G4cout << "### G4LossTableManager::~G4LossTableManager()" << G4endl;
129  for (G4int i=0; i<n_loss; ++i) {
130  if( loss_vector[i] ) { delete loss_vector[i]; }
131  }
132  size_t msc = msc_vector.size();
133  for (size_t j=0; j<msc; ++j) {
134  if( msc_vector[j] ) { delete msc_vector[j]; }
135  }
136  size_t emp = emp_vector.size();
137  for (size_t k=0; k<emp; ++k) {
138  if( emp_vector[k] ) { delete emp_vector[k]; }
139  }
140  size_t mod = mod_vector.size();
141  size_t fmod = fmod_vector.size();
142  for (size_t a=0; a<mod; ++a) {
143  if( mod_vector[a] ) {
144  for (size_t b=0; b<fmod; ++b) {
145  if((G4VEmModel*)(fmod_vector[b]) == mod_vector[a]) {
146  fmod_vector[b] = 0;
147  }
148  }
149  delete mod_vector[a];
150  }
151  }
152  for (size_t b=0; b<fmod; ++b) {
153  if( fmod_vector[b] ) { delete fmod_vector[b]; }
154  }
155  Clear();
156  delete theMessenger;
157  delete tableBuilder;
158  delete emCorrections;
159  delete emSaturation;
160  delete emConfigurator;
161  delete emElectronIonPair;
162  delete atomDeexcitation;
163 }
int G4int
Definition: G4Types.hh:78

Member Function Documentation

G4VAtomDeexcitation * G4LossTableManager::AtomDeexcitation ( )
G4double G4LossTableManager::BremsstrahlungTh ( ) const

Definition at line 1237 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), G4eBremsstrahlung::InitialiseEnergyLossProcess(), and G4eBremsstrahlung::PrintInfo().

1238 {
1239  return bremsTh;
1240 }
G4bool G4LossTableManager::BuildCSDARange ( ) const

Definition at line 947 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4VEnergyLossProcess::PreparePhysicsTable().

948 {
949  return buildCSDARange;
950 }
void G4LossTableManager::BuildPhysicsTable ( const G4ParticleDefinition aParticle)

Definition at line 504 of file G4LossTableManager.cc.

References G4EmConfigurator::Clear().

Referenced by G4VMultipleScattering::BuildPhysicsTable(), and G4VEnergyLossProcess::BuildPhysicsTable().

505 {
506  if(-1 == run && startInitialisation) {
507  emConfigurator->Clear();
508  }
509 }
void G4LossTableManager::BuildPhysicsTable ( const G4ParticleDefinition aParticle,
G4VEnergyLossProcess p 
)

Definition at line 603 of file G4LossTableManager.cc.

References G4VEnergyLossProcess::BaseParticle(), G4EmConfigurator::Clear(), G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4VAtomDeexcitation::InitialiseAtomicDeexcitation(), G4VEnergyLossProcess::IsIonisationProcess(), G4VEnergyLossProcess::Particle(), and G4VEnergyLossProcess::SetIonisation().

606 {
607  if(1 < verbose) {
608  G4cout << "### G4LossTableManager::BuildPhysicsTable() for "
609  << aParticle->GetParticleName()
610  << " and process " << p->GetProcessName() << G4endl;
611  }
612  // clear configurator
613  if(-1 == run && startInitialisation) {
614  emConfigurator->Clear();
615  firstParticle = aParticle;
616  }
617  if(startInitialisation) {
618  ++run;
619  if(1 < verbose) {
620  G4cout << "===== G4LossTableManager::BuildPhysicsTable() for run "
621  << run << " =====" << G4endl;
622  }
623  if(atomDeexcitation) {
624  atomDeexcitation->InitialiseAtomicDeexcitation();
625  }
626  currentParticle = 0;
627  all_tables_are_built= true;
628  }
629 
630  // initialisation before any table is built
631  if ( startInitialisation && aParticle == firstParticle ) {
632 
633  startInitialisation = false;
634  if(1 < verbose) {
635  G4cout << "### G4LossTableManager start initilisation for first particle "
636  << firstParticle->GetParticleName()
637  << G4endl;
638  }
639  for (G4int i=0; i<n_loss; ++i) {
640  G4VEnergyLossProcess* el = loss_vector[i];
641 
642  if(el) {
643  isActive[i] = true;
644  /*
645  const G4ProcessManager* pm = el->GetProcessManager();
646  isActive[i] = false;
647  if(pm) { isActive[i] = pm->GetProcessActivation(el); }
648  */
649  base_part_vector[i] = el->BaseParticle();
650  tables_are_built[i] = false;
651  all_tables_are_built= false;
652  if(!isActive[i]) {
653  el->SetIonisation(false);
654  tables_are_built[i] = true;
655  }
656 
657  if(1 < verbose) {
658  G4cout << i <<". "<< el->GetProcessName();
659  if(el->Particle()) {
660  G4cout << " for " << el->Particle()->GetParticleName();
661  }
662  G4cout << " active= " << isActive[i]
663  << " table= " << tables_are_built[i]
664  << " isIonisation= " << el->IsIonisationProcess();
665  if(base_part_vector[i]) {
666  G4cout << " base particle "
667  << base_part_vector[i]->GetParticleName();
668  }
669  G4cout << G4endl;
670  }
671  } else {
672  tables_are_built[i] = true;
673  part_vector[i] = 0;
674  isActive[i] = false;
675  }
676  }
677  }
678 
679  // Set run time parameters
680  SetParameters(aParticle, p);
681 
682  if (all_tables_are_built) { return; }
683 
684  // Build tables for given particle
685  all_tables_are_built = true;
686 
687  for(G4int i=0; i<n_loss; ++i) {
688  if(p == loss_vector[i] && !tables_are_built[i] && !base_part_vector[i]) {
689  const G4ParticleDefinition* curr_part = part_vector[i];
690  if(1 < verbose) {
691  G4cout << "### Build Table for " << p->GetProcessName()
692  << " and " << curr_part->GetParticleName() << G4endl;
693  }
694  G4VEnergyLossProcess* curr_proc = BuildTables(curr_part);
695  if(curr_proc) { CopyTables(curr_part, curr_proc); }
696  }
697  if ( !tables_are_built[i] ) { all_tables_are_built = false; }
698  }
699  if(0 == run && p->IsIonisationProcess()) { loss_map[aParticle] = p; }
700 
701  if(1 < verbose) {
702  G4cout << "### G4LossTableManager::BuildPhysicsTable end: "
703  << "all_tables_are_built= " << all_tables_are_built
704  << G4endl;
705  }
706  if(all_tables_are_built) {
707  if(1 < verbose) {
708  G4cout << "%%%%% All dEdx and Range tables are built for master run= "
709  << run << " %%%%%" << G4endl;
710  }
711  }
712 }
void SetIonisation(G4bool val)
const char * p
Definition: xmltok.h:285
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
const G4ParticleDefinition * BaseParticle() const
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
const G4ParticleDefinition * Particle() const
#define G4endl
Definition: G4ios.hh:61
G4bool IsIonisationProcess() const
void G4LossTableManager::Clear ( )

Definition at line 218 of file G4LossTableManager.cc.

Referenced by ~G4LossTableManager().

219 {
220  all_tables_are_built = false;
221  currentLoss = 0;
222  currentParticle = 0;
223  if(n_loss)
224  {
225  dedx_vector.clear();
226  range_vector.clear();
227  inv_range_vector.clear();
228  loss_map.clear();
229  loss_vector.clear();
230  part_vector.clear();
231  base_part_vector.clear();
232  tables_are_built.clear();
233  isActive.clear();
234  n_loss = 0;
235  }
236 }
void G4LossTableManager::DeRegister ( G4VEnergyLossProcess p)

Definition at line 272 of file G4LossTableManager.cc.

Referenced by G4VEmFluctuationModel::~G4VEmFluctuationModel(), G4VEmModel::~G4VEmModel(), G4VEmProcess::~G4VEmProcess(), G4VEnergyLossProcess::~G4VEnergyLossProcess(), and G4VMultipleScattering::~G4VMultipleScattering().

273 {
274  if(!p) { return; }
275  for (G4int i=0; i<n_loss; ++i) {
276  if(loss_vector[i] == p) { loss_vector[i] = 0; }
277  }
278 }
int G4int
Definition: G4Types.hh:78
void G4LossTableManager::DeRegister ( G4VMultipleScattering p)

Definition at line 298 of file G4LossTableManager.cc.

299 {
300  if(!p) { return; }
301  size_t msc = msc_vector.size();
302  for (size_t i=0; i<msc; ++i) {
303  if(msc_vector[i] == p) { msc_vector[i] = 0; }
304  }
305 }
void G4LossTableManager::DeRegister ( G4VEmProcess p)

Definition at line 325 of file G4LossTableManager.cc.

326 {
327  if(!p) { return; }
328  size_t emp = emp_vector.size();
329  for (size_t i=0; i<emp; ++i) {
330  if(emp_vector[i] == p) { emp_vector[i] = 0; }
331  }
332 }
void G4LossTableManager::DeRegister ( G4VEmModel p)

Definition at line 347 of file G4LossTableManager.cc.

References n.

348 {
349  size_t n = mod_vector.size();
350  for (size_t i=0; i<n; ++i) {
351  if(mod_vector[i] == p) { mod_vector[i] = 0; }
352  }
353 }
const G4int n
void G4LossTableManager::DeRegister ( G4VEmFluctuationModel p)

Definition at line 368 of file G4LossTableManager.cc.

References n.

369 {
370  size_t n = fmod_vector.size();
371  for (size_t i=0; i<n; ++i) {
372  if(fmod_vector[i] == p) { fmod_vector[i] = 0; }
373  }
374 }
const G4int n
G4ElectronIonPair * G4LossTableManager::ElectronIonPair ( )

Definition at line 1293 of file G4LossTableManager.cc.

1294 {
1295  return emElectronIonPair;
1296 }
G4EmConfigurator * G4LossTableManager::EmConfigurator ( )

Definition at line 1286 of file G4LossTableManager.cc.

1287 {
1288  return emConfigurator;
1289 }
G4EmCorrections * G4LossTableManager::EmCorrections ( )
G4EmSaturation * G4LossTableManager::EmSaturation ( )

Definition at line 1279 of file G4LossTableManager.cc.

Referenced by OpNovicePhysicsList::ConstructOp(), WLSOpticalPhysics::ConstructProcess(), and G4OpticalPhysics::ConstructProcess().

1280 {
1281  return emSaturation;
1282 }
G4double G4LossTableManager::FactorForAngleLimit ( ) const

Definition at line 1251 of file G4LossTableManager.cc.

Referenced by G4WentzelOKandVIxSection::Initialise(), G4WentzelVIRelXSection::Initialise(), and G4CoulombScattering::InitialiseProcess().

1252 {
1253  return factorForAngleLimit;
1254 }
G4double G4LossTableManager::GetCSDARange ( const G4ParticleDefinition aParticle,
G4double  kineticEnergy,
const G4MaterialCutsCouple couple 
)

Definition at line 1367 of file G4LossTableManager.cc.

References DBL_MAX, G4VEnergyLossProcess::GetCSDARange(), GetEnergyLossProcess(), and test::x.

Referenced by G4EmCalculator::GetCSDARange().

1370 {
1371  if(aParticle != currentParticle) { GetEnergyLossProcess(aParticle); }
1372  G4double x = DBL_MAX;
1373  if(currentLoss) { x = currentLoss->GetCSDARange(kineticEnergy, couple); }
1374  return x;
1375 }
G4double GetCSDARange(G4double &kineticEnergy, const G4MaterialCutsCouple *)
G4VEnergyLossProcess * GetEnergyLossProcess(const G4ParticleDefinition *)
double G4double
Definition: G4Types.hh:76
#define DBL_MAX
Definition: templates.hh:83
G4double G4LossTableManager::GetDEDX ( const G4ParticleDefinition aParticle,
G4double  kineticEnergy,
const G4MaterialCutsCouple couple 
)

Definition at line 1343 of file G4LossTableManager.cc.

References G4VEnergyLossProcess::GetDEDX(), GetEnergyLossProcess(), and test::x.

Referenced by G4EmCalculator::GetDEDX(), G4EnergyLossTables::GetDEDX(), G4EnergyLossTables::GetPreciseDEDX(), G4EnergyLossTables::GetPreciseRangeFromEnergy(), and RunAction::PrintDedxTables().

1346 {
1347  if(aParticle != currentParticle) { GetEnergyLossProcess(aParticle); }
1348  G4double x = 0.0;
1349  if(currentLoss) { x = currentLoss->GetDEDX(kineticEnergy, couple); }
1350  return x;
1351 }
G4double GetDEDX(G4double &kineticEnergy, const G4MaterialCutsCouple *)
G4VEnergyLossProcess * GetEnergyLossProcess(const G4ParticleDefinition *)
double G4double
Definition: G4Types.hh:76
G4double G4LossTableManager::GetDEDXDispersion ( const G4MaterialCutsCouple couple,
const G4DynamicParticle dp,
G4double length 
)

Definition at line 1416 of file G4LossTableManager.cc.

References G4VEnergyLossProcess::GetDEDXDispersion(), GetEnergyLossProcess(), G4DynamicParticle::GetParticleDefinition(), and test::x.

1420 {
1421  const G4ParticleDefinition* aParticle = dp->GetParticleDefinition();
1422  if(aParticle != currentParticle) { GetEnergyLossProcess(aParticle); }
1423  G4double x = 0.0;
1424  if(currentLoss) { currentLoss->GetDEDXDispersion(couple, dp, length); }
1425  return x;
1426 }
const G4ParticleDefinition * GetParticleDefinition() const
G4VEnergyLossProcess * GetEnergyLossProcess(const G4ParticleDefinition *)
G4double GetDEDXDispersion(const G4MaterialCutsCouple *couple, const G4DynamicParticle *dp, G4double length)
double G4double
Definition: G4Types.hh:76
const std::vector< G4VEmProcess * > & G4LossTableManager::GetEmProcessVector ( )
G4double G4LossTableManager::GetEnergy ( const G4ParticleDefinition aParticle,
G4double  range,
const G4MaterialCutsCouple couple 
)

Definition at line 1404 of file G4LossTableManager.cc.

References GetEnergyLossProcess(), G4VEnergyLossProcess::GetKineticEnergy(), and test::x.

Referenced by G4EmCalculator::GetKinEnergy(), and G4EnergyLossTables::GetPreciseEnergyFromRange().

1407 {
1408  if(aParticle != currentParticle) { GetEnergyLossProcess(aParticle); }
1409  G4double x = 0;
1410  if(currentLoss) { x = currentLoss->GetKineticEnergy(range, couple); }
1411  return x;
1412 }
G4double GetKineticEnergy(G4double &range, const G4MaterialCutsCouple *)
G4VEnergyLossProcess * GetEnergyLossProcess(const G4ParticleDefinition *)
double G4double
Definition: G4Types.hh:76
G4VEnergyLossProcess * G4LossTableManager::GetEnergyLossProcess ( const G4ParticleDefinition aParticle)

Definition at line 1322 of file G4LossTableManager.cc.

References G4ParticleDefinition::GetParticleType().

Referenced by GetCSDARange(), GetDEDX(), GetDEDXDispersion(), GetEnergy(), GetRange(), GetRangeFromRestricteDEDX(), GetSubDEDX(), and G4VMultipleScattering::StartTracking().

1323 {
1324  if(aParticle != currentParticle) {
1325  currentParticle = aParticle;
1326  std::map<PD,G4VEnergyLossProcess*,std::less<PD> >::const_iterator pos;
1327  if ((pos = loss_map.find(aParticle)) != loss_map.end()) {
1328  currentLoss = (*pos).second;
1329  } else {
1330  currentLoss = 0;
1331  if(aParticle->GetParticleType() == "nucleus") {
1332  if ((pos = loss_map.find(theGenericIon)) != loss_map.end()) {
1333  currentLoss = (*pos).second;
1334  }
1335  }
1336  }
1337  }
1338  return currentLoss;
1339 }
const G4String & GetParticleType() const
const std::vector< G4VEnergyLossProcess * > & G4LossTableManager::GetEnergyLossProcessVector ( )
G4EnergyLossMessenger * G4LossTableManager::GetMessenger ( )

Definition at line 927 of file G4LossTableManager.cc.

928 {
929  return theMessenger;
930 }
const std::vector< G4VMultipleScattering * > & G4LossTableManager::GetMultipleScatteringVector ( )
G4int G4LossTableManager::GetNumberOfBinsPerDecade ( ) const

Definition at line 1093 of file G4LossTableManager.cc.

Referenced by G4LossTableBuilder::BuildTableForModel(), and G4VEmModel::InitialiseElementSelectors().

1094 {
1095  return nbinsPerDecade;
1096 }
G4double G4LossTableManager::GetRange ( const G4ParticleDefinition aParticle,
G4double  kineticEnergy,
const G4MaterialCutsCouple couple 
)

Definition at line 1392 of file G4LossTableManager.cc.

References DBL_MAX, GetEnergyLossProcess(), G4VEnergyLossProcess::GetRange(), and test::x.

Referenced by G4ITStepProcessor::ApplyProductionCut(), PhysicsList::GetRange(), G4EmCalculator::GetRange(), G4EnergyLossTables::GetRange(), DMXMinEkineCuts::PostStepGetPhysicalInteractionLength(), G4UserSpecialCuts::PostStepGetPhysicalInteractionLength(), and G4EmSaturation::VisibleEnergyDeposition().

1395 {
1396  if(aParticle != currentParticle) { GetEnergyLossProcess(aParticle); }
1397  G4double x = DBL_MAX;
1398  if(currentLoss) { x = currentLoss->GetRange(kineticEnergy, couple); }
1399  return x;
1400 }
G4VEnergyLossProcess * GetEnergyLossProcess(const G4ParticleDefinition *)
double G4double
Definition: G4Types.hh:76
#define DBL_MAX
Definition: templates.hh:83
G4double GetRange(G4double &kineticEnergy, const G4MaterialCutsCouple *)
G4double G4LossTableManager::GetRangeFromRestricteDEDX ( const G4ParticleDefinition aParticle,
G4double  kineticEnergy,
const G4MaterialCutsCouple couple 
)

Definition at line 1379 of file G4LossTableManager.cc.

References DBL_MAX, GetEnergyLossProcess(), G4VEnergyLossProcess::GetRangeForLoss(), and test::x.

Referenced by G4EmCalculator::GetRangeFromRestricteDEDX().

1383 {
1384  if(aParticle != currentParticle) { GetEnergyLossProcess(aParticle); }
1385  G4double x = DBL_MAX;
1386  if(currentLoss) { x = currentLoss->GetRangeForLoss(kineticEnergy, couple); }
1387  return x;
1388 }
G4double GetRangeForLoss(G4double &kineticEnergy, const G4MaterialCutsCouple *)
G4VEnergyLossProcess * GetEnergyLossProcess(const G4ParticleDefinition *)
double G4double
Definition: G4Types.hh:76
#define DBL_MAX
Definition: templates.hh:83
G4double G4LossTableManager::GetSubDEDX ( const G4ParticleDefinition aParticle,
G4double  kineticEnergy,
const G4MaterialCutsCouple couple 
)

Definition at line 1355 of file G4LossTableManager.cc.

References G4VEnergyLossProcess::GetDEDXForSubsec(), GetEnergyLossProcess(), and test::x.

1358 {
1359  if(aParticle != currentParticle) { GetEnergyLossProcess(aParticle); }
1360  G4double x = 0.0;
1361  if(currentLoss) { x = currentLoss->GetDEDXForSubsec(kineticEnergy, couple); }
1362  return x;
1363 }
G4double GetDEDXForSubsec(G4double &kineticEnergy, const G4MaterialCutsCouple *)
G4VEnergyLossProcess * GetEnergyLossProcess(const G4ParticleDefinition *)
double G4double
Definition: G4Types.hh:76
G4LossTableBuilder * G4LossTableManager::GetTableBuilder ( )
G4LossTableManager * G4LossTableManager::Instance ( void  )
static

Definition at line 112 of file G4LossTableManager.cc.

References G4ThreadLocalSingleton< T >::Instance().

Referenced by G4ITStepProcessor::ApplyProductionCut(), G4VMultipleScattering::BuildPhysicsTable(), G4RadioactiveDecay::BuildPhysicsTable(), G4LossTableBuilder::BuildTableForModel(), G4EmCalculator::ComputeElectronicDEDX(), OpNovicePhysicsList::ConstructOp(), G4EmLivermorePolarizedPhysics::ConstructProcess(), G4EmLowEPPhysics::ConstructProcess(), G4EmLivermorePhysics::ConstructProcess(), G4EmPenelopePhysics::ConstructProcess(), G4EmDNAPhysics::ConstructProcess(), PhysListEmStandardNR::ConstructProcess(), WLSOpticalPhysics::ConstructProcess(), G4EmStandardPhysics_option3::ConstructProcess(), G4EmStandardPhysics::ConstructProcess(), G4EmStandardPhysics_option4::ConstructProcess(), G4EmStandardPhysics_option1::ConstructProcess(), G4EmStandardPhysics_option2::ConstructProcess(), G4OpticalPhysics::ConstructProcess(), G4NuclearDecayChannel::DecayIt(), export_G4LossTableManager(), exrdmPhysicsList::exrdmPhysicsList(), F04PhysicsList::F04PhysicsList(), G4BetheBlochModel::G4BetheBlochModel(), G4BraggModel::G4BraggModel(), G4EmCalculator::G4EmCalculator(), G4EmLivermorePhysics::G4EmLivermorePhysics(), G4EmLivermorePolarizedPhysics::G4EmLivermorePolarizedPhysics(), G4EmLowEPPhysics::G4EmLowEPPhysics(), G4EmPenelopePhysics::G4EmPenelopePhysics(), G4EmProcessOptions::G4EmProcessOptions(), G4EmStandardPhysics::G4EmStandardPhysics(), G4EmStandardPhysics_option1::G4EmStandardPhysics_option1(), G4EmStandardPhysics_option2::G4EmStandardPhysics_option2(), G4EmStandardPhysics_option3::G4EmStandardPhysics_option3(), G4EmStandardPhysics_option4::G4EmStandardPhysics_option4(), G4EmUserPhysics::G4EmUserPhysics(), G4GoudsmitSaundersonMscModel::G4GoudsmitSaundersonMscModel(), G4ionIonisation::G4ionIonisation(), G4IonParametrisedLossModel::G4IonParametrisedLossModel(), G4MuBetheBlochModel::G4MuBetheBlochModel(), G4UAtomicDeexcitation::G4UAtomicDeexcitation(), G4UrbanMscModel::G4UrbanMscModel(), G4UserSpecialCuts::G4UserSpecialCuts(), G4VEmFluctuationModel::G4VEmFluctuationModel(), G4VEmModel::G4VEmModel(), G4VEmProcess::G4VEmProcess(), G4VEnergyLossProcess::G4VEnergyLossProcess(), G4VMscModel::G4VMscModel(), G4VMultipleScattering::G4VMultipleScattering(), G4WentzelVIModel::G4WentzelVIModel(), G4WentzelVIRelModel::G4WentzelVIRelModel(), GammaKnifePhysicsList::GammaKnifePhysicsList(), G4EmCalculator::GetCSDARange(), G4EnergyLossTables::GetDEDX(), G4EnergyLossTables::GetPreciseDEDX(), G4EnergyLossTables::GetPreciseEnergyFromRange(), G4EnergyLossTables::GetPreciseRangeFromEnergy(), PhysicsList::GetRange(), G4EnergyLossTables::GetRange(), HadrontherapyPhysicsList::HadrontherapyPhysicsList(), G4LivermorePolarizedPhotoElectricModel::Initialise(), G4DNARuddIonisationExtendedModel::Initialise(), G4DNARuddIonisationModel::Initialise(), G4LivermoreComptonModel::Initialise(), G4DNABornIonisationModel::Initialise(), G4LivermoreComptonModifiedModel::Initialise(), G4LivermorePhotoElectricModel::Initialise(), G4KleinNishinaModel::Initialise(), G4PEEffectFluoModel::Initialise(), G4PenelopePhotoElectricModel::Initialise(), G4PenelopeComptonModel::Initialise(), G4MuElecInelasticModel::Initialise(), G4MicroElecInelasticModel::Initialise(), G4PenelopeIonisationModel::Initialise(), G4BraggIonModel::Initialise(), G4WentzelOKandVIxSection::Initialise(), G4WentzelVIRelXSection::Initialise(), G4LowEPComptonModel::Initialise(), G4mplIonisation::InitialiseEnergyLossProcess(), G4hhIonisation::InitialiseEnergyLossProcess(), G4eBremsstrahlung::InitialiseEnergyLossProcess(), G4CoulombScattering::InitialiseProcess(), IORTPhysicsList::IORTPhysicsList(), ML2PhysicsList::ML2PhysicsList(), PhysicsList::PhysicsList(), PhysListEmStandardNR::PhysListEmStandardNR(), DMXMinEkineCuts::PostStepGetPhysicalInteractionLength(), G4Cerenkov::PostStepGetPhysicalInteractionLength(), RunAction::PrintDedxTables(), G4eBremsstrahlung::PrintInfo(), WLSPhysicsList::WLSPhysicsList(), and XrayFluoPhysicsList::XrayFluoPhysicsList().

113 {
114  /*
115  if(!theInstance) {
116  theInstance = new G4LossTableManager;
117  }
118  return theInstance;
119  */
121  return instance.Instance();
122 }
G4bool G4LossTableManager::IsMaster ( ) const

Definition at line 1223 of file G4LossTableManager.cc.

Referenced by G4VMultipleScattering::BuildPhysicsTable(), and G4VEmProcess::~G4VEmProcess().

1224 {
1225  return isMaster;
1226 }
void G4LossTableManager::LocalPhysicsTables ( const G4ParticleDefinition aParticle,
G4VEnergyLossProcess p 
)

Definition at line 513 of file G4LossTableManager.cc.

References G4VEnergyLossProcess::BaseParticle(), G4EmConfigurator::Clear(), G4VEnergyLossProcess::DEDXTable(), G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4VAtomDeexcitation::InitialiseAtomicDeexcitation(), G4VEnergyLossProcess::InverseRangeTable(), G4VEnergyLossProcess::IsIonisationProcess(), G4VEnergyLossProcess::Particle(), G4VEnergyLossProcess::RangeTableForLoss(), and SetVerbose().

Referenced by G4VEnergyLossProcess::BuildPhysicsTable().

516 {
517  if(1 < verbose) {
518  G4cout << "### G4LossTableManager::SlavePhysicsTable() for "
519  << aParticle->GetParticleName()
520  << " and process " << p->GetProcessName()
521  << G4endl;
522  }
523 
524  if(-1 == run && startInitialisation) {
525  emConfigurator->Clear();
526  firstParticle = aParticle;
527  }
528 
529  if(startInitialisation) {
530  ++run;
531  SetVerbose(verbose);
532  if(1 < verbose) {
533  G4cout << "===== G4LossTableManager::SlavePhysicsTable() for run "
534  << run << " =====" << G4endl;
535  }
536  if(atomDeexcitation) {
537  atomDeexcitation->InitialiseAtomicDeexcitation();
538  }
539  currentParticle = 0;
540  startInitialisation = false;
541  for (G4int i=0; i<n_loss; ++i) {
542  if(loss_vector[i]) {
543  tables_are_built[i] = false;
544  } else {
545  tables_are_built[i] = true;
546  part_vector[i] = 0;
547  }
548  }
549  }
550 
551  all_tables_are_built= true;
552  for (G4int i=0; i<n_loss; ++i) {
553  if(p == loss_vector[i]) {
554  tables_are_built[i] = true;
555  isActive[i] = true;
556  /*
557  const G4ProcessManager* pm = p->GetProcessManager();
558  isActive[i] = false;
559  if(pm) { isActive[i] = pm->GetProcessActivation(p); }
560  */
561  part_vector[i] = p->Particle();
562  base_part_vector[i] = p->BaseParticle();
563  dedx_vector[i] = p->DEDXTable();
564  range_vector[i] = p->RangeTableForLoss();
565  inv_range_vector[i] = p->InverseRangeTable();
566  if(0 == run && p->IsIonisationProcess()) {
567  loss_map[part_vector[i]] = loss_vector[i];
568  }
569 
570  if(1 < verbose) {
571  G4cout << i <<". "<< p->GetProcessName();
572  if(part_vector[i]) {
573  G4cout << " for " << part_vector[i]->GetParticleName();
574  }
575  G4cout << " active= " << isActive[i]
576  << " table= " << tables_are_built[i]
577  << " isIonisation= " << p->IsIonisationProcess()
578  << G4endl;
579  }
580  break;
581  } else if(!tables_are_built[i]) {
582  all_tables_are_built = false;
583  }
584  }
585 
586  // Set run time parameters
587  SetParameters(aParticle, p);
588 
589  if(1 < verbose) {
590  G4cout << "### G4LossTableManager::SlavePhysicsTable end"
591  << G4endl;
592  }
593  if(all_tables_are_built) {
594  if(1 < verbose) {
595  G4cout << "%%%%% All dEdx and Range tables for worker are ready for run "
596  << run << " %%%%%" << G4endl;
597  }
598  }
599 }
G4PhysicsTable * RangeTableForLoss() const
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
G4PhysicsTable * DEDXTable() const
const G4ParticleDefinition * BaseParticle() const
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
G4PhysicsTable * InverseRangeTable() const
const G4ParticleDefinition * Particle() const
void SetVerbose(G4int val)
#define G4endl
Definition: G4ios.hh:61
G4bool IsIonisationProcess() const
G4bool G4LossTableManager::LPMFlag ( ) const

Definition at line 1201 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), G4eBremsstrahlung::InitialiseEnergyLossProcess(), and G4eBremsstrahlung::PrintInfo().

1202 {
1203  return flagLPM;
1204 }
G4double G4LossTableManager::MaxKinEnergy ( ) const

Definition at line 1265 of file G4LossTableManager.cc.

Referenced by G4VMscModel::GetParticleChangeForMSC(), and G4VMultipleScattering::PreparePhysicsTable().

1266 {
1267  return maxKinEnergy;
1268 }
G4double G4LossTableManager::MinKinEnergy ( ) const

Definition at line 1258 of file G4LossTableManager.cc.

Referenced by G4VMscModel::GetParticleChangeForMSC().

1259 {
1260  return minKinEnergy;
1261 }
void G4LossTableManager::PreparePhysicsTable ( const G4ParticleDefinition aParticle,
G4VEnergyLossProcess p,
G4bool  theMaster 
)

Definition at line 405 of file G4LossTableManager.cc.

References G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4EmConfigurator::PrepareModels(), and G4LossTableBuilder::SetInitialisationFlag().

Referenced by G4VMultipleScattering::PreparePhysicsTable(), G4VEmProcess::PreparePhysicsTable(), and G4VEnergyLossProcess::PreparePhysicsTable().

408 {
409  if (1 < verbose) {
410  G4cout << "G4LossTableManager::PreparePhysicsTable for "
411  << particle->GetParticleName()
412  << " and " << p->GetProcessName() << " run= " << run
413  << " loss_vector " << loss_vector.size() << G4endl;
414  }
415 
416  isMaster = theMaster;
417 
418  if(!startInitialisation) {
419  tableBuilder->SetInitialisationFlag(false);
420  if (1 < verbose) {
421  G4cout << "====== G4LossTableManager::PreparePhysicsTable start ====="
422  << G4endl;
423  }
424  }
425 
426  // start initialisation for the first run
427  if( -1 == run ) {
428  emConfigurator->PrepareModels(particle, p);
429 
430  // initialise particles for given process
431  for (G4int j=0; j<n_loss; ++j) {
432  if (p == loss_vector[j] && !part_vector[j]) {
433  part_vector[j] = particle;
434  if(particle->GetParticleName() == "GenericIon") {
435  theGenericIon = particle;
436  }
437  }
438  }
439  }
440  startInitialisation = true;
441 }
int G4int
Definition: G4Types.hh:78
void SetInitialisationFlag(G4bool flag)
G4GLOB_DLL std::ostream G4cout
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
void PrepareModels(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
#define G4endl
Definition: G4ios.hh:61
void G4LossTableManager::PreparePhysicsTable ( const G4ParticleDefinition aParticle,
G4VEmProcess p,
G4bool  theMaster 
)

Definition at line 446 of file G4LossTableManager.cc.

References G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4EmConfigurator::PrepareModels(), and G4LossTableBuilder::SetInitialisationFlag().

448 {
449  if (1 < verbose) {
450  G4cout << "G4LossTableManager::PreparePhysicsTable for "
451  << particle->GetParticleName()
452  << " and " << p->GetProcessName() << G4endl;
453  }
454  isMaster = theMaster;
455 
456  if(!startInitialisation) {
457  tableBuilder->SetInitialisationFlag(false);
458  if (1 < verbose) {
459  G4cout << "====== G4LossTableManager::PreparePhysicsTable start ====="
460  << G4endl;
461  }
462  }
463 
464  // start initialisation for the first run
465  if( -1 == run ) {
466  emConfigurator->PrepareModels(particle, p);
467  }
468  startInitialisation = true;
469 }
void SetInitialisationFlag(G4bool flag)
G4GLOB_DLL std::ostream G4cout
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
void PrepareModels(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
#define G4endl
Definition: G4ios.hh:61
void G4LossTableManager::PreparePhysicsTable ( const G4ParticleDefinition aParticle,
G4VMultipleScattering p,
G4bool  theMaster 
)

Definition at line 474 of file G4LossTableManager.cc.

References G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4VProcess::GetProcessName(), G4EmConfigurator::PrepareModels(), and G4LossTableBuilder::SetInitialisationFlag().

477 {
478  if (1 < verbose) {
479  G4cout << "G4LossTableManager::PreparePhysicsTable for "
480  << particle->GetParticleName()
481  << " and " << p->GetProcessName() << G4endl;
482  }
483 
484  isMaster = theMaster;
485 
486  if(!startInitialisation) {
487  tableBuilder->SetInitialisationFlag(false);
488  if (1 < verbose) {
489  G4cout << "====== G4LossTableManager::PreparePhysicsTable start ====="
490  << G4endl;
491  }
492  }
493 
494  // start initialisation for the first run
495  if( -1 == run ) {
496  emConfigurator->PrepareModels(particle, p);
497  }
498  startInitialisation = true;
499 }
void SetInitialisationFlag(G4bool flag)
G4GLOB_DLL std::ostream G4cout
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
void PrepareModels(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
#define G4endl
Definition: G4ios.hh:61
void G4LossTableManager::Register ( G4VEnergyLossProcess p)

Definition at line 240 of file G4LossTableManager.cc.

References G4VEnergyLossProcess::ActivateSubCutoff(), G4cout, G4endl, G4VProcess::GetProcessName(), G4VEnergyLossProcess::SetIntegral(), G4VEnergyLossProcess::SetLossFluctuations(), G4VEnergyLossProcess::SetMaxKinEnergy(), G4VEnergyLossProcess::SetMinKinEnergy(), G4VEnergyLossProcess::SetRandomStep(), and G4VEnergyLossProcess::SetStepFunction().

Referenced by G4VEmFluctuationModel::G4VEmFluctuationModel(), G4VEmModel::G4VEmModel(), G4VEmProcess::G4VEmProcess(), G4VEnergyLossProcess::G4VEnergyLossProcess(), and G4VMultipleScattering::G4VMultipleScattering().

241 {
242  if(!p) { return; }
243  for (G4int i=0; i<n_loss; ++i) {
244  if(loss_vector[i] == p) { return; }
245  }
246  if(verbose > 1) {
247  G4cout << "G4LossTableManager::Register G4VEnergyLossProcess : "
248  << p->GetProcessName() << " idx= " << n_loss << G4endl;
249  }
250  ++n_loss;
251  loss_vector.push_back(p);
252  part_vector.push_back(0);
253  base_part_vector.push_back(0);
254  dedx_vector.push_back(0);
255  range_vector.push_back(0);
256  inv_range_vector.push_back(0);
257  tables_are_built.push_back(false);
258  isActive.push_back(true);
259  all_tables_are_built = false;
260  if(!lossFluctuationFlag) { p->SetLossFluctuations(false); }
261  if(subCutoffFlag) { p->ActivateSubCutoff(true); }
262  if(rndmStepFlag) { p->SetRandomStep(true); }
263  if(stepFunctionActive) { p->SetStepFunction(maxRangeVariation,
264  maxFinalStep); }
265  if(integralActive) { p->SetIntegral(integral); }
266  if(minEnergyActive) { p->SetMinKinEnergy(minKinEnergy); }
267  if(maxEnergyActive) { p->SetMaxKinEnergy(maxKinEnergy); }
268 }
void SetIntegral(G4bool val)
void SetStepFunction(G4double v1, G4double v2)
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
void SetLossFluctuations(G4bool val)
void SetMaxKinEnergy(G4double e)
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
#define G4endl
Definition: G4ios.hh:61
void ActivateSubCutoff(G4bool val, const G4Region *region=0)
void SetRandomStep(G4bool val)
void SetMinKinEnergy(G4double e)
void G4LossTableManager::Register ( G4VMultipleScattering p)

Definition at line 282 of file G4LossTableManager.cc.

References G4cout, G4endl, G4VProcess::GetProcessName(), and n.

283 {
284  if(!p) { return; }
285  G4int n = msc_vector.size();
286  for (G4int i=0; i<n; ++i) {
287  if(msc_vector[i] == p) { return; }
288  }
289  if(verbose > 1) {
290  G4cout << "G4LossTableManager::Register G4VMultipleScattering : "
291  << p->GetProcessName() << " idx= " << msc_vector.size() << G4endl;
292  }
293  msc_vector.push_back(p);
294 }
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
const G4int n
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
#define G4endl
Definition: G4ios.hh:61
void G4LossTableManager::Register ( G4VEmProcess p)

Definition at line 309 of file G4LossTableManager.cc.

References G4cout, G4endl, G4VProcess::GetProcessName(), and n.

310 {
311  if(!p) { return; }
312  G4int n = emp_vector.size();
313  for (G4int i=0; i<n; ++i) {
314  if(emp_vector[i] == p) { return; }
315  }
316  if(verbose > 1) {
317  G4cout << "G4LossTableManager::Register G4VEmProcess : "
318  << p->GetProcessName() << " idx= " << emp_vector.size() << G4endl;
319  }
320  emp_vector.push_back(p);
321 }
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
const G4int n
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
#define G4endl
Definition: G4ios.hh:61
void G4LossTableManager::Register ( G4VEmModel p)

Definition at line 336 of file G4LossTableManager.cc.

References G4cout, G4endl, and G4VEmModel::GetName().

337 {
338  mod_vector.push_back(p);
339  if(verbose > 1) {
340  G4cout << "G4LossTableManager::Register G4VEmModel : "
341  << p->GetName() << G4endl;
342  }
343 }
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
const G4String & GetName() const
Definition: G4VEmModel.hh:753
void G4LossTableManager::Register ( G4VEmFluctuationModel p)

Definition at line 357 of file G4LossTableManager.cc.

References G4cout, G4endl, and G4VEmFluctuationModel::GetName().

358 {
359  fmod_vector.push_back(p);
360  if(verbose > 1) {
361  G4cout << "G4LossTableManager::Register G4VEmFluctuationModel : "
362  << p->GetName() << G4endl;
363  }
364 }
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
void G4LossTableManager::RegisterExtraParticle ( const G4ParticleDefinition aParticle,
G4VEnergyLossProcess p 
)

Definition at line 378 of file G4LossTableManager.cc.

References G4VEnergyLossProcess::BaseParticle(), G4cout, G4endl, G4ParticleDefinition::GetParticleName(), and G4VProcess::GetProcessName().

Referenced by G4VEnergyLossProcess::PreparePhysicsTable().

381 {
382  if(!p || !part) { return; }
383  for (G4int i=0; i<n_loss; ++i) {
384  if(loss_vector[i] == p) { return; }
385  }
386  if(verbose > 1) {
387  G4cout << "G4LossTableManager::RegisterExtraParticle "
388  << part->GetParticleName() << " G4VEnergyLossProcess : "
389  << p->GetProcessName() << " idx= " << n_loss << G4endl;
390  }
391  ++n_loss;
392  loss_vector.push_back(p);
393  part_vector.push_back(part);
394  base_part_vector.push_back(p->BaseParticle());
395  dedx_vector.push_back(0);
396  range_vector.push_back(0);
397  inv_range_vector.push_back(0);
398  tables_are_built.push_back(false);
399  all_tables_are_built = false;
400 }
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
const G4ParticleDefinition * BaseParticle() const
const G4String & GetProcessName() const
Definition: G4VProcess.hh:408
#define G4endl
Definition: G4ios.hh:61
void G4LossTableManager::SetAtomDeexcitation ( G4VAtomDeexcitation p)
void G4LossTableManager::SetBremsstrahlungTh ( G4double  val)

Definition at line 1230 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4EmProcessOptions::SetBremsstrahlungTh().

1231 {
1232  bremsTh = val;
1233 }
void G4LossTableManager::SetBuildCSDARange ( G4bool  val)

Definition at line 1145 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4EmProcessOptions::SetBuildCSDARange().

1146 {
1147  buildCSDARange = val;
1148 }
void G4LossTableManager::SetDEDXBinning ( G4int  val)

Definition at line 1056 of file G4LossTableManager.cc.

Referenced by G4EmProcessOptions::SetDEDXBinning().

1057 {
1058  for(G4int i=0; i<n_loss; ++i) {
1059  if(loss_vector[i]) { loss_vector[i]->SetDEDXBinning(val); }
1060  }
1061 }
int G4int
Definition: G4Types.hh:78
void G4LossTableManager::SetDEDXBinningForCSDARange ( G4int  val)

Definition at line 1065 of file G4LossTableManager.cc.

Referenced by G4EmProcessOptions::SetDEDXBinningForCSDARange().

1066 {
1067  for(G4int i=0; i<n_loss; ++i) {
1068  if(loss_vector[i]) { loss_vector[i]->SetDEDXBinningForCSDARange(val); }
1069  }
1070 }
int G4int
Definition: G4Types.hh:78
void G4LossTableManager::SetFactorForAngleLimit ( G4double  val)

Definition at line 1244 of file G4LossTableManager.cc.

Referenced by G4EmProcessOptions::SetFactorForAngleLimit().

1245 {
1246  if(val > 0.0) { factorForAngleLimit = val; }
1247 }
void G4LossTableManager::SetIntegral ( G4bool  val)

Definition at line 974 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4EmProcessOptions::SetIntegral().

975 {
976  integral = val;
977  integralActive = true;
978  for(G4int i=0; i<n_loss; ++i) {
979  if(loss_vector[i]) { loss_vector[i]->SetIntegral(val); }
980  }
981  size_t emp = emp_vector.size();
982  for (size_t k=0; k<emp; ++k) {
983  if(emp_vector[k]) { emp_vector[k]->SetIntegral(val); }
984  }
985 }
int G4int
Definition: G4Types.hh:78
void G4LossTableManager::SetLambdaBinning ( G4int  val)

Definition at line 1074 of file G4LossTableManager.cc.

References G4cout, G4endl, and n.

Referenced by G4EmProcessOptions::SetLambdaBinning().

1075 {
1076  G4int n = val/G4int(std::log10(maxKinEnergy/minKinEnergy) + 0.5);
1077  if(n < 5) {
1078  G4cout << "G4LossTableManager::SetLambdaBinning WARNING "
1079  << "too small number of bins " << val << " ignored"
1080  << G4endl;
1081  return;
1082  }
1083  nbinsLambda = val;
1084  nbinsPerDecade = n;
1085  size_t emp = emp_vector.size();
1086  for (size_t k=0; k<emp; ++k) {
1087  if(emp_vector[k]) { emp_vector[k]->SetLambdaBinning(val); }
1088  }
1089 }
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
const G4int n
#define G4endl
Definition: G4ios.hh:61
void G4LossTableManager::SetLinearLossLimit ( G4double  val)

Definition at line 1136 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4EmProcessOptions::SetLinearLossLimit().

1137 {
1138  for(G4int i=0; i<n_loss; ++i) {
1139  if(loss_vector[i]) { loss_vector[i]->SetLinearLossLimit(val); }
1140  }
1141 }
int G4int
Definition: G4Types.hh:78
void G4LossTableManager::SetLossFluctuations ( G4bool  val)

Definition at line 954 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4EmProcessOptions::SetLossFluctuations().

955 {
956  lossFluctuationFlag = val;
957  for(G4int i=0; i<n_loss; ++i) {
958  if(loss_vector[i]) { loss_vector[i]->SetLossFluctuations(val); }
959  }
960 }
int G4int
Definition: G4Types.hh:78
void G4LossTableManager::SetLPMFlag ( G4bool  val)

Definition at line 1194 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4EmProcessOptions::SetLPMFlag().

1195 {
1196  flagLPM = val;
1197 }
void G4LossTableManager::SetMaxEnergy ( G4double  val)

Definition at line 1024 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4EmProcessOptions::SetMaxEnergy().

1025 {
1026  maxEnergyActive = true;
1027  maxKinEnergy = val;
1028  for(G4int i=0; i<n_loss; ++i) {
1029  if(loss_vector[i]) { loss_vector[i]->SetMaxKinEnergy(val); }
1030  }
1031  size_t emp = emp_vector.size();
1032  for (size_t k=0; k<emp; ++k) {
1033  if(emp_vector[k]) { emp_vector[k]->SetMaxKinEnergy(val); }
1034  }
1035 }
int G4int
Definition: G4Types.hh:78
void G4LossTableManager::SetMaxEnergyForCSDARange ( G4double  val)

Definition at line 1039 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4EmProcessOptions::SetMaxEnergyForCSDARange().

1040 {
1041  for(G4int i=0; i<n_loss; ++i) {
1042  if(loss_vector[i]) { loss_vector[i]->SetMaxKinEnergyForCSDARange(val); }
1043  }
1044 }
int G4int
Definition: G4Types.hh:78
void G4LossTableManager::SetMaxEnergyForMuons ( G4double  val)

Definition at line 1048 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4EmProcessOptions::SetMaxEnergyForMuons().

1049 {
1050  maxEnergyForMuonsActive = true;
1051  maxKinEnergyForMuons = val;
1052 }
void G4LossTableManager::SetMinEnergy ( G4double  val)

Definition at line 1009 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4EmProcessOptions::SetMinEnergy().

1010 {
1011  minEnergyActive = true;
1012  minKinEnergy = val;
1013  for(G4int i=0; i<n_loss; ++i) {
1014  if(loss_vector[i]) { loss_vector[i]->SetMinKinEnergy(val); }
1015  }
1016  size_t emp = emp_vector.size();
1017  for (size_t k=0; k<emp; ++k) {
1018  if(emp_vector[k]) { emp_vector[k]->SetMinKinEnergy(val); }
1019  }
1020 }
int G4int
Definition: G4Types.hh:78
void G4LossTableManager::SetMinSubRange ( G4double  val)

Definition at line 989 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4EmProcessOptions::SetMinSubRange().

990 {
991  minSubRange = val;
992  for(G4int i=0; i<n_loss; ++i) {
993  if(loss_vector[i]) { loss_vector[i]->SetMinSubRange(val); }
994  }
995 }
int G4int
Definition: G4Types.hh:78
void G4LossTableManager::SetRandomStep ( G4bool  val)

Definition at line 999 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4EmProcessOptions::SetRandomStep().

1000 {
1001  rndmStepFlag = val;
1002  for(G4int i=0; i<n_loss; ++i) {
1003  if(loss_vector[i]) { loss_vector[i]->SetRandomStep(val); }
1004  }
1005 }
int G4int
Definition: G4Types.hh:78
void G4LossTableManager::SetSplineFlag ( G4bool  val)

Definition at line 1208 of file G4LossTableManager.cc.

References G4LossTableBuilder::SetSplineFlag().

Referenced by G4EmProcessOptions::SetSplineFlag().

1209 {
1210  splineFlag = val;
1211  tableBuilder->SetSplineFlag(splineFlag);
1212 }
void SetSplineFlag(G4bool flag)
void G4LossTableManager::SetStepFunction ( G4double  v1,
G4double  v2 
)

Definition at line 1124 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4EmProcessOptions::SetStepFunction().

1125 {
1126  stepFunctionActive = true;
1127  maxRangeVariation = v1;
1128  maxFinalStep = v2;
1129  for(G4int i=0; i<n_loss; ++i) {
1130  if(loss_vector[i]) { loss_vector[i]->SetStepFunction(v1, v2); }
1131  }
1132 }
int G4int
Definition: G4Types.hh:78
void G4LossTableManager::SetSubCutoff ( G4bool  val,
const G4Region r = 0 
)

Definition at line 964 of file G4LossTableManager.cc.

Referenced by export_G4LossTableManager(), and G4EmProcessOptions::SetSubCutoff().

965 {
966  subCutoffFlag = val;
967  for(G4int i=0; i<n_loss; ++i) {
968  if(loss_vector[i]) { loss_vector[i]->ActivateSubCutoff(val, r); }
969  }
970 }
int G4int
Definition: G4Types.hh:78
void G4LossTableManager::SetVerbose ( G4int  val)

Definition at line 1100 of file G4LossTableManager.cc.

References G4EmSaturation::SetVerbose(), G4EmConfigurator::SetVerbose(), G4ElectronIonPair::SetVerbose(), and G4VAtomDeexcitation::SetVerboseLevel().

Referenced by export_G4LossTableManager(), LocalPhysicsTables(), G4EmProcessOptions::SetVerbose(), and XrayFluoPhysicsList::XrayFluoPhysicsList().

1101 {
1102  verbose = val;
1103  for(G4int i=0; i<n_loss; ++i) {
1104  if(loss_vector[i]) { loss_vector[i]->SetVerboseLevel(val); }
1105  }
1106  size_t msc = msc_vector.size();
1107  for (size_t j=0; j<msc; ++j) {
1108  if(msc_vector[j]) { msc_vector[j]->SetVerboseLevel(val); }
1109  }
1110  size_t emp = emp_vector.size();
1111  for (size_t k=0; k<emp; ++k) {
1112  if(emp_vector[k]) { emp_vector[k]->SetVerboseLevel(val); }
1113  }
1114  emConfigurator->SetVerbose(val);
1115  //tableBuilder->SetVerbose(val);
1116  //emCorrections->SetVerbose(val);
1117  emSaturation->SetVerbose(val);
1118  emElectronIonPair->SetVerbose(val);
1119  if(atomDeexcitation) { atomDeexcitation->SetVerboseLevel(val); }
1120 }
int G4int
Definition: G4Types.hh:78
void SetVerbose(G4int)
void SetVerbose(G4int value)
G4bool G4LossTableManager::SplineFlag ( ) const

Friends And Related Function Documentation

Definition at line 103 of file G4LossTableManager.hh.


The documentation for this class was generated from the following files: