ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
TrkDriftCircleMath::MdtChamberGeometry Class Reference

#include <MdtChamberGeometry.h>

Inheritance diagram for TrkDriftCircleMath::MdtChamberGeometry:
Collaboration diagram for TrkDriftCircleMath::MdtChamberGeometry:

Public Member Functions

 MdtChamberGeometry ()
 
 MdtChamberGeometry (const Identifier &id, const Muon::IMuonIdHelperSvc *idHelperSvc, 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)
 
virtual ~MdtChamberGeometry ()=default
 
void init ()
 
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 nml () const
 
unsigned int nlay () const override
 
unsigned int ntubesml0 () const
 
unsigned int ntubesml1 () const
 
const IdentifierstationId () const override
 
const LocVec2DfirstTubeMl0 () const
 
const LocVec2DfirstTubeMl1 () const
 
double tubeDist () const
 
double tubeStage () const
 
double layerDist () const
 
double stationTheta () const override
 
double tubeRadius () const override
 
LocVec2D tubePosition (unsigned int ml, unsigned int lay, unsigned int tube) const override
 
DCVec tubesPassedByLine (const Line &line, int ml) const
 
DCVec tubesPassedByLine (const Line &line) const override
 Retrieves the vector of drift circles traveresed by the line. More...
 
void tubesPassedByLine (const Line &line, int ml, DCVec &crossedTubes) const
 methods taking reference to output vector to reduce memory usage More...
 
void tubesPassedByLine (const Line &line, DCVec &crossedTubes) 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 More...
 
bool validGeometry () const override
 
void print (MsgStream &msg) const override
 
bool validId (unsigned int ml, unsigned int lay, unsigned int tube) const
 

Private Member Functions

double xPosTube (unsigned int ml, unsigned int lay, unsigned int tube) const
 
double yPosTube (unsigned int ml, unsigned int lay) const
 

Private Attributes

Identifier m_id {}
 
bool m_sMdt {false}
 
bool m_isBarrel {false}
 
unsigned int m_nml {0}
 
unsigned int m_nlay {0}
 
std::vector< unsigned int > m_ntubesml {}
 
double m_tubeDist {0}
 
double m_tubeRad {0}
 
double m_tubeStage {0}
 
double m_layDist {0}
 
double m_stationTheta {0}
 
std::vector< bool > m_wasInit {}
 
std::vector< LocVec2Dm_firstTube {}
 
bool m_validGeometry {false}
 
bool m_isSecondMultiLayer {false}
 

Detailed Description

Definition at line 18 of file MdtChamberGeometry.h.

Constructor & Destructor Documentation

◆ MdtChamberGeometry() [1/2]

TrkDriftCircleMath::MdtChamberGeometry::MdtChamberGeometry ( )

Definition at line 20 of file MdtChamberGeometry.cxx.

20 { init(); }

◆ MdtChamberGeometry() [2/2]

TrkDriftCircleMath::MdtChamberGeometry::MdtChamberGeometry ( const Identifier id,
const Muon::IMuonIdHelperSvc idHelperSvc,
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 
)

Definition at line 22 of file MdtChamberGeometry.cxx.

24  :
25  m_id{id} {
26 
27  m_sMdt = idHelperSvc->issMdt(id);
28  m_isBarrel = idHelperSvc->mdtIdHelper().isBarrel(id);
29  init();
30  setGeometry(nml, nlay, ntubesml0, ntubesml1, tube0ml0, tube0ml1, tubeDist, tubeStage, layDist, stationTheta);
31  }

◆ ~MdtChamberGeometry()

virtual TrkDriftCircleMath::MdtChamberGeometry::~MdtChamberGeometry ( )
virtualdefault

Member Function Documentation

◆ firstTubeMl0()

const LocVec2D& TrkDriftCircleMath::MdtChamberGeometry::firstTubeMl0 ( ) const
inline

Definition at line 39 of file MdtChamberGeometry.h.

