FarDetDataQualityModule Class Reference

#include <FarDetDataQualityModule.h>

Inheritance diagram for FarDetDataQualityModule:
JobCModule

List of all members.

Public Member Functions

 FarDetDataQualityModule ()
 ~FarDetDataQualityModule ()
void BeginJob ()
JobCResult Reco (MomNavigator *mom)
JobCResult Ana (const MomNavigator *mom)
const RegistryDefaultConfig () const
void Config (const Registry &r)
void HandleCommand (JobCommand *command)
void EndJob ()

Private Member Functions

void ProcessHeader (TObject *obj)
void ProcessBlock (TObject *obj)
Int_t ApplyFilter (FarDetDataQualityHandle *cdh)

Private Attributes

TFile * fDataQualityFile
TTree * fDataQualityTree
TFile * fRunSummaryFile
TTree * fRunSummaryTree
Int_t run
Int_t subrun
Int_t snarl
Int_t date
Int_t time
Int_t timeframe
Int_t microsec
Int_t nanosec
Int_t crateMask
Int_t deadPlnChips
Int_t hotPlnChips
Int_t coldPlnChips
Int_t busyPlnChips
Int_t deadShldChips
Int_t hotShldChips
Int_t coldShldChips
Int_t busyShldChips
Int_t coldPlnChipsSM1
Int_t coldPlnChipsSM2
Int_t coldShldChipsSM1
Int_t coldShldChipsSM2
Int_t liBox
Int_t liLed
Int_t liPulseHeight
Int_t liPulseWidth
Int_t liChannels
Int_t hitPlnChannels
Int_t hitShldChannels
Int_t spillStatus
Int_t spillType
Int_t spillGpsError
Int_t sparsErrors
Int_t etcErrors
Int_t tpmtBox
Int_t tpmtNanosec
Int_t snarlRate
Int_t passRate
Int_t fFilterOnOff
Int_t fSummaryOnOff
Int_t fReducedSummaryOnOff
Int_t fRun
Int_t fSubRun
Int_t fSnarl
Int_t fTimeFrame
Int_t fEnd
Int_t fUpdate
Int_t fFilter
Int_t fCrateMask
Int_t fHotPlnChips
Int_t fColdPlnChips
Int_t fColdPlnChipsSM1
Int_t fColdPlnChipsSM2
Int_t fColdShldChips
Int_t fColdShldChipsSM1
Int_t fColdShldChipsSM2
Int_t fHitPlnChannels
Int_t fHitShldChannels
Int_t fLiChannels
Int_t fTpmtBox
Int_t fTpmtChannels
Int_t fFilterMinCrateMask
Int_t fFilterMinChannels
Int_t fFilterMaxChannels
Int_t fFilterMaxBadChips
Int_t fFilterMaxLiChannels
Int_t fEtcErrors
Int_t fSparsErrors
Int_t RSrun
Int_t RSsubrun
Int_t RSdate
Int_t RStime
Int_t RStimeframe
Int_t RShotPlnChips
Int_t RScoldPlnChips
Int_t RScoldPlnChipsSM1
Int_t RScoldPlnChipsSM2
Int_t RScoldShldChips
Int_t RScoldShldChipsSM1
Int_t RScoldShldChipsSM2
Int_t RSsparsErrors
Int_t RSetcErrors
Int_t RSsnarlRate
Int_t RSpassRate
Int_t RSlibox
Int_t RSliled
SnarlHeaderfSnarlHeader
LiHeaderfLiHeader
VarcErrHeaderfVarcErrHeader
SpillServHeaderfSpillServHeader
TObjArray * fBusyChipList
TObjArray * fBadChipList
TObjArray * fTpmtChipList
Int_t * fCratePlnRates
Int_t * cratePlnRates
Int_t * RScratePlnRates
Int_t PlnMask [16][24]
Int_t ShldMask [16][6]
Int_t LiBoxMask [22]

Detailed Description

Definition at line 19 of file FarDetDataQualityModule.h.


Constructor & Destructor Documentation

FarDetDataQualityModule::FarDetDataQualityModule (  ) 

Definition at line 58 of file FarDetDataQualityModule.cxx.

References Msg::kInfo, and MSG.

00058                                                  :
00059   fDataQualityFile(0),
00060   fDataQualityTree(0),
00061   fRunSummaryFile(0),
00062   fRunSummaryTree(0),
00063   fFilterOnOff(0),
00064   fSummaryOnOff(0),
00065   fReducedSummaryOnOff(0),
00066   fRun(-1),
00067   fSubRun(-1),
00068   fSnarl(0),
00069   fTimeFrame(-1),
00070   fEnd(0),
00071   fUpdate(0),
00072   fFilter(0),
00073   fFilterMinCrateMask(32),
00074   fFilterMinChannels(10),
00075   fFilterMaxChannels(1000),
00076   fFilterMaxBadChips(20),
00077   fFilterMaxLiChannels(500),
00078   fSnarlHeader(0),
00079   fLiHeader(0),
00080   fVarcErrHeader(0),
00081   fSpillServHeader(0),
00082   fBusyChipList(0),
00083   fBadChipList(0),
00084   fTpmtChipList(0)
00085 {
00086   MSG("FarDetDataQualityModule",Msg::kInfo) << " *** FarDetDataQualityModule::FarDetDataQualityModule() *** " << endl;
00087   fSnarlHeader = new SnarlHeader();
00088   fLiHeader = new LiHeader();
00089   fVarcErrHeader = new VarcErrHeader();
00090   fSpillServHeader = new SpillServHeader();
00091   fBusyChipList = new TObjArray();
00092   fBadChipList = new TObjArray();
00093   fTpmtChipList = new TObjArray();  
00094 
00095   fCratePlnRates = new Int_t[32];
00096   RScratePlnRates = new Int_t[32];
00097   cratePlnRates = new Int_t[32];
00098 }

FarDetDataQualityModule::~FarDetDataQualityModule (  ) 

Definition at line 100 of file FarDetDataQualityModule.cxx.

References cratePlnRates, fBadChipList, fBusyChipList, fCratePlnRates, fLiHeader, fSnarlHeader, fSpillServHeader, fTpmtChipList, fVarcErrHeader, and RScratePlnRates.

00101 {
00102   if(fSnarlHeader) delete fSnarlHeader; 
00103   if(fLiHeader) delete fLiHeader;
00104   if(fVarcErrHeader) delete fVarcErrHeader;
00105   if(fSpillServHeader) delete fSpillServHeader;
00106   if(fBusyChipList){ fBusyChipList->Delete(); delete fBusyChipList; }
00107   if(fBadChipList){ fBadChipList->Delete(); delete fBadChipList; }
00108   if(fTpmtChipList){ fTpmtChipList->Delete(); delete fTpmtChipList; }
00109 
00110   delete [] fCratePlnRates;
00111   delete [] RScratePlnRates;
00112   delete [] cratePlnRates;
00113 }


Member Function Documentation

JobCResult FarDetDataQualityModule::Ana ( const MomNavigator mom  )  [virtual]

Implement this for read only access to the MomNavigator

Reimplemented from JobCModule.

Definition at line 488 of file FarDetDataQualityModule.cxx.

References busyPlnChips, busyShldChips, coldPlnChips, coldShldChips, crateMask, date, deadPlnChips, deadShldChips, etcErrors, fDataQualityFile, fDataQualityTree, CandRecord::FindCandHandle(), FarDetDataQualityHandle::GetBusyPlnChips(), FarDetDataQualityHandle::GetBusyShldChips(), FarDetDataQualityHandle::GetColdPlnChips(), FarDetDataQualityHandle::GetColdShldChips(), FarDetDataQualityHandle::GetCrateMask(), FarDetDataQualityHandle::GetDate(), FarDetDataQualityHandle::GetDeadPlnChips(), FarDetDataQualityHandle::GetDeadShldChips(), FarDetDataQualityHandle::GetEtcErrors(), MomNavigator::GetFragment(), FarDetDataQualityHandle::GetHitPlnChannels(), FarDetDataQualityHandle::GetHitShldChannels(), FarDetDataQualityHandle::GetHotPlnChips(), FarDetDataQualityHandle::GetHotShldChips(), FarDetDataQualityHandle::GetLiBox(), FarDetDataQualityHandle::GetLiChannels(), FarDetDataQualityHandle::GetLiLed(), FarDetDataQualityHandle::GetLiPulseHeight(), FarDetDataQualityHandle::GetLiPulseWidth(), FarDetDataQualityHandle::GetMicrosec(), FarDetDataQualityHandle::GetNanosec(), FarDetDataQualityHandle::GetRun(), FarDetDataQualityHandle::GetSnarl(), FarDetDataQualityHandle::GetSparsErrors(), FarDetDataQualityHandle::GetSpillGpsError(), FarDetDataQualityHandle::GetSpillStatus(), FarDetDataQualityHandle::GetSpillType(), FarDetDataQualityHandle::GetSubRun(), FarDetDataQualityHandle::GetTime(), FarDetDataQualityHandle::GetTimeFrame(), FarDetDataQualityHandle::GetTpmtBox(), FarDetDataQualityHandle::GetTpmtNanosec(), hitPlnChannels, hitShldChannels, hotPlnChips, hotShldChips, Msg::kDebug, JobCResult::kPassed, liBox, liChannels, liLed, liPulseHeight, liPulseWidth, microsec, MSG, nanosec, run, snarl, sparsErrors, spillGpsError, spillStatus, spillType, subrun, time, timeframe, tpmtBox, and tpmtNanosec.

