G4LowEPComptonModel.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 // |             G4LowEPComptonModel-- Geant4 Monash University        |
00029 // |                   low energy Compton scattering model.            |
00030 // |             J. M. C. Brown, Monash University, Australia          |
00031 // |                    ## Unpolarised photons only ##                 |
00032 // |                                                                   |
00033 // |                                                                   |
00034 // *********************************************************************
00035 // |                                                                   |
00036 // | The following is a Geant4 class to simulate the process of        |
00037 // | bound electron Compton scattering. General code structure is      |
00038 // | based on G4LowEnergyCompton.cc and G4LivermoreComptonModel.cc.    |
00039 // | Algorithms for photon energy, and ejected Compton electron        |
00040 // | direction taken from:                                             |
00041 // |                                                                   |
00042 // | J. M. C. Brown, M. R. Dimmock, J. E. Gillam and D. M. Paganin,    |
00043 // | "A low energy bound atomic electron Compton scattering model      |
00044 // |  for Geant4", IEEE Transactions on Nuclear Science, submitted.    |
00045 // |                                                                   |
00046 // | The author acknowledges the work of the Geant4 collaboration      |
00047 // | in developing the following algorithms that have been employed    |
00048 // | or adapeted for the present software:                             |    
00049 // |                                                                   |
00050 // |  # sampling of photon scattering angle,                           |
00051 // |  # target element selection in composite materials,               |
00052 // |  # target shell selection in element,                             |
00053 // |  # and sampling of bound electron momentum from Compton profiles. |
00054 // |                                                                   |
00055 // *********************************************************************
00056 // |                                                                   |
00057 // | History:                                                          |
00058 // | --------                                                          |
00059 // |                                                                   |
00060 // | Nov. 2011 JMCB       - First version                              |
00061 // | Feb. 2012 JMCB       - Migration to Geant4 9.5                    |
00062 // | Sep. 2012 JMCB       - Final fixes for Geant4 9.6                 |
00063 // |                                                                   |
00064 // *********************************************************************
00065 
00066 #ifndef G4LowEPComptonModel_h
00067 #define G4LowEPComptonModel_h 1
00068 
00069 #include "G4VEmModel.hh"
00070 #include "G4ShellData.hh"
00071 #include "G4DopplerProfile.hh"
00072 
00073 class G4ParticleChangeForGamma;
00074 class G4VCrossSectionHandler;
00075 class G4VAtomDeexcitation;
00076 class G4VEMDataSet;
00077 
00078 class G4LowEPComptonModel : public G4VEmModel
00079 {
00080 
00081 public:
00082 
00083   G4LowEPComptonModel(const G4ParticleDefinition* p = 0, 
00084                           const G4String& nam = "LowEPComptonModel");
00085   
00086   virtual ~G4LowEPComptonModel();
00087 
00088   virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
00089 
00090   virtual G4double ComputeCrossSectionPerAtom( const G4ParticleDefinition*,
00091                                                G4double kinEnergy, 
00092                                                G4double Z, 
00093                                                G4double A=0, 
00094                                                G4double cut=0,
00095                                                G4double emax=DBL_MAX );
00096 
00097   virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
00098                                  const G4MaterialCutsCouple*,
00099                                  const G4DynamicParticle*,
00100                                  G4double tmin,
00101                                  G4double maxEnergy);
00102 
00103 protected:
00104 
00105   G4ParticleChangeForGamma* fParticleChange;
00106 
00107 private:
00108 
00109   G4double lowEnergyLimit;  
00110   G4double highEnergyLimit; 
00111   G4bool isInitialised;
00112   G4int verboseLevel;
00113   
00114   G4VEMDataSet* scatterFunctionData;
00115   G4VCrossSectionHandler* crossSectionHandler;
00116   
00117   G4VAtomDeexcitation*    fAtomDeexcitation;
00118 
00119   G4ShellData shellData;
00120   G4DopplerProfile profileData;
00121 
00122   G4LowEPComptonModel & operator=(const  G4LowEPComptonModel &right);
00123   G4LowEPComptonModel(const  G4LowEPComptonModel&);
00124 
00125   
00126 };
00127 
00128 //****************************************************************************
00129 
00130 #endif

Generated on Mon May 27 17:48:50 2013 for Geant4 by  doxygen 1.4.7