Geant4  10.02.p02
G4EmParameters.hh
Go to the documentation of this file.
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 // $Id: G4EmParameters.hh 66885 2013-01-16 17:37:13Z gunter $
27 //
28 //
29 // -------------------------------------------------------------------
30 //
31 // GEANT4 Class header file
32 //
33 //
34 // File name: G4EmParameters
35 //
36 // Author: Vladimir Ivanchenko for migration to MT
37 //
38 //
39 // Creation date: 17.05.2013
40 //
41 // Modifications:
42 //
43 //
44 // Class Description:
45 //
46 // A utility static class, responsable for keeping parameters
47 // for all EM physics processes and models.
48 //
49 // It is initialized by the master thread but can be updated
50 // at any moment. Parameters may be used in run time or at
51 // initialisation
52 //
53 // -------------------------------------------------------------------
54 //
55 
56 #ifndef G4EmParameters_h
57 #define G4EmParameters_h 1
58 
59 #include "globals.hh"
60 #include "G4ios.hh"
61 #include "G4MscStepLimitType.hh"
62 #include <vector>
63 
65 
67 {
68 public:
69 
70  static G4EmParameters* Instance();
71 
73 
74  void SetDefaults();
75 
76  // printing
77  std::ostream& StreamInfo(std::ostream& os) const;
78  void Dump() const;
79  friend std::ostream& operator<< (std::ostream& os, const G4EmParameters&);
80 
81  // boolean flags
82  void SetLossFluctuations(G4bool val);
83  G4bool LossFluctuation() const;
84 
85  void SetBuildCSDARange(G4bool val);
86  G4bool BuildCSDARange() const;
87 
88  void SetLPM(G4bool val);
89  G4bool LPM() const;
90 
91  void SetSpline(G4bool val);
92  G4bool Spline() const;
93 
94  void SetUseCutAsFinalRange(G4bool val);
95  G4bool UseCutAsFinalRange() const;
96 
97  void SetApplyCuts(G4bool val);
98  G4bool ApplyCuts() const;
99 
100  void SetFluo(G4bool val);
101  G4bool Fluo() const;
102 
103  void SetBeardenFluoDir(G4bool val);
104  G4bool BeardenFluoDir() const;
105 
106  void SetAuger(G4bool val);
107  G4bool Auger() const;
108 
109  void SetAugerCascade(G4bool val);
110  G4bool AugerCascade() const;
111 
112  void SetPixe(G4bool val);
113  G4bool Pixe() const;
114 
117 
118  void SetLateralDisplacement(G4bool val);
119  G4bool LateralDisplacement() const;
120 
123 
126 
129 
130  void SetUseMottCorrection(G4bool val);
131  G4bool UseMottCorrection() const;
132 
133  // double parameters with values
134  void SetMinSubRange(G4double val);
135  G4double MinSubRange() const;
136 
137  void SetMinEnergy(G4double val);
138  G4double MinKinEnergy() const;
139 
140  void SetMaxEnergy(G4double val);
141  G4double MaxKinEnergy() const;
142 
145 
148 
149  void SetLowestMuHadEnergy(G4double val);
150  G4double LowestMuHadEnergy() const;
151 
152  void SetLinearLossLimit(G4double val);
153  G4double LinearLossLimit() const;
154 
155  void SetBremsstrahlungTh(G4double val);
156  G4double BremsstrahlungTh() const;
157 
158  void SetLambdaFactor(G4double val);
159  G4double LambdaFactor() const;
160 
163 
164  void SetMscThetaLimit(G4double val);
165  G4double MscThetaLimit() const;
166 
167  void SetMscRangeFactor(G4double val);
168  G4double MscRangeFactor() const;
169 
172 
173  void SetMscGeomFactor(G4double val);
174  G4double MscGeomFactor() const;
175 
176  void SetMscSkin(G4double val);
177  G4double MscSkin() const;
178 
179  // integer parameters
180  void SetNumberOfBins(G4int val);
181  G4int NumberOfBins() const;
182 
185 
186  void SetVerbose(G4int val);
187  G4int Verbose() const;
188 
189  void SetWorkerVerbose(G4int val);
190  G4int WorkerVerbose() const;
191 
194 
197 
198  // string parameters
199  void SetPIXECrossSectionModel(const G4String&);
201 
204 
205  void AddPAIModel(const G4String& particle,
206  const G4String& region,
207  const G4String& type);
208  const std::vector<G4String>& ParticlesPAI() const;
209  const std::vector<G4String>& RegionsPAI() const;
210  const std::vector<G4String>& TypesPAI() const;
211 
212  void AddMicroElec(const G4String& region);
213  const std::vector<G4String>& RegionsMicroElec() const;
214 
215  void AddDNA(const G4String& region, const G4String& type);
216  const std::vector<G4String>& RegionsDNA() const;
217  const std::vector<G4String>& TypesDNA() const;
218 
219 private:
220 
221  G4EmParameters();
222 
224 
226 
228 
246 
262 
267 
270 
273 
274  std::vector<G4String> m_particlesPAI;
275  std::vector<G4String> m_regnamesPAI;
276  std::vector<G4String> m_typesPAI;
277 
278  std::vector<G4String> m_regnamesME;
279 
280  std::vector<G4String> m_regnamesDNA;
281  std::vector<G4String> m_typesDNA;
282 
283 };
284 
285 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
286 
287 #endif
288 
G4bool UseCutAsFinalRange() const
static G4EmParameters * theInstance
void SetLossFluctuations(G4bool val)
G4int NumberOfBinsPerDecade() const
void SetApplyCuts(G4bool val)
G4MscStepLimitType mscStepLimit
G4int NumberOfBins() const
void SetVerbose(G4int val)
G4bool Spline() const
G4int WorkerVerbose() const
G4double MaxKinEnergy() const
std::vector< G4String > m_typesDNA
void SetDeexcitationIgnoreCut(G4bool val)
void SetUseMottCorrection(G4bool val)
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
std::vector< G4String > m_typesPAI
void SetLowestElectronEnergy(G4double val)
void SetLatDisplacementBeyondSafety(G4bool val)
G4MscStepLimitType MscMuHadStepLimitType() const
void SetMscStepLimitType(G4MscStepLimitType val)
G4double linLossLimit
G4bool AugerCascade() const
G4double LowestElectronEnergy() const
void SetBeardenFluoDir(G4bool val)
void SetLinearLossLimit(G4double val)
G4double MscGeomFactor() const
G4double MscMuHadRangeFactor() const
G4double MscThetaLimit() const
std::vector< G4String > m_regnamesME
void SetAuger(G4bool val)
const std::vector< G4String > & ParticlesPAI() const
G4String nameElectronPIXE
const std::vector< G4String > & RegionsMicroElec() const
G4double maxKinEnergy
G4bool muhadLateralDisplacement
std::ostream & StreamInfo(std::ostream &os) const
void SetNumberOfBins(G4int val)
void SetMinSubRange(G4double val)
G4bool LPM() const
void SetMaxEnergyForCSDARange(G4double val)
const std::vector< G4String > & RegionsPAI() const
G4bool ApplyCuts() const
const std::vector< G4String > & TypesDNA() const
G4bool Fluo() const
void SetPIXEElectronCrossSectionModel(const G4String &)
int G4int
Definition: G4Types.hh:78
G4bool useMottCorrection
void SetMaxEnergy(G4double val)
void SetBremsstrahlungTh(G4double val)
G4double MinSubRange() const
G4bool DeexcitationIgnoreCut() const
G4bool LatDisplacementBeyondSafety() const
void AddPAIModel(const G4String &particle, const G4String &region, const G4String &type)
void SetLateralDisplacement(G4bool val)
G4bool BuildCSDARange() const
void SetWorkerVerbose(G4int val)
G4bool lateralDisplacement
G4double LinearLossLimit() const
void SetPIXECrossSectionModel(const G4String &)
G4double LambdaFactor() const
G4int Verbose() const
G4bool MuHadLateralDisplacement() const
const G4String & PIXECrossSectionModel()
G4double LowestMuHadEnergy() const
G4double lowestMuHadEnergy
bool G4bool
Definition: G4Types.hh:79
void SetMscRangeFactor(G4double val)
friend std::ostream & operator<<(std::ostream &os, const G4EmParameters &)
void SetAugerCascade(G4bool val)
void Dump() const
void SetNumberOfBinsPerDecade(G4int val)
G4bool LateralDisplacement() const
G4double minSubRange
void SetLowestMuHadEnergy(G4double val)
void SetMscGeomFactor(G4double val)
std::vector< G4String > m_regnamesDNA
G4double MinKinEnergy() const
void SetMscMuHadStepLimitType(G4MscStepLimitType val)
std::vector< G4String > m_regnamesPAI
void AddDNA(const G4String &region, const G4String &type)
std::vector< G4String > m_particlesPAI
G4double lowestElectronEnergy
G4MscStepLimitType mscStepLimitMuHad
G4double lambdaFactor
void SetBuildCSDARange(G4bool val)
void AddMicroElec(const G4String &region)
G4bool Auger() const
G4bool LossFluctuation() const
void SetMscMuHadRangeFactor(G4double val)
void SetPixe(G4bool val)
void SetSpline(G4bool val)
void SetMuHadLateralDisplacement(G4bool val)
G4double maxKinEnergyCSDA
void SetMinEnergy(G4double val)
void SetLPM(G4bool val)
G4bool UseAngularGeneratorForIonisation() const
G4MscStepLimitType
G4double BremsstrahlungTh() const
static G4EmParameters * Instance()
G4double MscRangeFactor() const
void ActivateAngularGeneratorForIonisation(G4bool val)
void SetUseCutAsFinalRange(G4bool val)
G4bool latDisplacementBeyondSafety
G4bool UseMottCorrection() const
const std::vector< G4String > & RegionsDNA() const
G4bool Pixe() const
G4double minKinEnergy
G4MscStepLimitType MscStepLimitType() const
void SetMscThetaLimit(G4double val)
void SetLambdaFactor(G4double val)
void SetFactorForAngleLimit(G4double val)
G4double rangeFactorMuHad
double G4double
Definition: G4Types.hh:76
G4bool useAngGeneratorForIonisation
void PrintWarning(G4ExceptionDescription &ed)
G4EmParametersMessenger * theMessenger
G4double MaxEnergyForCSDARange() const
G4double MscSkin() const
const G4String & PIXEElectronCrossSectionModel()
const std::vector< G4String > & TypesPAI() const
void SetFluo(G4bool val)
G4double FactorForAngleLimit() const
G4bool BeardenFluoDir() const
void SetMscSkin(G4double val)
G4double rangeFactor
G4double factorForAngleLimit