Belle II Software development
TrgEclBhabha Class Reference

A Class of ECL Trigger clustering
More...

#include <TrgEclBhabha.h>

Public Member Functions

 TrgEclBhabha ()
 Constructor.
 
virtual ~TrgEclBhabha ()
 Constructor.
 
 TrgEclBhabha (TrgEclBhabha &)=delete
 Destructor.
 
TrgEclBhabhaoperator= (TrgEclBhabha &)=delete
 Assignement operator, deleted.
 
bool GetBhabha00 (std::vector< double >)
 Belle 2D Bhabha veto method.
 
bool GetBhabha01 ()
 Belle II 3D Bhabha method for veto.
 
bool GetBhabha02 ()
 Belle II 3D Bhabha method for selection.
 
bool Getmumu ()
 MuMu selection for calibration.
 
bool GetTaub2b (double)
 Taub2b selection.
 
bool GetTaub2b2 (double)
 Taub2b selection (tighter selection than Taub2b)
 
bool GetTaub2b3 (double)
 Taub2b3.
 
int GetBhabhaAddition (void)
 Additional Bhabha veto.
 
std::vector< double > GetBhabhaComb ()
 Output 2D Bhabha combination.
 
void save (int)
 Save.
 
void set2DBhabhaThreshold (const std::vector< double > &i2DBhabhaThresholdFWD, const std::vector< double > &i2DBhabhaThresholdBWD)
 set 2D Bhabha Energy Threshold
 
void set3DBhabhaSelectionThreshold (const std::vector< double > &i3DBhabhaSelectionThreshold)
 set 3D selection Bhabha Energy Threshold
 
void set3DBhabhaVetoThreshold (const std::vector< double > &i3DBhabhaVetoThreshold)
 set 3D veto Bhabha Energy Threshold
 
void set3DBhabhaSelectionAngle (const std::vector< double > &i3DBhabhaSelectionAngle)
 set 3D selection Bhabha Energy Angle
 
void set3DBhabhaVetoAngle (const std::vector< double > &i3DBhabhaVetoAngle)
 set 3D veto Bhabha Energy Angle
 
void setmumuThreshold (int mumuThreshold)
 set mumu bit Threshold
 
void setmumuAngle (const std::vector< double > &imumuAngle)
 set mumu bit Angle selection
 
void set3DBhabhaAddAngleCut (const std::vector< double > &i3DBhabhaAddAngleCut)
 set 3D Bhabha addtion Angle selection
 
void set3DBhabhaVetoInTrackThetaRegion (const std::vector< int > &i3DBhabhaVetoInTrackThetaRegion)
 set ThetaID (low and high) for 3DBhabhaVetoInTrack
 
void setTaub2bAngleCut (const std::vector< int > &iTaub2bAngleCut)
 set 2 Cluster angle selection for tau 1x1 decay [0], [1] for low and high of dphi, [2], [3] for low and high of Theta Sum
 
void setTaub2bEtotCut (const double iTaub2bEtotCut)
 set total energy cut for taub2b
 
void setTaub2bClusterECut (const double iTaub2bClusterECut1, const double iTaub2bClusterECut2)
 set cluster energy cut for taub2b
 
void setTaub2b2Cut (const std::vector< int > &iTaub2b2AngleCut, const double iTaub2b2EtotCut, const double iTaub2b2CLEEndcapCut, const double iTaub2b2CLECut)
 set taub2b2 cut
 
void setTaub2b3Cut (const std::vector< int > &iTaub2b3AngleCut, const double iTaub2b3EtotCut, const double iTaub2b3CLEb2bCut, const double iTaub2b3CLELowCut, const double iTaub2b3CLEHighCut)
 set taub2b3 cut
 
int get3DBhabhaVetoInTrackFlag (void)
 get trigger bit of flag(1bit) whether two clusters statisfy 3D Bhabha veto are in CDCTRG region in theta (="InTrack") or not
 
int get3DBhabhaVetoClusterTCId (int cl_idx)
 get each TCID(most energetic TC in a cluster) of two clusters of 3D Bhabha veto
 
int get3DBhabhaVetoClusterThetaId (int cl_idx)
 get each TC theta ID(most energetic TC in a cluster) of two clusters of 3D Bhabha veto
 
double get3DBhabhaVetoClusterEnergy (int cl_idx)
 get each cluster energy of two clusters of 3D Bhabha veto (GeV)
 
double get3DBhabhaVetoClusterTiming (int cl_idx)
 get each cluster timing of two clusters of 3D Bhabha veto (ns)
 
int get3DBhabhaSelectionThetaFlag (void)
 get trigger bit(2bits) of flag which shows theta position of clusters of 3DBhabha Selection.
 
int get3DBhabhaSelectionClusterTCId (int cl_idx)
 get each TCID(most energetic TC in a cluster) of two clusters of 3D Bhabha selection
 
int get3DBhabhaSelectionClusterThetaId (int cl_idx)
 get each TC theta ID(most energetic TC in a cluster) of two clusters of 3D Bhabha selection
 
double get3DBhabhaSelectionClusterEnergy (int cl_idx)
 get each cluster energy of two clusters of 3D Bhabha selection (GeV)
 
double get3DBhabhaSelectionClusterTiming (int cl_idx)
 get each cluster timing of two clusters of 3D Bhabha selection (ns)
 
int getTaub2bAngleFlag (void)
 get taub2b 2 cluster angle cut flag
 
int getTaub2bEtotFlag (void)
 get total energy(TC theta id=1-17) flag for taub2b
 
int getTaub2bClusterEFlag (void)
 taub2b Cluster energy flag
 

Private Member Functions

void get2CLETP (int, int, int &, int &, int &, int &)
 2 cluster energies, phi difference and theta sum
 

Private Attributes

TrgEclMapping_TCMap = nullptr
 Object of TC Mapping.
 
TrgEclDataBase_database = nullptr
 Object of Trigger ECL DataBase.
 
std::vector< double > BhabhaComb
 Bhabha Combination.
 
std::vector< double > MaxTCId
 Max TC Id.
 
std::vector< double > MaxTCThetaId
 Cluster ThetaId.
 
std::vector< double > ClusterEnergy
 Cluster Energy.
 
std::vector< double > ClusterTiming
 Cluster Timing.
 
std::vector< ROOT::Math::XYZVector > ClusterPosition
 Cluster Timing.
 
std::vector< double > _2DBhabhaThresholdFWD
 2D Bhabha Energy Threshold
 
std::vector< double > _2DBhabhaThresholdBWD
 2D Bhabha Energy Threshold
 
std::vector< double > _3DBhabhaSelectionThreshold
 3D Selection Bhabha Energy Threshold
 
std::vector< double > _3DBhabhaVetoThreshold
 3D Veto Bhabha Energy Threshold
 
std::vector< double > _3DBhabhaSelectionAngle
 3D Selection Bhabha Energy Angle
 
std::vector< double > _3DBhabhaVetoAngle
 3D Veto Bhabha Energy Angle
 
double _mumuThreshold
 mumu bit Energy Threshold
 
std::vector< double > _mumuAngle
 mumu bit Angle
 
std::vector< double > m_3DBhabhaAddAngleCut
 Angle selection of additional Bhabha veto in CM frame.
 
std::vector< int > m_taub2bAngleCut
 taub2b 2 Cluster angle cut (degree)
 
double m_taub2bEtotCut
 taub2b total energy(TC theta id=1-17) cut (GeV)
 
double m_taub2bClusterECut1
 taub2b Cluster one of energy cut in b2b in lab (GeV)
 
double m_taub2bClusterECut2
 taub2b Cluster one of energy cut in b2b in lab (GeV)
 
int m_taub2bAngleFlag
 taub2b 2 cluster angle cut flag
 
int m_taub2bEtotFlag
 taub2b total energy(TC theta id=1-17) flag
 
int m_taub2bClusterEFlag
 taub2b Cluster energy flag
 
double m_taub2b2EtotCut
 taub2b2 total energy cut (GeV)
 
std::vector< int > m_taub2b2AngleCut
 taub2b2 two Cluster angle cut (degree)
 
double m_taub2b2CLEEndcapCut
 taub2b2 cluster energy cut for endcap cluster (GeV)
 
double m_taub2b2CLECut
 taub2b2 cluster energy cut (GeV)
 
std::vector< int > m_taub2b3AngleCut
 taub2b3 selection cuts (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)
 
double m_taub2b3CLEb2bCut
 taub2b3 cluster energy cut (GeV)
 
double m_taub2b3CLELowCut
 taub2b3 cluster energy cut2 (GeV)
 
double m_taub2b3CLEHighCut
 taub2b3 cluster energy cut3 (GeV)
 
int m_3DBhabhaVetoInTrackFlag
 trigger bit of flag(1bit) whether two clusters statisfy 3D Bhabha veto are in CDCTRG region in theta (="InTrack") or not
 
std::vector< int > m_3DBhabhaVetoClusterTCIds
 TCIDs of two clusters of 3D Bhabha veto.
 
std::vector< int > m_3DBhabhaVetoClusterThetaIds
 ThetaIds of two clusters of 3D Bhabha veto.
 
std::vector< double > m_3DBhabhaVetoClusterEnergies
 Energies of two clusters of 3D Bhabha veto (GeV)
 
std::vector< double > m_3DBhabhaVetoClusterTimings
 Timings of two clusters of 3D Bhabha veto (ns)
 
std::vector< int > m_3DBhabhaVetoInTrackThetaRegion
 theta region(low and high) of 3D Bhbabha veto InTrack
 
int m_3DBhabhaSelectionThetaFlag = std::numeric_limits<int>::quiet_NaN()
 flag which shows theta position of clusters of 3DBhabha Selection.
 
std::vector< int > m_3DBhabhaSelectionClusterTCIds
 TCIDs of two clusters of 3D Bhabha selection.
 
std::vector< int > m_3DBhabhaSelectionClusterThetaIds
 ThetaIDs of two clusters used for 3D Bhabha selection.
 
std::vector< double > m_3DBhabhaSelectionClusterEnergies
 Energies of two clusters used for 3D Bhabha selection (GeV)
 
