Belle II Software prerelease-10-00-00a
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 setBhabhaMethod(int bhabha) {m_Bhabha = bhabha;}
84 void setEventTimingMethod(int EventTiming) {m_EventTiming = EventTiming;}
86 void setTimeWindow(int timewindow) {m_TimeWindow = timewindow;}
88 void setOverlapWindow(int overlapwindow) {m_OverlapWindow = overlapwindow;}
90 void setNofTopTC(int noftoptc) {m_NofTopTC = noftoptc;}
92 void makeLowMultiTriggerBit(std::vector<int>, std::vector<double>, int);
93
95 /*
96 void makeTriggerBit(int, int, int, int, double, int, int,
97 std::vector<int>, int, int, int, int,
98 int, int, int, int, int, int, int,
99 int, int, int, int);
100 */
101 void makeTriggerBit(int, int, int, int, double,
102 int, int, int, int, int,
103 std::vector<int>, int, int, int, int,
104 int, int, int, int, int, int, int,
105 int, int, int, int, int);//one int parameter was added for taub2b3
106
108 double setTotalEnergy(std::vector<double>);
110 int getTriggerbit(int i) {return m_Triggerbit[i];}
113
115 void setADCtoEnergy(const double ADCtoEnergy)
116 {
117 m_ADCtoEnergy = ADCtoEnergy;
118 }
119
120 void setTotalEnergyThreshold(const std::vector<double>& iTotalEnergy)
121 {
122 m_TotalEnergy = iTotalEnergy;
123 }
124
125 void set2DBhabhaThreshold(const std::vector<double>& i2DBhabhaThresholdFWD,
126 const std::vector<double>& i2DBhabhaThresholdBWD)
127 {
128 m_2DBhabhaThresholdFWD = i2DBhabhaThresholdFWD;
129 m_2DBhabhaThresholdBWD = i2DBhabhaThresholdBWD;
130 }
131
132 void set3DBhabhaVetoThreshold(const std::vector<double>& i3DBhabhaVetoThreshold)
133 {
134 m_3DBhabhaVetoThreshold = i3DBhabhaVetoThreshold;
135 };
136
137 void set3DBhabhaVetoAngle(const std::vector<int>& i3DBhabhaVetoAngle)
138 {
139 m_3DBhabhaVetoAngle = i3DBhabhaVetoAngle;
140 };
141
142 void set3DBhabhaSelectionThreshold(const std::vector<double>& i3DBhabhaSelectionThreshold)
143 {
144 m_3DBhabhaSelectionThreshold = i3DBhabhaSelectionThreshold;
145 };
146
147 void set3DBhabhaSelectionAngle(const std::vector<int>& i3DBhabhaSelectionAngle)
148 {
149 m_3DBhabhaSelectionAngle = i3DBhabhaSelectionAngle;
150 };
151
152 void set3DBhabhaSelectionPreScale(const std::vector<int>& i3DBhabhaSelectionPreScale)
153 {
154 m_3DBhabhaSelectionPreScale = i3DBhabhaSelectionPreScale;
155 };
156
157 void setmumuThreshold(double mumuThreshold) {m_mumuThreshold = mumuThreshold; }
159 void setmumuAngle(const std::vector<int>& imumuAngle)
160 {
161 m_mumuAngle = imumuAngle;
162 }
163
164 void sethie12BhabhaVetoAngle(const std::vector<int>& ihie12BhabhaVetoAngle)
165 {
166 m_hie12BhabhaVetoAngle = ihie12BhabhaVetoAngle;
167 }
168
169 void setTaub2bAngleCut(const std::vector<int>& itaub2bAngleCut)
170 {
171 m_taub2bAngleCut = itaub2bAngleCut;
172 }
173
174 void setTaub2bEtotCut(double itaub2bEtotCut)
175 {
176 m_taub2bEtotCut = itaub2bEtotCut;
177 }
178
179 void setTaub2bCLELabCut(double itaub2bCLELabCut)
180 {
181 m_taub2bCLELabCut = itaub2bCLELabCut;
182 }
183
184 void setTaub2b2Cut(const std::vector<int>& iTaub2b2AngleCut,
185 const double iTaub2b2EtotCut,
186 const std::vector<double>& iTaub2b2CLELabCut)
187 {
188 m_taub2b2AngleCut = iTaub2b2AngleCut;
189 m_taub2b2EtotCut = iTaub2b2EtotCut;
190 m_taub2b2CLELabCut = iTaub2b2CLELabCut;
191 }
192
193 void setTaub2b3Cut(const std::vector<int>& iTaub2b3AngleCut,
194 const double iTaub2b3EtotCut,
195 const double iTaub2b3CLEb2bLabCut,
196 const std::vector<double>& iTaub2b3CLELabCut)
197 {
198 m_taub2b3AngleCut = iTaub2b3AngleCut;
199 m_taub2b3EtotCut = iTaub2b3EtotCut;
200 m_taub2b3CLEb2bLabCut = iTaub2b3CLEb2bLabCut;
201 m_taub2b3CLELabCut = iTaub2b3CLELabCut;
202 }
203
204 void setECLBurstThreshold(int ECLBurstThreshold)
205 {
206 m_ECLBurstThreshold = (double) ECLBurstThreshold;
207 }
208
209 void setlmlCLELabCut(const std::vector<double>& ilmlCLELabCut)
210 {
211 m_lmlCLELabCut = ilmlCLELabCut;
212 }
213
214 void setlmlCLECMSCut(const std::vector<double>& ilmlCLECMSCut)
215 {
216 m_lmlCLECMSCut = ilmlCLECMSCut;
217 }
218
219 void setlml00NCLforMinE(const int ilml00NCLforMinE)
220 {
221 m_lml00NCLforMinE = ilml00NCLforMinE;
222 }
223
224 void setlml12NCLforMinE(const int ilml12NCLforMinE)
225 {
226 m_lml12NCLforMinE = ilml12NCLforMinE;
227 }
228
229 void setlml13ThetaIdSelection(const int ilml13ThetaIdSelection)
230 {
231 m_lml13ThetaIdSelection = ilml13ThetaIdSelection;
232 }
233
234 void set3DBhabhaVetoInTrackThetaRegion(const std::vector<int>& i3DBhabhaVetoInTrackThetaRegion)
235 {
236 m_3DBhabhaVetoInTrackThetaRegion = i3DBhabhaVetoInTrackThetaRegion;
237 }
238
239 void setEventTimingQualityThreshold(const std::vector<double>& iEventTimingQualityThreshold)
240 {
241 m_EventTimingQualityThreshold = iEventTimingQualityThreshold;
242 }
243
244 void sethie4LowCLELabCut(const double hie4LowCLELabCut)
245 {
246 m_hie4LowCLELabCut = hie4LowCLELabCut;
247 }
248
249 void setBhabhaParameter(void);
250
251 private:
252
254 std::vector<std::vector<double>> m_TCEnergy;
256 std::vector<std::vector<double>> m_TCTiming;
258 std::vector<std::vector<int>> m_TCBeamBkgTag;
259
261 std::vector<int> m_HitTCId;
263 std::vector<double> m_TCHitEnergy;
265 std::vector<double> m_TCHitTiming;
267 std::vector<int> m_TCHitBeamBkgTag;
268
270 std::vector< std::vector<double>> m_PhiRingSum;
272 std::vector<std::vector<std::vector<double>>> m_ThetaRingSum;
273
275 // std::vector<double> ClusterEnergy;
277 // std::vector<double> ClusterTiming;
278
283
302
306 std::vector<double> m_TotalEnergy;
308 std::vector<double> m_2DBhabhaThresholdFWD;
310 std::vector<double> m_2DBhabhaThresholdBWD;
312 std::vector<double> m_3DBhabhaVetoThreshold;
314 std::vector<int> m_3DBhabhaVetoAngle;
316 std::vector<double> m_3DBhabhaSelectionThreshold;
318 std::vector<int> m_3DBhabhaSelectionAngle;
324 std::vector<int> m_mumuAngle;
326 std::vector<int> m_hie12BhabhaVetoAngle;
329 std::vector<int> m_taub2bAngleCut;
336 std::vector<int> m_taub2b2AngleCut;
340 std::vector<double> m_taub2b2CLELabCut;
343 std::vector<int> m_taub2b3AngleCut;
349 std::vector<double> m_taub2b3CLELabCut;
353 std::vector<double> m_lmlCLELabCut;
355 std::vector<double> m_lmlCLECMSCut;
365 std::vector<double> m_EventTimingQualityThreshold;
368
381
382 };
383//
384//
385//
387} // 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.
void setBhabhaMethod(int bhabha)
Set Bhabha.
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)
int m_Bhabha
Bhabha option.
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.