CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_4_5_patch3/src/CondFormats/DTObjects/interface/DTTPGParameters.h

Go to the documentation of this file.
00001 #ifndef DTTPGParameters_H
00002 #define DTTPGParameters_H
00003 
00014 //----------------------
00015 // Base Class Headers --
00016 //----------------------
00017 
00018 
00019 //------------------------------------
00020 // Collaborating Class Declarations --
00021 //------------------------------------
00022 #include "CondFormats/DTObjects/interface/DTTimeUnits.h"
00023 #include "CondFormats/DTObjects/interface/DTBufferTree.h"
00024 #include "DataFormats/MuonDetId/interface/DTChamberId.h"
00025 
00026 //---------------
00027 // C++ Headers --
00028 //---------------
00029 #include <string>
00030 #include <vector>
00031 
00032 //              ---------------------
00033 //              -- Class Interface --
00034 //              ---------------------
00035 
00036 class DTTPGParametersId   {
00037 
00038  public:
00039 
00040   DTTPGParametersId();
00041   ~DTTPGParametersId();
00042 
00043   int   wheelId;
00044   int stationId;
00045   int  sectorId;
00046 
00047 };
00048 
00049 
00050 class DTTPGParametersData {
00051 
00052  public:
00053 
00054   DTTPGParametersData();
00055   ~DTTPGParametersData();
00056 
00057   int   nClock;
00058   float tPhase;
00059 
00060 };
00061 
00062 
00063 class DTTPGParameters {
00064 
00065  public:
00066 
00069   DTTPGParameters();
00070   DTTPGParameters( const std::string& version );
00071 
00074   ~DTTPGParameters();
00075 
00078 
00079   int get( int   wheelId,
00080            int stationId,
00081            int  sectorId,
00082            int&    nc,
00083            float&  ph,
00084            DTTimeUnits::type unit ) const;
00085   int get( const DTChamberId& id,
00086            int&    nc,
00087            float&  ph,
00088            DTTimeUnits::type unit ) const;
00089   float totalTime( int   wheelId,
00090                    int stationId,
00091                    int  sectorId,
00092                    DTTimeUnits::type unit ) const;
00093   float totalTime( const DTChamberId& id,
00094                    DTTimeUnits::type unit ) const;
00095   int   clock() const;
00096   float unit() const;
00097 
00099   const
00100   std::string& version() const;
00101   std::string& version();
00102 
00104   void clear();
00105 
00106   int set( int   wheelId,
00107            int stationId,
00108            int  sectorId,
00109            int    nc,
00110            float  ph,
00111            DTTimeUnits::type unit );
00112   int set( const DTChamberId& id,
00113            int    nc,
00114            float  ph,
00115            DTTimeUnits::type unit );
00116   void setClock( int clock );
00117   void setUnit( float unit );
00118 
00120   typedef std::vector< std::pair<DTTPGParametersId,
00121                                  DTTPGParametersData> >::const_iterator
00122                                                          const_iterator;
00123   const_iterator begin() const;
00124   const_iterator end() const;
00125 
00126  private:
00127 
00128   std::string dataVersion;
00129   float nsPerCount;
00130   int   clockLength;
00131 
00132   std::vector< std::pair<DTTPGParametersId,DTTPGParametersData> > dataList;
00133 
00134   DTBufferTree<int,int>* dBuf;
00135 
00137   void cacheMap() const;
00138   std::string mapName() const;
00139 
00140 };
00141 
00142 
00143 #endif // DTTPGParameters_H
00144