Skip to content
Open
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
c07dec8
add kDeltaPhiPair Histogram
Shunsuke-Kurita Dec 21, 2023
ac0dfc2
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Feb 13, 2024
9e6a154
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita May 25, 2024
a9caa8b
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita May 27, 2024
c35f72d
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Jun 28, 2024
e3272bb
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Jul 18, 2024
144bb96
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Jul 28, 2024
d2d6efc
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Jul 29, 2024
14f244d
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Jul 29, 2024
290f861
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Jul 29, 2024
c885d07
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Jul 31, 2024
607f2f6
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Oct 23, 2024
66f069c
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Oct 30, 2024
00c114a
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Nov 1, 2024
8c1915a
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Nov 6, 2024
faf8b2a
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Nov 15, 2024
36c3698
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Nov 26, 2024
d3f8e5e
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Dec 12, 2024
71cc0c2
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Apr 21, 2025
8bf7ea5
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Jun 8, 2025
9e39d01
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Jul 4, 2025
2c2c279
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Aug 28, 2025
2a1ca8b
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Nov 22, 2025
9ed16b2
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Dec 24, 2025
96e8aa2
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Jan 27, 2026
8b678f7
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Apr 13, 2026
db8356c
Merge branch 'AliceO2Group:master' into master
Shunsuke-Kurita Apr 15, 2026
c38d03a
Adding a processPP function
Shunsuke-Kurita Apr 16, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 14 additions & 3 deletions PWGDQ/TableProducer/tableMaker_withAssoc.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -233,7 +233,7 @@
// Zorro selection
struct : ConfigurableGroup {
Configurable<bool> fConfigRunZorro{"cfgRunZorro", false, "Enable event selection with zorro"};
Configurable<std::string> fConfigZorroTrigMask{"cfgZorroTriggerMask", "fDiMuon", "DQ Trigger masks: fSingleE,fLMeeIMR,fLMeeHMR,fDiElectron,fSingleMuLow,fSingleMuHigh,fDiMuon"};
Configurable<std::string> fConfigZorroTrigMask{"cfgZorroTriggerMask", "fDiMuon", "DQ Trigger masks: fSingleE,fLMeeIMR,fLMeeHMR,fDiElectron,fSingleMuLow,fSingleMuHigh,fDiMuon,fElectronMuon"};
Configurable<bool> fConfigRunZorroSel{"cfgRunZorroSel", false, "Select events with trigger mask"};
Configurable<uint64_t> fBcTolerance{"cfgBcTolerance", 100, "Number of BCs of margin for software triggers"};
} fConfigZorro;
Expand Down Expand Up @@ -467,11 +467,11 @@
}

