]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG0/dNdEta/AlidNdEtaCorrection.h
moving esd selector to aliselector (not RL)
[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();
39 AlidNdEtaCorrection(const Char_t* name, const Char_t* title);
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();
847489f7 64
74fd10b3 65 Float_t GetMeasuredFraction(CorrectionType correctionType, Float_t ptCutOff, Float_t eta = -100, Bool_t debug = kFALSE);
8b3563f4 66
0ab29cfa 67 void ReduceInformation();
68
45e97e28 69protected:
74fd10b3 70 AliCorrection* fTrack2ParticleCorrection; //-> handles the track-to-particle correction (only track level (vtx_z, eta, pt))
71 AliCorrection* fVertexRecoCorrection; //-> handles the vertex reconstruction efficiency, (n, vtx_z)
72 AliCorrection* fTriggerBiasCorrectionMBToINEL; //-> handles the trigger bias MB->INEL, function of n and vtx_z
73 AliCorrection* fTriggerBiasCorrectionMBToNSD; //-> handles the trigger bias MB->NSD, function of n and vtx_z
74 AliCorrection* fTriggerBiasCorrectionMBToND; //-> handles the trigger bias MB->ND, function of n and vtx_z
55e05544 75
61385583 76private:
77 AlidNdEtaCorrection(const AlidNdEtaCorrection&);
78 AlidNdEtaCorrection& operator=(const AlidNdEtaCorrection&);
79
8b3563f4 80 ClassDef(AlidNdEtaCorrection, 1)
55e05544 81};
82
83#endif