#ifndef TPCCLUSTERFINDERSIMPLEALICE_HH #define TPCCLUSTERFINDERSIMPLEALICE_HH #include #include #include #include "TpcAbsClusterFinder.h" #include "TpcDigiAge.h" #include "TpcDigiPadID.h" #include "McIdCollection.h" #include "TVector3.h" #include "TpcPrelimCluster.h" class TpcPadPlane; class TpcDigi; class TpcCluster; class TpcPrelimCluster; class TpcClusterFinderSimpleALICE : public TpcAbsClusterFinder{ public: // Constructors/Destructors --------- TpcClusterFinderSimpleALICE(TpcPadPlane*, std::vector*, unsigned int, double G=1, double C=1); ~TpcClusterFinderSimpleALICE(); virtual void process(std::vector&); virtual void reset(); virtual void checkConsistency(); void setMaxClusterSlice(unsigned int i){maxClusterSlice = i;} void setSectorize(bool opt=true){sectorize=opt;} void setNoXclust(bool b=true){noXclust=b;} unsigned int NsplitDigis(){return splitDigis;} private: virtual void processSector(std::vector&, int sectorID); bool islocalmaximum(TpcDigi* rdigi, std::vector &neighbourpaddigis, unsigned int firstpadidinrow, unsigned int lastpadidinrow, unsigned int timewindow); unsigned int padsinrow(unsigned int irow); std::map* > fsectormap; TpcPadPlane* fpadplane; unsigned int fnSectors; std::map* > fpadIDsectorIDmap; std::vector* foutput_buffer; std::map* > fpadIDmap; bool verbose; bool sectorize; bool noXclust; unsigned int fdt; // time slice in units of sample time unsigned int splitDigis; double fG; double fC; double zJitter; unsigned int maxClusterSlice; }; #endif