You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: PWGCF/MultiparticleCorrelations/Core/MuPa-Configurables.h
+3Lines changed: 3 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -49,6 +49,9 @@ struct : ConfigurableGroup {
49
49
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"};
50
50
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"};
51
51
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"};
// 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).
85
85
// Remark 2: All 2D histograms book as TH2F, due to "stmem error" in terminate (see .cxx for further details)
86
86
structQualityAssurance {
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_tfCheckUnderflowAndOverflow=kFALSE; // check and bail out if in event and particle histograms there are entries which went to underflow or overflow bins
90
-
Int_tfRebin=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_tfFillQAEventHistograms2D=kTRUE; // if kFALSE, all 2D event histograms are not filled. if kTRUE, the ones for which fBookQAEventHistograms2D[...] is kTRUE, are filled
93
-
Bool_tfBookQAEventHistograms2D[eQAEventHistograms2D_N] = {kTRUE}; // book or not this 2D histogram, see configurable cfBookQAEventHistograms2D
94
-
Float_tfEventHistogramsBins2D[eQAEventHistograms2D_N][2][3] = {{{0.}}}; // [type - see enum][x,y][nBins,min,max]
95
-
TStringfEventHistogramsName2D[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_tfFillQAParticleHistograms2D=kTRUE; // if kFALSE, all 2D particle histograms are not filled. if kTRUE, the ones for which fBookQAParticleHistograms2D[...] is kTRUE, are filled
98
-
Bool_tfBookQAParticleHistograms2D[eQAParticleHistograms2D_N] = {kTRUE}; // book or not this 2D histogram, see configurable cfBookQAParticleHistograms2D
99
-
Float_tfParticleHistogramsBins2D[eQAParticleHistograms2D_N][2][3] = {{{0.}}}; // [type - see enum][x,y][nBins,min,max]
100
-
TStringfParticleHistogramsName2D[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_tfCheckUnderflowAndOverflow=kFALSE; // check and bail out if in event and particle histograms there are entries which went to underflow or overflow bins
90
+
Int_tfRebin=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_tfFillQAEventHistograms2D=kTRUE; // if kFALSE, all 2D event histograms are not filled. if kTRUE, the ones for which fBookQAEventHistograms2D[...] is kTRUE, are filled
96
+
Bool_tfBookQAEventHistograms2D[eQAEventHistograms2D_N] = {kTRUE}; // book or not this 2D histogram, see configurable cfBookQAEventHistograms2D
97
+
Float_tfEventHistogramsBins2D[eQAEventHistograms2D_N][2][3] = {{{0.}}}; // [type - see enum][x,y][nBins,min,max]
98
+
TStringfEventHistogramsName2D[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_tfFillQAParticleHistograms2D=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_tfBookQAParticleHistograms2D[eQAParticleHistograms2D_N] = {kTRUE}; // book or not this 2D histogram, see configurable cfBookQAParticleHistograms2D
104
+
Float_tfParticleHistogramsBins2D[eQAParticleHistograms2D_N][2][3] = {{{0.}}}; // [type - see enum][x,y][nBins,min,max]
105
+
TStringfParticleHistogramsName2D[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
+
boolfFillQAParticleEventHistograms2D= 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_tfBookQAParticleEventHistograms2D[eQAParticleEventHistograms2D_N] = {kTRUE}; // book or not this 2D histogram, see configurable cfBookQAParticleEventHistograms2D
111
+
Float_tfQAParticleEventHistogramsBins2D[eQAParticleEventHistograms2D_N][2][3] = {{{0.}}}; // [type - see enum][x,y][nBins,min,max]
112
+
TStringfQAParticleEventHistogramsName2D[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
+
101
116
Float_tfReferenceMultiplicity[eReferenceMultiplicityEstimators_N] = {0.}; // used mostly in QA correlation plots
// 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
+
enumeQAParticleEventProEbyE {
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
0 commit comments