Skip to content

Commit f3564ff

Browse files
committed
[PWGLF] Fix clang-tidy findings in the K1 micro analysis and ML exporter
Include Math/Vector4Dfwd.h where ROOT::Math::PxPyPzMVector is used, drop the unused LFResonanceTables.h and PhysicsConstants.h includes, simplify the candidate-cut boolean expressions, use designated initializers for EncodedValue and remove redundant int64_t casts. No change in behaviour.
1 parent 0ac4b3f commit f3564ff

4 files changed

Lines changed: 21 additions & 20 deletions

File tree

‎PWGLF/Core/K1AnalysisMicroCore.h‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@
2121

2222
#include "PWGLF/Core/K1MlFeatures.h"
2323
#include "PWGLF/Core/ResoAnalysisSelectionCore.h"
24-
#include "PWGLF/DataModel/LFResonanceTables.h"
2524

2625
#include <CommonConstants/PhysicsConstants.h>
2726
#include <Framework/ASoAHelpers.h>
@@ -32,6 +31,7 @@
3231

3332
#include <Math/GenVector/VectorUtil.h>
3433
#include <Math/Vector4D.h> // IWYU pragma: keep (do not replace with Math/Vector4Dfwd.h)
34+
#include <Math/Vector4Dfwd.h>
3535
#include <TH1.h>
3636
#include <TH2.h>
3737
#include <TPDGCode.h>
@@ -521,7 +521,7 @@ class K1AnalysisMicroCore
521521
}
522522

