CbmRoot
Loading...
Searching...
No Matches
TimeSliceReader Class Reference

A reader of time slice for CA tracker. More...

#include <CbmCaTimeSliceReader.h>

Collaboration diagram for TimeSliceReader:
[legend]

Public Member Functions

 TimeSliceReader ()=default
 Constructor from parameters.
 
 TimeSliceReader (const TimeSliceReader &)=delete
 Copy constructor.
 
 TimeSliceReader (TimeSliceReader &&)=delete
 Move constructor.
 
 ~TimeSliceReader ()=default
 Destructor.
 
TimeSliceReaderoperator= (const TimeSliceReader &)=delete
 Copy assignment operator.
 
TimeSliceReaderoperator= (TimeSliceReader &&)=delete
 Move assignment operator.
 
void Clear ()
 Clears class content.
 
const auto & GetHitFirstIndexDet () const
 Gets reference to container of first hit indexes in a detector subsystem.
 
int GetNofHits (ca::EDetectorID iDet) const
 Gets number of hits stored for a given detector.
 
ECbmCaTrackingMode GetTrackingMode () const
 Gets CBM tracking mode.
 
bool InitRun ()
 Run initializer function.
 
void ReadEvent (CbmEvent *pEvent=nullptr)
 Reads time slice.
 
void RegisterQaHitContainer (ca::Vector< cbm::algo::ca::McHitInfo > &vQaHits)
 Registers hit debug info container.
 
void RegisterHitIndexContainer (ca::Vector< CbmL1HitId > &vHitIds)
 Registers hit index container.
 
void RegisterParameters (std::shared_ptr< const ca::Parameters< double > > &pParameters)
 Registers CA parameters object.
 
void RegisterIODataManager (std::shared_ptr< ca::DataManager > &ioDataManager)
 Registers the CA IO data manager instance.
 
void RegisterTracksContainer (ca::Vector< CbmL1Track > &vTracks)
 Register the reconstructed tracks container.
 
void SetDetector (ca::EDetectorID detID, bool flag=true)
 Sets used detector subsystems.
 
void SetTrackingMode (ECbmCaTrackingMode mode)
 Sets the tracking mode.
 
void SetSortQaHits (bool doSortQaHits)
 Sets flag to additionally sort QA hits by stations.
 

Private Member Functions

void CheckInit () const
 Check class initialization.
 
void ReadHits ()
 Reads hits.
 
void ReadRecoTracks ()
 Reads reconstructed tracks.
 
template<ca::EDetectorID DetID>
int ReadHitsForDetector ()
 Reads hits for a given detector subsystem.
 
void SortQaHits ()
 Sorts QA hit objects by stations.
 
void StoreHitRecord (const tools::HitRecord &hitRecord)
 Saves hit to data structures.
 

Private Attributes

CbmEventfpEvent = nullptr
 Pointer to the event object.
 
DetIdArr_t< TClonesArray * > fvpBrHits = {{nullptr}}
 Input branch for hits.
 
TClonesArray * fpBrRecoTracks = nullptr
 Input branch for reconstructed tracks ("GlobalTrack", "StsTrack")
 
TClonesArray * fpBrStsTracks = nullptr
 Input branch for reconstructed STS tracks ("StsTrack")
 
TClonesArray * fpBrMuchTracks = nullptr
 Input branch for reconstructed MuCh tracks ("MuchTrack")
 
TClonesArray * fpBrTrdTracks = nullptr
 Input branch for reconstructed TRD tracks ("TrdTrack")
 
TClonesArray * fpBrTofTracks = nullptr
 Input branch for reconstructed TOF tracks ("TofTrack")
 
ca::Vector< CbmL1HitId > * fpvHitIds = nullptr
 Pointer to array of hit index objects.
 
ca::Vector< cbm::algo::ca::McHitInfo > * fpvQaHits = nullptr
 Pointer to array of debug hits.
 
ca::Vector< CbmL1Track > * fpvTracks = nullptr
 Pointer to array of reconstructed tracks.
 
std::shared_ptr< ca::DataManagerfpIODataManager = nullptr
 Pointer to input data manager.
 
std::shared_ptr< const ca::Parameters< double > > fpParameters = nullptr
 Pointer to tracking parameters object.
 
DetIdArr_t< std::unordered_map< int, int > > fvmHitExtToIntIndexMap
 Hit index map ext -> int.
 
DetIdArr_t< int > fvNofHitsTotal = {{0}}
 Total hit number in detector.
 
