]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/TPC/AliPerformanceDEdx.h
reduce memory consumption (Michael Knichel)
[u/mrichter/AliRoot.git] / PWG1 / TPC / AliPerformanceDEdx.h
CommitLineData
7cc34f08 1#ifndef ALIPERFORMANCEDEdx_H
2#define ALIPERFORMANCEDEdx_H
3
4//------------------------------------------------------------------------------
5// Class to keep information from comparison of
6// reconstructed and MC particle tracks (TPC dE/dx).
7//
8// Author: J.Otwinowski 04/02/2008
28bb9d1f 9// Changes by M.Knichel 24/09/2010
7cc34f08 10//------------------------------------------------------------------------------
11
12class TCanvas;
13class TH1F;
14class TH2F;
15class TNamed;
16class TString;
17
18class AliESDEvent;
19class AliESDfriend;
20class AliMCEvent;
21class AliESDtrack;
22class AliStack;
23class AliRecInfoCuts;
24class AliMCInfoCuts;
25
26#include "THnSparse.h"
27#include "AliPerformanceObject.h"
28
29class AliPerformanceDEdx : public AliPerformanceObject {
30public :
31 AliPerformanceDEdx();
32 AliPerformanceDEdx(Char_t* name, Char_t* title, Int_t analysisMode, Bool_t hptGenerator);
33 ~AliPerformanceDEdx();
34
35 // Init data members
36 virtual void Init();
37
38 // Execute analysis
39 virtual void Exec(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent, AliESDfriend *const esdFriend, const Bool_t bUseMC, const Bool_t bUseESDfriend);
40
41 // Merge output objects (needed by PROOF)
42 virtual Long64_t Merge(TCollection* const list);
43
44 // Analyse output histograms
45 virtual void Analyse();
46
47 // Get analysis folder
48 virtual TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}
28bb9d1f 49
50 static Bool_t GetMergeTHnSparse() { return fgMergeTHnSparse; }
51 static void SetMergeTHnSparse(Bool_t mergeTHnSparse) { fgMergeTHnSparse = mergeTHnSparse; }
7cc34f08 52
53 // Create folder for analysed histograms
54 TFolder *CreateFolder(TString folder = "folderDEdx",TString title = "Analysed DEdx histograms");
55
56 // Export objects to folder
57 TFolder *ExportToFolder(TObjArray * array=0);
58
59 // Process events
60 void ProcessTPC(AliStack* const stack, AliESDtrack *const esdTrack); // not implemented
758320f7 61 void ProcessInnerTPC(AliStack* const stack, AliESDtrack *const esdTrack, AliESDEvent *const esdEvent);
7cc34f08 62 void ProcessTPCITS(AliStack* const stack, AliESDtrack *const esdTrack); // not implemented
63 void ProcessConstrained(AliStack* const stack, AliESDtrack *const esdTrack); // not implemented
64
65 // Selection cuts
66 void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) {fCutsRC = cuts;}
67 void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0) {fCutsMC = cuts;}
68
28bb9d1f 69 AliRecInfoCuts* GetAliRecInfoCuts() const {return fCutsRC;}
70 AliMCInfoCuts* GetAliMCInfoCuts() const {return fCutsMC;}
7cc34f08 71
72 //
73 // TPC dE/dx
74 //
75 THnSparse* GetDeDxHisto() const {return fDeDxHisto;}
28bb9d1f 76 TObjArray* GetHistos() const { return fFolderObj; }
7cc34f08 77
78private:
79
28bb9d1f 80 static Bool_t fgMergeTHnSparse;
81
7cc34f08 82 // TPC dE/dx
28bb9d1f 83 THnSparseF *fDeDxHisto; //-> signal:phi:y:z:snp:tgl:ncls:p
84 TObjArray* fFolderObj; // array of analysed histograms
7cc34f08 85
86 // Selection cuts
87 AliRecInfoCuts* fCutsRC; // selection cuts for reconstructed tracks
88 AliMCInfoCuts* fCutsMC; // selection cuts for MC tracks
89
90 // analysis folder
91 TFolder *fAnalysisFolder; // folder for analysed histograms
28bb9d1f 92
7cc34f08 93
94 AliPerformanceDEdx(const AliPerformanceDEdx&); // not implemented
95 AliPerformanceDEdx& operator=(const AliPerformanceDEdx&); // not implemented
96
28bb9d1f 97 ClassDef(AliPerformanceDEdx,2);
7cc34f08 98};
99
100#endif