]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG1/AliPerformanceDCA.h
Changes required by adding of perfomrance tasks (Jacek)
[u/mrichter/AliRoot.git] / PWG1 / AliPerformanceDCA.h
CommitLineData
777a0ba6 1#ifndef ALIPERFORMANCEDCA_H
2#define ALIPERFORMANCEDCA_H
3
4//------------------------------------------------------------------------------
5// Class to keep information from comparison of
6// reconstructed and MC particle tracks (DCA - Distance of Closest Approach
7// to the vertex).
8//
9// Author: J.Otwinowski 04/02/2008
10//------------------------------------------------------------------------------
11
12class AliESDEvent;
13class AliStack;
14class AliRecInfoCuts;
15class AliMCInfoCuts;
16class AliESDVertex;
17class AliESDtrack;
18class TH3;
19class TH2;
20class TH1;
21class TString;
22class TNamed;
23
24#include "THnSparse.h"
25#include "AliPerformanceObject.h"
26
27class AliPerformanceDCA : public AliPerformanceObject {
28public :
29 AliPerformanceDCA();
30 AliPerformanceDCA(Char_t* name, Char_t* title, Int_t analysisMode, Bool_t hptGenerator);
31 ~AliPerformanceDCA();
32
33 // Init data members
34 virtual void Init();
35
36 // Execute analysis
37 virtual void Exec(AliMCEvent* const mcEvent, AliESDEvent *const esdEvent, const Bool_t bUseMC);
38
39 // Merge output objects (needed by PROOF)
40 virtual Long64_t Merge(TCollection* const list);
41
42 // Analyse output histograms
43 virtual void Analyse();
44
45 // Get analysis folder
46 virtual TFolder* GetAnalysisFolder() const {return fAnalysisFolder;}
47
48 // Create folder for analysed histograms
49 TFolder *CreateFolder(TString folder = "folderDCA",TString title = "Analysed DCA histograms");
50
51 // Export objects to folder
52 TFolder *ExportToFolder(TObjArray * array=0);
53
54 void ProcessConstrained(AliStack* const stack, AliESDtrack *const esdTrack);
55 void ProcessTPC(AliStack* const stack, AliESDtrack *const esdTrack);
56 void ProcessTPCITS(AliStack* const stack, AliESDtrack *const esdTrack);
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 // getters
66 THnSparse* GetDCAHisto() const {return fDCAHisto;}
67
68 // Make stat histograms
69 TH1F* MakeStat1D(TH2 *hist, Int_t delta1, Int_t type);
70 TH2F* MakeStat2D(TH3 *hist, Int_t delta0, Int_t delta1, Int_t type);
71
72private:
73
74 // DCA histograms
75 THnSparseF *fDCAHisto; //-> dca_r:dca_z:eta:pt
76
77 // Global cuts objects
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 AliPerformanceDCA(const AliPerformanceDCA&); // not implemented
85 AliPerformanceDCA& operator=(const AliPerformanceDCA&); // not implemented
86
87 ClassDef(AliPerformanceDCA,1);
88};
89
90#endif