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 
17  typedef std::vector<IdealCastorTrapezoid> CellVec ;
18 
23 
28 
30 
31  enum { k_NumberOfShapes = 4 } ;
32 
34 
35  static std::string dbString() { return "PCastorRcd" ; }
36 
37  unsigned int numberOfTransformParms() const override { return 3 ; }
38 
39  unsigned int numberOfShapes() const override { return k_NumberOfShapes ; }
40  unsigned int numberOfParametersPerShape() const override { return k_NumberOfParametersPerShape ; }
41 
42  CastorGeometry() ;
43 
44  explicit CastorGeometry(const CastorTopology * topology);
45  ~CastorGeometry() override;
46 
47  DetId getClosestCell(const GlobalPoint& r) const override ;
48 
49  static std::string producerTag() { return "CASTOR" ; }
50 
51  static unsigned int numberOfAlignments() { return 1 ; }
52 
53  static unsigned int alignmentTransformIndexLocal( const DetId& id ) ;
54 
55  static unsigned int alignmentTransformIndexGlobal( const DetId& id ) ;
56 
57  static void localCorners( Pt3DVec& lc ,
58  const CCGFloat* pv ,
59  unsigned int i ,
60  Pt3D& ref ) ;
61 
62  void newCell( const GlobalPoint& f1 ,
63  const GlobalPoint& f2 ,
64  const GlobalPoint& f3 ,
65  const CCGFloat* parm,
66  const DetId& detId ) override ;
67 protected:
68 
69  // Modify the RawPtr class
70  const CaloCellGeometry* getGeometryRawPtr (uint32_t index) const override;
71 
72 private:
73 
76  mutable int lastReqSubdet_;
78 
79  CellVec m_cellVec ;
80 };
81 
82 
83 #endif
CaloTopology const * topology(0)
DetId getClosestCell(const GlobalPoint &r) 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
unsigned int numberOfParametersPerShape() const override
def pv(vc)
Definition: MetAnalyzer.py:6
~CastorGeometry() override
PCastorRcd PGeometryRecord
CaloCellGeometry::Pt3DVec Pt3DVec
unsigned int numberOfShapes() const override
Definition: DetId.h:18
const CaloCellGeometry * getGeometryRawPtr(uint32_t index) const override
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
std::vector< IdealCastorTrapezoid > CellVec
HepGeom::Point3D< CCGFloat > Pt3D
static std::string producerTag()
unsigned int numberOfTransformParms() const override
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)
CastorAlignmentRcd AlignmentRecord