Skip to content

Commit 552df17

Browse files
committed
ITS: minor mod to seed (cosmetic)
1 parent 22e579e commit 552df17

File tree

2 files changed

+44
-44
lines changed

2 files changed

+44
-44
lines changed

Detectors/ITSMFT/ITS/tracking/include/ITStracking/Seeding.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -215,13 +215,13 @@ class DBSCAN
215215
DBSCAN() = default;
216216
DBSCAN(const DBSCANParams& p);
217217

218-
DBSCANResult cluster(const LinearizedTrack* tracks, size_t n);
219-
const auto& getParams() { return mParams; }
220-
const auto& getDistance() { return mDistance; }
218+
DBSCANResult cluster(const LinearizedTrack* tracks, size_t n) const;
219+
const auto& getParams() const { return mParams; }
220+
const auto& getDistance() const { return mDistance; }
221221

222222
private:
223-
void findNeighbors(const LinearizedTrack* tracks, size_t n, NeighborList& neighbors);
224-
void classify(size_t n, const NeighborList& neighbors, std::vector<int32_t>& labels);
223+
void findNeighbors(const LinearizedTrack* tracks, size_t n, NeighborList& neighbors) const;
224+
void classify(size_t n, const NeighborList& neighbors, std::vector<int32_t>& labels) const;
225225
void expandCluster(size_t i, int32_t idx, const NeighborList& neighbors, std::vector<int32_t>& labels) const;
226226

227227
DBSCANParams mParams;
@@ -359,9 +359,9 @@ class Grid
359359
const LinearizedTrack* mTracks;
360360
size_t mNPoints;
361361
std::array<float, NDim> mCellSizes;
362-
std::array<float, NDim> mMinBounds;
363-
std::array<float, NDim> mMaxBounds;
364-
std::array<size_t, NDim> mGridDims;
362+
std::array<float, NDim> mMinBounds{};
363+
std::array<float, NDim> mMaxBounds{};
364+
std::array<size_t, NDim> mGridDims{};
365365
std::vector<GridCell> mCells;
366366
};
367367

Detectors/ITSMFT/ITS/tracking/src/Seeding.cxx

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,10 @@ namespace o2::its
2525
float LinearizedTrack::getChi2(const dataformats::VertexBase& v) const
2626
{
2727
// get residuals (Y and Z DCA in track frame) and calculate chi2
28-
float dx = v.getX() * cosAlp + v.getY() * sinAlp - x; // VX rotated to track frame - trackX
29-
float dy = y + tgP * dx - (-v.getX() * sinAlp + v.getY() * cosAlp);
30-
float dz = z + tgL * dx - v.getZ();
31-
float chi2 = (dy * dy * sig2YI + dz * dz * sig2ZI) + 2. * dy * dz * sigYZI;
28+
float dx = (v.getX() * cosAlp) + (v.getY() * sinAlp) - x; // VX rotated to track frame - trackX
29+
float dy = y + (tgP * dx) - (-v.getX() * sinAlp + v.getY() * cosAlp);
30+
float dz = z + (tgL * dx) - v.getZ();
31+
float chi2 = (dy * dy * sig2YI + dz * dz * sig2ZI) + (2.f * dy * dz * sigYZI);
3232
return chi2 / 2.f; // not using time
3333
}
3434

