Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef bRod_H
0002 #define bRod_H
0003 
0004 /** \class MagGeoBuilderFromDDD::bRod
0005  *  A rod of volumes in a barrel sector.
0006  *  A rod is made of several "slabs".
0007  *
0008  *  \author N. Amapane - INFN Torino
0009  */
0010 
0011 #include "bSlab.h"
0012 
0013 class MagBRod;
0014 
0015 namespace magneticfield {
0016 
0017   class bRod {
0018   public:
0019     /// Constructor from list of volumes
0020     bRod(handles::const_iterator begin, handles::const_iterator end, bool debugVal = false);
0021 
0022     /// Destructor
0023     ~bRod() = default;
0024 
0025     /// Distance from center along sector normal.
0026     const float RN() const { return volumes.front()->RN(); }
0027 
0028     /// Construct the MagBRod upon request.
0029     MagBRod* buildMagBRod() const;
0030 
0031   private:
0032     std::vector<bSlab> slabs;
0033     handles volumes;  // pointers to all volumes in the rod
0034     mutable MagBRod* mrod;
0035     bool debug;  // Allow assignment from other bRod objects
0036   };
0037 }  // namespace magneticfield
0038 
0039 #endif