00001 #ifndef DBUNEARRUNQUALITY_H
00002 #define DBUNEARRUNQUALITY_H
00003
00004 #include "DatabaseInterface/DbiTableRow.h"
00005 #include "DatabaseInterface/DbiOutRowStream.h"
00006 #include "DatabaseInterface/DbiResultSet.h"
00007
00008 class DbiValidityRec;
00009
00010 class DbuNearRunQuality : public DbiTableRow
00011 {
00012
00013 using TObject::Compare;
00014
00015 public:
00016
00017 DbuNearRunQuality() :
00018 fRun(-1),
00019 fSubRun(-1),
00020 fStartTime(0,0),
00021 fEndTime(0,0),
00022 fSubrunLength(-1),
00023 fPhysicsRun(-1),
00024 fModifiedRun(-1),
00025 fTestRun(-1),
00026 fTriggersPlane(-1),
00027 fTriggersActivity(-1),
00028 fTriggersSpill(-1),
00029 fRopMask(-1),
00030 fTriggerMask(-1),
00031 fColdCrates(-1),
00032 fColdMindersSpec(-1),
00033 fColdMenusSpec(-1),
00034 fColdMindersCal(-1),
00035 fColdMenusCal(-1),
00036 fHotMenusSpec(-1),
00037 fHotMenusCal(-1),
00038 fTimeCountHotMenusSpec(-1),
00039 fTimeCountHotMenusCal(-1),
00040 fTimeCountColdMenusSpec(-1),
00041 fTimeCountColdMenusCal(-1),
00042 fTimeCountColdMindersSpec(-1),
00043 fTimeCountColdMindersCal(-1),
00044 fLIRate(-1),
00045 fHighAdcSpec(-1),
00046 fHighAdcCal(-1),
00047 fNbCapidSpec(-1),
00048 fNbCapidCal(-1),
00049 fNbParitySpec(-1),
00050 fNbParityCal(-1),
00051 fNbMisCountSpec(-1),
00052 fNbMisCountCal(-1),
00053 fNbPriorityTruncSpec(-1),
00054 fNbPriorityTruncCal(-1),
00055 fNbSameMenuSpec(-1),
00056 fNbSameMenuCal(-1),
00057 fNbSharedMinderSpec(-1),
00058 fNbSharedMinderCal(-1),
00059 fNbTransferMinderSpec(-1),
00060 fNbTransferMinderCal(-1),
00061 fAvgLow(-1.0),
00062 fAvgHigh(-1.0),
00063 fAvgGate(-1.0),
00064 fSnarlRateMin(-1),
00065 fSnarlRateMax(-1),
00066 fSnarlRateMedian(-999.9),
00067 fSnarlRateMean(-999.9)
00068 {
00069 }
00070
00071 DbuNearRunQuality(const DbuNearRunQuality& from) :
00072 DbiTableRow(from)
00073 { *this = from; }
00074
00075 DbuNearRunQuality(Int_t RunConfigArray[],VldTimeStamp start,VldTimeStamp end,Int_t coldcrates,Int_t coldmindersspec,Int_t coldmenusspec,Int_t coldminderscal,Int_t coldmenuscal,Int_t hotmenusspec,Int_t hotmenuscal,Int_t timecounthotmenusspec,Int_t timecounthotmenuscal,Int_t timecountcoldmenusspec,Int_t timecountcoldmenuscal,Int_t timecountcoldmindersspec,Int_t timecountcoldminderscal,Float_t lirate,Int_t highadcspec,Int_t highadccal,Int_t nbcapidspec,Int_t nbcapidcal,Int_t nbparityspec,Int_t nbparitycal,Int_t nbmiscountspec,Int_t nbmiscountcal,Int_t nbprioritytruncspec,Int_t nbprioritytrunccal,Int_t nbsamemenuspec,Int_t nbsamemenucal,Int_t nbsharedminderspec,Int_t nbsharedmindercal,Int_t nbtransferminderspec,Int_t nbtransfermindercal,Float_t avglow,Float_t avghigh,Float_t avggate,Int_t snarlratemin,Int_t snarlratemax,Float_t snarlratemedian,Float_t snarlratemean) :
00076 fRun(RunConfigArray[0]),
00077 fSubRun(RunConfigArray[1]),
00078 fStartTime(start),
00079 fEndTime(end),
00080 fSubrunLength(RunConfigArray[2]),
00081 fPhysicsRun(RunConfigArray[3]),
00082 fModifiedRun(RunConfigArray[4]),
00083 fTestRun(RunConfigArray[5]),
00084 fTriggersPlane(RunConfigArray[6]),
00085 fTriggersActivity(RunConfigArray[7]),
00086 fTriggersSpill(RunConfigArray[8]),
00087 fRopMask(RunConfigArray[9]),
00088 fTriggerMask(RunConfigArray[10]),
00089 fColdCrates(coldcrates),
00090 fColdMindersSpec(coldmindersspec),
00091 fColdMenusSpec(coldmenusspec),
00092 fColdMindersCal(coldminderscal),
00093 fColdMenusCal(coldmenuscal),
00094 fHotMenusSpec(hotmenusspec),
00095 fHotMenusCal(hotmenuscal),
00096 fTimeCountHotMenusSpec(timecounthotmenusspec),
00097 fTimeCountHotMenusCal(timecounthotmenuscal),
00098 fTimeCountColdMenusSpec(timecountcoldmenusspec),
00099 fTimeCountColdMenusCal(timecountcoldmenuscal),
00100 fTimeCountColdMindersSpec(timecountcoldmindersspec),
00101 fTimeCountColdMindersCal(timecountcoldminderscal),
00102 fLIRate(lirate),
00103 fHighAdcSpec(highadcspec),
00104 fHighAdcCal(highadccal),
00105 fNbCapidSpec(nbcapidspec),
00106 fNbCapidCal(nbcapidcal),
00107 fNbParitySpec(nbparityspec),
00108 fNbParityCal(nbparitycal),
00109 fNbMisCountSpec(nbmiscountspec),
00110 fNbMisCountCal(nbmiscountcal),
00111 fNbPriorityTruncSpec(nbprioritytruncspec),
00112 fNbPriorityTruncCal(nbprioritytrunccal),
00113 fNbSameMenuSpec(nbsamemenuspec),
00114 fNbSameMenuCal(nbsamemenucal),
00115 fNbSharedMinderSpec(nbsharedminderspec),
00116 fNbSharedMinderCal(nbsharedmindercal),
00117 fNbTransferMinderSpec(nbtransferminderspec),
00118 fNbTransferMinderCal(nbtransfermindercal),
00119 fAvgLow(avglow),
00120 fAvgHigh(avghigh),
00121 fAvgGate(avggate),
00122 fSnarlRateMin(snarlratemin),
00123 fSnarlRateMax(snarlratemax),
00124 fSnarlRateMedian(snarlratemedian),
00125 fSnarlRateMean(snarlratemean)
00126 {
00127 }
00128
00129 virtual ~DbuNearRunQuality(){ };
00130
00131
00132 Bool_t CanL2Cache() const { return kTRUE; }
00133 Bool_t Compare(const DbuNearRunQuality& that ) const {
00134 return ( fRun == that.fRun
00135 && fSubRun == that.fSubRun
00136 && fStartTime == that.fStartTime
00137 && fEndTime == that.fEndTime
00138 && fSubrunLength == that.fSubrunLength
00139 && fPhysicsRun == that.fPhysicsRun
00140 && fModifiedRun == that.fModifiedRun
00141 && fTestRun == that.fTestRun
00142 && fTriggersPlane == that.fTriggersPlane
00143 && fTriggersActivity == that.fTriggersActivity
00144 && fTriggersSpill == that.fTriggersSpill
00145 && fRopMask == that.fRopMask
00146 && fTriggerMask == that.fTriggerMask
00147 && fColdCrates == that.fColdCrates
00148 && fColdMindersSpec == that.fColdMindersSpec
00149 && fColdMenusSpec == that.fColdMenusSpec
00150 && fColdMindersCal == that.fColdMindersCal
00151 && fColdMenusCal == that.fColdMenusCal
00152 && fHotMenusSpec == that.fHotMenusSpec
00153 && fHotMenusCal == that.fHotMenusCal
00154 && fTimeCountHotMenusSpec == that.fTimeCountHotMenusSpec
00155 && fTimeCountHotMenusCal == that.fTimeCountHotMenusCal
00156 && fTimeCountColdMenusSpec == that.fTimeCountColdMenusSpec
00157 && fTimeCountColdMenusCal == that.fTimeCountColdMenusCal
00158 && fTimeCountColdMindersSpec == that.fTimeCountColdMindersSpec
00159 && fTimeCountColdMindersCal == that.fTimeCountColdMindersCal
00160 && fLIRate == that.fLIRate
00161 && fHighAdcSpec == that.fHighAdcSpec
00162 && fHighAdcCal == that.fHighAdcCal
00163 && fNbCapidSpec == that.fNbCapidSpec
00164 && fNbCapidCal == that.fNbCapidCal
00165 && fNbParitySpec == that.fNbParitySpec
00166 && fNbParityCal == that.fNbParityCal
00167 && fNbMisCountSpec == that.fNbMisCountSpec
00168 && fNbMisCountCal == that.fNbMisCountCal
00169 && fNbPriorityTruncSpec == that.fNbPriorityTruncSpec
00170 && fNbPriorityTruncCal == that.fNbPriorityTruncCal
00171 && fNbSameMenuSpec == that.fNbSameMenuSpec
00172 && fNbSameMenuCal == that.fNbSameMenuCal
00173 && fNbSharedMinderSpec == that.fNbSharedMinderSpec
00174 && fNbSharedMinderCal == that.fNbSharedMinderCal
00175 && fNbTransferMinderSpec == that.fNbTransferMinderSpec
00176 && fNbTransferMinderCal == that.fNbTransferMinderCal
00177 && fAvgLow == that.fAvgLow
00178 && fAvgHigh == that.fAvgHigh
00179 && fAvgGate == that.fAvgGate
00180 && fSnarlRateMin == that.fSnarlRateMin
00181 && fSnarlRateMax == that.fSnarlRateMax
00182 && fSnarlRateMedian == that.fSnarlRateMedian
00183 && fSnarlRateMean == that.fSnarlRateMean
00184 ); }
00185
00186
00187
00188 Int_t GetRun() const { return fRun; }
00189 Int_t GetSubRun() const { return fSubRun; }
00190 VldTimeStamp GetStartTime() const { return fStartTime; }
00191 VldTimeStamp GetEndTime() const { return fEndTime; }
00192 Int_t GetSubrunLength() const { return fSubrunLength; }
00193 Int_t GetPhysicsRun() const { return fPhysicsRun; }
00194 Int_t GetModifiedRun() const { return fModifiedRun; }
00195 Int_t GetTestRun() const { return fTestRun; }
00196 Int_t GetTriggersPlane() const { return fTriggersPlane; }
00197 Int_t GetTriggersActivity() const { return fTriggersActivity; }
00198 Int_t GetTriggersSpill() const { return fTriggersSpill; }
00199 Int_t GetRopMask() const { return fRopMask; }
00200 Int_t GetTriggerMask() const { return fTriggerMask; }
00201 Int_t GetColdCrates() const { return fColdCrates; }
00202 Int_t GetColdMindersSpec() const { return fColdMindersSpec; }
00203 Int_t GetColdMenusSpec() const { return fColdMenusSpec; }
00204 Int_t GetColdMindersCal() const { return fColdMindersCal; }
00205 Int_t GetColdMenusCal() const { return fColdMenusCal; }
00206 Int_t GetHotMenusSpec() const { return fHotMenusSpec; }
00207 Int_t GetHotMenusCal() const { return fHotMenusCal; }
00208 Int_t GetTimeCountHotMenusSpec() const { return fTimeCountHotMenusSpec; }
00209 Int_t GetTimeCountHotMenusCal() const { return fTimeCountHotMenusCal; }
00210 Int_t GetTimeCountColdMenusSpec() const { return fTimeCountColdMenusSpec; }
00211 Int_t GetTimeCountColdMenusCal() const { return fTimeCountColdMenusCal; }
00212 Int_t GetTimeCountColdMindersSpec() const { return fTimeCountColdMindersSpec; }
00213 Int_t GetTimeCountColdMindersCal() const { return fTimeCountColdMindersCal; }
00214 Float_t GetLIRate() const { return fLIRate; }
00215 Int_t GetHighAdcSpec() const { return fHighAdcSpec; }
00216 Int_t GetHighAdcCal() const { return fHighAdcCal; }
00217 Int_t GetNbCapidSpec() const { return fNbCapidSpec; }
00218 Int_t GetNbCapidCal() const { return fNbCapidCal; }
00219 Int_t GetNbParitySpec() const { return fNbParitySpec; }
00220 Int_t GetNbParityCal() const { return fNbParityCal; }
00221 Int_t GetNbMisCountSpec() const { return fNbMisCountSpec; }
00222 Int_t GetNbMisCountCal() const { return fNbMisCountCal; }
00223 Int_t GetNbPriorityTruncSpec() const { return fNbPriorityTruncSpec; }
00224 Int_t GetNbPriorityTruncCal() const { return fNbPriorityTruncCal; }
00225 Int_t GetNbSameMenuSpec() const { return fNbSameMenuSpec; }
00226 Int_t GetNbSameMenuCal() const { return fNbSameMenuCal; }
00227 Int_t GetNbSharedMinderSpec() const { return fNbSharedMinderSpec; }
00228 Int_t GetNbSharedMinderCal() const { return fNbSharedMinderCal; }
00229 Int_t GetNbTransferMinderSpec() const { return fNbTransferMinderSpec; }
00230 Int_t GetNbTransferMinderCal() const { return fNbTransferMinderCal; }
00231 Float_t GetAvgLow() const { return fAvgLow; }
00232 Float_t GetAvgHigh() const { return fAvgHigh; }
00233 Float_t GetAvgGate() const { return fAvgGate; }
00234 Int_t GetSnarlRateMin() const { return fSnarlRateMin; }
00235 Int_t GetSnarlRateMax() const { return fSnarlRateMax; }
00236 Float_t GetSnarlRateMedian() const { return fSnarlRateMedian; }
00237 Float_t GetSnarlRateMean() const { return fSnarlRateMean; }
00238
00239 Bool_t GetGoodRun(Int_t itask) const { return this->IsOK(itask); }
00240 Bool_t GoodRun(Int_t itask) const { return this->IsOK(itask); }
00241 Bool_t IsOK(Int_t itask) const;
00242
00243 Bool_t GoodRunType(Int_t itask) const;
00244 Bool_t GoodReadout(Int_t itask) const;
00245 Bool_t Short(Int_t itask) const;
00246 Bool_t LowRate(Int_t itask) const;
00247 Bool_t HighRate(Int_t itask) const;
00248 Bool_t LIRate(Int_t itask) const;
00249 Bool_t ColdReadout(Int_t itask) const;
00250 Bool_t HotReadout(Int_t itask) const;
00251
00252 Bool_t BadReadoutErrors(Int_t itask) const;
00253 Bool_t BadCapidError(Int_t itask) const;
00254 Bool_t BadParityError(Int_t itask) const;
00255 Bool_t BadMisCountError(Int_t itask) const;
00256 Bool_t BadPriorityTruncateError(Int_t itask) const;
00257 Bool_t BadSameMenuError(Int_t itask) const;
00258 Bool_t BadSharedMinderError(Int_t itask) const;
00259 Bool_t BadTransferMinderError(Int_t itask) const;
00260 Bool_t HighADC(Int_t itask) const;
00261
00262 Bool_t BadSpillWindow(Int_t itask) const;
00263
00264 Int_t GetAggregateNo() const { return fRun; }
00265
00266 UInt_t GetIndex() const { return this->GetIndex(fRun,fSubRun); }
00267 UInt_t GetIndex(UInt_t) const { return this->GetIndex(fRun,fSubRun); }
00268 static UInt_t GetIndex(Int_t run, Int_t subrun);
00269
00270
00271 virtual void Fill(DbiResultSet& rs, const DbiValidityRec* vrec);
00272 virtual void Store(DbiOutRowStream& ors, const DbiValidityRec* vrec) const;
00273
00274 virtual DbiTableRow* CreateTableRow() const { return new DbuNearRunQuality; }
00275
00276 private:
00277
00278
00279 Int_t fRun;
00280 Int_t fSubRun;
00281 VldTimeStamp fStartTime;
00282 VldTimeStamp fEndTime;
00283 Int_t fSubrunLength;
00284 Int_t fPhysicsRun;
00285 Int_t fModifiedRun;
00286 Int_t fTestRun;
00287 Int_t fTriggersPlane;
00288 Int_t fTriggersActivity;
00289 Int_t fTriggersSpill;
00290 Int_t fRopMask;
00291 Int_t fTriggerMask;
00292 Int_t fColdCrates;
00293 Int_t fColdMindersSpec;
00294 Int_t fColdMenusSpec;
00295 Int_t fColdMindersCal;
00296 Int_t fColdMenusCal;
00297 Int_t fHotMenusSpec;
00298 Int_t fHotMenusCal;
00299 Int_t fTimeCountHotMenusSpec;
00300 Int_t fTimeCountHotMenusCal;
00301 Int_t fTimeCountColdMenusSpec;
00302 Int_t fTimeCountColdMenusCal;
00303 Int_t fTimeCountColdMindersSpec;
00304 Int_t fTimeCountColdMindersCal;
00305 Float_t fLIRate;
00306 Int_t fHighAdcSpec;
00307 Int_t fHighAdcCal;
00308 Int_t fNbCapidSpec;
00309 Int_t fNbCapidCal;
00310 Int_t fNbParitySpec;
00311 Int_t fNbParityCal;
00312 Int_t fNbMisCountSpec;
00313 Int_t fNbMisCountCal;
00314 Int_t fNbPriorityTruncSpec;
00315 Int_t fNbPriorityTruncCal;
00316 Int_t fNbSameMenuSpec;
00317 Int_t fNbSameMenuCal;
00318 Int_t fNbSharedMinderSpec;
00319 Int_t fNbSharedMinderCal;
00320 Int_t fNbTransferMinderSpec;
00321 Int_t fNbTransferMinderCal;
00322 Float_t fAvgLow;
00323 Float_t fAvgHigh;
00324 Float_t fAvgGate;
00325 Int_t fSnarlRateMin;
00326 Int_t fSnarlRateMax;
00327 Float_t fSnarlRateMedian;
00328 Float_t fSnarlRateMean;
00329
00330
00331 ClassDef(DbuNearRunQuality,0)
00332
00333 };
00334
00335
00336 #endif // DBUNEARRUNQUALITY_H