std::vector< double > m_3DBhabhaSelectionClusterTimings
 Timings of two clusters used for 3D Bhabha selection (ns)
 

Detailed Description

A Class of ECL Trigger clustering

Definition at line 32 of file TrgEclBhabha.h.

Constructor & Destructor Documentation

◆ TrgEclBhabha() [1/2]

Constructor.

Definition at line 67 of file TrgEclBhabha.cc.

67 :
70{
71 BhabhaComb.clear();
72 MaxTCId.clear();
73 ClusterEnergy.clear();
74 ClusterTiming.clear();
75 ClusterPosition.clear();
76
77 _TCMap = new TrgEclMapping();
78
80
86 _3DBhabhaVetoAngle.clear();
87 _mumuAngle.clear();
89
90 _2DBhabhaThresholdFWD = {40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 30, 35}; // (100 MeV)
91 _2DBhabhaThresholdBWD = {25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 30, 30}; // (100 MeV)
92 _3DBhabhaVetoThreshold = {30, 45}; // (low, high) (100 MeV)
93 _3DBhabhaSelectionThreshold = {25, 40}; // (low, high) (100 MeV)
94 _3DBhabhaVetoAngle = {160, 200, 165, 190}; // (phi_low, phi_high, theta_low, theta_high) (degree)
95 _3DBhabhaSelectionAngle = {140, 220, 160, 200}; // (phi_low, phi_high, theta_low, theta_high) (degree)
96 _mumuAngle = {160, 200, 165, 190}; // (phi_low, phi_high, theta_low, theta_high) (degree)
97 m_3DBhabhaAddAngleCut = {150, 210, 160, 200}; // (phi_low, phi_high, theta_low, theta_high) (degree)
98
104
106
107 m_taub2bEtotCut = 7.0;
109 m_taub2bClusterECut2 = 999.0;
113
114 m_taub2b2EtotCut = 7.0;
116 m_taub2b2CLECut = 1.62;
117
118 //Taub2b3 by S.Ito
119 m_taub2b3EtotCut = 7.0;
120 m_taub2b3CLEb2bCut = 0.14;
121 m_taub2b3CLELowCut = 0.12;
123
124}
double m_taub2b3CLELowCut
taub2b3 cluster energy cut2 (GeV)
Definition: TrgEclBhabha.h:313
int m_taub2bAngleFlag
taub2b 2 cluster angle cut flag
Definition: TrgEclBhabha.h:291
double m_taub2bEtotCut
taub2b total energy(TC theta id=1-17) cut (GeV)
Definition: TrgEclBhabha.h:285
double m_taub2b3CLEHighCut
taub2b3 cluster energy cut3 (GeV)
Definition: TrgEclBhabha.h:315
std::vector< double > MaxTCId
Max TC Id.
Definition: TrgEclBhabha.h:255
double _mumuThreshold
mumu bit Energy Threshold
Definition: TrgEclBhabha.h:277
std::vector< int > m_3DBhabhaVetoInTrackThetaRegion
theta region(low and high) of 3D Bhbabha veto InTrack
Definition: TrgEclBhabha.h:329
int m_3DBhabhaVetoInTrackFlag
trigger bit of flag(1bit) whether two clusters statisfy 3D Bhabha veto are in CDCTRG region in theta ...
Definition: TrgEclBhabha.h:319
TrgEclDataBase * _database
Object of Trigger ECL DataBase.
Definition: TrgEclBhabha.h:247
std::vector< double > m_3DBhabhaVetoClusterEnergies
Energies of two clusters of 3D Bhabha veto (GeV)
Definition: TrgEclBhabha.h:325
int m_taub2bEtotFlag
taub2b total energy(TC theta id=1-17) flag
Definition: TrgEclBhabha.h:293
std::vector< double > _mumuAngle
mumu bit Angle
Definition: TrgEclBhabha.h:279
std::vector< double > m_3DBhabhaAddAngleCut
Angle selection of additional Bhabha veto in CM frame.
Definition: TrgEclBhabha.h:281
std::vector< double > _3DBhabhaVetoThreshold
3D Veto Bhabha Energy Threshold
Definition: TrgEclBhabha.h:271
double m_taub2b2EtotCut
taub2b2 total energy cut (GeV)
Definition: TrgEclBhabha.h:297
std::vector< double > ClusterTiming
Cluster Timing.
Definition: TrgEclBhabha.h:261
std::vector< int > m_3DBhabhaVetoClusterThetaIds
ThetaIds of two clusters of 3D Bhabha veto.
Definition: TrgEclBhabha.h:323
std::vector< double > _3DBhabhaSelectionAngle
3D Selection Bhabha Energy Angle
Definition: TrgEclBhabha.h:273
std::vector< double > _2DBhabhaThresholdBWD
2D Bhabha Energy Threshold
Definition: TrgEclBhabha.h:267
std::vector< int > m_3DBhabhaVetoClusterTCIds
TCIDs of two clusters of 3D Bhabha veto.
Definition: TrgEclBhabha.h:321
double m_taub2bClusterECut2
taub2b Cluster one of energy cut in b2b in lab (GeV)
Definition: TrgEclBhabha.h:289
std::vector< double > BhabhaComb
Bhabha Combination.
Definition: TrgEclBhabha.h:253
double m_taub2b3EtotCut
taub2b3 total energy (TC theta ID =1-17) (GeV)
Definition: TrgEclBhabha.h:309
std::vector< double > _3DBhabhaSelectionThreshold
3D Selection Bhabha Energy Threshold
Definition: TrgEclBhabha.h:269
std::vector< double > m_3DBhabhaVetoClusterTimings
Timings of two clusters of 3D Bhabha veto (ns)
Definition: TrgEclBhabha.h:327
int m_taub2bClusterEFlag
taub2b Cluster energy flag
Definition: TrgEclBhabha.h:295
double m_taub2b3CLEb2bCut
taub2b3 cluster energy cut (GeV)
Definition: TrgEclBhabha.h:311
std::vector< ROOT::Math::XYZVector > ClusterPosition
Cluster Timing.
Definition: TrgEclBhabha.h:263
double m_taub2bClusterECut1
taub2b Cluster one of energy cut in b2b in lab (GeV)
Definition: TrgEclBhabha.h:287
std::vector< double > ClusterEnergy
Cluster Energy.
Definition: TrgEclBhabha.h:259
TrgEclMapping * _TCMap
Object of TC Mapping.
Definition: TrgEclBhabha.h:244
double m_taub2b2CLECut
taub2b2 cluster energy cut (GeV)
Definition: TrgEclBhabha.h:303
std::vector< double > _2DBhabhaThresholdFWD
2D Bhabha Energy Threshold
Definition: TrgEclBhabha.h:265
std::vector< double > _3DBhabhaVetoAngle
3D Veto Bhabha Energy Angle
Definition: TrgEclBhabha.h:275
double m_taub2b2CLEEndcapCut
taub2b2 cluster energy cut for endcap cluster (GeV)
Definition: TrgEclBhabha.h:301
class TrgEclDataBase;
A class of TC Mapping.
Definition: TrgEclMapping.h:26

◆ ~TrgEclBhabha()

~TrgEclBhabha ( )
virtual

Constructor.

Destructor

Definition at line 128 of file TrgEclBhabha.cc.

129{
130 delete _TCMap;
131 delete _database;
132}

◆ TrgEclBhabha() [2/2]

TrgEclBhabha ( TrgEclBhabha )
delete

Destructor.

Copy constructor, deleted.

Member Function Documentation

◆ get2CLETP()

void get2CLETP ( int  TCId1,
int  TCId2,
int &  energy1,
int &  energy2,
int &  dphi,
int &  thetaSum 
)
private

2 cluster energies, phi difference and theta sum

Definition at line 929 of file TrgEclBhabha.cc.

935{
936 int lut1 = _database->Get3DBhabhaLUT(TCId1);
937 int lut2 = _database->Get3DBhabhaLUT(TCId2);
938 energy1 = 15 & lut1;
939 energy2 = 15 & lut2;
940 lut1 >>= 4;
941 lut2 >>= 4;
942 int phi1 = 511 & lut1;
943 int phi2 = 511 & lut2;
944 lut1 >>= 9;
945 lut2 >>= 9;
946 int theta1 = lut1;
947 int theta2 = lut2;
948 dphi = abs(phi1 - phi2);
949 if (dphi > 180) {dphi = 360 - dphi;}
950 thetaSum = theta1 + theta2;
951
952 return;
953}
int Get3DBhabhaLUT(int)
TC CM Phi

◆ get3DBhabhaSelectionClusterEnergy()

double get3DBhabhaSelectionClusterEnergy ( int  cl_idx)
inline

get each cluster energy of two clusters of 3D Bhabha selection (GeV)

Definition at line 220 of file TrgEclBhabha.h.

221 {
222 if (cl_idx < 0 || cl_idx > 1 || m_3DBhabhaSelectionClusterEnergies.size() != 2) {
223 return -10;
224 }
226 }
std::vector< double > m_3DBhabhaSelectionClusterEnergies
Energies of two clusters used for 3D Bhabha selection (GeV)
Definition: TrgEclBhabha.h:337

◆ get3DBhabhaSelectionClusterTCId()

int get3DBhabhaSelectionClusterTCId ( int  cl_idx)
inline

get each TCID(most energetic TC in a cluster) of two clusters of 3D Bhabha selection

Definition at line 203 of file TrgEclBhabha.h.

204 {
205 if (cl_idx < 0 || cl_idx > 1 || m_3DBhabhaSelectionClusterTCIds.size() != 2) {
206 return -10;
207 }
208 return m_3DBhabhaSelectionClusterTCIds[cl_idx];
209 }
std::vector< int > m_3DBhabhaSelectionClusterTCIds
TCIDs of two clusters of 3D Bhabha selection.
Definition: TrgEclBhabha.h:333

◆ get3DBhabhaSelectionClusterThetaId()

int get3DBhabhaSelectionClusterThetaId ( int  cl_idx)
inline

get each TC theta ID(most energetic TC in a cluster) of two clusters of 3D Bhabha selection

Definition at line 212 of file TrgEclBhabha.h.

