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

Last change on this file since 1007 was 819, checked in by garnier, 16 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.