CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_7_hltpatch2/src/MagneticField/Layers/interface/MagBLayer.h

Go to the documentation of this file.
00001 #ifndef MagBLayer_H
00002 #define MagBLayer_H
00003 
00018 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00019 #include <vector>
00020 
00021 class MagBSector;
00022 class MagVolume;
00023 template <class T> class PeriodicBinFinderInPhi;
00024 
00025 class MagBLayer {
00026 public:
00028   MagBLayer(std::vector<MagBSector*>& sectors, double rMin);
00029 
00031   MagBLayer(MagVolume* aVolume, double rMin);
00032 
00034   virtual ~MagBLayer();
00035 
00037   MagVolume * findVolume(const GlobalPoint & gp, double tolerance) const;
00038   
00040   double minR() const {return theRMin;}
00041 
00042 private:
00043   // To support either the case of a simple one-volume layer or a
00044   // composite structure we have both theSectors or theSingleVolume.
00045   // Only one can be active at a time; not very elegant, but acceptable.
00046   std::vector<MagBSector*> theSectors;
00047   MagVolume* theSingleVolume; 
00048   double theRMin;
00049 
00050   PeriodicBinFinderInPhi<float> * theBinFinder;
00051 
00052 };
00053 #endif
00054