Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-03-17 11:14:35

0001 #ifndef MagBSlab_H
0002 #define MagBSlab_H
0003 
0004 /** \class MagBSlab
0005  *  
0006  *  A  container of volumes in the barrel. It is part of the hierarchical 
0007  *  organisation of barrel volumes:
0008  *
0009  *  A barrel layer (MagBLayer) groups volumes at the same distance to
0010  *  the origin. It consists of 12 sectors in phi (MagBSector). 
0011  *  Each sector consists of one or more rods (MagBRods) of equal width in phi.
0012  *  Rods consist of one or more slabs (MagBSlab); each one consisting of one 
0013  *  or, in few cases, several volumes with the same lenght in Z.
0014  *
0015  *  \author N. Amapane - INFN Torino
0016  */
0017 
0018 #include <vector>
0019 
0020 class MagVolume;
0021 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0022 
0023 class MagBSlab {
0024 public:
0025   /// Constructor
0026   MagBSlab(const std::vector<MagVolume*>& volumes, double zMin);
0027 
0028   /// Destructor
0029   virtual ~MagBSlab();
0030 
0031   /// Find the volume containing a point, with a given tolerance
0032   const MagVolume* findVolume(const GlobalPoint& gp, double tolerance) const;
0033 
0034   /// Lower Z bound
0035   double minZ() const { return theZMin; }
0036 
0037 private:
0038   std::vector<MagVolume*> theVolumes;
0039   double theZMin;
0040 };
0041 #endif