FairRoot
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FairGenericStack Class Referenceabstract

#include <FairGenericStack.h>

Inheritance diagram for FairGenericStack:
FairStack MyProjStack MyProjStack

Public Member Functions

 FairGenericStack ()
 
 FairGenericStack (Int_t size)
 
virtual ~FairGenericStack ()
 
virtual void PushTrack (Int_t toBeDone, Int_t parentID, Int_t pdgCode, Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vx, Double_t vy, Double_t vz, Double_t time, Double_t polx, Double_t poly, Double_t polz, TMCProcess proc, Int_t &ntr, Double_t weight, Int_t is, Int_t secondparentID)=0
 
virtual void FillTrackArray ()
 
virtual void UpdateTrackIndex (TRefArray *)
 
void SetDetArrayList (TRefArray *detArray)
 
virtual void FinishPrimary ()
 
virtual void Reset ()
 
virtual void Register ()
 
virtual TClonesArray * GetListOfParticles ()
 
virtual void SetParticleArray (__attribute__((unused)) TClonesArray *partArray)
 
virtual void SetParticleArray (__attribute__((unused)) TClonesArray *partArray, __attribute__((unused)) Int_t partFrom, __attribute__((unused)) Int_t partTo)
 
virtual FairGenericStackCloneStack () const
 
virtual void FastSimMoveParticleTo (Double_t xx, Double_t yy, Double_t zz, Double_t tt, Double_t px, Double_t py, Double_t pz, Double_t en)
 
virtual void FastSimStopParticle ()
 
virtual void FastSimPushSecondary (Int_t parentID, Int_t pdgCode, Double_t xx, Double_t yy, Double_t zz, Double_t tt, Double_t px, Double_t py, Double_t pz, Double_t en, Double_t polx, Double_t poly, Double_t polz, TMCProcess proc, Double_t weight, Int_t is)
 
virtual std::tuple< Int_t,
Int_t, Int_t > 
FastSimGetMovedIndex ()
 
virtual void FastSimClearMovedIndex ()
 
template<typename T >
void FastSimUpdateTrackIndex (T *point, Int_t &iTrack)
 

Protected Member Functions

 FairGenericStack (const FairGenericStack &)
 
FairGenericStackoperator= (const FairGenericStack &)
 
 ClassDef (FairGenericStack, 1)
 

Protected Attributes

FairLoggerfLogger
 
TRefArray * fDetList
 
TIterator * fDetIter
 
Int_t fVerbose
 
std::map< Int_t, Int_t > fFSTrackMap
 
std::map< Int_t, Int_t >::iterator fFSTrackIter
 
Int_t fFSMovedIndex
 
Int_t fFSFirstSecondary
 
Int_t fFSNofSecondaries
 

Detailed Description

Definition at line 33 of file FairGenericStack.h.

Constructor & Destructor Documentation

FairGenericStack::FairGenericStack ( )

Default constructor

Definition at line 24 of file FairGenericStack.cxx.

FairGenericStack::FairGenericStack ( Int_t  size)

Destructor with estimated array size

Definition at line 38 of file FairGenericStack.cxx.

FairGenericStack::~FairGenericStack ( )
virtual

Destructor

Definition at line 51 of file FairGenericStack.cxx.

FairGenericStack::FairGenericStack ( const FairGenericStack rhs)
protected

Copy constructor

Definition at line 53 of file FairGenericStack.cxx.

Member Function Documentation

FairGenericStack::ClassDef ( FairGenericStack  ,
 
)
protected
FairGenericStack * FairGenericStack::CloneStack ( ) const
virtual

Clone this object (used in MT mode only)

Reimplemented in FairStack, MyProjStack, and MyProjStack.

Definition at line 87 of file FairGenericStack.cxx.

virtual void FairGenericStack::FastSimClearMovedIndex ( )
inlinevirtual

Definition at line 156 of file FairGenericStack.h.

virtual std::tuple<Int_t, Int_t, Int_t> FairGenericStack::FastSimGetMovedIndex ( )
inlinevirtual

Allow FairFastSim the retrieval of moved particle position, p1 and p2 to get secondaries

Definition at line 152 of file FairGenericStack.h.

void FairGenericStack::FastSimMoveParticleTo ( Double_t  xx,
Double_t  yy,
Double_t  zz,
Double_t  tt,
Double_t  px,
Double_t  py,
Double_t  pz,
Double_t  en 
)
virtual

Fast simulation function to move particle to different position. In Geant3 it stops the current trajectory, and starts it again in the position given by the user. In Geant4 the FastSimulationModel with take over. Later, the points are reindexed and the thus created tracks are not stored in the output.

Parameters
xx,yy,zznew position of the particle
ttnew proper time of the particle
px,py,pznew momentum of the particle
ennew energy of the particle

Definition at line 93 of file FairGenericStack.cxx.

void FairGenericStack::FastSimPushSecondary ( Int_t  parentID,
Int_t  pdgCode,
Double_t  xx,
Double_t  yy,
Double_t  zz,
Double_t  tt,
Double_t  px,
Double_t  py,
Double_t  pz,
Double_t  en,
Double_t  polx,
Double_t  poly,
Double_t  polz,
TMCProcess  proc,
Double_t  weight,
Int_t  is 
)
virtual