00489 {
00490 
00491   MSG("FarDetDataQualityModule",Msg::kDebug) << " *** FarDetDataQualityModule::Ana(...) *** " << endl;
00492 
00493   JobCResult result(JobCResult::kPassed);
00494 
00495   CandRecord* candrec = dynamic_cast<CandRecord*>(mom->GetFragment("CandRecord", "PrimaryCandidateRecord"));
00496   if( candrec ){
00497     FarDetDataQualityHandle* fardet = dynamic_cast<FarDetDataQualityHandle*>(candrec->FindCandHandle("FarDetDataQualityHandle"));
00498     if( fardet ){
00499 
00500       if(!fDataQualityFile){
00501         // TString mystring("./results/fardet.quality");
00502         // mystring.Append("."); mystring+=fRun; 
00503         // mystring.Append(".root");
00504         TString mystring("fardet.quality.root");
00505         TDirectory* tmpddd = gDirectory;
00506         fDataQualityFile = new TFile(mystring.Data(),"RECREATE");
00507         fDataQualityTree = new TTree("QualityTree","QualityTree");
00508         fDataQualityTree->SetAutoSave(300);
00509         fDataQualityTree->Branch("run",&run,"run/I");
00510         fDataQualityTree->Branch("subrun",&subrun,"subrun/I");
00511         fDataQualityTree->Branch("snarl",&snarl,"snarl/I");
00512         fDataQualityTree->Branch("date",&date,"date/I");
00513         fDataQualityTree->Branch("time",&time,"time/I");
00514         fDataQualityTree->Branch("timeframe",&timeframe,"timeframe/I");
00515         fDataQualityTree->Branch("microsec",&microsec,"microsec/I");
00516         fDataQualityTree->Branch("nanosec",&nanosec,"nanosec/I");
00517         fDataQualityTree->Branch("crateMask",&crateMask,"crateMask/I");
00518         fDataQualityTree->Branch("deadPlnChips",&deadPlnChips,"deadPlnChips/I");
00519         fDataQualityTree->Branch("hotPlnChips",&hotPlnChips,"hotPlnChips/I");
00520         fDataQualityTree->Branch("coldPlnChips",&coldPlnChips,"coldPlnChips/I");
00521         fDataQualityTree->Branch("busyPlnChips",&busyPlnChips,"busyPlnChips/I");
00522         fDataQualityTree->Branch("deadShldChips",&deadShldChips,"deadShldChips/I");
00523         fDataQualityTree->Branch("hotShldChips",&hotShldChips,"hotShldChips/I");
00524         fDataQualityTree->Branch("coldShldChips",&coldShldChips,"coldShldChips/I");
00525         fDataQualityTree->Branch("busyShldChips",&busyShldChips,"busyShldChips/I");
00526         fDataQualityTree->Branch("liBox",&liBox,"liBox/I");
00527         fDataQualityTree->Branch("liLed",&liLed,"liLed/I");
00528         fDataQualityTree->Branch("liPulseHeight",&liPulseHeight,"liPulseHeight/I");
00529         fDataQualityTree->Branch("liPulseWidth",&liPulseWidth,"liPulseWidth/I");
00530         fDataQualityTree->Branch("tpmtBox",&tpmtBox,"tpmtBox/I");
00531         fDataQualityTree->Branch("tpmtNanosec",&tpmtNanosec,"tpmtNanosec/I");
00532         fDataQualityTree->Branch("sparsErrors",&sparsErrors,"sparsErrors/I");
00533         fDataQualityTree->Branch("etcErrors",&etcErrors,"etcErrors/I");
00534         fDataQualityTree->Branch("spillStatus",&spillStatus,"spillStatus/I");
00535         fDataQualityTree->Branch("spillType",&spillType,"spillType/I");
00536         fDataQualityTree->Branch("spillGpsError",&spillGpsError,"spillGpsError/I");
00537         fDataQualityTree->Branch("liChannels",&liChannels,"liChannels/I");
00538         fDataQualityTree->Branch("hitPlnChannels",&hitPlnChannels,"hitPlnChannels/I");
00539         fDataQualityTree->Branch("hitShldChannels",&hitShldChannels,"hitShldChannels/I");
00540         gDirectory = tmpddd;
00541       }
00542 
00543       if(fDataQualityFile){
00544         run=fardet->GetRun();
00545         subrun=fardet->GetSubRun();
00546         snarl=fardet->GetSnarl();
00547         date=fardet->GetDate();
00548         time=fardet->GetTime();
00549         timeframe=fardet->GetTimeFrame();
00550         microsec=fardet->GetMicrosec();
00551         nanosec=fardet->GetNanosec();
00552         crateMask=fardet->GetCrateMask();
00553         deadPlnChips=fardet->GetDeadPlnChips();
00554         hotPlnChips=fardet->GetHotPlnChips();
00555         coldPlnChips=fardet->GetColdPlnChips();
00556         busyPlnChips=fardet->GetBusyPlnChips();
00557         deadShldChips=fardet->GetDeadShldChips();
00558         hotShldChips=fardet->GetHotShldChips();
00559         coldShldChips=fardet->GetColdShldChips();
00560         busyShldChips=fardet->GetBusyShldChips();
00561         liBox=fardet->GetLiBox();
00562         liLed=fardet->GetLiLed();
00563         liPulseHeight=fardet->GetLiPulseHeight();
00564         liPulseWidth=fardet->GetLiPulseWidth();
00565         tpmtBox=fardet->GetTpmtBox();
00566         tpmtNanosec=fardet->GetTpmtNanosec();
00567         sparsErrors=fardet->GetSparsErrors();
00568         etcErrors=fardet->GetEtcErrors();
00569         spillStatus=fardet->GetSpillStatus();
00570         spillType=fardet->GetSpillType();
00571         spillGpsError=fardet->GetSpillGpsError();
00572         liChannels=fardet->GetLiChannels();
00573         hitPlnChannels=fardet->GetHitPlnChannels();
00574         hitShldChannels=fardet->GetHitShldChannels();
00575 
00576         TDirectory* tmpddd = gDirectory;
00577         fDataQualityFile->cd();
00578         fDataQualityTree->Fill();
00579         gDirectory = tmpddd;
00580 
00581         MSG("FarDetDataQualityModule",Msg::kDebug) 
00582           << "  *** Data Quality *** " << endl
00583           << "   run = " << run << endl
00584           << "   subrun = " << subrun << endl
00585           << "   snarl = " << snarl << endl
00586           << "   date = " << date << endl
00587           << "   time = " << time << endl
00588           << "   timeframe = " << timeframe << endl
00589           << "   microsec = " << microsec << endl
00590           << "   nanosec = " << nanosec << endl
00591           << "   crateMask = " << crateMask << endl
00592           << "   deadPlnChips = " << deadPlnChips << endl
00593           << "   hotPlnChips = " << hotPlnChips << endl
00594           << "   coldPlnChips = " << coldPlnChips << endl
00595           << "   busyPlnChips = " << busyPlnChips << endl
00596           << "   deadShldChips = " << deadShldChips << endl
00597           << "   hotShldChips = " << hotShldChips << endl
00598           << "   coldShldChips = " << coldShldChips << endl
00599           << "   busyShldChips = " << busyShldChips << endl
00600           << "   liBox = " << liBox << endl
00601           << "   liLed = " << liLed << endl
00602           << "   liPulseHeight = " << liPulseHeight << endl
00603           << "   liPulseWidth = " << liPulseWidth << endl
00604           << "   tpmtBox = " << tpmtBox << endl
00605           << "   tpmtNanosec = " << tpmtNanosec << endl
00606           << "   sparsErrors = " << sparsErrors << endl
00607           << "   etcErrors = " << etcErrors << endl
00608           << "   spillStatus = " << spillStatus << endl
00609           << "   spillType = " << spillType << endl
00610           << "   spillGpsError = " << spillGpsError << endl
00611           << "   liChannels = " << liChannels << endl
00612           << "   hitPlnChannels = " << hitPlnChannels << endl
00613           << "   hitShldChannels = " << hitShldChannels << endl;
00614       }
00615 
00616     }
00617   }
00618 
00619   return result;
00620 }

Int_t FarDetDataQualityModule::ApplyFilter ( FarDetDataQualityHandle cdh  )  [private]

Definition at line 1109 of file FarDetDataQualityModule.cxx.

References fFilterMaxBadChips, fFilterMaxChannels, fFilterMaxLiChannels, fFilterMinChannels, FarDetDataQualityHandle::GetDeadPlnChips(), FarDetDataQualityHandle::GetDeadShldChips(), FarDetDataQualityHandle::GetHitPlnChannels(), FarDetDataQualityHandle::GetLiChannels(), Msg::kDebug, and MSG.

Referenced by Reco().

01110 {
01111   Int_t filter=0;
01112 
01113    MSG("FarDetDataQualityModule",Msg::kDebug) 
01114     << "   ... QUALITY FILTER *** " << endl
01115     << "    Hit Channels = " << cdh->GetHitPlnChannels() << endl
01116     << "    Bad Channels = " << cdh->GetDeadPlnChips()+cdh->GetDeadShldChips() << endl
01117     << "    LI Channels = " << cdh->GetLiChannels() << endl;
01118 
01119   if( cdh->GetHitPlnChannels()>fFilterMinChannels
01120    && cdh->GetHitPlnChannels()<fFilterMaxChannels
01121    && cdh->GetDeadPlnChips()+cdh->GetDeadShldChips()<fFilterMaxBadChips
01122    && cdh->GetLiChannels()<fFilterMaxLiChannels 
01123     // DOESN'T WORK ON MONTE CARLO
01124     // && cdh->GetCrateMask()>=fFilterMinCrateMask 
01125   ) filter=1;
01126 
01127   MSG("FarDetDataQualityModule",Msg::kDebug) 
01128     << "     FILTER = " << filter << endl;
01129 
01130   return filter;
01131 }

void FarDetDataQualityModule::BeginJob ( void   )  [virtual]

Implement for notification of begin of job

Reimplemented from JobCModule.

Definition at line 115 of file FarDetDataQualityModule.cxx.

References Msg::kInfo, LiBoxMask, MSG, PlnMask, and ShldMask.

