PandaRoot
BSEmcMCDepositProductionProcess Class Reference

Process to create BSEmcMCDeposits out of BSEmcMCPoints. More...

#include <BSEmcMCDepositProductionProcess.h>

Inheritance diagram for BSEmcMCDepositProductionProcess:
BSEmcSortMCTruthAlgo PndProcess BSEmcBarrelZDependentMCDepositProductionProcess

Public Member Functions

 BSEmcMCDepositProductionProcess ()
 
virtual ~BSEmcMCDepositProductionProcess ()
 
virtual void RequestDataContainer (PndContainerRegister *t_register)
 Pass the container register to the process, and get the processes container requirements. More...
 
virtual void GetDataContainer (PndContainerRegister *t_register)
 Pass the container register to the process, and set the processes container requirements. More...
 
virtual void SetupParameters (const PndParameterRegister *t_parameter)
 Fetch all parameters from the PndParameterRegister. More...
 
virtual void SetDetectorName (const std::string &t_detectorname)
 Set the Detector name. Important, as most EmcParameter need to know for which detector they need to be fetched (each Emc Subdetector has its own set of parameters) More...
 
virtual void Process ()
 The actual data transformation (digitizing, clustering, etc.) should be defined here. More...
 
void SetMCParName (const std::string &t_parName)
 
void SetPositionParName (const std::string &t_parName)
 
void SetVolume (BSEmcVolume *t_volume)
 
void SetTrackBranchName (const TString &t_branchname)
 
void SetMCPointBranchName (const TString &t_branchname)
 
void SetMCDepositBranchName (const TString &t_branchname)
 
- Public Member Functions inherited from PndProcess
 PndProcess ()
 
 PndProcess (const std::string &t_processname)
 
virtual ~PndProcess ()
 
const std::vector< std::string > & GetListOfRequiredParameters () const
 Get the List Of Required Parameters. More...
 
virtual void PreProcess ()
 PreProcess() is called before the actual Process() call in each event. More...
 
virtual void PostProcess ()
 Immediately after calling Process() PostProcess() is called for cleanup of internal process data, or if not needed, to end the time and memory increase measurement started by PreProcess() More...
 
virtual void TearDown ()
 Last actions at the end of the run. More...
 

Protected Member Functions

virtual Double_t GetEnergy (const BSEmcMCPoint *t_point) const
 
virtual Double_t GetTime (const BSEmcMCPoint *t_point) const
 
virtual Bool_t GetEntering (const BSEmcMCPoint *t_point) const
 
virtual Bool_t GetExiting (const BSEmcMCPoint *t_point) const
 
virtual FairMultiLinkedData GetTracks (const BSEmcMCPoint *t_point) const
 
virtual Int_t GetMCTrackID (const BSEmcMCPoint *t_point) const
 
virtual Bool_t SkipPoint (const BSEmcMCPoint *t_point) const
 
virtual void CreateDeposits (std::vector< BSEmcMCPoint *> t_points)
 
void Reset ()
 
Int_t FindMCIndex (const BSEmcMCPoint *t_point)
 
Int_t FindMCIndexIterative (const BSEmcMCPoint *t_point, Int_t t_mcIndex)
 
void SetClusterIdForPoint (BSEmcMCPoint *t_point)
 
void StoreDeposits ()
 
virtual void StoreDeposit (Int_t t_detId, Double_t t_time, std::vector< Int_t > &t_mctrackIds, const FairMultiLinkedData &t_entering, const FairMultiLinkedData &t_exiting)
 
 ClassDef (BSEmcMCDepositProductionProcess, 1)
 

Protected Attributes

std::string fMCParName {""}
 
std::string fPositionParName {""}
 
TString fTrackBranchname {""}
 
TString fMCPointBranchname {""}
 
TString fMCDepositBranchname {""}
 
PndContainerI< PndMCTrack > * fMCTrackArray {nullptr}
 
PndMutableContainerI< BSEmcMCPoint > * fPointArray {nullptr}
 
PndMutableContainerI< BSEmcMCDeposit > * fMCDepositArray {nullptr}
 
Double_t fEnergyThreshold {-1}
 
Double_t fCutMotherParticle {-1}
 
