Ignore:
Timestamp:
Apr 6, 2009, 12:21:12 PM (15 years ago)
Author:
garnier
Message:

update processes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/electromagnetic/highenergy/src/G4hhIonisation.cc

    r819 r961  
    2424// ********************************************************************
    2525//
    26 // $Id: G4hhIonisation.cc,v 1.6 2007/05/22 17:37:30 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-01-patch-02 $
     26// $Id: G4hhIonisation.cc,v 1.9 2009/02/20 16:38:33 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02-ref-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    6464    isInitialised(false)
    6565{
    66   minKinEnergy = 0.1*keV;
    67   maxKinEnergy = 100.*TeV;
    68   SetDEDXBinning(120);
    69   SetMinKinEnergy(minKinEnergy);
    70   SetMaxKinEnergy(maxKinEnergy);
    7166  SetStepFunction(0.1, 0.1*mm);
    7267  SetVerboseLevel(1);
     68  SetProcessSubType(fIonisation);
    7369  mass = 0.0;
    7470  ratio = 0.0;
     
    7975G4hhIonisation::~G4hhIonisation()
    8076{}
     77
     78//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     79
     80G4bool G4hhIonisation::IsApplicable(const G4ParticleDefinition& p)
     81{
     82  return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 100.0*MeV &&
     83         !p.IsShortLived());
     84}
     85
     86//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     87
     88G4double G4hhIonisation::MinPrimaryEnergy(const G4ParticleDefinition*,
     89                                          const G4Material*,
     90                                          G4double cut)
     91{
     92  G4double x = 0.5*cut/electron_mass_c2;
     93  G4double y = electron_mass_c2/mass;
     94  G4double g = x*y + std::sqrt((1. + x)*(1. + x*y*y));
     95  return mass*(g - 1.0);
     96}
    8197
    8298//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
     
    101117  G4int nm = 1;
    102118
     119  minKinEnergy = MinKinEnergy();
     120
    103121  if(eth > minKinEnergy) {
    104122    G4VEmModel* em = new G4BraggNoDeltaModel();
     
    109127  }
    110128
    111   if(eth < maxKinEnergy) {
     129  if(eth < MaxKinEnergy()) {
    112130    G4VEmModel* em1 = new G4BetheBlochNoDeltaModel();
    113131    em1->SetLowEnergyLimit(std::max(eth,minKinEnergy));
    114     em1->SetHighEnergyLimit(maxKinEnergy);
     132    em1->SetHighEnergyLimit(MaxKinEnergy());
    115133    AddEmModel(nm, em1, flucModel);
    116134  }
    117135
    118   if(verboseLevel>0)
     136  if(verboseLevel>1) {
    119137    G4cout << "G4hhIonisation is initialised: Nmodels= " << nm << G4endl;
    120 
     138  }
    121139  isInitialised = true;
    122140}
     
    127145{
    128146  G4cout << "      Delta-ray will not be produced; "
    129          << "Bether-Bloch model for E > " << std::max(eth,minKinEnergy)
    130147         << G4endl;
    131   if(eth > minKinEnergy) G4cout
    132          << "      ICRU49 parametrisation scaled from protons below.";
    133   G4cout << G4endl;
    134148}
    135149
Note: See TracChangeset for help on using the changeset viewer.