File indexing completed on 2024-04-06 12:14:22
0001 #ifndef Geometry_CommonTopologies_RectangularStripTopology_H
0002 #define Geometry_CommonTopologies_RectangularStripTopology_H
0003
0004
0005
0006
0007
0008
0009 #include "Geometry/CommonTopologies/interface/StripTopology.h"
0010
0011 class RectangularStripTopology final : public StripTopology {
0012 public:
0013 RectangularStripTopology(int nstrips, float pitch, float detlength);
0014
0015 using StripTopology::localPosition;
0016 LocalPoint localPosition(float strip) const override;
0017
0018 LocalPoint localPosition(const MeasurementPoint&) const override;
0019
0020 using StripTopology::localError;
0021 LocalError localError(float strip, float stripErr2) const override;
0022
0023 LocalError localError(const MeasurementPoint&, const MeasurementError&) const override;
0024
0025 float strip(const LocalPoint&) const override;
0026
0027
0028 float coveredStrips(const LocalPoint& lp1, const LocalPoint& lp2) const override;
0029
0030 MeasurementPoint measurementPosition(const LocalPoint&) const override;
0031
0032 MeasurementError measurementError(const LocalPoint&, const LocalError&) const override;
0033
0034 int channel(const LocalPoint& lp) const override { return std::min(int(strip(lp)), theNumberOfStrips - 1); }
0035
0036 float pitch() const override { return thePitch; }
0037
0038 float localPitch(const LocalPoint&) const override { return thePitch; }
0039
0040 float stripAngle(float strip) const override { return 0; }
0041
0042 int nstrips() const override { return theNumberOfStrips; }
0043
0044 float stripLength() const override { return theStripLength; }
0045
0046 float localStripLength(const LocalPoint& ) const override { return stripLength(); }
0047
0048 private:
0049 float thePitch;
0050 int theNumberOfStrips;
0051 float theStripLength;
0052 float theOffset;
0053 };
0054
0055 #endif