#include <TChain.h>
#include <TTree.h>
#include <TList.h>
#include <TCanvas.h>
#include <TClonesArray.h>
#include <TH1.h>
#include "AliAnalysisTaskMuonAODCreation.h"
#include "AliAnalysisTaskSE.h"
#include "AliAnalysisManager.h"
#include "AliAnalysisDataSlot.h"
#include "AliESDEvent.h"
#include "AliESD.h"
#include "AliAODEvent.h"
#include "AliAODHeader.h"
#include "AliVEvent.h"
#include "AliAODHandler.h"
#include "AliAODInputHandler.h"
#include "AliMCEventHandler.h"
#include "AliInputEventHandler.h"
#include "AliMCEvent.h"
#include "AliStack.h"
#include "AliLog.h"
ClassImp(AliAnalysisTaskMuonAODCreation)
AliAnalysisTaskMuonAODCreation::AliAnalysisTaskMuonAODCreation() :
fOutput(0x0),
fTree(0x0),
fOutputAOD(0x0)
{
}
AliAnalysisTaskMuonAODCreation::AliAnalysisTaskMuonAODCreation(const Char_t* name) :
AliAnalysisTaskSE(name),
fOutput(0x0),
fTree(0x0),
fOutputAOD(0x0)
{
DefineOutput(1,TList::Class());
}
AliAnalysisTaskMuonAODCreation& AliAnalysisTaskMuonAODCreation::operator=(const AliAnalysisTaskMuonAODCreation& c)
{
if (this!=&c) {
AliAnalysisTaskSE::operator=(c) ;
}
return *this;
}
AliAnalysisTaskMuonAODCreation::AliAnalysisTaskMuonAODCreation(const AliAnalysisTaskMuonAODCreation& c) :
AliAnalysisTaskSE(c),
fOutput(c.fOutput),
fTree(c.fTree),
fOutputAOD(c.fOutputAOD)
{
}
AliAnalysisTaskMuonAODCreation::~AliAnalysisTaskMuonAODCreation() {
Info("~AliAnalysisTaskMuonAODCreation","Calling Destructor");
}
void AliAnalysisTaskMuonAODCreation::UserCreateOutputObjects(){
AliAODHandler* handler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
fOutputAOD = handler->GetAOD();
fTree = handler->GetTree();
fOutput = new TList();
fOutput->SetOwner();
TH1D *pt_alltracks = new TH1D("pt_alltracks","pt_alltracks",10,0,20);
TH1D *pt_muontracks = new TH1D("pt_muontracks","pt_muontracks",10,0,20);
fOutput->Add(pt_alltracks);
fOutput->Add(pt_muontracks);
fOutput->ls();
}
void AliAnalysisTaskMuonAODCreation::UserExec(Option_t *)
{
AliAODEvent *aod = dynamic_cast<AliAODEvent*> (InputEvent());
if ( ! aod ) {
AliError("Cannot get AOD event");
return;
}
Int_t nMuons=0;
for (Int_t j = 0; j<aod->GetNumberOfTracks(); j++) {
AliAODTrack *track = dynamic_cast<AliAODTrack*>(aod->GetTrack(j));
if(!track) AliFatal("Not a standard AOD");
((TH1D*)(fOutput->FindObject("pt_alltracks")))->Fill(track->Pt());
if(track->IsMuonTrack()) {
nMuons++;
((TH1D*)(fOutput->FindObject("pt_muontracks")))->Fill(track->Pt());
}
}
AliAODHandler* outputHandler = (AliAODHandler*)
((AliAnalysisManager::GetAnalysisManager())->GetOutputEventHandler());
outputHandler->SetFillAOD(kFALSE);
if(nMuons>0) {
outputHandler->SetFillAOD(kTRUE);
PostData(0,fTree);
PostData(1,fOutput);
} else {
return;
}
}
void AliAnalysisTaskMuonAODCreation::Terminate(Option_t *)
{
TCanvas *c = new TCanvas("c","plots",20,20,600,600);
c->Divide(2,2);
TH1D *h_pt_all = dynamic_cast<TH1D*> (fOutput->FindObject("pt_alltracks"));
TH1D *h_pt_muons = dynamic_cast<TH1D*> (fOutput->FindObject("pt_muontracks"));
c->cd(1);
if (h_pt_all) h_pt_all->Draw();
c->cd(2);
if (h_pt_muons) h_pt_muons->Draw();
c->cd(3);
if (h_pt_all) h_pt_all->Draw();
if (h_pt_muons) h_pt_muons->Draw("same");
}
AliAnalysisTaskMuonAODCreation.cxx:1 AliAnalysisTaskMuonAODCreation.cxx:2 AliAnalysisTaskMuonAODCreation.cxx:3 AliAnalysisTaskMuonAODCreation.cxx:4 AliAnalysisTaskMuonAODCreation.cxx:5 AliAnalysisTaskMuonAODCreation.cxx:6 AliAnalysisTaskMuonAODCreation.cxx:7 AliAnalysisTaskMuonAODCreation.cxx:8 AliAnalysisTaskMuonAODCreation.cxx:9 AliAnalysisTaskMuonAODCreation.cxx:10 AliAnalysisTaskMuonAODCreation.cxx:11 AliAnalysisTaskMuonAODCreation.cxx:12 AliAnalysisTaskMuonAODCreation.cxx:13 AliAnalysisTaskMuonAODCreation.cxx:14 AliAnalysisTaskMuonAODCreation.cxx:15 AliAnalysisTaskMuonAODCreation.cxx:16 AliAnalysisTaskMuonAODCreation.cxx:17 AliAnalysisTaskMuonAODCreation.cxx:18 AliAnalysisTaskMuonAODCreation.cxx:19 AliAnalysisTaskMuonAODCreation.cxx:20 AliAnalysisTaskMuonAODCreation.cxx:21 AliAnalysisTaskMuonAODCreation.cxx:22 AliAnalysisTaskMuonAODCreation.cxx:23 AliAnalysisTaskMuonAODCreation.cxx:24 AliAnalysisTaskMuonAODCreation.cxx:25 AliAnalysisTaskMuonAODCreation.cxx:26 AliAnalysisTaskMuonAODCreation.cxx:27 AliAnalysisTaskMuonAODCreation.cxx:28 AliAnalysisTaskMuonAODCreation.cxx:29 AliAnalysisTaskMuonAODCreation.cxx:30 AliAnalysisTaskMuonAODCreation.cxx:31 AliAnalysisTaskMuonAODCreation.cxx:32 AliAnalysisTaskMuonAODCreation.cxx:33 AliAnalysisTaskMuonAODCreation.cxx:34 AliAnalysisTaskMuonAODCreation.cxx:35 AliAnalysisTaskMuonAODCreation.cxx:36 AliAnalysisTaskMuonAODCreation.cxx:37 AliAnalysisTaskMuonAODCreation.cxx:38 AliAnalysisTaskMuonAODCreation.cxx:39 AliAnalysisTaskMuonAODCreation.cxx:40 AliAnalysisTaskMuonAODCreation.cxx:41 AliAnalysisTaskMuonAODCreation.cxx:42 AliAnalysisTaskMuonAODCreation.cxx:43 AliAnalysisTaskMuonAODCreation.cxx:44 AliAnalysisTaskMuonAODCreation.cxx:45 AliAnalysisTaskMuonAODCreation.cxx:46 AliAnalysisTaskMuonAODCreation.cxx:47 AliAnalysisTaskMuonAODCreation.cxx:48 AliAnalysisTaskMuonAODCreation.cxx:49 AliAnalysisTaskMuonAODCreation.cxx:50 AliAnalysisTaskMuonAODCreation.cxx:51 AliAnalysisTaskMuonAODCreation.cxx:52 AliAnalysisTaskMuonAODCreation.cxx:53 AliAnalysisTaskMuonAODCreation.cxx:54 AliAnalysisTaskMuonAODCreation.cxx:55 AliAnalysisTaskMuonAODCreation.cxx:56 AliAnalysisTaskMuonAODCreation.cxx:57 AliAnalysisTaskMuonAODCreation.cxx:58 AliAnalysisTaskMuonAODCreation.cxx:59 AliAnalysisTaskMuonAODCreation.cxx:60 AliAnalysisTaskMuonAODCreation.cxx:61 AliAnalysisTaskMuonAODCreation.cxx:62 AliAnalysisTaskMuonAODCreation.cxx:63 AliAnalysisTaskMuonAODCreation.cxx:64 AliAnalysisTaskMuonAODCreation.cxx:65 AliAnalysisTaskMuonAODCreation.cxx:66 AliAnalysisTaskMuonAODCreation.cxx:67 AliAnalysisTaskMuonAODCreation.cxx:68 AliAnalysisTaskMuonAODCreation.cxx:69 AliAnalysisTaskMuonAODCreation.cxx:70 AliAnalysisTaskMuonAODCreation.cxx:71 AliAnalysisTaskMuonAODCreation.cxx:72 AliAnalysisTaskMuonAODCreation.cxx:73 AliAnalysisTaskMuonAODCreation.cxx:74 AliAnalysisTaskMuonAODCreation.cxx:75 AliAnalysisTaskMuonAODCreation.cxx:76 AliAnalysisTaskMuonAODCreation.cxx:77 AliAnalysisTaskMuonAODCreation.cxx:78 AliAnalysisTaskMuonAODCreation.cxx:79 AliAnalysisTaskMuonAODCreation.cxx:80 AliAnalysisTaskMuonAODCreation.cxx:81 AliAnalysisTaskMuonAODCreation.cxx:82 AliAnalysisTaskMuonAODCreation.cxx:83 AliAnalysisTaskMuonAODCreation.cxx:84 AliAnalysisTaskMuonAODCreation.cxx:85 AliAnalysisTaskMuonAODCreation.cxx:86 AliAnalysisTaskMuonAODCreation.cxx:87 AliAnalysisTaskMuonAODCreation.cxx:88 AliAnalysisTaskMuonAODCreation.cxx:89 AliAnalysisTaskMuonAODCreation.cxx:90 AliAnalysisTaskMuonAODCreation.cxx:91 AliAnalysisTaskMuonAODCreation.cxx:92 AliAnalysisTaskMuonAODCreation.cxx:93 AliAnalysisTaskMuonAODCreation.cxx:94 AliAnalysisTaskMuonAODCreation.cxx:95 AliAnalysisTaskMuonAODCreation.cxx:96 AliAnalysisTaskMuonAODCreation.cxx:97 AliAnalysisTaskMuonAODCreation.cxx:98 AliAnalysisTaskMuonAODCreation.cxx:99 AliAnalysisTaskMuonAODCreation.cxx:100 AliAnalysisTaskMuonAODCreation.cxx:101 AliAnalysisTaskMuonAODCreation.cxx:102 AliAnalysisTaskMuonAODCreation.cxx:103 AliAnalysisTaskMuonAODCreation.cxx:104 AliAnalysisTaskMuonAODCreation.cxx:105 AliAnalysisTaskMuonAODCreation.cxx:106 AliAnalysisTaskMuonAODCreation.cxx:107 AliAnalysisTaskMuonAODCreation.cxx:108 AliAnalysisTaskMuonAODCreation.cxx:109 AliAnalysisTaskMuonAODCreation.cxx:110 AliAnalysisTaskMuonAODCreation.cxx:111 AliAnalysisTaskMuonAODCreation.cxx:112 AliAnalysisTaskMuonAODCreation.cxx:113 AliAnalysisTaskMuonAODCreation.cxx:114 AliAnalysisTaskMuonAODCreation.cxx:115 AliAnalysisTaskMuonAODCreation.cxx:116 AliAnalysisTaskMuonAODCreation.cxx:117 AliAnalysisTaskMuonAODCreation.cxx:118 AliAnalysisTaskMuonAODCreation.cxx:119 AliAnalysisTaskMuonAODCreation.cxx:120 AliAnalysisTaskMuonAODCreation.cxx:121 AliAnalysisTaskMuonAODCreation.cxx:122 AliAnalysisTaskMuonAODCreation.cxx:123 AliAnalysisTaskMuonAODCreation.cxx:124 AliAnalysisTaskMuonAODCreation.cxx:125 AliAnalysisTaskMuonAODCreation.cxx:126 AliAnalysisTaskMuonAODCreation.cxx:127 AliAnalysisTaskMuonAODCreation.cxx:128 AliAnalysisTaskMuonAODCreation.cxx:129 AliAnalysisTaskMuonAODCreation.cxx:130 AliAnalysisTaskMuonAODCreation.cxx:131 AliAnalysisTaskMuonAODCreation.cxx:132 AliAnalysisTaskMuonAODCreation.cxx:133 AliAnalysisTaskMuonAODCreation.cxx:134 AliAnalysisTaskMuonAODCreation.cxx:135 AliAnalysisTaskMuonAODCreation.cxx:136 AliAnalysisTaskMuonAODCreation.cxx:137 AliAnalysisTaskMuonAODCreation.cxx:138 AliAnalysisTaskMuonAODCreation.cxx:139 AliAnalysisTaskMuonAODCreation.cxx:140 AliAnalysisTaskMuonAODCreation.cxx:141 AliAnalysisTaskMuonAODCreation.cxx:142 AliAnalysisTaskMuonAODCreation.cxx:143 AliAnalysisTaskMuonAODCreation.cxx:144 AliAnalysisTaskMuonAODCreation.cxx:145 AliAnalysisTaskMuonAODCreation.cxx:146 AliAnalysisTaskMuonAODCreation.cxx:147 AliAnalysisTaskMuonAODCreation.cxx:148 AliAnalysisTaskMuonAODCreation.cxx:149 AliAnalysisTaskMuonAODCreation.cxx:150 AliAnalysisTaskMuonAODCreation.cxx:151 AliAnalysisTaskMuonAODCreation.cxx:152 AliAnalysisTaskMuonAODCreation.cxx:153 AliAnalysisTaskMuonAODCreation.cxx:154 AliAnalysisTaskMuonAODCreation.cxx:155 AliAnalysisTaskMuonAODCreation.cxx:156 AliAnalysisTaskMuonAODCreation.cxx:157 AliAnalysisTaskMuonAODCreation.cxx:158 AliAnalysisTaskMuonAODCreation.cxx:159 AliAnalysisTaskMuonAODCreation.cxx:160