Skip to content

Commit 96e1226

Browse files
[PWGDQ] REFFLOW with eta gap + fixing bug TProfile (#8483)
1 parent bab862e commit 96e1226

File tree

5 files changed

+86
-10
lines changed

5 files changed

+86
-10
lines changed

PWGDQ/Core/CutsLibrary.cxx

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3385,6 +3385,34 @@ AnalysisCut* o2::aod::dqcuts::GetAnalysisCut(const char* cutName)
33853385
return cut;
33863386
}
33873387

3388+
if (!nameStr.compare("eventStandardSel8PbPbQualityTightTrackOccupancyCollInTime")) {
3389+
cut->AddCut(VarManager::kVtxZ, -10.0, 10.0);
3390+
cut->AddCut(VarManager::kIsSel8, 0.5, 1.5);
3391+
cut->AddCut(VarManager::kIsNoTFBorder, 0.5, 1.5);
3392+
cut->AddCut(VarManager::kIsNoITSROFBorder, 0.5, 1.5);
3393+
cut->AddCut(VarManager::kIsNoSameBunch, 0.5, 1.5);
3394+
cut->AddCut(VarManager::kIsGoodZvtxFT0vsPV, 0.5, 1.5);
3395+
cut->AddCut(VarManager::kCentFT0C, 0.0, 90.0);
3396+
cut->AddCut(VarManager::kTrackOccupancyInTimeRange, 0., 500);
3397+
cut->AddCut(VarManager::kNoCollInTimeRangeStandard, 0.5, 1.5);
3398+
3399+
return cut;
3400+
}
3401+
3402+
if (!nameStr.compare("eventStandardSel8PbPbQualityTightTrackOccupancyCollInTime")) {
3403+
cut->AddCut(VarManager::kVtxZ, -10.0, 10.0);
3404+
cut->AddCut(VarManager::kIsSel8, 0.5, 1.5);
3405+
cut->AddCut(VarManager::kIsNoTFBorder, 0.5, 1.5);
3406+
cut->AddCut(VarManager::kIsNoITSROFBorder, 0.5, 1.5);
3407+
cut->AddCut(VarManager::kIsNoSameBunch, 0.5, 1.5);
3408+
cut->AddCut(VarManager::kIsGoodZvtxFT0vsPV, 0.5, 1.5);
3409+
cut->AddCut(VarManager::kCentFT0C, 0.0, 90.0);
3410+
cut->AddCut(VarManager::kTrackOccupancyInTimeRange, 0., 1000);
3411+
cut->AddCut(VarManager::kNoCollInTimeRangeStandard, 0.5, 1.5);
3412+
3413+
return cut;
3414+
}
3415+
33883416
std::vector<double> vecOccupancies = {0.,
33893417
250.,
33903418
500.,

PWGDQ/Core/HistogramManager.cxx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co
179179
varVector.push_back(varX); // variables on each axis
180180
varVector.push_back(varY);
181181
varVector.push_back(varZ);
182-
varVector.push_back(varT); // variable used for profiling in case of TProfile3D
182+
varVector.push_back(varT); // variable used for profiling in case of TProfile3D
183183
varVector.push_back(isFillLabelx ? 1 : 0); // whether to fill with the x-axis labels
184184
std::list varList = fVariablesMap[histClass];
185185
varList.push_back(varVector);
@@ -389,7 +389,7 @@ void HistogramManager::AddHistogram(const char* histClass, const char* hname, co
389389
varVector.push_back(varX); // variables on each axis
390390
varVector.push_back(varY);
391391
varVector.push_back(varZ);
392-
varVector.push_back(varT); // variable used for profiling in case of TProfile3D
392+
varVector.push_back(varT); // variable used for profiling in case of TProfile3D
393393
varVector.push_back(isFillLabelx ? 1 : 0); // whether to fill with the x-axis labels
394394
std::list varList = fVariablesMap[histClass];
395395
varList.push_back(varVector);
@@ -795,9 +795,9 @@ void HistogramManager::FillHistClass(const char* className, Float_t* values)
795795
if (isProfile) {
796796
if (varW > kNothing) {
797797
if (isFillLabelx) {
798-
(reinterpret_cast<TProfile*>(h))->Fill(Form("%d", static_cast<int>(values[varX])), values[varW]);
798+
(reinterpret_cast<TProfile*>(h))->Fill(Form("%d", static_cast<int>(values[varX])), values[varY], values[varW]);
799799
} else {
800-
(reinterpret_cast<TProfile*>(h))->Fill(values[varX], values[varW]);
800+
(reinterpret_cast<TProfile*>(h))->Fill(values[varX], values[varY], values[varW]);
801801
}
802802
} else {
803803
if (isFillLabelx) {
@@ -880,7 +880,7 @@ void HistogramManager::FillHistClass(const char* className, Float_t* values)
880880
}
881881
}
882882
} // end else
883-
} // end loop over histograms
883+
} // end loop over histograms
884884
}
885885

