Belle II Software  release-08-01-10
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 //
24 namespace Belle2 {
29 //
30 //
31 //
33  class TrgEclMaster {
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 
253  double m_TimeWindow;
256 
260  int m_Bhabha;
268  int m_Triggerbit[4];
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;
334  std::vector<double> m_EventTimingQualityThresholds;
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:31
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 setRS(std::vector< int >, std::vector< double >, std::vector< double > &, std::vector< std::vector< double >> &)
ECL bit information for GDL.
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
static TrgEclMaster * getTrgEclMaster(void)
get pointer of TrgEclMaster object
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
TrgEclMaster & operator=(TrgEclMaster &)=delete
Assignment operator, deleted.
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
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
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.