Skip to content

Commit b803760

Browse files
Merge branch 'AliceO2Group:master' into master
2 parents 3323c51 + 46cce1a commit b803760

File tree

3 files changed

+47
-6
lines changed

3 files changed

+47
-6
lines changed

PWGCF/Flow/Tasks/flowTask.cxx

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,13 @@ struct FlowTask {
155155
O2_DEFINE_CONFIGURABLE(cfgTPCPhiCutPtMin, float, 2.0f, "start point of phi-pt cut")
156156
TF1* fPhiCutLow = nullptr;
157157
TF1* fPhiCutHigh = nullptr;
158+
// for deltaPt/<pT> vs c22 vs centrality
159+
O2_DEFINE_CONFIGURABLE(cfgDptDisEnable, bool, false, "Produce deltaPt/meanPt vs c22 vs centrality")
160+
O2_DEFINE_CONFIGURABLE(cfgDptDisCorrConfigIndex, int, 7, "Index in CorrConfig, this decide which correlation is filled")
161+
TH1D* hEvAvgMeanPt = nullptr;
162+
O2_DEFINE_CONFIGURABLE(cfgDptDishEvAvgMeanPt, std::string, "", "CCDB path to hMeanPt object")
163+
ConfigurableAxis cfgDptDisAxisCorr{"cfgDptDisAxisCorr", {50, 0., 0.005}, "pt axis for histograms"};
164+
ConfigurableAxis cfgDptDisAxisNormal{"cfgDptDisAxisNormal", {200, -1., 1.}, "normalized axis"};
158165
} cfgFuncParas;
159166

