ATLAS Offline Software
SCT_BarrelModuleSideDesign.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // SCT_BarrelModuleSideDesign.h
8 // (c) ATLAS Detector software
10 
11 #ifndef INDETREADOUTGEOMETRY_SCT_BARRELMODULESIDEDESIGN_H
12 #define INDETREADOUTGEOMETRY_SCT_BARRELMODULESIDEDESIGN_H
13 
14 // Base class
17 
18 namespace Trk{
19  class SurfaceBounds;
20 }
21 
22 namespace InDetDD {
23 
24  class SiDiodesParameters;
25 
35 
37  // Public methods:
39  public:
40 
43 
51  const int crystals,
52  const int diodes,
53  const int cells,
54  const int shift,
55  const bool swapStripReadout,
57  const double stripPitch,
58  const double stripLength,
59  const double xEtaStripPatternCentre,
60  const double xPhiStripPatternCentre,
61  const double totalDeadLength,
62  int readoutSide = -1);
63 
65  virtual ~SCT_BarrelModuleSideDesign() = default;
66 
69 
71  // Const methods:
73 
75  virtual double stripPitch() const;
76 
78  double stripLength() const;
79 
81  double etaStripPatternCentre() const;
82 
84  double phiStripPatternCentre() const;
85 
89  virtual void distanceToDetectorEdge(const SiLocalPosition & localPosition, double & etaDist, double & phiDist) const;
90 
92  virtual bool nearBondGap(const SiLocalPosition & localPosition, double etaTol) const;
93 
95  virtual bool inActiveArea(const SiLocalPosition &chargePos, bool checkBondGap = true) const;
96 
101  virtual double scaledDistanceToNearestDiode(const SiLocalPosition &chargePos) const;
102 
104  virtual double stripPitch(const SiLocalPosition & chargePos) const;
105 
107  virtual SiDiodesParameters parameters(const SiCellId & cellId) const;
108  virtual SiLocalPosition localPositionOfCell(const SiCellId & cellId) const;
109  virtual SiLocalPosition localPositionOfCluster(const SiCellId & cellId, int clusterSize) const;
110 
112  virtual SiCellId cellIdOfPosition(const SiLocalPosition & localPos) const;
113 
115  virtual std::pair<SiLocalPosition,SiLocalPosition> endsOfStrip(const SiLocalPosition &position) const;
116 
118  virtual HepGeom::Vector3D<double> phiMeasureSegment(const SiLocalPosition & ) const;
119 
121  virtual double length() const;
122 
124  virtual double width() const;
125 
127  virtual double minWidth() const;
128 
130  virtual double maxWidth() const;
131 
133  virtual double deadAreaLength() const;
134 
136  virtual double deadAreaUpperBoundary() const;
137 
139  virtual double deadAreaLowerBoundary() const;
140 
142  virtual double phiPitch() const;
143 
144  /* Pitch in phi direction */
145  virtual double phiPitch(const SiLocalPosition & localPosition) const;
146 
148  virtual double etaPitch() const;
149 
151  virtual const Trk::SurfaceBounds & bounds() const;
152 
153  private:
154 
156 
158  // Private data:
160 
161  private:
162  double m_stripPitch;
163  double m_stripLength;
167  double m_xPhiAbsSize;
170  };
171 
173  // Inline methods:
176  {
177  return m_stripPitch;
178  }
179 
180  // this method is non trivial in forward, but in barrel it can
181  // be an inline function
183  {
184  return m_stripPitch;
185  }
186 
187 
189  {
190  return m_stripLength;
191  }
192 
194  {
196  }
197 
199  {
201  }
202 
203  // Same as stripPitch
205  {
206  return m_stripPitch;
207  }
208 
209  // Same as stripPitch
211  {
212  return m_stripPitch;
213  }
214 
215  // Same as active length
217  {
218  return length();
219  }
220 
221 } // namespace InDetDD
222 
223 #endif // INDETREADOUTGEOMETRY_SCT_BARRELMODULESIDEDESIGN_H
224 
InDetDD::SCT_BarrelModuleSideDesign::parameters
virtual SiDiodesParameters parameters(const SiCellId &cellId) const
readout or diode id -> position, size
Definition: SCT_BarrelModuleSideDesign.cxx:224
InDetDD::SCT_BarrelModuleSideDesign::phiStripPatternCentre
double phiStripPatternCentre() const
centre of the strip pattern in phi
Definition: SCT_BarrelModuleSideDesign.h:198
Trk::RectangleBounds
Definition: RectangleBounds.h:38
InDetDD::DetectorDesign::thickness
double thickness() const
Method which returns thickness of the silicon wafer.
Definition: DetectorDesign.h:271
InDetDD::SCT_BarrelModuleSideDesign::m_bounds
Trk::RectangleBounds m_bounds
surface bound description
Definition: SCT_BarrelModuleSideDesign.h:169
InDetDD::SCT_BarrelModuleSideDesign::width
virtual double width() const
Method to calculate average width of a module.
Definition: SCT_BarrelModuleSideDesign.cxx:138
RectangleBounds.h
InDetDD::SCT_BarrelModuleSideDesign::phiPitch
virtual double phiPitch() const
Pitch in phi direction.
Definition: SCT_BarrelModuleSideDesign.h:210
InDetDD::SCT_BarrelModuleSideDesign::etaStripPatternCentre
double etaStripPatternCentre() const
centre of the strip pattern in eta
Definition: SCT_BarrelModuleSideDesign.h:193
InDetDD::SCT_BarrelModuleSideDesign::maxWidth
virtual double maxWidth() const
Method to calculate maximum width of a module.
Definition: SCT_BarrelModuleSideDesign.cxx:148
SCT_ModuleSideDesign.h
InDetDD::SCT_ModuleSideDesign
Definition: SCT_ModuleSideDesign.h:40
Trk::SurfaceBounds
Definition: SurfaceBounds.h:47
InDetDD::SCT_BarrelModuleSideDesign::etaPitch
virtual double etaPitch() const
Pitch in eta direction.
Definition: SCT_BarrelModuleSideDesign.h:216
InDetDD::SCT_BarrelModuleSideDesign::inActiveArea
virtual bool inActiveArea(const SiLocalPosition &chargePos, bool checkBondGap=true) const
check if the position is in active area
Definition: SCT_BarrelModuleSideDesign.cxx:92
InDetDD::DetectorDesign::readoutSide
int readoutSide() const
ReadoutSide.
Definition: DetectorDesign.h:291
InDetDD::SCT_BarrelModuleSideDesign::minWidth
virtual double minWidth() const
Method to calculate minimum width of a module.
Definition: SCT_BarrelModuleSideDesign.cxx:143
InDetDD::SCT_BarrelModuleSideDesign
Definition: SCT_BarrelModuleSideDesign.h:34
InDetDD::DetectorDesign::carrierType
InDetDD::CarrierType carrierType() const
Return carrier type (ie electrons or holes)
Definition: DetectorDesign.h:275
InDetDD::SCT_BarrelModuleSideDesign::stripPitch
virtual double stripPitch() const
strip pitch
Definition: SCT_BarrelModuleSideDesign.h:175
InDetDD::SCT_BarrelModuleSideDesign::endsOfStrip
virtual std::pair< SiLocalPosition, SiLocalPosition > endsOfStrip(const SiLocalPosition &position) const
this method returns the ends of the strip
Definition: SCT_BarrelModuleSideDesign.cxx:120
InDetDD::SCT_ModuleSideDesign::crystals
int crystals() const
number of crystals within module side:
Definition: SCT_ModuleSideDesign.h:216
InDetDD::SCT_ModuleSideDesign::shift
int shift() const
number of edge strips before first readout strip.
Definition: SCT_ModuleSideDesign.h:232
InDetDD::SCT_BarrelModuleSideDesign::m_stripLength
double m_stripLength
strip length
Definition: SCT_BarrelModuleSideDesign.h:163
InDetDD::SCT_BarrelModuleSideDesign::operator=
SCT_BarrelModuleSideDesign & operator=(const SCT_BarrelModuleSideDesign &design)
Assignment operator:
InDetDD::SCT_ModuleSideDesign::cells
int cells() const
number of readout stips within module side:
Definition: SCT_ModuleSideDesign.h:228
InDetDD::SCT_BarrelModuleSideDesign::phiMeasureSegment
virtual HepGeom::Vector3D< double > phiMeasureSegment(const SiLocalPosition &) const
method for stereo angle computation - returns a vector parallel to the strip being hit
Definition: SCT_BarrelModuleSideDesign.cxx:156
InDetDD::SCT_BarrelModuleSideDesign::deadAreaLowerBoundary
virtual double deadAreaLowerBoundary() const
give lower boundary of dead area
Definition: SCT_BarrelModuleSideDesign.cxx:175
InDetDD::SiLocalPosition
Definition: SiLocalPosition.h:31
InDetDD::SCT_BarrelModuleSideDesign::m_xEtaStripPatternCentre
double m_xEtaStripPatternCentre
geom position on G4 volume, care needed
Definition: SCT_BarrelModuleSideDesign.h:164
InDetDD::SCT_BarrelModuleSideDesign::m_xPhiStripPatternCentre
double m_xPhiStripPatternCentre
geom position on G4 volume, care needed
Definition: SCT_BarrelModuleSideDesign.h:165
InDetDD::SCT_BarrelModuleSideDesign::deadAreaLength
virtual double deadAreaLength() const
give length of dead area
Definition: SCT_BarrelModuleSideDesign.cxx:164
InDetDD::SCT_BarrelModuleSideDesign::SCT_BarrelModuleSideDesign
SCT_BarrelModuleSideDesign(const SCT_BarrelModuleSideDesign &design)
Copy constructor:
InDetDD::SCT_ModuleSideDesign::diodes
int diodes() const
number of strips within crystal:
Definition: SCT_ModuleSideDesign.h:220
InDetDD::SCT_BarrelModuleSideDesign::m_xEtaAbsSizeHigh
double m_xEtaAbsSizeHigh
active area in xEta
Definition: SCT_BarrelModuleSideDesign.h:168
InDetDD::SCT_BarrelModuleSideDesign::scaledDistanceToNearestDiode
virtual double scaledDistanceToNearestDiode(const SiLocalPosition &chargePos) const
distance to the nearest diode in units of pitch, from 0.0 to 0.5, this method should be fast as it is...
Definition: SCT_BarrelModuleSideDesign.cxx:111
InDetDD::SCT_BarrelModuleSideDesign::cellIdOfPosition
virtual SiCellId cellIdOfPosition(const SiLocalPosition &localPos) const
position -> id
Definition: SCT_BarrelModuleSideDesign.cxx:235
InDetDD::SCT_BarrelModuleSideDesign::stripLength
double stripLength() const
strip length
Definition: SCT_BarrelModuleSideDesign.h:188
InDetDD::SCT_BarrelModuleSideDesign::distanceToDetectorEdge
virtual void distanceToDetectorEdge(const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const
Returns distance to nearest detector active edge +ve = inside -ve = outside.
Definition: SCT_BarrelModuleSideDesign.cxx:65
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
InDetDD::SCT_BarrelModuleSideDesign::m_xEtaAbsSizeLow
double m_xEtaAbsSizeLow
Definition: SCT_BarrelModuleSideDesign.h:168
InDetDD::SCT_BarrelModuleSideDesign::deadAreaUpperBoundary
virtual double deadAreaUpperBoundary() const
give upper boundary of dead area
Definition: SCT_BarrelModuleSideDesign.cxx:170
InDetDD::SCT_BarrelModuleSideDesign::nearBondGap
virtual bool nearBondGap(const SiLocalPosition &localPosition, double etaTol) const
Test if near bond gap within tolerances.
Definition: SCT_BarrelModuleSideDesign.cxx:84
InDetDD::SCT_BarrelModuleSideDesign::localPositionOfCell
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const
id -> position
Definition: SCT_BarrelModuleSideDesign.cxx:183
InDetDD::SiCellId
Definition: SiCellId.h:29
InDetDD::CarrierType
CarrierType
Definition: InDetDD_Defs.h:17
InDetDD::SCT_BarrelModuleSideDesign::m_xPhiAbsSize
double m_xPhiAbsSize
size in xPhi/2 for active area
Definition: SCT_BarrelModuleSideDesign.h:167
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
InDetDD::SCT_BarrelModuleSideDesign::m_totalDeadLength
double m_totalDeadLength
includes detector edge and gap between decetors
Definition: SCT_BarrelModuleSideDesign.h:166
InDetDD::SCT_BarrelModuleSideDesign::~SCT_BarrelModuleSideDesign
virtual ~SCT_BarrelModuleSideDesign()=default
Destructor:
InDetDD::SCT_BarrelModuleSideDesign::localPositionOfCluster
virtual SiLocalPosition localPositionOfCluster(const SiCellId &cellId, int clusterSize) const
Definition: SCT_BarrelModuleSideDesign.cxx:201
InDetDD::SCT_BarrelModuleSideDesign::bounds
virtual const Trk::SurfaceBounds & bounds() const
Return the surface bounds.
Definition: SCT_BarrelModuleSideDesign.cxx:251
InDetDD::SCT_BarrelModuleSideDesign::SCT_BarrelModuleSideDesign
SCT_BarrelModuleSideDesign()
InDetDD::SCT_BarrelModuleSideDesign::length
virtual double length() const
Method to calculate length of a module.
Definition: SCT_BarrelModuleSideDesign.cxx:133
InDetDD::SCT_BarrelModuleSideDesign::m_stripPitch
double m_stripPitch
strip pitch, 80 um in barrel SCT
Definition: SCT_BarrelModuleSideDesign.h:162
InDetDD::SiDiodesParameters
Definition: SiDiodesParameters.h:25