////////////////////////////////////////////////////////////////////
/// \class RAT::OwlCut
///
/// \brief  Flags owl events for data cleaning
///
/// \author Richie Bonventre <rbonv@hep.upenn.edu>
/// \contact Eric Marzec <marzece@hep.upenn.edu>
///
/// REVISION HISTORY:\n
///    20 July 2011 : Richie Bonventre - first version
///    13 Nov 2014 : Eric Marzec - Made myself contact person.
///
///  \details  This processor tags events that have over some
///  threshold number of OWL or BUTT tubes hit.
///
///
///
///
////////////////////////////////////////////////////////////////////
#ifndef __RAT_OwlCut__
#define __RAT_OwlCut__

#include <RAT/Processor.hh>
#include <RAT/DataCleaningProc.hh>
#include <RAT/DS/Entry.hh>

namespace RAT {

  class OwlCut : public DataCleaningProc {
    public:
      OwlCut() : DataCleaningProc("owlcut",1){};
      virtual ~OwlCut(){};
      virtual Processor::Result DSEvent(DS::Run& run, DS::Entry& ds);
      void BeginOfRun(DS::Run&);

    protected:
      virtual Processor::Result Event(DS::Entry& ds, DS::EV& ev);
      int fTotThresh; ///< threshold for OWL+BUTT
      int fOwlThresh; ///< threshold for OWL
      int fButtThresh; ///< threshold for BUTT
      int fMode; ///< 0 = OWLs or BUTTs, 1 = OWLs+BUTTs
  };


} // namespace RAT
#endif