|
CbmRoot
|
A reader of time slice for CA tracker. More...
#include <CbmCaTimeSliceReader.h>
Public Member Functions | |
| TimeSliceReader ()=default | |
| Constructor from parameters. | |
| ~TimeSliceReader ()=default | |
| Destructor. | |
| TimeSliceReader (const TimeSliceReader &)=delete | |
| Copy constructor. | |
| TimeSliceReader (TimeSliceReader &&)=delete | |
| Move constructor. | |
| TimeSliceReader & | operator= (const TimeSliceReader &)=delete |
| Copy assignment operator. | |
| TimeSliceReader & | operator= (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 | |
| CbmEvent * | fpEvent = 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::DataManager > | fpIODataManager = 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. | |
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.
|
default |
Constructor from parameters.
| mode | Tracking mode |
Referenced by operator=(), operator=(), TimeSliceReader(), and TimeSliceReader().
|
default |
Destructor.
|
delete |
Copy constructor.
References TimeSliceReader().
|
delete |
Move constructor.
References TimeSliceReader().
|
private |
Check class initialization.
Definition at line 73 of file CbmCaTimeSliceReader.cxx.
References cbm::algo::ca::END, fpBrMuchTracks, fpBrRecoTracks, fpBrStsTracks, fpBrTofTracks, fpBrTrdTracks, fpParameters, fpvHitIds, fpvTracks, fTrackingMode, fvbUseDet, fvpBrHits, cbm::ca::kDetName, kMCBM, cbm::algo::ca::kMuch, kSTS, cbm::algo::ca::kSts, cbm::algo::ca::kTof, and cbm::algo::ca::kTrd.
Referenced by InitRun().
| void TimeSliceReader::Clear | ( | ) |
Clears class content.
Definition at line 41 of file CbmCaTimeSliceReader.cxx.
References fFirstHitKey, fNofHitKeys, fNofHits, fpBrMuchTracks, fpBrRecoTracks, fpBrStsTracks, fpBrTofTracks, fpBrTrdTracks, fpIODataManager, fpParameters, fpvHitIds, fpvQaHits, fpvTracks, fvbUseDet, fvHitFirstIndexDet, and fvpBrHits.
|
inline |
Gets reference to container of first hit indexes in a detector subsystem.
Definition at line 70 of file CbmCaTimeSliceReader.h.
References fvHitFirstIndexDet.
|
inline |
Gets number of hits stored for a given detector.
| iDet | Detector ID |
Definition at line 75 of file CbmCaTimeSliceReader.h.
References fvHitFirstIndexDet.
|
inline |
Gets CBM tracking mode.
Definition at line 81 of file CbmCaTimeSliceReader.h.
References fTrackingMode.
| bool TimeSliceReader::InitRun | ( | ) |
Run initializer function.
Initializes data branches and provides necessary checks in the beginning of the run
Definition at line 121 of file CbmCaTimeSliceReader.cxx.
References CheckInit(), cbm::algo::ca::constants::clrs::CL, fpBrMuchTracks, fpBrRecoTracks, fpBrStsTracks, fpBrTofTracks, fpBrTrdTracks, fpvTracks, fTrackingMode, fvbUseDet, fvpBrHits, cbm::algo::ca::constants::clrs::GNb, cbm::RecoSetupManager::Instance(), kMCBM, cbm::algo::ca::kMuch, cbm::algo::ca::kMvd, kSTS, cbm::algo::ca::kSts, cbm::algo::ca::kTof, cbm::algo::ca::kTrd, and cbm::algo::ca::ToCbmModuleId().
|
delete |
Copy assignment operator.
References TimeSliceReader().
|
delete |
Move assignment operator.
References TimeSliceReader().
| void TimeSliceReader::ReadEvent | ( | CbmEvent * | pEvent = nullptr | ) |
Reads time slice.
Reads hits and tracks (optionally) from time slice
Definition at line 210 of file CbmCaTimeSliceReader.cxx.
References fpEvent, fpvTracks, ReadHits(), and ReadRecoTracks().
|
private |
Reads hits.
Definition at line 491 of file CbmCaTimeSliceReader.cxx.
References cbm::algo::ca::END, fbSortQaHits, fFirstHitKey, fNofHitKeys, fNofHits, fpEvent, fpIODataManager, fpvHitIds, fpvQaHits, fvbUseDet, fvHitFirstIndexDet, fvmHitExtToIntIndexMap, fvNofHitsTotal, fvNofHitsUsed, fvpBrHits, cbm::ca::kCbmHitType, cbm::algo::ca::kMuch, cbm::algo::ca::kMvd, cbm::algo::ca::kSts, cbm::algo::ca::kTof, cbm::algo::ca::kTrd, ReadHitsForDetector(), and SortQaHits().
Referenced by ReadEvent().
|
private |
Reads hits for a given detector subsystem.
| Detector | ID |
Definition at line 375 of file CbmCaTimeSliceReader.cxx.
References cbm::ca::tools::HitRecord::Accept(), cbm::ca::tools::HitRecord::fDataStream, cbm::ca::tools::HitRecord::fDet, cbm::ca::tools::HitRecord::fDt2, cbm::ca::tools::HitRecord::fDx2, cbm::ca::tools::HitRecord::fDxy, cbm::ca::tools::HitRecord::fDy2, cbm::ca::tools::HitRecord::fExtId, fFirstHitKey, fNofHitKeys, fpEvent, fpParameters, cbm::ca::tools::HitRecord::fRangeT, cbm::ca::tools::HitRecord::fRangeX, cbm::ca::tools::HitRecord::fRangeY, cbm::ca::tools::HitRecord::fStaId, cbm::ca::tools::HitRecord::fStripB, cbm::ca::tools::HitRecord::fStripF, cbm::ca::tools::HitRecord::fT, fvbUseDet, fvpBrHits, cbm::ca::tools::HitRecord::fX, cbm::ca::tools::HitRecord::fY, cbm::ca::tools::HitRecord::fZ, cbm::algo::RecoSetup::Get(), CbmL1::GetDetectorName(), cbm::RecoSetupManager::GetSetup(), CbmTofAddress::GetSmType(), cbm::RecoSetupManager::Instance(), cbm::ca::kCbmDatastreamBitmask, cbm::ca::kCbmHitType, cbm::algo::ca::kSts, cbm::algo::ca::kTof, StoreHitRecord(), cbm::algo::ca::ToCbmModuleId(), and cbm::ca::tools::HitRecord::ToString().
Referenced by ReadHits().
|
private |
Reads reconstructed tracks.
Definition at line 222 of file CbmCaTimeSliceReader.cxx.
References cbm::kf::ConvertTrackParam(), fpBrMuchTracks, fpBrRecoTracks, fpBrStsTracks, fpBrTofTracks, fpBrTrdTracks, fpEvent, fpvTracks, fTrackingMode, fvbUseDet, fvmHitExtToIntIndexMap, kGlobalTrack, kMCBM, cbm::algo::ca::kMuch, cbm::algo::ca::kMvd, kSTS, cbm::algo::ca::kSts, kStsTrack, cbm::algo::ca::kTof, and cbm::algo::ca::kTrd.
Referenced by ReadEvent().
|
inline |
Registers hit index container.
| vHitIds | Reference to hits indexes container |
Definition at line 103 of file CbmCaTimeSliceReader.h.
References fpvHitIds.
| void TimeSliceReader::RegisterIODataManager | ( | std::shared_ptr< ca::DataManager > & | ioDataManager | ) |
Registers the CA IO data manager instance.
| pIODataManager | Shared pointer to the IO data manager instance |
Definition at line 340 of file CbmCaTimeSliceReader.cxx.
References fpIODataManager.
|
inline |
Registers CA parameters object.
| pParameters | A shared pointer to the parameters object |
Definition at line 107 of file CbmCaTimeSliceReader.h.
References fpParameters.
|
inline |
Registers hit debug info container.
| vQaHits | Reference to Qa hit container |
Definition at line 98 of file CbmCaTimeSliceReader.h.
References fpvQaHits.
|
inline |
Register the reconstructed tracks container.
| vTracks | Reference to reconstructed tracks container |
Definition at line 117 of file CbmCaTimeSliceReader.h.
References fpvTracks.
|
inline |
Sets used detector subsystems.
| detID | Id of detector |
| flag | Flag: true - detector is used |
Definition at line 123 of file CbmCaTimeSliceReader.h.
References fvbUseDet.
|
inline |
Sets flag to additionally sort QA hits by stations.
| doSortQaHits | true: hits are sorted |
Definition at line 131 of file CbmCaTimeSliceReader.h.
References fbSortQaHits.
|
inline |
Sets the tracking mode.
| mode | Tracking mode (from ECbmTrackingMode) |
Definition at line 127 of file CbmCaTimeSliceReader.h.
References fTrackingMode.
|
private |
Sorts QA hit objects by stations.
Definition at line 348 of file CbmCaTimeSliceReader.cxx.
References fpParameters, and fpvQaHits.
Referenced by ReadHits().
|
private |
Saves hit to data structures.
| hitRecord | Filled hit record |
Stores recorded hit information into registered hit containers
Definition at line 561 of file CbmCaTimeSliceReader.cxx.
References cbm::algo::ca::McHitInfo::Det, cbm::algo::ca::McHitInfo::dt, cbm::algo::ca::McHitInfo::dx, cbm::algo::ca::McHitInfo::dxy, cbm::algo::ca::McHitInfo::dy, cbm::algo::ca::McHitInfo::ExtIndex, cbm::ca::tools::HitRecord::fDataStream, cbm::ca::tools::HitRecord::fDet, cbm::ca::tools::HitRecord::fDt2, cbm::ca::tools::HitRecord::fDx2, cbm::ca::tools::HitRecord::fDxy, cbm::ca::tools::HitRecord::fDy2, cbm::ca::tools::HitRecord::fExtId, fpIODataManager, fpvHitIds, fpvQaHits, cbm::ca::tools::HitRecord::fRangeT, cbm::ca::tools::HitRecord::fRangeX, cbm::ca::tools::HitRecord::fRangeY, cbm::ca::tools::HitRecord::fStaId, cbm::ca::tools::HitRecord::fStripB, cbm::ca::tools::HitRecord::fStripF, cbm::ca::tools::HitRecord::fT, cbm::ca::tools::HitRecord::fX, cbm::ca::tools::HitRecord::fY, cbm::ca::tools::HitRecord::fZ, cbm::algo::ca::McHitInfo::IntIndex, cbm::algo::ca::McHitInfo::iStation, cbm::algo::ca::Hit::SetBackKey(), cbm::algo::ca::Hit::SetDt2(), cbm::algo::ca::Hit::SetDx2(), cbm::algo::ca::Hit::SetDxy(), cbm::algo::ca::Hit::SetDy2(), cbm::algo::ca::Hit::SetFrontKey(), cbm::algo::ca::Hit::SetId(), cbm::algo::ca::Hit::SetRangeT(), cbm::algo::ca::Hit::SetRangeX(), cbm::algo::ca::Hit::SetRangeY(), cbm::algo::ca::Hit::SetStation(), cbm::algo::ca::Hit::SetT(), cbm::algo::ca::Hit::SetX(), cbm::algo::ca::Hit::SetY(), cbm::algo::ca::Hit::SetZ(), sqrt(), cbm::algo::ca::McHitInfo::time, cbm::algo::ca::McHitInfo::x, cbm::algo::ca::McHitInfo::y, and cbm::algo::ca::McHitInfo::z.
Referenced by ReadHitsForDetector().
|
private |
Flag, if the QA hits must be sorted after reading.
Definition at line 191 of file CbmCaTimeSliceReader.h.
Referenced by ReadHits(), and SetSortQaHits().
|
private |
First index of hit key for the detector subsystem.
Definition at line 196 of file CbmCaTimeSliceReader.h.
Referenced by Clear(), ReadHits(), and ReadHitsForDetector().
|
private |
Recorded number of hit keys.
Definition at line 195 of file CbmCaTimeSliceReader.h.
Referenced by Clear(), ReadHits(), and ReadHitsForDetector().
|
private |
Stored number of hits.
Definition at line 194 of file CbmCaTimeSliceReader.h.
Referenced by Clear(), and ReadHits().
|
private |
Input branch for reconstructed MuCh tracks ("MuchTrack")
Definition at line 171 of file CbmCaTimeSliceReader.h.
Referenced by CheckInit(), Clear(), InitRun(), and ReadRecoTracks().
|
private |
Input branch for reconstructed tracks ("GlobalTrack", "StsTrack")
Definition at line 169 of file CbmCaTimeSliceReader.h.
Referenced by CheckInit(), Clear(), InitRun(), and ReadRecoTracks().
|
private |
Input branch for reconstructed STS tracks ("StsTrack")
Definition at line 170 of file CbmCaTimeSliceReader.h.
Referenced by CheckInit(), Clear(), InitRun(), and ReadRecoTracks().
|
private |
Input branch for reconstructed TOF tracks ("TofTrack")
Definition at line 173 of file CbmCaTimeSliceReader.h.
Referenced by CheckInit(), Clear(), InitRun(), and ReadRecoTracks().
|
private |
Input branch for reconstructed TRD tracks ("TrdTrack")
Definition at line 172 of file CbmCaTimeSliceReader.h.
Referenced by CheckInit(), Clear(), InitRun(), and ReadRecoTracks().
|
private |
Pointer to the event object.
Definition at line 162 of file CbmCaTimeSliceReader.h.
Referenced by ReadEvent(), ReadHits(), ReadHitsForDetector(), and ReadRecoTracks().
|
private |
Pointer to input data manager.
Definition at line 179 of file CbmCaTimeSliceReader.h.
Referenced by Clear(), ReadHits(), RegisterIODataManager(), and StoreHitRecord().
|
private |
Pointer to tracking parameters object.
Definition at line 180 of file CbmCaTimeSliceReader.h.
Referenced by CheckInit(), Clear(), ReadHitsForDetector(), RegisterParameters(), and SortQaHits().
|
private |
Pointer to array of hit index objects.
Definition at line 176 of file CbmCaTimeSliceReader.h.
Referenced by CheckInit(), Clear(), ReadHits(), RegisterHitIndexContainer(), and StoreHitRecord().
|
private |
Pointer to array of debug hits.
Definition at line 177 of file CbmCaTimeSliceReader.h.
Referenced by Clear(), ReadHits(), RegisterQaHitContainer(), SortQaHits(), and StoreHitRecord().
|
private |
Pointer to array of reconstructed tracks.
Definition at line 178 of file CbmCaTimeSliceReader.h.
Referenced by CheckInit(), Clear(), InitRun(), ReadEvent(), ReadRecoTracks(), and RegisterTracksContainer().
|
private |
Tracking mode.
Definition at line 189 of file CbmCaTimeSliceReader.h.
Referenced by CheckInit(), GetTrackingMode(), InitRun(), ReadRecoTracks(), and SetTrackingMode().
|
private |
Flag: is detector subsystem used.
Definition at line 187 of file CbmCaTimeSliceReader.h.
Referenced by CheckInit(), Clear(), InitRun(), ReadHits(), ReadHitsForDetector(), ReadRecoTracks(), and SetDetector().
|
private |
First hit index in detector.
Definition at line 198 of file CbmCaTimeSliceReader.h.
Referenced by Clear(), GetHitFirstIndexDet(), GetNofHits(), and ReadHits().
|
private |
Hit index map ext -> int.
Definition at line 183 of file CbmCaTimeSliceReader.h.
Referenced by ReadHits(), and ReadRecoTracks().
|
private |
Total hit number in detector.
Definition at line 185 of file CbmCaTimeSliceReader.h.
Referenced by ReadHits().
|
private |
Number of used hits in detector.
Definition at line 186 of file CbmCaTimeSliceReader.h.
Referenced by ReadHits().
|
private |
Input branch for hits.
Definition at line 163 of file CbmCaTimeSliceReader.h.
Referenced by CheckInit(), Clear(), InitRun(), ReadHits(), and ReadHitsForDetector().