added new enum that describes the type of analysis, passed to all analysis classes
[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 TH3F;
14 class AliESDEvent;
15
16 class AlidNdEtaTask : public AliAnalysisTask {
17   public:
18     AlidNdEtaTask(const char* opt = "");
19     virtual ~AlidNdEtaTask();
20
21     virtual void   ConnectInputData(Option_t *);
22     virtual void   CreateOutputObjects();
23     virtual void   Exec(Option_t*);
24     virtual void   Terminate(Option_t*);
25
26     void SetTrackCuts(AliESDtrackCuts* cuts) { fEsdTrackCuts = cuts; }
27     void SetAnalysisMode(AliPWG0Helper::AnalysisMode mode) { fAnalysisMode = mode; }
28     void SetReadMC(Bool_t flag = kTRUE) { fReadMC = flag; }
29
30  protected:
31     AliESDEvent *fESD;    //! ESD object
32     TList* fOutput;                  //! list send on output slot 0
33
34     TString fOption;      // option string
35     AliPWG0Helper::AnalysisMode fAnalysisMode; // detector that is used for analysis
36
37     Bool_t  fReadMC;       // if true reads MC data (to build correlation maps)
38
39     AliESDtrackCuts* fEsdTrackCuts;         // Object containing the parameters of the esd track cuts
40
41     // Gathered from ESD
42     dNdEtaAnalysis* fdNdEtaAnalysisESD;     //! contains the dndeta from the ESD
43     // control hists
44     TH1F* fMult;                            //! raw multiplicity histogram (control histogram)
45     TH1F* fMultVtx;                            //! raw multiplicity histogram of evts with vtx (control histogram)
46     TH1F* fPartEta[3];            //! counted particles as function of eta (full vertex range, below 0 range, above 0 range)
47     TH1F* fEvents;                //! events counted as function of vtx
48
49     // Gathered from MC (when fReadMC is set)
50     dNdEtaAnalysis* fdNdEtaAnalysis;        //! contains the dndeta from the full sample
51     dNdEtaAnalysis* fdNdEtaAnalysisTr;      //! contains the dndeta from the triggered events
52     dNdEtaAnalysis* fdNdEtaAnalysisTrVtx;   //! contains the dndeta from the triggered events with vertex
53     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)
54     // the following are control histograms to check the dNdEtaAnalysis class
55     TH3F* fVertex;                //! vertex of counted particles
56     TH1F* fPartPt;                //! counted particles as function of pt
57
58  private:
59     AlidNdEtaTask(const AlidNdEtaTask&);
60     AlidNdEtaTask& operator=(const AlidNdEtaTask&);
61
62   ClassDef(AlidNdEtaTask, 1);
63 };
64
65 #endif