File indexing completed on 2024-04-06 12:14:39
0001 #ifndef Geometry_GEMGeometry_ME0EtaPartition_H
0002 #define Geometry_GEMGeometry_ME0EtaPartition_H
0003
0004 #include "Geometry/CommonDetUnit/interface/GeomDet.h"
0005 #include "Geometry/CommonDetUnit/interface/GeomDetType.h"
0006 #include "DataFormats/MuonDetId/interface/ME0DetId.h"
0007 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0008
0009 class StripTopology;
0010 class ME0EtaPartitionSpecs;
0011
0012 class ME0EtaPartition : public GeomDet {
0013 public:
0014 ME0EtaPartition(ME0DetId id, const BoundPlane::BoundPlanePointer& bp, ME0EtaPartitionSpecs* rrs);
0015 ~ME0EtaPartition() override;
0016
0017 const ME0EtaPartitionSpecs* specs() const { return specs_; }
0018 ME0DetId 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
0032
0033
0034 int nstrips() const;
0035
0036
0037
0038 LocalPoint centreOfStrip(int strip) const;
0039
0040
0041
0042 LocalPoint centreOfStrip(float strip) const;
0043 LocalError localError(float strip, float cluster_size = 1.) const;
0044
0045
0046
0047
0048 float strip(const LocalPoint& lp) const;
0049
0050 float pitch() const;
0051 float localPitch(const LocalPoint& lp) const;
0052
0053
0054
0055
0056 int npads() const;
0057
0058
0059
0060 LocalPoint centreOfPad(int pad) const;
0061
0062
0063
0064 LocalPoint centreOfPad(float pad) const;
0065
0066
0067 float pad(const LocalPoint& lp) const;
0068
0069
0070 float padPitch() const;
0071
0072 float localPadPitch(const LocalPoint& lp) const;
0073
0074
0075
0076
0077 float padOfStrip(int strip) const;
0078
0079
0080 int firstStripInPad(int pad) const;
0081
0082
0083 int lastStripInPad(int pad) const;
0084
0085 private:
0086 ME0DetId id_;
0087 ME0EtaPartitionSpecs* specs_;
0088 };
0089
0090 #endif