00001 #ifndef FARDETDATAQUALITYMODULE_H
00002 #define FARDETDATAQUALITYMODULE_H
00003
00004 #include "JobControl/JobCModule.h"
00005
00006 #include "TTree.h"
00007 #include "TFile.h"
00008 #include "TObjArray.h"
00009
00010 class JobCommand;
00011 class MomNavigator;
00012
00013 class SnarlHeader;
00014 class LiHeader;
00015 class VarcErrHeader;
00016 class SpillServHeader;
00017 class FarDetDataQualityHandle;
00018
00019 class FarDetDataQualityModule : public JobCModule, public TObject
00020 {
00021
00022 public:
00023
00024 FarDetDataQualityModule();
00025 ~FarDetDataQualityModule();
00026 void BeginJob();
00027 JobCResult Reco(MomNavigator *mom);
00028 JobCResult Ana(const MomNavigator *mom);
00029 const Registry& DefaultConfig() const;
00030 void Config(const Registry &r);
00031 void HandleCommand(JobCommand *command);
00032 void EndJob();
00033
00034 private:
00035
00036 TFile* fDataQualityFile;
00037 TTree* fDataQualityTree;
00038
00039 TFile* fRunSummaryFile;
00040 TTree* fRunSummaryTree;
00041
00042 Int_t run,subrun,snarl;
00043 Int_t date,time,timeframe;
00044 Int_t microsec,nanosec;
00045 Int_t crateMask;
00046 Int_t deadPlnChips,hotPlnChips,coldPlnChips,busyPlnChips;
00047 Int_t deadShldChips,hotShldChips,coldShldChips,busyShldChips;
00048 Int_t coldPlnChipsSM1,coldPlnChipsSM2,coldShldChipsSM1,coldShldChipsSM2;
00049 Int_t liBox,liLed,liPulseHeight,liPulseWidth;
00050 Int_t liChannels,hitPlnChannels,hitShldChannels;
00051 Int_t spillStatus,spillType,spillGpsError;
00052 Int_t sparsErrors,etcErrors;
00053 Int_t tpmtBox,tpmtNanosec;
00054 Int_t snarlRate,passRate;
00055
00056 Int_t fFilterOnOff,fSummaryOnOff,fReducedSummaryOnOff;
00057 Int_t fRun,fSubRun,fSnarl,fTimeFrame,fEnd,fUpdate,fFilter;
00058 Int_t fCrateMask;
00059 Int_t fHotPlnChips;
00060 Int_t fColdPlnChips,fColdPlnChipsSM1,fColdPlnChipsSM2;
00061 Int_t fColdShldChips,fColdShldChipsSM1,fColdShldChipsSM2;
00062 Int_t fHitPlnChannels,fHitShldChannels,fLiChannels;
00063 Int_t fTpmtBox,fTpmtChannels;
00064 Int_t fFilterMinCrateMask;
00065 Int_t fFilterMinChannels,fFilterMaxChannels;
00066 Int_t fFilterMaxBadChips,fFilterMaxLiChannels;
00067 Int_t fEtcErrors,fSparsErrors;
00068
00069 Int_t RSrun,RSsubrun,RSdate,RStime,RStimeframe;
00070 Int_t RShotPlnChips;
00071 Int_t RScoldPlnChips,RScoldPlnChipsSM1,RScoldPlnChipsSM2;
00072 Int_t RScoldShldChips,RScoldShldChipsSM1,RScoldShldChipsSM2;
00073 Int_t RSsparsErrors,RSetcErrors;
00074 Int_t RSsnarlRate,RSpassRate;
00075 Int_t RSlibox,RSliled;
00076
00077 SnarlHeader* fSnarlHeader;
00078 LiHeader* fLiHeader;
00079 VarcErrHeader* fVarcErrHeader;
00080 SpillServHeader* fSpillServHeader;
00081 TObjArray* fBusyChipList;
00082 TObjArray* fBadChipList;
00083 TObjArray* fTpmtChipList;
00084
00085 Int_t* fCratePlnRates;
00086 Int_t* cratePlnRates;
00087 Int_t* RScratePlnRates;
00088
00089 Int_t PlnMask[16][24];
00090 Int_t ShldMask[16][6];
00091 Int_t LiBoxMask[22];
00092
00093 void ProcessHeader(TObject* obj);
00094 void ProcessBlock(TObject* obj);
00095 Int_t ApplyFilter(FarDetDataQualityHandle* cdh);
00096
00097
00098 ClassDef(FarDetDataQualityModule,1)
00099 };
00100
00101 #endif