]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliAnalysisTaskSE.h
Port of new Event Mixing implementation
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisTaskSE.h
index 355a9798d65f42fffabd132f26ce8d56d4b694c3..89b7434fe9dad758b7620a39d377dc95b1c0b493 100644 (file)
@@ -7,15 +7,19 @@
 /* $Id$ */
 
 #include "AliAnalysisTask.h"
-class AliVEvent;
+#include "AliVEvent.h"
+
 class AliAODEvent;
 class AliAODHeader;
 class AliAODTracklets;
 class AliAODCaloCells;
 class AliMCEvent;
+class AliMCEventHandler;
 class AliInputEventHandler;
+class AliMultiInputEventHandler;
 class AliAnalysisCuts;
 class AliESDfriend;
+class AliEventTag;
 
 class TTree;
 class TList;
@@ -39,13 +43,16 @@ class AliAnalysisTaskSE : public AliAnalysisTask
     // To be implemented by user
     virtual void   UserCreateOutputObjects()  {;}
     virtual void   UserExec(Option_t* /*option*/) {;}
+    virtual void   UserExecMix(Option_t */*option*/) {;}
     virtual Bool_t UserNotify() {return kTRUE;}
     virtual void   NotifyRun()  {;}
     
     // Helpers for adding branches to the AOD
     virtual void   AddAODBranch(const char* cname, void* addobj, const char *fname="");
     // Event Selection
-    virtual void   SelectCollisionCandidates() {fSelectCollisions = kTRUE;}
+    virtual void   SelectCollisionCandidates(UInt_t offlineTriggerMask = AliVEvent::kMB) {fOfflineTriggerMask = offlineTriggerMask;}
+    // Loading the declared input branches
+    void           LoadBranches() const;
  // Getters
     virtual Int_t         DebugLevel()  {return fDebug;     }
     virtual AliVEvent*    InputEvent()  {return fInputEvent;}
@@ -54,9 +61,15 @@ class AliAnalysisTaskSE : public AliAnalysisTask
     virtual TTree*        OutputTree()  {return fTreeA;     }
     virtual AliMCEvent*   MCEvent()     {return fMCEvent;   }
     virtual Long64_t      Entry()       {return fEntry;     }
+    virtual const AliEventTag *EventTag() const;
     virtual const char*   CurrentFileName();
     virtual Bool_t        IsStandardAOD() const;
     virtual TList*        GetQAHistos()   const {return fHistosQA;}
+    virtual Bool_t        IsEventInBinZero() { return kFALSE;}
+ protected:
+    void ConnectMultiHandler();
+    void DisconnectMultiHandler();
+
   protected:
     Int_t                 fDebug;           //  Debug flag
     // IO
@@ -83,10 +96,13 @@ class AliAnalysisTaskSE : public AliAnalysisTask
     static AliAODTracklets* fgAODTracklets;     //! Tracklets for replication
     static AliAODCaloCells* fgAODEmcalCells;    //! Emcal Cell replication
     static AliAODCaloCells* fgAODPhosCells;     //! Phos  Cell replication
+    static TClonesArray*    fgAODDimuons;       //! Dimuons replication
     // Event Selection
-    Bool_t                  fSelectCollisions;   //  Task processes collision candidates only
-     
-    ClassDef(AliAnalysisTaskSE, 2); // Analysis task for standard jet analysis
+    UInt_t fOfflineTriggerMask;   //  Task processes collision candidates only
+    // Event Mixing
+    AliMultiInputEventHandler *fMultiInputHandler;  //! pointer to multihandler
+    AliMCEventHandler         *fMCEventHandler;     //! pointer to MCEventHandler
+    ClassDef(AliAnalysisTaskSE, 4); // Analysis task for standard jet analysis
 };
  
 #endif