Skip to content

Commit d2a66fe

Browse files
authored
add process function for vertexing (DQ barrel) (#1325)
* add process function for vertexing (DQ barrel) * resolve clang issues * fix all clang issues
1 parent 3e9b266 commit d2a66fe

1 file changed

Lines changed: 35 additions & 20 deletions

File tree

PWGDQ/Tasks/dqEfficiency.cxx

Lines changed: 35 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -51,14 +51,14 @@ namespace dqanalysisflags
5151
DECLARE_SOA_COLUMN(IsEventSelected, isEventSelected, int);
5252
DECLARE_SOA_COLUMN(IsBarrelSelected, isBarrelSelected, int);
5353
DECLARE_SOA_COLUMN(IsMuonSelected, isMuonSelected, int);
54-
} // namespace reducedevent
54+
} // namespace dqanalysisflags
5555

5656
DECLARE_SOA_TABLE(EventCuts, "AOD", "EVENTCUTS", dqanalysisflags::IsEventSelected);
5757
DECLARE_SOA_TABLE(BarrelTrackCuts, "AOD", "BARRELTRACKCUTS", dqanalysisflags::IsBarrelSelected);
5858
DECLARE_SOA_TABLE(MuonTrackCuts, "AOD", "DQANAMUONCUTS", dqanalysisflags::IsMuonSelected);
5959
} // namespace o2::aod
6060

61-
//using MyEvents = soa::Join<aod::ReducedEvents, aod::ReducedEventsExtended, aod::ReducedEventsMC>;
61+
// using MyEvents = soa::Join<aod::ReducedEvents, aod::ReducedEventsExtended, aod::ReducedEventsMC>;
6262
using MyEvents = soa::Join<aod::ReducedEvents, aod::ReducedEventsExtended, aod::ReducedMCEventLabels>;
6363
using MyEventsSelected = soa::Join<aod::ReducedEvents, aod::ReducedEventsExtended, aod::EventCuts, aod::ReducedMCEventLabels>;
6464
// TODO: make secondary vertexing optional
@@ -79,7 +79,7 @@ constexpr static uint32_t gkEventFillMap = VarManager::ObjTypes::ReducedEvent |
7979
constexpr static uint32_t gkMCEventFillMap = VarManager::ObjTypes::ReducedEventMC;
8080
constexpr static uint32_t gkEventFillMapWithCov = VarManager::ObjTypes::ReducedEvent | VarManager::ObjTypes::ReducedEventExtended | VarManager::ObjTypes::ReducedEventVtxCov;
8181
constexpr static uint32_t gkTrackFillMap = VarManager::ObjTypes::ReducedTrack | VarManager::ObjTypes::ReducedTrackBarrel | VarManager::ObjTypes::ReducedTrackBarrelPID;
82-
//constexpr static uint32_t gkTrackFillMapWithCov = VarManager::ObjTypes::ReducedTrack | VarManager::ObjTypes::ReducedTrackBarrel | VarManager::ObjTypes::ReducedTrackBarrelCov | VarManager::ObjTypes::ReducedTrackBarrelPID;
82+
constexpr static uint32_t gkTrackFillMapWithCov = VarManager::ObjTypes::ReducedTrack | VarManager::ObjTypes::ReducedTrackBarrel | VarManager::ObjTypes::ReducedTrackBarrelCov | VarManager::ObjTypes::ReducedTrackBarrelPID;
8383
constexpr static uint32_t gkMuonFillMap = VarManager::ObjTypes::ReducedMuon | VarManager::ObjTypes::ReducedMuonExtra;
8484
constexpr static uint32_t gkMuonFillMapWithCov = VarManager::ObjTypes::ReducedMuon | VarManager::ObjTypes::ReducedMuonExtra | VarManager::ObjTypes::ReducedMuonCov;
8585
constexpr static uint32_t gkParticleMCFillMap = VarManager::ObjTypes::ParticleMC;
@@ -382,7 +382,7 @@ struct AnalysisMuonSelection {
382382
template <uint32_t TEventFillMap, uint32_t TEventMCFillMap, uint32_t TMuonFillMap, uint32_t TMuonMCFillMap, typename TEvent, typename TMuons, typename TEventsMC, typename TMuonsMC>
383383
void runSelection(TEvent const& event, TMuons const& muons, TEventsMC const& eventsMC, TMuonsMC const& muonsMC)
384384
{
385-
//cout << "Event ######################################" << endl;
385+
// cout << "Event ######################################" << endl;
386386
VarManager::ResetValues(0, VarManager::kNMCParticleVariables);
387387
// fill event information which might be needed in histograms that combine track and event properties
388388
VarManager::FillEvent<TEventFillMap>(event);
@@ -506,9 +506,9 @@ struct AnalysisSameEventPairing {
506506

507507
void init(o2::framework::InitContext& context)
508508
{
509-
bool enableBarrelHistos = context.mOptions.get<bool>("processJpsiToEESkimmed");
509+
bool enableBarrelHistos = context.mOptions.get<bool>("processJpsiToEESkimmed") || context.mOptions.get<bool>("processJpsiToEEVertexingSkimmed");
510510
bool enableMuonHistos = context.mOptions.get<bool>("processJpsiToMuMuSkimmed") || context.mOptions.get<bool>("processJpsiToMuMuVertexingSkimmed");
511-
//bool enableBarrelMuonHistos = context.mOptions.get<bool>("processElectronMuonSkimmed");
511+
// bool enableBarrelMuonHistos = context.mOptions.get<bool>("processElectronMuonSkimmed");
512512

513513
VarManager::SetDefaultVarNames();
514514
fHistMan = new HistogramManager("analysisHistos", "aa", VarManager::kNVars);
@@ -566,8 +566,7 @@ struct AnalysisSameEventPairing {
566566
std::vector<TString> names = {
567567
Form("PairsMuonSEPM_%s", objArray->At(icut)->GetName()),
568568
Form("PairsMuonSEPP_%s", objArray->At(icut)->GetName()),
569-
Form("PairsMuonSEMM_%s", objArray->At(icut)->GetName())
570-
};
569+
Form("PairsMuonSEMM_%s", objArray->At(icut)->GetName())};
571570
histNames += Form("%s;%s;%s;", names[0].Data(), names[1].Data(), names[2].Data());
572571
fMuonHistNames.push_back(names);
573572
std::vector<TString> mcSigClasses;
@@ -579,9 +578,9 @@ struct AnalysisSameEventPairing {
579578
} // end loop over MC signals
580579
}
581580
fMuonHistNamesMCmatched.push_back(mcSigClasses);
582-
} // end loop over cuts
583-
} // end if(cutNames.IsNull())
584-
} // end if processMuon
581+
} // end loop over cuts
582+
} // end if(cutNames.IsNull())
583+
} // end if processMuon
585584

