]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/TPC/AliComparisonEff.h
move all TPC related classes
[u/mrichter/AliRoot.git] / PWG1 / TPC / AliComparisonEff.h
1 #ifndef ALICOMPARISONEFF_H
2 #define ALICOMPARISONEFF_H
3
4 //------------------------------------------------------------------------------
5 // Class to keep information from comparison of 
6 // reconstructed and MC particle tracks (TPC efficiency).   
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 AliRecInfoCuts;
17 class AliMCInfoCuts;
18 class TString;
19 class AliESDVertex;
20 class TNamed;
21
22 #include "THnSparse.h"
23 #include "AliComparisonObject.h"
24
25 class AliComparisonEff : public AliComparisonObject {
26 public :
27   AliComparisonEff(); 
28   AliComparisonEff(Char_t* name, Char_t* title, Int_t analysisMode, Bool_t hptGenerator);
29   ~AliComparisonEff();
30
31   // Init data members
32   virtual void Init();
33
34   // Execute analysis 
35   virtual void Exec(AliMCInfo* const infoMC, AliESDRecInfo *const infoRC);
36
37   // Merge output objects (needed by PROOF) 
38   virtual Long64_t Merge(TCollection* const list);
39
40   // Analyse output histograms 
41   virtual void Analyse();
42
43   // Get analysis folder
44   virtual TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}
45
46   // Create folder for analysed histograms
47   TFolder *CreateFolder(TString folder = "folderEff",TString title = "Analysed Efficiency histograms");
48
49   // Export objects to folder
50   TFolder *ExportToFolder(TObjArray *array=0);
51
52   // Process events
53   void ProcessTPC(AliMCInfo* const infoMC, AliESDRecInfo* const infoRC);
54   void ProcessTPCITS(AliMCInfo* const infoMC, AliESDRecInfo* const infoRC);
55   void ProcessConstrained(AliMCInfo* const infoMC, AliESDRecInfo* const infoRC);
56
57   // Selection cuts
58   void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) {fCutsRC = cuts;}
59   void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0) {fCutsMC = cuts;} 
60   
61   // Getters
62   AliRecInfoCuts*  GetAliRecInfoCuts() const {return fCutsRC;} 
63   AliMCInfoCuts*   GetAliMCInfoCuts()  const {return fCutsMC;}
64
65   THnSparseF* GetEffHisto() const {return fEffHisto;}
66
67 private:
68
69   // Control histograms
70   THnSparseF *fEffHisto; //-> mceta:mcphi:mcpt:pid:isPrim:recStatus:findable
71
72   // Global cuts objects
73   AliRecInfoCuts* fCutsRC;     // selection cuts for reconstructed tracks
74   AliMCInfoCuts*  fCutsMC;     // selection cuts for MC tracks
75
76   // analysis folder 
77   TFolder *fAnalysisFolder; // folder for analysed histograms
78
79   AliComparisonEff(const AliComparisonEff&); // not implemented
80   AliComparisonEff& operator=(const AliComparisonEff&); // not implemented
81
82   ClassDef(AliComparisonEff,1);
83 };
84
85 #endif