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