]>
Commit | Line | Data |
---|---|---|
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 | |
9 | class TList;\r | |
10 | class TH1F;\r | |
11 | class TH2F;\r | |
12 | class TProfile;\r | |
7099c89a | 13 | class THnSparse;\r |
117f99e3 | 14 | class AliESDtrackCuts;\r |
15 | \r | |
117f99e3 | 16 | #include "AliAnalysisTaskSE.h"\r |
7099c89a | 17 | #include <vector>\r |
117f99e3 | 18 | \r |
19 | class 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 |