diff --git a/reco/KF/CbmTrackingDetectorInterfaceBase.h b/core/base/CbmTrackingDetectorInterfaceBase.h similarity index 100% rename from reco/KF/CbmTrackingDetectorInterfaceBase.h rename to core/base/CbmTrackingDetectorInterfaceBase.h diff --git a/core/detectors/much/CMakeLists.txt b/core/detectors/much/CMakeLists.txt index 6b61a27980989341ddadeb134cf071c480c77f60..1382adc629125b0d36a91e4eed1de7df2239e184 100644 --- a/core/detectors/much/CMakeLists.txt +++ b/core/detectors/much/CMakeLists.txt @@ -5,7 +5,7 @@ Set(INCLUDE_DIRECTORIES ${CMAKE_CURRENT_SOURCE_DIR} - + ${CBMBASE_DIR} ${CBMDATA_DIR} ${CBMDATA_DIR}/much ) @@ -50,6 +50,8 @@ CbmMuchStation.cxx CbmMuchSegmentAuto.cxx CbmMuchSegmentManual.cxx CbmMuchSegmentSector.cxx + +CbmMuchTrackingInterface.cxx ) set(LINKDEF CbmMuchBaseLinkDef.h) diff --git a/core/detectors/much/CbmMuchBaseLinkDef.h b/core/detectors/much/CbmMuchBaseLinkDef.h index 1fe749602977048a8753b191b8c41a78af4de4b0..4bf2eb23d0e18ef2e00c8ed7c4fb09b7aad5d08e 100644 --- a/core/detectors/much/CbmMuchBaseLinkDef.h +++ b/core/detectors/much/CbmMuchBaseLinkDef.h @@ -27,6 +27,7 @@ #pragma link C++ class CbmMuchPadRadial + ; #pragma link C++ class CbmMuchPadRectangular + ; #pragma link C++ class CbmMuchStation + ; +#pragma link C++ class CbmMuchTrackingInterface + ; #pragma link C++ class CbmMuchSegmentAuto + ; #pragma link C++ class CbmMuchSegmentManual + ; diff --git a/reco/KF/CbmMuchTrackingInterface.cxx b/core/detectors/much/CbmMuchTrackingInterface.cxx similarity index 54% rename from reco/KF/CbmMuchTrackingInterface.cxx rename to core/detectors/much/CbmMuchTrackingInterface.cxx index ad890d5afcadffe8b5d7fd8ecf56e11c680e01cd..3aca722b249b9a89e02abda97c690409b7038405 100644 --- a/reco/KF/CbmMuchTrackingInterface.cxx +++ b/core/detectors/much/CbmMuchTrackingInterface.cxx @@ -11,20 +11,14 @@ #include "CbmMuchTrackingInterface.h" -#include "CbmMuchModuleGem.h" -#include "CbmMuchPad.h" -#include "CbmMuchStation.h" #include "FairDetector.h" #include "FairRunAna.h" #include <FairLogger.h> -#include "TFile.h" -#include "TMath.h" - ClassImp(CbmMuchTrackingInterface) - CbmMuchTrackingInterface* CbmMuchTrackingInterface::fpInstance = nullptr; +CbmMuchTrackingInterface* CbmMuchTrackingInterface::fpInstance = nullptr; //------------------------------------------------------------------------------------------------------------------------------------- // @@ -40,30 +34,6 @@ CbmMuchTrackingInterface::~CbmMuchTrackingInterface() if (fpInstance == this) { fpInstance = nullptr; } } -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMuchTrackingInterface::GetTimeResolution(int /*stationId*/) const { return 3.9; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMuchTrackingInterface::GetZ(int stationId) const { return GetMuchLayer(stationId)->GetZ(); } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMuchTrackingInterface::GetXmax(int /*stationId*/) const { return 100.; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMuchTrackingInterface::GetYmax(int /*stationId*/) const { return 100.; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMuchTrackingInterface::GetRmin(int /*stationId*/) const { return 10.; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMuchTrackingInterface::GetRmax(int /*stationId*/) const { return 100.; } - //------------------------------------------------------------------------------------------------------------------------------------- // int CbmMuchTrackingInterface::GetNtrackingStations() const @@ -77,39 +47,6 @@ int CbmMuchTrackingInterface::GetNtrackingStations() const return nStations; } -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMuchTrackingInterface::GetThickness(int stationId) const { return GetMuchLayer(stationId)->GetDz(); } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMuchTrackingInterface::GetRadLength(int /*stationId*/) const -{ - return 0; // TODO: Replace with correct value -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMuchTrackingInterface::GetStripsStereoAngleFront(int /*stationId*/) const { return 0.; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMuchTrackingInterface::GetStripsStereoAngleBack(int /*stationId*/) const { return TMath::Pi() / 2.; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMuchTrackingInterface::GetStripsSpatialRmsFront(int /*stationId*/) const { return 0.35; } - - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMuchTrackingInterface::GetStripsSpatialRmsBack(int /*stationId*/) const { return 0.35; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -bool CbmMuchTrackingInterface::IsTimeInfoProvided(int /*stationId*/) const { return true; } - - //------------------------------------------------------------------------------------------------------------------------------------- // InitStatus CbmMuchTrackingInterface::Init() @@ -145,7 +82,6 @@ InitStatus CbmMuchTrackingInterface::Init() // InitStatus CbmMuchTrackingInterface::ReInit() { - LOG(info) << "\033[1;33mCALL CbmMuchTrackingInterface::ReInit()\033[0m"; this->SetParContainers(); return Init(); } diff --git a/reco/KF/CbmMuchTrackingInterface.h b/core/detectors/much/CbmMuchTrackingInterface.h similarity index 84% rename from reco/KF/CbmMuchTrackingInterface.h rename to core/detectors/much/CbmMuchTrackingInterface.h index bf2095a51c0ae7d7c2631e58b6e434cc0268f6a3..ed1658aae0b6fe859eb08819574b6eac4e6ab67e 100644 --- a/reco/KF/CbmMuchTrackingInterface.h +++ b/core/detectors/much/CbmMuchTrackingInterface.h @@ -14,9 +14,11 @@ #include "CbmMuchGeoScheme.h" #include "CbmTrackingDetectorInterfaceBase.h" - +#include "CbmMuchModuleGem.h" +#include "CbmMuchPad.h" +#include "CbmMuchStation.h" +#include "TMath.h" #include "FairTask.h" - #include "TString.h" #include <iostream> @@ -49,70 +51,70 @@ public: /// Gets actual number of tracking stations, provided by the current geometry setup int GetNtrackingStations() const; - /// Gets time resolution for a station - /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Time resolution [ns] - double GetTimeResolution(int stationId) const; - - /// Gets z component of the station position - /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Z position of station [cm] - double GetZ(int stationId) const; - - /// Gets max size of a station along the X-axis + /// Gets station radiation length /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Size of station along the X-axis [cm] - double GetXmax(int stationId) const; + /// \return Radiation length [cm] + double GetRadLength(int /*stationId*/) const { return 0; } // TODO: Replace with correct value - /// Gets max size of a station along the Y-axis + /// Gets size of outer radius of station /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Size of station along the Y-axis [cm] - double GetYmax(int stationId) const; + /// \return Size of station outer radius [cm] + double GetRmax(int /*stationId*/) const { return 100.; } /// Gets size of inner radius of station /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) /// \return Size of station inner radius [cm] - double GetRmin(int stationId) const; + double GetRmin(int /*stationId*/) const { return 10.; } - /// Gets size of outer radius of station + /// Gets spatial resolution (RMS) for back strips /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Size of station outer radius [cm] - double GetRmax(int stationId) const; + /// \return Spatial resolution (RMS) for front strips [cm] + double GetStripsSpatialRmsBack(int /*stationId*/) const { return 0.35; } - /// Gets station thickness along the Z-axis + /// Gets spatial resolution (RMS) for front strips /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Station thickness [cm] - double GetThickness(int stationId) const; + /// \return Spatial resolution (RMS) for front strips [cm] + double GetStripsSpatialRmsFront(int /*stationId*/) const { return 0.35; } - /// Gets station radiation length + /// Gets back strips stereo angle /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Radiation length [cm] - double GetRadLength(int stationId) const; + /// \return Absolute stereo angle for back strips [rad] + double GetStripsStereoAngleBack(int /*stationId*/) const { return TMath::Pi() / 2.; } /// Gets front strips stereo angle /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) /// \return Absolute stereo angle for front strips [rad] - double GetStripsStereoAngleFront(int stationId) const; + double GetStripsStereoAngleFront(int /*stationId*/) const { return 0.; } - /// Gets back strips stereo angle + /// Gets station thickness along the Z-axis /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Absolute stereo angle for back strips [rad] - double GetStripsStereoAngleBack(int stationId) const; + /// \return Station thickness [cm] + double GetThickness(int stationId) const { return GetMuchLayer(stationId)->GetDz(); }; - /// Gets spatial resolution (RMS) for front strips + /// Gets time resolution for a station /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Spatial resolution (RMS) for front strips [cm] - double GetStripsSpatialRmsFront(int stationId) const; + /// \return Time resolution [ns] + double GetTimeResolution(int /*stationId*/) const { return 3.9; } - /// Gets spatial resolution (RMS) for back strips + /// Gets max size of a station along the X-axis /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Spatial resolution (RMS) for front strips [cm] - double GetStripsSpatialRmsBack(int stationId) const; + /// \return Size of station along the X-axis [cm] + double GetXmax(int /*stationId*/) const { return 100.; } + + /// Gets max size of a station along the Y-axis + /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) + /// \return Size of station along the Y-axis [cm] + double GetYmax(int /*stationId*/) const { return 100.; } + + /// Gets z component of the station position + /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) + /// \return Z position of station [cm] + double GetZ(int stationId) const { return GetMuchLayer(stationId)->GetZ(); } /// Check if station provides time measurements /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) /// \return Flag: true - station provides time measurements, false - station does not provide time measurements - bool IsTimeInfoProvided(int stationId) const; + bool IsTimeInfoProvided(int /*stationId*/) const { return true; } /// FairTask: sets parameter containers up void SetParContainers(); @@ -124,12 +126,6 @@ public: CbmMuchTrackingInterface& operator=(CbmMuchTrackingInterface&&) = delete; private: - /// Calculates MuCh station ID from tracker station ID - __attribute__((always_inline)) int GetMuchStationId(int stationId) const { return stationId / 3; } - - /// Calculates MuCh layer ID from tracker station ID - __attribute__((always_inline)) int GetMuchLayerId(int stationId) const { return stationId % 3; } - /// Gets pointer to the TRD module /// \param stationId Tracking staton ID /// \return Pointer to the particular CbmTrdParModDigi object @@ -137,6 +133,13 @@ private: { return fGeoScheme->GetLayer(GetMuchStationId(stationId), GetMuchLayerId(stationId)); } + + /// Calculates MuCh layer ID from tracker station ID + __attribute__((always_inline)) int GetMuchLayerId(int stationId) const { return stationId % 3; } + + /// Calculates MuCh station ID from tracker station ID + __attribute__((always_inline)) int GetMuchStationId(int stationId) const { return stationId / 3; } + static CbmMuchTrackingInterface* fpInstance; ///< Instance of the class diff --git a/core/detectors/sts/CMakeLists.txt b/core/detectors/sts/CMakeLists.txt index 9e70d4615dbc0dd2d52084367bd36786c0872d6f..99baaf2cb8439e6c73e9c90fe3e7cf19dc88468f 100644 --- a/core/detectors/sts/CMakeLists.txt +++ b/core/detectors/sts/CMakeLists.txt @@ -25,6 +25,7 @@ CbmStsPhysics.cxx CbmStsSensor.cxx CbmStsSetup.cxx CbmStsStation.cxx +CbmStsTrackingInterface.cxx ) # ----- End of sources --------------------------------- @@ -101,6 +102,7 @@ FILES CbmStsContFact.h CbmStsSensor.h CbmStsSetup.h CbmStsStation.h + CbmStsTrackingInterface.h DESTINATION include ) # --------------------------------------------------------- diff --git a/core/detectors/sts/CbmStsBaseLinkDef.h b/core/detectors/sts/CbmStsBaseLinkDef.h index 032b1a3ce868ce882978dd83c9844ca72f58c541..d6adf33ccb7d4938eda4d45b1a51d0a25672d407 100644 --- a/core/detectors/sts/CbmStsBaseLinkDef.h +++ b/core/detectors/sts/CbmStsBaseLinkDef.h @@ -24,6 +24,7 @@ #pragma link C++ class CbmStsSensor + ; #pragma link C++ class CbmStsSetup + ; #pragma link C++ class CbmStsStation + ; +#pragma link C++ class CbmStsTrackingInterface + ; #pragma link C++ enum CbmStsELoss; #pragma link C++ enum CbmStsSensorClass; diff --git a/reco/KF/CbmStsTrackingInterface.cxx b/core/detectors/sts/CbmStsTrackingInterface.cxx similarity index 52% rename from reco/KF/CbmStsTrackingInterface.cxx rename to core/detectors/sts/CbmStsTrackingInterface.cxx index bdc160f4cee3173a69b923cd8e9d9fa99e64512e..904e476f3e99c9b5bc0b69ae05b007d4b0ef4add 100644 --- a/reco/KF/CbmStsTrackingInterface.cxx +++ b/core/detectors/sts/CbmStsTrackingInterface.cxx @@ -11,19 +11,13 @@ #include "CbmStsTrackingInterface.h" -#include "CbmStsStation.h" - #include "FairDetector.h" #include "FairRunAna.h" #include <FairLogger.h> -#include "TMath.h" - -#include "L1Def.h" - ClassImp(CbmStsTrackingInterface) - CbmStsTrackingInterface* CbmStsTrackingInterface::fpInstance = nullptr; +CbmStsTrackingInterface* CbmStsTrackingInterface::fpInstance = nullptr; //------------------------------------------------------------------------------------------------------------------------------------- // @@ -39,65 +33,11 @@ CbmStsTrackingInterface::~CbmStsTrackingInterface() if (fpInstance == this) { fpInstance = nullptr; } } -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmStsTrackingInterface::GetTimeResolution(int /*stationId*/) const { return 5.; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmStsTrackingInterface::GetZ(int stationId) const -{ - return CbmStsSetup::Instance()->GetStation(stationId)->GetZ(); -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmStsTrackingInterface::GetXmax(int stationId) const -{ - return CbmStsSetup::Instance()->GetStation(stationId)->GetXmax(); -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmStsTrackingInterface::GetYmax(int stationId) const -{ - return CbmStsSetup::Instance()->GetStation(stationId)->GetYmax(); -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmStsTrackingInterface::GetRmin(int /*stationId*/) const { return 0.; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmStsTrackingInterface::GetRmax(int stationId) const -{ - return GetXmax(stationId) > GetYmax(stationId) ? GetXmax(stationId) : GetYmax(stationId); -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -int CbmStsTrackingInterface::GetNtrackingStations() const { return CbmStsSetup::Instance()->GetNofStations(); } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmStsTrackingInterface::GetThickness(int stationId) const -{ - return CbmStsSetup::Instance()->GetStation(stationId)->GetSensorD(); -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmStsTrackingInterface::GetRadLength(int stationId) const -{ - return CbmStsSetup::Instance()->GetStation(stationId)->GetRadLength(); -} - //------------------------------------------------------------------------------------------------------------------------------------- // double CbmStsTrackingInterface::GetStripsStereoAngleFront(int stationId) const { - auto station = CbmStsSetup::Instance()->GetStation(stationId); + auto station = GetStsStation(stationId); return station->GetSensorRotation() + station->GetSensorStereoAngle(0) * TMath::Pi() / 180.; } @@ -105,38 +45,14 @@ double CbmStsTrackingInterface::GetStripsStereoAngleFront(int stationId) const // double CbmStsTrackingInterface::GetStripsStereoAngleBack(int stationId) const { - auto station = CbmStsSetup::Instance()->GetStation(stationId); + auto station = GetStsStation(stationId); return station->GetSensorRotation() + station->GetSensorStereoAngle(1) * TMath::Pi() / 180.; } -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmStsTrackingInterface::GetStripsSpatialRmsFront(int stationId) const -{ - auto station = CbmStsSetup::Instance()->GetStation(stationId); - return station->GetSensorPitch(0) / TMath::Sqrt(12.); -} - - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmStsTrackingInterface::GetStripsSpatialRmsBack(int stationId) const -{ - auto station = CbmStsSetup::Instance()->GetStation(stationId); - return station->GetSensorPitch(0) / TMath::Sqrt(12.); -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -bool CbmStsTrackingInterface::IsTimeInfoProvided(int /*stationId*/) const { return true; } - - //------------------------------------------------------------------------------------------------------------------------------------- // InitStatus CbmStsTrackingInterface::Init() { - LOG(info) << "\033[1;33mCALL CbmStsTrackingInterface::Init()\033[0m"; - // Check, if all the necessary parameter containers were found if (!fStsParSetModule) { return kFATAL; } if (!fStsParSetSensor) { return kFATAL; } @@ -156,7 +72,6 @@ InitStatus CbmStsTrackingInterface::Init() // InitStatus CbmStsTrackingInterface::ReInit() { - LOG(info) << "\033[1;33mCALL CbmStsTrackingInterface::ReInit()\033[0m"; this->SetParContainers(); return Init(); } diff --git a/reco/KF/CbmStsTrackingInterface.h b/core/detectors/sts/CbmStsTrackingInterface.h similarity index 76% rename from reco/KF/CbmStsTrackingInterface.h rename to core/detectors/sts/CbmStsTrackingInterface.h index 095990c0933ff800d24f000cf39397c348e71bb2..789a855e4b187b0e5e7ebebf6a520540713bba71 100644 --- a/reco/KF/CbmStsTrackingInterface.h +++ b/core/detectors/sts/CbmStsTrackingInterface.h @@ -16,9 +16,11 @@ #include "CbmStsParSetSensor.h" #include "CbmStsParSetSensorCond.h" #include "CbmStsSetup.h" +#include "CbmStsStation.h" #include "CbmTrackingDetectorInterfaceBase.h" #include "FairTask.h" +#include "TMath.h" #include <iostream> @@ -44,72 +46,81 @@ public: static CbmStsTrackingInterface* Instance() { return fpInstance; } /// Gets actual number of the tracking stations, provided by the current geometry setup - int GetNtrackingStations() const; - - /// Gets time resolution for a station - /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Time resolution [ns] - double GetTimeResolution(int stationId) const; - - /// Gets z component of the station position - /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Z position of station [cm] - double GetZ(int stationId) const; - - /// Gets max size of a station along the X-axis + int GetNtrackingStations() const { return CbmStsSetup::Instance()->GetNofStations(); } + + /// Gets station radiation length /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Size of station along the X-axis [cm] - double GetXmax(int stationId) const; + /// \return Radiation length [cm] + double GetRadLength(int stationId) const { return GetStsStation(stationId)->GetRadLength(); } - /// Gets max size of a station along the Y-axis + /// Gets size of outer radius of station /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Size of station along the Y-axis [cm] - double GetYmax(int stationId) const; + /// \return Size of station outer radius [cm] + double GetRmax(int stationId) const + { + return GetXmax(stationId) > GetYmax(stationId) ? GetXmax(stationId) : GetYmax(stationId); + } /// Gets size of inner radius of station /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) /// \return Size of station inner radius [cm] - double GetRmin(int stationId) const; - - /// Gets size of outer radius of station + double GetRmin(int /*stationId*/) const { return 0.; } + + /// Gets spatial resolution (RMS) for back strips /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Size of station outer radius [cm] - double GetRmax(int stationId) const; - - /// Gets station thickness along the Z-axis + /// \return Spatial resolution (RMS) for front strips [cm] + double GetStripsSpatialRmsBack(int stationId) const + { + return GetStsStation(stationId)->GetSensorPitch(0) / TMath::Sqrt(12.); + } + + /// Gets spatial resolution (RMS) for front strips /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Station thickness [cm] - double GetThickness(int stationId) const; + /// \return Spatial resolution (RMS) for front strips [cm] + double GetStripsSpatialRmsFront(int stationId) const + { + return GetStsStation(stationId)->GetSensorPitch(0) / TMath::Sqrt(12.); + } - /// Gets station radiation length + /// Gets back strips stereo angle /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Radiation length [cm] - double GetRadLength(int stationId) const; + /// \return Absolute stereo angle for back strips [rad] + double GetStripsStereoAngleBack(int stationId) const; /// Gets front strips stereo angle /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) /// \return Absolute stereo angle for front strips [rad] - double GetStripsStereoAngleFront(int stationId) const; + double GetStripsStereoAngleFront(int stationId) const; + + /// Gets station thickness along the Z-axis + /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) + /// \return Station thickness [cm] + double GetThickness(int stationId) const { return GetStsStation(stationId)->GetSensorD(); } - /// Gets back strips stereo angle + /// Gets time resolution for a station /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Absolute stereo angle for back strips [rad] - double GetStripsStereoAngleBack(int stationId) const; + /// \return Time resolution [ns] + double GetTimeResolution(int /*stationId*/) const { return 5.; } - /// Gets spatial resolution (RMS) for front strips + /// Gets max size of a station along the X-axis /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Spatial resolution (RMS) for front strips [cm] - double GetStripsSpatialRmsFront(int stationId) const; + /// \return Size of station along the X-axis [cm] + double GetXmax(int stationId) const { return GetStsStation(stationId)->GetXmax(); } - /// Gets spatial resolution (RMS) for back strips + /// Gets max size of a station along the Y-axis /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Spatial resolution (RMS) for front strips [cm] - double GetStripsSpatialRmsBack(int stationId) const; + /// \return Size of station along the Y-axis [cm] + double GetYmax(int stationId) const { return GetStsStation(stationId)->GetYmax(); } + + /// Gets z component of the station position + /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) + /// \return Z position of station [cm] + double GetZ(int stationId) const { return GetStsStation(stationId)->GetZ(); } /// Check if station provides time measurements /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) /// \return Flag: true - station provides time measurements, false - station does not provide time measurements - bool IsTimeInfoProvided(int stationId) const; + bool IsTimeInfoProvided(int /*stationId*/) const { return true; } /// FairTask: sets parameter containers up void SetParContainers(); @@ -121,6 +132,14 @@ public: CbmStsTrackingInterface& operator=(CbmStsTrackingInterface&&) = delete; private: + /// Gets pointer to the STS station object + /// \param stationId Tracking staton ID + /// \return Pointer to the particular CbmStsStation object + __attribute__((always_inline)) CbmStsStation* GetStsStation(int stationId) const + { + return CbmStsSetup::Instance()->GetStation(stationId); + } + static CbmStsTrackingInterface* fpInstance; CbmStsParSetSensor* fStsParSetSensor {nullptr}; ///< diff --git a/core/detectors/trd/CMakeLists.txt b/core/detectors/trd/CMakeLists.txt index dd935037423e57682ede5c6be2f8f89a443894e6..e17ffbf4637c5afe994985ee250a8ad8eda504ef 100644 --- a/core/detectors/trd/CMakeLists.txt +++ b/core/detectors/trd/CMakeLists.txt @@ -47,6 +47,7 @@ CbmTrdParModDigi.cxx CbmTrdParModGas.cxx CbmTrdParModGain.cxx CbmTrdParModGeo.cxx +CbmTrdTrackingInterface.cxx #tools CbmTrdGeoHandler.cxx CbmTrdUtils.cxx diff --git a/core/detectors/trd/CbmTrdBaseLinkDef.h b/core/detectors/trd/CbmTrdBaseLinkDef.h index f1cb16ad5c664421bcefac4dc3cff5da5b3586b6..6e7d7174c081e5969378fc7c0c6e2d7b8d0845b5 100644 --- a/core/detectors/trd/CbmTrdBaseLinkDef.h +++ b/core/detectors/trd/CbmTrdBaseLinkDef.h @@ -33,6 +33,7 @@ #pragma link C++ class CbmTrdParModGain + ; #pragma link C++ class CbmTrdParModGeo + ; #pragma link C++ class CbmTrdParModDigi + ; +#pragma link C++ class CbmTrdTrackingInterface + ; //tools #pragma link C++ class CbmTrdGeoHandler + ; #pragma link C++ class CbmTrddEdxUtils + ; diff --git a/reco/KF/CbmTrdTrackingInterface.cxx b/core/detectors/trd/CbmTrdTrackingInterface.cxx similarity index 53% rename from reco/KF/CbmTrdTrackingInterface.cxx rename to core/detectors/trd/CbmTrdTrackingInterface.cxx index db6481a37418f9c2b86a3eb498d03871db262815..71b4de4ddc43d3caad4ee6e690fdbfe1e9efe45f 100644 --- a/reco/KF/CbmTrdTrackingInterface.cxx +++ b/core/detectors/trd/CbmTrdTrackingInterface.cxx @@ -14,10 +14,7 @@ #include "FairDetector.h" #include "FairRunAna.h" #include <FairLogger.h> - -#include "TFile.h" #include "TGeoManager.h" -#include "TMath.h" #include "TString.h" ClassImp(CbmTrdTrackingInterface) @@ -38,30 +35,6 @@ CbmTrdTrackingInterface::~CbmTrdTrackingInterface() if (fpInstance == this) { fpInstance = nullptr; } } -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmTrdTrackingInterface::GetTimeResolution(int /*stationId*/) const { return 10.; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmTrdTrackingInterface::GetZ(int stationId) const { return GetTrdModulePar(stationId)->GetZ(); } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmTrdTrackingInterface::GetXmax(int stationId) const { return GetTrdModulePar(stationId)->GetSizeX(); } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmTrdTrackingInterface::GetYmax(int stationId) const { return GetTrdModulePar(stationId)->GetSizeY(); } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmTrdTrackingInterface::GetRmin(int /*stationId*/) const { return 0.; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmTrdTrackingInterface::GetRmax(int stationId) const { return 2. * this->GetXmax(stationId); } - //------------------------------------------------------------------------------------------------------------------------------------- // int CbmTrdTrackingInterface::GetNtrackingStations() const @@ -82,39 +55,6 @@ int CbmTrdTrackingInterface::GetNtrackingStations() const return nTrdLayers; } -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmTrdTrackingInterface::GetThickness(int stationId) const -{ - return 2. * GetTrdModulePar(stationId)->GetSizeZ(); -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmTrdTrackingInterface::GetRadLength(int /*stationId*/) const { return 1.6; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmTrdTrackingInterface::GetStripsStereoAngleFront(int /*stationId*/) const { return 0.; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmTrdTrackingInterface::GetStripsStereoAngleBack(int /*stationId*/) const { return TMath::Pi() / 2.; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmTrdTrackingInterface::GetStripsSpatialRmsFront(int /*stationId*/) const { return 0.15; } - - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmTrdTrackingInterface::GetStripsSpatialRmsBack(int /*stationId*/) const { return 0.15; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -bool CbmTrdTrackingInterface::IsTimeInfoProvided(int /*stationId*/) const { return true; } - - //------------------------------------------------------------------------------------------------------------------------------------- // InitStatus CbmTrdTrackingInterface::Init() diff --git a/reco/KF/CbmTrdTrackingInterface.h b/core/detectors/trd/CbmTrdTrackingInterface.h similarity index 83% rename from reco/KF/CbmTrdTrackingInterface.h rename to core/detectors/trd/CbmTrdTrackingInterface.h index d07a848d9aef3f8f955d9ec0fe365da9eb29de99..0799a005880225be8727cd1414963ddae85d34b5 100644 --- a/reco/KF/CbmTrdTrackingInterface.h +++ b/core/detectors/trd/CbmTrdTrackingInterface.h @@ -15,10 +15,8 @@ #include "CbmTrackingDetectorInterfaceBase.h" #include "CbmTrdParModDigi.h" #include "CbmTrdParSetDigi.h" - #include "FairTask.h" - -#include "TString.h" +#include "TMath.h" #include <iostream> #include <vector> @@ -48,70 +46,70 @@ public: /// Gets actual number of tracking stations, provided by the current geometry setup int GetNtrackingStations() const; - /// Gets time resolution for a station + /// Gets station radiation length /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Time resolution [ns] - double GetTimeResolution(int stationId) const; + /// \return Radiation length [cm] + double GetRadLength(int /*stationId*/) const { return 1.6; } - /// Gets z component of the station position + /// Gets size of outer radius of station /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Z position of station [cm] - double GetZ(int stationId) const; + /// \return Size of station outer radius [cm] + double GetRmax(int stationId) const { return 2. * this->GetXmax(stationId); } - /// Gets max size of a station along the X-axis + /// Gets size of inner radius of station /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Size of station along the X-axis [cm] - double GetXmax(int stationId) const; + /// \return Size of station inner radius [cm] + double GetRmin(int /*stationId*/) const { return 0.; } - /// Gets max size of a station along the Y-axis + /// Gets back strips stereo angle /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Size of station along the Y-axis [cm] - double GetYmax(int stationId) const; + /// \return Absolute stereo angle for back strips [rad] + double GetStripsStereoAngleBack(int /*stationId*/) const { return 0.5 * TMath::Pi(); } - /// Gets size of inner radius of station + /// Gets front strips stereo angle /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Size of station inner radius [cm] - double GetRmin(int stationId) const; + /// \return Absolute stereo angle for front strips [rad] + double GetStripsStereoAngleFront(int /*stationId*/) const { return 0.; } - /// Gets size of outer radius of station + /// Gets spatial resolution (RMS) for back strips /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Size of station outer radius [cm] - double GetRmax(int stationId) const; + /// \return Spatial resolution (RMS) for front strips [cm] + double GetStripsSpatialRmsBack(int /*stationId*/) const { return 0.15; } - /// Gets station thickness along the Z-axis + /// Gets spatial resolution (RMS) for front strips /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Station thickness [cm] - double GetThickness(int stationId) const; + /// \return Spatial resolution (RMS) for front strips [cm] + double GetStripsSpatialRmsFront(int /*stationId*/) const { return 0.15; } - /// Gets station radiation length + /// Gets station thickness along the Z-axis /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Radiation length [cm] - double GetRadLength(int stationId) const; + /// \return Station thickness [cm] + double GetThickness(int stationId) const { return 2. * GetTrdModulePar(stationId)->GetSizeZ(); } - /// Gets front strips stereo angle + /// Gets time resolution for a station /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Absolute stereo angle for front strips [rad] - double GetStripsStereoAngleFront(int stationId) const; + /// \return Time resolution [ns] + double GetTimeResolution(int /*stationId*/) const { return 10.; } - /// Gets back strips stereo angle + /// Gets max size of a station along the X-axis /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Absolute stereo angle for back strips [rad] - double GetStripsStereoAngleBack(int stationId) const; + /// \return Size of station along the X-axis [cm] + double GetXmax(int stationId) const { return GetTrdModulePar(stationId)->GetSizeX(); } - /// Gets spatial resolution (RMS) for front strips + /// Gets max size of a station along the Y-axis /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Spatial resolution (RMS) for front strips [cm] - double GetStripsSpatialRmsFront(int stationId) const; + /// \return Size of station along the Y-axis [cm] + double GetYmax(int stationId) const { return GetTrdModulePar(stationId)->GetSizeY(); } - /// Gets spatial resolution (RMS) for back strips + /// Gets z component of the station position /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Spatial resolution (RMS) for front strips [cm] - double GetStripsSpatialRmsBack(int stationId) const; - + /// \return Z position of station [cm] + double GetZ(int stationId) const { return GetTrdModulePar(stationId)->GetZ(); } + /// Check if station provides time measurements /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) /// \return Flag: true - station provides time measurements, false - station does not provide time measurements - bool IsTimeInfoProvided(int stationId) const; + bool IsTimeInfoProvided(int /*stationId*/) const { return true; } /// FairTask: sets parameter containers up void SetParContainers(); diff --git a/mvd/CMakeLists.txt b/mvd/CMakeLists.txt index 18439a583363a5c9042cc854bec81786c7a9ad28..7199374d96c6bc041839b420350b94d69ae31b56 100644 --- a/mvd/CMakeLists.txt +++ b/mvd/CMakeLists.txt @@ -72,6 +72,7 @@ set(SRCS CbmMvdSensor.cxx CbmMvdDigiToHit.cxx CbmMvdDigiToHitTB.cxx + CbmMvdTrackingInterface.cxx #OLD CbmMvdClusterfinder.cxx diff --git a/mvd/CbmMvdLinkDef.h b/mvd/CbmMvdLinkDef.h index 2ad2665230a180279595f781826a86cb294b4cd7..7da6cd1484eb1493addd488138cd91598d48e0f2 100644 --- a/mvd/CbmMvdLinkDef.h +++ b/mvd/CbmMvdLinkDef.h @@ -57,6 +57,7 @@ #pragma link C++ class CbmMvdReadoutSimple + ; #pragma link C++ class CbmMvdReadoutCluster + ; +#pragma link C++ class CbmMvdTrackingInterface + ; //#pragma link C++ class MyG4UniversalFluctuationForSi+; //#pragma link C++ class CbmMvdFindHits+; diff --git a/mvd/CbmMvdTrackingInterface.cxx b/mvd/CbmMvdTrackingInterface.cxx new file mode 100644 index 0000000000000000000000000000000000000000..50410b3c0d69158740039beae09710c11ba80e15 --- /dev/null +++ b/mvd/CbmMvdTrackingInterface.cxx @@ -0,0 +1,61 @@ +/* Copyright (C) 2016-2022 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt + SPDX-License-Identifier: GPL-3.0-only + Authors: Sergey Gorbunov, Sergei Zharko [committer] */ + +/*************************************************************************************************** + * @file CbmMvdTrackingInterface.cxx + * @brief Input data and parameters interface from STS subsystem used in L1 tracker (definition) + * @since 31.05.2022 + * @author S.Zharko <s.zharko@gsi.de> + ***************************************************************************************************/ + +#include "CbmMvdTrackingInterface.h" + + +#include "FairDetector.h" +#include "FairRunAna.h" +#include <FairLogger.h> + +ClassImp(CbmMvdTrackingInterface) + +CbmMvdTrackingInterface* CbmMvdTrackingInterface::fpInstance = nullptr; + +//------------------------------------------------------------------------------------------------------------------------------------- +// +CbmMvdTrackingInterface::CbmMvdTrackingInterface() : FairTask("CbmMvdTrackingInterface") +{ + if (!fpInstance) { fpInstance = this; } +} + +//------------------------------------------------------------------------------------------------------------------------------------- +// +CbmMvdTrackingInterface::~CbmMvdTrackingInterface() +{ + if (fpInstance == this) { fpInstance = nullptr; } +} + +//------------------------------------------------------------------------------------------------------------------------------------- +// +InitStatus CbmMvdTrackingInterface::Init() +{ + fMvdStationPar = CbmMvdDetector::Instance()->GetParameterFile(); + + if (!fMvdStationPar) { return kFATAL; } + + return kSUCCESS; +} + +//------------------------------------------------------------------------------------------------------------------------------------- +// +InitStatus CbmMvdTrackingInterface::ReInit() +{ + this->SetParContainers(); + return Init(); +} + +//------------------------------------------------------------------------------------------------------------------------------------- +// +void CbmMvdTrackingInterface::SetParContainers() {} + +//------------------------------------------------------------------------------------------------------------------------------------- +// diff --git a/reco/KF/CbmMvdTrackingInterface.h b/mvd/CbmMvdTrackingInterface.h similarity index 76% rename from reco/KF/CbmMvdTrackingInterface.h rename to mvd/CbmMvdTrackingInterface.h index 9467b25aa4f619bcf57c90ab7c1172a8ed66207f..cf481138dc458c017f02c43adde7a6d0266758b3 100644 --- a/reco/KF/CbmMvdTrackingInterface.h +++ b/mvd/CbmMvdTrackingInterface.h @@ -13,16 +13,15 @@ #define CbmMvdTrackingInterface_h 1 #include "CbmTrackingDetectorInterfaceBase.h" +#include "CbmMvdDetector.h" +#include "CbmMvdStationPar.h" +#include "TMath.h" #include "FairTask.h" #include <iostream> #include <vector> - -class CbmMvdDetector; -class CbmMvdStationPar; - /// Class CbmMvdTrackingInterface is a CbmL1 subtask, which provides necessary methods for L1 tracker /// to access the geometry and dataflow settings. /// @@ -44,72 +43,84 @@ public: static CbmMvdTrackingInterface* Instance() { return fpInstance; } /// Gets actual number of tracking stations, provided by the current geometry setup - int GetNtrackingStations() const; + int GetNtrackingStations() const { return fMvdStationPar->GetStationCount(); } - /// Gets time resolution for a tracking station - /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Time resolution [ns] - double GetTimeResolution(int stationId) const; - - /// Gets z component of the tracking station position - /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Z position of station [cm] - double GetZ(int stationId) const; - - /// Gets max size of a tracking station along the X-axis + /// Gets the tracking station radiation length /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Size of station along the X-axis [cm] - double GetXmax(int stationId) const; + /// \return Radiation length [cm] + double GetRadLength(int stationId) const + { + return fMvdStationPar->GetZThickness(stationId) / (10. * fMvdStationPar->GetZRadThickness(stationId)); + } - /// Gets max size of a tracking station along the Y-axis + /// Gets size of outer radius of a tracking station /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Size of station along the Y-axis [cm] - double GetYmax(int stationId) const; + /// \return Size of station outer radius [cm] + double GetRmax(int stationId) const + { + return std::max(fMvdStationPar->GetHeight(stationId), fMvdStationPar->GetWidth(stationId)); + } /// Gets size of inner radius of a tracking station /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) /// \return Size of station inner radius [cm] - double GetRmin(int stationId) const; + double GetRmin(int stationId) const + { + return std::min(fMvdStationPar->GetBeamHeight(stationId), fMvdStationPar->GetBeamWidth(stationId)); + } - /// Gets size of outer radius of a tracking station + /// Gets spatial resolution (RMS) for back strips /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Size of station outer radius [cm] - double GetRmax(int stationId) const; + /// \return Spatial resolution (RMS) for front strips [cm] + double GetStripsSpatialRmsBack(int stationId) const { return fMvdStationPar->GetYRes(stationId) / 10000.; } - /// Gets the tracking station thickness along the Z-axis + /// Gets spatial resolution (RMS) for front strips /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Station thickness [cm] - double GetThickness(int stationId) const; + /// \return Spatial resolution (RMS) for front strips [cm] + double GetStripsSpatialRmsFront(int stationId) const { return fMvdStationPar->GetXRes(stationId) / 10000.; } - /// Gets the tracking station radiation length + /// Gets back strips stereo angle /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Radiation length [cm] - double GetRadLength(int stationId) const; + /// \return Absolute stereo angle for back strips [rad] + double GetStripsStereoAngleBack(int /*stationId*/) const { return TMath::Pi() / 2.; } /// Gets front strips stereo angle /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) /// \return Absolute stereo angle for front strips [rad] - double GetStripsStereoAngleFront(int stationId) const; + double GetStripsStereoAngleFront(int /*stationId*/) const { return 0.; } + + /// Gets the tracking station thickness along the Z-axis + /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) + /// \return Station thickness [cm] + double GetThickness(int stationId) const + { + return fMvdStationPar->GetZThickness(stationId); + } - /// Gets back strips stereo angle + /// Gets time resolution for a tracking station /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Absolute stereo angle for back strips [rad] - double GetStripsStereoAngleBack(int stationId) const; + /// \return Time resolution [ns] + double GetTimeResolution(int /*stationId*/) const { return 1000.; } - /// Gets spatial resolution (RMS) for front strips + /// Gets max size of a tracking station along the X-axis /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Spatial resolution (RMS) for front strips [cm] - double GetStripsSpatialRmsFront(int stationId) const; + /// \return Size of station along the X-axis [cm] + double GetXmax(int stationId) const { return this->GetRmax(stationId); } - /// Gets spatial resolution (RMS) for back strips + /// Gets max size of a tracking station along the Y-axis /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) - /// \return Spatial resolution (RMS) for front strips [cm] - double GetStripsSpatialRmsBack(int stationId) const; + /// \return Size of station along the Y-axis [cm] + double GetYmax(int stationId) const { return this->GetRmax(stationId); } + + /// Gets z component of the tracking station position + /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) + /// \return Z position of station [cm] + double GetZ(int stationId) const { return fMvdStationPar->GetZPosition(stationId); } /// Check if the detector provides time measurements /// \param stationId Tracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1]) /// \return Flag: true - station provides time measurements, false - station does not provide time measurements - bool IsTimeInfoProvided(int stationId) const; + bool IsTimeInfoProvided(int /*stationId*/) const { return false; } /// FairTask: sets parameter containers up void SetParContainers(); diff --git a/reco/KF/CbmMvdTrackingInterface.cxx b/reco/KF/CbmMvdTrackingInterface.cxx deleted file mode 100644 index 0ceebb23609241170de72e48f8395e80be0dbeb3..0000000000000000000000000000000000000000 --- a/reco/KF/CbmMvdTrackingInterface.cxx +++ /dev/null @@ -1,144 +0,0 @@ -/* Copyright (C) 2016-2022 GSI Helmholtzzentrum fuer Schwerionenforschung, Darmstadt - SPDX-License-Identifier: GPL-3.0-only - Authors: Sergey Gorbunov, Sergei Zharko [committer] */ - -/*************************************************************************************************** - * @file CbmMvdTrackingInterface.cxx - * @brief Input data and parameters interface from STS subsystem used in L1 tracker (definition) - * @since 31.05.2022 - * @author S.Zharko <s.zharko@gsi.de> - ***************************************************************************************************/ - -#include "CbmMvdTrackingInterface.h" - -#include "CbmMvdDetector.h" -#include "CbmMvdStationPar.h" - -#include "FairDetector.h" -#include "FairRunAna.h" -#include <FairLogger.h> - -#include "TMath.h" - -#include "L1Def.h" - -ClassImp(CbmMvdTrackingInterface) - - CbmMvdTrackingInterface* CbmMvdTrackingInterface::fpInstance = nullptr; - -//------------------------------------------------------------------------------------------------------------------------------------- -// -CbmMvdTrackingInterface::CbmMvdTrackingInterface() : FairTask("CbmMvdTrackingInterface") -{ - if (!fpInstance) { fpInstance = this; } -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -CbmMvdTrackingInterface::~CbmMvdTrackingInterface() -{ - if (fpInstance == this) { fpInstance = nullptr; } -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMvdTrackingInterface::GetTimeResolution(int /*stationId*/) const { return 1000.; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMvdTrackingInterface::GetZ(int stationId) const { return fMvdStationPar->GetZPosition(stationId); } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMvdTrackingInterface::GetXmax(int stationId) const { return this->GetRmax(stationId); } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMvdTrackingInterface::GetYmax(int stationId) const { return this->GetRmax(stationId); } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMvdTrackingInterface::GetRmin(int stationId) const -{ - return std::min(fMvdStationPar->GetBeamHeight(stationId), fMvdStationPar->GetBeamWidth(stationId)); -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMvdTrackingInterface::GetRmax(int stationId) const -{ - return std::max(fMvdStationPar->GetHeight(stationId), fMvdStationPar->GetWidth(stationId)); -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -int CbmMvdTrackingInterface::GetNtrackingStations() const { return fMvdStationPar->GetStationCount(); } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMvdTrackingInterface::GetThickness(int stationId) const { return fMvdStationPar->GetZThickness(stationId); } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMvdTrackingInterface::GetRadLength(int stationId) const -{ - // NOTE: Taken from CbmKF::Init() (S.Zharko) - return fMvdStationPar->GetZThickness(stationId) / (10. * fMvdStationPar->GetZRadThickness(stationId)); -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMvdTrackingInterface::GetStripsStereoAngleFront(int /*stationId*/) const { return 0.; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMvdTrackingInterface::GetStripsStereoAngleBack(int /*stationId*/) const { return TMath::Pi() / 2.; } - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMvdTrackingInterface::GetStripsSpatialRmsFront(int stationId) const -{ - return fMvdStationPar->GetXRes(stationId) / 10000.; -} - - -//------------------------------------------------------------------------------------------------------------------------------------- -// -double CbmMvdTrackingInterface::GetStripsSpatialRmsBack(int stationId) const -{ - return fMvdStationPar->GetYRes(stationId) / 10000.; -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -bool CbmMvdTrackingInterface::IsTimeInfoProvided(int /*stationId*/) const { return false; } - - -//------------------------------------------------------------------------------------------------------------------------------------- -// -InitStatus CbmMvdTrackingInterface::Init() -{ - LOG(info) << "\033[1;33mCALL CbmMvdTrackingInterface::Init()\033[0m"; - - fMvdStationPar = CbmMvdDetector::Instance()->GetParameterFile(); - - if (!fMvdStationPar) { return kFATAL; } - - return kSUCCESS; -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -InitStatus CbmMvdTrackingInterface::ReInit() -{ - LOG(info) << "\033[1;33mCALL CbmMvdTrackingInterface::ReInit()\033[0m"; - this->SetParContainers(); - return Init(); -} - -//------------------------------------------------------------------------------------------------------------------------------------- -// -void CbmMvdTrackingInterface::SetParContainers() {} - -//------------------------------------------------------------------------------------------------------------------------------------- -// diff --git a/reco/KF/CbmTrackingDetectorInterfaceInit.cxx b/reco/KF/CbmTrackingDetectorInterfaceInit.cxx index 318f21885498a17cb9824f2a61f389e7ede7ce69..d6b89c08bc0c47cbe2072d46e3cad04819e724b3 100644 --- a/reco/KF/CbmTrackingDetectorInterfaceInit.cxx +++ b/reco/KF/CbmTrackingDetectorInterfaceInit.cxx @@ -17,7 +17,6 @@ #include "CbmStsTrackingInterface.h" #include "CbmTrdTrackingInterface.h" -#include "FairTask.h" #include <FairLogger.h> ClassImp(CbmTrackingDetectorInterfaceInit) diff --git a/reco/KF/CbmTrackingDetectorInterfaceInit.h b/reco/KF/CbmTrackingDetectorInterfaceInit.h index 04e5cead71f95b053d9c02d99b7476118caa3361..70431151c9d0d574c141e4b804d04696b7bc6f05 100644 --- a/reco/KF/CbmTrackingDetectorInterfaceInit.h +++ b/reco/KF/CbmTrackingDetectorInterfaceInit.h @@ -12,7 +12,8 @@ #ifndef CbmTrackingDetectorInterfaceInit_h #define CbmTrackingDetectorInterfaceInit_h 1 -class FairTask; +#include "FairTask.h" + class CbmMvdTrackingInterface; class CbmStsTrackingInterface; class CbmMuchTrackingInterface; diff --git a/reco/KF/KF.cmake b/reco/KF/KF.cmake index a218226b8b411aa461c31267c666abd50d94a7b3..083663bc3285caaafde4c59f599b2f361b0f3f3a 100644 --- a/reco/KF/KF.cmake +++ b/reco/KF/KF.cmake @@ -67,10 +67,6 @@ CbmKFUMeasurement.cxx CbmKFVertexInterface.cxx #### Tracker interfaces (will be moved to core/detector/*) ################ -CbmStsTrackingInterface.cxx # TMP: Should be placed to the detector directory! -CbmMvdTrackingInterface.cxx # TMP: Should be placed to the detector directory! -CbmMuchTrackingInterface.cxx # TMP: Should be placed to the detector directory! -CbmTrdTrackingInterface.cxx # TMP: Should be placed to the detector directory! CbmTrackingDetectorInterfaceInit.cxx ########################################################################### @@ -114,11 +110,6 @@ CbmKFUMeasurement.h CbmKFVertexInterface.h #### Tracker interfaces (will be moved to core/detector/*) ################ -CbmStsTrackingInterface.h # TMP: Should be placed to the detector directory! -CbmMvdTrackingInterface.h # TMP: Should be placed to the detector directory! -CbmMuchTrackingInterface.h # TMP: Should be placed to the detector directory! -CbmTrdTrackingInterface.h # TMP: Should be placed to the detector directory! -CbmTrackingDetectorInterfaceBase.h CbmTrackingDetectorInterfaceInit.h ########################################################################### diff --git a/reco/KF/KFLinkDef.h b/reco/KF/KFLinkDef.h index 7f3885f0cfaf7f3fa3fd10ef965a6f70858a5f45..ac53d37336fc8ac55b8e7ef02d18958940f932a2 100644 --- a/reco/KF/KFLinkDef.h +++ b/reco/KF/KFLinkDef.h @@ -38,10 +38,6 @@ #pragma link C++ class CbmGlobalTrackFitterKF + ; #pragma link C++ class CbmTrackingDetectorInterfaceInit + ; -#pragma link C++ class CbmMvdTrackingInterface + ; -#pragma link C++ class CbmStsTrackingInterface + ; -#pragma link C++ class CbmMuchTrackingInterface + ; -#pragma link C++ class CbmTrdTrackingInterface + ; //KFQA /* #pragma link C++ class CbmKFPartEfficiencies + ;