46#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,
"FinalExcitationIndex(idx)"); }
118 return (
size_t)(fTrans[idx]/10000);
124 if(idx >= length) { PrintError(idx,
"TransitionType(idx)"); }
126 return fTrans[idx]%10000;
137 if(idx >= length) { PrintError(idx,
"GammaProbability(idx)"); }
139 return fGammaProbability[idx];
145 if(idx >= length) { PrintError(idx,
"GammaCumProbability(idx)"); }
147 return fGammaCumProbability[idx];
153 if(idx >= length) { PrintError(idx,
"MultipolarityRatio(idx)"); }
155 return fMpRatio[idx];
162 for(; idx<length; ++idx) {
163 if(x <= fGammaCumProbability[idx]) {
break; }
171 if(idx >= length) { PrintError(idx,
"SampleShell(idx,rndm)"); }
173 const std::vector<G4float>* prob = fShellProbability[idx];
176 G4int nn = prob->size();
178 for(i=0; i<nn; ++i) {
if(x <= (*prob)[i]) {
break; } }
183inline const std::vector<G4float>*
187 if(idx >= length) { PrintError(idx,
"ShellProbability(idx)"); }
189 return fShellProbability[idx];
const std::vector< G4float > * ShellProbabilty(size_t idx) const
G4int TransitionType(size_t idx) const
G4float MultipolarityRatio(size_t idx) const
G4float GammaProbability(size_t idx) const
void StreamInfo(std::ostream &os) const
size_t NumberOfTransitions() const
size_t FinalExcitationIndex(size_t idx) const
G4float GammaCumProbability(size_t idx) const
size_t SampleGammaTransition(G4double rndm) const
G4double GetTimeGamma() const
G4int SampleShell(size_t idx, G4double rndm) const