CMS 3D CMS Logo

CastorGeometry.h
Go to the documentation of this file.
1 #ifndef Geometry_ForwardGeometry_CastorGeometry_h
2 #define Geometry_ForwardGeometry_CastorGeometry_h 1
3 
11 
12 #include <vector>
13 
15 public:
16  typedef std::vector<IdealCastorTrapezoid> CellVec;
17 
22 
27 
29 
30  static constexpr int k_NumberOfShapes = 4;
31 
33 
34  static std::string dbString() { return "PCastorRcd"; }
35 
36  unsigned int numberOfTransformParms() const override { return 3; }
37 
38  unsigned int numberOfShapes() const override { return k_NumberOfShapes; }
39  unsigned int numberOfParametersPerShape() const override { return k_NumberOfParametersPerShape; }
40 
42 
43  explicit CastorGeometry(const CastorTopology* topology);
44  ~CastorGeometry() override;
45 
46  DetId getClosestCell(const GlobalPoint& r) const override;
47 
48  static std::string producerTag() { return "CASTOR"; }
49 
50  static unsigned int numberOfAlignments() { return 1; }
51 
52  static unsigned int alignmentTransformIndexLocal(const DetId& id);
53 
54  static unsigned int alignmentTransformIndexGlobal(const DetId& id);
55 
56  static void localCorners(Pt3DVec& lc, const CCGFloat* pv, unsigned int i, Pt3D& ref);
57 
58  void newCell(const GlobalPoint& f1,
59  const GlobalPoint& f2,
60  const GlobalPoint& f3,
61  const CCGFloat* parm,
62  const DetId& detId) override;
63 
64 protected:
65  // Modify the RawPtr class
66  const CaloCellGeometry* getGeometryRawPtr(uint32_t index) const override;
67 
68 private:
71  mutable int lastReqSubdet_;
73 
75 };
76 
77 #endif
DetId getClosestCell(const GlobalPoint &r) const override
static constexpr int k_NumberOfParametersPerShape
unsigned int numberOfShapes() const override
static unsigned int alignmentTransformIndexLocal(const DetId &id)
HepGeom::Transform3D Tr3D
DetId::Detector lastReqDet_
std::vector< Pt3D > Pt3DVec
static unsigned int numberOfAlignments()
HcalCastorDetId DetIdType
const CastorTopology * theTopology
static std::string dbString()
CastorGeometryRecord AlignedRecord
CaloCellGeometry::CCGFloat CCGFloat
~CastorGeometry() override
CaloCellGeometry::Pt3D Pt3D
PCastorRcd PGeometryRecord
CaloCellGeometry::Pt3DVec Pt3DVec
Definition: DetId.h:17
Detector
Definition: DetId.h:24
void newCell(const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, const CCGFloat *parm, const DetId &detId) override
CaloCellGeometry::CCGFloat CCGFloat
CaloCellGeometry::Pt3DVec Pt3DVec
std::vector< IdealCastorTrapezoid > CellVec
HepGeom::Point3D< CCGFloat > Pt3D
static std::string producerTag()
unsigned int numberOfTransformParms() const override
unsigned int numberOfParametersPerShape() const override
static constexpr int kSizeForDenseIndexing
CaloCellGeometry::Tr3D Tr3D
CaloCellGeometry::Pt3D Pt3D
static void localCorners(Pt3DVec &lc, const CCGFloat *pv, unsigned int i, Pt3D &ref)
static unsigned int alignmentTransformIndexGlobal(const DetId &id)
static constexpr int k_NumberOfShapes
static constexpr int k_NumberOfCellsForCorners
CastorAlignmentRcd AlignmentRecord
const CaloCellGeometry * getGeometryRawPtr(uint32_t index) const override