]> git.uio.no Git - u/mrichter/AliRoot.git/blob - FMD/analysis/AliFMDAnalysisTaskGenerateCorrection.h
c912aabf99f345c5d5df5398671c249a9919e917
[u/mrichter/AliRoot.git] / FMD / analysis / AliFMDAnalysisTaskGenerateCorrection.h
1 #ifndef ALIFMDANALYSISTASKGENERATECORRECTION_H
2 #define ALIFMDANALYSISTASKGENERATECORRECTION_H
3
4 #include "AliAnalysisTaskSE.h"
5 #include "TList.h"
6 #include "AliFMDFloatMap.h"
7 #include "TH1F.h"
8
9 class AliFMDAnaCalibBackgroundCorrection;
10 class AliFMDAnaCalibTriggerEfficiency;
11 class AliFMDAnaCalibEventSelectionEfficiency;
12
13 class AliFMDAnalysisTaskGenerateCorrection : public AliAnalysisTaskSE
14 {
15  public:
16   AliFMDAnalysisTaskGenerateCorrection();
17     AliFMDAnalysisTaskGenerateCorrection(const char* name);
18     ~AliFMDAnalysisTaskGenerateCorrection() {;}
19  AliFMDAnalysisTaskGenerateCorrection(const AliFMDAnalysisTaskGenerateCorrection& o) : AliAnalysisTaskSE(), 
20       fListOfHits(), 
21       fListOfPrimaries(),
22       fListOfCorrection(),
23       fVertexBins(o.fVertexBins),
24       fLastTrackByStrip(o.fLastTrackByStrip),
25       fHitsByStrip(o.fHitsByStrip),
26       fZvtxCut(o.fZvtxCut),
27       fNvtxBins(o.fNvtxBins),
28       fNbinsEta(o.fNbinsEta),
29       fBackground(o.fBackground)
30       {}
31     AliFMDAnalysisTaskGenerateCorrection& operator=(const AliFMDAnalysisTaskGenerateCorrection&) { return *this; }
32     
33     virtual void Init();
34     virtual void UserCreateOutputObjects();
35     virtual void UserExec(Option_t* /*option*/);
36     void  Terminate(Option_t */*option*/);
37     void SetZvtxCut(Float_t vtxcut) {fZvtxCut = vtxcut;}
38     void SetNvtxBins(Int_t nvtxbins) {fNvtxBins = nvtxbins;}
39     void SetNbinsEta(Int_t netabins) {fNbinsEta = netabins;}
40     void ReadFromFile(const Char_t* filename = "background.root", Bool_t storeInOCDB = kFALSE, Int_t runNo=0);
41  private:
42     
43     void GenerateCorrection();
44     
45     TList fListOfHits;
46     TList fListOfPrimaries;
47     TList fListOfCorrection;
48     TH1F  fVertexBins;
49     AliFMDFloatMap fLastTrackByStrip;
50     AliFMDFloatMap fHitsByStrip;
51     Float_t fZvtxCut;
52     Int_t fNvtxBins;
53     Int_t fNbinsEta;
54     AliFMDAnaCalibBackgroundCorrection* fBackground;
55     AliFMDAnaCalibTriggerEfficiency*    fTriggerEff;
56     AliFMDAnaCalibEventSelectionEfficiency*     fEventSelectionEff;
57     
58     ClassDef(AliFMDAnalysisTaskGenerateCorrection, 1);
59
60 };
61 #endif