]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/Correlations/DPhi/AliAnalysisTaskMinijet.h
coverity fixes (Saehanseul Oh <saehanseul.oh@cern.ch>)
[u/mrichter/AliRoot.git] / PWGCF / Correlations / DPhi / AliAnalysisTaskMinijet.h
CommitLineData
117f99e3 1#ifndef ALIANALYSISTASKMINIJET_H\r
2#define ALIANALYSISTASKMINIJET_H\r
3\r
f2565a6b 4// Two-particle correlations using all particles over pt threshold\r
5// Extract mini-jet yield and fragmentation properties via Delta-Phi histograms\r
6// Can use ESD or AOD, reconstructed and Monte Carlo data as input\r
117f99e3 7// Author: eva.sicking@cern.ch\r
8\r
9class TList;\r
10class TH1F;\r
11class TH2F;\r
12class TProfile;\r
7099c89a 13class THnSparse;\r
117f99e3 14class AliESDtrackCuts;\r
15\r
117f99e3 16#include "AliAnalysisTaskSE.h"\r
7099c89a 17#include <vector>\r
117f99e3 18\r
19class AliAnalysisTaskMinijet : public AliAnalysisTaskSE {\r
20 public:\r
21 AliAnalysisTaskMinijet(const char *name="<default name>");\r
22 virtual ~AliAnalysisTaskMinijet();\r
23 \r
7099c89a 24 virtual void UserCreateOutputObjects();\r
25 virtual void UserExec(Option_t* option);\r
26 virtual void Terminate(Option_t *);\r
27 virtual void SetCuts(AliESDtrackCuts* cuts){fCuts = cuts;}\r
117f99e3 28 \r
7099c89a 29 void SetUseMC(Bool_t useMC=kTRUE, Bool_t mcOnly=kFALSE) {fUseMC = useMC; fMcOnly=mcOnly;}\r
30 void SetAnalyseOnlyPrimaries(Bool_t analysePrimOnly) {fAnalysePrimOnly = analysePrimOnly;} // not used anymore\r
8855d81c 31 void SetPtRange(Float_t ptMin, Float_t ptMax) {fPtMin = ptMin; fPtMax = ptMax; }\r
7099c89a 32 void SetTriggerPtCut(Float_t triggerPtCut) {fTriggerPtCut = triggerPtCut;} \r
33 void SetAssociatePtCut(Float_t associatePtCut) {fAssociatePtCut = associatePtCut;} \r
34 void SetModeEsdAod(Int_t mode) {fMode = mode;}\r
8855d81c 35 void SetTriggerMask(Int_t triggerType) {fTriggerType = triggerType;}\r
36 void SetFilterBit(Int_t filterBit) {fFilterBit = filterBit;}\r
7099c89a 37 void SetMaxVertexZ(Float_t vertexZCut) {fVertexZCut = vertexZCut;}\r
38 void SetMaxEta(Float_t etaCut) {fEtaCut = etaCut;}\r
39 void SetMaxEtaSeed(Float_t etaCutSeed) {fEtaCutSeed = etaCutSeed;}\r
40 void SetSelectParticles(Int_t selectParticles) {fSelectParticles = selectParticles;}\r
41 void SetSelectParticlesAssoc(Int_t selectParticlesAssoc) {fSelectParticlesAssoc = selectParticlesAssoc;}\r
d0c5995c 42 void SetCheckSDD(Bool_t checkSDD, Int_t selOption) {fCheckSDD = checkSDD; fSelOption = selOption;}\r
43 void SetCorrStrangeness(Bool_t corrStrangeness) {fCorrStrangeness = corrStrangeness;}\r
44 void SetThreeParticleCorrelation(Bool_t threeParticleCorr) {fThreeParticleCorr = threeParticleCorr;}\r
c4575cde 45 void SetRejectCorrupted(Bool_t rejectChunks, Int_t nTPC) {fRejectChunks = rejectChunks; fNTPC = nTPC;}\r
117f99e3 46\r
7099c89a 47 private:\r
117f99e3 48\r
8855d81c 49 Int_t ReadEventESD (std::vector<Float_t> &pt, std::vector<Float_t> &eta,\r
50 std::vector<Float_t> &phi, std::vector<Short_t> &charge,\r
2b52b282 51 std::vector<Float_t> &strangnessWeight,\r
8855d81c 52 std::vector<Int_t> &nTracksTracklets, const Int_t step);\r
53 Int_t ReadEventESDRecMcProp(std::vector<Float_t> &pt, std::vector<Float_t> &eta,\r
54 std::vector<Float_t> &phi, std::vector<Short_t> &charge,\r
2b52b282 55 std::vector<Float_t> &strangnessWeight,\r
8855d81c 56 std::vector<Int_t> &nTracksTracklets, const Int_t step);\r
57 Int_t ReadEventESDMC (std::vector<Float_t> &pt, std::vector<Float_t> &eta,\r
58 std::vector<Float_t> &phi, std::vector<Short_t> &charge,\r
2b52b282 59 std::vector<Float_t> &strangnessWeight,\r
8855d81c 60 std::vector<Int_t> &nTracksTracklets, const Int_t step);\r
7099c89a 61 \r
8855d81c 62 Int_t ReadEventAOD (std::vector<Float_t> &pt, std::vector<Float_t> &eta, \r
63 std::vector<Float_t> &phi, std::vector<Short_t> &charge,\r
2b52b282 64 std::vector<Float_t> &strangnessWeight,\r
8855d81c 65 std::vector<Int_t> &nTracksTracklets, const Int_t step);\r
66 Int_t ReadEventAODRecMcProp(std::vector<Float_t> &pt, std::vector<Float_t> &eta,\r
67 std::vector<Float_t> &phi, std::vector<Short_t> &charge,\r
2b52b282 68 std::vector<Float_t> &strangnessWeight,\r
8855d81c 69 std::vector<Int_t> &nTracksTracklets, const Int_t step);\r
70 Int_t ReadEventAODMC (std::vector<Float_t> &pt, std::vector<Float_t> &eta, \r
71 std::vector<Float_t> &phi, std::vector<Short_t> &charge,\r
2b52b282 72 std::vector<Float_t> &strangnessWeight,\r
8855d81c 73 std::vector<Int_t> &nTracksTracklets, const Int_t step);\r
7099c89a 74 \r
75 void Analyse (const std::vector<Float_t> &pt, \r
76 const std::vector<Float_t> &eta, \r
77 const std::vector<Float_t> &phi, \r
78 const std::vector<Short_t> &charge, \r
2b52b282 79 const std::vector<Float_t> &strangnessWeight,\r
7099c89a 80 const Int_t ntacks, const Int_t ntacklets=0, \r
81 const Int_t nAll=0, const Int_t step=0);\r
82 \r
a640cfb3 83 Bool_t SelectParticlePlusCharged(const Short_t charge, const Int_t pdg, const Bool_t prim);\r
84 Bool_t SelectParticle(const Short_t charge, const Int_t pdg, const Bool_t prim);\r
85 Bool_t CheckEvent(const Bool_t recVertex);\r
7099c89a 86 const Double_t* CreateLogAxis(const Int_t nbins, const Double_t xmin, const Double_t xmax); \r
a640cfb3 87 Bool_t CheckLikeSign(const Short_t chargeEventAxis, const Short_t chargeOthers);\r
b18f7dfb 88\r
b18f7dfb 89\r
f2565a6b 90 Bool_t fUseMC; // flag for Monte Carlo usages\r
91 Bool_t fMcOnly; // flag defines, if only MC data is used in analysis or also reconstructed data\r
7099c89a 92 Double_t fBSign; // magnetic field\r
93 Bool_t fAnalysePrimOnly; // flag for analysis of primaries only (also in reconstructed data)\r
94 Float_t fPtMin; // set lower limit for pt acceptance for mutliplicity defintion\r
95 Float_t fPtMax; // set upper limit for pt acceptance for mutliplicity defintion\r
117f99e3 96 AliESDtrackCuts* fCuts; // List of cuts for ESDs\r
117f99e3 97 Float_t fTriggerPtCut; // cut on particle pt used as event axis\r
98 Float_t fAssociatePtCut; // cut on particle pt used for correlations\r
117f99e3 99 Int_t fMode; // ESD(=0) of AOD(=1) reading \r
8855d81c 100 Int_t fTriggerType; // sets trigger -> AliVEvent::kMB, AliVEvent::kHighMult\r
101 Int_t fFilterBit; // Filter bit written in ESD filter, select track type\r
117f99e3 102 Float_t fVertexZCut; // vertex cut\r
b9ad6f04 103 Float_t fEtaCut; // eta acceptance cut\r
104 Float_t fEtaCutSeed; // eta acceptance cut for seed\r
105 Int_t fSelectParticles; // only in cas of MC: use also neutral particles or not \r
9ed461df 106 Int_t fSelectParticlesAssoc; // only in cas of MC: use also neutral particles or not \r
ac305649 107 Bool_t fCheckSDD; // check if SDD was in read out partition (needed for LHC11a)\r
108 Int_t fSelOption; // 0 = use hit in SDD for event selection, 1 = use trigger for event selection\r
d0c5995c 109 Bool_t fCorrStrangeness; // for data correction -> Pythia simulations underestimate contamination from strangness\r
110 Bool_t fThreeParticleCorr; // perform three particle correlation\r
c4575cde 111 Bool_t fRejectChunks; // rejection of chunks in which no ITS tracks are reconstructed\r
112 Int_t fNTPC; // track number limit for rejection decision.\r
117f99e3 113\r
114 AliESDEvent *fESDEvent; //! esd event\r
115 AliAODEvent *fAODEvent; //! aod event\r
9ed461df 116 Int_t fNMcPrimAccept; // global variable for mc multiplucity\r
7099c89a 117 Int_t fNRecAccept; // global variable for rec multiplucity\r
2b52b282 118 Float_t fNRecAcceptStrangeCorr; // global variable for rec multiplucity\r
1b36e9e2 119 Int_t fNMcPrimAcceptTracklet; // global variable for mc multiplucity\r
120 Int_t fNRecAcceptTracklet; // global variable for rec multiplucity\r
9ed461df 121 Float_t fVzEvent; // global variable for rec vertex position\r
7099c89a 122 Double_t fMeanPtRec; // global variable for rec mean pt\r
123 Double_t fLeadingPtRec; // global variable for rec mean pt\r
ac305649 124\r
7099c89a 125 TList *fHists; // output list\r
126 TH1F *fStep; // how many events have passed which correction step\r
d0c5995c 127 TH1F *fEventStat; // how many events are accepted by trigger, vertex selection, 1 track in acceptance (for real data)\r
7099c89a 128 TH1F *fHistPt; // Pt spectrum ESD\r
129 TH1F *fHistPtMC; // Pt spectrum MC\r
c4575cde 130 TH2F *fNContrNtracklets; // control histogram for vertex->nContributers and number of tracklets\r
131 TH2F *fNContrNtracks; // control histogram for vertex->nContributers and number of tracks\r
132 TH2F *fCorruptedChunks; // control histogram: TPC tracks versus ITS-TPC-tracks\r
133 TH2F *fCorruptedChunksAfter; // control histogram: TPC tracks versus ITS-TPC-tracks\r
7099c89a 134\r
135 TH2F *fNmcNch; // N mc - N ch rec\r
f2565a6b 136 TProfile *fPNmcNch; // N mc - N ch rec\r
bf6ba8a0 137 TH2F *fNmcNchVtx; // N mc - N ch rec for events with reconstructed vertex\r
2b52b282 138 TH2F *fNmcNchVtxStrangeCorr; // N mc - N ch rec for events with reconstructed vertex + strangeness correction\r
bf6ba8a0 139 TProfile *fPNmcNchVtx; // N mc - N ch rec for events with reconstructed vertex\r
1b36e9e2 140 TH2F *fNmcNchTracklet; // N mc - N ch rec\r
141 TProfile *fPNmcNchTracklet; // N mc - N ch rec\r
142 TH2F *fNmcNchVtxTracklet; // N mc - N ch rec for events with reconstructed vertex\r
143 TProfile *fPNmcNchVtxTracklet; // N mc - N ch rec for events with reconstructed vertex\r
7099c89a 144 TH2F *fChargedPi0; // charged versus charged+Pi0\r
9cccc98a 145 TH1F *fVertexCheck; // check which fraction of events has vtx_rec but no good vtx_mc\r
1278081f 146 TH1F *fPropagateDca; // check of AliAODtrack::PropagateToDca\r
117f99e3 147\r
2b52b282 148 THnSparse *fMapSingleTrig[8]; //! multi-dim histo for trigger track properties\r
149 THnSparse *fMapPair[8]; //! multi-dim histo for pair properties\r
150 THnSparse *fMapEvent[8]; //! multi-dim histo for event properties\r
151 THnSparse *fMapAll[8]; //! multi-dim histo for properties of all analysed tracks\r
45976480 152 THnSparse *fMapThree[8]; //! multi-dim histo for properties of three particle correlations\r
7099c89a 153 \r
2b52b282 154 TH1F * fVertexZ[8]; // z of vertex\r
155 TH1F * fNcharge[8]; // pt\r
156 TH1F * fPt[8]; // pt\r
157 TH1F * fEta[8]; // eta\r
158 TH1F * fPhi[8]; // phi\r
159 TH1F * fDcaXY[8]; // dca xy direction\r
160 TH1F * fDcaZ[8]; // dca z direction\r
161\r
162 TH1F * fPtSeed[8]; // pt of seed (event axis)\r
163 TH1F * fEtaSeed[8]; // eta of seed \r
164 TH1F * fPhiSeed[8]; // phi of seed\r
165\r
166 TH1F * fPtOthers[8]; // pt of all other particels used in dEtadPhi\r
167 TH1F * fEtaOthers[8]; // eta of all other particels used in dEtadPhi\r
168 TH1F * fPhiOthers[8]; // phi of all other particels used in dEtadPhi\r
169 TH2F * fPtEtaOthers[8]; // pt-eta of all other particels used in dEtadPhi\r
170\r
171\r
172 TH2F * fPhiEta[8]; // eta - phi\r
173 TH2F * fDPhiDEtaEventAxis[8]; // correlation dEta-dPhi towards event axis\r
174 TH2F * fDPhiDEtaEventAxisSeeds[8]; // correlation dEta-dPhi towards event axis of trigger particles\r
175 TH1F * fTriggerNch[8]; // number of triggers with accepted-track number\r
176 TH2F * fTriggerNchSeeds[8]; // number of triggers with accepted-track number\r
177 TH1F * fTriggerTracklet[8]; // number of triggers with accepted-tracklet number\r
178 TH2F * fNch07Nch[8]; // nCharged with pT>fTriggerPtCut vs nCharged\r
179 TProfile * fPNch07Nch[8]; // nCharged with pT>fTriggerPtCut vs nCharged\r
7099c89a 180 \r
2b52b282 181 TH2F * fNch07Tracklet[8]; // nCharged with pT>fTriggerPtCut vs nTracklet\r
182 TH2F * fNchTracklet[8]; // nCharged vs nTracklet\r
183 TProfile * fPNch07Tracklet[8]; // nCharged with pT>fTriggerPtCut vs nTracklet\r
7099c89a 184\r
2b52b282 185 TH1F * fDPhiEventAxis[8]; // delta phi of associate tracks to event axis\r
45976480 186 TH2F * fDPhi1DPhi2[8]; // dPhi1 versus dPhi2: three particle correlation test\r
ac305649 187 \r
117f99e3 188 AliAnalysisTaskMinijet(const AliAnalysisTaskMinijet&); // not implemented\r
189 AliAnalysisTaskMinijet& operator=(const AliAnalysisTaskMinijet&); // not implemented\r
190 \r
191 ClassDef(AliAnalysisTaskMinijet, 1); // example of analysis\r
192};\r
193\r
194#endif\r