@@ -26,7 +26,9 @@ 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::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTPCFullKa>;
29+ using TracksFull = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU,
30+ aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTPCFullKa,
31+ aod::pidTOFFullPi, aod::pidTOFFullPr, aod::pidTOFFullKa>;
3032using CollisionsFull = soa::Join<aod::Collisions, aod::EvSel>;
3133using CollisionsFullMC = soa::Join<aod::Collisions, aod::McCollisionLabels, aod::EvSel>;
3234
@@ -95,7 +97,9 @@ struct sigmaminustask {
9597 kinkCand.pxMoth (), kinkCand.pyMoth (), kinkCand.pzMoth (),
9698 kinkCand.pxDaug (), kinkCand.pyDaug (), kinkCand.pzDaug (),
9799 kinkCand.dcaMothPv (), kinkCand.dcaDaugPv (), kinkCand.dcaKinkTopo (),
98- kinkCand.mothSign (), dauTrack.tpcNSigmaPi (), dauTrack.tpcNSigmaPr (), dauTrack.tpcNSigmaKa ());
100+ kinkCand.mothSign (),
101+ dauTrack.tpcNSigmaPi (), dauTrack.tpcNSigmaPr (), dauTrack.tpcNSigmaKa (),
102+ dauTrack.tofNSigmaPi (), dauTrack.tofNSigmaPr (), dauTrack.tofNSigmaKa ());
99103 }
100104
101105 }
@@ -141,7 +145,10 @@ struct sigmaminustask {
141145 if (piMother.globalIndex () != mcTrackSigma.globalIndex ()) {
142146 continue ;
143147 }
144- if (std::abs (mcTrackSigma.pdgCode ()) != 3112 || std::abs (mcTrackPiDau.pdgCode ()) != 211 ) {
148+ if (std::abs (mcTrackSigma.pdgCode ()) != 3112 ) {
149+ continue ;
150+ }
151+ if (std::abs (mcTrackPiDau.pdgCode ()) != 211 && std::abs (mcTrackPiDau.pdgCode ()) != 2212 ) {
145152 continue ;
146153 }
147154 rSigmaMinus.fill (HIST (" h2MassPtMCRec" ), kinkCand.mothSign () * kinkCand.ptMoth (), kinkCand.mSigmaMinus ());
@@ -154,6 +161,7 @@ struct sigmaminustask {
154161 kinkCand.dcaMothPv (), kinkCand.dcaDaugPv (), kinkCand.dcaKinkTopo (),
155162 kinkCand.mothSign (),
156163 dauTrack.tpcNSigmaPi (), dauTrack.tpcNSigmaPr (), dauTrack.tpcNSigmaKa (),
164+ dauTrack.tofNSigmaPi (), dauTrack.tofNSigmaPr (), dauTrack.tofNSigmaKa (),
157165 mcTrackSigma.pdgCode (), mcTrackPiDau.pdgCode (),
158166 kinkCand.ptMoth (), kinkCand.mSigmaMinus ());
159167 }
@@ -164,39 +172,42 @@ struct sigmaminustask {
164172
165173 // Loop over all generated particles to fill MC histograms
166174 for (const auto & mcPart : particlesMC) {
167- if (std::abs (mcPart.pdgCode ()) != 3112 || std::abs (mcPart.y ()) > 0.5 ) {
175+ if (std::abs (mcPart.pdgCode ()) != 3112 || std::abs (mcPart.y ()) > 1.0 ) { // only sigma mothers and rapidity cut
168176 continue ;
169177 }
170178 if (!mcPart.has_daughters ()) {
171179 continue ; // Skip if no daughters
172180 }
173181 bool hasSigmaDaughter = false ;
182+ int daug_pdg = 0 ;
174183 std::array<float , 3 > secVtx;
175184 std::array<float , 3 > momDaug;
176185 for (const auto & daughter : mcPart.daughters_as <aod::McParticles>()) {
177- if (std::abs (daughter.pdgCode ()) == 211 ) { // Pi PDG code
186+ if (std::abs (daughter.pdgCode ()) == 211 || std::abs (daughter. pdgCode ()) == 2212 ) { // Pi or proton daughter
178187 hasSigmaDaughter = true ;
179188 secVtx = {daughter.vx (), daughter.vy (), daughter.vz ()};
180189 momDaug = {daughter.px (), daughter.py (), daughter.pz ()};
181- break ; // Found a pi daughter, exit loop
190+ daug_pdg = daughter.pdgCode ();
191+ break ; // Found a daughter, exit loop
182192 }
183193 }
184194 if (!hasSigmaDaughter) {
185- continue ; // Skip if no pi daughter found
195+ continue ; // Skip if no pi/proton daughter found
186196 }
187197 float mcMass = std::sqrt (mcPart.e () * mcPart.e () - mcPart.p () * mcPart.p ());
188198 int sigmaSign = mcPart.pdgCode () > 0 ? 1 : -1 ; // Determine the sign of the Sigma
189199 rSigmaMinus.fill (HIST (" h2MassPtMCGen" ), sigmaSign * mcPart.pt (), mcMass);
190200
191201 // Fill output table with non reconstructed MC candidates
192202 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
203+ outputDataTableMC (- 999 , - 999 , - 999 ,
204+ - 999 , - 999 , - 999 ,
205+ - 999 , - 999 , - 999 ,
206+ -999 , -999 , -999 ,
197207 sigmaSign,
198- -999 , -999 , -999 , // NSigmaTPC values not reconstructed
199- mcPart.pdgCode (), 211 ,
208+ -999 , -999 , -999 ,
209+ -999 , -999 , -999 ,
210+ mcPart.pdgCode (), daug_pdg,
200211 mcPart.pt (), mcMass);
201212 }
202213 }
0 commit comments