39 { return m_firstTube[0]; }

◆ firstTubeMl1()

const LocVec2D& TrkDriftCircleMath::MdtChamberGeometry::firstTubeMl1 ( ) const
inline

Definition at line 40 of file MdtChamberGeometry.h.

40 { return m_firstTube[1]; }

◆ init()

void TrkDriftCircleMath::MdtChamberGeometry::init ( )

Definition at line 69 of file MdtChamberGeometry.cxx.

69  {
70  m_validGeometry = true;
71  if (m_sMdt) {
72  m_tubeDist = 15.10;
73  m_tubeRad = 7.1;
74  m_layDist = 13.085;
75  } else {
76  m_tubeDist = 30.035;
77  m_tubeRad = 14.6;
78  m_layDist = 26.011;
79  }
80  // initialize first tubes to zero
81  m_ntubesml.push_back(0);
82  m_ntubesml.push_back(0);
83  m_firstTube.emplace_back(0., 0.);
84  m_firstTube.emplace_back(0., 0.);
85  m_wasInit.push_back(true);
86  m_wasInit.push_back(true);
87  }

◆ isSecondMultiLayer()

void TrkDriftCircleMath::MdtChamberGeometry::isSecondMultiLayer ( bool  isSecond)
inline

set that this is the second multi layer instead of the first, used in case the first ML is dead

Definition at line 61 of file MdtChamberGeometry.h.

61 { m_isSecondMultiLayer = isSecond; }

◆ layerDist()

double TrkDriftCircleMath::MdtChamberGeometry::layerDist ( ) const
inline

Definition at line 44 of file MdtChamberGeometry.h.

44 { return m_layDist; }

◆ nlay()

unsigned int TrkDriftCircleMath::MdtChamberGeometry::nlay ( ) const
inlineoverridevirtual

Implements TrkDriftCircleMath::ChamberGeometry.

Definition at line 33 of file MdtChamberGeometry.h.

33 { return m_nlay; }

◆ nml()

unsigned int TrkDriftCircleMath::MdtChamberGeometry::nml ( ) const
inline

Definition at line 32 of file MdtChamberGeometry.h.

32 { return m_nml; }

◆ ntubesml0()

unsigned int TrkDriftCircleMath::MdtChamberGeometry::ntubesml0 ( ) const
inline

Definition at line 34 of file MdtChamberGeometry.h.

34 { return m_ntubesml[0]; }

◆ ntubesml1()

unsigned int TrkDriftCircleMath::MdtChamberGeometry::ntubesml1 ( ) const
inline

Definition at line 35 of file MdtChamberGeometry.h.

35 { return m_ntubesml[1]; }

◆ print()

void TrkDriftCircleMath::MdtChamberGeometry::print ( MsgStream &  msg) const
overridevirtual

Implements TrkDriftCircleMath::ChamberGeometry.

Definition at line 178 of file MdtChamberGeometry.cxx.

178  {
179  msg << MSG::ALWAYS << " MdtChamberGeometry " << m_id <<std::endl
180  << " nml " << m_nml << " nlay " << m_nlay << " ntube1 " << m_ntubesml[0] << " ntube2 " << m_ntubesml[1] << std::endl
181  << " pos ml1 " << m_firstTube[0] << " ml2 " << m_firstTube[1] << std::endl
182  << " tubeDist " << m_tubeDist << " tubeStage " << m_tubeStage << " layDist " << m_layDist << " tubeRad " << m_tubeRad
183  << endmsg;
184  }

◆ setGeometry()

void TrkDriftCircleMath::MdtChamberGeometry::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 
)

Definition at line 33 of file MdtChamberGeometry.cxx.

