Skip to content

Commit cc2af02

Browse files
authored
Merge branch 'AliceO2Group:master' into master
2 parents d85dd91 + f4f65e2 commit cc2af02

13 files changed

Lines changed: 1134 additions & 73 deletions

File tree

PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackCascadeExtended.cxx

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
/// \brief Task for track and cascade correlations and QA
1414
/// \author Barbara Chytla, WUT Warsaw, barbara.chytla@cern.ch
1515
/// \author Shirajum Monira, WUT Warsaw, shirajum.monira@cern.ch
16+
/// \author Tomasz Pawlaczyk, WUT Warsaw, tpawlacz@cern.ch
1617

1718
#include "PWGCF/FemtoUniverse/Core/FemtoUniverseContainer.h"
1819
#include "PWGCF/FemtoUniverse/Core/FemtoUniverseDetaDphiStar.h"
@@ -459,11 +460,15 @@ struct femtoUniversePairTaskTrackCascadeExtended { // NOLINT(cppcoreguidelines-p
459460
if (!isParticleTOF(posChild, CascChildTable[cascparticleconfigs.confCascType1][0], &posChildTOF) || !isParticleTOF(negChild, CascChildTable[cascparticleconfigs.confCascType1][1], &negChildTOF) || !isParticleTOF(bachelor, CascChildTable[cascparticleconfigs.confCascType1][2], &bachelorTOF))
460461
continue;
461462

463+
CascQAExtra.fill(HIST("hMassXiSelected"), part.mLambda());
464+
CascQAExtra.fill(HIST("hInvMpT"), part.pt(), part.mLambda());
465+
466+
if (!invMCascade(part.mLambda(), part.mAntiLambda(), cascparticleconfigs.confCascType1))
467+
continue;
468+
462469
CascQAExtra.fill(HIST("hPtXi"), part.pt());
463470
CascQAExtra.fill(HIST("hEtaXi"), part.eta());
464471
CascQAExtra.fill(HIST("hPhiXi"), part.phi());
465-
CascQAExtra.fill(HIST("hMassXiSelected"), part.mLambda());
466-
CascQAExtra.fill(HIST("hInvMpT"), part.pt(), part.mLambda());
467472
}
468473
}
469474

@@ -483,6 +488,9 @@ struct femtoUniversePairTaskTrackCascadeExtended { // NOLINT(cppcoreguidelines-p
483488
if (!isParticleTOF(posChildExt, CascChildTable[cascparticleconfigs.confCascType1][0], &posChildTOFExt) || !isParticleTOF(negChildExt, CascChildTable[cascparticleconfigs.confCascType1][1], &negChildTOFExt) || !isParticleTOF(bachelorExt, CascChildTable[cascparticleconfigs.confCascType1][2], &bachelorTOFExt))
484489
continue;
485490

491+
if (!invMCascade(part.mLambda(), part.mAntiLambda(), cascparticleconfigs.confCascType1))
492+
continue;
493+
486494
CascQAExtra.fill(HIST("hDCAV0Daughters"), casc.dcaV0daughters());
487495
CascQAExtra.fill(HIST("hV0CosPA"), casc.cpav0());
488496
CascQAExtra.fill(HIST("hV0TranRad"), casc.v0radius());
@@ -527,11 +535,15 @@ struct femtoUniversePairTaskTrackCascadeExtended { // NOLINT(cppcoreguidelines-p
527535
if (!isParticleTOF(posChild, CascChildTable[cascparticleconfigs.confCascType1][0], &posChildTOF) || !isParticleTOF(negChild, CascChildTable[cascparticleconfigs.confCascType1][1], &negChildTOF) || !isParticleTOF(bachelor, CascChildTable[cascparticleconfigs.confCascType1][2], &bachelorTOF))
528536
continue;
529537

538+
CascQAExtra.fill(HIST("hMassXiSelected"), part.mLambda());
539+
CascQAExtra.fill(HIST("hInvMpT"), part.pt(), part.mLambda());
540+
541+
if (!invMCascade(part.mLambda(), part.mAntiLambda(), cascparticleconfigs.confCascType1))
542+
continue;
543+
530544
CascQAExtra.fill(HIST("hPtXi"), part.pt());
531545
CascQAExtra.fill(HIST("hEtaXi"), part.eta());
532546
CascQAExtra.fill(HIST("hPhiXi"), part.phi());
533-
CascQAExtra.fill(HIST("hMassXiSelected"), part.mLambda());
534-
CascQAExtra.fill(HIST("hInvMpT"), part.pt(), part.mLambda());
535547
}
536548
}
537549
}

