CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CastorGeometry.h
Go to the documentation of this file.
1 #ifndef Geometry_ForwardGeometry_CastorGeometry_h
2 #define Geometry_ForwardGeometry_CastorGeometry_h 1
3 
10 
11 #include <vector>
12 
14 {
15  public:
16 
21 
23 
24  enum { k_NumberOfShapes = 4 } ;
25 
27 
28  static std::string dbString() { return "PCastorRcd" ; }
29 
30  virtual unsigned int numberOfTransformParms() const { return 3 ; }
31 
32  virtual unsigned int numberOfShapes() const { return k_NumberOfShapes ; }
33  virtual unsigned int numberOfParametersPerShape() const { return k_NumberOfParametersPerShape ; }
34 
35  CastorGeometry() ;
36 
37  explicit CastorGeometry(const CastorTopology * topology);
38  virtual ~CastorGeometry();
39 
40  virtual const std::vector<DetId>& getValidDetIds(
42  int subdet = 0 ) const ;
43 
44  virtual DetId getClosestCell(const GlobalPoint& r) const ;
45 
46  static std::string producerTag() { return "CASTOR" ; }
47 
48  static unsigned int numberOfAlignments() { return 1 ; }
49 
50  static unsigned int alignmentTransformIndexLocal( const DetId& id ) ;
51 
52  static unsigned int alignmentTransformIndexGlobal( const DetId& id ) ;
53 
54  static std::vector<HepGeom::Point3D<double> > localCorners( const double* pv,
55  unsigned int i,
56  HepGeom::Point3D<double> & ref ) ;
57 
58  static CaloCellGeometry* newCell( const GlobalPoint& f1 ,
59  const GlobalPoint& f2 ,
60  const GlobalPoint& f3 ,
62  const double* parm,
63  const DetId& detId ) ;
64 
65 private:
66 
69  mutable int lastReqSubdet_;
70  mutable std::vector<DetId> m_validIds;
72 };
73 
74 
75 #endif
int i
Definition: DBlmapReader.cc:9
virtual unsigned int numberOfParametersPerShape() const
virtual ~CastorGeometry()
static unsigned int alignmentTransformIndexLocal(const DetId &id)
DetId::Detector lastReqDet_
static unsigned int numberOfAlignments()
virtual unsigned int numberOfShapes() const
HcalCastorDetId DetIdType
const CastorTopology * theTopology
static std::string dbString()
CastorGeometryRecord AlignedRecord
virtual unsigned int numberOfTransformParms() const
static std::vector< HepGeom::Point3D< double > > localCorners(const double *pv, unsigned int i, HepGeom::Point3D< double > &ref)
PCastorRcd PGeometryRecord
Definition: DetId.h:20
Detector
Definition: DetId.h:26
static std::string producerTag()
Definition: EZMgrFL.h:8
static CaloCellGeometry * newCell(const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, CaloCellGeometry::CornersMgr *mgr, const double *parm, const DetId &detId)
static unsigned int alignmentTransformIndexGlobal(const DetId &id)
virtual const std::vector< DetId > & getValidDetIds(DetId::Detector det=DetId::Detector(0), int subdet=0) const
Get a list of valid detector ids (for the given subdetector)
CastorAlignmentRcd AlignmentRecord
std::vector< DetId > m_validIds
virtual DetId getClosestCell(const GlobalPoint &r) const