00001 #ifndef Geometry_ForwardGeometry_CastorGeometry_h 00002 #define Geometry_ForwardGeometry_CastorGeometry_h 1 00003 00004 #include "DataFormats/DetId/interface/DetId.h" 00005 #include "Geometry/CaloGeometry/interface/CaloSubdetectorGeometry.h" 00006 #include "Geometry/ForwardGeometry/interface/CastorTopology.h" 00007 00008 #include <vector> 00009 00010 class CastorGeometry : public CaloSubdetectorGeometry { 00011 public: 00012 00013 explicit CastorGeometry(const CastorTopology * topology); 00014 virtual ~CastorGeometry(); 00015 00016 virtual std::vector<DetId> const & getValidDetIds(DetId::Detector det, int subdet); 00017 virtual DetId getClosestCell(const GlobalPoint& r) const ; 00018 00019 private: 00020 const CastorTopology * theTopology; 00021 mutable DetId::Detector lastReqDet_; 00022 mutable int lastReqSubdet_; 00023 std::vector<DetId> m_validIds; 00024 }; 00025 00026 00027 #endif