Belle II Software  release-06-00-14
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 
38  static TrgEclMaster* getTrgEclMaster(void);
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) {_Clustering = cluster;}
80  void setClusterLimit(int limit) {_ClusterLimit = limit;}
82  void setBhabhaMethod(int bhabha) {_Bhabha = bhabha;}
84  void setEventTimingMethod(int EventTiming) {_EventTiming = EventTiming;}
86  void setTimeWindow(int timewindow) {TimeWindow = timewindow;}
88  void setOverlapWindow(int overlapwindow) {OverlapWindow = overlapwindow;}
90  void setNofTopTC(int noftoptc) {_NofTopTC = noftoptc;}
92  void makeLowMultiTriggerBit(std::vector<int>, std::vector<double>);
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, int, int, int);
98  double setTotalEnergy(std::vector<double>);
100  int getTriggerbit(int i) {return _Triggerbit[i];}
102  int getLowmultibit() {return _Lowmultibit;}
104  void set2DBhabhaThreshold(const std::vector<double>& i2DBhabhaThresholdFWD,
105  const std::vector<double>& i2DBhabhaThresholdBWD)
106  {
107  _2DBhabhaThresholdFWD = i2DBhabhaThresholdFWD;
108  _2DBhabhaThresholdBWD = i2DBhabhaThresholdBWD;
109  }
111  void set3DBhabhaSelectionThreshold(const std::vector<double>& i3DBhabhaSelectionThreshold)
112  {
113  _3DBhabhaSelectionThreshold = i3DBhabhaSelectionThreshold;
114  };
116  void set3DBhabhaVetoThreshold(const std::vector<double>& i3DBhabhaVetoThreshold)
117  {
118  _3DBhabhaVetoThreshold = i3DBhabhaVetoThreshold;
119  };
120 
122  void set3DBhabhaSelectionAngle(const std::vector<double>& i3DBhabhaSelectionAngle)
123  {
124  _3DBhabhaSelectionAngle = i3DBhabhaSelectionAngle;
125  };
127  void set3DBhabhaVetoAngle(const std::vector<double>& i3DBhabhaVetoAngle)
128  {
129  _3DBhabhaVetoAngle = i3DBhabhaVetoAngle;
130  };
132  void setmumuThreshold(int mumuThreshold) {_mumuThreshold = mumuThreshold; }
134  void setmumuAngle(const std::vector<double>& imumuAngle)
135  {
136  _mumuAngle = imumuAngle;
137  }
139  void set3DBhabhaAddAngleCut(const std::vector<double>& i3DBhabhaAddAngleCut)
140  {
141  m_3DBhabhaAddAngleCut = i3DBhabhaAddAngleCut;
142  }
144  void setTaub2bAngleCut(const std::vector<int>& itaub2bAngleCut)
145  {
146  m_taub2bAngleCut = itaub2bAngleCut;
147  }
149  void setTaub2bEtotCut(double itaub2bEtotCut)
150  {
151  m_taub2bEtotCut = itaub2bEtotCut;
152  }
154  void setTaub2bClusterECut(double itaub2bClusterECut1,
155  double itaub2bClusterECut2)
156  {
157  m_taub2bClusterECut1 = itaub2bClusterECut1;
158  m_taub2bClusterECut2 = itaub2bClusterECut2;
159  }
161  void setn300MeVClusterThreshold(int n300MeVCluster)
162  {
163  _n300MeVCluster = n300MeVCluster;
164  }
166  void setECLBurstThreshold(int ECLBurstThreshold)
167  {
168  _ECLBurstThreshold = ECLBurstThreshold;
169  }
171  void setTotalEnergyThreshold(const std::vector<double>& iTotalEnergy)
172  {
173  _TotalEnergy = iTotalEnergy;
174  }
176  void setLowMultiplicityThreshold(const std::vector<double>& iLowMultiThreshold)
177  {
178  _LowMultiThreshold = iLowMultiThreshold;
179  }
180  // set theta ID region (low and high) of 3DBhabhaVeto InTrack for gg selection
181  void set3DBhabhaVetoInTrackThetaRegion(const std::vector<int>& i3DBhabhaVetoInTrackThetaRegion)
182  {
183  m_3DBhabhaVetoInTrackThetaRegion = i3DBhabhaVetoInTrackThetaRegion;
184  }
185  // set energy threshold(low and high) of event timing quality flag (GeV)
186  void setEventTimingQualityThresholds(const std::vector<double>& iEventTimingQualityThresholds)
187  {
188  m_EventTimingQualityThresholds = iEventTimingQualityThresholds;
189  }
190 
191  private:
192 
194  std::vector<std::vector<double>> TCEnergy;
196  std::vector<std::vector<double>> TCTiming;
198  std::vector<std::vector<int>> TCBeamBkgTag;
199 
201  std::vector<int> HitTCId;
203  std::vector<double> TCHitEnergy;
205  std::vector<double> TCHitTiming;
207  std::vector<int> TCHitBeamBkgTag;
208 
210  std::vector< std::vector<double>> PhiRingSum;
212  std::vector<std::vector<std::vector<double>>> ThetaRingSum;
213 
215  // std::vector<double> ClusterEnergy;
217  // std::vector<double> ClusterTiming;
218 
220  double TimeWindow;
223 
227  int _Bhabha;
235  int _Triggerbit[4];
242 
244  std::vector<double> _2DBhabhaThresholdFWD;
246  std::vector<double> _2DBhabhaThresholdBWD;
248  std::vector<double> _3DBhabhaSelectionThreshold;
250  std::vector<double> _3DBhabhaVetoThreshold;
252  std::vector<double> _3DBhabhaSelectionAngle;
254  std::vector<double> _3DBhabhaVetoAngle;
258  std::vector<double> _mumuAngle;
259  // Angle selection of additional Bhabha addition in CM frame
260  std::vector<double> m_3DBhabhaAddAngleCut;
262  // (dphi low, dphi high, theta_sum low, theta_sum high)
263  std::vector<int> m_taub2bAngleCut;
268  double m_taub2bClusterECut2;
274  std::vector<double> _TotalEnergy;
276  std::vector<double> _LowMultiThreshold;
277  // Theta region (low, high) of 3D Bhabha Veto InTrack
278  std::vector<int> m_3DBhabhaVetoInTrackThetaRegion;
279  // energy threshold(low, high) for quality flag (GeV)
280  std::vector<double> m_EventTimingQualityThresholds;
281 
296 
297  };
298 //
299 //
300 //
302 }
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
int _Clustering
clutering option
Definition: TrgEclMaster.h:225
double _ECLBurstThreshold
ECL Burst Bit Threshold.
Definition: TrgEclMaster.h:272
std::vector< std::vector< double > > TCEnergy
Hit TC Energy.
Definition: TrgEclMaster.h:194
void setLowMultiplicityThreshold(const std::vector< double > &iLowMultiThreshold)
set Low Multiplicity Threshold
Definition: TrgEclMaster.h:176
double m_taub2bEtotCut
tau b2b total energy (TC theta ID =1-17) (GeV)
Definition: TrgEclMaster.h:265
std::vector< std::vector< std::vector< double > > > ThetaRingSum
Theta ring sum.
Definition: TrgEclMaster.h:212
void setNofTopTC(int noftoptc)
set # of considered TC in energy weighted Timing method
Definition: TrgEclMaster.h:90
std::vector< double > TCHitEnergy
Hit TC Energy in time window.
Definition: TrgEclMaster.h:203
void setBhabhaMethod(int bhabha)
Set Bhabha.
Definition: TrgEclMaster.h:82
void setTaub2bAngleCut(const std::vector< int > &itaub2bAngleCut)
set tau b2b 2 cluster angle cut
Definition: TrgEclMaster.h:144
int _PrescaleCounter
Bhabha Prescale Countor.
Definition: TrgEclMaster.h:241
int _ClusterLimit
The limit number of Cluster.
Definition: TrgEclMaster.h:233
std::vector< int > m_taub2bAngleCut
tau b2b 2 cluster angle cut (degree)
Definition: TrgEclMaster.h:263
void set3DBhabhaAddAngleCut(const std::vector< double > &i3DBhabhaAddAngleCut)
set 3D Bhabha addtion Angle selection
Definition: TrgEclMaster.h:139
void simulate02(int)
simulates ECL trigger for Data Analysis
double TimeWindow
Hit TC Energy in time window.
Definition: TrgEclMaster.h:220
void setTimeWindow(int timewindow)
Set Trigger Decision window size.
Definition: TrgEclMaster.h:86
TrgEclTiming * obj_timing
EventTiming object.
Definition: TrgEclMaster.h:289
double _mumuThreshold
mumu bit Energy Threshold
Definition: TrgEclMaster.h:256
std::string version(void) const
returns version.
TrgEclMaster(void)
TrgEclMaster Constructor.
Definition: TrgEclMaster.cc:79
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:149
void setRS(std::vector< int >, std::vector< double >, std::vector< double > &, std::vector< std::vector< double >> &)
ECL bit information for GDL.
TrgEclCluster * obj_cluster
Cluster object.
Definition: TrgEclMaster.h:287
std::vector< std::vector< double > > PhiRingSum
Phi ring sum.
Definition: TrgEclMaster.h:210
void makeLowMultiTriggerBit(std::vector< int >, std::vector< double >)
make LowMultiTriggerBit
int _PrescaleFactor
Bhabha Prescale Factor.
Definition: TrgEclMaster.h:239
int _n300MeVCluster
The number of Cluster exceeding 300 MeV.
Definition: TrgEclMaster.h:270
void setClusterLimit(int limit)
Set the limit # of Cluster.
Definition: TrgEclMaster.h:80
void setClusterMethod(int cluster)
Get Event timing.
Definition: TrgEclMaster.h:78
std::vector< double > _TotalEnergy
Total Energy Theshold (low, high, lum)
Definition: TrgEclMaster.h:274
std::vector< double > _mumuAngle
mumu bit Angle
Definition: TrgEclMaster.h:258
static TrgEclMaster * getTrgEclMaster(void)
get pointer of TrgEclMaster object
void setTotalEnergyThreshold(const std::vector< double > &iTotalEnergy)
set Total Energy Theshold (low, high, lum)
Definition: TrgEclMaster.h:171
std::vector< double > _3DBhabhaVetoThreshold
3D Veto Bhabha Energy Threshold
Definition: TrgEclMaster.h:250
void setmumuThreshold(int mumuThreshold)
set mumu bit Threshold
Definition: TrgEclMaster.h:132
void set2DBhabhaThreshold(const std::vector< double > &i2DBhabhaThresholdFWD, const std::vector< double > &i2DBhabhaThresholdBWD)
set 2D Bhabha Energy Threshold
Definition: TrgEclMaster.h:104
std::vector< double > _LowMultiThreshold
Low Multiplicity Threshold.
Definition: TrgEclMaster.h:276
void set3DBhabhaVetoAngle(const std::vector< double > &i3DBhabhaVetoAngle)
set 3D veto Bhabha Energy Angle
Definition: TrgEclMaster.h:127
int getTriggerbit(int i)
Get ECL Trigger bit.
Definition: TrgEclMaster.h:100
TrgEclMaster & operator=(TrgEclMaster &)=delete
Assignment operator, deleted.
std::vector< double > TCHitTiming
Hit TC Timing in time window.
Definition: TrgEclMaster.h:205
int _EventTiming
EventTiming option.
Definition: TrgEclMaster.h:229
std::vector< std::vector< int > > TCBeamBkgTag
Hit TC Beam Background tag.
Definition: TrgEclMaster.h:198
int _Bhabha
Bhabha option.
Definition: TrgEclMaster.h:227
void set3DBhabhaSelectionAngle(const std::vector< double > &i3DBhabhaSelectionAngle)
set 3D selection Bhabha Energy Angle
Definition: TrgEclMaster.h:122
void set3DBhabhaSelectionThreshold(const std::vector< double > &i3DBhabhaSelectionThreshold)
set 3D selection Bhabha Energy Threshold
Definition: TrgEclMaster.h:111
TrgEclBhabha * obj_bhabha
Bhabha object.
Definition: TrgEclMaster.h:291
TrgEclBeamBKG * obj_beambkg
Beam Backgroud veto object.
Definition: TrgEclMaster.h:293
std::vector< double > _3DBhabhaSelectionAngle
3D Selection Bhabha Energy Angle
Definition: TrgEclMaster.h:252
int getLowmultibit()
Get Low Multiplicity Trigger Bit.
Definition: TrgEclMaster.h:102
void setECLBurstThreshold(int ECLBurstThreshold)
set mumu bit Threshold
Definition: TrgEclMaster.h:166
std::vector< double > _2DBhabhaThresholdBWD
2D Bhabha Energy Threshold
Definition: TrgEclMaster.h:246
int _Triggerbit[4]
ECL Trigger bit.
Definition: TrgEclMaster.h:235
std::string name(void) const
returns name.
std::vector< double > _3DBhabhaSelectionThreshold
3D Selection Bhabha Energy Threshold
Definition: TrgEclMaster.h:248
double OverlapWindow
TRG Decision overlap window.
Definition: TrgEclMaster.h:222
static TrgEclMaster * _ecl
ecl object
Definition: TrgEclMaster.h:283
TrgEclDataBase * obj_database
Beam Backgroud veto object.
Definition: TrgEclMaster.h:295
void simulate01(int)
simulates ECL trigger for Global Cosmic data
TrgEclMapping * obj_map
Mapping object.
Definition: TrgEclMaster.h:285
void setOverlapWindow(int overlapwindow)
Set Trigger Decision overlap window size.
Definition: TrgEclMaster.h:88
double m_taub2bClusterECut1
tau b2b 1 Cluster energy selection (GeV)
Definition: TrgEclMaster.h:267
std::vector< int > HitTCId
Hit TC Energy in time window.
Definition: TrgEclMaster.h:201
void setn300MeVClusterThreshold(int n300MeVCluster)
set the number of cluster exceeding 300 MeV
Definition: TrgEclMaster.h:161
void set3DBhabhaVetoThreshold(const std::vector< double > &i3DBhabhaVetoThreshold)
set 3D veto Bhabha Energy Threshold
Definition: TrgEclMaster.h:116
void setmumuAngle(const std::vector< double > &imumuAngle)
set mumu bit Angle selection
Definition: TrgEclMaster.h:134
virtual ~TrgEclMaster()
TrgEclMaster Destructor.
int _Lowmultibit
Low Multiplicity bit.
Definition: TrgEclMaster.h:237
std::vector< int > TCHitBeamBkgTag
Hit TC Beam Background tag in time window.
Definition: TrgEclMaster.h:207
std::vector< double > _2DBhabhaThresholdFWD
2D Bhabha Energy Threshold
Definition: TrgEclMaster.h:244
std::vector< double > _3DBhabhaVetoAngle
3D Veto Bhabha Energy Angle
Definition: TrgEclMaster.h:254
std::vector< std::vector< double > > TCTiming
Hit TC Timing.
Definition: TrgEclMaster.h:196
TrgEclMaster(TrgEclMaster &)=delete
Copy constructor, deleted.
void setTaub2bClusterECut(double itaub2bClusterECut1, double itaub2bClusterECut2)
set tau b2b 1Cluster energy cut
Definition: TrgEclMaster.h:154
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)
make Trigger bit except for Low Multiplicity related bit
A Class of ECL Trigger clustering
Definition: TrgEclTiming.h:29
Abstract base class for different kinds of events.