]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG0/dNdEta/dNdEtaAnalysis.h
- macro for creating OCDB configuration objects of the GlobalHisto component
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / dNdEtaAnalysis.h
CommitLineData
dc740de4 1/* $Id$ */
2
539b6cb4 3#ifndef DNDETANALYSIS_H
4#define DNDETANALYSIS_H
5
75ec0f41 6// ------------------------------------------------------
7//
8// Class for dn/deta analysis
9//
10// ------------------------------------------------------
11//
12// TODO:
13// - more documentation
14// - add debug statements
15// - add more histograms
16// - add functionality to set the bin sizes
17// - figure out correct way to treat the errors
18// - add functionality to make dn/deta for different mult classes?
19
7029240a 20#include <TNamed.h>
74fd10b3 21#include "AlidNdEtaCorrection.h"
770a1f1d 22#include "AliPWG0Helper.h"
745d6088 23#include <TString.h>
75ec0f41 24
74fd10b3 25class TH1F;
7029240a 26class TCollection;
74fd10b3 27
74fd10b3 28class AliCorrection;
75ec0f41 29
7029240a 30class dNdEtaAnalysis : public TNamed
ceb5d1b5 31{
75ec0f41 32public:
74fd10b3 33 enum { kVertexBinning = 1+2 }; // the first is for the whole vertex range, the others divide the vertex range
7029240a 34
1afae8ff 35 dNdEtaAnalysis();
a7f69e56 36 dNdEtaAnalysis(const Char_t* name, const Char_t* title, AliPWG0Helper::AnalysisMode analysisMode = (AliPWG0Helper::AnalysisMode) (AliPWG0Helper::kTPC | AliPWG0Helper::kFieldOn));
16e24ca3 37 virtual ~dNdEtaAnalysis();
38
39 dNdEtaAnalysis(const dNdEtaAnalysis &c);
40 dNdEtaAnalysis &operator=(const dNdEtaAnalysis &c);
41 virtual void Copy(TObject &c) const;
75ec0f41 42
74fd10b3 43 void FillTrack(Float_t vtx, Float_t eta, Float_t pt);
44 void FillEvent(Float_t vtx, Float_t n);
7307d52c 45 void FillTriggeredEvent(Float_t n);
ceb5d1b5 46
81be4ee8 47 void Finish(AlidNdEtaCorrection* correction, Float_t ptCut, AlidNdEtaCorrection::CorrectionType correctionType, const char* tag = "", Int_t backgroundSubtraction = 0, TH1* combinatoricsCorrection = 0);
ceb5d1b5 48
74fd10b3 49 void DrawHistograms(Bool_t simple = kFALSE);
50 void LoadHistograms(const Char_t* dir = 0);
75ec0f41 51 void SaveHistograms();
ceb5d1b5 52
7029240a 53 virtual Long64_t Merge(TCollection* list);
54
a6e0ebfe 55 AliCorrection* GetData() const { return fData; }
ceb5d1b5 56
a6e0ebfe 57 TH1F* GetPtHistogram() const { return fPtDist; }
45e97e28 58
a6e0ebfe 59 TH1F* GetdNdEtaHistogram(Int_t i = 0) const { return fdNdEta[i]; }
60 TH1F* GetdNdEtaPtCutOffCorrectedHistogram(Int_t i = 0) const { return fdNdEtaPtCutOffCorrected[i]; }
74fd10b3 61
51f6de65 62 void SetAnalysisMode(AliPWG0Helper::AnalysisMode mode) { fAnalysisMode = mode; }
69b09e3b 63 AliPWG0Helper::AnalysisMode GetAnalysisMode() { return fAnalysisMode; }
51f6de65 64
68fa248f 65 void SetVtxMin(Float_t vtxMin) {fvtxMin = vtxMin;}
66 void SetVtxMax(Float_t vtxMax) {fvtxMax = vtxMax;}
67
74fd10b3 68protected:
567160d6 69 Float_t GetVtxMin(Float_t eta);
70
74fd10b3 71 AliCorrection* fData; // we store the data in an AliCorrection
7307d52c 72 TH1F* fMult; // (raw) multiplicity distribution of triggered events
1afae8ff 73
74fd10b3 74 TH1F* fPtDist; // pt distribution
1afae8ff 75
7307d52c 76 TH1F* fdNdEta[kVertexBinning]; // dndeta results for different vertex bins (0 = full range)
77 TH1F* fdNdEtaPtCutOffCorrected[kVertexBinning]; // dndeta results for different vertex bins (0 = full range), pt cut off corrected
ceb5d1b5 78
745d6088 79 AliPWG0Helper::AnalysisMode fAnalysisMode; // detector (combination) used for the analysis
80 TString fTag; // tag saved that describes the applied correction
81
68fa248f 82 Float_t fvtxMin; // mininum vtx on which to integrate
83 Float_t fvtxMax; // maximum vtx on which to intgrate
84
85 ClassDef(dNdEtaAnalysis, 3)
75ec0f41 86};
87
539b6cb4 88#endif