00116 {
00117   MSG("FarDetDataQualityModule",Msg::kInfo) << " *** FarDetDataQualityModule::BeginJob() *** " << endl;
00118 
00119   /*
00120   AlgFactory &af = AlgFactory::GetInstance();
00121   af.Register("AlgFarDetDataQuality","default","libFarDetDataQuality.so","AlgConfig");
00122   af.Register("AlgFarDetDeadChip","default","libFarDetDataQuality.so","AlgConfig");
00123   */
00124 
00125   Int_t tmpPlnMask[16][24]={
00126    { 1, 5, 9, 13, 17, -1, 
00127     21, 25, 29, 33, 37, 41, 
00128     45, 49, 53, 57, 61, -999, 
00129     -1, -1, -1, -1, -1, -1 },
00130    { 45, 49, 53, 57, 61, -999, 
00131     21, 25, 29, 33, 37, 41, 
00132     1, 5, 9, 13, 17, -1, 
00133     -1, -1, -1, -1, -1, -1 },
00134    { 65, 69, 73, 77, 81, -1, 
00135     85, 89, 93, 97, 101, 105, 
00136     109, 113, 117, 121, 125, -999, 
00137     -1, -1, -1, -1, -1, -1 },
00138    { 109, 113, 117, 121, 125, -999, 
00139     85, 89, 93, 97, 101, 105, 
00140     65, 69, 73, 77, 81, -1, 
00141     -1, -1, -1, -1, -1, -1 },
00142    { 129, 133, 137, 141, 145, -1, 
00143     149, 153, 157, 161, 165, 169, 
00144     173, 177, 181, 185, 189, -999, 
00145     -1, -1, -1, -1, -1, -1 },
00146    { 173, 177, 181, 185, 189, -999, 
00147     149, 153, 157, 161, 165, 169, 
00148     129, 133, 137, 141, 145, -1, 
00149     -1, -1, -1, -1, -1, -1 },
00150    { 193, 197, 201, 205, 209, -1, 
00151     213, 217, 221, 225, 229, -1, 
00152     233, 237, 241, 245, -1, -999, 
00153     -1, -1, -1, -1, -1, -1 },
00154    { 233, 237, 241, 245, -1, -999, 
00155     213, 217, 221, 225, 229, -1, 
00156     193, 197, 201, 205, 209, -1, 
00157     -1, -1, -1, -1, -1, -1 },
00158    { 250, 254, 258, 262, 266, -999, 
00159     270, 274, 278, 282, 286, 290, 
00160     294, 298, 302, 306, 310, -1, 
00161     -1, -1, -1, -1, -1, -1 },
00162    { 294, 298, 302, 306, 310, -1, 
00163     270, 274, 278, 282, 286, 290, 
00164     250, 254, 258, 262, 266, -999, 
00165     -1, -1, -1, -1, -1, -1 },
00166    { 314, 318, 322, 326, 330, -1, 
00167     334, 338, 342, 346, 350, 354, 
00168     358, 362, 366, 370, 374, -999, 
00169     -1, -1, -1, -1, -1, -1 },
00170    { 358, 362, 366, 370, 374, -1, 
00171     334, 338, 342, 346, 350, 354, 
00172     314, 318, 322, 326, 330, -999, 
00173     -1, -1, -1, -1, -1, -1 },
00174    { 378, 382, 386, 390, 394, -1, 
00175     398, 402, 406, 410, 414, 418, 
00176     422, 426, 430, 434, 438, -999, 
00177     -1, -1, -1, -1, -1, -1 },
00178    { 422, 426, 430, 434, 438, -1, 
00179     398, 402, 406, 410, 414, 418, 
00180     378, 382, 386, 390, 394, -999, 
00181     -1, -1, -1, -1, -1, -1 },
00182    { 442, 446, 450, 454, 458, -999, 
00183     462, 466, 470, 474, 478, 482, 
00184     -1, -1, -1, -1, -1, -1, 
00185     -1, -1, -1, -1, -1, -1 },
00186    { -1, -1, -1, -1, -1, -1, 
00187     462, 466, 470, 474, 478, 482, 
00188     442, 446, 450, 454, 458, -999, 
00189     -1, -1, -1, -1, -1, -1 },
00190   };
00191 
00192   for(Int_t i=0;i<16;i++){
00193     for(Int_t j=0;j<24;j++){
00194       PlnMask[i][j]=tmpPlnMask[i][j];
00195     }
00196   }
00197 
00198   Int_t tmpShldMask[16][6]={
00199     { 12,-1,-1,10,11,11 },
00200     { 12,-1,-1,10,11,11 },
00201     { 22,-1,-1,20,21,21 },
00202     { 22,-1,-1,20,21,21 },
00203     { 12,-1,-1,10,11,11 },
00204     { 12,-1,-1,10,11,11 },
00205     { 22,-1,-1,20,21,21 },
00206     { 22,-1,-1,20,21,21 },
00207     { 32,-1,-1,30,31,31 },
00208     { 32,-1,-1,30,31,31 },
00209     { 40,41,41,42,-1,-1 },
00210     { 40,41,41,42,-1,-1 },
00211     { 32,-1,-1,30,31,31 },
00212     { 32,-1,-1,30,31,31 },
00213     { 40,41,41,42,-1,-1 },
00214     { 40,41,41,42,-1,-1 },
00215   };
00216 
00217   for(Int_t i=0;i<16;i++){
00218     for(Int_t j=0;j<6;j++){
00219       ShldMask[i][j]=tmpShldMask[i][j];
00220     }
00221   }
00222 
00223   Int_t tmpLiBoxMask[22]={
00224     -1, -1,
00225     14, 1, 7, 8,
00226     4, 10, 13, 3,
00227     11, 5, 2, 12,
00228     0, 6, 9, 15,
00229     -1, -1, -1, -1 
00230   };
00231 
00232   for(Int_t i=0;i<22;i++){
00233     LiBoxMask[i]=tmpLiBoxMask[i];
00234   }
00235 }

void FarDetDataQualityModule::Config ( const Registry r  )  [virtual]

Return the actual configuration. If your module directly pulls its configuration from the fConfig Registry, you don't need to override this. Override if you have local config variables.

Reimplemented from JobCModule.

Definition at line 641 of file FarDetDataQualityModule.cxx.

References fFilterMaxBadChips, fFilterMaxChannels, fFilterMaxLiChannels, fFilterMinChannels, fFilterOnOff, fReducedSummaryOnOff, fSummaryOnOff, Registry::Get(), Msg::kInfo, and MSG.

00642 {
00643   MSG("FarDetDataQualityModule",Msg::kInfo) << " *** FarDetDataQualityModule::Config() *** " << endl;
00644 
00645   Int_t tmpint;
00646 
00647   if(r.Get("FilterOnOff",tmpint)) fFilterOnOff = tmpint;
00648   if(r.Get("FilterMinChannels",tmpint)) fFilterMinChannels = tmpint;
00649   if(r.Get("FilterMaxChannels",tmpint)) fFilterMaxChannels = tmpint;
00650   if(r.Get("FilterMaxBadChips",tmpint)) fFilterMaxBadChips = tmpint;
00651   if(r.Get("FilterMaxLiChannels",tmpint)) fFilterMaxLiChannels = tmpint;
00652   if(r.Get("SummaryOnOff",tmpint)) fSummaryOnOff = tmpint;
00653   if(r.Get("ReducedSummaryOnOff",tmpint)) fReducedSummaryOnOff = tmpint;
00654 
00655   MSG("FarDetDataQualityModule",Msg::kInfo) 
00656     << "  configuration: " << endl
00657     << "     FilterOnOff=" << fFilterOnOff << endl
00658     << "     FilterMinChannels=" << fFilterMinChannels << endl
00659     << "     FilterMaxChannels=" << fFilterMaxChannels << endl
00660     << "     FilterMaxBadChips=" << fFilterMaxBadChips << endl
00661     << "     FilterMaxLiChannels=" << fFilterMaxLiChannels << endl
00662     << "     SummaryOnOff=" << fSummaryOnOff << endl
00663     << "     ReducedSummaryOnOff=" << fReducedSummaryOnOff << endl;
00664 
00665   return;
00666 }

const Registry & FarDetDataQualityModule::DefaultConfig ( void   )  const [virtual]

Get the default configuration registry. This should normally be overridden. One useful idiom is to implement it like:

