Skip to content

Commit e548fff

Browse files
kstar histogram now filling, solved several linter issues
1 parent f41cbc6 commit e548fff

1 file changed

Lines changed: 47 additions & 35 deletions

File tree

PWGLF/TableProducer/Nuspex/he3HadronFemto.cxx

Lines changed: 47 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@
6363

6464
#include <Rtypes.h>
6565

66-
#include <algorithm>
6766
#include <array>
6867
#include <cmath>
6968
#include <cstdint>
@@ -150,13 +149,13 @@ constexpr std::array<std::array<double, 6>, static_cast<int>(Species::kAllSpecie
150149
{-1.e32, -1.e32, -1.e32, -1.e32, -1.e32, -1.e32}, // He3
151150
{-1.e32, -1.e32, -1.e32, -1.e32, -1.e32, -1.e32} // hadron
152151
}};
153-
static const std::vector<std::string> kItsParNames{"p0", "p1", "p2", "res0", "res1", "res2"};
152+
const std::vector<std::string> kItsParNames{"p0", "p1", "p2", "res0", "res1", "res2"};
154153

155154
constexpr std::array<std::array<double, 6>, 1> kBetheBlochDefault = {{{-1.e32, -1.e32, -1.e32, -1.e32, -1.e32, -1.e32}}};
156-
static const std::vector<std::string> kBetheBlochParNames{"p0", "p1", "p2", "p3", "p4", "resolution"};
155+
const std::vector<std::string> kBetheBlochParNames{"p0", "p1", "p2", "p3", "p4", "resolution"};
157156

158157
constexpr std::array<std::array<double, 6>, 1> kBetheBlochCorrectionDefault = {{{0.0, -1.e32, -1.e32, 0.0, -1.e32, -1.e32}}};
159-
static const std::vector<std::string> kBetheBlochCorrectionParNames{"p0", "p1", "p2", "p3", "p4", "p5"};
158+
const std::vector<std::string> kBetheBlochCorrectionParNames{"p0", "p1", "p2", "p3", "p4", "p5"};
160159

