CbmRoot
Loading...
Searching...
No Matches
CbmTrackingDetectorInterfaceBase Class Referenceabstract

Abstract class, which should be inherited by every detecting subsystem tracking interface class. More...

#include <CbmTrackingDetectorInterfaceBase.h>

Inheritance diagram for CbmTrackingDetectorInterfaceBase:
[legend]

Classes

struct  VolumeInfo
 Structure to store geometry information of each station. More...
 

Public Member Functions

virtual ~CbmTrackingDetectorInterfaceBase ()
 Virtual destructor.
 
bool Check () const
 Checks detector interface: boundary conditions of the parameters.
 
virtual std::string GetDetectorName () const =0
 Returns the name of the detector subsystem.
 
int GetNtrackingStations () const
 Gets actual number of stations, provided by the current geometry setup.
 
virtual std::tuple< double, double > GetStereoAnglesSensor (int address) const =0
 Gets stereo angles of the two independent measured coordinates.
 
virtual int GetTrackingStationIndex (const CbmHit *hit) const =0
 Gets a tracking station of a CbmHit.
 
virtual int GetTrackingStationIndex (const FairMCPoint *point) const =0
 Gets a tracking station of a FairMCPoint.
 
virtual int GetTrackingStationIndex (int address) const =0
 Gets a tracking station by the address of element.
 
double GetXmax (int stationId) const
 Gets upper bound of a station passive volume along the X-axis.
 
double GetXmin (int stationId) const
 Gets lower bound of a station passive volume along the X-axis.
 
double GetYmax (int stationId) const
 Gets upper bound of a station passive volume along the Y-axis.
 
double GetYmin (int stationId) const
 Gets lower bound of a station passive volume along the Y-axis.
 
double GetZref (int stationId) const
 Gets reference z of the station passive volume.
 
virtual double GetZrefModule (int address)
 Gets reference z of the detector module (e.g., RPC for TOF)
 
double GetZmin (int stationId) const
 Gets min z of the station passive volume.
 
double GetZmax (int stationId) const
 Gets max z of the station passive volume.
 
double GetActiveXmin (int stationId) const
 Gets lower bound of the station active volume along x-axis.
 
double GetActiveXmax (int stationId) const
 Gets upper bound of the station active volume along x-axis.
 
double GetActiveYmin (int stationId) const
 Gets lower bound of the station active volume along y-axis.
 
double GetActiveYmax (int stationId) const
 Gets upper bound of the station active volume along y-axis.
 
double GetActiveZmin (int stationId) const
 Gets lower bound of the station active volume along z-axis.
 
double GetActiveZmax (int stationId) const
 Gets upper bound of the station active volume along z-axis.
 
virtual bool IsTimeInfoProvided (int stationId) const =0
 Check if station provides time measurements.
 
virtual std::tuple< double, double, double > GetHitRanges (const CbmPixelHit &hit) const
 Gets x,y,t ranges of a CbmPixelHit.
 
std::string ToString () const
 Prints all the parameters into table and saves the table as a string.
 

Static Public Attributes

static constexpr bool kUseDynamicCast {true}
 

Protected Member Functions

std::vector< TString > CollectNodes (const TString &detector, const TString &component, const TString &path, TGeoNode *pNode)
 Collects paths of the components.
 
VolumeInfo ReadVolume (const TString &path)
 Creates volume info from a geo node provided by path.
 

Protected Attributes

std::vector< VolumeInfofvStationFullVolume {}
 Geometric properties of each station passive volume.
 
std::vector< VolumeInfofvStationActiveVolume {}
 Geometric properties of each station active volume.
 

Static Protected Attributes

static constexpr bool kLegacy {false}
 If use legacy tracking detector interface definition FIXME: Remove after testing.
 

Detailed Description

Abstract class, which should be inherited by every detecting subsystem tracking interface class.

Definition at line 33 of file CbmTrackingDetectorInterfaceBase.h.

Constructor & Destructor Documentation

◆ ~CbmTrackingDetectorInterfaceBase()

virtual CbmTrackingDetectorInterfaceBase::~CbmTrackingDetectorInterfaceBase ( )
inlinevirtual

Virtual destructor.

Definition at line 81 of file CbmTrackingDetectorInterfaceBase.h.

