14#include "fairlogger/Logger.h"
18 , fpDetModel(&detModel)
20 , fpReader(&fpData->Reader())
25 fpData->
Chain().SetBranchStatus(
"*", kFALSE);
33 fProgressByTracks = kFALSE;
34 fTotalEvents = fpData->
Chain().GetEntries();
57 LOG(info) <<
" counting suitable tracks and other elements...";
59 auto events{fpData->
Chain().GetEntries()};
61 fProgressByTracks = kFALSE;
68 fTotalHits += fHitsInTrack;
72 fProgressByTracks = kTRUE;
75 LOG(info) <<
" " << fTotalTracks <<
" total suitable tracks found";
76 LOG(info) <<
" " << fTotalHits <<
" total hits counted";
77 LOG(info) <<
" " << events <<
" events processed";
83 if (fHitsInTrack > 0) {
88 fpCurrentHit =
nullptr;
100 Bool_t
event = fpReader->Next();
103 if (!fProgressByTracks)
107 fTracksInEvent = (*fpRootTracks)->GetEntries();
108 while (event && fTracksInEvent <= 0) {
109 event = fpReader->Next();
110 if (!fProgressByTracks)
112 fTracksInEvent = (*fpRootTracks)->GetEntries();
117 fpCurrentTrack = (
Track_t*)(*fpRootTracks)->At(0);
132 Bool_t search{kTRUE};
134 if (++fTrackIdx >= fTracksInEvent) {
135 Bool_t
event{fpReader->Next()};
136 if (!fProgressByTracks)
139 fTracksInEvent = (*fpRootTracks)->GetEntries();
140 while (event && fTracksInEvent <= 0) {
141 event = fpReader->Next();
142 if (!fProgressByTracks)
144 fTracksInEvent = (*fpRootTracks)->GetEntries();
154 fpCurrentTrack = (
Track_t*)(*fpRootTracks)->At(fTrackIdx);
159 if (fProgressByTracks)
167 if (++fHitIdx >= fHitsInTrack) {
168 fpCurrentHit =
nullptr;
178 return fpCurrentHit->GetX();
185 return fpCurrentHit->GetY();
192 return fpCurrentHit->GetZ();
200 : 1.0 / (fpCurrentHit->GetDx() * fpCurrentHit->GetDx());
208 : 1.0 / (fpCurrentHit->GetDy() * fpCurrentHit->GetDy());
215 return fpDetModel->
IDfromHit(fpCurrentHit->GetDetectorID());
226void BmnRootIterator::UnsetProperties()
230 fpCurrentTrack =
nullptr;
231 fpCurrentHit =
nullptr;
#define BMN_CLOSE_TO_ZERO
#define BMN_MIN_HITS_PER_TRACK
#define BMN_MAX_CHI2_PER_NDF
void SetTickProgress(Float_t progress)
Bool_t EndOfTracks() const noexcept
virtual Int_t IDfromHit(Int_t HitDetectorID) const =0
virtual Double_t HitY() const override
virtual void ResetAll() override
virtual Double_t HitWy() const override
virtual Int_t HitDetectorID() const override
virtual Double_t HitZ() const override
virtual Double_t HitX() const override
virtual Int_t HitsInTrack() const override
virtual Double_t HitWx() const override
virtual void ResetHits() override
virtual ~BmnRootIterator()
virtual void NextTrack() override
virtual void NextHit() override
Int_t GetNStsHits() const
Int_t GetStsHitIndex(Int_t iHit) const
#define BMN_TRACKS_BRACH_NAME
#define BMN_HITS_BRACH_NAME