void SwitchOnBranches() const;
AliESDInputHandler(const AliESDInputHandler& handler);
AliESDInputHandler& operator=(const AliESDInputHandler& handler);
- private:
+ protected:
// ESD event
AliESDEvent *fEvent; //! Pointer to the event
TString fBranches; // List of branches to be switched off (separated by space)
TString fBranchesOn; // List of branches to be switched on (separated by space)
Option_t *fAnalysisType; //! local, proof, grid
+ Int_t fNEvents; //! Number of events in the current tree
// ESD Tags (optional)
Bool_t fUseTags; // Flag to use tags
fDetectors(new TList()),
fDirR(0),
fEventNumber(-1),
- fNEvent(-1),
fFileNumber(0),
fEventsPerFile(0),
fExtension(""),
fDetectors(new TList()),
fDirR(0),
fEventNumber(-1),
- fNEvent(-1),
fFileNumber(0),
fEventsPerFile(0),
fExtension(""),
if (!file) AliFatal(Form("AliESDInputHandlerRP: %s.RecPoints.root not found in %s ! \n", det->GetName(), fPathName->Data()));
fRFiles->Add(file);
}
+
if (file) {
fEventsPerFile = file->GetNkeys() - file->GetNProcessIDs();
} else {
AliFatal(Form("AliESDInputHandlerRP: No file with RecPoints found in %s ! \n", fPathName->Data()));
}
-
+
// Reset the event number
fEventNumber = -1;
fFileNumber = 0;
// Get number of events from esd tree
- fNEvent = fTree->GetEntries();
-
- printf("AliESDInputHandler::Init() %d\n",__LINE__);
+ printf("AliESDInputHandler::Init() %d %d\n",__LINE__, fNEvents);
return kTRUE;
}
fEventNumber = entry;
}
- if (entry >= fNEvent) {
- AliWarning(Form("AliESDInputHandlerRP: Event number out of range %5d %5d\n", entry, fNEvent));
+ if (entry >= fNEvents) {
+ AliWarning(Form("AliESDInputHandlerRP: Event number out of range %5d %5d\n", entry, fNEvents));
return kFALSE;
}
return LoadEvent(entry);
char folder[20];
sprintf(folder, "Event%d", iev);
// Tree R
- fRTrees->Clear();
-
TIter next(fRFiles);
TFile* file;
+ Int_t idx = 0;
while ((file = (TFile*) next()))
{
file->GetObject(folder, fDirR);
AliWarning(Form("AliESDInputHandlerRP: Event #%5d not found\n", iev));
return kFALSE;
}
- TTree* tree;
+ TTree* tree = 0;
fDirR ->GetObject("TreeR", tree);
- fRTrees->Add(tree);
+ fRTrees->AddAt(tree, idx++);
}
return kTRUE;
}
TIter next(members);
TFile* entry;
Int_t ien = 0;
+ fRTrees->Clear();
+
while ( (entry = (TFile*) next()) )
{
printf("File %s \n", entry->GetName());
fDetectors->Add(ent);
}
} // loop over files
-
+
// Now we have the path and the list of detectors
InitIO("");
// Some clean-up
members->Delete();
- //
+
return kTRUE;
}
void AliESDInputHandlerRP::ResetIO()
{
// Delete trees and files
- fRTrees->Delete();
- fRFiles->Delete();
+// fRTrees->Clear();
+ fRFiles->Clear();
fExtension="";
}
TList* fDetectors; // List of detector names
TDirectoryFile *fDirR; //! Directory for RP Tree
Int_t fEventNumber; //! Current event number
- Int_t fNEvent; //! Number of events in current directory
Int_t fFileNumber; //! Input file number
Int_t fEventsPerFile; //! Number of events per file
const Char_t *fExtension; //! File name extension