PWGEM/PhotonMeson/Core/Pi0EtaToGammaGamma.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
#include <Framework/AnalysisDataModel.h>
4949
#include <Framework/AnalysisHelpers.h>
5050
#include <Framework/AnalysisTask.h>
51+
#include <Framework/Concepts.h>
5152
#include <Framework/Configurable.h>
5253
#include <Framework/HistogramRegistry.h>
5354
#include <Framework/HistogramSpec.h>

PWGEM/PhotonMeson/Core/Pi0EtaToGammaGammaMC.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
#include <Framework/AnalysisDataModel.h>
4646
#include <Framework/AnalysisHelpers.h>
4747
#include <Framework/AnalysisTask.h>
48+
#include <Framework/Concepts.h>
4849
#include <Framework/Configurable.h>
4950
#include <Framework/HistogramRegistry.h>
5051
#include <Framework/HistogramSpec.h>

PWGEM/PhotonMeson/TableProducer/photonconversionbuilder.cxx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
#include <Framework/HistogramSpec.h>
5353
#include <Framework/InitContext.h>
5454
#include <Framework/runDataProcessing.h>
55+
#include <ReconstructionDataFormats/HelixHelper.h>
5556
#include <ReconstructionDataFormats/PID.h>
5657

5758
#include <Math/Vector4D.h> // IWYU pragma: keep (do not replace with Math/Vector4Dfwd.h)
@@ -62,6 +63,8 @@
6263
#include <KFPVertex.h>
6364
#include <KFParticle.h>
6465

