G4QAOLowEnergyLoss.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // ------------------------------------------------------------
00028 //      GEANT 4 class header file 
00029 //
00030 //      History: New Implementation
00031 //    
00032 //      ---------- G4QAOLowEnergyLoss physics process -------
00033 //                  by Stephane Chauvie, 21 May 2000 
00034 //
00035 // Modified:
00036 // 16/09/2000 S. Chauvie  Oscillator for all materials
00037 // 23/05/2000 MGP  Made compliant to design
00038 // 01/06/2001 V.Ivanchenko replace names by Z
00039 //  
00040 // Class description:
00041 // Quantal Harmonic Oscillator Model for energy loss of low energy antiprotons 
00042 // Further documentation available from http://www.ge.infn.it/geant4/lowE
00043 
00044 // ------------------------------------------------------------
00045 
00046  
00047 #ifndef G4QAOLowEnergyLoss_hh
00048 #define G4QAOLowEnergyLoss_hh 1
00049 
00050 #include "G4VLowEnergyModel.hh"
00051 #include "globals.hh"
00052 
00053 class G4QAOLowEnergyLoss : public G4VLowEnergyModel
00054 {
00055 public: 
00056   
00057   G4QAOLowEnergyLoss(const G4String& name); 
00058   
00059   ~G4QAOLowEnergyLoss();
00060     
00061   G4double HighEnergyLimit(const G4ParticleDefinition* aParticle,
00062                            const G4Material* material) const;
00063   // returns the higher limit for model validity
00064 
00065   G4double LowEnergyLimit(const G4ParticleDefinition* aParticle,
00066                           const G4Material* material) const;
00067   // returns the lower limit for model validity
00068  
00069   G4double HighEnergyLimit(const G4ParticleDefinition* aParticle) const;
00070   // returns the higher limit for model validity
00071 
00072   G4double LowEnergyLimit(const G4ParticleDefinition* aParticle) const;
00073   // returns the lower limit for model validity
00074  
00075   G4bool IsInCharge(const G4DynamicParticle* particle,
00076                     const G4Material* material) const;
00077   // returns true if the model is applicable at that energy for
00078   // that particle for that material
00079 
00080   G4bool IsInCharge(const G4ParticleDefinition* aParticle,
00081                     const G4Material* material) const;
00082   // returns true if the model is applicable at that energy for
00083   // that particle for that material
00084   
00085   G4double TheValue(const G4DynamicParticle* particle,
00086                            const G4Material* material);
00087   // returns the energy loss via the quantal harmonic oscillator model 
00088   
00089   G4double TheValue(const G4ParticleDefinition* aParticle,
00090                           const G4Material* material,
00091                                 G4double kineticEnergy);
00092   // returns the energy loss via the quantal harmonic oscillator model 
00093 
00094 private:
00095   
00096   G4double EnergyLoss(const G4Material* material,
00097                             G4double kineticEnergy,
00098                             G4double zParticle) const;
00099   // returns the energy loss via the quantal harmonic oscillator model 
00100    
00101   // get number of shell, energy and oscillator strenghts for material
00102   G4int GetNumberOfShell(const G4Material* material) const;
00103 
00104   G4double GetShellEnergy(const G4Material* material,G4int nbOfTheShell) const; 
00105   G4double GetOscillatorEnergy(const G4Material* material,G4int nbOfTheShell) const; 
00106   G4double GetShellStrength(const G4Material* material,G4int nbOfTheShell) const;
00107   G4double GetOccupationNumber(G4int Z, G4int ShellNb) const;
00108 
00109   // calculate stopping number for L's term
00110   G4double GetL0(G4double normEnergy) const;
00111   // terms in Z^2
00112   G4double GetL1(G4double normEnergy) const;
00113   // terms in Z^3
00114   G4double GetL2(G4double normEnergy) const;
00115   // terms in Z^4
00116   
00117   // Z of element at now avaliable for the model
00118   static const G4int materialAvailable[6];
00119   
00120   // number, energy and oscillator strenghts
00121   // for an harmonic oscillator model of material
00122   static const G4int nbofShellForMaterial[6];
00123   static  G4double alShellEnergy[3];
00124   static  G4double alShellStrength[3];
00125   static  G4double siShellEnergy[3];
00126   static  G4double siShellStrength[3];
00127   static  G4double cuShellEnergy[4];
00128   static  G4double cuShellStrength[4];
00129   static  G4double taShellEnergy[6];
00130   static  G4double taShellStrength[6];
00131   static  G4double auShellEnergy[6];
00132   static  G4double auShellStrength[6];
00133   static  G4double ptShellEnergy[6];
00134   static  G4double ptShellStrength[6];
00135   
00136   G4int numberOfMaterials;
00137 
00138   //  variable for calculation of stopping number of L's term
00139   static const G4double L0[67][2];
00140   static const G4double L1[22][2];
00141   static const G4double L2[14][2];
00142   static const G4int nbOfElectronPerSubShell[1540];
00143   static const G4int fNumberOfShells[101];
00144   
00145   G4int sizeL0;
00146   G4int sizeL1;
00147   G4int sizeL2;
00148   
00149 }; 
00150 
00151 #endif

Generated on Mon May 27 17:49:30 2013 for Geant4 by  doxygen 1.4.7