// -------------------------------------------------------------------------------------- // ----- CbmRichRingFinderTrack source file ----- // ----- implementation: Simeon Lebedev (salebedev@jinr.ru) ----- // ------------------------------------------------------------------------- #ifndef CBM_RICH_RING_FINDER_TRACK_H #define CBM_RICH_RING_FINDER_TRACK_H #include #include #include #include "TClonesArray.h" #include "CbmRichRing.h" /*#include "CbmTask.h" #include "CbmRootManager.h"*/ #include "CbmRichRingFinder.h" class CbmRichTrackMyPoint { public: double fX; double fY; int fId; int fRefIndex; static bool CmpUp(const CbmRichTrackMyPoint &m1, const CbmRichTrackMyPoint &m2){ return m1.fX < m2.fX; }; CbmRichTrackMyPoint(){fX=fY=0.;fId=0;} ~CbmRichTrackMyPoint(){} }; class CbmRichRingFinderTrack : public CbmRichRingFinder { static const int kMAX_POINTS = 3500;//Maximum number of points //geometry of rich detector static const double kXMAX = 170.0; static const double kXMIN = -170.0; static const double kYMAX = 250.0; static const double kYMIN = -250.0; static const int kMAXTRACKS = 600; static const int kMAXHISTS = 200; int fNBins;//number of bins in histogramm double fMinRadius;// min radius double fMaxRadius;//max radius unsigned int fCut;//number of points cut std::vector< std::vector > fHist; std::vector fGuidance; //track extrapolations from STS to RICH std::vector fData; //Rich hits std::vector fFoundRings;//collect found rings int fNProjCount; /** Verbosity level **/ Int_t fVerbose; public: CbmRichRingFinderTrack();// Default constructor CbmRichRingFinderTrack ( Int_t verbose);// Standard constructor ~CbmRichRingFinderTrack(); void SetParameters(int NBins, double MinRadius,double MaxRadius, int Cut); void InitArray(); void InitHist1D(double nbins, int cpinc); void FindCenters(double nbins); virtual void Init(); virtual Int_t DoFind(TClonesArray* rHitArray, TClonesArray* rProjArray, TClonesArray* rRingArray); ClassDef(CbmRichRingFinderTrack,1); }; #endif // CBM_RICH_RING_FINDER_TRACK_H