886886
//____________________________________________________________________________________

PWGDQ/Core/HistogramsLibrary.cxx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -241,10 +241,12 @@ void o2::aod::dqhistograms::DefineHistograms(HistogramManager* hm, const char* h
241241
hm->AddHistogram(histClass, "Psi2A_CentFT0C", "", false, 18, 0.0, 90.0, VarManager::kCentFT0C, 100, -2.0, 2.0, VarManager::kPsi2A);
242242
hm->AddHistogram(histClass, "Psi2B_CentFT0C", "", false, 18, 0.0, 90.0, VarManager::kCentFT0C, 100, -2.0, 2.0, VarManager::kPsi2B);
243243
hm->AddHistogram(histClass, "Psi2C_CentFT0C", "", false, 18, 0.0, 90.0, VarManager::kCentFT0C, 100, -2.0, 2.0, VarManager::kPsi2C);
244-
hm->AddHistogram(histClass, "centrFT0C_Corr2REF_ev", "", true, 18, 0.0, 90.0, VarManager::kCentFT0C, 500, -1.0, 1.0, VarManager::kCORR2REF, VarManager::kM11REF);
245-
hm->AddHistogram(histClass, "centrFT0C_Corr4REF_ev", "", true, 18, 0.0, 90.0, VarManager::kCentFT0C, 500, -1.0, 1.0, VarManager::kCORR4REF, VarManager::kM1111REF);
246-
hm->AddHistogram(histClass, "Corr2REFerrors", "", 4, std::array<int, 4>{VarManager::kCentFT0C, VarManager::kCORR2REFw, VarManager::kCORR2REFsquaredw, VarManager::kM11REF}.data(), std::array<int, 4>{18, 200, 200, 200}.data(), std::array<double, 4>{0.0, -40000.0, -10.0, 0.0}.data(), std::array<double, 4>{90.0, 40000.0, 1000.0, 7000000.0}.data(), nullptr, -1, true, true);
247-
hm->AddHistogram(histClass, "Corr4REFerrors", "", 4, std::array<int, 4>{VarManager::kCentFT0C, VarManager::kCORR4REFw, VarManager::kCORR4REFsquaredw, VarManager::kM1111REF}.data(), std::array<int, 4>{18, 200, 200, 200}.data(), std::array<double, 4>{0.0, -90000000.0, -1000.0, 0.0}.data(), std::array<double, 4>{90.0, 90000000.0, 40000.0, 9000000000000.0}.data(), nullptr, -1, true, true);
244+
hm->AddHistogram(histClass, "centrFT0C_Corr2REF_ev", "", true, 100, 0.0, 100.0, VarManager::kCentFT0C, 250, -1.0, 1.0, VarManager::kCORR2REF, VarManager::kM11REF);
245+
hm->AddHistogram(histClass, "centrFT0C_Corr2REFetagap_ev", "", true, 100, 0.0, 100.0, VarManager::kCentFT0C, 250, -1.0, 1.0, VarManager::kCORR2REFetagap, VarManager::kM11REFetagap);
246+
hm->AddHistogram(histClass, "centrFT0C_Corr4REF_ev", "", true, 100, 0.0, 100.0, VarManager::kCentFT0C, 250, -1.0, 1.0, VarManager::kCORR4REF, VarManager::kM1111REF);
247+
hm->AddHistogram(histClass, "Corr2REFerrorsetagap", "", 4, std::array<int, 4>{VarManager::kCentFT0C, VarManager::kCORR2REFetagapw, VarManager::kCORR2REFetagapsquaredw, VarManager::kM11REFetagap}.data(), std::array<int, 4>{100, 5000, 5000, 5000}.data(), std::array<double, 4>{0.0, -5000.0, 0.0, 0.0}.data(), std::array<double, 4>{100.0, 5000.0, 100.0, 300000.0}.data(), nullptr, -1, true, true);
248+
hm->AddHistogram(histClass, "Corr2REFerrors", "", 4, std::array<int, 4>{VarManager::kCentFT0C, VarManager::kCORR2REFw, VarManager::kCORR2REFsquaredw, VarManager::kM11REF}.data(), std::array<int, 4>{100, 10000, 10000, 10000}.data(), std::array<double, 4>{0.0, -40000.0, 0.0, 0.0}.data(), std::array<double, 4>{100.0, 40000.0, 100.0, 6000000.0}.data(), nullptr, -1, true, true);
249+
hm->AddHistogram(histClass, "Corr4REFerrors", "", 4, std::array<int, 4>{VarManager::kCentFT0C, VarManager::kCORR4REFw, VarManager::kCORR4REFsquaredw, VarManager::kM1111REF}.data(), std::array<int, 4>{100, 100000, 100000, 100000}.data(), std::array<double, 4>{0.0, -30000000.0, 0.0, 0.0}.data(), std::array<double, 4>{100.0, 90000000.0, 40000.0, 9000000000000.0}.data(), nullptr, -1, true, true);
248250
if (subGroupStr.Contains("cross")) {
249251
hm->AddHistogram(histClass, "Q1ZNACXX_CentFT0C", "", false, 90, 0.0, 90.0, VarManager::kCentFT0C, 4000, -2, 2, VarManager::kQ1ZNACXX);
250252
hm->AddHistogram(histClass, "Q1ZNACYY_CentFT0C", "", false, 90, 0.0, 90.0, VarManager::kCentFT0C, 4000, -2, 2, VarManager::kQ1ZNACYY);

PWGDQ/Core/VarManager.cxx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,8 @@ void VarManager::SetDefaultVarNames()
360360
fgVariableUnits[kMultNTracksITSTPC] = "";
361361
fgVariableNames[kTrackOccupancyInTimeRange] = "track occupancy in TPC drift time (PV tracks)";
362362
fgVariableUnits[kTrackOccupancyInTimeRange] = "";
363+
fgVariableNames[kNoCollInTimeRangeStandard] = "track occupancy in TPC drift standart time";
364+
fgVariableUnits[kNoCollInTimeRangeStandard] = "";
363365
fgVariableNames[kMultAllTracksITSTPC] = "# ITS-TPC tracks";
364366
fgVariableUnits[kMultAllTracksITSTPC] = "";
365367
fgVariableNames[kMultAllTracksTPCOnly] = "# TPC only tracks";
@@ -755,18 +757,30 @@ void VarManager::SetDefaultVarNames()
755757
fgVariableUnits[kS31A] = "";
756758
fgVariableNames[kM11REF] = "M_{11}^{REF} ";
757759
fgVariableUnits[kM11REF] = "";
760+
fgVariableNames[kM11REFetagap] = "M_{11}^{REF}-etagap ";
761+
fgVariableUnits[kM11REFetagap] = "";
758762
fgVariableNames[kM01POI] = "M^{'}_{01}^{POI} ";
759763
fgVariableUnits[kM01POI] = "";
760764
fgVariableNames[kM1111REF] = "M_{1111}^{REF} ";
761765
fgVariableUnits[kM1111REF] = "";
766+
fgVariableNames[kM1111REFsmall] = "M_{1111}^{REF}small ";
767+
fgVariableUnits[kM1111REFsmall] = "";
762768
fgVariableNames[kM0111POI] = "M^{'}_{0111}^{POI} ";
763769
fgVariableUnits[kM0111POI] = "";
764770
fgVariableNames[kCORR2REF] = "<2> ";
765771
fgVariableUnits[kCORR2REF] = "";
766772
fgVariableNames[kCORR2REFw] = "<2w> ";
767773
fgVariableUnits[kCORR2REFw] = "";
774+
fgVariableNames[kCORR2REFsquared] = "<M11*2^2> ";
775+
fgVariableUnits[kCORR2REFsquared] = "";
768776
fgVariableNames[kCORR2REFsquaredw] = "<M11*2^2> ";
769777
fgVariableUnits[kCORR2REFsquaredw] = "";
778+
fgVariableNames[kCORR2REFetagap] = "<2-etagap> ";
779+
fgVariableUnits[kCORR2REFetagap] = "";
780+
fgVariableNames[kCORR2REFetagapw] = "<2w-etagap> ";
781+
fgVariableUnits[kCORR2REFetagapw] = "";
782+
fgVariableNames[kCORR2REFetagapsquaredw] = "<M11*2^2-etagap> ";
783+
fgVariableUnits[kCORR2REFetagapsquaredw] = "";
770784
fgVariableNames[kCORR2POI] = "<2'> ";
771785
fgVariableUnits[kCORR2POI] = "";
772786
fgVariableNames[kCORR2POIw] = "<2'w> ";

PWGDQ/Core/VarManager.h

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,6 +235,7 @@ class VarManager : public TObject
235235
kMultNTracksTPCOnly,
236236
kMultNTracksITSTPC,
237237
kTrackOccupancyInTimeRange,
238+
kNoCollInTimeRangeStandard,
238239
kMultAllTracksTPCOnly,
239240
kMultAllTracksITSTPC,
240241
kNTPCpileupContribA,
@@ -619,12 +620,18 @@ class VarManager : public TObject
619620
kS13A,
620621
kS31A,
621622
kM11REF,
623+
kM11REFetagap,
622624
kM01POI,
623625
kM1111REF,
626+
kM1111REFsmall,
624627
kM0111POI,
625628
kCORR2REF,
626629
kCORR2REFw,
630+
kCORR2REFsquared,
627631
kCORR2REFsquaredw,
632+
kCORR2REFetagap,
633+
kCORR2REFetagapw,
634+
kCORR2REFetagapsquaredw,
628635
kCORR2POI,
629636
kCORR2POIw,
630637
kCORR2POIsquaredw,
@@ -1347,6 +1354,12 @@ void VarManager::FillEvent(T const& event, float* values)
13471354
if (fgUsedVars[kIsNoITSROFBorder]) {
13481355
values[kIsNoITSROFBorder] = event.selection_bit(o2::aod::evsel::kNoITSROFrameBorder);
13491356
}
1357+
if (fgUsedVars[kTrackOccupancyInTimeRange]) {
1358+
values[kTrackOccupancyInTimeRange] = event.trackOccupancyInTimeRange();
1359+
}
1360+
if (fgUsedVars[kNoCollInTimeRangeStandard]) {
1361+
values[kNoCollInTimeRangeStandard] = event.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard);
1362+
}
13501363
if (fgUsedVars[kIsNoTFBorder]) {
13511364
values[kIsNoTFBorder] = event.selection_bit(o2::aod::evsel::kNoTimeFrameBorder);
13521365
}
@@ -1443,7 +1456,6 @@ void VarManager::FillEvent(T const& event, float* values)
14431456
values[kMultNTracksITSOnly] = event.multNTracksITSOnly();
14441457
values[kMultNTracksTPCOnly] = event.multNTracksTPCOnly();
14451458
values[kMultNTracksITSTPC] = event.multNTracksITSTPC();
1446-
values[kTrackOccupancyInTimeRange] = event.trackOccupancyInTimeRange();
14471459
values[kMultAllTracksTPCOnly] = event.multAllTracksTPCOnly();
14481460
values[kMultAllTracksITSTPC] = event.multAllTracksITSTPC();
14491461
if constexpr ((fillMap & ReducedEventMultExtra) > 0) {
@@ -1470,6 +1482,9 @@ void VarManager::FillEvent(T const& event, float* values)
14701482
if (fgUsedVars[kIsNoTFBorder]) {
14711483
values[kIsNoTFBorder] = (event.selection_bit(o2::aod::evsel::kNoTimeFrameBorder) > 0);
14721484
}
1485+
if (fgUsedVars[kNoCollInTimeRangeStandard]) {
1486+
values[kNoCollInTimeRangeStandard] = (event.selection_bit(o2::aod::evsel::kNoCollInTimeRangeStandard) > 0);
1487+
}
14731488
if (fgUsedVars[kIsNoSameBunch]) {
14741489
values[kIsNoSameBunch] = (event.selection_bit(o2::aod::evsel::kNoSameBunchPileup) > 0);
14751490
}
@@ -1607,10 +1622,16 @@ void VarManager::FillEvent(T const& event, float* values)
16071622

16081623
if constexpr ((fillMap & ReducedEventRefFlow) > 0) {
16091624
values[kM1111REF] = event.m1111ref();
1625+
values[kM1111REFsmall] = event.m1111ref();
16101626
values[kM11REF] = event.m11ref();
1627+
values[kM11REFetagap] = event.m11ref();
16111628
values[kCORR2REF] = event.corr2ref();
1629+
values[kCORR2REFsquared] = event.corr2ref();
16121630
values[kCORR2REFw] = event.corr2ref();
16131631
values[kCORR2REFsquaredw] = event.corr2ref();
1632+
values[kCORR2REFetagap] = event.corr2ref();
1633+
values[kCORR2REFetagapw] = event.corr2ref();
1634+
values[kCORR2REFetagapsquaredw] = event.corr2ref();
16141635
values[kCORR4REF] = event.corr4ref();
16151636
values[kCORR4REFw] = event.corr4ref();
16161637
values[kCORR4REFsquaredw] = event.corr4ref();
@@ -3963,10 +3984,21 @@ void VarManager::FillQVectorFromGFW(C const& /*collision*/, A const& compA11, A
39633984
values[kCORR2REF] = std::isnan(values[kCORR2REF]) || std::isinf(values[kCORR2REF]) ? 0 : values[kCORR2REF];
39643985
values[kCORR4REF] = std::isnan(values[kCORR4REF]) || std::isinf(values[kCORR4REF]) ? 0 : values[kCORR4REF];
39653986
values[kCORR2REFw] = values[kCORR2REF] * values[kM11REF];
3987+
values[kCORR2REFsquared] = values[kCORR2REF] * values[kCORR2REF];
39663988
values[kCORR2REFsquaredw] = values[kCORR2REF] * values[kCORR2REF] * values[kM11REF];
39673989
values[kCORR4REFw] = values[kCORR4REF] * values[kM1111REF];
39683990
values[kCORR4REFsquaredw] = values[kCORR4REF] * values[kCORR4REF] * values[kM1111REF];
39693991

3992+
// For cumulants: A = Full TPC, B = Negative TPC, C = Positive TPC
3993+
complex<double> QA(values[kQ2X0A] * values[kS11A], values[kQ2Y0A] * values[kS11A]);
3994+
complex<double> QB(values[kQ2X0B] * S11B, values[kQ2Y0B] * S11B);
3995+
complex<double> QC(values[kQ2X0C] * S11C, values[kQ2Y0C] * S11C);
3996+
values[kM11REFetagap] = S11B * S11C;
3997+
values[kCORR2REFetagap] = ((QB * conj(QC)).real()) / values[kM11REFetagap];
3998+
values[kCORR2REFetagap] = std::isnan(values[kCORR2REFetagap]) || std::isinf(values[kCORR2REFetagap]) ? 0 : values[kCORR2REFetagap];
3999+
values[kCORR2REFetagapw] = values[kCORR2REFetagap] * values[kM11REFetagap];
4000+
values[kCORR2REFetagapsquaredw] = values[kCORR2REFetagap] * values[kCORR2REFetagap] * values[kM11REFetagap];
4001+
39704002
// TODO: provide different computations for R
39714003
// Compute the R factor using the 2 sub-events technique for second and third harmonic
39724004
// Compute event planes

0 commit comments

Comments
 (0)