00001 #ifndef DetLayers_CylinderBuilderFromDet_h 00002 #define DetLayers_CylinderBuilderFromDet_h 00003 00014 #include "Geometry/CommonDetUnit/interface/GeomDet.h" 00015 #include "DataFormats/GeometrySurface/interface/BoundCylinder.h" 00016 00017 #include <vector> 00018 #include <limits> 00019 00020 class CylinderBuilderFromDet { 00021 public: 00022 typedef GeomDet Det; 00023 typedef Surface::PositionType PositionType; 00024 typedef Surface::RotationType RotationType; 00025 typedef PositionType::BasicVectorType Vector; 00026 00027 CylinderBuilderFromDet() : 00028 rmin(std::numeric_limits<float>::max()), 00029 rmax(0.0), 00030 zmin(std::numeric_limits<float>::max()), 00031 zmax(std::numeric_limits<float>::min()){} 00032 00033 BoundCylinder* operator()( std::vector<const Det*>::const_iterator first, 00034 std::vector<const Det*>::const_iterator last) const; 00035 00036 void operator()(const Det& det); 00037 00038 BoundCylinder* build() const; 00039 00040 private: 00041 float rmin; 00042 float rmax; 00043 float zmin; 00044 float zmax; 00045 00046 }; 00047 00048 #endif