const Registry& MyModule::DefaultConfig() const { static Registry cfg; // never is destroyed if (cfg.Size()) return cfg; // already filled it // set defaults: cfg.Set("TheAnswer",42); cfg.Set("Units","unknown"); return cfg; }

Reimplemented from JobCModule.

Definition at line 622 of file FarDetDataQualityModule.cxx.

References fFilterMaxBadChips, fFilterMaxChannels, fFilterMaxLiChannels, fFilterMinChannels, fFilterOnOff, fReducedSummaryOnOff, fSummaryOnOff, Msg::kInfo, Registry::LockValues(), MSG, Registry::Set(), and Registry::UnLockValues().

00623 {
00624   MSG("FarDetDataQualityModule",Msg::kInfo) << " *** FarDetDataQualityModule::DefaultConfig() *** " << endl;
00625 
00626   static Registry r;
00627   r.SetName("FarDetDataQualityModule.config.default");
00628   r.UnLockValues();
00629   r.Set("FilterOnOff",fFilterOnOff);
00630   r.Set("FilterMinChannels",fFilterMinChannels);
00631   r.Set("FilterMaxChannels",fFilterMaxChannels);
00632   r.Set("FilterMaxBadChips",fFilterMaxBadChips);
00633   r.Set("FilterMaxLiChannels",fFilterMaxLiChannels);
00634   r.Set("SummaryOnOff",fSummaryOnOff);
00635   r.Set("ReducedSummaryOnOff",fReducedSummaryOnOff);
00636   r.LockValues();
00637 
00638   return r;
00639 }

void FarDetDataQualityModule::EndJob (  )  [virtual]

Implement for notification of end of job

Reimplemented from JobCModule.

Definition at line 677 of file FarDetDataQualityModule.cxx.

References fDataQualityFile, fDataQualityTree, fRunSummaryFile, fRunSummaryTree, Msg::kDebug, Msg::kInfo, and MSG.

00678 {
00679   MSG("FarDetDataQualityModule",Msg::kInfo) << " *** FarDetDataQualityModule::EndJob() *** " << endl;
00680 
00681   if(fDataQualityFile){
00682     MSG("FarDetDataQualityModule",Msg::kDebug) << " *** saving DATA QUALITY INFO to file *** " << endl;
00683     TDirectory* tmpddd = gDirectory;
00684     fDataQualityFile->cd();
00685     fDataQualityTree->Write();
00686     fDataQualityFile->Close();
00687     gDirectory = tmpddd;
00688     MSG("FarDetDataQualityModule",Msg::kDebug) << "    ... data saved to file " << endl;
00689   }
00690 
00691   if(fRunSummaryFile){
00692     MSG("FarDetDataQualityModule",Msg::kDebug) << " *** saving RUN SUMMARY INFO to file *** " << endl;
00693     TDirectory* tmpddd = gDirectory;
00694     fRunSummaryFile->cd();
00695     fRunSummaryTree->Write();
00696     fRunSummaryFile->Close();
00697     gDirectory = tmpddd;
00698     MSG("FarDetDataQualityModule",Msg::kDebug) << "    ... data saved to file *** " << endl;
00699   }
00700 
00701 }

void FarDetDataQualityModule::HandleCommand ( JobCommand command  )  [virtual]

Implement to handle a JobCommand

Reimplemented from JobCModule.

Definition at line 668 of file FarDetDataQualityModule.cxx.

References JobCommand::PopCmd(), and JobCommand::PopOpt().

00669 {
00670   TString cmd = command->PopCmd();
00671   if(cmd=="Set"){
00672     TString opt = command->PopOpt();
00673 
00674   }
00675 }

void FarDetDataQualityModule::ProcessBlock ( TObject *  obj  )  [private]

Definition at line 762 of file FarDetDataQualityModule.cxx.

References VaChip::AddVaChannel(), RawLiTpmtDigitsBlock::At(), date, fBadChipList, fBusyChipList, fColdPlnChips, fColdPlnChipsSM1, fColdPlnChipsSM2, fColdShldChips, fColdShldChipsSM1, fColdShldChipsSM2, fCrateMask, fCratePlnRates, fEnd, fEtcErrors, fHitPlnChannels, fHitShldChannels, fHotPlnChips, fLiChannels, fLiHeader, fRun, fSnarl, fSnarlHeader, fSparsErrors, fSpillServHeader, fSubRun, fTimeFrame, fTpmtBox, fTpmtChannels, fTpmtChipList, fUpdate, fVarcErrHeader, RawDigit::GetADC(), LiHeader::GetBox(), RawLIAdcSummaryBlock::GetCalibPoint(), RawLIAdcSummaryBlock::GetCalibType(), RawDigit::GetChannel(), RawChannelId::GetCrate(), RawVarcErrorInTfBlock::GetCrateId(), RawDigitDataBlock::GetDatumIter(), RawLIAdcSummaryBlock::GetLed(), SnarlHeader::GetNanosec(), VaChip::GetNanosec(), RawLiTpmtDigitsBlock::GetNumberOfDigits(), RawVarcErrorInTfBlock::GetNumberOfEtcErrors(), RawVarcErrorInTfBlock::GetNumberOfSparsErrors(), RawLIAdcSummaryBlock::GetPulseHeight(), RawLIAdcSummaryBlock::GetPulserBox(), RawLIAdcSummaryBlock::GetPulseWidth(), RawTpSinglesSummaryBlock::GetRates(), RawSnarlHeaderBlock::GetRun(), RawDaqHeaderBlock::GetRun(), RawSnarlHeaderBlock::GetSnarl(), RawSpillServerMonitorBlock::GetSpillData(), RawSnarlHeaderBlock::GetSubRun(), RawDaqHeaderBlock::GetSubRun(), RawDigit::GetTDC(), LiHeader::GetTimeFrame(), VarcErrHeader::GetTimeFrame(), RawDaqHeaderBlock::GetTimeFrameNum(), RawSnarlHeaderBlock::GetTimeFrameNum(), RawDaqHeaderBlock::GetTimeStamp(), LiHeader::GetTpmtBox(), RawSnarlHeaderBlock::GetTriggerTime(), RawChannelId::GetVaAdcSel(), RawChannelId::GetVaChannel(), RawChannelId::GetVaChip(), RawChannelId::GetVarcId(), RawChannelId::GetVmm(), id, mdSpillData_t::isKnown, VaChip::IsSameVaChip(), mdSpillData_t::isSpill, VaChip::kBusy, VaChip::kCold, Msg::kDebug, VaChip::kGood, VaChip::kHot, Msg::kInfo, Msg::kVerbose, Msg::kWarning, LiBoxMask, microsec, MSG, n, nanosec, PlnMask, run, SnarlHeader::SetCrateMask(), VarcErrHeader::SetEtcErrors(), SpillServHeader::SetHeader(), LiHeader::SetHeader(), VarcErrHeader::SetHeader(), SnarlHeader::SetHeader(), SnarlHeader::SetHitPlnChannels(), SnarlHeader::SetHitShldChannels(), SnarlHeader::SetLiChannels(), VarcErrHeader::SetSparsErrors(), LiHeader::SetTpmtBox(), LiHeader::SetTpmtChannels(), VaChip::SetVaChipStatus(), ShldMask, snarl, mdSpillData_t::spillTimeError_nsec, subrun, time, timeframe, RawVarcErrorInTfBlock::UnpackEtcError(), and RawVarcErrorInTfBlock::UnpackSparsError().

Referenced by Reco().

00763 {
00764   Int_t id,chid;
00765   Int_t plane,shld;
00766   Int_t crate,varc,vmm,vaadc,vachip,vachannel;
00767   Int_t vaparam,vatime;
00768   Int_t calibpoint,calibtype,box,led,pulseheight,pulsewidth;
00769   UShort_t timeBlock,crateid,varcId,etcId,errCode;
00770   Int_t spillstatus,spilltype,spillerror;
00771   Int_t licrate,liflag;
00772 
00773   /***********************************
00774    * S T A R T / E N D   B L O C K S *
00775    ***********************************/
00776 
00777   if(obj->InheritsFrom("RawRunStartBlock")){
00778      MSG("FarDetDataQualityModule",Msg::kDebug) << " *** START OF RUN *** " << endl; 
00779     fEnd=0;
00780   }
00781 
00782   if(obj->InheritsFrom("RawRunEndBlock")){
00783     MSG("FarDetDataQualityModule",Msg::kDebug) << " *** END OF RUN *** " << endl; 
00784     if(fEnd==0){ fEnd=1; fUpdate=1; }
00785   }
00786 
00787   if(obj->InheritsFrom("RawSubRunEndBlock")){
00788     MSG("FarDetDataQualityModule",Msg::kDebug) << " *** END OF SUBRUN *** " << endl; 
00789     if(fEnd==0){ fEnd=1; fUpdate=1; }
00790   }
00791 
00792   /*****************************
00793    * H E A D E R   B L O C K S *
00794    *****************************/  
00795 
00796   if(obj->InheritsFrom("RawDaqHeaderBlock")){
00797     MSG("FarDetDataQualityModule",Msg::kDebug) << " ... found RawDaqHeaderBlock " << endl;
00798     RawDaqHeaderBlock* rdb = (RawDaqHeaderBlock*)(obj);
00799     run = rdb->GetRun();
00800     subrun = rdb->GetSubRun();
00801     snarl = -1;
00802     timeframe = rdb->GetTimeFrameNum();
00803     date = (((VldTimeStamp)(rdb->GetTimeStamp())).GetSec()-1059696000)/(3600*24);
00804     time = (((VldTimeStamp)(rdb->GetTimeStamp())).GetSec()-1059696000)%(3600*24);
00805     nanosec = (Int_t)(1.000*((VldTimeStamp)(rdb->GetTimeStamp())).GetNanoSec()); 
00806     microsec = (Int_t)(0.001*((VldTimeStamp)(rdb->GetTimeStamp())).GetNanoSec()); 
00807     fSnarlHeader->SetHeader(run,subrun,snarl,date,time,timeframe,microsec,nanosec);
00808     if(fRun<0||run!=fRun){
00809       fRun=run;
00810       MSG("FarDetDataQualityModule",Msg::kInfo) << "    *** RUN = " << fRun << " *** " << endl;  
00811     }
00812     if(fSubRun<0||subrun!=fSubRun){
00813       fSubRun=subrun;
00814       MSG("FarDetDataQualityModule",Msg::kInfo) << "    *** SUBRUN = " << fSubRun << " *** " << endl;
00815     }
00816     if(fTimeFrame<0||timeframe!=fTimeFrame){
00817       fTimeFrame=timeframe;
00818       MSG("FarDetDataQualityModule",Msg::kInfo) << "    *** " << fTimeFrame << " seconds *** " << endl;
00819     }
00820   }
00821 
00822   if(obj->InheritsFrom("RawSnarlHeaderBlock")){
00823     MSG("FarDetDataQualityModule",Msg::kDebug) << " ... found RawSnarlHeaderBlock " << endl;
00824     RawSnarlHeaderBlock* rdb = (RawSnarlHeaderBlock*)(obj);
00825     run = rdb->GetRun();
00826     subrun = rdb->GetSubRun();
00827     snarl = rdb->GetSnarl();
00828     timeframe = rdb->GetTimeFrameNum();
00829     date = (((VldTimeStamp)(rdb->GetTriggerTime())).GetSec()-1059696000)/(3600*24);
00830     time = (((VldTimeStamp)(rdb->GetTriggerTime())).GetSec()-1059696000)%(3600*24);
00831     nanosec = (Int_t)(1.000*((VldTimeStamp)(rdb->GetTriggerTime())).GetNanoSec()); 
00832     microsec = (Int_t)(0.001*((VldTimeStamp)(rdb->GetTriggerTime())).GetNanoSec()); 
00833     fSnarlHeader->SetHeader(run,subrun,snarl,date,time,timeframe,microsec,nanosec);
00834     if(fRun<0||run!=fRun){
00835       fRun=run;
00836       MSG("FarDetDataQualityModule",Msg::kInfo) << "    *** RUN = " << fRun << " *** " << endl;
00837     }
00838     if(fSubRun<0||subrun!=fSubRun){
00839       fSubRun=subrun;
00840       MSG("FarDetDataQualityModule",Msg::kInfo) << "    *** SUBRUN = " << fSubRun << " *** " << endl;
00841     }
00842     if(fTimeFrame<0||timeframe!=fTimeFrame){
00843       fTimeFrame=timeframe;
00844       MSG("FarDetDataQualityModule",Msg::kInfo) << "    *** " << fTimeFrame << " seconds *** " << endl;
00845     }
00846   }
00847 
00848   /*******************************
00849    * M O N I T O R   B L O C K S *
00850    *******************************/
00851 
00852   if(obj->InheritsFrom("RawTpSinglesSummaryBlock")){
00853     MSG("FarDetDataQualityModule",Msg::kDebug) << " ... found RawTpSinglesSummaryBlock " << endl;  
00854     RawTpSinglesSummaryBlock* rdb = (RawTpSinglesSummaryBlock*)(obj);
00855     fCrateMask=0;
00856     fHotPlnChips=0; 
00857     fColdPlnChips=0; fColdPlnChipsSM1=0; fColdPlnChipsSM2=0;
00858     fColdShldChips=0; fColdShldChipsSM1=0; fColdShldChipsSM2=0;
00859     for( Int_t myint=0; myint<32; myint++){ fCratePlnRates[myint]=0; }
00860     fBadChipList->Delete();
00861     licrate=-1;
00862     if( ( fLiHeader->GetTimeFrame()==fTimeFrame )
00863      && ( fLiHeader->GetBox()>-1 || fLiHeader->GetTpmtBox()>-1 ) ){
00864       if(licrate<0 && fLiHeader->GetBox()>-1) licrate=2*(fLiHeader->GetBox()/2);
00865       if(licrate<0 && fLiHeader->GetTpmtBox()>-1) licrate=2*(fLiHeader->GetTpmtBox()/2);
00866     }
00867     typedef std::map<RawChannelId,UInt_t> RCIdToRateMap;
00868     const RCIdToRateMap& rates = rdb->GetRates();  
00869     RCIdToRateMap::const_iterator rateItr = rates.begin();
00870     RCIdToRateMap::const_iterator rateEnd = rates.end();
00871     while ( rateItr != rateEnd ) {
00872       RawChannelId rawch = rateItr->first;
00873       crate = rawch.GetCrate();
00874       varc = rawch.GetVarcId();
00875       vmm = rawch.GetVmm();
00876       vaadc = rawch.GetVaAdcSel();
00877       vachip = rawch.GetVaChip();
00878       vachannel = -1; 
00879       plane = -1; 
00880       shld = -1;
00881       vaparam = rateItr->second; 
00882       vatime = 0;
00883       if( crate<16 && varc<3 && vmm<6 && vaadc<2 && vachip<3 ){
00884         plane=PlnMask[crate][6*varc+vmm]; liflag=0;
00885         if( plane<-1 ) shld=ShldMask[crate][3*vaadc+vachip];
00886         if( plane>=0 ) fCratePlnRates[2*crate+vaadc]+=vaparam;
00887         if( crate>=licrate && crate<=licrate+1 ) liflag=1;
00888         if( plane>=0 || shld>=0 ){
00889           if( (vaparam<50)||(vaparam>2500&&liflag==0&&shld<0) ){
00890             chid=-1;
00891             for(id=0;id<1+fBadChipList->GetLast();id++){
00892               if(chid<0){
00893                 VaChip* mychip = (VaChip*)(fBadChipList->At(id));
00894                 if(mychip->IsSameVaChip(crate,varc,vmm,vaadc,vachip)) chid=id;
00895               }
00896             }
00897             if(chid<0){
00898               VaChip* mynewchip = new VaChip(crate,varc,vmm,vaadc,vachip,plane,shld,vatime);
00899               if(vaparam<50) mynewchip->SetVaChipStatus(VaChip::kCold);
00900               if(vaparam>2500) mynewchip->SetVaChipStatus(VaChip::kHot);
00901               if(shld>=0){ 
00902                 if(vaparam<50){
00903                   fColdPlnChips++; 
00904                   if( shld<29 ) fColdShldChipsSM1++; if( shld>29 ) fColdShldChipsSM2++; }
00905               }
00906               if(plane>=0){ 
00907                 if(vaparam<50){
00908                   fColdPlnChips++;
00909                   if( plane<249 ) fColdPlnChipsSM1++; if( plane>249 ) fColdPlnChipsSM2++; }
00910                 if(vaparam>2500){
00911                   fHotPlnChips++; } 
00912               }
00913               fBadChipList->Add(mynewchip);
00914               MSG("FarDetDataQualityModule",Msg::kVerbose) << "    ... BAD CHIP " << crate << "-" << varc << "-" << vmm << "-" << vaadc << "-" << vachip << "  " << vaparam << endl;
00915             }
00916           }
00917         }
00918       }   
00919       rateItr++;
00920     }
00921     for( Int_t myint=0; myint<32; myint++){ 
00922       if( fCratePlnRates[myint]>5000 ) fCrateMask++; 
00923     }
00924     fSnarlHeader->SetCrateMask(fCrateMask);
00925     fUpdate=1;
00926   }
00927  
00928   if(obj->InheritsFrom("RawVarcErrorInTfBlock")){
00929     MSG("FarDetDataQualityModule",Msg::kDebug) << " ... found RawVarcErrorInTfBlock" << endl;
00930     RawVarcErrorInTfBlock* rdb = (RawVarcErrorInTfBlock*)(obj);
00931     timeframe=fTimeFrame;
00932     if( timeframe!=fVarcErrHeader->GetTimeFrame() ){
00933       fVarcErrHeader->SetHeader(timeframe);
00934       fSparsErrors=0; fEtcErrors=0;
00935       fVarcErrHeader->SetSparsErrors(0); 
00936       fVarcErrHeader->SetEtcErrors(0);
00937     }
00938     crateid = rdb->GetCrateId()-1792;
00939     crate=crateid;
00940     if( !(crate>=0 && crate<16) ){
00941       MSG("FarDetDataQualityModule",Msg::kWarning) << "   ERROR IN VARC ERROR BLOCK: CRATEID = " << crate << endl;
00942     }
00943     if( crate>=0 && crate<16 ){
00944       fSparsErrors+=rdb->GetNumberOfSparsErrors();
00945       fVarcErrHeader->SetSparsErrors(fSparsErrors);
00946       for(Int_t k=0;k<rdb->GetNumberOfSparsErrors();k++){
00947         rdb->UnpackSparsError(k,timeBlock,varcId,errCode);
00948         // unpack errors here
00949       }
00950       MSG("FarDetDataQualityModule",Msg::kVerbose) << "    ... CRATE: " << crateid << " SPARS ERRORS: " << rdb->GetNumberOfSparsErrors() << " (CURRENT TOTAL IN TF: " << fSparsErrors << ")" << endl;
00951       fEtcErrors+=rdb->GetNumberOfEtcErrors(); 
00952       fVarcErrHeader->SetEtcErrors(fEtcErrors);
00953       for(Int_t k=0;k<rdb->GetNumberOfEtcErrors();k++){
00954         rdb->UnpackEtcError(k,timeBlock,varcId,etcId,errCode);
00955         // unpack errors here
00956       }
00957       MSG("FarDetDataQualityModule",Msg::kVerbose) << "    ... CRATE: " << crateid << " ETC ERRORS: " << rdb->GetNumberOfEtcErrors() << " (CURRENT TOTAL IN TF: " << fEtcErrors << ")" << endl;
00958     }
00959   }
00960 
00961   if(obj->InheritsFrom("RawSpillServerMonitorBlock")){
00962     MSG("FarDetDataQualityModule",Msg::kDebug) << " ... found RawSpillServerMonitorBlock " << endl;
00963     RawSpillServerMonitorBlock* rdb = (RawSpillServerMonitorBlock*)(obj);
00964     timeframe=fTimeFrame;
00965     const mdSpillData_t& spilldata = rdb->GetSpillData();
00966     spillstatus = spilldata.isKnown;
00967     spilltype = spilldata.isSpill;
00968     spillerror = spilldata.spillTimeError_nsec;
00969     fSpillServHeader->SetHeader(timeframe,spillstatus,spilltype,spillerror);
00970     MSG("FarDetDataQualityModule",Msg::kVerbose) << "    ... SPILL:  timeframe=" << timeframe << " status=" << spillstatus << " type=" << spilltype << " error=" << spillerror << endl;
00971   }
00972 
00973   if(obj->InheritsFrom("RawLiTpmtDigitsBlock")){
00974     MSG("FarDetDataQualityModule",Msg::kDebug) << " ... found RawLiTpmtDigitsBlock " << endl; 
00975     RawLiTpmtDigitsBlock* rdb = (RawLiTpmtDigitsBlock*)(obj);
00976     timeframe=fTimeFrame;
00977     calibpoint=-1;
00978     calibtype=-1;
00979     box=-1;
00980     led=-1;
00981     pulseheight=-1;
00982     pulsewidth=-1;
00983     fTpmtChannels=0;
00984     fTpmtBox=-1;
00985     fLiHeader->SetTpmtChannels(0); 
00986     fTpmtChipList->Delete();
00987     for(Int_t n=0;n<rdb->GetNumberOfDigits();n++){
00988       RawDigit* rd = (RawDigit*)(rdb->At(n));
00989       if(rd){
00990         RawChannelId rawch = (RawChannelId)(rd->GetChannel());
00991         crate = rawch.GetCrate();
00992         varc = rawch.GetVarcId();
00993         vmm = rawch.GetVmm();
00994         vaadc = rawch.GetVaAdcSel();
00995         vachip = rawch.GetVaChip();
00996         vachannel = rawch.GetVaChannel();
00997         plane = -1; 
00998         shld = -1;
00999         vaparam = (Int_t)(rd->GetADC());
01000         vatime = (Int_t)(1.5625*rd->GetTDC());
01001         if( crate<16 && varc<3 && vmm<6 && vaadc<2 && vachip<3 
01002          && vachannel>=2 && vachannel<=17 ){
01003           vachannel = LiBoxMask[vachannel];
01004           fTpmtBox=vachannel; box=vachannel;
01005           VaChip* mynewchip = new VaChip(crate,varc,vmm,vaadc,vachip,plane,shld,vatime);
01006           mynewchip->SetVaChipStatus(VaChip::kGood);
01007           mynewchip->AddVaChannel(vachannel,vaparam);
01008           fTpmtChipList->Add(mynewchip);
01009           fTpmtChannels++;
01010         }
01011       }
01012     }
01013     fLiHeader->SetTpmtBox(fTpmtBox);
01014     fLiHeader->SetTpmtChannels(fTpmtChannels);
01015     if( timeframe!=fLiHeader->GetTimeFrame() ){
01016       fLiHeader->SetHeader(timeframe,calibpoint,calibtype,box,led,pulseheight,pulsewidth);
01017     }
01018     MSG("FarDetDataQualityModule",Msg::kDebug) << "    ... TPMT BOX = " << fTpmtBox << endl; 
01019     MSG("FarDetDataQualityModule",Msg::kVerbose) << "      ... tpmt hits " << fTpmtChannels << endl;
01020   }
01021 
01022   /*********************
01023    * L I   B L O C K S *
01024    *********************/
01025 
01026   if(obj->InheritsFrom("RawLIAdcSummaryBlock")){
01027     MSG("FarDetDataQualityModule",Msg::kDebug) << " ... found RawLIAdcSummaryBlock " << endl;
01028     RawLIAdcSummaryBlock* rdb = (RawLIAdcSummaryBlock*)(obj);
01029     timeframe=fTimeFrame;
01030     calibpoint=rdb->GetCalibPoint();
01031     calibtype=rdb->GetCalibType();
01032     box=rdb->GetPulserBox();
01033     led=rdb->GetLed();
01034     pulseheight=rdb->GetPulseHeight();
01035     pulsewidth=rdb->GetPulseWidth();
01036     fLiHeader->SetHeader(timeframe,calibpoint,calibtype,box,led,pulseheight,pulsewidth);
01037     MSG("FarDetDataQualityModule",Msg::kDebug) << "    ... BOX = " << box << " LED = " << led << " " << endl;
01038   }
01039 
01040   /***************************
01041    * S N A R L   B L O C K S *
01042    ***************************/
01043 
01044   if(obj->InheritsFrom("RawDigitDataBlock")){
01045     MSG("FarDetDataQualityModule",Msg::kDebug) << " ... found RawDigitDataBlock " << endl;
01046     RawDigitDataBlock* rdb = (RawDigitDataBlock*)(obj);
01047     fBusyChipList->Delete();
01048     fLiChannels=0; fHitPlnChannels=0; fHitShldChannels=0; 
01049     fSnarlHeader->SetLiChannels(0); 
01050     fSnarlHeader->SetHitPlnChannels(0); fSnarlHeader->SetHitShldChannels(0);
01051     TIter digitr = rdb->GetDatumIter();
01052     while(RawDigit *rd = (RawDigit*)(digitr())){
01053       if(rd){
01054         RawChannelId rawch = (RawChannelId)(rd->GetChannel());
01055         crate = rawch.GetCrate();
01056         varc = rawch.GetVarcId();
01057         vmm = rawch.GetVmm();
01058         vaadc = rawch.GetVaAdcSel();
01059         vachip = rawch.GetVaChip();
01060         vachannel = rawch.GetVaChannel();
01061         plane = -1; 
01062         shld = -1;
01063         vaparam = (Int_t)(rd->GetADC());
01064         vatime = (Int_t)(1.5625*rd->GetTDC());
01065         MSG("FarDetDataQualityModule",Msg::kVerbose) << "    ... RAW DIGIT :  " << crate << "-" << varc << "-" << vmm << "-" << vaadc << "-" << vachip << "-" << vachannel << "  " << vaparam << "  " << vatime << " (" << vatime-fSnarlHeader->GetNanosec() << ") " << endl;
01066         licrate=-1;
01067         if( crate<16 && varc<3 && vmm<6 && vaadc<2 && vachip<3 
01068          && vachannel>=2 && vachannel<=17 ){
01069           plane=PlnMask[crate][6*varc+vmm];  
01070           if(plane<-1) shld=ShldMask[crate][3*vaadc+vachip];
01071           if( plane>=0 || shld>=0 ){
01072             if( vatime-fSnarlHeader->GetNanosec()<-150 ){
01073               chid=-1;
01074               for(id=0;id<1+fBusyChipList->GetLast();id++){
01075                 if(chid<0){
01076                   VaChip* mychip = (VaChip*)(fBusyChipList->At(id));
01077                   if( mychip->IsSameVaChip(crate,varc,vmm,vaadc,vachip)
01078                    && mychip->GetNanosec()-vatime>-100 && mychip->GetNanosec()-vatime<100 ) chid=id;
01079                 }
01080               }
01081               if(chid<0){
01082                 VaChip* mynewchip = new VaChip(crate,varc,vmm,vaadc,vachip,plane,shld,vatime);
01083                 mynewchip->AddVaChannel(vachannel,vaparam);
01084                 mynewchip->SetVaChipStatus(VaChip::kBusy);
01085                 fBusyChipList->Add(mynewchip);
01086               }
01087             }
01088             else{
01089               if( ( plane>=0 && fLiHeader->GetTimeFrame()==fTimeFrame )
01090                && ( fLiHeader->GetBox()>-1 || fLiHeader->GetTpmtBox()>-1 ) ){
01091                 if(licrate<0 && fLiHeader->GetBox()>-1) licrate=2*(fLiHeader->GetBox()/2);
01092                 if(licrate<0 && fLiHeader->GetTpmtBox()>-1) licrate=2*(fLiHeader->GetTpmtBox()/2);
01093                 if(crate>=licrate && crate<=licrate+1) fLiChannels++;
01094               }
01095               if(plane>=0) fHitPlnChannels++; if(shld>=0) fHitShldChannels++;
01096             }
01097           }
01098         }
01099       }
01100     }
01101     fSnarlHeader->SetLiChannels(fLiChannels); 
01102     fSnarlHeader->SetHitPlnChannels(fHitPlnChannels); fSnarlHeader->SetHitShldChannels(fHitShldChannels);
01103     fSnarl=1;
01104   }
01105 
01106   return;
01107 }

void FarDetDataQualityModule::ProcessHeader ( TObject *  obj  )  [private]

Definition at line 703 of file FarDetDataQualityModule.cxx.

References date, fRun, fSnarlHeader, fSubRun, fTimeFrame, RawDaqHeader::GetRun(), RawDaqSnarlHeader::GetSnarl(), RawDaqHeader::GetSubRun(), RawDaqHeader::GetTimeFrameNum(), VldContext::GetTimeStamp(), RecMinosHdr::GetVldContext(), Msg::kDebug, Msg::kInfo, microsec, MSG, nanosec, run, SnarlHeader::SetHeader(), snarl, subrun, time, and timeframe.

Referenced by Reco().

00704 {
00705   // Daq Header
00706   if(obj->InheritsFrom("RawDaqHeader")){
00707     MSG("FarDetDataQualityModule",Msg::kDebug) << " ... found RawDaqHeader " << endl;
00708     RawDaqHeader* hdr = (RawDaqHeader*)(obj);
00709     run = hdr->GetRun();
00710     subrun = hdr->GetSubRun();
00711     snarl = -1;
00712     timeframe = hdr->GetTimeFrameNum();
00713     date = (((VldTimeStamp)(hdr->GetVldContext().GetTimeStamp())).GetSec()-1059696000)/(3600*24);
00714     time = (((VldTimeStamp)(hdr->GetVldContext().GetTimeStamp())).GetSec()-1059696000)%(3600*24);
00715     nanosec = (Int_t)(1.000*((VldTimeStamp)(hdr->GetVldContext().GetTimeStamp())).GetNanoSec()); 
00716     microsec = (Int_t)(0.001*((VldTimeStamp)(hdr->GetVldContext().GetTimeStamp())).GetNanoSec()); 
00717     fSnarlHeader->SetHeader(run,subrun,snarl,date,time,timeframe,microsec,nanosec);
00718     if(fRun<0||run!=fRun){
00719       fRun=run;
00720       MSG("FarDetDataQualityModule",Msg::kInfo) << "    *** RUN = " << fRun << " *** " << endl;
00721     }
00722     if(fSubRun<0||subrun!=fSubRun){
00723       fSubRun=subrun;
00724       MSG("FarDetDataQualityModule",Msg::kInfo) << "    *** SUBRUN = " << fSubRun << " *** " << endl;
00725     }
00726     if(fTimeFrame<0||timeframe!=fTimeFrame){
00727       fTimeFrame=timeframe;
00728       MSG("FarDetDataQualityModule",Msg::kInfo) << "    *** " << fTimeFrame << " seconds *** " << endl;
00729     }
00730   }
00731 
00732   // DaqSnarl Header
00733   if(obj->InheritsFrom("RawDaqSnarlHeader")){
00734     MSG("FarDetDataQualityModule",Msg::kDebug) << " ... found RawDaqSnarlHeader " << endl;
00735     RawDaqSnarlHeader* hdr = (RawDaqSnarlHeader*)(obj);
00736     run = hdr->GetRun();
00737     subrun = hdr->GetSubRun();
00738     snarl = hdr->GetSnarl();
00739     timeframe = hdr->GetTimeFrameNum();
00740     date = (((VldTimeStamp)(hdr->GetVldContext().GetTimeStamp())).GetSec()-1059696000)/(3600*24);
00741     time = (((VldTimeStamp)(hdr->GetVldContext().GetTimeStamp())).GetSec()-1059696000)%(3600*24);
00742     nanosec = (Int_t)(1.000*((VldTimeStamp)(hdr->GetVldContext().GetTimeStamp())).GetNanoSec()); 
00743     microsec = (Int_t)(0.001*((VldTimeStamp)(hdr->GetVldContext().GetTimeStamp())).GetNanoSec()); 
00744     fSnarlHeader->SetHeader(run,subrun,snarl,date,time,timeframe,microsec,nanosec);
00745     if(fRun<0||run!=fRun){
00746       fRun=run;
00747       MSG("FarDetDataQualityModule",Msg::kInfo) << "    *** RUN = " << fRun << " *** " << endl;    
00748     }
00749     if(fSubRun<0||subrun!=fSubRun){
00750       fSubRun=subrun;
00751       MSG("FarDetDataQualityModule",Msg::kInfo) << "    *** SUBRUN = " << fSubRun << " *** " << endl;
00752     }
00753     if(fTimeFrame<0||timeframe!=fTimeFrame){
00754       fTimeFrame=timeframe;
00755       MSG("FarDetDataQualityModule",Msg::kInfo) << "    *** " << fTimeFrame << " seconds *** " << endl;
00756     }
00757   }
00758 
00759   return;
00760 }

JobCResult FarDetDataQualityModule::Reco ( MomNavigator mom  )  [virtual]

Implement this for read-write access to the MomNavigator

Reimplemented from JobCModule.

Definition at line 237 of file FarDetDataQualityModule.cxx.

References MomNavigator::AdoptFragment(), ApplyFilter(), coldPlnChips, coldPlnChipsSM1, coldPlnChipsSM2, coldShldChips, coldShldChipsSM1, coldShldChipsSM2, cratePlnRates, date, etcErrors, fBadChipList, fBusyChipList, fColdPlnChips, fColdPlnChipsSM1, fColdPlnChipsSM2, fColdShldChips, fColdShldChipsSM1, fColdShldChipsSM2, fCratePlnRates, fEtcErrors, fFilter, fFilterOnOff, fHotPlnChips, CandRecord::FindCandHandle(), fLiHeader, MomNavigator::FragmentIter(), fReducedSummaryOnOff, fRunSummaryFile, fRunSummaryTree, fSnarl, fSnarlHeader, fSparsErrors, fSpillServHeader, fSummaryOnOff, fTimeFrame, fTpmtChipList, fUpdate, fVarcErrHeader, AlgFactory::GetAlgHandle(), LiHeader::GetBox(), SnarlHeader::GetDate(), MomNavigator::GetFragment(), AlgFactory::GetInstance(), LiHeader::GetLed(), RawRecord::GetRawBlockIter(), RawRecord::GetRawHeader(), SnarlHeader::GetRun(), SnarlHeader::GetSnarl(), SnarlHeader::GetSubRun(), SnarlHeader::GetTime(), LiHeader::GetTimeFrame(), SnarlHeader::GetTimeFrame(), VarcErrHeader::GetTimeFrame(), LiHeader::GetTpmtBox(), RecMinosHdr::GetVldContext(), hotPlnChips, Msg::kDebug, JobCResult::kPassed, Msg::kWarning, liBox, liLed, FarDetDataQuality::MakeCandidate(), MSG, passRate, ProcessBlock(), ProcessHeader(), RScoldPlnChips, RScoldPlnChipsSM1, RScoldPlnChipsSM2, RScoldShldChips, RScoldShldChipsSM1, RScoldShldChipsSM2, RScratePlnRates, RSdate, RSetcErrors, RShotPlnChips, RSlibox, RSliled, RSpassRate, RSrun, RSsnarlRate, RSsparsErrors, RSsubrun, RStime, RStimeframe, run, CandRecord::SecureCandHandle(), CandContext::SetCandRecord(), CandContext::SetDataIn(), JobCResult::SetFailed(), CandHandle::SetName(), JobCResult::SetPassed(), CandHandle::SetTitle(), snarl, snarlRate, sparsErrors, subrun, time, and timeframe.

00238 {
00239   MSG("FarDetDataQualityModule",Msg::kDebug) << " *** FarDetDataQualityModule::Reco(...) *** " << endl;
00240 
00241   fSnarl=0; fFilter=0; fUpdate=0;
00242   JobCResult result(JobCResult::kPassed);
00243 
00244   // process data blocks
00245   VldContext vldc;
00246   Int_t foundit = 0;
00247   TObject* momobject = 0;
00248   TIter momitr(mom->FragmentIter());
00249   while((momobject = momitr())){
00250     if(momobject->InheritsFrom("RawRecord")){
00251       foundit=1;
00252       MSG("FarDetDataQualityModule",Msg::kDebug) << "  *** FOUND RAW RECORD ***  " << endl;
00253       RawRecord* rawrec = dynamic_cast<RawRecord*>(momobject);
00254 
00255       // process the raw header
00256       vldc = rawrec->GetRawHeader()->GetVldContext();
00257       this->ProcessHeader((TObject*)(rawrec->GetRawHeader()));
00258 
00259       // process the raw blocks
00260       TIter rawrecitr = rawrec->GetRawBlockIter();
00261       TObject* tob = 0;
00262       while((tob = rawrecitr())){
00263         MSG("FarDetDataQualityModule",Msg::kDebug) << tob->GetName() << endl;
00264         this->ProcessBlock(tob);
00265       }
00266 
00267     }
00268   }
00269 
00270   if( !foundit ){
00271     MSG("FarDetDataQualityModule",Msg::kWarning) << "  *** FAILED TO FIND RAW RECORD ***  " << endl; 
00272     return result.SetFailed();
00273   }
00274 
00275   // make data quality handle
00276   if( fSnarl ){
00277     MSG("FarDetDataQualityModule",Msg::kDebug) << "  *** MAKE HANDLE *** " << endl;
00278     run=fSnarlHeader->GetRun(); 
00279     snarl=fSnarlHeader->GetSnarl();
00280  
00281     CandRecord* candrec = dynamic_cast<CandRecord*>(mom->GetFragment("CandRecord", "PrimaryCandidateRecord"));
00282     if(candrec==0) {
00283       CandHeader *head = new CandHeader(vldc,run,snarl);
00284       candrec = new CandRecord(head);
00285       candrec->SetName("PrimaryCandidateRecord");
00286       candrec->SetTitle("Created from RawRecord.");
00287       mom->AdoptFragment(candrec);
00288     }
00289 
00290     AlgFactory &af = AlgFactory::GetInstance();
00291     AlgHandle ah = af.GetAlgHandle("AlgFarDetDataQuality", "default");
00292   
00293     TObjArray* mycx = new TObjArray();    
00294     mycx->Add(fSnarlHeader); 
00295     mycx->Add(fBadChipList); 
00296     mycx->Add(fBusyChipList);
00297     mycx->Add(fLiHeader); 
00298     mycx->Add(fTpmtChipList);
00299     mycx->Add(fVarcErrHeader);
00300     mycx->Add(fSpillServHeader);
00301 
00302     CandContext cx(this, mom);
00303     cx.SetCandRecord(candrec);
00304     cx.SetDataIn(mycx);
00305     FarDetDataQualityHandle fardet = FarDetDataQuality::MakeCandidate(ah,cx);
00306     fardet.SetName("FarDetDataQualityHandle");
00307     fardet.SetTitle(TString("Created by FarDetDataQualityModule"));
00308 
00309     candrec->SecureCandHandle(fardet);
00310 
00311     delete mycx;
00312   }
00313 
00314   // timeframe summary
00315   if( fSummaryOnOff ){    
00316 
00317     if(fUpdate){ // THIS GETS SET AFTER TPSINGLES,(SUB)RUNEND BLOCKS
00318                  // BUT THERE MUST BE A BETTER WAY OF DOING IT
00319                  // DOESN'T WORK ON MONTE CARLO
00320       MSG("FarDetDataQualityModule",Msg::kDebug) << "  *** TIMEFRAME SUMMARY *** " << endl;
00321 
00322       if(fRunSummaryFile){
00323         run=RSrun; 
00324         subrun=RSsubrun;
00325         date=RSdate;
00326         time=RStime;
00327         timeframe=RStimeframe; 
00328         hotPlnChips=RShotPlnChips;
00329         coldPlnChips=RScoldPlnChips;
00330         coldPlnChipsSM1=RScoldPlnChipsSM1;
00331         coldPlnChipsSM2=RScoldPlnChipsSM2;
00332         coldShldChips=RScoldShldChips;
00333         coldShldChipsSM1=RScoldShldChipsSM1;
00334         coldShldChipsSM2=RScoldShldChipsSM2;
00335         snarlRate=RSsnarlRate; 
00336         passRate=RSpassRate; 
00337         liBox=RSlibox;
00338         liLed=RSliled;
00339         sparsErrors=RSsparsErrors;
00340         etcErrors=RSetcErrors;
00341         for(Int_t myint=0; myint<32; myint++){
00342           cratePlnRates[myint]=RScratePlnRates[myint];
00343         }
00344 
00345         TDirectory* tmpddd = gDirectory;
00346         fRunSummaryFile->cd();
00347         fRunSummaryTree->Fill();
00348         gDirectory = tmpddd;
00349 
00350         MSG("FarDetDataQualityModule",Msg::kDebug) 
00351           << "  *** Run Summary *** " << endl
00352           << "   run = " << run << endl
00353           << "   subrun = " << subrun << endl
00354           << "   date = " << date << endl
00355           << "   time = " << time << endl
00356           << "   timeframe = " << timeframe << endl
00357           << "   snarlRate = " << snarlRate << endl
00358           << "   passRate = " << passRate << endl
00359           << "   liBox = " << liBox << endl
00360           << "   liLed = " << liLed << endl
00361           << "   hotPlnChips = " << hotPlnChips << endl
00362           << "   coldPlnChips = " << coldPlnChips << endl
00363           << "   coldPlnChipsSM1 = " << coldPlnChipsSM1 << endl
00364           << "   coldPlnChipsSM2 = " << coldPlnChipsSM2 << endl
00365           << "   coldShldChips = " << coldShldChips << endl
00366           << "   coldShldChipsSM1 = " << coldShldChipsSM1 << endl
00367           << "   coldShldChipsSM2 = " << coldShldChipsSM2 << endl
00368           << "   sparsErrors = " << sparsErrors << endl
00369           << "   etcErrors = " << etcErrors << endl; 
00370 
00371       }
00372 
00373       if(!fRunSummaryFile){
00374         TDirectory* tmpddd = gDirectory;
00375         // TString mystring("results/fardet.summary");
00376         // mystring.Append("."); mystring+=fRun; 
00377         // mystring.Append(".root");
00378         TString mystring("fardet.summary.root");
00379         MSG("FarDetDataQualityModule",Msg::kDebug) << "    ... creating new file : " << mystring.Data() << endl;
00380         fRunSummaryFile = new TFile(mystring.Data(),"RECREATE");
00381         fRunSummaryTree = new TTree("RunSummary","RunSummary");
00382         fRunSummaryTree->SetAutoSave(60);
00383         MSG("FarDetDataQualityModule",Msg::kDebug) << "        recording livetime info ... " << endl;
00384         fRunSummaryTree->Branch("run",&run,"run/I");
00385         fRunSummaryTree->Branch("subrun",&subrun,"subrun/I");
00386         fRunSummaryTree->Branch("date",&date,"date/I");
00387         fRunSummaryTree->Branch("time",&time,"time/I");
00388         fRunSummaryTree->Branch("timeframe",&timeframe,"timeframe/I");
00389         if( !fReducedSummaryOnOff ){
00390           MSG("FarDetDataQualityModule",Msg::kDebug) << "       recording data quality info ... " << mystring.Data() << endl;
00391           fRunSummaryTree->Branch("snarlRate",&snarlRate,"snarlRate/I");
00392           fRunSummaryTree->Branch("passRate",&passRate,"passRate/I");
00393           fRunSummaryTree->Branch("hotPlnChips",&hotPlnChips,"hotPlnChips/I");
00394           fRunSummaryTree->Branch("coldPlnChips",&coldPlnChips,"coldPlnChips/I");
00395           fRunSummaryTree->Branch("coldPlnChipsSM1",&coldPlnChipsSM1,"coldPlnChipsSM1/I");
00396           fRunSummaryTree->Branch("coldPlnChipsSM2",&coldPlnChipsSM2,"coldPlnChipsSM2/I");
00397           fRunSummaryTree->Branch("coldShldChips",&coldShldChips,"coldShldChips/I");
00398           fRunSummaryTree->Branch("coldShldChipsSM1",&coldShldChipsSM1,"coldShldChipsSM1/I");
00399           fRunSummaryTree->Branch("coldShldChipsSM2",&coldShldChipsSM2,"coldShldChipsSM2/I");
00400           fRunSummaryTree->Branch("cratePlnRates",cratePlnRates,"cratePlnRates[32]/I");
00401           fRunSummaryTree->Branch("sparsErrors",&sparsErrors,"sparsErrors/I");
00402           fRunSummaryTree->Branch("etcErrors",&etcErrors,"etcErrors/I");
00403           fRunSummaryTree->Branch("liBox",&liBox,"liBox/I");
00404           fRunSummaryTree->Branch("liLed",&liLed,"liLed/I");
00405         }
00406         gDirectory = tmpddd;
00407       }
00408 
00409       RSrun=fSnarlHeader->GetRun(); 
00410       RSsubrun=fSnarlHeader->GetSubRun(); 
00411       RSdate=fSnarlHeader->GetDate();
00412       RStime=fSnarlHeader->GetTime();
00413       RStimeframe=fSnarlHeader->GetTimeFrame();
00414 
00415       RShotPlnChips=fHotPlnChips;
00416       RScoldPlnChips=fColdPlnChips;
00417       RScoldPlnChipsSM1=fColdPlnChipsSM1;
00418       RScoldPlnChipsSM2=fColdPlnChipsSM2;
00419       RScoldShldChips=fColdShldChips;
00420       RScoldShldChipsSM1=fColdShldChipsSM1;
00421       RScoldShldChipsSM2=fColdShldChipsSM2;
00422       
00423       for(Int_t myint=0; myint<32; myint++){
00424         RScratePlnRates[myint]=fCratePlnRates[myint];
00425       }
00426 
00427       RSsnarlRate=0;
00428       RSpassRate=0;
00429 
00430       RSlibox=-1; 
00431       RSliled=-1;
00432       if(fLiHeader->GetTimeFrame()==fTimeFrame){
00433         if( RSlibox<0 ){
00434           RSlibox=fLiHeader->GetBox(); RSliled=fLiHeader->GetLed();
00435         }
00436         if( RSlibox<0 ){
00437           RSlibox=fLiHeader->GetTpmtBox(); RSliled=-1;
00438         }
00439       }
00440 
00441       RSetcErrors=0;
00442       RSsparsErrors=0;
00443       if(fVarcErrHeader->GetTimeFrame()==fTimeFrame){
00444         RSetcErrors=fEtcErrors;
00445         RSsparsErrors=fSparsErrors;
00446       }
00447 
00448     }
00449   }
00450 
00451   // data quality filter
00452   if( fSnarl ){
00453     MSG("FarDetDataQualityModule",Msg::kDebug) << "  *** QUALITY FILTER... " << endl;
00454 
00455     CandRecord* candrec = dynamic_cast<CandRecord*>(mom->GetFragment("CandRecord", "PrimaryCandidateRecord"));
00456     if( candrec ){
00457       FarDetDataQualityHandle* fardet = dynamic_cast<FarDetDataQualityHandle*>(candrec->FindCandHandle("FarDetDataQualityHandle"));
00458       if( fardet ){
00459         fFilter = this->ApplyFilter(fardet);
00460       }
00461     }
00462   }
00463 
00464   // count pass/fail events
00465   if( fSummaryOnOff ){
00466     if( fSnarl ){
00467       RSsnarlRate++; if( fFilter ) RSpassRate++;
00468     }
00469   }
00470 
00471   // apply filter
00472   if( fFilterOnOff ){
00473     MSG("FarDetDataQualityModule",Msg::kDebug) << "  *** APPLY FILTER *** " << endl;
00474   
00475     if( fFilter ){
00476       MSG("FarDetDataQualityModule",Msg::kDebug) << "   *** PASSED FILTER *** " << endl;      
00477       return result.SetPassed(); 
00478     }
00479     else{
00480       MSG("FarDetDataQualityModule",Msg::kDebug) << "   *** FAILED FILTER *** " << endl;      
00481       return result.SetFailed();
00482     } 
00483   }
00484 
00485   return result;
00486 }


Member Data Documentation

Definition at line 46 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 47 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 46 of file FarDetDataQualityModule.h.

Referenced by Ana(), and Reco().

Definition at line 48 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 48 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 47 of file FarDetDataQualityModule.h.

Referenced by Ana(), and Reco().

Definition at line 48 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 48 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 45 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 86 of file FarDetDataQualityModule.h.

Referenced by Reco(), and ~FarDetDataQualityModule().

Definition at line 43 of file FarDetDataQualityModule.h.

Referenced by Ana(), ProcessBlock(), ProcessHeader(), and Reco().

Definition at line 46 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 47 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 52 of file FarDetDataQualityModule.h.

Referenced by Ana(), and Reco().

Definition at line 82 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), Reco(), and ~FarDetDataQualityModule().