DetIdArr_t< int > fvNofHitsUsed = {{0}}
 Number of used hits in detector.
 
DetIdArr_t< bool > fvbUseDet = {{false}}
 Flag: is detector subsystem used.
 
ECbmCaTrackingMode fTrackingMode = ECbmCaTrackingMode::kSTS
 Tracking mode.
 
bool fbSortQaHits = false
 Flag, if the QA hits must be sorted after reading.
 
int fNofHits = 0
 Stored number of hits.
 
int fNofHitKeys = 0
 Recorded number of hit keys.
 
int fFirstHitKey = 0
 First index of hit key for the detector subsystem.
 
std::array< int, constants::size::MaxNdetectors+1 > fvHitFirstIndexDet = {{0}}
 First hit index in detector.
 

Detailed Description

A reader of time slice for CA tracker.

The class reads reconstructed hits and reconstructed tracks (optionally) and fills the CA tracking internal data structures.

Definition at line 44 of file CbmCaTimeSliceReader.h.

Constructor & Destructor Documentation

◆ TimeSliceReader() [1/3]

cbm::ca::TimeSliceReader::TimeSliceReader ( )
default

Constructor from parameters.

Parameters
modeTracking mode

◆ TimeSliceReader() [2/3]

cbm::ca::TimeSliceReader::TimeSliceReader ( const TimeSliceReader & )
delete

Copy constructor.

◆ TimeSliceReader() [3/3]

cbm::ca::TimeSliceReader::TimeSliceReader ( TimeSliceReader && )
delete

Move constructor.

◆ ~TimeSliceReader()

cbm::ca::TimeSliceReader::~TimeSliceReader ( )
default

Destructor.

Member Function Documentation

◆ CheckInit()

void TimeSliceReader::CheckInit ( ) const
private

Check class initialization.

Note
The function throws std::logic_error, if initialization is incomplete

Definition at line 73 of file CbmCaTimeSliceReader.cxx.

◆ Clear()

void TimeSliceReader::Clear ( )

Clears class content.

Definition at line 41 of file CbmCaTimeSliceReader.cxx.

◆ GetHitFirstIndexDet()

const auto & cbm::ca::TimeSliceReader::GetHitFirstIndexDet ( ) const
inline

Gets reference to container of first hit indexes in a detector subsystem.

Returns
Ref. to the container

Definition at line 70 of file CbmCaTimeSliceReader.h.

◆ GetNofHits()

int cbm::ca::TimeSliceReader::GetNofHits ( ca::EDetectorID iDet) const
inline

Gets number of hits stored for a given detector.

Parameters
iDetDetector ID
Returns
Number of hits

Definition at line 75 of file CbmCaTimeSliceReader.h.

◆ GetTrackingMode()

ECbmCaTrackingMode cbm::ca::TimeSliceReader::GetTrackingMode ( ) const
inline

Gets CBM tracking mode.

Definition at line 81 of file CbmCaTimeSliceReader.h.

◆ InitRun()

bool TimeSliceReader::InitRun ( )

Run initializer function.

Returns
Success flag

Initializes data branches and provides necessary checks in the beginning of the run

Definition at line 121 of file CbmCaTimeSliceReader.cxx.

◆ operator=() [1/2]

TimeSliceReader & cbm::ca::TimeSliceReader::operator= ( const TimeSliceReader & )
delete

Copy assignment operator.

◆ operator=() [2/2]

TimeSliceReader & cbm::ca::TimeSliceReader::operator= ( TimeSliceReader && )
delete

Move assignment operator.

◆ ReadEvent()

void TimeSliceReader::ReadEvent ( CbmEvent * pEvent = nullptr)

Reads time slice.

Parameters
pEventA pointer to CbmEvent

Reads hits and tracks (optionally) from time slice

Definition at line 210 of file CbmCaTimeSliceReader.cxx.

◆ ReadHits()

void TimeSliceReader::ReadHits ( )
private

Reads hits.

Definition at line 491 of file CbmCaTimeSliceReader.cxx.

◆ ReadHitsForDetector()

template<ca::EDetectorID DetID>
int cbm::ca::TimeSliceReader::ReadHitsForDetector ( )
private

Reads hits for a given detector subsystem.

Template Parameters
DetectorID
Returns
Number of stored hits
Note
The function modifies fNofHitKey and fFirstHitKey counters

Definition at line 375 of file CbmCaTimeSliceReader.cxx.

◆ ReadRecoTracks()

void TimeSliceReader::ReadRecoTracks ( )
private

