Skip to content

Commit 2f485d9

Browse files
authored
Merge branch 'master' into yelmard-pcmpcm-omega-mb-weights
2 parents 83952fd + 322aa31 commit 2f485d9

File tree

69 files changed

+4251
-1136
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

69 files changed

+4251
-1136
lines changed

.github/labeler.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,7 @@ trigger:
8787
tutorial:
8888
- changed-files:
8989
- any-glob-to-any-file: ["Tutorials/**"]
90+
91+
photon:
92+
- changed-files:
93+
- any-glob-to-any-file: ["PWGEM/PhotonMeson/**", "*/PWGEM/PhotonMeson/**"]

.github/workflows/mega-linter.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
id: ml
3939
# You can override MegaLinter flavor used to have faster performances
4040
# More info at https://megalinter.io/flavors/
41-
uses: oxsecurity/megalinter@v9.3.0
41+
uses: oxsecurity/megalinter@v9.4.0
4242
env:
4343
# All available variables are described in documentation:
4444
# https://megalinter.io/configuration/

Common/Tasks/integrationTestCCDB.cxx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,12 +103,12 @@ struct integrationTestCCDB {
103103
lut = 0x0;
104104
const AxisSpec axis{1, 0.0f, 1.0f, ""};
105105
histos.add<TH1>("hDFs", "hDFs", HistType::kTH1F, {axis});
106+
107+
mRunNumber = 0;
106108
}
107109