213 {
214 if (cl_idx < 0 || cl_idx > 1 || m_3DBhabhaSelectionClusterThetaIds.size() != 2) {
215 return -10;
216 }
218 }
std::vector< int > m_3DBhabhaSelectionClusterThetaIds
ThetaIDs of two clusters used for 3D Bhabha selection.
Definition: TrgEclBhabha.h:335

◆ get3DBhabhaSelectionClusterTiming()

double get3DBhabhaSelectionClusterTiming ( int  cl_idx)
inline

get each cluster timing of two clusters of 3D Bhabha selection (ns)

Definition at line 228 of file TrgEclBhabha.h.

229 {
230 if (cl_idx < 0 || cl_idx > 1 || m_3DBhabhaSelectionClusterTimings.size() != 2) {
231 return -1000;
232 }
234 }
std::vector< double > m_3DBhabhaSelectionClusterTimings
Timings of two clusters used for 3D Bhabha selection (ns)
Definition: TrgEclBhabha.h:339

◆ get3DBhabhaSelectionThetaFlag()

int get3DBhabhaSelectionThetaFlag ( void  )
inline

get trigger bit(2bits) of flag which shows theta position of clusters of 3DBhabha Selection.

flag=0 : one of clusters goes to ThetaID=1 flag=1 : one of clusters goes to ThetaID=2 flag=2 : one of clusters goes to ThetaID=3 flag=3 : none of clusters fly to ThetaID=1-3 Based on this flag, pre-scale is applied on GDL to have flat entry of Bhabha event in theta for calibration purpose

Definition at line 198 of file TrgEclBhabha.h.

199 {
201 }
int m_3DBhabhaSelectionThetaFlag
flag which shows theta position of clusters of 3DBhabha Selection.
Definition: TrgEclBhabha.h:331

◆ get3DBhabhaVetoClusterEnergy()

double get3DBhabhaVetoClusterEnergy ( int  cl_idx)
inline

get each cluster energy of two clusters of 3D Bhabha veto (GeV)

Definition at line 175 of file TrgEclBhabha.h.

176 {
177 if (cl_idx < 0 || cl_idx > 1 || m_3DBhabhaVetoClusterEnergies.size() != 2) {
178 return -10;
179 }
180 return m_3DBhabhaVetoClusterEnergies[cl_idx];
181 }

◆ get3DBhabhaVetoClusterTCId()

int get3DBhabhaVetoClusterTCId ( int  cl_idx)
inline

get each TCID(most energetic TC in a cluster) of two clusters of 3D Bhabha veto

Definition at line 158 of file TrgEclBhabha.h.

159 {
160 if (cl_idx < 0 || cl_idx > 1 || m_3DBhabhaVetoClusterTCIds.size() != 2) {
161 return -10;
162 }
163 return m_3DBhabhaVetoClusterTCIds[cl_idx];
164 }

◆ get3DBhabhaVetoClusterThetaId()

int get3DBhabhaVetoClusterThetaId ( int  cl_idx)
inline

get each TC theta ID(most energetic TC in a cluster) of two clusters of 3D Bhabha veto

Definition at line 167 of file TrgEclBhabha.h.

168 {
169 if (cl_idx < 0 || cl_idx > 1 || m_3DBhabhaVetoClusterThetaIds.size() != 2) {
170 return -10;
171 }
172 return m_3DBhabhaVetoClusterThetaIds[cl_idx];
173 }

◆ get3DBhabhaVetoClusterTiming()

double get3DBhabhaVetoClusterTiming ( int  cl_idx)
inline

get each cluster timing of two clusters of 3D Bhabha veto (ns)

Definition at line 183 of file TrgEclBhabha.h.

184 {
185 if (cl_idx < 0 || cl_idx > 1 || m_3DBhabhaVetoClusterTimings.size() != 2) {
186 return -1000;
187 }
188 return m_3DBhabhaVetoClusterTimings[cl_idx];
189 }

◆ get3DBhabhaVetoInTrackFlag()

int get3DBhabhaVetoInTrackFlag ( void  )
inline

get trigger bit of flag(1bit) whether two clusters statisfy 3D Bhabha veto are in CDCTRG region in theta (="InTrack") or not

Definition at line 153 of file TrgEclBhabha.h.

154 {
156 }

◆ GetBhabha00()

bool GetBhabha00 ( std::vector< double >  PhiRingSum)

Belle 2D Bhabha veto method.

Definition at line 136 of file TrgEclBhabha.cc.

