CMS 3D CMS Logo

MagBLayer.h
Go to the documentation of this file.
1 #ifndef MagBLayer_H
2 #define MagBLayer_H
3 
17 #include <vector>
18 
19 class MagBSector;
20 class MagVolume;
21 template <class T> class PeriodicBinFinderInPhi;
22 
23 class MagBLayer {
24 public:
26  MagBLayer(std::vector<MagBSector*>& sectors, double rMin);
27 
29  MagBLayer(MagVolume* aVolume, double rMin);
30 
32  virtual ~MagBLayer();
33 
35  const MagVolume * findVolume(const GlobalPoint & gp, double tolerance) const;
36 
38  double minR() const {return theRMin;}
39 
40 private:
41  // To support either the case of a simple one-volume layer or a
42  // composite structure we have both theSectors or theSingleVolume.
43  // Only one can be active at a time; not very elegant, but acceptable.
44  std::vector<MagBSector*> theSectors;
46  double theRMin;
47 
49 
50 };
51 #endif
52 
double theRMin
Definition: MagBLayer.h:46
PeriodicBinFinderInPhi< float > * theBinFinder
Definition: MagBLayer.h:48
const MagVolume * findVolume(const GlobalPoint &gp, double tolerance) const
Find the volume containing a point, with a given tolerance.
Definition: MagBLayer.cc:60
const double tolerance
MagBLayer(std::vector< MagBSector * > &sectors, double rMin)
Constructor.
Definition: MagBLayer.cc:21
std::vector< MagBSector * > theSectors
Definition: MagBLayer.h:44
MagVolume * theSingleVolume
Definition: MagBLayer.h:45
double minR() const
Lowest radius of the layer.
Definition: MagBLayer.h:38
virtual ~MagBLayer()
Destructor.
Definition: MagBLayer.cc:48