Skip to content

Commit 714ceca

Browse files
committed
"Restored event filters, now filling the output table also for generated but not reconstructed mc particles"
1 parent 535783b commit 714ceca

File tree

1 file changed

+20
-7
lines changed

1 file changed

+20
-7
lines changed

PWGLF/Tasks/Strangeness/sigmaminustask.cxx

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ using namespace o2;
2626
using namespace o2::framework;
2727
using namespace o2::framework::expressions;
2828

29-
using TracksFull = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU, aod::pidTPCPi, aod::pidTPCPr, aod::pidTPCKa>;
29+
using TracksFull = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTPCFullKa>;
3030
using CollisionsFull = soa::Join<aod::Collisions, aod::EvSel>;
3131
using CollisionsFullMC = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSel>;
3232

@@ -74,21 +74,17 @@ struct sigmaminustask {
7474

7575
void processData(CollisionsFull::iterator const& collision, aod::KinkCands const& KinkCands, TracksFull const&)
7676
{
77-
/*
7877
if (std::abs(collision.posZ()) > cutzvertex || !collision.sel8()) {
7978
return;
8079
}
81-
*/
8280
rEventSelection.fill(HIST("hVertexZRec"), collision.posZ());
8381

8482
for (const auto& kinkCand : KinkCands) {
8583
auto dauTrack = kinkCand.trackDaug_as<TracksFull>();
8684

87-
/*
8885
if (abs(dauTrack.tpcNSigmaPi()) > cutNSigmaPi) {
8986
continue;
9087
}
91-
*/
9288

9389
rSigmaMinus.fill(HIST("h2MassSigmaMinusPt"), kinkCand.mothSign() * kinkCand.ptMoth(), kinkCand.mSigmaMinus());
9490
rSigmaMinus.fill(HIST("h2SigmaMassVsXiMass"), kinkCand.mXiMinus(), kinkCand.mSigmaMinus());
@@ -151,15 +147,16 @@ struct sigmaminustask {
151147
rSigmaMinus.fill(HIST("h2MassPtMCRec"), kinkCand.mothSign() * kinkCand.ptMoth(), kinkCand.mSigmaMinus());
152148

153149
// fill the output table with Mc information
154-
outputDataTableMC(kinkCand.xDecVtx(), kinkCand.yDecVtx(), kinkCand.zDecVtx(),
150+
if (fillOutputTree) {
151+
outputDataTableMC(kinkCand.xDecVtx(), kinkCand.yDecVtx(), kinkCand.zDecVtx(),
155152
kinkCand.pxMoth(), kinkCand.pyMoth(), kinkCand.pzMoth(),
156153
kinkCand.pxDaug(), kinkCand.pyDaug(), kinkCand.pzDaug(),
157154
kinkCand.dcaMothPv(), kinkCand.dcaDaugPv(), kinkCand.dcaKinkTopo(),
158155
kinkCand.mothSign(),
159156
dauTrack.tpcNSigmaPi(), dauTrack.tpcNSigmaPr(), dauTrack.tpcNSigmaKa(),
160157
mcTrackSigma.pdgCode(), mcTrackPiDau.pdgCode(),
161158
kinkCand.ptMoth(), kinkCand.mSigmaMinus());
162-
159+
}
163160
}
164161
} // MC association and selection
165162
} // kink cand loop
@@ -174,9 +171,13 @@ struct sigmaminustask {
174171
continue; // Skip if no daughters
175172
}
176173
bool hasSigmaDaughter = false;
174+
std::array<float, 3> secVtx;
175+
std::array<float, 3> momDaug;
177176
for (const auto& daughter : mcPart.daughters_as<aod::McParticles>()) {
178177
if (std::abs(daughter.pdgCode()) == 211) { // Pi PDG code
179178
hasSigmaDaughter = true;
179+
secVtx = {daughter.vx(), daughter.vy(), daughter.vz()};
180+
momDaug = {daughter.px(), daughter.py(), daughter.pz()};
180181
break; // Found a pi daughter, exit loop
181182
}
182183
}
@@ -186,6 +187,18 @@ struct sigmaminustask {
186187
float mcMass = std::sqrt(mcPart.e() * mcPart.e() - mcPart.p() * mcPart.p());
187188
int sigmaSign = mcPart.pdgCode() > 0 ? 1 : -1; // Determine the sign of the Sigma
188189
rSigmaMinus.fill(HIST("h2MassPtMCGen"), sigmaSign * mcPart.pt(), mcMass);
190+
191+
// Fill output table with non reconstructed MC candidates
192+
if (fillOutputTree) {
193+
outputDataTableMC(mcPart.vx(), mcPart.vy(), mcPart.vz(),
194+
mcPart.px(), mcPart.py(), mcPart.pz(),
195+
momDaug[0], momDaug[1], momDaug[2],
196+
-999, -999, -999, // DCA values not reconstructed
197+
sigmaSign,
198+
-999, -999, -999, // NSigmaTPC values not reconstructed
199+
mcPart.pdgCode(), 211,
200+
mcPart.pt(), mcMass);
201+
}
189202
}
190203
}
191204

0 commit comments

Comments
 (0)