Definition at line 81 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), Reco(), and ~FarDetDataQualityModule().

Definition at line 60 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), and Reco().

Definition at line 60 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), and Reco().

Definition at line 60 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), and Reco().

Definition at line 61 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), and Reco().

Definition at line 61 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), and Reco().

Definition at line 61 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), and Reco().

Definition at line 58 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock().

Definition at line 85 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), Reco(), and ~FarDetDataQualityModule().

Definition at line 36 of file FarDetDataQualityModule.h.

Referenced by Ana(), and EndJob().

Definition at line 37 of file FarDetDataQualityModule.h.

Referenced by Ana(), and EndJob().

Definition at line 57 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock().

Definition at line 67 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), and Reco().

Definition at line 57 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 66 of file FarDetDataQualityModule.h.

Referenced by ApplyFilter(), Config(), and DefaultConfig().

Definition at line 65 of file FarDetDataQualityModule.h.

Referenced by ApplyFilter(), Config(), and DefaultConfig().

Definition at line 66 of file FarDetDataQualityModule.h.

Referenced by ApplyFilter(), Config(), and DefaultConfig().

Definition at line 65 of file FarDetDataQualityModule.h.

Referenced by ApplyFilter(), Config(), and DefaultConfig().

Definition at line 64 of file FarDetDataQualityModule.h.

