Adding abstract class for comparison components
[u/mrichter/AliRoot.git] / PWG1 / AliComparisonDEdx.h
CommitLineData
09b20ad1 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
11class TFile;
12class AliMCInfo;
13class AliESDRecInfo;
14class AliESDEvent;
15class AliESD;
16class AliESDfriend;
17class AliRecInfoCuts;
18class AliMCInfoCuts;
19class TH1I;
20class TH3F;
21class TH3;
22class TProfile;
23class TProfile2D;
24class TGraph2D;
25class TGraph;
3baa4bfd 26class TString;
09b20ad1 27
28#include "TNamed.h"
3baa4bfd 29#include "AliComparisonObject.h"
09b20ad1 30
3baa4bfd 31//class AliComparisonDEdx : public TNamed {
32class AliComparisonDEdx : public AliComparisonObject {
09b20ad1 33public :
34 AliComparisonDEdx();
35 ~AliComparisonDEdx();
3baa4bfd 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 // Process events
09b20ad1 56 void Process(AliMCInfo* infoMC, AliESDRecInfo *infoRC);
57
58 // Selection cuts
59 void SetAliRecInfoCuts(AliRecInfoCuts* cuts=0) {fCutsRC = cuts;}
60 void SetAliMCInfoCuts(AliMCInfoCuts* cuts=0) {fCutsMC = cuts;}
61
62 void SetMCPtMin(const Float_t cuts=0) {fMCPtMin = cuts;}
63 void SetMCAbsTanThetaMax(const Float_t cuts=1e99) {fMCAbsTanThetaMax = cuts;}
64 void SetMCPdgCode(const Int_t cuts=0) {fMCPdgCode = cuts;}
65
66 AliRecInfoCuts* GetAliRecInfoCuts() const {return fCutsRC;}
67 AliMCInfoCuts* GetAliMCInfoCuts() const {return fCutsMC;}
68 Float_t GetMCPtMin() const {return fMCPtMin;}
69 Float_t GetMCAbsTanThetaMax() const {return fMCAbsTanThetaMax;}
70 Int_t GetMCPdgCode() const {return fMCPdgCode;}
71
72 static TH1F* MakeResol(TH2F * his, Int_t integ, Bool_t type);
73
09b20ad1 74private:
75
76 // TPC dE/dx
77 TH2F* fTPCSignalNormTan; //-> TPC signal normalized to the calculated MC signal
78 TH2F* fTPCSignalNormSPhi; //-> TPC signal normalized to the calculated MC signal
79 TH2F* fTPCSignalNormTPhi; //-> TPC signal normalized to the calculated MC signal
80 //
81 TH3F* fTPCSignalNormTanSPhi; //-> TPC signal normalized to the calculated MC signal
82 TH3F* fTPCSignalNormTanTPhi; //-> TPC signal normalized to the calculated MC signal
83 TH3F* fTPCSignalNormTanSPt; //-> TPC signal normalized to the calculated MC signal
84
85 // Selection cuts
86 AliRecInfoCuts* fCutsRC; // selection cuts for reconstructed tracks
87 AliMCInfoCuts* fCutsMC; // selection cuts for MC tracks
88
89 Float_t fMCPtMin; // min. MC pt cut
90 Float_t fMCAbsTanThetaMax; // max. MC abs[tan(theta)] cut
91 Int_t fMCPdgCode; // selected particle with Pdg code
92
3baa4bfd 93 // analysis folder
94 TFolder *fAnalysisFolder; // folder for analysed histograms
95
09b20ad1 96 AliComparisonDEdx(const AliComparisonDEdx&); // not implemented
97 AliComparisonDEdx& operator=(const AliComparisonDEdx&); // not implemented
98
99 ClassDef(AliComparisonDEdx,1);
100};
101
102#endif