Geant4 Cross Reference |
1 /* 1 /* 2 # <<BEGIN-copyright>> 2 # <<BEGIN-copyright>> 3 # <<END-copyright>> 3 # <<END-copyright>> 4 */ 4 */ 5 5 6 #include "MCGIDI.h" 6 #include "MCGIDI.h" 7 7 8 /* ---- MCGIDI_quantitiesLookupModes ---- */ 8 /* ---- MCGIDI_quantitiesLookupModes ---- */ 9 /* 9 /* 10 ============================================== 10 ========================================================= 11 */ 11 */ 12 MCGIDI_quantitiesLookupModes::MCGIDI_quantitie 12 MCGIDI_quantitiesLookupModes::MCGIDI_quantitiesLookupModes( int projectilesPOPID ) { 13 13 14 mProjectilesPOPID = projectilesPOPID; 14 mProjectilesPOPID = projectilesPOPID; 15 mProjectileEnergy = -1.; 15 mProjectileEnergy = -1.; 16 mGroupIndex = -1; 16 mGroupIndex = -1; 17 mProjectileEnergyForGroupIndex = -1.; 17 mProjectileEnergyForGroupIndex = -1.; 18 mTemperature = 0.; 18 mTemperature = 0.; 19 mCrossSectionMode = MCGIDI_quantityLookupM 19 mCrossSectionMode = MCGIDI_quantityLookupMode_pointwise; 20 mMultiplicityMode = MCGIDI_quantityLookupM 20 mMultiplicityMode = MCGIDI_quantityLookupMode_pointwise; 21 } 21 } 22 /* 22 /* 23 ============================================== 23 ========================================================= 24 */ 24 */ 25 MCGIDI_quantitiesLookupModes::~MCGIDI_quantiti 25 MCGIDI_quantitiesLookupModes::~MCGIDI_quantitiesLookupModes( ) { 26 26 27 } 27 } 28 /* 28 /* 29 ============================================== 29 ========================================================= 30 */ 30 */ 31 int MCGIDI_quantitiesLookupModes::setGroupInde 31 int MCGIDI_quantitiesLookupModes::setGroupIndex( GIDI_settings const &settings, bool encloseOutOfRange ) { 32 32 33 GIDI_settings_particle const *particle = s 33 GIDI_settings_particle const *particle = settings.getParticle( mProjectilesPOPID ); 34 if( particle == NULL ) throw 1; 34 if( particle == NULL ) throw 1; 35 35 36 mGroupIndex = particle->getGroupIndexFromE 36 mGroupIndex = particle->getGroupIndexFromEnergy( mProjectileEnergy, encloseOutOfRange ); 37 if( mGroupIndex == -3 ) throw 1; 37 if( mGroupIndex == -3 ) throw 1; 38 38 39 mProjectileEnergyForGroupIndex = mProjecti 39 mProjectileEnergyForGroupIndex = mProjectileEnergy; 40 if( mGroupIndex < 0 ) mProjectileEnergyFor 40 if( mGroupIndex < 0 ) mProjectileEnergyForGroupIndex = -1; 41 return( mGroupIndex ); 41 return( mGroupIndex ); 42 } 42 } 43 /* 43 /* 44 ============================================== 44 ========================================================= 45 */ 45 */ 46 enum MCGIDI_quantityLookupMode MCGIDI_quantiti 46 enum MCGIDI_quantityLookupMode MCGIDI_quantitiesLookupModes::getMode( std::string const &quantity ) const { 47 47 48 if( quantity == std::string( "cross sectio 48 if( quantity == std::string( "cross section" ) ) { 49 return( mCrossSectionMode ); } 49 return( mCrossSectionMode ); } 50 else if( quantity == std::string( "multipl 50 else if( quantity == std::string( "multiplicity" ) ) { 51 return( mMultiplicityMode ); } 51 return( mMultiplicityMode ); } 52 else { 52 else { 53 throw 1; 53 throw 1; 54 } 54 } 55 } 55 } 56 /* 56 /* 57 ============================================== 57 ========================================================= 58 */ 58 */ 59 std::vector<std::string> MCGIDI_quantitiesLook 59 std::vector<std::string> MCGIDI_quantitiesLookupModes::getListOfLookupQuanities( ) const { 60 60 61 std::vector<std::string> quanities; 61 std::vector<std::string> quanities; 62 62 63 quanities.push_back( std::string( "cross s 63 quanities.push_back( std::string( "cross section" ) ); 64 quanities.push_back( std::string( "multipl 64 quanities.push_back( std::string( "multiplicity" ) ); 65 65 66 return( quanities ); 66 return( quanities ); 67 } 67 } 68 /* 68 /* 69 ============================================== 69 ========================================================= 70 */ 70 */ 71 void MCGIDI_quantitiesLookupModes::setMode( st 71 void MCGIDI_quantitiesLookupModes::setMode( std::string const &quantity, enum MCGIDI_quantityLookupMode mode ) { 72 72 73 if( quantity == std::string( "cross sectio 73 if( quantity == std::string( "cross section" ) ) { 74 mCrossSectionMode = mode; } 74 mCrossSectionMode = mode; } 75 else if( quantity == std::string( "multipl 75 else if( quantity == std::string( "multiplicity" ) ) { 76 mMultiplicityMode = mode; } 76 mMultiplicityMode = mode; } 77 else { 77 else { 78 throw 1; 78 throw 1; 79 } 79 } 80 } 80 } 81 /* 81 /* 82 ============================================== 82 ========================================================= 83 */ 83 */ 84 void MCGIDI_quantitiesLookupModes::setModeAll( 84 void MCGIDI_quantitiesLookupModes::setModeAll( enum MCGIDI_quantityLookupMode mode ) { 85 85 86 mCrossSectionMode = mode; 86 mCrossSectionMode = mode; 87 mMultiplicityMode = mode; 87 mMultiplicityMode = mode; 88 } 88 } 89 89