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