Belle II Software  release-06-01-15
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) {_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,
97  int, int, int, int);
99  double setTotalEnergy(std::vector<double>);
101  int getTriggerbit(int i) {return _Triggerbit[i];}
103  int getLowmultibit() {return _Lowmultibit;}
105  void set2DBhabhaThreshold(const std::vector<double>& i2DBhabhaThresholdFWD,
106  const std::vector<double>& i2DBhabhaThresholdBWD)
107  {
108  _2DBhabhaThresholdFWD = i2DBhabhaThresholdFWD;
109  _2DBhabhaThresholdBWD = i2DBhabhaThresholdBWD;
110  }
112  void set3DBhabhaSelectionThreshold(const std::vector<double>& i3DBhabhaSelectionThreshold)
113  {
114  _3DBhabhaSelectionThreshold = i3DBhabhaSelectionThreshold;
115  };
117  void set3DBhabhaVetoThreshold(const std::vector<double>& i3DBhabhaVetoThreshold)
118  {
119  _3DBhabhaVetoThreshold = i3DBhabhaVetoThreshold;
120  };
121 
123  void set3DBhabhaSelectionAngle(const std::vector<double>& i3DBhabhaSelectionAngle)
124  {
125  _3DBhabhaSelectionAngle = i3DBhabhaSelectionAngle;
126  };
128  void set3DBhabhaVetoAngle(const std::vector<double>& i3DBhabhaVetoAngle)
129  {
130  _3DBhabhaVetoAngle = i3DBhabhaVetoAngle;
131  };
133  void setmumuThreshold(int mumuThreshold) {_mumuThreshold = mumuThreshold; }
135  void setmumuAngle(const std::vector<double>& imumuAngle)
136  {
137  _mumuAngle = imumuAngle;
138  }
140  void set3DBhabhaAddAngleCut(const std::vector<double>& i3DBhabhaAddAngleCut)
141  {
142  m_3DBhabhaAddAngleCut = i3DBhabhaAddAngleCut;
143  }
145  void setTaub2bAngleCut(const std::vector<int>& itaub2bAngleCut)
146  {
147  m_taub2bAngleCut = itaub2bAngleCut;
148  }
150  void setTaub2bEtotCut(double itaub2bEtotCut)
151  {
152  m_taub2bEtotCut = itaub2bEtotCut;
153  }
155  void setTaub2bClusterECut(double itaub2bClusterECut1,
156  double itaub2bClusterECut2)
157  {
158  m_taub2bClusterECut1 = itaub2bClusterECut1;
159  m_taub2bClusterECut2 = itaub2bClusterECut2;
160  }
161  // set taub2b2 cut
162  void setTaub2b2Cut(const std::vector<int>& iTaub2b2AngleCut,
163  const double iTaub2b2EtotCut,
164  const double iTaub2b2CLEEndcapCut,
165  const double iTaub2b2CLECut)
166  {
167  m_taub2b2AngleCut = iTaub2b2AngleCut;
168  m_taub2b2EtotCut = iTaub2b2EtotCut;
169  m_taub2b2CLEEndcapCut = iTaub2b2CLEEndcapCut;
170  m_taub2b2CLECut = iTaub2b2CLECut;
171  }
173  void setn300MeVClusterThreshold(int n300MeVCluster)
174  {
175  _n300MeVCluster = n300MeVCluster;
176  }
178  void setECLBurstThreshold(int ECLBurstThreshold)
179  {
180  _ECLBurstThreshold = (double) ECLBurstThreshold;
181  }
183  void setTotalEnergyThreshold(const std::vector<double>& iTotalEnergy)
184  {
185  _TotalEnergy = iTotalEnergy;
186  }
188  void setLowMultiplicityThreshold(const std::vector<double>& iLowMultiThreshold)
189  {
190  _LowMultiThreshold = iLowMultiThreshold;
191  }
192  // set theta ID region (low and high) of 3DBhabhaVeto InTrack for gg selection
193  void set3DBhabhaVetoInTrackThetaRegion(const std::vector<int>& i3DBhabhaVetoInTrackThetaRegion)
194  {
195  m_3DBhabhaVetoInTrackThetaRegion = i3DBhabhaVetoInTrackThetaRegion;
196  }
197  // set energy threshold(low and high) of event timing quality flag (GeV)
198  void setEventTimingQualityThresholds(const std::vector<double>& iEventTimingQualityThresholds)
199  {
200  m_EventTimingQualityThresholds = iEventTimingQualityThresholds;
201  }
202 
203  private:
204 
206  std::vector<std::vector<double>> TCEnergy;
208  std::vector<std::vector<double>> TCTiming;
210  std::vector<std::vector<int>> TCBeamBkgTag;
211 
213  std::vector<int> HitTCId;
215  std::vector<double> TCHitEnergy;
217  std::vector<double> TCHitTiming;
219  std::vector<int> TCHitBeamBkgTag;
220 
222  std::vector< std::vector<double>> PhiRingSum;
224  std::vector<std::vector<std::vector<double>>> ThetaRingSum;
225 
227  // std::vector<double> ClusterEnergy;
229  // std::vector<double> ClusterTiming;
230 
232  double TimeWindow;
235 
239  int _Bhabha;
247  int _Triggerbit[4];
254 
256  std::vector<double> _2DBhabhaThresholdFWD;
258  std::vector<double> _2DBhabhaThresholdBWD;
260  std::vector<double> _3DBhabhaSelectionThreshold;
262  std::vector<double> _3DBhabhaVetoThreshold;
264  std::vector<double> _3DBhabhaSelectionAngle;
266  std::vector<double> _3DBhabhaVetoAngle;
270  std::vector<double> _mumuAngle;
271  // Angle selection of additional Bhabha addition in CM frame
272  std::vector<double> m_3DBhabhaAddAngleCut;
274  // (dphi low, dphi high, theta_sum low, theta_sum high)
275  std::vector<int> m_taub2bAngleCut;
280  double m_taub2bClusterECut2;
281  // taub2b2 angle selection(degree)
282  // (3,2,1,0) = (dphi low, dphi high, theta_sum low, theta_sum high)
283  std::vector<int> m_taub2b2AngleCut;
286  // taub2b2 cluster energy cut for endcap cluster (GeV)
287  double m_taub2b2CLEEndcapCut;
295  std::vector<double> _TotalEnergy;
297  std::vector<double> _LowMultiThreshold;
298  // Theta region (low, high) of 3D Bhabha Veto InTrack
299  std::vector<int> m_3DBhabhaVetoInTrackThetaRegion;
300  // energy threshold(low, high) for quality flag (GeV)
301  std::vector<double> m_EventTimingQualityThresholds;
302 
315 
316  };
317 //
318 //
319 //
321 }
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:237
double _ECLBurstThreshold
ECL Burst Bit Threshold.
Definition: TrgEclMaster.h:293
std::vector< std::vector< double > > TCEnergy
Hit TC Energy.
Definition: TrgEclMaster.h:206
void setLowMultiplicityThreshold(const std::vector< double > &iLowMultiThreshold)
set Low Multiplicity Threshold
Definition: TrgEclMaster.h:188
double m_taub2bEtotCut
tau b2b total energy (TC theta ID =1-17) (GeV)
Definition: TrgEclMaster.h:277
std::vector< std::vector< std::vector< double > > > ThetaRingSum
Theta ring sum.
Definition: TrgEclMaster.h:224
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:215
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:145
int _PrescaleCounter
Bhabha Prescale Countor.
Definition: TrgEclMaster.h:253
int _ClusterLimit
The limit number of Cluster.
Definition: TrgEclMaster.h:245
std::vector< int > m_taub2bAngleCut
tau b2b 2 cluster angle cut (degree)
Definition: TrgEclMaster.h:275
void set3DBhabhaAddAngleCut(const std::vector< double > &i3DBhabhaAddAngleCut)
set 3D Bhabha addtion Angle selection
Definition: TrgEclMaster.h:140
void simulate02(int)
simulates ECL trigger for Data Analysis
double TimeWindow
Hit TC Energy in time window.
Definition: TrgEclMaster.h:232
void setTimeWindow(int timewindow)
Set Trigger Decision window size.
Definition: TrgEclMaster.h:86
TrgEclTiming * obj_timing
EventTiming object.
Definition: TrgEclMaster.h:308
double _mumuThreshold
mumu bit Energy Threshold
Definition: TrgEclMaster.h:268
std::string version(void) const
returns version.
TrgEclMaster(void)
TrgEclMaster Constructor.
Definition: TrgEclMaster.cc:80
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:150
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:306
std::vector< std::vector< double > > PhiRingSum
Phi ring sum.
Definition: TrgEclMaster.h:222
void makeLowMultiTriggerBit(std::vector< int >, std::vector< double >)
make LowMultiTriggerBit
int _PrescaleFactor
Bhabha Prescale Factor.
Definition: TrgEclMaster.h:251
int _n300MeVCluster
The number of Cluster exceeding 300 MeV.
Definition: TrgEclMaster.h:291
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:295
std::vector< double > _mumuAngle
mumu bit Angle
Definition: TrgEclMaster.h:270
void setTotalEnergyThreshold(const std::vector< double > &iTotalEnergy)
set Total Energy Theshold (low, high, lum)
Definition: TrgEclMaster.h:183
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)
make Trigger bit except for Low Multiplicity related bit
std::vector< double > _3DBhabhaVetoThreshold
3D Veto Bhabha Energy Threshold
Definition: TrgEclMaster.h:262
double m_taub2b2EtotCut
taub2b2 total energy (TC theta ID =1-17) (GeV)
Definition: TrgEclMaster.h:285
static TrgEclMaster * getTrgEclMaster(void)
get pointer of TrgEclMaster object
void setmumuThreshold(int mumuThreshold)
set mumu bit Threshold
Definition: TrgEclMaster.h:133
void set2DBhabhaThreshold(const std::vector< double > &i2DBhabhaThresholdFWD, const std::vector< double > &i2DBhabhaThresholdBWD)
set 2D Bhabha Energy Threshold
Definition: TrgEclMaster.h:105
std::vector< double > _LowMultiThreshold
Low Multiplicity Threshold.
Definition: TrgEclMaster.h:297
void set3DBhabhaVetoAngle(const std::vector< double > &i3DBhabhaVetoAngle)
set 3D veto Bhabha Energy Angle
Definition: TrgEclMaster.h:128
int getTriggerbit(int i)
Get ECL Trigger bit.
Definition: TrgEclMaster.h:101
TrgEclMaster & operator=(TrgEclMaster &)=delete
Assignment operator, deleted.
std::vector< double > TCHitTiming
Hit TC Timing in time window.
Definition: TrgEclMaster.h:217
int _EventTiming
EventTiming option.
Definition: TrgEclMaster.h:241
std::vector< std::vector< int > > TCBeamBkgTag
Hit TC Beam Background tag.
Definition: TrgEclMaster.h:210
int _Bhabha
Bhabha option.
Definition: TrgEclMaster.h:239
void set3DBhabhaSelectionAngle(const std::vector< double > &i3DBhabhaSelectionAngle)
set 3D selection Bhabha Energy Angle
Definition: TrgEclMaster.h:123
void set3DBhabhaSelectionThreshold(const std::vector< double > &i3DBhabhaSelectionThreshold)
set 3D selection Bhabha Energy Threshold
Definition: TrgEclMaster.h:112
TrgEclBhabha * obj_bhabha
Bhabha object.
Definition: TrgEclMaster.h:310
TrgEclBeamBKG * obj_beambkg
Beam Backgroud veto object.
Definition: TrgEclMaster.h:312
std::vector< double > _3DBhabhaSelectionAngle
3D Selection Bhabha Energy Angle
Definition: TrgEclMaster.h:264
int getLowmultibit()
Get Low Multiplicity Trigger Bit.
Definition: TrgEclMaster.h:103
void setECLBurstThreshold(int ECLBurstThreshold)
set mumu bit Threshold
Definition: TrgEclMaster.h:178
std::vector< double > _2DBhabhaThresholdBWD
2D Bhabha Energy Threshold
Definition: TrgEclMaster.h:258
int _Triggerbit[4]
ECL Trigger bit.
Definition: TrgEclMaster.h:247
std::string name(void) const
returns name.
std::vector< double > _3DBhabhaSelectionThreshold
3D Selection Bhabha Energy Threshold
Definition: TrgEclMaster.h:260
double OverlapWindow
TRG Decision overlap window.
Definition: TrgEclMaster.h:234
TrgEclDataBase * obj_database
Beam Backgroud veto object.
Definition: TrgEclMaster.h:314
void simulate01(int)
simulates ECL trigger for Global Cosmic data
TrgEclMapping * obj_map
Mapping object.
Definition: TrgEclMaster.h:304
void setOverlapWindow(int overlapwindow)
Set Trigger Decision overlap window size.
Definition: TrgEclMaster.h:88
double m_taub2bClusterECut1
taub2b one Cluster energy selection (GeV)
Definition: TrgEclMaster.h:279
std::vector< int > HitTCId
Hit TC Energy in time window.
Definition: TrgEclMaster.h:213
void setn300MeVClusterThreshold(int n300MeVCluster)
set the number of cluster exceeding 300 MeV
Definition: TrgEclMaster.h:173
void set3DBhabhaVetoThreshold(const std::vector< double > &i3DBhabhaVetoThreshold)
set 3D veto Bhabha Energy Threshold
Definition: TrgEclMaster.h:117
void setmumuAngle(const std::vector< double > &imumuAngle)
set mumu bit Angle selection
Definition: TrgEclMaster.h:135
virtual ~TrgEclMaster()
TrgEclMaster Destructor.
int _Lowmultibit
Low Multiplicity bit.
Definition: TrgEclMaster.h:249
std::vector< int > TCHitBeamBkgTag
Hit TC Beam Background tag in time window.
Definition: TrgEclMaster.h:219
double m_taub2b2CLECut
taub2b2 cluseter energy cut (GeV)
Definition: TrgEclMaster.h:289
std::vector< double > _2DBhabhaThresholdFWD
2D Bhabha Energy Threshold
Definition: TrgEclMaster.h:256
std::vector< double > _3DBhabhaVetoAngle
3D Veto Bhabha Energy Angle
Definition: TrgEclMaster.h:266
std::vector< std::vector< double > > TCTiming
Hit TC Timing.
Definition: TrgEclMaster.h:208
TrgEclMaster(TrgEclMaster &)=delete
Copy constructor, deleted.
void setTaub2bClusterECut(double itaub2bClusterECut1, double itaub2bClusterECut2)
set tau b2b 1Cluster energy cut
Definition: TrgEclMaster.h:155
A Class of ECL Trigger clustering
Definition: TrgEclTiming.h:29
Abstract base class for different kinds of events.