Geant4  10.03.p01
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
G4ParticleHPFinalState Class Referenceabstract

#include <G4ParticleHPFinalState.hh>

Inheritance diagram for G4ParticleHPFinalState:
Collaboration diagram for G4ParticleHPFinalState:

Public Member Functions

 G4ParticleHPFinalState ()
 
virtual ~G4ParticleHPFinalState ()
 
void Init (G4double A, G4double Z, G4String &dirName, G4String &aFSType, G4ParticleDefinition *projectile)
 
virtual void Init (G4double A, G4double Z, G4int M, G4String &dirName, G4String &aFSType, G4ParticleDefinition *)=0
 
virtual G4HadFinalStateApplyYourself (const G4HadProjectile &)
 
virtual G4ParticleHPFinalStateNew ()=0
 
G4bool HasXsec ()
 
G4bool HasFSData ()
 
G4bool HasAnyData ()
 
virtual G4double GetXsec (G4double)
 
virtual G4ParticleHPVectorGetXsec ()
 
void SetA_Z (G4double anA, G4double aZ, G4int aM=0)
 
G4double GetZ ()
 
G4double GetN ()
 
G4double GetA ()
 
G4int GetM ()
 
void SetAZMs (G4double anA, G4double aZ, G4int aM, G4ParticleHPDataUsed used)
 
void SetProjectile (G4ParticleDefinition *projectile)
 

Protected Member Functions

void adjust_final_state (G4LorentzVector)
 
G4bool DoNotAdjustFinalState ()
 

Protected Attributes

G4bool hasXsec
 
G4bool hasFSData
 
G4bool hasAnyData
 
G4ParticleHPNames theNames
 
G4Cache< G4HadFinalState * > theResult
 
G4double theBaseA
 
G4double theBaseZ
 
G4int theBaseM
 
G4int theNDLDataZ
 
G4int theNDLDataA
 
G4int theNDLDataM
 
G4ParticleDefinitiontheProjectile
 

Detailed Description

Definition at line 47 of file G4ParticleHPFinalState.hh.

Constructor & Destructor Documentation

G4ParticleHPFinalState::G4ParticleHPFinalState ( )
inline

Definition at line 51 of file G4ParticleHPFinalState.hh.

52  {
53  hasFSData = true;
54  hasXsec = true;
55  hasAnyData = true;
56  theBaseZ = 0;
57  theBaseA = 0;
58  theBaseM = 0;
59 
60  theNDLDataZ = 0;
61  theNDLDataA = 0;
62  theNDLDataM = 0;
63 
64  adjustResult = true;
65  if ( getenv( "G4PHP_DO_NOT_ADJUST_FINAL_STATE" ) ) adjustResult = false;
66 
68 
69  theResult.Put( NULL );
70 
71  };
G4Cache< G4HadFinalState * > theResult
G4ParticleDefinition * theProjectile
static G4Neutron * Neutron()
Definition: G4Neutron.cc:104
void Put(const value_type &val) const
Definition: G4Cache.hh:286

Here is the call graph for this function:

virtual G4ParticleHPFinalState::~G4ParticleHPFinalState ( )
inlinevirtual

Definition at line 73 of file G4ParticleHPFinalState.hh.

73 {};

Member Function Documentation

void G4ParticleHPFinalState::adjust_final_state ( G4LorentzVector  init_4p_lab)
protected

Definition at line 45 of file G4ParticleHPFinalState.cc.

