Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef bSector_H
0002 #define bSector_H
0003 
0004 /** \class bSector
0005  *  A sector of volumes in a barrel layer (i.e. only 1 element in R)
0006  *  One sector is composed of 1 or more rods.
0007  *
0008  *  \author N. Amapane - INFN Torino
0009  */
0010 
0011 #include "bRod.h"
0012 
0013 class MagBSector;
0014 
0015 namespace magneticfield {
0016 
0017   class bSector {
0018   public:
0019     /// Default ctor is needed to have arrays.
0020     bSector();
0021 
0022     /// Constructor from list of volumes
0023     bSector(handles::const_iterator begin, handles::const_iterator end, bool debugVal = false);
0024 
0025     /// Destructor
0026     ~bSector() = default;
0027 
0028     /// Distance  from center along normal of sectors.
0029     const float RN() const { return volumes.front()->RN(); }
0030 
0031     /// Return all volumes in this sector
0032     const handles& getVolumes() const { return volumes; }
0033 
0034     /// Construct the MagBSector upon request.
0035     MagBSector* buildMagBSector() const;
0036 
0037   private:
0038     std::vector<bRod> rods;  // the rods in this layer
0039     handles volumes;         // pointers to all volumes in the sector
0040     mutable MagBSector* msector;
0041     bool debug;  // Allow assignment from other bSector objects
0042   };
0043 }  // namespace magneticfield
0044 
0045 #endif