]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliPerformanceDCA.h
Changes required by adding of perfomrance tasks (Jacek)
[u/mrichter/AliRoot.git] / PWG1 / AliPerformanceDCA.h
1 #ifndef ALIPERFORMANCEDCA_H
2 #define ALIPERFORMANCEDCA_H
3
4 //------------------------------------------------------------------------------
5 // Class to keep information from comparison of 
6 // reconstructed and MC particle tracks (DCA - Distance of Closest Approach 
7 // to the vertex).   
8 // 
9 // Author: J.Otwinowski 04/02/2008 
10 //------------------------------------------------------------------------------
11
12 class AliESDEvent; 
13 class AliStack; 
14 class AliRecInfoCuts;
15 class AliMCInfoCuts;
16 class AliESDVertex;
17 class AliESDtrack;
18 class TH3;
19 class TH2;
20 class TH1;
21 class TString;
22 class TNamed;
23
24 #include "THnSparse.h"
25 #include "AliPerformanceObject.h"
26
27 class AliPerformanceDCA : public AliPerformanceObject {
28 public :
29   AliPerformanceDCA(); 
30   AliPerformanceDCA(Char_t* name, Char_t* title, Int_t analysisMode, Bool_t hptGenerator);
31   ~AliPerformanceDCA();
32
33   // Init data members
34   virtual void Init();
35
36   // Execute analysis
37   virtual void Exec(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent, const Bool_t bUseMC);
38
39   // Merge output objects (needed by PROOF) 
40   virtual Long64_t Merge(TCollection* const list);
41
42   // Analyse output histograms
43   virtual void Analyse();
44
45   // Get analysis folder
46   virtual TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}
47
48   // Create folder for analysed histograms
49   TFolder *CreateFolder(TString folder = "folderDCA",TString title = "Analysed DCA histograms");
50
51   // Export objects to folder
52   TFolder *ExportToFolder(TObjArray * array=0);
53
54   void ProcessConstrained(AliStack* const stack, AliESDtrack *const esdTrack);
55   void ProcessTPC(AliStack* const stack, AliESDtrack *const esdTrack);
56   void ProcessTPCITS(AliStack* const stack, AliESDtrack *const esdTrack);
57
58   // Selection cuts
59   void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) {fCutsRC = cuts;}
60   void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0) {fCutsMC = cuts;}  
61
62   AliRecInfoCuts*  GetAliRecInfoCuts() const {return fCutsRC;}
63   AliMCInfoCuts*   GetAliMCInfoCuts()  const {return fCutsMC;}
64
65   // getters
66   THnSparse* GetDCAHisto() const {return fDCAHisto;}
67
68   // Make stat histograms
69   TH1F* MakeStat1D(TH2 *hist, Int_t delta1, Int_t type);
70   TH2F* MakeStat2D(TH3 *hist, Int_t delta0, Int_t delta1, Int_t type);
71
72 private:
73
74   // DCA histograms
75   THnSparseF *fDCAHisto; //-> dca_r:dca_z:eta:pt 
76  
77   // Global cuts objects
78   AliRecInfoCuts* fCutsRC; // selection cuts for reconstructed tracks
79   AliMCInfoCuts*  fCutsMC;  // selection cuts for MC tracks
80
81   // analysis folder 
82   TFolder *fAnalysisFolder; // folder for analysed histograms
83
84   AliPerformanceDCA(const AliPerformanceDCA&); // not implemented
85   AliPerformanceDCA& operator=(const AliPerformanceDCA&); // not implemented
86
87   ClassDef(AliPerformanceDCA,1);
88 };
89
90 #endif