169   secondaryParticle(0),
 
  175   theDEDXunRestrictedTable(0),
 
  176   theIonisationTable(0),
 
  177   theIonisationSubTable(0),
 
  178   theRangeTableForLoss(0),
 
  179   theCSDARangeTable(0),
 
  180   theSecondaryRangeTable(0),
 
  181   theInverseRangeTable(0),
 
  183   theSubLambdaTable(0),
 
  187   lossFluctuationFlag(true),
 
  189   tablesAreBuilt(false),
 
  194   useDeexcitation(false),
 
  414   if(index >= n) { 
for(
G4int i=n; i<=index; ++i) {
emModels.push_back(0);} }
 
  447     G4cout << 
"G4VEnergyLossProcess::PreparePhysicsTable for " 
  454   if(masterProcess && masterProcess != 
this) { 
isMaster = 
false; }
 
  474     if(pname != 
"deuteron" && pname != 
"triton" &&
 
  475        pname != 
"alpha+"   && pname != 
"helium" &&
 
  476        pname != 
"hydrogen") {
 
  486         size_t n = v->
size();
 
  487         for(
size_t j=0; j<
n; ++j) {
 
  488           if((*v)[j] == 
this) {
 
  502       G4cout << 
"### G4VEnergyLossProcess::PreparePhysicsTable()" 
  503              << 
" interrupted for " 
  627   for(
G4int i=0; i<nmod; ++i) {
 
  647     for (
size_t j=0; j<
n; ++j) {
 
  665     G4cout << 
"G4VEnergyLossProcess::PrepearPhysicsTable() is done " 
  667            << 
" isIon= " << 
isIon;
 
  673       G4cout << 
" SubCutoff Regime is ON for regions: " << 
G4endl;
 
  689     G4cout << 
"### G4VEnergyLossProcess::BuildPhysicsTable() for " 
  736       for(
G4int i=0; i<numberOfModels; ++i) {
 
  752                            num == 
"e+"    || num == 
"mu+" || 
 
  753                            num == 
"mu-"   || num == 
"proton"|| 
 
  754                            num == 
"pi+"   || num == 
"pi-" || 
 
  755                            num == 
"kaon+" || num == 
"kaon-" || 
 
  756                            num == 
"alpha" || num == 
"anti_proton" || 
 
  757                            num == 
"GenericIon")))
 
  784     G4cout << 
"### G4VEnergyLossProcess::BuildPhysicsTable() done for " 
  798     G4cout << 
"G4VEnergyLossProcess::BuildDEDXTable() of type " << tType
 
  816     G4cout << 
"G4VEnergyLossProcess::BuildDEDXTable WARNING: wrong type " 
  826     G4cout << numOfCouples << 
" materials" 
  828            << 
" maxKinEnergy= " << emax
 
  830            << 
" EmTableType= " << tType
 
  831            << 
" table= " << table << 
"  " << 
this  
  834   if(!table) { 
return table; }
 
  841   for(
size_t i=0; i<numOfCouples; ++i) {
 
  844       G4cout << 
"G4VEnergyLossProcess::BuildDEDXVector Idx= " << i 
 
  845              << 
"  flagTable=  " << table->
GetFlag(i) 
 
  853       if((*table)[i]) { 
delete (*table)[i]; }
 
  871     G4cout << 
"G4VEnergyLossProcess::BuildDEDXTable(): table is built for " 
  892     G4cout << 
"G4VEnergyLossProcess::BuildLambdaTable WARNING: wrong type " 
  897     G4cout << 
"G4VEnergyLossProcess::BuildLambdaTable() of type " 
  898            << tType << 
" for process " 
  901            << 
" EmTableType= " << tType
 
  902            << 
" table= " << table
 
  905   if(!table) {
return table;}
 
  920   for(
size_t i=0; i<numOfCouples; ++i) {
 
  938       if(emax <= emin) { emax = 2*emin; }
 
  953     G4cout << 
"Lambda table is built for " 
  967     G4cout << std::setprecision(6);
 
  972     G4cout << 
"      dE/dx and range tables from " 
  976            << 
"      Lambda tables from threshold to " 
  979            << 
" bins per decade, spline: "  
  993       G4cout << 
"      CSDA range table up" 
 1004       G4cout << 
"non restricted DEDXTable address= "  
 1047     reg = regionStore->
GetRegion(
"DefaultRegionForTheWorld", 
false);
 
 1224     G4cout << 
"G4VEnergyLossProcess::PostStepGetPhysicalInteractionLength ";
 
 1228            << 
" Ekin(MeV)= " << preStepKinEnergy/
MeV  
 1232            << 
"InteractionLength= " << x/
cm <<
"[cm] " <<
G4endl;
 
 1288       if(eloss < 0.0) { eloss = 0.0; }
 
 1357         if(preSafety < rcut) {
 
 1362         if(preSafety < rcut) { yes = 
true; }
 
 1366           G4double postSafety = preSafety - length; 
 
 1367           if(postSafety < rcut) {
 
 1370             if(postSafety < rcut) { yes = 
true; }
 
 1402                                        eloss, eadd, length);
 
 1403     if(eloss < 0.0) { eloss = 0.5*eloss_before; }
 
 1445     if(eloss >= esecfluo) {
 
 1517   for(
G4int i=0; i<
n; ++i) {
 
 1540   G4double subcut = (*theSubCuts)[idx];
 
 1542   if(cut <= subcut) { 
return esec; }
 
 1548     *(((*theSubLambdaTable)[(*theDensityIdx)[idx]])->Value(e, 
idxSubLambda));
 
 1552   if(length*cross < 
perMillion) { 
return esec; }
 
 1574     fragment += del/length;
 
 1575     if (fragment > 1.0) { 
break; }
 
 1584     std::vector<G4DynamicParticle*>::iterator it;
 
 1590       tracks.push_back(t);
 
 1593         esec += 2.0*electron_mass_c2; 
 
 1605   } 
while (fragment <= 1.0);
 
 1706     for (
G4int i=0; i<num; ++i) {
 
 1790       G4cout << 
"Physics tables are stored for "  
 1793              << 
" in the directory <" << directory
 
 1797     G4cout << 
"Fail to store Physics Tables for "  
 1800            << 
" in the directory <" << directory
 
 1818     G4cout << 
"G4VEnergyLossProcess::RetrievePhysicsTable() for " 
 1847                         "InverseRange",fpi)) 
 
 1863       if(!fpi) yes = 
false;
 
 1865                         "SubIonisation",yes))
 
 1902   G4bool isRetrieved = 
false;
 
 1910           for(
size_t i=0; i<
n; ++i) {
 
 1911             if((*aTable)[i]) { (*aTable)[i]->SetSpline(
true); }
 
 1916                  << 
" is Retrieved from <" << filename << 
">" 
 1922   if(mandatory && !isRetrieved) {
 
 1926              << filename << 
"> is not Retrieved" 
 1969   if(cross < 0.0) { cross = 0.0; }
 
 2047              << 
" is added to the list of collaborative processes of " 
 2070       for (
size_t i=0; i<
n; ++i) {
 
 2076           pv = (*p)[(*theDensityIdx)[i]];
 
 2090       G4cout<< 
"G4VEnergyLossProcess::SetDEDXTable " 
 2103       G4cout<< 
"G4VEnergyLossProcess::SetIonisationTable " 
 2127     for (
size_t i=0; i<
n; ++i) {
 
 2132         pv = (*p)[(*theDensityIdx)[i]];
 
 2133         if(pv) { rmax = pv->
Value(emax, 
idxCSDA)/(*theDensityFactor)[i]; }
 
 2148     G4cout << 
"### Set Range table " << p 
 
 2160     G4cout << 
"### Set SecondaryRange table " << p 
 
 2172     G4cout << 
"### Set InverseRange table " << p 
 
 2183     G4cout << 
"### Set Lambda table " << p 
 
 2203     for (i=0; i<
n; ++i) {
 
 2204       pv = (*theLambdaTable)[i];
 
 2210           for (
size_t j=0; j<nb; ++j) {
 
 2223                  << 
" Max CS at i= " << i << 
" emax(MeV)= " << emax/
MeV 
 2224                  << 
" lambda= " << smax << 
G4endl;
 
 2229     for (i=0; i<
n; ++i) {
 
 2230       pv = (*theLambdaTable)[i];
 
 2232         G4int j = (*theDensityIdx)[i];
 
 2246     G4cout << 
"### Set SebLambda table " << p 
 
 2270       G4cout << 
"### SetCrossSectionBiasingFactor: for "  
 2272              << 
" biasFactor= " << f << 
" weightFlag= " << flag 
 
 2287     G4cout << 
"### ActivateForcedInteraction: for "  
 2289            << 
" length(mm)= " << length/
mm 
 2290            << 
" in G4Region <" << region
 
 2291            << 
"> weightFlag= " << flag 
 
 2305   if (0.0 <= factor) {
 
 2314       G4cout << 
"### ActivateSecondaryBiasing: for "  
 2316              << 
" factor= " << factor
 
 2317              << 
" in G4Region <" << region 
 
 2318              << 
"> energyLimit(MeV)= " << energyLimit/
MeV 
 2337   if(0.0 < val && val < 1.0) { 
 
 2347   if(0.0 < v1 && 0.0 < v2 && v2 < 1.e+50) { 
 
 2350   } 
else if(v1 <= 0.0) {
 
 2369   if(2 < n && n < 1000000000) { 
 
 2403   G4String ss = 
"G4VEnergyLossProcess::" + tit; 
 
 2405   ed << 
"Parameter is out of range: " << val 
 
 2406      << 
" it will have no effect!\n" << 
"  Process "  
G4VEnergyLossProcess(const G4String &name="EnergyLoss", G4ProcessType type=fElectromagnetic)
 
G4double condition(const G4ErrorSymMatrix &m)
 
G4bool UseCutAsFinalRange() const 
 
G4VSubCutProducer * SubCutProducer()
 
G4double MaxSecondaryKinEnergy(const G4DynamicParticle *dynParticle)
 
G4int NumberOfBinsPerDecade() const 
 
G4ParticleDefinition * GetDefinition() const 
 
const G4VProcess * GetMasterProcess() const 
 
G4LossTableManager * lManager
 
std::vector< G4double > theEnergyOfCrossSectionMax
 
void SetDEDXTable(G4PhysicsTable *p, G4EmTableType tType)
 
G4int GetParentID() const 
 
virtual G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
G4int NumberOfBins() const 
 
G4Region * GetRegion(const G4String &name, G4bool verbose=true) const 
 
void InitializeForPostStep(const G4Track &)
 
G4double preStepKinEnergy
 
const G4String & GetName() const 
 
G4SafetyHelper * GetSafetyHelper() const 
 
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
 
const std::vector< G4double > * GetDensityFactors()
 
static void SetPhysicsVector(G4PhysicsTable *physTable, size_t idx, G4PhysicsVector *vec)
 
G4int WorkerVerbose() const 
 
G4double MaxKinEnergy() const 
 
static G4LossTableManager * Instance()
 
void ActivateForcedInteraction(G4double length=0.0, const G4String &r="")
 
G4GPILSelection aGPILSelection
 
virtual G4double SampleFluctuations(const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmax, G4double length, G4double meanLoss)=0
 
virtual void SampleSecondaries(const G4Step &step, std::vector< G4Track * > &tracks, G4double &eloss, G4double cut) const =0
 
void AlongStepDeexcitation(std::vector< G4Track * > &tracks, const G4Step &step, G4double &eLoss, G4int coupleIndex)
 
G4double ApplySecondaryBiasing(std::vector< G4DynamicParticle * > &, const G4Track &track, G4VEmModel *currentModel, G4ParticleChangeForGamma *pParticleChange, G4double &eloss, G4int coupleIdx, G4double tcut, G4double safety=0.0)
 
virtual void CorrectionsAlongStep(const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double &eloss, G4double &niel, G4double length)
 
void UpdateEmModel(const G4String &, G4double, G4double)
 
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin=0.0, G4double tmax=DBL_MAX)=0
 
std::ostringstream G4ExceptionDescription
 
G4double GetKineticEnergy() const 
 
void PrintInfoDefinition(const G4ParticleDefinition &part)
 
CLHEP::Hep3Vector G4ThreeVector
 
void SetIonisation(G4bool val)
 
G4double GetStepLength() const 
 
G4double HighEnergyLimit() const 
 
void BuildPhysicsTable(const G4ParticleDefinition &)
 
const G4DynamicParticle * GetDynamicParticle() const 
 
G4bool SecondaryBiasingRegion(G4int coupleIdx)
 
G4bool IsPIXEActive() const 
 
G4PhysicsTable * SubLambdaTable() const 
 
void SetLowEnergyLimit(G4double elimit)
 
G4VEmModel * currentModel
 
G4VEmModel * GetModel(G4int, G4bool ver=false)
 
G4double GetProductionCut(G4int index) const 
 
void DeRegister(G4VEnergyLossProcess *p)
 
G4PhysicsTable * RangeTableForLoss() const 
 
G4double GetContinuousStepLimit(const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double ¤tSafety)
 
const std::vector< G4double > * theDensityFactor
 
G4StepStatus GetStepStatus() const 
 
G4bool BuildCSDARange() const 
 
const G4String & GetName() const 
 
G4PhysicsTable * SecondaryRangeTable() const 
 
G4VParticleChange * PostStepDoIt(const G4Track &, const G4Step &)
 
void AddCollaborativeProcess(G4VEnergyLossProcess *)
 
const G4ThreeVector & GetPosition() const 
 
const std::vector< G4int > * theDensityIdx
 
virtual void InitialiseLocal(const G4ParticleDefinition *, G4VEmModel *masterModel)
 
void ActivateForcedInteraction(G4double length=0.0, const G4String ®ion="", G4bool flag=true)
 
void SetLinearLossLimit(G4double val)
 
const G4ParticleDefinition * secondaryParticle
 
G4double GetMeanFreePath(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
void SetStepFunction(G4double v1, G4double v2)
 
G4bool ForcedInteractionRegion(G4int coupleIdx)
 
const G4MaterialCutsCouple * GetMaterialCutsCouple() const 
 
G4PhysicsTable * CSDARangeTable() const 
 
G4PhysicsTable * theSecondaryRangeTable
 
G4bool StorePhysicsTable(const G4ParticleDefinition *, const G4String &directory, G4bool ascii=false)
 
G4VEmFluctuationModel * fluctModel
 
G4ParticleChangeForLoss fParticleChange
 
G4VSubCutProducer * subcutProducer
 
G4double theNumberOfInteractionLengthLeft
 
void SelectModel(G4double kinEnergy)
 
G4bool GetFlag(size_t idx) const 
 
G4PhysicsTable * theIonisationTable
 
void SetTouchableHandle(const G4TouchableHandle &apValue)
 
void AddEmModel(G4int, G4VEmModel *, G4VEmFluctuationModel *, const G4Region *)
 
G4VEmModel * GetModelByIndex(G4int idx=0, G4bool ver=false) const 
 
G4double PostStepGetPhysicalInteractionLength(const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)
 
size_t currentCoupleIndex
 
G4int NumberOfModels() const 
 
void ResetForcedInteraction()
 
G4PhysicsTable * IonisationTableForSubsec() const 
 
G4double GetParentWeight() const 
 
#define G4BestUnit(a, b)
#define G4_USE_G4BESTUNIT_FOR_VERBOSE 1 
 
void ActivateSecondaryBiasing(const G4String ®ion, G4double factor, G4double energyLimit)
 
G4VEmFluctuationModel * GetModelOfFluctuations()
 
const G4DataVector * SubCutoff() const 
 
size_t GetVectorLength() const 
 
G4double preStepRangeEnergy
 
G4PhysicsVector * LambdaPhysicsVector(const G4MaterialCutsCouple *, G4double cut)
 
void InitializeForAlongStep(const G4Track &)
 
G4double GetProposedKineticEnergy() const 
 
G4PhysicsTable * IonisationTable() const 
 
void FillLambdaVector(G4PhysicsVector *, const G4MaterialCutsCouple *, G4bool startFromNull=true, G4EmTableType t=fRestricted)
 
G4ProcessManager * GetProcessManager() const 
 
G4VAtomDeexcitation * atomDeexcitation
 
void FillSecondDerivatives()
 
G4PhysicsTable * BuildLambdaTable(G4EmTableType tType=fRestricted)
 
const G4String & GetPhysicsTableFileName(const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false)
 
static G4PhysicsTable * PreparePhysicsTable(G4PhysicsTable *physTable)
 
G4double MinSubRange() const 
 
const G4String & GetParticleName() const 
 
G4bool lossFluctuationFlag
 
G4LossTableBuilder * GetTableBuilder()
 
void SetWeight(G4double aValue)
 
void ProposeLocalEnergyDeposit(G4double anEnergyPart)
 
void SetCreatorModelIndex(G4int idx)
 
G4bool ExistPhysicsTable(const G4String &fileName) const 
 
const G4ParticleDefinition * theGamma
 
static const G4double reg
 
const G4MaterialCutsCouple * currentCouple
 
void PrintWarning(G4String, G4double val)
 
void Initialise(const G4ParticleDefinition &part, const G4String &procName, G4int verbose)
 
const G4DataVector * theCuts
 
void SetHighEnergyLimit(G4double)
 
virtual G4double Dispersion(const G4Material *, const G4DynamicParticle *, G4double tmax, G4double length)=0
 
static G4RegionStore * GetInstance()
 
G4PhysicsTable * theSubLambdaTable
 
G4StepPoint * GetPreStepPoint() const 
 
G4PhysicsTable * LambdaTable() const 
 
void ProposeWeight(G4double finalWeight)
 
void SetAngularGeneratorFlag(G4bool)
 
G4double LinearLossLimit() const 
 
void SetSecondaryWeightByProcess(G4bool)
 
void SetInverseRangeTable(G4PhysicsTable *p)
 
G4double LambdaFactor() const 
 
void SetCrossSectionBiasingFactor(G4double f, G4bool flag=true)
 
G4ProcessVector * GetAtRestProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const 
 
G4double GetKineticEnergy() const 
 
G4double SampleSubCutSecondaries(std::vector< G4Track * > &, const G4Step &, G4VEmModel *model, G4int matIdx)
 
const G4ParticleDefinition * baseParticle
 
G4GLOB_DLL std::ostream G4cout
 
void FillDEDXVector(G4PhysicsVector *, const G4MaterialCutsCouple *, G4EmTableType t=fRestricted)
 
void FillSecondariesAlongStep(G4double &eloss, G4double &weight)
 
const G4DataVector * theSubCuts
 
G4PhysicsTable * DEDXTable() const 
 
G4double ScaledKinEnergyForLoss(G4double range)
 
size_t GetTableSize() const 
 
G4double GetDEDXForScaledEnergy(G4double scaledKinEnergy)
 
void SetParticleChange(G4VParticleChange *, G4VEmFluctuationModel *f=0)
 
const G4ThreeVector & GetPosition() const 
 
const G4Element * GetCurrentElement() const 
 
const G4ParticleDefinition * theGenericIon
 
const G4ParticleDefinition * thePositron
 
void ComputeLambdaForScaledEnergy(G4double scaledKinEnergy)
 
std::vector< G4Track * > scTracks
 
G4double preStepScaledEnergy
 
G4double GetStepLimit(G4int coupleIdx, G4double previousStep)
 
G4double currentInteractionLength
 
void SetProposedKineticEnergy(G4double proposedKinEnergy)
 
G4double GetSubDEDXForScaledEnergy(G4double scaledKinEnergy)
 
const G4ParticleDefinition * GetParticleDefinition() const 
 
G4PhysicsTable * theCSDARangeTable
 
virtual ~G4VEnergyLossProcess()
 
const G4String & GetParticleType() const 
 
void SetMaxKinEnergy(G4double e)
 
void Register(G4VEnergyLossProcess *p)
 
std::vector< G4double > theDEDXAtMaxEnergy
 
G4VParticleChange * AlongStepDoIt(const G4Track &, const G4Step &)
 
void AddEmModel(G4int, G4VEmModel *, G4VEmFluctuationModel *fluc=0, const G4Region *region=0)
 
G4double MinKinEnergy() const 
 
const G4ParticleDefinition * particle
 
G4double GetGlobalTime() const 
 
G4PhysicsTable * DEDXTableForSubsec() const 
 
G4double Energy(size_t index) const 
 
G4double Value(G4double theEnergy, size_t &lastidx) const 
 
const G4String & GetProcessName() const 
 
G4double AlongStepGetPhysicalInteractionLength(const G4Track &, G4double previousStepSize, G4double currentMinimumStep, G4double ¤tSafety, G4GPILSelection *selection)
 
void AddSecondary(G4Track *aSecondary)
 
virtual G4double ChargeSquareRatio(const G4Track &)
 
const G4TouchableHandle & GetTouchableHandle() const 
 
G4Material * GetMaterial() const 
 
void RegisterExtraParticle(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
 
G4bool IsActive(G4double kinEnergy)
 
void DumpModelList(G4int verb)
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
std::vector< const G4Region * > scoffRegions
 
const G4DataVector * Initialise(const G4ParticleDefinition *part, const G4ParticleDefinition *secPart, G4double minSubRange, G4int verb)
 
G4double ComputeSafety(const G4ThreeVector &pGlobalPoint, G4double maxRadius=DBL_MAX)
 
G4PhysicsTable * theLambdaTable
 
static G4TransportationManager * GetTransportationManager()
 
G4bool RetrievePhysicsTable(const G4ParticleDefinition *, const G4String &directory, G4bool ascii)
 
void SetMasterThread(G4bool val)
 
void PreparePhysicsTable(const G4ParticleDefinition &)
 
G4double G4Log(G4double x)
 
const G4ParticleDefinition * theElectron
 
void ActivateSecondaryBiasing(const G4String ®ion, G4double factor, G4double energyLimit)
 
static const double perMillion
 
virtual G4double GetParticleCharge(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
static G4ProductionCutsTable * GetProductionCutsTable()
 
const G4Material * currentMaterial
 
void SetLambdaTable(G4PhysicsTable *p)
 
G4PhysicsTable * theInverseRangeTable
 
static G4Positron * Positron()
 
G4int NumberOfModels() const 
 
G4SafetyHelper * safetyHelper
 
std::vector< G4double > theCrossSectionMax
 
G4bool LossFluctuation() const 
 
static const G4double factor
 
virtual void PrintInfo()=0
 
G4PhysicsTable * InverseRangeTable() const 
 
void BuildPhysicsTable(const G4ParticleDefinition *aParticle)
 
G4double GetPDGMass() const 
 
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const 
 
static G4ParticleTable * GetParticleTable()
 
void StartTracking(G4Track *)
 
T max(const T t1, const T t2)
brief Return the largest of the two arguments 
 
G4double maxKinEnergyCSDA
 
void InitialiseBaseMaterials(G4PhysicsTable *table)
 
void SetNumberOfSecondaries(G4int totSecondaries)
 
G4bool UseAngularGeneratorForIonisation() const 
 
static G4int Register(const G4String &)
 
G4double GetLocalEnergyDeposit() const 
 
G4double MeanFreePath(const G4Track &track)
 
G4PhysicsTable * theDEDXunRestrictedTable
 
G4StepPoint * GetPostStepPoint() const 
 
void UpdateEmModel(const G4String &, G4double, G4double)
 
G4bool StoreTable(const G4ParticleDefinition *p, G4PhysicsTable *, G4bool ascii, const G4String &directory, const G4String &tname)
 
static G4EmParameters * Instance()
 
G4VParticleChange * pParticleChange
 
G4PhysicsTable * theRangeTableForLoss
 
void SetEmModel(G4VEmModel *, G4int index=1)
 
T min(const T t1, const T t2)
brief Return the smallest of the two arguments 
 
G4double ContinuousStepLimit(const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double ¤tSafety)
 
std::vector< G4VEmModel * > emModels
 
G4double GetSafety() const 
 
void SetProposedCharge(G4double theCharge)
 
void PreparePhysicsTable(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p, G4bool theMaster)
 
void SetCSDARangeTable(G4PhysicsTable *pRange)
 
G4double GetDEDXDispersion(const G4MaterialCutsCouple *couple, const G4DynamicParticle *dp, G4double length)
 
void LocalPhysicsTables(const G4ParticleDefinition *aParticle, G4VEnergyLossProcess *p)
 
G4double GetLambdaForScaledEnergy(G4double scaledKinEnergy)
 
static G4Electron * Electron()
 
G4double GetGlobalTime() const 
 
void SetSecondaryRangeTable(G4PhysicsTable *p)
 
G4bool StorePhysicsTable(const G4String &filename, G4bool ascii=false)
 
G4TrackStatus GetTrackStatus() const 
 
G4VAtomDeexcitation * AtomDeexcitation()
 
G4PhysicsTable * DEDXunRestrictedTable() const 
 
std::vector< G4double > theRangeAtMaxEnergy
 
G4bool RetrieveTable(const G4ParticleDefinition *p, G4PhysicsTable *, G4bool ascii, const G4String &directory, const G4String &tname, G4bool mandatory)
 
G4PhysicsTable * theDEDXTable
 
G4double theInitialNumberOfInteractionLength
 
G4bool GetFlag(size_t i) const 
 
void ProposeTrackStatus(G4TrackStatus status)
 
void SetLowestEnergyLimit(G4double)
 
void SetSubLambdaTable(G4PhysicsTable *p)
 
virtual G4double MinPrimaryEnergy(const G4ParticleDefinition *, const G4Material *, G4double cut)
 
G4ProcessVector * GetAlongStepProcessVector(G4ProcessVectorTypeIndex typ=typeGPIL) const 
 
G4Track * GetTrack() const 
 
G4double MaxEnergyForCSDARange() const 
 
G4double GetPDGCharge() const 
 
G4EmBiasingManager * biasManager
 
void ActivateSubCutoff(G4bool val, const G4Region *region=0)
 
void SetRangeTableForLoss(G4PhysicsTable *p)
 
static G4bool RetrievePhysicsTable(G4PhysicsTable *physTable, const G4String &fileName, G4bool ascii)
 
G4ProductionCuts * GetProductionCuts() const 
 
G4PhysicsTable * theDEDXSubTable
 
G4EmParameters * theParameters
 
G4int GetProcessSubType() const 
 
G4double GetScaledRangeForScaledEnergy(G4double scaledKinEnergy)
 
std::vector< G4VEnergyLossProcess * > scProcesses
 
G4PhysicsTable * BuildDEDXTable(G4EmTableType tType=fRestricted)
 
G4VEmModel * EmModel(G4int index=1) const 
 
void DefineMaterial(const G4MaterialCutsCouple *couple)
 
void SetVerboseLevel(G4int value)
 
void SetDEDXBinning(G4int nbins)
 
virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition *, const G4ParticleDefinition *)=0
 
const G4Material * GetMaterial() const 
 
G4PhysicsTable * theIonisationSubTable
 
G4double CrossSectionPerVolume(G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
std::vector< G4DynamicParticle * > secParticles
 
size_t idxDEDXunRestricted
 
const std::vector< G4int > * GetCoupleIndexes()
 
const G4Element * GetCurrentElement() const 
 
G4bool IsIonisationProcess() const 
 
void SetMinKinEnergy(G4double e)
 
G4EmModelManager * modelManager