161160
constexpr std::array<std::array<double, 4>, static_cast<int>(Species::kAllSpecies)> kDCAxyResDefault = {{
162161
{1.09e-4, 0.0011, 0.0065, 1.0399}, // He3
@@ -166,7 +165,7 @@ constexpr std::array<std::array<double, 4>, static_cast<int>(Species::kAllSpecie
166165
{9.36e-5, 0.0019, 0.0080, 1.416}, // He3
167166
{1.18e-4, 0.0020, 0.0025, 1.3460} // Pr
168167
}};
169-
static const std::vector<std::string> kDCAResParNames{"res0", "res1", "res2", "mean"};
168+
const std::vector<std::string> kDCAResParNames{"res0", "res1", "res2", "mean"};
170169

171170
constexpr std::array<double, 3> kHePidTrkPtParamsHeDefault = {0.3101, -0.1759, 0.0262};
172171
constexpr std::array<double, 3> kHePidTrkPParamsHeDefault = {0., 0., 0.};
@@ -175,12 +174,14 @@ constexpr std::array<double, 3> kHePidTrkPParamsHeDefault = {0., 0., 0.};
175174

176175
struct He3HadCandidate {
177176

178-
float recoPtHe3() const { return signHe3 * std::hypot(momHe3[0], momHe3[1]); }
179-
float recoPhiHe3() const { return std::atan2(momHe3[1], momHe3[0]); }
180-
float recoEtaHe3() const { return std::asinh(momHe3[2] / std::abs(recoPtHe3())); }
181-
float recoPtHad() const { return signHad * std::hypot(momHad[0], momHad[1]); }
182-
float recoPhiHad() const { return std::atan2(momHad[1], momHad[0]); }
183-
float recoEtaHad() const { return std::asinh(momHad[2] / std::abs(recoPtHad())); }
177+
[[nodiscard]] float recoPtHe3() const { return signHe3 * std::hypot(momHe3[0], momHe3[1]); }
178+
[[nodiscard]] float recoPhiHe3() const { return std::atan2(momHe3[1], momHe3[0]); }
179+
[[nodiscard]] float recoEtaHe3() const { return std::asinh(momHe3[2] / std::abs(recoPtHe3())); }
180+
[[nodiscard]] float recoPtHad() const { return signHad * std::hypot(momHad[0], momHad[1]); }
181+
[[nodiscard]] float recoPhiHad() const { return std::atan2(momHad[1], momHad[0]); }
182+
[[nodiscard]] float recoEtaHad() const { return std::asinh(momHad[2] / std::abs(recoPtHad())); }
183+
[[nodiscard]] float recoKstar() const { return getkstar(recoPtHe3(), recoEtaHe3(), recoPhiHe3(), constants::physics::MassHelium3, 1.f,
184+
recoPtHad(), recoEtaHad(), recoPhiHad(), constants::physics::MassProton, 1.f); }
184185

185186
std::array<float, 3> momHe3 = {99.f, 99.f, 99.f};
186187
std::array<float, 3> momHad = {99.f, 99.f, 99.f};
@@ -335,13 +336,13 @@ struct he3HadronFemto {
335336
SameKindPair<CollisionsFull, TrackCandidates, BinningType> mPair{binningPolicy, settingNoMixedEvents, -1, &cache};
336337

337338
struct He3HadronParams {
338-
std::array<float, 6> betheBlochParams = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
339-
std::array<float, 6> betheBlochCorrectionParams = {0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f};
340-
std::array<std::array<float, 6>, static_cast<int>(Species::kAllSpecies)> itsParams;
341-
std::array<std::array<float, 4>, static_cast<int>(Species::kAllSpecies)> dcaxyResParams;
342-
std::array<std::array<float, 4>, static_cast<int>(Species::kAllSpecies)> dcazResParams;
343-
std::array<float, 3> hePidTrkPtParams = {0.0f, 0.0f, 0.0f};
344-
std::array<float, 3> hePidTrkPParams = {0.0f, 0.0f, 0.0f};
339+
std::array<float, 6> betheBlochParams{};
340+
std::array<float, 6> betheBlochCorrectionParams{};
341+
std::array<std::array<float, 6>, static_cast<int>(Species::kAllSpecies)> itsParams{};
342+
std::array<std::array<float, 4>, static_cast<int>(Species::kAllSpecies)> dcaxyResParams{};
343+
std::array<std::array<float, 4>, static_cast<int>(Species::kAllSpecies)> dcazResParams{};
344+
std::array<float, 3> hePidTrkPtParams{};
345+
std::array<float, 3> hePidTrkPParams{};
345346
} mHe3HadronParams;
346347

347348
o2::aod::ITSResponse mResponseITS;
@@ -497,8 +498,8 @@ struct he3HadronFemto {
497498
mRunNumber = bc.runNumber();
498499
const float defaultBzValue = -999.0f;
499500
auto run3GrpTimestamp = bc.timestamp();
500-
o2::parameters::GRPObject* grpo = mCcdb->getForTimeStamp<o2::parameters::GRPObject>(settingGrpPath, run3GrpTimestamp);
501-
o2::parameters::GRPMagField* grpmag = 0x0;
501+
auto grpo = mCcdb->getForTimeStamp<o2::parameters::GRPObject>(settingGrpPath, run3GrpTimestamp);
502+
o2::parameters::GRPMagField* grpmag = nullptr;
502503
if (grpo) {
503504
o2::base::Propagator::initFieldFromGRP(grpo);
504505
if (settingDbz < defaultBzValue) {
@@ -575,8 +576,9 @@ struct he3HadronFemto {
575576

576577
float correctPtHe3TrackedAsTriton(const float pt, const uint32_t pidForTracking)
577578
{
578-
if (pt < 2.5 && pidForTracking == o2::track::PID::Triton)
579+
if (pt < 2.5 && pidForTracking == o2::track::PID::Triton) {
579580
return pt * (1. - mHe3HadronParams.hePidTrkPtParams[0] - mHe3HadronParams.hePidTrkPtParams[1] * pt - mHe3HadronParams.hePidTrkPtParams[2] * pt * pt);
581+
}
580582

581583
return pt;
582584
}
@@ -587,16 +589,17 @@ struct he3HadronFemto {
587589
float correctedTPCinnerParam = (heliumPID && settingCompensatePIDinTracking) ? tpcInnerParam / 2.f : tpcInnerParam;
588590

589591
correctedTPCinnerParam *= 2.f; // rigidity to momentum
590-
if (correctedTPCinnerParam < 2.5 && pidForTracking == o2::track::PID::Triton)
592+
if (correctedTPCinnerParam < 2.5 && pidForTracking == o2::track::PID::Triton) {
591593
return correctedTPCinnerParam * (1. - mHe3HadronParams.hePidTrkPParams[0] - mHe3HadronParams.hePidTrkPParams[1] * correctedTPCinnerParam - mHe3HadronParams.hePidTrkPParams[2] * correctedTPCinnerParam * correctedTPCinnerParam);
594+
}
592595

593596
return correctedTPCinnerParam;
594597
}
595598

596599
float computeNsigmaDCA(const float pt, const float dca, const int iSpecies, const char* dcaType = "xy")
597600
{
598601

599-
std::array<float, 4> parameters;
602+
std::array<float, 4> parameters{{0., 0., 0., 0.}};
600603
if (std::strcmp(dcaType, "xy") == 0) {
601604
parameters = mHe3HadronParams.dcaxyResParams[iSpecies];
602605
} else if (std::strcmp(dcaType, "z") == 0) {
@@ -616,8 +619,9 @@ struct he3HadronFemto {
616619
const float nsigmaDcaZ = computeNsigmaDCA(pt, dcaZ, ispecies, "z");
617620

618621
if (std::abs(nsigmaDcaXy) > cutSettings.settingCutNsigmaDcaXy ||
619-
std::abs(nsigmaDcaZ) > cutSettings.settingCutNsigmaDcaZ)
622+
std::abs(nsigmaDcaZ) > cutSettings.settingCutNsigmaDcaZ) {
620623
return false;
624+
}
621625

622626
return true;
623627
}
@@ -787,8 +791,9 @@ struct he3HadronFemto {
787791
std::array<float, 3> collisionVertex = getCollisionVertex(collisions, he3Hadcand.collisionID);
788792

789793
he3Hadcand.momHe3 = std::array{trackHe3.px(), trackHe3.py(), trackHe3.pz()};
790-
for (int i = 0; i < 3; i++)
794+
for (int i = 0; i < 3; i++) {
791795
he3Hadcand.momHe3[i] = he3Hadcand.momHe3[i] * 2;
796+
}
792797
he3Hadcand.momHad = std::array{trackHad.px(), trackHad.py(), trackHad.pz()};
793798
float invMass = CommonInite;
794799
if (settingHadPDGCode == PDG_t::kPiPlus) {
@@ -817,7 +822,7 @@ struct he3HadronFemto {
817822
} else {
818823
auto trackCovHe3 = getTrackParCov(trackHe3);
819824
auto trackCovHad = getTrackParCov(trackHad);
820-
std::array<float, 2> dcaInfo;
825+
std::array<float, 2> dcaInfo{{-999., -999.}};
821826
o2::base::Propagator::Instance()->propagateToDCABxByBz({collisionVertex[0], collisionVertex[1], collisionVertex[2]}, trackCovHe3, 2.f, mFitter.getMatCorrType(), &dcaInfo);
822827
he3Hadcand.dcaxyHe3 = dcaInfo[0];
823828
he3Hadcand.dcazHe3 = dcaInfo[1];
@@ -1009,6 +1014,7 @@ struct he3HadronFemto {
10091014
mQaRegistry.fill(HIST("He3/hHe3Pt"), he3Hadcand.recoPtHe3());
10101015
mQaRegistry.fill(HIST("Had/hHadronPt"), he3Hadcand.recoPtHad());
10111016
mQaRegistry.fill(HIST("hhe3HadtInvMass"), he3Hadcand.invMass);
1017+
mQaRegistry.fill(HIST("hhe3HadKstar"), he3Hadcand.recoKstar());
10121018
mQaRegistry.fill(HIST("He3/hDCAxyHe3"), he3Hadcand.dcaxyHe3);
10131019
mQaRegistry.fill(HIST("He3/hDCAzHe3"), he3Hadcand.dcazHe3);
10141020
mQaRegistry.fill(HIST("Had/hDCAxyHad"), he3Hadcand.dcaxyHad);
@@ -1167,7 +1173,7 @@ struct he3HadronFemto {
11671173

11681174
pairTracksSameEvent(trackTableThisCollision, collision);
11691175

1170-
if (mTrackPairs.size() == 0) {
1176+
if (mTrackPairs.empty()) {
11711177
continue;
11721178
}
11731179

@@ -1248,14 +1254,14 @@ struct he3HadronFemto {
12481254
he3Hadcand.flags |= Flags::kBothPrimaries;
12491255
isMixedPair = false;
12501256

1251-
} else if ((he3Hadcand.flagsHe3 & ParticleFlags::kFromLi4) && (he3Hadcand.flagsHad & ParticleFlags::kFromLi4)) {
1257+
} else if (static_cast<bool>(he3Hadcand.flagsHe3 & ParticleFlags::kFromLi4) && static_cast<bool>(he3Hadcand.flagsHad & ParticleFlags::kFromLi4)) {
12521258

12531259
searchForCommonMotherTrack(motherHe3Idxs, motherHadIdxs, mcParticles, motherParticle, he3Hadcand, isMixedPair, Li4PDG);
12541260
if (!isMixedPair) {
12551261
he3Hadcand.flags |= Flags::kBothFromLi4;
12561262
}
12571263

1258-
} else if ((he3Hadcand.flagsHe3 & ParticleFlags::kFromHypertriton) && (he3Hadcand.flagsHad & ParticleFlags::kFromHypertriton)) {
1264+
} else if (static_cast<bool>(he3Hadcand.flagsHe3 & ParticleFlags::kFromHypertriton) && static_cast<bool>(he3Hadcand.flagsHad & ParticleFlags::kFromHypertriton)) {
12591265

12601266
searchForCommonMotherTrack(motherHe3Idxs, motherHadIdxs, mcParticles, motherParticle, he3Hadcand, isMixedPair, H3LPDG);
12611267
if (!isMixedPair) {
@@ -1306,8 +1312,9 @@ struct he3HadronFemto {
13061312

13071313
for (const auto& track : tracks) {
13081314

1309-
if (!selectTrack(track, Species::kHad))
1315+
if (!selectTrack(track, Species::kHad)) {
13101316
continue;
1317+
}
13111318

13121319
const float itsNSigmaHad = settingHadPDGCode == PDG_t::kProton ? mResponseITS.nSigmaITS<o2::track::PID::Proton>(track.itsClusterSizes(), track.p(), track.eta()) : mResponseITS.nSigmaITS<o2::track::PID::Pion>(track.itsClusterSizes(), track.p(), track.eta());
13131320
mQaRegistry.fill(HIST("Had/h2NsigmaHadronITS_preselection"), track.sign() * track.pt(), itsNSigmaHad, collision.centFT0C());
@@ -1332,8 +1339,9 @@ struct he3HadronFemto {
13321339
const float itsNSigmaHe3 = mResponseITS.nSigmaITS<o2::track::PID::Helium3>(track.itsClusterSizes(), 2 * track.p(), track.eta());
13331340
mQaRegistry.fill(HIST("He3/h2NsigmaHe3ITS_preselection"), ptHe3Corrected, itsNSigmaHe3, collision.centFT0C());
13341341

1335-
if (!selectTrack(track, Species::kHe3) || !selectDcaNsigmaCut(ptHe3Corrected, track.dcaXY(), track.dcaZ(), Species::kHe3) || (itsNSigmaHe3 < cutSettings.settingCutNsigmaITSHe3))
1342+
if (!selectTrack(track, Species::kHe3) || !selectDcaNsigmaCut(ptHe3Corrected, track.dcaXY(), track.dcaZ(), Species::kHe3) || (itsNSigmaHe3 < cutSettings.settingCutNsigmaITSHe3)) {
13361343
continue;
1344+
}
13371345

13381346
mQaRegistry.fill(HIST("He3/hHe3Pt"), track.sign() * ptHe3Corrected);
13391347
mQaRegistry.fill(HIST("He3/hDCAxyHe3"), track.dcaXY());
@@ -1353,17 +1361,20 @@ struct he3HadronFemto {
13531361

13541362
void processPurityMc(const CollisionsFullMC::iterator& collision, const TrackCandidatesMC& tracks, const aod::BCsWithTimestamps& bcs, const aod::McParticles& /*mcParticles*/, const aod::McTrackLabels& /*mcTrackLabels*/)
13551363
{
1356-
if (!selectCollision</*isMC*/ false>(collision, bcs))
1364+
if (!selectCollision</*isMC*/ false>(collision, bcs)) {
13571365
return;
1366+
}
13581367

13591368
for (const auto& track : tracks) {
13601369

1361-
if (!track.has_mcParticle())
1370+
if (!track.has_mcParticle()) {
13621371
continue;
1372+
}
13631373
const auto& particle = track.mcParticle_as<aod::McParticles>();
13641374

1365-
if (!selectTrack(track, Species::kHad))
1375+
if (!selectTrack(track, Species::kHad)) {
13661376
continue;
1377+
}
13671378

13681379
if (selectDcaNsigmaCut(track.pt(), track.dcaXY(), track.dcaZ(), Species::kHad)) {
13691380
mQaRegistry.fill(HIST("Had/hHadronPt"), track.pt());
@@ -1390,8 +1401,9 @@ struct he3HadronFemto {
13901401
}
13911402

13921403
const float ptHe3Corrected = correctPtHe3TrackedAsTriton(track.pt(), track.pidForTracking());
1393-
if (!selectTrack(track, Species::kHe3) || !selectDcaNsigmaCut(ptHe3Corrected, track.dcaXY(), track.dcaZ(), Species::kHe3))
1404+
if (!selectTrack(track, Species::kHe3) || !selectDcaNsigmaCut(ptHe3Corrected, track.dcaXY(), track.dcaZ(), Species::kHe3)) {
13941405
continue;
1406+
}
13951407

13961408
mQaRegistry.fill(HIST("He3/hHe3Pt"), ptHe3Corrected);
13971409
mQaRegistry.fill(HIST("He3/hDCAxyHe3"), track.dcaXY());

0 commit comments

Comments
 (0)