523523
// Stage L common acceptance uses the existing inclusive rapidity window.
524-
values.inRapidity = !(lResonanceK1.Rapidity() > mCandidateCuts.cK1MaxRap || lResonanceK1.Rapidity() < mCandidateCuts.cK1MinRap);
524+
values.inRapidity = lResonanceK1.Rapidity() >= mCandidateCuts.cK1MinRap && lResonanceK1.Rapidity() <= mCandidateCuts.cK1MaxRap;
525525
if (!values.inRapidity) {
526526
if constexpr (HasCandidateHook) {
527527
if (tripletSelected) {
@@ -553,11 +553,11 @@ class K1AnalysisMicroCore
553553

554554
// Candidate cuts (each one is evaluated only if switched on)
555555
values.passesCandidateCuts =
556-
!(isK892Mode && mSecondaryWindowOn && (!isInWindow(values.mass13, o2::constants::physics::MassK0Star892, mSecondaryCuts.cSecondaryMasswindow) || pion1.sign() == bTrack.sign())) &&
557-
!(mAnotherMassCutOn && !isInRange(isK892Mode ? lResonanceSecondary.M() : values.mass13, mSecondaryCuts.cMinAnotherSecondaryMassCut, mSecondaryCuts.cMaxAnotherSecondaryMassCut)) &&
558-
!(mPiKaMassCutOn && !isInRange(values.mass23, mSecondaryCuts.cMinPiKaMassCut, mSecondaryCuts.cMaxPiKaMassCut)) &&
559-
!(mAngleCutOn && !isInRange(values.angle, mSecondaryCuts.cMinAngle, mSecondaryCuts.cMaxAngle)) &&
560-
!(mPairAsymCutOn && !isInRange(values.pairAsym, mSecondaryCuts.cMinPairAsym, mSecondaryCuts.cMaxPairAsym));
556+
(!isK892Mode || !mSecondaryWindowOn || (isInWindow(values.mass13, o2::constants::physics::MassK0Star892, mSecondaryCuts.cSecondaryMasswindow) && pion1.sign() != bTrack.sign())) &&
557+
(!mAnotherMassCutOn || isInRange(isK892Mode ? lResonanceSecondary.M() : values.mass13, mSecondaryCuts.cMinAnotherSecondaryMassCut, mSecondaryCuts.cMaxAnotherSecondaryMassCut)) &&
558+
(!mPiKaMassCutOn || isInRange(values.mass23, mSecondaryCuts.cMinPiKaMassCut, mSecondaryCuts.cMaxPiKaMassCut)) &&
559+
(!mAngleCutOn || isInRange(values.angle, mSecondaryCuts.cMinAngle, mSecondaryCuts.cMaxAngle)) &&
560+
(!mPairAsymCutOn || isInRange(values.pairAsym, mSecondaryCuts.cMinPairAsym, mSecondaryCuts.cMaxPairAsym));
561561
auto exportCandidate = [&](uint16_t passBits) {
562562
if constexpr (IsResoMicrotrack && !IsMix && HasExportHook) {
563563
onExport(collision, bTrack, pion2, pion1, flowChannel, passBits);

‎PWGLF/Core/K1MlFeatures.h‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -169,21 +169,21 @@ struct EncodedValue {
169169
inline EncodedValue encodePID(float decoded)
170170
{
171171
if (std::isnan(decoded)) {
172-
return {0.f, 0.f, 0.f};
172+
return {.value = 0.f, .valid = 0.f, .overflow = 0.f};
173173
}
174174
if (std::isinf(decoded)) {
175-
return {std::signbit(decoded) ? -3.5f : 3.5f, 1.f, 1.f};
175+
return {.value = std::signbit(decoded) ? -3.5f : 3.5f, .valid = 1.f, .overflow = 1.f};
176176
}
177-
return {decoded, 1.f, 0.f};
177+
return {.value = decoded, .valid = 1.f, .overflow = 0.f};
178178
}
179179

180180
inline EncodedValue encodeDCA(float decoded)
181181
{
182182
if (!std::isfinite(decoded)) {
183-
return {0.f, 0.f, 0.f};
183+
return {.value = 0.f, .valid = 0.f, .overflow = 0.f};
184184
}
185185
const bool overflow = decoded == o2::aod::resomicrodaughter001::DCAEncoding::MaxDCA;
186-
return {decoded, 1.f, overflow ? 1.f : 0.f};
186+
return {.value = decoded, .valid = 1.f, .overflow = overflow ? 1.f : 0.f};
187187
}
188188

189189
struct Kinematics {
@@ -798,7 +798,7 @@ inline FeaturePack buildMasterFeatures(CandidateSnapshot const& candidate)
798798
detail::append(pack.master, index, detail::encodePID(decoded));
799799
}
800800
for (const float& decoded : track.tofNSigma) {
801-
detail::append(pack.master, index, track.hasTOF ? detail::encodePID(decoded) : detail::EncodedValue{0.f, 0.f, 0.f});
801+
detail::append(pack.master, index, track.hasTOF ? detail::encodePID(decoded) : detail::EncodedValue{.value = 0.f, .valid = 0.f, .overflow = 0.f});
802802
}
803803
detail::append(pack.master, index, detail::encodeDCA(track.dcaXY));
804804
detail::append(pack.master, index, detail::encodeDCA(track.dcaZ));

‎PWGLF/Tasks/Resonances/k1AnalysisMicro.cxx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
#include "PWGLF/Core/ResoAnalysisSelectionCore.h"
1919
#include "PWGLF/DataModel/LFResonanceTables.h"
2020

21-
#include <CommonConstants/PhysicsConstants.h>
2221
#include <Framework/ASoA.h>
2322
#include <Framework/AnalysisDataModel.h>
2423
#include <Framework/AnalysisTask.h>
@@ -34,6 +33,7 @@
3433
#include <Framework/runDataProcessing.h>
3534

3635
#include <Math/Vector4D.h> // IWYU pragma: keep (do not replace with Math/Vector4Dfwd.h)
36+
#include <Math/Vector4Dfwd.h>
3737

3838
#include <array>
3939
#include <cmath>

‎PWGLF/Tasks/Resonances/k1TrainingTable.cxx‎

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include <Framework/runDataProcessing.h>
3535

3636
#include <Math/Vector4D.h> // IWYU pragma: keep (do not replace with Math/Vector4Dfwd.h)
37+
#include <Math/Vector4Dfwd.h>
3738
#include <TH1.h>
3839

3940
#include <array>
@@ -145,7 +146,7 @@ struct K1TrainingTable {
145146
k1MlTracks(k1MlEventRow, static_cast<int64_t>(track.trackId()), track.px(), track.py(), track.pz(),
146147
track.pidNSigmaPiFlag(), track.pidNSigmaKaFlag(), track.pidNSigmaPrFlag(),
147148
track.trackSelectionFlags(), track.trackFlags(), track.tpcNClsCrossedRows(), track.itsClusterMap());
148-
const auto row = static_cast<int64_t>(k1MlTracks.lastIndex());
149+
const int64_t row = k1MlTracks.lastIndex();
149150
k1MlTrackRows.emplace(id, row);
150151
return row;
151152
}
@@ -155,9 +156,9 @@ struct K1TrainingTable {
155156
{
156157
k1MlTrackRows.clear();
157158
// ResoCollisions_001 carries no run number or BC; the reduced collision row identifies the event within its DF.
158-
k1MlEvents(static_cast<int64_t>(collision.globalIndex()),
159+
k1MlEvents(collision.globalIndex(),
159160
collision.posZ(), collision.bMagField(), collision.cent(), collision.multiplicity(), collision.isRecINELgt0());
160-
k1MlEventRow = static_cast<int64_t>(k1MlEvents.lastIndex());
161+
k1MlEventRow = k1MlEvents.lastIndex();
161162
}
162163

163164
template <typename Collision>
@@ -168,7 +169,7 @@ struct K1TrainingTable {
168169
}
169170
uint64_t hash = FnvOffsetBasis;
170171
for (const auto& value : pack.master) {
171-
const uint32_t bits = std::bit_cast<uint32_t>(value);
172+
const auto bits = std::bit_cast<uint32_t>(value);
172173
for (unsigned int shift = 0; shift < BitsPerFloat; shift += BitsPerByte) {
173174
hash = (hash ^ ((bits >> shift) & ByteMask)) * FnvPrime;
174175
}
@@ -209,7 +210,7 @@ struct K1TrainingTable {
209210
static_cast<float>(mother.Pt()), static_cast<float>(mother.Rapidity()),
210211
static_cast<float>(mother.Eta()), static_cast<float>(mother.Phi()),
211212
static_cast<int8_t>(kaon.sign()), passBits);
212-
const auto row = static_cast<int64_t>(k1MlCandidates.lastIndex());
213+
const int64_t row = k1MlCandidates.lastIndex();
213214
k1MlInputs(row, pack.master.data(), static_cast<uint8_t>(pack.status));
214215
if constexpr (IsMC) {
215216
const bool matched = channel != K1TruthChannel::None;
@@ -266,7 +267,7 @@ struct K1TrainingTable {
266267
return;
267268
}
268269
core.forEachGeneratedK1(histos, resoParents, [&](auto const& part, K1TruthChannel channel) {
269-
k1MlGenAudit(static_cast<int64_t>(collision.globalIndex()), static_cast<int64_t>(part.originalMcParticleId()),
270+
k1MlGenAudit(collision.globalIndex(), static_cast<int64_t>(part.originalMcParticleId()),
270271
part.pdgCode(), part.daughterPDG1(), part.daughterPDG2(), static_cast<uint8_t>(channel),
271272
part.pt(), part.y(), true);
272273
});

0 commit comments

Comments
 (0)