From a3cf0f845b2b02d480d1455f2c6e4f0aa06e605c Mon Sep 17 00:00:00 2001 From: Ida Torkjellsdatter Storehaug Date: Wed, 15 Oct 2025 13:21:47 +0200 Subject: [PATCH 1/5] Debugging messages removed from tableReader_withAssoc.cxx --- PWGDQ/Tasks/tableReader_withAssoc.cxx | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/PWGDQ/Tasks/tableReader_withAssoc.cxx b/PWGDQ/Tasks/tableReader_withAssoc.cxx index e3cf391ff44..d320ca01175 100644 --- a/PWGDQ/Tasks/tableReader_withAssoc.cxx +++ b/PWGDQ/Tasks/tableReader_withAssoc.cxx @@ -306,7 +306,6 @@ struct AnalysisEventSelection { void init(o2::framework::InitContext& context) { - LOG(info) << "Starting initialization of AnalysisEventSelection (idstoreh)"; bool isAnyProcessEnabled = context.mOptions.get("processSkimmed") || context.mOptions.get("processSkimmedWithZdc") || context.mOptions.get("processSkimmedWithMultExtra") || context.mOptions.get("processSkimmedWithMultExtraZdc") || context.mOptions.get("processSkimmedWithQvectorCentr"); bool isDummyEnabled = context.mOptions.get("processDummy"); @@ -372,7 +371,6 @@ struct AnalysisEventSelection { fCCDB->setLocalObjectValidityChecking(); fCCDB->setCreatedNotAfter(fConfigNoLaterThan.value); fCCDBApi.init(fConfigCcdbUrl.value); - LOG(info) << "Initialization of AnalysisEventSelection finished (idstoreh)"; } template @@ -601,7 +599,6 @@ struct AnalysisTrackSelection { void init(o2::framework::InitContext& context) { - LOG(info) << "Starting initialization of AnalysisTrackSelection (idstoreh)"; if (context.mOptions.get("processDummy")) { return; } @@ -651,7 +648,6 @@ struct AnalysisTrackSelection { fCCDB->setLocalObjectValidityChecking(); fCCDB->setCreatedNotAfter(fConfigNoLaterThan.value); fCCDBApi.init(fConfigCcdbUrl.value); - LOG(info) << "Initialization of AnalysisTrackSelection finished (idstoreh)"; } template @@ -854,7 +850,6 @@ struct AnalysisMuonSelection { void init(o2::framework::InitContext& context) { - LOG(info) << "Starting initialization of AnalysisMuonSelection (idstoreh)"; if (context.mOptions.get("processDummy")) { return; } @@ -906,7 +901,6 @@ struct AnalysisMuonSelection { if (!o2::base::GeometryManager::isGeometryLoaded()) { fCCDB->get(fConfigGeoPath); } - LOG(info) << "Initialization of AnalysisMuonSelection finished (idstoreh)"; } template @@ -1057,7 +1051,6 @@ struct AnalysisPrefilterSelection { void init(o2::framework::InitContext& context) { - LOG(info) << "Starting initialization of AnalysisPrefilterSelection (idstoreh)"; if (context.mOptions.get("processDummy")) { return; } @@ -1131,7 +1124,6 @@ struct AnalysisPrefilterSelection { VarManager::SetUseVars(AnalysisCut::fgUsedVars); // provide the list of required variables so that VarManager knows what to fill VarManager::SetupTwoProngDCAFitter(5.0f, true, 200.0f, 4.0f, 1.0e-3f, 0.9f, true); // TODO: get these parameters from Configurables // VarManager::SetupTwoProngFwdDCAFitter(5.0f, true, 200.0f, 1.0e-3f, 0.9f, true); - LOG(info) << "Initialization of AnalysisPrefilterSelection finished (idstoreh)"; } template @@ -1324,7 +1316,6 @@ struct AnalysisSameEventPairing { void init(o2::framework::InitContext& context) { - LOG(info) << "Starting initialization of AnalysisSameEventPairing (idstoreh)"; fEnableBarrelHistos = context.mOptions.get("processAllSkimmed") || context.mOptions.get("processBarrelOnlySkimmed") || context.mOptions.get("processBarrelOnlyWithCollSkimmed") || context.mOptions.get("processBarrelOnlySkimmedNoCov") || context.mOptions.get("processBarrelOnlySkimmedNoCovWithMultExtra") || context.mOptions.get("processBarrelOnlyWithQvectorCentrSkimmedNoCov"); fEnableBarrelMixingHistos = context.mOptions.get("processMixingAllSkimmed") || context.mOptions.get("processMixingBarrelSkimmed") || context.mOptions.get("processMixingBarrelSkimmedFlow") || context.mOptions.get("processMixingBarrelWithQvectorCentrSkimmedNoCov"); fEnableMuonHistos = context.mOptions.get("processAllSkimmed") || context.mOptions.get("processMuonOnlySkimmed") || context.mOptions.get("processMuonOnlySkimmedMultExtra") || context.mOptions.get("processMixingMuonSkimmed"); @@ -1470,7 +1461,6 @@ struct AnalysisSameEventPairing { } } } - LOG(info) << "Initialization of AnalysisSameEventPairing 1 (idstoreh)"; // get the muon track selection cuts getTaskOptionValue(context, "analysis-muon-selection", "cfgMuonCuts", tempCuts, false); @@ -1552,8 +1542,6 @@ struct AnalysisSameEventPairing { } } - LOG(info) << "Initialization of AnalysisSameEventPairing 2 (idstoreh)"; - fCurrentRun = 0; fCCDB->setURL(fConfigCCDB.url.value); @@ -1615,7 +1603,6 @@ struct AnalysisSameEventPairing { VarManager::SetUseVars(fHistMan->GetUsedVars()); // provide the list of required variables so that VarManager knows what to fill fOutputList.setObject(fHistMan->GetMainHistogramList()); } - LOG(info) << "Finished initialization of AnalysisSameEventPairing (idstoreh)"; } void initParamsFromCCDB(uint64_t timestamp, int runNumber, bool withTwoProngFitter = true) @@ -2441,7 +2428,6 @@ struct AnalysisAsymmetricPairing { void init(o2::framework::InitContext& context) { - LOG(info) << "Initialization of AnalysisAsymmetricPairing started (idstoreh)"; if (context.mOptions.get("processDummy")) { return; } @@ -2670,7 +2656,6 @@ struct AnalysisAsymmetricPairing { dqhistograms::AddHistogramsFromJSON(fHistMan, fConfigAddJSONHistograms.value.c_str()); // ad-hoc histograms via JSON VarManager::SetUseVars(fHistMan->GetUsedVars()); // provide the list of required variables so that VarManager knows what to fill fOutputList.setObject(fHistMan->GetMainHistogramList()); - LOG(info) << "Initialization of AnalysisAsymmetricPairing finished (idstoreh)"; } void initParamsFromCCDB(uint64_t timestamp, bool isTriplets) @@ -3153,7 +3138,6 @@ struct AnalysisDileptonTrack { void init(o2::framework::InitContext& context) { - LOG(info) << "Initialization of AnalysisDileptonTrack started (idstoreh)"; bool isBarrel = context.mOptions.get("processBarrelSkimmed"); bool isBarrelME = context.mOptions.get("processBarrelMixedEvent"); bool isBarrelAsymmetric = context.mOptions.get("processDstarToD0Pi"); @@ -3179,7 +3163,6 @@ struct AnalysisDileptonTrack { // For each track/muon selection used to produce dileptons, create a separate histogram directory using the // name of the track/muon cut. - LOG(info) << "Initialization of AnalysisDileptonTrack 1 (idstoreh)"; if (isBarrel || isMuon || isBarrelAsymmetric) { // Get the list of single track and muon cuts computed in the dedicated tasks upstream // We need this to know the order in which they were computed, and also to make sure that in this task we do not ask @@ -3218,7 +3201,6 @@ struct AnalysisDileptonTrack { for (int icut = 0; icut < cfgTrackSelection_objArrayTrackCuts->GetEntries(); icut++) { fTrackCutNames.push_back(cfgTrackSelection_objArrayTrackCuts->At(icut)->GetName()); } - LOG(info) << "Initialization of AnalysisDileptonTrack 2 (idstoreh)"; // get the list of associated track cuts to be combined with the dileptons and // check that these were computed upstream and create a bit mask TObjArray* cfgDileptonTrack_objArrayTrackCuts = nullptr; @@ -3258,7 +3240,6 @@ struct AnalysisDileptonTrack { getTaskOptionValue(context, "analysis-asymmetric-pairing", "cfgPairCuts", cfgPairing_PairCuts, false); getTaskOptionValue(context, "analysis-asymmetric-pairing", "cfgCommonTrackCuts", cfgPairing_CommonTrackCuts, false); } - LOG(info) << "Initialization of AnalysisDileptonTrack 3 (idstoreh)"; if (cfgPairing_TrackCuts.empty()) { LOG(fatal) << "There are no dilepton cuts specified in the upstream in the same-event-pairing or asymmetric-pairing"; } @@ -3277,7 +3258,6 @@ struct AnalysisDileptonTrack { } } } // end if (common cuts) - LOG(info) << "Initialization of AnalysisDileptonTrack 4 (idstoreh)"; // Get also the pair cuts specified via the JSON parameters if (isBarrelAsymmetric) { getTaskOptionValue(context, "analysis-asymmetric-pairing", "cfgPairCutsJSON", cfgPairing_PairCutsJSON, false); @@ -3304,7 +3284,6 @@ struct AnalysisDileptonTrack { } else { fNLegCuts = fNCuts; } - LOG(info) << "Initialization of AnalysisDileptonTrack 5 (idstoreh)"; // loop over single lepton cuts for (int icut = 0; icut < fNLegCuts; ++icut) { @@ -3378,8 +3357,6 @@ struct AnalysisDileptonTrack { LOG(info) << "Loading geometry from CCDB in dilepton-track task"; fCCDB->get(fConfigGeoPath); } - - LOG(info) << "Initialization of AnalysisDileptonTrack finished (idstoreh)"; } // init parameters from CCDB From 1ae86a583b275aca1da0734cfdf92993097432a0 Mon Sep 17 00:00:00 2001 From: Ida Torkjellsdatter Storehaug Date: Wed, 15 Oct 2025 13:40:06 +0200 Subject: [PATCH 2/5] Removed DCA from B meson table in tableReader and dqEffciiency with associations, added B meosn phi --- PWGDQ/Tasks/dqEfficiency_withAssoc.cxx | 14 ++++---------- PWGDQ/Tasks/tableReader_withAssoc.cxx | 13 +++---------- 2 files changed, 7 insertions(+), 20 deletions(-) diff --git a/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx b/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx index 4f5b368d6f9..50285fad532 100644 --- a/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx +++ b/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx @@ -84,6 +84,8 @@ DECLARE_SOA_COLUMN(massBcandidate, MBcandidate, float); DECLARE_SOA_COLUMN(MassDileptonCandidate, massDileptonCandidate, float); DECLARE_SOA_COLUMN(deltaMassBcandidate, deltaMBcandidate, float); DECLARE_SOA_COLUMN(pTBcandidate, PtBcandidate, float); +DECLARE_SOA_COLUMN(EtaBcandidate, etaBcandidate, float); +DECLARE_SOA_COLUMN(PhiBcandidate, phiBcandidate, float); DECLARE_SOA_COLUMN(LxyBcandidate, lxyBcandidate, float); DECLARE_SOA_COLUMN(LxyzBcandidate, lxyzBcandidate, float); DECLARE_SOA_COLUMN(LzBcandidate, lzBcandidate, float); @@ -118,12 +120,6 @@ DECLARE_SOA_COLUMN(TPCnsigmaPrleg1, tpcnsigmaPrleg1, float); DECLARE_SOA_COLUMN(TPCnsigmaElleg2, tpcnsigmaElleg2, float); DECLARE_SOA_COLUMN(TPCnsigmaPileg2, tpcnsigmaPileg2, float); DECLARE_SOA_COLUMN(TPCnsigmaPrleg2, tpcnsigmaPrleg2, float); -DECLARE_SOA_COLUMN(DCAXYassoc, dcaXYassoc, float); -DECLARE_SOA_COLUMN(DCAZassoc, dcaZassoc, float); -DECLARE_SOA_COLUMN(DCAXYleg1, dcaXYleg1, float); -DECLARE_SOA_COLUMN(DCAZleg1, dcaZleg1, float); -DECLARE_SOA_COLUMN(DCAXYleg2, dcaXYleg2, float); -DECLARE_SOA_COLUMN(DCAZleg2, dcaZleg2, float); DECLARE_SOA_COLUMN(ITSClusterMapassoc, itsClusterMapassoc, uint8_t); DECLARE_SOA_COLUMN(ITSClusterMapleg1, itsClusterMapleg1, uint8_t); DECLARE_SOA_COLUMN(ITSClusterMapleg2, itsClusterMapleg2, uint8_t); @@ -173,7 +169,7 @@ DECLARE_SOA_TABLE(MuonAmbiguities, "AOD", "DQMUONAMB", dqanalysisflags::MuonAmbi DECLARE_SOA_TABLE(Prefilter, "AOD", "DQPREFILTER", dqanalysisflags::IsBarrelSelectedPrefilter); //! joinable to ReducedTracksAssoc DECLARE_SOA_TABLE(BmesonCandidates, "AOD", "DQBMESONS", dqanalysisflags::RunNumber, dqanalysisflags::EventIdx, dqanalysisflags::EventTimestamp, - dqanalysisflags::massBcandidate, dqanalysisflags::MassDileptonCandidate, dqanalysisflags::deltaMassBcandidate, dqanalysisflags::pTBcandidate, + dqanalysisflags::massBcandidate, dqanalysisflags::MassDileptonCandidate, dqanalysisflags::deltaMassBcandidate, dqanalysisflags::pTBcandidate, dqanalysisflags::EtaBcandidate, dqanalysisflags::PhiBcandidate, dqanalysisflags::LxyBcandidate, dqanalysisflags::LxyzBcandidate, dqanalysisflags::LzBcandidate, dqanalysisflags::TauxyBcandidate, dqanalysisflags::TauzBcandidate, dqanalysisflags::CosPBcandidate, dqanalysisflags::Chi2Bcandidate, dqanalysisflags::GlobalIndexassoc, dqanalysisflags::GlobalIndexleg1, dqanalysisflags::GlobalIndexleg2, @@ -182,7 +178,6 @@ DECLARE_SOA_TABLE(BmesonCandidates, "AOD", "DQBMESONS", dqanalysisflags::TPCnsigmaKaassoc, dqanalysisflags::TPCnsigmaPiassoc, dqanalysisflags::TPCnsigmaPrassoc, dqanalysisflags::TOFnsigmaKaassoc, dqanalysisflags::TPCnsigmaElleg1, dqanalysisflags::TPCnsigmaPileg1, dqanalysisflags::TPCnsigmaPrleg1, dqanalysisflags::TPCnsigmaElleg2, dqanalysisflags::TPCnsigmaPileg2, dqanalysisflags::TPCnsigmaPrleg2, - dqanalysisflags::DCAXYassoc, dqanalysisflags::DCAZassoc, dqanalysisflags::DCAXYleg1, dqanalysisflags::DCAZleg1, dqanalysisflags::DCAXYleg2, dqanalysisflags::DCAZleg2, dqanalysisflags::ITSClusterMapassoc, dqanalysisflags::ITSClusterMapleg1, dqanalysisflags::ITSClusterMapleg2, dqanalysisflags::ITSChi2assoc, dqanalysisflags::ITSChi2leg1, dqanalysisflags::ITSChi2leg2, dqanalysisflags::TPCNclsassoc, dqanalysisflags::TPCNclsleg1, dqanalysisflags::TPCNclsleg2, @@ -3925,7 +3920,7 @@ struct AnalysisDileptonTrack { } // table to be written out for ML analysis BmesonsTable(event.runNumber(), event.globalIndex(), event.timestamp(), - fValuesHadron[VarManager::kPairMass], dilepton.mass(), fValuesHadron[VarManager::kDeltaMass], fValuesHadron[VarManager::kPairPt], + fValuesHadron[VarManager::kPairMass], dilepton.mass(), fValuesHadron[VarManager::kDeltaMass], fValuesHadron[VarManager::kPairPt], fValuesHadron[VarManager::kPairEta], fValuesHadron[VarManager::kPairPhi], fValuesHadron[VarManager::kVertexingLxy], fValuesHadron[VarManager::kVertexingLxyz], fValuesHadron[VarManager::kVertexingLz], fValuesHadron[VarManager::kVertexingTauxy], fValuesHadron[VarManager::kVertexingTauz], fValuesHadron[VarManager::kCosPointingAngle], fValuesHadron[VarManager::kVertexingChi2PCA], @@ -3934,7 +3929,6 @@ struct AnalysisDileptonTrack { track.tpcNSigmaKa(), track.tpcNSigmaPi(), track.tpcNSigmaPr(), track.tofNSigmaKa(), lepton1.tpcNSigmaEl(), lepton1.tpcNSigmaPi(), lepton1.tpcNSigmaPr(), lepton2.tpcNSigmaEl(), lepton2.tpcNSigmaPi(), lepton2.tpcNSigmaPr(), - track.dcaXY(), track.dcaZ(), lepton1.dcaXY(), lepton1.dcaZ(), lepton2.dcaXY(), lepton2.dcaZ(), track.itsClusterMap(), lepton1.itsClusterMap(), lepton2.itsClusterMap(), track.itsChi2NCl(), lepton1.itsChi2NCl(), lepton2.itsChi2NCl(), track.tpcNClsFound(), lepton1.tpcNClsFound(), lepton2.tpcNClsFound(), diff --git a/PWGDQ/Tasks/tableReader_withAssoc.cxx b/PWGDQ/Tasks/tableReader_withAssoc.cxx index d320ca01175..16aa0b5639f 100644 --- a/PWGDQ/Tasks/tableReader_withAssoc.cxx +++ b/PWGDQ/Tasks/tableReader_withAssoc.cxx @@ -94,6 +94,7 @@ DECLARE_SOA_COLUMN(MassDileptonCandidate, massDileptonCandidate, float); DECLARE_SOA_COLUMN(deltamassBcandidate, deltaMBcandidate, float); DECLARE_SOA_COLUMN(pTBcandidate, PtBcandidate, float); DECLARE_SOA_COLUMN(EtaBcandidate, etaBcandidate, float); +DECLARE_SOA_COLUMN(PhiBcandidate, phiBcandidate, float); DECLARE_SOA_COLUMN(LxyBcandidate, lxyBcandidate, float); DECLARE_SOA_COLUMN(LxyzBcandidate, lxyzBcandidate, float); DECLARE_SOA_COLUMN(LzBcandidate, lzBcandidate, float); @@ -128,12 +129,6 @@ DECLARE_SOA_COLUMN(TPCnsigmaPrleg1, tpcnsigmaPrleg1, float); DECLARE_SOA_COLUMN(TPCnsigmaElleg2, tpcnsigmaElleg2, float); DECLARE_SOA_COLUMN(TPCnsigmaPileg2, tpcnsigmaPileg2, float); DECLARE_SOA_COLUMN(TPCnsigmaPrleg2, tpcnsigmaPrleg2, float); -DECLARE_SOA_COLUMN(DCAXYassoc, dcaXYassoc, float); -DECLARE_SOA_COLUMN(DCAZassoc, dcaZassoc, float); -DECLARE_SOA_COLUMN(DCAXYleg1, dcaXYleg1, float); -DECLARE_SOA_COLUMN(DCAZleg1, dcaZleg1, float); -DECLARE_SOA_COLUMN(DCAXYleg2, dcaXYleg2, float); -DECLARE_SOA_COLUMN(DCAZleg2, dcaZleg2, float); DECLARE_SOA_COLUMN(ITSClusterMapassoc, itsClusterMapassoc, uint8_t); DECLARE_SOA_COLUMN(ITSClusterMapleg1, itsClusterMapleg1, uint8_t); DECLARE_SOA_COLUMN(ITSClusterMapleg2, itsClusterMapleg2, uint8_t); @@ -173,7 +168,7 @@ DECLARE_SOA_TABLE(MuonAmbiguities, "AOD", "DQMUONAMBA", dqanalysisflags::MuonAmb DECLARE_SOA_TABLE(Prefilter, "AOD", "DQPREFILTERA", dqanalysisflags::IsBarrelSelectedPrefilter); //! joinable to ReducedTracksAssoc DECLARE_SOA_TABLE(BmesonCandidates, "AOD", "DQBMESONSA", dqanalysisflags::RunNumber, dqanalysisflags::EventIdx, dqanalysisflags::EventTimestamp, - dqanalysisflags::massBcandidate, dqanalysisflags::MassDileptonCandidate, dqanalysisflags::deltamassBcandidate, dqanalysisflags::pTBcandidate, dqanalysisflags::EtaBcandidate, + dqanalysisflags::massBcandidate, dqanalysisflags::MassDileptonCandidate, dqanalysisflags::deltamassBcandidate, dqanalysisflags::pTBcandidate, dqanalysisflags::EtaBcandidate, dqanalysisflags::PhiBcandidate, dqanalysisflags::LxyBcandidate, dqanalysisflags::LxyzBcandidate, dqanalysisflags::LzBcandidate, dqanalysisflags::TauxyBcandidate, dqanalysisflags::TauzBcandidate, dqanalysisflags::CosPBcandidate, dqanalysisflags::Chi2Bcandidate, dqanalysisflags::GlobalIndexassoc, dqanalysisflags::GlobalIndexleg1, dqanalysisflags::GlobalIndexleg2, @@ -182,7 +177,6 @@ DECLARE_SOA_TABLE(BmesonCandidates, "AOD", "DQBMESONSA", dqanalysisflags::TPCnsigmaKaassoc, dqanalysisflags::TPCnsigmaPiassoc, dqanalysisflags::TPCnsigmaPrassoc, dqanalysisflags::TOFnsigmaKaassoc, dqanalysisflags::TPCnsigmaElleg1, dqanalysisflags::TPCnsigmaPileg1, dqanalysisflags::TPCnsigmaPrleg1, dqanalysisflags::TPCnsigmaElleg2, dqanalysisflags::TPCnsigmaPileg2, dqanalysisflags::TPCnsigmaPrleg2, - dqanalysisflags::DCAXYassoc, dqanalysisflags::DCAZassoc, dqanalysisflags::DCAXYleg1, dqanalysisflags::DCAZleg1, dqanalysisflags::DCAXYleg2, dqanalysisflags::DCAZleg2, dqanalysisflags::ITSClusterMapassoc, dqanalysisflags::ITSClusterMapleg1, dqanalysisflags::ITSClusterMapleg2, dqanalysisflags::ITSChi2assoc, dqanalysisflags::ITSChi2leg1, dqanalysisflags::ITSChi2leg2, dqanalysisflags::TPCNclsassoc, dqanalysisflags::TPCNclsleg1, dqanalysisflags::TPCNclsleg2, @@ -3454,7 +3448,7 @@ struct AnalysisDileptonTrack { VarManager::FillDileptonHadron(dilepton, track, fValuesHadron); VarManager::FillDileptonTrackVertexing(event, lepton1, lepton2, track, fValuesHadron); // table to be written out for ML analysis - BmesonsTable(event.runNumber(), event.globalIndex(), event.timestamp(), fValuesHadron[VarManager::kPairMass], dilepton.mass(), fValuesHadron[VarManager::kDeltaMass], fValuesHadron[VarManager::kPairPt], fValuesHadron[VarManager::kPairEta], + BmesonsTable(event.runNumber(), event.globalIndex(), event.timestamp(), fValuesHadron[VarManager::kPairMass], dilepton.mass(), fValuesHadron[VarManager::kDeltaMass], fValuesHadron[VarManager::kPairPt], fValuesHadron[VarManager::kPairEta], fValuesHadron[VarManager::kPairPhi], fValuesHadron[VarManager::kVertexingLxy], fValuesHadron[VarManager::kVertexingLxyz], fValuesHadron[VarManager::kVertexingLz], fValuesHadron[VarManager::kVertexingTauxy], fValuesHadron[VarManager::kVertexingTauz], fValuesHadron[VarManager::kCosPointingAngle], fValuesHadron[VarManager::kVertexingChi2PCA], @@ -3463,7 +3457,6 @@ struct AnalysisDileptonTrack { track.tpcNSigmaKa(), track.tpcNSigmaPi(), track.tpcNSigmaPr(), track.tofNSigmaKa(), lepton1.tpcNSigmaEl(), lepton1.tpcNSigmaPi(), lepton1.tpcNSigmaPr(), lepton2.tpcNSigmaEl(), lepton2.tpcNSigmaPi(), lepton2.tpcNSigmaPr(), - track.dcaXY(), track.dcaZ(), lepton1.dcaXY(), lepton1.dcaZ(), lepton2.dcaXY(), lepton2.dcaZ(), track.itsClusterMap(), lepton1.itsClusterMap(), lepton2.itsClusterMap(), track.itsChi2NCl(), lepton1.itsChi2NCl(), lepton2.itsChi2NCl(), track.tpcNClsFound(), lepton1.tpcNClsFound(), lepton2.tpcNClsFound(), From 12f7941f3c72dc42982b3b5846c1574fd2117a62 Mon Sep 17 00:00:00 2001 From: Ida Torkjellsdatter Storehaug Date: Thu, 16 Oct 2025 13:50:00 +0200 Subject: [PATCH 3/5] Added acceptance on generated level in DileptonTrack in dqEfficiency --- PWGDQ/Tasks/dqEfficiency_withAssoc.cxx | 67 ++++++++++++++------------ 1 file changed, 36 insertions(+), 31 deletions(-) diff --git a/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx b/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx index 50285fad532..1f1379584d9 100644 --- a/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx +++ b/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx @@ -3794,7 +3794,10 @@ struct AnalysisDileptonTrack { DefineHistograms(fHistMan, Form("MCTruthGen_%s", sig->GetName()), ""); DefineHistograms(fHistMan, Form("MCTruthGenSel_%s", sig->GetName()), ""); } - DefineHistograms(fHistMan, "MCTruthGenAccepted", ""); + for (auto& sig: fRecMCSignals) { + DefineHistograms(fHistMan, Form("MCTruthGenSelBR_%s", sig->GetName()), ""); + DefineHistograms(fHistMan, Form("MCTruthGenSelBRAccepted_%s", sig->GetName()), ""); + } } TString addHistsStr = fConfigAddJSONHistograms.value; @@ -4199,40 +4202,42 @@ struct AnalysisDileptonTrack { } } - /*for (auto& [t1, t2, t3] : combinations(groupedMCTracks, groupedMCTracks, groupedMCTracks)) { + // make a list of all MC tracks in the MC collision corresponding to the current reconstructed event + std::vector mcTrackIndices; + for (auto& t : groupedMCTracks) { + mcTrackIndices.push_back(t.globalIndex()); + } - if (! (t1.mcReducedFlags() & (uint16_t(1) << fConfigMCGenSignalDileptonLegPos.value))) { - continue; - } - if (t1.pt() < fConfigMCGenDileptonLegPtMin.value) { - continue; - } - if (std::abs(t1.eta()) > fConfigMCGenDileptonLegEtaAbs.value) { - continue; - } + // make a three nested for loop over all MC tracks in the vector + for (auto t1 : mcTrackIndices) { + auto track1 = mcTracks.rawIteratorAt(*(&t1)); + for (auto t2 : mcTrackIndices) { + if (t1 == t2 || t2 < t1) continue; + auto track2 = mcTracks.rawIteratorAt(*(&t2)); + for (auto t3 : mcTrackIndices) { + if (t3 == t1 || t3 == t2) continue; + auto track3 = mcTracks.rawIteratorAt(*(&t3)); - if (! (t2.mcReducedFlags() & (uint16_t(1) << fConfigMCGenSignalDileptonLegNeg.value))) { - continue; - } - if (t2.pt() < fConfigMCGenDileptonLegPtMin.value) { - continue; - } - if (std::abs(t2.eta()) > fConfigMCGenDileptonLegEtaAbs.value) { - continue; - } + for (auto& sig : fRecMCSignals) { + if (sig->CheckSignal(true, track1, track2, track3)) { + fHistMan->FillHistClass(Form("MCTruthGenSelBR_%s", sig->GetName()), VarManager::fgValues); - if (! (t3.mcReducedFlags() & (uint16_t(1) << fConfigMCGenSignalHadron.value))) { - continue; - } - if (t3.pt() < fConfigMCGenHadronPtMin.value) { - continue; - } - if (std::abs(t3.eta()) > fConfigMCGenHadronEtaAbs.value) { - continue; + // apply kinematic cuts + if (track1.pt() < fConfigMCGenDileptonLegPtMin.value || std::abs(track1.eta()) > fConfigMCGenDileptonLegEtaAbs.value) { + continue; + } + if (track2.pt() < fConfigMCGenDileptonLegPtMin.value || std::abs(track2.eta()) > fConfigMCGenDileptonLegEtaAbs.value) { + continue; + } + if (track3.pt() < fConfigMCGenHadronPtMin.value || std::abs(track3.eta()) > fConfigMCGenHadronEtaAbs.value) { + continue; + } + fHistMan->FillHistClass(Form("MCTruthGenSelBRAccepted_%s", sig->GetName()), VarManager::fgValues); + } + } + } } - - fHistMan->FillHistClass("MCTruthGenSelAccepted", VarManager::fgValues); - }*/ + } } // end loop over reconstructed events } From 6b15fd808f3736c3f3806fa0ea93251b4e855618 Mon Sep 17 00:00:00 2001 From: Ida Torkjellsdatter Storehaug Date: Thu, 16 Oct 2025 14:28:29 +0200 Subject: [PATCH 4/5] Rapidity caldulation added to dileptonTrack and to the B meson tabled --- PWGDQ/Core/HistogramsLibrary.cxx | 1 + PWGDQ/Core/VarManager.cxx | 3 +++ PWGDQ/Core/VarManager.h | 2 ++ PWGDQ/Tasks/dqEfficiency_withAssoc.cxx | 5 +++-- PWGDQ/Tasks/tableReader_withAssoc.cxx | 5 +++-- 5 files changed, 12 insertions(+), 4 deletions(-) diff --git a/PWGDQ/Core/HistogramsLibrary.cxx b/PWGDQ/Core/HistogramsLibrary.cxx index e2c73f7e9ac..c103d576840 100644 --- a/PWGDQ/Core/HistogramsLibrary.cxx +++ b/PWGDQ/Core/HistogramsLibrary.cxx @@ -1808,6 +1808,7 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h hm->AddHistogram(histClass, "Pt_Track", "", false, 120, 0.0, 30.0, VarManager::kPt); hm->AddHistogram(histClass, "Mass", "", false, 750, 0.0, 30.0, VarManager::kPairMass); hm->AddHistogram(histClass, "Pt", "", false, 750, 0.0, 30.0, VarManager::kPairPt); + hm->AddHistogram(histClass, "Rap", "", false, 100, -10.0, 10.0, VarManager::kPairRap); hm->AddHistogram(histClass, "Mass_Pt", "", false, 100, 0.0, 20.0, VarManager::kPairMass, 40, 0.0, 20.0, VarManager::kPairPt); hm->AddHistogram(histClass, "Pt_Dilepton__Pt", "", false, 40, 0.0, 20.0, VarManager::kPairPtDau, 40, 0.0, 20.0, VarManager::kPairPt); hm->AddHistogram(histClass, "Pt_Track__Pt", "", false, 40, 0.0, 20.0, VarManager::kPt, 40, 0.0, 20.0, VarManager::kPairPt); diff --git a/PWGDQ/Core/VarManager.cxx b/PWGDQ/Core/VarManager.cxx index 7c87739b009..496a6ca18ae 100644 --- a/PWGDQ/Core/VarManager.cxx +++ b/PWGDQ/Core/VarManager.cxx @@ -1142,6 +1142,8 @@ void VarManager::SetDefaultVarNames() fgVariableUnits[kPairPt] = "GeV/c"; fgVariableNames[kPairEta] = "#eta"; fgVariableUnits[kPairEta] = ""; + fgVariableNames[kPairRap] = "#rap"; + fgVariableUnits[kPairRap] = ""; fgVariableNames[kPairPhi] = "#varphi"; fgVariableUnits[kPairPhi] = "rad."; fgVariableNames[kPairPhiv] = "#varphi_{V}"; @@ -1881,6 +1883,7 @@ void VarManager::SetDefaultVarNames() fgVarNamesMap["kPairPt"] = kPairPt; fgVarNamesMap["kPairPtDau"] = kPairPtDau; fgVarNamesMap["kPairEta"] = kPairEta; + fgVarNamesMap["kPairRap"] = kPairRap; fgVarNamesMap["kPairPhi"] = kPairPhi; fgVarNamesMap["kPairPhiv"] = kPairPhiv; fgVarNamesMap["kDileptonHadronKstar"] = kDileptonHadronKstar; diff --git a/PWGDQ/Core/VarManager.h b/PWGDQ/Core/VarManager.h index a4d9f540370..42531168bad 100644 --- a/PWGDQ/Core/VarManager.h +++ b/PWGDQ/Core/VarManager.h @@ -814,6 +814,7 @@ class VarManager : public TObject kPairPt, kPairPtDau, kPairEta, + kPairRap, kPairPhi, kPairPhiv, kDeltaEta, @@ -4336,6 +4337,7 @@ void VarManager::FillDileptonTrackVertexing(C const& collision, T1 const& lepton values[VarManager::kMassDau] = mtrack; values[VarManager::kDeltaMass] = v123.M() - v12.M(); values[VarManager::kPairPt] = v123.Pt(); + values[VarManager::kPairRap] = -v123.Rapidity(); values[VarManager::kPairEta] = v123.Eta(); if (fgUsedVars[kPairMassDau] || fgUsedVars[kPairPtDau]) { values[VarManager::kPairMassDau] = v12.M(); diff --git a/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx b/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx index 1f1379584d9..8cc447bfaeb 100644 --- a/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx +++ b/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx @@ -86,6 +86,7 @@ DECLARE_SOA_COLUMN(deltaMassBcandidate, deltaMBcandidate, float); DECLARE_SOA_COLUMN(pTBcandidate, PtBcandidate, float); DECLARE_SOA_COLUMN(EtaBcandidate, etaBcandidate, float); DECLARE_SOA_COLUMN(PhiBcandidate, phiBcandidate, float); +DECLARE_SOA_COLUMN(RapBcandidate, rapBcandidate, float); DECLARE_SOA_COLUMN(LxyBcandidate, lxyBcandidate, float); DECLARE_SOA_COLUMN(LxyzBcandidate, lxyzBcandidate, float); DECLARE_SOA_COLUMN(LzBcandidate, lzBcandidate, float); @@ -169,7 +170,7 @@ DECLARE_SOA_TABLE(MuonAmbiguities, "AOD", "DQMUONAMB", dqanalysisflags::MuonAmbi DECLARE_SOA_TABLE(Prefilter, "AOD", "DQPREFILTER", dqanalysisflags::IsBarrelSelectedPrefilter); //! joinable to ReducedTracksAssoc DECLARE_SOA_TABLE(BmesonCandidates, "AOD", "DQBMESONS", dqanalysisflags::RunNumber, dqanalysisflags::EventIdx, dqanalysisflags::EventTimestamp, - dqanalysisflags::massBcandidate, dqanalysisflags::MassDileptonCandidate, dqanalysisflags::deltaMassBcandidate, dqanalysisflags::pTBcandidate, dqanalysisflags::EtaBcandidate, dqanalysisflags::PhiBcandidate, + dqanalysisflags::massBcandidate, dqanalysisflags::MassDileptonCandidate, dqanalysisflags::deltaMassBcandidate, dqanalysisflags::pTBcandidate, dqanalysisflags::EtaBcandidate, dqanalysisflags::PhiBcandidate, dqanalysisflags::RapBcandidate, dqanalysisflags::LxyBcandidate, dqanalysisflags::LxyzBcandidate, dqanalysisflags::LzBcandidate, dqanalysisflags::TauxyBcandidate, dqanalysisflags::TauzBcandidate, dqanalysisflags::CosPBcandidate, dqanalysisflags::Chi2Bcandidate, dqanalysisflags::GlobalIndexassoc, dqanalysisflags::GlobalIndexleg1, dqanalysisflags::GlobalIndexleg2, @@ -3923,7 +3924,7 @@ struct AnalysisDileptonTrack { } // table to be written out for ML analysis BmesonsTable(event.runNumber(), event.globalIndex(), event.timestamp(), - fValuesHadron[VarManager::kPairMass], dilepton.mass(), fValuesHadron[VarManager::kDeltaMass], fValuesHadron[VarManager::kPairPt], fValuesHadron[VarManager::kPairEta], fValuesHadron[VarManager::kPairPhi], + fValuesHadron[VarManager::kPairMass], dilepton.mass(), fValuesHadron[VarManager::kDeltaMass], fValuesHadron[VarManager::kPairPt], fValuesHadron[VarManager::kPairEta], fValuesHadron[VarManager::kPairPhi], fValuesHadron[VarManager::kPairRap], fValuesHadron[VarManager::kVertexingLxy], fValuesHadron[VarManager::kVertexingLxyz], fValuesHadron[VarManager::kVertexingLz], fValuesHadron[VarManager::kVertexingTauxy], fValuesHadron[VarManager::kVertexingTauz], fValuesHadron[VarManager::kCosPointingAngle], fValuesHadron[VarManager::kVertexingChi2PCA], diff --git a/PWGDQ/Tasks/tableReader_withAssoc.cxx b/PWGDQ/Tasks/tableReader_withAssoc.cxx index 16aa0b5639f..db2ef8b7a2a 100644 --- a/PWGDQ/Tasks/tableReader_withAssoc.cxx +++ b/PWGDQ/Tasks/tableReader_withAssoc.cxx @@ -95,6 +95,7 @@ DECLARE_SOA_COLUMN(deltamassBcandidate, deltaMBcandidate, float); DECLARE_SOA_COLUMN(pTBcandidate, PtBcandidate, float); DECLARE_SOA_COLUMN(EtaBcandidate, etaBcandidate, float); DECLARE_SOA_COLUMN(PhiBcandidate, phiBcandidate, float); +DECLARE_SOA_COLUMN(RapBcandidate, rapBcandidate, float); DECLARE_SOA_COLUMN(LxyBcandidate, lxyBcandidate, float); DECLARE_SOA_COLUMN(LxyzBcandidate, lxyzBcandidate, float); DECLARE_SOA_COLUMN(LzBcandidate, lzBcandidate, float); @@ -168,7 +169,7 @@ DECLARE_SOA_TABLE(MuonAmbiguities, "AOD", "DQMUONAMBA", dqanalysisflags::MuonAmb DECLARE_SOA_TABLE(Prefilter, "AOD", "DQPREFILTERA", dqanalysisflags::IsBarrelSelectedPrefilter); //! joinable to ReducedTracksAssoc DECLARE_SOA_TABLE(BmesonCandidates, "AOD", "DQBMESONSA", dqanalysisflags::RunNumber, dqanalysisflags::EventIdx, dqanalysisflags::EventTimestamp, - dqanalysisflags::massBcandidate, dqanalysisflags::MassDileptonCandidate, dqanalysisflags::deltamassBcandidate, dqanalysisflags::pTBcandidate, dqanalysisflags::EtaBcandidate, dqanalysisflags::PhiBcandidate, + dqanalysisflags::massBcandidate, dqanalysisflags::MassDileptonCandidate, dqanalysisflags::deltamassBcandidate, dqanalysisflags::pTBcandidate, dqanalysisflags::EtaBcandidate, dqanalysisflags::PhiBcandidate, dqanalysisflags::RapBcandidate, dqanalysisflags::LxyBcandidate, dqanalysisflags::LxyzBcandidate, dqanalysisflags::LzBcandidate, dqanalysisflags::TauxyBcandidate, dqanalysisflags::TauzBcandidate, dqanalysisflags::CosPBcandidate, dqanalysisflags::Chi2Bcandidate, dqanalysisflags::GlobalIndexassoc, dqanalysisflags::GlobalIndexleg1, dqanalysisflags::GlobalIndexleg2, @@ -3448,7 +3449,7 @@ struct AnalysisDileptonTrack { VarManager::FillDileptonHadron(dilepton, track, fValuesHadron); VarManager::FillDileptonTrackVertexing(event, lepton1, lepton2, track, fValuesHadron); // table to be written out for ML analysis - BmesonsTable(event.runNumber(), event.globalIndex(), event.timestamp(), fValuesHadron[VarManager::kPairMass], dilepton.mass(), fValuesHadron[VarManager::kDeltaMass], fValuesHadron[VarManager::kPairPt], fValuesHadron[VarManager::kPairEta], fValuesHadron[VarManager::kPairPhi], + BmesonsTable(event.runNumber(), event.globalIndex(), event.timestamp(), fValuesHadron[VarManager::kPairMass], dilepton.mass(), fValuesHadron[VarManager::kDeltaMass], fValuesHadron[VarManager::kPairPt], fValuesHadron[VarManager::kPairEta], fValuesHadron[VarManager::kPairPhi], fValuesHadron[VarManager::kPairRap], fValuesHadron[VarManager::kVertexingLxy], fValuesHadron[VarManager::kVertexingLxyz], fValuesHadron[VarManager::kVertexingLz], fValuesHadron[VarManager::kVertexingTauxy], fValuesHadron[VarManager::kVertexingTauz], fValuesHadron[VarManager::kCosPointingAngle], fValuesHadron[VarManager::kVertexingChi2PCA], From 888fcc3dc7e2b5d3a65bdbfa5396cf7dfbf6c736 Mon Sep 17 00:00:00 2001 From: ALICE Action Bot Date: Thu, 16 Oct 2025 13:07:06 +0000 Subject: [PATCH 5/5] Please consider the following formatting changes --- PWGDQ/Tasks/dqEfficiency_withAssoc.cxx | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx b/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx index 8cc447bfaeb..d272afd7cfb 100644 --- a/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx +++ b/PWGDQ/Tasks/dqEfficiency_withAssoc.cxx @@ -3795,7 +3795,7 @@ struct AnalysisDileptonTrack { DefineHistograms(fHistMan, Form("MCTruthGen_%s", sig->GetName()), ""); DefineHistograms(fHistMan, Form("MCTruthGenSel_%s", sig->GetName()), ""); } - for (auto& sig: fRecMCSignals) { + for (auto& sig : fRecMCSignals) { DefineHistograms(fHistMan, Form("MCTruthGenSelBR_%s", sig->GetName()), ""); DefineHistograms(fHistMan, Form("MCTruthGenSelBRAccepted_%s", sig->GetName()), ""); } @@ -4213,11 +4213,13 @@ struct AnalysisDileptonTrack { for (auto t1 : mcTrackIndices) { auto track1 = mcTracks.rawIteratorAt(*(&t1)); for (auto t2 : mcTrackIndices) { - if (t1 == t2 || t2 < t1) continue; + if (t1 == t2 || t2 < t1) + continue; auto track2 = mcTracks.rawIteratorAt(*(&t2)); for (auto t3 : mcTrackIndices) { - if (t3 == t1 || t3 == t2) continue; - auto track3 = mcTracks.rawIteratorAt(*(&t3)); + if (t3 == t1 || t3 == t2) + continue; + auto track3 = mcTracks.rawIteratorAt(*(&t3)); for (auto& sig : fRecMCSignals) { if (sig->CheckSignal(true, track1, track2, track3)) {