137{
138 bool BtoBflag = false;
139
140
141 vector<int> k011 = {3, 1, 2, 3 }; // (1) F1+F2 + F3 + B1+B2
142 vector<int> k012 = {2, 16, 17}; // (1) F1+F2 + F3 + B1+B2
143
144 vector<int> k021 = {1, 3}; // (2) F3 + C12
145 vector<int> k022 = {1, 15}; // (2) F3 + C12
146
147 vector<int> k03 = {2, 2, 3}; // (3) F2 + F3
148
149 vector<int> k04 = {1, 4}; // (4) C1 + backward gap
150
151 vector<int> k051 = {1, 4 }; // (5) C1+C11+C12
152 vector<int> k052 = {2, 14, 15}; // (5) C1+C11+C12
153
154 vector<int> k061 = {1, 5}; // (6) C2+C11+C12
155 vector<int> k062 = {2, 14, 15}; // (6) C2+C11+C12
156
157 vector<int> k071 = {2, 4, 5}; // (7) C1+C2+C11
158 vector<int> k072 = {1, 14}; // (7) C1+C2+C11
159
160 vector<int> k081 = {1, 5}; // (8) C2+C10+C11
161 vector<int> k082 = {2, 13, 14}; // (8) C2+C10+C11
162
163 vector<int> k091 = {1, 5 }; // (9) C2+C9+C10
164 vector<int> k092 = {2, 12, 13}; // (9) C2+C9+C10
165
166 vector<int> k101 = {2, 5, 6}; // (10) C2+C3+C10
167 vector<int> k102 = {1, 13}; // (10) C2+C3+C10
168
169 vector<int> k111 = {2, 5, 6}; // (11) C2+C3+C9
170 vector<int> k112 = {1, 12}; // (11) C2+C3+C9
171
172 vector<int> k121 = {2, 6, 7}; // (9) C3+C4+C9
173 vector<int> k122 = {1, 12}; // (9) C3+C4+C9
174
175 vector<int> k131 = {2, 6, 7}; // (10) C3+C4+C8
176 vector<int> k132 = {1, 11}; // (10) C3+C4+C8
177
178 vector<int> k141 = {2, 7, 8}; // (11) C4+C5+C8
179 vector<int> k142 = {1, 11}; // (11) C4+C5+C8
180
181
182 vector<int> k151 = {1, 8}; // (9) C5+C7+C8
183 vector<int> k152 = {2, 10, 11}; // (9) C5+C7+C8
184
185 vector<int> k161 = {2, 8, 9}; // (10) C5+C6+C7
186 vector<int> k162 = {2, 9, 10}; // (10) C5+C6+C7
187
188 //vector<int> k17 = {2, 14, 15}; // (11) C11+C12 +forward gap
189
190 //vector<int> k18 = {1, 16}; // (11) B1 + forward gap
191
192 vector<int> kLOM1 = {2, 2, 3 }; // (1) F1+F2 + F3 + B1+B2
193 vector<int> kLOM2 = {2, 16, 17}; // (1) F1+F2 + F3 + B1+B2
194
195 BhabhaComb.clear();
196 BhabhaComb.resize(32, 0.0);
197 for (int iii = 1; iii <= k011[0]; iii++) { BhabhaComb[0] += PhiRingSum[k011[iii] - 1];}
198 for (int iii = 1; iii <= k012[0]; iii++) { BhabhaComb[1] += PhiRingSum[k012[iii] - 1];}
199 for (int iii = 1; iii <= k021[0]; iii++) { BhabhaComb[2] += PhiRingSum[k021[iii] - 1]; }
200 for (int iii = 1; iii <= k022[0]; iii++) { BhabhaComb[3] += PhiRingSum[k022[iii] - 1]; }
201 for (int iii = 1; iii <= k03[0]; iii++) { BhabhaComb[4] += PhiRingSum[k03[iii] - 1]; }
202 for (int iii = 1; iii <= k04[0]; iii++) { BhabhaComb[5] += PhiRingSum[k04[iii] - 1]; }
203 for (int iii = 1; iii <= k051[0]; iii++) { BhabhaComb[6] += PhiRingSum[k051[iii] - 1]; }
204 for (int iii = 1; iii <= k052[0]; iii++) { BhabhaComb[7] += PhiRingSum[k052[iii] - 1]; }
205 for (int iii = 1; iii <= k061[0]; iii++) { BhabhaComb[8] += PhiRingSum[k061[iii] - 1]; }
206 for (int iii = 1; iii <= k062[0]; iii++) { BhabhaComb[9] += PhiRingSum[k062[iii] - 1]; }
207 for (int iii = 1; iii <= k071[0]; iii++) { BhabhaComb[10] += PhiRingSum[k071[iii] - 1]; }
208 for (int iii = 1; iii <= k072[0]; iii++) { BhabhaComb[11] += PhiRingSum[k072[iii] - 1]; }
209 for (int iii = 1; iii <= k081[0]; iii++) { BhabhaComb[12] += PhiRingSum[k081[iii] - 1]; }
210 for (int iii = 1; iii <= k082[0]; iii++) { BhabhaComb[13] += PhiRingSum[k082[iii] - 1]; }
211 for (int iii = 1; iii <= k091[0]; iii++) { BhabhaComb[14] += PhiRingSum[k091[iii] - 1]; }
212 for (int iii = 1; iii <= k092[0]; iii++) { BhabhaComb[15] += PhiRingSum[k092[iii] - 1]; }
213 for (int iii = 1; iii <= k101[0]; iii++) { BhabhaComb[16] += PhiRingSum[k101[iii] - 1]; }
214 for (int iii = 1; iii <= k102[0]; iii++) { BhabhaComb[17] += PhiRingSum[k102[iii] - 1]; }
215 for (int iii = 1; iii <= k111[0]; iii++) { BhabhaComb[18] += PhiRingSum[k111[iii] - 1]; }
216 for (int iii = 1; iii <= k112[0]; iii++) { BhabhaComb[19] += PhiRingSum[k112[iii] - 1]; }
217 for (int iii = 1; iii <= k121[0]; iii++) { BhabhaComb[20] += PhiRingSum[k121[iii] - 1]; }
218 for (int iii = 1; iii <= k122[0]; iii++) { BhabhaComb[21] += PhiRingSum[k122[iii] - 1]; }
219 for (int iii = 1; iii <= k131[0]; iii++) { BhabhaComb[22] += PhiRingSum[k131[iii] - 1]; }
220 for (int iii = 1; iii <= k132[0]; iii++) { BhabhaComb[23] += PhiRingSum[k132[iii] - 1]; }
221 for (int iii = 1; iii <= k141[0]; iii++) { BhabhaComb[24] += PhiRingSum[k141[iii] - 1]; }
222 for (int iii = 1; iii <= k142[0]; iii++) { BhabhaComb[25] += PhiRingSum[k142[iii] - 1]; }
223 for (int iii = 1; iii <= k151[0]; iii++) { BhabhaComb[26] += PhiRingSum[k151[iii] - 1]; }
224 for (int iii = 1; iii <= k152[0]; iii++) { BhabhaComb[27] += PhiRingSum[k152[iii] - 1]; }
225 for (int iii = 1; iii <= k161[0]; iii++) { BhabhaComb[28] += PhiRingSum[k161[iii] - 1]; }
226 for (int iii = 1; iii <= k162[0]; iii++) { BhabhaComb[29] += PhiRingSum[k162[iii] - 1]; }
227 for (int iii = 1; iii <= kLOM1[0]; iii++) { BhabhaComb[30] += PhiRingSum[kLOM1[iii] - 1];}
228 for (int iii = 1; iii <= kLOM2[0]; iii++) { BhabhaComb[31] += PhiRingSum[kLOM2[iii] - 1];}
229
230
231 BtoBflag =
232 ((BhabhaComb[0] * 10 >= _2DBhabhaThresholdFWD[0] &&
233 BhabhaComb[1] * 10 >= _2DBhabhaThresholdBWD[0]) ||
234 (BhabhaComb[2] * 10 >= _2DBhabhaThresholdFWD[1] &&
235 BhabhaComb[3] * 10 >= _2DBhabhaThresholdBWD[1]) ||
236 (BhabhaComb[6] * 10 >= _2DBhabhaThresholdFWD[2] &&
237 BhabhaComb[7] * 10 >= _2DBhabhaThresholdBWD[2]) ||
238 (BhabhaComb[8] * 10 >= _2DBhabhaThresholdFWD[3] &&
239 BhabhaComb[9] * 10 >= _2DBhabhaThresholdBWD[3]) ||
240 (BhabhaComb[10] * 10 >= _2DBhabhaThresholdFWD[4] &&
241 BhabhaComb[11] * 10 >= _2DBhabhaThresholdBWD[4]) ||
242 (BhabhaComb[12] * 10 >= _2DBhabhaThresholdFWD[5] &&
243 BhabhaComb[13] * 10 >= _2DBhabhaThresholdBWD[5]) ||
244 (BhabhaComb[14] * 10 >= _2DBhabhaThresholdFWD[6] &&
245 BhabhaComb[15] * 10 >= _2DBhabhaThresholdBWD[6]) ||
246 (BhabhaComb[16] * 10 >= _2DBhabhaThresholdFWD[7] &&
247 BhabhaComb[17] * 10 >= _2DBhabhaThresholdBWD[7]) ||
248 (BhabhaComb[18] * 10 >= _2DBhabhaThresholdFWD[8] &&
249 BhabhaComb[19] * 10 >= _2DBhabhaThresholdBWD[8]) ||
250 (BhabhaComb[20] * 10 >= _2DBhabhaThresholdFWD[9] &&
251 BhabhaComb[21] * 10 >= _2DBhabhaThresholdBWD[9]) ||
252 (BhabhaComb[22] * 10 >= _2DBhabhaThresholdFWD[10] &&
253 BhabhaComb[23] * 10 >= _2DBhabhaThresholdBWD[10]) ||
254 (BhabhaComb[24] * 10 >= _2DBhabhaThresholdFWD[11] &&
255 BhabhaComb[25] * 10 >= _2DBhabhaThresholdBWD[11]) ||
256 (BhabhaComb[26] * 10 >= _2DBhabhaThresholdFWD[12] &&
257 BhabhaComb[27] * 10 >= _2DBhabhaThresholdBWD[12]) ||
258 (BhabhaComb[28] * 10 >= _2DBhabhaThresholdFWD[13] &&
259 BhabhaComb[29] * 10 >= _2DBhabhaThresholdBWD[13]));
260
261 int bhabha01 = 0;
262 int bhabha02 = 0;
263 int bhabha03 = 0;
264 int bhabha04 = 0;
265 int bhabha05 = 0;
266 int bhabha06 = 0;
267 int bhabha07 = 0;
268 int bhabha08 = 0;
269 int bhabha09 = 0;
270 int bhabha10 = 0;
271 int bhabha11 = 0;
272 int bhabha12 = 0;
273 int bhabha13 = 0;
274 int bhabha14 = 0;
275
276 if ((BhabhaComb[0] * 10 >= _2DBhabhaThresholdFWD[0] &&
277 BhabhaComb[1] * 10 >= _2DBhabhaThresholdBWD[0])) {bhabha01 = 1;}
278 if ((BhabhaComb[2] * 10 >= _2DBhabhaThresholdFWD[1] &&
279 BhabhaComb[3] * 10 >= _2DBhabhaThresholdBWD[1])) {bhabha02 = 1;}
280 if ((BhabhaComb[6] * 10 >= _2DBhabhaThresholdFWD[2] &&
281 BhabhaComb[7] * 10 >= _2DBhabhaThresholdBWD[2])) {bhabha03 = 1;}
282 if ((BhabhaComb[8] * 10 >= _2DBhabhaThresholdFWD[3] &&
283 BhabhaComb[9] * 10 >= _2DBhabhaThresholdBWD[3])) {bhabha04 = 1;}
284 if ((BhabhaComb[10] * 10 >= _2DBhabhaThresholdFWD[4] &&
285 BhabhaComb[11] * 10 >= _2DBhabhaThresholdBWD[4])) {bhabha05 = 1;}
286 if ((BhabhaComb[12] * 10 >= _2DBhabhaThresholdFWD[5] &&
287 BhabhaComb[13] * 10 >= _2DBhabhaThresholdBWD[5])) {bhabha06 = 1;}
288 if ((BhabhaComb[14] * 10 >= _2DBhabhaThresholdFWD[6] &&
289 BhabhaComb[15] * 10 >= _2DBhabhaThresholdBWD[6])) {bhabha07 = 1;}
290 if ((BhabhaComb[16] * 10 >= _2DBhabhaThresholdFWD[7] &&
291 BhabhaComb[17] * 10 >= _2DBhabhaThresholdBWD[7])) {bhabha08 = 1;}
292 if ((BhabhaComb[18] * 10 >= _2DBhabhaThresholdFWD[8] &&
293 BhabhaComb[19] * 10 >= _2DBhabhaThresholdBWD[8])) {bhabha09 = 1;}
294 if ((BhabhaComb[20] * 10 >= _2DBhabhaThresholdFWD[9] &&
295 BhabhaComb[21] * 10 >= _2DBhabhaThresholdBWD[9])) {bhabha10 = 1;}
296 if ((BhabhaComb[22] * 10 >= _2DBhabhaThresholdFWD[10] &&
297 BhabhaComb[23] * 10 >= _2DBhabhaThresholdBWD[10])) {bhabha11 = 1;}
298 if ((BhabhaComb[24] * 10 >= _2DBhabhaThresholdFWD[11] &&
299 BhabhaComb[25] * 10 >= _2DBhabhaThresholdBWD[11])) {bhabha12 = 1;}
300 if ((BhabhaComb[26] * 10 >= _2DBhabhaThresholdFWD[12] &&
301 BhabhaComb[27] * 10 >= _2DBhabhaThresholdBWD[12])) {bhabha13 = 1;}
302 if ((BhabhaComb[28] * 10 >= _2DBhabhaThresholdFWD[13] &&
303 BhabhaComb[29] * 10 >= _2DBhabhaThresholdBWD[13])) {bhabha14 = 1;}
304
305 BhabhaComb.clear();
306 BhabhaComb.push_back(bhabha01);
307 BhabhaComb.push_back(bhabha02);
308 BhabhaComb.push_back(bhabha03);
309 BhabhaComb.push_back(bhabha04);
310 BhabhaComb.push_back(bhabha05);
311 BhabhaComb.push_back(bhabha06);
312 BhabhaComb.push_back(bhabha07);
313 BhabhaComb.push_back(bhabha08);
314 BhabhaComb.push_back(bhabha09);
315 BhabhaComb.push_back(bhabha10);
316 BhabhaComb.push_back(bhabha11);
317 BhabhaComb.push_back(bhabha12);
318 BhabhaComb.push_back(bhabha13);
319 BhabhaComb.push_back(bhabha14);
320 BhabhaComb.push_back(0);
321 BhabhaComb.push_back(0);
322 BhabhaComb.push_back(0);
323 BhabhaComb.push_back(0);
324
325 return BtoBflag;
326}

◆ GetBhabha01()

bool GetBhabha01 ( )

Belle II 3D Bhabha method for veto.

Definition at line 330 of file TrgEclBhabha.cc.

