@@ -26,7 +26,7 @@ using namespace o2;
2626using namespace o2 ::framework;
2727using 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 >;
3030using CollisionsFull = soa::Join<aod::Collisions, aod::EvSel>;
3131using 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