]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliComparisonDEdx.h
Fixing the decoding of regional header bits.
[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 private:
78
79   // TPC dE/dx 
80   TH2F* fTPCSignalNormTan;    //-> TPC signal normalized to the calculated MC signal 
81   TH2F* fTPCSignalNormSPhi;   //-> TPC signal normalized to the calculated MC signal
82   TH2F* fTPCSignalNormTPhi;   //-> TPC signal normalized to the calculated MC signal
83   //
84   TH3F* fTPCSignalNormTanSPhi;   //-> TPC signal normalized to the calculated MC signal
85   TH3F* fTPCSignalNormTanTPhi;   //-> TPC signal normalized to the calculated MC signal
86   TH3F* fTPCSignalNormTanSPt;    //-> TPC signal normalized to the calculated MC signal
87   
88   // Selection cuts
89   AliRecInfoCuts*  fCutsRC; // selection cuts for reconstructed tracks
90   AliMCInfoCuts*   fCutsMC; // selection cuts for MC tracks
91
92   Float_t fMCPtMin;               // min. MC pt cut
93   Float_t fMCAbsTanThetaMax;      // max. MC abs[tan(theta)] cut
94   Int_t fMCPdgCode;               // selected particle with Pdg code
95
96   // analysis folder 
97   TFolder *fAnalysisFolder; // folder for analysed histograms
98
99   AliComparisonDEdx(const AliComparisonDEdx&); // not implemented
100   AliComparisonDEdx& operator=(const AliComparisonDEdx&); // not implemented
101
102   ClassDef(AliComparisonDEdx,1);
103 };
104
105 #endif