]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/TPC/AliPerformanceDEdx.h
moving AddTaskMeanVertexCalib.C
[u/mrichter/AliRoot.git] / PWG1 / TPC / AliPerformanceDEdx.h
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 
9 // Changes by M.Knichel 15/10/2010
10 //------------------------------------------------------------------------------
11
12 class TCanvas;
13 class TH1F;
14 class TH2F;
15 class TNamed;
16 class TString;
17
18 class AliESDEvent; 
19 class AliESDfriend; 
20 class AliMCEvent;
21 class AliESDtrack;
22 class AliStack; 
23 class AliRecInfoCuts;
24 class AliMCInfoCuts;
25
26 #include "THnSparse.h"
27 #include "AliPerformanceObject.h"
28
29 class AliPerformanceDEdx : public AliPerformanceObject {
30 public :
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;}
49   
50   static Bool_t GetMergeTHnSparse() { return fgMergeTHnSparse; }
51   static void SetMergeTHnSparse(Bool_t mergeTHnSparse) { fgMergeTHnSparse = mergeTHnSparse; }
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
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
64
65   
66   // produce summary (currently not used)
67   virtual TTree* CreateSummary();
68
69   // Selection cuts
70   void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) {fCutsRC = cuts;}
71   void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0)   {fCutsMC = cuts;} 
72
73   AliRecInfoCuts*  GetAliRecInfoCuts() const {return fCutsRC;}
74   AliMCInfoCuts*   GetAliMCInfoCuts()  const {return fCutsMC;}
75
76   //
77   // TPC dE/dx 
78   //
79   THnSparse* GetDeDxHisto() const {return fDeDxHisto;}
80   TObjArray* GetHistos() const { return fFolderObj; }
81
82 private:
83
84   static Bool_t fgMergeTHnSparse;
85   
86   // TPC dE/dx 
87   THnSparseF *fDeDxHisto; //-> signal:phi:y:z:snp:tgl:ncls:p
88   TObjArray* fFolderObj; // array of analysed histograms
89   
90   // Selection cuts
91   AliRecInfoCuts*  fCutsRC; // selection cuts for reconstructed tracks
92   AliMCInfoCuts*   fCutsMC; // selection cuts for MC tracks
93
94   // analysis folder 
95   TFolder *fAnalysisFolder; // folder for analysed histograms
96   
97
98   AliPerformanceDEdx(const AliPerformanceDEdx&); // not implemented
99   AliPerformanceDEdx& operator=(const AliPerformanceDEdx&); // not implemented
100
101   ClassDef(AliPerformanceDEdx,3);
102 };
103
104 #endif