Skip to content

Commit b47babf

Browse files
authored
Merge branch 'dev' into dedicated_tpc_pid_clus
2 parents 13ae48f + 27422f6 commit b47babf

150 files changed

Lines changed: 8538 additions & 1820 deletions

File tree

Some content is hidden

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

CODEOWNERS

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
/Common/Constants @shahor02
1919
/Common/Field @shahor02
2020
/Common/MathUtils @shahor02
21-
/Common/SimConfig @sawenzel @benedikt-voelkel
21+
/Common/SimConfig @sawenzel
2222
#/Common/Topologies
2323
#/Common/Types
2424
/Common/Utils @sawenzel
@@ -37,10 +37,10 @@
3737
/DataFormats/Detectors/ITSMFT @mcoquet642 @mconcas @shahor02
3838
/DataFormats/Detectors/MUON @AliceO2Group/muon-experts @shahor02
3939
/DataFormats/Detectors/PHOS @peressounko @kharlov
40-
/DataFormats/Detectors/Passive @sawenzel @benedikt-voelkel
40+
/DataFormats/Detectors/Passive @sawenzel
4141
/DataFormats/Detectors/TOF @noferini
4242
/DataFormats/Detectors/TPC @davidrohr @wiechula @shahor02
43-
/DataFormats/Detectors/TRD @f3sch @bazinski @martenole @wille10
43+
/DataFormats/Detectors/TRD @f3sch @bazinski @wille10
4444
/DataFormats/Detectors/Upgrades @mconcas
4545
/DataFormats/Detectors/Upgrades/ITS3 @fgrosa @arossi81
4646
/DataFormats/Detectors/ZDC @coppedis
@@ -53,25 +53,25 @@
5353
/DataFormats/Reconstruction @shahor02
5454
#/DataFormats/TimeFrame
5555
/DataFormats/common @shahor02
56-
/DataFormats/simulation @sawenzel @benedikt-voelkel
56+
/DataFormats/simulation @sawenzel
5757

58-
/Detectors/Base @sawenzel @shahor02 @benedikt-voelkel
58+
/Detectors/Base @sawenzel @shahor02
5959
/Detectors/Calibration @chiarazampolli @shahor02
6060
/Detectors/CPV @peressounko @kharlov
6161
/Detectors/EMCAL @mfasDa @jokonig
6262
/Detectors/FIT @jotwinow @afurs @andreasmolander @arvindkhuntia @mslupeck
6363
/Detectors/FOCAL @maxrauch @mfasDa @iarsene @matthiasrichter
64-
/Detectors/Geometry @sawenzel @shahor02 @benedikt-voelkel
64+
/Detectors/Geometry @sawenzel @shahor02
6565
/Detectors/GlobalTracking @shahor02
6666
/Detectors/GlobalTrackingWorkflow @shahor02
6767
/Detectors/HMPID @gvolpe79
6868
/Detectors/ITSMFT @mcoquet642 @mconcas @shahor02
6969
/Detectors/MUON @AliceO2Group/muon-experts @shahor02
7070
/Detectors/PHOS @peressounko @kharlov
71-
/Detectors/Passive @sawenzel @benedikt-voelkel
71+
/Detectors/Passive @sawenzel
7272
/Detectors/TOF @noferini
7373
/Detectors/TPC @davidrohr @wiechula @shahor02
74-
/Detectors/TRD @f3sch @bazinski @martenole @wille10
74+
/Detectors/TRD @f3sch @bazinski @wille10
7575
/Detectors/Upgrades @mconcas
7676
/Detectors/Upgrades/ITS3 @fgrosa @arossi81 @mconcas @f3sch
7777
/Detectors/ZDC @coppedis
@@ -110,13 +110,13 @@
110110
/GPU @davidrohr
111111
#/GPU/Common
112112
#/GPU/GPUTracking
113-
/GPU/GPUTracking/TRDTracking @davidrohr @martenole
113+
/GPU/GPUTracking/TRDTracking @davidrohr
114114
/GPU/TPCFastTransformation @davidrohr @sgorbuno
115115
/GPU/TPCSpaceChargeBase @davidrohr @ehellbar
116116

117-
/Generators @sawenzel @benedikt-voelkel
117+
/Generators @sawenzel @jackal1-66
118118

