1 #ifndef ALIANALYSISMULTPBTRACKHISTOMANAGER_H
2 #define ALIANALYSISMULTPBTRACKHISTOMANAGER_H
4 #include "AliHistoListWrapper.h"
12 //#define WEIGHTED_DCA
13 #define TRANSVERSE_DCA
16 //-------------------------------------------------------------------------
17 // AliAnalysisMultPbTrackHistoManager
22 // Author: Michele Floris, CERN
23 //-------------------------------------------------------------------------
26 class AliAnalysisMultPbTrackHistoManager : public AliHistoListWrapper {
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;
35 AliAnalysisMultPbTrackHistoManager();
36 AliAnalysisMultPbTrackHistoManager(const char * name,const char * title);
37 AliAnalysisMultPbTrackHistoManager(const AliAnalysisMultPbTrackHistoManager& obj) ;
38 ~AliAnalysisMultPbTrackHistoManager();
41 void SetSuffix(const char * suffix) { fHNameSuffix = suffix;}
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);
50 TH1I * GetHistoStats();
51 TH2D * GetHistoDCA(Histo_t id);
52 TH1D * GetHistoMult(Histo_t id);
53 TH2D * GetHistoV0vsNtracks(Histo_t id);
56 TH1D * GetHistoSpecies(Histo_t id);
57 TH1D * GetHistoProcess(Histo_t id);
58 TH1D * GetHistoVzEvent(Histo_t id);
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));}
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);
74 TH1 * GetHisto(const char * name);
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.
85 AliAnalysisMultPbTrackHistoManager& operator=(const AliAnalysisMultPbTrackHistoManager& task);
87 ClassDef(AliAnalysisMultPbTrackHistoManager, 3)