54 #define TRG_SHORT_NAMES
55 #define TRGECLCLUSTER_SHORT_NAMES
56 #include <framework/gearbox/Unit.h>
57 #include "framework/datastore/StoreArray.h"
60 #include <trg/ecl/TrgEclBhabha.h>
62 #include "trg/ecl/dataobjects/TRGECLCluster.h"
69 TrgEclBhabha::TrgEclBhabha(): _mumuThreshold(20)
91 _2DBhabhaThresholdFWD = {40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 30, 35};
92 _2DBhabhaThresholdBWD = {25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 30, 30};
108 bool BtoBflag =
false;
111 vector<int> k011 = {3, 1, 2, 3 };
112 vector<int> k012 = {2, 16, 17};
114 vector<int> k021 = {1, 3};
115 vector<int> k022 = {1, 15};
117 vector<int> k03 = {2, 2, 3};
119 vector<int> k04 = {1, 4};
121 vector<int> k051 = {1, 4 };
122 vector<int> k052 = {2, 14, 15};
124 vector<int> k061 = {1, 5};
125 vector<int> k062 = {2, 14, 15};
127 vector<int> k071 = {2, 4, 5};
128 vector<int> k072 = {1, 14};
130 vector<int> k081 = {1, 5};
131 vector<int> k082 = {2, 13, 14};
133 vector<int> k091 = {1, 5 };
134 vector<int> k092 = {2, 12, 13};
136 vector<int> k101 = {2, 5, 6};
137 vector<int> k102 = {1, 13};
139 vector<int> k111 = {2, 5, 6};
140 vector<int> k112 = {1, 12};
142 vector<int> k121 = {2, 6, 7};
143 vector<int> k122 = {1, 12};
145 vector<int> k131 = {2, 6, 7};
146 vector<int> k132 = {1, 11};
148 vector<int> k141 = {2, 7, 8};
149 vector<int> k142 = {1, 11};
152 vector<int> k151 = {1, 8};
153 vector<int> k152 = {2, 10, 11};
155 vector<int> k161 = {2, 8, 9};
156 vector<int> k162 = {2, 9, 10};
158 vector<int> k17 = {2, 14, 15};
160 vector<int> k18 = {1, 16};
162 vector<int> kLOM1 = {2, 2, 3 };
163 vector<int> kLOM2 = {2, 16, 17};
167 for (
int iii = 1; iii <= k011[0]; iii++) {
BhabhaComb[0] += PhiRingSum[k011[iii] - 1];}
168 for (
int iii = 1; iii <= k012[0]; iii++) {
BhabhaComb[1] += PhiRingSum[k012[iii] - 1];}
169 for (
int iii = 1; iii <= k021[0]; iii++) {
BhabhaComb[2] += PhiRingSum[k021[iii] - 1]; }
170 for (
int iii = 1; iii <= k022[0]; iii++) {
BhabhaComb[3] += PhiRingSum[k022[iii] - 1]; }
171 for (
int iii = 1; iii <= k03[0]; iii++) {
BhabhaComb[4] += PhiRingSum[k03[iii] - 1]; }
172 for (
int iii = 1; iii <= k04[0]; iii++) {
BhabhaComb[5] += PhiRingSum[k04[iii] - 1]; }
173 for (
int iii = 1; iii <= k051[0]; iii++) {
BhabhaComb[6] += PhiRingSum[k051[iii] - 1]; }
174 for (
int iii = 1; iii <= k052[0]; iii++) {
BhabhaComb[7] += PhiRingSum[k052[iii] - 1]; }
175 for (
int iii = 1; iii <= k061[0]; iii++) {
BhabhaComb[8] += PhiRingSum[k061[iii] - 1]; }
176 for (
int iii = 1; iii <= k062[0]; iii++) {
BhabhaComb[9] += PhiRingSum[k062[iii] - 1]; }
177 for (
int iii = 1; iii <= k071[0]; iii++) {
BhabhaComb[10] += PhiRingSum[k071[iii] - 1]; }
178 for (
int iii = 1; iii <= k072[0]; iii++) {
BhabhaComb[11] += PhiRingSum[k072[iii] - 1]; }
179 for (
int iii = 1; iii <= k081[0]; iii++) {
BhabhaComb[12] += PhiRingSum[k081[iii] - 1]; }
180 for (
int iii = 1; iii <= k082[0]; iii++) {
BhabhaComb[13] += PhiRingSum[k082[iii] - 1]; }
181 for (
int iii = 1; iii <= k091[0]; iii++) {
BhabhaComb[14] += PhiRingSum[k091[iii] - 1]; }
182 for (
int iii = 1; iii <= k092[0]; iii++) {
BhabhaComb[15] += PhiRingSum[k092[iii] - 1]; }
183 for (
int iii = 1; iii <= k101[0]; iii++) {
BhabhaComb[16] += PhiRingSum[k101[iii] - 1]; }
184 for (
int iii = 1; iii <= k102[0]; iii++) {
BhabhaComb[17] += PhiRingSum[k102[iii] - 1]; }
185 for (
int iii = 1; iii <= k111[0]; iii++) {
BhabhaComb[18] += PhiRingSum[k111[iii] - 1]; }
186 for (
int iii = 1; iii <= k112[0]; iii++) {
BhabhaComb[19] += PhiRingSum[k112[iii] - 1]; }
187 for (
int iii = 1; iii <= k121[0]; iii++) {
BhabhaComb[20] += PhiRingSum[k121[iii] - 1]; }
188 for (
int iii = 1; iii <= k122[0]; iii++) {
BhabhaComb[21] += PhiRingSum[k122[iii] - 1]; }
189 for (
int iii = 1; iii <= k131[0]; iii++) {
BhabhaComb[22] += PhiRingSum[k131[iii] - 1]; }
190 for (
int iii = 1; iii <= k132[0]; iii++) {
BhabhaComb[23] += PhiRingSum[k132[iii] - 1]; }
191 for (
int iii = 1; iii <= k141[0]; iii++) {
BhabhaComb[24] += PhiRingSum[k141[iii] - 1]; }
192 for (
int iii = 1; iii <= k142[0]; iii++) {
BhabhaComb[25] += PhiRingSum[k142[iii] - 1]; }
193 for (
int iii = 1; iii <= k151[0]; iii++) {
BhabhaComb[26] += PhiRingSum[k151[iii] - 1]; }
194 for (
int iii = 1; iii <= k152[0]; iii++) {
BhabhaComb[27] += PhiRingSum[k152[iii] - 1]; }
195 for (
int iii = 1; iii <= k161[0]; iii++) {
BhabhaComb[28] += PhiRingSum[k161[iii] - 1]; }
196 for (
int iii = 1; iii <= k162[0]; iii++) {
BhabhaComb[29] += PhiRingSum[k162[iii] - 1]; }
197 for (
int iii = 1; iii <= kLOM1[0]; iii++) {
BhabhaComb[30] += PhiRingSum[kLOM1[iii] - 1];}
198 for (
int iii = 1; iii <= kLOM2[0]; iii++) {
BhabhaComb[31] += PhiRingSum[kLOM2[iii] - 1];}
276 bool BtoBFlag =
false;
277 bool BhabhaFlag =
false;
290 for (
int ii = 0; ii < trgeclClusterArray.
getEntries(); ii++) {
295 double clustertiming = aTRGECLCluster -> getTimeAve();
296 TVector3 clusterposition(aTRGECLCluster ->getPositionX(), aTRGECLCluster ->getPositionY(), aTRGECLCluster ->getPositionZ());
311 for (
int icluster = 0; icluster < ncluster ; icluster++) {
312 for (
int jcluster = icluster + 1; jcluster < ncluster; jcluster ++) {
315 if (icluster == jcluster) {
continue;}
318 int energy1 = 15 & lut1;
319 int energy2 = 15 & lut2;
322 int phi1 = 511 & lut1;
323 int phi2 = 511 & lut2;
330 int dphi = abs(phi1 - phi2);
331 if (dphi > 180) {dphi = 360 - dphi;}
332 int thetaSum = theta1 + theta2;
339 if (BtoBFlag) {BhabhaFlag =
true;}
359 bool BtoBFlag =
false;
360 bool BhabhaFlag =
false;
373 for (
int ii = 0; ii < trgeclClusterArray.
getEntries(); ii++) {
378 double clustertiming = aTRGECLCluster -> getTimeAve();
379 TVector3 clusterposition(aTRGECLCluster ->getPositionX(), aTRGECLCluster ->getPositionY(), aTRGECLCluster ->getPositionZ());
394 for (
int icluster = 0; icluster < ncluster ; icluster++) {
395 for (
int jcluster = icluster + 1; jcluster < ncluster; jcluster ++) {
398 if (icluster == jcluster) {
continue;}
401 int energy1 = 15 & lut1;
402 int energy2 = 15 & lut2;
405 int phi1 = 511 & lut1;
406 int phi2 = 511 & lut2;
413 int dphi = abs(phi1 - phi2);
414 if (dphi > 180) {dphi = 360 - dphi;}
415 int thetaSum = theta1 + theta2;
424 if (BtoBFlag) {BhabhaFlag =
true;}
446 bool BtoBFlag =
false;
447 bool BhabhaFlag =
false;
460 for (
int ii = 0; ii < trgeclClusterArray.
getEntries(); ii++) {
465 double clustertiming = aTRGECLCluster -> getTimeAve();
466 TVector3 clusterposition(aTRGECLCluster ->getPositionX(), aTRGECLCluster ->getPositionY(), aTRGECLCluster ->getPositionZ());
482 for (
int icluster = 0; icluster < ncluster ; icluster++) {
483 for (
int jcluster = icluster + 1; jcluster < ncluster; jcluster ++) {
485 if (icluster == jcluster) {
continue;}
490 int phi1 = 511 & lut1;
491 int phi2 = 511 & lut2;
498 int dphi = abs(phi1 - phi2);
499 if (dphi > 180) {dphi = 360 - dphi;}
500 int thetaSum = theta1 + theta2;
505 if (BtoBFlag) {BhabhaFlag =
true;}