//////////////////////////////////////////////////////////////////// /// \class RAT::FlasherGeoCut /// /// \brief Flags flashergeo events for data cleaning /// /// \author Richie Bonventre /// \contact Eric Marzec /// /// REVISION HISTORY:\n /// 28 July 2011 : Richie Bonventre - first version /// 13 Nov 2014 : Eric Marzec - Made myself contact person. /// /// \details This processor tags events that are in clusters /// where the average distance between the cluster and other /// hits is greater than some threshold. These are assumed to /// be flasher events. /// /// /// //////////////////////////////////////////////////////////////////// #ifndef __RAT_FlasherGeoCut__ #define __RAT_FlasherGeoCut__ #include #include #include #include namespace RAT { class FlasherGeoCut : public DataCleaningProc { public: FlasherGeoCut() : DataCleaningProc("flashergeocut",1){}; virtual ~FlasherGeoCut(){}; Processor::Result DSEvent(DS::Run& run, DS::Entry& ds); void BeginOfRun(DS::Run&); protected: Processor::Result Event(DS::Entry& ds, DS::EV& ev); unsigned int fMaxNhits; ///< maximum nhit for which this cut is applied unsigned int fMinNhits; ///< minimum nhit for which this cut is applied unsigned int fNhitsPsup; ///< least number of hits in a cluster unsigned int fNhitsCrate; ///< least number of hits in a cluster (in electronics space) int fCCCLower; ///< channel distance considered part of a cluster int fCCCUpper; ///< channel distance considered part of a cluster double fRadiusCluster; ///< radius of a cluster (cm) double fRatioCut; ///< cut on the ratio between # of hits outside a cluster and nhit double fTacCut; ///< cut on TAC of cluster relative to other hits double fDistanceCut; ///< cut on avg dist between the cluster and other hits (cm) }; } // namespace RAT #endif