119-
/Steer @sawenzel @shahor02 @benedikt-voelkel
119+
/Steer @sawenzel @shahor02
120120

121121
/Testing
122122

Common/Constants/include/CommonConstants/PhysicsConstants.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,8 @@ enum Pdg {
7575
kHyperTriton = 1010010030,
7676
kHyperHydrogen4 = 1010010040,
7777
kHyperHelium4 = 1010020040,
78-
kHyperHelium5 = 1010020050
78+
kHyperHelium5 = 1010020050,
79+
kHyperHelium4Sigma = 1110020040
7980
};
8081

8182
/// \brief Declarations of masses for additional particles
@@ -124,6 +125,7 @@ constexpr double MassHyperTriton = 2.99131;
124125
constexpr double MassHyperHydrogen4 = 3.9226;
125126
constexpr double MassHyperHelium4 = 3.9217;
126127
constexpr double MassHyperHelium5 = 4.841;
128+
constexpr double MassHyperHelium4Sigma = 3.995;
127129

128130
/// \brief Declarations of masses for particles in ROOT PDG_t
129131
constexpr double MassDown = 0.00467;
@@ -194,6 +196,7 @@ constexpr double MassKaonNeutral = MassK0;
194196
constexpr double MassLambda = MassLambda0;
195197
constexpr double MassHyperhydrog4 = MassHyperHydrogen4;
196198
constexpr double MassHyperhelium4 = MassHyperHelium4;
199+
constexpr double MassHyperhelium4sigma = MassHyperHelium4Sigma;
197200

198201
// Light speed
199202
constexpr float LightSpeedCm2S = 299792458.e2; // C in cm/s

Common/Constants/include/CommonConstants/make_pdg_header.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ class Pdg(Enum):
131131
kHyperHydrogen4 = 1010010040
132132
kHyperHelium4 = 1010020040
133133
kHyperHelium5 = 1010020050
134+
kHyperHelium4Sigma = 1110020040
134135

135136

136137
dbPdg = ROOT.o2.O2DatabasePDG

Common/MathUtils/include/MathUtils/SMatrixGPU.h

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,8 @@ class SMatrixGPU
446446
GPUdi() SMatrixGPU(SMatrixNoInit) {}
447447
GPUd() SMatrixGPU(SMatrixIdentity);
448448
GPUd() SMatrixGPU(const SMatrixGPU<T, D1, D2, R>& rhs);
449+
template <class R2>
450+
GPUd() SMatrixGPU(const SMatrixGPU<T, D1, D2, R2>& rhs);
449451
template <class A, class R2>
450452
GPUd() SMatrixGPU(const Expr<A, T, D1, D2, R2>& rhs);
451453
template <class M>
@@ -497,6 +499,11 @@ class SMatrixGPU
497499
GPUd() SMatrixRowGPU operator[](unsigned int i) { return SMatrixRowGPU(*this, i); }
498500
template <class R2>
499501
GPUd() SMatrixGPU<T, D1, D2, R>& operator+=(const SMatrixGPU<T, D1, D2, R2>& rhs);
502+
GPUd() SMatrixGPU<T, D1, D2, R>& operator*=(const T& rhs);
503+
template <class R2>
504+
GPUd() SMatrixGPU<T, D1, D2, R>& operator*=(const SMatrixGPU<T, D1, D2, R2>& rhs);
505+
template <class A, class R2>
506+
GPUd() SMatrixGPU<T, D1, D2, R>& operator*=(const Expr<A, T, D1, D2, R2>& rhs);
500507

501508
GPUd() bool Invert();
502509
GPUd() bool IsInUse(const T* p) const;
@@ -528,6 +535,13 @@ GPUdi() SMatrixGPU<T, D1, D2, R>::SMatrixGPU(const SMatrixGPU<T, D1, D2, R>& rhs
528535
mRep = rhs.mRep;
529536
}
530537

