Skip to content

Commit d890f8a

Browse files
martenoledavidrohr
authored andcommitted
Add dummy TRD base class. Probably to be reverted
After ROOT bump to 6.22 or newer. Not clear why, but this is a workaround for an issue with the ROOT interpreter which is not seen anymore in ROOT 6.22. More details in PR 5969
1 parent 3a7cb03 commit d890f8a

6 files changed

Lines changed: 61 additions & 21 deletions

File tree

GPU/GPUTracking/CMakeLists.txt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ set(HDRS_INSTALL
153153
if(ALIGPU_BUILD_TYPE STREQUAL "O2")
154154
set(SRCS ${SRCS} Interface/GPUO2InterfaceConfigurableParam.cxx)
155155
set(HDRS_CINT_O2 ${HDRS_CINT_O2} DataTypes/TPCdEdxCalibrationSplines.h Interface/GPUO2InterfaceConfigurableParam.h)
156-
set(HDRS_CINT_O2_ADDITIONAL DataTypes/GPUSettings.h Definitions/GPUSettingsList.h DataTypes/GPUDataTypes.h TRDTracking/GPUTRDTrack.h) # Manual dependencies for ROOT dictionary generation
156+
set(HDRS_CINT_O2_ADDITIONAL DataTypes/GPUSettings.h Definitions/GPUSettingsList.h DataTypes/GPUDataTypes.h TRDTracking/GPUTRDTrack.h TRDTracking/GPUTRDO2BaseTrack.h) # Manual dependencies for ROOT dictionary generation
157157
endif()
158158

159159
# Sources for O2 and for Standalone if requested in config file
@@ -206,7 +206,8 @@ if(ALIGPU_BUILD_TYPE STREQUAL "O2" OR CONFIG_O2_EXTENSIONS)
206206
Definitions/clusterFinderDefs.h
207207
TPCClusterFinder/GPUTPCClusterFinderKernels.h
208208
TPCClusterFinder/PackedCharge.h
209-
TPCClusterFinder/GPUTPCCFChainContext.h)
209+
TPCClusterFinder/GPUTPCCFChainContext.h
210+
TRDTracking/GPUTRDO2BaseTrack.h)
210211
endif()
211212

212213
# Sources only for AliRoot

