Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4LowEPComptonModel.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25// ********************************************************************
26// *********************************************************************
27// | |
28// | G4LowEPComptonModel-- Geant4 Monash University |
29// | low energy Compton scattering model. |
30// | J. M. C. Brown, Monash University, Australia |
31// | ## Unpolarised photons only ## |
32// | |
33// | |
34// *********************************************************************
35// | |
36// | The following is a Geant4 class to simulate the process of |
37// | bound electron Compton scattering. General code structure is |
38// | based on G4LowEnergyCompton.cc and G4LivermoreComptonModel.cc. |
39// | Algorithms for photon energy, and ejected Compton electron |
40// | direction taken from: |
41// | |
42// | J. M. C. Brown, M. R. Dimmock, J. E. Gillam and D. M. Paganin, |
43// | "A low energy bound atomic electron Compton scattering model |
44// | for Geant4", IEEE Transactions on Nuclear Science, submitted. |
45// | |
46// | The author acknowledges the work of the Geant4 collaboration |
47// | in developing the following algorithms that have been employed |
48// | or adapeted for the present software: |
49// | |
50// | # sampling of photon scattering angle, |
51// | # target element selection in composite materials, |
52// | # target shell selection in element, |
53// | # and sampling of bound electron momentum from Compton profiles. |
54// | |
55// *********************************************************************
56// | |
57// | History: |
58// | -------- |
59// | |
60// | Nov. 2011 JMCB - First version |
61// | Feb. 2012 JMCB - Migration to Geant4 9.5 |
62// | Sep. 2012 JMCB - Final fixes for Geant4 9.6 |
63// | |
64// *********************************************************************
65
66#ifndef G4LowEPComptonModel_h
67#define G4LowEPComptonModel_h 1
68
69#include "G4VEmModel.hh"
70#include "G4ShellData.hh"
71#include "G4DopplerProfile.hh"
72
76class G4VEMDataSet;
77
79{
80
81public:
82
84 const G4String& nam = "LowEPComptonModel");
85
86 virtual ~G4LowEPComptonModel();
87
88 virtual void Initialise(const G4ParticleDefinition*, const G4DataVector&);
89
91 G4double kinEnergy,
92 G4double Z,
93 G4double A=0,
94 G4double cut=0,
95 G4double emax=DBL_MAX );
96
97 virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
99 const G4DynamicParticle*,
100 G4double tmin,
101 G4double maxEnergy);
102
103protected:
104
106
107private:
108
109 G4double lowEnergyLimit;
110 G4double highEnergyLimit;
111 G4bool isInitialised;
112 G4int verboseLevel;
113
114 G4VEMDataSet* scatterFunctionData;
115 G4VCrossSectionHandler* crossSectionHandler;
116
117 G4VAtomDeexcitation* fAtomDeexcitation;
118
119 G4ShellData shellData;
120 G4DopplerProfile profileData;
121
122 G4LowEPComptonModel & operator=(const G4LowEPComptonModel &right);
124
125
126};
127
128//****************************************************************************
129
130#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
G4ParticleChangeForGamma * fParticleChange
virtual void SampleSecondaries(std::vector< G4DynamicParticle * > *, const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double tmin, G4double maxEnergy)
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0, G4double cut=0, G4double emax=DBL_MAX)
virtual void Initialise(const G4ParticleDefinition *, const G4DataVector &)
#define DBL_MAX
Definition: templates.hh:83