12#ifndef CbmTrackingDetectorInterfaceBase_h
13#define CbmTrackingDetectorInterfaceBase_h 1
17#include "FairMCPoint.h"
23#include <unordered_map>
38 double fXmin{+std::numeric_limits<double>::max()};
39 double fXmax{-std::numeric_limits<double>::max()};
40 double fYmin{+std::numeric_limits<double>::max()};
41 double fYmax{-std::numeric_limits<double>::max()};
42 double fZmin{+std::numeric_limits<double>::max()};
43 double fZmax{-std::numeric_limits<double>::max()};
46 VolumeInfo(
double xMin,
double xMax,
double yMin,
double yMax,
double zMin,
double zMax)
216 std::vector<TString>
CollectNodes(
const TString& detector,
const TString& component,
const TString& path,
double GetTimeError() const
Abstract class, which should be inherited by every detecting subsystem tracking interface class.
double GetYmin(int stationId) const
Gets lower bound of a station passive volume along the Y-axis.
int GetNtrackingStations() const
Gets actual number of stations, provided by the current geometry setup.
virtual int GetTrackingStationIndex(const CbmHit *hit) const =0
Gets a tracking station of a CbmHit.
virtual int GetTrackingStationIndex(int address) const =0
Gets a tracking station by the address of element.
double GetZref(int stationId) const
Gets reference z of the station passive volume.
std::vector< VolumeInfo > fvStationFullVolume
Geometric properties of each station passive volume.
virtual std::string GetDetectorName() const =0
Returns the name of the detector subsystem.
double GetActiveXmin(int stationId) const
Gets lower bound of the station active volume along x-axis.
double GetActiveZmax(int stationId) const
Gets upper bound of the station active volume along z-axis.
std::string ToString() const
Prints all the parameters into table and saves the table as a string.
double GetActiveYmax(int stationId) const
Gets upper bound of the station active volume along y-axis.
double GetZmax(int stationId) const
Gets max z of the station passive volume.
virtual bool IsTimeInfoProvided(int stationId) const =0
Check if station provides time measurements.
VolumeInfo ReadVolume(const TString &path)
Creates volume info from a geo node provided by path.
std::vector< VolumeInfo > fvStationActiveVolume
Geometric properties of each station active volume.
std::vector< TString > CollectNodes(const TString &detector, const TString &component, const TString &path, TGeoNode *pNode)
Collects paths of the components.
double GetActiveYmin(int stationId) const
Gets lower bound of the station active volume along y-axis.
double GetXmin(int stationId) const
Gets lower bound of a station passive volume along the X-axis.
virtual double GetZrefModule(int address)
Gets reference z of the detector module (e.g., RPC for TOF)
double GetYmax(int stationId) const
Gets upper bound of a station passive volume along the Y-axis.
double GetXmax(int stationId) const
Gets upper bound of a station passive volume along the X-axis.
virtual ~CbmTrackingDetectorInterfaceBase()
Virtual destructor.
virtual std::tuple< double, double > GetStereoAnglesSensor(int address) const =0
Gets stereo angles of the two independent measured coordinates.
double GetActiveZmin(int stationId) const
Gets lower bound of the station active volume along z-axis.
bool Check() const
Checks detector interface: boundary conditions of the parameters.
static constexpr bool kUseDynamicCast
virtual int GetTrackingStationIndex(const FairMCPoint *point) const =0
Gets a tracking station of a FairMCPoint.
static constexpr bool kLegacy
If use legacy tracking detector interface definition FIXME: Remove after testing.
virtual std::tuple< double, double, double > GetHitRanges(const CbmPixelHit &hit) const
Gets x,y,t ranges of a CbmPixelHit.
double GetActiveXmax(int stationId) const
Gets upper bound of the station active volume along x-axis.
double GetZmin(int stationId) const
Gets min z of the station passive volume.
Structure to store geometry information of each station.
VolumeInfo()=default
Rule of five.
VolumeInfo & operator+=(const VolumeInfo &other)
Compound assingment of another volume.
double fYmax
Upper bound in y-direction [cm].
VolumeInfo(double xMin, double xMax, double yMin, double yMax, double zMin, double zMax)
Constructor from parameters.
double fZmin
Lower bound in z-direction [cm].
double fXmax
Upper bound in x-direction [cm].
std::string ToString() const
String representation of the structure.
double fYmin
Lower bound in y-direction [cm].
double fXmin
Lower bound in x-direction [cm].
double fZmax
Upper bound in z-direction [cm].