//////////////////////////////////////////////////////////////////// /// \class RAT::DataCleaningProc /// /// \brief Base class for data cleaning processors /// /// \author Richie Bonventre /// \Contact Eric Marzec /// /// REVISION HISTORY:\n /// 19 July 2011 : Richie Bonventre - first version /// 13 Nov 2014 : Eric Marzec - Made myself contact person. /// /// \details This is the base class for all data cleaning /// cuts and contains the code for writing out the DAMN bank /// like datacleaning records, as well as updating the word /// in the EV branch. /// /// /// /// //////////////////////////////////////////////////////////////////// #ifndef __RAT_DataCleaningProc__ #define __RAT_DataCleaningProc__ #include #include #include namespace RAT { namespace DS { class EV; } class DataCleaningProc : public Processor { public: DataCleaningProc(std::string _name, int _version); virtual ~DataCleaningProc(){}; // sets the data cleaning word in the event // structure and possibly in the database virtual void UpdateMask(DS::EV& ev); static void SetVerbose(int verbose){fVerbose = verbose;}; static void SetProcessPass(int processPass){fProcessPass = processPass;}; static void SetLivetimeMask(int livetimeMask){fLivetimeMask = livetimeMask;}; // sets the burst type for tpburstcut. The default burst type is the physics burst parameter. // if a different valid burst type is given, it will pick up the correct parameter in // DATACLEANING.ratdb and apply burst cut with different parameters, detail in DocDB 5403. static void SetBurstType(std::string burstType){fBurstType = burstType;}; std::string GetName(){return fName;}; int GetCodeVersion(){return fCodeVersion;}; int GetDBVersion(){return fDBVersion;}; protected: static int fVerbose; static int fProcessPass; static int fLivetimeMask; static std::string fBurstType; DBLinkPtr fLClean; bool fPassFlag; int fBit; std::string fName; int fCodeVersion; int fDBVersion; }; } // namespace RAT #endif