include file missing
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / AlidNdEtaCorrection.h
CommitLineData
55e05544 1/* $Id$ */
2
3#ifndef ALIDNDETACORRECTION_H
4#define ALIDNDETACORRECTION_H
5
6
7// ------------------------------------------------------
8//
9// Class to handle corrections for dN/dEta measurements
10//
11// ------------------------------------------------------
12//
13// TODO:
14// - make the ntrack to npart correction 3D
15// - add documentation
16// - add status: generate or use maps
17// - add functionality to set the bin sizes
1afae8ff 18// - update MERge function
45e97e28 19//
55e05544 20
7ca4655f 21#include <TCollection.h>
55e05544 22#include <TNamed.h>
55e05544 23
74fd10b3 24class AliCorrection;
55e05544 25
26class AlidNdEtaCorrection : public TNamed
27{
55e05544 28public:
74fd10b3 29 enum CorrectionType {
0448e811 30 kNone = 0,
74fd10b3 31 kTrack2Particle, // measured events
32 kVertexReco, // MB sample
33 kINEL,
34 kNSD,
35 kND
36 };
37
8b3563f4 38 AlidNdEtaCorrection();
0f67a57c 39 AlidNdEtaCorrection(const Char_t* name, const Char_t* title, const char* analysis = "TPC");
55e05544 40
74fd10b3 41 virtual Long64_t Merge(TCollection* list);
42
38233af1 43 ~AlidNdEtaCorrection();
44
74fd10b3 45 void FillMCParticle(Float_t vtx, Float_t eta, Float_t pt, Bool_t trigger, Bool_t vertex, Int_t processType);
46 void FillTrackedParticle(Float_t vtx, Float_t eta, Float_t pt);
47 void FillEvent(Float_t vtx, Float_t n, Bool_t trigger, Bool_t vertex, Int_t processType);
55e05544 48
45e97e28 49 void Finish();
50
74fd10b3 51 AliCorrection* GetTrack2ParticleCorrection() {return fTrack2ParticleCorrection;}
52 AliCorrection* GetVertexRecoCorrection() {return fVertexRecoCorrection;}
53 AliCorrection* GetTriggerBiasCorrectionINEL() {return fTriggerBiasCorrectionMBToINEL;}
54 AliCorrection* GetTriggerBiasCorrectionNSD() {return fTriggerBiasCorrectionMBToNSD;}
55 AliCorrection* GetTriggerBiasCorrectionND() {return fTriggerBiasCorrectionMBToND;}
0448e811 56 AliCorrection* GetCorrection(CorrectionType correctionType);
55e05544 57
2e88424e 58 void Reset(void);
59 void Add(AlidNdEtaCorrection* aCorrectionsToAdd, Float_t c=1);
60
55e05544 61 void SaveHistograms();
74fd10b3 62 Bool_t LoadHistograms(const Char_t* dir = 0);
2e88424e 63 void DrawHistograms();
dd367a14 64 void DrawOverview(const char* canvasName = 0);
847489f7 65
74fd10b3 66 Float_t GetMeasuredFraction(CorrectionType correctionType, Float_t ptCutOff, Float_t eta = -100, Bool_t debug = kFALSE);
8b3563f4 67
0ab29cfa 68 void ReduceInformation();
69
45e97e28 70protected:
74fd10b3 71 AliCorrection* fTrack2ParticleCorrection; //-> handles the track-to-particle correction (only track level (vtx_z, eta, pt))
72 AliCorrection* fVertexRecoCorrection; //-> handles the vertex reconstruction efficiency, (n, vtx_z)
73 AliCorrection* fTriggerBiasCorrectionMBToINEL; //-> handles the trigger bias MB->INEL, function of n and vtx_z
74 AliCorrection* fTriggerBiasCorrectionMBToNSD; //-> handles the trigger bias MB->NSD, function of n and vtx_z
75 AliCorrection* fTriggerBiasCorrectionMBToND; //-> handles the trigger bias MB->ND, function of n and vtx_z
55e05544 76
61385583 77private:
78 AlidNdEtaCorrection(const AlidNdEtaCorrection&);
79 AlidNdEtaCorrection& operator=(const AlidNdEtaCorrection&);
80
8b3563f4 81 ClassDef(AlidNdEtaCorrection, 1)
55e05544 82};
83
84#endif