00001 #ifndef bLayer_H 00002 #define bLayer_H 00003 00013 #include "MagneticField/GeomBuilder/src/MagGeoBuilderFromDDD.h" 00014 #include "MagneticField/GeomBuilder/src/volumeHandle.h" 00015 #include "MagneticField/GeomBuilder/src/bSector.h" 00016 00017 class MagBLayer; 00018 00019 class MagGeoBuilderFromDDD::bLayer { 00020 public: 00022 bLayer(handles::const_iterator begin, handles::const_iterator end); 00023 00025 ~bLayer(); 00026 00028 const float RN() const { 00029 return theVolumes.front()->RN(); 00030 } 00031 00033 const handles & volumes() const {return theVolumes;} 00034 00036 // const bSector & sector(int i) const; 00037 00039 double minR() const; 00040 00041 // Depends on volumeHandle::maxR(), which actually returns max RN. 00042 // (should be changed?) 00043 // double maxR() const; 00044 00046 MagBLayer * buildMagBLayer() const; 00047 00048 private: 00049 int size; //< the number of volumes 00050 00051 // Check periodicity; 00052 int bin(int i) const; 00053 00054 std::vector<bSector> sectors; // the sectors in this layer 00055 handles theVolumes; // pointer to all volumes in this layer 00056 00057 mutable MagBLayer * mlayer; 00058 }; 00059 #endif 00060