#include "AliESDInputHandler.h"
#include "AliESDEvent.h"
+#include "AliESDfriend.h"
+#include "AliVCuts.h"
#include "AliESD.h"
#include "AliRunTag.h"
#include "AliEventTag.h"
AliESDInputHandler::AliESDInputHandler() :
AliInputEventHandler(),
fEvent(0x0),
+ fFriend(0x0),
+ fESDpid(0x0),
fAnalysisType(0),
fNEvents(0),
fHLTEvent(0x0),
fUseTags(kFALSE),
fChainT(0),
fTreeT(0),
- fRunTag(0)
+ fRunTag(0),
+ fReadFriends(1),
+ fFriendFileName("AliESDfriends.root")
{
// default constructor
}
//______________________________________________________________________________
AliESDInputHandler::AliESDInputHandler(const char* name, const char* title):
- AliInputEventHandler(name, title), fEvent(0x0), fAnalysisType(0),
- fNEvents(0), fHLTEvent(0x0), fHLTTree(0x0), fUseHLT(kFALSE), fTagCutSumm(0x0), fUseTags(kFALSE), fChainT(0), fTreeT(0), fRunTag(0)
+ AliInputEventHandler(name, title), fEvent(0x0), fFriend(0x0), fESDpid(0x0), fAnalysisType(0),
+ fNEvents(0), fHLTEvent(0x0), fHLTTree(0x0), fUseHLT(kFALSE), fTagCutSumm(0x0), fUseTags(kFALSE), fChainT(0), fTreeT(0), fRunTag(0), fReadFriends(1), fFriendFileName("AliESDfriends.root")
{
// Constructor
}
SwitchOffBranches();
SwitchOnBranches();
+ if (!fTree->FindBranch("ESDfriend.") && fReadFriends) {
+ // Try to add ESDfriend. branch as friend
+ TString esdTreeFName, esdFriendTreeFName;
+ TTree* theTree = fTree->GetTree();
+ if (!theTree) theTree = tree;
+ esdTreeFName = (theTree->GetCurrentFile())->GetName();
+ esdFriendTreeFName = esdTreeFName;
+ esdFriendTreeFName.ReplaceAll("AliESDs.root", fFriendFileName.Data());
+ theTree->AddFriend("esdFriendTree", esdFriendTreeFName.Data());
+ }
+
if (!fEvent) fEvent = new AliESDEvent();
fEvent->ReadFromTree(fTree);
fNEvents = fTree->GetEntries();
-
-
+ fFriend = (AliESDfriend*)(fEvent->FindListObject("AliESDfriend"));
return kTRUE;
}
Bool_t AliESDInputHandler::BeginEvent(Long64_t entry)
{
+
// Copy from old to new format if necessary
AliESD* old = ((AliESDEvent*) fEvent)->GetAliESDOld();
if (old) {
fHLTTree->GetEntry(entry);
}
+ fNewEvent = kTRUE;
+ //
+ // Event selection
+ //
+ if (fEventCuts)
+ fIsSelected = fEventCuts->IsSelected((AliESDEvent*)fEvent);
+ //
+ // Friends
+ ((AliESDEvent*)fEvent)->SetESDfriend(fFriend);
+
return kTRUE;
}