47 #define G4NUCLEVEL_HH 1
57 const std::vector<G4int>& vTrans,
58 const std::vector<G4float>& wLevelGamma,
59 const std::vector<G4float>& wGamma,
60 const std::vector<G4float>& vRatio,
61 const std::vector<
const std::vector<G4float>*>& wShell);
90 void PrintError(
size_t idx,
const G4String&)
const;
101 std::vector<G4int> fTrans;
102 std::vector<G4float> fGammaCumProbability;
103 std::vector<G4float> fGammaProbability;
104 std::vector<G4float> fMpRatio;
105 std::vector<const std::vector<G4float>*> fShellProbability;
116 if(idx >= length) { PrintError(idx,
"FinalExcitationEnergy"); }
118 return (
size_t)(fTrans[idx]/10000);
124 if(idx >= length) { PrintError(idx,
"TransitionType"); }
126 return fTrans[idx]%10000;
137 if(idx >= length) { PrintError(idx,
"MixingRatio"); }
139 return fMpRatio[idx];
145 if(idx >= length) { PrintError(idx,
"GammaProbability"); }
147 return fGammaProbability[idx];
153 if(idx >= length) { PrintError(idx,
"GammaCumProbability"); }
155 return fGammaCumProbability[idx];
161 if(idx >= length) { PrintError(idx,
"GammaProbability"); }
163 return fMpRatio[idx];
170 for(; idx<length; ++idx) {
171 if(x <= fGammaCumProbability[idx]) {
break; }
179 if(idx >= length) { PrintError(idx,
"SampleShell"); }
181 const std::vector<G4float>* prob = fShellProbability[idx];
186 for(i=0; i<
nn; ++i) {
if(x <= (*prob)[i]) {
break; } }
191 inline const std::vector<G4float>*
195 if(idx >= length) { PrintError(idx,
"ShellProbability"); }
197 return fShellProbability[idx];
G4float GammaProbability(size_t idx) const
G4float MultipolarityRatio(size_t idx) const
G4float GammaCumProbability(size_t idx) const
G4float MixingRatio(size_t idx) const
G4float GetTimeGamma() const
size_t SampleGammaTransition(G4double rndm) const
G4NucLevel(size_t ntrans, G4float tgamma, const std::vector< G4int > &vTrans, const std::vector< G4float > &wLevelGamma, const std::vector< G4float > &wGamma, const std::vector< G4float > &vRatio, const std::vector< const std::vector< G4float > * > &wShell)
size_t NumberOfTransitions() const
G4int TransitionType(size_t idx) const
G4int SampleShell(size_t idx, G4double rndm) const
const std::vector< G4float > * ShellProbabilty(size_t idx) const
size_t FinalExcitationIndex(size_t idx) const