Skip to content

Commit 0c8d506

Browse files
committed
Added an event occupancy cut
1 parent 8ab4b1a commit 0c8d506

File tree

1 file changed

+43
-6
lines changed

1 file changed

+43
-6
lines changed

PWGCF/MultiparticleCorrelations/Tasks/threeParticleCorrelations.cxx

Lines changed: 43 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -48,12 +48,18 @@ struct ThreeParticleCorrelations {
4848
float trackPtMin = 0.2, trackPtMax = 3.0;
4949
float trackEtaMax = 0.8;
5050

51-
Configurable<float> zvtxMax{"zvtxMax", 10.0, "Maximum collision Z-vertex position (cm)"};
52-
5351
// Track PID parameters
5452
double pionID = 0.0, kaonID = 1.0, protonID = 2.0;
5553
float nSigma0 = 0.0, nSigma1 = 1.0, nSigma2 = 2.0, nSigma4 = 4.0, nSigma5 = 5.0;
5654

55+
// Event selection parameters
56+
struct : ConfigurableGroup {
57+
std::string prefix = "EventSelection";
58+
Configurable<float> zvtxMax{"zvtxMax", 10.0, "Maximum collision Z-vertex position (cm)"};
59+
Configurable<int> occupMin{"occupMin", 0, "Minimum collision occupancy"};
60+
Configurable<int> occupMax{"occupMax", 15000, "Maximum collision occupancy"};
61+
} evSelGroup;
62+
5763
// V0 filter parameters
5864
struct : ConfigurableGroup {
5965
std::string prefix = "V0Selection";
@@ -77,7 +83,7 @@ struct ThreeParticleCorrelations {
7783

7884
// Lambda invariant mass fit
7985
Configurable<float> invMassNSigma{"invMassNSigma", 4.0, "Number of standard deviations from the mean of the Lambda invariant mass peak"};
80-
double dGaussSigma = 0.0019;
86+
double dGaussSigma = 0.002;
8187

8288
// Histogram registry
8389
HistogramRegistry rMECorrRegistry{"MECorrRegistry", {}, OutputObjHandlingPolicy::AnalysisObject, false, true};
@@ -88,8 +94,8 @@ struct ThreeParticleCorrelations {
8894

8995
// Collision & Event filters
9096
Filter collCent = aod::cent::centFT0C > centMin&& aod::cent::centFT0C < centMax;
91-
Filter collZvtx = nabs(aod::collision::posZ) < zvtxMax;
92-
Filter mcCollZvtx = nabs(aod::mccollision::posZ) < zvtxMax;
97+
Filter collZvtx = nabs(aod::collision::posZ) < evSelGroup.zvtxMax;
98+
Filter mcCollZvtx = nabs(aod::mccollision::posZ) < evSelGroup.zvtxMax;
9399
Filter evSelect = aod::evsel::sel8 == true;
94100

95101
// Track filters
@@ -184,6 +190,7 @@ struct ThreeParticleCorrelations {
184190
const AxisSpec centralityAxis{confCentBins};
185191
const AxisSpec fineCentralityAxis{fineCentBins};
186192
const AxisSpec zvtxAxis{confZvtxBins};
193+
const AxisSpec occupancyAxis{200, 0, 20000};
187194
const AxisSpec dPhiAxis{36, (-1. / 2) * constants::math::PI, (3. / 2) * constants::math::PI};
188195
const AxisSpec dEtaAxis{32, -1.52, 1.52};
189196
const AxisSpec v0PtAxis{114, 0.6, 12};
@@ -193,14 +200,17 @@ struct ThreeParticleCorrelations {
193200
const AxisSpec lambdaInvMassAxis{100, 1.08, 1.16};
194201

195202
// QA & PID
196-
rQARegistry.add("hNEvents", "hNEvents", {HistType::kTH1D, {{3, 0, 3}}});
203+
rQARegistry.add("hNEvents", "hNEvents", {HistType::kTH1D, {{5, 0, 5}}});
197204
rQARegistry.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(1, "All");
198205
rQARegistry.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(2, "kIsGoodZvtxFT0vsPV");
199206
rQARegistry.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(3, "kNoSameBunchPileup");
207+
rQARegistry.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(4, "Occupancy window");
208+
rQARegistry.get<TH1>(HIST("hNEvents"))->GetXaxis()->SetBinLabel(5, "kNoCollInTimeRangeStandard");
200209

201210
rQARegistry.add("hEventCentrality", "hEventCentrality", {HistType::kTH1D, {{fineCentralityAxis}}});
202211
rQARegistry.add("hEventCentrality_MC", "hEventCentrality_MC", {HistType::kTH1D, {{fineCentralityAxis}}});
203212
rQARegistry.add("hEventZvtx", "hEventZvtx", {HistType::kTH1D, {{zvtxAxis}}});
213+
rQARegistry.add("hEventOccupancy", "hEventOccupancy", {HistType::kTH1D, {{occupancyAxis}}});
204214
rQARegistry.add("hEventBfield", "hEventBfield", {HistType::kTH1D, {{2, -1, 1}}});
205215
rQARegistry.add("hTrackPt", "hTrackPt", {HistType::kTH1D, {{100, 0, 4}}});
206216
rQARegistry.add("hTrackEta", "hTrackEta", {HistType::kTH1D, {{100, -1, 1}}});
@@ -215,6 +225,9 @@ struct ThreeParticleCorrelations {
215225
rQARegistry.add("hPtKaon_Corrected", "hPtKaon_Corrected", {HistType::kTH3D, {{trackPtAxis}, {fineCentralityAxis}, {2, -2, 2}}});
216226
rQARegistry.add("hPtProton_Corrected", "hPtProton_Corrected", {HistType::kTH3D, {{trackPtAxis}, {fineCentralityAxis}, {2, -2, 2}}});
217227
rQARegistry.add("hPtV0_Corrected", "hPtV0_Corrected", {HistType::kTH3D, {{v0PtAxis}, {fineCentralityAxis}, {2, -2, 2}}});
228+
rQARegistry.add("hPtPion_Looped", "hPtPion_Looped", {HistType::kTH3D, {{trackPtAxis}, {fineCentralityAxis}, {2, -2, 2}}});
229+
rQARegistry.add("hPtKaon_Looped", "hPtKaon_Looped", {HistType::kTH3D, {{trackPtAxis}, {fineCentralityAxis}, {2, -2, 2}}});
230+
rQARegistry.add("hPtProton_Looped", "hPtProton_Looped", {HistType::kTH3D, {{trackPtAxis}, {fineCentralityAxis}, {2, -2, 2}}});
218231
rQARegistry.add("hPtPion_MC", "hPtPion_MC", {HistType::kTH3D, {{trackPtAxis}, {fineCentralityAxis}, {2, -2, 2}}});
219232
rQARegistry.add("hPtKaon_MC", "hPtKaon_MC", {HistType::kTH3D, {{trackPtAxis}, {fineCentralityAxis}, {2, -2, 2}}});
220233
rQARegistry.add("hPtProton_MC", "hPtProton_MC", {HistType::kTH3D, {{trackPtAxis}, {fineCentralityAxis}, {2, -2, 2}}});
@@ -364,6 +377,7 @@ struct ThreeParticleCorrelations {
364377
void processSame(MyFilteredCollision const& collision, aod::V0Datas const& v0s, MyFilteredTracks const& tracks, aod::BCsWithTimestamps const&)
365378
{
366379

380+
rQARegistry.fill(HIST("hEventOccupancy"), collision.trackOccupancyInTimeRange());
367381
if (!acceptEvent(collision, true)) {
368382
return;
369383
}
@@ -444,6 +458,14 @@ struct ThreeParticleCorrelations {
444458
deltaPhi = RecoDecay::constrainAngle(trigger.phi() - associate.phi(), -constants::math::PIHalf);
445459
deltaEta = trigger.eta() - associate.eta();
446460

461+
if (assocPID[0] == pionID) { // Pions
462+
rQARegistry.fill(HIST("hPtPion_Looped"), associate.pt(), collision.centFT0C(), associate.sign(), ratioCorrection(hCorrectionPions, associate, collision.centFT0C()) / trackEff(hEffPions, associate, collision.centFT0C()));
463+
} else if (assocPID[0] == kaonID) { // Kaons
464+
rQARegistry.fill(HIST("hPtKaon_Looped"), associate.pt(), collision.centFT0C(), associate.sign(), ratioCorrection(hCorrectionKaons, associate, collision.centFT0C()) / trackEff(hEffKaons, associate, collision.centFT0C()));
465+
} else if (assocPID[0] == protonID) { // Protons
466+
rQARegistry.fill(HIST("hPtProton_Looped"), associate.pt(), collision.centFT0C(), associate.sign(), ratioCorrection(hCorrectionProtons, associate, collision.centFT0C()) / trackEff(hEffProtons, associate, collision.centFT0C()));
467+
}
468+
447469
if (candMass >= MassLambda0 - invMassNSigma * dGaussSigma && candMass <= MassLambda0 + invMassNSigma * dGaussSigma) {
448470
if (assocPID[0] == pionID) { // Pions
449471
rSECorrRegistry.fill(HIST("hSameLambdaPion_SGNL"), deltaPhi, deltaEta, collision.centFT0C(), collision.posZ(), triggSign, associate.sign(), ratioCorrection(hCorrectionPions, associate, collision.centFT0C()) / (trackEff(hEffPions, associate, collision.centFT0C()) * v0Efficiency));
@@ -1002,6 +1024,21 @@ struct ThreeParticleCorrelations {
10021024
rQARegistry.fill(HIST("hNEvents"), 2.5);
10031025
}
10041026

1027+
int occupEstim = col.trackOccupancyInTimeRange();
1028+
if (occupEstim <= evSelGroup.occupMin || occupEstim >= evSelGroup.occupMax) { // Occupancy window
1029+
return false;
1030+
}
1031+
if (FillHist) {
1032+
rQARegistry.fill(HIST("hNEvents"), 3.5);
1033+
}
1034+
1035+
if (!col.selection_bit(aod::evsel::kNoCollInTimeRangeStandard)) { // kNoCollInTimeRangeStandard
1036+
return false;
1037+
}
1038+
if (FillHist) {
1039+
rQARegistry.fill(HIST("hNEvents"), 4.5);
1040+
}
1041+
10051042
return true;
10061043
}
10071044

0 commit comments

Comments
 (0)