00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047 #ifndef G4LIVERMOREIONISATIONMODEL_HH
00048 #define G4LIVERMOREIONISATIONMODEL_HH 1
00049
00050 #include "G4VEmModel.hh"
00051 #include "globals.hh"
00052
00053 class G4eIonisationCrossSectionHandler;
00054 class G4VEnergySpectrum;
00055 class G4ParticleChangeForLoss;
00056 class G4AtomicTransitionManager;
00057
00058 class G4LivermoreIonisationModel : public G4VEmModel
00059 {
00060
00061 public:
00062
00063 G4LivermoreIonisationModel(const G4ParticleDefinition* p=0,
00064 const G4String& processName = "LowEnergyIoni");
00065
00066 virtual ~G4LivermoreIonisationModel();
00067
00068 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
00069
00070
00071 virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition*,
00072 G4double kinEnergy,
00073 G4double Z,
00074 G4double A=0,
00075 G4double cut=0,
00076 G4double emax=DBL_MAX);
00077
00078 virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
00079 const G4MaterialCutsCouple*,
00080 const G4DynamicParticle*,
00081 G4double tmin,
00082 G4double maxEnergy);
00083
00084 virtual G4double ComputeDEDXPerVolume(const G4Material*,
00085 const G4ParticleDefinition*,
00086 G4double kineticEnergy,
00087 G4double cutEnergy);
00088
00089 void SetVerboseLevel(G4int vl) {verboseLevel = vl;};
00090 G4int GetVerboseLevel(){return verboseLevel;};
00091
00092 protected:
00093
00094 G4ParticleChangeForLoss* fParticleChange;
00095
00096 private:
00097
00098 G4LivermoreIonisationModel & operator=(const G4LivermoreIonisationModel &right);
00099 G4LivermoreIonisationModel(const G4LivermoreIonisationModel&);
00100
00101
00102 G4double fIntrinsicLowEnergyLimit;
00103 G4double fIntrinsicHighEnergyLimit;
00104
00105 G4bool isInitialised;
00106
00107 G4int verboseLevel;
00108
00109 G4eIonisationCrossSectionHandler* crossSectionHandler;
00110 G4VEnergySpectrum* energySpectrum;
00111
00112 const G4AtomicTransitionManager* transitionManager;
00113 };
00114
00115 #endif
00116