Skip to content

Commit e4ccc26

Browse files
authored
Merge branch 'AliceO2Group:master' into master
2 parents 8450853 + ccf08e8 commit e4ccc26

File tree

25 files changed

+3083
-578
lines changed

25 files changed

+3083
-578
lines changed

Common/TableProducer/zdcExtraTableProducer.cxx

Lines changed: 75 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -58,17 +58,18 @@ struct ZdcExtraTableProducer {
5858
// Event selections
5959
Configurable<bool> cfgEvSelSel8{"cfgEvSelSel8", true, "Event selection: sel8"};
6060
Configurable<float> cfgEvSelVtxZ{"cfgEvSelVtxZ", 10, "Event selection: zVtx"};
61-
Configurable<bool> cfgEvSelsDoOccupancySel{"cfgEvSelsDoOccupancySel", true, "Event selection: do occupancy selection"};
61+
Configurable<bool> cfgEvSelsDoOccupancySel{"cfgEvSelsDoOccupancySel", false, "Event selection: do occupancy selection"};
6262
Configurable<float> cfgEvSelsMaxOccupancy{"cfgEvSelsMaxOccupancy", 10000, "Event selection: set max occupancy"};
63-
Configurable<bool> cfgEvSelsNoSameBunchPileupCut{"cfgEvSelsNoSameBunchPileupCut", true, "Event selection: no same bunch pileup cut"};
64-
Configurable<bool> cfgEvSelsIsGoodZvtxFT0vsPV{"cfgEvSelsIsGoodZvtxFT0vsPV", true, "Event selection: is good ZVTX FT0 vs PV"};
65-
Configurable<bool> cfgEvSelsNoCollInTimeRangeStandard{"cfgEvSelsNoCollInTimeRangeStandard", true, "Event selection: no collision in time range standard"};
66-
Configurable<bool> cfgEvSelsIsVertexITSTPC{"cfgEvSelsIsVertexITSTPC", true, "Event selection: is vertex ITSTPC"};
67-
Configurable<bool> cfgEvSelsIsGoodITSLayersAll{"cfgEvSelsIsGoodITSLayersAll", true, "Event selection: is good ITS layers all"};
63+
Configurable<bool> cfgEvSelsNoSameBunchPileupCut{"cfgEvSelsNoSameBunchPileupCut", false, "Event selection: no same bunch pileup cut"};
64+
Configurable<bool> cfgEvSelsIsGoodZvtxFT0vsPV{"cfgEvSelsIsGoodZvtxFT0vsPV", false, "Event selection: is good ZVTX FT0 vs PV"};
65+
Configurable<bool> cfgEvSelsNoCollInTimeRangeStandard{"cfgEvSelsNoCollInTimeRangeStandard", false, "Event selection: no collision in time range standard"};
66+
Configurable<bool> cfgEvSelsIsVertexITSTPC{"cfgEvSelsIsVertexITSTPC", false, "Event selection: is vertex ITSTPC"};
67+
Configurable<bool> cfgEvSelsIsGoodITSLayersAll{"cfgEvSelsIsGoodITSLayersAll", false, "Event selection: is good ITS layers all"};
6868
// Calibration settings
6969
Configurable<float> cfgCalibrationDownscaling{"cfgCalibrationDownscaling", 1.f, "Percentage of events to be saved to derived table"};
7070

71-
HistogramRegistry registry{"Histos", {}, OutputObjHandlingPolicy::AnalysisObject};
71+
// Output settings
72+
Configurable<bool> cfgSaveQaHistos{"cfgSaveQaHistos", false, "Flag to save QA histograms"};
7273

7374
enum SelectionCriteria {
7475
evSel_zvtx,
@@ -83,8 +84,27 @@ struct ZdcExtraTableProducer {
8384
nEventSelections
8485
};
8586

87+
HistogramRegistry registry{"Histos", {}, OutputObjHandlingPolicy::AnalysisObject};
88+
8689
void init(InitContext const&)
8790
{
91+
92+
registry.add("hEventCount", "Number of Event; Cut; #Events Passed Cut", {HistType::kTH1D, {{nEventSelections, 0, nEventSelections}}});
93+
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_allEvents + 1, "All events");
94+
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_zvtx + 1, "vtxZ");
95+
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_sel8 + 1, "Sel8");
96+
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_occupancy + 1, "kOccupancy");
97+
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_kNoSameBunchPileup + 1, "kNoSameBunchPileup");
98+
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_kIsGoodZvtxFT0vsPV + 1, "kIsGoodZvtxFT0vsPV");
99+
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_kNoCollInTimeRangeStandard + 1, "kNoCollInTimeRangeStandard");
100+
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_kIsVertexITSTPC + 1, "kIsVertexITSTPC");
101+
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_kIsGoodITSLayersAll + 1, "kIsGoodITSLayersAll");
102+
103+
// Skip histogram registration if QA flag is false
104+
if (!cfgSaveQaHistos) {
105+
return;
106+
}
107+
88108
registry.add("ZNApmc", "ZNApmc; ZNA PMC; Entries", {HistType::kTH1F, {{nBins, -0.5, maxZN}}});
89109
registry.add("ZNCpmc", "ZNCpmc; ZNC PMC; Entries", {HistType::kTH1F, {{nBins, -0.5, maxZN}}});
90110
registry.add("ZNApm1", "ZNApm1; ZNA PM1; Entries", {HistType::kTH1F, {{nBins, -0.5, maxZN}}});
@@ -100,17 +120,6 @@ struct ZdcExtraTableProducer {
100120

101121
registry.add("ZNACentroid", "ZNA Centroid; X; Y", {HistType::kTH2F, {{50, -1.5, 1.5}, {50, -1.5, 1.5}}});
102122
registry.add("ZNCCentroid", "ZNC Centroid; X; Y", {HistType::kTH2F, {{50, -1.5, 1.5}, {50, -1.5, 1.5}}});
103-
104-
registry.add("hEventCount", "Number of Event; Cut; #Events Passed Cut", {HistType::kTH1D, {{nEventSelections, 0, nEventSelections}}});
105-
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_allEvents + 1, "All events");
106-
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_zvtx + 1, "vtxZ");
107-
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_sel8 + 1, "Sel8");
108-
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_occupancy + 1, "kOccupancy");
109-
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_kNoSameBunchPileup + 1, "kNoSameBunchPileup");
110-
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_kIsGoodZvtxFT0vsPV + 1, "kIsGoodZvtxFT0vsPV");
111-
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_kNoCollInTimeRangeStandard + 1, "kNoCollInTimeRangeStandard");
112-
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_kIsVertexITSTPC + 1, "kIsVertexITSTPC");
113-
registry.get<TH1>(HIST("hEventCount"))->GetXaxis()->SetBinLabel(evSel_kIsGoodITSLayersAll + 1, "kIsGoodITSLayersAll");
114123
}
115124

