00001 #ifndef Geometry_HcalTowerAlgo_HcalDDDGeometry_h 00002 #define Geometry_HcalTowerAlgo_HcalDDDGeometry_h 00003 00004 #include "DataFormats/DetId/interface/DetId.h" 00005 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" 00006 #include "Geometry/HcalCommonData/interface/HcalCellType.h" 00007 00008 #include <vector> 00009 00010 class HcalDDDGeometry : public CaloSubdetectorGeometry { 00011 00012 public: 00013 00014 explicit HcalDDDGeometry(); 00016 virtual ~HcalDDDGeometry(); 00017 00018 virtual const std::vector<DetId>& getValidDetIds( DetId::Detector det = DetId::Detector ( 0 ) , 00019 int subdet = 0 ) const; 00020 00021 virtual DetId getClosestCell(const GlobalPoint& r) const ; 00022 00023 int insertCell (std::vector<HcalCellType> const & ); 00024 00025 private: 00026 00027 mutable std::vector<DetId> m_validIds ; 00028 00029 std::vector<HcalCellType> hcalCells_; 00030 mutable DetId::Detector lastReqDet_; 00031 mutable int lastReqSubdet_; 00032 00033 double twopi, deg; 00034 double etaMax_, firstHFQuadRing_; 00035 }; 00036 00037 00038 #endif 00039