Belle II Software development
TrgEclTiming Class Reference

A Class of ECL Trigger clustering. More...

#include <TrgEclTiming.h>

Public Member Functions

 TrgEclTiming ()
 Constructor.
 
virtual ~TrgEclTiming ()
 Constructor.
 
 TrgEclTiming (TrgEclTiming &)=delete
 Destructor.
 
TrgEclTimingoperator= (TrgEclTiming &)=delete
 Assignment operator, deleted.
 
void Setup (const std::vector< int > &, const std::vector< double > &, const std::vector< double > &)
 SetUp.
 
double getEventTiming (int)
 get Evnet-timing
 
double getEventTiming00 ()
 Fastest TC Timing.
 
double getEventTiming01 ()
 The Most energetic TC Timing.
 
double getEventTiming02 ()
 Energy weighted Timing of Top 3 energetic TC.
 
void setNofTopTC (int NtopTC)
 Set # of considered TC in Energy weighted timing method.
 
int getTimingSource ()
 get Timing Source
 
void setEventTimingQualityThreshold (const std::vector< double > &iEventTimingQualityThreshold)
 set energy threshold of event timing quality flag
 
int getEventTimingQualityFlag ()
 get event timing quality flag
 
int getEventTimingTCId ()
 get TCId which is a source of event timing
 
int getEventTimingTCThetaId ()
 get theta ID of TC which is a source of event timing
 
double getEventTimingTCEnergy ()
 get TC energy which is a source of event timing
 

Private Attributes

std::vector< double > m_TCEnergy
 TC Energy.
 
std::vector< double > m_TCTiming
 TC Timing.
 
std::vector< int > m_TCId
 TC Id.
 
int m_EventTimingQualityFlag
 Event timing quality flag (for SVD DAQ) 3:= super-fine timing 2:= fine timing 1:= other 0:= no TC hit.
 
std::vector< double > m_EventTimingQualityThreshold
 energy threshold(low, high) for quality flag (GeV)
 
int m_EventTimingTCId
 TCId of event timing source.
 
int m_EventTimingTCThetaId
 TC ThetaId of event timing source.
 
double m_EventTimingTCEnergy
 TC Energy of event timing source.
 
int m_NofTopTC
 
TrgEclMappingm_TCMap
 Object of TC Mapping.
 
int m_Source
 Timing Source (FWD, Barrel, Backward)
 

Detailed Description

A Class of ECL Trigger clustering.

Definition at line 29 of file TrgEclTiming.h.

Constructor & Destructor Documentation

◆ TrgEclTiming() [1/2]

Constructor.

Definition at line 20 of file TrgEclTiming.cc.

20 : m_NofTopTC(3), m_Source(0)
21{
22 m_TCMap = new TrgEclMapping();
23 m_TCEnergy.clear();
24 m_TCTiming.clear();
25 m_TCId.clear();
30 m_EventTimingQualityThreshold = {1.0, 20.0}; // GeV
31}
std::vector< double > m_TCTiming
TC Timing.
int m_EventTimingQualityFlag
Event timing quality flag (for SVD DAQ) 3:= super-fine timing 2:= fine timing 1:= other 0:= no TC hit...
int m_Source
Timing Source (FWD, Barrel, Backward)
int m_EventTimingTCThetaId
TC ThetaId of event timing source.
std::vector< double > m_TCEnergy
TC Energy.
int m_EventTimingTCId
TCId of event timing source.
std::vector< int > m_TCId
TC Id.
std::vector< double > m_EventTimingQualityThreshold
energy threshold(low, high) for quality flag (GeV)
TrgEclMapping * m_TCMap
Object of TC Mapping.
double m_EventTimingTCEnergy
TC Energy of event timing source.

◆ ~TrgEclTiming()

~TrgEclTiming ( )
virtual

Constructor.

Destructor

Definition at line 35 of file TrgEclTiming.cc.

36{
37 delete m_TCMap;
38}

◆ TrgEclTiming() [2/2]

TrgEclTiming ( TrgEclTiming & )
delete

Destructor.

Copy constructor, deleted

Member Function Documentation

◆ getEventTiming()

double getEventTiming ( int method)

get Evnet-timing

Definition at line 56 of file TrgEclTiming.cc.

