CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
NuclearInteractionFTFSimulator Class Reference

#include <NuclearInteractionFTFSimulator.h>

Inheritance diagram for NuclearInteractionFTFSimulator:
MaterialEffectsSimulator

Public Member Functions

 NuclearInteractionFTFSimulator (unsigned int distAlgo, double distCut, double elimit, double eth)
 Constructor. More...
 
 ~NuclearInteractionFTFSimulator ()
 Default Destructor. More...
 
- Public Member Functions inherited from MaterialEffectsSimulator
RHEP_const_iter beginDaughters () const
 Returns const iterator to the beginning of the daughters list. More...
 
int closestDaughterId ()
 The id of the closest charged daughter (filled for nuclear interactions only) More...
 
double eMass () const
 Electron mass in GeV/c2. More...
 
RHEP_const_iter endDaughters () const
 Returns const iterator to the end of the daughters list. More...
 
double excitE () const
 Mean excitation energy (in GeV) More...
 
 MaterialEffectsSimulator (double A=28.0855, double Z=14.0000, double density=2.329, double radLen=9.360)
 
unsigned nDaughters () const
 Returns the number of daughters. More...
 
XYZVector orthogonal (const XYZVector &) const
 A vector orthogonal to another one (because it's not in XYZTLorentzVector) More...
 
double radLenIncm () const
 One radiation length in cm. More...
 
double rho () const
 Density in g/cm3. More...
 
virtual void save ()
 Used by NuclearInteractionSimulator to save last sampled event. More...
 
void setNormalVector (const GlobalVector &normal)
 Sets the vector normal to the surface traversed. More...
 
double theA () const
 A. More...
 
double theZ () const
 Z. More...
 
void updateState (ParticlePropagator &myTrack, double radlen, RandomEngineAndDistribution const *)
 Compute the material effect (calls the sub class) More...
 
virtual ~MaterialEffectsSimulator ()
 

Private Member Functions

void compute (ParticlePropagator &Particle, RandomEngineAndDistribution const *)
 Generate a nuclear interaction according to the probability that it happens. More...
 
double distanceToPrimary (const RawParticle &Particle, const RawParticle &aDaughter) const
 
void saveDaughter (ParticlePropagator &Particle, const G4LorentzVector &lv, int pdgid)
 

Private Attributes

G4LorentzVector curr4Mom
 
int currIdx
 
const G4ParticleDefinition * currParticle
 
G4Track * currTrack
 
double distMin
 
G4Step * dummyStep
 
size_t index
 
double intLengthElastic
 
double intLengthInelastic
 
G4Nucleus targetNucleus
 
G4CascadeInterface * theBertiniCascade
 
double theBertiniLimit
 
G4ThreeVector theBoost
 
G4GeneratorPrecompoundInterface * theCascade
 
G4DiffuseElastic * theDiffuseElastic
 
unsigned int theDistAlgo
 
double theDistCut
 
double theEnergyLimit
 
G4TheoFSGenerator * theHadronicModel
 
G4LundStringFragmentation * theLund
 
G4HadProjectile theProjectile
 
G4ExcitedStringDecay * theStringDecay
 
G4FTFModel * theStringModel
 
G4PhysicsLogVector * vect
 
G4ThreeVector vectProj
 

Static Private Attributes

static const G4ParticleDefinition * theG4Hadron [numHadrons] = {0}
 
static int theId [numHadrons] = {0}
 

Additional Inherited Members

- Public Types inherited from MaterialEffectsSimulator
typedef std::vector
< RawParticle >
::const_iterator 
RHEP_const_iter
 
- Protected Attributes inherited from MaterialEffectsSimulator
std::vector< RawParticle_theUpdatedState
 
double A
 
double density
 
double radLen
 
double radLengths
 
int theClosestChargedDaughterId
 
GlobalVector theNormalVector
 
double Z
 

Detailed Description

Definition at line 40 of file NuclearInteractionFTFSimulator.h.

Constructor & Destructor Documentation

NuclearInteractionFTFSimulator::NuclearInteractionFTFSimulator ( unsigned int  distAlgo,
double  distCut,
double  elimit,
double  eth 
)

Constructor.

Definition at line 153 of file NuclearInteractionFTFSimulator.cc.

NuclearInteractionFTFSimulator::~NuclearInteractionFTFSimulator ( )

Default Destructor.

Definition at line 245 of file NuclearInteractionFTFSimulator.cc.

Member Function Documentation

void NuclearInteractionFTFSimulator::compute ( ParticlePropagator Particle,
RandomEngineAndDistribution const *  random 
)
privatevirtual

Generate a nuclear interaction according to the probability that it happens.

Implements MaterialEffectsSimulator.

Definition at line 253 of file NuclearInteractionFTFSimulator.cc.

double NuclearInteractionFTFSimulator::distanceToPrimary ( const RawParticle Particle,
const RawParticle aDaughter 
) const
private

Definition at line 437 of file NuclearInteractionFTFSimulator.cc.

void NuclearInteractionFTFSimulator::saveDaughter ( ParticlePropagator Particle,
const G4LorentzVector &  lv,
int  pdgid 
)
private

Definition at line 418 of file NuclearInteractionFTFSimulator.cc.

Member Data Documentation

G4LorentzVector NuclearInteractionFTFSimulator::curr4Mom
private

Definition at line 80 of file NuclearInteractionFTFSimulator.h.

int NuclearInteractionFTFSimulator::currIdx
private

Definition at line 93 of file NuclearInteractionFTFSimulator.h.

const G4ParticleDefinition* NuclearInteractionFTFSimulator::currParticle
private

Definition at line 76 of file NuclearInteractionFTFSimulator.h.

G4Track* NuclearInteractionFTFSimulator::currTrack
private

Definition at line 75 of file NuclearInteractionFTFSimulator.h.

double NuclearInteractionFTFSimulator::distMin
private

Definition at line 88 of file NuclearInteractionFTFSimulator.h.

G4Step* NuclearInteractionFTFSimulator::dummyStep
private

Definition at line 74 of file NuclearInteractionFTFSimulator.h.

size_t NuclearInteractionFTFSimulator::index
private

Definition at line 94 of file NuclearInteractionFTFSimulator.h.

double NuclearInteractionFTFSimulator::intLengthElastic
private

Definition at line 90 of file NuclearInteractionFTFSimulator.h.

double NuclearInteractionFTFSimulator::intLengthInelastic
private

Definition at line 91 of file NuclearInteractionFTFSimulator.h.

G4Nucleus NuclearInteractionFTFSimulator::targetNucleus
private

Definition at line 78 of file NuclearInteractionFTFSimulator.h.

G4CascadeInterface* NuclearInteractionFTFSimulator::theBertiniCascade
private

Definition at line 71 of file NuclearInteractionFTFSimulator.h.

double NuclearInteractionFTFSimulator::theBertiniLimit
private

Definition at line 84 of file NuclearInteractionFTFSimulator.h.

G4ThreeVector NuclearInteractionFTFSimulator::theBoost
private

Definition at line 82 of file NuclearInteractionFTFSimulator.h.

G4GeneratorPrecompoundInterface* NuclearInteractionFTFSimulator::theCascade
private

Definition at line 69 of file NuclearInteractionFTFSimulator.h.

G4DiffuseElastic* NuclearInteractionFTFSimulator::theDiffuseElastic
private

Definition at line 72 of file NuclearInteractionFTFSimulator.h.

unsigned int NuclearInteractionFTFSimulator::theDistAlgo
private

Definition at line 95 of file NuclearInteractionFTFSimulator.h.

double NuclearInteractionFTFSimulator::theDistCut
private

Definition at line 87 of file NuclearInteractionFTFSimulator.h.

double NuclearInteractionFTFSimulator::theEnergyLimit
private

Definition at line 85 of file NuclearInteractionFTFSimulator.h.

const G4ParticleDefinition * NuclearInteractionFTFSimulator::theG4Hadron = {0}
staticprivate

Definition at line 61 of file NuclearInteractionFTFSimulator.h.

G4TheoFSGenerator* NuclearInteractionFTFSimulator::theHadronicModel
private

Definition at line 65 of file NuclearInteractionFTFSimulator.h.

int NuclearInteractionFTFSimulator::theId = {0}
staticprivate

Definition at line 62 of file NuclearInteractionFTFSimulator.h.

G4LundStringFragmentation* NuclearInteractionFTFSimulator::theLund
private

Definition at line 68 of file NuclearInteractionFTFSimulator.h.

G4HadProjectile NuclearInteractionFTFSimulator::theProjectile
private

Definition at line 79 of file NuclearInteractionFTFSimulator.h.

G4ExcitedStringDecay* NuclearInteractionFTFSimulator::theStringDecay
private

Definition at line 67 of file NuclearInteractionFTFSimulator.h.

G4FTFModel* NuclearInteractionFTFSimulator::theStringModel
private

Definition at line 66 of file NuclearInteractionFTFSimulator.h.

G4PhysicsLogVector* NuclearInteractionFTFSimulator::vect
private

Definition at line 63 of file NuclearInteractionFTFSimulator.h.

G4ThreeVector NuclearInteractionFTFSimulator::vectProj
private

Definition at line 81 of file NuclearInteractionFTFSimulator.h.