Definition at line 56 of file FarDetDataQualityModule.h.

Referenced by Config(), DefaultConfig(), and Reco().

Definition at line 62 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock().

Definition at line 62 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock().

Definition at line 59 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), and Reco().

Definition at line 62 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock().

Definition at line 78 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), Reco(), and ~FarDetDataQualityModule().

Definition at line 56 of file FarDetDataQualityModule.h.

Referenced by Config(), DefaultConfig(), and Reco().

Definition at line 57 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), and ProcessHeader().

Definition at line 39 of file FarDetDataQualityModule.h.

Referenced by EndJob(), and Reco().

Definition at line 40 of file FarDetDataQualityModule.h.

Referenced by EndJob(), and Reco().

Definition at line 57 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), and Reco().

Definition at line 67 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), and Reco().

Definition at line 80 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), Reco(), and ~FarDetDataQualityModule().

Definition at line 57 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), and ProcessHeader().

Definition at line 56 of file FarDetDataQualityModule.h.

Referenced by Config(), DefaultConfig(), and Reco().

Definition at line 57 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), ProcessHeader(), and Reco().

Definition at line 63 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock().

Definition at line 63 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock().

Definition at line 83 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), Reco(), and ~FarDetDataQualityModule().

Definition at line 57 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), and Reco().

