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