ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4ParticleHPManager.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4ParticleHPManager.hh
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 // P. Arce, June-2014 Conversion neutron_hp to particle_hp
28 //
29 #ifndef G4ParticleHPManager_h
30 #define G4ParticleHPManager_h 1
31 
32 // Class Description
33 // Manager of NeutronHP
34 // Class Description - End
35 
36 // 121031 First implementation done by T. Koi (SLAC/PPA)
37 //
38 #include <map>
39 #include <vector>
40 #include "globals.hh"
41 
43 
48 class G4ParticleHPVector;
49 class G4PhysicsTable;
50 struct E_isoAng;
51 struct E_P_E_isoAng;
52 
54 {
55  public:
57 
58  private:
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 
84 
86  void SetNeglectDoppler( G4bool val ) { NEGLECT_DOPPLER = val; };
90 
99 
100  std::vector<G4ParticleHPChannel*>* GetElasticFinalStates() { return theElasticFSs; };
101  void RegisterElasticFinalStates( std::vector<G4ParticleHPChannel*>* val ) { theElasticFSs = val; };
102  std::vector<G4ParticleHPChannelList*>* GetInelasticFinalStates( const G4ParticleDefinition* );
103  void RegisterInelasticFinalStates( const G4ParticleDefinition* , std::vector<G4ParticleHPChannelList*>* );
104  std::vector<G4ParticleHPChannel*>* GetCaptureFinalStates() { return theCaptureFSs; };
105  void RegisterCaptureFinalStates( std::vector<G4ParticleHPChannel*>* val ) { theCaptureFSs = val; };
106  std::vector<G4ParticleHPChannel*>* GetFissionFinalStates() { return theFissionFSs; };
107  void RegisterFissionFinalStates( std::vector<G4ParticleHPChannel*>* val ) { theFissionFSs = val; };
108 
109  std::map<G4int,std::map<G4double,G4ParticleHPVector*>*>* GetThermalScatteringCoherentCrossSections() { return theTSCoherentCrossSections; };
110  void RegisterThermalScatteringCoherentCrossSections( std::map<G4int,std::map<G4double,G4ParticleHPVector*>*>* val ) { theTSCoherentCrossSections = val; };
111  std::map<G4int,std::map<G4double,G4ParticleHPVector*>*>* GetThermalScatteringIncoherentCrossSections() { return theTSIncoherentCrossSections; };
112  void RegisterThermalScatteringIncoherentCrossSections( std::map<G4int,std::map<G4double,G4ParticleHPVector*>*>* val ) { theTSIncoherentCrossSections = val; };
113  std::map<G4int,std::map<G4double,G4ParticleHPVector*>*>* GetThermalScatteringInelasticCrossSections() { return theTSInelasticCrossSections; };
114  void RegisterThermalScatteringInelasticCrossSections( std::map<G4int,std::map<G4double,G4ParticleHPVector*>*>* val ) { theTSInelasticCrossSections = val; };
115 
116  std::map < G4int , std::map < G4double , std::vector < std::pair< G4double , G4double >* >* >* >* GetThermalScatteringCoherentFinalStates(){ return theTSCoherentFinalStates; };
117  void RegisterThermalScatteringCoherentFinalStates( std::map < G4int , std::map < G4double , std::vector < std::pair< G4double , G4double >* >* >* >* val ) { theTSCoherentFinalStates = val; };
118  std::map < G4int , std::map < G4double , std::vector < E_isoAng* >* >* >* GetThermalScatteringIncoherentFinalStates(){ return theTSIncoherentFinalStates; };
119  void RegisterThermalScatteringIncoherentFinalStates( std::map < G4int , std::map < G4double , std::vector < E_isoAng* >* >* >* val ) { theTSIncoherentFinalStates = val; };
120  std::map < G4int , std::map < G4double , std::vector < E_P_E_isoAng* >* >* >* GetThermalScatteringInelasticFinalStates(){ return theTSInelasticFinalStates; };
121  void RegisterThermalScatteringInelasticFinalStates( std::map < G4int , std::map < G4double , std::vector < E_P_E_isoAng* >* >* >* val ) { theTSInelasticFinalStates = val; };
122 
123 
124  private:
126  std::map<G4String,G4String> mDataEvaluation;
127  /*G4ParticleHPReactionWhiteBoard* RWB;*/
128 
130 
138 
141  std::map< const G4ParticleDefinition* , G4PhysicsTable* > theInelasticCrossSections;
143 
144  std::vector<G4ParticleHPChannel*>* theElasticFSs;
145  std::map< const G4ParticleDefinition* , std::vector<G4ParticleHPChannelList*>* > theInelasticFSs;
146  std::vector<G4ParticleHPChannel*>* theCaptureFSs;
147  std::vector<G4ParticleHPChannel*>* theFissionFSs;
148 
149  std::map< G4int , std::map< G4double , G4ParticleHPVector* >* >* theTSCoherentCrossSections;
150  std::map< G4int , std::map< G4double , G4ParticleHPVector* >* >* theTSIncoherentCrossSections;
151  std::map< G4int , std::map< G4double , G4ParticleHPVector* >* >* theTSInelasticCrossSections;
152 
153  std::map< G4int , std::map< G4double , std::vector< std::pair< G4double , G4double >* >* >* >* theTSCoherentFinalStates;
154  std::map< G4int , std::map< G4double , std::vector< E_isoAng* >* >* >* theTSIncoherentFinalStates;
155  std::map< G4int , std::map< G4double , std::vector< E_P_E_isoAng* >* >* >* theTSInelasticFinalStates;
156 
157 };
158 #endif