46 {
47 
48  G4double minimum_energy = 1*keV;
49 
50  if ( G4ParticleHPManager::GetInstance()->GetDoNotAdjustFinalState() ) return;
51 
52  G4int nSecondaries = theResult.Get()->GetNumberOfSecondaries();
53 
54  G4int sum_Z = 0;
55  G4int sum_A = 0;
56  G4int max_SecZ = 0;
57  G4int max_SecA = 0;
58  G4int imaxA = -1;
59  for ( int i = 0 ; i < nSecondaries ; i++ )
60  {
62  max_SecZ = std::max ( max_SecZ , theResult.Get()->GetSecondary( i )->GetParticle()->GetDefinition()->GetAtomicNumber() );
64  max_SecA = std::max ( max_SecA , theResult.Get()->GetSecondary( i )->GetParticle()->GetDefinition()->GetAtomicMass() );
65  if ( theResult.Get()->GetSecondary( i )->GetParticle()->GetDefinition()->GetAtomicMass() == max_SecA ) imaxA = i;
66 #ifdef G4PHPDEBUG
67  if( getenv("G4ParticleHPDebug")) G4cout << "G4ParticleHPFinalState::adjust_final_stat SECO " << i << " " <<theResult.Get()->GetSecondary( i )->GetParticle()->GetDefinition()->GetParticleName() << G4endl;
68 #endif
69 
70  }
71 
72  G4ParticleDefinition* resi_pd = NULL;
73 
74  G4double baseZNew = theBaseZ;
75  G4double baseANew = theBaseA;
77  baseANew ++;
78  } else if( theProjectile == G4Proton::Proton() ) {
79  baseZNew ++;
80  baseANew ++;
81  } else if( theProjectile == G4Deuteron::Deuteron() ) {
82  baseZNew ++;
83  baseANew += 2;
84  } else if( theProjectile == G4Triton::Triton() ) {
85  baseZNew ++;
86  baseANew += 3;
87  } else if( theProjectile == G4Alpha::Alpha() ) {
88  baseZNew += 2;
89  baseANew += 4;
90  }
91 
92 #ifdef G4PHPDEBUG
93  if( getenv("G4ParticleHPDebug")) G4cout << "G4ParticleHPFinalState::adjust_final_stat BaseZ " << baseZNew << " BaseA " << baseANew << " sum_Z " << sum_Z << " sum_A " << sum_A << G4endl;
94 #endif
95 
96  G4bool needOneMoreSec = false;
97  G4ParticleDefinition* oneMoreSec_pd = NULL;
98  if ( (int)(baseZNew - sum_Z) == 0 && (int)(baseANew - sum_A) == 0 )
99  {
100  //All secondaries are already created;
101  resi_pd = theResult.Get()->GetSecondary( imaxA )->GetParticle()->GetDefinition();
102  }
103  else
104  {
105  if ( max_SecA > int(baseANew - sum_A) )
106  {
107  //Most heavy secondary is interpreted as residual
108  resi_pd = theResult.Get()->GetSecondary( imaxA )->GetParticle()->GetDefinition();
109  needOneMoreSec = true;
110  }
111  else
112  {
113  //creation of residual is requierd
114  resi_pd = G4IonTable::GetIonTable()->GetIon ( int(baseZNew - sum_Z) , (int)(baseANew - sum_A) , 0.0 );
115  }
116 
117  if ( needOneMoreSec )
118  {
119  if ( int(baseZNew - sum_Z) == 0 && (int)(baseANew - sum_A) > 0 )
120  {
121  if ( int(baseANew - sum_A) > 1 ) G4cout << "More than one neutron is required for the balance of baryon number!" << G4endl;
122  oneMoreSec_pd = theProjectile;
123  }
124  else
125  {
126 #ifdef G4PHPDEBUG
127  if( getenv("G4ParticleHPDebug")) G4cout << this << "G4ParticleHPFinalState oneMoreSec_pd Z " << baseZNew << " - " << sum_Z << " A " << baseANew << " - " << sum_A << " projectile " << theProjectile->GetParticleName() << G4endl;
128 #endif
129  oneMoreSec_pd = G4IonTable::GetIonTable()->GetIon ( int(baseZNew - sum_Z) , (int)(baseANew - sum_A) , 0.0 );
130  if( !oneMoreSec_pd ) {
131  G4cerr << this << "G4ParticleHPFinalState oneMoreSec_pd Z " << baseZNew << " - " << sum_Z << " A " << baseANew << " - " << sum_A << " projectile " << theProjectile->GetParticleName() << G4endl;
132  G4Exception("G4ParticleHPFinalState:adjust_final_state",
133  "Warning",
134  JustWarning,
135  "No adjustment will be done!");
136  return;
137  }
138  }
139  }
140 
141  if ( resi_pd == NULL )
142  {
143  // theNDLDataZ,A has the Z and A of used NDL file
144  G4double ndlZNew = theNDLDataZ;
145  G4double ndlANew = theNDLDataA;
146  if( theProjectile == G4Neutron::Neutron() ) {
147  ndlANew ++;
148  } else if( theProjectile == G4Proton::Proton() ) {
149  ndlZNew ++;
150  ndlANew ++;
151  } else if( theProjectile == G4Deuteron::Deuteron() ) {
152  ndlZNew ++;
153  ndlANew += 2;
154  } else if( theProjectile == G4Triton::Triton() ) {
155  ndlZNew ++;
156  ndlANew += 3;
157  } else if( theProjectile == G4Alpha::Alpha() ) {
158  ndlZNew += 2;
159  ndlANew += 4;
160  }
161  // theNDLDataZ,A has the Z and A of used NDL file
162  if ( (int)(ndlZNew - sum_Z) == 0 && (int)(ndlANew - sum_A) == 0 )
163  {
164  G4int dif_Z = ( int ) ( theNDLDataZ - theBaseZ );
165  G4int dif_A = ( int ) ( theNDLDataA - theBaseA );
166  resi_pd = G4IonTable::GetIonTable()->GetIon ( max_SecZ - dif_Z , max_SecA - dif_A , 0.0 );
167  if( !resi_pd ) {
168  G4cerr << "G4ParticleHPFinalState resi_pd Z " << max_SecZ << " - " << dif_Z << " A " << max_SecA << " - " << dif_A << " projectile " << theProjectile->GetParticleName() << G4endl;
169  G4Exception("G4ParticleHPFinalState:adjust_final_state",
170  "Warning",
171  JustWarning,
172  "No adjustment will be done!");
173  return;
174  }
175 
176  for ( int i = 0 ; i < nSecondaries ; i++ )
177  {
178  if ( theResult.Get()->GetSecondary( i )->GetParticle()->GetDefinition()->GetAtomicNumber() == max_SecZ
179  && theResult.Get()->GetSecondary( i )->GetParticle()->GetDefinition()->GetAtomicMass() == max_SecA )
180  {
182  p = p * resi_pd->GetPDGMass()/ G4IonTable::GetIonTable()->GetIon ( max_SecZ , max_SecA , 0.0 )->GetPDGMass();
183  theResult.Get()->GetSecondary( i )->GetParticle()->SetDefinition( resi_pd );
185  }
186  }
187  }
188  }
189  }
190 
191 
192  G4LorentzVector secs_4p_lab( 0.0 );
193 
195  G4double fast = 0;
196  G4double slow = 1;
197  G4int ifast = 0;
198  G4int islow = 0;
199  G4int ires = -1;
200 
201  for ( G4int i = 0 ; i < n_sec ; i++ )
202  {
203 
204  //G4cout << "HP_DB " << i
205  // << " " << theResult.GetSecondary( i )->GetParticle()->GetDefinition()->GetParticleName()
206  // << " 4p " << theResult.GetSecondary( i )->GetParticle()->Get4Momentum()
207  // << " ke " << theResult.GetSecondary( i )->GetParticle()->Get4Momentum().e() - theResult.GetSecondary( i )->GetParticle()->GetDefinition()->GetPDGMass()
208  // << G4endl;
209 
210  secs_4p_lab += theResult.Get()->GetSecondary( i )->GetParticle()->Get4Momentum();
211 
212  G4double beta = 0;
214  {
215  beta = theResult.Get()->GetSecondary( i )->GetParticle()->Get4Momentum().beta();
216  }
217  else
218  {
219  beta = 1;
220  }
221 
222  if ( theResult.Get()->GetSecondary( i )->GetParticle()->GetDefinition() == resi_pd ) ires = i;
223 
224  if ( slow > beta && beta != 0 )
225  {
226  slow = beta;
227  islow = i;
228  }
229 
230  if ( fast <= beta )
231  {
232  if ( fast != 1 )
233  {
234  fast = beta;
235  ifast = i;
236  }
237  else
238  {
239 // fast is already photon then check E
241  if ( e > theResult.Get()->GetSecondary( ifast )->GetParticle()->Get4Momentum().e() )
242  {
243 // among photons, the highest E becomes the fastest
244  ifast = i;
245  }
246  }
247  }
248  }
249 
250 
251  G4LorentzVector dif_4p = init_4p_lab - secs_4p_lab;
252 
253  //G4cout << "HP_DB dif_4p " << init_4p_lab - secs_4p_lab << G4endl;
254  //G4cout << "HP_DB dif_3p mag " << ( dif_4p.v() ).mag() << G4endl;
255  //G4cout << "HP_DB dif_e " << dif_4p.e() - ( dif_4p.v() ).mag()<< G4endl;
256 
257  G4LorentzVector p4(0);
258  if ( ires == -1 )
259  {
260 // Create and Add Residual Nucleus
261  ires = nSecondaries;
262  nSecondaries += 1;
263 
264  G4DynamicParticle* res = new G4DynamicParticle ( resi_pd , dif_4p.v() );
265  theResult.Get()->AddSecondary ( res );
266 
267  p4 = res->Get4Momentum();
268  if ( slow > p4.beta() )
269  {
270  slow = p4.beta();
271  islow = ires;
272  }
273  dif_4p = init_4p_lab - ( secs_4p_lab + p4 );
274  }
275 
276  if ( needOneMoreSec && oneMoreSec_pd)
277  //
278  // fca: this is not a fix, this is a crash avoidance...
279  // fca: the baryon number is still wrong, most probably because it
280  // fca: should have been decreased, but since we could not create a particle
281  // fca: we just do not add it
282  //
283  {
284  nSecondaries += 1;
285  G4DynamicParticle* one = new G4DynamicParticle ( oneMoreSec_pd , dif_4p.v() );
286  theResult.Get()->AddSecondary ( one );
287  p4 = one->Get4Momentum();
288  if ( slow > p4.beta() )
289  {
290  slow = p4.beta();
291  islow = nSecondaries-1; //Because the first is 0th, so the last becomes "nSecondaries-1"
292  }
293  dif_4p = init_4p_lab - ( secs_4p_lab + p4 );
294  }
295 
296  //Which is bigger dif_p or dif_e
297 
298  if ( dif_4p.v().mag() < std::abs( dif_4p.e() ) )
299  {
300 
301  // Adjust p
302  //if ( dif_4p.v().mag() < 1*MeV )
303  if ( minimum_energy < dif_4p.v().mag() && dif_4p.v().mag() < 1*MeV )
304  {
305 
306  nSecondaries += 1;
307  theResult.Get()->AddSecondary ( new G4DynamicParticle ( G4Gamma::Gamma() , dif_4p.v() ) );
308 
309  }
310  else
311  {
312  //G4cout << "HP_DB Difference in dif_p is too large (>1MeV) or too small(<1keV) to adjust, so that give up tuning" << G4endl;
313  }
314 
315  }
316  else
317  {
318 
319  // dif_p > dif_e
320  // at first momentum
321  // Move residual momentum
322 
323  p4 = theResult.Get()->GetSecondary( ires )->GetParticle()->Get4Momentum();
324  theResult.Get()->GetSecondary( ires )->GetParticle()->SetMomentum( p4.v() + dif_4p.v() );
325  dif_4p = init_4p_lab - ( secs_4p_lab - p4 + theResult.Get()->GetSecondary( ires )->GetParticle()->Get4Momentum() );
326 
327  //G4cout << "HP_DB new residual kinetic energy " << theResult.GetSecondary( ires )->GetParticle()->GetKineticEnergy() << G4endl;
328 
329  }
330 
331  G4double dif_e = dif_4p.e() - ( dif_4p.v() ).mag();
332  //G4cout << "HP_DB dif_e " << dif_e << G4endl;
333 
334  if ( dif_e > 0 )
335  {
336 
337 // create 2 gamma
338 
339  nSecondaries += 2;
340  G4double e1 = ( dif_4p.e() -dif_4p.v().mag() ) / 2;
341 
342  if ( minimum_energy < e1 )
343  {
344  G4double costh = 2.*G4UniformRand()-1.;
345  G4double phi = twopi*G4UniformRand();
346  G4ThreeVector dir( std::sin(std::acos(costh))*std::cos(phi),
347  std::sin(std::acos(costh))*std::sin(phi),
348  costh);
349  theResult.Get()->AddSecondary ( new G4DynamicParticle ( G4Gamma::Gamma() , e1*dir ) );
350  theResult.Get()->AddSecondary ( new G4DynamicParticle ( G4Gamma::Gamma() , -e1*dir ) );
351  }
352  else
353  {
354  //G4cout << "HP_DB Difference is too small(<1keV) to adjust, so that neglect it" << G4endl;
355  }
356 
357  }
358  else //dif_e < 0
359  {
360 
361 // At first reduce KE of the fastest secondary;
364  G4ThreeVector dir = ( theResult.Get()->GetSecondary( ifast )->GetParticle()->GetMomentum() ).unit();
365 
366  //G4cout << "HP_DB ifast " << ifast << " ke0 " << ke0 << G4endl;
367 
368  if ( ke0 + dif_e > 0 )
369  {
370  theResult.Get()->GetSecondary( ifast )->GetParticle()->SetKineticEnergy( ke0 + dif_e );
371  G4ThreeVector dp = p0 - theResult.Get()->GetSecondary( ifast )->GetParticle()->GetMomentum();
372 
374  //theResult.GetSecondary( islow )->GetParticle()->SetMomentum( p - dif_e*dir );
375  theResult.Get()->GetSecondary( islow )->GetParticle()->SetMomentum( p + dp );
376  }
377  else
378  {
379  //G4cout << "HP_DB Difference in dif_e too large ( <0MeV ) to adjust, so that give up tuning" << G4endl;
380  }
381 
382  }
383 
384 }
static G4ParticleHPManager * GetInstance()
G4Cache< G4HadFinalState * > theResult
void SetMomentum(const G4ThreeVector &momentum)
G4HadSecondary * GetSecondary(size_t i)
G4double GetKineticEnergy() const
const char * p
Definition: xmltok.h:285
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
Definition: G4IonTable.cc:503
value_type & Get() const
Definition: G4Cache.hh:282
Hep3Vector v() const
G4ParticleDefinition * GetDefinition() const
int G4int
Definition: G4Types.hh:78
const G4String & GetParticleName() const
G4int GetAtomicNumber() const
G4ParticleDefinition * theProjectile
static constexpr double twopi
Definition: G4SIunits.hh:76
#define G4UniformRand()
Definition: Randomize.hh:97
G4GLOB_DLL std::ostream G4cout
bool G4bool
Definition: G4Types.hh:79
typedef int(XMLCALL *XML_NotStandaloneHandler)(void *userData)
static G4Triton * Triton()
Definition: G4Triton.cc:95
static G4Proton * Proton()
Definition: G4Proton.cc:93
static G4Neutron * Neutron()
Definition: G4Neutron.cc:104
static G4Gamma * Gamma()
Definition: G4Gamma.cc:86
static G4Deuteron * Deuteron()
Definition: G4Deuteron.cc:94
G4int GetAtomicMass() const
void SetKineticEnergy(G4double aEnergy)
G4LorentzVector Get4Momentum() const
static G4IonTable * GetIonTable()
Definition: G4IonTable.hh:78
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4double GetPDGMass() const
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4DynamicParticle * GetParticle()
#define G4endl
Definition: G4ios.hh:61
static constexpr double MeV
Definition: G4SIunits.hh:214
static G4Alpha * Alpha()
Definition: G4Alpha.cc:89
void AddSecondary(G4DynamicParticle *aP, G4int mod=-1)
double G4double
Definition: G4Types.hh:76
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
double mag() const
static constexpr double keV
Definition: G4SIunits.hh:216
G4int GetNumberOfSecondaries() const
G4ThreeVector GetMomentum() const
G4GLOB_DLL std::ostream G4cerr

