ATLAS Offline Software
SiDetectorDesign.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // SiDetectorDesign.h
8 
9 #ifndef INDETREADOUTGEOMETRY_SIDETECTORDESIGN_H
10 #define INDETREADOUTGEOMETRY_SIDETECTORDESIGN_H
11 
12 //Base class
14 // Input/output classes
17 #include "CLHEP/Geometry/Point3D.h"
18 #include "CLHEP/Geometry/Vector3D.h"
21 
22 #include <list>
23 #include <vector>
24 
25 
26 class Identifier;
27 
28 namespace Trk {
29 class SurfaceBounds;
30 }
31 
32 namespace InDetDD {
33 class SiReadoutCellId;
34 class SiCellId;
35 class SiDiode;
36 class SiReadoutCell;
37 class SiLocalPosition;
38 class SiIntersect;
39 
51 
53  // Public methods:
55 public:
67  bool phiSymmetric,
68  bool etaSymmetric,
69  bool depthSymmetric,
71  int readoutSide);
72 
74  bool phiSymmetric,
75  bool etaSymmetric,
76  bool depthSymmetric,
78  int readoutSide,
79  SiDetectorDesign::Axis stripDirection,
80  SiDetectorDesign::Axis depthDirection);
81 
82 
84  virtual ~SiDetectorDesign();
85 
87  // Const methods:
89 
90  virtual double sinStripAngleReco(double phiCoord, double etaCoord) const;
91 
93  virtual bool nearBondGap(const SiLocalPosition &localPosition,
94  double etaTol) const = 0;
95 
97  virtual int strip1Dim(int strip, int row) const;
98 
99 
101  // Pure virtual methods:
103 
104  virtual HepGeom::Vector3D<double> phiMeasureSegment(const SiLocalPosition &position)
105  const = 0;
106 
108  virtual std::pair<SiLocalPosition, SiLocalPosition> endsOfStrip(
109  const SiLocalPosition &position) const = 0;
110 
113  virtual SiCellId gangedCell(const SiCellId &cellId) const = 0;
114 
115 
117  // Private methods:
119 private:
121 
122  // Disallow Copy and assignment;
125 
126 };
127 
129 // Inline methods:
131 
132  inline double SiDetectorDesign::sinStripAngleReco(double /* x */, double /* y */) const {
133  return 0.0; // pixel and barrel strip sensors always zero
134  }
135 
136  inline int SiDetectorDesign::strip1Dim(int, int) const{
137  return -1.0;
138  }
139 
140 } // namespace InDetDD
141 #endif // INDETREADOUTGEOMETRY_SIDETECTORDESIGN_H
InDetDD::SiDetectorDesign::operator=
SiDetectorDesign & operator=(const SiDetectorDesign &design)
query_example.row
row
Definition: query_example.py:24
InDetDD::DetectorDesign::depthSymmetric
bool depthSymmetric() const
Definition: DetectorDesign.h:287
InDetDD::DetectorDesign::thickness
double thickness() const
Method which returns thickness of the silicon wafer.
Definition: DetectorDesign.h:271
InDetDD::DetectorDesign::etaSymmetric
bool etaSymmetric() const
Definition: DetectorDesign.h:283
InDetDD::SiDetectorDesign::phiMeasureSegment
virtual HepGeom::Vector3D< double > phiMeasureSegment(const SiLocalPosition &position) const =0
Helper method for stereo angle computation, DEPRECATED.
InDetDD::DetectorDesign::readoutSide
int readoutSide() const
ReadoutSide.
Definition: DetectorDesign.h:291
InDetDD::DetectorDesign::carrierType
InDetDD::CarrierType carrierType() const
Return carrier type (ie electrons or holes)
Definition: DetectorDesign.h:275
InDetDD::DetectorDesign::Axis
Axis
Definition: DetectorDesign.h:59
InDetDD::SiDetectorDesign::SiDetectorDesign
SiDetectorDesign()
InDetDD::SiDetectorDesign::sinStripAngleReco
virtual double sinStripAngleReco(double phiCoord, double etaCoord) const
Give strip angle in the reco frame.
Definition: SiDetectorDesign.h:132
InDetDD::SiLocalPosition
Definition: SiLocalPosition.h:31
GeoPrimitives.h
AtlasDetectorID.h
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
InDetDD_Defs.h
InDetDD::SiDetectorDesign::nearBondGap
virtual bool nearBondGap(const SiLocalPosition &localPosition, double etaTol) const =0
Test if near bond gap within tolerances, only relevant for SCT.
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
InDetDD::SiDetectorDesign::endsOfStrip
virtual std::pair< SiLocalPosition, SiLocalPosition > endsOfStrip(const SiLocalPosition &position) const =0
Special method for SCT to retrieve the two ends of a "strip".
InDetDD::DetectorDesign
Definition: DetectorDesign.h:57
InDetDD::SiDetectorDesign::gangedCell
virtual SiCellId gangedCell(const SiCellId &cellId) const =0
If cell is ganged return the id of the other cell which shares the readout for this cell,...
DetectorDesign.h
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
InDetDD::SiDetectorDesign::strip1Dim
virtual int strip1Dim(int strip, int row) const
only relevant for SCT.
Definition: SiDetectorDesign.h:136
InDetDD::SiCellId
Definition: SiCellId.h:29
SiDiodesParameters.h
InDetDD::SiDetectorDesign::SiDetectorDesign
SiDetectorDesign(const SiDetectorDesign &design)
InDetDD::CarrierType
CarrierType
Definition: InDetDD_Defs.h:17
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
InDetDD::DetectorDesign::phiSymmetric
bool phiSymmetric() const
Definition: DetectorDesign.h:279
InDetDD::SiDetectorDesign
Definition: SiDetectorDesign.h:50
InDetDD::SiDetectorDesign::~SiDetectorDesign
virtual ~SiDetectorDesign()
Destructor: