CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
HcalGeometry.h
Go to the documentation of this file.
1 #ifndef HcalGeometry_h
2 #define HcalGeometry_h
3 
11 
13 {
14  public:
15 
16  typedef std::vector<IdealObliquePrism> HBCellVec ;
17  typedef std::vector<IdealObliquePrism> HECellVec ;
18  typedef std::vector<IdealObliquePrism> HOCellVec ;
19  typedef std::vector<IdealZPrism> HFCellVec ;
20 
24 
28  typedef HcalDetId DetIdType ;
29 
31 
32  enum { k_NumberOfShapes = 87 } ;
33 
35 
36  static std::string dbString() { return "PHcalRcd" ; }
37 
38  virtual unsigned int numberOfShapes() const { return k_NumberOfShapes ; }
39  virtual unsigned int numberOfParametersPerShape() const { return k_NumberOfParametersPerShape ; }
40 
41 
42  HcalGeometry();
43 
44  HcalGeometry(const HcalTopology * topology);
45 
47  virtual ~HcalGeometry();
48 
49  virtual const std::vector<DetId>& getValidDetIds(
50  DetId::Detector det = DetId::Detector ( 0 ),
51  int subdet = 0 ) const;
52 
53  virtual DetId getClosestCell(const GlobalPoint& r) const ;
54 
56  double dR ) const ;
57 
58 
59  static std::string producerTag() { return "HCAL" ; }
60 
61  static unsigned int numberOfBarrelAlignments() { return 36 ; }
62 
63  static unsigned int numberOfEndcapAlignments() { return 36 ; }
64 
65  static unsigned int numberOfOuterAlignments() { return 36 ; }
66 
67  static unsigned int numberOfForwardAlignments() { return 60 ; }
68 
69  static unsigned int numberOfAlignments()
70  { return ( numberOfBarrelAlignments() +
74 
75  static unsigned int alignmentTransformIndexLocal( const DetId& id ) ;
76 
77  static unsigned int alignmentTransformIndexGlobal( const DetId& id ) ;
78 
79  static void localCorners( Pt3DVec& lc ,
80  const CCGFloat* pv ,
81  unsigned int i ,
82  Pt3D& ref ) ;
83 
84  virtual void newCell( const GlobalPoint& f1 ,
85  const GlobalPoint& f2 ,
86  const GlobalPoint& f3 ,
87  const CCGFloat* parm,
88  const DetId& detId ) ;
89  protected:
90 
91  virtual const CaloCellGeometry* cellGeomPtr( uint32_t index ) const ;
92 
93  private:
94 
95  void fillDetIds() const ;
96 
97  void init() ;
98 
100  int etaRing(HcalSubdetector bc, double abseta) const;
101  int phiBin(double phi, int etaring) const;
102 
103 
105 
106  mutable std::vector<DetId> m_hbIds ;
107  mutable std::vector<DetId> m_heIds ;
108  mutable std::vector<DetId> m_hoIds ;
109  mutable std::vector<DetId> m_hfIds ;
110  mutable std::vector<DetId> m_emptyIds ;
112 
117 };
118 
119 
120 #endif
121 
static unsigned int numberOfBarrelAlignments()
Definition: HcalGeometry.h:61
std::vector< DetId > m_heIds
Definition: HcalGeometry.h:107
virtual void newCell(const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, const CCGFloat *parm, const DetId &detId)
int i
Definition: DBlmapReader.cc:9
virtual DetId getClosestCell(const GlobalPoint &r) const
Definition: HcalGeometry.cc:94
static unsigned int alignmentTransformIndexLocal(const DetId &id)
std::vector< DetId > m_emptyIds
Definition: HcalGeometry.h:110
static std::string producerTag()
Definition: HcalGeometry.h:59
HcalAlignmentRcd AlignmentRecord
Definition: HcalGeometry.h:25
std::vector< IdealObliquePrism > HECellVec
Definition: HcalGeometry.h:17
std::vector< Pt3D > Pt3DVec
const HcalTopology * theTopology
Definition: HcalGeometry.h:104
virtual unsigned int numberOfParametersPerShape() const
Definition: HcalGeometry.h:39
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)
Definition: HcalGeometry.cc:82
virtual CaloSubdetectorGeometry::DetIdSet getCells(const GlobalPoint &r, double dR) const
Get a list of all cells within a dR of the given cell.
std::vector< DetId > m_hbIds
Definition: HcalGeometry.h:106
CaloCellGeometry::Pt3DVec Pt3DVec
Definition: HcalGeometry.h:23
std::vector< DetId > m_hoIds
Definition: HcalGeometry.h:108
HBCellVec m_hbCellVec
Definition: HcalGeometry.h:113
virtual const CaloCellGeometry * cellGeomPtr(uint32_t index) const
PHcalRcd PGeometryRecord
Definition: HcalGeometry.h:27
HOCellVec m_hoCellVec
Definition: HcalGeometry.h:115
HFCellVec m_hfCellVec
Definition: HcalGeometry.h:116
std::vector< IdealObliquePrism > HOCellVec
Definition: HcalGeometry.h:18
static unsigned int numberOfOuterAlignments()
Definition: HcalGeometry.h:65
static unsigned int alignmentTransformIndexGlobal(const DetId &id)
bool m_ownsTopology
Definition: HcalGeometry.h:111
HcalSubdetector
Definition: HcalAssistant.h:32
CaloCellGeometry::CCGFloat CCGFloat
std::vector< DetId > m_hfIds
Definition: HcalGeometry.h:109
int etaRing(HcalSubdetector bc, double abseta) const
helper methods for getClosestCell
HcalGeometryRecord AlignedRecord
Definition: HcalGeometry.h:26
static void localCorners(Pt3DVec &lc, const CCGFloat *pv, unsigned int i, Pt3D &ref)
CaloCellGeometry::Pt3D Pt3D
std::vector< IdealZPrism > HFCellVec
Definition: HcalGeometry.h:19
Definition: DetId.h:20
static unsigned int numberOfEndcapAlignments()
Definition: HcalGeometry.h:63
static std::string dbString()
Definition: HcalGeometry.h:36
virtual ~HcalGeometry()
The HcalGeometry will delete all its cell geometries at destruction time.
Definition: HcalGeometry.cc:26
Detector
Definition: DetId.h:26
CaloCellGeometry::CCGFloat CCGFloat
Definition: HcalGeometry.h:21
CaloCellGeometry::Pt3DVec Pt3DVec
HepGeom::Point3D< CCGFloat > Pt3D
std::vector< IdealObliquePrism > HBCellVec
Definition: HcalGeometry.h:16
HECellVec m_heCellVec
Definition: HcalGeometry.h:114
virtual unsigned int numberOfShapes() const
Definition: HcalGeometry.h:38
void fillDetIds() const
Definition: HcalGeometry.cc:42
static unsigned int numberOfForwardAlignments()
Definition: HcalGeometry.h:67
HcalDetId DetIdType
Definition: HcalGeometry.h:28
CaloCellGeometry::Pt3D Pt3D
Definition: HcalGeometry.h:22
int phiBin(double phi, int etaring) const
static unsigned int numberOfAlignments()
Definition: HcalGeometry.h:69
Definition: DDAxes.h:10