Geant4  v4-10.4-release
 모두 클래스 네임스페이스들 파일들 함수 변수 타입정의 열거형 타입 열거형 멤버 Friends 매크로 그룹들 페이지들
MCGIDI_quantitiesLookupMode.cc
이 파일의 문서화 페이지로 가기
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;
18  mTemperature = 0.;
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 
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 }
int getGroupIndexFromEnergy(double e_in, bool encloseOutOfRange) const
GIDI_settings_particle const * getParticle(int PoPId) const
enum MCGIDI_quantityLookupMode mMultiplicityMode
Definition: MCGIDI.h:91
int setGroupIndex(GIDI_settings const &settings, bool encloseOutOfRange)
double mProjectileEnergyForGroupIndex
Definition: MCGIDI.h:88
enum MCGIDI_quantityLookupMode getMode(std::string const &quantity) const
void setModeAll(enum MCGIDI_quantityLookupMode mode)
MCGIDI_quantitiesLookupModes(int projectilesPOPID)
enum MCGIDI_quantityLookupMode mCrossSectionMode
Definition: MCGIDI.h:90
MCGIDI_quantityLookupMode
Definition: MCGIDI.h:77
void setMode(std::string const &quantity, enum MCGIDI_quantityLookupMode mode)
std::vector< std::string > getListOfLookupQuanities() const