////////////////////////////////////////////////////////////////////////
+AliAnalysisTaskJets::AliAnalysisTaskJets():
+ fDebug(0),
+ fJetFinder(0x0),
+ fChain(0x0),
+ fESD(0x0),
+ fTreeJ(0x0)
+{
+ // Default constructor
+}
+
AliAnalysisTaskJets::AliAnalysisTaskJets(const char* name):
AliAnalysisTask(name, "AnalysisTaskJets"),
fDebug(0),
fJetFinder(0x0),
fChain(0x0),
- fESD(0x0)
+ fESD(0x0),
+ fTreeJ(0x0)
{
// Default constructor
DefineInput (0, TChain::Class());
- DefineOutput(0, TH1::Class());
+ DefineOutput(0, TTree::Class());
}
-void AliAnalysisTaskJets::ConnectInputData(Option_t */*option*/)
+void AliAnalysisTaskJets::CreateOutputObjects()
{
-// Initialisation
-//
- if (fDebug > 1) printf("AnalysisJets::Init() \n");
+// Create the output container
+ fTreeJ = fJetFinder->MakeTreeJ("TreeJ");
+}
+
+void AliAnalysisTaskJets::Init()
+{
+ // Initialization
+ if (fDebug > 1) printf("AnalysisTaskJets::Init() \n");
// Call configuration file
gROOT->LoadMacro("ConfigJetAnalysis.C");
fJetFinder = (AliJetFinder*) gInterpreter->ProcessLine("ConfigJetAnalysis()");
// Initialise Jet Analysis
fJetFinder->Init();
+}
+
+void AliAnalysisTaskJets::ConnectInputData(Option_t */*option*/)
+{
+// Connect the input data
+//
+ if (fDebug > 1) printf("AnalysisTaskJets::ConnectInputData() \n");
+ char ** address = (char **)GetBranchAddress(0, "ESD");
+
+ if (address) {
+ fESD = (AliESD*)(*address);
+ }
+ else {
+ fESD = new AliESD();
+ SetBranchAddress(0, "ESD", &fESD); // first task taking the branch enables it
+ }
fChain = (TChain*)GetInputData(0);
- fJetFinder->ConnectTree(fChain);
+ fJetFinder->ConnectTree(fChain, fESD);
fJetFinder->WriteHeaders();
}
// Execute analysis for current event
//
Long64_t ientry = fChain->GetReadEntry();
- if (fDebug > 1) printf("Analysing event # %5d \n", (Int_t) ientry);
-
+ if (fDebug > 1) printf("Analysing event # %5d \n", (Int_t) ientry);
fJetFinder->ProcessEvent(ientry);
+ PostData(0, fTreeJ);
}
void AliAnalysisTaskJets::Terminate(Option_t */*option*/)
{
// Terminate analysis
//
- printf("AnalysisJets: Terminate() \n");
+ if (fDebug > 1) printf("AnalysisJets: Terminate() \n");
+
if (fJetFinder) fJetFinder->FinishRun();
}