source: trunk/source/processes/hadronic/models/incl/include/G4InclInput.hh @ 1350

Last change on this file since 1350 was 1350, checked in by garnier, 13 years ago

update to last version 4.9.4

File size: 4.9 KB
Line 
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#ifndef G4INCLINPUT_HH
27#define G4INCLINPUT_HH 1
28
29#include "G4Nucleus.hh"
30#include "G4HadProjectile.hh"
31#include "G4Proton.hh"
32#include "G4Neutron.hh"
33#include "G4Deuteron.hh"
34#include "G4Triton.hh"
35#include "G4He3.hh"
36#include "G4Alpha.hh"
37#include "G4ParticleTable.hh"
38
39#define FSIZE 15
40/**
41 * Initial values of a hadronic cascade problem.
42 */
43class G4InclInput {
44public:
45  G4InclInput() {
46    isExtended = false;
47    breakupThreshold = 10;
48    fTargetA = 0;
49    fTargetZ = 0;
50    fBulletType = 0;
51    fBulletE = 0.0;
52    fTimeScale = 1.0;
53    fNuclearPotential = 45.0; // Nuclear potential
54    icoup = 0;
55   
56    theExtendedProjectileA = 0;
57    theExtendedProjectileZ = 0;
58    isExtended = false;
59
60    fMinProtonE = 0.0;
61    fNuclearPotential = 45.0;
62    fTimeScale = 1.0;
63    fMinNeutronEnergy = 0.0;
64
65    usingInverseKinematics = false;
66  };
67
68  G4InclInput(const G4HadProjectile &aTrack, const G4Nucleus &theNucleus, G4bool inverseKinematics);
69
70  ~G4InclInput();
71 
72  void printInfo();
73
74  static void printProjectileTargetInfo(const G4HadProjectile &aTrack, const G4Nucleus &theNucleus);
75
76  static G4bool canUseInverseKinematics(const G4HadProjectile &aTrack, const G4Nucleus &theNucleus);
77
78  G4double bulletE() {
79    return fBulletE;
80  }
81
82  G4int getClusterOption() { return 0; }; // No clusters (and in 4.2 there never will be!)
83
84  G4int bulletType() {
85    return fBulletType;
86  };
87
88  void setExtendedProjectileInfo(const G4ParticleDefinition *pd);
89
90  G4int getBulletType(const G4ParticleDefinition *pd);
91  static G4ParticleDefinition* getParticleDefinition(G4int inclParticleCode);
92
93  G4bool isInverseKinematics() {
94    return usingInverseKinematics;
95  };
96
97  G4int targetA() { return fTargetA; };
98  G4int targetZ() { return fTargetZ; };
99
100  G4int extendedProjectileA() { return theExtendedProjectileA; };
101  G4int extendedProjectileZ() { return theExtendedProjectileZ; };
102  G4bool isExtendedProjectile() { return isExtended; };
103  void isExtendedProjectile(G4bool ext) { isExtended = ext; };
104
105  G4double getPotential() { return fNuclearPotential; };
106
107  G4int getBreakupThreshold() { return breakupThreshold; };
108  G4double getTimeScale() { return fTimeScale; };
109
110private:
111  G4int theExtendedProjectileA;
112  G4int theExtendedProjectileZ;
113  G4bool isExtended;
114
115  G4int breakupThreshold;
116  /**
117   * Here f is an array containing the following initial values:
118   * - f[0] : target mass number
119   * - f[1] : target charge number
120   */
121  G4int fTargetA, fTargetZ;
122
123  /*
124   * - f[2] : bullet energy
125   */
126  G4double fBulletE;
127
128  /*
129   * - f[3] : minimum proton energy to leave the target (default: 0.0)
130   */
131  G4double fMinProtonE;
132
133  /*
134   * - f[4] : nuclear potential (default: 45.0 MeV)
135   */
136  G4double fNuclearPotential;
137
138  /*
139   * - f[5] : time scale (default: 1.0)
140   */
141  G4double fTimeScale;
142
143  /*
144   * - f[6] : bullet type (1: proton, 2: neutron, 3: pi+, 4: pi0 5: pi-, 6:H2, 7: H3, 8: He3, 9: He4
145   */
146  G4int fBulletType;
147
148  /*
149   * - f[7] : minimum neutron energy to leave the target (default: 0.0)
150   */
151  G4double fMinNeutronEnergy;
152
153  /*
154   * - f[8] : target material identifier (G4Mat)
155   * - f[9] : not used
156   * - f[10] : not used
157   * - f[11] : not used
158   * - f[12] : not used
159   * - f[13] : not used
160   * - f[14] : not used
161   */
162  //  G4double f[FSIZE];
163
164  /**
165   * Number of events to be processed.
166   */
167  G4int icoup;
168
169  G4bool usingInverseKinematics;
170};
171
172#endif
Note: See TracBrowser for help on using the repository browser.