331{
332 //
333 // Read Cluster Table
334 //
335 MaxTCId.clear();
336 ClusterEnergy.clear();
337 ClusterTiming.clear();
338 ClusterPosition.clear();
344 // int EventId = 0;
345 StoreArray<TRGECLCluster> trgeclClusterArray;
346 for (int ii = 0; ii < trgeclClusterArray.getEntries(); ii++) {
347 TRGECLCluster* aTRGECLCluster = trgeclClusterArray[ii];
348 // EventId = aTRGECLCluster->getEventId();
349 int maxTCId = aTRGECLCluster->getMaxTCId();
350 double clusterenergy = aTRGECLCluster->getEnergyDep();
351 double clustertiming = aTRGECLCluster->getTimeAve();
352 ROOT::Math::XYZVector clusterposition(aTRGECLCluster->getPositionX(),
353 aTRGECLCluster->getPositionY(),
354 aTRGECLCluster->getPositionZ());
355 ClusterTiming.push_back(clustertiming);
356 ClusterEnergy.push_back(clusterenergy);
357 ClusterPosition.push_back(clusterposition);
358 MaxTCId.push_back(maxTCId);
359 }
360 const int ncluster = ClusterEnergy.size();
361 //
362 //
363 //
364 BhabhaComb.clear();
365 BhabhaComb.resize(18, 0);
366
367 int cl_idx1 = -1;
368 int cl_idx2 = -1;
369 bool BhabhaFlag = false;
370 for (int icluster = 0; icluster < ncluster ; icluster++) {
371 for (int jcluster = icluster + 1; jcluster < ncluster; jcluster ++) {
372 bool BtoBFlag = false;
373
374 if (icluster == jcluster) {continue;}
375
376 int energy1 = 0;
377 int energy2 = 0;
378 int dphi = 0;
379 int thetaSum = 0;
380 get2CLETP(MaxTCId[icluster],
381 MaxTCId[jcluster],
382 energy1,
383 energy2,
384 dphi,
385 thetaSum);
386
387 if (dphi > _3DBhabhaVetoAngle[0] &&
388 thetaSum > _3DBhabhaVetoAngle[2] &&
389 thetaSum < _3DBhabhaVetoAngle[3]) {BtoBFlag = true;}
390 if ((ClusterEnergy[icluster] * 100. > _3DBhabhaVetoThreshold[0] * energy1 &&
391 ClusterEnergy[jcluster] * 100. > _3DBhabhaVetoThreshold[0] * energy2) &&
392 (ClusterEnergy[icluster] * 100. > _3DBhabhaVetoThreshold[1] * energy1 ||
393 ClusterEnergy[jcluster] * 100. > _3DBhabhaVetoThreshold[1] * energy2)) {
394 if (BtoBFlag) {
395 BhabhaFlag = true;
396 cl_idx1 = icluster;
397 cl_idx2 = jcluster;
398 }
399 }
400 }
401 }
402
403 if (BhabhaFlag) {
404 m_3DBhabhaVetoClusterTCIds.push_back(MaxTCId[cl_idx1]);
405 m_3DBhabhaVetoClusterTCIds.push_back(MaxTCId[cl_idx2]);
410 int cl_thetaid1 = _TCMap->getTCThetaIdFromTCId(MaxTCId[cl_idx1]);
411 int cl_thetaid2 = _TCMap->getTCThetaIdFromTCId(MaxTCId[cl_idx2]);
412 m_3DBhabhaVetoClusterThetaIds.push_back(cl_thetaid1);
413 m_3DBhabhaVetoClusterThetaIds.push_back(cl_thetaid2);
414 // set InTrack flag
415 if (cl_thetaid1 >= m_3DBhabhaVetoInTrackThetaRegion[0] &&
416 cl_thetaid1 <= m_3DBhabhaVetoInTrackThetaRegion[1] &&
417 cl_thetaid2 >= m_3DBhabhaVetoInTrackThetaRegion[0] &&
418 cl_thetaid2 <= m_3DBhabhaVetoInTrackThetaRegion[1]) {
420 } else {
422 }
423 }
424
425 return BhabhaFlag;
426}
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113
int getEntries() const
Get the number of objects in the array.
Definition: StoreArray.h:216
Example Detector.
Definition: TRGECLCluster.h:24
double getTimeAve() const
The method to get hit average time.
double getPositionZ() const
Get Energy weighted position Z.
double getEnergyDep() const
The method to get deposited energy.
double getPositionX() const
The method to get hit average time Get Energy weighted position X.
double getPositionY() const
Get Energy weighted position Y.
int getMaxTCId() const
The method to get the Maximum(center) TC id.
void get2CLETP(int, int, int &, int &, int &, int &)
2 cluster energies, phi difference and theta sum
int getTCThetaIdFromTCId(int)
get [TC Theta ID] from [TC ID]

◆ GetBhabha02()

bool GetBhabha02 ( )

Belle II 3D Bhabha method for selection.

Definition at line 430 of file TrgEclBhabha.cc.

431{
432 //
433 // Read Cluster Table
434 //
435 MaxTCId.clear();
436 ClusterEnergy.clear();
437 ClusterTiming.clear();
438 ClusterPosition.clear();
440 // int EventId = 0;
441 StoreArray<TRGECLCluster> trgeclClusterArray;
442 for (int ii = 0; ii < trgeclClusterArray.getEntries(); ii++) {
443 TRGECLCluster* aTRGECLCluster = trgeclClusterArray[ii];
444 // EventId = aTRGECLCluster->getEventId();
445 int maxTCId = aTRGECLCluster->getMaxTCId();
446 double clusterenergy = aTRGECLCluster->getEnergyDep();
447 double clustertiming = aTRGECLCluster->getTimeAve();
448 ROOT::Math::XYZVector clusterposition(aTRGECLCluster->getPositionX(),
449 aTRGECLCluster->getPositionY(),
450 aTRGECLCluster->getPositionZ());
451 ClusterTiming.push_back(clustertiming);
452 ClusterEnergy.push_back(clusterenergy);
453 ClusterPosition.push_back(clusterposition);
454 MaxTCId.push_back(maxTCId);
455 }
456 const int ncluster = ClusterEnergy.size();
457 //
458 //
459 //
460 BhabhaComb.clear();
461 BhabhaComb.resize(18, 0);
462
463 int cl_idx1 = -1;
464 int cl_idx2 = -1;
465 bool BhabhaFlag = false;
466 for (int icluster = 0; icluster < ncluster ; icluster++) {
467 for (int jcluster = icluster + 1; jcluster < ncluster; ++jcluster) {
468 bool BtoBFlag = false;
469
470 if (icluster == jcluster) {continue;}
471
472 int energy1 = 0;
473 int energy2 = 0;
474 int dphi = 0;
475 int thetaSum = 0;
476 get2CLETP(MaxTCId[icluster],
477 MaxTCId[jcluster],
478 energy1,
479 energy2,
480 dphi,
481 thetaSum);
482
483 if (dphi > _3DBhabhaSelectionAngle[0] &&
484 dphi < _3DBhabhaSelectionAngle[1] &&
485 thetaSum > _3DBhabhaSelectionAngle[2] &&
486 thetaSum < _3DBhabhaSelectionAngle[3]) {BtoBFlag = true;}
487 if ((ClusterEnergy[icluster] * 100. > _3DBhabhaSelectionThreshold[0] * energy1 &&
488 ClusterEnergy[jcluster] * 100. > _3DBhabhaSelectionThreshold[0] * energy2) &&
489 (ClusterEnergy[icluster] * 100. > _3DBhabhaSelectionThreshold[1] * energy1 ||
490 ClusterEnergy[jcluster] * 100. > _3DBhabhaSelectionThreshold[1] * energy2)) {
491 if (BtoBFlag) {
492 BhabhaFlag = true;
493 cl_idx1 = icluster;
494 cl_idx2 = jcluster;
495 }
496 }
497 }
498 }
499 if (BhabhaFlag) {
500 m_3DBhabhaSelectionClusterTCIds.push_back(MaxTCId[cl_idx1]);
501 m_3DBhabhaSelectionClusterTCIds.push_back(MaxTCId[cl_idx2]);
506 int cl_thetaid1 = _TCMap->getTCThetaIdFromTCId(MaxTCId[cl_idx1]);
507 int cl_thetaid2 = _TCMap->getTCThetaIdFromTCId(MaxTCId[cl_idx2]);
508 m_3DBhabhaSelectionClusterThetaIds.push_back(cl_thetaid1);
509 m_3DBhabhaSelectionClusterThetaIds.push_back(cl_thetaid2);
510 // set theta flag(2bits) for prescale in GDL
511 int cl_thetaid0 = (cl_thetaid1 < cl_thetaid2) ? cl_thetaid1 : cl_thetaid2;
512 if (cl_thetaid0 <= 0 || cl_thetaid0 >= 18) {
514 } else {
515 if (cl_thetaid0 == 1) { m_3DBhabhaSelectionThetaFlag = 0; }
516 else if (cl_thetaid0 == 2) { m_3DBhabhaSelectionThetaFlag = 1; }
517 else if (cl_thetaid0 == 3) { m_3DBhabhaSelectionThetaFlag = 2; }
518 else { m_3DBhabhaSelectionThetaFlag = 3; }
519 }
520 }
521
522 return BhabhaFlag;
523}

◆ GetBhabhaAddition()

int GetBhabhaAddition ( void  )

Additional Bhabha veto.

Definition at line 849 of file TrgEclBhabha.cc.