Reads reconstructed tracks.

Definition at line 222 of file CbmCaTimeSliceReader.cxx.

◆ RegisterHitIndexContainer()

void cbm::ca::TimeSliceReader::RegisterHitIndexContainer ( ca::Vector< CbmL1HitId > & vHitIds)
inline

Registers hit index container.

Parameters
vHitIdsReference to hits indexes container
Note
If no container is registered, all related routines are omitted

Definition at line 103 of file CbmCaTimeSliceReader.h.

◆ RegisterIODataManager()

void TimeSliceReader::RegisterIODataManager ( std::shared_ptr< ca::DataManager > & ioDataManager)

Registers the CA IO data manager instance.

Parameters
pIODataManagerShared pointer to the IO data manager instance
Note
If no container is registered, all related routines are omitted

Definition at line 340 of file CbmCaTimeSliceReader.cxx.

◆ RegisterParameters()

void cbm::ca::TimeSliceReader::RegisterParameters ( std::shared_ptr< const ca::Parameters< double > > & pParameters)
inline

Registers CA parameters object.

Parameters
pParametersA shared pointer to the parameters object

Definition at line 107 of file CbmCaTimeSliceReader.h.

◆ RegisterQaHitContainer()

void cbm::ca::TimeSliceReader::RegisterQaHitContainer ( ca::Vector< cbm::algo::ca::McHitInfo > & vQaHits)
inline

Registers hit debug info container.

Parameters
vQaHitsReference to Qa hit container
Note
If no container is registered, all related routines are omitted

Definition at line 98 of file CbmCaTimeSliceReader.h.

◆ RegisterTracksContainer()

void cbm::ca::TimeSliceReader::RegisterTracksContainer ( ca::Vector< CbmL1Track > & vTracks)
inline

Register the reconstructed tracks container.

Parameters
vTracksReference to reconstructed tracks container
Note
If no container is registered, all related routines are omitted

Definition at line 117 of file CbmCaTimeSliceReader.h.

◆ SetDetector()

void cbm::ca::TimeSliceReader::SetDetector ( ca::EDetectorID detID,
bool flag = true )
inline

Sets used detector subsystems.

Parameters
detIDId of detector
flagFlag: true - detector is used
Note
Should be called before this->Init()

Definition at line 123 of file CbmCaTimeSliceReader.h.

◆ SetSortQaHits()

void cbm::ca::TimeSliceReader::SetSortQaHits ( bool doSortQaHits)
inline

Sets flag to additionally sort QA hits by stations.

Parameters
doSortQaHitstrue: hits are sorted

Definition at line 131 of file CbmCaTimeSliceReader.h.

◆ SetTrackingMode()

void cbm::ca::TimeSliceReader::SetTrackingMode ( ECbmCaTrackingMode mode)
inline

Sets the tracking mode.

Parameters
modeTracking mode (from ECbmTrackingMode)

Definition at line 127 of file CbmCaTimeSliceReader.h.

◆ SortQaHits()

void TimeSliceReader::SortQaHits ( )
private

Sorts QA hit objects by stations.

Definition at line 348 of file CbmCaTimeSliceReader.cxx.

◆ StoreHitRecord()

void TimeSliceReader::StoreHitRecord ( const tools::HitRecord & hitRecord)
private

Saves hit to data structures.

Parameters
hitRecordFilled hit record

Stores recorded hit information into registered hit containers

Definition at line 561 of file CbmCaTimeSliceReader.cxx.

Member Data Documentation

◆ fbSortQaHits

bool cbm::ca::TimeSliceReader::fbSortQaHits = false
private

Flag, if the QA hits must be sorted after reading.

Definition at line 191 of file CbmCaTimeSliceReader.h.

◆ fFirstHitKey

int cbm::ca::TimeSliceReader::fFirstHitKey = 0
private

First index of hit key for the detector subsystem.

Definition at line 196 of file CbmCaTimeSliceReader.h.

◆ fNofHitKeys

int cbm::ca::TimeSliceReader::fNofHitKeys = 0
private

Recorded number of hit keys.

Definition at line 195 of file CbmCaTimeSliceReader.h.

◆ fNofHits

int cbm::ca::TimeSliceReader::fNofHits = 0
private

Stored number of hits.

Definition at line 194 of file CbmCaTimeSliceReader.h.

◆ fpBrMuchTracks

TClonesArray* cbm::ca::TimeSliceReader::fpBrMuchTracks = nullptr
private

