Skip to content

Commit 9e0a825

Browse files
committed
fix same event filing
1 parent 106e00e commit 9e0a825

File tree

1 file changed

+93
-20
lines changed

1 file changed

+93
-20
lines changed

PWGLF/Tasks/Nuspex/hadronnucleicorrelation.cxx

Lines changed: 93 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -682,12 +682,22 @@ struct hadronnucleicorrelation {
682682
template <int ME, typename Type>
683683
void mixTracks(Type const& tracks1, Type const& tracks2, bool isIdentical, bool dorapidity)
684684
{ // last value: 0 -- SE; 1 -- ME
685+
int i = 0;
685686
for (auto const& it1 : tracks1) {
687+
int j = 0;
686688
for (auto const& it2 : tracks2) {
687689

688690
Pair->SetPair(it1, it2);
689691
Pair->SetIdentical(isIdentical);
690692

693+
if (isIdentical) {
694+
if (j <= i)
695+
continue;
696+
697+
if (it1->globalIndex() == it1->globalIndex())
698+
continue;
699+
}
700+
691701
// if Identical (pp and antip-antip)
692702
if (isIdentical && Pair->IsClosePair(deta, dphi, radiusTPC)) {
693703
QA.fill(HIST("QA/hdetadphistar"), Pair->GetPhiStarDiff(radiusTPC), Pair->GetEtaDiff());
@@ -770,7 +780,9 @@ struct hadronnucleicorrelation {
770780

771781
Pair->ResetPair();
772782

783+
j++;
773784
} // tracks 2
785+
i++;
774786
} // tracks 1
775787
}
776788

@@ -823,7 +835,9 @@ struct hadronnucleicorrelation {
823835
template <int ME, typename Type>
824836
void mixMCParticlesIdentical(Type const& particles1, Type const& particles2, bool ismatter, bool dorapidity)
825837
{
838+
int i = 0;
826839
for (auto const& it1 : particles1) {
840+
int j = 0;
827841
for (auto const& it2 : particles2) {
828842
// Calculate Delta-eta Delta-phi (gen)
829843
float deltaEtaGen = it1->eta() - it2->eta();
@@ -833,6 +847,11 @@ struct hadronnucleicorrelation {
833847
deltaEtaGen = deltaRapGen;
834848
}
835849

850+
if (j <= i)
851+
continue;
852+
if (it1->globalIndex() == it1->globalIndex())
853+
continue;
854+
836855
if (!ME && std::abs(deltaPhiGen) < 0.0001 && std::abs(deltaEtaGen) < 0.0001) {
837856
continue;
838857
}
@@ -854,7 +873,9 @@ struct hadronnucleicorrelation {
854873
}
855874
}
856875
}
876+
j++;
857877
}
878+
i++;
858879
}
859880
}
860881

@@ -954,7 +975,8 @@ struct hadronnucleicorrelation {
954975
if (isAntiDe) {
955976
selectedtracks_antid[track.singleCollSelId()].push_back(std::make_shared<decltype(track)>(track));
956977
if (mode == 0 || mode == 2) {
957-
registry.fill(HIST("hNtrig_total"), track.pt(), hEffpTEta_antideuteron->Interpolate(track.pt(), track.eta()));
978+
if (docorrection)
979+
registry.fill(HIST("hNtrig_total"), track.pt(), hEffpTEta_antideuteron->Interpolate(track.pt(), track.eta()));
958980
}
959981

960982
if (doQA) {
@@ -968,7 +990,8 @@ struct hadronnucleicorrelation {
968990
selectedtracks_d[track.singleCollSelId()].push_back(std::make_shared<decltype(track)>(track));
969991

970992
if (mode == 1 || mode == 3) {
971-
registry.fill(HIST("hNtrig_total"), track.pt(), hEffpTEta_deuteron->Interpolate(track.pt(), track.eta()));
993+
if (docorrection)
994+
registry.fill(HIST("hNtrig_total"), track.pt(), hEffpTEta_deuteron->Interpolate(track.pt(), track.eta()));
972995
}
973996

974997
if (doQA) {
@@ -984,7 +1007,8 @@ struct hadronnucleicorrelation {
9841007
selectedtracks_p[track.singleCollSelId()].push_back(std::make_shared<decltype(track)>(track));
9851008

9861009
if (mode == 6 || mode == 7) {
987-
registry.fill(HIST("hNtrig_total"), track.pt(), hEffpTEta_proton->Interpolate(track.pt(), track.eta()));
1010+
if (docorrection)
1011+
registry.fill(HIST("hNtrig_total"), track.pt(), hEffpTEta_proton->Interpolate(track.pt(), track.eta()));
9881012
}
9891013

9901014
if (doQA) {
@@ -997,7 +1021,8 @@ struct hadronnucleicorrelation {
9971021
selectedtracks_antip[track.singleCollSelId()].push_back(std::make_shared<decltype(track)>(track));
9981022

9991023
if (mode == 4 || mode == 5) {
1000-
registry.fill(HIST("hNtrig_total"), track.pt(), hEffpTEta_antiproton->Interpolate(track.pt(), track.eta()));
1024+
if (docorrection)
1025+
registry.fill(HIST("hNtrig_total"), track.pt(), hEffpTEta_antiproton->Interpolate(track.pt(), track.eta()));
10011026
}
10021027

10031028
if (doQA) {
@@ -1049,6 +1074,54 @@ struct hadronnucleicorrelation {
10491074

10501075
Pair->SetMagField1(collision.magField());
10511076
Pair->SetMagField2(collision.magField());
1077+
1078+
if (mode == 0 &&
1079+
selectedtracks_antid.find(collision.globalIndex()) != selectedtracks_antid.end() &&
1080+
selectedtracks_antip.find(collision.globalIndex()) != selectedtracks_antip.end()) {
1081+
mixTracks<0>(selectedtracks_antid[collision.globalIndex()], selectedtracks_antip[collision.globalIndex()], 0, dorapidity); // mixing SE
1082+
}
1083+
1084+
if (mode == 1 &&
1085+
selectedtracks_d.find(collision.globalIndex()) != selectedtracks_d.end() &&
1086+
selectedtracks_p.find(collision.globalIndex()) != selectedtracks_p.end()) {
1087+
mixTracks<0>(selectedtracks_d[collision.globalIndex()], selectedtracks_p[collision.globalIndex()], 0, dorapidity); // mixing SE
1088+
}
1089+
1090+
if (mode == 2 &&
1091+
selectedtracks_antid.find(collision.globalIndex()) != selectedtracks_antid.end() &&
1092+
selectedtracks_p.find(collision.globalIndex()) != selectedtracks_p.end()) {
1093+
mixTracks<0>(selectedtracks_antid[collision.globalIndex()], selectedtracks_p[collision.globalIndex()], 0, dorapidity); // mixing SE
1094+
}
1095+
1096+
if (mode == 3 &&
1097+
selectedtracks_d.find(collision.globalIndex()) != selectedtracks_d.end() &&
1098+
selectedtracks_antip.find(collision.globalIndex()) != selectedtracks_antip.end()) {
1099+
mixTracks<0>(selectedtracks_d[collision.globalIndex()], selectedtracks_antip[collision.globalIndex()], 0, dorapidity); // mixing SE
1100+
}
1101+
1102+
if (mode == 4 &&
1103+
selectedtracks_antip.find(collision.globalIndex()) != selectedtracks_antip.end() &&
1104+
selectedtracks_p.find(collision.globalIndex()) != selectedtracks_p.end()) {
1105+
mixTracks<0>(selectedtracks_antip[collision.globalIndex()], selectedtracks_p[collision.globalIndex()], 0, dorapidity); // mixing SE
1106+
}
1107+
1108+
if (mode == 5 &&
1109+
selectedtracks_antip.find(collision.globalIndex()) != selectedtracks_antip.end() &&
1110+
selectedtracks_antip.find(collision.globalIndex()) != selectedtracks_antip.end()) {
1111+
mixTracks<0>(selectedtracks_antip[collision.globalIndex()], selectedtracks_antip[collision.globalIndex()], 1, dorapidity); // mixing SE
1112+
}
1113+
1114+
if (mode == 6 &&
1115+
selectedtracks_p.find(collision.globalIndex()) != selectedtracks_p.end() &&
1116+
selectedtracks_p.find(collision.globalIndex()) != selectedtracks_p.end()) {
1117+
mixTracks<0>(selectedtracks_p[collision.globalIndex()], selectedtracks_p[collision.globalIndex()], 1, dorapidity); // mixing SE
1118+
}
1119+
1120+
if (mode == 7 &&
1121+
selectedtracks_p.find(collision.globalIndex()) != selectedtracks_p.end() &&
1122+
selectedtracks_antip.find(collision.globalIndex()) != selectedtracks_antip.end()) {
1123+
mixTracks<0>(selectedtracks_p[collision.globalIndex()], selectedtracks_antip[collision.globalIndex()], 0, dorapidity); // mixing SE
1124+
}
10521125
}
10531126

10541127
if (mode == 0 && !mixbins_antid.empty()) {
@@ -1062,9 +1135,9 @@ struct hadronnucleicorrelation {
10621135

10631136
auto col1 = value[indx1];
10641137

1065-
if (selectedtracks_antip.find(col1->index()) != selectedtracks_antip.end()) {
1138+
/*if (selectedtracks_antip.find(col1->index()) != selectedtracks_antip.end()) {
10661139
mixTracks<0>(selectedtracks_antid[col1->index()], selectedtracks_antip[col1->index()], 0, dorapidity); // mixing SE
1067-
}
1140+
}*/
10681141

10691142
for (int indx2 = 0; indx2 < EvPerBin; indx2++) { // nested loop for all the combinations of collisions in a chosen mult/vertex bin
10701143

@@ -1093,9 +1166,9 @@ struct hadronnucleicorrelation {
10931166

10941167
auto col1 = value[indx1];
10951168

1096-
if (selectedtracks_p.find(col1->index()) != selectedtracks_p.end()) {
1169+
/*if (selectedtracks_p.find(col1->index()) != selectedtracks_p.end()) {
10971170
mixTracks<0>(selectedtracks_d[col1->index()], selectedtracks_p[col1->index()], 0, dorapidity); // mixing SE
1098-
}
1171+
}*/
10991172

11001173
for (int indx2 = 0; indx2 < EvPerBin; indx2++) { // nested loop for all the combinations of collisions in a chosen mult/vertex bin
11011174

@@ -1124,9 +1197,9 @@ struct hadronnucleicorrelation {
11241197

11251198
auto col1 = value[indx1];
11261199

1127-
if (selectedtracks_p.find(col1->index()) != selectedtracks_p.end()) {
1200+
/*if (selectedtracks_p.find(col1->index()) != selectedtracks_p.end()) {
11281201
mixTracks<0>(selectedtracks_antid[col1->index()], selectedtracks_p[col1->index()], 0, dorapidity); // mixing SE
1129-
}
1202+
}*/
11301203

11311204
for (int indx2 = 0; indx2 < EvPerBin; indx2++) { // nested loop for all the combinations of collisions in a chosen mult/vertex bin
11321205

@@ -1155,9 +1228,9 @@ struct hadronnucleicorrelation {
11551228

11561229
auto col1 = value[indx1];
11571230

1158-
if (selectedtracks_antip.find(col1->index()) != selectedtracks_antip.end()) {
1231+
/*if (selectedtracks_antip.find(col1->index()) != selectedtracks_antip.end()) {
11591232
mixTracks<0>(selectedtracks_d[col1->index()], selectedtracks_antip[col1->index()], 0, dorapidity); // mixing SE
1160-
}
1233+
}*/
11611234

11621235
for (int indx2 = 0; indx2 < EvPerBin; indx2++) { // nested loop for all the combinations of collisions in a chosen mult/vertex bin
11631236

@@ -1186,9 +1259,9 @@ struct hadronnucleicorrelation {
11861259

11871260
auto col1 = value[indx1];
11881261

1189-
if (selectedtracks_p.find(col1->index()) != selectedtracks_p.end()) {
1262+
/*if (selectedtracks_p.find(col1->index()) != selectedtracks_p.end()) {
11901263
mixTracks<0>(selectedtracks_antip[col1->index()], selectedtracks_p[col1->index()], 0, dorapidity); // mixing SE
1191-
}
1264+
}*/
11921265

11931266
for (int indx2 = 0; indx2 < EvPerBin; indx2++) { // nested loop for all the combinations of collisions in a chosen mult/vertex bin
11941267

@@ -1217,9 +1290,9 @@ struct hadronnucleicorrelation {
12171290

12181291
auto col1 = value[indx1];
12191292

1220-
if (selectedtracks_antip.find(col1->index()) != selectedtracks_antip.end()) {
1293+
/*if (selectedtracks_antip.find(col1->index()) != selectedtracks_antip.end()) {
12211294
mixTracks<0>(selectedtracks_antip[col1->index()], selectedtracks_antip[col1->index()], 1, dorapidity); // mixing SE
1222-
}
1295+
}*/
12231296

12241297
for (int indx2 = 0; indx2 < EvPerBin; indx2++) { // nested loop for all the combinations of collisions in a chosen mult/vertex bin
12251298

@@ -1248,9 +1321,9 @@ struct hadronnucleicorrelation {
12481321

12491322
auto col1 = value[indx1];
12501323

1251-
if (selectedtracks_p.find(col1->index()) != selectedtracks_p.end()) {
1324+
/*if (selectedtracks_p.find(col1->index()) != selectedtracks_p.end()) {
12521325
mixTracks<0>(selectedtracks_p[col1->index()], selectedtracks_p[col1->index()], 1, dorapidity); // mixing SE
1253-
}
1326+
}*/
12541327

12551328
for (int indx2 = 0; indx2 < EvPerBin; indx2++) { // nested loop for all the combinations of collisions in a chosen mult/vertex bin
12561329

@@ -1279,9 +1352,9 @@ struct hadronnucleicorrelation {
12791352

12801353
auto col1 = value[indx1];
12811354

1282-
if (selectedtracks_antip.find(col1->index()) != selectedtracks_antip.end()) {
1355+
/*if (selectedtracks_antip.find(col1->index()) != selectedtracks_antip.end()) {
12831356
mixTracks<0>(selectedtracks_p[col1->index()], selectedtracks_antip[col1->index()], 0, dorapidity); // mixing SE
1284-
}
1357+
}*/
12851358

12861359
for (int indx2 = 0; indx2 < EvPerBin; indx2++) { // nested loop for all the combinations of collisions in a chosen mult/vertex bin
12871360

0 commit comments

Comments
 (0)