]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliComparisonDEdx.h
Move QA macro to new AddTask compatible format
[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 TCanvas;
12 class TH1F;
13 class TH2F;
14 class TNamed;
15 class TString;
16
17 class AliMCInfo;
18 class AliESDRecInfo;
19 class AliESDEvent; 
20 class AliRecInfoCuts;
21 class AliMCInfoCuts;
22
23 #include "THnSparse.h"
24 #include "AliComparisonObject.h"
25
26 class AliComparisonDEdx : public AliComparisonObject {
27 public :
28   AliComparisonDEdx(); 
29   AliComparisonDEdx(Char_t* name, Char_t* title, Int_t analysisMode, Bool_t hptGenerator);
30   ~AliComparisonDEdx();
31
32   // Init data members
33   virtual void Init();
34
35   // Execute analysis
36   virtual void Exec(AliMCInfo* const infoMC, AliESDRecInfo *const infoRC);
37
38   // Merge output objects (needed by PROOF) 
39   virtual Long64_t Merge(TCollection* const list);
40
41   // Analyse output histograms
42   virtual void Analyse();
43
44   // Get analysis folder
45   virtual TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}
46
47   // Create folder for analysed histograms
48   TFolder *CreateFolder(TString folder = "folderDEdx",TString title = "Analysed DEdx histograms");
49
50   // Export objects to folder
51   TFolder *ExportToFolder(TObjArray * array=0);
52
53   // Process events
54   void  ProcessTPC(AliMCInfo* const infoMC, AliESDRecInfo *const infoRC);
55   void  ProcessTPCITS(AliMCInfo* const infoMC, AliESDRecInfo *const infoRC); // not implemented
56   void  ProcessConstrained(AliMCInfo* const infoMC, AliESDRecInfo *const infoRC); // not implemented
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   static TH1F*     MakeResol(TH2F * his, Int_t integ, Bool_t type); 
66
67   //
68   // TPC dE/dx 
69   //
70   THnSparse* GetDeDxHisto() const {return fDeDxHisto;}
71
72 private:
73
74   // TPC dE/dx 
75   THnSparseF *fDeDxHisto; //-> signal:alpha:y:z:snp:tgl:ncls:pid:p
76   
77   // Selection cuts
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   AliComparisonDEdx(const AliComparisonDEdx&); // not implemented
85   AliComparisonDEdx& operator=(const AliComparisonDEdx&); // not implemented
86
87   ClassDef(AliComparisonDEdx,1);
88 };
89
90 #endif