Double_t fCutSameTrack {-1}
 
BSEmcCrystalPositionParfPositionPar {nullptr}
 
BSEmcVolumefBoundaryVolume {nullptr}
 
std::map< Int_t, Float_t > fTrackEnergy {}
 
std::map< Int_t, Float_t > fTrackTime {}
 
std::map< Int_t, std::vector< Int_t > > fTrackMcTruth {}
 
std::map< Int_t, std::vector< Int_t > > fPointMatch {}
 
std::map< Int_t, FairMultiLinkedData > fTrackEntering {}
 
std::map< Int_t, FairMultiLinkedData > fTrackExiting {}
 
std::map< Int_t, const BSEmcMCPoint * > fLastPointForTrack {}
 
std::map< Int_t, std::map< Int_t, Double_t > > fShower {}
 
- Protected Attributes inherited from PndProcess
std::vector< std::string > fParameterList {}
 Parameter names required by this PndProcess. Needs to be populated in derived class. More...
 
std::string fDetectorName {""}
 Set Detector name this PndProcess transforms data for. Required for example by EMC Processes to fetch right parameters. More...
 
std::string fProcessName {"PndProcess"}
 Name of current PndProcess (for debugging) More...
 
TStopwatch fTimer {}
 Timer to monitor Process() time. More...
 
Double_t fTotalTime {0}
 Time taken by this Process' Process() More...
 
ProcInfo_t fProcInfo
 Helper to access cpu process Memory Info. More...
 
Long_t fLastMemSize
 

Detailed Description

Process to create BSEmcMCDeposits out of BSEmcMCPoints.

Based on PndEmcDepositProducer. Sums up all BSEmcMCPoints of a crystals are summed up and stored as BSEmcMCDeposit Additionally Tobias Stockmanns implemented algorithm to determine energy contributions from different entering tracks This process Will set the default BSEmcMCDeposit Container to be fMCDepositBranchname if set. Processes attached to the same task that follow this task will fetch fMCDepositBranchname if they themselves do not specify the requested MCDeposit-Branchname.

Author
S.Spataro
Tobias Stockmanns
Ben Salisbury salis.nosp@m.bury.nosp@m.@hisk.nosp@m.p.un.nosp@m.i-bon.nosp@m.n.de, HISKP Bonn
Date
2021-01

Definition at line 102 of file BSEmcMCDepositProductionProcess.h.

Constructor & Destructor Documentation

◆ BSEmcMCDepositProductionProcess()

BSEmcMCDepositProductionProcess::BSEmcMCDepositProductionProcess ( )

◆ ~BSEmcMCDepositProductionProcess()

virtual BSEmcMCDepositProductionProcess::~BSEmcMCDepositProductionProcess ( )
virtual

Member Function Documentation

◆ ClassDef()

BSEmcMCDepositProductionProcess::ClassDef ( BSEmcMCDepositProductionProcess  ,
 
)
protected

◆ CreateDeposits()

virtual void BSEmcMCDepositProductionProcess::CreateDeposits ( std::vector< BSEmcMCPoint *>  t_points)
protectedvirtual

◆ FindMCIndex()

Int_t BSEmcMCDepositProductionProcess::FindMCIndex ( const BSEmcMCPoint t_point)
protected

◆ FindMCIndexIterative()

Int_t BSEmcMCDepositProductionProcess::FindMCIndexIterative ( const BSEmcMCPoint t_point,
Int_t  t_mcIndex 
)
protected

◆ GetDataContainer()

virtual void BSEmcMCDepositProductionProcess::GetDataContainer ( PndContainerRegister )
virtual

Pass the container register to the process, and set the processes container requirements.

Parameters
t_register

Reimplemented from PndProcess.

◆ GetEnergy()

virtual Double_t BSEmcMCDepositProductionProcess::GetEnergy ( const BSEmcMCPoint t_point) const
protectedvirtual

◆ GetEntering()

virtual Bool_t BSEmcMCDepositProductionProcess::GetEntering ( const BSEmcMCPoint t_point) const
protectedvirtual

◆ GetExiting()

virtual Bool_t BSEmcMCDepositProductionProcess::GetExiting ( const BSEmcMCPoint t_point) const
protectedvirtual

