00001 #ifndef DTTtrig_H
00002 #define DTTtrig_H
00003
00015
00016
00017
00018
00019
00020
00021
00022
00023 #include "CondFormats/DTObjects/interface/DTTimeUnits.h"
00024 #include "CondFormats/DTObjects/interface/DTBufferTree.h"
00025 #include "DataFormats/MuonDetId/interface/DTWireId.h"
00026 #include "DataFormats/MuonDetId/interface/DTSuperLayerId.h"
00027
00028
00029
00030
00031 #include <string>
00032 #include <vector>
00033
00034
00035
00036
00037
00038 class DTTtrigId {
00039
00040 public:
00041
00042 DTTtrigId();
00043 ~DTTtrigId();
00044
00045 int wheelId;
00046 int stationId;
00047 int sectorId;
00048 int slId;
00049 int layerId;
00050 int cellId;
00051
00052 };
00053
00054
00055 class DTTtrigData {
00056
00057 public:
00058
00059 DTTtrigData();
00060 ~DTTtrigData();
00061
00062 float tTrig;
00063 float tTrms;
00064 float kFact;
00065
00066 };
00067
00068
00069 class DTTtrig {
00070
00071 public:
00072
00075 DTTtrig();
00076 DTTtrig( const std::string& version );
00077
00080 ~DTTtrig();
00081
00084
00085 int get( int wheelId,
00086 int stationId,
00087 int sectorId,
00088 int slId,
00089 float& tTrig,
00090 float& tTrms,
00091 float& kFact,
00092 DTTimeUnits::type unit ) const;
00093 int get( int wheelId,
00094 int stationId,
00095 int sectorId,
00096 int slId,
00097 int layerId,
00098 int cellId,
00099 float& tTrig,
00100 float& tTrms,
00101 float& kFact,
00102 DTTimeUnits::type unit ) const;
00103 int get( const DTSuperLayerId& id,
00104 float& tTrig,
00105 float& tTrms,
00106 float& kFact,
00107 DTTimeUnits::type unit ) const;
00108 int get( const DetId& id,
00109 float& tTrig,
00110 float& tTrms,
00111 float& kFact,
00112 DTTimeUnits::type unit ) const;
00113 int get( int wheelId,
00114 int stationId,
00115 int sectorId,
00116 int slId,
00117 float& tTrig,
00118 DTTimeUnits::type unit ) const;
00119 int get( int wheelId,
00120 int stationId,
00121 int sectorId,
00122 int slId,
00123 int layerId,
00124 int cellId,
00125 float& tTrig,
00126 DTTimeUnits::type unit ) const;
00127 int get( const DTSuperLayerId& id,
00128 float& tTrig,
00129 DTTimeUnits::type unit ) const;
00130 int get( const DetId& id,
00131 float& tTrig,
00132 DTTimeUnits::type unit ) const;
00133 float unit() const;
00134
00136 const
00137 std::string& version() const;
00138 std::string& version();
00139
00141 void clear();
00142
00143 int set( int wheelId,
00144 int stationId,
00145 int sectorId,
00146 int slId,
00147 float tTrig,
00148 float tTrms,
00149 float kFact,
00150 DTTimeUnits::type unit );
00151 int set( int wheelId,
00152 int stationId,
00153 int sectorId,
00154 int slId,
00155 int layerId,
00156 int cellId,
00157 float tTrig,
00158 float tTrms,
00159 float kFact,
00160 DTTimeUnits::type unit );
00161 int set( const DTSuperLayerId& id,
00162 float tTrig,
00163 float tTrms,
00164 float kFact,
00165 DTTimeUnits::type unit );
00166 int set( const DetId& id,
00167 float tTrig,
00168 float tTrms,
00169 float kFact,
00170 DTTimeUnits::type unit );
00171 void setUnit( float unit );
00172
00174 typedef std::vector< std::pair<DTTtrigId,
00175 DTTtrigData> >::const_iterator
00176 const_iterator;
00177 const_iterator begin() const;
00178 const_iterator end() const;
00179
00180 private:
00181
00182 std::string dataVersion;
00183 float nsPerCount;
00184
00185 std::vector< std::pair<DTTtrigId,DTTtrigData> > dataList;
00186
00187 DTBufferTree<int,int>* dBuf;
00188
00190 void cacheMap() const;
00191 std::string mapName() const;
00192
00193 };
00194
00195
00196 #endif // DTTtrig_H
00197