Skip to content

Commit 30aa2df

Browse files
authored
Add sample size configuration for bootstrapping
1 parent d8d0a87 commit 30aa2df

1 file changed

Lines changed: 14 additions & 13 deletions

File tree

PWGCF/TwoParticleCorrelations/Tasks/longrangecorrDerived.cxx

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
#include <Framework/OutputObjHeader.h>
3535
#include <Framework/runDataProcessing.h>
3636

37+
#include <TRandom.h>
38+
3739
#include <cstdint>
3840
#include <cstdio>
3941
#include <string>
@@ -57,6 +59,7 @@ struct LongrangecorrDerived {
5759

5860
struct : ConfigurableGroup {
5961
Configurable<int> cfgNmixedevent{"cfgNmixedevent", 5, "how many events are mixed"};
62+
Configurable<double> cfgSampleSize{"cfgSampleSize", 10, "Sample size for bootstrapping"};
6063
Configurable<int> cfgPidMask{"cfgPidMask", 0, "Selection bitmask for the TPC particle"};
6164
Configurable<int> cfgV0Mask{"cfgV0Mask", 0, "Selection bitmask for the V0 particle"};
6265
Configurable<float> cfgVtxCut{"cfgVtxCut", 10.0f, "Vertex Z range to consider"};
@@ -80,7 +83,6 @@ struct LongrangecorrDerived {
8083
ConfigurableAxis axisPhi{"axisPhi", {96, 0, TwoPI}, "#phi axis"};
8184
ConfigurableAxis axisEtaTrig{"axisEtaTrig", {40, -1., 1.}, "#eta trig axis"};
8285
ConfigurableAxis axisPtTrigger{"axisPtTrigger", {VARIABLE_WIDTH, 0.5, 1.0, 1.5, 2.0, 3.0, 4.0, 6.0, 10.0}, "pt trigger axis for histograms"};
83-
ConfigurableAxis axisPtAssoc{"axisPtAssoc", {VARIABLE_WIDTH, 0.5, 1.0, 1.5, 2.0, 3.0, 4.0, 6.0, 10.0}, "pt assoc axis for histograms"};
8486
ConfigurableAxis axisVtxZ{"axisVtxZ", {40, -20, 20}, "vertex axis"};
8587
ConfigurableAxis axisEtaAssoc{"axisEtaAssoc", {96, 3.5, 4.9}, "#eta assoc axis"};
8688
ConfigurableAxis axisDeltaPhi{"axisDeltaPhi", {72, -PIHalf, PIHalf * 3}, "delta phi axis for histograms"};
@@ -91,6 +93,7 @@ struct LongrangecorrDerived {
9193
ConfigurableAxis axisChannel{"axisChannel", {208, 0, 208}, "FT0 channel"};
9294
ConfigurableAxis axisMultME{"axisMultME", {VARIABLE_WIDTH, 0, 5, 10, 20, 30, 40, 50, 1000}, "Mixing bins - multiplicity"};
9395
ConfigurableAxis axisVtxZME{"axisVtxZME", {VARIABLE_WIDTH, -10, -8, -6, -4, -2, 0, 2, 4, 6, 8, 10}, "Mixing bins - z-vertex"};
96+
ConfigurableAxis axisSample{"axisSample", {10, 0, 10}, "sample axis for histograms"};
9497

9598
ConfigurableAxis axisTPCNClsFound{"axisTPCNClsFound", {200, -0.5, 199.5}, "TPC Cluster axis"};
9699
ConfigurableAxis axisTPCNClsCrossedRows{"axisTPCNClsCrossedRows", {200, -0.5, 199.5}, "TPC NCrossedRow axis"};
@@ -155,10 +158,10 @@ struct LongrangecorrDerived {
155158

156159
void init(InitContext const&)
157160
{
158-
std::vector<AxisSpec> corrAxis = {{cfgAxis.axisVtxZ, "z-vtx (cm)"},
161+
std::vector<AxisSpec> corrAxis = {{cfgAxis.axisSample, "Sample"},
162+
{cfgAxis.axisVtxZ, "z-vtx (cm)"},
159163
{cfgAxis.axisMultiplicity, "multiplicity"},
160164
{cfgAxis.axisPtTrigger, "p_{T} (GeV/c)"},
161-
{cfgAxis.axisPtAssoc, "p_{T} (GeV/c)"},
162165
{cfgAxis.axisDeltaPhi, "#Delta#varphi (rad)"},
163166
{cfgAxis.axisDeltaEta, "#Delta#eta"}};
164167
std::vector<AxisSpec> effAxis = {{cfgAxis.axisVertexEfficiency, "z-vtx (cm)"},
@@ -182,14 +185,13 @@ struct LongrangecorrDerived {
182185
histos.add("Trig_etavsphi", "Trig_etavsphi", kTH2D, {cfgAxis.axisPhi, cfgAxis.axisEtaTrig});
183186
histos.add("Trig_pt", "Trig_pt", kTH1D, {cfgAxis.axisPtTrigger});
184187
histos.add("Trig_invMass", "Trig_invMass", kTH1D, {cfgAxis.axisInvMassQA});
185-
histos.add("Trig_hist", "Trig_hist", kTHnSparseF, {cfgAxis.axisVtxZ, cfgAxis.axisMultiplicity, cfgAxis.axisPtTrigger, cfgAxis.axisInvMass});
188+
histos.add("Trig_hist", "Trig_hist", kTHnSparseF, {cfgAxis.axisSample, cfgAxis.axisVtxZ, cfgAxis.axisMultiplicity, cfgAxis.axisPtTrigger, cfgAxis.axisInvMass});
186189
histos.add("Trig_amp", "Trig_amp", kTH1D, {cfgAxis.axisAmplitude});
187190
histos.add("Channel_vs_Trig_amp", "Channel_vs_Trig_amp", kTH2D, {cfgAxis.axisChannel, cfgAxis.axisAmplitude});
188191

189192
histos.add("Assoc_eta", "Assoc_eta", kTH1D, {cfgAxis.axisEtaAssoc});
190193
histos.add("Assoc_phi", "Assoc_phi", kTH1D, {cfgAxis.axisPhi});
191194
histos.add("Assoc_etavsphi", "Assoc_etavsphi", kTH2D, {cfgAxis.axisPhi, cfgAxis.axisEtaAssoc});
192-
histos.add("Assoc_pt", "Assoc_pt", kTH1D, {cfgAxis.axisPtAssoc});
193195
histos.add("Assoc_amp", "Assoc_amp", kTH1D, {cfgAxis.axisAmplitude});
194196
histos.add("Channel_vs_Assoc_amp", "Channel_vs_Assoc_amp", kTH2D, {cfgAxis.axisChannel, cfgAxis.axisAmplitude});
195197

@@ -285,8 +287,6 @@ struct LongrangecorrDerived {
285287
if constexpr (requires { track.channelID(); }) {
286288
histos.fill(HIST("Assoc_amp"), track.amplitude());
287289
histos.fill(HIST("Channel_vs_Assoc_amp"), track.channelID(), track.amplitude());
288-
} else {
289-
histos.fill(HIST("Assoc_pt"), track.pt());
290290
}
291291
if constexpr (requires { track.nClusters(); }) {
292292
histos.fill(HIST("MFTNClusters"), track.nClusters());
@@ -317,6 +317,7 @@ struct LongrangecorrDerived {
317317
template <CorrelationContainer::CFStep step, typename TTarget, typename TTriggers, typename TAssocs>
318318
void fillCorrHist(TTarget target, TTriggers const& triggers, TAssocs const& assocs, bool mixing, float vz, float multiplicity, float eventWeight)
319319
{
320+
int fSampleIndex = gRandom->Uniform(0, cfgSel.cfgSampleSize);
320321
for (auto const& triggerTrack : triggers) {
321322
auto trigAmpl = 1.0f;
322323
if constexpr (requires { triggerTrack.channelID(); }) {
@@ -338,11 +339,11 @@ struct LongrangecorrDerived {
338339
if (!mixing) {
339340
fillTrigTrackQA(triggerTrack);
340341
if constexpr (requires { triggerTrack.channelID(); }) {
341-
histos.fill(HIST("Trig_hist"), vz, multiplicity, 1.0, 1.0, eventWeight * trigAmpl);
342+
histos.fill(HIST("Trig_hist"), fSampleIndex, vz, multiplicity, 1.0, 1.0, eventWeight * trigAmpl);
342343
} else if constexpr (requires { triggerTrack.invMass(); }) {
343-
histos.fill(HIST("Trig_hist"), vz, multiplicity, triggerTrack.pt(), triggerTrack.invMass(), eventWeight * trigAmpl);
344+
histos.fill(HIST("Trig_hist"), fSampleIndex, vz, multiplicity, triggerTrack.pt(), triggerTrack.invMass(), eventWeight * trigAmpl);
344345
} else {
345-
histos.fill(HIST("Trig_hist"), vz, multiplicity, triggerTrack.pt(), 1.0, eventWeight * trigAmpl);
346+
histos.fill(HIST("Trig_hist"), fSampleIndex, vz, multiplicity, triggerTrack.pt(), 1.0, eventWeight * trigAmpl);
346347
}
347348
}
348349
for (auto const& assoTrack : assocs) {
@@ -365,11 +366,11 @@ struct LongrangecorrDerived {
365366
histos.fill(HIST("deltaEta_deltaPhi_mixed"), deltaPhi, deltaEta, eventWeight * trigAmpl * assoAmpl);
366367
}
367368
if constexpr (requires { triggerTrack.channelID(); }) {
368-
target->getPairHist()->Fill(step, vz, multiplicity, 1.0, 1.0, deltaPhi, deltaEta, 1.0, eventWeight * trigAmpl * assoAmpl);
369+
target->getPairHist()->Fill(step, fSampleIndex, vz, multiplicity, 1.0, deltaPhi, deltaEta, 1.0, eventWeight * trigAmpl * assoAmpl);
369370
} else if constexpr (requires { triggerTrack.invMass(); }) {
370-
target->getPairHist()->Fill(step, vz, multiplicity, triggerTrack.pt(), triggerTrack.pt(), deltaPhi, deltaEta, triggerTrack.invMass(), eventWeight * trigAmpl * assoAmpl);
371+
target->getPairHist()->Fill(step, fSampleIndex, vz, multiplicity, triggerTrack.pt(), deltaPhi, deltaEta, triggerTrack.invMass(), eventWeight * trigAmpl * assoAmpl);
371372
} else {
372-
target->getPairHist()->Fill(step, vz, multiplicity, triggerTrack.pt(), triggerTrack.pt(), deltaPhi, deltaEta, 1.0, eventWeight * trigAmpl * assoAmpl);
373+
target->getPairHist()->Fill(step, fSampleIndex, vz, multiplicity, triggerTrack.pt(), deltaPhi, deltaEta, 1.0, eventWeight * trigAmpl * assoAmpl);
373374
}
374375
} // associated tracks
375376
} // trigger tracks

0 commit comments

Comments
 (0)