#ifndef TPCCLUSTERFINDERSIMPLE_HH #define TPCCLUSTERFINDERSIMPLE_HH #include #include #include "PndTpcAbsClusterFinder.h" #include "McIdCollection.h" #include "TVector3.h" class PndTpcPadPlane; class PndTpcDigi; class PndTpcCluster; class PndTpcPrelimCluster{ private: void cog(); TVector3 fpos; TVector3 ferr; double famp; double fcogT; int fid; std::vector fdigis; std::set fpossiblePads; PndTpcPadPlane* fpadplane; double ftimeslice; McId fdominant_mcid; bool isInTimeWindow(const PndTpcDigi* const); public: PndTpcPrelimCluster(PndTpcPadPlane*, double, int); virtual ~PndTpcPrelimCluster(); void addHit(const PndTpcDigi&,bool noXclust=false); bool isInCluster(const PndTpcDigi* const); PndTpcCluster* convPndTpcCluster(bool saveRaw); }; class PndTpcClusterFinderSimple : public PndTpcAbsClusterFinder{ public: // Constructors/Destructors --------- PndTpcClusterFinderSimple(PndTpcPadPlane*, std::vector*, unsigned int); ~PndTpcClusterFinderSimple(); virtual void process(std::vector&); virtual void reset(); virtual void checkConsistency(); void setNoXclust(bool b=true){noXclust=b;} private: PndTpcPadPlane* fpadplane; std::vector* foutput_buffer; bool noXclust; unsigned int fdt; // time slice in units of sample time }; #endif