]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/multPbPb/AliAnalysisMultPbTrackHistoManager.h
27e29cd34b38991921cedb4596056e728dd0cf30
[u/mrichter/AliRoot.git] / PWG0 / multPbPb / AliAnalysisMultPbTrackHistoManager.h
1 #ifndef ALIANALYSISMULTPBTRACKHISTOMANAGER_H
2 #define ALIANALYSISMULTPBTRACKHISTOMANAGER_H
3
4 #include "AliHistoListWrapper.h"
5 #include "TH3D.h"
6
7 class TH3D;
8 class TH1D;
9 class TH1I;
10 class AliMCParticle;
11
12 //#define WEIGHTED_DCA
13 #define TRANSVERSE_DCA
14
15
16 //-------------------------------------------------------------------------
17 //                      AliAnalysisMultPbTrackHistoManager
18 // 
19 // 
20 //
21 //
22 // Author: Michele Floris, CERN
23 //-------------------------------------------------------------------------
24
25
26 class AliAnalysisMultPbTrackHistoManager : public AliHistoListWrapper {
27
28 public:
29
30   typedef enum {kHistoGen, kHistoRec, kHistoRecPrim, kHistoRecSecWeak, kHistoRecSecMat, kHistoRecFake, kNHistos} Histo_t;
31   typedef enum {kStatAll,  kStatCentr, kStatPhysSel, kStatVtx, kStatZDCCut, kNStatBins} Stat_t;
32   typedef enum {kPartPiPlus, kPartKPlus, kPartP, kPartLPlus, kPartPiMinus, kPartKMinus, kPartPBar, kPartLMinus, kPartOther, kNPart} Part_t;
33
34
35   AliAnalysisMultPbTrackHistoManager();
36   AliAnalysisMultPbTrackHistoManager(const char * name,const char * title);
37   AliAnalysisMultPbTrackHistoManager(const AliAnalysisMultPbTrackHistoManager& obj) ;
38   ~AliAnalysisMultPbTrackHistoManager();
39   
40   // Setters
41   void SetSuffix(const char * suffix) { fHNameSuffix = suffix;}
42
43   // Histo getters
44   TH3D * GetHistoPtEtaVz(Histo_t id, Int_t particle = -1);
45   TH1D * GetHistoPt (Histo_t id, Float_t minEta = -22222, Float_t maxEta = -22222, Float_t minVz  = -22222, Float_t maxVz  = -22222, Bool_t scaleWidth = kTRUE);
46   TH1D * GetHistoEta(Histo_t id, Float_t minPt  = -22222, Float_t maxPt  = -22222, Float_t minVz  = -22222, Float_t maxVz  = -22222, Bool_t scaleWidth = kTRUE);
47   TH1D * GetHistoVz (Histo_t id, Float_t minPt  = -22222, Float_t maxPt  = -22222, Float_t minEta = -22222, Float_t maxEta = -22222, Bool_t scaleWidth = kTRUE);
48   TH2D * GetHistoPtVz (Histo_t id, Float_t minEta = -22222, Float_t maxEta = -22222, Bool_t scaleWidth = kFALSE);
49
50   TH1I * GetHistoStats();
51   TH2D * GetHistoDCA(Histo_t id);
52   TH1D * GetHistoMult(Histo_t id);
53   TH2D * GetHistoV0vsNtracks(Histo_t id);
54
55
56   TH1D * GetHistoSpecies(Histo_t id);
57   TH1D * GetHistoProcess(Histo_t id);
58   TH1D * GetHistoVzEvent(Histo_t id);
59
60
61
62   // Misch utils
63   void ScaleHistos (Double_t nev, Option_t * option="");
64   Int_t GetLocalParticleID(AliMCParticle * part);
65   void FillParticleID(Histo_t id, AliMCParticle * part) { GetHistoSpecies(id)->Fill(GetLocalParticleID(part));}
66
67   // Histo bookers
68   TH3D * BookHistoPtEtaVz(const char * name, const char * title);
69   TH2D * BookHistoDCA(const char * name, const char * title);
70   TH1I * BookHistoStats();
71   TH1D * BookHistoMult(const char * name, const char * title);
72
73   // 
74   TH1 * GetHisto(const char * name);
75
76 private:
77
78   static const char * kStatStepNames[];       // names of the step hist
79   static const char * kHistoPtEtaVzNames[];   // names of the 3D histograms pt/eta/vz
80   static const char * kHistoDCANames[];   // names of the DCA histograms 
81   static const char * kHistoPrefix[];   // prefix for histo names // FIXME: remove the others and keep only this 
82   static const char * kSpeciesName[];   // Particle species
83   TString fHNameSuffix; // Suffix added to all histo names. Useful if you have in the same session e.g. MC and data.
84
85   AliAnalysisMultPbTrackHistoManager& operator=(const AliAnalysisMultPbTrackHistoManager& task);
86   
87   ClassDef(AliAnalysisMultPbTrackHistoManager, 3)
88
89
90 };
91
92 #endif