]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/EVCHAR/AliAnalysisTaskSPDdNdEta.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGPP / EVCHAR / AliAnalysisTaskSPDdNdEta.h
CommitLineData
e1366e5e 1#ifndef ALIANALYSISTASKSPDDNDETA_H
2#define ALIANALYSISTASKSPDDNDETA_H
ea23c361 3
e1366e5e 4///////////////////////////////////////////////////////////////////////////
5// Class AliAnalysisTaskSPDdNdEta //
6// Analysis task for dN/dEta reconstruction with the SPD //
7// //
8// Author: M. Nicassio (INFN Bari) //
9// Contact: Maria.Nicassio@ba.infn.it, Domenico.Elia@ba.infn.it //
10///////////////////////////////////////////////////////////////////////////
f6f526b8 11
39f606ae 12class TH1F;
ea23c361 13class TH2F;
14class TH3F;
15class AliESDEvent;
39f606ae 16class TList;
8991d97c 17class AliTrackletAlg;
f9557c88 18class AliMCParticle;
ea23c361 19
39f606ae 20#include "AliAnalysisTaskSE.h"
8991d97c 21#include "AliTriggerAnalysis.h"
ea23c361 22
39f606ae 23class AliAnalysisTaskSPDdNdEta : public AliAnalysisTaskSE {
ea23c361 24 public:
25 AliAnalysisTaskSPDdNdEta(const char *name = "AliAnalysisTaskSPDdNdEta");
26 virtual ~AliAnalysisTaskSPDdNdEta();
27
39f606ae 28 virtual void UserCreateOutputObjects();
29 virtual void UserExec(Option_t *option);
ea23c361 30 virtual void Terminate(Option_t *);
015a8dea 31
39f606ae 32 enum MCCentralityBin{kcentral=1,kbin3to6=2,kbin6to9=3,kbin9to12=4,kbin12to15=5,kperipheral=6,kall=7};
33
34 void SetReadMC(Bool_t readmc = kFALSE) { fUseMC = readmc; }
35 void SetTrigger(AliTriggerAnalysis::Trigger trigger) { fTrigger = trigger; }
39f606ae 36 void SetReadTrackRefs(Bool_t readtr = kFALSE) { fTR = readtr; }
37 void SetRecoTracklets(Bool_t recotracklets = kFALSE) { fRecoTracklets = recotracklets; }
38 void SetMCCentralityBin(MCCentralityBin mccentrbin) {fMCCentralityBin=mccentrbin;}
39 void SetCentralityLowLim(Float_t centrlowlim) {fCentrLowLim=centrlowlim;}
40 void SetCentralityUpLim(Float_t centruplim) {fCentrUpLim=centruplim;}
ccfafc80 41// void SetCentralityEst(TString centrest) {fCentrEst=centrest;}
42 void SetCentralityEst(Bool_t centrest) {fCentrEst=centrest;}
86841765 43 void SetMinClusterMultLay2(Int_t minClMultLay2=0) {fMinClMultLay2=minClMultLay2;}
ccfafc80 44 void SetMaxClusterMultLay2(Int_t maxClMultLay2=0) {fMaxClMultLay2=maxClMultLay2;}
45 void SetMinV0Mult(Int_t minV0Mult=0) {fMinMultV0=minV0Mult;}
46 void SetVertexRange(Float_t vl=7.) {fVtxLim=vl;}
47 void SetPartSpecies(Bool_t partsp = kFALSE) {fPartSpecies=partsp;}
86841765 48
49 void SetPhiWindow(Float_t w=0.08) {fPhiWindow=w;}
50 void SetThetaWindow(Float_t w=0.025) {fThetaWindow=w;}
51 void SetPhiShift(Float_t w=0.0045) {fPhiShift=w;}
52 void SetRemoveClustersFromOverlaps(Bool_t b = kFALSE) {fRemoveClustersFromOverlaps = b;}
53 void SetPhiOverlapCut(Float_t w=0.005) {fPhiOverlapCut=w;}
54 void SetZetaOverlapCut(Float_t w=0.05) {fZetaOverlapCut=w;}
55 void SetPhiRotationAngle(Float_t w=0.0) {fPhiRotationAngle=w;}
56 void SetPhiWindowAna(Float_t w=0.08) {fPhiWindowAna=w;}
ea23c361 57
39f606ae 58 Bool_t IsDetectablePrimary(Int_t nref, AliMCParticle* mcpart);
59 Bool_t IsDetectedPrimary(Int_t nref, AliMCParticle* mcpart, Int_t Layer);
60
ea23c361 61 protected:
39f606ae 62 AliESDEvent *fmyESD; // ! ESD object
63 TList *fOutput; // ! output list send on output slot 1
86841765 64
65 Bool_t fUseMC; // flag to enable the calculation of correction histograms
86841765 66 AliTriggerAnalysis::Trigger fTrigger;
67 Bool_t fTR; // to read track references and calculate factors of track to particle correction
68 Bool_t fRecoTracklets; // flag to recostruct tracklets
ea23c361 69
39f606ae 70 MCCentralityBin fMCCentralityBin; // to select MC centrality bin in which corrections are calculated
71 Float_t fCentrLowLim; // to select centrality bin on data
72 Float_t fCentrUpLim; // to select centrality bin on data
ccfafc80 73// TString fCentrEst; // to select centrality estimator
74 Bool_t fCentrEst; // to select centrality estimator
39f606ae 75
ccfafc80 76 Int_t fMinClMultLay2; // to select multiplicity class
77 Int_t fMaxClMultLay2; // to select multiplicity class
78 Int_t fMinMultV0; // to select centrality class
79 Float_t fVtxLim; // to select vertex range
80 Bool_t fPartSpecies; // to fill correction matrices for each part species (for syst studies)
81
86841765 82 Float_t fPhiWindow; // Search window in phi
83 Float_t fThetaWindow; // Search window in theta
84 Float_t fPhiShift; // Phi shift reference value (at 0.5 T)
85 Bool_t fRemoveClustersFromOverlaps; // Option to skip clusters in the overlaps
86 Float_t fPhiOverlapCut; // Fiducial window in phi for overlap cut
87 Float_t fZetaOverlapCut; // Fiducial window in eta for overlap cut
88 Float_t fPhiRotationAngle; // Angle to rotate the inner layer cluster for combinatorial reco only
89 Float_t fPhiWindowAna; // Final analysis tracklet definition window in phi
39f606ae 90
86841765 91 AliTrackletAlg *fMultReco; // tracklet reconstruction class
39f606ae 92
ccfafc80 93
94 TH1F *fV0Ampl; // ! V0 amplitudes to cut on centrality
39f606ae 95 TH2F *fHistSPDRAWMultvsZ; // ! data to be corrected
96 TH2F *fHistSPDRAWMultvsZTriggCentrEvts; // ! data to be corrected
97 TH2F *fHistSPDRAWMultvsZCentrEvts; // ! data to be corrected
98
99 TH2F *fHistSPDRAWEtavsZ; // ! data to be corrected
100
101 TH1F *fHistSPDmultEtacut; // ! cluster inner layer and tracklet check histos
102 TH1F *fHistSPDmult; // ! cluster inner layer and tracklet check histos
86841765 103 TH1F *fHistSPDmultcl1; // ! cluster inner layer and tracklet check histos
104 TH1F *fHistSPDmultcl2; // ! cluster inner layer and tracklet check histos
105 TH2F *fHistSPDmultcl1vscl2; // ! cluster inner layer and tracklet check histos
ccfafc80 106 TH2F *fHistSPDmultvscl1; // ! cluster inner layer and tracklet check histos
107 TH2F *fHistSPDmultvscl2; // ! cluster inner layer and tracklet check histos
86841765 108
39f606ae 109 TH1F *fHistSPDeta; // ! cluster inner layer and tracklet check histos
110 TH1F *fHistSPDphi; // ! cluster inner layer and tracklet check histos
111 TH1F *fHistSPDtheta; // ! cluster inner layer and tracklet check histos
112 TH1F *fHistSPDdePhi; // ! cluster inner layer and tracklet check histos
113 TH2F *fHistSPDphivsSPDeta; // ! cluster inner layer and tracklet check histos
114 TH1F *fHistSPDdeTheta; // ! cluster inner layer and tracklet check histos
86841765 115
116 TH1F *fHistSPDvtx; // ! SPD vertex distributions
39f606ae 117 TH1F *fHistSPDvtxAnalysis; // ! SPD vertex distributions
118 TH2F *fHistSPDdePhideTheta; // ! histogram for combinatorial background studies
119
ccfafc80 120 TH1F *fHistSPDphicl1; // ! cluster inner layer and tracklet check histos
121 TH1F *fHistSPDphicl2; // ! cluster inner layer and tracklet check histos
122
123 TH2F* fHistBkgCorrDen; // ! track level correction histograms
124 TH2F* fHistReconstructedProtons; // ! track level correction histograms
125 TH2F* fHistReconstructedKaons; // ! track level correction histograms
126 TH2F* fHistReconstructedPions; // ! track level correction histograms
127 TH2F* fHistReconstructedOthers; // ! track level correction histograms
128 TH2F* fHistReconstructedSec; // ! track level correction histograms
86841765 129
39f606ae 130 TH2F* fHistBkgCorrDenPrimGen; // ! track level correction histograms
ccfafc80 131 TH2F* fHistBkgCombLabels; // ! track level correction histograms
39f606ae 132 TH2F* fHistBkgCorrNum; // ! track level correction histograms
133 TH2F* fHistAlgEffNum; // ! track level correction histograms
134 TH2F* fHistNonDetectableCorrDen; // ! track level correction histograms
135
136 TH2F* fHistNonDetectableCorrNum; // ! track level correction histograms
ccfafc80 137 TH2F* fHistProtons; // ! track level correction histograms
138 TH2F* fHistKaons; // ! track level correction histograms
139 TH2F* fHistPions; // ! track level correction histograms
140 TH2F* fHistOthers; // ! track level correction histograms
39f606ae 141 TH2F* fHistAllPrimaries; // ! track level correction histograms
142 TH2F* fHistTrackCentrEvts; // ! track level correction histograms
143 TH2F* fHistTrackTrigCentrEvts; // ! track level correction histograms
015a8dea 144
39f606ae 145 TH2F* fHistAllEvts; // ! event level correction histograms
146 TH2F* fHistCentrEvts; // ! event level correction histograms
147 TH2F* fHistTrigCentrEvts; // ! event level correction histograms
148 TH2F* fHistSelEvts; // ! event level correction histograms
149
ccfafc80 150 TH1F* fHistMCmultEtacut; // ! MC distributions
39f606ae 151 TH2F* fHistMCmultEtacutvsSPDmultEtacut; // ! MC distributions
ccfafc80 152 TH2F* fHistMCmultEtacutvsSPDmultcl1; // ! MC distributions
153 TH2F* fHistMCmultEtacutvsSPDmultcl2; // ! MC distributions
39f606ae 154
155 TH1F* fHistMCvtxx; // ! MC vertex
156 TH1F* fHistMCvtxy; // ! MC vertex
157 TH1F* fHistMCvtxz; // ! MC vertex
158
159 TH2F* fHistRecvsGenImpactPar; // ! impact parameter correlation (ZDC est vs gen)
160 TH1F* fHistMCNpart; // ! distribution of number of participants from MC
161
ccfafc80 162 TH2F* fHistdPhidThetaPP; // ! tracklet check histo
163 TH2F* fHistdPhidThetaSS; // ! tracklet check histo
164 TH2F* fHistdPhidThetaComb; // ! tracklet check histo
39f606ae 165
166 TH2F* fHistDeVtx; // ! check histo
f6f526b8 167
ea23c361 168 private:
39f606ae 169 AliAnalysisTaskSPDdNdEta(const AliAnalysisTaskSPDdNdEta&); // not implemented
170 AliAnalysisTaskSPDdNdEta& operator=(const AliAnalysisTaskSPDdNdEta&); // not implemented
ea23c361 171
ccfafc80 172 ClassDef(AliAnalysisTaskSPDdNdEta, 5);
ea23c361 173};
f1afe60d 174#endif