#include <TChain.h>
#include <TFile.h>
#include <TList.h>
+#include <TH1.h>
#include "AliAnalysisTaskJets.h"
#include "AliAnalysisManager.h"
fAODExtension(0x0),
fListOfHistos(0x0),
fChain(0x0),
- fOpt(0)
+ fOpt(0),
+ fReadAODFromOutput(0)
{
// Default constructor
}
//
if (fDebug > 1) printf("AnalysisTaskJets::CreateOutPutData() \n");
- // we already have a non standard output, need not to book a new file...
- if (!IsStandardAOD())fNonStdFile = "";
-
if(fNonStdBranch.Length()==0)
{
// Connec default AOD to jet finder
TClonesArray *tca = new TClonesArray("AliAODJet", 0);
tca->SetName(fNonStdBranch.Data());
AddAODBranch("TClonesArray",&tca,fNonStdFile.Data());
- if(!AODEvent()->FindListObject(Form("%s_%s",AliAODJetEventBackground::StdBranchName(),fNonStdBranch.Data()))){
+ if(!AODEvent() || !AODEvent()->FindListObject(Form("%s_%s",AliAODJetEventBackground::StdBranchName(),fNonStdBranch.Data()))){
AliAODJetEventBackground* evBkg = new AliAODJetEventBackground();
evBkg->SetName(Form("%s_%s",AliAODJetEventBackground::StdBranchName(),fNonStdBranch.Data()));
AddAODBranch("AliAODJetEventBackground",&evBkg,fNonStdFile.Data());
}
}
+ // do not add the histograms in the directory
+ // all handled by the list
+ Bool_t oldStatus = TH1::AddDirectoryStatus();
+ TH1::AddDirectory(kFALSE);
+
// Histograms
- OpenFile(1);
fListOfHistos = new TList();
fHistos = new AliJetHistos();
fHistos->AddHistosToList(fListOfHistos);
fH->SetName(Form("AliJetHeader_%s",fNonStdBranch.Data()));
}
}
+
+ TH1::AddDirectory(oldStatus);
+
+
if(!fAODExtension)OutputTree()->GetUserInfo()->Add(fH);
else fAODExtension->GetTree()->GetUserInfo()->Add(fH);
}
//
// Fill control histos
TClonesArray* jarray = 0;
- AliAODJetEventBackground* evBkg;
+ AliAODJetEventBackground* evBkg = 0;
if(fNonStdBranch.Length()==0) {
jarray = AODEvent()->GetJets();
evBkg->Reset();
}
else {
- jarray = (TClonesArray*)(AODEvent()->FindListObject(fNonStdBranch.Data()));
+ if(AODEvent())jarray = (TClonesArray*)(AODEvent()->FindListObject(fNonStdBranch.Data()));
if(!jarray)jarray = (TClonesArray*)(fAODExtension->GetAOD()->FindListObject(fNonStdBranch.Data()));
- jarray->Delete(); // this is our responsibility, clear before filling again
- evBkg = (AliAODJetEventBackground*)(AODEvent()->FindListObject(Form("%s_%s",AliAODJetEventBackground::StdBranchName(),fNonStdBranch.Data())));
+ if(jarray)jarray->Delete(); // this is our responsibility, clear before filling again
+ if(AODEvent())evBkg = (AliAODJetEventBackground*)(AODEvent()->FindListObject(Form("%s_%s",AliAODJetEventBackground::StdBranchName(),fNonStdBranch.Data())));
if(!evBkg) evBkg = (AliAODJetEventBackground*)(fAODExtension->GetAOD()->FindListObject(Form("%s_%s",AliAODJetEventBackground::StdBranchName(),fNonStdBranch.Data())));
- evBkg->Reset();
+ if(evBkg)evBkg->Reset();
}
if (dynamic_cast<AliAODEvent*>(InputEvent()) != 0 && !fReadAODFromOutput) {
else fJetFinder->ProcessEvent2(); // V2
// Fill control histos
- fHistos->FillHistos(jarray);
+ if(jarray)fHistos->FillHistos(jarray);
// Post the data
PostData(1, fListOfHistos);