160167
ConfigurableAxis axisPtHist{"axisPtHist", {100, 0., 10.}, "pt axis for histograms"};
@@ -316,6 +323,9 @@ struct FlowTask {
316323
registry.add("c22_gap08_trackMeanPt", "", {HistType::kTProfile, {axisIndependent}});
317324
registry.add("PtVariance_partA_WithinGap08", "", {HistType::kTProfile, {axisIndependent}});
318325
registry.add("PtVariance_partB_WithinGap08", "", {HistType::kTProfile, {axisIndependent}});
326+
if (cfgFuncParas.cfgDptDisEnable) {
327+
registry.add("hNormDeltaPt_Corr_X", " #delta p_{T}/[p_{T}]; Corr; X", {HistType::kTH3D, {cfgFuncParas.cfgDptDisAxisNormal, cfgFuncParas.cfgDptDisAxisCorr, axisIndependent}});
328+
}
319329
if (doprocessMCGen) {
320330
registry.add("MCGen/MChPhi", "#phi distribution", {HistType::kTH1D, {axisPhi}});
321331
registry.add("MCGen/MChEta", "#eta distribution", {HistType::kTH1D, {axisEta}});
@@ -593,6 +603,25 @@ struct FlowTask {
593603
return;
594604
}
595605

606+
template <char... chars>
607+
void fillDeltaPtvsCorr(const GFW::CorrConfig& corrconf, const double& sum_pt, const double& WeffEvent, const ConstStr<chars...>& histo, const double& cent)
608+
{
609+
double dnx, val;
610+
dnx = fGFW->Calculate(corrconf, 0, kTRUE).real();
611+
if (dnx == 0)
612+
return;
613+
if (!corrconf.pTDif) {
614+
val = fGFW->Calculate(corrconf, 0, kFALSE).real() / dnx;
615+
if (std::fabs(val) < 1) {
616+
double meanPt = sum_pt / WeffEvent;
617+
double deltaPt = meanPt - cfgFuncParas.hEvAvgMeanPt->GetBinContent(cfgFuncParas.hEvAvgMeanPt->FindBin(cent));
618+
registry.fill(histo, deltaPt / meanPt, val, cent, dnx * WeffEvent);
619+
}
620+
return;
621+
}
622+
return;
623+
}
624+
596625
template <DataType dt>
597626
void fillFC(const GFW::CorrConfig& corrconf, const double& cent, const double& rndm)
598627
{
@@ -666,6 +695,13 @@ struct FlowTask {
666695
}
667696
LOGF(info, "Loaded efficiency histogram from %s (%p)", cfgEfficiency.value.c_str(), (void*)mEfficiency);
668697
}
698+
if (cfgFuncParas.cfgDptDisEnable && cfgFuncParas.cfgDptDishEvAvgMeanPt.value.empty() == false) {
699+
cfgFuncParas.hEvAvgMeanPt = ccdb->getForTimeStamp<TH1D>(cfgFuncParas.cfgDptDishEvAvgMeanPt, timestamp);
700+
if (cfgFuncParas.hEvAvgMeanPt == nullptr) {
701+
LOGF(fatal, "Could not load mean pT histogram from %s", cfgFuncParas.cfgDptDishEvAvgMeanPt.value.c_str());
702+
}
703+
LOGF(info, "Loaded mean pT histogram from %s (%p)", cfgFuncParas.cfgDptDishEvAvgMeanPt.value.c_str(), (void*)cfgFuncParas.hEvAvgMeanPt);
704+
}
669705
correctionsLoaded = true;
670706
}
671707

@@ -1064,6 +1100,10 @@ struct FlowTask {
10641100
}
10651101
registry.fill(HIST("hTrackCorrection2d"), tracks.size(), nTracksCorrected);
10661102

1103+
if (cfgFuncParas.cfgDptDisEnable) {
1104+
fillDeltaPtvsCorr(corrconfigs.at(cfgFuncParas.cfgDptDisCorrConfigIndex), ptSum, weffEvent, HIST("hNormDeltaPt_Corr_X"), independent);
1105+
}
1106+
10671107
double weffEventDiffWithGap08 = weffEventWithinGap08 * weffEventWithinGap08 - weffEventSquareWithinGap08;
10681108
// MeanPt
10691109
if (weffEvent) {

PWGCF/Flow/Tasks/flowZdcTask.cxx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -455,8 +455,6 @@ struct FlowZdcTask {
455455
for (const auto& amplitude : foundBC.ft0().amplitudeC()) {
456456
aT0C += amplitude;
457457
}
458-
} else {
459-
return;
460458
}
461459
histos.fill(HIST("hEventCounter"), EvCutLabel::TZero);
462460
if (foundBC.has_fv0a()) {

PWGCF/JCorran/Tasks/jEPFlowAnalysis.cxx

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -189,11 +189,14 @@ struct jEPFlowAnalysis {
189189
}
190190
}
191191

192+
if (coll.qvecAmp()[detId] < 1e-5 || coll.qvecAmp()[refAId] < 1e-5 || coll.qvecAmp()[refBId] < 1e-5)
193+
return;
194+
192195
for (int i = 0; i < cfgnMode; i++) { // loop over different harmonic orders
193196
harmInd = cfgnTotalSystem * 4 * (i) + 3; // harmonic index to access corresponding Q-vector as all Q-vectors are in same vector
194-
eps[0] = helperEP.GetEventPlane(coll.qvecRe()[detId + harmInd], coll.qvecIm()[detId + harmInd], i + 2);
195-
eps[1] = helperEP.GetEventPlane(coll.qvecRe()[refAId + harmInd], coll.qvecIm()[refAId + harmInd], i + 2);
196-
eps[2] = helperEP.GetEventPlane(coll.qvecRe()[refBId + harmInd], coll.qvecIm()[refBId + harmInd], i + 2);
197+
eps[0] = helperEP.GetEventPlane(coll.qvecRe()[4 * detId + harmInd], coll.qvecIm()[4 * detId + harmInd], i + 2);
198+
eps[1] = helperEP.GetEventPlane(coll.qvecRe()[4 * refAId + harmInd], coll.qvecIm()[4 * refAId + harmInd], i + 2);
199+
eps[2] = helperEP.GetEventPlane(coll.qvecRe()[4 * refBId + harmInd], coll.qvecIm()[4 * refBId + harmInd], i + 2);
197200

198201
auto deltapsiDet = 0.0;
199202
auto deltapsiRefA = 0.0;
@@ -222,7 +225,7 @@ struct jEPFlowAnalysis {
222225
}
223226

224227
if (cfgSPmethod)
225-
weight *= std::sqrt(std::pow(coll.qvecRe()[detId + harmInd], 2) + std::pow(coll.qvecIm()[detId + harmInd], 2));
228+
weight *= std::sqrt(std::pow(coll.qvecRe()[4 * detId + harmInd], 2) + std::pow(coll.qvecIm()[4 * detId + harmInd], 2));
226229

227230
float resNumA = helperEP.GetResolution(eps[0], eps[1], i + 2);
228231
float resNumB = helperEP.GetResolution(eps[0], eps[2], i + 2);

0 commit comments

Comments
 (0)