fIndex(0),
fCurrentBin(0),
fEventPool(0),
- fEventBuffer(new AliVEvent*[size])
+ fEventBuffer(0)
{
- // Default constructor
- for (Int_t i = 0; i < size; i++)
- if (fFormat == 1) {
- fEventBuffer[i] = new AliAODEvent();
- } else if (fFormat == 0) {
- fEventBuffer[i] = new AliESDEvent();
- } else{
- AliWarning(Form("Unknown Format %5d", fFormat));
- }
+ // constructor
}
//______________________________________________________________________________
fIndex(0),
fCurrentBin(0),
fEventPool(0),
- fEventBuffer(new AliVEvent*[size])
+ fEventBuffer(0)
{
// Constructor
- for (Int_t i = 0; i < size; i++)
- if (fFormat == 1) {
- fEventBuffer[i] = new AliAODEvent();
- } else if (fFormat == 0) {
- fEventBuffer[i] = new AliESDEvent();
- } else{
- AliWarning(Form("Unknown Format %5d", fFormat));
- }
+
}
//______________________________________________________________________________
Bool_t AliMultiEventInputHandler::Init(TTree* tree, Option_t* /*opt*/)
{
// Initialisation necessary for each new tree
- fTree = tree;
- fTree->GetEntry(0);
+ if (!fEventBuffer) {
+ fEventBuffer = new AliVEvent*[fBufferSize];
+
+ for (Int_t i = 0; i < fBufferSize; i++)
+ if (fFormat == 1) {
+ fEventBuffer[i] = new AliAODEvent();
+ } else if (fFormat == 0) {
+ fEventBuffer[i] = new AliESDEvent();
+ } else{
+ AliWarning(Form("Unknown Format %5d", fFormat));
+ }
+ }
+
+ fTree = tree;
if (!fTree) return kFALSE;
- // Get pointer to AOD event
- fEventBuffer[0]->ReadFromTree(fTree, "");
+ for (Int_t i = 0; i < fBufferSize; i++)
+ fEventBuffer[i]->Clear();
fIndex = 0;
fNBuffered = 1;
return kTRUE;
}
+
+Bool_t AliMultiEventInputHandler::Notify(const char */*path*/)
+{
+ // Connect to new tree
+
+
+ static Bool_t first = kTRUE;
+
+
+ if (first) {
+ fEventBuffer[0]->ReadFromTree(fTree, "");
+ first = kFALSE;
+ } else {
+ fEventBuffer[0]->ReadFromTree(fTree, "reconnect");
+ }
+
+
+ return (kTRUE);
+}
+
Bool_t AliMultiEventInputHandler::BeginEvent(Long64_t /*entry*/)
{
// Actions before analysis of each event
fIndex %= fBufferSize;
AliInfo(Form("Connecting buffer entry %5d", fIndex));
-
+ fEventBuffer[fIndex]->Clear();
fEventBuffer[fIndex]->ReadFromTree(fTree, "reconnect");
fNBuffered++;
return (kTRUE);
}
-
AliVEvent* AliMultiEventInputHandler::GetEvent(Int_t iev) const
{
// Get event number iev from buffer