//* $Id: */ // ------------------------------------------------------------------------- // ----- CbmMvdStripsClusterFinder header file ----- // ----- Created 26/06/2008 by R. Karabowicz ----- // ------------------------------------------------------------------------- /** CbmMvdStripsClusterFinder *@author Volker Friese *@since 11.09.06 *@version 1.0 ** ** CBM task class for finding hits in the MVDSTRIPS ** Task level RECO ** Produces objects of type CbmMvdStripsHits out of CbmMvdStripsDigi. **/ #ifndef CBMMVDSTRIPSCLUSTERFINDER_H #define CBMMVDSTRIPSCLUSTERFINDER_H 1 #include #include #include "TStopwatch.h" #include "FairTask.h" using std::set; using std::map; using std::pair; class TClonesArray; class CbmGeoMvdStripsPar; class CbmMvdStripsDigiPar; class CbmMvdStripsDigiScheme; class CbmMvdStripsSector; class CbmMvdStripsStation; class CbmMvdStripsClusterFinder : public FairTask { public : /** Default constructor **/ CbmMvdStripsClusterFinder(); /** Standard constructor **/ CbmMvdStripsClusterFinder(Int_t iVerbose); /** Constructor with task name **/ CbmMvdStripsClusterFinder(const char* name, Int_t iVerbose); /** Destructor **/ virtual ~CbmMvdStripsClusterFinder(); /** Execution **/ virtual void Exec(Option_t* opt); /** Virtual method Finish **/ virtual void Finish(); private: CbmGeoMvdStripsPar* fGeoPar; /** Geometry parameters **/ CbmMvdStripsDigiPar* fDigiPar; /** Digitisation parameters **/ CbmMvdStripsDigiScheme* fDigiScheme; /** Digitisation scheme **/ TClonesArray* fDigis; /** Input array of CbmMvdStripsDigi **/ TClonesArray* fClusters; /** Input array of CbmMvdStripsDigi **/ Int_t fNofDigis; map > fDigiMapF; /** sector digis (front) **/ map > fDigiMapB; /** sector digis (back) **/ TStopwatch fTimer; Int_t fNofClusters; Int_t fNofClustersGood; Int_t fNofClustersWP; Int_t fNofClustersWM; Int_t fLongestCluster; Int_t fLongestGoodCluster; /** Get parameter containers **/ virtual void SetParContainers(); /** Intialisation **/ virtual InitStatus Init(); /** Reinitialisation **/ virtual InitStatus ReInit(); /** Make sectorwise sets for sigis **/ void MakeSets(); void AnalyzeClusters(); void AnalyzeCluster(Int_t iclus); /** Sort digis sectorwise **/ void SortDigis(); /** Find hits in one sector **/ /* Int_t FindClusters(CbmMvdStripsStation* station, CbmMvdStripsSector* sector, */ /* set& fSet, set& bSet); */ // void FindClusters(Int_t stationNr, Int_t sectorNr, Int_t iSide, set& digiSet); Int_t FindClusters(Int_t stationNr, Int_t sectorNr, Int_t iSide, set& digiSet); ClassDef(CbmMvdStripsClusterFinder,1); }; #endif