File indexing completed on 2025-09-17 08:58:15
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044 #ifndef G4DeexPrecoParameters_h
0045 #define G4DeexPrecoParameters_h 1
0046
0047 #include "globals.hh"
0048
0049 enum G4DeexChannelType
0050 {
0051 fEvaporation = 0,
0052 fGEM,
0053 fCombined,
0054 fGEMVI,
0055 fDummy
0056 };
0057
0058 class G4StateManager;
0059 class G4DeexParametersMessenger;
0060
0061 class G4DeexPrecoParameters
0062 {
0063 public:
0064
0065 G4DeexPrecoParameters();
0066
0067 ~G4DeexPrecoParameters();
0068
0069 void SetDefaults();
0070
0071
0072 std::ostream& StreamInfo(std::ostream& os) const;
0073 void Dump();
0074 friend std::ostream& operator<< (std::ostream& os,
0075 const G4DeexPrecoParameters&);
0076
0077 G4int GetVerbose() const;
0078
0079
0080 inline G4double GetLevelDensity() const;
0081
0082 inline G4double GetR0() const;
0083
0084 inline G4double GetTransitionsR0() const;
0085
0086 inline G4double GetFBUEnergyLimit() const;
0087
0088 inline G4double GetFermiEnergy() const;
0089
0090 inline G4double GetPrecoLowEnergy() const;
0091
0092 inline G4double GetPrecoHighEnergy() const;
0093
0094 inline G4double GetPhenoFactor() const;
0095
0096 inline G4double GetMinExcitation() const;
0097
0098 inline G4double GetNuclearLevelWidth() const;
0099
0100 inline G4double GetMaxLifeTime() const;
0101
0102 inline G4double GetMinExPerNucleounForMF() const;
0103
0104 inline G4int GetMinZForPreco() const;
0105
0106 inline G4int GetMinAForPreco() const;
0107
0108 inline G4int GetPrecoModelType() const;
0109
0110 inline G4int GetDeexModelType() const;
0111
0112 inline G4int GetTwoJMAX() const;
0113
0114 inline G4int GetUploadZ() const;
0115
0116 inline G4bool NeverGoBack() const;
0117
0118 inline G4bool UseSoftCutoff() const;
0119
0120 inline G4bool UseCEM() const;
0121
0122 inline G4bool UseGNASH() const;
0123
0124 inline G4bool UseHETC() const;
0125
0126 inline G4bool UseAngularGen() const;
0127
0128 inline G4bool PrecoDummy() const;
0129
0130 inline G4bool CorrelatedGamma() const;
0131
0132 inline G4bool GetInternalConversionFlag() const;
0133
0134 inline G4bool GetLevelDensityFlag() const;
0135
0136 inline G4bool GetDiscreteExcitationFlag() const;
0137
0138 inline G4bool StoreICLevelData() const;
0139
0140 inline G4bool IsomerProduction() const;
0141
0142 inline G4DeexChannelType GetDeexChannelsType() const;
0143
0144
0145
0146 void SetLevelDensity(G4double);
0147
0148 void SetR0(G4double);
0149
0150 void SetTransitionsR0(G4double);
0151
0152 void SetFBUEnergyLimit(G4double);
0153
0154 void SetFermiEnergy(G4double);
0155
0156 void SetPrecoLowEnergy(G4double);
0157
0158 void SetPrecoHighEnergy(G4double);
0159
0160 void SetPhenoFactor(G4double);
0161
0162 void SetMinExcitation(G4double);
0163
0164 void SetNuclearLevelWidth(G4double);
0165
0166 void SetMaxLifeTime(G4double);
0167
0168 void SetMinExPerNucleounForMF(G4double);
0169
0170 void SetMinEForMultiFrag(G4double);
0171
0172 void SetMinZForPreco(G4int);
0173
0174 void SetMinAForPreco(G4int);
0175
0176 void SetPrecoModelType(G4int);
0177
0178 void SetDeexModelType(G4int);
0179
0180 void SetTwoJMAX(G4int);
0181
0182 void SetVerbose(G4int);
0183
0184 void SetNeverGoBack(G4bool);
0185
0186 void SetUseSoftCutoff(G4bool);
0187
0188 void SetUseCEM(G4bool);
0189
0190 void SetUseGNASH(G4bool);
0191
0192 void SetUseHETC(G4bool);
0193
0194 void SetUseAngularGen(G4bool);
0195
0196 void SetPrecoDummy(G4bool);
0197
0198 void SetCorrelatedGamma(G4bool);
0199
0200 void SetStoreICLevelData(G4bool);
0201
0202
0203 void SetStoreAllLevels(G4bool);
0204
0205 void SetInternalConversionFlag(G4bool);
0206
0207 void SetLevelDensityFlag(G4bool);
0208
0209 void SetDiscreteExcitationFlag(G4bool);
0210
0211 void SetIsomerProduction(G4bool);
0212
0213 void SetDeexChannelsType(G4DeexChannelType);
0214
0215 G4DeexPrecoParameters(const G4DeexPrecoParameters & right) = delete;
0216 const G4DeexPrecoParameters& operator=
0217 (const G4DeexPrecoParameters &right) = delete;
0218 G4bool operator==(const G4DeexPrecoParameters &right) const = delete;
0219 G4bool operator!=(const G4DeexPrecoParameters &right) const = delete;
0220
0221 private:
0222
0223 void Initialise();
0224
0225 G4bool IsLocked() const;
0226
0227 G4DeexParametersMessenger* theMessenger;
0228 G4StateManager* fStateManager;
0229
0230
0231 G4double fLevelDensity;
0232
0233
0234 G4double fR0;
0235
0236
0237 G4double fTransitionsR0;
0238
0239
0240 G4double fFBUEnergyLimit;
0241
0242
0243 G4double fFermiEnergy;
0244
0245
0246 G4double fPrecoLowEnergy;
0247 G4double fPrecoHighEnergy;
0248
0249
0250 G4double fPhenoFactor;
0251
0252
0253 G4double fMinExcitation;
0254 G4double fNuclearLevelWidth;
0255 G4double fMaxLifeTime;
0256
0257
0258 G4double fMinExPerNucleounForMF;
0259
0260
0261 G4int fPrecoType;
0262 G4int fDeexType;
0263
0264 G4int fTwoJMAX;
0265
0266
0267 G4int fMinZForPreco;
0268 G4int fMinAForPreco;
0269
0270 G4int fVerbose;
0271
0272
0273 G4bool fNeverGoBack;
0274 G4bool fUseSoftCutoff;
0275 G4bool fUseCEM;
0276 G4bool fUseGNASH;
0277 G4bool fUseHETC;
0278 G4bool fUseAngularGen;
0279 G4bool fPrecoDummy;
0280
0281
0282 G4bool fCorrelatedGamma;
0283 G4bool fStoreAllLevels;
0284 G4bool fInternalConversion;
0285 G4bool fLD;
0286 G4bool fFD;
0287 G4bool fIsomerFlag;
0288 G4bool fIsPrinted{false};
0289
0290
0291 G4DeexChannelType fDeexChannelType;
0292 };
0293
0294 inline G4double G4DeexPrecoParameters::GetLevelDensity() const
0295 {
0296 return fLevelDensity;
0297 }
0298
0299 inline G4double G4DeexPrecoParameters::GetR0() const
0300 {
0301 return fR0;
0302 }
0303
0304 inline G4double G4DeexPrecoParameters::GetTransitionsR0() const
0305 {
0306 return fTransitionsR0;
0307 }
0308
0309 inline G4double G4DeexPrecoParameters::GetFBUEnergyLimit() const
0310 {
0311 return fFBUEnergyLimit;
0312 }
0313
0314 inline G4double G4DeexPrecoParameters::GetFermiEnergy() const
0315 {
0316 return fFermiEnergy;
0317 }
0318
0319 inline G4double G4DeexPrecoParameters::GetPrecoLowEnergy() const
0320 {
0321 return fPrecoLowEnergy;
0322 }
0323
0324 inline G4double G4DeexPrecoParameters::GetPrecoHighEnergy() const
0325 {
0326 return fPrecoHighEnergy;
0327 }
0328
0329 inline G4double G4DeexPrecoParameters::GetPhenoFactor() const
0330 {
0331 return fPhenoFactor;
0332 }
0333
0334 inline G4double G4DeexPrecoParameters::GetMinExcitation() const
0335 {
0336 return fMinExcitation;
0337 }
0338
0339 inline G4double G4DeexPrecoParameters::GetNuclearLevelWidth() const
0340 {
0341 return fNuclearLevelWidth;
0342 }
0343
0344 inline G4double G4DeexPrecoParameters::GetMaxLifeTime() const
0345 {
0346 return fMaxLifeTime;
0347 }
0348
0349 inline G4double G4DeexPrecoParameters::GetMinExPerNucleounForMF() const
0350 {
0351 return fMinExPerNucleounForMF;
0352 }
0353
0354 inline G4int G4DeexPrecoParameters::GetMinZForPreco() const
0355 {
0356 return fMinZForPreco;
0357 }
0358
0359 inline G4int G4DeexPrecoParameters::GetMinAForPreco() const
0360 {
0361 return fMinAForPreco;
0362 }
0363
0364 inline G4int G4DeexPrecoParameters::GetPrecoModelType() const
0365 {
0366 return fPrecoType;
0367 }
0368
0369 inline G4int G4DeexPrecoParameters::GetDeexModelType() const
0370 {
0371 return fDeexType;
0372 }
0373
0374 inline G4int G4DeexPrecoParameters::GetTwoJMAX() const
0375 {
0376 return fTwoJMAX;
0377 }
0378
0379 inline G4bool G4DeexPrecoParameters::NeverGoBack() const
0380 {
0381 return fNeverGoBack;
0382 }
0383
0384 inline G4bool G4DeexPrecoParameters::UseSoftCutoff() const
0385 {
0386 return fUseSoftCutoff;
0387 }
0388
0389 inline G4bool G4DeexPrecoParameters::UseCEM() const
0390 {
0391 return fUseCEM;
0392 }
0393
0394 inline G4bool G4DeexPrecoParameters::UseGNASH() const
0395 {
0396 return fUseGNASH;
0397 }
0398
0399 inline G4bool G4DeexPrecoParameters::UseHETC() const
0400 {
0401 return fUseHETC;
0402 }
0403
0404 inline G4bool G4DeexPrecoParameters::UseAngularGen() const
0405 {
0406 return fUseAngularGen;
0407 }
0408
0409 inline G4bool G4DeexPrecoParameters::PrecoDummy() const
0410 {
0411 return fPrecoDummy;
0412 }
0413
0414 inline G4bool G4DeexPrecoParameters::CorrelatedGamma() const
0415 {
0416 return fCorrelatedGamma;
0417 }
0418
0419 inline G4bool G4DeexPrecoParameters::StoreICLevelData() const
0420 {
0421 return fStoreAllLevels;
0422 }
0423
0424 inline G4bool G4DeexPrecoParameters::GetInternalConversionFlag() const
0425 {
0426 return fInternalConversion;
0427 }
0428
0429 inline G4bool G4DeexPrecoParameters::GetLevelDensityFlag() const
0430 {
0431 return fLD;
0432 }
0433
0434 inline G4bool G4DeexPrecoParameters::GetDiscreteExcitationFlag() const
0435 {
0436 return fFD;
0437 }
0438
0439 inline G4bool G4DeexPrecoParameters::IsomerProduction() const
0440 {
0441 return fIsomerFlag;
0442 }
0443
0444 inline G4DeexChannelType G4DeexPrecoParameters::GetDeexChannelsType() const
0445 {
0446 return fDeexChannelType;
0447 }
0448
0449 #endif