source: trunk/source/processes/hadronic/models/neutron_hp/include/G4NeutronHPorLEInelastic.hh@ 1228

Last change on this file since 1228 was 819, checked in by garnier, 17 years ago

import all except CVS

File size: 6.2 KB
Line 
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// 05-11-21 NeutronHP or Low Energy Parameterization Models
28// Implemented by T. Koi (SLAC/SCCS)
29// If NeutronHP data do not available for an element, then Low Energy
30// Parameterization models handle the interactions of the element.
31//
32
33//
34// Hadronic Process: High Precision low E neutron tracking
35// original by H.P. Wellisch, TRIUMF, 14-Feb-97
36// Builds and has the Cross-section data for one material.
37
38#ifndef G4NeutronHPorLEInelastic_h
39#define G4NeutronHPorLEInelastic_h 1
40
41// Class Description
42// Final state production model for a high precision (based on evaluated data
43// libraries) description of neutron elastic scattering below 20 MeV;
44// To be used in your physics list in case you need this physics.
45// In this case you want to register an object of this class with
46// the corresponding process.
47// Class Description - End
48
49#include "G4NeutronHPorLEInelasticData.hh"
50
51#include "globals.hh"
52#include "G4NeutronHPChannel.hh"
53#include "G4NeutronHPChannelList.hh"
54#include "G4HadronicInteraction.hh"
55
56#include "G4NeutronHP2AInelasticFS.hh"
57#include "G4NeutronHP2N2AInelasticFS.hh"
58#include "G4NeutronHP2NAInelasticFS.hh"
59#include "G4NeutronHP2NDInelasticFS.hh"
60#include "G4NeutronHP2NInelasticFS.hh"
61#include "G4NeutronHP2NPInelasticFS.hh"
62#include "G4NeutronHP2PInelasticFS.hh"
63#include "G4NeutronHP3AInelasticFS.hh"
64#include "G4NeutronHP3NAInelasticFS.hh"
65#include "G4NeutronHP3NInelasticFS.hh"
66#include "G4NeutronHP3NPInelasticFS.hh"
67#include "G4NeutronHP4NInelasticFS.hh"
68#include "G4NeutronHPAInelasticFS.hh"
69#include "G4NeutronHPD2AInelasticFS.hh"
70#include "G4NeutronHPDAInelasticFS.hh"
71#include "G4NeutronHPDInelasticFS.hh"
72#include "G4NeutronHPHe3InelasticFS.hh"
73#include "G4NeutronHPN2AInelasticFS.hh"
74#include "G4NeutronHPN2PInelasticFS.hh"
75#include "G4NeutronHPN3AInelasticFS.hh"
76#include "G4NeutronHPNAInelasticFS.hh"
77#include "G4NeutronHPND2AInelasticFS.hh"
78#include "G4NeutronHPNDInelasticFS.hh"
79#include "G4NeutronHPNHe3InelasticFS.hh"
80#include "G4NeutronHPNInelasticFS.hh"
81#include "G4NeutronHPNPAInelasticFS.hh"
82#include "G4NeutronHPNPInelasticFS.hh"
83#include "G4NeutronHPNT2AInelasticFS.hh"
84#include "G4NeutronHPNTInelasticFS.hh"
85#include "G4NeutronHPNXInelasticFS.hh"
86#include "G4NeutronHPPAInelasticFS.hh"
87#include "G4NeutronHPPDInelasticFS.hh"
88#include "G4NeutronHPPInelasticFS.hh"
89#include "G4NeutronHPPTInelasticFS.hh"
90#include "G4NeutronHPT2AInelasticFS.hh"
91#include "G4NeutronHPTInelasticFS.hh"
92
93#include <set>
94
95class G4NeutronHPorLEInelastic : public G4HadronicInteraction
96{
97 public:
98
99 G4NeutronHPorLEInelastic();
100
101 ~G4NeutronHPorLEInelastic();
102
103 G4HadFinalState * ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& aTargetNucleus);
104
105
106
107 //G4int GetNiso() {return theInelastic[0].GetNiso();}
108
109 private:
110 G4NeutronHP2AInelasticFS the2AFS;
111 G4NeutronHP2N2AInelasticFS the2N2AFS;
112 G4NeutronHP2NAInelasticFS the2NAFS;
113 G4NeutronHP2NDInelasticFS the2NDFS;
114 G4NeutronHP2NInelasticFS the2NFS;
115 G4NeutronHP2NPInelasticFS the2NPFS;
116 G4NeutronHP2PInelasticFS the2PFS;
117 G4NeutronHP3AInelasticFS the3AFS;
118 G4NeutronHP3NAInelasticFS the3NAFS;
119 G4NeutronHP3NInelasticFS the3NFS;
120 G4NeutronHP3NPInelasticFS the3NPFS;
121 G4NeutronHP4NInelasticFS the4NFS;
122 G4NeutronHPAInelasticFS theAFS;
123 G4NeutronHPD2AInelasticFS theD2AFS;
124 G4NeutronHPDAInelasticFS theDAFS;
125 G4NeutronHPDInelasticFS theDFS;
126 G4NeutronHPHe3InelasticFS theHe3FS;
127 G4NeutronHPN2AInelasticFS theN2AFS;
128 G4NeutronHPN2PInelasticFS theN2PFS;
129 G4NeutronHPN3AInelasticFS theN3AFS;
130 G4NeutronHPNAInelasticFS theNAFS;
131 G4NeutronHPND2AInelasticFS theND2AFS;
132 G4NeutronHPNDInelasticFS theNDFS;
133 G4NeutronHPNHe3InelasticFS theNHe3FS;
134 G4NeutronHPNInelasticFS theNFS;
135 G4NeutronHPNPAInelasticFS theNPAFS;
136 G4NeutronHPNPInelasticFS theNPFS;
137 G4NeutronHPNT2AInelasticFS theNT2AFS;
138 G4NeutronHPNTInelasticFS theNTFS;
139 G4NeutronHPNXInelasticFS theNXFS;
140 G4NeutronHPPAInelasticFS thePAFS;
141 G4NeutronHPPDInelasticFS thePDFS;
142 G4NeutronHPPInelasticFS thePFS;
143 G4NeutronHPPTInelasticFS thePTFS;
144 G4NeutronHPT2AInelasticFS theT2AFS;
145 G4NeutronHPTInelasticFS theTFS;
146
147 G4double * xSec;
148 G4NeutronHPChannelList * theInelastic;
149 G4String dirName;
150 G4int numEle;
151
152 public:
153 G4bool IsThisElementOK ( G4String );
154 private:
155 std::set< G4String > unavailable_elements;
156
157 public:
158 G4VCrossSectionDataSet* GiveXSectionDataSet() { return theDataSet; };
159 private:
160 G4NeutronHPorLEInelasticData* theDataSet;
161 void createXSectionDataSet();
162};
163
164#endif
Note: See TracBrowser for help on using the repository browser.