#include "AliAODEvent.h"
#include "AliAODJetEventBackground.h"
#include "AliAODHandler.h"
+#include "AliAODExtension.h"
#include "AliMCEventHandler.h"
#include "AliESDInputHandler.h"
#include "AliMCEvent.h"
fChain(0x0),
fOpt(0),
fReadAODFromOutput(0),
+ fUseAODBackground(kFALSE),
fFilterPt(0.)
{
// Default constructor
fChain(0x0),
fOpt(0),
fReadAODFromOutput(0),
+ fUseAODBackground(kFALSE),
fFilterPt(0.)
{
// Default constructor
fChain(chain),
fOpt(0),
fReadAODFromOutput(0),
+ fUseAODBackground(kFALSE),
fFilterPt(0.)
{
// Default constructor
//
if (fDebug > 1) printf("AnalysisTaskJets::CreateOutPutData() \n");
+ AliJetHeader *fH = fJetFinder->GetHeader();
+
if(fNonStdBranch.Length()==0)
{
// Connec default AOD to jet finder
// create a new branch for the background
- if(!AODEvent()->FindListObject(AliAODJetEventBackground::StdBranchName())){
- AliAODJetEventBackground* evBkg = new AliAODJetEventBackground();
- evBkg->SetName(AliAODJetEventBackground::StdBranchName());
- AddAODBranch("AliAODJetEventBackground",&evBkg);
+
+ if(fUseAODBackground){
+ if(!AODEvent()->FindListObject(AliAODJetEventBackground::StdBranchName())){
+ AliAODJetEventBackground* evBkg = new AliAODJetEventBackground();
+ evBkg->SetName(AliAODJetEventBackground::StdBranchName());
+ AddAODBranch("AliAODJetEventBackground",&evBkg);
+ }
}
fJetFinder->ConnectAOD(AODEvent());
}
TClonesArray *tca = new TClonesArray("AliAODJet", 0);
tca->SetName(fNonStdBranch.Data());
AddAODBranch("TClonesArray",&tca,fNonStdFile.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());
+ if(fUseAODBackground){
+ 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());
+ }
}
-
if(fNonStdFile.Length()!=0){
//
// case that we have an AOD extension we need to fetch the jets from the extended output
// Histograms
fListOfHistos = new TList();
+ fListOfHistos->SetOwner();
fHistos = new AliJetHistos();
fHistos->AddHistosToList(fListOfHistos);
// Add the JetFinderInformation to the Outputlist
- AliJetHeader *fH = fJetFinder->GetHeader();
// Compose a characteristic output name
// with the name of the output branch
if(!fAODExtension)OutputTree()->GetUserInfo()->Add(fH);
else fAODExtension->GetTree()->GetUserInfo()->Add(fH);
+
+ // post
+ PostData(1, fListOfHistos);
+
}
//----------------------------------------------------------------
AliJetReaderHeader *header = (AliJetReaderHeader*)fJetFinder->GetReader()->GetReaderHeader();
fOpt = header->GetDetector();
+// AODB path for Jetan Analysis... if not alread defined, use the standard one
+if ((!(((AliJetReader*) fJetFinder->GetReader())->GetJetanOADBPath()).Length())) {
+((AliJetReader*) fJetFinder->GetReader())->SetJetanOADBPath(AliAnalysisManager::GetOADBPath());
+}
+else Info( "Init"," OADBPath for Jetan was already defined (config file?) as %s",(char*)((fJetFinder->GetReader()->GetJetanOADBPath()).Data()));
+
// Initialise Jet Analysis
if(fOpt == 0) fJetFinder->Init();
else fJetFinder->InitTask(fChain); // V2
if(fNonStdBranch.Length()==0) {
jarray = AODEvent()->GetJets();
- evBkg = (AliAODJetEventBackground*)(AODEvent()->FindListObject(AliAODJetEventBackground::StdBranchName()));
- evBkg->Reset();
+ if(fUseAODBackground){
+ evBkg = (AliAODJetEventBackground*)(AODEvent()->FindListObject(AliAODJetEventBackground::StdBranchName()));
+ evBkg->Reset();
+ }
}
else {
if(AODEvent())jarray = (TClonesArray*)(AODEvent()->FindListObject(fNonStdBranch.Data()));
if(!jarray)jarray = (TClonesArray*)(fAODExtension->GetAOD()->FindListObject(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())));
- if(evBkg)evBkg->Reset();
+ if(fUseAODBackground){
+ 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())));
+ if(evBkg)evBkg->Reset();
+ }
}
if (dynamic_cast<AliAODEvent*>(InputEvent()) != 0 && !fReadAODFromOutput) {
if(jarray)fHistos->FillHistos(jarray);
- if(aodH&&fFilterPt>0){
+ if(jarray&&aodH&&fFilterPt>0){
if(jarray->GetEntries()>0){
AliAODJet *jet = (AliAODJet*)jarray->At(0);
if(jet->Pt()>fFilterPt){