/** * \file CbmLitClusteringQa.h * \brief FairTask for clustering performance calculation. * \author Andrey Lebedev * \date 2011 */ #ifndef CBMLITCLUSTERINGQA_H_ #define CBMLITCLUSTERINGQA_H_ #include "FairTask.h" #include "cbm/base/CbmLitDetectorSetup.h" #include #include using std::string; using std::vector; class CbmHistManager; class TClonesArray; class CbmLitClusteringQa : public FairTask { public: /** * \brief Constructor. */ CbmLitClusteringQa(); /** * \brief Destructor. */ virtual ~CbmLitClusteringQa(); /** * \brief Derived from FairTask. */ virtual InitStatus Init(); /** * \brief Derived from FairTask. */ virtual void Exec( Option_t* opt); /** * \brief Derived from FairTask. */ virtual void Finish(); /** Setters */ void SetOutputDir(const string& outputDir) { fOutputDir = outputDir; } private: /** * \brief Read data branches. */ void ReadDataBranches(); /** * \brief Calculate statistics for hits. */ void ProcessHits(); /** * */ void IncreaseCounters(); /** * */ void CreateHistograms(); /** * */ void CreateH1F( const string& name, const string& xTitle, const string& yTitle, Int_t nofBins, Double_t minBin, Double_t maxBin); /** * */ void CreateNofObjectsHistograms( DetectorId detId, const string& detName); /** * */ void CreateNofObjectsHistograms( DetectorId detId, const string& detName, const string& parameter, const string& xTitle); CbmHistManager* fHM; // Histogram manager string fOutputDir; // Output directory for results CbmLitDetectorSetup fDet; // For detector setup determination // Pointers to data arrays TClonesArray* fMvdPoints; // CbmMvdPoint array TClonesArray* fMvdDigis; // CbmMvdDigi array TClonesArray* fMvdClusters; // CbmMvdClusters array TClonesArray* fMvdHits; // CbmMvdHit array TClonesArray* fStsPoints; // CbmStsPoint array TClonesArray* fStsDigis; // CbmStsDigi array TClonesArray* fStsClusters; // CbmStsCluster array TClonesArray* fStsHits; // CbmStsHit array TClonesArray* fRichPoints; // CbmRichPoint array TClonesArray* fRichHits; // CbmRichHits array TClonesArray* fMuchPoints; // CbmMuchPoint array TClonesArray* fMuchDigis; // CbmMuchDigi array TClonesArray* fMuchClusters; // CbmMuchCluster array TClonesArray* fMuchPixelHits; // CbmMuchPixelHits array TClonesArray* fMuchStrawHits; // CbmMuchStrawHits array TClonesArray* fTrdPoints; // CbmTrdPoint array TClonesArray* fTrdDigis; // CbmTrdDigi array TClonesArray* fTrdClusters; // CbmTrdCluster array TClonesArray* fTrdHits; // CbmTrdHit array TClonesArray* fTofPoints; // CbmTofPoint array TClonesArray* fTofHits; // CbmTofHit array ClassDef(CbmLitClusteringQa, 1); }; #endif /* CBMLITCLUSTERINGQA_H_ */