From a2c2cf46261f6f4c4794fec0e81764e54cd758d6 Mon Sep 17 00:00:00 2001 From: ffionda Date: Tue, 4 Oct 2022 14:10:04 +0200 Subject: [PATCH 1/3] add process function for vertexing (DQ barrel) --- PWGDQ/Tasks/dqEfficiency.cxx | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/PWGDQ/Tasks/dqEfficiency.cxx b/PWGDQ/Tasks/dqEfficiency.cxx index cf6c238a156..f57d72c0999 100644 --- a/PWGDQ/Tasks/dqEfficiency.cxx +++ b/PWGDQ/Tasks/dqEfficiency.cxx @@ -79,7 +79,7 @@ constexpr static uint32_t gkEventFillMap = VarManager::ObjTypes::ReducedEvent | constexpr static uint32_t gkMCEventFillMap = VarManager::ObjTypes::ReducedEventMC; constexpr static uint32_t gkEventFillMapWithCov = VarManager::ObjTypes::ReducedEvent | VarManager::ObjTypes::ReducedEventExtended | VarManager::ObjTypes::ReducedEventVtxCov; constexpr static uint32_t gkTrackFillMap = VarManager::ObjTypes::ReducedTrack | VarManager::ObjTypes::ReducedTrackBarrel | VarManager::ObjTypes::ReducedTrackBarrelPID; -//constexpr static uint32_t gkTrackFillMapWithCov = VarManager::ObjTypes::ReducedTrack | VarManager::ObjTypes::ReducedTrackBarrel | VarManager::ObjTypes::ReducedTrackBarrelCov | VarManager::ObjTypes::ReducedTrackBarrelPID; +constexpr static uint32_t gkTrackFillMapWithCov = VarManager::ObjTypes::ReducedTrack | VarManager::ObjTypes::ReducedTrackBarrel | VarManager::ObjTypes::ReducedTrackBarrelCov | VarManager::ObjTypes::ReducedTrackBarrelPID; constexpr static uint32_t gkMuonFillMap = VarManager::ObjTypes::ReducedMuon | VarManager::ObjTypes::ReducedMuonExtra; constexpr static uint32_t gkMuonFillMapWithCov = VarManager::ObjTypes::ReducedMuon | VarManager::ObjTypes::ReducedMuonExtra | VarManager::ObjTypes::ReducedMuonCov; constexpr static uint32_t gkParticleMCFillMap = VarManager::ObjTypes::ParticleMC; @@ -506,7 +506,7 @@ struct AnalysisSameEventPairing { void init(o2::framework::InitContext& context) { - bool enableBarrelHistos = context.mOptions.get("processJpsiToEESkimmed"); + bool enableBarrelHistos = context.mOptions.get("processJpsiToEESkimmed") || context.mOptions.get("processJpsiToEEVertexingSkimmed"); bool enableMuonHistos = context.mOptions.get("processJpsiToMuMuSkimmed") || context.mOptions.get("processJpsiToMuMuVertexingSkimmed"); //bool enableBarrelMuonHistos = context.mOptions.get("processElectronMuonSkimmed"); @@ -797,6 +797,22 @@ struct AnalysisSameEventPairing { runMCGen(groupedMCTracks); } + void processJpsiToEEVertexingSkimmed(soa::Filtered::iterator const& event, + soa::Filtered const& tracks, + ReducedMCEvents const& eventsMC, ReducedMCTracks const& tracksMC) + { + // Reset the fValues array + VarManager::ResetValues(0, VarManager::kNVars); + VarManager::FillEvent(event); + VarManager::FillEvent(event.reducedMCevent()); + + runPairing(event, tracks, tracks, eventsMC, tracksMC); + auto groupedMCTracks = tracksMC.sliceBy(perReducedMcEvent, event.reducedMCevent().globalIndex()); + groupedMCTracks.bindInternalIndicesTo(&tracksMC); + runMCGen(groupedMCTracks); + } + + void processJpsiToMuMuSkimmed(soa::Filtered::iterator const& event, soa::Filtered const& muons, ReducedMCEvents const& eventsMC, ReducedMCTracks const& tracksMC) @@ -845,6 +861,7 @@ struct AnalysisSameEventPairing { } PROCESS_SWITCH(AnalysisSameEventPairing, processJpsiToEESkimmed, "Run barrel barrel pairing on DQ skimmed tracks", false); + PROCESS_SWITCH(AnalysisSameEventPairing, processJpsiToEEVertexingSkimmed, "Run barrel barrel pairing on DQ skimmed tracks including vertexing", false); PROCESS_SWITCH(AnalysisSameEventPairing, processJpsiToMuMuSkimmed, "Run muon muon pairing on DQ skimmed muons", false); PROCESS_SWITCH(AnalysisSameEventPairing, processJpsiToMuMuVertexingSkimmed, "Run muon muon pairing on DQ skimmed muons including vertexing", false); //PROCESS_SWITCH(AnalysisSameEventPairing, processElectronMuonSkimmed, "Run barrel muon pairing on DQ skimmed tracks", false); From 0ee4c7b2b4147c10fa2c2aa3239f429c072036bd Mon Sep 17 00:00:00 2001 From: ffionda Date: Thu, 13 Oct 2022 17:48:21 +0200 Subject: [PATCH 2/3] resolve clang issues --- PWGDQ/Tasks/dqEfficiency.cxx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PWGDQ/Tasks/dqEfficiency.cxx b/PWGDQ/Tasks/dqEfficiency.cxx index f57d72c0999..702054d1d29 100644 --- a/PWGDQ/Tasks/dqEfficiency.cxx +++ b/PWGDQ/Tasks/dqEfficiency.cxx @@ -798,7 +798,7 @@ struct AnalysisSameEventPairing { } void processJpsiToEEVertexingSkimmed(soa::Filtered::iterator const& event, - soa::Filtered const& tracks, + soa::Filtered const& tracks, ReducedMCEvents const& eventsMC, ReducedMCTracks const& tracksMC) { // Reset the fValues array From e117db60820db027849481789cfc69e08ce2f39e Mon Sep 17 00:00:00 2001 From: ffionda Date: Thu, 13 Oct 2022 18:19:15 +0200 Subject: [PATCH 3/3] fix all clang issues --- PWGDQ/Tasks/dqEfficiency.cxx | 36 +++++++++++++++++------------------- 1 file changed, 17 insertions(+), 19 deletions(-) diff --git a/PWGDQ/Tasks/dqEfficiency.cxx b/PWGDQ/Tasks/dqEfficiency.cxx index 702054d1d29..b9ecba1e2f7 100644 --- a/PWGDQ/Tasks/dqEfficiency.cxx +++ b/PWGDQ/Tasks/dqEfficiency.cxx @@ -51,14 +51,14 @@ namespace dqanalysisflags DECLARE_SOA_COLUMN(IsEventSelected, isEventSelected, int); DECLARE_SOA_COLUMN(IsBarrelSelected, isBarrelSelected, int); DECLARE_SOA_COLUMN(IsMuonSelected, isMuonSelected, int); -} // namespace reducedevent +} // namespace dqanalysisflags DECLARE_SOA_TABLE(EventCuts, "AOD", "EVENTCUTS", dqanalysisflags::IsEventSelected); DECLARE_SOA_TABLE(BarrelTrackCuts, "AOD", "BARRELTRACKCUTS", dqanalysisflags::IsBarrelSelected); DECLARE_SOA_TABLE(MuonTrackCuts, "AOD", "DQANAMUONCUTS", dqanalysisflags::IsMuonSelected); } // namespace o2::aod -//using MyEvents = soa::Join; +// using MyEvents = soa::Join; using MyEvents = soa::Join; using MyEventsSelected = soa::Join; // TODO: make secondary vertexing optional @@ -382,7 +382,7 @@ struct AnalysisMuonSelection { template void runSelection(TEvent const& event, TMuons const& muons, TEventsMC const& eventsMC, TMuonsMC const& muonsMC) { - //cout << "Event ######################################" << endl; + // cout << "Event ######################################" << endl; VarManager::ResetValues(0, VarManager::kNMCParticleVariables); // fill event information which might be needed in histograms that combine track and event properties VarManager::FillEvent(event); @@ -508,7 +508,7 @@ struct AnalysisSameEventPairing { { bool enableBarrelHistos = context.mOptions.get("processJpsiToEESkimmed") || context.mOptions.get("processJpsiToEEVertexingSkimmed"); bool enableMuonHistos = context.mOptions.get("processJpsiToMuMuSkimmed") || context.mOptions.get("processJpsiToMuMuVertexingSkimmed"); - //bool enableBarrelMuonHistos = context.mOptions.get("processElectronMuonSkimmed"); + // bool enableBarrelMuonHistos = context.mOptions.get("processElectronMuonSkimmed"); VarManager::SetDefaultVarNames(); fHistMan = new HistogramManager("analysisHistos", "aa", VarManager::kNVars); @@ -566,8 +566,7 @@ struct AnalysisSameEventPairing { std::vector names = { Form("PairsMuonSEPM_%s", objArray->At(icut)->GetName()), Form("PairsMuonSEPP_%s", objArray->At(icut)->GetName()), - Form("PairsMuonSEMM_%s", objArray->At(icut)->GetName()) - }; + Form("PairsMuonSEMM_%s", objArray->At(icut)->GetName())}; histNames += Form("%s;%s;%s;", names[0].Data(), names[1].Data(), names[2].Data()); fMuonHistNames.push_back(names); std::vector mcSigClasses; @@ -579,9 +578,9 @@ struct AnalysisSameEventPairing { } // end loop over MC signals } fMuonHistNamesMCmatched.push_back(mcSigClasses); - } // end loop over cuts - } // end if(cutNames.IsNull()) - } // end if processMuon + } // end loop over cuts + } // end if(cutNames.IsNull()) + } // end if processMuon // NOTE: For the electron-muon pairing, the policy is that the user specifies n track and n muon cuts via configurables // So for each barrel cut there is a corresponding muon cut @@ -634,7 +633,7 @@ struct AnalysisSameEventPairing { if (sig->GetNProngs() == 1) { // NOTE: 1-prong signals required fGenMCSignals.push_back(*sig); histNames += Form("MCTruthGen_%s;", sig->GetName()); // TODO: Add these names to a std::vector to avoid using Form in the process function - } else if (sig->GetNProngs() == 2) { // NOTE: 2-prong signals required + } else if (sig->GetNProngs() == 2) { // NOTE: 2-prong signals required fGenMCSignals.push_back(*sig); histNames += Form("MCTruthGenPair_%s;", sig->GetName()); } @@ -750,7 +749,7 @@ struct AnalysisSameEventPairing { { // loop over mc stack and fill histograms for pure MC truth signals // group all the MC tracks which belong to the MC event corresponding to the current reconstructed event - //auto groupedMCTracks = tracksMC.sliceBy(aod::reducedtrackMC::reducedMCeventId, event.reducedMCevent().globalIndex()); + // auto groupedMCTracks = tracksMC.sliceBy(aod::reducedtrackMC::reducedMCeventId, event.reducedMCevent().globalIndex()); for (auto& mctrack : groupedMCTracks) { VarManager::FillTrack(mctrack); // NOTE: Signals are checked here mostly based on the skimmed MC stack, so depending on the requested signal, the stack could be incomplete. @@ -777,7 +776,7 @@ struct AnalysisSameEventPairing { fHistMan->FillHistClass(Form("MCTruthGenPair_%s", sig.GetName()), VarManager::fgValues); } } - } //end of true pairing loop + } // end of true pairing loop } // end runMCGen Preslice perReducedMcEvent = aod::reducedtrackMC::reducedMCeventId; @@ -812,7 +811,6 @@ struct AnalysisSameEventPairing { runMCGen(groupedMCTracks); } - void processJpsiToMuMuSkimmed(soa::Filtered::iterator const& event, soa::Filtered const& muons, ReducedMCEvents const& eventsMC, ReducedMCTracks const& tracksMC) @@ -864,7 +862,7 @@ struct AnalysisSameEventPairing { PROCESS_SWITCH(AnalysisSameEventPairing, processJpsiToEEVertexingSkimmed, "Run barrel barrel pairing on DQ skimmed tracks including vertexing", false); PROCESS_SWITCH(AnalysisSameEventPairing, processJpsiToMuMuSkimmed, "Run muon muon pairing on DQ skimmed muons", false); PROCESS_SWITCH(AnalysisSameEventPairing, processJpsiToMuMuVertexingSkimmed, "Run muon muon pairing on DQ skimmed muons including vertexing", false); - //PROCESS_SWITCH(AnalysisSameEventPairing, processElectronMuonSkimmed, "Run barrel muon pairing on DQ skimmed tracks", false); + // PROCESS_SWITCH(AnalysisSameEventPairing, processElectronMuonSkimmed, "Run barrel muon pairing on DQ skimmed tracks", false); PROCESS_SWITCH(AnalysisSameEventPairing, processDummy, "Dummy process function", false); }; @@ -875,8 +873,8 @@ struct AnalysisDileptonTrack { Configurable fConfigTrackCuts{"cfgLeptonCuts", "", "Comma separated list of barrel track cuts"}; Configurable fConfigFillCandidateTable{"cfgFillCandidateTable", false, "Produce a single flat tables with all relevant information dilepton-track candidates"}; Filter eventFilter = aod::dqanalysisflags::isEventSelected == 1; - //Filter dileptonFilter = aod::reducedpair::mass > 2.92f && aod::reducedpair::mass < 3.16f && aod::reducedpair::sign == 0; - //Filter dileptonFilter = aod::reducedpair::mass > 2.6f && aod::reducedpair::mass < 3.5f && aod::reducedpair::sign == 0; + // Filter dileptonFilter = aod::reducedpair::mass > 2.92f && aod::reducedpair::mass < 3.16f && aod::reducedpair::sign == 0; + // Filter dileptonFilter = aod::reducedpair::mass > 2.6f && aod::reducedpair::mass < 3.5f && aod::reducedpair::sign == 0; Configurable fConfigMCRecSignals{"cfgBarrelMCRecSignals", "", "Comma separated list of MC signals (reconstructed)"}; Configurable fConfigMCGenSignals{"cfgBarrelMCGenSignals", "", "Comma separated list of MC signals (generated)"}; @@ -916,9 +914,9 @@ struct AnalysisDileptonTrack { // TODO: Create separate histogram directories for each selection used in the creation of the dileptons // TODO: Implement possibly multiple selections for the associated track ? if (context.mOptions.get("processDimuonMuonSkimmed")) { - //DefineHistograms(fHistMan, "DileptonsSelected;DileptonTrackInvMass;DileptonsSelected_matchedMC;DileptonTrackInvMass_matchedMC;"); // define all histograms - //VarManager::SetUseVars(fHistMan->GetUsedVars()); - //fOutputList.setObject(fHistMan->GetMainHistogramList()); + // DefineHistograms(fHistMan, "DileptonsSelected;DileptonTrackInvMass;DileptonsSelected_matchedMC;DileptonTrackInvMass_matchedMC;"); // define all histograms + // VarManager::SetUseVars(fHistMan->GetUsedVars()); + // fOutputList.setObject(fHistMan->GetMainHistogramList()); histNames += "DileptonsSelected;DileptonTrackInvMass;";