//////////////////////////////////////////////////////////////////// /// \class RAT::CrossTalkCut /// /// \brief Tries to flag cross-talk hits /// /// \author Tanner Kaptanoglu /// /// REVISION HISTORY:\n /// 22 May 2016 : Tanner Kaptanoglu - first version /// /// \details This processor flags events that are considered /// cross-talk events. These cross-talk hits are adjacent to /// the high charge event, low in charge (<10 ADC counts), /// and close to in-time (8-20 ns). /// /// /// //////////////////////////////////////////////////////////////////// #ifndef __RAT_CrossTalkCut__ #define __RAT_CrossTalkCut__ #include #include namespace RAT { class CrossTalkCut { public: virtual ~CrossTalkCut(){}; void BeginOfRun(DS::Run& run); void CutCrossTalk(DS::Entry& ds); protected: void FlagNearbyChannels(size_t iPMT, int crate, int card, int channel, double time, DS::EV& ev); bool CheckCriteria(DS::PMTCal fCrossTalkPMT, int crate, int card, int channel, double deltat); size_t fNChannels; /// Number of PMTs to loop over to ensure you find crosstalk int fNearSlots; /// Number of nearby channels to look for crosstalk int fNearChannels; /// Number of nearby channels to look for crosstalk float fCalQHSHighCharge; /// Definition of high charge hit float fCalQHSLow; /// low QHS cut for crosstalk float fCalQHSHigh; /// high QHS cut for crosstalk double fCalTimeLow; /// low time cut for crosstalk double fCalTimeHigh; /// high time cut for crosstalk DBLinkPtr fHClean; }; } // namespace RAT #endif