116125
template <typename TCollision>
@@ -176,7 +185,7 @@ struct ZdcExtraTableProducer {
176185
void process(ColEvSels const& cols, BCsRun3 const& /*bcs*/, aod::Zdcs const& /*zdcs*/)
177186
{
178187
// collision-based event selection
179-
int nTowers = 4; // number of ZDC towers
188+
constexpr int NTowers = 4; // number of ZDC towers
180189

181190
for (auto const& collision : cols) {
182191
const auto& foundBC = collision.foundBC_as<BCsRun3>();
@@ -185,6 +194,24 @@ struct ZdcExtraTableProducer {
185194

186195
uint8_t evSelection = eventSelected(collision);
187196

197+
// add event selection
198+
if (cfgEvSelSel8 && !(evSelection & (1 << evSel_sel8)))
199+
continue;
200+
if (!(evSelection & (1 << evSel_zvtx)))
201+
continue;
202+
if (cfgEvSelsDoOccupancySel && !(evSelection & (1 << evSel_occupancy)))
203+
continue;
204+
if (cfgEvSelsNoSameBunchPileupCut && !(evSelection & (1 << evSel_kNoSameBunchPileup)))
205+
continue;
206+
if (cfgEvSelsIsGoodZvtxFT0vsPV && !(evSelection & (1 << evSel_kIsGoodZvtxFT0vsPV)))
207+
continue;
208+
if (cfgEvSelsNoCollInTimeRangeStandard && !(evSelection & (1 << evSel_kNoCollInTimeRangeStandard)))
209+
continue;
210+
if (cfgEvSelsIsVertexITSTPC && !(evSelection & (1 << evSel_kIsVertexITSTPC)))
211+
continue;
212+
if (cfgEvSelsIsGoodITSLayersAll && !(evSelection & (1 << evSel_kIsGoodITSLayersAll)))
213+
continue;
214+
188215
float centrality = collision.centFT0C();
189216

190217
// To assure that ZN have a genuine signal (tagged by the relative TDC)
@@ -196,6 +223,7 @@ struct ZdcExtraTableProducer {
196223
//
197224
double tdcZNC = zdc.timeZNC();
198225
double tdcZNA = zdc.timeZNA();
226+
199227
// OR we can select a narrow window in both ZN TDCs using the configurable parameters
200228
if (tdcCut) { // a narrow TDC window is set
201229
if ((tdcZNC >= tdcZNmincut) && (tdcZNC <= tdcZNmaxcut)) {
@@ -219,29 +247,34 @@ struct ZdcExtraTableProducer {
219247
double pmqZNA[4] = {};
220248
//
221249
if (isZNChit) {
222-
for (int it = 0; it < nTowers; it++) {
250+
for (int it = 0; it < NTowers; it++) {
223251
pmqZNC[it] = (zdc.energySectorZNC())[it];
224252
sumZNC += pmqZNC[it];
225253
}
226-
registry.get<TH1>(HIST("ZNCpmc"))->Fill(pmcZNC);
227-
registry.get<TH1>(HIST("ZNCpm1"))->Fill(pmqZNC[0]);
228-
registry.get<TH1>(HIST("ZNCpm2"))->Fill(pmqZNC[1]);
229-
registry.get<TH1>(HIST("ZNCpm3"))->Fill(pmqZNC[2]);
230-
registry.get<TH1>(HIST("ZNCpm4"))->Fill(pmqZNC[3]);
231-
registry.get<TH1>(HIST("ZNCsumq"))->Fill(sumZNC);
254+
255+
if (cfgSaveQaHistos) {
256+
registry.get<TH1>(HIST("ZNCpmc"))->Fill(pmcZNC);
257+
registry.get<TH1>(HIST("ZNCpm1"))->Fill(pmqZNC[0]);
258+
registry.get<TH1>(HIST("ZNCpm2"))->Fill(pmqZNC[1]);
259+
registry.get<TH1>(HIST("ZNCpm3"))->Fill(pmqZNC[2]);
260+
registry.get<TH1>(HIST("ZNCpm4"))->Fill(pmqZNC[3]);
261+
registry.get<TH1>(HIST("ZNCsumq"))->Fill(sumZNC);
262+
}
232263
}
233264
if (isZNAhit) {
234-
for (int it = 0; it < nTowers; it++) {
265+
for (int it = 0; it < NTowers; it++) {
235266
pmqZNA[it] = (zdc.energySectorZNA())[it];
236267
sumZNA += pmqZNA[it];
237268
}
238269
//
239-
registry.get<TH1>(HIST("ZNApmc"))->Fill(pmcZNA);
240-
registry.get<TH1>(HIST("ZNApm1"))->Fill(pmqZNA[0]);
241-
registry.get<TH1>(HIST("ZNApm2"))->Fill(pmqZNA[1]);
242-
registry.get<TH1>(HIST("ZNApm3"))->Fill(pmqZNA[2]);
243-
registry.get<TH1>(HIST("ZNApm4"))->Fill(pmqZNA[3]);
244-
registry.get<TH1>(HIST("ZNAsumq"))->Fill(sumZNA);
270+
if (cfgSaveQaHistos) {
271+
registry.get<TH1>(HIST("ZNApmc"))->Fill(pmcZNA);
272+
registry.get<TH1>(HIST("ZNApm1"))->Fill(pmqZNA[0]);
273+
registry.get<TH1>(HIST("ZNApm2"))->Fill(pmqZNA[1]);
274+
registry.get<TH1>(HIST("ZNApm3"))->Fill(pmqZNA[2]);
275+
registry.get<TH1>(HIST("ZNApm4"))->Fill(pmqZNA[3]);
276+
registry.get<TH1>(HIST("ZNAsumq"))->Fill(sumZNA);
277+
}
245278
}
246279

247280
// Q-vectors (centroid) calculation
@@ -257,8 +290,7 @@ struct ZdcExtraTableProducer {
257290
float numXZNA = 0., numYZNA = 0., denZNA = 0.;
258291

259292
// Calculate weighted sums of the x and y coordinates
260-
constexpr int kNTowers = 4; // number of ZDC towers
261-
for (int i = 0; i < kNTowers; i++) {
293+
for (int i = 0; i < NTowers; i++) {
262294
if (pmqZNC[i] > 0.) {
263295
float wZNC = std::pow(pmqZNC[i], kAlpha);
264296
numXZNC -= X[i] * wZNC; // numerator x (minus sign due to opposite orientation of ZNC)
@@ -307,8 +339,14 @@ struct ZdcExtraTableProducer {
307339
centroidZNA[0] = 999.;
308340
centroidZNA[1] = 999.;
309341
}
310-
registry.get<TH2>(HIST("ZNCCentroid"))->Fill(centroidZNC[0], centroidZNC[1]);
311-
registry.get<TH2>(HIST("ZNACentroid"))->Fill(centroidZNA[0], centroidZNA[1]);
342+
if (cfgSaveQaHistos) {
343+
if (isZNChit) {
344+
registry.get<TH2>(HIST("ZNCCentroid"))->Fill(centroidZNC[0], centroidZNC[1]);
345+
}
346+
if (isZNAhit) {
347+
registry.get<TH2>(HIST("ZNACentroid"))->Fill(centroidZNA[0], centroidZNA[1]);
348+
}
349+
}
312350

313351
auto vz = collision.posZ();
314352
auto vx = collision.posX();

PWGCF/Flow/Tasks/pidFlowPtCorr.cxx

Lines changed: 47 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ struct PidFlowPtCorr {
144144
O2_DEFINE_CONFIGURABLE(cfgOutPutPtSpectra, bool, false, "output pt spectra for data, MC and RECO");
145145
O2_DEFINE_CONFIGURABLE(cfgCheck2MethodDiff, bool, false, "check difference between v2' && v2''");
146146
O2_DEFINE_CONFIGURABLE(cfgUseITSOnly4MeanPt, bool, false, "use ITS only to calculate mean pt");
147+
O2_DEFINE_CONFIGURABLE(cfgClosureTest, int, 0, "choose (val) percent particle from charged to pass Pion PID selection");
147148
} switchsOpts;
148149

149150
/**
@@ -566,14 +567,23 @@ struct PidFlowPtCorr {
566567
registry.add("meanptCentNbs/hChargedPionWithNpair", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
567568
registry.add("meanptCentNbs/hChargedPionFull", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
568569
registry.add("meanptCentNbs/hPion", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
570+
registry.add("meanptCentNbs/hPionMeanptWeightPidflow", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
571+
572+
if (switchsOpts.cfgClosureTest.value != 0) {
573+
registry.add("meanptCentNbs/hPionMeanptWeightC22pure", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
574+
registry.add("meanptCentNbs/hPionMeanptWeightMeanpt", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
575+
registry.add("meanptCentNbs/hPionMeanptWeightC22prime", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
576+
}
569577

570578
registry.add("meanptCentNbs/hChargedKaonWithNpair", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
571579
registry.add("meanptCentNbs/hChargedKaonFull", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
572580
registry.add("meanptCentNbs/hKaon", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
581+
registry.add("meanptCentNbs/hKaonMeanptWeightPidflow", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
573582

574583
registry.add("meanptCentNbs/hChargedProtonWithNpair", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
575584
registry.add("meanptCentNbs/hChargedProtonFull", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
576585
registry.add("meanptCentNbs/hProton", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
586+
registry.add("meanptCentNbs/hProtonMeanptWeightPidflow", "", {HistType::kTProfile3D, {cfgaxisMeanPt, axisMultiplicity, meanptC22GraphOpts.cfgaxisBootstrap}});
577587
// end pid
578588
// end init tprofile3d for <2'> - meanpt
579589

@@ -715,6 +725,13 @@ struct PidFlowPtCorr {
715725
template <typename TrackObject>
716726
bool isPion(TrackObject const& track)
717727
{
728+
if (switchsOpts.cfgClosureTest.value != 0) {
729+
float rnd4test = fRndm->Rndm() * 100;
730+
if (rnd4test < switchsOpts.cfgClosureTest.value) {
731+
return true;
732+
}
733+
} // closure test
734+
718735
bool resultPion = true;
719736

720737
// Declare ITSResponse object internally to get ITS Sigma
@@ -911,20 +928,19 @@ struct PidFlowPtCorr {
911928
return;
912929

913930
registry.fill(HIST("meanptCentNbs/hCharged"), ptSum / nch, cent, rndm * cfgFlowNbootstrap, val, nch * dnx);
914-
registry.fill(HIST("meanptCentNbs/hChargedMeanpt"), ptSum / nch, cent, rndm * cfgFlowNbootstrap, ptSum / nch, nch * dnx);
931+
registry.fill(HIST("meanptCentNbs/hChargedMeanpt"), ptSum / nch, cent, rndm * cfgFlowNbootstrap, ptSum / nch, nch * dnx * val);
915932
}
916933

917934
/**
918-
* @brief note that the graph's x axis is pid meanpt, for <2'> weight is nPid * npairPID, for <2> weight is nch * npair
935+
* @brief note that the graph's x axis is pid meanpt, for <2'> weight is nPid * npairPID, for <2> weight is nPid * npair
919936
*
920937
* @param cent
921-
* @param nch
922938
* @param rndm
923939
* @param type
924940
* @param pidPtSum
925941
* @param nPid
926942
*/
927-
void fillFC4PtC22(const double& cent, const double& nch, const double& rndm, MyParticleType type, const double& pidPtSum, const double& nPid)
943+
void fillFC4PtC22(const double& cent, const double& rndm, MyParticleType type, const double& pidPtSum, const double& nPid)
928944
{
929945
// <2>
930946
double dnx, val;
@@ -951,8 +967,27 @@ struct PidFlowPtCorr {
951967
return;
952968

953969
registry.fill(HIST("meanptCentNbs/hPion"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, pidc22, nPid * npairPid);
954-
registry.fill(HIST("meanptCentNbs/hChargedPionFull"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, val, dnx * nch);
970+
registry.fill(HIST("meanptCentNbs/hChargedPionFull"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, val, dnx * nPid);
955971
registry.fill(HIST("meanptCentNbs/hChargedPionWithNpair"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, val, dnx);
972+
registry.fill(HIST("meanptCentNbs/hPionMeanptWeightPidflow"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, pidPtSum / nPid, nPid * npairPid * pidc22 * pidc22 / val);
973+
974+
if (switchsOpts.cfgClosureTest.value != 0) {
975+
double npair4c22pure = fGFW->Calculate(corrconfigs.at(29), 0, kTRUE).real();
976+
if (npair4c22pure > 1e-3)
977+
registry.fill(HIST("meanptCentNbs/hPionMeanptWeightC22pure"),
978+
pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap,
979+
pidPtSum / nPid,
980+
nPid * npairPid * fGFW->Calculate(corrconfigs.at(29), 0, kFALSE).real() / npair4c22pure);
981+
982+
registry.fill(HIST("meanptCentNbs/hPionMeanptWeightMeanpt"),
983+
pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap,
984+
pidPtSum / nPid,
985+
nPid * npairPid * pidPtSum / nPid);
986+
registry.fill(HIST("meanptCentNbs/hPionMeanptWeightC22prime"),
987+
pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap,
988+
pidPtSum / nPid,
989+
nPid * npairPid * pidc22);
990+
}
956991

957992
break;
958993
// end pion
@@ -967,8 +1002,9 @@ struct PidFlowPtCorr {
9671002
return;
9681003

9691004
registry.fill(HIST("meanptCentNbs/hKaon"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, pidc22, nPid * npairPid);
970-
registry.fill(HIST("meanptCentNbs/hChargedKaonFull"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, val, dnx * nch);
1005+
registry.fill(HIST("meanptCentNbs/hChargedKaonFull"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, val, dnx * nPid);
9711006
registry.fill(HIST("meanptCentNbs/hChargedKaonWithNpair"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, val, dnx);
1007+
registry.fill(HIST("meanptCentNbs/hKaonMeanptWeightPidflow"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, pidPtSum / nPid, nPid * npairPid * pidc22 * pidc22 / val);
9721008

9731009
break;
9741010
// end kaon
@@ -983,8 +1019,9 @@ struct PidFlowPtCorr {
9831019
return;
9841020

9851021
registry.fill(HIST("meanptCentNbs/hProton"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, pidc22, nPid * npairPid);
986-
registry.fill(HIST("meanptCentNbs/hChargedProtonFull"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, val, dnx * nch);
1022+
registry.fill(HIST("meanptCentNbs/hChargedProtonFull"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, val, dnx * nPid);
9871023
registry.fill(HIST("meanptCentNbs/hChargedProtonWithNpair"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, val, dnx);
1024+
registry.fill(HIST("meanptCentNbs/hProtonMeanptWeightPidflow"), pidPtSum / nPid, cent, rndm * cfgFlowNbootstrap, pidPtSum / nPid, nPid * npairPid * pidc22 * pidc22 / val);
9881025

9891026
break;
9901027
// end proton
@@ -2066,13 +2103,13 @@ struct PidFlowPtCorr {
20662103

20672104
fillFC4PtC22(cent, ptSum, nch, rndm);
20682105
if (nPionWeighted > 0)
2069-
fillFC4PtC22(cent, nch, rndm, MyParticleType::kPion, pionPtSum, nPionWeighted);
2106+
fillFC4PtC22(cent, rndm, MyParticleType::kPion, pionPtSum, nPionWeighted);
20702107

20712108
if (nKaonWeighted > 0)
2072-
fillFC4PtC22(cent, nch, rndm, MyParticleType::kKaon, kaonPtSum, nKaonWeighted);
2109+
fillFC4PtC22(cent, rndm, MyParticleType::kKaon, kaonPtSum, nKaonWeighted);
20732110

20742111
if (nProtonWeighted > 0)
2075-
fillFC4PtC22(cent, nch, rndm, MyParticleType::kProton, protonPtSum, nProtonWeighted);
2112+
fillFC4PtC22(cent, rndm, MyParticleType::kProton, protonPtSum, nProtonWeighted);
20762113

20772114
if (switchsOpts.cfgOutPutPtSpectra.value) {
20782115
// charged calculation

0 commit comments

Comments
 (0)