File indexing completed on 2026-08-10 09:18:12
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 enum G4PreCompoundType
0059 {
0060 eDefault = 0,
0061 eDeexcitation,
0062 ePrecoInterface
0063 };
0064
0065 enum G4FermiBreakUpType
0066 {
0067 bModelVI = 0,
0068 bModelAN,
0069 bDummy
0070 };
0071
0072 class G4StateManager;
0073 class G4DeexParametersMessenger;
0074
0075 class G4DeexPrecoParameters
0076 {
0077 public:
0078
0079 G4DeexPrecoParameters();
0080
0081 ~G4DeexPrecoParameters();
0082
0083 void SetDefaults();
0084
0085
0086 std::ostream& StreamInfo(std::ostream& os) const;
0087 void Dump();
0088 friend std::ostream& operator<< (std::ostream& os,
0089 const G4DeexPrecoParameters&);
0090
0091 G4int GetVerbose() const;
0092
0093
0094 inline G4double GetLevelDensity() const;
0095
0096 inline G4double GetR0() const;
0097
0098 inline G4double GetTransitionsR0() const;
0099
0100 inline G4double GetFBUEnergyLimit() const;
0101
0102 inline G4double GetFermiEnergy() const;
0103
0104 inline G4double GetPrecoLowEnergy() const;
0105
0106 inline G4double GetPrecoHighEnergy() const;
0107
0108 inline G4double GetPhenoFactor() const;
0109
0110 inline G4double GetMinExcitation() const;
0111
0112 inline G4double GetNuclearLevelWidth() const;
0113
0114 inline G4double GetMaxLifeTime() const;
0115
0116 inline G4double GetMinExPerNucleounForMF() const;
0117
0118 inline G4int GetMinZForPreco() const;
0119
0120 inline G4int GetMinAForPreco() const;
0121
0122
0123 inline G4int GetPrecoModelType() const;
0124
0125
0126 inline G4int GetDeexModelType() const;
0127
0128 inline G4int GetTwoJMAX() const;
0129
0130 inline G4int GetUploadZ() const;
0131
0132 inline G4bool NeverGoBack() const;
0133
0134 inline G4bool UseSoftCutoff() const;
0135
0136 inline G4bool UseCEM() const;
0137
0138 inline G4bool UseGNASH() const;
0139
0140 inline G4bool UseHETC() const;
0141
0142 inline G4bool UseAngularGen() const;
0143
0144 inline G4bool PrecoDummy() const;
0145
0146 inline G4bool CorrelatedGamma() const;
0147
0148 inline G4bool GetInternalConversionFlag() const;
0149
0150 inline G4bool GetLevelDensityFlag() const;
0151
0152 inline G4bool GetDiscreteExcitationFlag() const;
0153
0154 inline G4bool StoreICLevelData() const;
0155
0156 inline G4bool IsomerProduction() const;
0157
0158 inline G4DeexChannelType GetDeexChannelsType() const;
0159
0160 inline G4PreCompoundType GetPreCompoundType() const;
0161
0162 inline G4FermiBreakUpType GetFermiBreakUpType() const;
0163
0164
0165 void SetLevelDensity(G4double);
0166
0167 void SetR0(G4double);
0168
0169 void SetTransitionsR0(G4double);
0170
0171 void SetFBUEnergyLimit(G4double);
0172
0173 void SetFermiEnergy(G4double);
0174
0175 void SetPrecoLowEnergy(G4double);
0176
0177 void SetPrecoHighEnergy(G4double);
0178
0179 void SetPhenoFactor(G4double);
0180
0181 void SetMinExcitation(G4double);
0182
0183 void SetNuclearLevelWidth(G4double);
0184
0185 void SetMaxLifeTime(G4double);
0186
0187 void SetMinExPerNucleounForMF(G4double);
0188
0189 void SetMinEForMultiFrag(G4double);
0190
0191 void SetMinZForPreco(G4int);
0192
0193 void SetMinAForPreco(G4int);
0194
0195
0196 void SetPrecoModelType(G4int);
0197
0198
0199 void SetDeexModelType(G4int);
0200
0201 void SetTwoJMAX(G4int);
0202
0203 void SetVerbose(G4int);
0204
0205 void SetNeverGoBack(G4bool);
0206
0207 void SetUseSoftCutoff(G4bool);
0208
0209 void SetUseCEM(G4bool);
0210
0211 void SetUseGNASH(G4bool);
0212
0213 void SetUseHETC(G4bool);
0214
0215 void SetUseAngularGen(G4bool);
0216
0217 void SetPrecoDummy(G4bool);
0218
0219 void SetCorrelatedGamma(G4bool);
0220
0221 void SetStoreICLevelData(G4bool);
0222
0223
0224 void SetStoreAllLevels(G4bool);
0225
0226 void SetInternalConversionFlag(G4bool);
0227
0228 void SetLevelDensityFlag(G4bool);
0229
0230 void SetDiscreteExcitationFlag(G4bool);
0231
0232 void SetIsomerProduction(G4bool);
0233
0234 void SetDeexChannelsType(G4DeexChannelType);
0235
0236 void SetPreCompoundType(G4PreCompoundType);
0237
0238 void SetFermiBreakUpType(G4FermiBreakUpType);
0239
0240 G4DeexPrecoParameters(const G4DeexPrecoParameters & right) = delete;
0241 const G4DeexPrecoParameters& operator=
0242 (const G4DeexPrecoParameters &right) = delete;
0243 G4bool operator==(const G4DeexPrecoParameters &right) const = delete;
0244 G4bool operator!=(const G4DeexPrecoParameters &right) const = delete;
0245
0246 private:
0247
0248 void Initialise();
0249
0250 G4bool IsLocked() const;
0251
0252 G4DeexParametersMessenger* theMessenger;
0253 G4StateManager* fStateManager;
0254
0255
0256 G4double fLevelDensity;
0257
0258
0259 G4double fR0;
0260
0261
0262 G4double fTransitionsR0;
0263
0264
0265 G4double fFBUEnergyLimit;
0266
0267
0268 G4double fFermiEnergy;
0269
0270
0271 G4double fPrecoLowEnergy;
0272 G4double fPrecoHighEnergy;
0273
0274
0275 G4double fPhenoFactor;
0276
0277
0278 G4double fMinExcitation;
0279 G4double fNuclearLevelWidth;
0280 G4double fMaxLifeTime;
0281
0282
0283 G4double fMinExPerNucleounForMF;
0284
0285
0286 G4int fPrecoType;
0287 G4int fDeexType;
0288
0289 G4int fTwoJMAX;
0290
0291
0292 G4int fMinZForPreco;
0293 G4int fMinAForPreco;
0294
0295 G4int fVerbose;
0296
0297
0298 G4bool fNeverGoBack;
0299 G4bool fUseSoftCutoff;
0300 G4bool fUseCEM;
0301 G4bool fUseGNASH;
0302 G4bool fUseHETC;
0303 G4bool fUseAngularGen;
0304 G4bool fPrecoDummy;
0305
0306
0307 G4bool fCorrelatedGamma;
0308 G4bool fStoreAllLevels;
0309 G4bool fInternalConversion;
0310 G4bool fLD;
0311 G4bool fFD;
0312 G4bool fIsomerFlag;
0313 G4bool fIsPrinted{false};
0314
0315
0316 G4DeexChannelType fDeexChannelType;
0317 G4PreCompoundType fPreCompoundType;
0318 G4FermiBreakUpType fFermiBreakUpType;
0319 };
0320
0321 inline G4double G4DeexPrecoParameters::GetLevelDensity() const
0322 {
0323 return fLevelDensity;
0324 }
0325
0326 inline G4double G4DeexPrecoParameters::GetR0() const
0327 {
0328 return fR0;
0329 }
0330
0331 inline G4double G4DeexPrecoParameters::GetTransitionsR0() const
0332 {
0333 return fTransitionsR0;
0334 }
0335
0336 inline G4double G4DeexPrecoParameters::GetFBUEnergyLimit() const
0337 {
0338 return fFBUEnergyLimit;
0339 }
0340
0341 inline G4double G4DeexPrecoParameters::GetFermiEnergy() const
0342 {
0343 return fFermiEnergy;
0344 }
0345
0346 inline G4double G4DeexPrecoParameters::GetPrecoLowEnergy() const
0347 {
0348 return fPrecoLowEnergy;
0349 }
0350
0351 inline G4double G4DeexPrecoParameters::GetPrecoHighEnergy() const
0352 {
0353 return fPrecoHighEnergy;
0354 }
0355
0356 inline G4double G4DeexPrecoParameters::GetPhenoFactor() const
0357 {
0358 return fPhenoFactor;
0359 }
0360
0361 inline G4double G4DeexPrecoParameters::GetMinExcitation() const
0362 {
0363 return fMinExcitation;
0364 }
0365
0366 inline G4double G4DeexPrecoParameters::GetNuclearLevelWidth() const
0367 {
0368 return fNuclearLevelWidth;
0369 }
0370
0371 inline G4double G4DeexPrecoParameters::GetMaxLifeTime() const
0372 {
0373 return fMaxLifeTime;
0374 }
0375
0376 inline G4double G4DeexPrecoParameters::GetMinExPerNucleounForMF() const
0377 {
0378 return fMinExPerNucleounForMF;
0379 }
0380
0381 inline G4int G4DeexPrecoParameters::GetMinZForPreco() const
0382 {
0383 return fMinZForPreco;
0384 }
0385
0386 inline G4int G4DeexPrecoParameters::GetMinAForPreco() const
0387 {
0388 return fMinAForPreco;
0389 }
0390
0391 inline G4int G4DeexPrecoParameters::GetPrecoModelType() const
0392 {
0393 return fPrecoType;
0394 }
0395
0396 inline G4int G4DeexPrecoParameters::GetDeexModelType() const
0397 {
0398 return fDeexType;
0399 }
0400
0401 inline G4int G4DeexPrecoParameters::GetTwoJMAX() const
0402 {
0403 return fTwoJMAX;
0404 }
0405
0406 inline G4bool G4DeexPrecoParameters::NeverGoBack() const
0407 {
0408 return fNeverGoBack;
0409 }
0410
0411 inline G4bool G4DeexPrecoParameters::UseSoftCutoff() const
0412 {
0413 return fUseSoftCutoff;
0414 }
0415
0416 inline G4bool G4DeexPrecoParameters::UseCEM() const
0417 {
0418 return fUseCEM;
0419 }
0420
0421 inline G4bool G4DeexPrecoParameters::UseGNASH() const
0422 {
0423 return fUseGNASH;
0424 }
0425
0426 inline G4bool G4DeexPrecoParameters::UseHETC() const
0427 {
0428 return fUseHETC;
0429 }
0430
0431 inline G4bool G4DeexPrecoParameters::UseAngularGen() const
0432 {
0433 return fUseAngularGen;
0434 }
0435
0436 inline G4bool G4DeexPrecoParameters::PrecoDummy() const
0437 {
0438 return fPrecoDummy;
0439 }
0440
0441 inline G4bool G4DeexPrecoParameters::CorrelatedGamma() const
0442 {
0443 return fCorrelatedGamma;
0444 }
0445
0446 inline G4bool G4DeexPrecoParameters::StoreICLevelData() const
0447 {
0448 return fStoreAllLevels;
0449 }
0450
0451 inline G4bool G4DeexPrecoParameters::GetInternalConversionFlag() const
0452 {
0453 return fInternalConversion;
0454 }
0455
0456 inline G4bool G4DeexPrecoParameters::GetLevelDensityFlag() const
0457 {
0458 return fLD;
0459 }
0460
0461 inline G4bool G4DeexPrecoParameters::GetDiscreteExcitationFlag() const
0462 {
0463 return fFD;
0464 }
0465
0466 inline G4bool G4DeexPrecoParameters::IsomerProduction() const
0467 {
0468 return fIsomerFlag;
0469 }
0470
0471 inline G4DeexChannelType G4DeexPrecoParameters::GetDeexChannelsType() const
0472 {
0473 return fDeexChannelType;
0474 }
0475
0476 inline G4PreCompoundType G4DeexPrecoParameters::GetPreCompoundType() const
0477 {
0478 return fPreCompoundType;
0479 }
0480
0481 inline G4FermiBreakUpType G4DeexPrecoParameters::GetFermiBreakUpType() const
0482 {
0483 return fFermiBreakUpType;
0484 }
0485
0486 #endif