Here is the call graph for this function:

Here is the caller graph for this function:

virtual G4HadFinalState* G4ParticleHPFinalState::ApplyYourself ( const G4HadProjectile )
inlinevirtual
G4bool G4ParticleHPFinalState::DoNotAdjustFinalState ( )
inlineprotected

Definition at line 127 of file G4ParticleHPFinalState.hh.

static G4ParticleHPManager * GetInstance()

Here is the caller graph for this function:

G4double G4ParticleHPFinalState::GetA ( void  )
inline

Definition at line 99 of file G4ParticleHPFinalState.hh.

99 { return theBaseA; };
G4int G4ParticleHPFinalState::GetM ( )
inline

Definition at line 100 of file G4ParticleHPFinalState.hh.

100 { return theBaseM; };

Here is the caller graph for this function:

G4double G4ParticleHPFinalState::GetN ( )
inline

Definition at line 98 of file G4ParticleHPFinalState.hh.

98 { return theBaseA; };

Here is the caller graph for this function:

virtual G4double G4ParticleHPFinalState::GetXsec ( G4double  )
inlinevirtual

Reimplemented in G4ParticleHPInelasticCompFS, G4ParticleHPInelasticBaseFS, and G4ParticleHPFissionBaseFS.

Definition at line 93 of file G4ParticleHPFinalState.hh.

