3 #ifndef ALIDNDETACORRECTION_H
4 #define ALIDNDETACORRECTION_H
7 // ------------------------------------------------------
9 // Class to handle corrections for dN/dEta measurements
11 // ------------------------------------------------------
14 // - add functionality to set the bin sizes
15 // - update MERge function
18 #include <TCollection.h>
20 #include "AliPWG0Helper.h"
25 class AlidNdEtaCorrection : public TNamed
30 kTrack2Particle, // measured events
31 kVertexReco, // MB sample
38 AlidNdEtaCorrection();
39 AlidNdEtaCorrection(const Char_t* name, const Char_t* title, AliPWG0Helper::AnalysisMode analysis = (AliPWG0Helper::AnalysisMode) (AliPWG0Helper::kTPC | AliPWG0Helper::kFieldOn));
41 virtual Long64_t Merge(TCollection* list);
43 ~AlidNdEtaCorrection();
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, Double_t weight=1.);
47 void FillEvent(Float_t vtx, Float_t n, Bool_t trigger, Bool_t vertex, Int_t processType);
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;}
56 AliCorrection* GetTriggerBiasCorrectionOnePart() {return fTriggerBiasCorrectionMBToOnePart;}
57 AliCorrection* GetCorrection(CorrectionType correctionType);
60 void Add(AlidNdEtaCorrection* aCorrectionsToAdd, Float_t c=1);
61 void Scale(Float_t c);
63 void SaveHistograms();
64 Bool_t LoadHistograms(const Char_t* dir = 0);
65 void DrawHistograms();
66 void DrawOverview(const char* canvasName = 0);
68 Float_t GetMeasuredFraction(CorrectionType correctionType, Float_t ptCutOff, Float_t eta = -100, Int_t vertexBegin = -1, Int_t vertexEnd = -1, Bool_t debug = kFALSE);
69 TH1* GetMeasuredEventFraction(CorrectionType correctionType, Int_t multCut);
71 void ReduceInformation();
74 AliCorrection* fTrack2ParticleCorrection; //-> handles the track-to-particle correction (only track level (vtx_z, eta, pt))
75 AliCorrection* fVertexRecoCorrection; //-> handles the vertex reconstruction efficiency, (n, vtx_z)
76 AliCorrection* fTriggerBiasCorrectionMBToINEL; //-> handles the trigger bias MB->INEL, function of n and vtx_z
77 AliCorrection* fTriggerBiasCorrectionMBToNSD; //-> handles the trigger bias MB->NSD, function of n and vtx_z
78 AliCorrection* fTriggerBiasCorrectionMBToND; //-> handles the trigger bias MB->ND, function of n and vtx_z
79 AliCorrection* fTriggerBiasCorrectionMBToOnePart; //-> handles the trigger bias MB->OnePart, function of n and vtx_z
82 AlidNdEtaCorrection(const AlidNdEtaCorrection&);
83 AlidNdEtaCorrection& operator=(const AlidNdEtaCorrection&);
85 ClassDef(AlidNdEtaCorrection, 2)