// // C++ Interface: PndMvdMCEventAna // // Description: // // // Author: t.stockmanns , (C) 2007 // // Copyright: See COPYING file that comes with this distribution // // #ifndef PNDMVDEVENTANA_H #define PNDMVDEVENTANA_H #include "PndMvdMCPoint.h" #include "PndMvdGeoHandling.h" #include "TTree.h" #include "TCanvas.h" #include "TH1.h" #include "TH2.h" #include "TFile.h" #include "TClonesArray.h" #include "TString.h" #include #include /**PndMvdEventAna.h @author t.stockmanns Abstract base clas for data analysis */ class PndMvdEventAna{ public: PndMvdEventAna(){}; PndMvdEventAna(TString fileName); virtual ~PndMvdEventAna(){}; virtual void Init(TString fileName); void InitCanvas(); void AnaEvents(Int_t count); void AnaEventNr(Int_t Nr); void NextEvent(); void DrawHistos(); void DrawHisto(TString path, TString opt = ""); void SetCanvasColumns(Int_t col){fCancol = col;}; void SetDrawOption(TString histoName, TString option); void SetSelection(TString sel){fSelection = sel;}; void FillVector(); void DrawVector(Int_t index, TString opt); Int_t GetEventNr() const {return fActiveEvent;}; TString GetSelection() const {return fSelection;}; TH1* GetHisto(TString histoName){return fHistos[histoName];}; TH1* GetHisto(Int_t i){return fHistoVector[i];}; virtual void InitBranch() = 0; //set fClassName and fBranchName here virtual void InitHistos() = 0; virtual void AnaHits(); virtual void AnaHitNr(Int_t i){}; virtual void BeginOfEventAction(){}; virtual void EndOfEventAction(){}; virtual void ClearHistos(){}; protected: Int_t fActiveEvent; Int_t fAnaEvents; TFile* fFile; TTree* fTree; TClonesArray* fHitArray; TString fClassName; //has to be set in constructor of derived class TString fBranchName; //has to be set in constructor of derived class TString fSelection; //will be passed to derived classes to do a event selection TCanvas* fCan; std::map fHistos; std::map fDrawOption; //stores the drawOption for the Draw command std::vector fHistoVector; Int_t fCancol; PndMvdGeoHandling* geoH; ClassDef(PndMvdEventAna,1); }; #endif