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  virtual unsigned int numberOfTransformParms() const { return 3 ; }
39 
40  virtual unsigned int numberOfShapes() const { return k_NumberOfShapes ; }
41  virtual unsigned int numberOfParametersPerShape() const { return k_NumberOfParametersPerShape ; }
42 
43  CastorGeometry() ;
44 
45  explicit CastorGeometry(const CastorTopology * topology);
46  virtual ~CastorGeometry();
47 
48  virtual DetId getClosestCell(const GlobalPoint& r) const ;
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  virtual void newCell( const GlobalPoint& f1 ,
64  const GlobalPoint& f2 ,
65  const GlobalPoint& f3 ,
66  const CCGFloat* parm,
67  const DetId& detId ) ;
68 
69  protected:
70 
71  virtual const CaloCellGeometry* cellGeomPtr( uint32_t index ) const ;
72 
73 
74 private:
75 
78  mutable int lastReqSubdet_;
80 
81  CellVec m_cellVec ;
82 };
83 
84 
85 #endif
virtual unsigned int numberOfParametersPerShape() const
CaloTopology const * topology(0)
virtual ~CastorGeometry()
static unsigned int alignmentTransformIndexLocal(const DetId &id)
HepGeom::Transform3D Tr3D
DetId::Detector lastReqDet_
std::vector< Pt3D > Pt3DVec
virtual const CaloCellGeometry * cellGeomPtr(uint32_t index) const
static unsigned int numberOfAlignments()
virtual unsigned int numberOfShapes() const
HcalCastorDetId DetIdType
const CastorTopology * theTopology
static std::string dbString()
virtual void newCell(const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, const CCGFloat *parm, const DetId &detId)
CastorGeometryRecord AlignedRecord
def pv(vc)
Definition: MetAnalyzer.py:6
virtual unsigned int numberOfTransformParms() const
PCastorRcd PGeometryRecord
CaloCellGeometry::Pt3DVec Pt3DVec
Definition: DetId.h:18
Detector
Definition: DetId.h:24
CaloCellGeometry::CCGFloat CCGFloat
std::vector< IdealCastorTrapezoid > CellVec
HepGeom::Point3D< CCGFloat > Pt3D
static std::string producerTag()
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
virtual DetId getClosestCell(const GlobalPoint &r) const