Geant4  10.02.p03
G4BraggIonModel Class Reference

#include <G4BraggIonModel.hh>

Inheritance diagram for G4BraggIonModel:
Collaboration diagram for G4BraggIonModel:

Public Member Functions

 G4BraggIonModel (const G4ParticleDefinition *p=nullptr, const G4String &nam="BraggIon")
 
virtual ~G4BraggIonModel ()
 
virtual void Initialise (const G4ParticleDefinition *, const G4DataVector &)
 
virtual G4double MinEnergyCut (const G4ParticleDefinition *, const G4MaterialCutsCouple *couple)
 
virtual G4double ComputeCrossSectionPerElectron (const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy)
 
virtual G4double ComputeCrossSectionPerAtom (const G4ParticleDefinition *, G4double kineticEnergy, G4double Z, G4double A, G4double cutEnergy, G4double maxEnergy)
 
virtual G4double CrossSectionPerVolume (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy)
 
virtual G4double ComputeDEDXPerVolume (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy)
 
virtual void SampleSecondaries (std::vector< G4DynamicParticle *> *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
 
virtual G4double GetChargeSquareRatio (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
virtual G4double GetParticleCharge (const G4ParticleDefinition *p, const G4Material *mat, G4double kineticEnergy)
 
virtual void CorrectionsAlongStep (const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double &eloss, G4double &niel, G4double length)
 
- Public Member Functions inherited from G4VEmModel
 G4VEmModel (const G4String &nam)
 
virtual ~G4VEmModel ()
 
virtual void InitialiseLocal (const G4ParticleDefinition *, G4VEmModel *masterModel)
 
virtual void InitialiseForMaterial (const G4ParticleDefinition *, const G4Material *)
 
virtual void InitialiseForElement (const G4ParticleDefinition *, G4int Z)
 
virtual G4double GetPartialCrossSection (const G4Material *, G4int, const G4ParticleDefinition *, G4double)
 
virtual G4double ComputeCrossSectionPerShell (const G4ParticleDefinition *, G4int Z, G4int shellIdx, G4double kinEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
virtual G4double ChargeSquareRatio (const G4Track &)
 
virtual void StartTracking (G4Track *)
 
virtual G4double Value (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy)
 
virtual G4double MinPrimaryEnergy (const G4Material *, const G4ParticleDefinition *, G4double cut=0.0)
 
virtual void SetupForMaterial (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
virtual void DefineForRegion (const G4Region *)
 
virtual void ModelDescription (std::ostream &outFile) const
 
void InitialiseElementSelectors (const G4ParticleDefinition *, const G4DataVector &)
 
std::vector< G4EmElementSelector * > * GetElementSelectors ()
 
void SetElementSelectors (std::vector< G4EmElementSelector *> *)
 
G4double ComputeDEDX (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)
 
G4double CrossSection (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
G4double ComputeMeanFreePath (const G4ParticleDefinition *, G4double kineticEnergy, const G4Material *, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
G4double ComputeCrossSectionPerAtom (const G4ParticleDefinition *, const G4Element *, G4double kinEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
G4int SelectIsotopeNumber (const G4Element *)
 
const G4ElementSelectRandomAtom (const G4MaterialCutsCouple *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
const G4ElementSelectRandomAtom (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
G4int SelectRandomAtomNumber (const G4Material *)
 
void SetParticleChange (G4VParticleChange *, G4VEmFluctuationModel *f=0)
 
void SetCrossSectionTable (G4PhysicsTable *, G4bool isLocal)
 
G4ElementDataGetElementData ()
 
G4PhysicsTableGetCrossSectionTable ()
 
G4VEmFluctuationModelGetModelOfFluctuations ()
 
G4VEmAngularDistributionGetAngularDistribution ()
 
void SetAngularDistribution (G4VEmAngularDistribution *)
 
G4double HighEnergyLimit () const
 
G4double LowEnergyLimit () const
 
G4double HighEnergyActivationLimit () const
 
G4double LowEnergyActivationLimit () const
 
G4double PolarAngleLimit () const
 
G4double SecondaryThreshold () const
 
G4bool LPMFlag () const
 
G4bool DeexcitationFlag () const
 
G4bool ForceBuildTableFlag () const
 
G4bool UseAngularGeneratorFlag () const
 
void SetAngularGeneratorFlag (G4bool)
 
void SetHighEnergyLimit (G4double)
 
void SetLowEnergyLimit (G4double)
 
void SetActivationHighEnergyLimit (G4double)
 
void SetActivationLowEnergyLimit (G4double)
 
G4bool IsActive (G4double kinEnergy)
 
void SetPolarAngleLimit (G4double)
 
void SetSecondaryThreshold (G4double)
 
void SetLPMFlag (G4bool val)
 
void SetDeexcitationFlag (G4bool val)
 
void SetForceBuildTable (G4bool val)
 
void SetMasterThread (G4bool val)
 
G4bool IsMaster () const
 
G4double MaxSecondaryKinEnergy (const G4DynamicParticle *dynParticle)
 
const G4StringGetName () const
 
void SetCurrentCouple (const G4MaterialCutsCouple *)
 
const G4ElementGetCurrentElement () const
 
const G4IsotopeGetCurrentIsotope () const
 
G4bool IsLocked () const
 
void SetLocked (G4bool)
 

Protected Member Functions

virtual G4double MaxSecondaryEnergy (const G4ParticleDefinition *, G4double kinEnergy)
 
- Protected Member Functions inherited from G4VEmModel
G4ParticleChangeForLoss * GetParticleChangeForLoss ()
 
G4ParticleChangeForGamma * GetParticleChangeForGamma ()
 
const G4MaterialCutsCoupleCurrentCouple () const
 
void SetCurrentElement (const G4Element *)
 

Private Member Functions

void SetParticle (const G4ParticleDefinition *p)
 
G4double HeEffChargeSquare (G4double z, G4double kinEnergyInMeV) const
 
G4BraggIonModeloperator= (const G4BraggIonModel &right)
 
 G4BraggIonModel (const G4BraggIonModel &)
 
G4bool HasMaterial (const G4Material *material)
 
G4double StoppingPower (const G4Material *material, G4double kineticEnergy)
 
G4double ElectronicStoppingPower (G4double z, G4double kineticEnergy) const
 
G4double DEDX (const G4Material *material, G4double kineticEnergy)
 

Private Attributes

G4EmCorrectionscorr
 
const G4ParticleDefinitionparticle
 
G4ParticleDefinitiontheElectron
 
G4ParticleChangeForLoss * fParticleChange
 
const G4MaterialcurrentMaterial
 
G4double mass
 
G4double spin
 
G4double chargeSquare
 
G4double massRate
 
G4double ratio
 
G4double lowestKinEnergy
 
G4double HeMass
 
G4double massFactor
 
G4double corrFactor
 
G4double rateMassHe2p
 
G4double theZieglerFactor
 
G4int iMolecula
 
G4int iASTAR
 
G4bool isIon
 
G4bool isInitialised
 

Static Private Attributes

static G4ASTARStoppingfASTAR = nullptr
 

Additional Inherited Members

- Protected Attributes inherited from G4VEmModel
G4ElementDatafElementData
 
G4VParticleChange * pParticleChange
 
G4PhysicsTablexSectionTable
 
const std::vector< G4double > * theDensityFactor
 
const std::vector< G4int > * theDensityIdx
 
size_t idxTable
 
- Static Protected Attributes inherited from G4VEmModel
static const G4double inveplus = 1.0/CLHEP::eplus
 

Detailed Description

Definition at line 68 of file G4BraggIonModel.hh.

Constructor & Destructor Documentation

◆ G4BraggIonModel() [1/2]

G4BraggIonModel::G4BraggIonModel ( const G4ParticleDefinition p = nullptr,
const G4String nam = "BraggIon" 
)

Definition at line 78 of file G4BraggIonModel.cc.

80  : G4VEmModel(nam),
81  corr(nullptr),
82  particle(nullptr),
83  fParticleChange(nullptr),
84  currentMaterial(nullptr),
85  iMolecula(-1),
86  iASTAR(-1),
87  isIon(false),
88  isInitialised(false)
89 {
91 
92  HeMass = 3.727417*GeV;
95  massFactor = 1000.*amu_c2/HeMass;
96  theZieglerFactor = eV*cm2*1.0e-15;
98  corrFactor = 1.0;
99  if(p) { SetParticle(p); }
100  else { SetParticle(theElectron); }
101 }
static const double MeV
Definition: G4SIunits.hh:211
static const double cm2
Definition: G4SIunits.hh:119
G4double lowestKinEnergy
G4double theZieglerFactor
G4VEmModel(const G4String &nam)
Definition: G4VEmModel.cc:69
const G4ParticleDefinition * particle
void SetHighEnergyLimit(G4double)
Definition: G4VEmModel.hh:725
G4ParticleChangeForLoss * fParticleChange
float proton_mass_c2
Definition: hepunit.py:275
static const double GeV
Definition: G4SIunits.hh:214
static const double eV
Definition: G4SIunits.hh:212
void SetParticle(const G4ParticleDefinition *p)
G4ParticleDefinition * theElectron
static G4Electron * Electron()
Definition: G4Electron.cc:94
static const double keV
Definition: G4SIunits.hh:213
float amu_c2
Definition: hepunit.py:277
const G4Material * currentMaterial
G4EmCorrections * corr
Here is the call graph for this function:

◆ ~G4BraggIonModel()

G4BraggIonModel::~G4BraggIonModel ( )
virtual

Definition at line 105 of file G4BraggIonModel.cc.

106 {
107  if(IsMaster()) { delete fASTAR; fASTAR = nullptr; }
108 }
static G4ASTARStopping * fASTAR
G4bool IsMaster() const
Definition: G4VEmModel.hh:718
Here is the call graph for this function:

◆ G4BraggIonModel() [2/2]

G4BraggIonModel::G4BraggIonModel ( const G4BraggIonModel )
private

Member Function Documentation

◆ ComputeCrossSectionPerAtom()

G4double G4BraggIonModel::ComputeCrossSectionPerAtom ( const G4ParticleDefinition p,
G4double  kineticEnergy,
G4double  Z,
G4double  A,
G4double  cutEnergy,
G4double  maxEnergy 
)
virtual

Reimplemented from G4VEmModel.

Definition at line 206 of file G4BraggIonModel.cc.

212 {
214  (p,kineticEnergy,cutEnergy,maxEnergy);
215  return cross;
216 }
Float_t Z
double G4double
Definition: G4Types.hh:76
virtual G4double ComputeCrossSectionPerElectron(const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy)
Here is the call graph for this function:

◆ ComputeCrossSectionPerElectron()

G4double G4BraggIonModel::ComputeCrossSectionPerElectron ( const G4ParticleDefinition p,
G4double  kineticEnergy,
G4double  cutEnergy,
G4double  maxEnergy 
)
virtual

Definition at line 177 of file G4BraggIonModel.cc.

182 {
183  G4double cross = 0.0;
184  G4double tmax = MaxSecondaryEnergy(p, kineticEnergy);
185  G4double maxEnergy = std::min(tmax,maxKinEnergy);
186  if(cutEnergy < tmax) {
187 
188  G4double energy = kineticEnergy + mass;
189  G4double energy2 = energy*energy;
190  G4double beta2 = kineticEnergy*(kineticEnergy + 2.0*mass)/energy2;
191  cross = (maxEnergy - cutEnergy)/(cutEnergy*maxEnergy)
192  - beta2*G4Log(maxEnergy/cutEnergy)/tmax;
193 
194  if( 0.0 < spin ) { cross += 0.5*(maxEnergy - cutEnergy)/energy2; }
195 
196  cross *= twopi_mc2_rcl2*chargeSquare/beta2;
197  }
198  // G4cout << "BR: e= " << kineticEnergy << " tmin= " << cutEnergy
199  // << " tmax= " << tmax << " cross= " << cross << G4endl;
200 
201  return cross;
202 }
int twopi_mc2_rcl2
Definition: hepunit.py:294
double energy
Definition: plottest35.C:25
G4double G4Log(G4double x)
Definition: G4Log.hh:230
double G4double
Definition: G4Types.hh:76
virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition *, G4double kinEnergy)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeDEDXPerVolume()

G4double G4BraggIonModel::ComputeDEDXPerVolume ( const G4Material material,
const G4ParticleDefinition p,
G4double  kineticEnergy,
G4double  cutEnergy 
)
virtual

Reimplemented from G4VEmModel.

Reimplemented in G4BraggNoDeltaModel.

Definition at line 235 of file G4BraggIonModel.cc.

239 {
240  G4double tmax = MaxSecondaryEnergy(p, kineticEnergy);
241  G4double tmin = min(cutEnergy, tmax);
242  G4double tkin = kineticEnergy/massRate;
243  G4double dedx = 0.0;
244 
245  if(tkin < lowestKinEnergy) {
246  dedx = DEDX(material, lowestKinEnergy)*sqrt(tkin/lowestKinEnergy);
247  } else {
248  dedx = DEDX(material, tkin);
249  }
250 
251  if (cutEnergy < tmax) {
252 
253  G4double tau = kineticEnergy/mass;
254  G4double gam = tau + 1.0;
255  G4double bg2 = tau * (tau+2.0);
256  G4double beta2 = bg2/(gam*gam);
257  G4double x = tmin/tmax;
258 
259  dedx += (G4Log(x) + (1.0 - x)*beta2) * twopi_mc2_rcl2
260  * (material->GetElectronDensity())/beta2;
261  }
262 
263  // now compute the total ionization loss
264 
265  if (dedx < 0.0) dedx = 0.0 ;
266 
267  dedx *= chargeSquare;
268  /*
269  G4cout << "Bragg: tkin(MeV) = " << tkin/MeV << " dedx(MeVxcm^2/g) = "
270  << dedx*gram/(MeV*cm2*material->GetDensity())
271  << " q2 = " << chargeSquare << G4endl;
272  */
273  return dedx;
274 }
int twopi_mc2_rcl2
Definition: hepunit.py:294
G4double lowestKinEnergy
G4double DEDX(const G4Material *material, G4double kineticEnergy)
G4double G4Log(G4double x)
Definition: G4Log.hh:230
G4double GetElectronDensity() const
Definition: G4Material.hh:217
double G4double
Definition: G4Types.hh:76
virtual G4double MaxSecondaryEnergy(const G4ParticleDefinition *, G4double kinEnergy)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ CorrectionsAlongStep()

void G4BraggIonModel::CorrectionsAlongStep ( const G4MaterialCutsCouple couple,
const G4DynamicParticle dp,
G4double eloss,
G4double niel,
G4double  length 
)
virtual

Reimplemented from G4VEmModel.

Definition at line 278 of file G4BraggIonModel.cc.

283 {
284  // this method is called only for ions
285  const G4ParticleDefinition* p = dp->GetDefinition();
286  const G4Material* mat = couple->GetMaterial();
287  G4double preKinEnergy = dp->GetKineticEnergy();
288  G4double e = preKinEnergy - eloss*0.5;
289  if(e < 0.0) { e = preKinEnergy*0.5; }
290 
293  G4double qfactor = q2*corr->EffectiveChargeCorrection(p,mat,e)/corrFactor;
294  eloss *= qfactor;
295 
296  //G4cout << "G4BraggIonModel::CorrectionsAlongStep e= " << e
297  // << " qfactor= " << qfactor << " " << p->GetParticleName() <<G4endl;
298 }
const G4Material * GetMaterial() const
G4double EffectiveChargeSquareRatio(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double EffectiveChargeCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4VEmFluctuationModel * GetModelOfFluctuations()
Definition: G4VEmModel.hh:610
Float_t mat
G4double GetKineticEnergy() const
G4ParticleDefinition * GetDefinition() const
double G4double
Definition: G4Types.hh:76
virtual void SetParticleAndCharge(const G4ParticleDefinition *, G4double q2)
G4EmCorrections * corr
Here is the call graph for this function:

◆ CrossSectionPerVolume()

G4double G4BraggIonModel::CrossSectionPerVolume ( const G4Material material,
const G4ParticleDefinition p,
G4double  kineticEnergy,
G4double  cutEnergy,
G4double  maxEnergy 
)
virtual

Reimplemented from G4VEmModel.

Reimplemented in G4BraggNoDeltaModel.

Definition at line 220 of file G4BraggIonModel.cc.

226 {
227  G4double eDensity = material->GetElectronDensity();
229  (p,kineticEnergy,cutEnergy,maxEnergy);
230  return cross;
231 }
G4double GetElectronDensity() const
Definition: G4Material.hh:217
double G4double
Definition: G4Types.hh:76
virtual G4double ComputeCrossSectionPerElectron(const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy, G4double maxEnergy)
Here is the call graph for this function:

◆ DEDX()

G4double G4BraggIonModel::DEDX ( const G4Material material,
G4double  kineticEnergy 
)
private

Definition at line 643 of file G4BraggIonModel.cc.

645 {
646  G4double eloss = 0.0;
647  // check DB
648  if(material != currentMaterial) {
650  iASTAR = -1;
651  iMolecula = -1;
652  if( !HasMaterial(material) ) { iASTAR = fASTAR->GetIndex(material); }
653  }
654 
655  const G4int numberOfElements = material->GetNumberOfElements();
656  const G4double* theAtomicNumDensityVector =
657  material->GetAtomicNumDensityVector();
658 
659  if( iASTAR >= 0 ) {
660  G4double T = kineticEnergy*rateMassHe2p;
661  G4int zeff = G4lrint(material->GetTotNbOfElectPerVolume()/
662  material->GetTotNbOfAtomsPerVolume());
663  return fASTAR->GetElectronicDEDX(iASTAR, T)*material->GetDensity()/
664  HeEffChargeSquare(zeff, T/MeV);
665 
666  } else if(iMolecula >= 0) {
667 
668  eloss = StoppingPower(material, kineticEnergy)*
669  material->GetDensity()/amu;
670 
671  // pure material
672  } else if(1 == numberOfElements) {
673 
674  G4double z = material->GetZ();
675  eloss = ElectronicStoppingPower(z, kineticEnergy)
676  * (material->GetTotNbOfAtomsPerVolume());
677 
678  // Brugg's rule calculation
679  } else {
680  const G4ElementVector* theElementVector =
681  material->GetElementVector() ;
682 
683  // loop for the elements in the material
684  for (G4int i=0; i<numberOfElements; i++)
685  {
686  const G4Element* element = (*theElementVector)[i] ;
687  eloss += ElectronicStoppingPower(element->GetZ(), kineticEnergy)
688  * theAtomicNumDensityVector[i];
689  }
690  }
691  return eloss*theZieglerFactor;
692 }
G4double GetZ() const
Definition: G4Material.cc:625
static const double MeV
Definition: G4SIunits.hh:211
static G4ASTARStopping * fASTAR
std::vector< G4Element * > G4ElementVector
G4double StoppingPower(const G4Material *material, G4double kineticEnergy)
G4bool HasMaterial(const G4Material *material)
G4double GetTotNbOfAtomsPerVolume() const
Definition: G4Material.hh:209
G4double GetDensity() const
Definition: G4Material.hh:180
int G4int
Definition: G4Types.hh:78
G4double theZieglerFactor
G4double ElectronicStoppingPower(G4double z, G4double kineticEnergy) const
G4double HeEffChargeSquare(G4double z, G4double kinEnergyInMeV) const
string material
Definition: eplot.py:19
const G4double * GetAtomicNumDensityVector() const
Definition: G4Material.hh:216
int G4lrint(double ad)
Definition: templates.hh:163
size_t GetNumberOfElements() const
Definition: G4Material.hh:186
const G4ElementVector * GetElementVector() const
Definition: G4Material.hh:190
double G4double
Definition: G4Types.hh:76
G4double GetTotNbOfElectPerVolume() const
Definition: G4Material.hh:212
const G4Material * currentMaterial
G4double GetZ() const
Definition: G4Element.hh:131
G4double GetElectronicDEDX(G4int idx, G4double energy) const
G4int GetIndex(const G4Material *) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ElectronicStoppingPower()

G4double G4BraggIonModel::ElectronicStoppingPower ( G4double  z,
G4double  kineticEnergy 
) const
private

Definition at line 491 of file G4BraggIonModel.cc.

493 {
494  G4double ionloss ;
495  G4int i = G4lrint(z)-1 ; // index of atom
496  if(i < 0) i = 0 ;
497  if(i > 91) i = 91 ;
498 
499  // The data and the fit from:
500  // ICRU Report 49, 1993. Ziegler's type of parametrisations.
501  // Proton kinetic energy for parametrisation (keV/amu)
502 
503  // He energy in internal units of parametrisation formula (MeV)
504  G4double T = kineticEnergy*rateMassHe2p/MeV ;
505 
506  static const G4double a[92][5] = {
507  {0.35485, 0.6456, 6.01525, 20.8933, 4.3515
508  },{ 0.58, 0.59, 6.3, 130.0, 44.07
509  },{ 1.42, 0.49, 12.25, 32.0, 9.161
510  },{ 2.206, 0.51, 15.32, 0.25, 8.995 //Be Ziegler77
511  // },{ 2.1895, 0.47183,7.2362, 134.30, 197.96 //Be from ICRU
512  },{ 3.691, 0.4128, 18.48, 50.72, 9.0
513  },{ 3.83523, 0.42993,12.6125, 227.41, 188.97
514  },{ 1.9259, 0.5550, 27.15125, 26.0665, 6.2768
515  },{ 2.81015, 0.4759, 50.0253, 10.556, 1.0382
516  },{ 1.533, 0.531, 40.44, 18.41, 2.718
517  },{ 2.303, 0.4861, 37.01, 37.96, 5.092
518  // Z= 11-20
519  },{ 9.894, 0.3081, 23.65, 0.384, 92.93
520  },{ 4.3, 0.47, 34.3, 3.3, 12.74
521  },{ 2.5, 0.625, 45.7, 0.1, 4.359
522  },{ 2.1, 0.65, 49.34, 1.788, 4.133
523  },{ 1.729, 0.6562, 53.41, 2.405, 3.845
524  },{ 1.402, 0.6791, 58.98, 3.528, 3.211
525  },{ 1.117, 0.7044, 69.69, 3.705, 2.156
526  },{ 2.291, 0.6284, 73.88, 4.478, 2.066
527  },{ 8.554, 0.3817, 83.61, 11.84, 1.875
528  },{ 6.297, 0.4622, 65.39, 10.14, 5.036
529  // Z= 21-30
530  },{ 5.307, 0.4918, 61.74, 12.4, 6.665
531  },{ 4.71, 0.5087, 65.28, 8.806, 5.948
532  },{ 6.151, 0.4524, 83.0, 18.31, 2.71
533  },{ 6.57, 0.4322, 84.76, 15.53, 2.779
534  },{ 5.738, 0.4492, 84.6, 14.18, 3.101
535  },{ 5.013, 0.4707, 85.8, 16.55, 3.211
536  },{ 4.32, 0.4947, 76.14, 10.85, 5.441
537  },{ 4.652, 0.4571, 80.73, 22.0, 4.952
538  },{ 3.114, 0.5236, 76.67, 7.62, 6.385
539  },{ 3.114, 0.5236, 76.67, 7.62, 7.502
540  // Z= 31-40
541  },{ 3.114, 0.5236, 76.67, 7.62, 8.514
542  },{ 5.746, 0.4662, 79.24, 1.185, 7.993
543  },{ 2.792, 0.6346, 106.1, 0.2986, 2.331
544  },{ 4.667, 0.5095, 124.3, 2.102, 1.667
545  },{ 2.44, 0.6346, 105.0, 0.83, 2.851
546  },{ 1.413, 0.7377, 147.9, 1.466, 1.016
547  },{ 11.72, 0.3826, 102.8, 9.231, 4.371
548  },{ 7.126, 0.4804, 119.3, 5.784, 2.454
549  },{ 11.61, 0.3955, 146.7, 7.031, 1.423
550  },{ 10.99, 0.41, 163.9, 7.1, 1.052
551  // Z= 41-50
552  },{ 9.241, 0.4275, 163.1, 7.954, 1.102
553  },{ 9.276, 0.418, 157.1, 8.038, 1.29
554  },{ 3.999, 0.6152, 97.6, 1.297, 5.792
555  },{ 4.306, 0.5658, 97.99, 5.514, 5.754
556  },{ 3.615, 0.6197, 86.26, 0.333, 8.689
557  },{ 5.8, 0.49, 147.2, 6.903, 1.289
558  },{ 5.6, 0.49, 130.0, 10.0, 2.844
559  },{ 3.55, 0.6068, 124.7, 1.112, 3.119
560  },{ 3.6, 0.62, 105.8, 0.1692, 6.026
561  },{ 5.4, 0.53, 103.1, 3.931, 7.767
562  // Z= 51-60
563  },{ 3.97, 0.6459, 131.8, 0.2233, 2.723
564  },{ 3.65, 0.64, 126.8, 0.6834, 3.411
565  },{ 3.118, 0.6519, 164.9, 1.208, 1.51
566  },{ 3.949, 0.6209, 200.5, 1.878, 0.9126
567  },{ 14.4, 0.3923, 152.5, 8.354, 2.597
568  },{ 10.99, 0.4599, 138.4, 4.811, 3.726
569  },{ 16.6, 0.3773, 224.1, 6.28, 0.9121
570  },{ 10.54, 0.4533, 159.3, 4.832, 2.529
571  },{ 10.33, 0.4502, 162.0, 5.132, 2.444
572  },{ 10.15, 0.4471, 165.6, 5.378, 2.328
573  // Z= 61-70
574  },{ 9.976, 0.4439, 168.0, 5.721, 2.258
575  },{ 9.804, 0.4408, 176.2, 5.675, 1.997
576  },{ 14.22, 0.363, 228.4, 7.024, 1.016
577  },{ 9.952, 0.4318, 233.5, 5.065, 0.9244
578  },{ 9.272, 0.4345, 210.0, 4.911, 1.258
579  },{ 10.13, 0.4146, 225.7, 5.525, 1.055
580  },{ 8.949, 0.4304, 213.3, 5.071, 1.221
581  },{ 11.94, 0.3783, 247.2, 6.655, 0.849
582  },{ 8.472, 0.4405, 195.5, 4.051, 1.604
583  },{ 8.301, 0.4399, 203.7, 3.667, 1.459
584  // Z= 71-80
585  },{ 6.567, 0.4858, 193.0, 2.65, 1.66
586  },{ 5.951, 0.5016, 196.1, 2.662, 1.589
587  },{ 7.495, 0.4523, 251.4, 3.433, 0.8619
588  },{ 6.335, 0.4825, 255.1, 2.834, 0.8228
589  },{ 4.314, 0.5558, 214.8, 2.354, 1.263
590  },{ 4.02, 0.5681, 219.9, 2.402, 1.191
591  },{ 3.836, 0.5765, 210.2, 2.742, 1.305
592  },{ 4.68, 0.5247, 244.7, 2.749, 0.8962
593  },{ 2.892, 0.6204, 208.6, 2.415, 1.416 //Au Z77
594  // },{ 3.223, 0.5883, 232.7, 2.954, 1.05 //Au ICRU
595  },{ 2.892, 0.6204, 208.6, 2.415, 1.416
596  // Z= 81-90
597  },{ 4.728, 0.5522, 217.0, 3.091, 1.386
598  },{ 6.18, 0.52, 170.0, 4.0, 3.224
599  },{ 9.0, 0.47, 198.0, 3.8, 2.032
600  },{ 2.324, 0.6997, 216.0, 1.599, 1.399
601  },{ 1.961, 0.7286, 223.0, 1.621, 1.296
602  },{ 1.75, 0.7427, 350.1, 0.9789, 0.5507
603  },{ 10.31, 0.4613, 261.2, 4.738, 0.9899
604  },{ 7.962, 0.519, 235.7, 4.347, 1.313
605  },{ 6.227, 0.5645, 231.9, 3.961, 1.379
606  },{ 5.246, 0.5947, 228.6, 4.027, 1.432
607  // Z= 91-92
608  },{ 5.408, 0.5811, 235.7, 3.961, 1.358
609  },{ 5.218, 0.5828, 245.0, 3.838, 1.25}
610  };
611 
612  // Free electron gas model
613  if ( T < 0.001 ) {
614  G4double slow = a[i][0] ;
615  G4double shigh = G4Log( 1.0 + a[i][3]*1000.0 + a[i][4]*0.001 )
616  * a[i][2]*1000.0 ;
617  ionloss = slow*shigh / (slow + shigh) ;
618  ionloss *= sqrt(T*1000.0) ;
619 
620  // Main parametrisation
621  } else {
622  G4double slow = a[i][0] * G4Exp(G4Log(T*1000.0)*a[i][1]) ;
623  G4double shigh = G4Log( 1.0 + a[i][3]/T + a[i][4]*T ) * a[i][2]/T ;
624  ionloss = slow*shigh / (slow + shigh) ;
625  /*
626  G4cout << "## " << i << ". T= " << T << " slow= " << slow
627  << " a0= " << a[i][0] << " a1= " << a[i][1]
628  << " shigh= " << shigh
629  << " dedx= " << ionloss << " q^2= " << HeEffChargeSquare(z, T*MeV)
630  << G4endl;
631  */
632  }
633  if ( ionloss < 0.0) { ionloss = 0.0; }
634 
635  // He effective charge
636  ionloss /= HeEffChargeSquare(z, T);
637 
638  return ionloss;
639 }
static const double MeV
Definition: G4SIunits.hh:211
int G4int
Definition: G4Types.hh:78
G4double HeEffChargeSquare(G4double z, G4double kinEnergyInMeV) const
G4double G4Log(G4double x)
Definition: G4Log.hh:230
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
int G4lrint(double ad)
Definition: templates.hh:163
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetChargeSquareRatio()

G4double G4BraggIonModel::GetChargeSquareRatio ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)
virtual

Reimplemented from G4VEmModel.

Definition at line 152 of file G4BraggIonModel.cc.

155 {
156  //G4cout<<"G4BraggIonModel::GetChargeSquareRatio e= "<<kineticEnergy<<G4endl;
157  // this method is called only for ions
158  G4double q2 = corr->EffectiveChargeSquareRatio(p,mat,kineticEnergy);
159  corrFactor = q2*corr->EffectiveChargeCorrection(p,mat,kineticEnergy);
160  return corrFactor;
161 }
G4double EffectiveChargeSquareRatio(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double EffectiveChargeCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
double G4double
Definition: G4Types.hh:76
G4EmCorrections * corr
Here is the call graph for this function:

◆ GetParticleCharge()

G4double G4BraggIonModel::GetParticleCharge ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)
virtual

Reimplemented from G4VEmModel.

Definition at line 165 of file G4BraggIonModel.cc.

168 {
169  //G4cout<<"G4BraggIonModel::GetParticleCharge e= "<<kineticEnergy <<
170  // " q= " << corr->GetParticleCharge(p,mat,kineticEnergy) <<G4endl;
171  // this method is called only for ions
172  return corr->GetParticleCharge(p,mat,kineticEnergy);
173 }
G4double GetParticleCharge(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4EmCorrections * corr
Here is the call graph for this function:

◆ HasMaterial()

G4bool G4BraggIonModel::HasMaterial ( const G4Material material)
private

Definition at line 392 of file G4BraggIonModel.cc.

393 {
394  return false;
395  /*
396  G4String chFormula = material->GetChemicalFormula();
397  if("" == chFormula) { return false; }
398 
399  // ICRU Report N49, 1993. Ziegler model for He.
400 
401  static const size_t numberOfMolecula = 11;
402  static const G4String molName[numberOfMolecula] = {
403  "CaF_2", "Cellulose_Nitrate", "LiF", "Policarbonate",
404  "(C_2H_4)_N-Polyethylene", "(C_2H_4)_N-Polymethly_Methacralate",
405  "Polysterene", "SiO_2", "NaI", "H_2O",
406  "Graphite" };
407 
408  // Search for the material in the table
409  for (size_t i=0; i<numberOfMolecula; ++i) {
410  if (chFormula == molName[i]) {
411  iASTAR = fASTAR->GetIndex(matName[i]);
412  break;
413  }
414  }
415  return (iASTAR >= 0);
416  */
417 }
Here is the caller graph for this function:

◆ HeEffChargeSquare()

G4double G4BraggIonModel::HeEffChargeSquare ( G4double  z,
G4double  kinEnergyInMeV 
) const
private

Definition at line 696 of file G4BraggIonModel.cc.

698 {
699  // The aproximation of He effective charge from:
700  // J.F.Ziegler, J.P. Biersack, U. Littmark
701  // The Stopping and Range of Ions in Matter,
702  // Vol.1, Pergamon Press, 1985
703 
704  static const G4double c[6] = {0.2865, 0.1266, -0.001429,
705  0.02402,-0.01135, 0.001475};
706 
707  G4double e = std::max(0.0, G4Log(kinEnergyHeInMeV*massFactor));
708  G4double x = c[0] ;
709  G4double y = 1.0 ;
710  for (G4int i=1; i<6; ++i) {
711  y *= e ;
712  x += y * c[i] ;
713  }
714 
715  G4double w = 7.6 - e ;
716  w = 1.0 + (0.007 + 0.00005*z) * G4Exp( -w*w ) ;
717  w = 4.0 * (1.0 - G4Exp(-x)) * w * w ;
718 
719  return w;
720 }
int G4int
Definition: G4Types.hh:78
Double_t y
G4double G4Log(G4double x)
Definition: G4Log.hh:230
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Initialise()

void G4BraggIonModel::Initialise ( const G4ParticleDefinition p,
const G4DataVector  
)
virtual

Implements G4VEmModel.

Definition at line 112 of file G4BraggIonModel.cc.

114 {
115  if(p != particle) { SetParticle(p); }
116 
118 
119  // always false before the run
120  SetDeexcitationFlag(false);
121 
122  if(!isInitialised) {
123  isInitialised = true;
124 
127  }
129  if(particle->GetParticleType() == "nucleus" &&
130  pname != "deuteron" && pname != "triton" &&
131  pname != "alpha+" && pname != "helium" &&
132  pname != "hydrogen") { isIon = true; }
133 
135 
137  if(!fASTAR) { fASTAR = new G4ASTARStopping(); }
138  }
139  if(IsMaster() && particle->GetPDGMass() < GeV) { fASTAR->Initialise(); }
140 }
static G4LossTableManager * Instance()
G4ParticleChangeForLoss * GetParticleChangeForLoss()
Definition: G4VEmModel.cc:120
static G4ASTARStopping * fASTAR
G4bool UseAngularGeneratorFlag() const
Definition: G4VEmModel.hh:697
G4bool IsMaster() const
Definition: G4VEmModel.hh:718
G4VEmAngularDistribution * GetAngularDistribution()
Definition: G4VEmModel.hh:617
const G4String & GetParticleType() const
const G4ParticleDefinition * particle
G4ParticleChangeForLoss * fParticleChange
const G4String & GetParticleName() const
G4EmCorrections * EmCorrections()
static const double GeV
Definition: G4SIunits.hh:214
string pname
Definition: eplot.py:33
void SetAngularDistribution(G4VEmAngularDistribution *)
Definition: G4VEmModel.hh:624
void SetParticle(const G4ParticleDefinition *p)
void SetDeexcitationFlag(G4bool val)
Definition: G4VEmModel.hh:781
G4EmCorrections * corr
Here is the call graph for this function:

◆ MaxSecondaryEnergy()

G4double G4BraggIonModel::MaxSecondaryEnergy ( const G4ParticleDefinition pd,
G4double  kinEnergy 
)
protectedvirtual

Reimplemented from G4VEmModel.

Definition at line 380 of file G4BraggIonModel.cc.

382 {
383  if(pd != particle) { SetParticle(pd); }
384  G4double tau = kinEnergy/mass;
385  G4double tmax = 2.0*electron_mass_c2*tau*(tau + 2.) /
386  (1. + 2.0*(tau + 1.)*ratio + ratio*ratio);
387  return tmax;
388 }
const G4ParticleDefinition * particle
float electron_mass_c2
Definition: hepunit.py:274
void SetParticle(const G4ParticleDefinition *p)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ MinEnergyCut()

G4double G4BraggIonModel::MinEnergyCut ( const G4ParticleDefinition ,
const G4MaterialCutsCouple couple 
)
virtual

Reimplemented from G4VEmModel.

Definition at line 144 of file G4BraggIonModel.cc.

146 {
147  return couple->GetMaterial()->GetIonisation()->GetMeanExcitationEnergy();
148 }
G4IonisParamMat * GetIonisation() const
Definition: G4Material.hh:226
const G4Material * GetMaterial() const
G4double GetMeanExcitationEnergy() const
Here is the call graph for this function:

◆ operator=()

G4BraggIonModel& G4BraggIonModel::operator= ( const G4BraggIonModel right)
private

◆ SampleSecondaries()

void G4BraggIonModel::SampleSecondaries ( std::vector< G4DynamicParticle *> *  vdp,
const G4MaterialCutsCouple couple,
const G4DynamicParticle dp,
G4double  tmin,
G4double  maxEnergy 
)
virtual

Implements G4VEmModel.

Definition at line 302 of file G4BraggIonModel.cc.

307 {
308  G4double tmax = MaxSecondaryKinEnergy(dp);
309  G4double xmax = std::min(tmax, maxEnergy);
310  if(xmin >= xmax) { return; }
311 
312  G4double kineticEnergy = dp->GetKineticEnergy();
313  G4double energy = kineticEnergy + mass;
314  G4double energy2 = energy*energy;
315  G4double beta2 = kineticEnergy*(kineticEnergy + 2.0*mass)/energy2;
316  G4double grej = 1.0;
317  G4double deltaKinEnergy, f;
318 
319  CLHEP::HepRandomEngine* rndmEngineMod = G4Random::getTheEngine();
320  G4double rndm[2];
321 
322  // sampling follows ...
323  do {
324  rndmEngineMod->flatArray(2, rndm);
325  deltaKinEnergy = xmin*xmax/(xmin*(1.0 - rndm[0]) + xmax*rndm[0]);
326 
327  f = 1.0 - beta2*deltaKinEnergy/tmax;
328 
329  if(f > grej) {
330  G4cout << "G4BraggIonModel::SampleSecondary Warning! "
331  << "Majorant " << grej << " < "
332  << f << " for e= " << deltaKinEnergy
333  << G4endl;
334  }
335 
336  // Loop checking, 03-Aug-2015, Vladimir Ivanchenko
337  } while( grej*rndm[1] >= f );
338 
339  G4ThreeVector deltaDirection;
340 
342  const G4Material* mat = couple->GetMaterial();
344 
345  deltaDirection =
346  GetAngularDistribution()->SampleDirection(dp, deltaKinEnergy, Z, mat);
347 
348  } else {
349 
350  G4double deltaMomentum =
351  sqrt(deltaKinEnergy * (deltaKinEnergy + 2.0*electron_mass_c2));
352  G4double cost = deltaKinEnergy * (energy + electron_mass_c2) /
353  (deltaMomentum * dp->GetTotalMomentum());
354  if(cost > 1.0) { cost = 1.0; }
355  G4double sint = sqrt((1.0 - cost)*(1.0 + cost));
356 
357  G4double phi = twopi*rndmEngineMod->flat();
358 
359  deltaDirection.set(sint*cos(phi),sint*sin(phi), cost) ;
360  deltaDirection.rotateUz(dp->GetMomentumDirection());
361  }
362 
363  // create G4DynamicParticle object for delta ray
364  G4DynamicParticle* delta =
365  new G4DynamicParticle(theElectron,deltaDirection,deltaKinEnergy);
366 
367  vdp->push_back(delta);
368 
369  // Change kinematics of primary particle
370  kineticEnergy -= deltaKinEnergy;
371  G4ThreeVector finalP = dp->GetMomentum() - delta->GetMomentum();
372  finalP = finalP.unit();
373 
374  fParticleChange->SetProposedKineticEnergy(kineticEnergy);
375  fParticleChange->SetProposedMomentumDirection(finalP);
376 }
void set(double x, double y, double z)
G4double MaxSecondaryKinEnergy(const G4DynamicParticle *dynParticle)
Definition: G4VEmModel.hh:482
const G4Material * GetMaterial() const
G4bool UseAngularGeneratorFlag() const
Definition: G4VEmModel.hh:697
G4VEmAngularDistribution * GetAngularDistribution()
Definition: G4VEmModel.hh:617
G4double GetTotalMomentum() const
virtual double flat()=0
int G4int
Definition: G4Types.hh:78
Float_t mat
G4ParticleChangeForLoss * fParticleChange
G4double GetKineticEnergy() const
G4ThreeVector GetMomentum() const
G4GLOB_DLL std::ostream G4cout
double energy
Definition: plottest35.C:25
virtual G4ThreeVector & SampleDirection(const G4DynamicParticle *dp, G4double finalTotalEnergy, G4int Z, const G4Material *)=0
Float_t Z
Hep3Vector unit() const
Hep3Vector & rotateUz(const Hep3Vector &)
Definition: ThreeVector.cc:38
static const double twopi
Definition: G4SIunits.hh:75
float electron_mass_c2
Definition: hepunit.py:274
const G4ThreeVector & GetMomentumDirection() const
G4ParticleDefinition * theElectron
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
virtual void flatArray(const int size, double *vect)=0
G4int SelectRandomAtomNumber(const G4Material *)
Definition: G4VEmModel.hh:564
Here is the call graph for this function:

◆ SetParticle()

void G4BraggIonModel::SetParticle ( const G4ParticleDefinition p)
inlineprivate

Definition at line 184 of file G4BraggIonModel.hh.

185 {
186  particle = p;
187  mass = particle->GetPDGMass();
188  spin = particle->GetPDGSpin();
190  chargeSquare = q*q;
193 }
const G4ParticleDefinition * particle
static const double proton_mass_c2
static const double eplus
double G4double
Definition: G4Types.hh:76
static const double electron_mass_c2
G4double GetPDGCharge() const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ StoppingPower()

G4double G4BraggIonModel::StoppingPower ( const G4Material material,
G4double  kineticEnergy 
)
private

Definition at line 421 of file G4BraggIonModel.cc.

423 {
424  G4double ionloss = 0.0 ;
425 
426  if (iMolecula >= 0) {
427 
428  // The data and the fit from:
429  // ICRU Report N49, 1993. Ziegler's model for alpha
430  // He energy in internal units of parametrisation formula (MeV)
431 
432  G4double T = kineticEnergy*rateMassHe2p/MeV ;
433 
434  static const G4double a[11][5] = {
435  {9.43672, 0.54398, 84.341, 1.3705, 57.422},
436  {67.1503, 0.41409, 404.512, 148.97, 20.99},
437  {5.11203, 0.453, 36.718, 50.6, 28.058},
438  {61.793, 0.48445, 361.537, 57.889, 50.674},
439  {7.83464, 0.49804, 160.452, 3.192, 0.71922},
440  {19.729, 0.52153, 162.341, 58.35, 25.668},
441  {26.4648, 0.50112, 188.913, 30.079, 16.509},
442  {7.8655, 0.5205, 63.96, 51.32, 67.775},
443  {8.8965, 0.5148, 339.36, 1.7205, 0.70423},
444  {2.959, 0.53255, 34.247, 60.655, 15.153},
445  {3.80133, 0.41590, 12.9966, 117.83, 242.28} };
446 
447  static const G4double atomicWeight[11] = {
448  101.96128, 44.0098, 16.0426, 28.0536, 42.0804,
449  104.1512, 44.665, 60.0843, 18.0152, 18.0152, 12.0};
450 
451  G4int i = iMolecula;
452 
453  // Free electron gas model
454  if ( T < 0.001 ) {
455  G4double slow = a[i][0] ;
456  G4double shigh = G4Log( 1.0 + a[i][3]*1000.0 + a[i][4]*0.001 )
457  * a[i][2]*1000.0 ;
458  ionloss = slow*shigh / (slow + shigh) ;
459  ionloss *= sqrt(T*1000.0) ;
460 
461  // Main parametrisation
462  } else {
463  G4double slow = a[i][0] * G4Exp(G4Log(T*1000.0)*a[i][1]) ;
464  G4double shigh = G4Log( 1.0 + a[i][3]/T + a[i][4]*T ) * a[i][2]/T ;
465  ionloss = slow*shigh / (slow + shigh) ;
466  /*
467  G4cout << "## " << i << ". T= " << T << " slow= " << slow
468  << " a0= " << a[i][0] << " a1= " << a[i][1]
469  << " shigh= " << shigh
470  << " dedx= " << ionloss << " q^2= " << HeEffChargeSquare(z, T*MeV)
471  << G4endl;
472  */
473  }
474  if ( ionloss < 0.0) ionloss = 0.0 ;
475 
476  // He effective charge
477  G4double aa = atomicWeight[iMolecula];
478  ionloss /= (HeEffChargeSquare(0.5*aa, T)*aa);
479 
480  // pure material (normally not the case for this function)
481  } else if(1 == (material->GetNumberOfElements())) {
482  G4double z = material->GetZ() ;
483  ionloss = ElectronicStoppingPower( z, kineticEnergy ) ;
484  }
485 
486  return ionloss;
487 }
G4double GetZ() const
Definition: G4Material.cc:625
static const double MeV
Definition: G4SIunits.hh:211
int G4int
Definition: G4Types.hh:78
G4double ElectronicStoppingPower(G4double z, G4double kineticEnergy) const
G4double HeEffChargeSquare(G4double z, G4double kinEnergyInMeV) const
G4double G4Log(G4double x)
Definition: G4Log.hh:230
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
size_t GetNumberOfElements() const
Definition: G4Material.hh:186
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ chargeSquare

G4double G4BraggIonModel::chargeSquare
private

Definition at line 166 of file G4BraggIonModel.hh.

◆ corr

G4EmCorrections* G4BraggIonModel::corr
private

Definition at line 154 of file G4BraggIonModel.hh.

◆ corrFactor

G4double G4BraggIonModel::corrFactor
private

Definition at line 172 of file G4BraggIonModel.hh.

◆ currentMaterial

const G4Material* G4BraggIonModel::currentMaterial
private

Definition at line 162 of file G4BraggIonModel.hh.

◆ fASTAR

G4ASTARStopping * G4BraggIonModel::fASTAR = nullptr
staticprivate

Definition at line 160 of file G4BraggIonModel.hh.

◆ fParticleChange

G4ParticleChangeForLoss* G4BraggIonModel::fParticleChange
private

Definition at line 158 of file G4BraggIonModel.hh.

◆ HeMass

G4double G4BraggIonModel::HeMass
private

Definition at line 170 of file G4BraggIonModel.hh.

◆ iASTAR

G4int G4BraggIonModel::iASTAR
private

Definition at line 177 of file G4BraggIonModel.hh.

◆ iMolecula

G4int G4BraggIonModel::iMolecula
private

Definition at line 176 of file G4BraggIonModel.hh.

◆ isInitialised

G4bool G4BraggIonModel::isInitialised
private

Definition at line 179 of file G4BraggIonModel.hh.

◆ isIon

G4bool G4BraggIonModel::isIon
private

Definition at line 178 of file G4BraggIonModel.hh.

◆ lowestKinEnergy

G4double G4BraggIonModel::lowestKinEnergy
private

Definition at line 169 of file G4BraggIonModel.hh.

◆ mass

G4double G4BraggIonModel::mass
private

Definition at line 164 of file G4BraggIonModel.hh.

◆ massFactor

G4double G4BraggIonModel::massFactor
private

Definition at line 171 of file G4BraggIonModel.hh.

◆ massRate

G4double G4BraggIonModel::massRate
private

Definition at line 167 of file G4BraggIonModel.hh.

◆ particle

const G4ParticleDefinition* G4BraggIonModel::particle
private

Definition at line 156 of file G4BraggIonModel.hh.

◆ rateMassHe2p

G4double G4BraggIonModel::rateMassHe2p
private

Definition at line 173 of file G4BraggIonModel.hh.

◆ ratio

G4double G4BraggIonModel::ratio
private

Definition at line 168 of file G4BraggIonModel.hh.

◆ spin

G4double G4BraggIonModel::spin
private

Definition at line 165 of file G4BraggIonModel.hh.

◆ theElectron

G4ParticleDefinition* G4BraggIonModel::theElectron
private

Definition at line 157 of file G4BraggIonModel.hh.

◆ theZieglerFactor

G4double G4BraggIonModel::theZieglerFactor
private

Definition at line 174 of file G4BraggIonModel.hh.


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