00001 00002 // $Id: Coroner.h,v 1.4 2005/03/08 17:07:55 tagg Exp $ 00003 // 00004 // Coroner 00005 // 00006 // A job module for populating the Morgue with relevant info. 00007 // 00008 // This job module should be run immediately after CandDigit, and should 00009 // be fed every record (i.e NOT just records with snarls). 00010 // 00011 // The Reco() method creates and builds a CandMorgue complete with a 00012 // knoweldge of dead chips (dead strips in this case), record of which 00013 // channels might have hardware problems, and a record of when the nearest LI hit is. 00014 // 00015 // Bad hardware is read in through the BADHARDWARE database. See BadHardware.cxx 00016 // for details. 00017 // 00018 // n.tagg1@physics.ox.ac.uk 00020 #ifndef CORONER_H 00021 #define CORONER_H 00022 00023 #include "JobControl/JobCModule.h" 00024 #include "DatabaseInterface/DbiResultPtr.h" 00025 #include "BadHardware.h" 00026 #include <vector> 00027 #include <deque> 00028 00029 class CandRecord; 00030 class Morgue; 00031 class VldContext; 00032 class RawLiTpmtDigitsBlock; 00033 00034 class Coroner : public JobCModule 00035 { 00036 public: 00037 Coroner(); 00038 ~Coroner(); 00039 00040 public: 00041 // Analysis and Reconstruction methods 00042 JobCResult Ana(const MomNavigator* mom); 00043 JobCResult Reco(MomNavigator* mom); 00044 00045 // Module configuration 00046 const Registry& DefaultConfig() const; 00047 void Config(const Registry& r); 00048 00049 00050 private: 00051 void UpdateLiHitList( const MomNavigator* mom); 00052 JobCResult RecordDeadStrips(Morgue* morgue, const CandRecord* candrec); 00053 JobCResult RecordBadStrips(Morgue* morgue, const VldContext& context); 00054 JobCResult RecordLiHits(Morgue* morgue, const VldContext& context); 00055 // Module member data 00056 00057 void ClearTables(); 00058 00059 std::vector<int> fBadHardwareTasks; 00060 std::vector< DbiResultPtr<BadHardware>* > fBadHardwareTables; 00061 00062 typedef std::deque<VldTimeStamp> LiHitList_t; 00063 LiHitList_t fRecentLiHits; 00064 00065 00066 }; 00067 #endif // CORONER_H 00068
1.3.9.1