93 { return 0; };

Here is the caller graph for this function:

virtual G4ParticleHPVector* G4ParticleHPFinalState::GetXsec ( )
inlinevirtual

Reimplemented in G4ParticleHPInelasticCompFS, G4ParticleHPInelasticBaseFS, and G4ParticleHPFissionBaseFS.

Definition at line 94 of file G4ParticleHPFinalState.hh.

94 { return 0; };
G4double G4ParticleHPFinalState::GetZ ( void  )
inline

Definition at line 97 of file G4ParticleHPFinalState.hh.

97 { return theBaseZ; };

Here is the caller graph for this function:

G4bool G4ParticleHPFinalState::HasAnyData ( )
inline

Definition at line 91 of file G4ParticleHPFinalState.hh.

Here is the caller graph for this function:

G4bool G4ParticleHPFinalState::HasFSData ( )
inline

Definition at line 90 of file G4ParticleHPFinalState.hh.

Here is the caller graph for this function:

G4bool G4ParticleHPFinalState::HasXsec ( )
inline

Definition at line 89 of file G4ParticleHPFinalState.hh.

Here is the caller graph for this function:

void G4ParticleHPFinalState::Init ( G4double  A,
G4double  Z,
G4String dirName,
G4String aFSType,
G4ParticleDefinition projectile 
)
inline

