Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
6 changes: 4 additions & 2 deletions PWGCF/Femto/Core/cascadeHistManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -291,9 +291,11 @@ std::map<CascadeHist, std::vector<o2::framework::AxisSpec>> makeCascadeMcQaHistS
#undef CASCADE_HIST_MC_QA_MAP

constexpr char PrefixXiQa[] = "XiQA/";
constexpr char PrefixXi[] = "Xi/";
constexpr char PrefixXiSe[] = "Xi/SE/";
constexpr char PrefixXiMe[] = "Xi/ME/";
constexpr char PrefixOmegaQa[] = "OmegaQa/";
constexpr char PrefixOmega[] = "Omega/";
constexpr char PrefixOmegaSe[] = "Omega/SE/";
constexpr char PrefixOmegaMe[] = "Omega/ME/";

constexpr char PrefixLambdaCascade[] = "LambdaCascadeQa/";

Expand Down
11 changes: 8 additions & 3 deletions PWGCF/Femto/Core/charmHadronHistManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -291,10 +291,15 @@ auto makeLcMcQaHistSpecMap(const T1& confBinningAnalysis, const T2& confBinningQ
#undef LC_HIST_QA_MAP

// prefixes for the output directories in the histogram registry
constexpr char PrefixD01[] = "D01/";
constexpr char PrefixD02[] = "D02/";
// same-event / mixed-event siblings: single-candidate histograms for a given slot, split by
// whether the candidate came from a same-event or mixed-event pair
constexpr char PrefixD01Se[] = "D01/SE/";
constexpr char PrefixD02Se[] = "D02/SE/";
constexpr char PrefixD01Me[] = "D01/ME/";
constexpr char PrefixD02Me[] = "D02/ME/";
constexpr char PrefixD0Qa[] = "D0QA/";
constexpr char PrefixLc1[] = "Lc1/";
constexpr char PrefixLc1Se[] = "Lc1/SE/";
constexpr char PrefixLc1Me[] = "Lc1/ME/";
constexpr char PrefixLcQa[] = "LcQA/";
constexpr std::string_view AnalysisDir = "Analysis/";
constexpr std::string_view McDir = "MC/";
Expand Down
6 changes: 4 additions & 2 deletions PWGCF/Femto/Core/kinkHistManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -255,10 +255,12 @@ std::map<KinkHist, std::vector<o2::framework::AxisSpec>> makeKinkMcQaHistSpecMap
#undef KINK_HIST_MC_QA_MAP

constexpr char PrefixSigmaQa[] = "SigmaQA/";
constexpr char PrefixSigma1[] = "Sigma1/";
constexpr char PrefixSigma1Se[] = "Sigma1/SE/";
constexpr char PrefixSigma1Me[] = "Sigma1/ME/";
constexpr char PrefixSigma2[] = "Sigma2/";
constexpr char PrefixSigmaPlusQa[] = "SigmaPlusQA/";
constexpr char PrefixSigmaPlus1[] = "SigmaPlus1/";
constexpr char PrefixSigmaPlus1Se[] = "SigmaPlus1/SE/";
constexpr char PrefixSigmaPlus1Me[] = "SigmaPlus1/ME/";
constexpr char PrefixSigmaPlus2[] = "SigmaPlus2/";

constexpr std::string_view AnalysisDir = "Analysis/";
Expand Down
7 changes: 6 additions & 1 deletion PWGCF/Femto/Core/mcParticleHistManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,12 @@ auto makeMcParticleHistSpecMap(const T& confBinning)

inline constexpr char PrefixMcParticle1[] = "McParticle1/";
inline constexpr char PrefixMcParticle2[] = "McParticle2/";
inline constexpr char PrefixMcParticle3[] = "McParticle3/";
inline constexpr char PrefixMcParticle1Se[] = "McParticle1Se/";
inline constexpr char PrefixMcParticle2Se[] = "McParticle2Se/";
inline constexpr char PrefixMcParticle3Se[] = "McParticle3Se/";
inline constexpr char PrefixMcParticle1Me[] = "McParticle1Me/";
inline constexpr char PrefixMcParticle2Me[] = "McParticle2Me/";
inline constexpr char PrefixMcParticle3Me[] = "McParticle3Me/";

constexpr std::string_view McDir = "MC/";

Expand Down
427 changes: 263 additions & 164 deletions PWGCF/Femto/Core/pairBuilder.h

Large diffs are not rendered by default.

35 changes: 29 additions & 6 deletions PWGCF/Femto/Core/pairProcessHelpers.h
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,9 @@ template <modes::Mode mode,
typename T7,
typename T8,
typename T9,
typename T10>
typename T10,
typename T11,
typename T12>
void processMixedEvent(T1 const& Collisions,
T2& Partition1,
T3& Partition2,
Expand All @@ -440,7 +442,9 @@ void processMixedEvent(T1 const& Collisions,
T8& PairHistManager,
T9& CprManager,
T10& PcManager,
int eventStride = 1)
int eventStride,
T11& ParticleHistManagerMe1,
T12& ParticleHistManagerMe2)
{
int64_t lastCollisionIndex = -1;
int windowSizeRaw = 0;
Expand Down Expand Up @@ -518,6 +522,11 @@ void processMixedEvent(T1 const& Collisions,
hasValidPair = true;
PairHistManager.trackParticlesPerEvent(p1, p2);
PairHistManager.template fill<mode>();
// single-particle histograms for particles that make it into an accepted mixed-event
// pair -- filled once per accepted pair (not deduplicated), so a particle contributes
// here exactly as often as it actually contributes to the mixed-event pair sample.
ParticleHistManagerMe1.template fill<mode>(p1, TrackTable);
ParticleHistManagerMe2.template fill<mode>(p2, TrackTable);
}
}

Expand Down Expand Up @@ -551,7 +560,9 @@ template <modes::Mode mode,
typename T13,
typename T14,
typename T15,
typename T16>
typename T16,
typename T17,
typename T18>
void processMixedEvent(T1 const& Collisions,
T2 const& mcCollisions,
T3& Partition1,
Expand All @@ -568,7 +579,9 @@ void processMixedEvent(T1 const& Collisions,
T14& ParticleCleaner2,
T15& CprManager,
T16& PcManager,
int eventStride = 1)
int eventStride,
T17& ParticleHistManagerMe1,
T18& ParticleHistManagerMe2)
{
int64_t lastCollisionIndex = -1;
int windowSizeRaw = 0;
Expand Down Expand Up @@ -650,6 +663,9 @@ void processMixedEvent(T1 const& Collisions,
hasValidPair = true;
PairHistManager.trackParticlesPerEvent(p1, p2);
PairHistManager.template fill<mode>();
// single-particle histograms for particles that make it into an accepted mixed-event pair
ParticleHistManagerMe1.template fill<mode>(p1, TrackTable);
ParticleHistManagerMe2.template fill<mode>(p2, TrackTable);
}
}

Expand Down Expand Up @@ -679,7 +695,9 @@ template <modes::Mode mode,
typename T11,
typename T12,
typename T13,
typename T14>
typename T14,
typename T15,
typename T16>
void processMixedEvent(T1 const& Collisions,
T2& Partition1,
T3& Partition2,
Expand All @@ -694,7 +712,9 @@ void processMixedEvent(T1 const& Collisions,
T12& ParticleCleaner2,
T13& CprManager,
T14& PcManager,
int eventStride = 1)
int eventStride,
T15& ParticleHistManagerMe1,
T16& ParticleHistManagerMe2)
{
int64_t lastCollisionIndex = -1;
int windowSizeRaw = 0;
Expand Down Expand Up @@ -766,6 +786,9 @@ void processMixedEvent(T1 const& Collisions,
hasValidPair = true;
PairHistManager.trackParticlesPerEvent(p1, p2);
PairHistManager.template fill<mode>();
// single-particle histograms for particles that make it into an accepted mixed-event pair
ParticleHistManagerMe1.fill(p1, mcMothers, mcPartonicMothers);
ParticleHistManagerMe2.fill(p2, mcMothers, mcPartonicMothers);
}
}

Expand Down
7 changes: 7 additions & 0 deletions PWGCF/Femto/Core/photonHistManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -164,8 +164,15 @@ std::map<PhotonHist, std::vector<o2::framework::AxisSpec>> makePhotonQaHistSpecM
#undef PHOTON_HIST_QA_MAP

constexpr char PrefixPhotonQa[] = "PhotonQA/";
// used only by the standalone QA task
constexpr char PrefixTwoPhotonResonanceDau1Qa[] = "TwoPhotonResonanceDau1Qa/";
constexpr char PrefixTwoPhotonResonanceDau2Qa[] = "TwoPhotonResonanceDau2Qa/";
// same-event siblings, used only by a pair builder's same-event resonance manager
constexpr char PrefixTwoPhotonResonanceDau1Se[] = "TwoPhotonResonanceDau1Se/";
constexpr char PrefixTwoPhotonResonanceDau2Se[] = "TwoPhotonResonanceDau2Se/";
// mixed-event siblings, used only by a pair builder's mixed-event resonance manager
constexpr char PrefixTwoPhotonResonanceDau1Me[] = "TwoPhotonResonanceDau1Me/";
constexpr char PrefixTwoPhotonResonanceDau2Me[] = "TwoPhotonResonanceDau2Me/";

constexpr std::string_view AnalysisDir = "Analysis/";
constexpr std::string_view QaDir = "QA/";
Expand Down
65 changes: 45 additions & 20 deletions PWGCF/Femto/Core/trackHistManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -558,47 +558,72 @@ auto makeTrackMcQaHistSpecMap(T1 const& confBinningAnalysis, T2 const& confBinni
#undef TRACK_HIST_MC_QA_MAP

constexpr char PrefixTrackQa[] = "TrackQA/";
constexpr char PrefixTrack1[] = "Track1/";
constexpr char PrefixTrack2[] = "Track2/";
// same-event / mixed-event siblings: single-particle histograms for a given track slot, split by
// whether the particle came from a same-event or mixed-event pair
constexpr char PrefixTrack1Se[] = "Track1/SE/";
constexpr char PrefixTrack2Se[] = "Track2/SE/";
constexpr char PrefixTrack3Se[] = "Track3/SE/";
constexpr char PrefixTrack1Me[] = "Track1/ME/";
constexpr char PrefixTrack2Me[] = "Track2/ME/";
constexpr char PrefixTrack3Me[] = "Track3/ME/";
// for dN/deta tracks
constexpr char PrefixDndetaTrackGlobal[] = "DndetaTrackGlobal/";
constexpr char PrefixDndetaTrackItsOnly[] = "DndetaTrackItsOnly/";
constexpr char PrefixTrack3[] = "Track3/";

constexpr char PrefixResonancePosDaughter[] = "ResonancePosDau/";
constexpr char PrefixResonanceNegDaughter[] = "ResonanceNegDau/";
// daughter-track prefixes below: Se/Me siblings for pair-builder single-particle histograms
// (split by whether the daughter came from a same-event or mixed-event candidate), plus the
// original, unsplit Qa variants used by standalone QA tasks (left untouched).
constexpr char PrefixResonancePosDaughterSe[] = "ResonancePosDau/SE/";
constexpr char PrefixResonanceNegDaughterSe[] = "ResonanceNegDau/SE/";
constexpr char PrefixResonancePosDaughterMe[] = "ResonancePosDau/ME/";
constexpr char PrefixResonanceNegDaughterMe[] = "ResonanceNegDau/ME/";
constexpr char PrefixResonancePosDaughterQa[] = "ResonancePosDauQa/";
constexpr char PrefixResonanceNegDaughterQa[] = "ResonanceNegDauQa/";

constexpr char PrefixD01PosDaughter[] = "D01PosDau/";
constexpr char PrefixD01NegDaughter[] = "D01NegDau/";
constexpr char PrefixD02PosDaughter[] = "D02PosDau/";
constexpr char PrefixD02NegDaughter[] = "D02NegDau/";
constexpr char PrefixD01PosDaughterSe[] = "D01PosDau/SE/";
constexpr char PrefixD01NegDaughterSe[] = "D01NegDau/SE/";
constexpr char PrefixD02PosDaughterSe[] = "D02PosDau/SE/";
constexpr char PrefixD02NegDaughterSe[] = "D02NegDau/SE/";
constexpr char PrefixD01PosDaughterMe[] = "D01PosDau/ME/";
constexpr char PrefixD01NegDaughterMe[] = "D01NegDau/ME/";
constexpr char PrefixD02PosDaughterMe[] = "D02PosDau/ME/";
constexpr char PrefixD02NegDaughterMe[] = "D02NegDau/ME/";
constexpr char PrefixD01PosDaughterQa[] = "D01PosDauQa/";
constexpr char PrefixD01NegDaughterQa[] = "D01NegDauQa/";

constexpr char PrefixLc1ProtonDaughter[] = "Lc1ProtonDau/";
constexpr char PrefixLc1KaonDaughter[] = "Lc1KaonDau/";
constexpr char PrefixLc1PionDaughter[] = "Lc1PionDau/";
constexpr char PrefixLc1ProtonDaughterSe[] = "Lc1ProtonDau/SE/";
constexpr char PrefixLc1KaonDaughterSe[] = "Lc1KaonDau/SE/";
constexpr char PrefixLc1PionDaughterSe[] = "Lc1PionDau/SE/";
constexpr char PrefixLc1ProtonDaughterMe[] = "Lc1ProtonDau/ME/";
constexpr char PrefixLc1KaonDaughterMe[] = "Lc1KaonDau/ME/";
constexpr char PrefixLc1PionDaughterMe[] = "Lc1PionDau/ME/";
constexpr char PrefixLc1ProtonDaughterQa[] = "Lc1ProtonDauQa/";
constexpr char PrefixLc1KaonDaughterQa[] = "Lc1KaonDauQa/";
constexpr char PrefixLc1PionDaughterQa[] = "Lc1PionDauQa/";

constexpr char PrefixV01PosDaughter[] = "V01PosDau/";
constexpr char PrefixV01NegDaughter[] = "V01NegDau/";
constexpr char PrefixV02PosDaughter[] = "V02PosDau/";
constexpr char PrefixV02NegDaughter[] = "V02NegDau/";
constexpr char PrefixV01PosDaughterSe[] = "V01PosDau/SE/";
constexpr char PrefixV01NegDaughterSe[] = "V01NegDau/SE/";
constexpr char PrefixV02PosDaughterSe[] = "V02PosDau/SE/";
constexpr char PrefixV02NegDaughterSe[] = "V02NegDau/SE/";
constexpr char PrefixV01PosDaughterMe[] = "V01PosDau/ME/";
constexpr char PrefixV01NegDaughterMe[] = "V01NegDau/ME/";
constexpr char PrefixV02PosDaughterMe[] = "V02PosDau/ME/";
constexpr char PrefixV02NegDaughterMe[] = "V02NegDau/ME/";
constexpr char PrefixV0PosDaughterQa[] = "V0PosDauQa/";
constexpr char PrefixV0NegDaughterQa[] = "V0NegDauQa/";

constexpr char PrefixCascadePosDaughter[] = "CascadePosDau/";
constexpr char PrefixCascadeNegDaughter[] = "CascadeNegDau/";
constexpr char PrefixCascadeBachelor[] = "CascadeBachelor/";
constexpr char PrefixCascadePosDaughterSe[] = "CascadePosDau/SE/";
constexpr char PrefixCascadeNegDaughterSe[] = "CascadeNegDau/SE/";
constexpr char PrefixCascadeBachelorSe[] = "CascadeBachelor/SE/";
constexpr char PrefixCascadePosDaughterMe[] = "CascadePosDau/ME/";
constexpr char PrefixCascadeNegDaughterMe[] = "CascadeNegDau/ME/";
constexpr char PrefixCascadeBachelorMe[] = "CascadeBachelor/ME/";
constexpr char PrefixCascadePosDaughterQa[] = "CascadePosDauQa/";
constexpr char PrefixCascadeNegDaughterQa[] = "CascadeNegDauQa/";
constexpr char PrefixCascadeBachelorQa[] = "CascadeBachelorQa/";

constexpr char PrefixKinkChaDaughter[] = "KinkChaDau/";
constexpr char PrefixKinkChaDaughterSe[] = "KinkChaDau/SE/";
constexpr char PrefixKinkChaDaughterMe[] = "KinkChaDau/ME/";
constexpr char PrefixKinkChaDaughterQa[] = "KinkChaDauQa/";

constexpr std::string_view AnalysisDir = "Analysis/";
Expand Down
Loading
Loading