57{
58 double EventTiming = 0;
59
60 if (method == 0) {
61 // Fastest timing (belle)
62 EventTiming = getEventTiming00();
63 } else if (method == 1) {
64 // Maximum energy
65 EventTiming = getEventTiming01();
66 } else {
67 // Energy weighted timing
68 EventTiming = getEventTiming02();
69 }
70
71 return EventTiming;
72}
double getEventTiming00()
Fastest TC Timing.
double getEventTiming02()
Energy weighted Timing of Top 3 energetic TC.
double getEventTiming01()
The Most energetic TC Timing.

◆ getEventTiming00()

double getEventTiming00 ( )

Fastest TC Timing.

Definition at line 76 of file TrgEclTiming.cc.

77{
78 m_Source = 0;
79 double FastestEnergy = 0;
80 double FastestTiming = 9999;
81 int FastestTCId = 0;
82 const int hit_size = m_TCTiming.size();
83
84 for (int ihit = 0; ihit < hit_size; ihit++) {
85 if (m_TCTiming[ihit] < FastestTiming) {
86 FastestTiming = m_TCTiming[ihit];
87 FastestTCId = m_TCId[ihit];
88 FastestEnergy = m_TCEnergy[ihit];
89 }
90 }
91
92 if (FastestTCId < 81) {
93 m_Source = 1;
94 } else if (FastestTCId < 513) {
95 m_Source = 2;
96 } else {
97 m_Source = 4;
98 }
99
100 m_EventTimingTCId = FastestTCId;
101 m_EventTimingTCThetaId = m_TCMap->getTCThetaIdFromTCId(FastestTCId);
102 m_EventTimingTCEnergy = FastestEnergy;
103
104 return FastestTiming;
105}

◆ getEventTiming01()

double getEventTiming01 ( )

The Most energetic TC Timing.

Definition at line 109 of file TrgEclTiming.cc.

110{
111 m_Source = 0;
112
113 double maxEnergy = 0;
114 double maxTiming = 0;
115 int maxTCId = 0;
116 const int hit_size = m_TCTiming.size();
117
118 for (int ihit = 0; ihit < hit_size; ihit++) {
119 if (m_TCEnergy[ihit] > maxEnergy) {
120 maxEnergy = m_TCEnergy[ihit] ;
121 maxTiming = m_TCTiming[ihit] ;
122 maxTCId = m_TCId[ihit];
123 }
124 }
125 if (maxTCId < 81) {
126 m_Source = 1;
127 } else if (maxTCId < 513) {
128 m_Source = 2;
129 } else {
130 m_Source = 4;
131 }
132
133 if (hit_size == 0) {
135 } else {
136 if (maxEnergy > m_EventTimingQualityThreshold[1]) {
138 } else if (maxEnergy > m_EventTimingQualityThreshold[0]) {
140 } else {
142 }
143 }
144
145 m_EventTimingTCId = maxTCId;
146 m_EventTimingTCThetaId = m_TCMap->getTCThetaIdFromTCId(maxTCId);
147 m_EventTimingTCEnergy = maxEnergy;
148
149 return maxTiming;
150}

◆ getEventTiming02()

double getEventTiming02 ( )

Energy weighted Timing of Top 3 energetic TC.

Definition at line 154 of file TrgEclTiming.cc.

155{
156 m_Source = 0;
157 std::vector<double> maxEnergy;
158 std::vector<double> maxTiming;
159
160 const int NtopTC = m_NofTopTC;
161 int maxTCId = 0;
162
163 maxEnergy.clear();
164 maxTiming.clear();
165 maxEnergy.resize(NtopTC, 0);
166 maxTiming.resize(NtopTC, 0);
167
168 const int hit_size = m_TCTiming.size();
169 double E_sum = 0;
170 double EventTiming = 0;
171
172 for (int iNtopTC = 0; iNtopTC < NtopTC ; iNtopTC++) {
173 for (int ihit = 0; ihit < hit_size; ihit++) {
174 if (iNtopTC == 0) {
175 if (maxEnergy[iNtopTC] < m_TCEnergy[ihit]) {
176 maxEnergy[iNtopTC] = m_TCEnergy[ihit];
177 maxTiming[iNtopTC] = m_TCTiming[ihit];
178 maxTCId = m_TCId[ihit];
179 }
180 } else if (iNtopTC > 0) {
181 if (maxEnergy[iNtopTC - 1] > m_TCEnergy[ihit] &&
182 maxEnergy[iNtopTC] < m_TCEnergy[ihit]) {
183 maxEnergy[iNtopTC] = m_TCEnergy[ihit];
184 maxTiming[iNtopTC] = m_TCTiming[ihit];
185 }
186 }
187 }
188 E_sum += maxEnergy[iNtopTC];
189 EventTiming += maxEnergy[iNtopTC] * maxTiming[iNtopTC];
190 }
191
192 EventTiming /= E_sum;
193
194 if (maxTCId < 81) {
195 m_Source = 1;
196 } else if (maxTCId < 513) {
197 m_Source = 2;
198 } else {
199 m_Source = 4;
200 }
201
202 return EventTiming;
203}

