G4ICRU49NuclearStoppingModel Class Reference

#include <G4ICRU49NuclearStoppingModel.hh>

Inheritance diagram for G4ICRU49NuclearStoppingModel:

G4VEmModel

Public Member Functions

 G4ICRU49NuclearStoppingModel (const G4String &nam="ICRU49NucStopping")
virtual ~G4ICRU49NuclearStoppingModel ()
virtual void Initialise (const G4ParticleDefinition *, const G4DataVector &)
virtual G4double ComputeDEDXPerVolume (const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)
virtual void SampleSecondaries (std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double, G4double)
void SetFluctuationFlag (G4bool)

Detailed Description

Definition at line 62 of file G4ICRU49NuclearStoppingModel.hh.


Constructor & Destructor Documentation

G4ICRU49NuclearStoppingModel::G4ICRU49NuclearStoppingModel ( const G4String nam = "ICRU49NucStopping"  ) 

Definition at line 70 of file G4ICRU49NuclearStoppingModel.cc.

References G4Pow::GetInstance().

00071   : G4VEmModel(nam),lossFlucFlag(false)
00072 {
00073   theZieglerFactor = eV*cm2*1.0e-15;
00074   g4pow = G4Pow::GetInstance();
00075   if(ad[0] == 0.0) { InitialiseNuclearStopping(); }
00076 }

G4ICRU49NuclearStoppingModel::~G4ICRU49NuclearStoppingModel (  )  [virtual]

Definition at line 80 of file G4ICRU49NuclearStoppingModel.cc.

00081 {}


Member Function Documentation

G4double G4ICRU49NuclearStoppingModel::ComputeDEDXPerVolume ( const G4Material ,
const G4ParticleDefinition ,
G4double  kineticEnergy,
G4double  cutEnergy = DBL_MAX 
) [virtual]

Reimplemented from G4VEmModel.

Definition at line 102 of file G4ICRU49NuclearStoppingModel.cc.

References G4Material::GetAtomicNumDensityVector(), G4Material::GetElementVector(), G4Material::GetNumberOfElements(), G4ParticleDefinition::GetPDGCharge(), and G4ParticleDefinition::GetPDGMass().

00107 {
00108   G4double nloss = 0.0;
00109   if(kinEnergy <= 0.0) { return nloss; }
00110 
00111   // projectile
00112   G4double mass1 = p->GetPDGMass();
00113   G4double z1 = std::fabs(p->GetPDGCharge()/eplus);
00114 
00115   if(kinEnergy*proton_mass_c2/mass1 > z1*z1*MeV) { return nloss; }
00116 
00117   // Projectile nucleus
00118   mass1 /= amu_c2;
00119 
00120   //  loop for the elements in the material
00121   G4int numberOfElements = mat->GetNumberOfElements();
00122   const G4ElementVector* theElementVector = mat->GetElementVector();
00123   const G4double* atomDensity  = mat->GetAtomicNumDensityVector();
00124  
00125   for (G4int iel=0; iel<numberOfElements; iel++) {
00126     const G4Element* element = (*theElementVector)[iel] ;
00127     G4double z2 = element->GetZ();
00128     G4double mass2 = element->GetA()*mole/g ;
00129     nloss += (NuclearStoppingPower(kinEnergy, z1, z2, mass1, mass2))
00130            * atomDensity[iel] ;
00131   }
00132   nloss *= theZieglerFactor;
00133   return nloss;
00134 }

void G4ICRU49NuclearStoppingModel::Initialise ( const G4ParticleDefinition ,
const G4DataVector  
) [virtual]

Implements G4VEmModel.

Definition at line 85 of file G4ICRU49NuclearStoppingModel.cc.

00087 {}

void G4ICRU49NuclearStoppingModel::SampleSecondaries ( std::vector< G4DynamicParticle * > *  ,
const G4MaterialCutsCouple ,
const G4DynamicParticle ,
G4double  ,
G4double   
) [virtual]

Implements G4VEmModel.

Definition at line 92 of file G4ICRU49NuclearStoppingModel.cc.

00097 {}

void G4ICRU49NuclearStoppingModel::SetFluctuationFlag ( G4bool   )  [inline]

Definition at line 110 of file G4ICRU49NuclearStoppingModel.hh.

Referenced by G4NuclearStopping::AlongStepDoIt().

00111 {
00112   lossFlucFlag = val;
00113 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:15 2013 for Geant4 by  doxygen 1.4.7