Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4DPMJET2_5Model.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 // * *
21 // * Parts of this code which have been developed by QinetiQ Ltd *
22 // * under contract to the European Space Agency (ESA) are the *
23 // * intellectual property of ESA. Rights to use, copy, modify and *
24 // * redistribute this software for general public use are granted *
25 // * in compliance with any licensing, distribution and development *
26 // * policy adopted by the Geant4 Collaboration. This code has been *
27 // * written by QinetiQ Ltd for the European Space Agency, under ESA *
28 // * contract 19770/06/NL/JD (Technology Research Programme). *
29 // * *
30 // * By using, copying, modifying or distributing the software (or *
31 // * any work based on the software) you agree to acknowledge its *
32 // * use in resulting scientific publications, and indicate your *
33 // * acceptance of all terms of the Geant4 Software license. *
34 // ********************************************************************
35 //
36 /// \file hadronic/Hadr02/include/G4DPMJET2_5Model.hh
37 /// \brief Definition of the G4DPMJET2_5Model class
38 //
39 // $Id: G4DPMJET2_5Model.hh 77519 2013-11-25 10:54:57Z gcosmo $
40 //
41 
42 #ifndef G4DPMJET2_5Model_h
43 #define G4DPMJET2_5Model_h
44 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
45 //
46 // MODULE: G4DPMJET2_5Model.hh
47 //
48 // Version: 0.B
49 // Date: 02/04/08
50 // Author: P R Truscott
51 // Organisation: QinetiQ Ltd, UK
52 // Customer: ESA/ESTEC, NOORDWIJK
53 // Contract: 19770/06/NL/JD
54 //
55 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
56 //
57 // Class Description
58 //
59 //
60 // Class Description - End
61 //
62 // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
63 ///////////////////////////////////////////////////////////////////////////////
64 //
65 #include "globals.hh"
66 
67 #include "G4ParticleTable.hh"
68 
69 #include "G4HadronicInteraction.hh"
70 #include "G4WilsonAblationModel.hh"
71 #include "G4ExcitationHandler.hh"
72 #include "G4VPreCompoundModel.hh"
73 #include "G4HadFinalState.hh"
74 #include "G4Track.hh"
75 #include "G4Nucleus.hh"
76 #include "G4Fragment.hh"
77 #include "G4HadProjectile.hh"
78 #include "G4Material.hh"
79 #include "G4Element.hh"
80 
82 #include <sstream>
83 
86 
87 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
88 
90 {
91 public:
92 //
93 //
94 // Standard constructor, destructor, copy etc declarations.
95 //
99  const G4DPMJET2_5InitialisationType initType = DEFAULT);
101  const G4DPMJET2_5InitialisationType initType = DEFAULT);
102  virtual ~G4DPMJET2_5Model ();
103 
105 
107 
108  virtual G4bool IsApplicable(const G4HadProjectile &theTrack,
110 
112  G4Nucleus &);
113 
114  virtual const std::pair<G4double, G4double> GetFatalEnergyCheckLevels() const;
115 
117 
118  inline void SetVerboseLevel (G4int);
119 
120  void SetNoDeexcitation ();
121  void SetDefaultDeexcitation ();
123  inline G4ExcitationHandler *GetExcitationHandler () const;
124 
125  void SetNoPreCompoundModel ();
129 
130  inline void SetDPMInitialRandomSeeds (const G4int seed1, const G4int seed2);
131  inline G4int GetDPMInitialRandomSeeds (const G4int i) const;
132 
133  inline G4double GetMinEnergy( const G4Material *aMaterial,
134  const G4Element *anElement ) const;
135  inline G4double GetMaxEnergy( const G4Material *aMaterial,
136  const G4Element *anElement ) const;
137 
138  inline G4bool SetVerboseFortranOutput (const G4String filename);
140 
141  inline void SetDPMVariablesTAUFOR (const G4double TAUFOR_P,
142  const G4int KTAUGE_P,
143  const G4int ITAUVE_P);
144 
145 private:
146 
147  void DumpVerboseInformation1 (const G4int n) const;
148  void DumpVerboseInformation2 (const G4String particleName,
149  const G4ThreeVector p,
150  const G4double E,
151  const G4double T,
152  const G4ThreeVector pinit) const;
153  void DumpVerboseInformation3 (const G4int i, const G4int A,
154  const G4int Z,
155  const G4ThreeVector p,
156  const G4double E,
157  const G4double T,
158  const G4ThreeVector pinit) const;
159  void DumpVerboseInformation4 (const G4int i,
160  const G4String particleName,
161  const G4ThreeVector p,
162  const G4double E,
163  const G4double T,
164  const G4ThreeVector pinit) const;
165  void PrintWelcomeMessage () const;
166  void Initialise ();
167 
168  G4DPMJET2_5InitialisationType theInitType;
169 
170  G4GlaubAADataSetHandler *theGlauberDataSetHandler;
171 
172  G4ParticleTable *theParticleTable;
173  G4IonTable *theIonTable;
174 
175  G4bool debug;
176  G4int debug_level;
177  G4int lunber;
178  G4double dpmver;
179  G4String defaultDirName;
180 
181  G4ExcitationHandler *theExcitationHandler;
182  G4VPreCompoundModel *thePreComp;
183 
184  G4double TAUFOR;
185  G4int KTAUGE;
186  G4int ITAUVE;
187  G4double UNON;
188  G4double UNOM;
189  G4double UNOSEA;
190  G4double CVQ;
191  G4double CDQ;
192  G4double CSEA;
193  G4double SSMIMA;
194  G4double VVMTHR;
195  G4double SEASQ;
196  G4int MKCRON;
197  G4double CRONCO;
198  G4int ISINGD;
199  G4int ISINGX;
200  G4int IDUBLD;
201  G4double SDFRAC;
202 
203  ftnlogical LTRUE;
204  ftnlogical LFALSE;
205 
206  G4String verboseFortranFile;
207 };
208 
209 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
210 
212  {return theGlauberDataSetHandler;}
213 
214 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
215 
217  (G4ExcitationHandler *aExcitationHandler)
218  {theExcitationHandler = aExcitationHandler;}
219 
220 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
221 
223  {return theExcitationHandler;}
224 
225 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
226 
228  (G4VPreCompoundModel *aPreCompoundModel)
229  {thePreComp = aPreCompoundModel;}
230 
231 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
232 
234  {return thePreComp;}
235 
236 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
237 
238 inline void G4DPMJET2_5Model::SetVerboseLevel (G4int verboseLevel1)
239  {verboseLevel = verboseLevel1;}
240 
241 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
242 
244  const G4Element * ) const
245  {return theMinEnergy;}
246 
247 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
248 
250  const G4Element * ) const
251  {return theMaxEnergy;}
252 
253 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
254 //
255 // SetVerboseFortranOutput
256 //
258  {return verboseFortranFile;}
259 
260 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
261 
263  const G4int seed2)
264 {
265  G4int s1 = seed1;
266  G4int s2 = seed2;
267  rd2in_ (&s1, &s2);
268 }
269 
270 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
271 
273  const
274 {
275  G4int seed1, seed2;
276  rd2out_ (&seed1, &seed2);
277  if (i == 0) return seed1;
278  else if (i == 2) return seed2;
279  else return 0;
280 }
281 
282 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
283 
285  const G4int KTAUGE_P, const G4int ITAUVE_P)
286 {
287  TAUFOR = TAUFOR_P;
288  KTAUGE = KTAUGE_P;
289  ITAUVE = ITAUVE_P;
290  taufo_.taufor = TAUFOR;
291  taufo_.ktauge = KTAUGE;
292  taufo_.itauve = ITAUVE;
293 }
294 
295 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
296 
297 #endif
G4double GetMinEnergy() const
void SetPreCompoundModel(G4VPreCompoundModel *value)
G4double GetMaxEnergy() const
double rd2in_(int *, int *)
const char * p
Definition: xmltok.h:285
G4ExcitationHandler * GetExcitationHandler() const
G4bool SetVerboseFortranOutput(const G4String filename)
virtual ~G4DPMJET2_5Model()
void SetExcitationHandler(G4ExcitationHandler *)
G4VPreCompoundModel * GetPreCompoundModel() const
int G4int
Definition: G4Types.hh:78
struct ccdpm25taufo taufo_
double rd2out_(int *, int *)
void SetDPMInitialRandomSeeds(const G4int seed1, const G4int seed2)
G4int GetDPMInitialRandomSeeds(const G4int i) const
void SetDefaultPreCompoundModel()
virtual G4bool IsApplicable(const G4HadProjectile &theTrack, G4Nucleus &theTarget)
G4int ftnlogical
void SetVerboseLevel(G4int)
bool G4bool
Definition: G4Types.hh:79
G4ErrorTarget * theTarget
Definition: errprop.cc:59
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &, G4Nucleus &)
const G4int n
void SetNoPreCompoundModel()
const G4DPMJET2_5Model & operator=(G4DPMJET2_5Model &right)
const XML_Char int const XML_Char * value
G4String GetVerboseFortranOutput() const
virtual const std::pair< G4double, G4double > GetFatalEnergyCheckLevels() const
Definition of the G4GlaubAADataSetHandler class.
G4DPMJET2_5InitialisationType
void SetDefaultDeexcitation()
double G4double
Definition: G4Types.hh:76
void SetNoDeexcitation()
void SetDPMVariablesTAUFOR(const G4double TAUFOR_P, const G4int KTAUGE_P, const G4int ITAUVE_P)
G4GlaubAADataSetHandler * GetGlauberDataSetHandler()