// ------------------------------------------------------------------------- // ----- CbmMvdClusterFinder header file ----- // ----- Created 23.08.2011 by Q. Li, M. Deveaux ----- // ------------------------------------------------------------------------- /** CbmMvdClusterFinder * @author Q. Li, M. Deveaux * @since 23.08.2011 ** ** Class for MIMOSA-26 Cluster-Finding **/ #ifndef CBMMVDCLUSTERFINDER_H #define CBMMVDCLUSTERFINDER_H #include "FairTask.h" #include "FairRootManager.h" #include "TClonesArray.h" #include "CbmMvdHit.h" #include "CbmMvdDigi.h" #include "CbmMvdDigitizeL.h" #include "TH1.h"//add by Qiyan #include "TH2.h" #include "TCanvas.h" #include "TH1F.h" #include "TH2F.h" #include #include #include #include "CbmMvdMimoData.h" using namespace std; class FairLogger; class CbmMvdClusterFinder : public FairTask { public: /** Default constructor **/ CbmMvdClusterFinder(); /** Standard constructor *@param name Name of task *@param iVerbose Verbosity level **/ CbmMvdClusterFinder(const char* name, Int_t iVerbose = 1); /**add by Q.Li**/ virtual void ClusterFinder(); virtual void StateInClusterHisto(); virtual void PixelInClusterHisto(); /** Destructor **/ virtual ~CbmMvdClusterFinder(); protected: /** Intialisation at begin of run. To be implemented in the derived class. *@value Success If not kSUCCESS, task will be set inactive. **/ virtual InitStatus Init(); /** Reinitialisation. To be implemented in the derived class. *@value Success If not kSUCCESS, task will be set inactive. **/ virtual InitStatus ReInit(); /** Task execution **/ virtual void Exec(Option_t* opt); /** Intialise parameter containers. To be implemented in the derived class. **/ virtual void SetParContainers() { }; /** Action after each event. To be implemented in the derived class **/ virtual void Finish(); // /** Action after each event. To be implemented in the derived class **/ // virtual void FinishTask() { }; TClonesArray* fClusterArray; CbmMvdMimoData* fMimodata; vector< unsigned char >fStateVector; vector< Int_t > fNum;//store the num of state needed to compare in each cluster.. vector< Int_t > fNewNumnew; /**store the cluster information in fClustVector ,including the index of state**/ vector< vector< Int_t > > fClustVector; vector< Int_t > fIndexOfState; vector< Int_t > fTempCluster; //to draw the histo TH1F* iEvent1TestHisto; TH1F* iEvent2TestHisto; TH1F* iEvent3TestHisto; TH1F* iEvent4TestHisto; TH1F* iEvent5TestHisto; TFile* iRootFile; TCanvas* clusterC; // Int_t fClusterResultArray[]; Int_t dataLength; Int_t frameCounter; Int_t fEventNum; Int_t fStateNumForTest; ClassDef(CbmMvdClusterFinder,2); }; #endif