538+
template <class T, unsigned int D1, unsigned int D2, class R>
539+
template <class R2>
540+
GPUd() SMatrixGPU<T, D1, D2, R>::SMatrixGPU(const SMatrixGPU<T, D1, D2, R2>& rhs)
541+
{
542+
operator=(rhs);
543+
}
544+
531545
template <class T, unsigned int D1, unsigned int D2, class R>
532546
GPUdi() T* SMatrixGPU<T, D1, D2, R>::begin()
533547
{
@@ -1387,6 +1401,29 @@ GPUdi() SMatrixGPU<T, D1, D2, R>& SMatrixGPU<T, D1, D2, R>::operator+=(const SMa
13871401
return *this;
13881402
}
13891403

1404+
template <class T, unsigned int D1, unsigned int D2, class R>
1405+
GPUdi() SMatrixGPU<T, D1, D2, R>& SMatrixGPU<T, D1, D2, R>::operator*=(const T & rhs)
1406+
{
1407+
for (unsigned int i = 0; i < R::kSize; ++i) {
1408+
mRep.Array()[i] *= rhs;
1409+
}
1410+
return *this;
1411+
}
1412+
1413+
template <class T, unsigned int D1, unsigned int D2, class R>
1414+
template <class R2>
1415+
GPUdi() SMatrixGPU<T, D1, D2, R>& SMatrixGPU<T, D1, D2, R>::operator*=(const SMatrixGPU<T, D1, D2, R2>& rhs)
1416+
{
1417+
return operator=(*this* rhs);
1418+
}
1419+
1420+
template <class T, unsigned int D1, unsigned int D2, class R>
1421+
template <class A, class R2>
1422+
GPUdi() SMatrixGPU<T, D1, D2, R>& SMatrixGPU<T, D1, D2, R>::operator*=(const Expr<A, T, D1, D2, R2>& rhs)
1423+
{
1424+
return operator=(*this* rhs);
1425+
}
1426+
13901427
template <class T, unsigned int D1, unsigned int D2, class R>
13911428
struct TranspPolicyGPU {
13921429
enum {

DataFormats/Detectors/TPC/include/DataFormatsTPC/CalibdEdxCorrection.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ class CalibdEdxCorrection
9191

9292
void clear();
9393

94-
void writeToFile(std::string_view fileName) const;
95-
void loadFromFile(std::string_view fileName);
94+
void writeToFile(std::string_view fileName, std::string_view objName = "CalibdEdxCorrection") const;
95+
void loadFromFile(std::string_view fileName, std::string_view objName = "CalibdEdxCorrection");
9696

9797
/// \param outFileName name of the output file
9898
void dumpToTree(const char* outFileName = "calib_dedx.root") const;

DataFormats/Detectors/TPC/src/CalibdEdxCorrection.cxx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,16 +36,16 @@ void CalibdEdxCorrection::clear()
3636
mDims = -1;
3737
}
3838

39-
void CalibdEdxCorrection::writeToFile(std::string_view fileName) const
39+
void CalibdEdxCorrection::writeToFile(std::string_view fileName, std::string_view objName) const
4040
{
4141
std::unique_ptr<TFile> file(TFile::Open(fileName.data(), "recreate"));
42-
file->WriteObject(this, "CalibdEdxCorrection");
42+
file->WriteObject(this, objName.data());
4343
}
4444

45-
void CalibdEdxCorrection::loadFromFile(std::string_view fileName)
45+
void CalibdEdxCorrection::loadFromFile(std::string_view fileName, std::string_view objName)
4646
{
4747
std::unique_ptr<TFile> file(TFile::Open(fileName.data()));
48-
auto tmp = file->Get<CalibdEdxCorrection>("CalibdEdxCorrection");
48+
auto tmp = file->Get<CalibdEdxCorrection>(objName.data());
4949
if (tmp != nullptr) {
5050
*this = *tmp;
5151
}

DataFormats/Parameters/src/AggregatedRunInfo.cxx

Lines changed: 18 additions & 91 deletions
Original file line numberDiff line numberDiff line change
@@ -53,106 +53,33 @@ o2::parameters::AggregatedRunInfo AggregatedRunInfo::buildAggregatedRunInfo(int
5353
{
5454
auto nOrbitsPerTF = grpecs->getNHBFPerTF();
5555
// calculate SOR/EOR orbits
56-
int64_t orbitSOR = (sorMS * 1000 - orbitResetMUS) / o2::constants::lhc::LHCOrbitMUS;
57-
int64_t orbitEOR = (eorMS * 1000 - orbitResetMUS) / o2::constants::lhc::LHCOrbitMUS;
58-
// adjust to the nearest TF edge to satisfy condition (orbitSOR % nOrbitsPerTF == 0)
59-
orbitSOR = (orbitSOR / nOrbitsPerTF + 1) * nOrbitsPerTF; // +1 to choose the safe boundary ... towards run middle
60-
orbitEOR = orbitEOR / nOrbitsPerTF * nOrbitsPerTF;
61-
// temporary map of orbit shifts for runs <=LHC22m (while waiting for complete run list from CTP/Calib/FirstRunOrbit)
62-
std::map<int, int> mapOrbitShift;
63-
mapOrbitShift[517619] = 109;
64-
mapOrbitShift[517620] = 109;
65-
mapOrbitShift[517623] = 109;
66-
mapOrbitShift[517677] = 127;
67-
mapOrbitShift[517678] = 127;
68-
mapOrbitShift[517679] = 127;
69-
mapOrbitShift[517685] = 127;
70-
mapOrbitShift[517690] = 127;
71-
mapOrbitShift[517693] = 127;
72-
mapOrbitShift[517737] = 127;
73-
mapOrbitShift[517748] = 127;
74-
mapOrbitShift[517751] = 127;
75-
mapOrbitShift[517753] = 127;
76-
mapOrbitShift[517758] = 127;
77-
mapOrbitShift[517767] = 127;
78-
mapOrbitShift[518541] = 40;
79-
mapOrbitShift[518543] = 92;
80-
mapOrbitShift[518546] = 124;
81-
mapOrbitShift[518547] = 47;
82-
mapOrbitShift[519041] = 59;
83-
mapOrbitShift[519043] = 59;
84-
mapOrbitShift[519045] = 59;
85-
mapOrbitShift[519497] = 86;
86-
mapOrbitShift[519498] = 86;
87-
mapOrbitShift[519499] = 86;
88-
mapOrbitShift[519502] = 86;
89-
mapOrbitShift[519503] = 86;
90-
mapOrbitShift[519504] = 86;
91-
mapOrbitShift[519506] = 86;
92-
mapOrbitShift[519507] = 86;
93-
mapOrbitShift[519903] = 62;
94-
mapOrbitShift[519904] = 62;
95-
mapOrbitShift[519905] = 62;
96-
mapOrbitShift[519906] = 62;
97-
mapOrbitShift[520259] = 76;
98-
mapOrbitShift[520294] = 76;
99-
mapOrbitShift[520471] = 46;
100-
mapOrbitShift[520472] = 46;
101-
mapOrbitShift[520473] = 46;
102-
mapOrbitShift[523142] = 127;
103-
mapOrbitShift[523148] = 127;
104-
mapOrbitShift[523182] = 127;
105-
mapOrbitShift[523186] = 127;
106-
mapOrbitShift[523298] = 28;
107-
mapOrbitShift[523306] = 28;
108-
mapOrbitShift[523308] = 28;
109-
mapOrbitShift[523309] = 28;
110-
mapOrbitShift[523397] = 110;
111-
mapOrbitShift[523399] = 110;
112-
mapOrbitShift[523401] = 110;
113-
mapOrbitShift[523441] = 117;
114-
mapOrbitShift[523541] = 103;
115-
mapOrbitShift[523559] = 103;
116-
mapOrbitShift[523669] = 39;
117-
mapOrbitShift[523671] = 39;
118-
mapOrbitShift[523677] = 39;
119-
mapOrbitShift[523728] = 113;
120-
mapOrbitShift[523731] = 113;
121-
mapOrbitShift[523779] = 41;
122-
mapOrbitShift[523783] = 41;
123-
mapOrbitShift[523786] = 41;
124-
mapOrbitShift[523788] = 41;
125-
mapOrbitShift[523789] = 41;
126-
mapOrbitShift[523792] = 41;
127-
mapOrbitShift[523797] = 41;
128-
mapOrbitShift[523821] = 36;
129-
mapOrbitShift[523897] = 38;
130-
if (mapOrbitShift.find(runnumber) != mapOrbitShift.end()) {
131-
orbitSOR += mapOrbitShift[runnumber];
132-
orbitEOR += mapOrbitShift[runnumber];
133-
}
134-
56+
int64_t orbitSOR = -1;
13557
if (ctfFirstRunOrbitVec && ctfFirstRunOrbitVec->size() >= 3) { // if we have CTP first run orbit available, we should use it
13658
int64_t creation_timeIGNORED = (*ctfFirstRunOrbitVec)[0]; // do not use CTP start of run time!
13759
int64_t ctp_run_number = (*ctfFirstRunOrbitVec)[1];
13860
int64_t ctp_orbitSOR = (*ctfFirstRunOrbitVec)[2];
13961
if (creation_timeIGNORED == -1 && ctp_run_number == -1 && ctp_orbitSOR == -1) {
140-
LOGP(warn, "Default dummy CTP/Calib/FirstRunOrbit was provide, ignoring");
141-
} else if (ctp_run_number == runnumber) { // overwrite orbitSOR
142-
if (ctp_orbitSOR != orbitSOR) {
143-
LOGP(warn, "The calculated orbitSOR {} differs from CTP orbitSOR {}", orbitSOR, ctp_orbitSOR);
144-
// reasons for this is different unit of time storage in RunInformation (ms) and orbitReset (us), etc.
145-
// so we need to adjust the SOR timings to be consistent
146-
auto sor_new = (int64_t)((orbitResetMUS + ctp_orbitSOR * o2::constants::lhc::LHCOrbitMUS) / 1000.);
147-
if (sor_new != sorMS) {
148-
LOGP(warn, "Adjusting SOR from {} to {}", sorMS, sor_new);
149-
sorMS = sor_new;
150-
}
151-
}
62+
LOGP(warn, "Default dummy CTP/Calib/FirstRunOrbit was provides, ignoring");
63+
} else if (ctp_run_number == runnumber) {
15264
orbitSOR = ctp_orbitSOR;
65+
auto sor_new = (int64_t)((orbitResetMUS + ctp_orbitSOR * o2::constants::lhc::LHCOrbitMUS) / 1000.);
66+
if (sor_new != sorMS) {
67+
LOGP(warn, "Adjusting SOR from {} to {}", sorMS, sor_new);
68+
sorMS = sor_new;
69+
}
15370
} else {
15471
LOGP(error, "AggregatedRunInfo: run number inconsistency found (asked: {} vs CTP found: {}, ignoring", runnumber, ctp_run_number);
15572
}
15673
}
74+
int64_t orbitEOR = (eorMS * 1000 - orbitResetMUS) / o2::constants::lhc::LHCOrbitMUS;
75+
if (runnumber > 523897) { // condition was introduced starting from LHC22o
76+
orbitEOR = orbitEOR / nOrbitsPerTF * nOrbitsPerTF;
77+
}
78+
if (orbitSOR < 0) { // extract from SOR
79+
orbitSOR = (sorMS * 1000 - orbitResetMUS) / o2::constants::lhc::LHCOrbitMUS;
80+
if (runnumber > 523897) {
81+
orbitSOR = (orbitSOR / nOrbitsPerTF + 1) * nOrbitsPerTF;
82+
}
83+
}
15784
return AggregatedRunInfo{runnumber, sorMS, eorMS, nOrbitsPerTF, orbitResetMUS, orbitSOR, orbitEOR, grpecs};
15885
}

DataFormats/Reconstruction/include/ReconstructionDataFormats/MatchInfoTOF.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ class MatchInfoTOF
4141
void setChi2(float chi2) { mChi2 = chi2; }
4242
float getChi2() const { return mChi2; }
4343

44+
void setHitPatternUpDown(bool v) { mHitUpDown = v; }
45+
bool getHitPatternUpDown() const { return mHitUpDown; }
46+
47+
void setHitPatternLeftRight(bool v) { mHitLeftRight = v; }
48+
bool getHitPatternLeftRight() const { return mHitLeftRight; }
49+
4450
o2::track::TrackLTIntegral& getLTIntegralOut() { return mIntLT; }
4551
const o2::track::TrackLTIntegral& getLTIntegralOut() const { return mIntLT; }
4652
void print() const;
@@ -76,8 +82,11 @@ class MatchInfoTOF
7682
double mSignal = 0.0; ///< TOF time in ps
7783
float mVz = 0.0; ///< Vz from TOF match
7884
int mChannel = -1; ///< channel
85+
// Hit pattern information
86+
bool mHitUpDown = false; ///< hit pattern in TOF up-down
87+
bool mHitLeftRight = false; ///< hit pattern in TOF left-right
7988

80-
ClassDefNV(MatchInfoTOF, 6);
89+
ClassDefNV(MatchInfoTOF, 7);
8190
};
8291
} // namespace dataformats
8392
} // namespace o2

DataFormats/Reconstruction/include/ReconstructionDataFormats/TrackParametrizationWithError.h

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#define INCLUDE_RECONSTRUCTIONDATAFORMATS_TRACKPARAMETRIZATIONWITHERROR_H_
1919

2020
#include "ReconstructionDataFormats/TrackParametrization.h"
21+
#include <MathUtils/Cartesian.h>
2122

2223
namespace o2
2324
{
@@ -38,10 +39,10 @@ class TrackParametrizationWithError : public TrackParametrization<value_T>
3839
#endif
3940

4041
using covMat_t = gpu::gpustd::array<value_t, kCovMatSize>;
41-
using MatrixDSym5 = ROOT::Math::SMatrix<double, kNParams, kNParams, ROOT::Math::MatRepSym<double, kNParams>>;
42-
using MatrixD5 = ROOT::Math::SMatrix<double, kNParams, kNParams, ROOT::Math::MatRepStd<double, kNParams, kNParams>>;
42+
using MatrixDSym5 = o2::math_utils::SMatrix<double, kNParams, kNParams, o2::math_utils::MatRepSym<double, kNParams>>;
43+
using MatrixD5 = o2::math_utils::SMatrix<double, kNParams, kNParams, o2::math_utils::MatRepStd<double, kNParams, kNParams>>;
4344

44-
GPUd() TrackParametrizationWithError();
45+
GPUhd() TrackParametrizationWithError();
4546
GPUd() TrackParametrizationWithError(value_t x, value_t alpha, const params_t& par, const covMat_t& cov, int charge = 1, const PID pid = PID::Pion);
4647
GPUd() TrackParametrizationWithError(const dim3_t& xyz, const dim3_t& pxpypz,
4748
const gpu::gpustd::array<value_t, kLabCovMatSize>& cv, int sign, bool sectorAlpha = true, const PID pid = PID::Pion);
@@ -100,12 +101,12 @@ class TrackParametrizationWithError : public TrackParametrization<value_T>
100101
template <typename T>
101102
GPUd() value_t getPredictedChi2(const BaseCluster<T>& p) const;
102103

103-
void buildCombinedCovMatrix(const TrackParametrizationWithError& rhs, MatrixDSym5& cov) const;
104-
value_t getPredictedChi2(const TrackParametrizationWithError& rhs, MatrixDSym5& covToSet) const;
104+
GPUd() void buildCombinedCovMatrix(const TrackParametrizationWithError& rhs, MatrixDSym5& cov) const;
105+
GPUd() value_t getPredictedChi2(const TrackParametrizationWithError& rhs, MatrixDSym5& covToSet) const;
105106
GPUd() value_t getPredictedChi2(const TrackParametrizationWithError& rhs) const;
106107
GPUd() value_t getPredictedChi2Quiet(const TrackParametrizationWithError& rhs) const;
107-
bool update(const TrackParametrizationWithError& rhs, const MatrixDSym5& covInv);
108-
bool update(const TrackParametrizationWithError& rhs);
108+
GPUd() bool update(const TrackParametrizationWithError& rhs, const MatrixDSym5& covInv);
109+
GPUd() bool update(const TrackParametrizationWithError& rhs);
109110

110111
GPUd() bool update(const dim2_t& p, const dim3_t& cov);
111112
GPUd() bool update(const value_t* p, const value_t* cov);
@@ -144,7 +145,7 @@ class TrackParametrizationWithError : public TrackParametrization<value_T>
144145

145146
//__________________________________________________________________________
146147
template <typename value_T>
147-
GPUdi() TrackParametrizationWithError<value_T>::TrackParametrizationWithError() : TrackParametrization<value_T>{}
148+
GPUhdi() TrackParametrizationWithError<value_T>::TrackParametrizationWithError() : TrackParametrization<value_T>{}
148149
{
149150
}
150151

0 commit comments

Comments
 (0)