1. i need to know pointer to parent inputhandler (In case i want to access
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 18 Feb 2011 17:28:57 +0000 (17:28 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 18 Feb 2011 17:28:57 +0000 (17:28 +0000)
right AliMultiInputHandler from child)

2. for physics selection i need that AliMultiInputEventHandler will get
EventSelection from AliESDInputHandler.
M. Vala

ANALYSIS/AliMultiInputEventHandler.cxx
ANALYSIS/AliMultiInputEventHandler.h
STEER/AliInputEventHandler.cxx
STEER/AliInputEventHandler.h

index 5ac395a..fd71ac0 100644 (file)
@@ -104,6 +104,9 @@ Bool_t AliMultiInputEventHandler::Init(TTree *tree, Option_t *opt)
    AliInputEventHandler *eh = 0;
    TObjArrayIter next(&fInputHandlers);
    while ((eh = (AliInputEventHandler *) next())) {
+      // using mixing input hadnler from Base class
+      // for me fParentHandler would be better name
+      eh->SetParentHandler(this);
       eh->Init(tree, fAnalysisType);
    }
    AliDebug(AliLog::kDebug + 5, Form("->"));
@@ -246,3 +249,16 @@ Option_t *AliMultiInputEventHandler::GetDataType() const
    // Returns handled data type.
    return gCurrentMultiDataType;
 }
+
+//______________________________________________________________________________
+UInt_t  AliMultiInputEventHandler::IsEventSelected() 
+{
+  // returns if event is selected
+  
+  AliInputEventHandler *firstIH = dynamic_cast<AliInputEventHandler*> (GetFirstInputEventHandler());
+  if (firstIH) {
+    return firstIH->IsEventSelected();
+  }
+  
+  return fIsSelectedResult;
+}
index 9463569..e4e5c96 100644 (file)
@@ -29,7 +29,7 @@ public:
    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);
index 9a163e8..a84cc16 100644 (file)
@@ -38,7 +38,8 @@ AliInputEventHandler::AliInputEventHandler() :
     fNewEvent(kTRUE),
     fEventCuts(0),
     fIsSelectedResult(0),
-    fMixingHandler(0)
+    fMixingHandler(0),
+    fParentHandler(0)
 {
   // default constructor
 }
@@ -58,7 +59,8 @@ AliInputEventHandler::AliInputEventHandler(const char* name, const char* title):
   fNewEvent(kTRUE),
   fEventCuts(0),
   fIsSelectedResult(0),
-  fMixingHandler(0)
+  fMixingHandler(0),
+  fParentHandler(0)
 {
 // Named constructor.
 }
index da2db58..10c8ae6 100644 (file)
@@ -69,6 +69,9 @@ class AliInputEventHandler : public AliVEventHandler {
     {fMixingHandler = mixing;}
     AliInputEventHandler* MixingHandler()
     {return fMixingHandler;}
+    // Parent Handler
+    void SetParentHandler(AliInputEventHandler* parent) {fParentHandler = parent;}
+    AliInputEventHandler* ParentHandler() {return fParentHandler;}
 
  protected:
     void SwitchOffBranches() const;
@@ -83,8 +86,9 @@ class AliInputEventHandler : public AliVEventHandler {
     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, 5);
+    AliInputEventHandler* fMixingHandler; // Optionla plugin for mixing
+    AliInputEventHandler* fParentHandler; // optional pointer to parent handlers (used in AliMultiInputEventHandler)
+    ClassDef(AliInputEventHandler, 6);
 };
 
 #endif