Belle II Software development
TrgEclMaster.h
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#pragma once
10
11#include <string>
12#include <vector>
13
14#include <framework/core/Module.h>
15
16#include "trg/ecl/TrgEclCluster.h"
17#include "trg/ecl/TrgEclTiming.h"
18#include "trg/ecl/TrgEclBhabha.h"
19#include "trg/ecl/TrgEclBeamBKG.h"
20#include "trg/ecl/TrgEclMapping.h"
21//
22//
23//
24namespace Belle2 {
29//
30//
31//
34
35 public:
36
39
41 TrgEclMaster(void);
42
44 virtual ~TrgEclMaster();
45
48
51
52 public:
53
55 void initialize(void);
57 void simulate01(int);
59 void simulate02(int);
60
61 public:
62
64 std::string name(void) const;
65
67 std::string version(void) const;
69 // void simulate(int);
71 //int getECLtoGDL(void) { return bitECLtoGDL; }
73 void setRS(std::vector<int>, std::vector<double>,
74 std::vector<double>&, std::vector<std::vector<double>>&);
76 // void getEventTiming(int option);
78 void setClusterMethod(int cluster) {m_Clustering = cluster;}
80 void setClusterLimit(int limit) {m_ClusterLimit = limit;}
82 void setEventTimingMethod(int EventTiming) {m_EventTiming = EventTiming;}
84 void setTimeWindow(int timewindow) {m_TimeWindow = timewindow;}
86 void setOverlapWindow(int overlapwindow) {m_OverlapWindow = overlapwindow;}
88 void setNofTopTC(int noftoptc) {m_NofTopTC = noftoptc;}
90 void makeLowMultiTriggerBit(std::vector<int>, std::vector<double>, int);
91
93 /*
94 void makeTriggerBit(int, int, int, int, double, int, int,
95 std::vector<int>, int, int, int, int,
96 int, int, int, int, int, int, int,
97 int, int, int, int);
98 */
99 void makeTriggerBit(int, int, int, int, double,
100 int, int, int, int, int,
101 std::vector<int>, int, int, int, int,
102 int, int, int, int, int, int, int,
103 int, int, int, int, int);//one int parameter was added for taub2b3
104
106 double setTotalEnergy(std::vector<double>);
108 int getTriggerbit(int i) {return m_Triggerbit[i];}
111
113 void setADCtoEnergy(const double ADCtoEnergy)
114 {
115 m_ADCtoEnergy = ADCtoEnergy;
116 }
117
118 void setTotalEnergyThreshold(const std::vector<double>& iTotalEnergy)
119 {
120 m_TotalEnergy = iTotalEnergy;
121 }
122
123 void set2DBhabhaThreshold(const std::vector<double>& i2DBhabhaThresholdFWD,
124 const std::vector<double>& i2DBhabhaThresholdBWD)
125 {
126 m_2DBhabhaThresholdFWD = i2DBhabhaThresholdFWD;
127 m_2DBhabhaThresholdBWD = i2DBhabhaThresholdBWD;
128 }
129
130 void set3DBhabhaVetoThreshold(const std::vector<double>& i3DBhabhaVetoThreshold)
131 {
132 m_3DBhabhaVetoThreshold = i3DBhabhaVetoThreshold;
133 };
134
135 void set3DBhabhaVetoAngle(const std::vector<int>& i3DBhabhaVetoAngle)
136 {
137 m_3DBhabhaVetoAngle = i3DBhabhaVetoAngle;
138 };
139
140 void set3DBhabhaSelectionThreshold(const std::vector<double>& i3DBhabhaSelectionThreshold)
141 {
142 m_3DBhabhaSelectionThreshold = i3DBhabhaSelectionThreshold;
143 };
144
145 void set3DBhabhaSelectionAngle(const std::vector<int>& i3DBhabhaSelectionAngle)
146 {
147 m_3DBhabhaSelectionAngle = i3DBhabhaSelectionAngle;
148 };
149
150 void set3DBhabhaSelectionPreScale(const std::vector<int>& i3DBhabhaSelectionPreScale)
151 {
152 m_3DBhabhaSelectionPreScale = i3DBhabhaSelectionPreScale;
153 };
154
155 void setmumuThreshold(double mumuThreshold) {m_mumuThreshold = mumuThreshold; }
157 void setmumuAngle(const std::vector<int>& imumuAngle)
158 {
159 m_mumuAngle = imumuAngle;
160 }
161
162 void sethie12BhabhaVetoAngle(const std::vector<int>& ihie12BhabhaVetoAngle)
163 {
164 m_hie12BhabhaVetoAngle = ihie12BhabhaVetoAngle;
165 }
166
167 void setTaub2bAngleCut(const std::vector<int>& itaub2bAngleCut)
168 {
169 m_taub2bAngleCut = itaub2bAngleCut;
170 }
171
172 void setTaub2bEtotCut(double itaub2bEtotCut)
173 {
174 m_taub2bEtotCut = itaub2bEtotCut;
175 }
176
177 void setTaub2bCLELabCut(double itaub2bCLELabCut)
178 {
179 m_taub2bCLELabCut = itaub2bCLELabCut;
180 }
181
182 void setTaub2b2Cut(const std::vector<int>& iTaub2b2AngleCut,
183 const double iTaub2b2EtotCut,
184 const std::vector<double>& iTaub2b2CLELabCut)
185 {
186 m_taub2b2AngleCut = iTaub2b2AngleCut;
187 m_taub2b2EtotCut = iTaub2b2EtotCut;
188 m_taub2b2CLELabCut = iTaub2b2CLELabCut;
189 }
190
191 void setTaub2b3Cut(const std::vector<int>& iTaub2b3AngleCut,
192 const double iTaub2b3EtotCut,
193 const double iTaub2b3CLEb2bLabCut,
194 const std::vector<double>& iTaub2b3CLELabCut)
195 {
196 m_taub2b3AngleCut = iTaub2b3AngleCut;
197 m_taub2b3EtotCut = iTaub2b3EtotCut;
198 m_taub2b3CLEb2bLabCut = iTaub2b3CLEb2bLabCut;
199 m_taub2b3CLELabCut = iTaub2b3CLELabCut;
200 }
201
202 void setECLBurstThreshold(int ECLBurstThreshold)
203 {
204 m_ECLBurstThreshold = (double) ECLBurstThreshold;
205 }
206
207 void setlmlCLELabCut(const std::vector<double>& ilmlCLELabCut)
208 {
209 m_lmlCLELabCut = ilmlCLELabCut;
210 }
211
212 void setlmlCLECMSCut(const std::vector<double>& ilmlCLECMSCut)
213 {
214 m_lmlCLECMSCut = ilmlCLECMSCut;
215 }
216
217 void setlml00NCLforMinE(const int ilml00NCLforMinE)
218 {
219 m_lml00NCLforMinE = ilml00NCLforMinE;
220 }
221
222 void setlml12NCLforMinE(const int ilml12NCLforMinE)
223 {
224 m_lml12NCLforMinE = ilml12NCLforMinE;
225 }
226
227 void setlml13ThetaIdSelection(const int ilml13ThetaIdSelection)
228 {
229 m_lml13ThetaIdSelection = ilml13ThetaIdSelection;
230 }
231
232 void set3DBhabhaVetoInTrackThetaRegion(const std::vector<int>& i3DBhabhaVetoInTrackThetaRegion)
233 {
234 m_3DBhabhaVetoInTrackThetaRegion = i3DBhabhaVetoInTrackThetaRegion;
235 }
236
237 void setEventTimingQualityThreshold(const std::vector<double>& iEventTimingQualityThreshold)
238 {
239 m_EventTimingQualityThreshold = iEventTimingQualityThreshold;
240 }
241
242 void sethie4LowCLELabCut(const double hie4LowCLELabCut)
243 {
244 m_hie4LowCLELabCut = hie4LowCLELabCut;
245 }
246
247 void setBhabhaParameter(void);
248
249 private:
250
252 std::vector<std::vector<double>> m_TCEnergy;
254 std::vector<std::vector<double>> m_TCTiming;
256 std::vector<std::vector<int>> m_TCBeamBkgTag;
257
259 std::vector<int> m_HitTCId;
261 std::vector<double> m_TCHitEnergy;
263 std::vector<double> m_TCHitTiming;
265 std::vector<int> m_TCHitBeamBkgTag;
266
268 std::vector< std::vector<double>> m_PhiRingSum;
270 std::vector<std::vector<std::vector<double>>> m_ThetaRingSum;
271
273 // std::vector<double> ClusterEnergy;
275 // std::vector<double> ClusterTiming;
276
281
298
302 std::vector<double> m_TotalEnergy;
304 std::vector<double> m_2DBhabhaThresholdFWD;
306 std::vector<double> m_2DBhabhaThresholdBWD;
308 std::vector<double> m_3DBhabhaVetoThreshold;
310 std::vector<int> m_3DBhabhaVetoAngle;
312 std::vector<double> m_3DBhabhaSelectionThreshold;
314 std::vector<int> m_3DBhabhaSelectionAngle;
320 std::vector<int> m_mumuAngle;
322 std::vector<int> m_hie12BhabhaVetoAngle;
325 std::vector<int> m_taub2bAngleCut;
332 std::vector<int> m_taub2b2AngleCut;
336 std::vector<double> m_taub2b2CLELabCut;
339 std::vector<int> m_taub2b3AngleCut;
345 std::vector<double> m_taub2b3CLELabCut;
349 std::vector<double> m_lmlCLELabCut;
351 std::vector<double> m_lmlCLECMSCut;
361 std::vector<double> m_EventTimingQualityThreshold;
364
377
378 };
379//
380//
381//
383} // namespace Belle2
A Class of ECL Trigger clustering.
A Class of ECL Trigger clustering.
A Class of ECL Trigger clustering.
class TrgEclDataBase;
A class of TC Mapping.
int m_lml00NCLforMinE
the number of cluster for lml00
double m_taub2bEtotCut
tau b2b total energy (TC theta ID =1-17) (GeV)
void setlml13ThetaIdSelection(const int ilml13ThetaIdSelection)
set ThetaID for lml13
std::vector< int > m_hie12BhabhaVetoAngle
hie12 angle selection of additional Bhabha addition in CM frame in degree
void setTaub2b2Cut(const std::vector< int > &iTaub2b2AngleCut, const double iTaub2b2EtotCut, const std::vector< double > &iTaub2b2CLELabCut)
set taub2b2 cut
TrgEclDataBase * m_obj_database
Beam Background veto object.
void setNofTopTC(int noftoptc)
set # of considered TC in energy weighted Timing method
std::vector< int > m_3DBhabhaSelectionPreScale
3D Selection Bhabha Energy PreScale
int m_lml12NCLforMinE
the number of cluster for lml12
std::vector< double > m_2DBhabhaThresholdBWD
2D Bhabha Energy Threshold
double m_ECLBurstThreshold
ECL Burst Bit Threshold.
int m_Clustering
clustering option
std::vector< double > m_lmlCLECMSCut
Low Multiplicity cluster E cut in CMS in GeV.
void setTaub2bAngleCut(const std::vector< int > &itaub2bAngleCut)
set tau b2b 2 cluster angle cut
std::vector< int > m_HitTCId
Hit TC Energy in time window.
void makeTriggerBit(int, int, int, int, double, int, int, int, int, int, std::vector< int >, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int, int)
make Trigger bit except for Low Multiplicity related bit
std::vector< double > m_TotalEnergy
Total Energy Threshold (low, high, lum) in Lab in GeV.
void setlmlCLELabCut(const std::vector< double > &ilmlCLELabCut)
set Low Multiplicity cluster E cut in Lab in GeV
std::vector< int > m_taub2bAngleCut
tau b2b 2 cluster angle cut (degree) (dphi low, dphi high, theta_sum low, theta_sum high)
int m_ClusterLimit
The limit number of Cluster.
std::vector< std::vector< double > > m_PhiRingSum
Phi ring sum.
std::vector< double > m_TCHitTiming
Hit TC Timing in time window.
void simulate02(int)
simulates ECL trigger for Data Analysis
void setTimeWindow(int timewindow)
Set Trigger Decision window size.
std::vector< std::vector< double > > m_TCTiming
Hit TC Timing.
std::vector< int > m_mumuAngle
mumu bit Angle
std::vector< int > m_3DBhabhaVetoInTrackThetaRegion
Theta region (low, high) of 3D Bhabha Veto InTrack.
int m_PrescaleCounter
Bhabha Prescale Counter.
std::string version(void) const
returns version.
double m_hie4LowCLELabCut
(hie4) CL E cut for minimum energy cluster in Lab in GeV
void setlml12NCLforMinE(const int ilml12NCLforMinE)
set the number of cluster for lml12
TrgEclMaster(void)
TrgEclMaster Constructor.
int m_EventTiming
EventTiming option.
double setTotalEnergy(std::vector< double >)
Set Total Energy.
void setEventTimingMethod(int EventTiming)
Set Cluster.
void setTaub2bEtotCut(double itaub2bEtotCut)
set tau b2b total energy cut
void setBhabhaParameter(void)
set parameters for TrgEclBhabha
double m_OverlapWindow
TRG Decision overlap window.
void setClusterLimit(int limit)
Set the limit # of Cluster.
void set3DBhabhaVetoAngle(const std::vector< int > &i3DBhabhaVetoAngle)
set 3D veto Bhabha Energy Angle
std::vector< int > m_3DBhabhaVetoAngle
3D Veto Bhabha Energy Angle
std::vector< std::vector< int > > m_TCBeamBkgTag
Hit TC Beam Background tag.
double m_ADCtoEnergy
conversion factor of ADC to Energy in Lab in GeV
void setClusterMethod(int cluster)
Get Event timing.
void setlmlCLECMSCut(const std::vector< double > &ilmlCLECMSCut)
set Low Multiplicity cluster E cut in CMS in GeV
int m_Triggerbit[4]
ECL Trigger bit.
void setADCtoEnergy(const double ADCtoEnergy)
set conversion factor of ADC to Energy in Lab in GeV
void setTotalEnergyThreshold(const std::vector< double > &iTotalEnergy)
set Total Energy Threshold (low, high, lum)
void sethie4LowCLELabCut(const double hie4LowCLELabCut)
(hie4) CL E cut for miniimum energy cluster in Lab in GeV
int m_lml13ThetaIdSelection
ThetaID for lml13.
std::vector< double > m_3DBhabhaVetoThreshold
3D Veto Bhabha Energy Threshold
double m_taub2b2EtotCut
taub2b2 total energy (TC theta ID =1-17) (GeV)
void setRS(std::vector< int >, std::vector< double >, std::vector< double > &, std::vector< std::vector< double > > &)
ECL bit information for GDL.
TrgEclMapping * m_obj_map
Mapping object.
std::vector< double > m_TCHitEnergy
Hit TC Energy in time window.
void set2DBhabhaThreshold(const std::vector< double > &i2DBhabhaThresholdFWD, const std::vector< double > &i2DBhabhaThresholdBWD)
set 2D Bhabha Energy Threshold
std::vector< double > m_taub2b2CLELabCut
taub2b2 cluster energy cut(high, low) (GeV) in lab
std::vector< double > m_lmlCLELabCut
Low Multiplicity cluster E cut in Lab in GeV.
void setmumuAngle(const std::vector< int > &imumuAngle)
set mumu bit Angle
void makeLowMultiTriggerBit(std::vector< int >, std::vector< double >, int)
make LowMultiTriggerBit
void set3DBhabhaSelectionAngle(const std::vector< int > &i3DBhabhaSelectionAngle)
set 3D selection Bhabha Energy Angle
int m_Lowmultibit
Low Multiplicity bit.
int getTriggerbit(int i)
Get ECL Trigger bit.
void sethie12BhabhaVetoAngle(const std::vector< int > &ihie12BhabhaVetoAngle)
set hie12 3D Bhabha addition Angle
std::vector< double > m_3DBhabhaSelectionThreshold
3D Selection Bhabha Energy Threshold
void setmumuThreshold(double mumuThreshold)
set mumu bit Threshold
void initialize(void)
initialize
void set3DBhabhaSelectionThreshold(const std::vector< double > &i3DBhabhaSelectionThreshold)
set 3D selection Bhabha Energy Threshold
TrgEclMaster & operator=(TrgEclMaster &)=delete
Assignment operator, deleted.
void setEventTimingQualityThreshold(const std::vector< double > &iEventTimingQualityThreshold)
set energy threshold(low and high) of event timing quality flag (GeV)
TrgEclBhabha * m_obj_bhabha
Bhabha object.
int getLowmultibit()
Get Low Multiplicity Trigger Bit.
void setECLBurstThreshold(int ECLBurstThreshold)
set mumu bit Threshold
void set3DBhabhaSelectionPreScale(const std::vector< int > &i3DBhabhaSelectionPreScale)
set 3D selection Bhabha Energy PreScale
double m_taub2bCLELabCut
taub2b one Cluster energy selection in Lab (GeV)
double m_mumuThreshold
mumu bit Energy Threshold
int m_PrescaleFactor
Bhabha Prescale Factor.
std::string name(void) const
returns name.
std::vector< int > m_3DBhabhaSelectionAngle
3D Selection Bhabha Energy Angle
void setlml00NCLforMinE(const int ilml00NCLforMinE)
set the number of cluster for lml00
std::vector< int > m_taub2b2AngleCut
taub2b2 angle selection(degree) (3,2,1,0) = (dphi low, dphi high, theta_sum low, theta_sum high)
double m_taub2b3EtotCut
taub2b3 total energy (TC theta ID =1-17) (GeV)
std::vector< double > m_EventTimingQualityThreshold
energy threshold(low, high) for quality flag (GeV)
std::vector< int > m_TCHitBeamBkgTag
Hit TC Beam Background tag in time window.
void setTaub2bCLELabCut(double itaub2bCLELabCut)
set tau b2b 1Cluster energy cut
double m_taub2b3CLEb2bLabCut
taub2b3 cluster energy cut in lab for one of b2b clusters (GeV)
void simulate01(int)
simulates ECL trigger for Global Cosmic data
TrgEclBeamBKG * m_obj_beambkg
Beam Background veto object.
static TrgEclMaster * getTrgEclMaster(void)
get pointer of TrgEclMaster object
void setOverlapWindow(int overlapwindow)
Set Trigger Decision overlap window size.
void setTaub2b3Cut(const std::vector< int > &iTaub2b3AngleCut, const double iTaub2b3EtotCut, const double iTaub2b3CLEb2bLabCut, const std::vector< double > &iTaub2b3CLELabCut)
set taub2b3 cut
std::vector< std::vector< std::vector< double > > > m_ThetaRingSum
Theta ring sum.
void set3DBhabhaVetoInTrackThetaRegion(const std::vector< int > &i3DBhabhaVetoInTrackThetaRegion)
set theta ID region (low and high) of 3DBhabhaVeto InTrack for gg selection
void set3DBhabhaVetoThreshold(const std::vector< double > &i3DBhabhaVetoThreshold)
set 3D veto Bhabha Energy Threshold
TrgEclCluster * m_obj_cluster
Cluster object.
virtual ~TrgEclMaster()
TrgEclMaster Destructor.
std::vector< double > m_2DBhabhaThresholdFWD
2D Bhabha Energy Threshold
std::vector< std::vector< double > > m_TCEnergy
Hit TC Energy.
TrgEclTiming * m_obj_timing
EventTiming object.
std::vector< double > m_taub2b3CLELabCut
taub2b3 cluster energy cut(low and high) in lab for all clusters (GeV)
TrgEclMaster(TrgEclMaster &)=delete
Copy constructor, deleted.
std::vector< int > m_taub2b3AngleCut
taub2b3 selection cuts (3,2,1,0) = (dphi low, dphi high, theta_sum low, theta_sum high)
double m_TimeWindow
Hit TC Energy in time window.
A Class of ECL Trigger clustering.
Abstract base class for different kinds of events.