Skip to content

Commit 06dd8ee

Browse files
authored
[PWGCF] new group of QA histos + minor fixes (AliceO2Group#8998)
1 parent 6a1d682 commit 06dd8ee

File tree

5 files changed

+633
-207
lines changed

5 files changed

+633
-207
lines changed

PWGCF/MultiparticleCorrelations/Core/MuPa-Configurables.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ struct : ConfigurableGroup {
4949
Configurable<vector<string>> cfBookQAEventHistograms2D{"cfBookQAEventHistograms2D", {"1-Multiplicity_vs_ReferenceMultiplicity", "1-Multiplicity_vs_NContributors", "1-Multiplicity_vs_Centrality", "1-Multiplicity_vs_Vertex_z", "1-Multiplicity_vs_Occupancy", "1-ReferenceMultiplicity_vs_NContributors", "1-ReferenceMultiplicity_vs_Centrality", "1-ReferenceMultiplicity_vs_Vertex_z", "1-ReferenceMultiplicity_vs_Occupancy", "1-NContributors_vs_Centrality", "1-NContributors_vs_Vertex_z", "1-NContributors_vs_Occupancy", "1-Centrality_vs_Vertex_z", "1-Centrality_vs_Occupancy", "0-Centrality_vs_ImpactParameter", "1-Vertex_z_vs_Occupancy", "0-MultNTracksPV_vs_MultNTracksGlobal", "0-CentFT0C_vs_CentNTPV", "0-CentFT0M_vs_CentNTPV", "0-CentRun2V0M_vs_CentRun2SPDTracklets", "1-TrackOccupancyInTimeRange_vs_FT0COccupancyInTimeRange", "1-CurrentRunDuration_vs_InteractionRate"}, "book (1) or do not book (0) this QA 2D event histogram"};
5050
Configurable<bool> cfFillQAParticleHistograms2D{"cfFillQAParticleHistograms2D", false, "if false, all QA 2D particle histograms are not filled. if true, only the ones for which fBookQAParticleHistograms2D[...] is true, are filled"};
5151
Configurable<vector<string>> cfBookQAParticleHistograms2D{"cfBookQAParticleHistograms2D", {"1-Pt_vs_dcaXY"}, "book (1) or do not book (0) this QA 2D particle histogram"};
52+
Configurable<bool> cfFillQAParticleEventHistograms2D{"cfFillQAParticleEventHistograms2D", false, "if false, all QA 2D particle event histograms are not filled. if true, only the ones for which fBookQAParticleEventHistograms2D[...] is true, are filled"};
53+
Configurable<vector<string>> cfBookQAParticleEventHistograms2D{"cfBookQAParticleEventHistograms2D", {"1-CurrentRunDuration_vs_itsNCls", "1-CurrentRunDuration_vs_itsNClsNegEtaEbyE", "1-CurrentRunDuration_vs_itsNClsPosEtaEbyE", "1-CurrentRunDuration_vs_Eta0804EbyE", "1-CurrentRunDuration_vs_Eta0400EbyE", "1-CurrentRunDuration_vs_Eta0004EbyE", "1-CurrentRunDuration_vs_Eta0408EbyE", "1-CurrentRunDuration_vs_Pt0005EbyE", "1-CurrentRunDuration_vs_Pt0510EbyE", "1-CurrentRunDuration_vs_Pt1050EbyE"}, "book (1) or do not book (0) this QA 2D particle event histogram"};
54+
5255
} cf_qa;
5356

5457
// *) Event histograms:

PWGCF/MultiparticleCorrelations/Core/MuPa-DataMembers.h

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -84,27 +84,43 @@ struct EventByEventQuantities {
8484
// Remark 1: I keep new histograms in this group, until I need them permanently in the analysis. Then, they are moved to EventHistograms or ParticleHistograms (yes, even if they are 2D).
8585
// Remark 2: All 2D histograms book as TH2F, due to "stmem error" in terminate (see .cxx for further details)
8686
struct QualityAssurance {
87-
TList* fQAList = NULL; //!<! base list to hold all QA output object
88-
TProfile* fQAHistogramsPro = NULL; //!<! keeps flags relevant for the QA histograms
89-
Bool_t fCheckUnderflowAndOverflow = kFALSE; // check and bail out if in event and particle histograms there are entries which went to underflow or overflow bins
90-
Int_t fRebin = 1; // number of bins of selected heavy 2D histograms are devided with this number, there is a configurable cfRebin
91-
TH2F* fQAEventHistograms2D[eQAEventHistograms2D_N][2][2] = {{{NULL}}}; //! [ type - see enum eQAEventHistograms2D ][reco,sim][before, after particle cuts]
92-
Bool_t fFillQAEventHistograms2D = kTRUE; // if kFALSE, all 2D event histograms are not filled. if kTRUE, the ones for which fBookQAEventHistograms2D[...] is kTRUE, are filled
93-
Bool_t fBookQAEventHistograms2D[eQAEventHistograms2D_N] = {kTRUE}; // book or not this 2D histogram, see configurable cfBookQAEventHistograms2D
94-
Float_t fEventHistogramsBins2D[eQAEventHistograms2D_N][2][3] = {{{0.}}}; // [type - see enum][x,y][nBins,min,max]
95-
TString fEventHistogramsName2D[eQAEventHistograms2D_N] = {""}; // name of fQAEventHistograms2D, determined programatically from other 1D names, to ease bookkeeping
96-
TH2F* fQAParticleHistograms2D[eQAParticleHistograms2D_N][2][2] = {{{NULL}}}; //! [ type - see enum eQAParticleHistograms2D ][reco,sim][before, after particle cuts]
97-
Bool_t fFillQAParticleHistograms2D = kTRUE; // if kFALSE, all 2D particle histograms are not filled. if kTRUE, the ones for which fBookQAParticleHistograms2D[...] is kTRUE, are filled
98-
Bool_t fBookQAParticleHistograms2D[eQAParticleHistograms2D_N] = {kTRUE}; // book or not this 2D histogram, see configurable cfBookQAParticleHistograms2D
99-
Float_t fParticleHistogramsBins2D[eQAParticleHistograms2D_N][2][3] = {{{0.}}}; // [type - see enum][x,y][nBins,min,max]
100-
TString fParticleHistogramsName2D[eQAParticleHistograms2D_N] = {""}; // name of fQAParticleHistograms2D, determined programatically from other 1D names, to ease bookkeeping
87+
TList* fQAList = NULL; //!<! base list to hold all QA output object
88+
TProfile* fQAHistogramsPro = NULL; //!<! keeps flags relevant for the QA histograms
89+
Bool_t fCheckUnderflowAndOverflow = kFALSE; // check and bail out if in event and particle histograms there are entries which went to underflow or overflow bins
90+
Int_t fRebin = 1; // number of bins of selected heavy 2D histograms are devided with this number, there is a configurable cfRebin
91+
// ...
92+
93+
TList* fQAEventList = NULL; //!<! base list to hold all QA event output object
94+
TH2F* fQAEventHistograms2D[eQAEventHistograms2D_N][2][2] = {{{NULL}}}; //! [ type - see enum eQAEventHistograms2D ][reco,sim][before, after particle cuts]
95+
Bool_t fFillQAEventHistograms2D = kTRUE; // if kFALSE, all 2D event histograms are not filled. if kTRUE, the ones for which fBookQAEventHistograms2D[...] is kTRUE, are filled
96+
Bool_t fBookQAEventHistograms2D[eQAEventHistograms2D_N] = {kTRUE}; // book or not this 2D histogram, see configurable cfBookQAEventHistograms2D
97+
Float_t fEventHistogramsBins2D[eQAEventHistograms2D_N][2][3] = {{{0.}}}; // [type - see enum][x,y][nBins,min,max]
98+
TString fEventHistogramsName2D[eQAEventHistograms2D_N] = {""}; // name of fQAEventHistograms2D, determined programatically from other 1D names, to ease bookkeeping
99+
100+
TList* fQAParticleList = NULL; //!<! base list to hold all QA particle output object
101+
TH2F* fQAParticleHistograms2D[eQAParticleHistograms2D_N][2][2] = {{{NULL}}}; //! [ type - see enum eQAParticleHistograms2D ][reco,sim][before, after particle cuts]
102+
Bool_t fFillQAParticleHistograms2D = kTRUE; // if kFALSE, all 2D histograms in this category are not filled. If kTRUE, the ones for which fBookQAParticleHistograms2D[...] is kTRUE, are filled
103+
Bool_t fBookQAParticleHistograms2D[eQAParticleHistograms2D_N] = {kTRUE}; // book or not this 2D histogram, see configurable cfBookQAParticleHistograms2D
104+
Float_t fParticleHistogramsBins2D[eQAParticleHistograms2D_N][2][3] = {{{0.}}}; // [type - see enum][x,y][nBins,min,max]
105+
TString fParticleHistogramsName2D[eQAParticleHistograms2D_N] = {""}; // name of fQAParticleHistograms2D, determined programatically from other 1D names, to ease bookkeeping
106+
107+
TList* fQAParticleEventList = NULL; //!<! base list to hold all QA particle event output object
108+
TH2F* fQAParticleEventHistograms2D[eQAParticleEventHistograms2D_N][2][2] = {{{NULL}}}; //! [ type - see enum eQAParticleEventHistograms2D ][reco,sim][before, after cuts]
109+
bool fFillQAParticleEventHistograms2D = true; // if false, all 2D histograms in this category are not filled. If true, the ones for which fBookQAParticleEventHistograms2D[...] is true, are filled
110+
Bool_t fBookQAParticleEventHistograms2D[eQAParticleEventHistograms2D_N] = {kTRUE}; // book or not this 2D histogram, see configurable cfBookQAParticleEventHistograms2D
111+
Float_t fQAParticleEventHistogramsBins2D[eQAParticleEventHistograms2D_N][2][3] = {{{0.}}}; // [type - see enum][x,y][nBins,min,max]
112+
TString fQAParticleEventHistogramsName2D[eQAParticleEventHistograms2D_N] = {""}; // name of fQAParticleEventHistograms2D, determined programatically from other 1D names, to ease bookkeeping
113+
TProfile* fQAParticleEventProEbyE[2][2] = {{NULL}}; // helper profile to calculate <some-particle-property> event-by-event
114+
// [reco, sim][before, after]. Type dimension is bin.
115+
101116
Float_t fReferenceMultiplicity[eReferenceMultiplicityEstimators_N] = {0.}; // used mostly in QA correlation plots
102117
TString fReferenceMultiplicityEstimatorName[eReferenceMultiplicityEstimators_N] = {""}; // TBI 20241123 add comment
103118
Float_t fCentrality[eCentralityEstimators_N] = {0.}; // used mostly in QA correlation plots
104119
TString fCentralityEstimatorName[eCentralityEstimators_N] = {""}; // TBI 20241123 add comment
105120
Float_t fOccupancy[eOccupancyEstimators_N] = {0.}; // used mostly in QA correlation plots
106121
TString fOccupancyEstimatorName[eOccupancyEstimators_N] = {""}; // TBI 20241123 add comment
107-
} qa; // "qa" is a common label for objects in this struct
122+
123+
} qa; // "qa" is a common label for objects in this struct
108124

109125
// *) Event histograms:
110126
struct EventHistograms {

PWGCF/MultiparticleCorrelations/Core/MuPa-Enums.h

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,38 @@ enum eQAParticleHistograms2D {
278278
eQAParticleHistograms2D_N
279279
};
280280

281+
enum eQAParticleEventHistograms2D {
282+
// In this category I do correlation <some-particle-property> vs. some-event-property.
283+
// The < ... > goes over all particles in that event.
284+
// All < ... > over particles are calculated with helper TProfile
285+
// For instance: <nITScls> vs. current run duration
286+
eCurrentRunDuration_vs_itsNClsEbyE,
287+
eCurrentRunDuration_vs_itsNClsNegEtaEbyE,
288+
eCurrentRunDuration_vs_itsNClsPosEtaEbyE,
289+
eCurrentRunDuration_vs_Eta0804EbyE,
290+
eCurrentRunDuration_vs_Eta0400EbyE,
291+
eCurrentRunDuration_vs_Eta0004EbyE,
292+
eCurrentRunDuration_vs_Eta0408EbyE,
293+
eCurrentRunDuration_vs_Pt0005EbyE,
294+
eCurrentRunDuration_vs_Pt0510EbyE,
295+
eCurrentRunDuration_vs_Pt1050EbyE,
296+
eQAParticleEventHistograms2D_N
297+
};
298+
299+
enum eQAParticleEventProEbyE {
300+
eitsNClsEbyE = 1, // Labels average <itsNCls> in a given event (therefore "EbyE" is appended). Yes, from one, because it runs over bin content and entries in TProfile for most of the time.
301+
eitsNClsNegEtaEbyE, // <itsNCls> in a given event for eta < 0
302+
eitsNClsPosEtaEbyE, // <itsNCls> in a given event for eta > 0
303+
eEta0804EbyE, // <eta> in a given event for -0.8 < eta < -0.4
304+
eEta0400EbyE, // <eta> in a given event for -0.4 < eta < 0.0
305+
eEta0004EbyE, // <eta> in a given event for 0.0 < eta < 0.4
306+
eEta0408EbyE, // <eta> in a given event for 0.4 < eta < 0.8
307+
ePt0005EbyE, // <pt> in a given event for 0.0 < pt < 0.5
308+
ePt0510EbyE, // <pt> in a given event for 0.5 < pt < 1.0
309+
ePt1050EbyE, // <pt> in a given event for 1.0 < pt < 5.0
310+
eQAParticleEventProEbyE_N
311+
};
312+
281313
enum eReferenceMultiplicityEstimators {
282314
// Run 3:
283315
eMultTPC = 0,

0 commit comments

Comments
 (0)