class AliVEvent;
class AliVCuts;
class AliRunTag;
+class AliEventTag;
class AliInputEventHandler : public AliVEventHandler {
virtual ~AliInputEventHandler();
virtual void SetOutputFileName(const char* /*fname*/) {;}
virtual const char *GetOutputFileName() {return 0;}
- virtual Bool_t Init(Option_t* /*opt*/) {return kTRUE;}
- virtual Bool_t Init(TTree* /*tree*/, Option_t* /*opt*/) {return kTRUE;}
- virtual Bool_t BeginEvent(Long64_t /*entry*/) {return kTRUE;}
- virtual Bool_t Notify() { return AliVEventHandler::Notify();}
- virtual Bool_t Notify(const char */*path*/) {return kTRUE;}
- virtual Bool_t FinishEvent() {return kTRUE;}
- virtual Bool_t Terminate() {return kTRUE;}
- virtual Bool_t TerminateIO() {return kTRUE;}
+ virtual Bool_t Init(Option_t* opt) {if(fMixingHandler) fMixingHandler->Init(opt);return kTRUE;}
+ virtual Bool_t Init(TTree* tree, Option_t* opt) {if(fMixingHandler) fMixingHandler->Init(tree,opt);return kTRUE;}
+ virtual Bool_t GetEntry() {if(fMixingHandler) fMixingHandler->GetEntry(); return kTRUE;}
+ virtual Bool_t BeginEvent(Long64_t entry) {if(fMixingHandler) fMixingHandler->BeginEvent(entry);return kTRUE;}
+
+ virtual Bool_t Notify() { return AliVEventHandler::Notify();}
+ virtual Bool_t Notify(const char *path) {if(fMixingHandler) fMixingHandler->Notify(path);return kTRUE;}
+ virtual Bool_t FinishEvent() {if(fMixingHandler) fMixingHandler->FinishEvent();return kTRUE;}
+ virtual Bool_t Terminate() {if(fMixingHandler) fMixingHandler->Terminate();return kTRUE;}
+ virtual Bool_t TerminateIO() {if(fMixingHandler) fMixingHandler->TerminateIO();return kTRUE;}
+
// Setters
virtual void SetInputTree(TTree* tree) {fTree = tree;}
virtual void SetEventSelection(AliVCuts* cuts) {fEventCuts = cuts;}
void SetActiveBranches (const char* branches) {fBranchesOn = branches;}
// Getters
virtual AliVEvent *GetEvent() const {return 0;}
+ virtual const AliEventTag *GetEventTag() const {return 0;}
virtual AliRunTag *GetRunTag() const {return 0;}
+ // Get the statistics object (currently TH2). Option can be BIN0.
+ virtual TObject *GetStatistics(Option_t *option="") const;
virtual Option_t *GetAnalysisType() const {return 0;}
virtual TTree *GetTree( ) const {return fTree;}
virtual AliVCuts *GetEventSelection() const {return fEventCuts;}
{Bool_t ne = fNewEvent; fNewEvent = kFALSE; return ne;}
virtual UInt_t IsEventSelected()
{return fIsSelectedResult;}
+ // Mixing
+ void SetMixingHandler(AliInputEventHandler* mixing)
+ {fMixingHandler = mixing;}
+ AliInputEventHandler* MixingHandler()
+ {return fMixingHandler;}
+ // Parent Handler
+ void SetParentHandler(AliInputEventHandler* parent) {fParentHandler = parent;}
+ AliInputEventHandler* ParentHandler() {return fParentHandler;}
+
protected:
void SwitchOffBranches() const;
void SwitchOnBranches() const;
Bool_t fNewEvent; // New event flag
AliVCuts* fEventCuts; // Cuts on the event level
UInt_t fIsSelectedResult; // Selection result
- AliInputEventHandler* fMixingHandler; // Optionla plugin for mixing
- ClassDef(AliInputEventHandler, 4);
+ AliInputEventHandler* fMixingHandler; // Optionla plugin for mixing
+ AliInputEventHandler* fParentHandler; // optional pointer to parent handlers (used in AliMultiInputEventHandler)
+ ClassDef(AliInputEventHandler, 6);
};
#endif