Skip to content

[PWGEM] PhotonMeson: merge EventHistograms into EMPhotonEventCut - #18590

Open
mhemmer-cern wants to merge 2 commits into
AliceO2Group:masterfrom
mhemmer-cern:pm-event-selection
Open

mhemmer-cern wants to merge 2 commits into
AliceO2Group:masterfrom
mhemmer-cern:pm-event-selection

Conversation

@mhemmer-cern

Copy link
Copy Markdown
Collaborator

Move the event QA histograms from Utils/EventHistograms.h into EMPhotonEventCut so the histograms use the cut's actual settings. EventHistograms.h is removed; all users now call the member functions addEventHistograms(), fillEventInfo<0|1>() and fillAccepted().

EMPhotonEventCut:

  • Add track and FT0C occupancy cuts (SetTrackOccupancyRange, SetFT0COccupancyRange), applied in IsSelected(). Default is no cut. Skipped at compile time if the event table has no occupancy columns.
  • Add an optional Q vector cut (SetRequireGoodQvec, SetQvecDetectors, SetQvecHarmonic, SetMaxQvec). Off by default and skipped at compile time if the event table has no Q vector columns.
  • hCollisionCounter: fill the occupancy bins (10, 11), add a "good Q vector" bin (14), move "accepted" to bin 15. The Z vertex bin now uses the configured range instead of a fixed |z| < 10 cm.
  • Fix: all tasks filled "accepted" at bin 12, which is the "EMC MB Readout" bin.

New Utils/EventUtilities.h (namespace o2::aod::pwgem::pm::utils::event) with the QvecEstimator/Harmonics enums, getQvec(), isQvecGood() and compile-time checks for Q vector and occupancy columns.

Tasks:

  • Pass the occupancy configurables to the event cut and remove the duplicated manual occupancy checks. Collision Filters are kept.
  • taskPi0FlowEMC, taskPhotonFlow, taskFlowReso: remove the local Q vector enums, getQvec switch, isQvecGood and getAllQvec, and enable the Q vector cut through the event cut. processPCMMixed in taskPi0FlowEMC now also applies the Q vector check, like the other mixed-event processes.
  • taskFlowReso: cfgTrackOccupancyMin/Max are now applied (they were defined but unused).
  • Call DefineEMEventCut() before booking the histograms in Pi0EtaToGammaGamma(MC).h and TaggingPi0(MC).h.
  • calibTaskEmc: remove the unused Q vector and harmonics enums.

@github-actions github-actions Bot added pwgem photon Photon and neutral meson PAG label labels Nov 4, 2026
@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown

O2 linter results: ❌ 0 errors, ⚠️ 1199 warnings, 🔕 176 disabled

jokonig
jokonig previously approved these changes Nov 4, 2026

@jokonig jokonig left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Thanks a lot for the work!

@alibuild

This comment was marked as outdated.

Move the event QA histograms from Utils/EventHistograms.h into
EMPhotonEventCut so the histograms use the cut's actual settings.
EventHistograms.h is removed; all users now call the member functions
addEventHistograms(), fillEventInfo<0|1>() and fillAccepted().

EMPhotonEventCut:
- Add track and FT0C occupancy cuts (SetTrackOccupancyRange,
  SetFT0COccupancyRange), applied in IsSelected(). Default is no cut.
  Skipped at compile time if the event table has no occupancy columns.
- Add an optional Q vector cut (SetRequireGoodQvec, SetQvecDetectors,
  SetQvecHarmonic, SetMaxQvec). Off by default and skipped at compile
  time if the event table has no Q vector columns.
- hCollisionCounter: fill the occupancy bins (10, 11), add a
  "good Q vector" bin (14), move "accepted" to bin 15. The Z vertex bin
  now uses the configured range instead of a fixed |z| < 10 cm.
- Fix: all tasks filled "accepted" at bin 12, which is the
  "EMC MB Readout" bin.

New Utils/EventUtilities.h (namespace o2::aod::pwgem::pm::utils::event)
with the QvecEstimator/Harmonics enums, getQvec(), isQvecGood() and
compile-time checks for Q vector and occupancy columns.

Tasks:
- Pass the occupancy configurables to the event cut and remove the
  duplicated manual occupancy checks. Collision Filters are kept.
- taskPi0FlowEMC, taskPhotonFlow, taskFlowReso: remove the local Q
  vector enums, getQvec switch, isQvecGood and getAllQvec, and enable
  the Q vector cut through the event cut. processPCMMixed in
  taskPi0FlowEMC now also applies the Q vector check, like the other
  mixed-event processes.
- taskFlowReso: cfgTrackOccupancyMin/Max are now applied (they were
  defined but unused).
- Call DefineEMEventCut() before booking the histograms in
  Pi0EtaToGammaGamma(MC).h and TaggingPi0(MC).h.
- calibTaskEmc: remove the unused Q vector and harmonics enums.
@alibuild

This comment was marked as outdated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

photon Photon and neutral meson PAG label pwgem

Development

Successfully merging this pull request may close these issues.

3 participants