CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_5_3_13_patch3/src/TrackingTools/DetLayers/interface/CylinderBuilderFromDet.h

Go to the documentation of this file.
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