db34a0f41f0865ae7b0d306cb0ba6c2f69d5beb1
[u/mrichter/AliRoot.git] / PWG1 / AliComparisonDCA.h
1 #ifndef ALICOMPARISONDCA_H
2 #define ALICOMPARISONDCA_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 TFile;
13 class AliMCInfo;
14 class AliESDRecInfo;
15 class AliESDEvent; 
16 class AliESD;
17 class AliESDfriend;
18 class AliRecInfoCuts;
19 class AliMCInfoCuts;
20 class TH1I;
21 class TH3F;
22 class TH3;
23 class TProfile;
24 class TProfile2D;
25 class TString;
26 class AliESDVertex;
27
28 #include "TNamed.h"
29 #include "AliComparisonObject.h"
30
31 //class AliComparisonDCA : public TNamed {
32 class AliComparisonDCA : public AliComparisonObject {
33 public :
34   AliComparisonDCA(); 
35   ~AliComparisonDCA();
36
37   // Init data members
38   virtual void Init();
39
40   // Execute analysis
41   virtual void Exec(AliMCInfo* infoMC, AliESDRecInfo *infoRC);
42
43   // Merge output objects (needed by PROOF) 
44   virtual Long64_t Merge(TCollection* list);
45
46   // Analyse output histograms
47   virtual void Analyse();
48
49   // Get analysis folder
50   virtual TFolder* GetAnalysisFolder() {return fAnalysisFolder;}
51
52   // Create folder for analysed histograms
53   TFolder *CreateFolder(TString folder = "folderDCA",TString title = "Analysed DCA histograms");
54
55   // Export objects to folder
56   TFolder *ExportToFolder(TObjArray * array=0);
57
58   // Process events
59   void  Process(AliMCInfo* infoMC, AliESDRecInfo *infoRC);
60
61   // Selection cuts
62   void SetAliRecInfoCuts(AliRecInfoCuts* cuts=0) {fCutsRC = cuts;}
63   void SetAliMCInfoCuts(AliMCInfoCuts* cuts=0) {fCutsMC = cuts;}  
64
65   AliRecInfoCuts*  GetAliRecInfoCuts() const {return fCutsRC;}
66   AliMCInfoCuts*   GetAliMCInfoCuts()  const {return fCutsMC;}
67
68   // getters
69   TH3F  *GetD0TanSPtTPCITS() {return fD0TanSPtTPCITS;}
70   TH3F  *GetD1TanSPtTPCITS() {return fD1TanSPtTPCITS;}
71   TH3F  *GetD0TanSPt() {return fD0TanSPt;}
72   TH3F  *GetD1TanSPt() {return fD1TanSPt;}
73   TH3F  *GetD0TanSPtTPC() {return fD0TanSPtTPC;}
74   TH3F  *GetD1TanSPtTPC() {return fD1TanSPtTPC;}
75
76 private:
77   // DCA resolution
78   TH3F  *fD0TanSPtTPCITS; //-> distance to vertex y (TPC+ITS clusters) 
79   TH3F  *fD1TanSPtTPCITS; //-> distance to vertex z (TPC+ITS clusters) 
80   TH3F  *fD0TanSPt;     //-> distance to vertex y  
81   TH3F  *fD1TanSPt;     //-> distance to vertex z 
82   TH3F  *fD0TanSPtTPC;  //-> distance to vertex y (only TPC track parameters) 
83   TH3F  *fD1TanSPtTPC;  //-> distance to vertex z (only TPC track parameters)
84
85   // Global cuts objects
86   AliRecInfoCuts*  fCutsRC; // selection cuts for reconstructed tracks
87   AliMCInfoCuts*  fCutsMC;  // selection cuts for MC tracks
88
89   // analysis folder 
90   TFolder *fAnalysisFolder; // folder for analysed histograms
91
92   AliComparisonDCA(const AliComparisonDCA&); // not implemented
93   AliComparisonDCA& operator=(const AliComparisonDCA&); // not implemented
94
95   ClassDef(AliComparisonDCA,1);
96 };
97
98 #endif