Geant4  10.01.p02
G4NeutronHPManager.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 #ifndef G4NeutronHPManager_h
27 #define G4NeutronHPManager_h 1
28 
29 // Class Description
30 // Manager of NeutronHP
31 // Class Description - End
32 
33 // 121031 First implementation done by T. Koi (SLAC/PPA)
34 //
35 #include <map>
36 #include <vector>
37 #include "globals.hh"
38 
40 
41 class G4NeutronHPChannel;
44 class G4NeutronHPVector;
45 class G4PhysicsTable;
46 struct E_isoAng;
47 struct E_P_E_isoAng;
48 
50 {
51  public:
53  if ( instance == NULL) instance = new G4NeutronHPManager();
54  return instance;
55  };
56 
57  private:
61  //static G4ThreadLocal G4NeutronHPManager* instance;
63 
64  public:
67  //void CloseReactionWhiteBoard(){delete RWB; RWB=NULL;};
69 
70  void GetDataStream( G4String , std::istringstream& iss );
71  void GetDataStream2( G4String , std::istringstream& iss );
72  void SetVerboseLevel( G4int i );
74 
75  void DumpDataSource();
76 
83 
85  void SetNeglectDoppler( G4bool val ) { NEGLECT_DOPPLER = val; };
88 
97 
98 
99  std::vector<G4NeutronHPChannel*>* GetElasticFinalStates() { return theElasticFSs; };
100  void RegisterElasticFinalStates( std::vector<G4NeutronHPChannel*>* val ) { theElasticFSs = val; };
101  std::vector<G4NeutronHPChannelList*>* GetInelasticFinalStates() { return theInelasticFSs; };
102  void RegisterInelasticFinalStates( std::vector<G4NeutronHPChannelList*>* val ) { theInelasticFSs = val; };
103  std::vector<G4NeutronHPChannel*>* GetCaptureFinalStates() { return theCaptureFSs; };
104  void RegisterCaptureFinalStates( std::vector<G4NeutronHPChannel*>* val ) { theCaptureFSs = val; };
105  std::vector<G4NeutronHPChannel*>* GetFissionFinalStates() { return theFissionFSs; };
106  void RegisterFissionFinalStates( std::vector<G4NeutronHPChannel*>* val ) { theFissionFSs = val; };
107 
108  std::map<G4int,std::map<G4double,G4NeutronHPVector*>*>* GetThermalScatteringCoherentCrossSections() { return theTSCoherentCrossSections; };
109  void RegisterThermalScatteringCoherentCrossSections( std::map<G4int,std::map<G4double,G4NeutronHPVector*>*>* val ) { theTSCoherentCrossSections = val; };
110  std::map<G4int,std::map<G4double,G4NeutronHPVector*>*>* GetThermalScatteringIncoherentCrossSections() { return theTSIncoherentCrossSections; };
111  void RegisterThermalScatteringIncoherentCrossSections( std::map<G4int,std::map<G4double,G4NeutronHPVector*>*>* val ) { theTSIncoherentCrossSections = val; };
112  std::map<G4int,std::map<G4double,G4NeutronHPVector*>*>* GetThermalScatteringInelasticCrossSections() { return theTSInelasticCrossSections; };
113  void RegisterThermalScatteringInelasticCrossSections( std::map<G4int,std::map<G4double,G4NeutronHPVector*>*>* val ) { theTSInelasticCrossSections = val; };
114 
115  std::map < G4int , std::map < G4double , std::vector < std::pair< G4double , G4double >* >* >* >* GetThermalScatteringCoherentFinalStates(){ return theTSCoherentFinalStates; };
116  void RegisterThermalScatteringCoherentFinalStates( std::map < G4int , std::map < G4double , std::vector < std::pair< G4double , G4double >* >* >* >* val ) { theTSCoherentFinalStates = val; };
117  std::map < G4int , std::map < G4double , std::vector < E_isoAng* >* >* >* GetThermalScatteringIncoherentFinalStates(){ return theTSIncoherentFinalStates; };
118  void RegisterThermalScatteringIncoherentFinalStates( std::map < G4int , std::map < G4double , std::vector < E_isoAng* >* >* >* val ) { theTSIncoherentFinalStates = val; };
119  std::map < G4int , std::map < G4double , std::vector < E_P_E_isoAng* >* >* >* GetThermalScatteringInelasticFinalStates(){ return theTSInelasticFinalStates; };
120  void RegisterThermalScatteringInelasticFinalStates( std::map < G4int , std::map < G4double , std::vector < E_P_E_isoAng* >* >* >* val ) { theTSInelasticFinalStates = val; };
121 
122  private:
124  std::map<G4String,G4String> mDataEvaluation;
125  //G4NeutronHPReactionWhiteBoard* RWB;
126 
128 
135 
140 
141  std::vector<G4NeutronHPChannel*>* theElasticFSs;
142  std::vector<G4NeutronHPChannelList*>* theInelasticFSs;
143  std::vector<G4NeutronHPChannel*>* theCaptureFSs;
144  std::vector<G4NeutronHPChannel*>* theFissionFSs;
145 
146  std::map< G4int , std::map< G4double , G4NeutronHPVector* >* >* theTSCoherentCrossSections;
147  std::map< G4int , std::map< G4double , G4NeutronHPVector* >* >* theTSIncoherentCrossSections;
148  std::map< G4int , std::map< G4double , G4NeutronHPVector* >* >* theTSInelasticCrossSections;
149 
150  std::map< G4int , std::map< G4double , std::vector< std::pair< G4double , G4double >* >* >* >* theTSCoherentFinalStates;
151  std::map< G4int , std::map< G4double , std::vector< E_isoAng* >* >* >* theTSIncoherentFinalStates;
152  std::map< G4int , std::map< G4double , std::vector< E_P_E_isoAng* >* >* >* theTSInelasticFinalStates;
153 
154 };
155 #endif
void RegisterInelasticFinalStates(std::vector< G4NeutronHPChannelList * > *val)
std::map< G4int, std::map< G4double, std::vector< E_P_E_isoAng * > * > * > * GetThermalScatteringInelasticFinalStates()
std::vector< G4NeutronHPChannel * > * theElasticFSs
G4NeutronHPMessenger * messenger
void RegisterThermalScatteringCoherentCrossSections(std::map< G4int, std::map< G4double, G4NeutronHPVector * > * > *val)
std::map< G4int, std::map< G4double, G4NeutronHPVector * > * > * theTSInelasticCrossSections
void RegisterThermalScatteringCoherentFinalStates(std::map< G4int, std::map< G4double, std::vector< std::pair< G4double, G4double > * > * > * > *val)
void SetProduceFissionFragments(G4bool val)
std::vector< G4NeutronHPChannel * > * GetCaptureFinalStates()
void RegisterThermalScatteringIncoherentCrossSections(std::map< G4int, std::map< G4double, G4NeutronHPVector * > * > *val)
static G4NeutronHPManager * GetInstance()
void RegisterCaptureCrossSections(G4PhysicsTable *val)
std::map< G4int, std::map< G4double, G4NeutronHPVector * > * > * theTSIncoherentCrossSections
G4NeutronHPReactionWhiteBoard * GetReactionWhiteBoard()
void RegisterFissionFinalStates(std::vector< G4NeutronHPChannel * > *val)
std::map< G4int, std::map< G4double, G4NeutronHPVector * > * > * GetThermalScatteringIncoherentCrossSections()
std::map< G4int, std::map< G4double, std::vector< E_P_E_isoAng * > * > * > * theTSInelasticFinalStates
G4PhysicsTable * theFissionCrossSections
std::vector< G4NeutronHPChannel * > * GetElasticFinalStates()
void GetDataStream(G4String, std::istringstream &iss)
std::map< G4int, std::map< G4double, G4NeutronHPVector * > * > * GetThermalScatteringInelasticCrossSections()
G4PhysicsTable * GetInelasticCrossSections()
void SetUseOnlyPhotoEvaporation(G4bool val)
int G4int
Definition: G4Types.hh:78
std::map< G4int, std::map< G4double, std::vector< E_isoAng * > * > * > * GetThermalScatteringIncoherentFinalStates()
std::vector< G4NeutronHPChannelList * > * theInelasticFSs
G4PhysicsTable * GetCaptureCrossSections()
G4PhysicsTable * GetFissionCrossSections()
G4PhysicsTable * GetElasticCrossSections()
void register_data_file(G4String, G4String)
bool G4bool
Definition: G4Types.hh:79
static G4NeutronHPManager * instance
std::map< G4int, std::map< G4double, std::vector< std::pair< G4double, G4double > * > * > * > * GetThermalScatteringCoherentFinalStates()
void GetDataStream2(G4String, std::istringstream &iss)
std::vector< G4NeutronHPChannel * > * theCaptureFSs
G4PhysicsTable * theElasticCrossSections
G4PhysicsTable * theCaptureCrossSections
std::map< G4int, std::map< G4double, G4NeutronHPVector * > * > * GetThermalScatteringCoherentCrossSections()
void RegisterThermalScatteringInelasticCrossSections(std::map< G4int, std::map< G4double, G4NeutronHPVector * > * > *val)
void RegisterElasticCrossSections(G4PhysicsTable *val)
void RegisterThermalScatteringIncoherentFinalStates(std::map< G4int, std::map< G4double, std::vector< E_isoAng * > * > * > *val)
std::map< G4int, std::map< G4double, std::vector< E_isoAng * > * > * > * theTSIncoherentFinalStates
G4bool GetProduceFissionFragments()
void SetVerboseLevel(G4int i)
void SetDoNotAdjustFinalState(G4bool val)
void RegisterElasticFinalStates(std::vector< G4NeutronHPChannel * > *val)
void RegisterFissionCrossSections(G4PhysicsTable *val)
void SetNeglectDoppler(G4bool val)
std::map< G4String, G4String > mDataEvaluation
std::vector< G4NeutronHPChannel * > * GetFissionFinalStates()
G4bool GetUseOnlyPhotoEvaporation()
std::map< G4int, std::map< G4double, G4NeutronHPVector * > * > * theTSCoherentCrossSections
G4NeutronHPManager(const G4NeutronHPManager &)
G4PhysicsTable * theInelasticCrossSections
double G4double
Definition: G4Types.hh:76
std::map< G4int, std::map< G4double, std::vector< std::pair< G4double, G4double > * > * > * > * theTSCoherentFinalStates
void SetSkipMissingIsotopes(G4bool val)
void RegisterInelasticCrossSections(G4PhysicsTable *val)
void RegisterThermalScatteringInelasticFinalStates(std::map< G4int, std::map< G4double, std::vector< E_P_E_isoAng * > * > * > *val)
std::vector< G4NeutronHPChannel * > * theFissionFSs
void RegisterCaptureFinalStates(std::vector< G4NeutronHPChannel * > *val)
std::vector< G4NeutronHPChannelList * > * GetInelasticFinalStates()