35  {
36  m_nml = nml;
37  m_nlay = nlay;
38  m_ntubesml.clear();
39  m_ntubesml.push_back(ntubesml0);
40  m_ntubesml.push_back(ntubesml1);
43  m_layDist = layDist;
44 
45  m_firstTube[0] = tube0ml0;
46  m_firstTube[1] = tube0ml1;
47 
48  if (m_nml < 1 || m_nml > 2)
49  throw std::runtime_error(
50  Form("File: %s, Line: %d\nMdtChamberGeometry::setGeometry() - got called with nml=%d which is definitely out of range",
51  __FILE__, __LINE__, m_nml));
52  if (m_nlay < 1 || m_nlay > 4)
53  throw std::runtime_error(
54  Form("File: %s, Line: %d\nMdtChamberGeometry::setGeometry() - got called with nlay=%d which is definitely out of range",
55  __FILE__, __LINE__, m_nlay));
56  if (ntubesml0 < 1 || ntubesml0 > maxNTubesPerLayer)
57  throw std::runtime_error(Form(
58  "File: %s, Line: %d\nMdtChamberGeometry::setGeometry() - got called with ntubesml0=%d which is definitely out of range",
59  __FILE__, __LINE__, ntubesml0));
60  // there can be chambers with only 1 multilayer. Then, the second multilayer will have ntubesml1=0
61  if (ntubesml1 > maxNTubesPerLayer)
62  throw std::runtime_error(Form(
63  "File: %s, Line: %d\nMdtChamberGeometry::setGeometry() - got called with ntubesml1=%d which is definitely out of range",
64  __FILE__, __LINE__, ntubesml1));
65 
67  }

◆ stationId()

const Identifier& TrkDriftCircleMath::MdtChamberGeometry::stationId ( ) const
inlineoverridevirtual

Implements TrkDriftCircleMath::ChamberGeometry.

Definition at line 37 of file MdtChamberGeometry.h.

37 { return m_id; }

◆ stationTheta()

double TrkDriftCircleMath::MdtChamberGeometry::stationTheta ( ) const
inlineoverridevirtual

Implements TrkDriftCircleMath::ChamberGeometry.

Definition at line 46 of file MdtChamberGeometry.h.

46 { return m_stationTheta; }

◆ tubeDist()

double TrkDriftCircleMath::MdtChamberGeometry::tubeDist ( ) const
inline

Definition at line 42 of file MdtChamberGeometry.h.

42 { return m_tubeDist; }

◆ tubePosition()

LocVec2D TrkDriftCircleMath::MdtChamberGeometry::tubePosition ( unsigned int  ml,
unsigned int  lay,
unsigned int  tube 
) const
overridevirtual

Implements TrkDriftCircleMath::ChamberGeometry.

Definition at line 185 of file MdtChamberGeometry.cxx.

185  {
186  if (!validId(ml, lay, tube)) {
187  throw std::runtime_error(Form("%s:%d -- Invalid combination of multilayer ml: %u, layer: %u and tube: %d given: ", __FILE__,
188  __LINE__, ml, lay, tube));
189  }
190  LocVec2D tube_vec{xPosTube(ml, lay, tube), yPosTube(ml, lay)};
191  return tube_vec;
192  }

◆ tubeRadius()

double TrkDriftCircleMath::MdtChamberGeometry::tubeRadius ( ) const
inlineoverridevirtual

Implements TrkDriftCircleMath::ChamberGeometry.

Definition at line 48 of file MdtChamberGeometry.h.

48 { return m_tubeRad; }

◆ tubesPassedByLine() [1/4]

DCVec TrkDriftCircleMath::MdtChamberGeometry::tubesPassedByLine ( const Line line) const
inlineoverridevirtual

Retrieves the vector of drift circles traveresed by the line.

Implements TrkDriftCircleMath::ChamberGeometry.

Definition at line 53 of file MdtChamberGeometry.h.

53 { return tubesPassedByLine(line, -1); }

◆ tubesPassedByLine() [2/4]

void TrkDriftCircleMath::MdtChamberGeometry::tubesPassedByLine ( const Line line,
DCVec crossedTubes 
) const
inline

