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 {
16  public:
17 
18  typedef std::vector<IdealCastorTrapezoid> CellVec ;
19 
24 
29 
31 
32  enum { k_NumberOfShapes = 4 } ;
33 
35 
36  static std::string dbString() { return "PCastorRcd" ; }
37 
38  unsigned int numberOfTransformParms() const override { return 3 ; }
39 
40  unsigned int numberOfShapes() const override { return k_NumberOfShapes ; }
41  unsigned int numberOfParametersPerShape() const override { return k_NumberOfParametersPerShape ; }
42 
43  CastorGeometry() ;
44 
45  explicit CastorGeometry(const CastorTopology * topology);
46  ~CastorGeometry() override;
47 
48  DetId getClosestCell(const GlobalPoint& r) const override ;
49 
50  static std::string producerTag() { return "CASTOR" ; }
51 
52  static unsigned int numberOfAlignments() { return 1 ; }
53 
54  static unsigned int alignmentTransformIndexLocal( const DetId& id ) ;
55 
56  static unsigned int alignmentTransformIndexGlobal( const DetId& id ) ;
57 
58  static void localCorners( Pt3DVec& lc ,
59  const CCGFloat* pv ,
60  unsigned int i ,
61  Pt3D& ref ) ;
62 
63  void newCell( const GlobalPoint& f1 ,
64  const GlobalPoint& f2 ,
65  const GlobalPoint& f3 ,
66  const CCGFloat* parm,
67  const DetId& detId ) override ;
68 
69  protected:
70 
71  const CaloCellGeometry* cellGeomPtr( uint32_t index ) const override ;
72 
73 
74 private:
75 
78  mutable int lastReqSubdet_;
80 
81  CellVec m_cellVec ;
82 };
83 
84 
85 #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
const CaloCellGeometry * cellGeomPtr(uint32_t index) const override
PCastorRcd PGeometryRecord
CaloCellGeometry::Pt3DVec Pt3DVec
unsigned int numberOfShapes() const override
Definition: DetId.h:18
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