X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWG0%2FdNdEta%2FAlidNdEtaCorrection.h;h=980a5a7808b450002b7b299a5403504bfb6a3c19;hb=a000cab67541d9d3a0477eecde3a1ae13232d34a;hp=7b249df26a9b935e6349e5a7a17dcd5042d95d1c;hpb=6138558336ddbc482f276d378988226ceaadb690;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWG0/dNdEta/AlidNdEtaCorrection.h b/PWG0/dNdEta/AlidNdEtaCorrection.h index 7b249df26a9..980a5a7808b 100644 --- a/PWG0/dNdEta/AlidNdEtaCorrection.h +++ b/PWG0/dNdEta/AlidNdEtaCorrection.h @@ -11,89 +11,78 @@ // ------------------------------------------------------ // // TODO: -// - make the ntrack to npart correction 3D -// - add documentation -// - add status: generate or use maps // - add functionality to set the bin sizes // - update MERge function // +#include #include +#include "AliPWG0Helper.h" -#include -#include +class AliCorrection; +class TH1; class AlidNdEtaCorrection : public TNamed { public: - AlidNdEtaCorrection(); - AlidNdEtaCorrection(const Char_t* name, const Char_t* title); - - ~AlidNdEtaCorrection(); + enum CorrectionType { + kNone = 0, + kTrack2Particle, // measured events + kVertexReco, // MB sample + kINEL, + kNSD, + kND, + kOnePart + }; - // fVertexRecoCorrection, fTriggerCorrection - void FillEvent(Float_t vtx, Float_t n) {fTriggerCorrection->FillGene(vtx, n);} - void FillEventWithTrigger(Float_t vtx, Float_t n) {fVertexRecoCorrection->FillGene(vtx, n); fTriggerCorrection->FillMeas(vtx, n);} - void FillEventWithTriggerWithReconstructedVertex(Float_t vtx, Float_t n) {fVertexRecoCorrection->FillMeas(vtx, n);} + AlidNdEtaCorrection(); + AlidNdEtaCorrection(const Char_t* name, const Char_t* title, AliPWG0Helper::AnalysisMode analysis = (AliPWG0Helper::AnalysisMode) (AliPWG0Helper::kTPC | AliPWG0Helper::kFieldOn)); - // fTrack2ParticleCorrection - void FillParticle(Float_t vtx, Float_t eta, Float_t pt) {fTrack2ParticleCorrection->FillGene(vtx, eta, pt);} - void FillParticleWhenMeasuredTrack(Float_t vtx, Float_t eta, Float_t pt) {fTrack2ParticleCorrection->FillMeas(vtx, eta, pt);} + virtual Long64_t Merge(TCollection* list); - // fTriggerBiasCorrection - void FillParticleAllEvents(Float_t eta, Float_t pt) {fTriggerBiasCorrection->FillGene(eta, pt);} - void FillParticleWhenEventTriggered(Float_t eta, Float_t pt) {fTriggerBiasCorrection->FillMeas(eta, pt);} + ~AlidNdEtaCorrection(); - void IncreaseEventCount() { fNEvents++; } - void IncreaseTriggeredEventCount() { fNTriggeredEvents++; } + void FillMCParticle(Float_t vtx, Float_t eta, Float_t pt, Bool_t trigger, Bool_t vertex, Int_t processType); + void FillTrackedParticle(Float_t vtx, Float_t eta, Float_t pt, Double_t weight=1.); + void FillEvent(Float_t vtx, Float_t n, Bool_t trigger, Bool_t vertex, Int_t processType); void Finish(); - AliCorrectionMatrix3D* GetTrack2ParticleCorrection() {return fTrack2ParticleCorrection;} - AliCorrectionMatrix2D* GetVertexRecoCorrection() {return fVertexRecoCorrection;} - AliCorrectionMatrix2D* GetTriggerBiasCorrection() {return fTriggerBiasCorrection;} + AliCorrection* GetTrack2ParticleCorrection() {return fTrack2ParticleCorrection;} + AliCorrection* GetVertexRecoCorrection() {return fVertexRecoCorrection;} + AliCorrection* GetTriggerBiasCorrectionINEL() {return fTriggerBiasCorrectionMBToINEL;} + AliCorrection* GetTriggerBiasCorrectionNSD() {return fTriggerBiasCorrectionMBToNSD;} + AliCorrection* GetTriggerBiasCorrectionND() {return fTriggerBiasCorrectionMBToND;} + AliCorrection* GetTriggerBiasCorrectionOnePart() {return fTriggerBiasCorrectionMBToOnePart;} + AliCorrection* GetCorrection(CorrectionType correctionType); - virtual Long64_t Merge(TCollection* list); + void Reset(void); + void Add(AlidNdEtaCorrection* aCorrectionsToAdd, Float_t c=1); + void Scale(Float_t c); void SaveHistograms(); - Bool_t LoadHistograms(const Char_t* fileName, const Char_t* dir = "dndeta_correction"); - Bool_t LoadCorrection(const Char_t* fileName, const Char_t* dir = "dndeta_correction") - {return LoadHistograms(fileName, dir);} - - void DrawHistograms(); - - // void RemoveEdges(Float_t cut=2, Int_t nBinsVtx=0, Int_t nBinsEta=0); - - Float_t GetTrack2ParticleCorrection(Float_t vtx, Float_t eta, Float_t pt) - {return fTrack2ParticleCorrection->GetCorrection(vtx, eta, pt);} + Bool_t LoadHistograms(const Char_t* dir = 0); + void DrawHistograms(); + void DrawOverview(const char* canvasName = 0); - Float_t GetVertexRecoCorrection(Float_t vtx, Float_t n) {return fVertexRecoCorrection->GetCorrection(vtx, n);} + Float_t GetMeasuredFraction(CorrectionType correctionType, Float_t ptCutOff, Float_t eta = -100, Int_t vertexBegin = -1, Int_t vertexEnd = -1, Bool_t debug = kFALSE); + TH1* GetMeasuredEventFraction(CorrectionType correctionType, Int_t multCut); - Float_t GetTriggerCorrection(Float_t vtx, Float_t n) {return fTriggerCorrection->GetCorrection(vtx, n);} - - Float_t GetTriggerBiasCorrection(Float_t eta, Float_t pt=0) {return fTriggerBiasCorrection->GetCorrection(eta, pt);} - - Float_t GetMeasuredFraction(Float_t ptCutOff, Float_t eta = -1, Bool_t debug = kFALSE); - - void SetNEvents(Long64_t events) { fNEvents = events; } - - void ReduceInformation(); + void ReduceInformation(); protected: - AliCorrectionMatrix3D* fTrack2ParticleCorrection; //-> handles the track-to-particle correction, function of vtx_z, eta, pt - AliCorrectionMatrix2D* fVertexRecoCorrection; //-> handles the vertex reconstruction efficiency, function of n_clustersITS and vtx_z - AliCorrectionMatrix2D* fTriggerCorrection; //-> handles the trigger efficiency, function of n_clustersITS and vtx_z - - AliCorrectionMatrix2D* fTriggerBiasCorrection; //-> MB to desired sample - - Long64_t fNEvents; - Long64_t fNTriggeredEvents; + AliCorrection* fTrack2ParticleCorrection; //-> handles the track-to-particle correction (only track level (vtx_z, eta, pt)) + AliCorrection* fVertexRecoCorrection; //-> handles the vertex reconstruction efficiency, (n, vtx_z) + AliCorrection* fTriggerBiasCorrectionMBToINEL; //-> handles the trigger bias MB->INEL, function of n and vtx_z + AliCorrection* fTriggerBiasCorrectionMBToNSD; //-> handles the trigger bias MB->NSD, function of n and vtx_z + AliCorrection* fTriggerBiasCorrectionMBToND; //-> handles the trigger bias MB->ND, function of n and vtx_z + AliCorrection* fTriggerBiasCorrectionMBToOnePart; //-> handles the trigger bias MB->OnePart, function of n and vtx_z private: AlidNdEtaCorrection(const AlidNdEtaCorrection&); AlidNdEtaCorrection& operator=(const AlidNdEtaCorrection&); - ClassDef(AlidNdEtaCorrection, 1) + ClassDef(AlidNdEtaCorrection, 2) }; #endif