Definition at line 57 of file MdtChamberGeometry.h.

57 { return tubesPassedByLine(line, -1, crossedTubes); }

◆ tubesPassedByLine() [3/4]

DCVec TrkDriftCircleMath::MdtChamberGeometry::tubesPassedByLine ( const Line line,
int  ml 
) const

Definition at line 168 of file MdtChamberGeometry.cxx.

168  {
169  DCVec crossedTubes;
170 
171  if (!m_validGeometry) return crossedTubes;
172 
173  tubesPassedByLine(line, inMultilayer, crossedTubes);
174 
175  std::stable_sort(crossedTubes.begin(), crossedTubes.end(), SortDcsByY());
176  return crossedTubes;
177  }

◆ tubesPassedByLine() [4/4]

void TrkDriftCircleMath::MdtChamberGeometry::tubesPassedByLine ( const Line line,
int  ml,
DCVec crossedTubes 
) const

methods taking reference to output vector to reduce memory usage

Definition at line 111 of file MdtChamberGeometry.cxx.

111  {
112  crossedTubes.reserve(50);
113  ResidualWithLine resLine{line};
114  const LocVec2D& linepos = line.position();
115  const LocVec2D& linedir = line.direction();
116  double dxdy = std::abs(linedir.y()) > 0.0001 ? linedir.x() / linedir.y() : linedir.x() / 0.0001;
117  for (unsigned int ml = 0; ml < m_nml; ++ml) {
118  // check whether geometry was initialized for given multilayer
119  if (!m_wasInit[ml]) continue;
120 
121  // if indicated only scan single multilayer
122  if (inMultilayer != -1 && inMultilayer != (int)ml) { continue; }
123  for (unsigned int lay = 0; lay < m_nlay; ++lay) {
124  double ylay = yPosTube(ml, lay);
125  double xfirsttube = xPosTube(ml, lay, 0);
126  double xintersect = dxdy * (ylay - linepos.y()) + linepos.x();
127  double relpos = (xintersect - xfirsttube) / m_tubeDist;
128  int ctube = (int)relpos;
129  if (ctube < 0) ctube = 0;
130  if (ctube >= (int)m_ntubesml[ml]) ctube = m_ntubesml[ml] - 1;
131 
132  if (inMultilayer != -1)
133 
134  for (int i = ctube - 1; i >= 0; --i) {
135  const LocVec2D& lp = tubePosition(ml, lay, i);
136  double res = resLine.residual(lp);
137  if (std::abs(res) > m_tubeRad) {
138  if (m_tubeDist > 0) {
139  if (res > m_tubeRad) break;
140  } else {
141  if (res < -m_tubeRad) break;
142  }
143  } else {
144  // if this is a chamber with only the second ml, set the ml index accordingly
145  unsigned int actualMl = m_isSecondMultiLayer ? 1 : ml;
146  crossedTubes.emplace_back(lp, m_tubeRad, res, DriftCircle::EmptyTube, MdtId(m_isBarrel, actualMl, lay, i),
147  nullptr);
148  }
149  }
150  for (int i = ctube; i < (int)m_ntubesml[ml]; ++i) {
151  const LocVec2D& lp = tubePosition(ml, lay, i);
152  double res = resLine.residual(lp);
153  if (std::abs(res) > m_tubeRad) {
154  if (m_tubeDist > 0) {
155  if (res < -m_tubeRad) break;
156  } else {
157  if (res > m_tubeRad) break;
158  }
159  } else {
160  unsigned int actualMl = m_isSecondMultiLayer ? 1 : ml;
161  crossedTubes.emplace_back(lp, m_tubeRad, res, DriftCircle::EmptyTube, MdtId(m_isBarrel, actualMl, lay, i), nullptr);
162  }
163  }
164  }
165  }
166  }

◆ tubeStage()

double TrkDriftCircleMath::MdtChamberGeometry::tubeStage ( ) const
inline

Definition at line 43 of file MdtChamberGeometry.h.

43 { return m_tubeStage; }

◆ validGeometry()

bool TrkDriftCircleMath::MdtChamberGeometry::validGeometry ( ) const
inlineoverridevirtual

Implements TrkDriftCircleMath::ChamberGeometry.

Definition at line 63 of file MdtChamberGeometry.h.

63 { return m_validGeometry; }

◆ validId()

bool TrkDriftCircleMath::MdtChamberGeometry::validId ( unsigned int  ml,
unsigned int  lay,
unsigned int  tube 
) const

Definition at line 89 of file MdtChamberGeometry.cxx.

89  {
90  if (!m_validGeometry) return false;
91  if (ml > 1) {
92  MsgStream msg{Athena::getMessageSvc(), "MdtChamberGeometry::validId"};
93  msg <<MSG::ERROR << " Wrong index: ml " << ml << " max " << m_nml << endmsg;
94  print(msg);
95 
96  return false;
97  } else if (lay > m_nlay) {
98  MsgStream msg{Athena::getMessageSvc(), "MdtChamberGeometry::validId"};
99  msg <<MSG::ERROR <<" Wrong index: lay " << lay << " max " << m_nlay << endmsg;
100  print(msg);
101  return false;
102  } else if (tube > m_ntubesml[ml]) {
103  MsgStream msg{Athena::getMessageSvc(), "MdtChamberGeometry::validId"};
104  msg << " wrong index: tube " << tube << " max " << m_ntubesml[ml] << endmsg;
105  print(msg);
106  return false;
107  }
108  return true;
109  }

◆ xPosTube()

double TrkDriftCircleMath::MdtChamberGeometry::xPosTube ( unsigned int  ml,
unsigned int  lay,
unsigned int  tube 
) const
inlineprivate

Definition at line 194 of file MdtChamberGeometry.cxx.

194  {
195  double xpos = tube * m_tubeDist + m_firstTube[ml].x();
196 
197  if (lay % 2 == 1) {
198  if (m_nlay == 4 && ml == 1)
199  xpos -= m_tubeStage;
200  else
201  xpos += m_tubeStage;
202  }
203 
204  return xpos;
205  }

◆ yPosTube()

double TrkDriftCircleMath::MdtChamberGeometry::yPosTube ( unsigned int  ml,
unsigned int  lay 
) const
private

Definition at line 207 of file MdtChamberGeometry.cxx.

207 { return lay * m_layDist + m_firstTube[ml].y(); }

Member Data Documentation

◆ m_firstTube

std::vector<LocVec2D> TrkDriftCircleMath::MdtChamberGeometry::m_firstTube {}
private

Definition at line 86 of file MdtChamberGeometry.h.

◆ m_id

Identifier TrkDriftCircleMath::MdtChamberGeometry::m_id {}
private

Definition at line 73 of file MdtChamberGeometry.h.

◆ m_isBarrel

bool TrkDriftCircleMath::MdtChamberGeometry::m_isBarrel {false}
private

Definition at line 75 of file MdtChamberGeometry.h.

◆ m_isSecondMultiLayer

bool TrkDriftCircleMath::MdtChamberGeometry::m_isSecondMultiLayer {false}
private

Definition at line 88 of file MdtChamberGeometry.h.

◆ m_layDist

double TrkDriftCircleMath::MdtChamberGeometry::m_layDist {0}
private

Definition at line 82 of file MdtChamberGeometry.h.

◆ m_nlay

unsigned int TrkDriftCircleMath::MdtChamberGeometry::m_nlay {0}
private

Definition at line 77 of file MdtChamberGeometry.h.

◆ m_nml

unsigned int TrkDriftCircleMath::MdtChamberGeometry::m_nml {0}
private

Definition at line 76 of file MdtChamberGeometry.h.

◆ m_ntubesml

std::vector<unsigned int> TrkDriftCircleMath::MdtChamberGeometry::m_ntubesml {}
private

Definition at line 78 of file MdtChamberGeometry.h.

◆ m_sMdt

bool TrkDriftCircleMath::MdtChamberGeometry::m_sMdt {false}
private

Definition at line 74 of file MdtChamberGeometry.h.

◆ m_stationTheta

double TrkDriftCircleMath::MdtChamberGeometry::m_stationTheta {0}
private

Definition at line 83 of file MdtChamberGeometry.h.

◆ m_tubeDist

double TrkDriftCircleMath::MdtChamberGeometry::m_tubeDist {0}
private

Definition at line 79 of file MdtChamberGeometry.h.

◆ m_tubeRad

double TrkDriftCircleMath::MdtChamberGeometry::m_tubeRad {0}
private

Definition at line 80 of file MdtChamberGeometry.h.

◆ m_tubeStage

double TrkDriftCircleMath::MdtChamberGeometry::m_tubeStage {0}
private

Definition at line 81 of file MdtChamberGeometry.h.

◆ m_validGeometry

bool TrkDriftCircleMath::MdtChamberGeometry::m_validGeometry {false}
private

Definition at line 87 of file MdtChamberGeometry.h.

◆ m_wasInit

std::vector<bool> TrkDriftCircleMath::MdtChamberGeometry::m_wasInit {}
private

Definition at line 85 of file MdtChamberGeometry.h.


