fdb43e53cae364d87b53c1b2829a856807f7ccb9
[u/mrichter/AliRoot.git] / JETAN / AliAnalysisTaskJets.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15  
16 #include <TROOT.h>
17 #include <TSystem.h>
18 #include <TInterpreter.h>
19 #include <TChain.h>
20 #include <TFile.h>
21 #include <TH1.h>
22
23 #include "AliAnalysisTaskJets.h"
24 #include "AliAnalysisManager.h"
25 #include "AliJetFinder.h"
26 #include "AliESDEvent.h"
27 #include "AliAODEvent.h"
28 #include "AliAODHandler.h"
29
30
31 ClassImp(AliAnalysisTaskJets)
32
33 ////////////////////////////////////////////////////////////////////////
34
35 AliAnalysisTaskJets::AliAnalysisTaskJets():
36     fDebug(0),
37     fJetFinder(0x0),
38     fChain(0x0),
39     fESD(0x0),
40     fAOD(0x0),
41     fTreeA(0x0),
42     fHisto(0x0)
43 {
44   // Default constructor
45 }
46
47 AliAnalysisTaskJets::AliAnalysisTaskJets(const char* name):
48     AliAnalysisTask(name, "AnalysisTaskJets"),
49     fDebug(0),
50     fJetFinder(0x0),
51     fChain(0x0),
52     fESD(0x0),
53     fAOD(0x0),
54     fTreeA(0x0),
55     fHisto(0x0)
56 {
57   // Default constructor
58     DefineInput (0, TChain::Class());
59     DefineOutput(0, TTree::Class());
60     DefineOutput(1, TH1F::Class());
61 }
62
63 void AliAnalysisTaskJets::CreateOutputObjects()
64 {
65 // Create the output container
66 //
67 //  Default AOD
68     if (fDebug > 1) printf("AnalysisTaskJets::CreateOutPutData() \n");
69     AliAODHandler* handler = (AliAODHandler*) ((AliAnalysisManager::GetAnalysisManager())->GetEventHandler());
70     fAOD   = handler->GetAOD();
71     fTreeA = handler->GetTree();
72     fJetFinder->ConnectAOD(fAOD);
73 //
74 //  Histogram
75     OpenFile(1);
76     fHisto = new TH1F("fHisto", "Jet Et", 100, 0., 100.);
77 }
78
79 void AliAnalysisTaskJets::Init()
80 {
81     // Initialization
82     if (fDebug > 1) printf("AnalysisTaskJets::Init() \n");
83
84     // Call configuration file
85     gROOT->LoadMacro("ConfigJetAnalysis.C");
86     fJetFinder = (AliJetFinder*) gInterpreter->ProcessLine("ConfigJetAnalysis()");
87     // Initialise Jet Analysis
88     fJetFinder->Init();
89     // Write header information to local file
90     fJetFinder->WriteHeaders();
91 }
92
93 void AliAnalysisTaskJets::ConnectInputData(Option_t */*option*/)
94 {
95 // Connect the input data
96     if (fDebug > 1) printf("AnalysisTaskJets::ConnectInputData() \n");
97     fChain = (TChain*)GetInputData(0);
98     fESD = new AliESDEvent();
99     fESD->ReadFromTree(fChain);
100     fJetFinder->ConnectTree(fChain, fESD);
101 }
102
103 void AliAnalysisTaskJets::Exec(Option_t */*option*/)
104 {
105 // Execute analysis for current event
106 //
107     Long64_t ientry = fChain->GetReadEntry();
108     if (fDebug > 1) printf("Analysing event # %5d\n", (Int_t) ientry);
109     fJetFinder->ProcessEvent(ientry);
110     PostData(0, fTreeA);
111     PostData(1, fHisto);
112 }
113
114 void AliAnalysisTaskJets::Terminate(Option_t */*option*/)
115 {
116 // Terminate analysis
117 //
118     if (fDebug > 1) printf("AnalysisJets: Terminate() \n");
119     // if (fJetFinder) fJetFinder->FinishRun();
120 }
121