@@ -140,15 +140,29 @@ DECLARE_SOA_COLUMN(McFlag, mcFlag, int8_t);
140140DECLARE_SOA_BITMAP_COLUMN (IsJpsiFromBSelected, isJpsiFromBSelected, 32 );
141141// Candidate columns for prompt-non-prompt JPsi separation
142142DECLARE_SOA_COLUMN (Massee, massee, float );
143+ DECLARE_SOA_COLUMN (Etaee, etaee, float );
144+ DECLARE_SOA_COLUMN (Rapee, rapee, float );
145+ DECLARE_SOA_COLUMN (Phiee, phiee, float );
143146DECLARE_SOA_COLUMN (Ptee, ptee, float );
144147DECLARE_SOA_COLUMN (Lxyee, lxyee, float );
145148DECLARE_SOA_COLUMN (LxyeePoleMass, lxyeepolemass, float );
146149DECLARE_SOA_COLUMN (Lzee, lzee, float );
150+ DECLARE_SOA_COLUMN (MultiplicityFT0A, multiplicityFT0AJPsi2ee, float );
151+ DECLARE_SOA_COLUMN (MultiplicityFT0C, multiplicityFT0CJPsi2ee, float );
152+ DECLARE_SOA_COLUMN (PercentileFT0M, percentileFT0MJPsi2ee, float );
153+ DECLARE_SOA_COLUMN (MultiplicityNContrib, multiplicityNContribJPsi2ee, float );
147154DECLARE_SOA_COLUMN (AmbiguousInBunchPairs, AmbiguousJpsiPairsInBunch, bool );
148155DECLARE_SOA_COLUMN (AmbiguousOutOfBunchPairs, AmbiguousJpsiPairsOutOfBunch, bool );
149156DECLARE_SOA_COLUMN (Corrassoc, corrassoc, bool );
150157DECLARE_SOA_COLUMN (DeltaEta, deltaEta, float );
151158DECLARE_SOA_COLUMN (DeltaPhi, deltaPhi, float );
159+ // Candidate columns efficiency calculation for prompt-non-prompt JPsi separation
160+ DECLARE_SOA_COLUMN (OniaPt, oniaPt, float );
161+ DECLARE_SOA_COLUMN (OniaY, oniaY, float );
162+ DECLARE_SOA_COLUMN (OniaEta, oniaEta, float );
163+ DECLARE_SOA_COLUMN (OniaPhi, oniaPhi, float );
164+ DECLARE_SOA_COLUMN (OniaVz, oniaVz, float );
165+ DECLARE_SOA_COLUMN (OniaVtxZ, oniaVtxZ, float );
152166} // namespace dqanalysisflags
153167
154168DECLARE_SOA_TABLE (EventCuts, " AOD" , " DQANAEVCUTS" , dqanalysisflags::IsEventSelected); // ! joinable to ReducedEvents
@@ -179,7 +193,8 @@ DECLARE_SOA_TABLE(JPsiMuonCandidates, "AOD", "DQJPSIMUONA",
179193 dqanalysisflags::MassDileptonCandidate, dqanalysisflags::Ptpair, dqanalysisflags::Etapair, dqanalysisflags::Ptassoc, dqanalysisflags::Etaassoc, dqanalysisflags::Phiassoc,
180194 dqanalysisflags::Ptleg1, dqanalysisflags::Etaleg1, dqanalysisflags::Phileg1, dqanalysisflags::Ptleg2, dqanalysisflags::Etaleg2, dqanalysisflags::Phileg2,
181195 dqanalysisflags::McFlag);
182- DECLARE_SOA_TABLE (JPsieeCandidates, " AOD" , " DQPSEUDOPROPER" , dqanalysisflags::Massee, dqanalysisflags::Ptee, dqanalysisflags::Lxyee, dqanalysisflags::LxyeePoleMass, dqanalysisflags::Lzee, dqanalysisflags::AmbiguousInBunchPairs, dqanalysisflags::AmbiguousOutOfBunchPairs, dqanalysisflags::Corrassoc);
196+ DECLARE_SOA_TABLE (JPsieeCandidates, " AOD" , " DQPSEUDOPROPER" , dqanalysisflags::Massee, dqanalysisflags::Ptee, dqanalysisflags::Etaee, dqanalysisflags::Rapee, dqanalysisflags::Phiee, dqanalysisflags::Lxyee, dqanalysisflags::LxyeePoleMass, dqanalysisflags::Lzee, dqanalysisflags::AmbiguousInBunchPairs, dqanalysisflags::AmbiguousOutOfBunchPairs, dqanalysisflags::Corrassoc, dqanalysisflags::MultiplicityFT0A, dqanalysisflags::MultiplicityFT0C, dqanalysisflags::PercentileFT0M, dqanalysisflags::MultiplicityNContrib);
197+ DECLARE_SOA_TABLE (OniaMCTruth, " AOD" , " MCTRUTHONIA" , dqanalysisflags::OniaPt, dqanalysisflags::OniaEta, dqanalysisflags::OniaY, dqanalysisflags::OniaPhi, dqanalysisflags::OniaVz, dqanalysisflags::OniaVtxZ, dqanalysisflags::MultiplicityFT0A, dqanalysisflags::MultiplicityFT0C, dqanalysisflags::PercentileFT0M, dqanalysisflags::MultiplicityNContrib);
183198} // namespace o2::aod
184199
185200// Declarations of various short names
@@ -1280,6 +1295,7 @@ struct AnalysisSameEventPairing {
12801295 Produces<aod::DileptonsMiniTreeRec> dileptonMiniTreeRec;
12811296 Produces<aod::DileptonsInfo> dileptonInfoList;
12821297 Produces<aod::JPsieeCandidates> PromptNonPromptSepTable;
1298+ Produces<aod::OniaMCTruth> MCTruthTableEffi;
12831299
12841300 o2::base::MatLayerCylSet* fLUT = nullptr ;
12851301 int fCurrentRun ; // needed to detect if the run changed and trigger update of calibrations etc.
@@ -1956,7 +1972,7 @@ struct AnalysisSameEventPairing {
19561972 fHistMan ->FillHistClass (histNames[icut][0 ].Data (), VarManager::fgValues); // reconstructed, unmatched
19571973 for (unsigned int isig = 0 ; isig < fRecMCSignals .size (); isig++) { // loop over MC signals
19581974 if (mcDecision & (static_cast <uint32_t >(1 ) << isig)) {
1959- PromptNonPromptSepTable (VarManager::fgValues[VarManager::kMass ], VarManager::fgValues[VarManager::kPt ], VarManager::fgValues[VarManager::kVertexingTauxyProjected ], VarManager::fgValues[VarManager::kVertexingTauxyProjectedPoleJPsiMass ], VarManager::fgValues[VarManager::kVertexingTauzProjected ], isAmbiInBunch, isAmbiOutOfBunch, isCorrect_pair);
1975+ PromptNonPromptSepTable (VarManager::fgValues[VarManager::kMass ], VarManager::fgValues[VarManager::kPt ], VarManager::fgValues[VarManager::kEta ], VarManager::fgValues[VarManager:: kRap ], VarManager::fgValues[VarManager:: kPhi ], VarManager::fgValues[VarManager:: kVertexingTauxyProjected ], VarManager::fgValues[VarManager::kVertexingTauxyProjectedPoleJPsiMass ], VarManager::fgValues[VarManager::kVertexingTauzProjected ], isAmbiInBunch, isAmbiOutOfBunch, isCorrect_pair, VarManager::fgValues[VarManager:: kMultFT0A ], VarManager::fgValues[VarManager:: kMultFT0C ], VarManager::fgValues[VarManager:: kCentFT0M ], VarManager::fgValues[VarManager:: kVtxNcontribReal ] );
19601976 fHistMan ->FillHistClass (histNamesMC[icut * fRecMCSignals .size () + isig][0 ].Data (), VarManager::fgValues); // matched signal
19611977 if (useMiniTree.fConfigMiniTree ) {
19621978 if constexpr (TPairType == VarManager::kDecayToMuMu ) {
@@ -2238,6 +2254,8 @@ struct AnalysisSameEventPairing {
22382254 if (sig->CheckSignal (true , track_raw)) {
22392255 mcDecision |= (static_cast <uint32_t >(1 ) << isig);
22402256 fHistMan ->FillHistClass (Form (" MCTruthGenSel_%s" , sig->GetName ()), VarManager::fgValues);
2257+ MCTruthTableEffi (VarManager::fgValues[VarManager::kMCPt ], VarManager::fgValues[VarManager::kMCEta ], VarManager::fgValues[VarManager::kMCY ], VarManager::fgValues[VarManager::kMCPhi ], VarManager::fgValues[VarManager::kMCVz ], VarManager::fgValues[VarManager::kMCVtxZ ], VarManager::fgValues[VarManager::kMultFT0A ], VarManager::fgValues[VarManager::kMultFT0C ], VarManager::fgValues[VarManager::kCentFT0M ], VarManager::fgValues[VarManager::kVtxNcontribReal ]);
2258+
22412259 if (useMiniTree.fConfigMiniTree ) {
22422260 auto mcEvent = mcEvents.rawIteratorAt (track_raw.reducedMCeventId ());
22432261 dileptonMiniTreeGen (mcDecision, mcEvent.impactParameter (), track_raw.pt (), track_raw.eta (), track_raw.phi (), -999 , -999 , -999 );
0 commit comments