ATLAS Offline Software
SCT_ForwardModuleSideDesign.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_ForwardModuleSideDesign.h
8 // (c) ATLAS Detector software
10 
11 #ifndef INDETREADOUTGEOMETRY_SCT_FORWARDMODULESIDEDESIGN_H
12 #define INDETREADOUTGEOMETRY_SCT_FORWARDMODULESIDEDESIGN_H
13 
14 // Base class
16 
17 //Data member classes
21 
22 namespace Trk{
23  class SurfaceBounds;
24 }
25 
26 
27 namespace InDetDD {
28 
40 
41  public:
42 
60  const int crystals,const int diodes,
61  const int cells,const int shift,
62  const bool swapStripReadout,
64  const double radius1,const double halfHeight1,
65  const double radius2,const double halfHeight2,
66  const double step,
67  const double etaCenter,const double phiCenter,
68  int readoutSide = -1);
69 
71  virtual ~SCT_ForwardModuleSideDesign() = default;
72 
74  // Const methods:
76  double sinStripAngleReco(double phiCoord, double etaCoord) const;
77 
81  virtual void distanceToDetectorEdge(const SiLocalPosition & localPosition,
82  double & etaDist, double & phiDist) const;
83 
85  virtual bool nearBondGap(const SiLocalPosition & localPosition, double etaTol) const;
86 
88  virtual bool inActiveArea(const SiLocalPosition &chargePos, bool checkBondGap = true) const;
89 
93  virtual double scaledDistanceToNearestDiode(const SiLocalPosition &chargePos) const;
94 
96  virtual double stripPitch(const SiLocalPosition & chargePos) const;
97 
99  virtual double stripPitch() const;
100 
102  virtual SiDiodesParameters parameters(const SiCellId & cellId) const;
103  virtual SiLocalPosition localPositionOfCell(const SiCellId & cellId) const;
104  virtual SiLocalPosition localPositionOfCluster(const SiCellId & cellId, int clusterSize) const;
105 
107  virtual SiCellId cellIdOfPosition(const SiLocalPosition & localPos) const;
108 
110  virtual std::pair<SiLocalPosition,SiLocalPosition> endsOfStrip(const SiLocalPosition &position) const;
111 
113  virtual HepGeom::Vector3D<double> phiMeasureSegment(const SiLocalPosition &position) const;
114 
116  double radius() const;
117 
119  virtual double length() const;
120 
122  virtual double width() const;
123 
125  virtual double minWidth() const;
126 
128  virtual double maxWidth() const;
129 
131  virtual double deadAreaLength() const;
132 
134  virtual double deadAreaUpperBoundary() const;
135 
137  virtual double deadAreaLowerBoundary() const;
138 
140  virtual double phiPitch() const;
141 
143  virtual double phiPitch(const SiLocalPosition & localPosition) const;
144 
146  virtual double etaPitch() const;
147 
149  double angularPitch() const;
150 
152  virtual DetectorShape shape() const;
153 
155  virtual const Trk::SurfaceBounds & bounds() const;
156 
157  private:
158 
161 
164 
167 
169  // Private data:
171 
172  private:
176  };
177 
178 
180  // Inline methods:
182 
183 
185  {
186  return m_geometry.radius();
187  }
188 
189  // Same as stripPitch
190  inline double SCT_ForwardModuleSideDesign::phiPitch(const SiLocalPosition & localPosition) const
191  {
192  return stripPitch(localPosition);
193  }
194 
195  // Same as stripPitch
197  {
198  return stripPitch();
199  }
200 
201  // Same as active length
203  {
204  return length();
205  }
206 
207  // Same as active length
209  {
210  return m_geometry.angularPitch();
211  }
212 
213 } // namespace InDetDD
214 
215 #endif // INDETREADOUTGEOMETRY_SCT_FORWARDMODULESIDEDESIGN_H
TrapezoidBounds.h
InDetDD::SCT_ForwardModuleSideDesign::angularPitch
double angularPitch() const
Angular pitch.
Definition: SCT_ForwardModuleSideDesign.h:208
InDetDD::SCT_ForwardModuleSideDesign
Definition: SCT_ForwardModuleSideDesign.h:39
InDetDD::SCT_ForwardModuleSideDesign::length
virtual double length() const
Method to calculate length of a module.
Definition: SCT_ForwardModuleSideDesign.cxx:155
InDetDD::DetectorDesign::thickness
double thickness() const
Method which returns thickness of the silicon wafer.
Definition: DetectorDesign.h:271
InDetDD::SCT_ForwardModuleSideDesign::nearBondGap
virtual bool nearBondGap(const SiLocalPosition &localPosition, double etaTol) const
Test if near bond gap within tolerances.
Definition: SCT_ForwardModuleSideDesign.cxx:75
SCT_ModuleSideDesign.h
InDetDD::SCT_ModuleSideDesign
Definition: SCT_ModuleSideDesign.h:40
Trk::SurfaceBounds
Definition: SurfaceBounds.h:47
InDetDD::SCT_ForwardModuleSideDesign::minWidth
virtual double minWidth() const
Method to calculate minimum width of a module.
Definition: SCT_ForwardModuleSideDesign.cxx:165
InDetDD::SCT_ForwardModuleSideDesign::m_bounds
Trk::TrapezoidBounds m_bounds
Definition: SCT_ForwardModuleSideDesign.h:175
InDetDD::DetectorDesign::readoutSide
int readoutSide() const
ReadoutSide.
Definition: DetectorDesign.h:291
SCT_ForwardModuleSideGeometry.h
InDetDD::SCT_ForwardModuleSideDesign::radius
double radius() const
Nominal center radius of double wafer.
Definition: SCT_ForwardModuleSideDesign.h:184
InDetDD::DetectorDesign::carrierType
InDetDD::CarrierType carrierType() const
Return carrier type (ie electrons or holes)
Definition: DetectorDesign.h:275
InDetDD::SCT_ForwardModuleSideDesign::parameters
virtual SiDiodesParameters parameters(const SiCellId &cellId) const
readout or diode id -> position, size
Definition: SCT_ForwardModuleSideDesign.cxx:235
InDetDD::SCT_ForwardModuleSideDesign::shape
virtual DetectorShape shape() const
Shape of element.
Definition: SCT_ForwardModuleSideDesign.cxx:279
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_ModuleSideDesign::cells
int cells() const
number of readout stips within module side:
Definition: SCT_ModuleSideDesign.h:228
InDetDD::SCT_ForwardModuleSideDesign::etaPitch
virtual double etaPitch() const
Pitch in eta direction.
Definition: SCT_ForwardModuleSideDesign.h:202
InDetDD::SCT_ForwardModuleSideDesign::maxWidth
virtual double maxWidth() const
Method to calculate maximum width of a module.
Definition: SCT_ForwardModuleSideDesign.cxx:170
InDetDD::SCT_ForwardModuleSideDesign::deadAreaLength
virtual double deadAreaLength() const
give length of dead area
Definition: SCT_ForwardModuleSideDesign.cxx:175
InDetDD::SCT_ForwardModuleSideDesign::deadAreaUpperBoundary
virtual double deadAreaUpperBoundary() const
give upper boundary of dead area
Definition: SCT_ForwardModuleSideDesign.cxx:180
InDetDD::SiLocalPosition
Definition: SiLocalPosition.h:31
InDetDD::SCT_ForwardModuleSideDesign::endsOfStrip
virtual std::pair< SiLocalPosition, SiLocalPosition > endsOfStrip(const SiLocalPosition &position) const
this method returns the ends of the strip
Definition: SCT_ForwardModuleSideDesign.cxx:120
InDetDD::SCT_ForwardModuleSideGeometry::angularPitch
double angularPitch() const
Definition: SCT_ForwardModuleSideGeometry.h:196
InDetDD::SCT_ForwardFrameTransformation
Definition: SCT_ForwardFrameTransformation.h:27
InDetDD::SCT_ForwardModuleSideDesign::localPositionOfCluster
virtual SiLocalPosition localPositionOfCluster(const SiCellId &cellId, int clusterSize) const
Definition: SCT_ForwardModuleSideDesign.cxx:212
InDetDD::SCT_ForwardModuleSideDesign::SCT_ForwardModuleSideDesign
SCT_ForwardModuleSideDesign()
Forbidden default constructor.
InDetDD::SCT_ForwardModuleSideDesign::scaledDistanceToNearestDiode
virtual double scaledDistanceToNearestDiode(const SiLocalPosition &chargePos) const
give distance to the nearest diode in units of pitch, from 0.0 to 0.5, this method should be fast as ...
Definition: SCT_ForwardModuleSideDesign.cxx:91
InDetDD::SCT_ForwardModuleSideDesign::operator=
SCT_ForwardModuleSideDesign & operator=(const SCT_ForwardModuleSideDesign &design)
Assignment operator:
InDetDD::SCT_ForwardModuleSideDesign::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_ForwardModuleSideDesign.cxx:66
InDetDD::SCT_ForwardModuleSideDesign::inActiveArea
virtual bool inActiveArea(const SiLocalPosition &chargePos, bool checkBondGap=true) const
check if the position is in active area
Definition: SCT_ForwardModuleSideDesign.cxx:81
InDetDD::SCT_ForwardModuleSideDesign::stripPitch
virtual double stripPitch() const
give the strip pitch (For Forward returns pitch at center)
Definition: SCT_ForwardModuleSideDesign.cxx:108
InDetDD::SCT_ModuleSideDesign::diodes
int diodes() const
number of strips within crystal:
Definition: SCT_ModuleSideDesign.h:220
InDetDD::SCT_ForwardModuleSideDesign::cellIdOfPosition
virtual SiCellId cellIdOfPosition(const SiLocalPosition &localPos) const
position -> id
Definition: SCT_ForwardModuleSideDesign.cxx:258
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
InDetDD::SCT_ForwardModuleSideDesign::SCT_ForwardModuleSideDesign
SCT_ForwardModuleSideDesign(const SCT_ForwardModuleSideDesign &design)
Copy constructor:
InDetDD::SCT_ForwardModuleSideDesign::phiMeasureSegment
virtual HepGeom::Vector3D< double > phiMeasureSegment(const SiLocalPosition &position) const
method for stereo angle computation - returns a vector parallel to the strip being hit
Definition: SCT_ForwardModuleSideDesign.cxx:143
InDetDD::SCT_ForwardModuleSideDesign::localPositionOfCell
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const
id -> position
Definition: SCT_ForwardModuleSideDesign.cxx:192
InDetDD::SCT_ForwardModuleSideDesign::m_frame
SCT_ForwardFrameTransformation m_frame
polar / cartesian frame transformation
Definition: SCT_ForwardModuleSideDesign.h:174
InDetDD::SCT_ForwardModuleSideDesign::bounds
virtual const Trk::SurfaceBounds & bounds() const
Element boundary.
Definition: SCT_ForwardModuleSideDesign.cxx:285
InDetDD::SCT_ForwardModuleSideDesign::phiPitch
virtual double phiPitch() const
Pitch in phi direction.
Definition: SCT_ForwardModuleSideDesign.h:196
InDetDD::DetectorShape
DetectorShape
Definition: DetectorDesign.h:41
InDetDD::SCT_ForwardModuleSideGeometry
Definition: SCT_ForwardModuleSideGeometry.h:29
Trk::TrapezoidBounds
Definition: TrapezoidBounds.h:43
InDetDD::SiCellId
Definition: SiCellId.h:29
InDetDD::SCT_ForwardModuleSideDesign::sinStripAngleReco
double sinStripAngleReco(double phiCoord, double etaCoord) const
Give strip angle in the reco frame.
Definition: SCT_ForwardModuleSideDesign.cxx:53
InDetDD::SCT_ForwardModuleSideGeometry::radius
double radius() const
Nominal center radius of double wafer.
Definition: SCT_ForwardModuleSideGeometry.h:166
InDetDD::SCT_ForwardModuleSideDesign::m_geometry
SCT_ForwardModuleSideGeometry m_geometry
geometry of module side
Definition: SCT_ForwardModuleSideDesign.h:173
InDetDD::CarrierType
CarrierType
Definition: InDetDD_Defs.h:17
InDetDD::SCT_ForwardModuleSideDesign::~SCT_ForwardModuleSideDesign
virtual ~SCT_ForwardModuleSideDesign()=default
Destructor:
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
SCT_ForwardFrameTransformation.h
LArCellBinning.step
step
Definition: LArCellBinning.py:158
InDetDD::SCT_ForwardModuleSideDesign::deadAreaLowerBoundary
virtual double deadAreaLowerBoundary() const
give lower boundary of dead area
Definition: SCT_ForwardModuleSideDesign.cxx:185
InDetDD::SCT_ForwardModuleSideDesign::width
virtual double width() const
Method to calculate average width of a module.
Definition: SCT_ForwardModuleSideDesign.cxx:160
InDetDD::SiDiodesParameters
Definition: SiDiodesParameters.h:25