BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnRamIterator.cxx
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
BmnRamIterator class implementation
9
*/
10
11
#include "
BmnRamIterator.h
"
12
13
template
<
typename
HitType>
14
void
BmnRamIterator<HitType>::ResetHits
()
15
{
16
fHitIdx
=
fpFirstHits
[
fTrackIdx
];
17
fEndOfHits
= (
fHitsInTrack
<= 0);
18
}
19
20
template
<
typename
HitType>
21
void
BmnRamIterator<HitType>::ResetAll
()
22
{
23
fTrackIdx
= 0;
24
fEndOfTracks
= (
fTracksCount
<= 0);
25
CountHitsInTrack
();
26
ResetHits
();
27
}
28
29
template
<
typename
HitType>
30
void
BmnRamIterator<HitType>::NextTrack
()
31
{
32
fEndOfTracks
|= (++
fTrackIdx
>=
fTracksCount
);
33
CountHitsInTrack
();
34
ResetHits
();
35
ProgressTick
();
36
}
37
38
template
<
typename
HitType>
39
void
BmnRamIterator<HitType>::NextHit
()
40
{
41
fEndOfHits
|= (++
fHitIdx
>=
fNextFirstHit
);
42
}
43
44
template
<
typename
HitType>
45
void
BmnRamIterator<HitType>::CountHitsInTrack
() noexcept
46
{
47
if
(
fEndOfTracks
) {
48
fHitsInTrack
= 0;
49
return
;
50
}
51
fNextFirstHit
=
fpFirstHits
[
fTrackIdx
+ 1];
// works for the last track because
52
// the array contains special extra element
53
// paticularly for this case
54
fHitsInTrack
=
fNextFirstHit
-
fpFirstHits
[
fTrackIdx
];
55
}
56
57
template
<
typename
HitType>
58
Double_t
BmnRamIterator<HitType>::HitX
()
const
59
{
60
if
(
fEndOfHits
)
61
return
0.0;
62
return
fpHits
[
fHitIdx
].GetX();
63
}
64
65
template
<
typename
HitType>
66
Double_t
BmnRamIterator<HitType>::HitY
()
const
67
{
68
if
(
fEndOfHits
)
69
return
0.0;
70
return
fpHits
[
fHitIdx
].GetY();
71
}
72
73
template
<
typename
HitType>
74
Double_t
BmnRamIterator<HitType>::HitZ
()
const
75
{
76
if
(
fEndOfHits
)
77
return
0.0;
78
return
fpHits
[
fHitIdx
].GetZ();
79
}
80
81
template
<
typename
HitType>
82
Double_t
BmnRamIterator<HitType>::HitWx
()
const
83
{
84
if
(
fEndOfHits
)
85
return
0.0;
86
return
fpHits
[
fHitIdx
].GetWx();
87
}
88
89
template
<
typename
HitType>
90
Double_t
BmnRamIterator<HitType>::HitWy
()
const
91
{
92
if
(
fEndOfHits
)
93
return
0.0;
94
return
fpHits
[
fHitIdx
].GetWy();
95
}
96
97
template
<
typename
HitType>
98
Int_t
BmnRamIterator<HitType>::HitDetectorID
()
const
99
{
100
if
(
fEndOfHits
)
101
return
0;
102
return
fpHits
[
fHitIdx
].GetDetectorID();
103
// RAM data contains ID allready encoded in alignment variant
104
}
105
106
template
<
typename
HitType>
107
Int_t
BmnRamIterator<HitType>::HitsInTrack
()
const
108
{
109
return
fHitsInTrack
;
110
}
111
112
// Instantiate the template
113
template
class
BmnRamIterator<BmnHitRecord>
;
114
115
#include "
BmnATestHit.h
"
116
template
class
BmnRamIterator<BmnATestHit>
;
Int_t
int Int_t
Double_t
double Double_t
BmnATestHit.h
BmnRamIterator.h
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
BmnRamIterator
Definition
BmnRamIterator.h:24
BmnRamIterator::HitWy
virtual Double_t HitWy() const override
Definition
BmnRamIterator.cxx:90
BmnRamIterator::HitDetectorID
virtual Int_t HitDetectorID() const override
Definition
BmnRamIterator.cxx:98
BmnRamIterator::fTracksCount
const Int_t fTracksCount
Definition
BmnRamIterator.h:50
BmnRamIterator::fHitsInTrack
Int_t fHitsInTrack
Definition
BmnRamIterator.h:51
BmnRamIterator::HitWx
virtual Double_t HitWx() const override
Definition
BmnRamIterator.cxx:82
BmnRamIterator< BmnHitRecord >::fNextFirstHit
Int_t fNextFirstHit
Definition
BmnRamIterator.h:51
BmnRamIterator::HitsInTrack
virtual Int_t HitsInTrack() const override
Definition
BmnRamIterator.cxx:107
BmnRamIterator::NextHit
virtual void NextHit() override
Definition
BmnRamIterator.cxx:39
BmnRamIterator::fHitIdx
Int_t fHitIdx
Definition
BmnRamIterator.h:51
BmnRamIterator::HitY
virtual Double_t HitY() const override
Definition
BmnRamIterator.cxx:66
BmnRamIterator::HitZ
virtual Double_t HitZ() const override
Definition
BmnRamIterator.cxx:74
BmnRamIterator::HitX
virtual Double_t HitX() const override
Definition
BmnRamIterator.cxx:58
BmnRamIterator::fpFirstHits
const Int_t * fpFirstHits
Definition
BmnRamIterator.h:50
BmnRamIterator::fTrackIdx
Int_t fTrackIdx
Definition
BmnRamIterator.h:51
BmnRamIterator::ResetAll
virtual void ResetAll() override
Definition
BmnRamIterator.cxx:21
BmnRamIterator::CountHitsInTrack
void CountHitsInTrack() noexcept
Definition
BmnRamIterator.cxx:45
BmnRamIterator::ResetHits
virtual void ResetHits() override
Definition
BmnRamIterator.cxx:14
BmnRamIterator::fpHits
const HitType * fpHits
Definition
BmnRamIterator.h:49
BmnRamIterator::NextTrack
virtual void NextTrack() override
Definition
BmnRamIterator.cxx:30
align_new
src
BmnRamIterator.cxx
Generated on
for BmnRoot by
1.17.0