File indexing completed on 2024-04-06 12:14:39
0001 #ifndef Geometry_GEMGeometry_GEMEtaPartition_H
0002 #define Geometry_GEMGeometry_GEMEtaPartition_H
0003
0004 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0005 #include "Geometry/CommonDetUnit/interface/GeomDetType.h"
0006 #include "DataFormats/MuonDetId/interface/GEMDetId.h"
0007 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0008
0009 class StripTopology;
0010 class GEMEtaPartitionSpecs;
0011
0012 class GEMEtaPartition : public GeomDet {
0013 public:
0014 GEMEtaPartition(GEMDetId id, const BoundPlane::BoundPlanePointer& bp, GEMEtaPartitionSpecs* rrs);
0015 ~GEMEtaPartition() override;
0016
0017 const GEMEtaPartitionSpecs* specs() const { return specs_; }
0018 GEMDetId id() const { return id_; }
0019
0020 const Topology& topology() const override;
0021 const StripTopology& specificTopology() const;
0022
0023 const Topology& padTopology() const;
0024 const StripTopology& specificPadTopology() const;
0025
0026 const GeomDetType& type() const override;
0027
0028
0029
0030
0031 int nstrips() const;
0032
0033
0034
0035 LocalPoint centreOfStrip(int strip) const;
0036
0037
0038
0039 LocalPoint centreOfStrip(float strip) const;
0040 LocalError localError(float strip, float cluster_size = 1.) const;
0041
0042
0043
0044 float strip(const LocalPoint& lp) const;
0045
0046 float pitch() const;
0047 float localPitch(const LocalPoint& lp) const;
0048
0049
0050
0051
0052 int npads() const;
0053
0054
0055
0056 LocalPoint centreOfPad(int pad) const;
0057
0058
0059
0060 LocalPoint centreOfPad(float pad) const;
0061
0062
0063 float pad(const LocalPoint& lp) const;
0064
0065
0066 float padPitch() const;
0067
0068 float localPadPitch(const LocalPoint& lp) const;
0069
0070
0071
0072
0073 float padOfStrip(int strip) const;
0074
0075
0076 int firstStripInPad(int pad) const;
0077
0078
0079 int lastStripInPad(int pad) const;
0080
0081
0082 GEMSubDetId::Station subsystem() const;
0083 bool isME0() const;
0084 bool isGE11() const;
0085 bool isGE21() const;
0086
0087 private:
0088 GEMDetId id_;
0089 GEMEtaPartitionSpecs* specs_;
0090 };
0091
0092 #endif