]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/dNdEta/AlidNdEtaTask.h
syst. check that reads the MC information for the case of TPC-only
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / AlidNdEtaTask.h
1 /* $Id$ */
2
3 #ifndef AlidNdEtaTask_H
4 #define AlidNdEtaTask_H
5
6 #include "AliAnalysisTask.h"
7 #include "AliPWG0Helper.h"
8 #include <TString.h>
9
10 class AliESDtrackCuts;
11 class dNdEtaAnalysis;
12 class TH1F;
13 class TH2F;
14 class TH3F;
15 class AliESDEvent;
16
17 class AlidNdEtaTask : public AliAnalysisTask {
18   public:
19     AlidNdEtaTask(const char* opt = "");
20     virtual ~AlidNdEtaTask();
21
22     virtual void   ConnectInputData(Option_t *);
23     virtual void   CreateOutputObjects();
24     virtual void   Exec(Option_t*);
25     virtual void   Terminate(Option_t*);
26     virtual Bool_t   Notify();
27
28     void SetTrackCuts(AliESDtrackCuts* cuts) { fEsdTrackCuts = cuts; }
29     void SetAnalysisMode(AliPWG0Helper::AnalysisMode mode) { fAnalysisMode = mode; }
30     void SetReadMC(Bool_t flag = kTRUE) { fReadMC = flag; }
31     void SetUseMCVertex(Bool_t flag = kTRUE) { fUseMCVertex = flag; }
32     void SetOnlyPrimaries(Bool_t flag = kTRUE) { fOnlyPrimaries = flag; }
33     void SetUseMCKine(Bool_t flag = kTRUE) { fUseMCKine = flag; }
34     void SetTrigger(AliPWG0Helper::Trigger trigger) { fTrigger = trigger; }
35
36     void SetOption(const char* opt) { fOption = opt; }
37
38  protected:
39     AliESDEvent *fESD;    //! ESD object
40     TList* fOutput;                  //! list send on output slot 0
41
42     TString fOption;      // option string
43     AliPWG0Helper::AnalysisMode fAnalysisMode; // detector that is used for analysis
44     AliPWG0Helper::Trigger fTrigger;           // trigger that is used
45
46     Bool_t  fReadMC;       // if true reads MC data (to build correlation maps)
47     Bool_t  fUseMCVertex;  // the MC vtx is used instead of the ESD vertex (for syst. check)
48     Bool_t  fOnlyPrimaries;// Process only primaries by using the MC information (for syst. check)
49     Bool_t  fUseMCKine;    // use the MC values for each found track/tracklet (for syst. check)
50
51     AliESDtrackCuts* fEsdTrackCuts;         // Object containing the parameters of the esd track cuts
52
53     // Gathered from ESD
54     dNdEtaAnalysis* fdNdEtaAnalysisESD;     //! contains the dndeta from the ESD
55     // control hists
56     TH1F* fMult;                            //! raw multiplicity histogram (control histogram)
57     TH1F* fMultVtx;                            //! raw multiplicity histogram of evts with vtx (control histogram)
58     TH1F* fPartEta[3];            //! counted particles as function of eta (full vertex range, below 0 range, above 0 range)
59     TH1F* fEvents;                //! events counted as function of vtx
60     TH1F* fVertexResolution;      //! z resolution of the vertex
61
62     // Gathered from MC (when fReadMC is set)
63     dNdEtaAnalysis* fdNdEtaAnalysis;        //! contains the dndeta from the full sample
64     dNdEtaAnalysis* fdNdEtaAnalysisNSD;        //! contains the dndeta for the NSD sample
65     dNdEtaAnalysis* fdNdEtaAnalysisTr;      //! contains the dndeta from the triggered events
66     dNdEtaAnalysis* fdNdEtaAnalysisTrVtx;   //! contains the dndeta from the triggered events with vertex
67     dNdEtaAnalysis* fdNdEtaAnalysisTracks;  //! contains the dndeta from the triggered events with vertex counted from the mc particles associated to the tracks (comparing this to the raw values from the esd shows the effect of the detector resolution)
68
69     // control histograms (MC)
70     TH3F* fVertex;                //! vertex of counted particles
71     TH1F* fPartPt;                //! counted particles as function of pt
72
73     // control histograms (ESD)
74     TH1F* fPhi;                   //! raw phi distribution
75     TH2F* fEtaPhi;                //! raw eta - phi distribution
76     TH1F* fDeltaPhi;              //! histogram of delta_phi values for tracklets (only for SPD analysis)
77
78  private:
79     AlidNdEtaTask(const AlidNdEtaTask&);
80     AlidNdEtaTask& operator=(const AlidNdEtaTask&);
81
82   ClassDef(AlidNdEtaTask, 1);
83 };
84
85 #endif