3 #ifndef ALIDNDETACORRECTION_H
4 #define ALIDNDETACORRECTION_H
7 // ------------------------------------------------------
9 // Class to handle corrections for dN/dEta measurements
11 // ------------------------------------------------------
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
18 // - update MERge function
23 #include <AliCorrectionMatrix2D.h>
24 #include <AliCorrectionMatrix3D.h>
26 class AlidNdEtaCorrection : public TNamed
29 AlidNdEtaCorrection();
30 AlidNdEtaCorrection(const Char_t* name, const Char_t* title);
32 ~AlidNdEtaCorrection();
34 // fVertexRecoCorrection, fTriggerCorrection
35 void FillEvent(Float_t vtx, Float_t n) {fTriggerCorrection->FillGene(vtx, n);}
36 void FillEventWithTrigger(Float_t vtx, Float_t n) {fVertexRecoCorrection->FillGene(vtx, n); fTriggerCorrection->FillMeas(vtx, n);}
37 void FillEventWithTriggerWithReconstructedVertex(Float_t vtx, Float_t n) {fVertexRecoCorrection->FillMeas(vtx, n);}
39 // fTrack2ParticleCorrection
40 void FillParticle(Float_t vtx, Float_t eta, Float_t pt) {fTrack2ParticleCorrection->FillGene(vtx, eta, pt);}
41 void FillParticleWhenMeasuredTrack(Float_t vtx, Float_t eta, Float_t pt) {fTrack2ParticleCorrection->FillMeas(vtx, eta, pt);}
43 // fTriggerBiasCorrection
44 void FillParticleAllEvents(Float_t eta, Float_t pt) {fTriggerBiasCorrection->FillGene(eta, pt);}
45 void FillParticleWhenEventTriggered(Float_t eta, Float_t pt) {fTriggerBiasCorrection->FillMeas(eta, pt);}
47 //void IncreaseEventCount() { fNEvents++; }
48 //void IncreaseTriggeredEventCount() { fNTriggeredEvents++; }
52 AliCorrectionMatrix3D* GetTrack2ParticleCorrection() {return fTrack2ParticleCorrection;}
53 AliCorrectionMatrix2D* GetVertexRecoCorrection() {return fVertexRecoCorrection;}
54 AliCorrectionMatrix2D* GetTriggerBiasCorrection() {return fTriggerBiasCorrection;}
55 AliCorrectionMatrix2D* GetTriggerCorrection() {return fTriggerCorrection;}
57 virtual Long64_t Merge(TCollection* list);
59 void SaveHistograms();
60 Bool_t LoadHistograms(const Char_t* fileName, const Char_t* dir = "dndeta_correction");
61 Bool_t LoadCorrection(const Char_t* fileName, const Char_t* dir = "dndeta_correction")
62 {return LoadHistograms(fileName, dir);}
64 void DrawHistograms();
66 // void RemoveEdges(Float_t cut=2, Int_t nBinsVtx=0, Int_t nBinsEta=0);
68 Float_t GetTrack2ParticleCorrection(Float_t vtx, Float_t eta, Float_t pt)
69 {return fTrack2ParticleCorrection->GetCorrection(vtx, eta, pt);}
71 Float_t GetVertexRecoCorrection(Float_t vtx, Float_t n) {return fVertexRecoCorrection->GetCorrection(vtx, n);}
73 Float_t GetTriggerCorrection(Float_t vtx, Float_t n) {return fTriggerCorrection->GetCorrection(vtx, n);}
75 Float_t GetTriggerBiasCorrection(Float_t eta, Float_t pt=0) {return fTriggerBiasCorrection->GetCorrection(eta, pt);}
77 Float_t GetMeasuredFraction(Float_t ptCutOff, Float_t eta = -100, Bool_t debug = kFALSE);
79 //void SetNEvents(Long64_t events) { fNEvents = events; }
82 Int_t GetNtriggeredEvents();
84 void ReduceInformation();
87 AliCorrectionMatrix3D* fTrack2ParticleCorrection; //-> handles the track-to-particle correction, function of vtx_z, eta, pt
88 AliCorrectionMatrix2D* fVertexRecoCorrection; //-> handles the vertex reconstruction efficiency, function of n_clustersITS and vtx_z
89 AliCorrectionMatrix2D* fTriggerCorrection; //-> handles the trigger efficiency, function of n_clustersITS and vtx_z
91 AliCorrectionMatrix2D* fTriggerBiasCorrection; //-> MB to desired sample, obsolete!!!
94 //Long64_t fNTriggeredEvents;
97 AlidNdEtaCorrection(const AlidNdEtaCorrection&);
98 AlidNdEtaCorrection& operator=(const AlidNdEtaCorrection&);
100 ClassDef(AlidNdEtaCorrection, 1)