Definition at line 76 of file G4ParticleHPFinalState.hh.

76 { G4int M = 0; Init ( A, Z, M, dirName, aFSType,const_cast<G4ParticleDefinition*>(projectile)); };
void Init(G4double A, G4double Z, G4String &dirName, G4String &aFSType, G4ParticleDefinition *projectile)
int G4int
Definition: G4Types.hh:78
double A(double temperature)

Here is the call graph for this function:

Here is the caller graph for this function:

void G4ParticleHPFinalState::SetA_Z ( G4double  anA,
G4double  aZ,
G4int  aM = 0 
)
inline

Definition at line 96 of file G4ParticleHPFinalState.hh.

Here is the caller graph for this function:

void G4ParticleHPFinalState::SetAZMs ( G4double  anA,
G4double  aZ,
G4int  aM,
G4ParticleHPDataUsed  used 
)
inline

Definition at line 102 of file G4ParticleHPFinalState.hh.

Here is the call graph for this function:

Here is the caller graph for this function:

void G4ParticleHPFinalState::SetProjectile ( G4ParticleDefinition projectile)
inline

Definition at line 106 of file G4ParticleHPFinalState.hh.

106  {
107  theProjectile = projectile; }
G4ParticleDefinition * theProjectile

Here is the caller graph for this function:

