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>
23 
24 class MagBLayer {
25 public:
27  MagBLayer(std::vector<MagBSector*>& sectors, double rMin);
28 
30  MagBLayer(MagVolume* aVolume, double rMin);
31 
33  virtual ~MagBLayer();
34 
36  const MagVolume* findVolume(const GlobalPoint& gp, double tolerance) const;
37 
39  double minR() const { return theRMin; }
40 
41 private:
42  // To support either the case of a simple one-volume layer or a
43  // composite structure we have both theSectors or theSingleVolume.
44  // Only one can be active at a time; not very elegant, but acceptable.
45  std::vector<MagBSector*> theSectors;
47  double theRMin;
48 
50 };
51 #endif
double theRMin
Definition: MagBLayer.h:47
PeriodicBinFinderInPhi< float > * theBinFinder
Definition: MagBLayer.h:49
const double tolerance
const MagVolume * findVolume(const GlobalPoint &gp, double tolerance) const
Find the volume containing a point, with a given tolerance.
Definition: MagBLayer.cc:45
std::vector< MagBSector * > theSectors
Definition: MagBLayer.h:45
MagVolume * theSingleVolume
Definition: MagBLayer.h:46
MagBLayer(std::vector< MagBSector *> &sectors, double rMin)
Constructor.
Definition: MagBLayer.cc:21
double minR() const
Lowest radius of the layer.
Definition: MagBLayer.h:39
virtual ~MagBLayer()
Destructor.
Definition: MagBLayer.cc:35