#ifndef __HOUGHMODULE_HH_ #define __HOUGHMODULE_HH_ #include #include "euso.hh" #include "RecoModule.hh" class EusoCluster; class RecoRootEvent; class HoughModule : public RecoModule { public: // ctor HoughModule(); // dtor virtual ~HoughModule(); // Init method: called at the beginning of a run virtual Bool_t Init(); // called before each event process virtual Bool_t PreProcess(); // event processing virtual Bool_t Process( RecoEvent* ); // called after processing an event virtual Bool_t PostProcess(); // called at the end of each run virtual Bool_t Done(); // save root output virtual Bool_t SaveRootData( RecoRootEvent* ); // memory clean virtual void UserMemoryClean(); // get a specified cluster EusoCluster* GetCluster( Int_t num ); EsafConfigClass(Reco,HoughModule) private: Int_t Idev; // id of the event RecoEvent *fEv; RecoRootEvent *fRecoRootEvent; Int_t fMainMacroCellId; // id of the most populous macrocell Int_t fTotalNumPoints; // total number of points Int_t fNumPointsMinimum; // minimum number of points in a significant cluster Int_t fNumHitsMinimum; // minimum number of points in a significant pixel (from config file) Int_t fFinalNumHitsMinimum; // minimum number of points in a significant pixel ( from ProcessHoughAll() ) // number of pixels with minimum number of hits Int_t fNumPointsall; //=fHittedall.size(); // references to pixels with minimum number of hits vector fHittedall; //initially selected (con fNumHitsMinimum) in ProcessHoughAll() vector fHittedselhough; vector fHittedselselhough; vector fHittedFinal; //finally selected in ProcessHoughAll() - written in final cluster vector fHittedFinalMacrocell; //selected by ProcessHoughSingleMacrocell() or ProcessVelocity() and passed to ProcessHoughAll() vector idmacrocellselected;//id of macrocell selected by ProcessHoughSingleMacrocell() or ProcessVelocity() Int_t ProcessHoughSingleMacrocell(); Int_t ProcessHoughAll(); Int_t ProcessVelocity(); void WriteSingleCluster(); Int_t HoughTransform(vector x,vector y,vector t,vector c); Float_t absdevx,absdevy; Double_t tmin,tmax,xmin,xmax,ymin,ymax; Float_t cmaxtocmediox,cmaxtocmedioy; Float_t cmaxtocmediominx,cmaxtocmediominy; // vector of significant clusters vector fClusters; string fProcedure; string fKindHough; ClassDef(HoughModule,0) }; #endif /* __HOUGHMODULE_HH_ */