BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
BmnZDCEventData.cxx
Go to the documentation of this file.
1
/*
2
* File: BmnZDCEventData.cxx
3
* Author: pnaleks
4
*
5
* Created on 5 июня 2020 г., 13:43
6
*/
7
8
#include "
BmnZDCEventData.h
"
9
10
#include <iostream>
11
using namespace
std
;
12
13
BmnZDCEventData::BmnZDCEventData
()
14
{
15
fE
=
fEc
=
fEn
=
fEp
= 0.;
16
fH
=
fHc
=
fHn
=
fHp
= 0;
17
fX
=
fY
= 0.;
18
fAsymmetry
=
fMoment
= 0.;
19
}
20
21
BmnZDCEventData::~BmnZDCEventData
() {}
22
23
void
BmnZDCEventData::Set
(
TClonesArray
* pArrayOfBmnZDCDigits,
Float_t
* pModuleScale,
Float_t
* pModuleThreshold)
24
{
25
fE
=
fEc
=
fEn
=
fEp
= 0.;
26
fH
=
fHc
=
fHn
=
fHp
= 0;
27
fX
=
fY
= 0.;
28
fAsymmetry
=
fMoment
= 0.;
29
30
Double_t
SEx = 0, SEy = 0, SExx = 0, SEyy = 0;
31
Int_t
N = pArrayOfBmnZDCDigits->
GetEntries
();
32
for
(
Int_t
i
= 0;
i
< N;
i
++) {
33
BmnZDCDigit
* p = (
BmnZDCDigit
*)pArrayOfBmnZDCDigits->
At
(
i
);
34
35
Int_t
ch = p->
GetChannel
();
36
if
(ch < 1 || ch > 104)
37
continue
;
38
39
Float_t
e = p->
GetAmp
() * 1e-3;
// MeV -> GeV
40
if
(pModuleScale)
41
e *= pModuleScale[ch];
42
43
if
(pModuleThreshold && e < pModuleThreshold[ch])
44
continue
;
45
46
fH
++;
47
fE
+= e;
48
49
switch
(ch) {
50
case
3:
51
case
4:
52
case
5:
53
case
10:
54
case
11:
55
case
12:
56
case
17:
57
case
18:
58
case
19:
59
case
24:
60
case
25:
61
case
26:
62
fHn
++;
63
fEn
+= e;
64
break
;
65
case
43:
66
case
44:
67
case
45:
68
case
50:
69
case
51:
70
case
52:
71
case
57:
72
case
58:
73
case
59:
74
case
64:
75
case
65:
76
case
66:
77
fHp
++;
78
fEp
+= e;
79
break
;
80
default
:
81
if
(ch > 68) {
82
fHc
++;
83
fEc
+= e;
84
}
85
}
86
87
SEx += e * p->
GetX
();
88
SEy += e * p->
GetY
();
89
SExx += e * p->
GetX
() * p->
GetX
();
90
SEyy += e * p->
GetY
() * p->
GetY
();
91
}
92
93
if
(
fE
> 0.) {
94
fX
= SEx /
fE
/ 10.;
// mm -> cm
95
fY
= SEy /
fE
/ 10.;
// mm -> cm
96
fMoment
= (SExx + SEyy) /
fE
/ 100.;
// mm^2 -> cm^2
97
fAsymmetry
= 2. *
fEc
/
fE
- 1.;
98
}
99
}
100
101
Float_t
BmnZDCEventData::GetEnergy
(
char
op)
102
{
103
switch
(op) {
104
case
'c'
:
105
case
'C'
:
106
return
fEc
;
107
case
'n'
:
108
case
'N'
:
109
return
fEn
;
110
case
'p'
:
111
case
'P'
:
112
return
fEp
;
113
}
114
115
return
fE
;
116
}
117
118
Int_t
BmnZDCEventData::GetNHits
(
char
op)
119
{
120
switch
(op) {
121
case
'c'
:
122
case
'C'
:
123
return
fHc
;
124
case
'n'
:
125
case
'N'
:
126
return
fHn
;
127
case
'p'
:
128
case
'P'
:
129
return
fHp
;
130
}
131
132
return
fH
;
133
}
134
135
void
BmnZDCEventData::Print
(
Option_t
* option)
const
136
{
137
cout <<
"BmnZDCEventData:"
;
138
if
(
fH
) {
139
cout << endl;
140
cout <<
" Hits: "
<<
fH
<< endl;
141
cout <<
" Energy: "
<<
fE
<<
" GeV"
<< endl;
142
cout <<
" Asym.: "
<<
fAsymmetry
<< endl;
143
cout <<
" Moment: "
<<
fMoment
<<
" cm^2"
<< endl;
144
}
else
{
145
cout <<
" is empty"
<< endl;
146
}
147
}
i
int i
Definition
P4_F32vec4.h:22
Int_t
int Int_t
Float_t
float Float_t
Double_t
double Double_t
Option_t
const char Option_t
BmnCaloDigit::GetX
Float_t GetX() const
Definition
BmnCaloDigit.h:31
BmnCaloDigit::GetChannel
UShort_t GetChannel() const
Definition
BmnCaloDigit.h:33
BmnCaloDigit::GetY
Float_t GetY() const
Definition
BmnCaloDigit.h:32
BmnCaloDigit::GetAmp
Float_t GetAmp() const
Definition
BmnCaloDigit.h:34
BmnZDCDigit
Definition
BmnZDCDigit.h:7
BmnZDCEventData::fHn
UChar_t fHn
Definition
BmnZDCEventData.h:70
BmnZDCEventData::BmnZDCEventData
BmnZDCEventData()
Definition
BmnZDCEventData.cxx:13
BmnZDCEventData::~BmnZDCEventData
virtual ~BmnZDCEventData()
Definition
BmnZDCEventData.cxx:21
BmnZDCEventData::fMoment
Float_t fMoment
Definition
BmnZDCEventData.h:75
BmnZDCEventData::fEc
Float_t fEc
Definition
BmnZDCEventData.h:63
BmnZDCEventData::fY
Float_t fY
Definition
BmnZDCEventData.h:73
BmnZDCEventData::fHc
UChar_t fHc
Definition
BmnZDCEventData.h:68
BmnZDCEventData::GetEnergy
Float_t GetEnergy()
Definition
BmnZDCEventData.h:41
BmnZDCEventData::fH
UChar_t fH
Definition
BmnZDCEventData.h:67
BmnZDCEventData::fEn
Float_t fEn
Definition
BmnZDCEventData.h:65
BmnZDCEventData::fAsymmetry
Float_t fAsymmetry
Definition
BmnZDCEventData.h:74
BmnZDCEventData::fE
Float_t fE
Definition
BmnZDCEventData.h:62
BmnZDCEventData::fHp
UChar_t fHp
Definition
BmnZDCEventData.h:69
BmnZDCEventData::Set
void Set(TClonesArray *pArrayOfBmnZDCDigits, Float_t *pModuleScale=0, Float_t *pModuleThreshold=0)
Calculate all parameters values from BmnZDCDigits passed.
Definition
BmnZDCEventData.cxx:23
BmnZDCEventData::GetNHits
Int_t GetNHits()
Definition
BmnZDCEventData.h:51
BmnZDCEventData::Print
virtual void Print(Option_t *option="") const
Definition
BmnZDCEventData.cxx:135
BmnZDCEventData::fEp
Float_t fEp
Definition
BmnZDCEventData.h:64
BmnZDCEventData::fX
Float_t fX
Definition
BmnZDCEventData.h:72
TObjArray::GetEntries
Int_t GetEntries() const override
TObjArray::At
TObject * At(Int_t idx) const override
TObject::TClonesArray
friend friend class TClonesArray
std
Definition
json.hpp:4446
BmnZDCEventData.h
reconstruction
zdc
BmnZDCEventData.cxx
Generated on
for BmnRoot by
1.17.0