Member Function Documentation

◆ Check()

bool CbmTrackingDetectorInterfaceBase::Check ( ) const

◆ CollectNodes()

std::vector< TString > CbmTrackingDetectorInterfaceBase::CollectNodes ( const TString & detector,
const TString & component,
const TString & path,
TGeoNode * pNode )
protected

Collects paths of the components.

Parameters
[in]detectorName hint of the detector
[in]componentName of the active node component
[in,out]pathPath to the node
[in,out]pNodePointer to the node
Returns
Vector of paths to the matched components

Definition at line 127 of file CbmTrackingDetectorInterfaceBase.cxx.

References CollectNodes().

Referenced by CollectNodes(), CbmTofTrackingInterface::Init(), and CbmTrdTrackingInterface::Init().

◆ GetActiveXmax()

double CbmTrackingDetectorInterfaceBase::GetActiveXmax ( int stationId) const
inline

Gets upper bound of the station active volume along x-axis.

Parameters
stationIdTracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
Returns
max X of the station active volume [cm]

Definition at line 161 of file CbmTrackingDetectorInterfaceBase.h.

References fvStationActiveVolume.

Referenced by ToString().

◆ GetActiveXmin()

double CbmTrackingDetectorInterfaceBase::GetActiveXmin ( int stationId) const
inline

Gets lower bound of the station active volume along x-axis.

Parameters
stationIdTracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
Returns
min X of the station active volume [cm]

Definition at line 156 of file CbmTrackingDetectorInterfaceBase.h.

References fvStationActiveVolume.

Referenced by ToString().

◆ GetActiveYmax()

double CbmTrackingDetectorInterfaceBase::GetActiveYmax ( int stationId) const
inline

Gets upper bound of the station active volume along y-axis.

Parameters
stationIdTracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
Returns
max Y of the station active volume [cm]

Definition at line 171 of file CbmTrackingDetectorInterfaceBase.h.

References fvStationActiveVolume.

Referenced by ToString().

◆ GetActiveYmin()

double CbmTrackingDetectorInterfaceBase::GetActiveYmin ( int stationId) const
inline

Gets lower bound of the station active volume along y-axis.

Parameters
stationIdTracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
Returns
min Y of the station active volume [cm]

Definition at line 166 of file CbmTrackingDetectorInterfaceBase.h.

References fvStationActiveVolume.

Referenced by ToString().

◆ GetActiveZmax()

double CbmTrackingDetectorInterfaceBase::GetActiveZmax ( int stationId) const
inline

Gets upper bound of the station active volume along z-axis.

Parameters
stationIdTracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
Returns
max Z of the station active volume [cm]

Definition at line 181 of file CbmTrackingDetectorInterfaceBase.h.

References fvStationActiveVolume.

Referenced by GetZref(), and ToString().

◆ GetActiveZmin()

double CbmTrackingDetectorInterfaceBase::GetActiveZmin ( int stationId) const
inline

Gets lower bound of the station active volume along z-axis.

Parameters
stationIdTracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
Returns
min Z of the station active volume [cm]

Definition at line 176 of file CbmTrackingDetectorInterfaceBase.h.

References fvStationActiveVolume.

Referenced by GetZref(), and ToString().

◆ GetDetectorName()

virtual std::string CbmTrackingDetectorInterfaceBase::GetDetectorName ( ) const
pure virtual

◆ GetHitRanges()

virtual std::tuple< double, double, double > CbmTrackingDetectorInterfaceBase::GetHitRanges ( const CbmPixelHit & hit) const
inlinevirtual

Gets x,y,t ranges of a CbmPixelHit.

Parameters
hitA hit
Returns
range X, Y, T

Reimplemented in CbmTrdTrackingInterface.

Definition at line 191 of file CbmTrackingDetectorInterfaceBase.h.

References CbmPixelHit::GetDx(), CbmPixelHit::GetDy(), and CbmHit::GetTimeError().

Referenced by CbmTrdTrackingInterface::GetHitRanges().

◆ GetNtrackingStations()

int CbmTrackingDetectorInterfaceBase::GetNtrackingStations ( ) const
inline

Gets actual number of stations, provided by the current geometry setup.

Definition at line 90 of file CbmTrackingDetectorInterfaceBase.h.

