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

update

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/processes/electromagnetic/muons/src/G4MuIonisation.cc

    r961 r991  
    2424// ********************************************************************
    2525//
    26 // $Id: G4MuIonisation.cc,v 1.59 2009/02/26 11:04:20 vnivanch Exp $
    27 // GEANT4 tag $Name: geant4-09-02-ref-02 $
     26// $Id: G4MuIonisation.cc,v 1.57 2008/10/27 10:55:07 vnivanch Exp $
     27// GEANT4 tag $Name: geant4-09-02 $
    2828//
    2929// -------------------------------------------------------------------
     
    8686#include "G4MuBetheBlochModel.hh"
    8787#include "G4UniversalFluctuation.hh"
    88 #include "G4IonFluctuations.hh"
    8988#include "G4BohrFluctuations.hh"
    9089#include "G4UnitsTable.hh"
     
    113112//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    114113
    115 G4bool G4MuIonisation::IsApplicable(const G4ParticleDefinition& p)
    116 {
    117   return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 10.0*MeV);
    118 }
    119 
    120 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    121 
    122 G4double G4MuIonisation::MinPrimaryEnergy(const G4ParticleDefinition*,
    123                                           const G4Material*,
    124                                           G4double cut)
    125 {
    126   G4double x = 0.5*cut/electron_mass_c2;
    127   G4double g = x*ratio + std::sqrt((1. + x)*(1. + x*ratio*ratio));
    128   return mass*(g - 1.0);
    129 }
    130 
    131 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
    132 
    133114void G4MuIonisation::InitialiseEnergyLossProcess(const G4ParticleDefinition* part,
    134115                                                 const G4ParticleDefinition* bpart)
     
    142123    SetSecondaryParticle(G4Electron::Electron());
    143124
    144     // Bragg peak model
    145     if (!EmModel(1)) SetEmModel(new G4BraggModel(),1);
    146     EmModel(1)->SetLowEnergyLimit(MinKinEnergy());
    147     EmModel(1)->SetHighEnergyLimit(0.2*MeV);
    148     AddEmModel(1, EmModel(1), new G4IonFluctuations());
     125    flucModel = new G4UniversalFluctuation();
    149126
    150     // high energy fluctuation model
    151     if (!FluctModel()) SetFluctModel(new G4UniversalFluctuation());
    152 
    153     // moderate energy model
    154     if (!EmModel(2)) SetEmModel(new G4BetheBlochModel(),2);
    155     EmModel(2)->SetLowEnergyLimit(0.2*MeV);
    156     EmModel(2)->SetHighEnergyLimit(1.0*GeV);
    157     AddEmModel(2, EmModel(2), FluctModel());
    158 
    159     // high energy model
    160     if (!EmModel(3)) SetEmModel(new G4MuBetheBlochModel(),3);
    161     EmModel(3)->SetLowEnergyLimit(1.0*GeV);
    162     EmModel(3)->SetHighEnergyLimit(MaxKinEnergy());
    163     AddEmModel(3, EmModel(3), FluctModel());
     127    G4VEmModel* em = new G4BraggModel();
     128    em->SetLowEnergyLimit(MinKinEnergy());
     129    em->SetHighEnergyLimit(0.2*MeV);
     130    AddEmModel(1, em, flucModel);
     131    G4VEmModel* em1 = new G4BetheBlochModel();
     132    em1->SetLowEnergyLimit(0.2*MeV);
     133    em1->SetHighEnergyLimit(1.0*GeV);
     134    AddEmModel(2, em1, flucModel);
     135    G4VEmModel* em2 = new G4MuBetheBlochModel();
     136    em2->SetLowEnergyLimit(1.0*GeV);
     137    em2->SetHighEnergyLimit(MaxKinEnergy());
     138    AddEmModel(3, em2, flucModel);
    164139
    165140    ratio = electron_mass_c2/mass;
Note: See TracChangeset for help on using the changeset viewer.