◆ GetMCTrackID()

virtual Int_t BSEmcMCDepositProductionProcess::GetMCTrackID ( const BSEmcMCPoint t_point) const
protectedvirtual

◆ GetTime()

virtual Double_t BSEmcMCDepositProductionProcess::GetTime ( const BSEmcMCPoint t_point) const
protectedvirtual

◆ GetTracks()

virtual FairMultiLinkedData BSEmcMCDepositProductionProcess::GetTracks ( const BSEmcMCPoint t_point) const
protectedvirtual

◆ Process()

virtual void BSEmcMCDepositProductionProcess::Process ( )
virtual

The actual data transformation (digitizing, clustering, etc.) should be defined here.

Implements PndProcess.

◆ RequestDataContainer()

virtual void BSEmcMCDepositProductionProcess::RequestDataContainer ( PndContainerRegister )
virtual

Pass the container register to the process, and get the processes container requirements.

Parameters
t_register

Reimplemented from PndProcess.

◆ Reset()

void BSEmcMCDepositProductionProcess::Reset ( )
protected

◆ SetClusterIdForPoint()

void BSEmcMCDepositProductionProcess::SetClusterIdForPoint ( BSEmcMCPoint t_point)
protected

◆ SetDetectorName()

virtual void BSEmcMCDepositProductionProcess::SetDetectorName ( const std::string &  t_detectorname)
virtual

Set the Detector name. Important, as most EmcParameter need to know for which detector they need to be fetched (each Emc Subdetector has its own set of parameters)

Parameters
t_detectorname

Reimplemented from PndProcess.

◆ SetMCDepositBranchName()

void BSEmcMCDepositProductionProcess::SetMCDepositBranchName ( const TString &  t_branchname)
inline

◆ SetMCParName()

void BSEmcMCDepositProductionProcess::SetMCParName ( const std::string &  t_parName)
inline

Definition at line 111 of file BSEmcMCDepositProductionProcess.h.

◆ SetMCPointBranchName()

void BSEmcMCDepositProductionProcess::SetMCPointBranchName ( const TString &  t_branchname)
inline

Definition at line 116 of file BSEmcMCDepositProductionProcess.h.

◆ SetPositionParName()

void BSEmcMCDepositProductionProcess::SetPositionParName ( const std::string &  t_parName)
inline

Definition at line 112 of file BSEmcMCDepositProductionProcess.h.

◆ SetTrackBranchName()

void BSEmcMCDepositProductionProcess::SetTrackBranchName ( const TString &  t_branchname)
inline

Definition at line 115 of file BSEmcMCDepositProductionProcess.h.

◆ SetupParameters()

virtual void BSEmcMCDepositProductionProcess::SetupParameters ( const PndParameterRegister t_parameter)
virtual

Fetch all parameters from the PndParameterRegister.

Parameters
t_parameter

Implements PndProcess.

Reimplemented in BSEmcBarrelZDependentMCDepositProductionProcess.

◆ SetVolume()

void BSEmcMCDepositProductionProcess::SetVolume ( BSEmcVolume t_volume)
inline

Definition at line 113 of file BSEmcMCDepositProductionProcess.h.

◆ SkipPoint()

virtual Bool_t BSEmcMCDepositProductionProcess::SkipPoint ( const BSEmcMCPoint t_point) const
protectedvirtual

◆ StoreDeposit()

virtual void BSEmcMCDepositProductionProcess::StoreDeposit ( Int_t  t_detId,
Double_t  t_time,
std::vector< Int_t > &  t_mctrackIds,
const FairMultiLinkedData &  t_entering,
const FairMultiLinkedData &  t_exiting 
)
protectedvirtual

◆ StoreDeposits()

void BSEmcMCDepositProductionProcess::StoreDeposits ( )
protected

Member Data Documentation

◆ fBoundaryVolume

BSEmcVolume* BSEmcMCDepositProductionProcess::fBoundaryVolume {nullptr}
protected

Definition at line 151 of file BSEmcMCDepositProductionProcess.h.

◆ fCutMotherParticle

Double_t BSEmcMCDepositProductionProcess::fCutMotherParticle {-1}
protected