850{
851
852 std::vector<int> MaxThetaId;
853 MaxThetaId.clear();
854 ClusterEnergy.clear();
855
856 int bit_bhabha_addition = 0;
857
858 StoreArray<TRGECLCluster> trgeclClusterArray;
859 for (int ii = 0; ii < trgeclClusterArray.getEntries(); ii++) {
860 TRGECLCluster* aTRGECLCluster = trgeclClusterArray[ii];
861 int maxTCId = aTRGECLCluster->getMaxTCId();
862 MaxTCId.push_back(maxTCId);
863 int maxThetaId = aTRGECLCluster->getMaxThetaId();
864 MaxThetaId.push_back(maxThetaId);
865 double clusterenergy = aTRGECLCluster->getEnergyDep();
866 ClusterEnergy.push_back(clusterenergy);
867 }
868 int NofCluster1to17 = MaxThetaId.size();
869
870 if (NofCluster1to17 == 1) {
871 if (MaxThetaId[0] <= 3) {
872 bit_bhabha_addition |= 0x01;
873 }
874 } else if (NofCluster1to17 == 2) {
875
876 int energy1 = 0;
877 int energy2 = 0;
878 int dphi = 0;
879 int thetaSum = 0;
881 MaxTCId[1],
882 energy1,
883 energy2,
884 dphi,
885 thetaSum);
886
887 // for hie1
888 if ((dphi > m_3DBhabhaAddAngleCut[0] &&
889 dphi < m_3DBhabhaAddAngleCut[1]) &&
890 (thetaSum > m_3DBhabhaAddAngleCut[2] &&
891 thetaSum < m_3DBhabhaAddAngleCut[3])) {
892 bit_bhabha_addition |= 0x02;
893 }
894 // for hie2
895 if ((dphi > m_3DBhabhaAddAngleCut[0] &&
896 dphi < m_3DBhabhaAddAngleCut[1]) ||
897 (thetaSum > m_3DBhabhaAddAngleCut[2] &&
898 thetaSum < m_3DBhabhaAddAngleCut[3])) {
899 bit_bhabha_addition |= 0x04;
900 }
901
902 // for hie3 and hie4
903 // get thetaID of lower energy cluster
904 int lowe_MaxThetaId = 0;
905 if (ClusterEnergy[0] < ClusterEnergy[1]) {
906 lowe_MaxThetaId = MaxThetaId[0];
907 } else {
908 lowe_MaxThetaId = MaxThetaId[1];
909 }
910 // select cluster in endcap region
911 if (lowe_MaxThetaId <= 3 ||
912 lowe_MaxThetaId >= 16) {
913 // for hie3
914 bit_bhabha_addition |= 0x08;
915 // for hie4
916 // require low energy bound for cluster
917 if (ClusterEnergy[0] > 0.5 &&
918 ClusterEnergy[1] > 0.5) {
919 bit_bhabha_addition |= 0x10;
920 }
921 }
922 }
923
924 return bit_bhabha_addition;
925}
int getMaxThetaId()
The method to set Theta Id of maximum TC in Cluster.

◆ GetBhabhaComb()

std::vector< double > GetBhabhaComb ( )
inline

Output 2D Bhabha combination.

Definition at line 65 of file TrgEclBhabha.h.

65{return BhabhaComb ;}

◆ Getmumu()

bool Getmumu ( )

MuMu selection for calibration.

Definition at line 527 of file TrgEclBhabha.cc.

528{
529 bool BtoBFlag = false;
530 bool BhabhaFlag = false;
531 //
532 // Read Cluster Table
533 //
534 MaxTCId.clear();
535 ClusterEnergy.clear();
536 ClusterTiming.clear();
537 ClusterPosition.clear();
538 // int EventId = 0;
539 StoreArray<TRGECLCluster> trgeclClusterArray;
540 for (int ii = 0; ii < trgeclClusterArray.getEntries(); ii++) {
541 TRGECLCluster* aTRGECLCluster = trgeclClusterArray[ii];
542 // EventId = aTRGECLCluster->getEventId();
543 int maxTCId = aTRGECLCluster->getMaxTCId();
544 double clusterenergy = aTRGECLCluster->getEnergyDep();
545 double clustertiming = aTRGECLCluster->getTimeAve();
546 ROOT::Math::XYZVector clusterposition(aTRGECLCluster->getPositionX(),
547 aTRGECLCluster->getPositionY(),
548 aTRGECLCluster->getPositionZ());
549 ClusterTiming.push_back(clustertiming);
550 ClusterEnergy.push_back(clusterenergy);
551 ClusterPosition.push_back(clusterposition);
552 MaxTCId.push_back(maxTCId);
553 }
554 const int ncluster = ClusterEnergy.size();
555 //
556 //
557 //
558 BhabhaComb.clear();
559 BhabhaComb.resize(18, 0);
560
561 BtoBFlag = false;
562
563 for (int icluster = 0; icluster < ncluster ; icluster++) {
564 for (int jcluster = icluster + 1; jcluster < ncluster; jcluster ++) {
565
566 if (icluster == jcluster) {continue;}
567
568 int energy1 = 0;
569 int energy2 = 0;
570 int dphi = 0;
571 int thetaSum = 0;
572 get2CLETP(MaxTCId[icluster],
573 MaxTCId[jcluster],
574 energy1,
575 energy2,
576 dphi,
577 thetaSum);
578
579 if (dphi > _mumuAngle[0] &&
580 dphi < _mumuAngle[1] &&
581 thetaSum > _mumuAngle[2] &&
582 thetaSum < _mumuAngle[3]) {BtoBFlag = true;}
583 if (ClusterEnergy[icluster] * 10. < _mumuThreshold &&
584 ClusterEnergy[jcluster] * 10. < _mumuThreshold) {
585 if (BtoBFlag) {BhabhaFlag = true;}
586 }
587 }
588 }
589 return BhabhaFlag;
590}

◆ GetTaub2b()

bool GetTaub2b ( double  E_total1to17)

Taub2b selection.

Definition at line 594 of file TrgEclBhabha.cc.

595{
596 //
597 // Read Cluster Table
598 //
599 MaxTCId.clear();
600 ClusterEnergy.clear();
601 ClusterTiming.clear();
602 ClusterPosition.clear();
603
607
608 if (E_total1to17 < m_taub2bEtotCut) {
610 }
611
612 StoreArray<TRGECLCluster> trgeclClusterArray;
613 for (int ii = 0; ii < trgeclClusterArray.getEntries(); ii++) {
614 TRGECLCluster* aTRGECLCluster = trgeclClusterArray[ii];
615 int maxTCId = aTRGECLCluster->getMaxTCId();
616 double clusterenergy = aTRGECLCluster->getEnergyDep();
617 ClusterEnergy.push_back(clusterenergy);
618 MaxTCId.push_back(maxTCId);
619 }
620
621 const int ncluster = ClusterEnergy.size();
622
623 for (int icluster = 0; icluster < ncluster ; icluster++) {
624 for (int jcluster = icluster + 1; jcluster < ncluster; jcluster ++) {
625
626 if (icluster == jcluster) {continue;}
627
628 int energy1 = 0;
629 int energy2 = 0;
630 int dphi = 0;
631 int thetaSum = 0;
632 get2CLETP(MaxTCId[icluster],
633 MaxTCId[jcluster],
634 energy1,
635 energy2,
636 dphi,
637 thetaSum);
638
639 if (dphi > m_taub2bAngleCut[0] &&
640 dphi < m_taub2bAngleCut[1] &&
641 thetaSum > m_taub2bAngleCut[2] &&
642 thetaSum < m_taub2bAngleCut[3]) {
644 //
645 if ((ClusterEnergy[icluster] < m_taub2bClusterECut1 &&
646 ClusterEnergy[jcluster] < m_taub2bClusterECut2) ||
647 (ClusterEnergy[icluster] < m_taub2bClusterECut2 &&
648 ClusterEnergy[jcluster] < m_taub2bClusterECut1)) {
650 }
651 }
652 }
653 }
654
655 bool Taub2bFlag = false;
656 if (m_taub2bAngleFlag > 0 &&
657 m_taub2bEtotFlag > 0 &&
659 Taub2bFlag = true;
660 }
661
662 return Taub2bFlag;
663}
std::vector< int > m_taub2bAngleCut
taub2b 2 Cluster angle cut (degree)
Definition: TrgEclBhabha.h:283

◆ GetTaub2b2()

bool GetTaub2b2 ( double  E_total1to17)

Taub2b selection (tighter selection than Taub2b)

Definition at line 667 of file TrgEclBhabha.cc.

668{
669 //
670 // Read Cluster Table
671 //
672 MaxTCId.clear();
673 ClusterEnergy.clear();
674 ClusterTiming.clear();
675 ClusterPosition.clear();
676
677 int taub2b2EtotFlag = 0;
678 int taub2b2AngleFlag = 0;
679 int taub2b2NCLEndcapFlag = 0;
680 int taub2b2AngleCLEFlag = 0;
681
682 if (E_total1to17 < m_taub2b2EtotCut) {
683 taub2b2EtotFlag = 1;
684 }
685
686 // countor of cluster for E(cluster)>threshold in endcap
687 int ncl_clecut_endcap = 0;
688 // cluster array loop
689 StoreArray<TRGECLCluster> trgeclClusterArray;
690 for (int ii = 0; ii < trgeclClusterArray.getEntries(); ii++) {
691 TRGECLCluster* aTRGECLCluster = trgeclClusterArray[ii];
692 int maxTCId = aTRGECLCluster->getMaxTCId();
693 double clusterenergy = aTRGECLCluster->getEnergyDep();
694 double clusterthetaid = aTRGECLCluster->getMaxThetaId();
695 ClusterEnergy.push_back(clusterenergy);
696 MaxTCId.push_back(maxTCId);
697 // count N(cluster) of E(cluster) > threshold in endcap
698 if ((clusterthetaid <= 3 ||
699 clusterthetaid >= 16) &&
700 clusterenergy > m_taub2b2CLEEndcapCut) {
701 ncl_clecut_endcap++;
702 }
703 }
704
705 // bool for N(cluster) of E(cluster)>threshold in endcap
706 if (ncl_clecut_endcap < 2) {
707 taub2b2NCLEndcapFlag = 1;
708 }
709
710 // total number of cluster
711 const int ncluster = ClusterEnergy.size();
712
713 // 2 cluster combination
714 for (int icluster = 0; icluster < ncluster ; icluster++) {
715 for (int jcluster = icluster + 1; jcluster < ncluster; jcluster ++) {
716 if (icluster == jcluster) {continue;}
717 int energy1 = 0;
718 int energy2 = 0;
719 int dphi = 0;
720 int thetaSum = 0;
721 get2CLETP(MaxTCId[icluster],
722 MaxTCId[jcluster],
723 energy1,
724 energy2,
725 dphi,
726 thetaSum);
727 // delta phi and theta sum selection
728 if (dphi > m_taub2b2AngleCut[0] &&
729 dphi < m_taub2b2AngleCut[1] &&
730 thetaSum > m_taub2b2AngleCut[2] &&
731 thetaSum < m_taub2b2AngleCut[3]) {
732 taub2b2AngleFlag++;
733 if (ClusterEnergy[icluster] > m_taub2b2CLECut &&
734 ClusterEnergy[jcluster] > m_taub2b2CLECut) {
735 taub2b2AngleCLEFlag++;
736 }
737 }
738 }
739 }
740 //
741 bool taub2b2Flag = false;
742 if (taub2b2EtotFlag > 0 &&
743 taub2b2AngleFlag > 0 &&
744 taub2b2NCLEndcapFlag > 0 &&
745 taub2b2AngleCLEFlag > 0) {
746 taub2b2Flag = true;
747 }
748
749 return taub2b2Flag;
750}
std::vector< int > m_taub2b2AngleCut
taub2b2 two Cluster angle cut (degree)
Definition: TrgEclBhabha.h:299

