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(int);
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>);
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, int, int,
102 std::vector<int>, int, int, int, int,
103 int, int, int, int, int, int, int,
104 int, int, int, int, int);//one int parameter was added for taub2b3
105
107 double setTotalEnergy(std::vector<double>);
109 int getTriggerbit(int i) {return m_Triggerbit[i];}
113 void set2DBhabhaThreshold(const std::vector<double>& i2DBhabhaThresholdFWD,
114 const std::vector<double>& i2DBhabhaThresholdBWD)
115 {
116 m_2DBhabhaThresholdFWD = i2DBhabhaThresholdFWD;
117 m_2DBhabhaThresholdBWD = i2DBhabhaThresholdBWD;
118 }
120 void set3DBhabhaSelectionThreshold(const std::vector<double>& i3DBhabhaSelectionThreshold)
121 {
122 m_3DBhabhaSelectionThreshold = i3DBhabhaSelectionThreshold;
123 };
125 void set3DBhabhaVetoThreshold(const std::vector<double>& i3DBhabhaVetoThreshold)
126 {
127 m_3DBhabhaVetoThreshold = i3DBhabhaVetoThreshold;
128 };
129
131 void set3DBhabhaSelectionAngle(const std::vector<double>& i3DBhabhaSelectionAngle)
132 {
133 m_3DBhabhaSelectionAngle = i3DBhabhaSelectionAngle;
134 };
136 void set3DBhabhaVetoAngle(const std::vector<double>& i3DBhabhaVetoAngle)
137 {
138 m_3DBhabhaVetoAngle = i3DBhabhaVetoAngle;
139 };
141 void setmumuThreshold(int mumuThreshold) {m_mumuThreshold = mumuThreshold; }
143 void setmumuAngle(const std::vector<double>& imumuAngle)
144 {
145 m_mumuAngle = imumuAngle;
146 }
148 void set3DBhabhaAddAngleCut(const std::vector<double>& i3DBhabhaAddAngleCut)
149 {
150 m_3DBhabhaAddAngleCut = i3DBhabhaAddAngleCut;
151 }
153 void setTaub2bAngleCut(const std::vector<int>& itaub2bAngleCut)
154 {
155 m_taub2bAngleCut = itaub2bAngleCut;
156 }
158 void setTaub2bEtotCut(double itaub2bEtotCut)
159 {
160 m_taub2bEtotCut = itaub2bEtotCut;
161 }
163 void setTaub2bClusterECut(double itaub2bClusterECut1,
164 double itaub2bClusterECut2)
165 {
166 m_taub2bClusterECut1 = itaub2bClusterECut1;
167 m_taub2bClusterECut2 = itaub2bClusterECut2;
168 }
170 void setTaub2b2Cut(const std::vector<int>& iTaub2b2AngleCut,
171 const double iTaub2b2EtotCut,
172 const double iTaub2b2CLEEndcapCut,
173 const double iTaub2b2CLECut)
174 {
175 m_taub2b2AngleCut = iTaub2b2AngleCut;
176 m_taub2b2EtotCut = iTaub2b2EtotCut;
177 m_taub2b2CLEEndcapCut = iTaub2b2CLEEndcapCut;
178 m_taub2b2CLECut = iTaub2b2CLECut;
179 }
181 void setTaub2b3Cut(const std::vector<int>& iTaub2b3AngleCut,
182 const double iTaub2b3EtotCut,
183 const double iTaub2b3CLEb2bCut,
184 const double iTaub2b3CLELowCut,
185 const double iTaub2b3CLEHighCut)
186 {
187 m_taub2b3AngleCut = iTaub2b3AngleCut;
188 m_taub2b3EtotCut = iTaub2b3EtotCut;
189 m_taub2b3CLEb2bCut = iTaub2b3CLEb2bCut;
190 m_taub2b3CLELowCut = iTaub2b3CLELowCut;
191 m_taub2b3CLEHighCut = iTaub2b3CLEHighCut;
192 }
194 void setn300MeVClusterThreshold(int n300MeVCluster)
195 {
196 m_n300MeVCluster = n300MeVCluster;
197 }
199 void setECLBurstThreshold(int ECLBurstThreshold)
200 {
201 m_ECLBurstThreshold = (double) ECLBurstThreshold;
202 }
204 void setTotalEnergyThreshold(const std::vector<double>& iTotalEnergy)
205 {
206 m_TotalEnergy = iTotalEnergy;
207 }
209 void setLowMultiplicityThreshold(const std::vector<double>& iLowMultiThreshold)
210 {
211 m_LowMultiThreshold = iLowMultiThreshold;
212 }
214 void set3DBhabhaVetoInTrackThetaRegion(const std::vector<int>& i3DBhabhaVetoInTrackThetaRegion)
215 {
216 m_3DBhabhaVetoInTrackThetaRegion = i3DBhabhaVetoInTrackThetaRegion;
217 }
219 void setEventTimingQualityThresholds(const std::vector<double>& iEventTimingQualityThresholds)
220 {
221 m_EventTimingQualityThresholds = iEventTimingQualityThresholds;
222 }
223
224 private:
225
227 std::vector<std::vector<double>> m_TCEnergy;
229 std::vector<std::vector<double>> m_TCTiming;
231 std::vector<std::vector<int>> m_TCBeamBkgTag;
232
234 std::vector<int> m_HitTCId;
236 std::vector<double> m_TCHitEnergy;
238 std::vector<double> m_TCHitTiming;
240 std::vector<int> m_TCHitBeamBkgTag;
241
243 std::vector< std::vector<double>> m_PhiRingSum;
245 std::vector<std::vector<std::vector<double>>> m_ThetaRingSum;
246
248 // std::vector<double> ClusterEnergy;
250 // std::vector<double> ClusterTiming;
251
256
275
277 std::vector<double> m_2DBhabhaThresholdFWD;
279 std::vector<double> m_2DBhabhaThresholdBWD;
281 std::vector<double> m_3DBhabhaSelectionThreshold;
283 std::vector<double> m_3DBhabhaVetoThreshold;
285 std::vector<double> m_3DBhabhaSelectionAngle;
287 std::vector<double> m_3DBhabhaVetoAngle;
291 std::vector<double> m_mumuAngle;
293 std::vector<double> m_3DBhabhaAddAngleCut;
296 std::vector<int> m_taub2bAngleCut;
305 std::vector<int> m_taub2b2AngleCut;
314 std::vector<int> m_taub2b3AngleCut;
328 std::vector<double> m_TotalEnergy;
330 std::vector<double> m_LowMultiThreshold;
335
348
349 };
350//
351//
352//
354} // namespace Belle2
A Class of ECL Trigger clustering
Definition: TrgEclBeamBKG.h:29
A Class of ECL Trigger clustering
Definition: TrgEclBhabha.h:32
A Class of ECL Trigger clustering
Definition: TrgEclCluster.h:30
class TrgEclDataBase;
A class of TC Mapping.
Definition: TrgEclMapping.h:26
double m_taub2b3CLELowCut
taub2b3 cluster energy low cut in lab for all clusters (GeV)
Definition: TrgEclMaster.h:320
void setLowMultiplicityThreshold(const std::vector< double > &iLowMultiThreshold)
set Low Multiplicity Threshold
Definition: TrgEclMaster.h:209
double m_taub2bEtotCut
tau b2b total energy (TC theta ID =1-17) (GeV)
Definition: TrgEclMaster.h:298
double m_taub2b3CLEHighCut
taub2b3 cluster energy high cut in lab for all clusters (GeV)
Definition: TrgEclMaster.h:322
void setEventTimingQualityThresholds(const std::vector< double > &iEventTimingQualityThresholds)
set energy threshold(low and high) of event timing quality flag (GeV)
Definition: TrgEclMaster.h:219
TrgEclDataBase * m_obj_database
Beam Backgroud veto object.
Definition: TrgEclMaster.h:347
std::vector< double > m_LowMultiThreshold
Low Multiplicity Threshold.
Definition: TrgEclMaster.h:330
void setNofTopTC(int noftoptc)
set # of considered TC in energy weighted Timing method
Definition: TrgEclMaster.h:90
std::vector< double > m_2DBhabhaThresholdBWD
2D Bhabha Energy Threshold
Definition: TrgEclMaster.h:279
double m_ECLBurstThreshold
ECL Burst Bit Threshold.
Definition: TrgEclMaster.h:326
void setBhabhaMethod(int bhabha)
Set Bhabha.
Definition: TrgEclMaster.h:82
std::vector< double > m_mumuAngle
mumu bit Angle
Definition: TrgEclMaster.h:291
int m_Clustering
clutering option
Definition: TrgEclMaster.h:258
void setTaub2bAngleCut(const std::vector< int > &itaub2bAngleCut)
set tau b2b 2 cluster angle cut
Definition: TrgEclMaster.h:153
std::vector< int > m_HitTCId
Hit TC Energy in time window.
Definition: TrgEclMaster.h:234
std::vector< double > m_EventTimingQualityThresholds
energy threshold(low, high) for quality flag (GeV)
Definition: TrgEclMaster.h:334
std::vector< double > m_TotalEnergy
Total Energy Theshold (low, high, lum)
Definition: TrgEclMaster.h:328
std::vector< int > m_taub2bAngleCut
tau b2b 2 cluster angle cut (degree) (dphi low, dphi high, theta_sum low, theta_sum high)
Definition: TrgEclMaster.h:296
void set3DBhabhaAddAngleCut(const std::vector< double > &i3DBhabhaAddAngleCut)
set 3D Bhabha addtion Angle selection
Definition: TrgEclMaster.h:148
int m_ClusterLimit
The limit number of Cluster.
Definition: TrgEclMaster.h:266
std::vector< std::vector< double > > m_PhiRingSum
Phi ring sum.
Definition: TrgEclMaster.h:243
std::vector< double > m_TCHitTiming
Hit TC Timing in time window.
Definition: TrgEclMaster.h:238
void simulate02(int)
simulates ECL trigger for Data Analysis
void setTimeWindow(int timewindow)
Set Trigger Decision window size.
Definition: TrgEclMaster.h:86
std::vector< std::vector< double > > m_TCTiming
Hit TC Timing.
Definition: TrgEclMaster.h:229
std::vector< int > m_3DBhabhaVetoInTrackThetaRegion
Theta region (low, high) of 3D Bhabha Veto InTrack.
Definition: TrgEclMaster.h:332
int m_PrescaleCounter
Bhabha Prescale Countor.
Definition: TrgEclMaster.h:274
std::string version(void) const
returns version.
TrgEclMaster(void)
TrgEclMaster Constructor.
Definition: TrgEclMaster.cc:83
int m_EventTiming
EventTiming option.
Definition: TrgEclMaster.h:262
void initialize(int)
initialize
double setTotalEnergy(std::vector< double >)
Set Total Energy.
void setEventTimingMethod(int EventTiming)
Set Cluster.
Definition: TrgEclMaster.h:84
void setTaub2bEtotCut(double itaub2bEtotCut)
set tau b2b total energy cut
Definition: TrgEclMaster.h:158
void makeLowMultiTriggerBit(std::vector< int >, std::vector< double >)
make LowMultiTriggerBit
double m_OverlapWindow
TRG Decision overlap window.
Definition: TrgEclMaster.h:255
void setClusterLimit(int limit)
Set the limit # of Cluster.
Definition: TrgEclMaster.h:80
std::vector< std::vector< int > > m_TCBeamBkgTag
Hit TC Beam Background tag.
Definition: TrgEclMaster.h:231
void setClusterMethod(int cluster)
Get Event timing.
Definition: TrgEclMaster.h:78
int m_n300MeVCluster
The number of Cluster exceeding 300 MeV.
Definition: TrgEclMaster.h:324
int m_Triggerbit[4]
ECL Trigger bit.
Definition: TrgEclMaster.h:268
void setTotalEnergyThreshold(const std::vector< double > &iTotalEnergy)
set Total Energy Theshold (low, high, lum)
Definition: TrgEclMaster.h:204
std::vector< double > m_3DBhabhaSelectionAngle
3D Selection Bhabha Energy Angle
Definition: TrgEclMaster.h:285
std::vector< double > m_3DBhabhaVetoThreshold
3D Veto Bhabha Energy Threshold
Definition: TrgEclMaster.h:283
std::vector< double > m_3DBhabhaAddAngleCut
Angle selection of additional Bhabha addition in CM frame.
Definition: TrgEclMaster.h:293
double m_taub2b2EtotCut
taub2b2 total energy (TC theta ID =1-17) (GeV)
Definition: TrgEclMaster.h:307
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.
Definition: TrgEclMaster.h:337
std::vector< double > m_TCHitEnergy
Hit TC Energy in time window.
Definition: TrgEclMaster.h:236
void setmumuThreshold(int mumuThreshold)
set mumu bit Threshold
Definition: TrgEclMaster.h:141
void set2DBhabhaThreshold(const std::vector< double > &i2DBhabhaThresholdFWD, const std::vector< double > &i2DBhabhaThresholdBWD)
set 2D Bhabha Energy Threshold
Definition: TrgEclMaster.h:113
void set3DBhabhaVetoAngle(const std::vector< double > &i3DBhabhaVetoAngle)
set 3D veto Bhabha Energy Angle
Definition: TrgEclMaster.h:136
int m_Lowmultibit
Low Multiplicity bit.
Definition: TrgEclMaster.h:270
int getTriggerbit(int i)
Get ECL Trigger bit.
Definition: TrgEclMaster.h:109
void setTaub2b2Cut(const std::vector< int > &iTaub2b2AngleCut, const double iTaub2b2EtotCut, const double iTaub2b2CLEEndcapCut, const double iTaub2b2CLECut)
set taub2b2 cut
Definition: TrgEclMaster.h:170
std::vector< double > m_3DBhabhaVetoAngle
3D Veto Bhabha Energy Angle
Definition: TrgEclMaster.h:287
std::vector< double > m_3DBhabhaSelectionThreshold
3D Selection Bhabha Energy Threshold
Definition: TrgEclMaster.h:281
void set3DBhabhaSelectionAngle(const std::vector< double > &i3DBhabhaSelectionAngle)
set 3D selection Bhabha Energy Angle
Definition: TrgEclMaster.h:131
void set3DBhabhaSelectionThreshold(const std::vector< double > &i3DBhabhaSelectionThreshold)
set 3D selection Bhabha Energy Threshold
Definition: TrgEclMaster.h:120
TrgEclMaster & operator=(TrgEclMaster &)=delete
Assignment operator, deleted.
int m_Bhabha
Bhabha option.
Definition: TrgEclMaster.h:260
TrgEclBhabha * m_obj_bhabha
Bhabha object.
Definition: TrgEclMaster.h:343
int getLowmultibit()
Get Low Multiplicity Trigger Bit.
Definition: TrgEclMaster.h:111
void setECLBurstThreshold(int ECLBurstThreshold)
set mumu bit Threshold
Definition: TrgEclMaster.h:199
double m_mumuThreshold
mumu bit Energy Threshold
Definition: TrgEclMaster.h:289
int m_PrescaleFactor
Bhabha Prescale Factor.
Definition: TrgEclMaster.h:272
double m_taub2bClusterECut2
taub2b one Cluster energy selection (GeV)
Definition: TrgEclMaster.h:302
std::string name(void) const
returns name.
std::vector< int > m_taub2b2AngleCut
taub2b2 angle selection(degree) (3,2,1,0) = (dphi low, dphi high, theta_sum low, theta_sum high)
Definition: TrgEclMaster.h:305
double m_taub2b3EtotCut
taub2b3 total energy (TC theta ID =1-17) (GeV)
Definition: TrgEclMaster.h:316
std::vector< int > m_TCHitBeamBkgTag
Hit TC Beam Background tag in time window.
Definition: TrgEclMaster.h:240
double m_taub2b3CLEb2bCut
taub2b3 cluster energy cut in lab for one of b2b clusters (GeV)
Definition: TrgEclMaster.h:318
void simulate01(int)
simulates ECL trigger for Global Cosmic data
TrgEclBeamBKG * m_obj_beambkg
Beam Backgroud veto object.
Definition: TrgEclMaster.h:345
static TrgEclMaster * getTrgEclMaster(void)
get pointer of TrgEclMaster object
void setOverlapWindow(int overlapwindow)
Set Trigger Decision overlap window size.
Definition: TrgEclMaster.h:88
std::vector< std::vector< std::vector< double > > > m_ThetaRingSum
Theta ring sum.
Definition: TrgEclMaster.h:245
void set3DBhabhaVetoInTrackThetaRegion(const std::vector< int > &i3DBhabhaVetoInTrackThetaRegion)
set theta ID region (low and high) of 3DBhabhaVeto InTrack for gg selection
Definition: TrgEclMaster.h:214
double m_taub2bClusterECut1
taub2b one Cluster energy selection (GeV)
Definition: TrgEclMaster.h:300
void makeTriggerBit(int, int, int, int, double, 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
void setn300MeVClusterThreshold(int n300MeVCluster)
set the number of cluster exceeding 300 MeV
Definition: TrgEclMaster.h:194
void set3DBhabhaVetoThreshold(const std::vector< double > &i3DBhabhaVetoThreshold)
set 3D veto Bhabha Energy Threshold
Definition: TrgEclMaster.h:125
TrgEclCluster * m_obj_cluster
Cluster object.
Definition: TrgEclMaster.h:339
void setmumuAngle(const std::vector< double > &imumuAngle)
set mumu bit Angle selection
Definition: TrgEclMaster.h:143
virtual ~TrgEclMaster()
TrgEclMaster Destructor.
std::vector< double > m_2DBhabhaThresholdFWD
2D Bhabha Energy Threshold
Definition: TrgEclMaster.h:277
std::vector< std::vector< double > > m_TCEnergy
Hit TC Energy.
Definition: TrgEclMaster.h:227
TrgEclTiming * m_obj_timing
EventTiming object.
Definition: TrgEclMaster.h:341
void setTaub2b3Cut(const std::vector< int > &iTaub2b3AngleCut, const double iTaub2b3EtotCut, const double iTaub2b3CLEb2bCut, const double iTaub2b3CLELowCut, const double iTaub2b3CLEHighCut)
set taub2b3 cut
Definition: TrgEclMaster.h:181
double m_taub2b2CLECut
taub2b2 cluseter energy cut (GeV)
Definition: TrgEclMaster.h:311
double m_taub2b2CLEEndcapCut
taub2b2 cluster energy cut for endcap cluster (GeV)
Definition: TrgEclMaster.h:309
TrgEclMaster(TrgEclMaster &)=delete
Copy constructor, deleted.
void setTaub2bClusterECut(double itaub2bClusterECut1, double itaub2bClusterECut2)
set tau b2b 1Cluster energy cut
Definition: TrgEclMaster.h:163
std::vector< int > m_taub2b3AngleCut
taub2b3 selection cuts (3,2,1,0) = (dphi low, dphi high, theta_sum low, theta_sum high)
Definition: TrgEclMaster.h:314
double m_TimeWindow
Hit TC Energy in time window.
Definition: TrgEclMaster.h:253
A Class of ECL Trigger clustering
Definition: TrgEclTiming.h:29
Abstract base class for different kinds of events.