diff --git a/Detectors/ITSMFT/ITS/tracking/include/ITStracking/Tracker.h b/Detectors/ITSMFT/ITS/tracking/include/ITStracking/Tracker.h index 37162676ef71d..78fc6064750f9 100644 --- a/Detectors/ITSMFT/ITS/tracking/include/ITStracking/Tracker.h +++ b/Detectors/ITSMFT/ITS/tracking/include/ITStracking/Tracker.h @@ -65,12 +65,15 @@ class Tracker std::vector& getTracks(); auto& getTrackLabels() { return mTrackLabels; } + bool isMatLUT(); void clustersToTracks(const ROframe&, std::ostream& = std::cout); void setROFrame(std::uint32_t f) { mROFrame = f; } std::uint32_t getROFrame() const { return mROFrame; } void setParameters(const std::vector&, const std::vector&); + void initMatBudLUTFromFile(); + void getGlobalConfiguration(); private: track::TrackParCov buildTrackSeed(const Cluster& cluster1, const Cluster& cluster2, const Cluster& cluster3, @@ -111,9 +114,6 @@ inline void Tracker::setParameters(const std::vector& memPars, { mMemParams = memPars; mTrkParams = trkPars; - if (mTrkParams[0].UseMatBudLUT) { - mMatLayerCylSet = o2::base::MatLayerCylSet::loadFromFile(); - } } inline float Tracker::getBz() const @@ -126,6 +126,16 @@ inline void Tracker::setBz(float bz) mBz = bz; } +inline void Tracker::initMatBudLUTFromFile() +{ + mMatLayerCylSet = o2::base::MatLayerCylSet::loadFromFile(); +} + +inline bool Tracker::isMatLUT() +{ + return mMatLayerCylSet; +} + template void Tracker::initialisePrimaryVertexContext(T&&... args) { diff --git a/Detectors/ITSMFT/ITS/tracking/include/ITStracking/TrackingConfigParam.h b/Detectors/ITSMFT/ITS/tracking/include/ITStracking/TrackingConfigParam.h index eec5b41210e2b..deed8732f6ebd 100644 --- a/Detectors/ITSMFT/ITS/tracking/include/ITStracking/TrackingConfigParam.h +++ b/Detectors/ITSMFT/ITS/tracking/include/ITStracking/TrackingConfigParam.h @@ -19,7 +19,6 @@ namespace o2 namespace its { -class VertexingParameters; struct VertexerParamConfig : public o2::conf::ConfigurableParamHelper { // geometrical cuts @@ -36,7 +35,14 @@ struct VertexerParamConfig : public o2::conf::ConfigurableParamHelper { + + // Use lookup table for mat. budget + bool useMatBudLUT = false; + + O2ParamDef(TrackerParamConfig, "ITSCATrackerParam"); +}; + } // namespace its } // namespace o2 #endif \ No newline at end of file diff --git a/Detectors/ITSMFT/ITS/tracking/src/Tracker.cxx b/Detectors/ITSMFT/ITS/tracking/src/Tracker.cxx index add0998d82bb5..baacef4a26514 100644 --- a/Detectors/ITSMFT/ITS/tracking/src/Tracker.cxx +++ b/Detectors/ITSMFT/ITS/tracking/src/Tracker.cxx @@ -20,6 +20,7 @@ #include "ITStracking/Tracklet.h" #include "ITStracking/TrackerTraits.h" #include "ITStracking/TrackerTraitsCPU.h" +#include "ITStracking/TrackingConfigParam.h" #include "ReconstructionDataFormats/Track.h" #include @@ -653,5 +654,14 @@ track::TrackParCov Tracker::buildTrackSeed(const Cluster& cluster1, const Cluste s2 * fy * cy, 0.f, s2 * cy * cy}); } +void Tracker::getGlobalConfiguration() +{ + auto& tc = o2::its::TrackerParamConfig::Instance(); + + if (tc.useMatBudLUT) { + initMatBudLUTFromFile(); + } +} + } // namespace its } // namespace o2 diff --git a/Detectors/ITSMFT/ITS/tracking/src/TrackingConfigParam.cxx b/Detectors/ITSMFT/ITS/tracking/src/TrackingConfigParam.cxx index bcea094aab68b..c903b41843b1e 100644 --- a/Detectors/ITSMFT/ITS/tracking/src/TrackingConfigParam.cxx +++ b/Detectors/ITSMFT/ITS/tracking/src/TrackingConfigParam.cxx @@ -16,7 +16,9 @@ namespace o2 namespace its { static auto& sVertexerParamITS = o2::its::VertexerParamConfig::Instance(); +static auto& sCATrackerParamITS = o2::its::TrackerParamConfig::Instance(); -O2ParamImpl(o2::its::VertexerParamConfig) +O2ParamImpl(o2::its::VertexerParamConfig); +O2ParamImpl(o2::its::TrackerParamConfig); } // namespace its } // namespace o2 diff --git a/Detectors/ITSMFT/ITS/tracking/src/TrackingLinkDef.h b/Detectors/ITSMFT/ITS/tracking/src/TrackingLinkDef.h index 95a586f24d241..80450e158932a 100644 --- a/Detectors/ITSMFT/ITS/tracking/src/TrackingLinkDef.h +++ b/Detectors/ITSMFT/ITS/tracking/src/TrackingLinkDef.h @@ -20,4 +20,7 @@ #pragma link C++ class o2::its::VertexerParamConfig + ; #pragma link C++ class o2::conf::ConfigurableParamHelper + ; +#pragma link C++ class o2::its::TrackerParamConfig + ; +#pragma link C++ class o2::conf::ConfigurableParamHelper + ; + #endif diff --git a/Detectors/ITSMFT/ITS/workflow/src/TrackerSpec.cxx b/Detectors/ITSMFT/ITS/workflow/src/TrackerSpec.cxx index 7f29a4bb0e0cb..166f04419044b 100644 --- a/Detectors/ITSMFT/ITS/workflow/src/TrackerSpec.cxx +++ b/Detectors/ITSMFT/ITS/workflow/src/TrackerSpec.cxx @@ -79,7 +79,9 @@ void TrackerDPL::init(InitContext& ic) LOG(INFO) << "Initializing tracker in async. phase reconstruction with " << trackParams.size() << " passes"; } mVertexer->getGlobalConfiguration(); - // mVertexer->dumpTraits(); + mTracker->getGlobalConfiguration(); + LOG(INFO) << Form("%ssing lookup table for material budget approximation", (mTracker->isMatLUT() ? "U" : "Not u")); + double origD[3] = {0., 0., 0.}; mTracker->setBz(field->getBz(origD)); } else {