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