GPU/GPUTracking/DataTypes/GPUTRDDef.h

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,10 @@ class AliTrackerBase;
2828
#else
2929
namespace o2
3030
{
31-
namespace track
31+
namespace gpu
3232
{
33-
template <typename>
34-
class TrackParametrizationWithError;
35-
} // namespace dataformats
33+
class GPUTRDO2BaseTrack;
34+
} // namespace gpu
3635
namespace base
3736
{
3837
template <typename>
@@ -57,7 +56,7 @@ typedef AliExternalTrackParam TRDBaseTrack;
5756
class GPUTPCGMTrackParam;
5857
typedef GPUTPCGMTrackParam TRDBaseTrackGPU;
5958
#elif defined(TRD_TRACK_TYPE_O2)
60-
typedef o2::track::TrackParametrizationWithError<float> TRDBaseTrack;
59+
typedef o2::gpu::GPUTRDO2BaseTrack TRDBaseTrack;
6160
class GPUTPCGMTrackParam;
6261
typedef GPUTPCGMTrackParam TRDBaseTrackGPU;
6362
#endif

GPU/GPUTracking/GPUTrackingLinkDef_O2.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,10 @@
1818
#pragma link off all functions;
1919

2020
#pragma link C++ class o2::gpu::TPCdEdxCalibrationSplines + ;
21-
#pragma link C++ class o2::gpu::trackInterface < o2::track::TrackParCov> + ;
22-
#pragma link C++ class o2::gpu::GPUTRDTrack_t < o2::gpu::trackInterface < o2::track::TrackParCov>> + ;
23-
#pragma link C++ class std::vector < o2::gpu::GPUTRDTrack_t < o2::gpu::trackInterface < o2::track::TrackParCov>>> + ;
21+
#pragma link C++ class o2::gpu::GPUTRDO2BaseTrack + ;
22+
#pragma link C++ class o2::gpu::trackInterface < o2::gpu::GPUTRDO2BaseTrack> + ;
23+
#pragma link C++ class o2::gpu::GPUTRDTrack_t < o2::gpu::trackInterface < o2::gpu::GPUTRDO2BaseTrack>> + ;
24+
#pragma link C++ class std::vector < o2::gpu::GPUTRDTrack_t < o2::gpu::trackInterface < o2::gpu::GPUTRDO2BaseTrack>>> + ;
2425
#pragma link C++ class o2::gpu::GPUConfigurableParamGPUSettingsO2 + ;
2526
#pragma link C++ class o2::gpu::GPUConfigurableParamGPUSettingsRec + ;
2627
#pragma link C++ class o2::gpu::GPUConfigurableParamGPUSettingsProcessing + ;

GPU/GPUTracking/TRDTracking/GPUTRDInterfaces.h

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ class propagatorInterface<AliTrackerBase> : public AliTrackerBase
140140
#include "DataFormatsTPC/TrackTPC.h"
141141
#include "ReconstructionDataFormats/GlobalTrackID.h"
142142
#include "DetectorsBase/Propagator.h"
143+
#include "GPUTRDO2BaseTrack.h"
143144
#include <cmath>
144145

145146
namespace GPUCA_NAMESPACE
@@ -149,12 +150,12 @@ namespace gpu
149150
{
150151

151152
template <>
152-
class trackInterface<o2::track::TrackParCov> : public o2::track::TrackParCov
153+
class trackInterface<GPUTRDO2BaseTrack> : public GPUTRDO2BaseTrack
153154
{
154155
public:
155-
trackInterface<o2::track::TrackParCov>() = default;
156-
trackInterface<o2::track::TrackParCov>(const o2::track::TrackParCov& param) = delete;
157-
trackInterface<o2::track::TrackParCov>(const o2::dataformats::TrackTPCITS& trkItsTpc, float vDrift) : o2::track::TrackParCov(trkItsTpc.getParamOut())
156+
trackInterface<GPUTRDO2BaseTrack>() = default;
157+
trackInterface<GPUTRDO2BaseTrack>(const GPUTRDO2BaseTrack& param) = delete;
158+
trackInterface<GPUTRDO2BaseTrack>(const o2::dataformats::TrackTPCITS& trkItsTpc, float vDrift) : GPUTRDO2BaseTrack(trkItsTpc.getParamOut())
158159
{
159160
mTime = trkItsTpc.getTimeMUS().getTimeStamp();
160161
mTimeAddMax = trkItsTpc.getTimeMUS().getTimeStampError();
@@ -163,7 +164,7 @@ class trackInterface<o2::track::TrackParCov> : public o2::track::TrackParCov
163164
mRefTPC = trkItsTpc.getRefTPC();
164165
updateCov(std::pow(trkItsTpc.getTimeMUS().getTimeStampError() * vDrift, 2), o2::track::CovLabels::kSigZ2); // account for time uncertainty by increasing sigmaZ2
165166
}
166-
trackInterface<o2::track::TrackParCov>(const o2::tpc::TrackTPC& trkTpc, float tbWidth, float vDrift, unsigned int iTrk) : o2::track::TrackParCov(trkTpc.getParamOut())
167+
trackInterface<GPUTRDO2BaseTrack>(const o2::tpc::TrackTPC& trkTpc, float tbWidth, float vDrift, unsigned int iTrk) : GPUTRDO2BaseTrack(trkTpc.getParamOut())
167168
{
168169
mRefTPC = {iTrk, o2::dataformats::GlobalTrackID::TPC};
169170
mTime = trkTpc.getTime0() * tbWidth;
@@ -190,8 +191,8 @@ class trackInterface<o2::track::TrackParCov> : public o2::track::TrackParCov
190191
setCov(cov[i], i);
191192
}
192193
}
193-
trackInterface<o2::track::TrackParCov>(const GPUTPCGMMergedTrack& trk) { set(trk.OuterParam().X, trk.OuterParam().alpha, trk.OuterParam().P, trk.OuterParam().C); }
194-
trackInterface<o2::track::TrackParCov>(const GPUTPCGMTrackParam::GPUTPCOuterParam& param) { set(param.X, param.alpha, param.P, param.C); }
194+
trackInterface<GPUTRDO2BaseTrack>(const GPUTPCGMMergedTrack& trk) { set(trk.OuterParam().X, trk.OuterParam().alpha, trk.OuterParam().P, trk.OuterParam().C); }
195+
trackInterface<GPUTRDO2BaseTrack>(const GPUTPCGMTrackParam::GPUTPCOuterParam& param) { set(param.X, param.alpha, param.P, param.C); }
195196

196197
const float* getPar() const { return getParams(); }
197198
float getTime() const { return mTime; }
@@ -204,7 +205,7 @@ class trackInterface<o2::track::TrackParCov> : public o2::track::TrackParCov
204205

205206
bool CheckNumericalQuality() const { return true; }
206207

207-
typedef o2::track::TrackParCov baseClass;
208+
typedef GPUTRDO2BaseTrack baseClass;
208209

209210
private:
210211
o2::dataformats::GlobalTrackID mRefTPC; // reference on TPC track entry in its original container
@@ -227,7 +228,7 @@ class propagatorInterface<o2::base::Propagator>
227228
bool propagateToX(float x, float maxSnp, float maxStep) { return mProp->PropagateToXBxByBz(*mParam, x, maxSnp, maxStep); }
228229
int getPropagatedYZ(float x, float& projY, float& projZ) { return static_cast<int>(mParam->getYZAt(x, mProp->getNominalBz(), projY, projZ)); }
229230

230-
void setTrack(trackInterface<o2::track::TrackParCov>* trk) { mParam = trk; }
231+
void setTrack(trackInterface<GPUTRDO2BaseTrack>* trk) { mParam = trk; }
231232
void setFitInProjections(bool flag) {}
232233

233234
float getAlpha() { return (mParam) ? mParam->getAlpha() : 99999.f; }
@@ -253,7 +254,7 @@ class propagatorInterface<o2::base::Propagator>
253254
}
254255
bool rotate(float alpha) { return (mParam) ? mParam->rotate(alpha) : false; }
255256

256-
trackInterface<o2::track::TrackParCov>* mParam{nullptr};
257+
trackInterface<GPUTRDO2BaseTrack>* mParam{nullptr};
257258
o2::base::Propagator* mProp{o2::base::Propagator::Instance()};
258259
};
259260

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// Copyright CERN and copyright holders of ALICE O2. This software is
2+
// distributed under the terms of the GNU General Public License v3 (GPL
3+
// Version 3), copied verbatim in the file "COPYING".
4+
//
5+
// See http://alice-o2.web.cern.ch/license for full licensing information.
6+
//
7+
// In applying this license CERN does not waive the privileges and immunities
8+
// granted to it by virtue of its status as an Intergovernmental Organization
9+
// or submit itself to any jurisdiction.
10+
11+
/// \file GPUTRDO2BaseTrack.h
12+
/// \author Ole Schmidt
13+
14+
#ifndef GPUTRDO2BASETRACK_H
15+
#define GPUTRDO2BASETRACK_H
16+
17+
#include "ReconstructionDataFormats/Track.h"
18+
19+
namespace GPUCA_NAMESPACE
20+
{
21+
namespace gpu
22+
{
23+
24+
class GPUTRDO2BaseTrack : public o2::track::TrackParCov
25+
{
26+
public:
27+
GPUTRDO2BaseTrack() = default;
28+
GPUTRDO2BaseTrack(const o2::track::TrackParCov& t) : o2::track::TrackParCov(t) {}
29+
30+
private:
31+
// dummy class to avoid problems, see https://github.com/AliceO2Group/AliceO2/pull/5969#issuecomment-827475822
32+
ClassDefNV(GPUTRDO2BaseTrack, 1);
33+
};
34+
35+
} // namespace gpu
36+
} // namespace GPUCA_NAMESPACE
37+
38+
#endif

GPU/GPUTracking/TRDTracking/GPUTRDTrack.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ namespace gpu
227227
template class GPUTRDTrack_t<trackInterface<AliExternalTrackParam>>;
228228
#endif
229229
#ifdef GPUCA_O2_LIB // Instantiate O2 track version
230-
template class GPUTRDTrack_t<trackInterface<o2::track::TrackParCov>>;
230+
template class GPUTRDTrack_t<trackInterface<o2::gpu::GPUTRDO2BaseTrack>>;
231231
#endif
232232
#endif
233233
template class GPUTRDTrack_t<trackInterface<GPUTPCGMTrackParam>>; // Always instatiate GM track version

0 commit comments

Comments
 (0)