5#ifndef INDETREADOUTGEOMETRY_STRIPBOXDESIGN_H
6#define INDETREADOUTGEOMETRY_STRIPBOXDESIGN_H
15#include "GeoModelKernel/GeoDefinitions.h"
19#include "CLHEP/Geometry/Vector3D.h"
45 const double zShift=0.0);
66 double &phiDist)
const override;
75 virtual std::pair<SiLocalPosition, SiLocalPosition>
endsOfStrip(
84 virtual double phiPitch()
const override;
104 virtual int row(
int stripId1Dim)
const override;
105 virtual int strip(
int stripId1Dim)
const override;
109 std::vector<SiCellId> &neighbours)
const override;
double thickness() const
Method which returns thickness of the silicon wafer.
int readoutSide() const
ReadoutSide.
SCT_ModuleSideDesign(const double thickness, const bool phiSymmetric, const bool etaSymmetric, const bool depthSymmetric, const int crystals, const int diodes, const int cells, const int shift, const bool swapStripReadout, InDetDD::CarrierType carrierType, int readoutSide)
Constructor with parameters: local axis corresponding to eta direction local axis corresponding to ph...
InDetDD::DetectorType m_detectorType
Identifier for the strip or pixel cell.
int phiIndex() const
Get phi index. Equivalent to strip().
int etaIndex() const
Get eta index.
Class to handle the position of the centre and the width of a diode or a cluster of diodes Version 1....
Class to represent a position in the natural frame of a silicon sensor, for Pixel and SCT For Pixel: ...
Identifier for the strip or pixel readout cell.
~StripBoxDesign()=default
virtual bool swapHitEtaReadoutDirection() const override
Trk::RectangleBounds m_bounds
virtual double minWidth() const override
Method to calculate minimum width of a module.
virtual double maxWidth() const override
Method to calculate maximum width of a module.
virtual void distanceToDetectorEdge(const SiLocalPosition &localPosition, double &etaDist, double &phiDist) const override
DEPRECATED: Unused (2014)
double stripLength(const SiCellId &cellId) const
virtual const Amg::Transform3D moduleShift() const override final
virtual SiCellId cellIdOfPosition(const SiLocalPosition &localPos) const override
position -> id
StripBoxDesign(const StripBoxDesign &design)
virtual bool inActiveArea(const SiLocalPosition &chargePos, bool checkBondGap=true) const override
check if the position is in active area
std::pair< int, int > getStripRow(SiCellId id) const final
Get the strip and row number of the cell.
virtual int strip(int stripId1Dim) const override
virtual int row(int stripId1Dim) const override
virtual std::pair< SiLocalPosition, SiLocalPosition > endsOfStrip(const SiLocalPosition &position) const override
Give end points of the strip that covers the given position.
virtual double scaledDistanceToNearestDiode(const SiLocalPosition &chargePos) const override
give distance to the nearest diode in units of pitch, from 0.0 to 0.5, this method should be fast as ...
virtual void neighboursOfCell(const SiCellId &cellId, std::vector< SiCellId > &neighbours) const override
Get the neighbouring diodes of a given diode: Cell for which the neighbours must be found List of cel...
virtual double deadAreaLowerBoundary() const override
give lower boundary of dead area
virtual SiCellId cellIdInRange(const SiCellId &) const override
DEPRECATED: only used in a stupid example (2014) Check if cell is in range.
StripBoxDesign & operator=(const StripBoxDesign &design)
virtual InDetDD::DetectorType type() const override final
Type of element.
SiLocalPosition positionFromStrip(const SiCellId &cellId) const
virtual bool nearBondGap(const SiLocalPosition &, double) const override
Test if near bond gap within tolerances, only relevant for SCT.
virtual double stripPitch() const override
give the strip pitch (For Forward returns pitch at center)
virtual double deadAreaLength() const override
give length of dead area
virtual double length() const override
Method to calculate length of a module.
virtual double etaPitch() const override
virtual SiReadoutCellId readoutIdOfCell(const SiCellId &cellId) const override
diode id -> readout id
virtual int diodesInRow(const int row) const override
double pitch(const SiCellId &cellId) const
virtual bool swapHitPhiReadoutDirection() const override
Return true if hit local direction is the same as readout direction.
virtual double phiPitch() const override
Pitch in phi direction.
virtual HepGeom::Vector3D< double > phiMeasureSegment(const SiLocalPosition &position) const override
Helper method for stereo angle computation, DEPRECATED.
virtual double deadAreaUpperBoundary() const override
DEPRECATED for StripBoxDesign; no dead area.
virtual const Trk::SurfaceBounds & bounds() const override
Element boundary.
virtual double width() const override
Method to calculate average width of a module.
virtual SiLocalPosition localPositionOfCluster(const SiCellId &cellId, int clusterSize) const override
virtual int strip1Dim(int strip, int row) const override
only relevant for SCT.
virtual SiLocalPosition localPositionOfCell(const SiCellId &cellId) const override
id -> position
virtual SiDiodesParameters parameters(const SiCellId &cellId) const override
Return strip width, centre, length etc. Hard to find if this is used or not.
Abstract base class for surface bounds to be specified.
Eigen::Affine3d Transform3D
Ensure that the ATLAS eigen extensions are properly loaded.