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.

00042 : bullet(0), target(0), inter_case(0) {}

G4InteractionCase::G4InteractionCase ( G4InuclParticle part1,
G4InuclParticle part2 
) [inline]

Definition at line 44 of file G4InteractionCase.hh.

References set().

00044                                                                     {
00045     set(part1, part2);
00046   }


Member Function Documentation

void G4InteractionCase::clear (  )  [inline]

Definition at line 50 of file G4InteractionCase.hh.

Referenced by set().

00050                {
00051     bullet = target = 0;
00052     inter_case = 0;
00053   }

G4int G4InteractionCase::code (  )  const [inline]

Definition at line 65 of file G4InteractionCase.hh.

Referenced by G4InuclCollider::collide(), and G4IntraNucleiCascader::newCascade().

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

G4InuclParticle* G4InteractionCase::getBullet (  )  const [inline]

Definition at line 55 of file G4InteractionCase.hh.

Referenced by G4InuclCollider::collide(), G4IntraNucleiCascader::finishCascade(), G4IntraNucleiCascader::generateCascade(), and G4IntraNucleiCascader::initialize().

00055 { return bullet; }

G4InuclParticle* G4InteractionCase::getTarget (  )  const [inline]

Definition at line 56 of file G4InteractionCase.hh.

Referenced by G4InuclCollider::collide(), G4IntraNucleiCascader::finishCascade(), G4IntraNucleiCascader::generateCascade(), and G4IntraNucleiCascader::initialize().

00056 { return target; }

G4bool G4InteractionCase::hadNucleus (  )  const [inline]

Definition at line 61 of file G4InteractionCase.hh.

Referenced by G4InuclCollider::collide(), and G4IntraNucleiCascader::setupCascade().

00061 { return inter_case == -1; }

G4int G4InteractionCase::hadrons (  )  const [inline]

Definition at line 62 of file G4InteractionCase.hh.

Referenced by G4ElementaryParticleCollider::collide().

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

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

Definition at line 39 of file G4InteractionCase.cc.

References clear(), and G4InuclNuclei::getA().

Referenced by G4InuclCollider::collide(), G4ElementaryParticleCollider::collide(), G4InteractionCase(), and G4IntraNucleiCascader::initialize().

00040                                                     {
00041   clear();              // Reset everything in case of failure
00042 
00043   // See which one of the two (or both) is a nucleus
00044   G4InuclNuclei* nucl1 = dynamic_cast<G4InuclNuclei*>(part1);
00045   G4InuclNuclei* nucl2 = dynamic_cast<G4InuclNuclei*>(part2);
00046 
00047   G4InuclElementaryParticle* had1 = dynamic_cast<G4InuclElementaryParticle*>(part1);
00048   G4InuclElementaryParticle* had2 = dynamic_cast<G4InuclElementaryParticle*>(part2);
00049 
00050   if (nucl1 && nucl2) {         // Nuclear collision, lighter is projectile
00051     inter_case = -2;
00052     if (nucl2->getA() >= nucl1->getA()) {
00053       bullet = part1;
00054       target = part2;
00055     } else {
00056       bullet = part2;
00057       target = part1;
00058     } 
00059   } else if (nucl1 || nucl2) {  // Hadron on nucleus, hadron projectile
00060     inter_case = -1;
00061     if (nucl1 && had2) {
00062       bullet = part2;
00063       target = part1;
00064     } else {
00065       bullet = part1;
00066       target = part2;
00067     }
00068   } else if (had1 && had2) {    // Hadron-hadron interaction, order irrelevant
00069     inter_case = had1->type() * had2->type();
00070     bullet = part1;
00071     target = part2;
00072   }
00073 }

G4bool G4InteractionCase::twoNuclei (  )  const [inline]

Definition at line 60 of file G4InteractionCase.hh.

00060 { return inter_case == -2; }

G4bool G4InteractionCase::valid (  )  const [inline]

Definition at line 58 of file G4InteractionCase.hh.

Referenced by G4InuclCollider::collide().

00058 { return inter_case != 0; }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:52:16 2013 for Geant4 by  doxygen 1.4.7