// Check whether we have to define barrel or muon histograms
bool enableBarrelHistos = (context.mOptions.get<bool>("processPPWithFilter") || context.mOptions.get<bool>("processPPWithFilterBarrelOnly") || context.mOptions.get<bool>("processPPBarrelOnly") ||
bool enableBarrelHistos = (context.mOptions.get<bool>("processPP") || context.mOptions.get<bool>("processPPWithFilter") || context.mOptions.get<bool>("processPPWithFilterBarrelOnly") || context.mOptions.get<bool>("processPPBarrelOnly") ||
context.mOptions.get<bool>("processPbPb") || context.mOptions.get<bool>("processPbPbBarrelOnly") || context.mOptions.get<bool>("processPbPbBarrelOnlyWithV0Bits") || context.mOptions.get<bool>("processPbPbBarrelOnlyWithV0BitsNoTOF")) ||
context.mOptions.get<bool>("processPbPbWithFilterBarrelOnly") || context.mOptions.get<bool>("processPPBarrelOnlyWithV0s") || context.mOptions.get<bool>("processPbPbBarrelOnlyNoTOF");

bool enableMuonHistos = (context.mOptions.get<bool>("processPPWithFilter") || context.mOptions.get<bool>("processPPWithFilterMuonOnly") || context.mOptions.get<bool>("processPPWithFilterMuonMFT") || context.mOptions.get<bool>("processPPMuonOnly") || context.mOptions.get<bool>("processPPRealignedMuonOnly") || context.mOptions.get<bool>("processPPMuonMFT") || context.mOptions.get<bool>("processPPMuonMFTWithMultsExtra") ||
bool enableMuonHistos = (context.mOptions.get<bool>("processPP") || context.mOptions.get<bool>("processPPWithFilter") || context.mOptions.get<bool>("processPPWithFilterMuonOnly") || context.mOptions.get<bool>("processPPWithFilterMuonMFT") || context.mOptions.get<bool>("processPPMuonOnly") || context.mOptions.get<bool>("processPPRealignedMuonOnly") || context.mOptions.get<bool>("processPPMuonMFT") || context.mOptions.get<bool>("processPPMuonMFTWithMultsExtra") ||
context.mOptions.get<bool>("processPbPb") || context.mOptions.get<bool>("processPbPbMuonOnly") || context.mOptions.get<bool>("processPbPbMuonOnlyWithQvect") || context.mOptions.get<bool>("processPbPbRealignedMuonOnly") || context.mOptions.get<bool>("processPbPbMuonMFT"));

if (enableBarrelHistos) {
Expand All @@ -481,7 +481,7 @@
}
if (fConfigHistOutput.fConfigQA) {
// Barrel track histograms after selections; one histogram directory for each user specified selection
for (auto& cut : fTrackCuts) {

Check failure on line 484 in PWGDQ/TableProducer/tableMaker_withAssoc.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
histClasses += Form("TrackBarrel_%s;", cut->GetName());
}
}
Expand All @@ -500,7 +500,7 @@
}
if (fConfigHistOutput.fConfigQA) {
// Muon tracks after selections; one directory per selection
for (auto& muonCut : fMuonCuts) {

Check failure on line 503 in PWGDQ/TableProducer/tableMaker_withAssoc.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
histClasses += Form("Muons_%s;", muonCut->GetName());
}
}
Expand Down Expand Up @@ -546,7 +546,7 @@
TString addEvCutsStr = fConfigCuts.fConfigEventCutsJSON.value;
if (addEvCutsStr != "") {
std::vector<AnalysisCut*> addEvCuts = dqcuts::GetCutsFromJSON(addEvCutsStr.Data());
for (auto& cutIt : addEvCuts) {

Check failure on line 549 in PWGDQ/TableProducer/tableMaker_withAssoc.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
fEventCut->AddCut(cutIt);
}
}
Expand All @@ -563,7 +563,7 @@
TString addTrackCutsStr = fConfigCuts.fConfigTrackCutsJSON.value;
if (addTrackCutsStr != "") {
std::vector<AnalysisCut*> addTrackCuts = dqcuts::GetCutsFromJSON(addTrackCutsStr.Data());
for (auto& t : addTrackCuts) {

Check failure on line 566 in PWGDQ/TableProducer/tableMaker_withAssoc.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
fTrackCuts.push_back(reinterpret_cast<AnalysisCompositeCut*>(t));
}
}
Expand All @@ -580,7 +580,7 @@
TString addMuonCutsStr = fConfigCuts.fConfigMuonCutsJSON.value;
if (addMuonCutsStr != "") {
std::vector<AnalysisCut*> addMuonCuts = dqcuts::GetCutsFromJSON(addMuonCutsStr.Data());
for (auto& t : addMuonCuts) {

Check failure on line 583 in PWGDQ/TableProducer/tableMaker_withAssoc.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
fMuonCuts.push_back(reinterpret_cast<AnalysisCompositeCut*>(t));
}
}
Expand Down Expand Up @@ -785,7 +785,7 @@
// check if this collision is also within the short time range
bool isShort = (thisBC >= pastShortBC && thisBC < futureShortBC);
// loop over all collisions in this BC
for (auto& thisColl : colls) {

Check failure on line 788 in PWGDQ/TableProducer/tableMaker_withAssoc.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
// skip if this is the same collision
if (thisColl == collision) {
continue;
Expand Down Expand Up @@ -832,7 +832,7 @@
fOccup.oMedianTimeLongA[collision] = 0.0;
float sumMult = 0.0;
if (oTimeMapLongA.size() > 0) {
for (auto& [dt, mult] : oTimeMapLongA) {

Check failure on line 835 in PWGDQ/TableProducer/tableMaker_withAssoc.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
sumMult += mult;
if (sumMult > fOccup.oContribLongA[collision] / 2.0) {
fOccup.oMedianTimeLongA[collision] = dt;
Expand All @@ -843,7 +843,7 @@
fOccup.oMedianTimeLongC[collision] = 0.0;
sumMult = 0.0;
if (oTimeMapLongC.size() > 0) {
for (auto& [dt, mult] : oTimeMapLongC) {

Check failure on line 846 in PWGDQ/TableProducer/tableMaker_withAssoc.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
sumMult += mult;
if (sumMult > fOccup.oContribLongC[collision] / 2.0) {
fOccup.oMedianTimeLongC[collision] = dt;
Expand All @@ -854,7 +854,7 @@
fOccup.oMedianTimeShortA[collision] = 0.0;
sumMult = 0.0;
if (oTimeMapShortA.size() > 0) {
for (auto& [dt, mult] : oTimeMapShortA) {

Check failure on line 857 in PWGDQ/TableProducer/tableMaker_withAssoc.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
sumMult += mult;
if (sumMult > fOccup.oContribShortA[collision] / 2.0) {
fOccup.oMedianTimeShortA[collision] = dt;
Expand All @@ -865,7 +865,7 @@
fOccup.oMedianTimeShortC[collision] = 0.0;
sumMult = 0.0;
if (oTimeMapShortC.size() > 0) {
for (auto& [dt, mult] : oTimeMapShortC) {

Check failure on line 868 in PWGDQ/TableProducer/tableMaker_withAssoc.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[const-ref-in-for-loop]

Use constant references for non-modified iterators in range-based for loops.
sumMult += mult;
if (sumMult > fOccup.oContribShortC[collision] / 2.0) {
fOccup.oMedianTimeShortC[collision] = dt;
Expand Down Expand Up @@ -1837,6 +1837,16 @@
fullSkimming<gkEventFillMapWithMultsAndEventFilter, gkTrackFillMapWithCov, gkMuonFillMapWithCov, gkMFTFillMap>(collisions, bcs, nullptr, tracksBarrel, muons, mftTracks, trackAssocs, fwdTrackAssocs, mftAssocs, nullptr, nullptr, nullptr, nullptr);
}

// produce the full DQ skimmed data model for pp/p-Pb or UPC Pb-Pb (no centrality),
// no DQ event filter; use Zorro for event selection (cfgRunZorro, cfgZorroTriggerMask)
void processPP(MyEventsWithMultsExtra const& collisions, MyBCs const& bcs,
MyBarrelTracksWithCov const& tracksBarrel,
MyMuonsWithCov const& muons,
TrackAssoc const& trackAssocs, FwdTrackAssoc const& fwdTrackAssocs)
{
fullSkimming<gkEventFillMapWithMultsExtra, gkTrackFillMapWithCov, gkMuonFillMapWithCov, 0u>(collisions, bcs, nullptr, tracksBarrel, muons, nullptr, trackAssocs, fwdTrackAssocs, nullptr, nullptr, nullptr, nullptr, nullptr);
}

// produce the barrel-only DQ skimmed data model typically for pp/p-Pb or UPC Pb-Pb (no centrality), subscribe to the DQ event filter (filter-pp or filter-PbPb)
void processPPWithFilterBarrelOnly(MyEventsWithMultsAndFilter const& collisions, MyBCs const& bcs, aod::Zdcs& zdcs,
MyBarrelTracksWithCov const& tracksBarrel,
Expand Down Expand Up @@ -2015,6 +2025,7 @@
(reinterpret_cast<TH2D*>(fStatsList->At(kStatsEvent)))->Fill(0.0, static_cast<float>(o2::aod::evsel::kNsel));
}

PROCESS_SWITCH(TableMaker, processPP, "Build full DQ skimmed data model for pp/p-Pb w/o event filtering (use Zorro)", false);
PROCESS_SWITCH(TableMaker, processPPWithFilter, "Build full DQ skimmed data model typically for pp/p-Pb and UPC Pb-Pb, w/ event filtering", false);
PROCESS_SWITCH(TableMaker, processPPWithFilterBarrelOnly, "Build barrel only DQ skimmed data model typically for pp/p-Pb and UPC Pb-Pb, w/ event filtering", false);
PROCESS_SWITCH(TableMaker, processPPWithFilterMuonOnly, "Build muon only DQ skimmed data model typically for pp/p-Pb and UPC Pb-Pb, w/ event filtering", false);
Expand Down
Loading