]>
Commit | Line | Data |
---|---|---|
09b20ad1 | 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; | |
09b20ad1 | 16 | class AliRecInfoCuts; |
17 | class AliMCInfoCuts; | |
3baa4bfd | 18 | class TString; |
09b20ad1 | 19 | class AliESDVertex; |
71a14197 | 20 | class TNamed; |
09b20ad1 | 21 | |
71a14197 | 22 | #include "THnSparse.h" |
3baa4bfd | 23 | #include "AliComparisonObject.h" |
09b20ad1 | 24 | |
3baa4bfd | 25 | class AliComparisonEff : public AliComparisonObject { |
09b20ad1 | 26 | public : |
27 | AliComparisonEff(); | |
71a14197 | 28 | AliComparisonEff(Char_t* name, Char_t* title, Int_t analysisMode, Bool_t hptGenerator); |
09b20ad1 | 29 | ~AliComparisonEff(); |
3baa4bfd | 30 | |
31 | // Init data members | |
32 | virtual void Init(); | |
33 | ||
34 | // Execute analysis | |
71a14197 | 35 | virtual void Exec(AliMCInfo* const infoMC, AliESDRecInfo *const infoRC); |
3baa4bfd | 36 | |
37 | // Merge output objects (needed by PROOF) | |
71a14197 | 38 | virtual Long64_t Merge(TCollection* const list); |
3baa4bfd | 39 | |
40 | // Analyse output histograms | |
41 | virtual void Analyse(); | |
42 | ||
43 | // Get analysis folder | |
71a14197 | 44 | virtual TFolder* GetAnalysisFolder() const {return fAnalysisFolder;} |
3baa4bfd | 45 | |
46 | // Create folder for analysed histograms | |
47 | TFolder *CreateFolder(TString folder = "folderEff",TString title = "Analysed Efficiency histograms"); | |
48 | ||
b4126c69 | 49 | // Export objects to folder |
71a14197 | 50 | TFolder *ExportToFolder(TObjArray *array=0); |
b4126c69 | 51 | |
3baa4bfd | 52 | // Process events |
71a14197 | 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); | |
3baa4bfd | 56 | |
09b20ad1 | 57 | // Selection cuts |
71a14197 | 58 | void SetAliRecInfoCuts(AliRecInfoCuts* const cuts=0) {fCutsRC = cuts;} |
59 | void SetAliMCInfoCuts(AliMCInfoCuts* const cuts=0) {fCutsMC = cuts;} | |
09b20ad1 | 60 | |
3baa4bfd | 61 | // Getters |
09b20ad1 | 62 | AliRecInfoCuts* GetAliRecInfoCuts() const {return fCutsRC;} |
63 | AliMCInfoCuts* GetAliMCInfoCuts() const {return fCutsMC;} | |
64 | ||
71a14197 | 65 | THnSparseF* GetEffHisto() const {return fEffHisto;} |
09b20ad1 | 66 | |
67 | private: | |
68 | ||
69 | // Control histograms | |
71a14197 | 70 | THnSparseF *fEffHisto; //-> mceta:mcphi:mcpt:pid:isPrim:recStatus:findable |
35771050 | 71 | |
09b20ad1 | 72 | // Global cuts objects |
73 | AliRecInfoCuts* fCutsRC; // selection cuts for reconstructed tracks | |
74 | AliMCInfoCuts* fCutsMC; // selection cuts for MC tracks | |
75 | ||
3baa4bfd | 76 | // analysis folder |
77 | TFolder *fAnalysisFolder; // folder for analysed histograms | |
78 | ||
09b20ad1 | 79 | AliComparisonEff(const AliComparisonEff&); // not implemented |
80 | AliComparisonEff& operator=(const AliComparisonEff&); // not implemented | |
81 | ||
82 | ClassDef(AliComparisonEff,1); | |
83 | }; | |
84 | ||
85 | #endif |