66+
#include <GPUROOTCartesianFwd.h>
67+
6568
#include <algorithm>
6669
#include <array>
6770
#include <cmath>
@@ -681,9 +684,8 @@ struct PhotonConversionBuilder {
681684
phiv = o2::aod::pwgem::dilepton::utils::pairutil::getPhivPair(kfp_track_posProp.GetPx(), kfp_track_posProp.GetPy(), kfp_track_posProp.GetPz(), kfp_track_eleProp.GetPx(), kfp_track_eleProp.GetPy(), kfp_track_eleProp.GetPz(), pos.sign(), ele.sign(), d_bz);
682685
psipair = o2::aod::pwgem::dilepton::utils::pairutil::getPsiPair(kfp_track_posProp.GetPx(), kfp_track_posProp.GetPy(), kfp_track_posProp.GetPz(), kfp_track_eleProp.GetPx(), kfp_track_eleProp.GetPy(), kfp_track_eleProp.GetPz());
683686
break;
684-
} else {
685-
LOG(debug) << "Propagation to offset" << offsetR << " cm failed for " << (pPropagatedSuccess ? "negative" : "positive") << " track. Trying smaller offset.";
686687
}
688+
LOG(debug) << "Propagation to offset" << offsetR << " cm failed for " << (pPropagatedSuccess ? "negative" : "positive") << " track. Trying smaller offset.";
687689
}
688690
if (modeTrackPropagation == TrackPropMode::kBoth) {
689691
registry.fill(HIST("V0/hPhivPropagationCompare"), phiv, phivFast);

PWGEM/PhotonMeson/Tasks/taskPi0FlowEMC.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,8 +264,8 @@ struct TaskPi0FlowEMC {
264264
using CollsWithQvecs = soa::Join<aod::PMEvents, aod::EMEventsAlias, aod::EMEventsMult_000, aod::EMEventsCent_000, aod::EMEventsQvec_001>;
265265
using Colls = soa::Join<aod::PMEvents, aod::EMEventsAlias, aod::EMEventsMult_000, aod::EMEventsCent_000>;
266266

267-
Partition<EMCalPhotons> emcalPhotons = aod::mincluster::storedPhi < std::lround(MaxPhiEMCal * emcdownscaling::downscalingFactors[emcdownscaling::kPhi]);
268-
Partition<EMCalPhotons> dcalPhotons = aod::mincluster::storedPhi >= std::lround(MaxPhiEMCal * emcdownscaling::downscalingFactors[emcdownscaling::kPhi]);
267+
Partition<EMCalPhotons> emcalPhotons = aod::mincluster::storedPhi < static_cast<uint16_t>(std::lround(MaxPhiEMCal * emcdownscaling::downscalingFactors[emcdownscaling::kPhi]));
268+
Partition<EMCalPhotons> dcalPhotons = aod::mincluster::storedPhi >= static_cast<uint16_t>(std::lround(MaxPhiEMCal * emcdownscaling::downscalingFactors[emcdownscaling::kPhi]));
269269

270270
static constexpr std::size_t NQVecEntries = 6;
271271

PWGEM/PhotonMeson/Utils/PCMUtilities.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
#include <Math/Vector2D.h> // IWYU pragma: keep (do not replace with Math/Vector2Dfwd.h)
3131
#include <Math/Vector2Dfwd.h>
3232

33+
#include <GPUROOTCartesianFwd.h>
34+
3335
#include <array>
3436
#include <cmath>
3537

@@ -113,7 +115,7 @@ template <typename TrackPrecision = float>
113115
std::array<float, 2> CalculateDCAFast(const o2::track::TrackParametrizationWithError<TrackPrecision>& trk, const o2::math_utils::Point3D<float>& vtx, const float magField)
114116
{
115117

116-
std::array<float, 2> dca;
118+
std::array<float, 2> dca{};
117119

118120
// obtain circle from track in x-y plane
119121
const o2::track::TrackAuxPar helixPos(trk, magField);
@@ -175,7 +177,7 @@ inline std::array<float, 3> getPropMomentumFromTrackHelix(const float s, const T
175177
const auto phi = RecoDecay::constrainAngle<float>(track.phi() + dphi + addPhi);
176178

177179
// Calculate px,y,z at the new propagated vertex
178-
std::array<float, 3> trackP;
180+
std::array<float, 3> trackP{};
179181
trackP[0] = std::cos(phi) * track.pt();
180182
trackP[1] = std::sin(phi) * track.pt();
181183
trackP[2] = track.tgl() * track.pt();

PWGHF/D2H/Tasks/taskDeuteronFromLb.cxx

Lines changed: 64 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,6 @@ struct HfTaskDeuteronFromLb {
6868
Configurable<float> cfgMinPt{"cfgMinPt", 0.5f, "Minimum pT cut"};
6969
Configurable<float> cfgTPCNsigma{"cfgTPCNsigma", 3.0f, "TPC n sigma for deuteron PID"};
7070
Configurable<float> cfgTofNsigma{"cfgTofNsigma", 3.0f, "TOF n sigma for deuteron PID"};
71-
Configurable<float> ptThresholdPid{"ptThresholdPid", 0.5f, "pT threshold to switch between TPC and TPC+TOF PID"};
7271
Configurable<float> cfgDCAmin{"cfgDCAmin", 0.05f, "Minimum DCA for deuteron PID"};
7372
Configurable<float> cfgDCAmax{"cfgDCAmax", 1000.0f, "Maximum DCA for deuteron PID"};
7473
Configurable<float> rapidityCut{"rapidityCut", 0.5f, "Rapidity cut"};
@@ -84,7 +83,7 @@ struct HfTaskDeuteronFromLb {
8483
framework::Service<ccdb::BasicCCDBManager> ccdb{};
8584

8685
using CollisionCandidates = o2::soa::Join<o2::aod::Collisions, o2::aod::EvSels>;
87-
using MCTrackCandidates = o2::soa::Join<o2::aod::TracksIU, o2::aod::TracksExtra, o2::aod::TracksDCA, o2::aod::McTrackLabels>;
86+
using MCTrackCandidates = o2::soa::Join<o2::aod::TracksIU, o2::aod::TracksExtra, o2::aod::TracksDCA, o2::aod::McTrackLabels, o2::aod::pidTPCFullDe, o2::aod::pidTOFFullDe>;
8887
using MCCollisionCandidates = o2::soa::Join<o2::aod::Collisions, o2::aod::EvSels, o2::aod::McCollisionLabels>;
8988
using TrackCandidates = o2::soa::Join<o2::aod::Tracks, o2::aod::TracksCov, o2::aod::TracksExtra, o2::aod::TracksDCA, o2::aod::TrackSelection, o2::aod::pidTPCFullDe, o2::aod::pidTOFFullDe>;
9089

@@ -154,13 +153,28 @@ struct HfTaskDeuteronFromLb {
154153
qaHistos.add("MCReco/ptAntiDeuteronFromAntiLambdaB",
155154
"p_{T} #bar{d} from #bar{#Lambda}_{b} reco/MC anchored;p_{T} (GeV/c);Counts",
156155
HistType::kTH1F, {ptAxis});
156+
qaHistos.add(
157+
"MCReco/ptAntiDeuteronPrimary",
158+
"p_{T} #bar{d} primary reco/MC anchored;p_{T} (GeV/c);Counts",
159+
HistType::kTH1F,
160+
{ptAxis});
157161
qaHistos.add("MCGen/ptAntiDeuteronFromBminus", "p_{T} #bar{d} from B^{-} gen;p_{T} (GeV/c);Counts", HistType::kTH1F, {ptAxis});
158162
qaHistos.add("MCGen/ptAntiDeuteronFromAntiLambdaB", "p_{T} #bar{d} from #bar{#Lambda}_{b} gen;p_{T} (GeV/c);Counts", HistType::kTH1F, {ptAxis});
159163
qaHistos.add("MCReco/hDCAxy-Primary", "DCAxy primary reco/MC anchored;DCA xy (cm);Counts", {HistType::kTH1D, {{400, -0.2f, 0.2f, "DCA xy (cm)"}}});
160164
qaHistos.add("MCReco/hDCAxy-FromBeautyHadron", "DCAxy from beauty reco/MC anchored;DCA xy (cm);Counts", {HistType::kTH1D, {{400, -0.2f, 0.2f, "DCA xy (cm)"}}});
161165
qaHistos.add("MCReco/hMotherPdgCode", "PDG code of mother, reco/MC anchored;PDG code;Counts", HistType::kTH1I, {{12000, -6000, 6000}});
162166
qaHistos.add("MCReco/ctauBminus", "ctau of B^{-}, reco/MC anchored;ctau (#mu m);Counts", HistType::kTH1F, {{25, 0., 2000.f}});
163167
qaHistos.add("MCReco/ctauAntiLambdaB", "ctau of #bar{#Lambda}_{b}, reco/MC anchored;ctau (#mu m);Counts", HistType::kTH1F, {{25, 0., 2000.f}});
168+
qaHistos.add("MCReco/ptAntiDeuteronPIDSelected", "p_{T} #bar{d} reco/MC anchored PID selection;p_{T} (GeV/c);Counts", HistType::kTH1F, {ptAxis});
169+
qaHistos.add("MCReco/ptAntiDeuteronPIDSelectedTrue", "p_{T} #bar{d} reco/MC anchored PID and PDG;p_{T} (GeV/c);Counts", HistType::kTH1F, {ptAxis});
170+
qaHistos.add("MCReco/hnSigmaTPCVsPt", "n#sigma TPC vs p_{T} for #bar{d} hypothesis for MC; p_{T} (GeV/c); n#sigma TPC", {HistType::kTH2D, {ptAxis, nSigmaAxis}});
171+
qaHistos.add("MCReco/hnSigmaTOFVsPt", "n#sigma TOF vs p_{T} for #bar{d} hypothesis for MC; p_{T} (GeV/c); n#sigma TOF", {HistType::kTH2D, {ptAxis, nSigmaAxis}});
172+
qaHistos.add("Data/hnSigmaTOFVsPtPurity", "n#sigma TOF vs p_{T} for #bar{d} hypothesis for Data-driven purity check; p_{T} (GeV/c); n#sigma TOF", {HistType::kTH2D, {ptAxis, nSigmaAxis}});
173+
qaHistos.add("Data/hnSigmaTPCVsPtPurity", "n#sigma TPC vs p_{T} for #bar{d} hypothesis for Data-driven purity check; p_{T} (GeV/c); n#sigma TPC", {HistType::kTH2D, {ptAxis, nSigmaAxis}});
174+
qaHistos.add("MCReco/ptAntiDeuteronTPCOnlyPIDSelected", "p_{T} #bar{d} reco/MC anchored TPC only PID selection;p_{T} (GeV/c);Counts", HistType::kTH1F, {ptAxis});
175+
qaHistos.add("MCReco/ptAntiDeuteronTPCOnlyPIDSelectedTrue", "p_{T} #bar{d} reco/MC anchored TPC only PID and PDG;p_{T} (GeV/c);Counts", HistType::kTH1F, {ptAxis});
176+
qaHistos.add("MCReco/ptAntiDeuteronTPCorTPCTOFPIDSelected", "p_{T} #bar{d} reco/MC anchored TPC or TPC+TOF PID selection;p_{T} (GeV/c);Counts", HistType::kTH1F, {ptAxis});
177+
qaHistos.add("MCReco/ptAntiDeuteronTPCorTPCTOFPIDSelectedTrue", "p_{T} #bar{d} reco/MC anchored TPC or TPC+TOF PID and PDG;p_{T} (GeV/c);Counts", HistType::kTH1F, {ptAxis});
164178

165179
hProcessedEvents->GetXaxis()->SetBinLabel(1, "Events processed");
166180
hProcessedEvents->GetXaxis()->SetBinLabel(2, "ZORRO");
@@ -193,9 +207,6 @@ struct HfTaskDeuteronFromLb {
193207
if (!track.hasTPC()) {
194208
return false;
195209
}
196-
if (!track.hasTOF()) {
197-
return false;
198-
}
199210
if (track.tpcNClsFound() < cfgTPCNclsFound) {
200211
return false;
201212
}
@@ -274,24 +285,20 @@ struct HfTaskDeuteronFromLb {
274285
const bool isTPCDe = std::abs(track.tpcNSigmaDe()) < cfgTPCNsigma;
275286
const bool isTOFDe = std::abs(track.tofNSigmaDe()) < cfgTofNsigma;
276287

277-
if (track.pt() < ptThresholdPid) {
278-
if (isTPCDe) {
279-
qaHistos.fill(HIST("Data/ptAntiDeuteron"), track.pt());
280-
qaHistos.fill(HIST("Data/etaAntideuteron"), track.eta());
281-
qaHistos.fill(HIST("Data/hDCAxyVsPt"), track.pt(), dca[0]);
282-
qaHistos.fill(HIST("Data/hDCAzVsPt"), track.pt(), dca[1]);
283-
qaHistos.fill(HIST("Data/hnSigmaTPCVsPt"), track.pt(), track.tpcNSigmaDe());
284-
qaHistos.fill(HIST("Data/hnSigmaTOFVsPt"), track.pt(), track.tofNSigmaDe());
285-
}
286-
} else {
287-
if (isTPCDe && isTOFDe) {
288-
qaHistos.fill(HIST("Data/ptAntiDeuteron"), track.pt());
289-
qaHistos.fill(HIST("Data/etaAntideuteron"), track.eta());
290-
qaHistos.fill(HIST("Data/hDCAxyVsPt"), track.pt(), dca[0]);
291-
qaHistos.fill(HIST("Data/hDCAzVsPt"), track.pt(), dca[1]);
292-
qaHistos.fill(HIST("Data/hnSigmaTPCVsPt"), track.pt(), track.tpcNSigmaDe());
293-
qaHistos.fill(HIST("Data/hnSigmaTOFVsPt"), track.pt(), track.tofNSigmaDe());
294-
}
288+
if (isTPCDe && track.hasTOF()) {
289+
qaHistos.fill(HIST("Data/hnSigmaTOFVsPtPurity"), track.pt(), track.tofNSigmaDe());
290+
}
291+
if (isTOFDe && track.hasTOF()) {
292+
qaHistos.fill(HIST("Data/hnSigmaTPCVsPtPurity"), track.pt(), track.tpcNSigmaDe());
293+
}
294+
295+
if (isTPCDe && isTOFDe && track.hasTOF()) {
296+
qaHistos.fill(HIST("Data/ptAntiDeuteron"), track.pt());
297+
qaHistos.fill(HIST("Data/etaAntideuteron"), track.eta());
298+
qaHistos.fill(HIST("Data/hDCAxyVsPt"), track.pt(), dca[0]);
299+
qaHistos.fill(HIST("Data/hDCAzVsPt"), track.pt(), dca[1]);
300+
qaHistos.fill(HIST("Data/hnSigmaTPCVsPt"), track.pt(), track.tpcNSigmaDe());
301+
qaHistos.fill(HIST("Data/hnSigmaTOFVsPt"), track.pt(), track.tofNSigmaDe());
295302
}
296303
}
297304
}
@@ -313,7 +320,40 @@ struct HfTaskDeuteronFromLb {
313320
}
314321

315322
auto mcParticle = track.mcParticle();
316-
if (mcParticle.pdgCode() == pdgCodeDaughter) {
323+
const bool isTrueDeuteron = (mcParticle.pdgCode() == pdgCodeDaughter);
324+
const bool isTPCDe = std::abs(track.tpcNSigmaDe()) < cfgTPCNsigma;
325+
const bool isTOFDe = std::abs(track.tofNSigmaDe()) < cfgTofNsigma;
326+
const bool selTpcOrTpcTof = isTPCDe && (!track.hasTOF() || isTOFDe);
327+
328+
if (isTPCDe) {
329+
qaHistos.fill(HIST("MCReco/ptAntiDeuteronTPCOnlyPIDSelected"), track.pt());
330+
if (isTrueDeuteron) {
331+
qaHistos.fill(HIST("MCReco/ptAntiDeuteronTPCOnlyPIDSelectedTrue"), track.pt());
332+
}
333+
}
334+
335+
if (track.hasTOF()) {
336+
qaHistos.fill(HIST("MCReco/hnSigmaTPCVsPt"), track.pt(), track.tpcNSigmaDe());
337+
qaHistos.fill(HIST("MCReco/hnSigmaTOFVsPt"), track.pt(), track.tofNSigmaDe());
338+
}
339+
340+
if (selTpcOrTpcTof) {
341+
qaHistos.fill(HIST("MCReco/ptAntiDeuteronTPCorTPCTOFPIDSelected"), track.pt());
342+
if (isTrueDeuteron) {
343+
qaHistos.fill(HIST("MCReco/ptAntiDeuteronTPCorTPCTOFPIDSelectedTrue"), track.pt());
344+
}
345+
}
346+
347+
if (isTPCDe && isTOFDe && track.hasTOF()) {
348+
qaHistos.fill(HIST("MCReco/ptAntiDeuteronPIDSelected"), track.pt());
349+
if (isTrueDeuteron) {
350+
qaHistos.fill(HIST("MCReco/ptAntiDeuteronPIDSelectedTrue"), track.pt());
351+
}
352+
} else {
353+
continue;
354+
}
355+
356+
if (isTrueDeuteron) {
317357
if (std::abs(mcParticle.y()) > rapidityCut) {
318358
continue;
319359
}

PWGHF/D2H/Tasks/taskFlowCharmHadrons.cxx

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -608,8 +608,8 @@ struct HfTaskFlowCharmHadrons {
608608
if constexpr (StoreInfo == RunMode::kEsE || StoreInfo == RunMode::kSPEsE) {
609609
qVecRedComps = getEseQvec(collision, qVecRedDetector.value);
610610
}
611-
float xRedQVec = qVecRedComps[0];
612-
float yRedQVec = qVecRedComps[1];
611+
float const xRedQVec = qVecRedComps[0];
612+
float const yRedQVec = qVecRedComps[1];
613613
float const amplRedQVec = qVecRedComps[2];
614614

615615
for (const auto& candidate : candidates) {
@@ -811,12 +811,10 @@ struct HfTaskFlowCharmHadrons {
811811
// subtract daughters' contribution from the (normalized) Q-vector
812812
const float redQVecXDaugSubtr = xRedQVec - std::accumulate(tracksRedQx.begin(), tracksRedQx.end(), 0.0);
813813
const float redQVecYDaugSubtr = yRedQVec - std::accumulate(tracksRedQy.begin(), tracksRedQy.end(), 0.0);
814-
if (qVecRedDetector.value == QvecEstimator::TPCTot || qVecRedDetector.value == QvecEstimator::TPCPos || qVecRedDetector.value == QvecEstimator::TPCNeg) {
815-
// Correct for track multiplicity
816-
redQVec = std::hypot(redQVecXDaugSubtr, redQVecYDaugSubtr) * std::sqrt(amplRedQVec) / std::sqrt(amplRedQVec - tracksRedQx.size());
817-
} else {
818-
redQVec = std::hypot(xRedQVec, yRedQVec);
819-
}
814+
// Correct for track multiplicity
815+
redQVec = std::hypot(redQVecXDaugSubtr, redQVecYDaugSubtr) * std::sqrt(amplRedQVec) / std::sqrt(amplRedQVec - tracksRedQx.size());
816+
} else {
817+
redQVec = std::hypot(xRedQVec, yRedQVec);
820818
}
821819
if (storeRedQVec) {
822820
rowCandFlowEsE(massCand, ptCand, outputMl[0], outputMl[1], scalprodCand, cent, redQVec);

PWGJE/Tasks/jetUpcQa.cxx

Lines changed: 33 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,40 @@
1313
/// \brief Standalone QA task for UPC event tagging and charged-jet information.
1414
/// \author Jaehyeok Ryu
1515

16+
#include "PWGUD/Core/SGCutParHolder.h"
17+
#include "PWGUD/Core/SGSelector.h"
18+
19+
#include "Common/DataModel/Centrality.h"
20+
#include "Common/DataModel/EventSelection.h"
21+
#include "Common/DataModel/Multiplicity.h"
22+
#include "Common/DataModel/TrackSelectionTables.h"
23+
24+
#include <CommonConstants/PhysicsConstants.h>
1625
#include <Framework/AnalysisDataModel.h>
26+
#include <Framework/AnalysisHelpers.h>
27+
#include <Framework/AnalysisTask.h>
28+
#include <Framework/Configurable.h>
29+
#include <Framework/HistogramRegistry.h>
30+
#include <Framework/HistogramSpec.h>
31+
#include <Framework/InitContext.h>
32+
#include <Framework/runDataProcessing.h>
33+
34+
#include <TPDGCode.h>
35+
36+
#include <fastjet/AreaDefinition.hh>
37+
#include <fastjet/ClusterSequenceArea.hh>
38+
#include <fastjet/GhostedAreaSpec.hh>
39+
#include <fastjet/JetDefinition.hh>
40+
#include <fastjet/PseudoJet.hh>
41+
42+
#include <cmath>
43+
#include <cstdint>
44+
#include <string>
45+
#include <vector>
46+
47+
using namespace o2;
48+
using namespace o2::framework;
49+
using namespace o2::framework::expressions;
1750

1851
namespace o2::aod
1952
{
@@ -241,36 +274,6 @@ using UpcJetTrackMCP = UpcJetTracksMCP::iterator;
241274

242275
} // namespace o2::aod
243276

244-
#include "PWGUD/Core/SGCutParHolder.h"
245-
#include "PWGUD/Core/SGSelector.h"
246-
247-
#include "Common/DataModel/Centrality.h"
248-
#include "Common/DataModel/EventSelection.h"
249-
#include "Common/DataModel/Multiplicity.h"
250-
#include "Common/DataModel/TrackSelectionTables.h"
251-
252-
#include <CommonConstants/PhysicsConstants.h>
253-
#include <Framework/ASoAHelpers.h>
254-
#include <Framework/AnalysisTask.h>
255-
#include <Framework/HistogramRegistry.h>
256-
#include <Framework/runDataProcessing.h>
257-
258-
#include <TPDGCode.h>
259-
260-
#include <fastjet/AreaDefinition.hh>
261-
#include <fastjet/ClusterSequenceArea.hh>
262-
#include <fastjet/GhostedAreaSpec.hh>
263-
#include <fastjet/JetDefinition.hh>
264-
#include <fastjet/PseudoJet.hh>
265-
266-
#include <cmath>
267-
#include <string>
268-
#include <vector>
269-
270-
using namespace o2;
271-
using namespace o2::framework;
272-
using namespace o2::framework::expressions;
273-
274277
/// Stand-alone QA task for validating UPC event tagging for charged-jet studies.
275278
/// The tagging and QA developed here are intended to guide a future integration
276279
/// of the required UPC information into the PWGJE derived-data workflow.

0 commit comments

Comments
 (0)