3 #ifndef AlidNdEtaTask_H
4 #define AlidNdEtaTask_H
6 #include "AliAnalysisTask.h"
7 #include "AliPWG0Helper.h"
10 class AliESDtrackCuts;
18 class AlidNdEtaTask : public AliAnalysisTask {
20 AlidNdEtaTask(const char* opt = "");
21 virtual ~AlidNdEtaTask();
23 virtual void ConnectInputData(Option_t *);
24 virtual void CreateOutputObjects();
25 virtual void Exec(Option_t*);
26 virtual void Terminate(Option_t*);
27 virtual Bool_t Notify();
29 void SetTrackCuts(AliESDtrackCuts* cuts) { fEsdTrackCuts = cuts; }
30 void SetAnalysisMode(AliPWG0Helper::AnalysisMode mode) { fAnalysisMode = mode; }
31 void SetReadMC(Bool_t flag = kTRUE) { fReadMC = flag; }
32 void SetUseMCVertex(Bool_t flag = kTRUE) { fUseMCVertex = flag; }
33 void SetOnlyPrimaries(Bool_t flag = kTRUE) { fOnlyPrimaries = flag; }
34 void SetUseMCKine(Bool_t flag = kTRUE) { fUseMCKine = flag; }
35 void SetTrigger(AliPWG0Helper::Trigger trigger) { fTrigger = trigger; }
36 void SetFillPhi(Bool_t flag = kTRUE) { fFillPhi = flag; }
37 void SetDeltaPhiCut(Float_t cut) { fDeltaPhiCut = cut; }
39 void SetOption(const char* opt) { fOption = opt; }
42 AliESDEvent *fESD; //! ESD object
43 TList* fOutput; //! list send on output slot 0
45 TString fOption; // option string
46 AliPWG0Helper::AnalysisMode fAnalysisMode; // detector that is used for analysis
47 AliPWG0Helper::Trigger fTrigger; // trigger that is used
48 Bool_t fFillPhi; // if true phi is filled as 3rd coordinate in all maps
49 Float_t fDeltaPhiCut; // cut in delta phi (only SPD)
51 Bool_t fReadMC; // if true reads MC data (to build correlation maps)
52 Bool_t fUseMCVertex; // the MC vtx is used instead of the ESD vertex (for syst. check)
53 Bool_t fOnlyPrimaries;// Process only primaries by using the MC information (for syst. check)
54 Bool_t fUseMCKine; // use the MC values for each found track/tracklet (for syst. check)
56 AliESDtrackCuts* fEsdTrackCuts; // Object containing the parameters of the esd track cuts
59 dNdEtaAnalysis* fdNdEtaAnalysisESD; //! contains the dndeta from the ESD
61 TH1F* fMult; //! raw multiplicity histogram (control histogram)
62 TH1F* fMultVtx; //! raw multiplicity histogram of evts with vtx (control histogram)
63 TH1F* fPartEta[3]; //! counted particles as function of eta (full vertex range, below 0 range, above 0 range)
64 TH1F* fEvents; //! events counted as function of vtx
65 TH1F* fVertexResolution; //! z resolution of the vertex
67 // Gathered from MC (when fReadMC is set)
68 dNdEtaAnalysis* fdNdEtaAnalysis; //! contains the dndeta from the full sample
69 dNdEtaAnalysis* fdNdEtaAnalysisND; //! contains the dndeta for the ND sample
70 dNdEtaAnalysis* fdNdEtaAnalysisNSD; //! contains the dndeta for the NSD sample
71 dNdEtaAnalysis* fdNdEtaAnalysisTr; //! contains the dndeta from the triggered events
72 dNdEtaAnalysis* fdNdEtaAnalysisTrVtx; //! contains the dndeta from the triggered events with vertex
73 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)
75 // control histograms (MC)
76 TH1F* fPartPt; //! counted particles as function of pt
78 // control histograms (ESD)
79 TH3F* fVertex; //! 3d vertex distribution
80 TH1F* fPhi; //! raw phi distribution
81 TH1F* fRawPt; //! raw pt distribution
82 TH2F* fEtaPhi; //! raw eta - phi distribution
83 TH2F* fZPhi[2]; //! raw z - phi distribution from tracklets per layer (only SPD)
84 TH1F* fDeltaPhi; //! histogram of delta_phi values for tracklets (only for SPD analysis)
85 TH1F* fDeltaTheta; //! histogram of delta_theta values for tracklets (only for SPD analysis)
86 TH2F* fFiredChips; //! fired chips l1+l2 vs. number of tracklets (only for SPD analysis)
87 TGraph* fTriggerVsTime; //! trigger as function of event time
88 TH1F* fStats; //! further statistics : bin 1 = vertexer 3d, bin 2 = vertexer z
91 AlidNdEtaTask(const AlidNdEtaTask&);
92 AlidNdEtaTask& operator=(const AlidNdEtaTask&);
94 ClassDef(AlidNdEtaTask, 1);