BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnRootIterator.h
Go to the documentation of this file.
1
/*
2
BM@N alignment routine
3
BM@N experiment at NICA complex, JINR, 2025
4
5
Department: Math & Soft Group of HEP lab
6
Author: Igor Polev, polev@jinr.ru
7
8
BmnRootIterator class declaration
9
Iterator for tracks and hits stored in ROOT files
10
*/
11
12
#ifndef BMNROOTITERATOR_H
13
#define BMNROOTITERATOR_H
14
15
#include "
BmnAlignDefines.h
"
16
#include "
BmnDataIterator.h
"
17
#include "
BmnDataReader.h
"
18
#include "
BmnDetectorModel.h
"
19
#include "
BmnSimpleProgressBar.h
"
20
#include "
CbmStsHit.h
"
21
#include "
CbmStsTrack.h
"
22
#include "
TTreeReaderValue.h
"
23
24
#define BMN_TRACKS_BRACH_NAME "StsVector"
25
#define BMN_HITS_BRACH_NAME "StsHit"
26
#define BMN_HIT_CLASS_NAME "CbmStsHit"
27
28
class
BmnRootIterator
:
public
BmnDataIterator
29
{
30
private
:
31
static
constexpr
Double_t
MAX_WEIGHT
{1.0 / (
BMN_CLOSE_TO_ZERO
*
BMN_CLOSE_TO_ZERO
)};
32
33
public
:
34
typedef
CbmStsTrack
Track_t
;
35
typedef
CbmStsHit
Hit_t
;
36
37
BmnRootIterator
() =
delete
;
38
BmnRootIterator
(
const
char
* filesPathList,
const
BmnDetectorModel
& detModel,
BmnSimpleProgressBar
* pb =
nullptr
);
39
virtual
~BmnRootIterator
();
40
41
virtual
void
ResetHits
()
override
;
42
virtual
void
ResetAll
()
override
;
43
virtual
void
NextTrack
()
override
;
44
virtual
void
NextHit
()
override
;
45
virtual
Double_t
HitX
()
const override
;
46
virtual
Double_t
HitY
()
const override
;
47
virtual
Double_t
HitZ
()
const override
;
48
virtual
Double_t
HitWx
()
const override
;
49
virtual
Double_t
HitWy
()
const override
;
50
virtual
Int_t
HitDetectorID
()
const override
;
51
virtual
Int_t
HitsInTrack
()
const override
;
52
53
void
CountElements
();
54
Long64_t
GetTotalEvents
() const noexcept {
return
fTotalEvents
; }
55
Int_t
GetTotalTracks
() const noexcept {
return
fTotalTracks
; }
56
Int_t
GetTotalHits
() const noexcept {
return
fTotalHits
; }
57
const
Hit_t
*
GetHit
() const noexcept {
return
fpCurrentHit
; }
58
59
private
:
60
const
BmnDetectorModel
*
fpDetModel
;
61
// the class is involved into ROOT dictionary schema which utilizes forward
62
// declarations - only pointers (or refs) to classes are possible as a field
63
BmnDataReader
*
fpData
{
nullptr
};
64
TTreeReader*
fpReader
{
nullptr
};
65
TTreeReaderValue<TClonesArray>*
fpRootTracks
{
nullptr
}, *
fpRootHits
{
nullptr
};
66
67
Track_t
*
fpCurrentTrack
{
nullptr
};
68
Hit_t
*
fpCurrentHit
{
nullptr
};
69
Long64_t
fTotalEvents
{0};
70
Int_t
fTotalTracks
{0},
fTotalHits
{0},
fTracksInEvent
{0},
fHitsInTrack
{0},
fTrackIdx
,
fHitIdx
;
71
72
Bool_t
fProgressByTracks
{
kTRUE
};
73
74
void
UnsetProperties
();
75
};
76
77
#endif
Bool_t
bool Bool_t
Int_t
int Int_t
Double_t
double Double_t
Long64_t
long long Long64_t
kTRUE
constexpr Bool_t kTRUE
TTreeReaderValue.h
BMN_CLOSE_TO_ZERO
#define BMN_CLOSE_TO_ZERO
Definition
BmnAlignDefines.h:32
BmnDataIterator
Definition
BmnDataIterator.h:19
BmnDataReader
Definition
BmnDataReader.h:25
BmnDetectorModel
Definition
BmnDetectorModel.h:28
BmnRootIterator
Definition
BmnRootIterator.h:29
BmnRootIterator::Hit_t
CbmStsHit Hit_t
Definition
BmnRootIterator.h:35
BmnRootIterator::fpData
BmnDataReader * fpData
Definition
BmnRootIterator.h:63
BmnRootIterator::NextTrack
virtual void NextTrack() override
BmnRootIterator::fpRootTracks
TTreeReaderValue< TClonesArray > * fpRootTracks
Definition
BmnRootIterator.h:65
BmnRootIterator::HitX
virtual Double_t HitX() const override
BmnRootIterator::fpDetModel
const BmnDetectorModel * fpDetModel
Definition
BmnRootIterator.h:60
BmnRootIterator::fpCurrentTrack
Track_t * fpCurrentTrack
Definition
BmnRootIterator.h:67
BmnRootIterator::ResetAll
virtual void ResetAll() override
BmnRootIterator::GetHit
const Hit_t * GetHit() const noexcept
Definition
BmnRootIterator.h:57
BmnRootIterator::fpCurrentHit
Hit_t * fpCurrentHit
Definition
BmnRootIterator.h:68
BmnRootIterator::fHitsInTrack
Int_t fHitsInTrack
Definition
BmnRootIterator.h:70
BmnRootIterator::fpReader
TTreeReader * fpReader
Definition
BmnRootIterator.h:64
BmnRootIterator::HitDetectorID
virtual Int_t HitDetectorID() const override
BmnRootIterator::UnsetProperties
void UnsetProperties()
BmnRootIterator::BmnRootIterator
BmnRootIterator()=delete
BmnRootIterator::HitWx
virtual Double_t HitWx() const override
BmnRootIterator::HitY
virtual Double_t HitY() const override
BmnRootIterator::BmnRootIterator
BmnRootIterator(const char *filesPathList, const BmnDetectorModel &detModel, BmnSimpleProgressBar *pb=nullptr)
BmnRootIterator::fProgressByTracks
Bool_t fProgressByTracks
Definition
BmnRootIterator.h:72
BmnRootIterator::NextHit
virtual void NextHit() override
BmnRootIterator::GetTotalTracks
Int_t GetTotalTracks() const noexcept
Definition
BmnRootIterator.h:55
BmnRootIterator::fpRootHits
TTreeReaderValue< TClonesArray > * fpRootHits
Definition
BmnRootIterator.h:65
BmnRootIterator::fTracksInEvent
Int_t fTracksInEvent
Definition
BmnRootIterator.h:70
BmnRootIterator::fTotalTracks
Int_t fTotalTracks
Definition
BmnRootIterator.h:70
BmnRootIterator::fTotalEvents
Long64_t fTotalEvents
Definition
BmnRootIterator.h:69
BmnRootIterator::GetTotalHits
Int_t GetTotalHits() const noexcept
Definition
BmnRootIterator.h:56
BmnRootIterator::CountElements
void CountElements()
BmnRootIterator::Track_t
CbmStsTrack Track_t
Definition
BmnRootIterator.h:34
BmnRootIterator::HitWy
virtual Double_t HitWy() const override
BmnRootIterator::HitsInTrack
virtual Int_t HitsInTrack() const override
BmnRootIterator::MAX_WEIGHT
static constexpr Double_t MAX_WEIGHT
Definition
BmnRootIterator.h:31
BmnRootIterator::fTrackIdx
Int_t fTrackIdx
Definition
BmnRootIterator.h:70
BmnRootIterator::ResetHits
virtual void ResetHits() override
BmnRootIterator::GetTotalEvents
Long64_t GetTotalEvents() const noexcept
Definition
BmnRootIterator.h:54
BmnRootIterator::fTotalHits
Int_t fTotalHits
Definition
BmnRootIterator.h:70
BmnRootIterator::~BmnRootIterator
virtual ~BmnRootIterator()
BmnRootIterator::fHitIdx
Int_t fHitIdx
Definition
BmnRootIterator.h:70
BmnRootIterator::HitZ
virtual Double_t HitZ() const override
BmnSimpleProgressBar
Definition
BmnSimpleProgressBar.h:20
CbmStsHit
Definition
CbmStsHit.h:27
CbmStsTrack
Definition
CbmStsTrack.h:28
BmnAlignDefines.h
BmnDataIterator.h
BmnDataReader.h
BmnDetectorModel.h
BmnSimpleProgressBar.h
CbmStsHit.h
CbmStsTrack.h
install
include
BmnRootIterator.h
Generated on
for BmnRoot by
1.17.0