G4DNATransformElectronModel Class Reference

#include <G4DNATransformElectronModel.hh>

Inheritance diagram for G4DNATransformElectronModel:

G4VEmModel

Public Member Functions

 G4DNATransformElectronModel (const G4ParticleDefinition *p=0, const G4String &nam="DNATransformElectronModel")
virtual ~G4DNATransformElectronModel ()
virtual void Initialise (const G4ParticleDefinition *, const G4DataVector &)
virtual G4double CrossSectionPerVolume (const G4Material *material, const G4ParticleDefinition *p, G4double ekin, G4double emin, G4double emax)
virtual void SampleSecondaries (std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
void SetVerbose (int)
void SetEpsilonEnergy (G4double)

Protected Attributes

G4ParticleChangeForGammafParticleChangeForGamma

Detailed Description

When an electron reaches the highest energy domain of G4DNATransformElectronModel, it is then automatically converted into a solvated electron without thermalization displacement (assumed to be already thermalized).

Definition at line 51 of file G4DNATransformElectronModel.hh.


Constructor & Destructor Documentation

G4DNATransformElectronModel::G4DNATransformElectronModel ( const G4ParticleDefinition p = 0,
const G4String nam = "DNATransformElectronModel" 
)

Definition at line 36 of file G4DNATransformElectronModel.cc.

References fParticleChangeForGamma, G4VEmModel::SetHighEnergyLimit(), and G4VEmModel::SetLowEnergyLimit().

00037                                                                              :
00038     G4VEmModel(nam),fIsInitialised(false)
00039 {
00040     fVerboseLevel = 0 ;
00041     SetLowEnergyLimit(0.*eV);
00042     SetHighEnergyLimit(0.025*eV);
00043     fParticleChangeForGamma = 0;
00044   //  fNistWater  = G4NistManager::Instance()->FindOrBuildMaterial("G4_WATER");
00045     fpWaterDensity = 0;
00046     fpWaterDensity = 0;
00047     fEpsilon = 0.0001*eV;
00048 }

G4DNATransformElectronModel::~G4DNATransformElectronModel (  )  [virtual]

Definition at line 51 of file G4DNATransformElectronModel.cc.

00052 {}


Member Function Documentation

G4double G4DNATransformElectronModel::CrossSectionPerVolume ( const G4Material material,
const G4ParticleDefinition p,
G4double  ekin,
G4double  emin,
G4double  emax 
) [virtual]

Reimplemented from G4VEmModel.

Definition at line 83 of file G4DNATransformElectronModel.cc.

References DBL_MAX, G4cout, G4endl, G4Material::GetIndex(), and G4VEmModel::HighEnergyLimit().

00088 {
00089 #if G4VERBOSE
00090     if (fVerboseLevel > 1)
00091         G4cout << "Calling CrossSectionPerVolume() of G4DNATransformElectronModel" << G4endl;
00092 #endif
00093 
00094     if(ekin - fEpsilon > HighEnergyLimit())
00095     {
00096         return 0.0;
00097     }
00098 
00099     G4double waterDensity = (*fpWaterDensity)[material->GetIndex()];
00100 
00101     if(waterDensity!= 0.0)
00102    //  if (material == nistwater || material->GetBaseMaterial() == nistwater)
00103     {
00104         if (ekin - fEpsilon <= HighEnergyLimit())
00105         {
00106             return DBL_MAX;
00107         }
00108     }
00109 
00110     return 0.0 ;
00111 }

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

Implements G4VEmModel.

Definition at line 55 of file G4DNATransformElectronModel.cc.

References G4Electron::ElectronDefinition(), FatalErrorInArgument, fParticleChangeForGamma, G4cout, G4endl, G4Exception(), G4Material::GetMaterial(), G4DNAMolecularMaterial::GetNumMolPerVolTableFor(), G4VEmModel::GetParticleChangeForGamma(), and G4DNAMolecularMaterial::Instance().

00057 {
00058 #ifdef G4VERBOSE
00059     if (fVerboseLevel)
00060         G4cout << "Calling G4DNATransformElectronModel::Initialise()" << G4endl;
00061 #endif
00062 
00063     if (particleDefinition != G4Electron::ElectronDefinition())
00064     {
00065         G4ExceptionDescription exceptionDescription ;
00066         exceptionDescription << "Attempting to calculate cross section for wrong particle";
00067         G4Exception("G4DNATransformElectronModel::CrossSectionPerVolume","G4DNATransformElectronModel001",
00068                     FatalErrorInArgument,exceptionDescription);
00069         return;
00070     }
00071 
00072     // Initialize water density pointer
00073     fpWaterDensity = G4DNAMolecularMaterial::Instance()->GetNumMolPerVolTableFor(G4Material::GetMaterial("G4_WATER"));
00074 
00075     if(!fIsInitialised)
00076     {
00077         fIsInitialised = true;
00078         fParticleChangeForGamma = GetParticleChangeForGamma();
00079     }
00080 }

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

Implements G4VEmModel.

Definition at line 114 of file G4DNATransformElectronModel.cc.

References G4DNAChemistryManager::CreateSolvatedElectron(), fParticleChangeForGamma, fStopAndKill, G4cout, G4endl, G4ParticleChangeForGamma::GetCurrentTrack(), G4DynamicParticle::GetKineticEnergy(), G4DNAChemistryManager::Instance(), G4VParticleChange::ProposeLocalEnergyDeposit(), and G4VParticleChange::ProposeTrackStatus().

00119 {
00120 #if G4VERBOSE
00121     if (fVerboseLevel)
00122         G4cout << "Calling SampleSecondaries() of G4DNATransformElectronModel" << G4endl;
00123 #endif
00124 
00125     G4double k = particle->GetKineticEnergy();
00126 
00127 //    if (k - fEpsilon <= HighEnergyLimit())
00128 //    {
00129         const G4Track * track = fParticleChangeForGamma->GetCurrentTrack();
00130         G4DNAChemistryManager::Instance()->CreateSolvatedElectron(track);
00131         fParticleChangeForGamma->ProposeTrackStatus(fStopAndKill);
00132         fParticleChangeForGamma->ProposeLocalEnergyDeposit(k);
00133 //    }
00134 }

void G4DNATransformElectronModel::SetEpsilonEnergy ( G4double   )  [inline]

Definition at line 99 of file G4DNATransformElectronModel.hh.

00100 {
00101     fEpsilon = eps ;
00102 }

void G4DNATransformElectronModel::SetVerbose ( int   )  [inline]

Definition at line 94 of file G4DNATransformElectronModel.hh.

00095 {
00096     fVerboseLevel = flag ;
00097 }


Field Documentation

G4ParticleChangeForGamma* G4DNATransformElectronModel::fParticleChangeForGamma [protected]

Definition at line 78 of file G4DNATransformElectronModel.hh.

Referenced by G4DNATransformElectronModel(), Initialise(), and SampleSecondaries().


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