Definition at line 79 of file FarDetDataQualityModule.h.

Referenced by ProcessBlock(), Reco(), and ~FarDetDataQualityModule().

Definition at line 50 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 50 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 46 of file FarDetDataQualityModule.h.

Referenced by Ana(), and Reco().

Definition at line 47 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 49 of file FarDetDataQualityModule.h.

Referenced by Ana(), and Reco().

Definition at line 91 of file FarDetDataQualityModule.h.

Referenced by BeginJob(), and ProcessBlock().

Definition at line 50 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 49 of file FarDetDataQualityModule.h.

Referenced by Ana(), and Reco().

Definition at line 49 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 49 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 44 of file FarDetDataQualityModule.h.

Referenced by Ana(), ProcessBlock(), and ProcessHeader().

Definition at line 44 of file FarDetDataQualityModule.h.

Referenced by Ana(), ProcessBlock(), and ProcessHeader().

Definition at line 54 of file FarDetDataQualityModule.h.

Referenced by Reco().

Int_t FarDetDataQualityModule::PlnMask[16][24] [private]

Definition at line 89 of file FarDetDataQualityModule.h.

Referenced by BeginJob(), and ProcessBlock().

Definition at line 71 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 71 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 71 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 72 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 72 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 72 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 87 of file FarDetDataQualityModule.h.

