Fix from Salvatore for new framework
[u/mrichter/AliRoot.git] / ANALYSIS / AliMultiEventInputHandler.h
CommitLineData
fab17817 1#ifndef ALIMULTIEVENTINPUTHANDLER_H
2#define ALIMULTIEVENTINPUTHANDLER_H
3/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
8//----------------------------------------------------------------------------
9// Multi VEvent Input Handler realisation of the AliVEventHandler interface.
10// This class handles multiple events for mixing.
11// Author: Andreas Morsch, CERN
12//----------------------------------------------------------------------------
13
14#include "AliInputEventHandler.h"
15class AliVEventPool;
16class AliVEvent;
17
18class AliMultiEventInputHandler : public AliInputEventHandler {
19
20 public:
21 AliMultiEventInputHandler();
22 AliMultiEventInputHandler(Int_t size, Int_t format = 1);
23 AliMultiEventInputHandler(const char* name, const char* title, Int_t size, Int_t format = 1);
24 virtual ~AliMultiEventInputHandler();
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;}
44e301c6 32 virtual AliVEvent *GetEvent() const {return GetLatestEvent();}
fab17817 33 virtual AliVEvent *GetEvent(Int_t iev) const;
34 AliVEvent *GetLatestEvent() const {return fEventBuffer[fIndex];}
c8fe2783 35 Int_t GetFormat() { return fFormat ;}
3c329509 36 void EventSkipped() {fEventSkipped = kTRUE;}
fab17817 37 // From the interface
38 virtual Bool_t Init(Option_t* /*opt*/) {return kTRUE;}
39 virtual Bool_t Init(TTree* tree, Option_t* /*opt*/);
40 virtual Bool_t FinishEvent();
41 virtual Bool_t BeginEvent(Long64_t /*entry*/);
47482059 42 virtual Bool_t Notify() { return AliInputEventHandler::Notify();}
43 virtual Bool_t Notify(const char */*path*/);
fab17817 44 private:
45 AliMultiEventInputHandler(const AliMultiEventInputHandler& handler);
46 AliMultiEventInputHandler& operator=(const AliMultiEventInputHandler& handler);
47 private:
48 Int_t fBufferSize; // Size of the buffer
49 Int_t fFormat; // 0: ESD 1: AOD
50 Int_t fNBuffered; // Number of events actually buffered
51 Int_t fIndex; // Pointer to most recent event
52 Int_t fCurrentBin; // Current bin from the pool
28a79204 53 Int_t fCurrentEvt; // Current event
54 Bool_t fInit; // Current event
fab17817 55 AliVEventPool* fEventPool; // Pointer to the pool
67b28e0a 56 AliVEvent** fEventBuffer; //! The event buffer
3c329509 57 Bool_t fEventSkipped; // User requires event to be skip
fab17817 58 ClassDef(AliMultiEventInputHandler, 1);
59};
60
61#endif