Member Data Documentation

G4bool G4ParticleHPFinalState::hasAnyData
protected

Definition at line 113 of file G4ParticleHPFinalState.hh.

G4bool G4ParticleHPFinalState::hasFSData
protected

Definition at line 112 of file G4ParticleHPFinalState.hh.

G4bool G4ParticleHPFinalState::hasXsec
protected

Definition at line 111 of file G4ParticleHPFinalState.hh.

G4double G4ParticleHPFinalState::theBaseA
protected

Definition at line 120 of file G4ParticleHPFinalState.hh.

G4int G4ParticleHPFinalState::theBaseM
protected

Definition at line 122 of file G4ParticleHPFinalState.hh.

G4double G4ParticleHPFinalState::theBaseZ
protected

Definition at line 121 of file G4ParticleHPFinalState.hh.

G4ParticleHPNames G4ParticleHPFinalState::theNames
protected

Definition at line 114 of file G4ParticleHPFinalState.hh.

G4int G4ParticleHPFinalState::theNDLDataA
protected

Definition at line 129 of file G4ParticleHPFinalState.hh.

G4int G4ParticleHPFinalState::theNDLDataM
protected

Definition at line 130 of file G4ParticleHPFinalState.hh.

G4int G4ParticleHPFinalState::theNDLDataZ
protected

Definition at line 127 of file G4ParticleHPFinalState.hh.

G4ParticleDefinition* G4ParticleHPFinalState::theProjectile
protected

Definition at line 136 of file G4ParticleHPFinalState.hh.

G4Cache< G4HadFinalState* > G4ParticleHPFinalState::theResult
protected

Definition at line 117 of file G4ParticleHPFinalState.hh.


The documentation for this class was generated from the following files: