Skip to content

Commit c022782

Browse files
ddobrigkalibuild
andauthored
Common: update centrality analysis for glauber fit studies (#8181)
Co-authored-by: ALICE Builder <alibuild@users.noreply.github.com>
1 parent 3c48e3e commit c022782

1 file changed

Lines changed: 37 additions & 2 deletions

File tree

Common/Tasks/centralityStudy.cxx

Lines changed: 37 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,12 @@ struct centralityStudy {
4646
Configurable<bool> requireIsVertexTOFmatched{"requireIsVertexTOFmatched", true, "require events with at least one of vertex contributors matched to TOF"};
4747
Configurable<bool> requireIsVertexTRDmatched{"requireIsVertexTRDmatched", true, "require events with at least one of vertex contributors matched to TRD"};
4848
Configurable<bool> rejectSameBunchPileup{"rejectSameBunchPileup", true, "reject collisions in case of pileup with another collision in the same foundBC"};
49+
50+
Configurable<bool> rejectITSinROFpileupStandard{"rejectITSinROFpileupStandard", false, "reject collisions in case of in-ROF ITS pileup (standard)"};
51+
Configurable<bool> rejectITSinROFpileupStrict{"rejectITSinROFpileupStrict", false, "reject collisions in case of in-ROF ITS pileup (strict)"};
52+
4953
Configurable<float> minTimeDelta{"minTimeDelta", -1.0f, "reject collision if another collision is this close or less in time"};
54+
Configurable<float> minFT0CforVertexZ{"minFT0CforVertexZ", 250, "minimum FT0C for vertex-Z profile calculation"};
5055

5156
// Configurable Axes
5257
ConfigurableAxis axisMultFT0C{"axisMultFT0C", {2000, 0, 100000}, "FT0C amplitude"};
@@ -64,6 +69,9 @@ struct centralityStudy {
6469
ConfigurableAxis axisPVChi2{"axisPVChi2", {300, 0, 30}, "FT0C percentile"};
6570
ConfigurableAxis axisDeltaTime{"axisDeltaTime", {300, 0, 300}, "#Delta time"};
6671

72+
// For profile Z
73+
ConfigurableAxis axisPVz{"axisPVz", {400, -20.0f, +20.0f}, "PVz (cm)"};
74+
6775
void init(InitContext&)
6876
{
6977
if (doprocessCollisions || doprocessCollisionsWithCentrality) {
@@ -80,14 +88,22 @@ struct centralityStudy {
8088
histos.get<TH1>(HIST("hCollisionSelection"))->GetXaxis()->SetBinLabel(9, "kIsVertexTRDmatched");
8189
histos.get<TH1>(HIST("hCollisionSelection"))->GetXaxis()->SetBinLabel(10, "kNoSameBunchPileup");
8290
histos.get<TH1>(HIST("hCollisionSelection"))->GetXaxis()->SetBinLabel(11, "Neighbour rejection");
91+
histos.get<TH1>(HIST("hCollisionSelection"))->GetXaxis()->SetBinLabel(12, "no ITS in-ROF pileup (standard)");
92+
histos.get<TH1>(HIST("hCollisionSelection"))->GetXaxis()->SetBinLabel(13, "no ITS in-ROF pileup (strict)");
8393

8494
histos.add("hFT0C_Collisions", "hFT0C_Collisions", kTH1D, {axisMultUltraFineFT0C});
8595
histos.add("hNPVContributors", "hNPVContributors", kTH1D, {axisMultUltraFinePVContributors});
96+
97+
histos.add("hFT0CvsPVz_Collisions_All", "hFT0CvsPVz_Collisions_All", kTProfile, {axisPVz});
98+
histos.add("hFT0CvsPVz_Collisions", "hFT0CvsPVz_Collisions", kTProfile, {axisPVz});
8699
}
87100

88101
if (doprocessBCs) {
89-
histos.add("hBCSelection", "hBCSelection", kTH1D, {{10, -0.5, 9.5f}});
102+
histos.add("hBCSelection", "hBCSelection", kTH1D, {{20, -0.5, 19.5f}});
90103
histos.add("hFT0C_BCs", "hFT0C_BCs", kTH1D, {axisMultUltraFineFT0C});
104+
105+
histos.add("hFT0CvsPVz_BCs_All", "hFT0CvsPVz_BCs_All", kTProfile, {axisPVz});
106+
histos.add("hFT0CvsPVz_BCs", "hFT0CvsPVz_BCs", kTProfile, {axisPVz});
91107
}
92108

93109
if (do2DPlots) {
@@ -168,10 +184,23 @@ struct centralityStudy {
168184
histos.fill(HIST("hCollisionSelection"), 10 /* has suspicious neighbour */);
169185
}
170186

187+
if (rejectITSinROFpileupStandard && !collision.selection_bit(o2::aod::evsel::kNoCollInRofStandard)) {
188+
return;
189+
}
190+
histos.fill(HIST("hCollisionSelection"), 11 /* Not at same bunch pile-up */);
191+
192+
if (rejectITSinROFpileupStrict && !collision.selection_bit(o2::aod::evsel::kNoCollInRofStrict)) {
193+
return;
194+
}
195+
histos.fill(HIST("hCollisionSelection"), 12 /* Not at same bunch pile-up */);
196+
171197
// if we got here, we also finally fill the FT0C histogram, please
172198
histos.fill(HIST("hNPVContributors"), collision.multPVTotalContributors());
173199
histos.fill(HIST("hFT0C_Collisions"), collision.multFT0C());
174-
200+
histos.fill(HIST("hFT0CvsPVz_Collisions_All"), collision.multPVz(), collision.multFT0C());
201+
if (collision.multFT0C() > minFT0CforVertexZ) {
202+
histos.fill(HIST("hFT0CvsPVz_Collisions"), collision.multPVz(), collision.multFT0C());
203+
}
175204
if (do2DPlots) {
176205
histos.fill(HIST("hFT0CvsNContribs"), collision.multNTracksPV(), collision.multFT0C());
177206
histos.fill(HIST("hMatchedVsITSOnly"), collision.multNTracksITSOnly(), collision.multNTracksITSTPC());
@@ -220,6 +249,12 @@ struct centralityStudy {
220249

221250
// if we got here, we also finally fill the FT0C histogram, please
222251
histos.fill(HIST("hFT0C_BCs"), multbc.multBCFT0C());
252+
if (multbc.multBCFT0PosZValid()) {
253+
histos.fill(HIST("hFT0CvsPVz_BCs_All"), multbc.multBCFT0PosZ(), multbc.multBCFT0C());
254+
if (multbc.multBCFT0C() > minFT0CforVertexZ) {
255+
histos.fill(HIST("hFT0CvsPVz_BCs"), multbc.multBCFT0PosZ(), multbc.multBCFT0C());
256+
}
257+
}
223258
}
224259

225260
PROCESS_SWITCH(centralityStudy, processCollisions, "per-collision analysis", false);

0 commit comments

Comments
 (0)