3 #include <qautils/QAHistManagerDef.h>
14 #include <CLHEP/Vector/LorentzVector.h>
22 #include <TDatabasePDG.h>
30 #include <TLorentzVector.h>
37 int QAVtxPDGID[
NHFQA] = {411, 421, 431, 4122, 511, 521, 531, 443, 553, -411, -421, -431, -4122, -511, -521, -531};
40 float MassMin[
NHFQA] = {1.6, 1.6, 1.7, 2.0, 5.0, 5.0, 5.1, 1.2, 9.0, 1.6, 1.6, 1.7, 2.0, 5.0, 5.0, 5.1};
41 float MassMax[
NHFQA] = {2.0, 2.0, 2.1, 2.5, 5.5, 5.5, 5.6, 3.2, 10.0, 2.0, 2.0, 2.1, 2.5, 5.5, 5.5, 5.6};
53 , m_write_nTuple(
false)
72 h =
new TH1F(Form(
"QAPx_%d",
i),
"", 200, -1, 1);
75 h =
new TH1F(Form(
"QAPy_%d",
i),
"", 200, -1, 1);
78 h =
new TH1F(Form(
"QAPz_%d",
i),
"", 200, -1, 1);
81 h =
new TH1F(Form(
"QAE_%d",
i),
"", 200, -1, 1);
87 h =
new TH1F(Form(
"QACosTheta_%d", i),
"", 120, -1.2, 1.2);
90 h =
new TH1F(Form(
"BR1DHis_%d", i),
"", 10, -0.5, 9.5);
93 h =
new TH1F(Form(
"ProperLifeTime_%d", i),
"", 100, 0.0001, 0.05);
97 h =
new TH1F(
"HFHadronStat",
"", 9, -0.5, 8.5);
100 h =
new TH1F(
"HFAntiHadronStat",
"", 9, -0.5, 8.5);
105 gStyle->SetOptStat(0);
114 decaymap[0].insert({{111, 211}, 0});
115 decaymap[0].insert({{-211, 211, 211}, 1});
116 decaymap[0].insert({{111, 211, 310}, 2});
117 decaymap[0].insert({{-321, 211, 211}, 3});
118 decaymap[0].insert({{-211, -211, 211, 211, 211}, 4});
119 decaymap[0].insert({{211, 333}, 5});
120 decaymap[0].insert({{-13, 14}, 6});
121 decaymap[0].insert({{310, 321}, 7});
124 decaymap[1].insert({{-321, 211}, 0});
125 decaymap[1].insert({{-321, 111, 211}, 1});
126 decaymap[1].insert({{-211, 321}, 2});
127 decaymap[1].insert({{-321, 310, 321}, 3});
128 decaymap[1].insert({{310, 310, 310}, 4});
129 decaymap[1].insert({{111, 111}, 5});
130 decaymap[1].insert({{-211, 211}, 6});
133 decaymap[2].insert({{-13, 14, 333}, 0});
134 decaymap[2].insert({{-13, 14}, 1});
135 decaymap[2].insert({{-321, 211, 321}, 2});
136 decaymap[2].insert({{310, 321}, 3});
137 decaymap[2].insert({{111, 111, 211}, 4});
138 decaymap[2].insert({{-2112, 2212}, 5});
139 decaymap[2].insert({{211, 333}, 6});
142 decaymap[3].insert({{-321, 211, 2212}, 0});
143 decaymap[3].insert({{-311, 2212}, 1});
144 decaymap[3].insert({{333, 2212}, 2});
145 decaymap[3].insert({{-321, 111, 211, 2212}, 3});
146 decaymap[3].insert({{-311, -211, 211, 2212}, 4});
147 decaymap[3].insert({{-211, -211, 211, 211, 2112}, 5});
148 decaymap[3].insert({{-211, 211, 2212}, 6});
151 decaymap[4].insert({{-211, 321}, 0});
152 decaymap[4].insert({{-211, 111, 321}, 1});
153 decaymap[4].insert({{-211, 211}, 2});
154 decaymap[4].insert({{111, 111}, 3});
155 decaymap[4].insert({{-411, 211}, 4});
156 decaymap[4].insert({{-411, 431}, 5});
157 decaymap[4].insert({{-211, 321, 443}, 6});
158 decaymap[4].insert({{-211, 211, 443}, 7});
161 decaymap[5].insert({{-321, 211, 321}, 0});
162 decaymap[5].insert({{-321, 321, 321}, 1});
163 decaymap[5].insert({{321, 333}, 2});
164 decaymap[5].insert({{321, 443}, 3});
165 decaymap[5].insert({{-421, 321}, 4});
166 decaymap[5].insert({{-421, 431}, 5});
167 decaymap[5].insert({{-10311, 321}, 6});
170 decaymap[6].insert({{-321, 211}, 0});
171 decaymap[6].insert({{-321, 321}, 1});
172 decaymap[6].insert({{333, 333}, 2});
173 decaymap[6].insert({{22, 333}, 3});
174 decaymap[6].insert({{-431, 211}, 4});
175 decaymap[6].insert({{-431, 431}, 5});
176 decaymap[6].insert({{-321, 321, 443}, 6});
177 decaymap[6].insert({{333, 443}, 7});
180 decaymap[7].insert({{-11, 11}, 0});
181 decaymap[7].insert({{-13, 13}, 1});
182 decaymap[7].insert({{-211, 211}, 2});
183 decaymap[7].insert({{-211, 111, 211}, 3});
184 decaymap[7].insert({{-321, 111, 321}, 4});
185 decaymap[7].insert({{-321, -211, 211, 321}, 5});
186 decaymap[7].insert({{-2212, 2212}, 6});
187 decaymap[7].insert({{-2112, 2112}, 7});
188 decaymap[7].insert({{22, 22, 22}, 8});
189 decaymap[7].insert({{22, 111}, 9});
192 decaymap[8].insert({{-11, 11}, 0});
193 decaymap[8].insert({{-13, 13}, 1});
194 decaymap[8].insert({{-211, 22, 211}, 2});
195 decaymap[8].insert({{-211, 111, 211}, 3});
196 decaymap[8].insert({{-321, 22, 321}, 4});
197 decaymap[8].insert({{22, 111, 111}, 5});
198 decaymap[8].insert({{-321, 321, 333}, 6});
199 decaymap[8].insert({{-211, 111, 111, 211}, 7});
200 decaymap[8].insert({{-2212, -211, 22, 211, 2212}, 8});
205 decaymap[9].insert({{-211, 111}, 0});
206 decaymap[9].insert({{-211, -211, 211}, 1});
207 decaymap[9].insert({{-211, 111, 310}, 2});
208 decaymap[9].insert({{-211, -211, 321}, 3});
209 decaymap[9].insert({{-211, -211, -211, 211, 211}, 4});
210 decaymap[9].insert({{-211, 333}, 5});
211 decaymap[9].insert({{-14, 13}, 6});
212 decaymap[9].insert({{-321, 310}, 7});
215 decaymap[10].insert({{-211, 321}, 0});
216 decaymap[10].insert({{-211, 111, 321}, 1});
217 decaymap[10].insert({{-321, 211}, 2});
218 decaymap[10].insert({{-321, 310, 321}, 3});
219 decaymap[10].insert({{310, 310, 310}, 4});
220 decaymap[10].insert({{111, 111}, 5});
221 decaymap[10].insert({{-211, 211}, 6});
224 decaymap[11].insert({{-14, 13, 333}, 0});
225 decaymap[11].insert({{-14, 13}, 1});
226 decaymap[11].insert({{-321, 211, 321}, 2});
227 decaymap[11].insert({{-321, 310}, 3});
228 decaymap[11].insert({{-211, 111, 111}, 4});
229 decaymap[11].insert({{-2112, 2212}, 5});
230 decaymap[11].insert({{-211, 333}, 6});
233 decaymap[12].insert({{-2212, -211, 321}, 0});
234 decaymap[12].insert({{-2212, 311}, 1});
235 decaymap[12].insert({{-2212, 333}, 2});
236 decaymap[12].insert({{-2212, -211, 111, 321}, 3});
237 decaymap[12].insert({{-2212, -211, 211, 311}, 4});
238 decaymap[12].insert({{-2112, -211, -211, 211, 211}, 5});
239 decaymap[12].insert({{-2212, -211, 211}, 6});
242 decaymap[13].insert({{-321, 211}, 0});
243 decaymap[13].insert({{-321, 111, 211}, 1});
244 decaymap[13].insert({{-211, 211}, 2});
245 decaymap[13].insert({{111, 111}, 3});
246 decaymap[13].insert({{-211, 411}, 4});
247 decaymap[13].insert({{-431, 411}, 5});
248 decaymap[13].insert({{-321, 211, 443}, 6});
249 decaymap[13].insert({{-211, 211, 443}, 7});
252 decaymap[14].insert({{-321, -211, 321}, 0});
253 decaymap[14].insert({{-321, -321, 321}, 1});
254 decaymap[14].insert({{-321, 333}, 2});
255 decaymap[14].insert({{-321, 443}, 3});
256 decaymap[14].insert({{-321, 421}, 4});
257 decaymap[14].insert({{-431, 421}, 5});
258 decaymap[14].insert({{-321, 10311}, 6});
261 decaymap[15].insert({{-221, 321}, 0});
262 decaymap[15].insert({{-321, 321}, 1});
263 decaymap[15].insert({{333, 333}, 2});
264 decaymap[15].insert({{22, 333}, 3});
265 decaymap[15].insert({{-211, 431}, 4});
266 decaymap[15].insert({{-431, 431}, 5});
267 decaymap[15].insert({{-321, 321, 443}, 6});
268 decaymap[15].insert({{333, 443}, 7});
274 fout =
new TFile(
"MyQAFile.root",
"RECREATE");
275 QATree =
new TTree(
"QATree",
"QATree");
296 TH1F *QACosTheta[
NHFQA];
297 TH1F *BR1DHis[
NHFQA];
300 TH1F *ProperLifeTime[
NHFQA];
301 TH1F *InvMass[
NHFQA];
305 QAPx[
i] =
dynamic_cast<TH1F *
>(hm->
getHisto(Form(
"QAPx_%d",
i)));
308 QAPy[
i] =
dynamic_cast<TH1F *
>(hm->
getHisto(Form(
"QAPy_%d", i)));
311 QAPz[
i] =
dynamic_cast<TH1F *
>(hm->
getHisto(Form(
"QAPz_%d", i)));
314 QAE[
i] =
dynamic_cast<TH1F *
>(hm->
getHisto(Form(
"QAE_%d", i)));
317 QACosTheta[
i] =
dynamic_cast<TH1F *
>(hm->
getHisto(Form(
"QAPx_%d", i)));
320 QAPx[
i] =
dynamic_cast<TH1F *
>(hm->
getHisto(Form(
"QAPx_%d", i)));
323 BR1DHis[
i] =
dynamic_cast<TH1F *
>(hm->
getHisto(Form(
"BR1DHis_%d", i)));
330 InvMass[
i] =
dynamic_cast<TH1F *
>(hm->
getHisto(Form(
"InvMass_%d", i)));
333 ProperLifeTime[
i] =
dynamic_cast<TH1F *
>(hm->
getHisto(Form(
"ProperLifeTime_%d", i)));
334 assert(ProperLifeTime[i]);
337 TH1F *HFHadronStat =
dynamic_cast<TH1F *
>(hm->
getHisto(
"HFHadronStat"));
340 TH1F *HFAntiHadronStat =
dynamic_cast<TH1F *
>(hm->
getHisto(
"HFAntiHadronStat"));
343 m_truth_info = findNode::getClass<PHG4TruthInfoContainer>(topNode,
"G4TruthInfo");
345 bool VtxToQA =
false;
355 std::vector<int> ParentTrkInfo;
356 std::vector<double> ParentEInfo;
359 std::vector<double> ParentPxInfo;
362 std::vector<double> ParentPyInfo;
365 std::vector<double> ParentPzInfo;
368 std::vector<double> TotalEPerVertex;
369 std::vector<double> TotalPxPerVertex;
370 std::vector<double> TotalPyPerVertex;
371 std::vector<double> TotalPzPerVertex;
373 std::vector<std::vector<int>> DaughterInfo;
374 std::vector<std::vector<double>> DaughterEInfo;
375 std::vector<int> VertexInfo;
376 std::vector<int> HFIndexInfo;
382 iter != range.second; ++iter)
388 int ParentPDGID = -1;
389 int GrandParentPDGID = -1;
399 TVector3 HFParMom(0, 0, 0);
400 TVector3 HFProdVtx(0, 0, 0);
401 TVector3 HFDecayVtx(0, 0, 0);
403 TLorentzVector HFParFourMom(0, 0, 0, 0);
412 ParentPDGID = mother->
get_pid();
414 ParentE = mother->
get_e();
415 ParentPx = mother->
get_px();
416 ParentPy = mother->
get_py();
417 ParentPz = mother->
get_pz();
425 int NDig = (int) log10(abs(gflavor));
426 int firstDigit = (int) (abs(gflavor) / pow(10, NDig));
427 if ((firstDigit == 4 || firstDigit == 5) && ParentPDGID == 0)
429 int HFFillIndex = -99;
431 for (
int q = 0; q <
NHFQA; q++)
433 if (gflavor ==
QAVtxPDGID[q]) HFFillIndex = q;
436 if (gflavor > 0) HFHadronStat->Fill(HFFillIndex);
437 if (gflavor < 0) HFAntiHadronStat->Fill(HFFillIndex - 9);
440 int VtxSize = ParentTrkInfo.size();
448 for (
int i = 0;
i < VtxSize;
i++)
450 if (ParentTrkId != 0 && ParentTrkId == ParentTrkInfo[
i])
468 if ((ParentTrkId > 0 || abs(gflavor) == abs(ParentPDGID)) && VtxToQA ==
true)
474 ParentTrkInfo.push_back(ParentTrkId);
475 ParentEInfo.push_back(ParentE);
477 ParentPxInfo.push_back(ParentPx);
479 ParentPyInfo.push_back(ParentPy);
481 ParentPzInfo.push_back(ParentPz);
484 TotalEPerVertex.push_back(g4particle->
get_e());
485 TotalPxPerVertex.push_back(g4particle->
get_px());
486 TotalPyPerVertex.push_back(g4particle->
get_py());
487 TotalPzPerVertex.push_back(g4particle->
get_pz());
489 VertexInfo.push_back(ParentPDGID);
490 HFIndexInfo.push_back(HFIndex);
492 std::vector<int> Daughters;
494 Daughters.push_back(gflavor);
495 DaughterInfo.push_back(Daughters);
498 std::vector<double> DaughtersE;
499 DaughtersE.push_back(g4particle->
get_e());
500 DaughterEInfo.push_back(DaughtersE);
511 DaughterInfo[
Index].push_back(gflavor);
512 DaughterEInfo[
Index].push_back(g4particle->
get_e());
525 if (GrandParentPDGID == 0 && ParentVtx && VtxToQA)
530 HFProdVtx.SetXYZ(ParentVtx->
get_x(), ParentVtx->
get_y(), ParentVtx->
get_z());
533 SVtoPVDis = (HFDecayVtx - HFProdVtx).Mag();
534 SVtoPVTau = SVtoPVDis / ParP * ParentMass;
536 if (SVtoPVDis > 0) CosTheta = ((HFDecayVtx - HFProdVtx).Dot(HFParMom)) / ((HFDecayVtx - HFProdVtx).Mag() * HFParMom.Mag());
543 ProperLifeTime[HFIndex]->Fill(SVtoPVTau);
544 QACosTheta[HFIndex]->Fill(CosTheta);
550 int VtxSizeFinal = TotalEPerVertex.size();
552 for (
int q = 0; q < VtxSizeFinal; q++)
554 int HFIndexToFill = HFIndexInfo[q];
557 DevPx = (ParentPxInfo[q] - TotalPxPerVertex[q]) / ParentPxInfo[q];
558 DevPy = (ParentPyInfo[q] - TotalPyPerVertex[q]) / ParentPyInfo[q];
559 DevPz = (ParentPzInfo[q] - TotalPzPerVertex[q]) / ParentPzInfo[q];
560 DevE = (ParentEInfo[q] - TotalEPerVertex[q]) / ParentEInfo[q];
562 float ParMass = sqrt(TotalEPerVertex[q] * TotalEPerVertex[q] - ParentPxInfo[q] * ParentPxInfo[q] - ParentPyInfo[q] * ParentPyInfo[q] - ParentPzInfo[q] * ParentPzInfo[q]);
564 QAPx[HFIndexToFill]->Fill(DevPx);
565 QAPy[HFIndexToFill]->Fill(DevPy);
566 QAPz[HFIndexToFill]->Fill(DevPz);
567 QAE[HFIndexToFill]->Fill(DevE);
568 InvMass[HFIndexToFill]->Fill(ParMass);
572 if (HFIndexToFill < 0)
578 std::vector<int> ChannelID;
580 if (decaymap[HFIndexToFill].find({DaughterInfo[q]}) != decaymap[HFIndexToFill].
end()) key = decaymap[HFIndexToFill].find({DaughterInfo[q]})->second;
582 ChannelID.push_back(key);
584 if (HFIndexToFill == 0)
586 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -11) != DaughterInfo[q].
end()) ChannelID.push_back(8);
587 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 333) != DaughterInfo[q].
end()) ChannelID.push_back(9);
590 if (HFIndexToFill == 1)
592 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 310) != DaughterInfo[q].
end()) ChannelID.push_back(7);
593 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 111) != DaughterInfo[q].
end()) ChannelID.push_back(8);
594 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -11) != DaughterInfo[q].
end()) ChannelID.push_back(9);
597 if (HFIndexToFill == 2)
599 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 310) != DaughterInfo[q].
end()) ChannelID.push_back(7);
600 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 333) != DaughterInfo[q].
end()) ChannelID.push_back(8);
601 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -11) != DaughterInfo[q].
end()) ChannelID.push_back(9);
604 if (HFIndexToFill == 3)
606 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -311) != DaughterInfo[q].
end()) ChannelID.push_back(7);
607 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 2212) != DaughterInfo[q].
end()) ChannelID.push_back(8);
608 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -11) != DaughterInfo[q].
end()) ChannelID.push_back(9);
611 if (HFIndexToFill == 4)
613 if ((std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 411) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -411) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 421) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -421) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 431) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -431) != DaughterInfo[q].
end())) ChannelID.push_back(8);
614 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 443) != DaughterInfo[q].
end()) ChannelID.push_back(9);
617 if (HFIndexToFill == 5)
619 if ((std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -11) != DaughterInfo[q].
end()) && (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 12) != DaughterInfo[q].
end())) ChannelID.push_back(7);
620 if ((std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 411) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -411) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 421) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -421) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 431) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -431) != DaughterInfo[q].
end())) ChannelID.push_back(8);
621 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 443) != DaughterInfo[q].
end()) ChannelID.push_back(9);
624 if (HFIndexToFill == 6)
626 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 431) != DaughterInfo[q].
end() || std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -431) != DaughterInfo[q].
end()) ChannelID.push_back(8);
627 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 443) != DaughterInfo[q].
end()) ChannelID.push_back(9);
630 if (HFIndexToFill == 8)
632 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 443) != DaughterInfo[q].
end()) ChannelID.push_back(9);
637 if (HFIndexToFill == 9)
639 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 11) != DaughterInfo[q].
end()) ChannelID.push_back(8);
640 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 333) != DaughterInfo[q].
end()) ChannelID.push_back(9);
643 if (HFIndexToFill == 10)
645 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 310) != DaughterInfo[q].
end()) ChannelID.push_back(7);
646 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 111) != DaughterInfo[q].
end()) ChannelID.push_back(8);
647 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 11) != DaughterInfo[q].
end()) ChannelID.push_back(9);
650 if (HFIndexToFill == 11)
652 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 310) != DaughterInfo[q].
end()) ChannelID.push_back(7);
653 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 333) != DaughterInfo[q].
end()) ChannelID.push_back(8);
654 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 11) != DaughterInfo[q].
end()) ChannelID.push_back(9);
657 if (HFIndexToFill == 12)
659 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 311) != DaughterInfo[q].
end()) ChannelID.push_back(7);
660 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 2212) != DaughterInfo[q].
end()) ChannelID.push_back(8);
661 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 11) != DaughterInfo[q].
end()) ChannelID.push_back(9);
664 if (HFIndexToFill == 13)
666 if ((std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 411) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -411) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 421) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -421) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 431) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -431) != DaughterInfo[q].
end())) ChannelID.push_back(8);
667 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 443) != DaughterInfo[q].
end()) ChannelID.push_back(9);
670 if (HFIndexToFill == 14)
672 if ((std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 11) != DaughterInfo[q].
end()) && (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -12) != DaughterInfo[q].
end())) ChannelID.push_back(7);
673 if ((std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 411) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -411) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 421) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -421) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 431) != DaughterInfo[q].
end()) || (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -431) != DaughterInfo[q].
end())) ChannelID.push_back(8);
674 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 443) != DaughterInfo[q].
end()) ChannelID.push_back(9);
677 if (HFIndexToFill == 15)
679 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 431) != DaughterInfo[q].
end() || std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), -431) != DaughterInfo[q].
end()) ChannelID.push_back(8);
680 if (std::find(DaughterInfo[q].
begin(), DaughterInfo[q].
end(), 443) != DaughterInfo[q].
end()) ChannelID.push_back(9);
683 int ChannelSize = ChannelID.size();
685 for (
int r = 0;
r < ChannelSize;
r++)
687 BR1DHis[HFIndexToFill]->Fill(ChannelID[
r]);