586585
// NOTE: For the electron-muon pairing, the policy is that the user specifies n track and n muon cuts via configurables
587586
// So for each barrel cut there is a corresponding muon cut
@@ -634,7 +633,7 @@ struct AnalysisSameEventPairing {
634633
if (sig->GetNProngs() == 1) { // NOTE: 1-prong signals required
635634
fGenMCSignals.push_back(*sig);
636635
histNames += Form("MCTruthGen_%s;", sig->GetName()); // TODO: Add these names to a std::vector to avoid using Form in the process function
637-
} else if (sig->GetNProngs() == 2) { // NOTE: 2-prong signals required
636+
} else if (sig->GetNProngs() == 2) { // NOTE: 2-prong signals required
638637
fGenMCSignals.push_back(*sig);
639638
histNames += Form("MCTruthGenPair_%s;", sig->GetName());
640639
}
@@ -750,7 +749,7 @@ struct AnalysisSameEventPairing {
750749
{
751750
// loop over mc stack and fill histograms for pure MC truth signals
752751
// group all the MC tracks which belong to the MC event corresponding to the current reconstructed event
753-
//auto groupedMCTracks = tracksMC.sliceBy(aod::reducedtrackMC::reducedMCeventId, event.reducedMCevent().globalIndex());
752+
// auto groupedMCTracks = tracksMC.sliceBy(aod::reducedtrackMC::reducedMCeventId, event.reducedMCevent().globalIndex());
754753
for (auto& mctrack : groupedMCTracks) {
755754
VarManager::FillTrack<gkParticleMCFillMap>(mctrack);
756755
// 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 {
777776
fHistMan->FillHistClass(Form("MCTruthGenPair_%s", sig.GetName()), VarManager::fgValues);
778777
}
779778
}
780-
} //end of true pairing loop
779+
} // end of true pairing loop
781780
} // end runMCGen
782781

783782
Preslice<ReducedMCTracks> perReducedMcEvent = aod::reducedtrackMC::reducedMCeventId;
@@ -797,6 +796,21 @@ struct AnalysisSameEventPairing {
797796
runMCGen(groupedMCTracks);
798797
}
799798

