5#ifndef DCMATH_MDTCHAMBERGEOMETRY_H
6#define DCMATH_MDTCHAMBERGEOMETRY_H
65 void print(MsgStream&
msg)
const override;
67 bool validId(
unsigned int ml,
unsigned int lay,
unsigned int tube)
const;
70 double xPosTube(
unsigned int ml,
unsigned int lay,
unsigned int tube)
const;
71 double yPosTube(
unsigned int ml,
unsigned int lay)
const;
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
Implementation of 2 dimensional vector class.
void print(MsgStream &msg) const override
bool validGeometry() const override
LocVec2D tubePosition(unsigned int ml, unsigned int lay, unsigned int tube) const override
double xPosTube(unsigned int ml, unsigned int lay, unsigned int tube) const
unsigned int ntubesml0() const
void setGeometry(unsigned int nml, unsigned int nlay, unsigned int ntubesml0, unsigned int ntubesml1, const LocVec2D &tube0ml0, const LocVec2D &tube0ml1, double tubeDist, double tubeStage, double layDist, double stationTheta)
unsigned int nlay() const override
std::vector< unsigned int > m_ntubesml
bool m_isSecondMultiLayer
double stationTheta() const override
double tubeRadius() const override
void tubesPassedByLine(const Line &line, DCVec &crossedTubes) const
bool validId(unsigned int ml, unsigned int lay, unsigned int tube) const
std::vector< bool > m_wasInit
virtual ~MdtChamberGeometry()=default
const LocVec2D & firstTubeMl1() const
const LocVec2D & firstTubeMl0() const
void isSecondMultiLayer(bool isSecond)
set that this is the second multi layer instead of the first, used in case the first ML is dead
unsigned int ntubesml1() const
std::vector< LocVec2D > m_firstTube
const Identifier & stationId() const override
DCVec tubesPassedByLine(const Line &line) const override
Retrieves the vector of drift circles traveresed by the line.
DCVec tubesPassedByLine(const Line &line, int ml) const
double yPosTube(unsigned int ml, unsigned int lay) const
Function object to check whether two Segments are sub/super sets or different.
std::vector< DriftCircle > DCVec