@@ -43,7 +43,7 @@ void customize(std::vector<o2::framework::ConfigParamSpec>& workflowOptions)
4343
4444using DauTracks = soa::Join<aod::Tracks, aod::TracksExtra, aod::TracksDCA, aod::pidTPCPi, aod::pidTPCKa, aod::pidTPCPr, aod::pidTOFPi, aod::pidTOFPr>;
4545using DauTracksMC = soa::Join<DauTracks, aod::McTrackLabels>;
46- using V0Collisions = soa::Join<aod::Collisions, aod::EvSels, aod::PVMults, aod::CentFT0Ms, aod::CentFV0As >;
46+ using V0Collisions = soa::Join<aod::Collisions, aod::EvSels, aod::PVMults, aod::CentFT0Ms, aod::CentNGlobals >;
4747
4848struct LfV0qaanalysis {
4949
@@ -81,7 +81,7 @@ struct LfV0qaanalysis {
8181 registry.get <TH1>(HIST (" hNEvents" ))->GetXaxis ()->SetBinLabel (9 , " Applied selection" );
8282
8383 registry.add (" hCentFT0M" , " hCentFT0M" , {HistType::kTH1F , {{1000 , 0 .f , 100 .f }}});
84- registry.add (" hCentFV0A " , " hCentFV0A " , {HistType::kTH1F , {{1000 , 0 .f , 100 .f }}});
84+ registry.add (" hCentNGlobals " , " hCentNGlobals " , {HistType::kTH1F , {{1000 , 0 .f , 100 .f }}});
8585 if (isMC) {
8686 registry.add (" hCentFT0M_RecoColl_MC" , " hCentFT0M_RecoColl_MC" , {HistType::kTH1F , {{1000 , 0 .f , 100 .f }}});
8787 registry.add (" hCentFT0M_RecoColl_MC_INELgt0" , " hCentFT0M_RecoColl_MC_INELgt0" , {HistType::kTH1F , {{1000 , 0 .f , 100 .f }}});
@@ -110,6 +110,8 @@ struct LfV0qaanalysis {
110110 registry.add (" Generated_MCGenRecoColl_INEL_K0Short" , " Generated_MCGenRecoColl_INEL_K0Short" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
111111 registry.add (" Generated_MCGenRecoColl_INEL_Lambda" , " Generated_MCGenRecoColl_INEL_Lambda" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
112112 registry.add (" Generated_MCGenRecoColl_INEL_AntiLambda" , " Generated_MCGenRecoColl_INEL_AntiLambda" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
113+ registry.add (" Generated_MCGenRecoColl_INEL_XiMinus" , " Generated_MCGenRecoColl_INEL_XiMinus" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
114+ registry.add (" Generated_MCGenRecoColl_INEL_XiPlus" , " Generated_MCGenRecoColl_INEL_XiPlus" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
113115 registry.add (" Generated_MCRecoColl_INEL_K0Short" , " Generated_MCRecoColl_INEL_K0Short" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
114116 registry.add (" Generated_MCRecoColl_INEL_Lambda" , " Generated_MCRecoColl_INEL_Lambda" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
115117 registry.add (" Generated_MCRecoColl_INEL_AntiLambda" , " Generated_MCRecoColl_INEL_AntiLambda" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
@@ -122,6 +124,8 @@ struct LfV0qaanalysis {
122124 registry.add (" Generated_MCGenRecoColl_INELgt0_K0Short" , " Generated_MCGenRecoColl_INELgt0_K0Short" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
123125 registry.add (" Generated_MCGenRecoColl_INELgt0_Lambda" , " Generated_MCGenRecoColl_INELgt0_Lambda" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
124126 registry.add (" Generated_MCGenRecoColl_INELgt0_AntiLambda" , " Generated_MCGenRecoColl_INELgt0_AntiLambda" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
127+ registry.add (" Generated_MCGenRecoColl_INELgt0_XiMinus" , " Generated_MCGenRecoColl_INELgt0_XiMinus" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
128+ registry.add (" Generated_MCGenRecoColl_INELgt0_XiPlus" , " Generated_MCGenRecoColl_INELgt0_XiPlus" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
125129 registry.add (" Generated_MCRecoColl_INELgt0_K0Short" , " Generated_MCRecoColl_INELgt0_K0Short" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
126130 registry.add (" Generated_MCRecoColl_INELgt0_Lambda" , " Generated_MCRecoColl_INELgt0_Lambda" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
127131 registry.add (" Generated_MCRecoColl_INELgt0_AntiLambda" , " Generated_MCRecoColl_INELgt0_AntiLambda" , {HistType::kTH2F , {{250 , 0 .f , 25 .f }, {1000 , 0 .f , 100 .f }}});
@@ -169,7 +173,7 @@ struct LfV0qaanalysis {
169173 return false ;
170174 }
171175 registry.fill (HIST (" hNEvents" ), 2.5 );
172- if (TMath::Abs (collision.posZ ()) > cutzvertex) {
176+ if (std::abs (collision.posZ ()) > cutzvertex) {
173177 return false ;
174178 }
175179 registry.fill (HIST (" hNEvents" ), 3.5 );
@@ -207,7 +211,7 @@ struct LfV0qaanalysis {
207211 }
208212 registry.fill (HIST (" hNEvents" ), 8.5 );
209213 registry.fill (HIST (" hCentFT0M" ), collision.centFT0M ());
210- registry.fill (HIST (" hCentFV0A " ), collision.centFV0A ());
214+ registry.fill (HIST (" hCentNGlobals " ), collision.centNGlobal ());
211215
212216 for (auto & v0 : V0s) { // loop over V0s
213217
@@ -230,6 +234,9 @@ struct LfV0qaanalysis {
230234 }
231235
232236 int lPDG = 0 ;
237+ float ptMotherMC = 0 .;
238+ float pdgMotherMC = 0 .;
239+ float yMC = 0 .;
233240 bool isPhysicalPrimary = isMC;
234241 bool isDauK0Short = false , isDauLambda = false , isDauAntiLambda = false ;
235242
@@ -239,27 +246,26 @@ struct LfV0qaanalysis {
239246
240247 if (v0.v0radius () > v0radius &&
241248 v0.v0cosPA () > v0cospa &&
242- TMath::Abs (v0.posTrack_as <DauTracks>().eta ()) < etadau &&
243- TMath::Abs (v0.negTrack_as <DauTracks>().eta ()) < etadau) {
249+ std::abs (v0.posTrack_as <DauTracks>().eta ()) < etadau &&
250+ std::abs (v0.negTrack_as <DauTracks>().eta ()) < etadau) {
244251
245252 // Fill table
246- myv0s (v0.pt (), v0.yLambda (), v0.yK0Short (),
253+ myv0s (v0.pt (), ptMotherMC, yMC, v0.yLambda (), v0.yK0Short (),
247254 v0.mLambda (), v0.mAntiLambda (), v0.mK0Short (),
248255 v0.v0radius (), v0.v0cosPA (),
249256 v0.dcapostopv (), v0.dcanegtopv (), v0.dcaV0daughters (),
250257 v0.posTrack_as <DauTracks>().eta (), v0.negTrack_as <DauTracks>().eta (),
251- v0.posTrack_as <DauTracks>().phi (), v0.negTrack_as <DauTracks>().phi (),
252258 posITSNhits, negITSNhits, ctauLambda, ctauAntiLambda, ctauK0s,
253259 v0.negTrack_as <DauTracks>().tpcNSigmaPr (), v0.posTrack_as <DauTracks>().tpcNSigmaPr (),
254260 v0.negTrack_as <DauTracks>().tpcNSigmaPi (), v0.posTrack_as <DauTracks>().tpcNSigmaPi (),
255261 v0.negTrack_as <DauTracks>().tofNSigmaPr (), v0.posTrack_as <DauTracks>().tofNSigmaPr (),
256262 v0.negTrack_as <DauTracks>().tofNSigmaPi (), v0.posTrack_as <DauTracks>().tofNSigmaPi (),
257- v0.posTrack_as <DauTracks>().hasTOF (), v0.negTrack_as <DauTracks>().hasTOF (), lPDG, isDauK0Short, isDauLambda, isDauAntiLambda, isPhysicalPrimary,
258- collision.centFT0M (), collision.centFV0A (), evFlag, v0.alpha (), v0.qtarm (),
259- v0.posTrack_as <DauTracks>().tpcNClsCrossedRows (), v0. posTrack_as <DauTracks>(). tpcCrossedRowsOverFindableCls (),
263+ v0.posTrack_as <DauTracks>().hasTOF (), v0.negTrack_as <DauTracks>().hasTOF (), lPDG, pdgMotherMC, isDauK0Short, isDauLambda, isDauAntiLambda, isPhysicalPrimary,
264+ collision.centFT0M (), collision.centNGlobal (), evFlag, v0.alpha (), v0.qtarm (),
265+ v0.posTrack_as <DauTracks>().tpcNClsCrossedRows (),
260266 v0.posTrack_as <DauTracks>().tpcNClsShared (), v0.posTrack_as <DauTracks>().itsChi2NCl (),
261267 v0.posTrack_as <DauTracks>().tpcChi2NCl (),
262- v0.negTrack_as <DauTracks>().tpcNClsCrossedRows (), v0. negTrack_as <DauTracks>(). tpcCrossedRowsOverFindableCls (),
268+ v0.negTrack_as <DauTracks>().tpcNClsCrossedRows (),
263269 v0.negTrack_as <DauTracks>().tpcNClsShared (), v0.negTrack_as <DauTracks>().itsChi2NCl (),
264270 v0.negTrack_as <DauTracks>().tpcChi2NCl ());
265271 }
@@ -344,7 +350,7 @@ struct LfV0qaanalysis {
344350 int lPDG = 0 ;
345351 bool isDauK0Short = false , isDauLambda = false , isDauAntiLambda = false ;
346352 bool isprimary = false ;
347- if (TMath::Abs (v0mcparticle.pdgCode ()) == 310 || TMath::Abs (v0mcparticle.pdgCode ()) == 3122 ) {
353+ if (std::abs (v0mcparticle.pdgCode ()) == 310 || std::abs (v0mcparticle.pdgCode ()) == 3122 ) {
348354 lPDG = v0mcparticle.pdgCode ();
349355 isprimary = v0mcparticle.isPhysicalPrimary ();
350356 }
@@ -362,6 +368,18 @@ struct LfV0qaanalysis {
362368 }
363369 }
364370
371+ float ptMotherMC = 0 .;
372+ float pdgMother = 0 .;
373+
374+ if (std::abs (v0mcparticle.pdgCode ()) == 3122 && v0mcparticle.has_mothers ()) {
375+ for (auto & mcparticleMother0 : v0mcparticle.mothers_as <aod::McParticles>()) {
376+ if (std::abs (mcparticleMother0.pdgCode ()) == 3312 || std::abs (mcparticleMother0.pdgCode ()) == 3322 ) {
377+ ptMotherMC = mcparticleMother0.pt ();
378+ pdgMother = mcparticleMother0.pdgCode ();
379+ }
380+ }
381+ }
382+
365383 const int posITSNhits = v0.posTrack_as <DauTracksMC>().itsNCls ();
366384 const int negITSNhits = v0.negTrack_as <DauTracksMC>().itsNCls ();
367385
@@ -371,28 +389,27 @@ struct LfV0qaanalysis {
371389
372390 if (v0.v0radius () > v0radius &&
373391 v0.v0cosPA () > v0cospa &&
374- TMath::Abs (v0.posTrack_as <DauTracksMC>().eta ()) < etadau &&
375- TMath::Abs (v0.negTrack_as <DauTracksMC>().eta ()) < etadau // &&
392+ std::abs (v0.posTrack_as <DauTracksMC>().eta ()) < etadau &&
393+ std::abs (v0.negTrack_as <DauTracksMC>().eta ()) < etadau // &&
376394 ) {
377395
378396 // Fill table
379- myv0s (v0.pt (), v0.yLambda (), v0.yK0Short (),
397+ myv0s (v0.pt (), ptMotherMC, v0mcparticle. y (), v0.yLambda (), v0.yK0Short (),
380398 v0.mLambda (), v0.mAntiLambda (), v0.mK0Short (),
381399 v0.v0radius (), v0.v0cosPA (),
382400 v0.dcapostopv (), v0.dcanegtopv (), v0.dcaV0daughters (),
383401 v0.posTrack_as <DauTracksMC>().eta (), v0.negTrack_as <DauTracksMC>().eta (),
384- v0.posTrack_as <DauTracksMC>().phi (), v0.negTrack_as <DauTracksMC>().phi (),
385402 posITSNhits, negITSNhits, ctauLambda, ctauAntiLambda, ctauK0s,
386403 v0.negTrack_as <DauTracksMC>().tpcNSigmaPr (), v0.posTrack_as <DauTracksMC>().tpcNSigmaPr (),
387404 v0.negTrack_as <DauTracksMC>().tpcNSigmaPi (), v0.posTrack_as <DauTracksMC>().tpcNSigmaPi (),
388405 v0.negTrack_as <DauTracksMC>().tofNSigmaPr (), v0.posTrack_as <DauTracksMC>().tofNSigmaPr (),
389406 v0.negTrack_as <DauTracksMC>().tofNSigmaPi (), v0.posTrack_as <DauTracksMC>().tofNSigmaPi (),
390- v0.posTrack_as <DauTracksMC>().hasTOF (), v0.negTrack_as <DauTracksMC>().hasTOF (), lPDG, isDauK0Short, isDauLambda, isDauAntiLambda, isprimary,
407+ v0.posTrack_as <DauTracksMC>().hasTOF (), v0.negTrack_as <DauTracksMC>().hasTOF (), lPDG, pdgMother, isDauK0Short, isDauLambda, isDauAntiLambda, isprimary,
391408 mcCollision.centFT0M (), cent, evFlag, v0.alpha (), v0.qtarm (),
392- v0.posTrack_as <DauTracksMC>().tpcNClsCrossedRows (), v0. posTrack_as <DauTracksMC>(). tpcCrossedRowsOverFindableCls (),
409+ v0.posTrack_as <DauTracksMC>().tpcNClsCrossedRows (),
393410 v0.posTrack_as <DauTracksMC>().tpcNClsShared (), v0.posTrack_as <DauTracksMC>().itsChi2NCl (),
394411 v0.posTrack_as <DauTracksMC>().tpcChi2NCl (),
395- v0.negTrack_as <DauTracksMC>().tpcNClsCrossedRows (), v0. negTrack_as <DauTracksMC>(). tpcCrossedRowsOverFindableCls (),
412+ v0.negTrack_as <DauTracksMC>().tpcNClsCrossedRows (),
396413 v0.negTrack_as <DauTracksMC>().tpcNClsShared (), v0.negTrack_as <DauTracksMC>().itsChi2NCl (),
397414 v0.negTrack_as <DauTracksMC>().tpcChi2NCl ());
398415 }
@@ -443,7 +460,7 @@ struct LfV0qaanalysis {
443460
444461 registry.fill (HIST (" hNEventsMCGen" ), 0.5 );
445462
446- if (TMath::Abs (mcCollision.posZ ()) > MCcutzvertex) {
463+ if (std::abs (mcCollision.posZ ()) > MCcutzvertex) {
447464 return ;
448465 }
449466 registry.fill (HIST (" hNEventsMCGen" ), 1.5 );
@@ -599,6 +616,18 @@ struct LfV0qaanalysis {
599616 registry.fill (HIST (" Generated_MCGenRecoColl_INELgt0_AntiLambda" ), mcParticle.pt (), mcCollision.centFT0M ()); // AntiLambda
600617 }
601618 }
619+ if (mcParticle.pdgCode () == 3312 ) {
620+ registry.fill (HIST (" Generated_MCGenRecoColl_INEL_XiMinus" ), mcParticle.pt (), mcCollision.centFT0M ()); // XiMinus
621+ if (recoCollIndex_INELgt0 > 0 ) {
622+ registry.fill (HIST (" Generated_MCGenRecoColl_INELgt0_XiMinus" ), mcParticle.pt (), mcCollision.centFT0M ()); // XiMinus
623+ }
624+ }
625+ if (mcParticle.pdgCode () == -3312 ) {
626+ registry.fill (HIST (" Generated_MCGenRecoColl_INEL_XiPlus" ), mcParticle.pt (), mcCollision.centFT0M ()); // XiPlus
627+ if (recoCollIndex_INELgt0 > 0 ) {
628+ registry.fill (HIST (" Generated_MCGenRecoColl_INELgt0_XiPlus" ), mcParticle.pt (), mcCollision.centFT0M ()); // XiPlus
629+ }
630+ }
602631 }
603632 }
604633 PROCESS_SWITCH (LfV0qaanalysis, processMCGen, " Process MC" , false );
0 commit comments