]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/dNdEta/AlidNdEtaTask.h
fixing warning
[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 "AliTriggerAnalysis.h"
9 #include <TString.h>
10
11 class AliESDtrackCuts;
12 class dNdEtaAnalysis;
13 class TH1F;
14 class TH2F;
15 class TH3F;
16 class AliESDEvent;
17 class TGraph;
18 class AliPhysicsSelection;
19 class AliTriggerAnalysis;
20
21 class AlidNdEtaTask : public AliAnalysisTask {
22   public:
23     AlidNdEtaTask(const char* opt = "");
24     virtual ~AlidNdEtaTask();
25
26     virtual void   ConnectInputData(Option_t *);
27     virtual void   CreateOutputObjects();
28     virtual void   Exec(Option_t*);
29     virtual void   Terminate(Option_t*);
30     virtual Bool_t   Notify();
31
32     void SetTrackCuts(AliESDtrackCuts* cuts) { fEsdTrackCuts = cuts; }
33     void SetAnalysisMode(AliPWG0Helper::AnalysisMode mode) { fAnalysisMode = mode; }
34     void SetReadMC(Bool_t flag = kTRUE) { fReadMC = flag; }
35     void SetUseMCVertex(Bool_t flag = kTRUE) { fUseMCVertex = flag; }
36     void SetOnlyPrimaries(Bool_t flag = kTRUE) { fOnlyPrimaries = flag; }
37     void SetUseMCKine(Bool_t flag = kTRUE) { fUseMCKine = flag; }
38     void SetTrigger(AliTriggerAnalysis::Trigger trigger) { fTrigger = trigger; }
39     void SetTriggerClasses(const char* require, const char* reject) { fRequireTriggerClass = require; fRejectTriggerClass = reject; }
40     void SetFillPhi(Bool_t flag = kTRUE) { fFillPhi = flag; }
41     void SetDeltaPhiCut(Float_t cut) { fDeltaPhiCut = cut; }
42     void SetCheckEventType(Bool_t flag = kTRUE) { fCheckEventType = flag; }
43     void SetSymmetrize(Bool_t flag = kTRUE) { fSymmetrize = flag; }
44     
45     void SetOption(const char* opt) { fOption = opt; }
46
47  protected:
48     AliESDEvent *fESD;                         //! ESD object
49     TList* fOutput;                            //! list send on output slot 0
50
51     TString fOption;                           // option string
52     AliPWG0Helper::AnalysisMode fAnalysisMode; // detector that is used for analysis
53     AliTriggerAnalysis::Trigger fTrigger;      // trigger that is used
54     TString fRequireTriggerClass;              // trigger class that is required
55     TString fRejectTriggerClass;               // trigger class that is rejected
56     Bool_t fFillPhi;                           // if true phi is filled as 3rd coordinate in all maps
57     Float_t fDeltaPhiCut;                      // cut in delta phi (only SPD)
58
59     Bool_t  fReadMC;          // if true reads MC data (to build correlation maps)
60     Bool_t  fUseMCVertex;     // the MC vtx is used instead of the ESD vertex (for syst. check)
61     Bool_t  fOnlyPrimaries;   // Process only primaries by using the MC information (for syst. check)
62     Bool_t  fUseMCKine;       // use the MC values for each found track/tracklet (for syst. check)
63     Bool_t  fCheckEventType;  // check if event type is physics (for real data)
64     Bool_t  fSymmetrize;      // move all negative to positive eta
65
66     AliESDtrackCuts* fEsdTrackCuts;         // Object containing the parameters of the esd track cuts
67     AliPhysicsSelection* fPhysicsSelection; // Event Selection object
68     AliTriggerAnalysis* fTriggerAnalysis;
69
70     // Gathered from ESD
71     dNdEtaAnalysis* fdNdEtaAnalysisESD;     //! contains the dndeta from the ESD
72     // control hists
73     TH1F* fMult;                            //! raw multiplicity histogram (control histogram)
74     TH1F* fMultVtx;                            //! raw multiplicity histogram of evts with vtx (control histogram)
75     TH1F* fPartEta[3];            //! counted particles as function of eta (full vertex range, below 0 range, above 0 range)
76     TH1F* fEvents;                //! events counted as function of vtx
77     TH1F* fVertexResolution;      //! z resolution of the vertex
78
79     // Gathered from MC (when fReadMC is set)
80     dNdEtaAnalysis* fdNdEtaAnalysis;        //! contains the dndeta from the full sample
81     dNdEtaAnalysis* fdNdEtaAnalysisND;      //! contains the dndeta for the ND sample
82     dNdEtaAnalysis* fdNdEtaAnalysisNSD;     //! contains the dndeta for the NSD sample
83     dNdEtaAnalysis* fdNdEtaAnalysisTr;      //! contains the dndeta from the triggered events
84     dNdEtaAnalysis* fdNdEtaAnalysisTrVtx;   //! contains the dndeta from the triggered events with vertex
85     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)
86
87     // control histograms (MC)
88     TH1F* fPartPt;                //! counted particles as function of pt
89
90     // control histograms (ESD)
91     TH3F* fVertex;                //! 3d vertex distribution
92     TH3F* fVertexVsMult;          //! x-vtx vs y-vtx vs multiplicity
93     TH1F* fPhi;                   //! raw phi distribution
94     TH1F* fRawPt;                 //! raw pt distribution
95     TH2F* fEtaPhi;                //! raw eta - phi distribution
96     TH2F* fZPhi[2];               //! raw z - phi distribution from tracklets per layer (only SPD)
97     TH1F* fModuleMap;             //! count clusters as function of module number (only SPD)
98     TH1F* fDeltaPhi;              //! histogram of delta_phi values for tracklets (only for SPD analysis)
99     TH1F* fDeltaTheta;            //! histogram of delta_theta values for tracklets (only for SPD analysis)
100     TH2F* fFiredChips;            //! fired chips l1+l2 vs. number of tracklets (only for SPD analysis)
101     TH2F* fTrackletsVsClusters;   //! number of tracklets vs. clusters in all ITS detectors (only for SPD analysis)
102     TH2F* fTrackletsVsUnassigned; //! number of tracklets vs. number of unassigned clusters in L1 (only for SPD analysis)
103     TGraph* fTriggerVsTime;       //! trigger as function of event time
104     TH1F* fStats;                 //! further statistics : bin 1 = vertexer 3d, bin 2 = vertexer z, etc (see CreateOutputObjects)
105     TH2F* fStats2;                //! V0 vs SPD statistics
106
107  private:
108     AlidNdEtaTask(const AlidNdEtaTask&);
109     AlidNdEtaTask& operator=(const AlidNdEtaTask&);
110
111   ClassDef(AlidNdEtaTask, 1);
112 };
113
114 #endif