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

#include <G4InteractionCase.hh>

Public Member Functions

 G4InteractionCase ()
 
 G4InteractionCase (G4InuclParticle *part1, G4InuclParticle *part2)
 
void set (G4InuclParticle *part1, G4InuclParticle *part2)
 
void clear ()
 
G4InuclParticlegetBullet () const
 
G4InuclParticlegetTarget () const
 
G4bool valid () const
 
G4bool twoNuclei () const
 
G4bool hadNucleus () const
 
G4int hadrons () const
 
G4int code () const
 

Detailed Description

Definition at line 40 of file G4InteractionCase.hh.

Constructor & Destructor Documentation

G4InteractionCase::G4InteractionCase ( )
inline

Definition at line 42 of file G4InteractionCase.hh.

42 : bullet(0), target(0), inter_case(0) {}
const XML_Char * target
Definition: expat.h:268
G4InteractionCase::G4InteractionCase ( G4InuclParticle part1,
G4InuclParticle part2 
)
inline

Definition at line 44 of file G4InteractionCase.hh.

44  {
45  set(part1, part2);
46  }
void set(G4InuclParticle *part1, G4InuclParticle *part2)

Here is the call graph for this function:

Member Function Documentation

void G4InteractionCase::clear ( )
inline

Definition at line 50 of file G4InteractionCase.hh.

50  {
51  bullet = target = 0;
52  inter_case = 0;
53  }
const XML_Char * target
Definition: expat.h:268

Here is the caller graph for this function:

G4int G4InteractionCase::code ( ) const
inline

Definition at line 65 of file G4InteractionCase.hh.

65 { return ((inter_case<0) ? -inter_case : 0); }

Here is the caller graph for this function:

G4InuclParticle* G4InteractionCase::getBullet ( ) const
inline

Definition at line 55 of file G4InteractionCase.hh.

55 { return bullet; }

Here is the caller graph for this function:

G4InuclParticle* G4InteractionCase::getTarget ( ) const
inline

Definition at line 56 of file G4InteractionCase.hh.

56 { return target; }
const XML_Char * target
Definition: expat.h:268

Here is the caller graph for this function:

G4bool G4InteractionCase::hadNucleus ( ) const
inline

Definition at line 61 of file G4InteractionCase.hh.

61 { return inter_case == -1; }

Here is the caller graph for this function:

G4int G4InteractionCase::hadrons ( ) const
inline

Definition at line 62 of file G4InteractionCase.hh.

62 { return inter_case; } // "rtype" or "is" code

Here is the caller graph for this function:

void G4InteractionCase::set ( G4InuclParticle part1,
G4InuclParticle part2 
)

Definition at line 39 of file G4InteractionCase.cc.

40  {
41  clear(); // Reset everything in case of failure
42 
43  // See which one of the two (or both) is a nucleus
44  G4InuclNuclei* nucl1 = dynamic_cast<G4InuclNuclei*>(part1);
45  G4InuclNuclei* nucl2 = dynamic_cast<G4InuclNuclei*>(part2);
46 
47  G4InuclElementaryParticle* had1 = dynamic_cast<G4InuclElementaryParticle*>(part1);
48  G4InuclElementaryParticle* had2 = dynamic_cast<G4InuclElementaryParticle*>(part2);
49 
50  if (nucl1 && nucl2) { // Nuclear collision, lighter is projectile
51  inter_case = -2;
52  if (nucl2->getA() >= nucl1->getA()) {
53  bullet = part1;
54  target = part2;
55  } else {
56  bullet = part2;
57  target = part1;
58  }
59  } else if (nucl1 || nucl2) { // Hadron on nucleus, hadron projectile
60  inter_case = -1;
61  if (nucl1 && had2) {
62  bullet = part2;
63  target = part1;
64  } else {
65  bullet = part1;
66  target = part2;
67  }
68  } else if (had1 && had2) { // Hadron-hadron interaction, order irrelevant
69  inter_case = had1->type() * had2->type();
70  bullet = part1;
71  target = part2;
72  }
73 }
const XML_Char * target
Definition: expat.h:268
G4int getA() const

Here is the call graph for this function:

Here is the caller graph for this function:

G4bool G4InteractionCase::twoNuclei ( ) const
inline

Definition at line 60 of file G4InteractionCase.hh.

60 { return inter_case == -2; }

Here is the caller graph for this function:

G4bool G4InteractionCase::valid ( ) const
inline

Definition at line 58 of file G4InteractionCase.hh.

58 { return inter_case != 0; }

Here is the caller graph for this function:


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