Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MCGIDI_quantitiesLookupMode.cc
Go to the documentation of this file.
1 /*
2 # <<BEGIN-copyright>>
3 # <<END-copyright>>
4 */
5 
6 #include "MCGIDI.h"
7 
8 /* ---- MCGIDI_quantitiesLookupModes ---- */
9 /*
10 =========================================================
11 */
13 
14  mProjectilesPOPID = projectilesPOPID;
15  mProjectileEnergy = -1.;
16  mGroupIndex = -1;
17  mProjectileEnergyForGroupIndex = -1.;
18  mTemperature = 0.;
19  mCrossSectionMode = MCGIDI_quantityLookupMode_pointwise;
20  mMultiplicityMode = MCGIDI_quantityLookupMode_pointwise;
21 }
22 /*
23 =========================================================
24 */
26 
27 }
28 /*
29 =========================================================
30 */
31 int MCGIDI_quantitiesLookupModes::setGroupIndex( GIDI_settings const &settings, bool encloseOutOfRange ) {
32 
33  GIDI_settings_particle const *particle = settings.getParticle( mProjectilesPOPID );
34  if( particle == NULL ) throw 1;
35 
36  mGroupIndex = particle->getGroupIndexFromEnergy( mProjectileEnergy, encloseOutOfRange );
37  if( mGroupIndex == -3 ) throw 1;
38 
39  mProjectileEnergyForGroupIndex = mProjectileEnergy;
40  if( mGroupIndex < 0 ) mProjectileEnergyForGroupIndex = -1;
41  return( mGroupIndex );
42 }
43 /*
44 =========================================================
45 */
46 enum MCGIDI_quantityLookupMode MCGIDI_quantitiesLookupModes::getMode( std::string const &quantity ) const {
47 
48  if( quantity == std::string( "cross section" ) ) {
49  return( mCrossSectionMode ); }
50  else if( quantity == std::string( "multiplicity" ) ) {
51  return( mMultiplicityMode ); }
52  else {
53  throw 1;
54  }
55 }
56 /*
57 =========================================================
58 */
59 std::vector<std::string> MCGIDI_quantitiesLookupModes::getListOfLookupQuanities( ) const {
60 
61  std::vector<std::string> quanities;
62 
63  quanities.push_back( std::string( "cross section" ) );
64  quanities.push_back( std::string( "multiplicity" ) );
65 
66  return( quanities );
67 }
68 /*
69 =========================================================
70 */
71 void MCGIDI_quantitiesLookupModes::setMode( std::string const &quantity, enum MCGIDI_quantityLookupMode mode ) {
72 
73  if( quantity == std::string( "cross section" ) ) {
74  mCrossSectionMode = mode; }
75  else if( quantity == std::string( "multiplicity" ) ) {
76  mMultiplicityMode = mode; }
77  else {
78  throw 1;
79  }
80 }
81 /*
82 =========================================================
83 */
85 
86  mCrossSectionMode = mode;
87  mMultiplicityMode = mode;
88 }
void setMode(std::string const &quantity, enum MCGIDI_quantityLookupMode mode)
MCGIDI_quantitiesLookupModes(int projectilesPOPID)
GIDI_settings_particle const * getParticle(int PoPId) const
void setModeAll(enum MCGIDI_quantityLookupMode mode)
int getGroupIndexFromEnergy(double e_in, bool encloseOutOfRange) const
MCGIDI_quantityLookupMode
Definition: MCGIDI.h:77
enum MCGIDI_quantityLookupMode getMode(std::string const &quantity) const
int setGroupIndex(GIDI_settings const &settings, bool encloseOutOfRange)
std::vector< std::string > getListOfLookupQuanities() const