References fvStationFullVolume.

Referenced by Check(), CbmTrdTrackingInterface::Init(), cbm::ca::InputQaSetup::InitQa(), CbmCaInputQaSts::InitQa(), and ToString().

◆ GetStereoAnglesSensor()

virtual std::tuple< double, double > CbmTrackingDetectorInterfaceBase::GetStereoAnglesSensor ( int address) const
pure virtual

Gets stereo angles of the two independent measured coordinates.

Note
The tracking does not use this method. It is only used by the QA task.
Parameters
addressdetector unique identifier
Returns
[phiU, phiV] - Stereo angles [rad]

Implemented in CbmMuchTrackingInterface, CbmMvdTrackingInterface, CbmStsTrackingInterface, CbmTofTrackingInterface, and CbmTrdTrackingInterface.

◆ GetTrackingStationIndex() [1/3]

virtual int CbmTrackingDetectorInterfaceBase::GetTrackingStationIndex ( const CbmHit * hit) const
pure virtual

Gets a tracking station of a CbmHit.

Parameters
hitA pointer to CbmHit
Returns
Local index of the tracking station

Implemented in CbmMuchTrackingInterface, CbmMvdTrackingInterface, CbmStsTrackingInterface, CbmTofTrackingInterface, and CbmTrdTrackingInterface.

Referenced by CbmCaInputQaTof::ExecQa(), and GetZrefModule().

◆ GetTrackingStationIndex() [2/3]

virtual int CbmTrackingDetectorInterfaceBase::GetTrackingStationIndex ( const FairMCPoint * point) const
pure virtual

Gets a tracking station of a FairMCPoint.

Parameters
pointA pointer to FairMCHit
Returns
Local index of the tracking station

Implemented in CbmMuchTrackingInterface, CbmMvdTrackingInterface, CbmStsTrackingInterface, CbmTofTrackingInterface, and CbmTrdTrackingInterface.

◆ GetTrackingStationIndex() [3/3]

virtual int CbmTrackingDetectorInterfaceBase::GetTrackingStationIndex ( int address) const
pure virtual

Gets a tracking station by the address of element.

Parameters
addressUnique element address
Returns
Local index of the tracking station

Implemented in CbmMuchTrackingInterface, CbmMvdTrackingInterface, CbmStsTrackingInterface, CbmTofTrackingInterface, and CbmTrdTrackingInterface.

◆ GetXmax()

double CbmTrackingDetectorInterfaceBase::GetXmax ( int stationId) const
inline

Gets upper bound of a station passive volume along the X-axis.

Parameters
stationIdTracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
Returns
Size of station along the X-axis [cm]

Definition at line 116 of file CbmTrackingDetectorInterfaceBase.h.

References fvStationFullVolume.

Referenced by Check(), and ToString().

◆ GetXmin()

double CbmTrackingDetectorInterfaceBase::GetXmin ( int stationId) const
inline

Gets lower bound of a station passive volume along the X-axis.

Parameters
stationIdTracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
Returns
Size of station along the X-axis [cm]

Definition at line 121 of file CbmTrackingDetectorInterfaceBase.h.

References fvStationFullVolume.

Referenced by Check(), and ToString().

◆ GetYmax()

double CbmTrackingDetectorInterfaceBase::GetYmax ( int stationId) const
inline

Gets upper bound of a station passive volume along the Y-axis.

Parameters
stationIdTracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
Returns
Size of station along the Y-axis [cm]

Definition at line 126 of file CbmTrackingDetectorInterfaceBase.h.

References fvStationFullVolume.

Referenced by Check(), and ToString().

◆ GetYmin()

double CbmTrackingDetectorInterfaceBase::GetYmin ( int stationId) const
inline

Gets lower bound of a station passive volume along the Y-axis.

Parameters
stationIdTracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
Returns
Size of station along the Y-axis [cm]

Definition at line 131 of file CbmTrackingDetectorInterfaceBase.h.

References fvStationFullVolume.

Referenced by Check(), and ToString().

◆ GetZmax()

double CbmTrackingDetectorInterfaceBase::GetZmax ( int stationId) const
inline

Gets max z of the station passive volume.

Parameters
stationIdTracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
Returns
max Z of the station [cm]

