CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC4_patch1/src/CondFormats/DTObjects/interface/DTRangeT0.h

Go to the documentation of this file.
00001 #ifndef DTRangeT0_H
00002 #define DTRangeT0_H
00003 
00015 //----------------------
00016 // Base Class Headers --
00017 //----------------------
00018 
00019 
00020 //------------------------------------
00021 // Collaborating Class Declarations --
00022 //------------------------------------
00023 #include "CondFormats/DTObjects/interface/DTBufferTree.h"
00024 #include "DataFormats/MuonDetId/interface/DTSuperLayerId.h"
00025 
00026 //---------------
00027 // C++ Headers --
00028 //---------------
00029 #include <string>
00030 #include <vector>
00031 
00032 //              ---------------------
00033 //              -- Class Interface --
00034 //              ---------------------
00035 
00036 class DTRangeT0Id {
00037 
00038  public:
00039 
00040   DTRangeT0Id();
00041   ~DTRangeT0Id();
00042 
00043   int   wheelId;
00044   int stationId;
00045   int  sectorId;
00046   int      slId;
00047 
00048 };
00049 
00050 
00051 class DTRangeT0Data {
00052 
00053  public:
00054 
00055   DTRangeT0Data();
00056   ~DTRangeT0Data();
00057 
00058   int t0min;
00059   int t0max;
00060 
00061 };
00062 
00063 
00064 class DTRangeT0 {
00065 
00066  public:
00067 
00070   DTRangeT0();
00071   DTRangeT0( const std::string& version );
00072 
00075   ~DTRangeT0();
00076 
00079 
00080   int slRangeT0( int   wheelId,
00081                  int stationId,
00082                  int  sectorId,
00083                  int      slId,
00084                  int&    t0min,
00085                  int&    t0max ) const
00086       { return get( wheelId, stationId, sectorId, slId,
00087                     t0min, t0max ); };
00088   int slRangeT0( const DTSuperLayerId& id,
00089                  int&    t0min,
00090                  int&    t0max ) const
00091       { return get( id, t0min, t0max ); };
00092   int get( int   wheelId,
00093            int stationId,
00094            int  sectorId,
00095            int      slId,
00096            int&    t0min,
00097            int&    t0max ) const;
00098   int get( const DTSuperLayerId& id,
00099            int&    t0min,
00100            int&    t0max ) const;
00101 
00103   const
00104   std::string& version() const;
00105   std::string& version();
00106 
00108   void clear();
00109 
00110   int setSLRangeT0( int   wheelId,
00111                     int stationId,
00112                     int  sectorId,
00113                     int      slId,
00114                     int     t0min,
00115                     int     t0max )
00116       { return set( wheelId, stationId, sectorId, slId, t0min, t0max ); };
00117   int setSLRangeT0( const DTSuperLayerId& id,
00118                     int     t0min,
00119                     int     t0max )
00120       { return set( id, t0min, t0max ); };
00121   int set( int   wheelId,
00122            int stationId,
00123            int  sectorId,
00124            int      slId,
00125            int     t0min,
00126            int     t0max );
00127   int set( const DTSuperLayerId& id,
00128            int     t0min,
00129            int     t0max );
00130 
00132   typedef std::vector< std::pair<DTRangeT0Id,
00133                                  DTRangeT0Data> >::const_iterator
00134                                                    const_iterator;
00135   const_iterator begin() const;
00136   const_iterator end() const;
00137 
00138  private:
00139 
00140   std::string dataVersion;
00141 
00142   std::vector< std::pair<DTRangeT0Id,DTRangeT0Data> > dataList;
00143 
00144   DTBufferTree<int,int>* dBuf;
00145 
00147   void cacheMap() const;
00148   std::string mapName() const;
00149 
00150 };
00151 
00152 
00153 #endif // DTRangeT0_H
00154