◆ GetTaub2b3()

bool GetTaub2b3 ( double  E_total1to17)

Taub2b3.

Definition at line 756 of file TrgEclBhabha.cc.

757{
758 //
759 // Read Cluster Table
760 //
761 MaxTCId.clear();
762 MaxTCThetaId.clear();
763 ClusterEnergy.clear();
764 ClusterTiming.clear();
765 ClusterPosition.clear();
766
767 int taub2b3EtotFlag = 0;
768 int taub2b3AngleCLEThetaIdFlag = 0;
769 int taub2b3CLELowCutFlag = 1;
770 int taub2b3CLEHighCutFlag = 1;
771
772 // Total Energy Etot < 7 GeV in lab
773 if (E_total1to17 < m_taub2b3EtotCut) {
774 taub2b3EtotFlag = 1;
775 }
776
777 // cluster array loop
778 StoreArray<TRGECLCluster> trgeclClusterArray;
779 for (int ii = 0; ii < trgeclClusterArray.getEntries(); ii++) {
780 TRGECLCluster* aTRGECLCluster = trgeclClusterArray[ii];
781 int maxTCId = aTRGECLCluster->getMaxTCId();
782 double clusterenergy = aTRGECLCluster->getEnergyDep();
783 ClusterEnergy.push_back(clusterenergy);
784 MaxTCId.push_back(maxTCId);
785 MaxTCThetaId.push_back(aTRGECLCluster->getMaxThetaId());
786
787 // All clusters in the event shoule be E > 0.12 GeV in lab.
788 if (clusterenergy <= m_taub2b3CLELowCut) {
789 taub2b3CLELowCutFlag = 0;
790 }
791 // The number of clusters with E > 4.5 GeV in lab should be 0.
792 if (clusterenergy > m_taub2b3CLEHighCut) {
793 taub2b3CLEHighCutFlag = 0;
794 }
795 }
796
797 // total number of cluster
798 const int ncluster = ClusterEnergy.size();
799
800 // 2 cluster combination
801 for (int icluster = 0; icluster < ncluster ; icluster++) {
802 for (int jcluster = icluster + 1; jcluster < ncluster; jcluster ++) {
803 if (icluster == jcluster) {continue;}
804 int energy1 = 0;
805 int energy2 = 0;
806 int dphi = 0;
807 int thetaSum = 0;
808 get2CLETP(MaxTCId[icluster],
809 MaxTCId[jcluster],
810 energy1,
811 energy2,
812 dphi,
813 thetaSum);
814
815 // delta phi and theta sum selection in cms
816 if (dphi > m_taub2b3AngleCut[0] &&
817 dphi < m_taub2b3AngleCut[1] &&
818 thetaSum > m_taub2b3AngleCut[2] &&
819 thetaSum < m_taub2b3AngleCut[3]) {
820 // Cluster ThetaID selection
821 if (MaxTCThetaId[icluster] >= 2 &&
822 MaxTCThetaId[icluster] <= 16 &&
823 MaxTCThetaId[jcluster] >= 2 &&
824 MaxTCThetaId[jcluster] <= 16) {
825 // Cluster energy selection in lab
826 if (ClusterEnergy[icluster] > m_taub2b3CLEb2bCut ||
827 ClusterEnergy[jcluster] > m_taub2b3CLEb2bCut) {
828 taub2b3AngleCLEThetaIdFlag++;
829 }
830 }
831 }
832 }
833 }
834 // all selections
835 bool taub2b3Flag = false;
836 if (taub2b3EtotFlag > 0 &&
837 taub2b3AngleCLEThetaIdFlag > 0 &&
838 taub2b3CLELowCutFlag > 0 &&
839 taub2b3CLEHighCutFlag > 0) {
840 taub2b3Flag = true;
841 }
842
843 return taub2b3Flag;
844}
std::vector< double > MaxTCThetaId
Cluster ThetaId.
Definition: TrgEclBhabha.h:257
std::vector< int > m_taub2b3AngleCut
taub2b3 selection cuts (3,2,1,0) = (dphi low, dphi high, theta_sum low, theta_sum high)
Definition: TrgEclBhabha.h:307

◆ getTaub2bAngleFlag()

int getTaub2bAngleFlag ( void  )
inline

get taub2b 2 cluster angle cut flag

Definition at line 236 of file TrgEclBhabha.h.

236{ return m_taub2bAngleFlag; }

◆ getTaub2bClusterEFlag()

int getTaub2bClusterEFlag ( void  )
inline

taub2b Cluster energy flag

Definition at line 240 of file TrgEclBhabha.h.

240{ return m_taub2bClusterEFlag; }

◆ getTaub2bEtotFlag()

int getTaub2bEtotFlag ( void  )
inline

get total energy(TC theta id=1-17) flag for taub2b

Definition at line 238 of file TrgEclBhabha.h.

238{ return m_taub2bEtotFlag; }

◆ set2DBhabhaThreshold()

void set2DBhabhaThreshold ( const std::vector< double > &  i2DBhabhaThresholdFWD,
const std::vector< double > &  i2DBhabhaThresholdBWD 
)
inline

set 2D Bhabha Energy Threshold

Definition at line 69 of file TrgEclBhabha.h.

71 {
72 _2DBhabhaThresholdFWD = i2DBhabhaThresholdFWD;
73 _2DBhabhaThresholdBWD = i2DBhabhaThresholdBWD;
74 }

◆ set3DBhabhaAddAngleCut()

void set3DBhabhaAddAngleCut ( const std::vector< double > &  i3DBhabhaAddAngleCut)
inline

set 3D Bhabha addtion Angle selection

Definition at line 100 of file TrgEclBhabha.h.

101 {
102 m_3DBhabhaAddAngleCut = i3DBhabhaAddAngleCut;
103 }

◆ set3DBhabhaSelectionAngle()

void set3DBhabhaSelectionAngle ( const std::vector< double > &  i3DBhabhaSelectionAngle)
inline

set 3D selection Bhabha Energy Angle

Definition at line 86 of file TrgEclBhabha.h.

87 {
88 _3DBhabhaSelectionAngle = i3DBhabhaSelectionAngle;
89 };

◆ set3DBhabhaSelectionThreshold()

void set3DBhabhaSelectionThreshold ( const std::vector< double > &  i3DBhabhaSelectionThreshold)
inline

set 3D selection Bhabha Energy Threshold

Definition at line 76 of file TrgEclBhabha.h.

77 {
78 _3DBhabhaSelectionThreshold = i3DBhabhaSelectionThreshold;
79 };

◆ set3DBhabhaVetoAngle()

void set3DBhabhaVetoAngle ( const std::vector< double > &  i3DBhabhaVetoAngle)
inline

set 3D veto Bhabha Energy Angle

Definition at line 91 of file TrgEclBhabha.h.

92 {
93 _3DBhabhaVetoAngle = i3DBhabhaVetoAngle;
94 };

◆ set3DBhabhaVetoInTrackThetaRegion()

void set3DBhabhaVetoInTrackThetaRegion ( const std::vector< int > &  i3DBhabhaVetoInTrackThetaRegion)
inline

set ThetaID (low and high) for 3DBhabhaVetoInTrack

Definition at line 105 of file TrgEclBhabha.h.

106 {
107 m_3DBhabhaVetoInTrackThetaRegion = i3DBhabhaVetoInTrackThetaRegion;
108 }

◆ set3DBhabhaVetoThreshold()

void set3DBhabhaVetoThreshold ( const std::vector< double > &  i3DBhabhaVetoThreshold)
inline

set 3D veto Bhabha Energy Threshold

Definition at line 81 of file TrgEclBhabha.h.

82 {
83 _3DBhabhaVetoThreshold = i3DBhabhaVetoThreshold;
84 };

◆ setmumuAngle()

void setmumuAngle ( const std::vector< double > &  imumuAngle)
inline

set mumu bit Angle selection

Definition at line 98 of file TrgEclBhabha.h.

98{_mumuAngle = imumuAngle; }

◆ setmumuThreshold()

void setmumuThreshold ( int  mumuThreshold)
inline

set mumu bit Threshold

Definition at line 96 of file TrgEclBhabha.h.

96{_mumuThreshold = mumuThreshold; }

◆ setTaub2b2Cut()

void setTaub2b2Cut ( const std::vector< int > &  iTaub2b2AngleCut,
const double  iTaub2b2EtotCut,
const double  iTaub2b2CLEEndcapCut,
const double  iTaub2b2CLECut 
)
inline

set taub2b2 cut

Definition at line 128 of file TrgEclBhabha.h.

132 {
133 m_taub2b2AngleCut = iTaub2b2AngleCut;
134 m_taub2b2EtotCut = iTaub2b2EtotCut;
135 m_taub2b2CLEEndcapCut = iTaub2b2CLEEndcapCut;
136 m_taub2b2CLECut = iTaub2b2CLECut;
137 }

◆ setTaub2b3Cut()

void setTaub2b3Cut ( const std::vector< int > &  iTaub2b3AngleCut,
const double  iTaub2b3EtotCut,
const double  iTaub2b3CLEb2bCut,
const double  iTaub2b3CLELowCut,
const double  iTaub2b3CLEHighCut 
)
inline

set taub2b3 cut

Definition at line 139 of file TrgEclBhabha.h.

144 {
145 m_taub2b3AngleCut = iTaub2b3AngleCut;
146 m_taub2b3EtotCut = iTaub2b3EtotCut;
147 m_taub2b3CLEb2bCut = iTaub2b3CLEb2bCut;
148 m_taub2b3CLELowCut = iTaub2b3CLELowCut;
149 m_taub2b3CLEHighCut = iTaub2b3CLEHighCut;
150 }

◆ setTaub2bAngleCut()

void setTaub2bAngleCut ( const std::vector< int > &  iTaub2bAngleCut)
inline