799+
void processJpsiToEEVertexingSkimmed(soa::Filtered<MyEventsVtxCovSelected>::iterator const& event,
800+
soa::Filtered<MyBarrelTracksSelectedWithCov> const& tracks,
801+
ReducedMCEvents const& eventsMC, ReducedMCTracks const& tracksMC)
802+
{
803+
// Reset the fValues array
804+
VarManager::ResetValues(0, VarManager::kNVars);
805+
VarManager::FillEvent<gkEventFillMapWithCov>(event);
806+
VarManager::FillEvent<gkMCEventFillMap>(event.reducedMCevent());
807+
808+
runPairing<VarManager::kJpsiToEE, gkEventFillMapWithCov, gkMCEventFillMap, gkTrackFillMapWithCov>(event, tracks, tracks, eventsMC, tracksMC);
809+
auto groupedMCTracks = tracksMC.sliceBy(perReducedMcEvent, event.reducedMCevent().globalIndex());
810+
groupedMCTracks.bindInternalIndicesTo(&tracksMC);
811+
runMCGen(groupedMCTracks);
812+
}
813+
800814
void processJpsiToMuMuSkimmed(soa::Filtered<MyEventsSelected>::iterator const& event,
801815
soa::Filtered<MyMuonTracksSelected> const& muons,
802816
ReducedMCEvents const& eventsMC, ReducedMCTracks const& tracksMC)
@@ -845,9 +859,10 @@ struct AnalysisSameEventPairing {
845859
}
846860

847861
PROCESS_SWITCH(AnalysisSameEventPairing, processJpsiToEESkimmed, "Run barrel barrel pairing on DQ skimmed tracks", false);
862+
PROCESS_SWITCH(AnalysisSameEventPairing, processJpsiToEEVertexingSkimmed, "Run barrel barrel pairing on DQ skimmed tracks including vertexing", false);
848863
PROCESS_SWITCH(AnalysisSameEventPairing, processJpsiToMuMuSkimmed, "Run muon muon pairing on DQ skimmed muons", false);
849864
PROCESS_SWITCH(AnalysisSameEventPairing, processJpsiToMuMuVertexingSkimmed, "Run muon muon pairing on DQ skimmed muons including vertexing", false);
850-
//PROCESS_SWITCH(AnalysisSameEventPairing, processElectronMuonSkimmed, "Run barrel muon pairing on DQ skimmed tracks", false);
865+
// PROCESS_SWITCH(AnalysisSameEventPairing, processElectronMuonSkimmed, "Run barrel muon pairing on DQ skimmed tracks", false);
851866
PROCESS_SWITCH(AnalysisSameEventPairing, processDummy, "Dummy process function", false);
852867
};
853868

@@ -858,8 +873,8 @@ struct AnalysisDileptonTrack {
858873
Configurable<string> fConfigTrackCuts{"cfgLeptonCuts", "", "Comma separated list of barrel track cuts"};
859874
Configurable<bool> fConfigFillCandidateTable{"cfgFillCandidateTable", false, "Produce a single flat tables with all relevant information dilepton-track candidates"};
860875
Filter eventFilter = aod::dqanalysisflags::isEventSelected == 1;
861-
//Filter dileptonFilter = aod::reducedpair::mass > 2.92f && aod::reducedpair::mass < 3.16f && aod::reducedpair::sign == 0;
862-
//Filter dileptonFilter = aod::reducedpair::mass > 2.6f && aod::reducedpair::mass < 3.5f && aod::reducedpair::sign == 0;
876+
// Filter dileptonFilter = aod::reducedpair::mass > 2.92f && aod::reducedpair::mass < 3.16f && aod::reducedpair::sign == 0;
877+
// Filter dileptonFilter = aod::reducedpair::mass > 2.6f && aod::reducedpair::mass < 3.5f && aod::reducedpair::sign == 0;
863878

864879
Configurable<std::string> fConfigMCRecSignals{"cfgBarrelMCRecSignals", "", "Comma separated list of MC signals (reconstructed)"};
865880
Configurable<std::string> fConfigMCGenSignals{"cfgBarrelMCGenSignals", "", "Comma separated list of MC signals (generated)"};
@@ -899,9 +914,9 @@ struct AnalysisDileptonTrack {
899914
// TODO: Create separate histogram directories for each selection used in the creation of the dileptons
900915
// TODO: Implement possibly multiple selections for the associated track ?
901916
if (context.mOptions.get<bool>("processDimuonMuonSkimmed")) {
902-
//DefineHistograms(fHistMan, "DileptonsSelected;DileptonTrackInvMass;DileptonsSelected_matchedMC;DileptonTrackInvMass_matchedMC;"); // define all histograms
903-
//VarManager::SetUseVars(fHistMan->GetUsedVars());
904-
//fOutputList.setObject(fHistMan->GetMainHistogramList());
917+
// DefineHistograms(fHistMan, "DileptonsSelected;DileptonTrackInvMass;DileptonsSelected_matchedMC;DileptonTrackInvMass_matchedMC;"); // define all histograms
918+
// VarManager::SetUseVars(fHistMan->GetUsedVars());
919+
// fOutputList.setObject(fHistMan->GetMainHistogramList());
905920

906921
histNames += "DileptonsSelected;DileptonTrackInvMass;";
907922

0 commit comments

Comments
 (0)