108110
void process(aod::BCsWithTimestamps const& bcs)
109111
{
110-
mRunNumber = 0;
111-
112112
auto bc = bcs.begin(); // first element
113113
histos.fill(HIST("hDFs"), 0.5f);
114114

DPG/Tasks/AOTEvent/lumiQa.cxx

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,29 @@
99
// granted to it by virtue of its status as an Intergovernmental Organization
1010
// or submit itself to any jurisdiction.
1111

12-
#include "Framework/runDataProcessing.h"
13-
#include "Framework/AnalysisTask.h"
14-
#include "Framework/AnalysisDataModel.h"
1512
#include "CCDB/BasicCCDBManager.h"
16-
#include "Framework/HistogramRegistry.h"
17-
#include "DataFormatsParameters/GRPLHCIFData.h"
1813
#include "DataFormatsFT0/Digit.h"
19-
#include "TList.h"
14+
#include "DataFormatsParameters/GRPLHCIFData.h"
15+
#include "Framework/AnalysisDataModel.h"
16+
#include "Framework/AnalysisTask.h"
17+
#include "Framework/HistogramRegistry.h"
18+
#include "Framework/runDataProcessing.h"
19+
#include <DataFormatsParameters/AggregatedRunInfo.h>
20+
2021
#include "TH1.h"
22+
#include "TList.h"
2123

2224
using namespace o2;
2325
using namespace o2::framework;
2426
using BCsRun3 = soa::Join<aod::BCs, aod::Timestamps, aod::Run3MatchedToBCSparse>;
2527

2628
struct LumiQaTask {
29+
Configurable<float> confTimeBinWidthInSec{"TimeBinWidthInSec", 60., "Width of time bins in seconds"}; // o2-linter: disable=name/configurable (temporary fix)
2730
Service<o2::ccdb::BasicCCDBManager> ccdb;
2831
HistogramRegistry histos{"Histos", {}, OutputObjHandlingPolicy::AnalysisObject};
2932
int lastRunNumber = -1;
33+
double maxSec = 1;
34+
double minSec = 0;
3035
TH1* hCalibT0C = nullptr;
3136
static const int nBCsPerOrbit = o2::constants::lhc::LHCMaxBunches;
3237
std::bitset<nBCsPerOrbit> bcPatternB;
@@ -40,6 +45,7 @@ struct LumiQaTask {
4045
ccdb->setURL("http://alice-ccdb.cern.ch");
4146
ccdb->setCaching(true);
4247
ccdb->setLocalObjectValidityChecking();
48+
4349
const AxisSpec axisMultZNA{2000, 0., 400., "ZNA multiplicity"};
4450
const AxisSpec axisMultZNC{2000, 0., 400., "ZNC multiplicity"};
4551
const AxisSpec axisMultT0M{1000, 0., 270000., "T0M multiplicity"};
@@ -116,9 +122,30 @@ struct LumiQaTask {
116122
LOGF(info, "hCalibZeqFT0C histogram is not available for run=%d at timestamp=%llu", runNumber, ts);
117123
return;
118124
}
125+
126+
if (runNumber >= 500000) {
127+
auto runInfo = o2::parameters::AggregatedRunInfo::buildAggregatedRunInfo(o2::ccdb::BasicCCDBManager::instance(), runNumber);
128+
auto tsSOR = runInfo.sor;
129+
auto tsEOR = runInfo.eor;
130+
minSec = floor(tsSOR / 1000.);
131+
maxSec = ceil(tsEOR / 1000.);
132+
}
133+
134+
int nTimeBins = static_cast<int>((maxSec - minSec) / confTimeBinWidthInSec);
135+
double timeInterval = nTimeBins * confTimeBinWidthInSec;
136+
137+
const AxisSpec axisBCs{nBCsPerOrbit, 0., static_cast<double>(nBCsPerOrbit), ""};
138+
const AxisSpec axisSeconds{nTimeBins, 0, timeInterval, "seconds"};
139+
histos.add("hSecondsBcsTCE", "", kTH2D, {axisSeconds, axisBCs});
140+
histos.add("hSecondsBcsZNA", "", kTH2D, {axisSeconds, axisBCs});
141+
histos.add("hSecondsBcsZNC", "", kTH2D, {axisSeconds, axisBCs});
142+
histos.add("hSecondsBcsZEM", "", kTH2D, {axisSeconds, axisBCs});
119143
}
120144

121145
for (const auto& bc : bcs) {
146+
int64_t ts = bc.timestamp();
147+
double secFromSOR = ts / 1000. - minSec;
148+
double bcInOrbit = bc.globalBC() % nBCsPerOrbit;
122149
if (bc.has_zdc()) {
123150
float timeZNA = bc.zdc().timeZNA();
124151
float timeZNC = bc.zdc().timeZNC();
@@ -159,12 +186,15 @@ struct LumiQaTask {
159186

160187
if (fabs(timeZNA - meanTimeZNA) < 2) {
161188
histos.get<TH1>(HIST("hCounterZNA"))->Fill(srun, 1);
189+
histos.fill(HIST("hSecondsBcsZNA"), secFromSOR, bcInOrbit);
162190
}
163191
if (fabs(timeZNC - meanTimeZNC) < 2) {
164192
histos.get<TH1>(HIST("hCounterZNC"))->Fill(srun, 1);
193+
histos.fill(HIST("hSecondsBcsZNC"), secFromSOR, bcInOrbit);
165194
}
166195
if (fabs(timeZNA - meanTimeZNA) < 2 || fabs(timeZNC - meanTimeZNC) < 2) {
167196
histos.get<TH1>(HIST("hCounterZEM"))->Fill(srun, 1);
197+
histos.fill(HIST("hSecondsBcsZEM"), secFromSOR, bcInOrbit);
168198
}
169199
}
170200

@@ -211,6 +241,7 @@ struct LumiQaTask {
211241
histos.fill(HIST("hCentT0CselTVXTCEB"), centT0C);
212242

213243
histos.get<TH1>(HIST("hCounterTCE"))->Fill(srun, 1);
244+
histos.fill(HIST("hSecondsBcsTCE"), secFromSOR, bcInOrbit);
214245
}
215246
}
216247
};

DPG/Tasks/AOTTrack/D0CalibTables.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,8 @@ DECLARE_SOA_COLUMN(Eta, eta, float); /
444444
DECLARE_SOA_COLUMN(Phi, phi, float); //! D0-candidate phi
445445
DECLARE_SOA_COLUMN(InvMassD0, invMassD0, float); //! invariant mass (D0 hypothesis)
446446
DECLARE_SOA_COLUMN(InvMassD0bar, invMassD0bar, float); //! invariant mass (D0bar hypothesis)
447+
DECLARE_SOA_COLUMN(CosThetaStarD0, cosThetaStarD0, float); //! D0-candidate cost* (Helicity frame, D0 mass hypothesis)
448+
DECLARE_SOA_COLUMN(CosThetaStarD0bar, cosThetaStarD0bar, float); //! D0-candidate cost* (Helicity frame, D0bar mass hypthesis)
447449
DECLARE_SOA_COLUMN(DecLength, decLength, uint8_t); //! compressed decay length
448450
DECLARE_SOA_COLUMN(DecLengthXY, decLengthXY, uint8_t); //! compressed decay length XY
449451
DECLARE_SOA_COLUMN(NormDecLength, normDecLength, uint8_t); //! compressed normalised decay length
@@ -472,6 +474,8 @@ DECLARE_SOA_TABLE(D0CalibCands, "AOD", "D0CALIBCAND",
472474
hf_calib::Phi,
473475
hf_calib::InvMassD0,
474476
hf_calib::InvMassD0bar,
477+
hf_calib::CosThetaStarD0,
478+
hf_calib::CosThetaStarD0bar,
475479
hf_calib::DecLength,
476480
hf_calib::DecLengthXY,
477481
hf_calib::NormDecLength,

DPG/Tasks/AOTTrack/derivedDataCreatorD0Calibration.cxx

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@
4141
#include <MathUtils/detail/TypeTruncation.h>
4242
#include <ReconstructionDataFormats/DCA.h>
4343

44+
#include <Math/GenVector/Boost.h>
45+
#include <Math/Vector3D.h> // IWYU pragma: keep (do not replace with Math/Vector3Dfwd.h)
46+
#include <Math/Vector3Dfwd.h>
47+
#include <Math/Vector4D.h> // IWYU pragma: keep (do not replace with Math/Vector4Dfwd.h)
48+
#include <Math/Vector4Dfwd.h>
4449
#include <TH1D.h>
4550
#include <TRandom3.h>
4651

@@ -412,6 +417,7 @@ struct DerivedDataCreatorD0Calibration {
412417
}
413418

414419
float invMassD0{0.f}, invMassD0bar{0.f};
420+
float cosThetaStarD0{0.f}, cosThetaStarD0bar{0.f};
415421
std::vector<float> bdtScoresD0{0.f, 1.f, 1.f}, bdtScoresD0bar{0.f, 1.f, 1.f}; // always selected a priori
416422
if (massHypo == D0MassHypo::D0 || massHypo == D0MassHypo::D0AndD0Bar) {
417423
invMassD0 = RecoDecay::m(std::array{pVecPos, pVecNeg}, std::array{o2::constants::physics::MassPiPlus, o2::constants::physics::MassKPlus});
@@ -424,6 +430,14 @@ struct DerivedDataCreatorD0Calibration {
424430
std::vector<float> featuresCandD0 = {dcaPos.getY(), dcaNeg.getY(), chi2PCA, cosPaD0, cosPaXYD0, decLenXYD0, decLenD0, dcaPos.getY() * dcaNeg.getY(), aod::pid_tpc_tof_utils::combineNSigma<false>(trackPos.tpcNSigmaPi(), trackPos.tofNSigmaPi()), aod::pid_tpc_tof_utils::combineNSigma<false>(trackNeg.tpcNSigmaKa(), trackNeg.tofNSigmaKa()), trackPos.tpcNSigmaPi(), trackPos.tpcNSigmaKa(), aod::pid_tpc_tof_utils::combineNSigma<false>(trackPos.tpcNSigmaKa(), trackPos.tofNSigmaKa()), trackNeg.tpcNSigmaPi(), trackNeg.tpcNSigmaKa(), aod::pid_tpc_tof_utils::combineNSigma<false>(trackNeg.tpcNSigmaPi(), trackNeg.tofNSigmaPi())};
425431
if (!mlResponse.isSelectedMl(featuresCandD0, ptD0, bdtScoresD0)) {
426432
massHypo -= D0MassHypo::D0;
433+
} else { // selected, we compute cost*
434+
ROOT::Math::PxPyPzMVector const fourVecPi = ROOT::Math::PxPyPzMVector(pVecPos[0], pVecPos[1], pVecPos[2], o2::constants::physics::MassPiPlus);
435+
ROOT::Math::PxPyPzMVector const fourVecMother = ROOT::Math::PxPyPzMVector(pVecD0[0], pVecD0[1], pVecD0[2], invMassD0);
436+
ROOT::Math::Boost const boost{fourVecMother.BoostToCM()};
437+
ROOT::Math::PxPyPzMVector const fourVecPiCM = boost(fourVecPi);
438+
ROOT::Math::XYZVector const threeVecPiCM = fourVecPiCM.Vect();
439+
ROOT::Math::XYZVector const helicityVec = fourVecMother.Vect();
440+
cosThetaStarD0 = helicityVec.Dot(threeVecPiCM) / std::sqrt(threeVecPiCM.Mag2()) / std::sqrt(helicityVec.Mag2());
427441
}
428442
}
429443
}
@@ -439,6 +453,14 @@ struct DerivedDataCreatorD0Calibration {
439453
std::vector<float> featuresCandD0bar = {dcaPos.getY(), dcaNeg.getY(), chi2PCA, cosPaD0, cosPaXYD0, decLenXYD0, decLenD0, dcaPos.getY() * dcaNeg.getY(), aod::pid_tpc_tof_utils::combineNSigma<false>(trackNeg.tpcNSigmaPi(), trackNeg.tofNSigmaPi()), aod::pid_tpc_tof_utils::combineNSigma<false>(trackPos.tpcNSigmaKa(), trackPos.tofNSigmaKa()), trackNeg.tpcNSigmaPi(), trackNeg.tpcNSigmaKa(), aod::pid_tpc_tof_utils::combineNSigma<false>(trackNeg.tpcNSigmaKa(), trackNeg.tofNSigmaKa()), trackPos.tpcNSigmaPi(), trackPos.tpcNSigmaKa(), aod::pid_tpc_tof_utils::combineNSigma<false>(trackPos.tpcNSigmaPi(), trackPos.tofNSigmaPi())};
440454
if (!mlResponse.isSelectedMl(featuresCandD0bar, ptD0, bdtScoresD0bar)) {
441455
massHypo -= D0MassHypo::D0Bar;
456+
} else { // selected, we compute cost*
457+
ROOT::Math::PxPyPzMVector const fourVecPi = ROOT::Math::PxPyPzMVector(pVecNeg[0], pVecNeg[1], pVecNeg[2], o2::constants::physics::MassPiPlus);
458+
ROOT::Math::PxPyPzMVector const fourVecMother = ROOT::Math::PxPyPzMVector(pVecD0[0], pVecD0[1], pVecD0[2], invMassD0bar);
459+
ROOT::Math::Boost const boost{fourVecMother.BoostToCM()};
460+
ROOT::Math::PxPyPzMVector const fourVecPiCM = boost(fourVecPi);
461+
ROOT::Math::XYZVector const threeVecPiCM = fourVecPiCM.Vect();
462+
ROOT::Math::XYZVector const helicityVec = fourVecMother.Vect();
463+
cosThetaStarD0bar = helicityVec.Dot(threeVecPiCM) / std::sqrt(threeVecPiCM.Mag2()) / std::sqrt(helicityVec.Mag2());
442464
}
443465
}
444466
}
@@ -813,6 +835,8 @@ struct DerivedDataCreatorD0Calibration {
813835
phiD0,
814836
invMassD0,
815837
invMassD0bar,
838+
cosThetaStarD0,
839+
cosThetaStarD0bar,
816840
getCompressedDecayLength(decLenD0),
817841
getCompressedDecayLength(decLenXYD0),
818842
getCompressedNormDecayLength(decLenD0 / errorDecayLengthD0),

PWGCF/FemtoUniverse/Tasks/femtoUniversePairTaskTrackV0Extended.cxx

Lines changed: 29 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -203,9 +203,9 @@ struct FemtoUniversePairTaskTrackV0Extended {
203203
std::unique_ptr<TH1> pEffHistp2;
204204
Service<o2::ccdb::BasicCCDBManager> ccdb;
205205

206-
bool isNSigmaCombined(float mom, float nsigmaTPCParticle, float nsigmaTOFParticle)
206+
bool isNSigmaCombined(float mom, float nsigmaTPCParticle, float nsigmaTOFParticle, bool hasTOF)
207207
{
208-
if (mom <= confmom) {
208+
if (mom <= confmom || hasTOF == 0) {
209209
return (std::abs(nsigmaTPCParticle) < confNsigmaTPCParticle);
210210
} else {
211211
return (std::hypot(nsigmaTOFParticle, nsigmaTPCParticle) < confNsigmaCombinedParticle);
@@ -236,7 +236,7 @@ struct FemtoUniversePairTaskTrackV0Extended {
236236
}
237237
}
238238

239-
bool isNSigmaTOF(float mom, float nsigmaTOFParticle, float hasTOF)
239+
bool isNSigmaTOF(float mom, float nsigmaTOFParticle, bool hasTOF)
240240
{
241241
// Cut only on daughter tracks, that have TOF signal
242242
if (mom > confmom && hasTOF == 1) {
@@ -256,7 +256,7 @@ struct FemtoUniversePairTaskTrackV0Extended {
256256
const float tpcNSigmas[3] = {aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePr()), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePi()), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStoreKa())};
257257
const float tofNSigmas[3] = {aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePr()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePi()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStoreKa())};
258258

259-
return isNSigmaCombined(part.p(), tpcNSigmas[id], tofNSigmas[id]);
259+
return isNSigmaCombined(part.p(), tpcNSigmas[id], tofNSigmas[id], (part.pidCut() & 512u) != 0);
260260
}
261261

262262
template <typename T>
@@ -470,7 +470,7 @@ struct FemtoUniversePairTaskTrackV0Extended {
470470
const float tpcNSigmas[3] = {aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePr()), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePi()), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStoreKa())};
471471
const float tofNSigmas[3] = {aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePr()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePi()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStoreKa())};
472472

473-
if (!isNSigmaCombined(part.p(), tpcNSigmas[ConfTrkSelection.confTrackChoicePartOne], tofNSigmas[ConfTrkSelection.confTrackChoicePartOne]))
473+
if (!isNSigmaCombined(part.p(), tpcNSigmas[ConfTrkSelection.confTrackChoicePartOne], tofNSigmas[ConfTrkSelection.confTrackChoicePartOne], (part.pidCut() & 512u) != 0))
474474
continue;
475475
if (part.sign() > 0) {
476476
qaRegistry.fill(HIST("Tracks_pos/nSigmaTPC"), part.p(), tpcNSigmas[ConfTrkSelection.confTrackChoicePartOne]);
@@ -1604,21 +1604,29 @@ struct FemtoUniversePairTaskTrackV0Extended {
16041604
registryMCreco.fill(HIST("plus/MCrecoAllPt"), mcpart.pt());
16051605
if (mcpart.pdgMCTruth() == kPiPlus) {
16061606
if constexpr (std::experimental::is_detected<hasSigma, typename PartType::iterator>::value) {
1607-
if (!isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePi()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePi())))
1607+
if (!isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePi()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePi()), (part.pidCut() & 512u) != 0))
16081608
continue;
16091609
} else {
1610-
if ((part.pidCut() & 128u) == 0) // 128 for pion combined
1610+
if ((part.pidCut() & 512u) != 0) {
1611+
if ((part.pidCut() & 128u) == 0) // 128 for pion combined
1612+
continue;
1613+
} else if ((part.pidCut() & 2u) == 0) {
16111614
continue;
1615+
}
16121616
}
16131617
registryMCreco.fill(HIST("plus/MCrecoPi"), mcpart.pt(), mcpart.eta());
16141618
registryMCreco.fill(HIST("plus/MCrecoPiPt"), mcpart.pt());
16151619
} else if (mcpart.pdgMCTruth() == kProton) {
16161620
if constexpr (std::experimental::is_detected<hasSigma, typename PartType::iterator>::value) {
1617-
if (!isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePr()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePr())))
1621+
if (!isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePr()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePr()), (part.pidCut() & 512u) != 0))
16181622
continue;
16191623
} else {
1620-
if ((part.pidCut() & 64u) == 0) // 64 for proton combined
1624+
if ((part.pidCut() & 512u) != 0) {
1625+
if ((part.pidCut() & 64u) == 0) // 64 for proton combined
1626+
continue;
1627+
} else if ((part.pidCut() & 1u) == 0) {
16211628
continue;
1629+
}
16221630
}
16231631
registryMCreco.fill(HIST("plus/MCrecoPr"), mcpart.pt(), mcpart.eta());
16241632
registryMCreco.fill(HIST("plus/MCrecoPrPt"), mcpart.pt());
@@ -1627,21 +1635,29 @@ struct FemtoUniversePairTaskTrackV0Extended {
16271635
registryMCreco.fill(HIST("minus/MCrecoAllPt"), mcpart.pt());
16281636
if (mcpart.pdgMCTruth() == kPiMinus) {
16291637
if constexpr (std::experimental::is_detected<hasSigma, typename PartType::iterator>::value) {
1630-
if (!isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePi()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePi())))
1638+
if (!isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePi()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePi()), (part.pidCut() & 512u) != 0))
16311639
continue;
16321640
} else {
1633-
if ((part.pidCut() & 128u) == 0) // 128 for pion combined
1641+
if ((part.pidCut() & 512u) != 0) {
1642+
if ((part.pidCut() & 128u) == 0) // 128 for pion combined
1643+
continue;
1644+
} else if ((part.pidCut() & 2u) == 0) {
16341645
continue;
1646+
}
16351647
}
16361648
registryMCreco.fill(HIST("minus/MCrecoPi"), mcpart.pt(), mcpart.eta());
16371649
registryMCreco.fill(HIST("minus/MCrecoPiPt"), mcpart.pt());
16381650
} else if (mcpart.pdgMCTruth() == kProtonBar) {
16391651
if constexpr (std::experimental::is_detected<hasSigma, typename PartType::iterator>::value) {
1640-
if (!isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePr()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePr())))
1652+
if (!isNSigmaCombined(part.p(), aod::pidtpc_tiny::binning::unPackInTable(part.tpcNSigmaStorePr()), aod::pidtof_tiny::binning::unPackInTable(part.tofNSigmaStorePr()), (part.pidCut() & 512u) != 0))
16411653
continue;
16421654
} else {
1643-
if ((part.pidCut() & 64u) == 0) // 64 for proton combined
1655+
if ((part.pidCut() & 512u) != 0) {
1656+
if ((part.pidCut() & 64u) == 0) // 64 for proton combined
1657+
continue;
1658+
} else if ((part.pidCut() & 1u) == 0) {
16441659
continue;
1660+
}
16451661
}
16461662
registryMCreco.fill(HIST("minus/MCrecoPr"), mcpart.pt(), mcpart.eta());
16471663
registryMCreco.fill(HIST("minus/MCrecoPrPt"), mcpart.pt());

0 commit comments

Comments
 (0)