1b40d8b97c827f4e5767ff0667964b5ff7dc0199
[u/mrichter/AliRoot.git] / PWG1 / AliComparisonDEdx.h
1 #ifndef ALICOMPARISONDEdx_H
2 #define ALICOMPARISONDEdx_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 TFile;
12 class AliMCInfo;
13 class AliESDRecInfo;
14 class AliESDEvent; 
15 class AliESD;
16 class AliESDfriend;
17 class AliRecInfoCuts;
18 class AliMCInfoCuts;
19 class TH1I;
20 class TH3F;
21 class TH3;
22 class TProfile;
23 class TProfile2D;
24 class TGraph2D;
25 class TGraph; 
26 class TString;
27
28 #include "TNamed.h"
29 #include "AliComparisonObject.h"
30
31 //class AliComparisonDEdx : public TNamed {
32 class AliComparisonDEdx : public AliComparisonObject {
33 public :
34   AliComparisonDEdx(); 
35   ~AliComparisonDEdx();
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 = "folderDEdx",TString title = "Analysed DEdx 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   void SetMCPtMin(const Float_t cuts=0) {fMCPtMin = cuts;} 
66   void SetMCAbsTanThetaMax(const Float_t cuts=1e99) {fMCAbsTanThetaMax = cuts;} 
67   void SetMCPdgCode(const Int_t cuts=0) {fMCPdgCode = cuts;} 
68
69   AliRecInfoCuts*  GetAliRecInfoCuts() const {return fCutsRC;}      
70   AliMCInfoCuts*   GetAliMCInfoCuts()  const {return fCutsMC;}     
71   Float_t GetMCPtMin() const {return fMCPtMin;}
72   Float_t GetMCAbsTanThetaMax() const {return fMCAbsTanThetaMax;}
73   Int_t GetMCPdgCode() const {return fMCPdgCode;} 
74
75   static TH1F*     MakeResol(TH2F * his, Int_t integ, Bool_t type); 
76
77   //
78   // TPC dE/dx 
79   TH2F* GetTPCSignalNormTan() {return fTPCSignalNormTan;}
80   TH2F* GetTPCSignalNormSPhi() {return fTPCSignalNormSPhi;}
81   TH2F* GetTPCSignalNormTPhi() {return fTPCSignalNormTPhi;}
82   //
83   TH3F* GetTPCSignalNormTanSPhi() {return fTPCSignalNormTanSPhi;}
84   TH3F* GetTPCSignalNormTanTPhi() {return fTPCSignalNormTanTPhi;}
85   TH3F* GetTPCSignalNormTanSPt() {return fTPCSignalNormTanSPt;}
86   
87
88 private:
89
90   // TPC dE/dx 
91   TH2F* fTPCSignalNormTan;    //-> TPC signal normalized to the calculated MC signal 
92   TH2F* fTPCSignalNormSPhi;   //-> TPC signal normalized to the calculated MC signal
93   TH2F* fTPCSignalNormTPhi;   //-> TPC signal normalized to the calculated MC signal
94   //
95   TH3F* fTPCSignalNormTanSPhi;   //-> TPC signal normalized to the calculated MC signal
96   TH3F* fTPCSignalNormTanTPhi;   //-> TPC signal normalized to the calculated MC signal
97   TH3F* fTPCSignalNormTanSPt;    //-> TPC signal normalized to the calculated MC signal
98   
99   // Selection cuts
100   AliRecInfoCuts*  fCutsRC; // selection cuts for reconstructed tracks
101   AliMCInfoCuts*   fCutsMC; // selection cuts for MC tracks
102
103   Float_t fMCPtMin;               // min. MC pt cut
104   Float_t fMCAbsTanThetaMax;      // max. MC abs[tan(theta)] cut
105   Int_t fMCPdgCode;               // selected particle with Pdg code
106
107   // analysis folder 
108   TFolder *fAnalysisFolder; // folder for analysed histograms
109
110   AliComparisonDEdx(const AliComparisonDEdx&); // not implemented
111   AliComparisonDEdx& operator=(const AliComparisonDEdx&); // not implemented
112
113   ClassDef(AliComparisonDEdx,1);
114 };
115
116 #endif