CMS 3D CMS Logo

bRod.h
Go to the documentation of this file.
1 #ifndef bRod_H
2 #define bRod_H
3 
11 #include "bSlab.h"
12 
13 class MagBRod;
14 
15 namespace magneticfield {
16 
17  class bRod {
18  public:
20  bRod(handles::const_iterator begin, handles::const_iterator end, bool debugVal = false);
21 
23  ~bRod() = default;
24 
26  const float RN() const { return volumes.front()->RN(); }
27 
29  MagBRod* buildMagBRod() const;
30 
31  private:
32  std::vector<bSlab> slabs;
33  handles volumes; // pointers to all volumes in the rod
34  mutable MagBRod* mrod;
35  bool debug; // Allow assignment from other bRod objects
36  };
37 } // namespace magneticfield
38 
39 #endif
MagBRod * mrod
Definition: bRod.h:34
handles volumes
Definition: bRod.h:33
const float RN() const
Distance from center along sector normal.
Definition: bRod.h:26
bRod(handles::const_iterator begin, handles::const_iterator end, bool debugVal=false)
Constructor from list of volumes.
Definition: bRod.cc:19
std::vector< BaseVolumeHandle * > handles
~bRod()=default
Destructor.
MagBRod * buildMagBRod() const
Construct the MagBRod upon request.
Definition: bRod.cc:81
std::vector< bSlab > slabs
Definition: bRod.h:32