]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PWG0/dNdEta/dNdEtaAnalysis.h
updated dndeta analysis
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / dNdEtaAnalysis.h
... / ...
CommitLineData
1/* $Id$ */
2
3#ifndef DNDETANALYSIS_H
4#define DNDETANALYSIS_H
5
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
20#include <TNamed.h>
21#include "AlidNdEtaCorrection.h"
22#include "AliPWG0Helper.h"
23#include <TString.h>
24
25class TH1F;
26class TCollection;
27
28class AliCorrection;
29
30class dNdEtaAnalysis : public TNamed
31{
32public:
33 enum { kVertexBinning = 1+2 }; // the first is for the whole vertex range, the others divide the vertex range
34
35 dNdEtaAnalysis();
36 dNdEtaAnalysis(const Char_t* name, const Char_t* title, AliPWG0Helper::AnalysisMode analysisMode = (AliPWG0Helper::AnalysisMode) (AliPWG0Helper::kTPC | AliPWG0Helper::kFieldOn));
37 virtual ~dNdEtaAnalysis();
38
39 dNdEtaAnalysis(const dNdEtaAnalysis &c);
40 dNdEtaAnalysis &operator=(const dNdEtaAnalysis &c);
41 virtual void Copy(TObject &c) const;
42
43 void FillTrack(Float_t vtx, Float_t eta, Float_t pt);
44 void FillEvent(Float_t vtx, Float_t n);
45 void FillTriggeredEvent(Float_t n);
46
47 void Finish(AlidNdEtaCorrection* correction, Float_t ptCut, AlidNdEtaCorrection::CorrectionType correctionType, const char* tag = "", Int_t backgroundSubtraction = 0, TH1* combinatoricsCorrection = 0);
48
49 void DrawHistograms(Bool_t simple = kFALSE);
50 void LoadHistograms(const Char_t* dir = 0);
51 void SaveHistograms();
52
53 virtual Long64_t Merge(TCollection* list);
54
55 AliCorrection* GetData() const { return fData; }
56
57 TH1F* GetPtHistogram() const { return fPtDist; }
58
59 TH1F* GetdNdEtaHistogram(Int_t i = 0) const { return fdNdEta[i]; }
60 TH1F* GetdNdEtaPtCutOffCorrectedHistogram(Int_t i = 0) const { return fdNdEtaPtCutOffCorrected[i]; }
61
62 void SetAnalysisMode(AliPWG0Helper::AnalysisMode mode) { fAnalysisMode = mode; }
63 AliPWG0Helper::AnalysisMode GetAnalysisMode() { return fAnalysisMode; }
64
65protected:
66 Float_t GetVtxMin(Float_t eta);
67
68 AliCorrection* fData; // we store the data in an AliCorrection
69 TH1F* fMult; // (raw) multiplicity distribution of triggered events
70
71 TH1F* fPtDist; // pt distribution
72
73 TH1F* fdNdEta[kVertexBinning]; // dndeta results for different vertex bins (0 = full range)
74 TH1F* fdNdEtaPtCutOffCorrected[kVertexBinning]; // dndeta results for different vertex bins (0 = full range), pt cut off corrected
75
76 AliPWG0Helper::AnalysisMode fAnalysisMode; // detector (combination) used for the analysis
77 TString fTag; // tag saved that describes the applied correction
78
79 ClassDef(dNdEtaAnalysis, 2)
80};
81
82#endif