Definition at line 151 of file CbmTrackingDetectorInterfaceBase.h.

References fvStationFullVolume.

Referenced by Check(), and ToString().

◆ GetZmin()

double CbmTrackingDetectorInterfaceBase::GetZmin ( int stationId) const
inline

Gets min z of the station passive volume.

Parameters
stationIdTracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
Returns
min Z of the station [cm]

Definition at line 146 of file CbmTrackingDetectorInterfaceBase.h.

References fvStationFullVolume.

Referenced by Check(), and ToString().

◆ GetZref()

double CbmTrackingDetectorInterfaceBase::GetZref ( int stationId) const
inline

Gets reference z of the station passive volume.

Parameters
stationIdTracking station ID in the setup (NOTE: must be in range [0..GetNstations()-1])
Returns
Reference z position of the station [cm]

Definition at line 136 of file CbmTrackingDetectorInterfaceBase.h.

References GetActiveZmax(), and GetActiveZmin().

Referenced by Check(), GetZrefModule(), and ToString().

◆ GetZrefModule()

virtual double CbmTrackingDetectorInterfaceBase::GetZrefModule ( int address)
inlinevirtual

Gets reference z of the detector module (e.g., RPC for TOF)

Parameters
addressAddress of the module
Returns
Reference z of module (if not defined, the ref z of the station will be returned)

Reimplemented in CbmTofTrackingInterface.

Definition at line 141 of file CbmTrackingDetectorInterfaceBase.h.

References GetTrackingStationIndex(), and GetZref().

◆ IsTimeInfoProvided()

virtual bool CbmTrackingDetectorInterfaceBase::IsTimeInfoProvided ( int stationId) const
pure virtual

Check if station provides time measurements.

Parameters
stationIdTracking station ID in the setup
Returns
Flag: true - station provides time measurements, false - station does not provide time measurements

Implemented in CbmMuchTrackingInterface, CbmMvdTrackingInterface, CbmStsTrackingInterface, CbmTofTrackingInterface, and CbmTrdTrackingInterface.

Referenced by ToString().

◆ ReadVolume()

CbmTrackingDetectorInterfaceBase::VolumeInfo CbmTrackingDetectorInterfaceBase::ReadVolume ( const TString & path)
protected

◆ ToString()

std::string CbmTrackingDetectorInterfaceBase::ToString ( ) const

Prints all the parameters into table and saves the table as a string.

Definition at line 101 of file CbmTrackingDetectorInterfaceBase.cxx.

References GetActiveXmax(), GetActiveXmin(), GetActiveYmax(), GetActiveYmin(), GetActiveZmax(), GetActiveZmin(), GetNtrackingStations(), GetXmax(), GetXmin(), GetYmax(), GetYmin(), GetZmax(), GetZmin(), GetZref(), and IsTimeInfoProvided().

Referenced by Check().

Member Data Documentation

◆ fvStationActiveVolume

std::vector<VolumeInfo> CbmTrackingDetectorInterfaceBase::fvStationActiveVolume {}
protected

◆ fvStationFullVolume

std::vector<VolumeInfo> CbmTrackingDetectorInterfaceBase::fvStationFullVolume {}
protected

◆ kLegacy

bool CbmTrackingDetectorInterfaceBase::kLegacy {false}
staticconstexprprotected

If use legacy tracking detector interface definition FIXME: Remove after testing.

Definition at line 208 of file CbmTrackingDetectorInterfaceBase.h.

Referenced by CbmStsTrackingInterface::Init(), CbmTofTrackingInterface::Init(), and CbmTrdTrackingInterface::Init().

◆ kUseDynamicCast

bool CbmTrackingDetectorInterfaceBase::kUseDynamicCast {true}
staticconstexpr

Technical flag: true - all downcasts are done with dynamic_cast followed by checks for nullptr (increases computing time, better for debug), false - all downcasts are done with static_cast without sanity checks (decreases computing time, but can cause bugs)

Definition at line 200 of file CbmTrackingDetectorInterfaceBase.h.

Referenced by CbmMvdTrackingInterface::GetTrackingStationIndex(), and CbmMvdTrackingInterface::GetTrackingStationIndex().


The documentation for this class was generated from the following files: