179 G4cout <<
"G4EmManager::Register G4VEnergyLossProcess : "
209 for (
G4int i=0; i<
n; ++i) {
213 G4cout <<
"G4EmManager::Register G4VMultipleScattering : "
225 for (
G4int i=0; i<
n; ++i) {
229 G4cout <<
"G4EmManager::Register G4VEmProcess : "
241 if(!p || !part) {
return; }
246 G4cout <<
"G4EmManager::RegisterExtraParticle "
268 G4cout <<
"G4EmManager::PreparePhysicsTable for "
297 G4cout <<
"G4EmManager::PreparePhysicsTable for "
317 G4cout <<
"G4EmManager::PreparePhysicsTable for "
346 G4cout <<
"### G4EmManager::BuildDEDXTable() is requested for "
362 G4cout <<
"### G4EmManager start initilisation for first particle "
387 G4cout <<
" base particle "
414 <<
" start BuildTable " <<
G4endl;
417 if(curr_proc) {
CopyTables(curr_part, curr_proc); }
423 G4cout <<
"### G4EmManager::BuildDEDXTable end: "
428 G4cout <<
"### All dEdx and Range tables are built #####" <<
G4endl;
458 <<
" for " << part_vector[j]->GetParticleName()
460 <<
" tables are assigned "
477 G4cout <<
"G4EmManager::BuildTables() for "
481 std::vector<G4PhysicsTable*> t_list;
482 std::vector<G4VEnergyLossProcess*> loss_list;
490 for (i=0; i<
n_loss; ++i) {
502 t_list.push_back(dedx);
503 loss_list.push_back(p);
508 G4int n_dedx = t_list.size();
509 if (0 == n_dedx || !em) {
510 G4cout <<
"G4EmManager WARNING: no DEDX processes for "
517 G4cout <<
"G4EmManager::BuildTables() start to build range tables"
518 <<
" and the sum of " << n_dedx <<
" processes"
521 <<
" nSubRegions= " << nSubRegions
554 std::vector<G4PhysicsTable*> listSub;
555 std::vector<G4PhysicsTable*> listCSDA;
557 for (i=0; i<n_dedx; ++i) {
561 if (0 < nSubRegions) {
564 listSub.push_back(dedx);
571 listCSDA.push_back(dedx);
575 if (0 < nSubRegions) {
577 if (1 < listSub.size()) {
603 G4cout <<
"G4EmManager::BuildTables: Tables are built for "
648 for (
size_t k=0; k<emp; ++k) {
683 for (
size_t k=0; k<emp; ++k) {
698 for (
size_t k=0; k<emp; ++k) {
744 G4cout <<
"G4EmManager::SetLambdaBinning WARNING "
745 <<
"too small number of bins " << val <<
" ignored"
752 for (
size_t k=0; k<emp; ++k) {
std::vector< G4PhysicsTable * > range_vector
void BuildRangeTable(const G4PhysicsTable *dedxTable, G4PhysicsTable *rangeTable, G4bool isIonisation=false)
void SetDEDXTable(G4PhysicsTable *p, G4EmTableType tType)
void SetIntegral(G4bool val)
std::vector< G4VMultipleScattering * > msc_vector
G4double maxRangeVariation
void SetIonisation(G4bool val)
G4bool BuildCSDARange() const
void Register(G4VEnergyLossProcess *p)
G4bool startInitialisation
G4PhysicsTable * SubLambdaTable() const
G4VEnergyLossProcess * BuildTables(const G4ParticleDefinition *aParticle)
G4bool SplineFlag() const
void SetMaxEnergy(G4double val)
void SetMaxEnergyForCSDARange(G4double val)
G4PhysicsTable * RangeTableForLoss() const
void SetSplineFlag(G4bool val)
void SetRandomStep(G4bool val)
void AddCollaborativeProcess(G4VEnergyLossProcess *)
void SetVerbose(G4int val)
void SetStepFunction(G4double v1, G4double v2)
void SetLossFluctuations(G4bool val)
G4PhysicsTable * CSDARangeTable() const
void SetDEDXBinningForCSDARange(G4int val)
std::vector< G4PhysicsTable * > inv_range_vector
G4PhysicsTable * IonisationTableForSubsec() const
G4ElectronIonPair * emElectronIonPair
G4PhysicsTable * IonisationTable() const
void SetSubCutoff(G4bool val, const G4Region *r=0)
G4PhysicsTable * BuildLambdaTable(G4EmTableType tType=fRestricted)
G4bool all_tables_are_built
static G4NistManager * Instance()
void PreparePhysicsTable(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
static G4PhysicsTable * PreparePhysicsTable(G4PhysicsTable *physTable)
const G4String & GetParticleName() const
static G4EmManager * Instance()
G4EmConfigurator * emConfigurator
G4double MaxKinEnergy() const
void SetInitialisationFlag(G4bool flag)
void SetBremsstrahlungTh(G4double val)
G4bool stepFunctionActive
G4PhysicsTable * LambdaTable() const
G4ElectronIonPair * ElectronIonPair()
void SetInverseRangeTable(G4PhysicsTable *p)
const G4ParticleDefinition * SecondaryParticle() const
std::map< PD, G4VEnergyLossProcess *, std::less< PD > > loss_map
std::vector< G4PhysicsTable * > xsection_vector
std::vector< PD > part_vector
void SetIntegral(G4bool val)
G4GLOB_DLL std::ostream G4cout
void SetFactorForAngleLimit(G4double val)
G4PhysicsTable * DEDXTable() const
G4double FactorForAngleLimit() const
void SetBuildCSDARange(G4bool val)
G4double BremsstrahlungTh() const
void SetLossFluctuations(G4bool val)
void SetDEDXBinning(G4int val)
G4int NumberOfSubCutoffRegions() const
G4int GetNumberOfBinsPerDecade() const
void SetMaxKinEnergy(G4double e)
const G4ParticleDefinition * BaseParticle() const
G4bool lossFluctuationFlag
std::vector< PD > base_part_vector
G4double factorForAngleLimit
std::vector< G4bool > isActive
void BuildInverseRangeTable(const G4PhysicsTable *rangeTable, G4PhysicsTable *invRangeTable, G4bool isIonisation=false)
G4PhysicsTable * DEDXTableForSubsec() const
const G4String & GetProcessName() const
G4LossTableBuilder * GetTableBuilder()
G4EmConfigurator * EmConfigurator()
void SetLinearLossLimit(G4double val)
void BuildDEDXTable(G4PhysicsTable *dedxTable, const std::vector< G4PhysicsTable * > &)
void SetLambdaBinning(G4int val)
void SetVerbose(G4int value)
virtual const G4ProcessManager * GetProcessManager()
void SetParameters(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *)
void SetLambdaTable(G4PhysicsTable *p)
std::vector< G4VEmProcess * > emp_vector
std::vector< G4VEnergyLossProcess * > loss_vector
void RegisterExtraParticle(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
G4bool maxEnergyForMuonsActive
std::vector< G4bool > tables_are_built
G4PhysicsTable * InverseRangeTable() const
G4double GetPDGMass() const
void SetLPMFlag(G4bool val)
void InitialiseProcess(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *)
const G4ParticleDefinition * Particle() const
void PrepareModels(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
void SetStepFunction(G4double v1, G4double v2)
void CopyTables(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *)
void SetCSDARangeTable(G4PhysicsTable *pRange)
G4LossTableBuilder * tableBuilder
void BuildPhysicsTable(const G4ParticleDefinition *aParticle)
G4bool GetProcessActivation(G4VProcess *aProcess) const
static G4Electron * Electron()
G4EmSaturation * emSaturation
void SetSecondaryRangeTable(G4PhysicsTable *p)
std::vector< G4PhysicsTable * > dedx_vector
G4EmSaturation * EmSaturation()
G4PhysicsTable * DEDXunRestrictedTable() const
void SetSubLambdaTable(G4PhysicsTable *p)
G4double maxKinEnergyForMuons
void SetMinSubRange(G4double val)
void ActivateSubCutoff(G4bool val, const G4Region *region=0)
void SetRangeTableForLoss(G4PhysicsTable *p)
void SetMinEnergy(G4double val)
G4EmManagerMessenger * theMessenger
void SetMaxEnergyForMuons(G4double val)
G4PhysicsTable * BuildDEDXTable(G4EmTableType tType=fRestricted)
static G4EmManager * theInstance
void SetVerboseLevel(G4int value)
void SetRandomStep(G4bool val)
void SetSplineFlag(G4bool flag)
G4double MinKinEnergy() const
G4bool IsIonisationProcess() const
void SetMinKinEnergy(G4double e)