#include "AliAnalysisTaskDiJets.h"
#include "AliAODEvent.h"
#include "AliAODJet.h"
#include "AliAODDiJet.h"
#include <TClonesArray.h>
#include <TLorentzVector.h>
#include <TStyle.h>
ClassImp(AliAnalysisTaskDiJets)
AliAnalysisTaskDiJets::AliAnalysisTaskDiJets():
AliAnalysisTaskSE(),
fDiJets(0),
fDiJetsIn(0),
fUseAODInput(kFALSE),
fFillAOD(kFALSE),
fJetBranch("jets"),
fAOD(0),
fHistList(0),
fH1DeltaPt(0),
fH1DeltaPhi(0),
fH1PhiImbal(0),
fH1Asym(0),
fH2Pt2vsPt1(0),
fH2DifvsSum(0)
{
}
AliAnalysisTaskDiJets::AliAnalysisTaskDiJets(const char* name):
AliAnalysisTaskSE(name),
fDiJets(0),
fDiJetsIn(0),
fUseAODInput(kFALSE),
fFillAOD(kFALSE),
fJetBranch("jets"),
fAOD(0),
fHistList(0),
fH1DeltaPt(0),
fH1DeltaPhi(0),
fH1PhiImbal(0),
fH1Asym(0),
fH2Pt2vsPt1(0),
fH2DifvsSum(0)
{
DefineOutput(1, TList::Class());
}
void AliAnalysisTaskDiJets::UserCreateOutputObjects()
{
if (fDebug) printf("AnalysisTaskDiJets::CreateOutPutData() \n");
fDiJets = new TClonesArray("AliAODDiJet", 0);
if (fFillAOD){
fDiJets->SetName(Form("dijets_%s",fJetBranch.Data()));
AddAODBranch("TClonesArray", &fDiJets);
}
if (!fHistList) fHistList = new TList();
fHistList->SetOwner();
Float_t pi=TMath::Pi();
gStyle->SetPalette(1);
fH1DeltaPt = new TH1F("DeltaPt","Difference between the jets' Pt;#Deltap_{T} (GeV/c);Entries",150,0.,150.);
fH1DeltaPt->SetMarkerSize(0.6);
fH1DeltaPt->SetMarkerColor(4);
fH1DeltaPt->SetMarkerStyle(21);
fH1DeltaPt->SetOption("E");
fH1DeltaPhi = new TH1F("DeltaPhi","Difference in the azimuthal angle;#Delta#phi;Entries",100,0.,pi);
fH1DeltaPhi->SetMarkerSize(0.6);
fH1DeltaPhi->SetMarkerColor(4);
fH1DeltaPhi->SetMarkerStyle(21);
fH1DeltaPhi->SetOption("E");
fH1PhiImbal = new TH1F("PhiImb","Phi imbalance;#phi;Entries",100,-pi,pi);
fH1PhiImbal->SetMarkerSize(0.6);
fH1PhiImbal->SetMarkerColor(4);
fH1PhiImbal->SetMarkerStyle(21);
fH1PhiImbal->SetOption("E");
fH1Asym = new TH1F("Asym","Pt asymmetry;#Deltap_{T}/(p_{T,1}+p_{T,2});Entries",50,0.,1.);
fH1Asym->SetMarkerSize(0.6);
fH1Asym->SetMarkerColor(4);
fH1Asym->SetMarkerStyle(21);
fH1Asym->SetOption("E");
fH2Pt2vsPt1 = new TH2F("Pt2vsPt1","Pt2 versus Pt1;p_{T,1} (GeV/c);p_{T,2} (GeV/c)",250,0.,250.,250,0.,250.);
fH2Pt2vsPt1->SetOption("cont0");
fH2DifvsSum = new TH2F("DifvsSum","Pt difference vs Pt sum;p_{T,1}+p_{T,2} (GeV/c);#Deltap_{T} (GeV/c)",400,0.,400.,150,0.,150.);
fH2DifvsSum->SetOption("cont0");
fHistList->Add(fH1DeltaPt);
fHistList->Add(fH1DeltaPhi);
fHistList->Add(fH1PhiImbal);
fHistList->Add(fH1Asym);
fHistList->Add(fH2Pt2vsPt1);
fHistList->Add(fH2DifvsSum);
}
void AliAnalysisTaskDiJets::Init()
{
if (fDebug) printf("AnalysisTaskDiJets::Init() \n");
}
void AliAnalysisTaskDiJets::UserExec(Option_t *)
{
if (fDiJets) fDiJets->Delete();
if(fUseAODInput){
fAOD = dynamic_cast<AliAODEvent*> (InputEvent());
if(!fAOD){
if (fDebug) printf("%s:%d No AOD event in the input\n",(char*)__FILE__,__LINE__);
return;
}
} else {
fAOD = AODEvent();
if(!fAOD){
if (fDebug) printf("%s:%d AODEvent not found in the Output",(char*)__FILE__,__LINE__);
return;
}
}
TClonesArray* jets = (TClonesArray*) fAOD->FindListObject(fJetBranch.Data());
fDiJetsIn = (TClonesArray*) (fAOD->GetList()->FindObject("dijets"));
if (fDiJetsIn) {
if (fDebug) printf("Found %d dijets in old list \n", fDiJetsIn->GetEntries());
AliAODJet* jj1, *jj2;
AliAODDiJet* testJ;
if (fDiJetsIn->GetEntries() > 0) {
testJ = (AliAODDiJet*) (fDiJetsIn->At(0));
jj1 = testJ->Jet(0);
jj1->Print("");
jj2 = testJ->Jet(1);
jj2->Print("");
}
}
Int_t nj = jets->GetEntriesFast();
if (fDebug) printf("There are %5d jets in the event \n", nj);
if (nj < 2){
PostData(1, fHistList);
return;
}
AliAODJet* jet1 = (AliAODJet*) (jets->At(0));
TLorentzVector v1 = *(jet1->MomentumVector());
AliAODJet* jet2 = (AliAODJet*) (jets->At(1));
TLorentzVector v2 = *(jet2->MomentumVector());
TLorentzVector v = v1 + v2;
if (fDiJets) {
Int_t ndi = fDiJets->GetEntriesFast();
TClonesArray &lref = *fDiJets;
new(lref[ndi]) AliAODDiJet(v);
AliAODDiJet* dijet = (AliAODDiJet*) (fDiJets->At(ndi));
dijet->SetJetRefs(jet1, jet2);
fH1DeltaPhi->Fill(dijet->DeltaPhi());
fH1PhiImbal->Fill(dijet->PhiImbalance());
}
fH1DeltaPt->Fill(jet1->Pt()-jet2->Pt());
fH1Asym->Fill((jet1->Pt()-jet2->Pt())/(jet1->Pt()+jet2->Pt()));
fH2Pt2vsPt1->Fill(jet1->Pt(),jet2->Pt());
fH2DifvsSum->Fill(jet1->Pt()+jet2->Pt(),jet1->Pt()-jet2->Pt());
PostData(1, fHistList);
return;
}
void AliAnalysisTaskDiJets::Terminate(Option_t *)
{
if (fDebug) printf("AnalysisDiJets: Terminate() \n");
}
AliAnalysisTaskDiJets.cxx:1 AliAnalysisTaskDiJets.cxx:2 AliAnalysisTaskDiJets.cxx:3 AliAnalysisTaskDiJets.cxx:4 AliAnalysisTaskDiJets.cxx:5 AliAnalysisTaskDiJets.cxx:6 AliAnalysisTaskDiJets.cxx:7 AliAnalysisTaskDiJets.cxx:8 AliAnalysisTaskDiJets.cxx:9 AliAnalysisTaskDiJets.cxx:10 AliAnalysisTaskDiJets.cxx:11 AliAnalysisTaskDiJets.cxx:12 AliAnalysisTaskDiJets.cxx:13 AliAnalysisTaskDiJets.cxx:14 AliAnalysisTaskDiJets.cxx:15 AliAnalysisTaskDiJets.cxx:16 AliAnalysisTaskDiJets.cxx:17 AliAnalysisTaskDiJets.cxx:18 AliAnalysisTaskDiJets.cxx:19 AliAnalysisTaskDiJets.cxx:20 AliAnalysisTaskDiJets.cxx:21 AliAnalysisTaskDiJets.cxx:22 AliAnalysisTaskDiJets.cxx:23 AliAnalysisTaskDiJets.cxx:24 AliAnalysisTaskDiJets.cxx:25 AliAnalysisTaskDiJets.cxx:26 AliAnalysisTaskDiJets.cxx:27 AliAnalysisTaskDiJets.cxx:28 AliAnalysisTaskDiJets.cxx:29 AliAnalysisTaskDiJets.cxx:30 AliAnalysisTaskDiJets.cxx:31 AliAnalysisTaskDiJets.cxx:32 AliAnalysisTaskDiJets.cxx:33 AliAnalysisTaskDiJets.cxx:34 AliAnalysisTaskDiJets.cxx:35 AliAnalysisTaskDiJets.cxx:36 AliAnalysisTaskDiJets.cxx:37 AliAnalysisTaskDiJets.cxx:38 AliAnalysisTaskDiJets.cxx:39 AliAnalysisTaskDiJets.cxx:40 AliAnalysisTaskDiJets.cxx:41 AliAnalysisTaskDiJets.cxx:42 AliAnalysisTaskDiJets.cxx:43 AliAnalysisTaskDiJets.cxx:44 AliAnalysisTaskDiJets.cxx:45 AliAnalysisTaskDiJets.cxx:46 AliAnalysisTaskDiJets.cxx:47 AliAnalysisTaskDiJets.cxx:48 AliAnalysisTaskDiJets.cxx:49 AliAnalysisTaskDiJets.cxx:50 AliAnalysisTaskDiJets.cxx:51 AliAnalysisTaskDiJets.cxx:52 AliAnalysisTaskDiJets.cxx:53 AliAnalysisTaskDiJets.cxx:54 AliAnalysisTaskDiJets.cxx:55 AliAnalysisTaskDiJets.cxx:56 AliAnalysisTaskDiJets.cxx:57 AliAnalysisTaskDiJets.cxx:58 AliAnalysisTaskDiJets.cxx:59 AliAnalysisTaskDiJets.cxx:60 AliAnalysisTaskDiJets.cxx:61 AliAnalysisTaskDiJets.cxx:62 AliAnalysisTaskDiJets.cxx:63 AliAnalysisTaskDiJets.cxx:64 AliAnalysisTaskDiJets.cxx:65 AliAnalysisTaskDiJets.cxx:66 AliAnalysisTaskDiJets.cxx:67 AliAnalysisTaskDiJets.cxx:68 AliAnalysisTaskDiJets.cxx:69 AliAnalysisTaskDiJets.cxx:70 AliAnalysisTaskDiJets.cxx:71 AliAnalysisTaskDiJets.cxx:72 AliAnalysisTaskDiJets.cxx:73 AliAnalysisTaskDiJets.cxx:74 AliAnalysisTaskDiJets.cxx:75 AliAnalysisTaskDiJets.cxx:76 AliAnalysisTaskDiJets.cxx:77 AliAnalysisTaskDiJets.cxx:78 AliAnalysisTaskDiJets.cxx:79 AliAnalysisTaskDiJets.cxx:80 AliAnalysisTaskDiJets.cxx:81 AliAnalysisTaskDiJets.cxx:82 AliAnalysisTaskDiJets.cxx:83 AliAnalysisTaskDiJets.cxx:84 AliAnalysisTaskDiJets.cxx:85 AliAnalysisTaskDiJets.cxx:86 AliAnalysisTaskDiJets.cxx:87 AliAnalysisTaskDiJets.cxx:88 AliAnalysisTaskDiJets.cxx:89 AliAnalysisTaskDiJets.cxx:90 AliAnalysisTaskDiJets.cxx:91 AliAnalysisTaskDiJets.cxx:92 AliAnalysisTaskDiJets.cxx:93 AliAnalysisTaskDiJets.cxx:94 AliAnalysisTaskDiJets.cxx:95 AliAnalysisTaskDiJets.cxx:96 AliAnalysisTaskDiJets.cxx:97 AliAnalysisTaskDiJets.cxx:98 AliAnalysisTaskDiJets.cxx:99 AliAnalysisTaskDiJets.cxx:100 AliAnalysisTaskDiJets.cxx:101 AliAnalysisTaskDiJets.cxx:102 AliAnalysisTaskDiJets.cxx:103 AliAnalysisTaskDiJets.cxx:104 AliAnalysisTaskDiJets.cxx:105 AliAnalysisTaskDiJets.cxx:106 AliAnalysisTaskDiJets.cxx:107 AliAnalysisTaskDiJets.cxx:108 AliAnalysisTaskDiJets.cxx:109 AliAnalysisTaskDiJets.cxx:110 AliAnalysisTaskDiJets.cxx:111 AliAnalysisTaskDiJets.cxx:112 AliAnalysisTaskDiJets.cxx:113 AliAnalysisTaskDiJets.cxx:114 AliAnalysisTaskDiJets.cxx:115 AliAnalysisTaskDiJets.cxx:116 AliAnalysisTaskDiJets.cxx:117 AliAnalysisTaskDiJets.cxx:118 AliAnalysisTaskDiJets.cxx:119 AliAnalysisTaskDiJets.cxx:120 AliAnalysisTaskDiJets.cxx:121 AliAnalysisTaskDiJets.cxx:122 AliAnalysisTaskDiJets.cxx:123 AliAnalysisTaskDiJets.cxx:124 AliAnalysisTaskDiJets.cxx:125 AliAnalysisTaskDiJets.cxx:126 AliAnalysisTaskDiJets.cxx:127 AliAnalysisTaskDiJets.cxx:128 AliAnalysisTaskDiJets.cxx:129 AliAnalysisTaskDiJets.cxx:130 AliAnalysisTaskDiJets.cxx:131 AliAnalysisTaskDiJets.cxx:132 AliAnalysisTaskDiJets.cxx:133 AliAnalysisTaskDiJets.cxx:134 AliAnalysisTaskDiJets.cxx:135 AliAnalysisTaskDiJets.cxx:136 AliAnalysisTaskDiJets.cxx:137 AliAnalysisTaskDiJets.cxx:138 AliAnalysisTaskDiJets.cxx:139 AliAnalysisTaskDiJets.cxx:140 AliAnalysisTaskDiJets.cxx:141 AliAnalysisTaskDiJets.cxx:142 AliAnalysisTaskDiJets.cxx:143 AliAnalysisTaskDiJets.cxx:144 AliAnalysisTaskDiJets.cxx:145 AliAnalysisTaskDiJets.cxx:146 AliAnalysisTaskDiJets.cxx:147 AliAnalysisTaskDiJets.cxx:148 AliAnalysisTaskDiJets.cxx:149 AliAnalysisTaskDiJets.cxx:150 AliAnalysisTaskDiJets.cxx:151 AliAnalysisTaskDiJets.cxx:152 AliAnalysisTaskDiJets.cxx:153 AliAnalysisTaskDiJets.cxx:154 AliAnalysisTaskDiJets.cxx:155 AliAnalysisTaskDiJets.cxx:156 AliAnalysisTaskDiJets.cxx:157 AliAnalysisTaskDiJets.cxx:158 AliAnalysisTaskDiJets.cxx:159 AliAnalysisTaskDiJets.cxx:160 AliAnalysisTaskDiJets.cxx:161 AliAnalysisTaskDiJets.cxx:162 AliAnalysisTaskDiJets.cxx:163 AliAnalysisTaskDiJets.cxx:164 AliAnalysisTaskDiJets.cxx:165 AliAnalysisTaskDiJets.cxx:166 AliAnalysisTaskDiJets.cxx:167 AliAnalysisTaskDiJets.cxx:168 AliAnalysisTaskDiJets.cxx:169 AliAnalysisTaskDiJets.cxx:170 AliAnalysisTaskDiJets.cxx:171 AliAnalysisTaskDiJets.cxx:172 AliAnalysisTaskDiJets.cxx:173 AliAnalysisTaskDiJets.cxx:174 AliAnalysisTaskDiJets.cxx:175 AliAnalysisTaskDiJets.cxx:176 AliAnalysisTaskDiJets.cxx:177 AliAnalysisTaskDiJets.cxx:178 AliAnalysisTaskDiJets.cxx:179 AliAnalysisTaskDiJets.cxx:180 AliAnalysisTaskDiJets.cxx:181 AliAnalysisTaskDiJets.cxx:182 AliAnalysisTaskDiJets.cxx:183 AliAnalysisTaskDiJets.cxx:184 AliAnalysisTaskDiJets.cxx:185 AliAnalysisTaskDiJets.cxx:186 AliAnalysisTaskDiJets.cxx:187 AliAnalysisTaskDiJets.cxx:188 AliAnalysisTaskDiJets.cxx:189 AliAnalysisTaskDiJets.cxx:190 AliAnalysisTaskDiJets.cxx:191 AliAnalysisTaskDiJets.cxx:192 AliAnalysisTaskDiJets.cxx:193 AliAnalysisTaskDiJets.cxx:194 AliAnalysisTaskDiJets.cxx:195 AliAnalysisTaskDiJets.cxx:196 AliAnalysisTaskDiJets.cxx:197 AliAnalysisTaskDiJets.cxx:198 AliAnalysisTaskDiJets.cxx:199 AliAnalysisTaskDiJets.cxx:200 AliAnalysisTaskDiJets.cxx:201 AliAnalysisTaskDiJets.cxx:202 AliAnalysisTaskDiJets.cxx:203 AliAnalysisTaskDiJets.cxx:204 AliAnalysisTaskDiJets.cxx:205 AliAnalysisTaskDiJets.cxx:206 AliAnalysisTaskDiJets.cxx:207 AliAnalysisTaskDiJets.cxx:208 AliAnalysisTaskDiJets.cxx:209 AliAnalysisTaskDiJets.cxx:210 AliAnalysisTaskDiJets.cxx:211 AliAnalysisTaskDiJets.cxx:212 AliAnalysisTaskDiJets.cxx:213 AliAnalysisTaskDiJets.cxx:214 AliAnalysisTaskDiJets.cxx:215 AliAnalysisTaskDiJets.cxx:216 AliAnalysisTaskDiJets.cxx:217 AliAnalysisTaskDiJets.cxx:218