1 #ifndef ALIPERFORMANCEDEdx_H
2 #define ALIPERFORMANCEDEdx_H
4 //------------------------------------------------------------------------------
5 // Class to keep information from comparison of
6 // reconstructed and MC particle tracks (TPC dE/dx).
8 // Author: J.Otwinowski 04/02/2008
9 // Changes by M.Knichel 15/10/2010
10 //------------------------------------------------------------------------------
26 #include "THnSparse.h"
27 #include "AliPerformanceObject.h"
29 class AliPerformanceDEdx : public AliPerformanceObject {
31 AliPerformanceDEdx(const Char_t* name="AliPerformanceDEdx", const Char_t* title="AliPerformanceDEdx",Int_t analysisMode=0, Bool_t hptGenerator=kFALSE);
33 virtual ~AliPerformanceDEdx();
39 virtual void Exec(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent, AliESDfriend *const esdFriend, const Bool_t bUseMC, const Bool_t bUseESDfriend);
41 // Merge output objects (needed by PROOF)
42 virtual Long64_t Merge(TCollection* const list);
44 // Analyse output histograms
45 virtual void Analyse();
47 // Get analysis folder
48 virtual TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}
50 static Bool_t GetMergeTHnSparse() { return fgMergeTHnSparse; }
51 static void SetMergeTHnSparse(Bool_t mergeTHnSparse) {fgUseMergeTHnSparse = kTRUE; fgMergeTHnSparse = mergeTHnSparse; }
53 // Create folder for analysed histograms
54 TFolder *CreateFolder(TString folder = "folderDEdx",TString title = "Analysed DEdx histograms");
56 // Export objects to folder
57 TFolder *ExportToFolder(TObjArray * array=0);
60 void ProcessTPC(AliStack* const stack, AliESDtrack *const esdTrack); // not implemented
61 void ProcessInnerTPC(AliStack* const stack, AliESDtrack *const esdTrack, AliESDEvent *const esdEvent);
62 void ProcessTPCITS(AliStack* const stack, AliESDtrack *const esdTrack); // not implemented
63 void ProcessConstrained(AliStack* const stack, AliESDtrack *const esdTrack); // not implemented
66 // produce summary (currently not used)
67 virtual TTree* CreateSummary();
70 void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) {fCutsRC = cuts;}
71 void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0) {fCutsMC = cuts;}
73 AliRecInfoCuts* GetAliRecInfoCuts() const {return fCutsRC;}
74 AliMCInfoCuts* GetAliMCInfoCuts() const {return fCutsMC;}
79 THnSparse* GetDeDxHisto() const {return fDeDxHisto;}
80 TObjArray* GetHistos() const { return fFolderObj; }
84 static Bool_t fgMergeTHnSparse;
85 static Bool_t fgUseMergeTHnSparse;
88 THnSparseF *fDeDxHisto; //-> signal:phi:y:z:snp:tgl:ncls:p:nclsDEdx:nclsF
89 TObjArray* fFolderObj; // array of analysed histograms
92 AliRecInfoCuts* fCutsRC; // selection cuts for reconstructed tracks
93 AliMCInfoCuts* fCutsMC; // selection cuts for MC tracks
96 TFolder *fAnalysisFolder; // folder for analysed histograms
99 AliPerformanceDEdx(const AliPerformanceDEdx&); // not implemented
100 AliPerformanceDEdx& operator=(const AliPerformanceDEdx&); // not implemented
102 ClassDef(AliPerformanceDEdx,4);