5ec6b6ad51db8becb339c5415a7592058726ae11
[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 <TH1.h>
21
22 #include "AliAnalysisTaskJets.h"
23 #include "AliJetFinder.h"
24 #include "AliESD.h"
25
26 ClassImp(AliAnalysisTaskJets)
27
28 ////////////////////////////////////////////////////////////////////////
29
30 AliAnalysisTaskJets::AliAnalysisTaskJets():
31     fDebug(0),
32     fJetFinder(0x0),
33     fChain(0x0),
34     fESD(0x0),
35     fTreeJ(0x0)
36 {
37   // Default constructor
38 }
39
40 AliAnalysisTaskJets::AliAnalysisTaskJets(const char* name):
41     AliAnalysisTask(name, "AnalysisTaskJets"),
42     fDebug(0),
43     fJetFinder(0x0),
44     fChain(0x0),
45     fESD(0x0),
46     fTreeJ(0x0)
47 {
48   // Default constructor
49     DefineInput (0, TChain::Class());
50     DefineOutput(0, TTree::Class());
51 }
52
53 void AliAnalysisTaskJets::CreateOutputObjects()
54 {
55 // Create the output container
56     fTreeJ = fJetFinder->MakeTreeJ("TreeJ");
57 }
58
59 void AliAnalysisTaskJets::Init()
60 {
61     // Initialization
62     if (fDebug > 1) printf("AnalysisTaskJets::Init() \n");
63
64     // Call configuration file
65     gROOT->LoadMacro("ConfigJetAnalysis.C");
66     fJetFinder = (AliJetFinder*) gInterpreter->ProcessLine("ConfigJetAnalysis()");
67     // Initialise Jet Analysis
68     fJetFinder->Init();
69 }
70
71 void AliAnalysisTaskJets::ConnectInputData(Option_t */*option*/)
72 {
73 // Connect the input data
74 //
75     if (fDebug > 1) printf("AnalysisTaskJets::ConnectInputData() \n");
76     
77     fChain = (TChain*)GetInputData(0);
78     fJetFinder->ConnectTree(fChain);
79     fJetFinder->WriteHeaders();
80 }
81
82 void AliAnalysisTaskJets::Exec(Option_t */*option*/)
83 {
84 // Execute analysis for current event
85 //
86     Long64_t ientry = fChain->GetReadEntry();
87     if (fDebug > 1) printf("Analysing event # %5d \n", (Int_t) ientry);
88     fJetFinder->ProcessEvent(ientry);
89     PostData(0, fTreeJ);
90 }
91
92 void AliAnalysisTaskJets::Terminate(Option_t */*option*/)
93 {
94 // Terminate analysis
95 //
96     if (fDebug > 1) printf("AnalysisJets: Terminate() \n");
97    
98     if (fJetFinder) fJetFinder->FinishRun();
99 }
100