Warning, file /include/Geant4/G4GIDI_target.hh was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030 #ifndef G4GIDI_target_h_included
0031 #define G4GIDI_target_h_included 1
0032
0033 #include <vector>
0034 #include <string>
0035
0036
0037
0038 #include <statusMessageReporting.h>
0039
0040 #include <MCGIDI.h>
0041
0042 typedef struct crossSectionData_s crossSectionData;
0043 typedef struct G4GIDI_Product_s G4GIDI_Product;
0044
0045 struct crossSectionData_s {
0046 int start, end;
0047 std::vector<double> crossSection;
0048 };
0049
0050 #define channelID std::string
0051
0052 struct G4GIDI_Product_s {
0053 int A, Z, m;
0054 double kineticEnergy, px, py, pz;
0055 double birthTimeSec;
0056 };
0057
0058 class G4GIDI_target {
0059
0060 public:
0061 void init( const char *fileName );
0062 std::string equalProbableBinSampleMethod;
0063 int nElasticIndices, nCaptureIndices, nFissionIndices, nOthersIndices;
0064 int *elasticIndices, *captureIndices, *fissionIndices, *othersIndices;
0065
0066 public:
0067 GIDI::statusMessageReporting smr;
0068 int projectilesPOPID;
0069 std::string name;
0070 std::string sourceFilename;
0071 double mass;
0072 GIDI::MCGIDI_target *target;
0073
0074 G4GIDI_target( const char *fileName );
0075 G4GIDI_target( std::string const &fileName );
0076 ~G4GIDI_target( );
0077
0078 std::string *getName( void );
0079 std::string *getFilename( void );
0080 int getZ( void );
0081 int getA( void );
0082 int getM( void );
0083 double getMass( void );
0084 int getTemperatures( double *temperatures );
0085 int readTemperature( int index );
0086 std::string getEqualProbableBinSampleMethod( void );
0087 int setEqualProbableBinSampleMethod( std::string method );
0088
0089 int getNumberOfChannels( void );
0090 int getNumberOfProductionChannels( void );
0091 channelID getChannelsID( int channelIndex );
0092 std::vector<channelID> *getChannelIDs( void );
0093 std::vector<channelID> *getProductionChannelIDs( void );
0094
0095 std::vector<double> *getEnergyGridAtTIndex( int index );
0096
0097 double getTotalCrossSectionAtE( double e_in, double temperature );
0098 double getElasticCrossSectionAtE( double e_in, double temperature );
0099 double getCaptureCrossSectionAtE( double e_in, double temperature );
0100 double getFissionCrossSectionAtE( double e_in, double temperature );
0101 double getOthersCrossSectionAtE( double e_in, double temperature );
0102 double sumChannelCrossSectionAtE( int nIndices, int *indices, double e_in, double temperature );
0103 int sampleChannelCrossSectionAtE( int nIndices, int *indices, double e_in, double temperature, double (*rng)( void * ), void *rngState );
0104
0105 double getElasticFinalState( double e_in, double temperature, double (*rng)( void * ), void *rngState );
0106 std::vector<G4GIDI_Product> *getCaptureFinalState( double e_in, double temperature, double (*rng)( void * ), void *rngState );
0107 std::vector<G4GIDI_Product> *getFissionFinalState( double e_in, double temperature, double (*rng)( void * ), void *rngState );
0108 std::vector<G4GIDI_Product> *getOthersFinalState( double e_in, double temperature, double (*rng)( void * ), void *rngState );
0109 std::vector<G4GIDI_Product> *getFinalState( int nIndices, int *indices, double e_in, double temperature, double (*rng)( void * ), void *rngState );
0110
0111 double getReactionsThreshold( int index );
0112 double getReactionsDomain( int index, double *EMin, double *EMax );
0113 };
0114
0115 #endif