Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Coroner.h

Go to the documentation of this file.
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 

Generated on Mon Feb 15 11:06:33 2010 for loon by  doxygen 1.3.9.1