◆ getEventTimingQualityFlag()

int getEventTimingQualityFlag ( )
inline

get event timing quality flag

Definition at line 65 of file TrgEclTiming.h.

66 {
67 return m_EventTimingQualityFlag;
68 }

◆ getEventTimingTCEnergy()

double getEventTimingTCEnergy ( )
inline

get TC energy which is a source of event timing

Definition at line 80 of file TrgEclTiming.h.

81 {
82 return m_EventTimingTCEnergy;
83 }

◆ getEventTimingTCId()

int getEventTimingTCId ( )
inline

get TCId which is a source of event timing

Definition at line 70 of file TrgEclTiming.h.

71 {
72 return m_EventTimingTCId;
73 }

◆ getEventTimingTCThetaId()

int getEventTimingTCThetaId ( )
inline

get theta ID of TC which is a source of event timing

Definition at line 75 of file TrgEclTiming.h.

76 {
77 return m_EventTimingTCThetaId;
78 }

◆ getTimingSource()

int getTimingSource ( )
inline

get Timing Source

Definition at line 58 of file TrgEclTiming.h.

58{return m_Source;}

◆ setEventTimingQualityThreshold()

void setEventTimingQualityThreshold ( const std::vector< double > & iEventTimingQualityThreshold)
inline

set energy threshold of event timing quality flag

Definition at line 60 of file TrgEclTiming.h.

61 {
62 m_EventTimingQualityThreshold = iEventTimingQualityThreshold;
63 }

◆ setNofTopTC()

void setNofTopTC ( int NtopTC)
inline

Set # of considered TC in Energy weighted timing method.

Definition at line 56 of file TrgEclTiming.h.

56{ m_NofTopTC = NtopTC;}

◆ Setup()

void Setup ( const std::vector< int > & HitTCId,
const std::vector< double > & HitTCEnergy,
const std::vector< double > & HitTCTiming )

SetUp.

Definition at line 43 of file TrgEclTiming.cc.

46{
47 m_TCId = HitTCId;
48 m_TCEnergy = HitTCEnergy;
49 m_TCTiming = HitTCTiming;
50
51 return;
52}

Member Data Documentation

◆ m_EventTimingQualityFlag

int m_EventTimingQualityFlag
private

Event timing quality flag (for SVD DAQ) 3:= super-fine timing 2:= fine timing 1:= other 0:= no TC hit.

Definition at line 98 of file TrgEclTiming.h.

◆ m_EventTimingQualityThreshold

std::vector<double> m_EventTimingQualityThreshold
private

energy threshold(low, high) for quality flag (GeV)

Definition at line 100 of file TrgEclTiming.h.

◆ m_EventTimingTCEnergy

double m_EventTimingTCEnergy
private

TC Energy of event timing source.

Definition at line 106 of file TrgEclTiming.h.

◆ m_EventTimingTCId

int m_EventTimingTCId
private

TCId of event timing source.

Definition at line 102 of file TrgEclTiming.h.

◆ m_EventTimingTCThetaId

int m_EventTimingTCThetaId
private

TC ThetaId of event timing source.

Definition at line 104 of file TrgEclTiming.h.

◆ m_NofTopTC

int m_NofTopTC
private

of considered TC in Energy weighted timing method.

Definition at line 109 of file TrgEclTiming.h.

◆ m_Source

int m_Source
private

Timing Source (FWD, Barrel, Backward)

Definition at line 113 of file TrgEclTiming.h.

◆ m_TCEnergy

std::vector<double> m_TCEnergy
private

TC Energy.

Definition at line 87 of file TrgEclTiming.h.

◆ m_TCId

std::vector<int> m_TCId
private

TC Id.

Definition at line 91 of file TrgEclTiming.h.

◆ m_TCMap

TrgEclMapping* m_TCMap
private

Object of TC Mapping.

Definition at line 111 of file TrgEclTiming.h.

◆ m_TCTiming

std::vector<double> m_TCTiming
private

TC Timing.

Definition at line 89 of file TrgEclTiming.h.


The documentation for this class was generated from the following files: