ATLAS Offline Software
CscReadoutElement.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /***************************************************************************
6  Csc Readout Element properties
7  -----------------------------------------
8 ***************************************************************************/
9 
10 #ifndef MUONREADOUTGEOMETRY_CSCREADOUTELEMENT_H
11 #define MUONREADOUTGEOMETRY_CSCREADOUTELEMENT_H
12 
16 #include "CxxUtils/ArrayHelper.h"
17 
18 namespace Muon {
19  class CscAlignModule;
20  class CombinedMuonAlignModule;
21 } // namespace Muon
22 
23 class CscInternalAlignmentPar;
24 class GeoVFullPhysVol;
25 
26 namespace MuonGM {
27 
28  //<<<<<< PUBLIC DEFINES >>>>>>
29  constexpr int maxwlay = 4;
30 
31  /*
32  A CscReadoutElement corresponds to a single CSC chamber; therefore typically
33  (in the final MS layout, i.e. if no detector stagein is considered) a CSC
34  station contains 2 CscReadoutElements.
35  CscReadoutElements are identified by StationName, StationEta, StationPhi,
36  Technology=1 and ChamberLayer. Therefore the granularity of the data
37  collections is not equal to the granularity of the geometry description
38  (1 collection -> 2 CscReadoutElement [for final layout]; ->1 CscReadoutElement
39  in the initial layout).
40 
41  Pointers to all CscReadoutElements are created in the build() method of the
42  MuonChamber class, and are held in arrays by the MuonDetectorManager, which
43  is responsible for storing, deleting and provide access to these objects.
44 
45  A CscReadoutElement holds properties related to its internal structure
46  (i.e. number of strip panels) and general geometrical properties (size);
47  it implements tracking interfaces and provides access to typical
48  readout-geometry information: i.e. number of strips, strip positions, etc.
49 
50  The globalToLocalCoords and globalToLocalTransform methods (+ their opposite)
51  define the link between the ATLAS global reference frame and the internal
52  (geo-model defined) local reference frame of any gas gap volume (which is the
53  frame where local coordinates of SimHits, in output from G4, are expressed).
54  */
55 
57  friend class Muon::CscAlignModule;
59  friend class MuonChamber;
60  friend class MuonChamberLite;
61 
62  public:
63  CscReadoutElement(GeoVFullPhysVol* pv, const std::string& stName, MuonDetectorManager* mgr);
64 
65  virtual ~CscReadoutElement();
66 
69  virtual double distanceToReadout(const Amg::Vector2D& pos, const Identifier& id) const override final;
70 
73  virtual int stripNumber(const Amg::Vector2D& pos, const Identifier& id) const override final;
74 
77  virtual bool stripPosition(const Identifier& id, Amg::Vector2D& pos) const override final;
78 
80  virtual int layerHash(const Identifier& id) const override final;
81 
83  virtual int surfaceHash(const Identifier& id) const override final;
84 
86  virtual int boundaryHash(const Identifier& id) const override final;
87 
89  virtual bool measuresPhi(const Identifier& id) const override final;
90 
92  virtual int numberOfLayers(bool) const override final;
93 
95  virtual int numberOfStrips(const Identifier& layerId) const override final;
96  virtual int numberOfStrips(int layer, bool) const override final;
97 
101  virtual bool spacePointPosition(const Identifier& phiId, const Identifier& etaId, Amg::Vector2D& pos) const override;
102 
105  virtual bool spacePointPosition(const Identifier& phiId, const Identifier& etaId, Amg::Vector3D& pos) const override;
106 
110  void spacePointPosition(const Amg::Vector2D& phiPos, const Amg::Vector2D& etaPos, Amg::Vector2D& pos) const;
111 
112  // Id set/get methods
113  int ChamberLayer() const;
114  void setChamberLayer(int cl);
115 
116  int Ngasgaps() const;
117  int NphiStripLayers() const;
118  int NetaStripLayers() const;
119  int NphiStrips(int gasgaplayer) const;
120  int NetaStrips(int gasgaplayer) const;
121  // in the following methods the chlayer argument is irrelevant
122  // the first 3 will disappear
123  double StripWidth(int chlayer, int measphi) const;
124  double StripPitch(int chlayer, int measphi) const;
125  double cathodeReadoutPitch(int chLayer, int measuresPhi) const;
126  double StripWidth(int measphi) const;
127  double StripPitch(int measphi) const;
128  double cathodeReadoutPitch(int measuresPhi) const;
129 
130  double shortWidth() const;
131  double length() const;
132  double longWidth() const;
133  int maxNumberOfStrips(int measuresPhi) const;
134  int maxNumberOfStrips(int measuresPhi, double width) const;
135  double activeWidth(int measuresPhi) const;
136  double z0() const;
137  inline double roxacellWidth() const;
138  inline double lengthUpToMaxWidth() const;
139  inline double excent() const;
140 
141  Amg::Vector3D stripLayerPos(const Identifier& id) const;
142  Amg::Vector3D stripLayerPos(const IdentifierHash& id) const;
143  Amg::Vector3D stripLayerPos(int chamberLayer, int wireLayer, int measPhi, int channel) const;
146  Amg::Vector3D localStripLayerPos(int chamberLayer, int wireLayer, int measPhi, int channel) const;
147  //
148  Amg::Vector3D localWireLayerPos(const Identifier& id) const;
149  Amg::Vector3D localWireLayerPos(int gg) const;
150  Amg::Vector3D wireLayerPos(const Identifier& id) const;
151  Amg::Vector3D wireLayerPos(int gg) const;
152 
153  //
154  Amg::Vector3D nominalStripPos(const Identifier& id) const;
156  Amg::Vector3D nominalStripPos(int eta, int chamberLayer, int wireLayer, int measPhi, int channel) const;
158  Amg::Vector3D stripPos(const Identifier& id) const;
160  Amg::Vector3D stripPos(int eta, int chamberLayer, int wireLayer, int measPhi, int channel) const;
162  Amg::Vector3D nominalGlobalPos(const Amg::Vector3D& localP) const;
164  Amg::Vector3D globalPos(const Amg::Vector3D& localP) const;
167  Amg::Vector3D localPos(const Amg::Vector3D& globalP) const;
174  Amg::Vector3D nominalLocalStripPos(int eta, int chamberLayer, int wireLayer, int measPhi, int channel) const;
177  Amg::Vector3D nominalLocalClusterPos(int eta, int wireLayer, int measPhi, double x0) const;
180  Amg::Vector3D localStripPos(const Identifier& id) const;
184  Amg::Vector3D localStripPos(int eta, int chamberLayer, int wireLayer, int measPhi, int channel) const;
188  Amg::Vector3D localClusterPos(int eta, int wireLayer, int measPhi, double x0) const;
193  Amg::Vector3D stripPosOnTrackingSurface(int eta, int chamberLayer, int wireLayer, int measPhi, int channel) const;
197  Amg::Transform3D nominalTransform(int gasGap, int measPhi) const;
204  double stripLength(int chamberLayer, int measuresPhi, int stripNumber, double& epsilon) const;
205  double stripLength(const Identifier& id) const;
206  double lengthCorrection(int measuresPhi, double stripPos) const;
207 
208  double anodeCathodeDistance() const;
209 
219  // local to global and viceversa
221  //**< localToGlobalCoords and Transf relates gas-gap frame (SensitiveDetectors) to the Global Frame */
223  //**< localToGlobalCoords and Transf relates gas-gap frame (SensitiveDetectors) to the Global Frame */
225  //**< localToGlobalCoords and Transf relates gas-gap frame (SensitiveDetectors) to the Global Frame */
226 
227  // global to local
229  //**< localToGlobalCoords and Transf relates gas-gap frame (SensitiveDetectors) to the Global Frame */
231  //**< localToGlobalCoords and Transf relates gas-gap frame (SensitiveDetectors) to the Global Frame */
232 
233 
234  void set_ngasgaps(int);
235  void set_nstriplayers(int);
236  void set_nwirelayers(int);
239  void set_stripwidth(double);
240  void set_strippitch(double);
241  void set_wirepitch(double);
245 
246  double getGasGapIntAlign_s(int gasGap) const;
247  double getGasGapIntAlign_z(int gasGap) const;
248  double getGasGapIntAlign_t(int gasGap) const;
249  double getGasGapIntAlign_rots(int gasGap) const;
250  double getGasGapIntAlign_rotz(int gasGap) const;
251  double getGasGapIntAlign_rott(int gasGap) const;
252 
253  virtual bool containsId(const Identifier& id) const override;
254 
255  // compute sin(stereo angle) at a given position:
256  double sinStereo(const Identifier& stripId) const;
257 
258  virtual void fillCache() override;
259  double xCoordinateInTrackingFrame(const Identifier& id) const;
260 
261  private:
262  void doTests();
263 
264  private:
265  double m_excent{-9999.};
266  double m_roxacellwidth{-9999.};
267  double m_RlengthUpToMaxWidth{-9999.};
268  double m_anodecathode_distance{-9999.};
269  int m_chamberlayer{-1};
270  int m_ngasgaps{-1};
271  int m_nstriplayers{-1};
272  int m_nwirelayers{-1};
276  double m_Phistripwidth{-9999.};
277  double m_Phistrippitch{-9999.};
278  double m_Etastripwidth{-9999.};
279  double m_Etastrippitch{-9999.};
280  double m_wirepitch{-9999.};
281  double m_first_strip_localcoo{-9999.};
282  double m_first_wire_localcoo{-9999.};
283  std::array<double, maxwlay> m_wireplanez{make_array<double, maxwlay>(-9999.)};
284 
285  // internal alignment
286  double m_cscIntTransl[4][3]{}; // first index is wireLayer, second = 0,1,2 for s,z,t
287  double m_cscIntRot[4][3]{}; // first index is wireLayer, second = 0,1,2 for rots,z,t
288  };
289 
290  inline int CscReadoutElement::ChamberLayer() const { return m_chamberlayer; }
291 
293 
294  inline double CscReadoutElement::shortWidth() const { return getSsize(); }
295 
296  inline double CscReadoutElement::length() const { return getRsize(); }
297 
298  inline double CscReadoutElement::longWidth() const { return getLongSsize(); }
299 
300  inline double CscReadoutElement::roxacellWidth() const { return m_roxacellwidth; }
301 
303 
304  inline double CscReadoutElement::excent() const { return m_excent; }
305 
307 
308  inline int CscReadoutElement::Ngasgaps() const { return m_ngasgaps; }
309 
310  inline int CscReadoutElement::NphiStripLayers() const { return m_ngasgaps; }
311 
312  inline int CscReadoutElement::NetaStripLayers() const { return m_ngasgaps; }
313 
314  inline int CscReadoutElement::NphiStrips(int) const { return m_nPhistripsperlayer; }
315 
316  inline int CscReadoutElement::NetaStrips(int) const { return m_nEtastripsperlayer; }
317 
318  inline int CscReadoutElement::layerHash(const Identifier& id) const { return manager()->cscIdHelper()->wireLayer(id) - 1; }
319 
320  inline int CscReadoutElement::surfaceHash(const Identifier& id) const {
321  return 2 * (manager()->cscIdHelper()->wireLayer(id) - 1) + (manager()->cscIdHelper()->measuresPhi(id) ? 0 : 1);
322  }
323 
324  inline int CscReadoutElement::boundaryHash(const Identifier& id) const { return (measuresPhi(id) ? 0 : 1); }
325 
326  inline bool CscReadoutElement::measuresPhi(const Identifier& id) const { return manager()->cscIdHelper()->measuresPhi(id); }
327 
328  inline int CscReadoutElement::numberOfLayers(bool) const { return Ngasgaps(); }
329  inline int CscReadoutElement::numberOfStrips(const Identifier&) const { return NphiStrips(1); }
330  inline int CscReadoutElement::numberOfStrips(int, bool) const { return NphiStrips(1); }
331 
332  inline bool CscReadoutElement::spacePointPosition(const Identifier& phiId, const Identifier& etaId, Amg::Vector3D& pos) const {
333  Amg::Vector2D lpos;
334  spacePointPosition(phiId, etaId, lpos);
335  surface(phiId).localToGlobal(lpos, pos, pos);
336  return true;
337  }
338 
339  inline void CscReadoutElement::spacePointPosition(const Amg::Vector2D& phiPos, const Amg::Vector2D& etaPos, Amg::Vector2D& pos) const {
340  pos[0] = phiPos.x();
341  pos[1] = etaPos.x();
342  }
343 
344 } // namespace MuonGM
345 
346 #endif // MUONREADOUTGEOMETRY_CSCREADOUTELEMENT_H
CscIdHelper.h
MuonGM::CscReadoutElement::getGasGapIntAlign_s
double getGasGapIntAlign_s(int gasGap) const
Definition: CscReadoutElement.cxx:602
MuonGM::CscReadoutElement::set_strippitch
void set_strippitch(double)
MuonGM::CscReadoutElement::globalToLocalTransf
Amg::Transform3D globalToLocalTransf(const Identifier &id) const
Definition: CscReadoutElement.cxx:118
MuonGM::CscReadoutElement::StripWidth
double StripWidth(int chlayer, int measphi) const
Definition: CscReadoutElement.cxx:260
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
MuonGM::CscReadoutElement::NphiStripLayers
int NphiStripLayers() const
Definition: CscReadoutElement.h:310
MuonGM::CscReadoutElement::fillCache
virtual void fillCache() override
Definition: CscReadoutElement.cxx:659
MuonGM::CscReadoutElement::wireLayerPos
Amg::Vector3D wireLayerPos(const Identifier &id) const
Definition: CscReadoutElement.cxx:131
MuonGM
Ensure that the Athena extensions are properly loaded.
Definition: GeoMuonHits.h:27
MuonGM::CscReadoutElement::anodeCathodeDistance
double anodeCathodeDistance() const
Definition: CscReadoutElement.h:306
MuonGM::CscReadoutElement::m_anodecathode_distance
double m_anodecathode_distance
Definition: CscReadoutElement.h:268
MuonGM::CscReadoutElement::m_wireplanez
std::array< double, maxwlay > m_wireplanez
Definition: CscReadoutElement.h:283
MuonGM::CscReadoutElement::set_first_strip_localcoo
void set_first_strip_localcoo(double)
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
MuonGM::CscReadoutElement::containsId
virtual bool containsId(const Identifier &id) const override
Definition: CscReadoutElement.cxx:718
MuonGM::CscReadoutElement::getGasGapIntAlign_rotz
double getGasGapIntAlign_rotz(int gasGap) const
Definition: CscReadoutElement.cxx:610
MuonGM::CscReadoutElement::excent
double excent() const
Definition: CscReadoutElement.h:304
MuonGM::CscReadoutElement::m_cscIntTransl
double m_cscIntTransl[4][3]
Definition: CscReadoutElement.h:286
MuonGM::CscReadoutElement::m_RlengthUpToMaxWidth
double m_RlengthUpToMaxWidth
Definition: CscReadoutElement.h:267
ALinePar
Definition: ALinePar.h:15
MuonGM::CscReadoutElement::setChamberLayer
void setChamberLayer(int cl)
Definition: CscReadoutElement.h:292
MuonGM::CscReadoutElement::localWireLayerPos
Amg::Vector3D localWireLayerPos(const Identifier &id) const
Definition: CscReadoutElement.cxx:120
MuonGM::CscReadoutElement::localClusterPos
Amg::Vector3D localClusterPos(int eta, int wireLayer, int measPhi, double x0) const
takes into account internal alignment parameters, hence gives generally answer (local here is the sta...
Definition: CscReadoutElement.cxx:432
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
MuonGM::CscReadoutElement::lengthUpToMaxWidth
double lengthUpToMaxWidth() const
Definition: CscReadoutElement.h:302
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
MuonGM::CscReadoutElement::nominalLocalClusterPos
Amg::Vector3D nominalLocalClusterPos(int eta, int wireLayer, int measPhi, double x0) const
ignores internal alignment parameters, hence gives generally incorrect answer (local here is the stat...
Definition: CscReadoutElement.cxx:410
MuonGM::CscReadoutElement::m_ngasgaps
int m_ngasgaps
Definition: CscReadoutElement.h:270
MuonGM::CscReadoutElement::localStripLayerPos
Amg::Vector3D localStripLayerPos(const IdentifierHash &id) const
MuonGM::CscReadoutElement::ChamberLayer
int ChamberLayer() const
Definition: CscReadoutElement.h:290
MuonGM::MuonChamber
Definition: MuonDetDescr/MuonGeoModel/MuonGeoModel/MuonChamber.h:29
MuonGM::CscReadoutElement::nominalLocalStripPos
Amg::Vector3D nominalLocalStripPos(const Identifier &id) const
ignores internal alignment parameters, hence gives generally incorrect answer (local here is the stat...
Definition: CscReadoutElement.cxx:216
MuonGM::CscReadoutElement::set_nstriplayers
void set_nstriplayers(int)
MuonGM::CscReadoutElement::xCoordinateInTrackingFrame
double xCoordinateInTrackingFrame(const Identifier &id) const
Definition: CscReadoutElement.cxx:462
MuonGM::CscReadoutElement::stripLayerPos
Amg::Vector3D stripLayerPos(const Identifier &id) const
Definition: CscReadoutElement.cxx:547
MuonGM::CscReadoutElement::m_wirepitch
double m_wirepitch
Definition: CscReadoutElement.h:280
MuonGM::CscReadoutElement::getGasGapIntAlign_z
double getGasGapIntAlign_z(int gasGap) const
Definition: CscReadoutElement.cxx:604
MuonGM::CscReadoutElement::spacePointPosition
virtual bool spacePointPosition(const Identifier &phiId, const Identifier &etaId, Amg::Vector2D &pos) const override
space point position for a given pair of phi and eta identifiers The LocalPosition is expressed in th...
Definition: CscReadoutElement.cxx:763
MuonGM::CscReadoutElement::set_nwiresperlayer
void set_nwiresperlayer(int)
MuonGM::CscReadoutElement
Definition: CscReadoutElement.h:56
MuonGM::CscReadoutElement::set_wirepitch
void set_wirepitch(double)
Muon
This class provides conversion from CSC RDO data to CSC Digits.
Definition: TrackSystemController.h:49
MuonGM::MuonReadoutElement::getLongSsize
double getLongSsize() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:199
MuonGM::CscReadoutElement::length
double length() const
Definition: CscReadoutElement.h:296
MuonGM::CscReadoutElement::globalToLocalCoords
Amg::Vector3D globalToLocalCoords(const Amg::Vector3D &x, const Identifier &id) const
Definition: CscReadoutElement.cxx:114
x
#define x
MuonGM::MuonClusterReadoutElement::surface
virtual const Trk::PlaneSurface & surface() const override
access to chamber surface (phi orientation), uses the first gas gap
Definition: MuonClusterReadoutElement.h:123
MuonGM::CscReadoutElement::stripLength
double stripLength(int chamberLayer, int measuresPhi, int stripNumber, double &epsilon) const
Definition: CscReadoutElement.cxx:292
MuonGM::CscReadoutElement::originForInternalALines
Amg::Vector3D originForInternalALines(int gasGap) const
like tracking center but nominal - returns a Amg::Vector3D not a reference to it
Definition: CscReadoutElement.cxx:657
MuonGM::CscReadoutElement::m_excent
double m_excent
Definition: CscReadoutElement.h:265
MuonGM::CscReadoutElement::z0
double z0() const
Definition: CscReadoutElement.cxx:187
MuonGM::CscReadoutElement::stripPosOnTrackingSurface
Amg::Vector3D stripPosOnTrackingSurface(const Identifier &id) const
nominal strip pos in the tracking local frame of the measurement surface
Definition: CscReadoutElement.cxx:643
MuonGM::CscReadoutElement::m_nPhistripsperlayer
int m_nPhistripsperlayer
Definition: CscReadoutElement.h:273
MuonGM::MuonChamberLite
Definition: MuonChamberLite.h:31
MuonGM::CscReadoutElement::setCscInternalAlignmentPar
void setCscInternalAlignmentPar(const ALinePar &)
Definition: CscReadoutElement.cxx:572
MuonGM::MuonReadoutElement::getSsize
double getSsize() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:196
BchCleanup.mgr
mgr
Definition: BchCleanup.py:294
MuonGM::CscReadoutElement::shortWidth
double shortWidth() const
Definition: CscReadoutElement.h:294
CscIdHelper::wireLayer
int wireLayer(const Identifier &id) const
Definition: CscIdHelper.cxx:772
MuonGM::CscReadoutElement::Ngasgaps
int Ngasgaps() const
Definition: CscReadoutElement.h:308
MuonGM::CscReadoutElement::m_Phistrippitch
double m_Phistrippitch
Definition: CscReadoutElement.h:277
MuonGM::CscReadoutElement::m_roxacellwidth
double m_roxacellwidth
Definition: CscReadoutElement.h:266
MuonGM::CscReadoutElement::distanceToReadout
virtual double distanceToReadout(const Amg::Vector2D &pos, const Identifier &id) const override final
distance to readout.
Definition: CscReadoutElement.cxx:739
MuonGM::CscReadoutElement::NetaStrips
int NetaStrips(int gasgaplayer) const
Definition: CscReadoutElement.h:316
MuonGM::CscReadoutElement::maxNumberOfStrips
int maxNumberOfStrips(int measuresPhi) const
Definition: CscReadoutElement.cxx:162
MuonGM::CscReadoutElement::m_Phistripwidth
double m_Phistripwidth
Definition: CscReadoutElement.h:276
MuonGM::CscReadoutElement::nominalStripPos
Amg::Vector3D nominalStripPos(const Identifier &id) const
ignores internal alignment parameters, hence gives generally incorrect answer
Definition: CscReadoutElement.cxx:236
MuonGM::CscReadoutElement::lengthCorrection
double lengthCorrection(int measuresPhi, double stripPos) const
Definition: CscReadoutElement.cxx:333
MuonGM::CscReadoutElement::globalPos
Amg::Vector3D globalPos(const Amg::Vector3D &localP) const
station-level method: does not depend on the strip view/layer, hence it cannot account for internal a...
Definition: CscReadoutElement.cxx:460
MuonGM::CscReadoutElement::nominalCenter
Amg::Vector3D nominalCenter(int gasGap) const
like tracking center but nominal - returns a Amg::Vector3D not a reference to it
Definition: CscReadoutElement.cxx:656
MuonGM::CscReadoutElement::localStripPos
Amg::Vector3D localStripPos(const Identifier &id) const
takes into account internal alignment parameters, hence gives generally accurate answer (local here i...
Definition: CscReadoutElement.cxx:206
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
MuonGM::CscReadoutElement::stripPosition
virtual bool stripPosition(const Identifier &id, Amg::Vector2D &pos) const override final
strip position If the strip number is outside the range of valid strips, the function will return fal...
Definition: CscReadoutElement.cxx:751
MuonGM::CscReadoutElement::set_nwirelayers
void set_nwirelayers(int)
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
MuonGM::CscReadoutElement::localToGlobalTransf
Amg::Transform3D localToGlobalTransf(const Identifier &id) const
Definition: CscReadoutElement.cxx:108
MuonGM::CscReadoutElement::getGasGapIntAlign_rots
double getGasGapIntAlign_rots(int gasGap) const
Definition: CscReadoutElement.cxx:608
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MuonGM::CscReadoutElement::activeWidth
double activeWidth(int measuresPhi) const
Definition: CscReadoutElement.cxx:169
MuonGM::CscReadoutElement::m_first_wire_localcoo
double m_first_wire_localcoo
Definition: CscReadoutElement.h:282
ArrayHelper.h
MuonGM::CscReadoutElement::StripPitch
double StripPitch(int chlayer, int measphi) const
Definition: CscReadoutElement.cxx:265
MuonGM::maxwlay
constexpr int maxwlay
Definition: CscReadoutElement.h:29
MuonGM::MuonReadoutElement::manager
const MuonDetectorManager * manager() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:204
MuonClusterReadoutElement.h
MuonGM::CscReadoutElement::m_nEtastripsperlayer
int m_nEtastripsperlayer
Definition: CscReadoutElement.h:274
MuonGM::CscReadoutElement::m_nwirelayers
int m_nwirelayers
Definition: CscReadoutElement.h:272
MuonGM::CscReadoutElement::m_nwiresperlayer
int m_nwiresperlayer
Definition: CscReadoutElement.h:275
MuonGM::CscReadoutElement::m_Etastripwidth
double m_Etastripwidth
Definition: CscReadoutElement.h:278
MuonGM::CscReadoutElement::roxacellWidth
double roxacellWidth() const
Definition: CscReadoutElement.h:300
MuonGM::CscReadoutElement::longWidth
double longWidth() const
Definition: CscReadoutElement.h:298
MuonGM::CscReadoutElement::m_Etastrippitch
double m_Etastrippitch
Definition: CscReadoutElement.h:279
MuonGM::CscReadoutElement::set_ngasgaps
void set_ngasgaps(int)
MuonGM::CscReadoutElement::localToGlobalCoords
Amg::Vector3D localToGlobalCoords(const Amg::Vector3D &x, const Identifier &id) const
localToGlobalCoords and Transf connect the Gas Gap Frame (defined as a Sensitive Detector) to the Glo...
Definition: CscReadoutElement.cxx:97
MuonGM::CscReadoutElement::CscAlignModule
friend class Muon::CscAlignModule
Definition: CscReadoutElement.h:57
MuonGM::CscReadoutElement::boundaryHash
virtual int boundaryHash(const Identifier &id) const override final
returns the hash function to be used to look up the surface boundary for a given identifier
Definition: CscReadoutElement.h:324
MuonGM::CscReadoutElement::set_stripwidth
void set_stripwidth(double)
MuonGM::CscReadoutElement::layerHash
virtual int layerHash(const Identifier &id) const override final
returns the hash function to be used to look up the center and the normal of the tracking surface for...
Definition: CscReadoutElement.h:318
MuonGM::CscReadoutElement::m_first_strip_localcoo
double m_first_strip_localcoo
Definition: CscReadoutElement.h:281
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonGM::CscReadoutElement::getGasGapIntAlign_t
double getGasGapIntAlign_t(int gasGap) const
Definition: CscReadoutElement.cxx:606
MuonGM::CscReadoutElement::CscReadoutElement
CscReadoutElement(GeoVFullPhysVol *pv, const std::string &stName, MuonDetectorManager *mgr)
Definition: CscReadoutElement.cxx:39
MuonGM::CscReadoutElement::CombinedMuonAlignModule
friend class Muon::CombinedMuonAlignModule
Definition: CscReadoutElement.h:58
MuonDetectorManager.h
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
MuonGM::CscReadoutElement::localStripLayerPos
Amg::Vector3D localStripLayerPos(const Identifier &id) const
MuonGM::MuonClusterReadoutElement
Definition: MuonClusterReadoutElement.h:21
MuonGM::MuonReadoutElement::getRsize
double getRsize() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:197
Base_Fragment.width
width
Definition: Sherpa_i/share/common/Base_Fragment.py:59
MuonGM::CscReadoutElement::doTests
void doTests()
Definition: CscReadoutElement.cxx:521
MuonGM::MuonDetectorManager
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:49
MuonGM::CscReadoutElement::getGasGapIntAlign_rott
double getGasGapIntAlign_rott(int gasGap) const
Definition: CscReadoutElement.cxx:612
MuonGM::CscReadoutElement::~CscReadoutElement
virtual ~CscReadoutElement()
Definition: CscReadoutElement.cxx:95
MuonGM::CscReadoutElement::sinStereo
double sinStereo(const Identifier &stripId) const
Definition: CscReadoutElement.cxx:501
MuonGM::CscReadoutElement::surfaceHash
virtual int surfaceHash(const Identifier &id) const override final
returns the hash function to be used to look up the surface and surface transform for a given identif...
Definition: CscReadoutElement.h:320
python.changerun.pv
pv
Definition: changerun.py:81
MuonGM::CscReadoutElement::nominalGlobalPos
Amg::Vector3D nominalGlobalPos(const Amg::Vector3D &localP) const
ignores internal alignment parameters, hence gives generally incorrect answer
Definition: CscReadoutElement.cxx:453
MuonGM::CscReadoutElement::localPos
Amg::Vector3D localPos(const Amg::Vector3D &globalP) const
station-level method: does not depend on the strip view/layer, hence it cannot account for internal a...
Definition: CscReadoutElement.cxx:446
MuonGM::CscReadoutElement::set_nstripsperlayer
void set_nstripsperlayer(int)
MuonGM::CscReadoutElement::numberOfLayers
virtual int numberOfLayers(bool) const override final
number of layers in phi/eta projection
Definition: CscReadoutElement.h:328
MuonGM::CscReadoutElement::measuresPhi
virtual bool measuresPhi(const Identifier &id) const override final
returns whether the given identifier measures phi or not
Definition: CscReadoutElement.h:326
CscIdHelper::measuresPhi
bool measuresPhi(const Identifier &id) const override
Definition: CscIdHelper.cxx:774
MuonGM::CscReadoutElement::stripPos
Amg::Vector3D stripPos(const Identifier &id) const
takes into account internal alignment parameters, hence gives accurate answer
Definition: CscReadoutElement.cxx:227
MuonGM::MuonDetectorManager::cscIdHelper
const CscIdHelper * cscIdHelper() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:224
MuonGM::CscReadoutElement::m_cscIntRot
double m_cscIntRot[4][3]
Definition: CscReadoutElement.h:287
MuonGM::CscReadoutElement::set_first_wire_localcoo
void set_first_wire_localcoo(double)
Trk::PlaneSurface::localToGlobal
virtual void localToGlobal(const Amg::Vector2D &locp, const Amg::Vector3D &mom, Amg::Vector3D &glob) const override final
Specified for PlaneSurface: LocalToGlobal method without dynamic memory allocation.
Definition: PlaneSurface.cxx:204
IdentifierHash
Definition: IdentifierHash.h:38
MuonGM::CscReadoutElement::stripNumber
virtual int stripNumber(const Amg::Vector2D &pos, const Identifier &id) const override final
strip number corresponding to local position.
Definition: CscReadoutElement.cxx:745
MuonGM::CscReadoutElement::NetaStripLayers
int NetaStripLayers() const
Definition: CscReadoutElement.h:312
MuonGM::CscReadoutElement::nominalTransform
Amg::Transform3D nominalTransform(const Identifier &id) const
like tracking Transform but nominal - returns a transform not a reference to it
Definition: CscReadoutElement.cxx:614
dq_make_web_display.cl
cl
print [x.__class__ for x in toList(dqregion.getSubRegions()) ]
Definition: dq_make_web_display.py:26
MuonGM::CscReadoutElement::NphiStrips
int NphiStrips(int gasgaplayer) const
Definition: CscReadoutElement.h:314
MuonGM::CscReadoutElement::m_chamberlayer
int m_chamberlayer
Definition: CscReadoutElement.h:269
MuonGM::CscReadoutElement::m_nstriplayers
int m_nstriplayers
Definition: CscReadoutElement.h:271
MuonGM::CscReadoutElement::numberOfStrips
virtual int numberOfStrips(const Identifier &layerId) const override final
number of strips per layer
Definition: CscReadoutElement.h:329
MuonGM::CscReadoutElement::cathodeReadoutPitch
double cathodeReadoutPitch(int chLayer, int measuresPhi) const
Definition: CscReadoutElement.cxx:147