AliInputEventHandler(),
fEvent(0x0),
fFriend(0x0),
+ fESDpid(0x0),
fAnalysisType(0),
fNEvents(0),
fHLTEvent(0x0),
fUseTags(kFALSE),
fChainT(0),
fTreeT(0),
- fRunTag(0)
+ fRunTag(0),
+ fReadFriends(0),
+ fFriendFileName("AliESDfriends.root")
{
// default constructor
}
AliESDInputHandler::~AliESDInputHandler()
{
// destructor
- // delete fEvent;
}
//______________________________________________________________________________
AliESDInputHandler::AliESDInputHandler(const char* name, const char* title):
- AliInputEventHandler(name, title), fEvent(0x0), fFriend(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(0), fFriendFileName("AliESDfriends.root")
{
// Constructor
}
Bool_t AliESDInputHandler::Init(TTree* tree, Option_t* opt)
{
+ //
// Initialisation necessary for each new tree
+ //
fAnalysisType = opt;
fTree = tree;
if (!fTree) return kFALSE;
fTree->GetEntry(0);
- // Get pointer to ESD event
- SwitchOffBranches();
- SwitchOnBranches();
-
+
if (!fEvent) fEvent = new AliESDEvent();
fEvent->ReadFromTree(fTree);
fNEvents = fTree->GetEntries();
- fFriend = (AliESDfriend*)(fEvent->FindListObject("AliESDfriend"));
return kTRUE;
}
//
// Friends
((AliESDEvent*)fEvent)->SetESDfriend(fFriend);
-
return kTRUE;
}
{
// Notify a directory change
AliInfo(Form("Directory change %s \n", path));
+ //
+ // Handle the friends first
+ //
+ if (!fTree->FindBranch("ESDfriend.") && fReadFriends) {
+ // Try to add ESDfriend. branch as friend
+ TString esdTreeFName, esdFriendTreeFName;
+ esdTreeFName = (fTree->GetCurrentFile())->GetName();
+ esdFriendTreeFName = esdTreeFName;
+ esdFriendTreeFName.ReplaceAll("AliESDs.root", fFriendFileName.Data());
+
+ TTree* cTree = fTree->GetTree();
+ if (!cTree) cTree = fTree;
+
+ cTree->AddFriend("esdFriendTree", esdFriendTreeFName.Data());
+ cTree->SetBranchStatus("ESDfriend.", 1);
+ fFriend = (AliESDfriend*)(fEvent->FindListObject("AliESDfriend"));
+ cTree->SetBranchAddress("ESDfriend.", &fFriend);
+ }
+ //
+ //
+ SwitchOffBranches();
+ SwitchOnBranches();
+ fFriend = (AliESDfriend*)(fEvent->FindListObject("AliESDfriend"));
+
+
//
if (fUseHLT) {
// Get HLTesdTree from current file
}
}
+
+
+
if (!fUseTags) return (kTRUE);
Bool_t zip = kFALSE;