Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:22:33

0001 #ifndef MagBSector_H
0002 #define MagBSector_H
0003 
0004 /** \class MagBSector
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 MagBRod;
0021 class MagVolume;
0022 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
0023 
0024 class MagBSector {
0025 public:
0026   /// Constructor
0027   MagBSector(std::vector<MagBRod*>& rods, Geom::Phi<float> phiMin);
0028 
0029   /// Destructor
0030   virtual ~MagBSector();
0031 
0032   /// Find the volume containing a point, with a given tolerance
0033   const MagVolume* findVolume(const GlobalPoint& gp, double tolerance) const;
0034 
0035   /// Phi of sector start
0036   Geom::Phi<float> minPhi() const { return thePhiMin; }
0037 
0038 private:
0039   std::vector<MagBRod*> theRods;
0040   Geom::Phi<float> thePhiMin;
0041 };
0042 #endif