1 #ifndef ALIMULTIAODINPUTHANDLER_H
2 #define ALIMULTIAODINPUTHANDLER_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //-------------------------------------------------------------------------
9 // AOD Input Handler realisation of the AliVEventHandler interface.
10 // This class handles multiple events for mixing.
11 // Author: Andreas Morsch, CERN
12 //-------------------------------------------------------------------------
14 #include "AliInputEventHandler.h"
18 class AliMultiAODInputHandler : public AliInputEventHandler {
21 AliMultiAODInputHandler();
22 AliMultiAODInputHandler(Int_t size);
23 AliMultiAODInputHandler(const char* name, const char* title, Int_t size);
24 virtual ~AliMultiAODInputHandler();
25 void SetBufferSize(Int_t size) {fBufferSize = size;}
26 void SetEventPool(AliVEventPool* pool) {fEventPool = pool;}
27 Int_t GetBufferSize() const {return fBufferSize;}
28 Int_t GetNBuffered() const {return fNBuffered;}
29 Bool_t IsBufferReady() const {return (fNBuffered >= (fBufferSize -1));}
30 Bool_t IsFreshBuffer() const {return (fIndex == (fBufferSize - 1));}
31 AliVEventPool *GetEventPool() const {return fEventPool;}
32 virtual AliVEvent *GetEvent() const {return 0;}
33 virtual AliAODEvent *GetEvent(Int_t iev) const;
34 AliAODEvent *GetLatestEvent() const {return fEventBuffer[fIndex];}
36 virtual Bool_t Init(Option_t* /*opt*/) {return kTRUE;}
37 virtual Bool_t Init(TTree* tree, Option_t* /*opt*/);
38 virtual Bool_t FinishEvent();
39 virtual Bool_t BeginEvent(Long64_t /*entry*/);
42 AliMultiAODInputHandler(const AliMultiAODInputHandler& handler);
43 AliMultiAODInputHandler& operator=(const AliMultiAODInputHandler& handler);
45 Int_t fBufferSize; // Size of the buffer
46 Int_t fNBuffered; // Number of events actually buffered
47 Int_t fIndex; // Pointer to most recent event
48 Int_t fCurrentBin; // Current bin from the pool
49 TTree* fTree; // Pointer to the tree
50 AliVEventPool* fEventPool; // Pointer to the pool
51 AliAODEvent** fEventBuffer; // The event buffer
52 ClassDef(AliMultiAODInputHandler, 1);