Input branch for reconstructed MuCh tracks ("MuchTrack")

Definition at line 171 of file CbmCaTimeSliceReader.h.

◆ fpBrRecoTracks

TClonesArray* cbm::ca::TimeSliceReader::fpBrRecoTracks = nullptr
private

Input branch for reconstructed tracks ("GlobalTrack", "StsTrack")

Definition at line 169 of file CbmCaTimeSliceReader.h.

◆ fpBrStsTracks

TClonesArray* cbm::ca::TimeSliceReader::fpBrStsTracks = nullptr
private

Input branch for reconstructed STS tracks ("StsTrack")

Definition at line 170 of file CbmCaTimeSliceReader.h.

◆ fpBrTofTracks

TClonesArray* cbm::ca::TimeSliceReader::fpBrTofTracks = nullptr
private

Input branch for reconstructed TOF tracks ("TofTrack")

Definition at line 173 of file CbmCaTimeSliceReader.h.

◆ fpBrTrdTracks

TClonesArray* cbm::ca::TimeSliceReader::fpBrTrdTracks = nullptr
private

Input branch for reconstructed TRD tracks ("TrdTrack")

Definition at line 172 of file CbmCaTimeSliceReader.h.

◆ fpEvent

CbmEvent* cbm::ca::TimeSliceReader::fpEvent = nullptr
private

Pointer to the event object.

Definition at line 162 of file CbmCaTimeSliceReader.h.

◆ fpIODataManager

std::shared_ptr<ca::DataManager> cbm::ca::TimeSliceReader::fpIODataManager = nullptr
private

Pointer to input data manager.

Definition at line 179 of file CbmCaTimeSliceReader.h.

◆ fpParameters

std::shared_ptr<const ca::Parameters<double> > cbm::ca::TimeSliceReader::fpParameters = nullptr
private

Pointer to tracking parameters object.

Definition at line 180 of file CbmCaTimeSliceReader.h.

◆ fpvHitIds

ca::Vector<CbmL1HitId>* cbm::ca::TimeSliceReader::fpvHitIds = nullptr
private

Pointer to array of hit index objects.

Definition at line 176 of file CbmCaTimeSliceReader.h.

◆ fpvQaHits

ca::Vector<cbm::algo::ca::McHitInfo>* cbm::ca::TimeSliceReader::fpvQaHits = nullptr
private

Pointer to array of debug hits.

Definition at line 177 of file CbmCaTimeSliceReader.h.

◆ fpvTracks

ca::Vector<CbmL1Track>* cbm::ca::TimeSliceReader::fpvTracks = nullptr
private

Pointer to array of reconstructed tracks.

Definition at line 178 of file CbmCaTimeSliceReader.h.

◆ fTrackingMode

ECbmCaTrackingMode cbm::ca::TimeSliceReader::fTrackingMode = ECbmCaTrackingMode::kSTS
private

Tracking mode.

Definition at line 189 of file CbmCaTimeSliceReader.h.

◆ fvbUseDet

DetIdArr_t<bool> cbm::ca::TimeSliceReader::fvbUseDet = {{false}}
private

Flag: is detector subsystem used.

Definition at line 187 of file CbmCaTimeSliceReader.h.

◆ fvHitFirstIndexDet

std::array<int, constants::size::MaxNdetectors + 1> cbm::ca::TimeSliceReader::fvHitFirstIndexDet = {{0}}
private

First hit index in detector.

Definition at line 198 of file CbmCaTimeSliceReader.h.

◆ fvmHitExtToIntIndexMap

DetIdArr_t<std::unordered_map<int, int> > cbm::ca::TimeSliceReader::fvmHitExtToIntIndexMap
private

Hit index map ext -> int.

Definition at line 183 of file CbmCaTimeSliceReader.h.

◆ fvNofHitsTotal

DetIdArr_t<int> cbm::ca::TimeSliceReader::fvNofHitsTotal = {{0}}
private

Total hit number in detector.

Definition at line 185 of file CbmCaTimeSliceReader.h.

◆ fvNofHitsUsed

DetIdArr_t<int> cbm::ca::TimeSliceReader::fvNofHitsUsed = {{0}}
private

Number of used hits in detector.

Definition at line 186 of file CbmCaTimeSliceReader.h.

◆ fvpBrHits

DetIdArr_t<TClonesArray*> cbm::ca::TimeSliceReader::fvpBrHits = {{nullptr}}
private

Input branch for hits.

Definition at line 163 of file CbmCaTimeSliceReader.h.


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