Definition at line 148 of file BSEmcMCDepositProductionProcess.h.

◆ fCutSameTrack

Double_t BSEmcMCDepositProductionProcess::fCutSameTrack {-1}
protected

Definition at line 149 of file BSEmcMCDepositProductionProcess.h.

◆ fEnergyThreshold

Double_t BSEmcMCDepositProductionProcess::fEnergyThreshold {-1}
protected

Definition at line 147 of file BSEmcMCDepositProductionProcess.h.

◆ fLastPointForTrack

std::map<Int_t, const BSEmcMCPoint *> BSEmcMCDepositProductionProcess::fLastPointForTrack {}
protected

Definition at line 159 of file BSEmcMCDepositProductionProcess.h.

◆ fMCDepositArray

PndMutableContainerI<BSEmcMCDeposit>* BSEmcMCDepositProductionProcess::fMCDepositArray {nullptr}
protected

Definition at line 146 of file BSEmcMCDepositProductionProcess.h.

◆ fMCDepositBranchname

TString BSEmcMCDepositProductionProcess::fMCDepositBranchname {""}
protected

Definition at line 143 of file BSEmcMCDepositProductionProcess.h.

◆ fMCParName

std::string BSEmcMCDepositProductionProcess::fMCParName {""}
protected

Definition at line 138 of file BSEmcMCDepositProductionProcess.h.

◆ fMCPointBranchname

TString BSEmcMCDepositProductionProcess::fMCPointBranchname {""}
protected

Definition at line 142 of file BSEmcMCDepositProductionProcess.h.

◆ fMCTrackArray

PndContainerI<PndMCTrack>* BSEmcMCDepositProductionProcess::fMCTrackArray {nullptr}
protected

Definition at line 144 of file BSEmcMCDepositProductionProcess.h.

◆ fPointArray

PndMutableContainerI<BSEmcMCPoint>* BSEmcMCDepositProductionProcess::fPointArray {nullptr}
protected

Definition at line 145 of file BSEmcMCDepositProductionProcess.h.

◆ fPointMatch

std::map<Int_t, std::vector<Int_t> > BSEmcMCDepositProductionProcess::fPointMatch {}
protected

Definition at line 156 of file BSEmcMCDepositProductionProcess.h.

◆ fPositionPar

BSEmcCrystalPositionPar* BSEmcMCDepositProductionProcess::fPositionPar {nullptr}
protected

Definition at line 150 of file BSEmcMCDepositProductionProcess.h.

◆ fPositionParName

std::string BSEmcMCDepositProductionProcess::fPositionParName {""}
protected

Definition at line 139 of file BSEmcMCDepositProductionProcess.h.

◆ fShower

std::map<Int_t, std::map<Int_t, Double_t> > BSEmcMCDepositProductionProcess::fShower {}
protected

Definition at line 160 of file BSEmcMCDepositProductionProcess.h.

◆ fTrackBranchname

TString BSEmcMCDepositProductionProcess::fTrackBranchname {""}
protected

Definition at line 141 of file BSEmcMCDepositProductionProcess.h.

◆ fTrackEnergy

std::map<Int_t, Float_t> BSEmcMCDepositProductionProcess::fTrackEnergy {}
protected

Definition at line 153 of file BSEmcMCDepositProductionProcess.h.

◆ fTrackEntering

std::map<Int_t, FairMultiLinkedData> BSEmcMCDepositProductionProcess::fTrackEntering {}
protected

Definition at line 157 of file BSEmcMCDepositProductionProcess.h.

◆ fTrackExiting

std::map<Int_t, FairMultiLinkedData> BSEmcMCDepositProductionProcess::fTrackExiting {}
protected

Definition at line 158 of file BSEmcMCDepositProductionProcess.h.

◆ fTrackMcTruth

std::map<Int_t, std::vector<Int_t> > BSEmcMCDepositProductionProcess::fTrackMcTruth {}
protected

Definition at line 155 of file BSEmcMCDepositProductionProcess.h.

◆ fTrackTime

std::map<Int_t, Float_t> BSEmcMCDepositProductionProcess::fTrackTime {}
protected

Definition at line 154 of file BSEmcMCDepositProductionProcess.h.


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