2 // Class AliMixEventInputHandler
4 // Mixing input handler prepare N events before UserExec
7 // Martin Vala (martin.vala@cern.ch)
10 #ifndef ALIMIXEVENTINPUTHANDLER_H
11 #define ALIMIXEVENTINPUTHANDLER_H
13 #include <TObjArray.h>
15 #include "AliInputEventHandler.h"
19 class AliMixEventPool;
20 class AliMixInputHandlerInfo;
21 class AliMixEventInputHandler : public AliInputEventHandler {
24 AliMixEventInputHandler(const Int_t size=1);
25 virtual ~AliMixEventInputHandler() {;};
28 virtual Bool_t Init(Option_t *opt /*opt*/);
29 virtual Bool_t Init(TTree *tree, Option_t* /*opt*/);
30 virtual Bool_t BeginEvent(Long64_t entry /*entry*/);
31 virtual Bool_t GetEntry();
32 virtual Bool_t FinishEvent();
33 virtual Bool_t Notify();
34 virtual Bool_t Notify(const char *path);
37 void SetInputHandlerForMixing(const AliInputEventHandler *const inHandler);
38 void SetEventPool(AliMixEventPool *const evPool) {fEventPool = evPool;}
40 AliInputEventHandler *InputEventHandler(const Int_t index);
41 AliMixEventPool *GetEventPool() const { return fEventPool;}
42 Int_t BufferSize() const {return fBufferSize;}
43 Int_t MixedEventNumber() const {return fMixEventNumber;}
44 Long64_t EntryAll() const { return fEntryCounter;}
47 Int_t fBufferSize; // Size of the buffer
48 TObjArray fInputHandlers; // buffer of input handlers
49 TObjArray fMixTrees; // buffer of input handlers
50 TArrayI fTreeMap; // tree map
51 AliMixInputHandlerInfo *fMixIntupHandlerInfoTmp; //! mix input handler info full chain
52 Long64_t fEntryCounter; // entry counter
53 AliMixEventPool *fEventPool; // event pool
55 Int_t fMixEventNumber; // number mix
59 AliMixEventInputHandler(const AliMixEventInputHandler &handler);
60 AliMixEventInputHandler &operator=(const AliMixEventInputHandler &handler);
62 ClassDef(AliMixEventInputHandler, 1)