class TTree;
class AliAnalysisDataContainer;
class AliAnalysisTask;
+class AliVEventHandler;
+
class AliAnalysisManager : public TNamed {
kGridAnalysis = 2
};
+enum EAliAnalysisFlags {
+ kEventLoop = BIT(14),
+ kDisableBranches = BIT(15)
+};
+
AliAnalysisManager();
AliAnalysisManager(const char *name, const char *title="");
virtual ~AliAnalysisManager();
void SetAnalysisType(EAliAnalysisExecMode mode) {fMode = mode;}
void SetCurrentEntry(Long64_t entry) {fCurrentEntry = entry;}
void SetDebugLevel(UInt_t level) {fDebug = level;}
+ void SetDisableBranches(Bool_t disable=kTRUE) {TObject::SetBit(kDisableBranches,disable);}
+ void SetOutputEventHandler(AliVEventHandler* handler) {fOutputEventHandler = handler;}
+ void SetMCtruthEventHandler(AliVEventHandler* handler) {fMCtruthEventHandler = handler;}
+ AliVEventHandler* GetOutputEventHandler() {return fOutputEventHandler;}
+ AliVEventHandler* GetMCtruthEventHandler() {return fMCtruthEventHandler;}
// Container handling
AliAnalysisDataContainer *CreateContainer(const char *name, TClass *datatype,
// Analysis initialization and execution, status
Bool_t InitAnalysis();
Bool_t IsInitialized() const {return fInitOK;}
+ Bool_t IsEventLoop() const {return TObject::TestBit(kEventLoop);}
void ResetAnalysis();
void ExecAnalysis(Option_t *option="");
void FinishAnalysis();
protected:
void ImportWrappers(TList *source);
+ void SetEventLoop(Bool_t flag=kTRUE) {TObject::SetBit(kEventLoop,flag);}
private:
- TTree *fTree; //! Input tree in case of TSelector model
- Long64_t fCurrentEntry; //! Current processed entry in the tree
- EAliAnalysisExecMode fMode; // Execution mode
- Bool_t fInitOK; // Initialisation done
- UInt_t fDebug; // Debug level
- TObjArray *fTasks; // List of analysis tasks
- TObjArray *fTopTasks; // List of top tasks
- TObjArray *fZombies; // List of zombie tasks
- TObjArray *fContainers; // List of all containers
- TObjArray *fInputs; // List of containers with input data
- TObjArray *fOutputs; // List of containers with results
+ TTree *fTree; //! Input tree in case of TSelector model
+ AliVEventHandler *fOutputEventHandler; // Optional common output event handler
+ AliVEventHandler *fMCtruthEventHandler; // Optional common MC Truth event handler
+ Long64_t fCurrentEntry; //! Current processed entry in the tree
+ EAliAnalysisExecMode fMode; // Execution mode
+ Bool_t fInitOK; // Initialisation done
+ UInt_t fDebug; // Debug level
+ TObjArray *fTasks; // List of analysis tasks
+ TObjArray *fTopTasks; // List of top tasks
+ TObjArray *fZombies; // List of zombie tasks
+ TObjArray *fContainers; // List of all containers
+ TObjArray *fInputs; // List of containers with input data
+ TObjArray *fOutputs; // List of containers with results
static AliAnalysisManager *fgAnalysisManager; //! static pointer to object instance
ClassDef(AliAnalysisManager,1) // Analysis manager class