diff --git a/core/detectors/mvd/CbmMvdTrackingInterface.cxx b/core/detectors/mvd/CbmMvdTrackingInterface.cxx index a4db0e0483c77791d52ad0e6e31f9beaeb34b11a..0dfd769c5eb9618838da6122bda7dd3324963876 100644 --- a/core/detectors/mvd/CbmMvdTrackingInterface.cxx +++ b/core/detectors/mvd/CbmMvdTrackingInterface.cxx @@ -12,6 +12,8 @@ #include "CbmMvdTrackingInterface.h" #include "CbmMvdDetector.h" +#include "CbmMvdPoint.h" +#include "CbmMvdSensor.h" #include <Logger.h> @@ -65,3 +67,17 @@ void CbmMvdTrackingInterface::SetParContainers() {} //------------------------------------------------------------------------------------------------------------------------------------- // + +int CbmMvdTrackingInterface::GetTrackingStationIndex(const FairMCPoint* point) const +{ + const CbmMvdPoint* mvdPoint = [&] { + if constexpr (kUseDynamicCast) { return dynamic_cast<const CbmMvdPoint*>(point); } + else { + return static_cast<const CbmMvdPoint*>(point); + } + }(); + assert(mvdPoint); + const CbmMvdSensor* sensor = CbmMvdDetector::Instance()->GetSensorMap()[mvdPoint->GetDetectorID()]; + assert(sensor); + return sensor->GetStationNr(); +} diff --git a/core/detectors/mvd/CbmMvdTrackingInterface.h b/core/detectors/mvd/CbmMvdTrackingInterface.h index 17b397b97a2fe68c063c4d7b9d9f587595493d33..f3dd228342dac55293806f81a690487c29aceaf4 100644 --- a/core/detectors/mvd/CbmMvdTrackingInterface.h +++ b/core/detectors/mvd/CbmMvdTrackingInterface.h @@ -97,10 +97,7 @@ public: /// @brief Gets a tracking station of a FairMCPoint /// @param point A pointer to FairMCHit /// @return Local index of the tracking station - int GetTrackingStationIndex(const FairMCPoint* point) const - { - return GetTrackingStationIndex(point->GetDetectorID()); - } + int GetTrackingStationIndex(const FairMCPoint* point) const; /// @brief Gets a tracking station by the address of element (detectorID in terms of MVD) /// @param detectorId Unique element address (detectorID in terms of MVD)