G4eBremsstrahlung Class Reference

#include <G4eBremsstrahlung.hh>

Inheritance diagram for G4eBremsstrahlung:

G4VEnergyLossProcess G4VContinuousDiscreteProcess G4VProcess G4ePolarizedBremsstrahlung

Public Member Functions

 G4eBremsstrahlung (const G4String &name="eBrem")
virtual ~G4eBremsstrahlung ()
virtual G4bool IsApplicable (const G4ParticleDefinition &p)
virtual void PrintInfo ()

Protected Member Functions

virtual void InitialiseEnergyLossProcess (const G4ParticleDefinition *, const G4ParticleDefinition *)

Protected Attributes

G4bool isInitialised

Detailed Description

Definition at line 81 of file G4eBremsstrahlung.hh.


Constructor & Destructor Documentation

G4eBremsstrahlung::G4eBremsstrahlung ( const G4String name = "eBrem"  ) 

Definition at line 93 of file G4eBremsstrahlung.cc.

References fBremsstrahlung, G4Gamma::Gamma(), G4VEnergyLossProcess::SetIonisation(), G4VProcess::SetProcessSubType(), and G4VEnergyLossProcess::SetSecondaryParticle().

00093                                                         :
00094   G4VEnergyLossProcess(name), 
00095   isInitialised(false)
00096 {
00097   SetProcessSubType(fBremsstrahlung);
00098   SetSecondaryParticle(G4Gamma::Gamma());
00099   SetIonisation(false);
00100 }

G4eBremsstrahlung::~G4eBremsstrahlung (  )  [virtual]

Definition at line 104 of file G4eBremsstrahlung.cc.

00105 {}


Member Function Documentation

void G4eBremsstrahlung::InitialiseEnergyLossProcess ( const G4ParticleDefinition ,
const G4ParticleDefinition  
) [protected, virtual]

Implements G4VEnergyLossProcess.

Reimplemented in G4ePolarizedBremsstrahlung.

Definition at line 117 of file G4eBremsstrahlung.cc.

References G4VEnergyLossProcess::AddEmModel(), G4LossTableManager::BremsstrahlungTh(), G4VEnergyLossProcess::EmModel(), G4LossTableManager::Instance(), isInitialised, G4LossTableManager::LPMFlag(), G4VEnergyLossProcess::MaxKinEnergy(), G4VEnergyLossProcess::MinKinEnergy(), G4VEnergyLossProcess::SetEmModel(), G4VEmModel::SetHighEnergyLimit(), G4VEmModel::SetLowEnergyLimit(), G4VEmModel::SetLPMFlag(), and G4VEmModel::SetSecondaryThreshold().

00119 {
00120   if(!isInitialised) {
00121 
00122     //    if (!EmModel(1)) { SetEmModel(new G4eBremsstrahlungModel(), 1); }
00123     if (!EmModel(1)) { SetEmModel(new G4SeltzerBergerModel(), 1); }
00124     if (!EmModel(2)) { SetEmModel(new G4eBremsstrahlungRelModel(), 2); }
00125 
00126     G4double energyLimit = 1*GeV;
00127 
00128     EmModel(1)->SetLowEnergyLimit(MinKinEnergy());
00129     EmModel(1)->SetHighEnergyLimit(energyLimit);
00130     EmModel(2)->SetLowEnergyLimit(energyLimit);
00131     EmModel(2)->SetHighEnergyLimit(MaxKinEnergy());
00132                 
00133     G4VEmFluctuationModel* fm = 0;
00134     AddEmModel(1, EmModel(1), fm);
00135     AddEmModel(2, EmModel(2), fm);
00136     isInitialised = true;
00137   }
00138   G4LossTableManager* man = G4LossTableManager::Instance(); 
00139   G4double eth = man->BremsstrahlungTh(); 
00140   EmModel(1)->SetSecondaryThreshold(eth);
00141   EmModel(2)->SetSecondaryThreshold(eth);
00142 
00143   // Only high energy model LMP flag is ON/OFF
00144   EmModel(1)->SetLPMFlag(false);
00145   EmModel(2)->SetLPMFlag(man->LPMFlag());
00146 }

G4bool G4eBremsstrahlung::IsApplicable ( const G4ParticleDefinition p  )  [virtual]

Implements G4VEnergyLossProcess.

Definition at line 109 of file G4eBremsstrahlung.cc.

References G4Electron::Electron(), and G4Positron::Positron().

00110 {
00111   return (&p == G4Electron::Electron() || &p == G4Positron::Positron());
00112 }

void G4eBremsstrahlung::PrintInfo (  )  [virtual]

Implements G4VEnergyLossProcess.

Definition at line 150 of file G4eBremsstrahlung.cc.

References G4LossTableManager::BremsstrahlungTh(), DBL_MAX, G4VEnergyLossProcess::EmModel(), G4cout, G4endl, G4VEmModel::HighEnergyLimit(), G4LossTableManager::Instance(), and G4LossTableManager::LPMFlag().

00151 {
00152   if(EmModel(1)) {
00153     G4LossTableManager* man = G4LossTableManager::Instance(); 
00154     G4double eth = man->BremsstrahlungTh(); 
00155     G4cout << "      LPM flag: " << man->LPMFlag() << " for E > " 
00156            << EmModel(1)->HighEnergyLimit()/GeV << " GeV";
00157     if(eth < DBL_MAX) { 
00158       G4cout << ",  HighEnergyThreshold(GeV)= " << eth/GeV; 
00159     }
00160     G4cout << G4endl;
00161   }
00162 }


Field Documentation

G4bool G4eBremsstrahlung::isInitialised [protected]

Definition at line 100 of file G4eBremsstrahlung.hh.

Referenced by G4ePolarizedBremsstrahlung::InitialiseEnergyLossProcess(), and InitialiseEnergyLossProcess().


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