Fast simulation function to generate secondaries.

Parameters
xx,yy,zzposition of the particle
ttproper time of the particle
px,py,pzmomentum of the particle
enenergy of the particle

Definition at line 150 of file FairGenericStack.cxx.

void FairGenericStack::FastSimStopParticle ( )
virtual

Fast simulation function to stop original particle.

Definition at line 142 of file FairGenericStack.cxx.

template<typename T >
void FairGenericStack::FastSimUpdateTrackIndex ( T *  point,
Int_t &  iTrack 
)

Definition at line 195 of file FairGenericStack.h.

virtual void FairGenericStack::FillTrackArray ( )
inlinevirtual

Fill the MCTrack output array, applying filter criteria

Reimplemented in FairStack, MyProjStack, and MyProjStack.

Definition at line 83 of file FairGenericStack.h.

virtual void FairGenericStack::FinishPrimary ( )
inlinevirtual

Allow a stack to perform a clean-up after a primary particle is finished

Definition at line 92 of file FairGenericStack.h.

virtual TClonesArray* FairGenericStack::GetListOfParticles ( )
inlinevirtual

Reimplemented in FairStack, MyProjStack, and MyProjStack.

Definition at line 100 of file FairGenericStack.h.

FairGenericStack & FairGenericStack::operator= ( const FairGenericStack rhs)
protected

Assignment operator

Definition at line 61 of file FairGenericStack.cxx.

virtual void FairGenericStack::PushTrack ( Int_t  toBeDone,
Int_t  parentID,
Int_t  pdgCode,
Double_t  px,
Double_t  py,
Double_t  pz,
Double_t  e,
Double_t  vx,
Double_t  vy,
Double_t  vz,
Double_t  time,
Double_t  polx,
Double_t  poly,
Double_t  polz,
TMCProcess  proc,
Int_t &  ntr,
Double_t  weight,
Int_t  is,
Int_t  secondparentID 
)
pure virtual

Virtual method PushTrack. Add a TParticle to the stack. This function has an extra argument wrt to the function defined in the base class.

Parameters
toBeDoneFlag for tracking
parentIDIndex of mother particle
pdgCodeParticle type (PDG encoding)
px,py,pzMomentum components at start vertex [GeV]
eTotal energy at start vertex [GeV]
vx,vy,vzCoordinates of start vertex [cm]
timeStart time of track [s]
polx,poly,polzPolarisation vector
procProduction mechanism (VMC encoding)
ntrTrack number (filled by the stack)
weightParticle weight
isGeneration status code (whatever that means)
secondparentIDused fot the index of mother of primery in the list

Implemented in FairStack, MyProjStack, and MyProjStack.

virtual void FairGenericStack::Register ( )
inlinevirtual

Register the MCTrack array to the Root Manager

Reimplemented in FairStack, MyProjStack, and MyProjStack.

Definition at line 98 of file FairGenericStack.h.

virtual void FairGenericStack::Reset ( )
inlinevirtual

Resets arrays and stack and deletes particles and tracks

Reimplemented in FairStack, MyProjStack, and MyProjStack.

Definition at line 95 of file FairGenericStack.h.

void FairGenericStack::SetDetArrayList ( TRefArray *  detArray)

Set the list of detectors to be used for filltering the stack

Definition at line 79 of file FairGenericStack.cxx.

virtual void FairGenericStack::SetParticleArray ( __attribute__((unused)) TClonesArray *  partArray)
inlinevirtual

Definition at line 101 of file FairGenericStack.h.

virtual void FairGenericStack::SetParticleArray ( __attribute__((unused)) TClonesArray *  partArray,
__attribute__((unused)) Int_t  partFrom,
__attribute__((unused)) Int_t  partTo 
)
inlinevirtual

Definition at line 102 of file FairGenericStack.h.

virtual void FairGenericStack::UpdateTrackIndex ( TRefArray *  )
inlinevirtual

Update the track index in the MCTracks and MCPoints

Reimplemented in FairStack, MyProjStack, and MyProjStack.

Definition at line 86 of file FairGenericStack.h.

Member Data Documentation

TIterator* FairGenericStack::fDetIter
protected

Iterator for the detector list

Definition at line 179 of file FairGenericStack.h.

TRefArray* FairGenericStack::fDetList
protected

List of detectors registering hits in the simulation

Definition at line 176 of file FairGenericStack.h.

Int_t FairGenericStack::fFSFirstSecondary
protected

Definition at line 188 of file FairGenericStack.h.

Int_t FairGenericStack::fFSMovedIndex
protected

Definition at line 187 of file FairGenericStack.h.

Int_t FairGenericStack::fFSNofSecondaries
protected

Definition at line 189 of file FairGenericStack.h.

std::map<Int_t, Int_t>::iterator FairGenericStack::fFSTrackIter
protected

Definition at line 186 of file FairGenericStack.h.

std::map<Int_t, Int_t> FairGenericStack::fFSTrackMap
protected

FastSimulation: STL map from new track index to original track index

Definition at line 185 of file FairGenericStack.h.

FairLogger* FairGenericStack::fLogger
protected

Fair Logger

Definition at line 173 of file FairGenericStack.h.

Int_t FairGenericStack::fVerbose
protected

Verbosity level

Definition at line 182 of file FairGenericStack.h.


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