X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliInputEventHandler.h;h=10c8ae631b7b872c90326996cf67a9c3d2603d13;hb=29d9710ea9413e67b964c0cb2f7d7bc32f211304;hp=bb8438d7a334944b681ebca1b876f7528f46d1ed;hpb=1aa09fd106a7757793cd6a033948b5f5b0145903;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliInputEventHandler.h b/STEER/AliInputEventHandler.h index bb8438d7a33..10c8ae631b7 100644 --- a/STEER/AliInputEventHandler.h +++ b/STEER/AliInputEventHandler.h @@ -15,38 +15,80 @@ class AliVEvent; +class AliVCuts; class AliRunTag; +class AliEventTag; + class AliInputEventHandler : public AliVEventHandler { public: + enum EInputHandlerFlags { + kUserCallSelectionMask = BIT(14) // Watch out for defining base class bits + }; AliInputEventHandler(); AliInputEventHandler(const char* name, const char* title); 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;} + virtual void SetUserCallSelectionMask(Bool_t flag=kTRUE) {TObject::SetBit(kUserCallSelectionMask,flag);} + // + void SetInactiveBranches(const char* branches) {fBranches = branches;} + 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 Long64_t GetReadEntry() const {return fTree->GetReadEntry();} + virtual AliVCuts *GetEventSelection() const {return fEventCuts;} + virtual Long64_t GetReadEntry() const; + virtual Bool_t IsUserCallSelectionMask() const {return TObject::TestBit(kUserCallSelectionMask);} + virtual Bool_t NewEvent() + {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; private: AliInputEventHandler(const AliInputEventHandler& handler); AliInputEventHandler& operator=(const AliInputEventHandler& handler); protected: - TTree *fTree; //! Pointer to the tree - ClassDef(AliInputEventHandler, 1); + TTree *fTree; //! Pointer to the tree + TString fBranches; // List of branches to be switched off (separated by space) + TString fBranchesOn; // List of branches to be switched on (separated by space) + Bool_t fNewEvent; // New event flag + AliVCuts* fEventCuts; // Cuts on the event level + UInt_t fIsSelectedResult; // Selection result + AliInputEventHandler* fMixingHandler; // Optionla plugin for mixing + AliInputEventHandler* fParentHandler; // optional pointer to parent handlers (used in AliMultiInputEventHandler) + ClassDef(AliInputEventHandler, 6); }; #endif