#include "TH1F.h"
#include "TH2F.h"
#include "TProfile.h"
#include "TClonesArray.h"
#include "TCanvas.h"
#include "TList.h"
#include "TMatrixD.h"
#include "TMatrixDSym.h"
#include "TMatrixDSymEigen.h"
#include "AliAODEvent.h"
#include "AliAODTrack.h"
#include "AliAODJet.h"
#include "AliAnalysisTaskJetsTM.h"
ClassImp(AliAnalysisTaskJetsTM)
AliAnalysisTaskJetsTM::AliAnalysisTaskJetsTM(const char *name)
: AliAnalysisTaskSE(name)
,fHists(0)
,fPtH(0)
,fPtTH(0)
,fPhiM(0)
,fPhiMPt(0)
,fPhiMPtJ(0)
,fPtSum(0)
{
DefineOutput(1, TList::Class());
}
void AliAnalysisTaskJetsTM::UserCreateOutputObjects()
{
fHists = new TList();
fPtH = new TH1F("fPtH" , " p_{T} distribution of jets" , 50, 0., 100.0);
fPtSum = new TH2F("fPtSum" , " p_{T} sum in cone" , 50, 0., 100.0, 50, 0, 100.);
fPtTH = new TH1F("fPtTH", " p_{T} distribution of tracks", 50, 0., 100.0);
fPhiM = new TH1F("fPhiM", " phi^{major} distribution of tracks", 64, 0., 3.2);
fPhiMPt = new TH2F("fPhiMPt", " phi^{major} distribution of tracks vs pt", 64, 0., 3.2, 20, 0., 2.);
fPhiMPtJ = new TH2F("fPhiMPtJ", " phi^{major} distribution of tracks vs pt Jet", 64, 0., 3.2, 40, 0., 100.);
fHists->SetOwner();
fHists->Add(fPtH);
fHists->Add(fPtSum);
fHists->Add(fPtTH);
fHists->Add(fPhiM);
fHists->Add(fPhiMPt);
fHists->Add(fPhiMPtJ);
}
void AliAnalysisTaskJetsTM::UserExec(Option_t *)
{
if (!fInputEvent) {
Printf("ERROR: AOD not available");
return;
}
AliAODEvent* aodE = dynamic_cast<AliAODEvent*> (fInputEvent);
if (!aodE) {
Printf("ERROR: AOD not available");
return;
}
TClonesArray* jets = dynamic_cast<TClonesArray*> (aodE->FindListObject("jetsAOD_FASTKT04"));
if (!jets) {
Printf("ERROR: Jet branch not available");
return;
}
Int_t nJ = jets->GetEntries();
Float_t ptmax = 0.;
Int_t imax = -1;
for (Int_t i = 0; i < nJ; i++) {
AliAODJet* jet = dynamic_cast<AliAODJet*> (jets->At(i));
if (!jet) continue;
Float_t ptJ = jet->Pt();
Float_t etaJ = TMath::Abs(jet->Eta());
if ((ptJ > 20.) && (ptJ > ptmax) && etaJ < 0.5) {
ptmax = ptJ;
imax = i;
}
}
if (imax == -1) return;
AliAODJet* jet = dynamic_cast<AliAODJet*> (jets->At(imax));
Float_t ptJ = jet->Pt();
Float_t phiJ = jet->Phi();
Float_t etaJ = jet->Eta();
fPtH->Fill(ptJ);
Float_t pxJ = jet->Px();
Float_t pyJ = jet->Py();
Float_t pzJ = jet->Pz();
TVector3 ppJ1(pxJ, pyJ, pzJ);
TVector3 ppJ3(- pxJ * pzJ, - pyJ * pzJ, pxJ * pxJ + pyJ * pyJ);
ppJ3.SetMag(1.);
TVector3 ppJ2(-pyJ, pxJ, 0);
ppJ2.SetMag(1.);
Int_t nT = aodE->GetNumberOfTracks();
Float_t mxx = 0.;
Float_t myy = 0.;
Float_t mxy = 0.;
Int_t nc = 0;
Float_t sump2 = 0.;
Float_t ptMax = 0.;
Float_t etaMax = 0.;
Float_t phiMax = 0.;
Int_t iMax = -1;
Float_t ptsum = 0.;
for (Int_t i = 0; i < nT; i++) {
AliAODTrack* track = dynamic_cast<AliAODTrack*>(aodE->GetTrack(i));
if(!track) AliFatal("Not a standard AOD");
if (!track->TestFilterBit(1<<4)) continue;
fPtTH->Fill(track->Pt());
TVector3 pp(track->Px(), track->Py(), track->Pz());
Float_t phi = track->Phi();
Float_t eta = track->Eta();
Float_t pt = track->Pt();
Float_t jT = pp.Perp(ppJ1);
Float_t deta = eta - etaJ;
Float_t dphi = phi - phiJ;
if (dphi > TMath::Pi()) dphi = 2. * TMath::Pi() - dphi;
if (dphi < - TMath::Pi()) dphi = - 2. * TMath::Pi() - dphi;
Float_t r = TMath::Sqrt(dphi * dphi + deta * deta);
if (r < 0.4) ptsum += pt;
if (r < 0.5 && jT > 1.) {
TVector3 pLong = pp.Dot(ppJ1) / ppJ1.Mag2() * ppJ1;
TVector3 pPerp = pp - pLong;
Float_t ppjX = pPerp.Dot(ppJ2);
Float_t ppjY = pPerp.Dot(ppJ3);
Float_t ppjT = TMath::Sqrt(ppjX * ppjX + ppjY * ppjY);
mxx += (ppjX * ppjX / ppjT);
myy += (ppjY * ppjY / ppjT);
mxy += (ppjX * ppjY / ppjT);
nc++;
sump2 += ppjT;
if (pt > ptMax) {
ptMax = pt;
iMax = i;
etaMax = deta;
phiMax = dphi;
}
}
}
fPtSum->Fill(ptJ, ptsum);
if (nc == 0) return;
const Double_t ele[4] = {mxx / sump2, mxy / sump2, mxy / sump2, myy / sump2};
TMatrixDSym m0(2, ele);
TMatrixDSymEigen m(m0);
TVectorD eval(2);
TMatrixD evecm = m.GetEigenVectors();
eval = m.GetEigenValues();
Int_t jev = 0;
if (eval[0] < eval[1]) jev = 1;
TVectorD evec0(2);
evec0 = TMatrixDColumn(evecm, jev);
TVector2 evec(evec0[0], evec0[1]);
Float_t phiM = TMath::ATan2(phiMax, etaMax);
TVector2 evecM(TMath::Cos(phiM), TMath::Sin(phiM));
Float_t phistM = evecM.DeltaPhi(evec);
if (TMath::Abs(phistM) > TMath::Pi()/2.) evec*=(-1.);
for (Int_t i = 0; i < nT; i++) {
AliAODTrack* track = dynamic_cast<AliAODTrack*>(aodE->GetTrack(i));
if(!track) AliFatal("Not a standard AOD");
if (!track->TestFilterBit(1<<4)) continue;
TVector3 pp(track->Px(), track->Py(), track->Pz());
Float_t phi = track->Phi();
Float_t eta = track->Eta();
Float_t pt = track->Pt();
Float_t jT = pp.Perp(ppJ1);
if (jT > 1.) continue;
Float_t deta = eta - etaJ;
Float_t dphi = phi - phiJ;
if (dphi > TMath::Pi()) dphi = 2. * TMath::Pi() - dphi;
if (dphi < - TMath::Pi()) dphi = - 2. * TMath::Pi() - dphi;
Float_t r = TMath::Sqrt(dphi * dphi + deta * deta);
if (r > 0.7) continue;
TVector3 pLong = pp.Dot(ppJ1) / ppJ1.Mag2() * ppJ1;
TVector3 pPerp = pp - pLong;
Float_t ppjX = pPerp.Dot(ppJ2);
Float_t ppjY = pPerp.Dot(ppJ3);
TVector2 vr(ppjX, ppjY) ;
Float_t phistr = evec.DeltaPhi(vr);
fPhiM->Fill(phistr);
fPhiMPt ->Fill(phistr, pt);
fPhiMPtJ->Fill(phistr, ptJ);
}
PostData(1, fHists);
}
void AliAnalysisTaskJetsTM::Terminate(Option_t *)
{
}
AliAnalysisTaskJetsTM.cxx:1 AliAnalysisTaskJetsTM.cxx:2 AliAnalysisTaskJetsTM.cxx:3 AliAnalysisTaskJetsTM.cxx:4 AliAnalysisTaskJetsTM.cxx:5 AliAnalysisTaskJetsTM.cxx:6 AliAnalysisTaskJetsTM.cxx:7 AliAnalysisTaskJetsTM.cxx:8 AliAnalysisTaskJetsTM.cxx:9 AliAnalysisTaskJetsTM.cxx:10 AliAnalysisTaskJetsTM.cxx:11 AliAnalysisTaskJetsTM.cxx:12 AliAnalysisTaskJetsTM.cxx:13 AliAnalysisTaskJetsTM.cxx:14 AliAnalysisTaskJetsTM.cxx:15 AliAnalysisTaskJetsTM.cxx:16 AliAnalysisTaskJetsTM.cxx:17 AliAnalysisTaskJetsTM.cxx:18 AliAnalysisTaskJetsTM.cxx:19 AliAnalysisTaskJetsTM.cxx:20 AliAnalysisTaskJetsTM.cxx:21 AliAnalysisTaskJetsTM.cxx:22 AliAnalysisTaskJetsTM.cxx:23 AliAnalysisTaskJetsTM.cxx:24 AliAnalysisTaskJetsTM.cxx:25 AliAnalysisTaskJetsTM.cxx:26 AliAnalysisTaskJetsTM.cxx:27 AliAnalysisTaskJetsTM.cxx:28 AliAnalysisTaskJetsTM.cxx:29 AliAnalysisTaskJetsTM.cxx:30 AliAnalysisTaskJetsTM.cxx:31 AliAnalysisTaskJetsTM.cxx:32 AliAnalysisTaskJetsTM.cxx:33 AliAnalysisTaskJetsTM.cxx:34 AliAnalysisTaskJetsTM.cxx:35 AliAnalysisTaskJetsTM.cxx:36 AliAnalysisTaskJetsTM.cxx:37 AliAnalysisTaskJetsTM.cxx:38 AliAnalysisTaskJetsTM.cxx:39 AliAnalysisTaskJetsTM.cxx:40 AliAnalysisTaskJetsTM.cxx:41 AliAnalysisTaskJetsTM.cxx:42 AliAnalysisTaskJetsTM.cxx:43 AliAnalysisTaskJetsTM.cxx:44 AliAnalysisTaskJetsTM.cxx:45 AliAnalysisTaskJetsTM.cxx:46 AliAnalysisTaskJetsTM.cxx:47 AliAnalysisTaskJetsTM.cxx:48 AliAnalysisTaskJetsTM.cxx:49 AliAnalysisTaskJetsTM.cxx:50 AliAnalysisTaskJetsTM.cxx:51 AliAnalysisTaskJetsTM.cxx:52 AliAnalysisTaskJetsTM.cxx:53 AliAnalysisTaskJetsTM.cxx:54 AliAnalysisTaskJetsTM.cxx:55 AliAnalysisTaskJetsTM.cxx:56 AliAnalysisTaskJetsTM.cxx:57 AliAnalysisTaskJetsTM.cxx:58 AliAnalysisTaskJetsTM.cxx:59 AliAnalysisTaskJetsTM.cxx:60 AliAnalysisTaskJetsTM.cxx:61 AliAnalysisTaskJetsTM.cxx:62 AliAnalysisTaskJetsTM.cxx:63 AliAnalysisTaskJetsTM.cxx:64 AliAnalysisTaskJetsTM.cxx:65 AliAnalysisTaskJetsTM.cxx:66 AliAnalysisTaskJetsTM.cxx:67 AliAnalysisTaskJetsTM.cxx:68 AliAnalysisTaskJetsTM.cxx:69 AliAnalysisTaskJetsTM.cxx:70 AliAnalysisTaskJetsTM.cxx:71 AliAnalysisTaskJetsTM.cxx:72 AliAnalysisTaskJetsTM.cxx:73 AliAnalysisTaskJetsTM.cxx:74 AliAnalysisTaskJetsTM.cxx:75 AliAnalysisTaskJetsTM.cxx:76 AliAnalysisTaskJetsTM.cxx:77 AliAnalysisTaskJetsTM.cxx:78 AliAnalysisTaskJetsTM.cxx:79 AliAnalysisTaskJetsTM.cxx:80 AliAnalysisTaskJetsTM.cxx:81 AliAnalysisTaskJetsTM.cxx:82 AliAnalysisTaskJetsTM.cxx:83 AliAnalysisTaskJetsTM.cxx:84 AliAnalysisTaskJetsTM.cxx:85 AliAnalysisTaskJetsTM.cxx:86 AliAnalysisTaskJetsTM.cxx:87 AliAnalysisTaskJetsTM.cxx:88 AliAnalysisTaskJetsTM.cxx:89 AliAnalysisTaskJetsTM.cxx:90 AliAnalysisTaskJetsTM.cxx:91 AliAnalysisTaskJetsTM.cxx:92 AliAnalysisTaskJetsTM.cxx:93 AliAnalysisTaskJetsTM.cxx:94 AliAnalysisTaskJetsTM.cxx:95 AliAnalysisTaskJetsTM.cxx:96 AliAnalysisTaskJetsTM.cxx:97 AliAnalysisTaskJetsTM.cxx:98 AliAnalysisTaskJetsTM.cxx:99 AliAnalysisTaskJetsTM.cxx:100 AliAnalysisTaskJetsTM.cxx:101 AliAnalysisTaskJetsTM.cxx:102 AliAnalysisTaskJetsTM.cxx:103 AliAnalysisTaskJetsTM.cxx:104 AliAnalysisTaskJetsTM.cxx:105 AliAnalysisTaskJetsTM.cxx:106 AliAnalysisTaskJetsTM.cxx:107 AliAnalysisTaskJetsTM.cxx:108 AliAnalysisTaskJetsTM.cxx:109 AliAnalysisTaskJetsTM.cxx:110 AliAnalysisTaskJetsTM.cxx:111 AliAnalysisTaskJetsTM.cxx:112 AliAnalysisTaskJetsTM.cxx:113 AliAnalysisTaskJetsTM.cxx:114 AliAnalysisTaskJetsTM.cxx:115 AliAnalysisTaskJetsTM.cxx:116 AliAnalysisTaskJetsTM.cxx:117 AliAnalysisTaskJetsTM.cxx:118 AliAnalysisTaskJetsTM.cxx:119 AliAnalysisTaskJetsTM.cxx:120 AliAnalysisTaskJetsTM.cxx:121 AliAnalysisTaskJetsTM.cxx:122 AliAnalysisTaskJetsTM.cxx:123 AliAnalysisTaskJetsTM.cxx:124 AliAnalysisTaskJetsTM.cxx:125 AliAnalysisTaskJetsTM.cxx:126 AliAnalysisTaskJetsTM.cxx:127 AliAnalysisTaskJetsTM.cxx:128 AliAnalysisTaskJetsTM.cxx:129 AliAnalysisTaskJetsTM.cxx:130 AliAnalysisTaskJetsTM.cxx:131 AliAnalysisTaskJetsTM.cxx:132 AliAnalysisTaskJetsTM.cxx:133 AliAnalysisTaskJetsTM.cxx:134 AliAnalysisTaskJetsTM.cxx:135 AliAnalysisTaskJetsTM.cxx:136 AliAnalysisTaskJetsTM.cxx:137 AliAnalysisTaskJetsTM.cxx:138 AliAnalysisTaskJetsTM.cxx:139 AliAnalysisTaskJetsTM.cxx:140 AliAnalysisTaskJetsTM.cxx:141 AliAnalysisTaskJetsTM.cxx:142 AliAnalysisTaskJetsTM.cxx:143 AliAnalysisTaskJetsTM.cxx:144 AliAnalysisTaskJetsTM.cxx:145 AliAnalysisTaskJetsTM.cxx:146 AliAnalysisTaskJetsTM.cxx:147 AliAnalysisTaskJetsTM.cxx:148 AliAnalysisTaskJetsTM.cxx:149 AliAnalysisTaskJetsTM.cxx:150 AliAnalysisTaskJetsTM.cxx:151 AliAnalysisTaskJetsTM.cxx:152 AliAnalysisTaskJetsTM.cxx:153 AliAnalysisTaskJetsTM.cxx:154 AliAnalysisTaskJetsTM.cxx:155 AliAnalysisTaskJetsTM.cxx:156 AliAnalysisTaskJetsTM.cxx:157 AliAnalysisTaskJetsTM.cxx:158 AliAnalysisTaskJetsTM.cxx:159 AliAnalysisTaskJetsTM.cxx:160 AliAnalysisTaskJetsTM.cxx:161 AliAnalysisTaskJetsTM.cxx:162 AliAnalysisTaskJetsTM.cxx:163 AliAnalysisTaskJetsTM.cxx:164 AliAnalysisTaskJetsTM.cxx:165 AliAnalysisTaskJetsTM.cxx:166 AliAnalysisTaskJetsTM.cxx:167 AliAnalysisTaskJetsTM.cxx:168 AliAnalysisTaskJetsTM.cxx:169 AliAnalysisTaskJetsTM.cxx:170 AliAnalysisTaskJetsTM.cxx:171 AliAnalysisTaskJetsTM.cxx:172 AliAnalysisTaskJetsTM.cxx:173 AliAnalysisTaskJetsTM.cxx:174 AliAnalysisTaskJetsTM.cxx:175 AliAnalysisTaskJetsTM.cxx:176 AliAnalysisTaskJetsTM.cxx:177 AliAnalysisTaskJetsTM.cxx:178 AliAnalysisTaskJetsTM.cxx:179 AliAnalysisTaskJetsTM.cxx:180 AliAnalysisTaskJetsTM.cxx:181 AliAnalysisTaskJetsTM.cxx:182 AliAnalysisTaskJetsTM.cxx:183 AliAnalysisTaskJetsTM.cxx:184 AliAnalysisTaskJetsTM.cxx:185 AliAnalysisTaskJetsTM.cxx:186 AliAnalysisTaskJetsTM.cxx:187 AliAnalysisTaskJetsTM.cxx:188 AliAnalysisTaskJetsTM.cxx:189 AliAnalysisTaskJetsTM.cxx:190 AliAnalysisTaskJetsTM.cxx:191 AliAnalysisTaskJetsTM.cxx:192 AliAnalysisTaskJetsTM.cxx:193 AliAnalysisTaskJetsTM.cxx:194 AliAnalysisTaskJetsTM.cxx:195 AliAnalysisTaskJetsTM.cxx:196 AliAnalysisTaskJetsTM.cxx:197 AliAnalysisTaskJetsTM.cxx:198 AliAnalysisTaskJetsTM.cxx:199 AliAnalysisTaskJetsTM.cxx:200 AliAnalysisTaskJetsTM.cxx:201 AliAnalysisTaskJetsTM.cxx:202 AliAnalysisTaskJetsTM.cxx:203 AliAnalysisTaskJetsTM.cxx:204 AliAnalysisTaskJetsTM.cxx:205 AliAnalysisTaskJetsTM.cxx:206 AliAnalysisTaskJetsTM.cxx:207 AliAnalysisTaskJetsTM.cxx:208 AliAnalysisTaskJetsTM.cxx:209 AliAnalysisTaskJetsTM.cxx:210 AliAnalysisTaskJetsTM.cxx:211 AliAnalysisTaskJetsTM.cxx:212 AliAnalysisTaskJetsTM.cxx:213 AliAnalysisTaskJetsTM.cxx:214 AliAnalysisTaskJetsTM.cxx:215 AliAnalysisTaskJetsTM.cxx:216 AliAnalysisTaskJetsTM.cxx:217 AliAnalysisTaskJetsTM.cxx:218 AliAnalysisTaskJetsTM.cxx:219 AliAnalysisTaskJetsTM.cxx:220 AliAnalysisTaskJetsTM.cxx:221 AliAnalysisTaskJetsTM.cxx:222 AliAnalysisTaskJetsTM.cxx:223 AliAnalysisTaskJetsTM.cxx:224 AliAnalysisTaskJetsTM.cxx:225 AliAnalysisTaskJetsTM.cxx:226 AliAnalysisTaskJetsTM.cxx:227 AliAnalysisTaskJetsTM.cxx:228 AliAnalysisTaskJetsTM.cxx:229 AliAnalysisTaskJetsTM.cxx:230 AliAnalysisTaskJetsTM.cxx:231 AliAnalysisTaskJetsTM.cxx:232 AliAnalysisTaskJetsTM.cxx:233 AliAnalysisTaskJetsTM.cxx:234 AliAnalysisTaskJetsTM.cxx:235 AliAnalysisTaskJetsTM.cxx:236 AliAnalysisTaskJetsTM.cxx:237 AliAnalysisTaskJetsTM.cxx:238 AliAnalysisTaskJetsTM.cxx:239 AliAnalysisTaskJetsTM.cxx:240 AliAnalysisTaskJetsTM.cxx:241 AliAnalysisTaskJetsTM.cxx:242 AliAnalysisTaskJetsTM.cxx:243 AliAnalysisTaskJetsTM.cxx:244 AliAnalysisTaskJetsTM.cxx:245 AliAnalysisTaskJetsTM.cxx:246 AliAnalysisTaskJetsTM.cxx:247 AliAnalysisTaskJetsTM.cxx:248 AliAnalysisTaskJetsTM.cxx:249 AliAnalysisTaskJetsTM.cxx:250 AliAnalysisTaskJetsTM.cxx:251 AliAnalysisTaskJetsTM.cxx:252 AliAnalysisTaskJetsTM.cxx:253 AliAnalysisTaskJetsTM.cxx:254 AliAnalysisTaskJetsTM.cxx:255 AliAnalysisTaskJetsTM.cxx:256 AliAnalysisTaskJetsTM.cxx:257 AliAnalysisTaskJetsTM.cxx:258 AliAnalysisTaskJetsTM.cxx:259 AliAnalysisTaskJetsTM.cxx:260 AliAnalysisTaskJetsTM.cxx:261 AliAnalysisTaskJetsTM.cxx:262 AliAnalysisTaskJetsTM.cxx:263 AliAnalysisTaskJetsTM.cxx:264 AliAnalysisTaskJetsTM.cxx:265 AliAnalysisTaskJetsTM.cxx:266 AliAnalysisTaskJetsTM.cxx:267 AliAnalysisTaskJetsTM.cxx:268 AliAnalysisTaskJetsTM.cxx:269 AliAnalysisTaskJetsTM.cxx:270 AliAnalysisTaskJetsTM.cxx:271 AliAnalysisTaskJetsTM.cxx:272 AliAnalysisTaskJetsTM.cxx:273 AliAnalysisTaskJetsTM.cxx:274 AliAnalysisTaskJetsTM.cxx:275 AliAnalysisTaskJetsTM.cxx:276 AliAnalysisTaskJetsTM.cxx:277 AliAnalysisTaskJetsTM.cxx:278 AliAnalysisTaskJetsTM.cxx:279 AliAnalysisTaskJetsTM.cxx:280 AliAnalysisTaskJetsTM.cxx:281 AliAnalysisTaskJetsTM.cxx:282 AliAnalysisTaskJetsTM.cxx:283