Referenced by Reco(), and ~FarDetDataQualityModule().

Definition at line 69 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 73 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 70 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 75 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 75 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 74 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 69 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 74 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 73 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 69 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 69 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 69 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 42 of file FarDetDataQualityModule.h.

Referenced by Ana(), ProcessBlock(), ProcessHeader(), and Reco().

Int_t FarDetDataQualityModule::ShldMask[16][6] [private]

Definition at line 90 of file FarDetDataQualityModule.h.

Referenced by BeginJob(), and ProcessBlock().

Definition at line 42 of file FarDetDataQualityModule.h.

Referenced by Ana(), ProcessBlock(), ProcessHeader(), and Reco().

Definition at line 54 of file FarDetDataQualityModule.h.

Referenced by Reco().

Definition at line 52 of file FarDetDataQualityModule.h.

Referenced by Ana(), and Reco().

Definition at line 51 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 51 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 51 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 42 of file FarDetDataQualityModule.h.

Referenced by Ana(), ProcessBlock(), ProcessHeader(), and Reco().

Definition at line 43 of file FarDetDataQualityModule.h.

Referenced by Ana(), ProcessBlock(), ProcessHeader(), and Reco().

Definition at line 43 of file FarDetDataQualityModule.h.

Referenced by Ana(), ProcessBlock(), ProcessHeader(), and Reco().

Definition at line 53 of file FarDetDataQualityModule.h.

Referenced by Ana().

Definition at line 53 of file FarDetDataQualityModule.h.

Referenced by Ana().


The documentation for this class was generated from the following files:

Generated on 22 Nov 2017 for loon by  doxygen 1.6.1