The documentation for this class was generated from the following files:
TrkDriftCircleMath::MdtChamberGeometry::print
void print(MsgStream &msg) const override
Definition: MdtChamberGeometry.cxx:178
Muon::IMuonIdHelperSvc::issMdt
virtual bool issMdt(const Identifier &id) const =0
returns whether this is a sMDT Identifier or not
checkFileSG.line
line
Definition: checkFileSG.py:75
TrkDriftCircleMath::MdtChamberGeometry::m_isSecondMultiLayer
bool m_isSecondMultiLayer
Definition: MdtChamberGeometry.h:88
TrkDriftCircleMath::MdtChamberGeometry::tubeDist
double tubeDist() const
Definition: MdtChamberGeometry.h:42
TrkDriftCircleMath::MdtChamberGeometry::m_nml
unsigned int m_nml
Definition: MdtChamberGeometry.h:76
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
TrkDriftCircleMath::MdtChamberGeometry::yPosTube
double yPosTube(unsigned int ml, unsigned int lay) const
Definition: MdtChamberGeometry.cxx:207
TrkDriftCircleMath::MdtChamberGeometry::m_tubeRad
double m_tubeRad
Definition: MdtChamberGeometry.h:80
TrkDriftCircleMath::MdtChamberGeometry::ntubesml1
unsigned int ntubesml1() const
Definition: MdtChamberGeometry.h:35
TrkDriftCircleMath::MdtChamberGeometry::m_ntubesml
std::vector< unsigned int > m_ntubesml
Definition: MdtChamberGeometry.h:78
TrkDriftCircleMath::MdtChamberGeometry::m_isBarrel
bool m_isBarrel
Definition: MdtChamberGeometry.h:75
TrkDriftCircleMath::MdtChamberGeometry::m_layDist
double m_layDist
Definition: MdtChamberGeometry.h:82
TrkDriftCircleMath::MdtChamberGeometry::m_id
Identifier m_id
Definition: MdtChamberGeometry.h:73
Athena::getMessageSvc
IMessageSvc * getMessageSvc(bool quiet=false)
Definition: getMessageSvc.cxx:20
std::stable_sort
void stable_sort(std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, std::reverse_iterator< DataModel_detail::iterator< DVL > > end, Compare comp)
Specialization of stable_sort for DataVector/List.
Definition: DVL_algorithms.h:711
TrkDriftCircleMath::DCVec
std::vector< DriftCircle > DCVec
Definition: DriftCircle.h:117
TrkDriftCircleMath::MdtChamberGeometry::ntubesml0
unsigned int ntubesml0() const
Definition: MdtChamberGeometry.h:34
TrkDriftCircleMath::MdtChamberGeometry::m_firstTube
std::vector< LocVec2D > m_firstTube
Definition: MdtChamberGeometry.h:86
TrigConf::MSGTC::ALWAYS
@ ALWAYS
Definition: Trigger/TrigConfiguration/TrigConfBase/TrigConfBase/MsgStream.h:29
lumiFormat.i
int i
Definition: lumiFormat.py:92
TrkDriftCircleMath::MdtChamberGeometry::nml
unsigned int nml() const
Definition: MdtChamberGeometry.h:32
TrkDriftCircleMath::MdtChamberGeometry::m_nlay
unsigned int m_nlay
Definition: MdtChamberGeometry.h:77
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
res
std::pair< std::vector< unsigned int >, bool > res
Definition: JetGroupProductTest.cxx:14
TrkDriftCircleMath::MdtChamberGeometry::stationTheta
double stationTheta() const override
Definition: MdtChamberGeometry.h:46
TrkDriftCircleMath::MdtChamberGeometry::m_wasInit
std::vector< bool > m_wasInit
Definition: MdtChamberGeometry.h:85
TrkDriftCircleMath::MdtChamberGeometry::xPosTube
double xPosTube(unsigned int ml, unsigned int lay, unsigned int tube) const
Definition: MdtChamberGeometry.cxx:194
TrkDriftCircleMath::MdtChamberGeometry::m_validGeometry
bool m_validGeometry
Definition: MdtChamberGeometry.h:87
TrkDriftCircleMath::MdtChamberGeometry::m_stationTheta
double m_stationTheta
Definition: MdtChamberGeometry.h:83
TrkDriftCircleMath::MdtChamberGeometry::m_tubeStage
double m_tubeStage
Definition: MdtChamberGeometry.h:81
Muon::IMuonIdHelperSvc::mdtIdHelper
virtual const MdtIdHelper & mdtIdHelper() const =0
access to MdtIdHelper
MuonIdHelper::isBarrel
bool isBarrel(const Identifier &id) const
Definition: MuonIdHelper.cxx:829
TrkDriftCircleMath::MdtChamberGeometry::tubeStage
double tubeStage() const
Definition: MdtChamberGeometry.h:43
TrkDriftCircleMath::MdtChamberGeometry::m_tubeDist
double m_tubeDist
Definition: MdtChamberGeometry.h:79
TrkDriftCircleMath::MdtChamberGeometry::setGeometry
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)
Definition: MdtChamberGeometry.cxx:33
TrkDriftCircleMath::MdtChamberGeometry::m_sMdt
bool m_sMdt
Definition: MdtChamberGeometry.h:74
TrkDriftCircleMath::MdtChamberGeometry::tubesPassedByLine
DCVec tubesPassedByLine(const Line &line, int ml) const
Definition: MdtChamberGeometry.cxx:168
TrkDriftCircleMath::DriftCircle::EmptyTube
@ EmptyTube
drift time too large to be compatible with drift spectrum
Definition: DriftCircle.h:29
TrkDriftCircleMath::MdtChamberGeometry::tubePosition
LocVec2D tubePosition(unsigned int ml, unsigned int lay, unsigned int tube) const override
Definition: MdtChamberGeometry.cxx:185
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
calibdata.tube
tube
Definition: calibdata.py:31
TrkDriftCircleMath::MdtChamberGeometry::init
void init()
Definition: MdtChamberGeometry.cxx:69
TrkDriftCircleMath::MdtChamberGeometry::nlay
unsigned int nlay() const override
Definition: MdtChamberGeometry.h:33
TrkDriftCircleMath::MdtChamberGeometry::validId
bool validId(unsigned int ml, unsigned int lay, unsigned int tube) const
Definition: MdtChamberGeometry.cxx:89