BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnDataIterator.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
BmnDataIterator abstract class header-only implementation
9
Base class for ROOT file and RAM iterators
10
*/
11
12
#ifndef BMNDATAITERATOR_H
13
#define BMNDATAITERATOR_H
14
15
#include "
BmnSimpleProgressBar.h
"
16
#include "
RtypesCore.h
"
17
18
class
BmnDataIterator
19
{
20
public
:
21
inline
BmnDataIterator
(
BmnSimpleProgressBar
* pb =
nullptr
)
22
:
fpProgressBar
(pb)
23
{}
24
virtual
~BmnDataIterator
() =
default
;
25
26
virtual
Double_t
HitX
()
const
= 0;
27
virtual
Double_t
HitY
()
const
= 0;
28
virtual
Double_t
HitZ
()
const
= 0;
29
virtual
Double_t
HitWx
()
const
= 0;
// 1 / dx^2
30
virtual
Double_t
HitWy
()
const
= 0;
// 1 / dy^2
31
virtual
Int_t
HitDetectorID
()
const
= 0;
32
virtual
Int_t
HitsInTrack
()
const
= 0;
33
virtual
void
ResetHits
() = 0;
34
virtual
void
ResetAll
() = 0;
35
virtual
void
NextHit
() = 0;
36
virtual
void
NextTrack
() = 0;
37
38
Bool_t
Initialized
() const noexcept {
return
fInitialized
; }
39
Bool_t
EndOfTracks
() const noexcept {
return
fEndOfTracks
; }
40
Bool_t
EndOfHits
() const noexcept {
return
fEndOfHits
; }
41
42
protected
:
43
Bool_t
fInitialized
{
kFALSE
},
fEndOfTracks
{
kTRUE
},
fEndOfHits
{
kTRUE
};
44
45
// progress bar interface
46
private
:
47
BmnSimpleProgressBar*
fpProgressBar
;
48
Float_t
fTickProgress
{0.0f},
fProgress
{0.0f};
49
50
protected
:
51
BmnSimpleProgressBar
*
GetProgressBar
() const noexcept {
return
fpProgressBar
; }
52
Float_t
GetTickProgress
() const noexcept {
return
fTickProgress
; }
53
void
SetTickProgress
(
Float_t
progress) {
fTickProgress
= progress; }
54
void
ProgressTick
()
55
{
56
if
(!
fpProgressBar
)
57
return
;
58
fProgress
+=
fTickProgress
;
59
if
(
fProgress
>= 0.01f)
// fixed interval in BmnSimpleProgressBar
60
{
61
fpProgressBar
->Tick();
62
fProgress
= 0.0f;
63
}
64
}
65
void
ProgressReset
()
66
{
67
if
(!
fpProgressBar
)
68
return
;
69
fpProgressBar
->Init();
70
fProgress
= 0.0f;
71
}
72
void
ProgressClear
()
73
{
74
if
(!
fpProgressBar
)
75
return
;
76
fpProgressBar
->Clear();
77
}
78
};
79
80
#endif
RtypesCore.h
Bool_t
bool Bool_t
Int_t
int Int_t
Float_t
float Float_t
kFALSE
constexpr Bool_t kFALSE
Double_t
double Double_t
kTRUE
constexpr Bool_t kTRUE
BmnDataIterator
Definition
BmnDataIterator.h:19
BmnDataIterator::ProgressClear
void ProgressClear()
Definition
BmnDataIterator.h:72
BmnDataIterator::HitX
virtual Double_t HitX() const =0
BmnDataIterator::HitY
virtual Double_t HitY() const =0
BmnDataIterator::HitZ
virtual Double_t HitZ() const =0
BmnDataIterator::fTickProgress
Float_t fTickProgress
Definition
BmnDataIterator.h:48
BmnDataIterator::BmnDataIterator
BmnDataIterator(BmnSimpleProgressBar *pb=nullptr)
Definition
BmnDataIterator.h:21
BmnDataIterator::HitWx
virtual Double_t HitWx() const =0
BmnDataIterator::fInitialized
Bool_t fInitialized
Definition
BmnDataIterator.h:43
BmnDataIterator::SetTickProgress
void SetTickProgress(Float_t progress)
Definition
BmnDataIterator.h:53
BmnDataIterator::ResetHits
virtual void ResetHits()=0
BmnDataIterator::ResetAll
virtual void ResetAll()=0
BmnDataIterator::fEndOfTracks
Bool_t fEndOfTracks
Definition
BmnDataIterator.h:43
BmnDataIterator::fEndOfHits
Bool_t fEndOfHits
Definition
BmnDataIterator.h:43
BmnDataIterator::ProgressTick
void ProgressTick()
Definition
BmnDataIterator.h:54
BmnDataIterator::NextTrack
virtual void NextTrack()=0
BmnDataIterator::GetProgressBar
BmnSimpleProgressBar * GetProgressBar() const noexcept
Definition
BmnDataIterator.h:51
BmnDataIterator::fpProgressBar
BmnSimpleProgressBar * fpProgressBar
Definition
BmnDataIterator.h:47
BmnDataIterator::fProgress
Float_t fProgress
Definition
BmnDataIterator.h:48
BmnDataIterator::EndOfTracks
Bool_t EndOfTracks() const noexcept
Definition
BmnDataIterator.h:39
BmnDataIterator::GetTickProgress
Float_t GetTickProgress() const noexcept
Definition
BmnDataIterator.h:52
BmnDataIterator::~BmnDataIterator
virtual ~BmnDataIterator()=default
BmnDataIterator::HitDetectorID
virtual Int_t HitDetectorID() const =0
BmnDataIterator::NextHit
virtual void NextHit()=0
BmnDataIterator::HitWy
virtual Double_t HitWy() const =0
BmnDataIterator::EndOfHits
Bool_t EndOfHits() const noexcept
Definition
BmnDataIterator.h:40
BmnDataIterator::HitsInTrack
virtual Int_t HitsInTrack() const =0
BmnDataIterator::ProgressReset
void ProgressReset()
Definition
BmnDataIterator.h:65
BmnDataIterator::Initialized
Bool_t Initialized() const noexcept
Definition
BmnDataIterator.h:38
BmnSimpleProgressBar
Definition
BmnSimpleProgressBar.h:20
BmnSimpleProgressBar.h
install
include
BmnDataIterator.h
Generated on
for BmnRoot by
1.17.0