#include <TTree.h>
#include <TChain.h>
#include <TFile.h>
#include <TArchiveFile.h>
#include <TObjArray.h>
#include <TSystem.h>
#include <TString.h>
#include <TObjString.h>
#include <TProcessID.h>
#include <TMap.h>
#include "AliESDInputHandler.h"
#include "AliESDEvent.h"
#include "AliESDfriend.h"
#include "AliVCuts.h"
#include "AliESD.h"
#include "AliRunTag.h"
#include "AliEventTag.h"
#include "AliLog.h"
#include "AliESDpid.h"
ClassImp(AliESDInputHandler)
static Option_t *gESDDataType = "ESD";
AliESDInputHandler::AliESDInputHandler() :
AliInputEventHandler(),
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),
fEventTag(0),
fReadFriends(0),
fFriendFileName("AliESDfriends.root")
{
}
AliESDInputHandler::~AliESDInputHandler()
{
if (fRunTag) delete fRunTag;
delete fESDpid;
}
AliESDInputHandler::AliESDInputHandler(const char* name, const char* title):
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), fEventTag(0), fReadFriends(0), fFriendFileName("AliESDfriends.root")
{
}
Bool_t AliESDInputHandler::Init(TTree* tree, Option_t* opt)
{
fAnalysisType = opt;
fTree = tree;
if (!fTree) return kFALSE;
if (!fEvent) fEvent = new AliESDEvent();
fEvent->ReadFromTree(fTree);
fNEvents = fTree->GetEntries();
if (fReadFriends) ConnectFriends();
if (fMixingHandler) fMixingHandler->Init(tree, opt);
return kTRUE;
}
Bool_t AliESDInputHandler::BeginEvent(Long64_t entry)
{
static Bool_t called = kFALSE;
if (!called && fEventCuts && IsUserCallSelectionMask())
AliInfo(Form("The ESD input handler expects that the first task calls AliESDInputHandler::CheckSelectionMask() %s", fEventCuts->ClassName()));
AliESD* old = ((AliESDEvent*) fEvent)->GetAliESDOld();
if (old) {
((AliESDEvent*)fEvent)->CopyFromOldESD();
old->Reset();
}
if (fHLTTree) {
fHLTTree->GetEntry(entry);
}
fNewEvent = kTRUE;
static Int_t prevRunNumber = -1;
if (prevRunNumber != fEvent->GetRunNumber() && NeedField()) {
fEvent->InitMagneticField();
prevRunNumber = fEvent->GetRunNumber();
}
fIsSelectedResult = 0;
if (fEventCuts && !IsUserCallSelectionMask())
fIsSelectedResult = fEventCuts->GetSelectionMask((AliESDEvent*)fEvent);
((AliESDEvent*)fEvent)->SetESDfriend(fFriend);
called = kTRUE;
fEvent->ConnectTracks();
if (fMixingHandler) fMixingHandler->BeginEvent(entry);
if (fUseTags && fRunTag) {
fEventTag = 0;
if (entry >= fRunTag->GetNEvents()) {
AliError(Form("Current event %d does not match max range from run tag: 0-%d", (Int_t)entry, fRunTag->GetNEvents()));
return kTRUE;
}
fEventTag = fRunTag->GetEventTag(entry);
}
return kTRUE;
}
void AliESDInputHandler::CheckSelectionMask()
{
if (!fEventCuts || !IsUserCallSelectionMask()) return;
fIsSelectedResult = fEventCuts->GetSelectionMask((AliESDEvent*)fEvent);
}
void AliESDInputHandler::ConnectFriends()
{
TTree* cTree = fTree->GetTree();
if (!cTree) cTree = fTree;
if (!cTree->FindBranch("ESDfriend.")) {
TString esdFriendTreeFName;
esdFriendTreeFName = (fTree->GetCurrentFile())->GetName();
TString basename = gSystem->BaseName(esdFriendTreeFName);
Int_t index = basename.Index("#")+1;
basename.Remove(index);
basename += fFriendFileName;
TString dirname = gSystem->DirName(esdFriendTreeFName);
dirname += "/";
esdFriendTreeFName = dirname + basename;
cTree->AddFriend("esdFriendTree", esdFriendTreeFName.Data());
cTree->SetBranchStatus("ESDfriend.", 1);
fFriend = fEvent->FindFriend();
if (fFriend) cTree->SetBranchAddress("ESDfriend.", &fFriend);
}
}
Bool_t AliESDInputHandler::FinishEvent()
{
if(fEvent)fEvent->Reset();
if (fFriend) fFriend->Reset();
if (fMixingHandler) fMixingHandler->FinishEvent();
return kTRUE;
}
Bool_t AliESDInputHandler::Notify(const char* path)
{
static Bool_t firsttime = kFALSE;
AliInfo(Form("Directory change %s \n", path));
if (fReadFriends) ConnectFriends();
SwitchOffBranches();
SwitchOnBranches();
fFriend = (AliESDfriend*)(fEvent->FindListObject("AliESDfriend"));
fUserInfo=fTree->GetTree()->GetUserInfo();
if (fUseHLT) {
TTree* cTree = fTree;
if (fTree->GetTree()) cTree = fTree->GetTree();
TFile* cFile = cTree->GetCurrentFile();
cFile->GetObject("HLTesdTree", fHLTTree);
if (fHLTTree) {
if (!fHLTEvent) fHLTEvent = new AliESDEvent();
fHLTEvent->ReadFromTree(fHLTTree);
}
}
if (!fUseTags) {
if (fMixingHandler) fMixingHandler->Notify(path);
return kTRUE;
}
Bool_t zip = kFALSE;
TString pathName(path);
Int_t index = pathName.Index("#");
if (index>=0) {
zip = kTRUE;
pathName = pathName(0,index);
} else {
pathName = gSystem->DirName(pathName);
}
if (fTree->GetCurrentFile()->GetArchive()) zip = kTRUE;
if (pathName.IsNull()) pathName = "./";
printf("AliESDInputHandler::Notify() Path: %s\n", pathName.Data());
if (fRunTag) {
fRunTag->Clear();
} else {
fRunTag = new AliRunTag();
}
const char* tagPattern = "ESD.tag.root";
TString sname;
TString tagFilename;
if (zip) {
TObjArray* arr = fTree->GetCurrentFile()->GetArchive()->GetMembers();
TIter next(arr);
TObject *objarchive;
while ((objarchive = next())) {
sname = objarchive->GetName();
if (sname.Contains(tagPattern)) {
tagFilename = pathName;
if (index>=0) tagFilename += "#";
else tagFilename += "/";
tagFilename += sname;
AliInfo(Form("Tag file found: %s\n", tagFilename.Data()));
break;
}
}
} else {
void * dirp = gSystem->OpenDirectory(pathName.Data());
while(1) {
sname = gSystem->GetDirEntry(dirp);
if (sname.IsNull()) break;
if (sname.Contains(tagPattern)) {
tagFilename = pathName;
tagFilename += "/";
tagFilename += sname;
AliInfo(Form("Tag file found: %s\n", tagFilename.Data()));
break;
}
}
gSystem->FreeDirectory(dirp);
}
if (tagFilename.IsNull()) {
if (firsttime) AliWarning(Form("Tag file not found in directory: %s", pathName.Data()));
firsttime = kFALSE;
delete fRunTag; fRunTag = 0;
return kTRUE;
}
TFile *tagfile = TFile::Open(tagFilename);
if (!tagfile) {
AliError(Form("Cannot open tag file: %s", tagFilename.Data()));
delete fRunTag; fRunTag = 0;
return kTRUE;
}
fTreeT = (TTree*)tagfile->Get("T");
if (!fTreeT) {
AliError(Form("Cannot get tree of tags from file: %s", tagFilename.Data()));
delete fRunTag; fRunTag = 0;
return kTRUE;
}
fTreeT->SetBranchAddress("AliTAG",&fRunTag);
fTreeT->GetEntry(0);
delete tagfile;
if (fMixingHandler) fMixingHandler->Notify(path);
return kTRUE;
}
Option_t *AliESDInputHandler::GetDataType() const
{
return gESDDataType;
}
Int_t AliESDInputHandler::GetNEventAcceptedInFile()
{
if (!fTagCutSumm) {
TList *luo = fTree->GetUserInfo();
if (!luo) {
AliInfo(Form("No user info in input tree - no tag cut summary\n"));
return -1;
}
for (int iluo=0; iluo<luo->GetEntries(); iluo++) {
fTagCutSumm = dynamic_cast<TMap *>(luo->At(iluo));
if (fTagCutSumm) break;
}
if (!fTagCutSumm) {
AliInfo(Form("No tag summary map in input tree\n"));
return -1;
}
}
TObjString *ostr = 0;
if (fTagCutSumm->FindObject(fTree->GetCurrentFile()->GetName()))
ostr = (TObjString *) fTagCutSumm->GetValue(fTree->GetCurrentFile()->GetName());
else {
AliInfo(Form("No tag cut summary for file %s\n", fTree->GetCurrentFile()->GetName()));
return -1;
}
char *iTagInfo;
iTagInfo = strdup(ostr->GetString().Data());
Int_t iAcc = atoi(strtok(iTagInfo, ","));
AliInfo(Form("Got %i accepted events for file %s", iAcc, fTree->GetCurrentFile()->GetName()));
free(iTagInfo);
return iAcc;
}
Int_t AliESDInputHandler::GetNEventRejectedInFile()
{
if (!fTagCutSumm) {
TList *luo = fTree->GetUserInfo();
if (!luo) {
AliInfo(Form("No user info in input tree - no tag cut summary\n"));
return -1;
}
for (int iluo=0; iluo<luo->GetEntries(); iluo++) {
fTagCutSumm = dynamic_cast<TMap *>(luo->At(iluo));
if (fTagCutSumm) break;
}
if (!fTagCutSumm) {
AliInfo(Form("No tag summary map in input tree\n"));
return -1;
}
}
TObjString *ostr = 0;
if (fTagCutSumm->FindObject(fTree->GetCurrentFile()->GetName()))
ostr = (TObjString *) fTagCutSumm->GetValue(fTree->GetCurrentFile()->GetName());
else {
AliInfo(Form("No tag cut summary for file %s\n", fTree->GetCurrentFile()->GetName()));
return -1;
}
char *iTagInfo;
iTagInfo = strdup(ostr->GetString().Data());
strtok(iTagInfo, ",");
Int_t iRej = atoi(strtok(NULL, ","));
AliInfo(Form("Got %i accepted events for file %s", iRej, fTree->GetCurrentFile()->GetName()));
free(iTagInfo);
return iRej;
}
Bool_t AliESDInputHandler::GetCutSummaryForChain(Int_t *aTotal, Int_t *aAccepted, Int_t *aRejected)
{
if (!fTagCutSumm) {
TList *luo = fTree->GetUserInfo();
if (!luo) {
AliInfo(Form("No user info in input tree - no tag cut summary\n"));
return kFALSE;
}
for (int iluo=0; iluo<luo->GetEntries(); iluo++) {
fTagCutSumm = dynamic_cast<TMap *>(luo->At(iluo));
if (fTagCutSumm) break;
}
if (!fTagCutSumm) {
AliInfo(Form("No tag summary map in input tree\n"));
return kFALSE;
}
}
TMapIter *tIter = new TMapIter(fTagCutSumm);
Int_t iTotList=0, iAccList=0, iRejList=0;
TObject *cobj;
while ((cobj = tIter->Next())) {
TObjString *kstr = (TObjString *) cobj;
TObjString *vstr = (TObjString *) fTagCutSumm->GetValue(kstr->GetString().Data());
char *iTagInfo;
iTagInfo = strdup(vstr->GetString().Data());
Int_t iAcc = atoi(strtok(iTagInfo, ","));
Int_t iRej = atoi(strtok(NULL, ","));
free(iTagInfo);
iAccList += iAcc;
iRejList += iRej;
iTotList += (iAcc+iRej);
}
*aTotal = iTotList;
*aAccepted = iAccList;
*aRejected = iRejList;
return kTRUE;
}
Int_t AliESDInputHandler::GetNFilesEmpty()
{
if (!fTagCutSumm) {
TList *luo = fTree->GetUserInfo();
if (!luo) {
AliInfo(Form("No user info in input tree - no tag cut summary\n"));
return -1;
}
for (int iluo=0; iluo<luo->GetEntries(); iluo++) {
fTagCutSumm = dynamic_cast<TMap *>(luo->At(iluo));
if (fTagCutSumm) break;
}
if (!fTagCutSumm) {
AliInfo(Form("No tag summary map in input tree\n"));
return -1;
}
}
TMapIter *tIter = new TMapIter(fTagCutSumm);
Int_t iFilesEmpty = 0;
TObject *cobj;
while ((cobj = tIter->Next())) {
TObjString *kstr = (TObjString *) cobj;
TObjString *vstr = (TObjString *) fTagCutSumm->GetValue(kstr->GetString().Data());
char *iTagInfo;
iTagInfo = strdup(vstr->GetString().Data());
Int_t iAcc = atoi(strtok(iTagInfo, ","));
Int_t iRej = atoi(strtok(NULL, ","));
free(iTagInfo);
if ((iAcc == 0) && ((iRej+iAcc)>0))
iFilesEmpty++;
}
return iFilesEmpty;
}
TObject *AliESDInputHandler::GetStatistics(Option_t *option) const
{
if (!fEventCuts) return NULL;
TString opt(option);
opt.ToUpper();
if (opt=="BIN0") return fEventCuts->GetStatistics("BIN0");
else return fEventCuts->GetStatistics("ALL");
}
void AliESDInputHandler::CreatePIDResponse(Bool_t isMC)
{
if (fESDpid) return;
fESDpid=new AliESDpid(isMC);
}
AliESDInputHandler.cxx:10 AliESDInputHandler.cxx:11 AliESDInputHandler.cxx:12 AliESDInputHandler.cxx:13 AliESDInputHandler.cxx:14 AliESDInputHandler.cxx:15 AliESDInputHandler.cxx:16 AliESDInputHandler.cxx:17 AliESDInputHandler.cxx:18 AliESDInputHandler.cxx:19 AliESDInputHandler.cxx:20 AliESDInputHandler.cxx:21 AliESDInputHandler.cxx:22 AliESDInputHandler.cxx:23 AliESDInputHandler.cxx:24 AliESDInputHandler.cxx:25 AliESDInputHandler.cxx:26 AliESDInputHandler.cxx:27 AliESDInputHandler.cxx:28 AliESDInputHandler.cxx:29 AliESDInputHandler.cxx:30 AliESDInputHandler.cxx:31 AliESDInputHandler.cxx:32 AliESDInputHandler.cxx:33 AliESDInputHandler.cxx:34 AliESDInputHandler.cxx:35 AliESDInputHandler.cxx:36 AliESDInputHandler.cxx:37 AliESDInputHandler.cxx:38 AliESDInputHandler.cxx:39 AliESDInputHandler.cxx:40 AliESDInputHandler.cxx:41 AliESDInputHandler.cxx:42 AliESDInputHandler.cxx:43 AliESDInputHandler.cxx:44 AliESDInputHandler.cxx:45 AliESDInputHandler.cxx:46 AliESDInputHandler.cxx:47 AliESDInputHandler.cxx:48 AliESDInputHandler.cxx:49 AliESDInputHandler.cxx:50 AliESDInputHandler.cxx:51 AliESDInputHandler.cxx:52 AliESDInputHandler.cxx:53 AliESDInputHandler.cxx:54 AliESDInputHandler.cxx:55 AliESDInputHandler.cxx:56 AliESDInputHandler.cxx:57 AliESDInputHandler.cxx:58 AliESDInputHandler.cxx:59 AliESDInputHandler.cxx:60 AliESDInputHandler.cxx:61 AliESDInputHandler.cxx:62 AliESDInputHandler.cxx:63 AliESDInputHandler.cxx:64 AliESDInputHandler.cxx:65 AliESDInputHandler.cxx:66 AliESDInputHandler.cxx:67 AliESDInputHandler.cxx:68 AliESDInputHandler.cxx:69 AliESDInputHandler.cxx:70 AliESDInputHandler.cxx:71 AliESDInputHandler.cxx:72 AliESDInputHandler.cxx:73 AliESDInputHandler.cxx:74 AliESDInputHandler.cxx:75 AliESDInputHandler.cxx:76 AliESDInputHandler.cxx:77 AliESDInputHandler.cxx:78 AliESDInputHandler.cxx:79 AliESDInputHandler.cxx:80 AliESDInputHandler.cxx:81 AliESDInputHandler.cxx:82 AliESDInputHandler.cxx:83 AliESDInputHandler.cxx:84 AliESDInputHandler.cxx:85 AliESDInputHandler.cxx:86 AliESDInputHandler.cxx:87 AliESDInputHandler.cxx:88 AliESDInputHandler.cxx:89 AliESDInputHandler.cxx:90 AliESDInputHandler.cxx:91 AliESDInputHandler.cxx:92 AliESDInputHandler.cxx:93 AliESDInputHandler.cxx:94 AliESDInputHandler.cxx:95 AliESDInputHandler.cxx:96 AliESDInputHandler.cxx:97 AliESDInputHandler.cxx:98 AliESDInputHandler.cxx:99 AliESDInputHandler.cxx:100 AliESDInputHandler.cxx:101 AliESDInputHandler.cxx:102 AliESDInputHandler.cxx:103 AliESDInputHandler.cxx:104 AliESDInputHandler.cxx:105 AliESDInputHandler.cxx:106 AliESDInputHandler.cxx:107 AliESDInputHandler.cxx:108 AliESDInputHandler.cxx:109 AliESDInputHandler.cxx:110 AliESDInputHandler.cxx:111 AliESDInputHandler.cxx:112 AliESDInputHandler.cxx:113 AliESDInputHandler.cxx:114 AliESDInputHandler.cxx:115 AliESDInputHandler.cxx:116 AliESDInputHandler.cxx:117 AliESDInputHandler.cxx:118 AliESDInputHandler.cxx:119 AliESDInputHandler.cxx:120 AliESDInputHandler.cxx:121 AliESDInputHandler.cxx:122 AliESDInputHandler.cxx:123 AliESDInputHandler.cxx:124 AliESDInputHandler.cxx:125 AliESDInputHandler.cxx:126 AliESDInputHandler.cxx:127 AliESDInputHandler.cxx:128 AliESDInputHandler.cxx:129 AliESDInputHandler.cxx:130 AliESDInputHandler.cxx:131 AliESDInputHandler.cxx:132 AliESDInputHandler.cxx:133 AliESDInputHandler.cxx:134 AliESDInputHandler.cxx:135 AliESDInputHandler.cxx:136 AliESDInputHandler.cxx:137 AliESDInputHandler.cxx:138 AliESDInputHandler.cxx:139 AliESDInputHandler.cxx:140 AliESDInputHandler.cxx:141 AliESDInputHandler.cxx:142 AliESDInputHandler.cxx:143 AliESDInputHandler.cxx:144 AliESDInputHandler.cxx:145 AliESDInputHandler.cxx:146 AliESDInputHandler.cxx:147 AliESDInputHandler.cxx:148 AliESDInputHandler.cxx:149 AliESDInputHandler.cxx:150 AliESDInputHandler.cxx:151 AliESDInputHandler.cxx:152 AliESDInputHandler.cxx:153 AliESDInputHandler.cxx:154 AliESDInputHandler.cxx:155 AliESDInputHandler.cxx:156 AliESDInputHandler.cxx:157 AliESDInputHandler.cxx:158 AliESDInputHandler.cxx:159 AliESDInputHandler.cxx:160 AliESDInputHandler.cxx:161 AliESDInputHandler.cxx:162 AliESDInputHandler.cxx:163 AliESDInputHandler.cxx:164 AliESDInputHandler.cxx:165 AliESDInputHandler.cxx:166 AliESDInputHandler.cxx:167 AliESDInputHandler.cxx:168 AliESDInputHandler.cxx:169 AliESDInputHandler.cxx:170 AliESDInputHandler.cxx:171 AliESDInputHandler.cxx:172 AliESDInputHandler.cxx:173 AliESDInputHandler.cxx:174 AliESDInputHandler.cxx:175 AliESDInputHandler.cxx:176 AliESDInputHandler.cxx:177 AliESDInputHandler.cxx:178 AliESDInputHandler.cxx:179 AliESDInputHandler.cxx:180 AliESDInputHandler.cxx:181 AliESDInputHandler.cxx:182 AliESDInputHandler.cxx:183 AliESDInputHandler.cxx:184 AliESDInputHandler.cxx:185 AliESDInputHandler.cxx:186 AliESDInputHandler.cxx:187 AliESDInputHandler.cxx:188 AliESDInputHandler.cxx:189 AliESDInputHandler.cxx:190 AliESDInputHandler.cxx:191 AliESDInputHandler.cxx:192 AliESDInputHandler.cxx:193 AliESDInputHandler.cxx:194 AliESDInputHandler.cxx:195 AliESDInputHandler.cxx:196 AliESDInputHandler.cxx:197 AliESDInputHandler.cxx:198 AliESDInputHandler.cxx:199 AliESDInputHandler.cxx:200 AliESDInputHandler.cxx:201 AliESDInputHandler.cxx:202 AliESDInputHandler.cxx:203 AliESDInputHandler.cxx:204 AliESDInputHandler.cxx:205 AliESDInputHandler.cxx:206 AliESDInputHandler.cxx:207 AliESDInputHandler.cxx:208 AliESDInputHandler.cxx:209 AliESDInputHandler.cxx:210 AliESDInputHandler.cxx:211 AliESDInputHandler.cxx:212 AliESDInputHandler.cxx:213 AliESDInputHandler.cxx:214 AliESDInputHandler.cxx:215 AliESDInputHandler.cxx:216 AliESDInputHandler.cxx:217 AliESDInputHandler.cxx:218 AliESDInputHandler.cxx:219 AliESDInputHandler.cxx:220 AliESDInputHandler.cxx:221 AliESDInputHandler.cxx:222 AliESDInputHandler.cxx:223 AliESDInputHandler.cxx:224 AliESDInputHandler.cxx:225 AliESDInputHandler.cxx:226 AliESDInputHandler.cxx:227 AliESDInputHandler.cxx:228 AliESDInputHandler.cxx:229 AliESDInputHandler.cxx:230 AliESDInputHandler.cxx:231 AliESDInputHandler.cxx:232 AliESDInputHandler.cxx:233 AliESDInputHandler.cxx:234 AliESDInputHandler.cxx:235 AliESDInputHandler.cxx:236 AliESDInputHandler.cxx:237 AliESDInputHandler.cxx:238 AliESDInputHandler.cxx:239 AliESDInputHandler.cxx:240 AliESDInputHandler.cxx:241 AliESDInputHandler.cxx:242 AliESDInputHandler.cxx:243 AliESDInputHandler.cxx:244 AliESDInputHandler.cxx:245 AliESDInputHandler.cxx:246 AliESDInputHandler.cxx:247 AliESDInputHandler.cxx:248 AliESDInputHandler.cxx:249 AliESDInputHandler.cxx:250 AliESDInputHandler.cxx:251 AliESDInputHandler.cxx:252 AliESDInputHandler.cxx:253 AliESDInputHandler.cxx:254 AliESDInputHandler.cxx:255 AliESDInputHandler.cxx:256 AliESDInputHandler.cxx:257 AliESDInputHandler.cxx:258 AliESDInputHandler.cxx:259 AliESDInputHandler.cxx:260 AliESDInputHandler.cxx:261 AliESDInputHandler.cxx:262 AliESDInputHandler.cxx:263 AliESDInputHandler.cxx:264 AliESDInputHandler.cxx:265 AliESDInputHandler.cxx:266 AliESDInputHandler.cxx:267 AliESDInputHandler.cxx:268 AliESDInputHandler.cxx:269 AliESDInputHandler.cxx:270 AliESDInputHandler.cxx:271 AliESDInputHandler.cxx:272 AliESDInputHandler.cxx:273 AliESDInputHandler.cxx:274 AliESDInputHandler.cxx:275 AliESDInputHandler.cxx:276 AliESDInputHandler.cxx:277 AliESDInputHandler.cxx:278 AliESDInputHandler.cxx:279 AliESDInputHandler.cxx:280 AliESDInputHandler.cxx:281 AliESDInputHandler.cxx:282 AliESDInputHandler.cxx:283 AliESDInputHandler.cxx:284 AliESDInputHandler.cxx:285 AliESDInputHandler.cxx:286 AliESDInputHandler.cxx:287 AliESDInputHandler.cxx:288 AliESDInputHandler.cxx:289 AliESDInputHandler.cxx:290 AliESDInputHandler.cxx:291 AliESDInputHandler.cxx:292 AliESDInputHandler.cxx:293 AliESDInputHandler.cxx:294 AliESDInputHandler.cxx:295 AliESDInputHandler.cxx:296 AliESDInputHandler.cxx:297 AliESDInputHandler.cxx:298 AliESDInputHandler.cxx:299 AliESDInputHandler.cxx:300 AliESDInputHandler.cxx:301 AliESDInputHandler.cxx:302 AliESDInputHandler.cxx:303 AliESDInputHandler.cxx:304 AliESDInputHandler.cxx:305 AliESDInputHandler.cxx:306 AliESDInputHandler.cxx:307 AliESDInputHandler.cxx:308 AliESDInputHandler.cxx:309 AliESDInputHandler.cxx:310 AliESDInputHandler.cxx:311 AliESDInputHandler.cxx:312 AliESDInputHandler.cxx:313 AliESDInputHandler.cxx:314 AliESDInputHandler.cxx:315 AliESDInputHandler.cxx:316 AliESDInputHandler.cxx:317 AliESDInputHandler.cxx:318 AliESDInputHandler.cxx:319 AliESDInputHandler.cxx:320 AliESDInputHandler.cxx:321 AliESDInputHandler.cxx:322 AliESDInputHandler.cxx:323 AliESDInputHandler.cxx:324 AliESDInputHandler.cxx:325 AliESDInputHandler.cxx:326 AliESDInputHandler.cxx:327 AliESDInputHandler.cxx:328 AliESDInputHandler.cxx:329 AliESDInputHandler.cxx:330 AliESDInputHandler.cxx:331 AliESDInputHandler.cxx:332 AliESDInputHandler.cxx:333 AliESDInputHandler.cxx:334 AliESDInputHandler.cxx:335 AliESDInputHandler.cxx:336 AliESDInputHandler.cxx:337 AliESDInputHandler.cxx:338 AliESDInputHandler.cxx:339 AliESDInputHandler.cxx:340 AliESDInputHandler.cxx:341 AliESDInputHandler.cxx:342 AliESDInputHandler.cxx:343 AliESDInputHandler.cxx:344 AliESDInputHandler.cxx:345 AliESDInputHandler.cxx:346 AliESDInputHandler.cxx:347 AliESDInputHandler.cxx:348 AliESDInputHandler.cxx:349 AliESDInputHandler.cxx:350 AliESDInputHandler.cxx:351 AliESDInputHandler.cxx:352 AliESDInputHandler.cxx:353 AliESDInputHandler.cxx:354 AliESDInputHandler.cxx:355 AliESDInputHandler.cxx:356 AliESDInputHandler.cxx:357 AliESDInputHandler.cxx:358 AliESDInputHandler.cxx:359 AliESDInputHandler.cxx:360 AliESDInputHandler.cxx:361 AliESDInputHandler.cxx:362 AliESDInputHandler.cxx:363 AliESDInputHandler.cxx:364 AliESDInputHandler.cxx:365 AliESDInputHandler.cxx:366 AliESDInputHandler.cxx:367 AliESDInputHandler.cxx:368 AliESDInputHandler.cxx:369 AliESDInputHandler.cxx:370 AliESDInputHandler.cxx:371 AliESDInputHandler.cxx:372 AliESDInputHandler.cxx:373 AliESDInputHandler.cxx:374 AliESDInputHandler.cxx:375 AliESDInputHandler.cxx:376 AliESDInputHandler.cxx:377 AliESDInputHandler.cxx:378 AliESDInputHandler.cxx:379 AliESDInputHandler.cxx:380 AliESDInputHandler.cxx:381 AliESDInputHandler.cxx:382 AliESDInputHandler.cxx:383 AliESDInputHandler.cxx:384 AliESDInputHandler.cxx:385 AliESDInputHandler.cxx:386 AliESDInputHandler.cxx:387 AliESDInputHandler.cxx:388 AliESDInputHandler.cxx:389 AliESDInputHandler.cxx:390 AliESDInputHandler.cxx:391 AliESDInputHandler.cxx:392 AliESDInputHandler.cxx:393 AliESDInputHandler.cxx:394 AliESDInputHandler.cxx:395 AliESDInputHandler.cxx:396 AliESDInputHandler.cxx:397 AliESDInputHandler.cxx:398 AliESDInputHandler.cxx:399 AliESDInputHandler.cxx:400 AliESDInputHandler.cxx:401 AliESDInputHandler.cxx:402 AliESDInputHandler.cxx:403 AliESDInputHandler.cxx:404 AliESDInputHandler.cxx:405 AliESDInputHandler.cxx:406 AliESDInputHandler.cxx:407 AliESDInputHandler.cxx:408 AliESDInputHandler.cxx:409 AliESDInputHandler.cxx:410 AliESDInputHandler.cxx:411 AliESDInputHandler.cxx:412 AliESDInputHandler.cxx:413 AliESDInputHandler.cxx:414 AliESDInputHandler.cxx:415 AliESDInputHandler.cxx:416 AliESDInputHandler.cxx:417 AliESDInputHandler.cxx:418 AliESDInputHandler.cxx:419 AliESDInputHandler.cxx:420 AliESDInputHandler.cxx:421 AliESDInputHandler.cxx:422 AliESDInputHandler.cxx:423 AliESDInputHandler.cxx:424 AliESDInputHandler.cxx:425 AliESDInputHandler.cxx:426 AliESDInputHandler.cxx:427 AliESDInputHandler.cxx:428 AliESDInputHandler.cxx:429 AliESDInputHandler.cxx:430 AliESDInputHandler.cxx:431 AliESDInputHandler.cxx:432 AliESDInputHandler.cxx:433 AliESDInputHandler.cxx:434 AliESDInputHandler.cxx:435 AliESDInputHandler.cxx:436 AliESDInputHandler.cxx:437 AliESDInputHandler.cxx:438 AliESDInputHandler.cxx:439 AliESDInputHandler.cxx:440 AliESDInputHandler.cxx:441 AliESDInputHandler.cxx:442 AliESDInputHandler.cxx:443 AliESDInputHandler.cxx:444 AliESDInputHandler.cxx:445 AliESDInputHandler.cxx:446 AliESDInputHandler.cxx:447 AliESDInputHandler.cxx:448 AliESDInputHandler.cxx:449 AliESDInputHandler.cxx:450 AliESDInputHandler.cxx:451 AliESDInputHandler.cxx:452 AliESDInputHandler.cxx:453 AliESDInputHandler.cxx:454 AliESDInputHandler.cxx:455 AliESDInputHandler.cxx:456 AliESDInputHandler.cxx:457 AliESDInputHandler.cxx:458 AliESDInputHandler.cxx:459 AliESDInputHandler.cxx:460 AliESDInputHandler.cxx:461 AliESDInputHandler.cxx:462 AliESDInputHandler.cxx:463 AliESDInputHandler.cxx:464 AliESDInputHandler.cxx:465 AliESDInputHandler.cxx:466 AliESDInputHandler.cxx:467 AliESDInputHandler.cxx:468 AliESDInputHandler.cxx:469 AliESDInputHandler.cxx:470 AliESDInputHandler.cxx:471 AliESDInputHandler.cxx:472 AliESDInputHandler.cxx:473 AliESDInputHandler.cxx:474 AliESDInputHandler.cxx:475 AliESDInputHandler.cxx:476 AliESDInputHandler.cxx:477 AliESDInputHandler.cxx:478 AliESDInputHandler.cxx:479 AliESDInputHandler.cxx:480 AliESDInputHandler.cxx:481 AliESDInputHandler.cxx:482 AliESDInputHandler.cxx:483 AliESDInputHandler.cxx:484 AliESDInputHandler.cxx:485 AliESDInputHandler.cxx:486 AliESDInputHandler.cxx:487 AliESDInputHandler.cxx:488 AliESDInputHandler.cxx:489 AliESDInputHandler.cxx:490 AliESDInputHandler.cxx:491 AliESDInputHandler.cxx:492 AliESDInputHandler.cxx:493 AliESDInputHandler.cxx:494 AliESDInputHandler.cxx:495 AliESDInputHandler.cxx:496 AliESDInputHandler.cxx:497 AliESDInputHandler.cxx:498 AliESDInputHandler.cxx:499 AliESDInputHandler.cxx:500 AliESDInputHandler.cxx:501 AliESDInputHandler.cxx:502 AliESDInputHandler.cxx:503 AliESDInputHandler.cxx:504 AliESDInputHandler.cxx:505 AliESDInputHandler.cxx:506 AliESDInputHandler.cxx:507 AliESDInputHandler.cxx:508 AliESDInputHandler.cxx:509 AliESDInputHandler.cxx:510 AliESDInputHandler.cxx:511 AliESDInputHandler.cxx:512 AliESDInputHandler.cxx:513 AliESDInputHandler.cxx:514 AliESDInputHandler.cxx:515 AliESDInputHandler.cxx:516 AliESDInputHandler.cxx:517 AliESDInputHandler.cxx:518 AliESDInputHandler.cxx:519 AliESDInputHandler.cxx:520 AliESDInputHandler.cxx:521 AliESDInputHandler.cxx:522 AliESDInputHandler.cxx:523 AliESDInputHandler.cxx:524 AliESDInputHandler.cxx:525 AliESDInputHandler.cxx:526 AliESDInputHandler.cxx:527 AliESDInputHandler.cxx:528 AliESDInputHandler.cxx:529 AliESDInputHandler.cxx:530 AliESDInputHandler.cxx:531 AliESDInputHandler.cxx:532