]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliPerformanceDEdx.h
matching performance ITS-TPC-TRD class
[u/mrichter/AliRoot.git] / PWG1 / 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 //------------------------------------------------------------------------------
10
11 class TCanvas;
12 class TH1F;
13 class TH2F;
14 class TNamed;
15 class TString;
16
17 class AliESDEvent; 
18 class AliESDfriend; 
19 class AliMCEvent;
20 class AliESDtrack;
21 class AliStack; 
22 class AliRecInfoCuts;
23 class AliMCInfoCuts;
24
25 #include "THnSparse.h"
26 #include "AliPerformanceObject.h"
27
28 class AliPerformanceDEdx : public AliPerformanceObject {
29 public :
30   AliPerformanceDEdx(); 
31   AliPerformanceDEdx(Char_t* name, Char_t* title, Int_t analysisMode, Bool_t hptGenerator);
32   ~AliPerformanceDEdx();
33
34   // Init data members
35   virtual void Init();
36
37   // Execute analysis
38   virtual void  Exec(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent, AliESDfriend *const esdFriend, const Bool_t bUseMC, const Bool_t bUseESDfriend);
39
40   // Merge output objects (needed by PROOF) 
41   virtual Long64_t Merge(TCollection* const list);
42
43   // Analyse output histograms
44   virtual void Analyse();
45
46   // Get analysis folder
47   virtual TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}
48
49   // Create folder for analysed histograms
50   TFolder *CreateFolder(TString folder = "folderDEdx",TString title = "Analysed DEdx histograms");
51
52   // Export objects to folder
53   TFolder *ExportToFolder(TObjArray * array=0);
54
55   // Process events
56   void  ProcessTPC(AliStack* const stack, AliESDtrack *const esdTrack); // not implemented
57   void  ProcessInnerTPC(AliStack* const stack, AliESDtrack *const esdTrack);
58   void  ProcessTPCITS(AliStack* const stack, AliESDtrack *const esdTrack);      // not implemented
59   void  ProcessConstrained(AliStack* const stack, AliESDtrack *const esdTrack); // not implemented
60
61   // Selection cuts
62   void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) {fCutsRC = cuts;}
63   void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0)   {fCutsMC = cuts;} 
64
65   AliRecInfoCuts*  GetAliRecInfoCuts() const {return fCutsRC;}      
66   AliMCInfoCuts*   GetAliMCInfoCuts()  const {return fCutsMC;}     
67
68   //
69   // TPC dE/dx 
70   //
71   THnSparse* GetDeDxHisto() const {return fDeDxHisto;}
72
73 private:
74
75   // TPC dE/dx 
76   THnSparseF *fDeDxHisto; //-> signal:alpha:y:z:snp:tgl:ncls:pid:p
77   
78   // Selection cuts
79   AliRecInfoCuts*  fCutsRC; // selection cuts for reconstructed tracks
80   AliMCInfoCuts*   fCutsMC; // selection cuts for MC tracks
81
82   // analysis folder 
83   TFolder *fAnalysisFolder; // folder for analysed histograms
84
85   AliPerformanceDEdx(const AliPerformanceDEdx&); // not implemented
86   AliPerformanceDEdx& operator=(const AliPerformanceDEdx&); // not implemented
87
88   ClassDef(AliPerformanceDEdx,1);
89 };
90
91 #endif