@@ -38,37 +38,38 @@ void VertexSeed::updateTukeyScale(const LinearizedTrack* ltracks, const int* lab
3838
if (status == kIterateFirst) {
3939
scaleSig2ITuk2I = 1.f / (tukeyC * tukeyC);
4040
return;
41-
} else if (status == kIterateRelaxScale) {
41+
}
42+
if (status == kIterateRelaxScale) {
4243
// relax by 1/3
4344
scaleSig2ITuk2I *= 2.f / 3.f;
4445
return;
45-
} else {
46-
std::vector<float> chi2s;
47-
chi2s.reserve(getNContributors());
46+
}
4847

49-
for (uint32_t entry{ref.getFirstEntry()}; entry < ref.getEntriesBound(); ++entry) {
50-
const auto& lt = ltracks[entry];
51-
if (lt.isDead() || labels[entry] != idx) {
52-
continue;
53-
}
54-
chi2s.push_back(lt.getChi2((const dataformats::VertexBase&)*this));
55-
}
56-
if (chi2s.empty()) {
57-
return;
58-
}
59-
// get MAD scale
60-
std::sort(chi2s.begin(), chi2s.end());
61-
float median = chi2s[chi2s.size() / 2];
62-
std::vector<float> dev;
63-
dev.reserve(chi2s.size());
64-
for (float c : chi2s) {
65-
dev.push_back(o2::gpu::CAMath::Abs(c - median));
48+
std::vector<float> chi2s;
49+
chi2s.reserve(getNContributors());
50+
51+
for (uint32_t entry{ref.getFirstEntry()}; entry < ref.getEntriesBound(); ++entry) {
52+
const auto& lt = ltracks[entry];
53+
if (lt.isDead() || labels[entry] != idx) {
54+
continue;
6655
}
67-
std::sort(dev.begin(), dev.end());
68-
float mad = dev[dev.size() / 2];
69-
float scale = sigma2Gaus * mad;
70-
scaleSig2ITuk2I = 1.f / (scale * tukeyC * tukeyC);
56+
chi2s.push_back(lt.getChi2((const dataformats::VertexBase&)*this));
57+
}
58+
if (chi2s.empty()) {
59+
return;
60+
}
61+
// get MAD scale
62+
std::sort(chi2s.begin(), chi2s.end());
63+
float median = chi2s[chi2s.size() / 2];
64+
std::vector<float> dev;
65+
dev.reserve(chi2s.size());
66+
for (float c : chi2s) {
67+
dev.push_back(o2::gpu::CAMath::Abs(c - median));
7168
}
69+
std::sort(dev.begin(), dev.end());
70+
float mad = dev[dev.size() / 2];
71+
float scale = sigma2Gaus * mad;
72+
scaleSig2ITuk2I = 1.f / (scale * tukeyC * tukeyC);
7273
}
7374

7475
void VertexSeed::resetForNewIteration()
@@ -81,14 +82,14 @@ void VertexSeed::resetForNewIteration()
8182
bool VertexSeed::acceptTrack(const LinearizedTrack& lt)
8283
{
8384
float chi2Red = lt.getChi2((const dataformats::VertexBase&)*this);
84-
float wghT = (1.f - chi2Red * scaleSig2ITuk2I); // weighted distance to vertex
85+
float wghT = (1.f - (chi2Red * scaleSig2ITuk2I)); // weighted distance to vertex
8586
return wghT >= wghMin;
8687
}
8788

8889
void VertexSeed::accountTrack(const LinearizedTrack& lt)
8990
{
9091
float chi2Red = lt.getChi2((const dataformats::VertexBase&)*this);
91-
float wghT = (1.f - chi2Red * scaleSig2ITuk2I); // weighted distance to vertex
92+
float wghT = (1.f - (chi2Red * scaleSig2ITuk2I)); // weighted distance to vertex
9293
if (wghT < wghMin) {
9394
return;
9495
}
@@ -103,7 +104,7 @@ void VertexSeed::accountTrack(const LinearizedTrack& lt)
103104
float tmpSP = lt.sinAlp * lt.tgP, tmpCP = lt.cosAlp * lt.tgP,
104105
tmpSC = lt.sinAlp + tmpCP, tmpCS = -lt.cosAlp + tmpSP,
105106
tmpCL = lt.cosAlp * lt.tgL, tmpSL = lt.sinAlp * lt.tgL,
106-
tmpYXP = lt.y - lt.tgP * lt.x, tmpZXL = lt.z - lt.tgL * lt.x,
107+
tmpYXP = lt.y - (lt.tgP * lt.x), tmpZXL = lt.z - (lt.tgL * lt.x),
107108
tmpCLzz = tmpCL * szzI, tmpSLzz = tmpSL * szzI, tmpSCyz = tmpSC * syzI,
108109
tmpCSyz = tmpCS * syzI, tmpCSyy = tmpCS * syyI, tmpSCyy = tmpSC * syyI,
109110
tmpSLyz = tmpSL * syzI, tmpCLyz = tmpCL * syzI;
@@ -133,15 +134,14 @@ void VertexSeed::solveVertex()
133134
setXYZ(sol(0), sol(1), sol(2));
134135
setCov(C(0, 0), C(1, 0), C(1, 1), C(2, 0), C(2, 1), C(2, 2));
135136
setChi2(wghChi2 / o2::gpu::CAMath::Max(1.f, wghSum - 3.f));
136-
return;
137137
}
138138

139139
namespace dbscan
140140
{
141141

142142
DBSCAN::DBSCAN(const DBSCANParams& p) : mParams(p), mDistance(mParams.eps) {}
143143

144-
DBSCANResult DBSCAN::cluster(const LinearizedTrack* tracks, size_t n)
144+
DBSCANResult DBSCAN::cluster(const LinearizedTrack* tracks, size_t n) const
145145
{
146146
DBSCANResult result;
147147
result.labels.resize(n, DB_UNVISITED);
@@ -185,7 +185,7 @@ DBSCANResult DBSCAN::cluster(const LinearizedTrack* tracks, size_t n)
185185
return result;
186186
}
187187

188-
void DBSCAN::findNeighbors(const LinearizedTrack* tracks, size_t n, NeighborList& neighbors)
188+
void DBSCAN::findNeighbors(const LinearizedTrack* tracks, size_t n, NeighborList& neighbors) const
189189
{
190190
Grid grid(tracks, n, mParams.eps);
191191

@@ -215,7 +215,7 @@ void DBSCAN::findNeighbors(const LinearizedTrack* tracks, size_t n, NeighborList
215215
});
216216
}
217217

218-
void DBSCAN::classify(size_t n, const NeighborList& neighbors, std::vector<int32_t>& labels)
218+
void DBSCAN::classify(size_t n, const NeighborList& neighbors, std::vector<int32_t>& labels) const
219219
{
220220
SCOPED_TIMER("classify");
221221
std::vector<bool> isCore(n, false);

0 commit comments

Comments
 (0)