ROOT logo
//
// Class AliMultiInputEventHandler
//
// Multi input event handler
// TODO example
// author:
//        Martin Vala (martin.vala@cern.ch)
//

#ifndef ALIMULTIINPUTEVENTHANDLER_H
#define ALIMULTIINPUTEVENTHANDLER_H

#include <TObjArray.h>

#include "AliInputEventHandler.h"

class AliMCEventHandler;
class AliMultiInputEventHandler : public AliInputEventHandler {

public:
   AliMultiInputEventHandler(const Int_t size = 0, const char *name = "name");
   virtual ~AliMultiInputEventHandler();

   // From the interface
   virtual Bool_t  Init(Option_t *opt);
   virtual Bool_t  Init(TTree *tree, Option_t *opt);
   virtual Bool_t  BeginEvent(Long64_t entry);
   virtual Bool_t  GetEntry();
   virtual Bool_t  FinishEvent();
   virtual Bool_t  Notify();
   virtual Bool_t  Notify(const char *path);
   virtual UInt_t  IsEventSelected();
   // add input handler
   virtual void                AddInputEventHandler(AliVEventHandler*inHandler);
   AliVEventHandler           *InputEventHandler(const Int_t index);
   Int_t                       BufferSize() const { return fBufferSize; }
   TObjArray                  *InputEventHandlers() { return &fInputHandlers; }

   AliInputEventHandler       *GetFirstInputEventHandler();
   AliMCEventHandler          *GetFirstMCEventHandler();
   AliMultiInputEventHandler  *GetFirstMultiInputHandler();

   Option_t                   *GetDataType() const;
   
   //PID response
   virtual AliPIDResponse* GetPIDResponse();
   virtual void CreatePIDResponse(Bool_t isMC);

protected:

   Int_t                   fBufferSize;    // Size of the buffer
   TObjArray               fInputHandlers; // buffer of input handlers
   Option_t               *fAnalysisType;  //! local, proof, grid
private:
   AliMultiInputEventHandler(const AliMultiInputEventHandler& handler);
   AliMultiInputEventHandler &operator=(const AliMultiInputEventHandler &handler);

   ClassDef(AliMultiInputEventHandler, 1)
};

#endif
 AliMultiInputEventHandler.h:1
 AliMultiInputEventHandler.h:2
 AliMultiInputEventHandler.h:3
 AliMultiInputEventHandler.h:4
 AliMultiInputEventHandler.h:5
 AliMultiInputEventHandler.h:6
 AliMultiInputEventHandler.h:7
 AliMultiInputEventHandler.h:8
 AliMultiInputEventHandler.h:9
 AliMultiInputEventHandler.h:10
 AliMultiInputEventHandler.h:11
 AliMultiInputEventHandler.h:12
 AliMultiInputEventHandler.h:13
 AliMultiInputEventHandler.h:14
 AliMultiInputEventHandler.h:15
 AliMultiInputEventHandler.h:16
 AliMultiInputEventHandler.h:17
 AliMultiInputEventHandler.h:18
 AliMultiInputEventHandler.h:19
 AliMultiInputEventHandler.h:20
 AliMultiInputEventHandler.h:21
 AliMultiInputEventHandler.h:22
 AliMultiInputEventHandler.h:23
 AliMultiInputEventHandler.h:24
 AliMultiInputEventHandler.h:25
 AliMultiInputEventHandler.h:26
 AliMultiInputEventHandler.h:27
 AliMultiInputEventHandler.h:28
 AliMultiInputEventHandler.h:29
 AliMultiInputEventHandler.h:30
 AliMultiInputEventHandler.h:31
 AliMultiInputEventHandler.h:32
 AliMultiInputEventHandler.h:33
 AliMultiInputEventHandler.h:34
 AliMultiInputEventHandler.h:35
 AliMultiInputEventHandler.h:36
 AliMultiInputEventHandler.h:37
 AliMultiInputEventHandler.h:38
 AliMultiInputEventHandler.h:39
 AliMultiInputEventHandler.h:40
 AliMultiInputEventHandler.h:41
 AliMultiInputEventHandler.h:42
 AliMultiInputEventHandler.h:43
 AliMultiInputEventHandler.h:44
 AliMultiInputEventHandler.h:45
 AliMultiInputEventHandler.h:46
 AliMultiInputEventHandler.h:47
 AliMultiInputEventHandler.h:48
 AliMultiInputEventHandler.h:49
 AliMultiInputEventHandler.h:50
 AliMultiInputEventHandler.h:51
 AliMultiInputEventHandler.h:52
 AliMultiInputEventHandler.h:53
 AliMultiInputEventHandler.h:54
 AliMultiInputEventHandler.h:55
 AliMultiInputEventHandler.h:56
 AliMultiInputEventHandler.h:57
 AliMultiInputEventHandler.h:58
 AliMultiInputEventHandler.h:59
 AliMultiInputEventHandler.h:60
 AliMultiInputEventHandler.h:61