set 2 Cluster angle selection for tau 1x1 decay [0], [1] for low and high of dphi, [2], [3] for low and high of Theta Sum

Definition at line 111 of file TrgEclBhabha.h.

112 {
113 m_taub2bAngleCut = iTaub2bAngleCut;
114 }

◆ setTaub2bClusterECut()

void setTaub2bClusterECut ( const double  iTaub2bClusterECut1,
const double  iTaub2bClusterECut2 
)
inline

set cluster energy cut for taub2b

Definition at line 121 of file TrgEclBhabha.h.

123 {
124 m_taub2bClusterECut1 = iTaub2bClusterECut1;
125 m_taub2bClusterECut2 = iTaub2bClusterECut2;
126 }

◆ setTaub2bEtotCut()

void setTaub2bEtotCut ( const double  iTaub2bEtotCut)
inline

set total energy cut for taub2b

Definition at line 116 of file TrgEclBhabha.h.

117 {
118 m_taub2bEtotCut = iTaub2bEtotCut;
119 }

Member Data Documentation

◆ _2DBhabhaThresholdBWD

std::vector<double> _2DBhabhaThresholdBWD
private

2D Bhabha Energy Threshold

Definition at line 267 of file TrgEclBhabha.h.

◆ _2DBhabhaThresholdFWD

std::vector<double> _2DBhabhaThresholdFWD
private

2D Bhabha Energy Threshold

Definition at line 265 of file TrgEclBhabha.h.

◆ _3DBhabhaSelectionAngle

std::vector<double> _3DBhabhaSelectionAngle
private

3D Selection Bhabha Energy Angle

Definition at line 273 of file TrgEclBhabha.h.

◆ _3DBhabhaSelectionThreshold

std::vector<double> _3DBhabhaSelectionThreshold
private

3D Selection Bhabha Energy Threshold

Definition at line 269 of file TrgEclBhabha.h.

◆ _3DBhabhaVetoAngle

std::vector<double> _3DBhabhaVetoAngle
private

3D Veto Bhabha Energy Angle

Definition at line 275 of file TrgEclBhabha.h.

◆ _3DBhabhaVetoThreshold

std::vector<double> _3DBhabhaVetoThreshold
private

3D Veto Bhabha Energy Threshold

Definition at line 271 of file TrgEclBhabha.h.

◆ _database

TrgEclDataBase* _database = nullptr
private

Object of Trigger ECL DataBase.

cppcheck-suppress unsafeClassCanLeak

Definition at line 247 of file TrgEclBhabha.h.

◆ _mumuAngle

std::vector<double> _mumuAngle
private

mumu bit Angle

Definition at line 279 of file TrgEclBhabha.h.

◆ _mumuThreshold

double _mumuThreshold
private

mumu bit Energy Threshold

Definition at line 277 of file TrgEclBhabha.h.

◆ _TCMap

TrgEclMapping* _TCMap = nullptr
private

Object of TC Mapping.

Definition at line 244 of file TrgEclBhabha.h.

◆ BhabhaComb

std::vector<double> BhabhaComb
private

Bhabha Combination.

Definition at line 253 of file TrgEclBhabha.h.

◆ ClusterEnergy

std::vector<double> ClusterEnergy
private

Cluster Energy.

Definition at line 259 of file TrgEclBhabha.h.

◆ ClusterPosition

std::vector<ROOT::Math::XYZVector> ClusterPosition
private

Cluster Timing.

Definition at line 263 of file TrgEclBhabha.h.

◆ ClusterTiming

std::vector<double> ClusterTiming
private

Cluster Timing.

Definition at line 261 of file TrgEclBhabha.h.

◆ m_3DBhabhaAddAngleCut

std::vector<double> m_3DBhabhaAddAngleCut
private

Angle selection of additional Bhabha veto in CM frame.

Definition at line 281 of file TrgEclBhabha.h.

◆ m_3DBhabhaSelectionClusterEnergies

std::vector<double> m_3DBhabhaSelectionClusterEnergies
private

Energies of two clusters used for 3D Bhabha selection (GeV)

Definition at line 337 of file TrgEclBhabha.h.

◆ m_3DBhabhaSelectionClusterTCIds

std::vector<int> m_3DBhabhaSelectionClusterTCIds
private

TCIDs of two clusters of 3D Bhabha selection.

Definition at line 333 of file TrgEclBhabha.h.

◆ m_3DBhabhaSelectionClusterThetaIds

std::vector<int> m_3DBhabhaSelectionClusterThetaIds
private

ThetaIDs of two clusters used for 3D Bhabha selection.

Definition at line 335 of file TrgEclBhabha.h.

◆ m_3DBhabhaSelectionClusterTimings

std::vector<double> m_3DBhabhaSelectionClusterTimings
private

Timings of two clusters used for 3D Bhabha selection (ns)

Definition at line 339 of file TrgEclBhabha.h.

◆ m_3DBhabhaSelectionThetaFlag

int m_3DBhabhaSelectionThetaFlag = std::numeric_limits<int>::quiet_NaN()
private

flag which shows theta position of clusters of 3DBhabha Selection.

Definition at line 331 of file TrgEclBhabha.h.

◆ m_3DBhabhaVetoClusterEnergies

std::vector<double> m_3DBhabhaVetoClusterEnergies
private

Energies of two clusters of 3D Bhabha veto (GeV)

Definition at line 325 of file TrgEclBhabha.h.

◆ m_3DBhabhaVetoClusterTCIds

std::vector<int> m_3DBhabhaVetoClusterTCIds
private

TCIDs of two clusters of 3D Bhabha veto.

Definition at line 321 of file TrgEclBhabha.h.

◆ m_3DBhabhaVetoClusterThetaIds

std::vector<int> m_3DBhabhaVetoClusterThetaIds
private

ThetaIds of two clusters of 3D Bhabha veto.

Definition at line 323 of file TrgEclBhabha.h.

◆ m_3DBhabhaVetoClusterTimings

std::vector<double> m_3DBhabhaVetoClusterTimings
private

Timings of two clusters of 3D Bhabha veto (ns)

Definition at line 327 of file TrgEclBhabha.h.

◆ m_3DBhabhaVetoInTrackFlag

int m_3DBhabhaVetoInTrackFlag
private

trigger bit of flag(1bit) whether two clusters statisfy 3D Bhabha veto are in CDCTRG region in theta (="InTrack") or not

Definition at line 319 of file TrgEclBhabha.h.

◆ m_3DBhabhaVetoInTrackThetaRegion

std::vector<int> m_3DBhabhaVetoInTrackThetaRegion
private

theta region(low and high) of 3D Bhbabha veto InTrack

Definition at line 329 of file TrgEclBhabha.h.

◆ m_taub2b2AngleCut

std::vector<int> m_taub2b2AngleCut
private

taub2b2 two Cluster angle cut (degree)

Definition at line 299 of file TrgEclBhabha.h.

◆ m_taub2b2CLECut

double m_taub2b2CLECut
private

taub2b2 cluster energy cut (GeV)

Definition at line 303 of file TrgEclBhabha.h.

◆ m_taub2b2CLEEndcapCut

double m_taub2b2CLEEndcapCut
private

taub2b2 cluster energy cut for endcap cluster (GeV)

Definition at line 301 of file TrgEclBhabha.h.

◆ m_taub2b2EtotCut

double m_taub2b2EtotCut
private

taub2b2 total energy cut (GeV)

Definition at line 297 of file TrgEclBhabha.h.

◆ m_taub2b3AngleCut

std::vector<int> m_taub2b3AngleCut
private

taub2b3 selection cuts (3,2,1,0) = (dphi low, dphi high, theta_sum low, theta_sum high)

Definition at line 307 of file TrgEclBhabha.h.

◆ m_taub2b3CLEb2bCut

double m_taub2b3CLEb2bCut
private

taub2b3 cluster energy cut (GeV)

Definition at line 311 of file TrgEclBhabha.h.

◆ m_taub2b3CLEHighCut

double m_taub2b3CLEHighCut
private

taub2b3 cluster energy cut3 (GeV)

Definition at line 315 of file TrgEclBhabha.h.

◆ m_taub2b3CLELowCut

double m_taub2b3CLELowCut
private

taub2b3 cluster energy cut2 (GeV)

Definition at line 313 of file TrgEclBhabha.h.

◆ m_taub2b3EtotCut

double m_taub2b3EtotCut
private

taub2b3 total energy (TC theta ID =1-17) (GeV)

Definition at line 309 of file TrgEclBhabha.h.

◆ m_taub2bAngleCut

std::vector<int> m_taub2bAngleCut
private

taub2b 2 Cluster angle cut (degree)

Definition at line 283 of file TrgEclBhabha.h.

◆ m_taub2bAngleFlag

int m_taub2bAngleFlag
private

taub2b 2 cluster angle cut flag

Definition at line 291 of file TrgEclBhabha.h.

◆ m_taub2bClusterECut1

double m_taub2bClusterECut1
private

taub2b Cluster one of energy cut in b2b in lab (GeV)

Definition at line 287 of file TrgEclBhabha.h.

◆ m_taub2bClusterECut2

double m_taub2bClusterECut2
private

taub2b Cluster one of energy cut in b2b in lab (GeV)

Definition at line 289 of file TrgEclBhabha.h.

◆ m_taub2bClusterEFlag

int m_taub2bClusterEFlag
private

taub2b Cluster energy flag

Definition at line 295 of file TrgEclBhabha.h.

◆ m_taub2bEtotCut

double m_taub2bEtotCut
private

taub2b total energy(TC theta id=1-17) cut (GeV)

Definition at line 285 of file TrgEclBhabha.h.

◆ m_taub2bEtotFlag

int m_taub2bEtotFlag
private

taub2b total energy(TC theta id=1-17) flag

Definition at line 293 of file TrgEclBhabha.h.

◆ MaxTCId

std::vector<double> MaxTCId
private

Max TC Id.

Definition at line 255 of file TrgEclBhabha.h.

◆ MaxTCThetaId

std::vector<double> MaxTCThetaId
private

Cluster ThetaId.

Definition at line 257 of file TrgEclBhabha.h.


The documentation for this class was generated from the following files: