41#ifndef NUDEXSTATISTICALNUCLEUS_HH
42#define NUDEXSTATISTICALNUCLEUS_HH 1
109 G4int Init(
const char* dirname,
const char* inputfname=0);
123 void SetSomeInitalParameters(
G4int LDtype=-1,
G4int PSFFlag=-1,
G4double MaxSpin=-1,
G4int minlevelsperband=-1,
G4double BandWidth_MeV=0,
G4double maxExcEnergy=0,
G4int BrOption=-1,
G4int sampleGammaWidths=-1,
unsigned int aseed1=0,
unsigned int aseed2=0,
unsigned int aseed3=0);
127 void SetRandom1Seed(
unsigned int seed){theRandom1->SetSeed(seed); Rand1seedProvided=
true;}
128 void SetRandom2Seed(
unsigned int seed){theRandom2->SetSeed(seed); Rand2seedProvided=
true;}
129 void SetRandom3Seed(
unsigned int seed){theRandom3->SetSeed(seed); Rand3seedProvided=
true;}
159 G4int ReadSpecialInputFile(
const char* fname);
160 G4int ReadGeneralStatNuclParameters(
const char* fname);
161 G4double ReadEcrit(
const char* fname);
162 G4double ReadKnownLevels(
const char* fname);
163 void CreateLevelScheme();
164 G4int InsertHighEnergyKnownLevels();
165 void ComputeKnownLevelsMissingBR();
166 void MakeSomeParameterChecks01();
169 void CreateThermalCaptureLevel(
unsigned int seed=0);
170 void GenerateThermalCaptureLevelBR(
const char* dirname);
188 G4int GenerateAllUnknownLevels(
Level* someLevels,
G4int MaxNLevelsToFill);
190 G4int EstimateNumberOfLevelsToFill();
199 G4bool hasBeenInitialized;
200 std::string theLibDir;
205 unsigned int seed1,seed2,seed3;
206 G4bool Rand1seedProvided,Rand2seedProvided,Rand3seedProvided;
212 G4int maxspinx2,NBands,MinLevelsPerBand;
213 G4int LevelDensityType;
223 G4int NKnownLevels,NUnknownLevels,NLevels,KnownLevelsVectorSize;
224 Level theThermalCaptureLevel;
225 G4int NLevelsBelowThermalCaptureLevel;
226 G4int KnownLevelsFlag;
231 G4int BROpt,SampleGammaWidths;
233 G4double* theThermalCaptureLevelCumulBR;
235 G4double PrimaryGammasIntensityNormFactor;
241 G4int ElectronConversionFlag;
249 G4int theSampledLevel,theSampledMultipolarity;
void CopyLevel(Level *a, Level *b)
G4int ComparisonLevels(const void *va, const void *vb)
void PrintLevelSchemeInDEGENformat(const char *fname, G4int MaxLevelID=-1)
void SetBrOption(G4int BrOption)
void SetRandom2Seed(unsigned int seed)
void PrintLevelDensity(std::ostream &out)
void PrintLevelScheme(std::ostream &out)
void SetRandom1Seed(unsigned int seed)
G4int Init(const char *dirname, const char *inputfname=0)
G4double GetLevelEnergy(G4int i_level)
void PrintParameters(std::ostream &out)
G4int GenerateCascade(G4int InitialLevel, G4double ExcitationEnergy, std::vector< char > &pType, std::vector< double > &pEnergy, std::vector< double > &pTime)
void PrintKnownLevels(std::ostream &out)
void PrintKnownLevelsInDEGENformat(std::ostream &out)
void ChangeThermalCaptureLevelBR(G4double LevelEnergy, G4double absoluteIntensity)
void SetInitialParameters02(G4int knownLevelsFlag=-1, G4int electronConversionFlag=-1, G4double primGamNormFactor=-1, G4double primGamEcut=-1, G4double ecrit=-1)
void PrintTotalCumulBR(G4int i_level, std::ostream &out)
G4int GetClosestLevel(G4double Energy, G4int spinx2, G4bool parity)
void SetRandom3Seed(unsigned int seed)
G4NuDEXRandom * GetRandom3()
G4NuDEXStatisticalNucleus(G4int Z, G4int A)
void PrintThermalPrimaryTransitions(std::ostream &out)
void PrintPSF(std::ostream &out)
void SetBandWidth(G4double bandWidth)
void PrintAll(std::ostream &out)
void GetSnAndI0(G4double &sn, G4double &i0)
void PrintBR(G4int i_level, G4double MaxExcEneToPrint_MeV, std::ostream &out)
void PrintICC(std::ostream &out)
~G4NuDEXStatisticalNucleus()
void ChangeLevelSpinParityAndBR(G4int i_level, G4int newspinx2, G4bool newParity, G4int nlevels, G4double width, unsigned int seed=0)
G4bool HasBeenInitialized()
void PrintInput01(std::ostream &out)
void SetSomeInitalParameters(G4int LDtype=-1, G4int PSFFlag=-1, G4double MaxSpin=-1, G4int minlevelsperband=-1, G4double BandWidth_MeV=0, G4double maxExcEnergy=0, G4int BrOption=-1, G4int sampleGammaWidths=-1, unsigned int aseed1=0, unsigned int aseed2=0, unsigned int aseed3=0)
Level * GetLevel(G4int i_level)