Skip to content

Commit aeba5a8

Browse files
committed
Fix xi1530Analysisqa.cxx
1 parent 78a29da commit aeba5a8

File tree

1 file changed

+86
-35
lines changed

1 file changed

+86
-35
lines changed

PWGLF/Tasks/Resonances/xi1530Analysisqa.cxx

Lines changed: 86 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1058,13 +1058,15 @@ struct Xi1530Analysisqa {
10581058
aod::ResoTracks const& resoTracks,
10591059
aod::ResoCascades const& cascTracks)
10601060
{
1061-
auto linkRow = collisionIndex.iteratorAt(resoCollision.globalIndex());
1062-
auto collId = linkRow.collisionId(); // Take original collision global index matched with resoCollision
1061+
if(cRecoINELgt0){
1062+
auto linkRow = collisionIndex.iteratorAt(resoCollision.globalIndex());
1063+
auto collId = linkRow.collisionId(); // Take original collision global index matched with resoCollision
10631064

1064-
auto coll = collisions.iteratorAt(collId); // Take original collision matched with resoCollision
1065+
auto coll = collisions.iteratorAt(collId); // Take original collision matched with resoCollision
10651066

1066-
if (cRecoINELgt0 && !coll.isInelGt0()) // Check reco INELgt0 (at least one PV track in |eta| < 1) about the collision
1067-
return;
1067+
if (!coll.isInelGt0()) // Check reco INELgt0 (at least one PV track in |eta| < 1) about the collision
1068+
return;
1069+
}
10681070

10691071
histos.fill(HIST("QAevent/hEvtCounterSameE"), 1.0);
10701072
auto multiplicity = resoCollision.cent();
@@ -1073,52 +1075,98 @@ struct Xi1530Analysisqa {
10731075

10741076
// Reconstructed level MC for the track
10751077
void processMC(ResoMCCols::iterator const& resoCollision,
1076-
aod::ResoCollisionColls const& resoCollisionIndex,
1078+
aod::ResoCollisionColls const& collisionIndex,
10771079
soa::Join<aod::ResoCollisionCandidatesMC, aod::PVMults> const& collisionsMC,
10781080
soa::Join<aod::ResoCascades, aod::ResoMCCascades> const& cascTracks,
10791081
soa::Join<aod::ResoTracks, aod::ResoMCTracks> const& resoTracks,
10801082
soa::Join<aod::McCollisions, aod::McCentFT0Ms> const&)
10811083
{
1082-
if (!resoCollision.isInAfterAllCuts() || (std::abs(resoCollision.posZ()) > cZvertCutMC)) // MC event selection, all cuts missing vtx cut
1083-
return;
1084+
float multiplicity;
1085+
if(cMCCent && cRecoINELgt0){
1086+
auto linkRow = collisionIndex.iteratorAt(resoCollision.globalIndex());
1087+
auto collId = linkRow.collisionId(); // Take original collision global index matched with resoCollision
1088+
1089+
auto coll = collisionsMC.iteratorAt(collId); // Take original collision matched with resoCollision
1090+
1091+
if (!coll.isInelGt0()) // Check reco INELgt0 (at least one PV track in |eta| < 1) about the collision
1092+
return;
1093+
1094+
auto mcColl = coll.mcCollision_as<soa::Join<aod::McCollisions, aod::McCentFT0Ms>>();
1095+
multiplicity = mcColl.centFT0M();
1096+
}
1097+
else if(!cMCCent && cRecoINELgt0){
1098+
auto linkRow = collisionIndex.iteratorAt(resoCollision.globalIndex());
1099+
auto collId = linkRow.collisionId(); // Take original collision global index matched with resoCollision
10841100

1085-
auto linkRow = resoCollisionIndex.iteratorAt(resoCollision.globalIndex());
1086-
const int collId = linkRow.collisionId();
1101+
auto coll = collisionsMC.iteratorAt(collId); // Take original collision matched with resoCollision
10871102

1088-
auto coll = collisionsMC.iteratorAt(collId);
1103+
if (!coll.isInelGt0()) // Check reco INELgt0 (at least one PV track in |eta| < 1) about the collision
1104+
return;
10891105

1090-
if (cRecoINELgt0 && !coll.isInelGt0())
1091-
return;
1106+
multiplicity = resoCollision.cent();
1107+
}
1108+
else if(cMCCent && !cRecoINELgt0){
1109+
auto linkRow = collisionIndex.iteratorAt(resoCollision.globalIndex());
1110+
auto collId = linkRow.collisionId(); // Take original collision global index matched with resoCollision
10921111

1093-
auto mcColl = coll.mcCollision_as<soa::Join<aod::McCollisions, aod::McCentFT0Ms>>();
1112+
auto coll = collisionsMC.iteratorAt(collId); // Take original collision matched with resoCollision
10941113

1095-
auto multiplicityReco = resoCollision.cent(); // Reco level multiplicity per.
1096-
auto multiplicityGen = mcColl.centFT0M(); // Gen level multiplicity per.
1114+
auto mcColl = coll.mcCollision_as<soa::Join<aod::McCollisions, aod::McCentFT0Ms>>();
1115+
multiplicity = mcColl.centFT0M();
1116+
}
1117+
else {
1118+
multiplicity = resoCollision.cent();
1119+
}
10971120

1098-
float multiplicity = cMCCent ? multiplicityGen : multiplicityReco;
1121+
if (!resoCollision.isInAfterAllCuts() || (std::abs(resoCollision.posZ()) > cZvertCutMC)) // MC event selection, all cuts missing vtx cut
1122+
return;
10991123

11001124
fillHistograms<false, true, false>(resoCollision, multiplicity, resoTracks, cascTracks);
11011125
}
11021126

11031127
// Truth level MC for the track with reco event
11041128
void processMCTrue(ResoMCCols::iterator const& resoCollision,
1105-
aod::ResoCollisionColls const& resoCollisionIndex,
1129+
aod::ResoCollisionColls const& collisionIndex,
11061130
aod::ResoMCParents const& resoParents,
11071131
aod::ResoCollisionCandidatesMC const& collisionsMC,
11081132
soa::Join<aod::McCollisions, aod::McCentFT0Ms> const&)
11091133
{
1134+
float multiplicity;
1135+
if(cMCCent && cRecoINELgt0){
1136+
auto linkRow = collisionIndex.iteratorAt(resoCollision.globalIndex());
1137+
auto collId = linkRow.collisionId(); // Take original collision global index matched with resoCollision
11101138

1111-
auto linkRow = resoCollisionIndex.iteratorAt(resoCollision.globalIndex());
1112-
const int collId = linkRow.collisionId();
1139+
auto coll = collisionsMC.iteratorAt(collId); // Take original collision matched with resoCollision
11131140

1114-
auto coll = collisionsMC.iteratorAt(collId);
1141+
if (!coll.isInelGt0()) // Check reco INELgt0 (at least one PV track in |eta| < 1) about the collision
1142+
return;
11151143

1116-
auto mcColl = coll.mcCollision_as<soa::Join<aod::McCollisions, aod::McCentFT0Ms>>();
1144+
auto mcColl = coll.mcCollision_as<soa::Join<aod::McCollisions, aod::McCentFT0Ms>>();
1145+
multiplicity = mcColl.centFT0M();
1146+
}
1147+
else if(!cMCCent && cRecoINELgt0){
1148+
auto linkRow = collisionIndex.iteratorAt(resoCollision.globalIndex());
1149+
auto collId = linkRow.collisionId(); // Take original collision global index matched with resoCollision
1150+
1151+
auto coll = collisionsMC.iteratorAt(collId); // Take original collision matched with resoCollision
1152+
1153+
if (!coll.isInelGt0()) // Check reco INELgt0 (at least one PV track in |eta| < 1) about the collision
1154+
return;
1155+
1156+
multiplicity = resoCollision.cent();
1157+
}
1158+
else if(cMCCent && !cRecoINELgt0){
1159+
auto linkRow = collisionIndex.iteratorAt(resoCollision.globalIndex());
1160+
auto collId = linkRow.collisionId(); // Take original collision global index matched with resoCollision
11171161

1118-
auto multiplicityReco = resoCollision.cent(); // Reco level multiplicity per.
1119-
auto multiplicityGen = mcColl.centFT0M(); // Gen level multiplicity per.
1162+
auto coll = collisionsMC.iteratorAt(collId); // Take original collision matched with resoCollision
11201163

1121-
float multiplicity = cMCCent ? multiplicityGen : multiplicityReco;
1164+
auto mcColl = coll.mcCollision_as<soa::Join<aod::McCollisions, aod::McCentFT0Ms>>();
1165+
multiplicity = mcColl.centFT0M();
1166+
}
1167+
else {
1168+
multiplicity = resoCollision.cent();
1169+
}
11221170

11231171
for (const auto& part : resoParents) { // loop over all pre-filtered MC particles
11241172
if (std::abs(part.pdgCode()) != kXiStar || std::abs(part.y()) >= cfgRapidityCut)
@@ -1171,13 +1219,15 @@ struct Xi1530Analysisqa {
11711219
aod::ResoMicroTracks const& resomicrotracks,
11721220
aod::ResoCascades const& cascTracks)
11731221
{
1174-
auto linkRow = collisionIndex.iteratorAt(resoCollision.globalIndex());
1175-
auto collId = linkRow.collisionId(); // Take original collision global index matched with resoCollision
1222+
if(cRecoINELgt0){
1223+
auto linkRow = collisionIndex.iteratorAt(resoCollision.globalIndex());
1224+
auto collId = linkRow.collisionId(); // Take original collision global index matched with resoCollision
11761225

1177-
auto coll = collisions.iteratorAt(collId); // Take original collision matched with resoCollision
1226+
auto coll = collisions.iteratorAt(collId); // Take original collision matched with resoCollision
11781227

1179-
if (cRecoINELgt0 && !coll.isInelGt0()) // Check reco INELgt0 (at least one PV track in |eta| < 1) about the collision
1180-
return;
1228+
if (!coll.isInelGt0()) // Check reco INELgt0 (at least one PV track in |eta| < 1) about the collision
1229+
return;
1230+
}
11811231

11821232
histos.fill(HIST("QAevent/hEvtCounterSameE"), 1.0);
11831233
auto multiplicity = resoCollision.cent();
@@ -1222,15 +1272,16 @@ struct Xi1530Analysisqa {
12221272

12231273
for (const auto& [collision1, tracks1, collision2, tracks2] : pairs) {
12241274

1275+
if(cRecoINELgt0){
12251276
const auto rcIdx = collision1.globalIndex();
1277+
auto linkRow = collisionIndex.iteratorAt(rcIdx);
1278+
auto collId = linkRow.collisionId(); // Take original collision global index matched with resoCollision
12261279

1227-
const auto linkRow = collisionIndex.iteratorAt(rcIdx);
1228-
const auto collId = linkRow.collisionId();
1280+
auto coll = collisions.iteratorAt(collId); // Take original collision matched with resoCollision
12291281

1230-
auto coll = collisions.iteratorAt(collId);
1231-
if (cRecoINELgt0 && !coll.isInelGt0()) // Check reco INELgt0 (at least one PV track in |eta| < 1) about the collision
1282+
if (!coll.isInelGt0()) // Check reco INELgt0 (at least one PV track in |eta| < 1) about the collision
12321283
continue;
1233-
1284+
}
12341285
histos.fill(HIST("QAevent/hEvtCounterMixedE"), 1.0);
12351286
auto multiplicity = collision1.cent();
12361287
fillHistograms<true, false, true>(collision1, multiplicity, tracks1, tracks2);

0 commit comments

Comments
 (0)