1414// / \author Zuzanna Chochulska, WUT Warsaw & CTU Prague, zchochul@cern.ch
1515// / \author Alicja Płachta, WUT Warsaw, alicja.plachta@cern.ch
1616
17- #include < vector>
17+ #include " PWGCF/FemtoUniverse/Core/FemtoUniverseEventHisto.h"
18+ #include " PWGCF/FemtoUniverse/Core/FemtoUniverseParticleHisto.h"
19+ #include " PWGCF/FemtoUniverse/Core/FemtoUniverseTrackSelection.h"
20+
1821#include " Framework/AnalysisTask.h"
19- #include " Framework/runDataProcessing.h"
2022#include " Framework/HistogramRegistry.h"
2123#include " Framework/RunningWorkflowInfo.h"
24+ #include " Framework/runDataProcessing.h"
2225
23- #include " PWGCF/FemtoUniverse/Core/FemtoUniverseParticleHisto.h"
24- #include " PWGCF/FemtoUniverse/Core/FemtoUniverseEventHisto.h"
25- #include " PWGCF/FemtoUniverse/Core/FemtoUniverseTrackSelection.h"
26+ #include < vector>
2627
2728using namespace o2 ;
2829using namespace o2 ::analysis::femto_universe;
@@ -36,6 +37,8 @@ struct FemtoUniverseEfficiencyBase {
3637 Preslice<FemtoFullParticles> perCol = aod::femtouniverseparticle::fdCollisionId;
3738
3839 Configurable<bool > confIsDebug{" confIsDebug" , true , " Enable debug histograms" };
40+ Configurable<bool > confIsMCGen{" confIsMCGen" , false , " Enable QA histograms for MC Gen" };
41+ Configurable<bool > confIsMCReco{" confIsMCReco" , false , " Enable QA histograms for MC Reco" };
3942
4043 // Collisions
4144 Configurable<float > confZVertex{" confZVertex" , 10 .f , " Event sel: Maximum z-Vertex (cm)" };
@@ -156,8 +159,8 @@ struct FemtoUniverseEfficiencyBase {
156159 {
157160
158161 eventHisto.init (&qaRegistry);
159- trackHistoPartOneGen.init (&qaRegistry, confTempFitVarpTBins, confTempFitVarPDGBins, 0 , confPDGCodePartOne, false );
160- trackHistoPartOneRec.init (&qaRegistry, confTempFitVarpTBins, confTempFitVarDCABins, 0 , confPDGCodePartOne, confIsDebug);
162+ trackHistoPartOneGen.init (&qaRegistry, confTempFitVarpTBins, confTempFitVarPDGBins, confIsMCGen , confPDGCodePartOne, false );
163+ trackHistoPartOneRec.init (&qaRegistry, confTempFitVarpTBins, confTempFitVarDCABins, confIsMCReco , confPDGCodePartOne, confIsDebug);
161164 registryMCOrigin.add (" part1/hPt" , " ;#it{p}_{T} (GeV/c); Entries" , {HistType::kTH1F , {{240 , 0 , 6 }}});
162165 registryPDG.add (" part1/PDGvspT" , " PDG;#it{p}_{T} (GeV/c); PDG" , {HistType::kTH2F , {{500 , 0 , 5 }, {16001 , -8000.5 , 8000.5 }}});
163166 registryPDG.add (" part1/PDGvspTall" , " PDG;#it{p}_{T} (GeV/c); PDG" , {HistType::kTH2F , {{500 , 0 , 5 }, {16001 , -8000.5 , 8000.5 }}});
@@ -172,8 +175,8 @@ struct FemtoUniverseEfficiencyBase {
172175 registryPDG.add (" part2/PDGvspT" , " PDG;#it{p}_{T} (GeV/c); PDG" , {HistType::kTH2F , {{500 , 0 , 5 }, {16001 , -8000.5 , 8000.5 }}});
173176 registryPDG.add (" part2/PDGvspTall" , " PDG;#it{p}_{T} (GeV/c); PDG" , {HistType::kTH2F , {{500 , 0 , 5 }, {16001 , -8000.5 , 8000.5 }}});
174177 if (!confIsSame) {
175- trackHistoPartTwoGen.init (&qaRegistry, confTempFitVarpTBins, confTempFitVarPDGBins, 0 , confPDGCodePartTwo, false );
176- trackHistoPartTwoRec.init (&qaRegistry, confTempFitVarpTBins, confTempFitVarDCABins, 0 , confPDGCodePartTwo, confIsDebug);
178+ trackHistoPartTwoGen.init (&qaRegistry, confTempFitVarpTBins, confTempFitVarPDGBins, confIsMCGen , confPDGCodePartTwo, false );
179+ trackHistoPartTwoRec.init (&qaRegistry, confTempFitVarpTBins, confTempFitVarDCABins, confIsMCReco , confPDGCodePartTwo, confIsDebug);
177180 registryMCOrigin.add (" part2/hPt" , " ;#it{p}_{T} (GeV/c); Entries" , {HistType::kTH1F , {{240 , 0 , 6 }}});
178181 if (confParticleTypePartTwo == uint8_t (aod::femtouniverseparticle::ParticleType::kV0 )) {
179182 trackHistoV0TwoRec.init (&qaRegistry, confTempFitVarpTBins, confTempFitVarCPABins, 0 , confPDGCodePartTwo, confIsDebug);
@@ -371,17 +374,17 @@ struct FemtoUniverseEfficiencyBase {
371374 }
372375 const auto mcParticle = part.fdMCParticle ();
373376
377+ registryPDG.fill (HIST (" part1/PDGvspTall" ), part.pt (), mcParticle.pdgMCTruth ());
378+ trackHistoPartOneRec.fillQA <isMC, isDebug>(part);
379+
374380 if (!(mcParticle.partOriginMCTruth () == aod::femtouniverse_mc_particle::ParticleOriginMCTruth::kPrimary )) {
375381 continue ;
376382 }
377383
378- registryPDG.fill (HIST (" part1/PDGvspTall" ), part.pt (), mcParticle.pdgMCTruth ());
379-
380384 if (!(std::abs (mcParticle.pdgMCTruth ()) == std::abs (confPDGCodePartOne))) {
381385 continue ;
382386 }
383387
384- trackHistoPartOneRec.fillQA <isMC, isDebug>(part);
385388 registryPDG.fill (HIST (" part1/PDGvspT" ), part.pt (), mcParticle.pdgMCTruth ());
386389 registryMCOrigin.fill (HIST (" part1/hPt" ), mcParticle.pt ());
387390 }
@@ -397,17 +400,17 @@ struct FemtoUniverseEfficiencyBase {
397400 }
398401 const auto mcParticle = part.fdMCParticle ();
399402
403+ registryPDG.fill (HIST (" part2/PDGvspTall" ), part.pt (), mcParticle.pdgMCTruth ());
404+ trackHistoPartTwoRec.fillQA <isMC, isDebug>(part);
405+
400406 if (!(mcParticle.partOriginMCTruth () == aod::femtouniverse_mc_particle::ParticleOriginMCTruth::kPrimary )) {
401407 continue ;
402408 }
403409
404- registryPDG.fill (HIST (" part2/PDGvspTall" ), part.pt (), mcParticle.pdgMCTruth ());
405-
406410 if (!(std::abs (mcParticle.pdgMCTruth ()) == std::abs (confPDGCodePartTwo))) {
407411 continue ;
408412 }
409413
410- trackHistoPartTwoRec.fillQA <isMC, isDebug>(part);
411414 registryPDG.fill (HIST (" part2/PDGvspT" ), part.pt (), mcParticle.pdgMCTruth ());
412415 registryMCOrigin.fill (HIST (" part2/hPt" ), mcParticle.pt ());
413416 }
@@ -610,12 +613,20 @@ struct FemtoUniverseEfficiencyBase {
610613 // MCGen
611614 auto thegrouppartsOneMCGen = partsOneMCGen->sliceByCached (aod::femtouniverseparticle::fdCollisionId, col.globalIndex (), cache);
612615 auto thegrouppartsTwoMCGen = partsTwoMCGen->sliceByCached (aod::femtouniverseparticle::fdCollisionId, col.globalIndex (), cache);
613- doMCGen<false >(thegrouppartsOneMCGen, thegrouppartsTwoMCGen);
616+ if (confIsMCGen) {
617+ doMCGen<true >(thegrouppartsOneMCGen, thegrouppartsTwoMCGen);
618+ } else {
619+ doMCGen<false >(thegrouppartsOneMCGen, thegrouppartsTwoMCGen);
620+ }
614621 // MCRec
615622 auto thegroupPartsTrackOneRec = partsTrackOneMCReco->sliceByCached (aod::femtouniverseparticle::fdCollisionId, col.globalIndex (), cache);
616623 auto thegroupPartsTrackTwoRec = partsTrackTwoMCReco->sliceByCached (aod::femtouniverseparticle::fdCollisionId, col.globalIndex (), cache);
617624 if (confIsDebug) {
618- doMCRecTrackTrack<false , true >(thegroupPartsTrackOneRec, thegroupPartsTrackTwoRec);
625+ if (confIsMCGen) {
626+ doMCRecTrackTrack<true , true >(thegroupPartsTrackOneRec, thegroupPartsTrackTwoRec);
627+ } else {
628+ doMCRecTrackTrack<false , true >(thegroupPartsTrackOneRec, thegroupPartsTrackTwoRec);
629+ }
619630 } else {
620631 doMCRecTrackTrack<false , false >(thegroupPartsTrackOneRec, thegroupPartsTrackTwoRec);
621632 }
0 commit comments