class TTree;
class TFile;
class TStopwatch;
+class TMap;
class AliAnalysisSelector;
class AliAnalysisDataContainer;
class AliAnalysisTask;
kSaveCanvases = BIT(17),
kExternalLoop = BIT(18),
kSkipTerminate = BIT(19),
- kUseProgressBar = BIT(20)
+ kUseProgressBar = BIT(20),
+ kTrueNotify = BIT(21),
+ kTasksInitialized = BIT(22)
};
AliAnalysisManager(const char *name = "mgr", const char *title="");
// Event loop control
virtual Int_t GetEntry(Long64_t entry, Int_t getall = 0);
- virtual Bool_t Init(TTree *tree);
+ virtual Bool_t Init(TTree *tree);
virtual Bool_t Notify();
virtual Bool_t ProcessCut(Long64_t entry) {return Process(entry);}
virtual Bool_t Process(Long64_t entry);
TObjArray *GetInputs() const {return fInputs;}
AliVEventHandler* GetInputEventHandler() const {return fInputEventHandler;}
AliVEventHandler* GetMCtruthEventHandler() const {return fMCtruthEventHandler;}
+ Int_t GetNsysInfo() const {return fNSysInfo;}
AliVEventHandler* GetOutputEventHandler() const {return fOutputEventHandler;}
TObjArray *GetOutputs() const {return fOutputs;}
TObjArray *GetParamOutputs() const {return fParamCont;}
TObjArray *GetTopTasks() const {return fTopTasks;}
TTree *GetTree() const {return fTree;}
TObjArray *GetZombieTasks() const {return fZombies;}
+ static const char *GetGlobalStr(const char *key, Bool_t &valid);
+ static Int_t GetGlobalInt(const char *key, Bool_t &valid);
+ static Double_t GetGlobalDbl(const char *key, Bool_t &valid);
+ TMap *GetGlobals() {return fGlobals;}
static Bool_t IsPipe(std::ostream &out);
Bool_t IsProofMode() const {return (fMode==kProofAnalysis)?kTRUE:kFALSE;}
Bool_t IsRemote() const {return fIsRemote;}
Bool_t IsUsingDataSet() const {return TObject::TestBit(kUseDataSet);}
void LoadBranch(const char *n) { if(fAutoBranchHandling) return; DoLoadBranch(n); }
+ void RunLocalInit();
void SetAnalysisType(EAliAnalysisExecMode mode) {fMode = mode;}
void SetAutoBranchLoading(Bool_t b) { fAutoBranchHandling = b; }
void SetCurrentEntry(Long64_t entry) {fCurrentEntry = entry;}
void SetSkipTerminate(Bool_t flag) {TObject::SetBit(kSkipTerminate,flag);}
void SetUseProgressBar(Bool_t flag, Int_t freq=1);
void SetSpecialOutputLocation(const char *loc) {fSpecialOutputLocation = loc;}
+ static void SetGlobalStr(const char *key, const char *value);
+ static void SetGlobalInt(const char *key, Int_t value);
+ static void SetGlobalDbl(const char *key, Double_t value);
+
// Container handling
AliAnalysisDataContainer *CreateContainer(const char *name, TClass *datatype,
void AddBranches(const char *branches);
void AddStatisticsTask(UInt_t offlineMask=0);
void CheckBranches(Bool_t load=kFALSE);
+ Bool_t CheckTasks() const;
void CountEvent(Int_t ninput, Int_t nprocessed, Int_t nfailed, Int_t naccepted);
Bool_t InitAnalysis();
Bool_t IsInitialized() const {return fInitOK;}
+ Bool_t IsTrainInitialized() const {return TObject::TestBit(kTasksInitialized);}
Bool_t IsExternalLoop() const {return TObject::TestBit(kExternalLoop);}
Bool_t IsEventLoop() const {return TObject::TestBit(kEventLoop);}
Bool_t IsSkipTerminate() const {return TObject::TestBit(kSkipTerminate);}
void WriteStatisticsMsg(Int_t nevents);
Int_t GetNcalls() const {return fNcalls;}
Bool_t ValidateOutputFiles() const;
+
+ static const char* GetOADBPath();
protected:
void ImportWrappers(TList *source);
TString fStatisticsMsg; // Statistics user message
TString fRequestedBranches; // Requested branch names
AliAnalysisStatistics *fStatistics; // Statistics info about input events
+ TMap *fGlobals; // Map with global variables
static TString fgCommonFileName; //! Common output file name (not streamed)
static AliAnalysisManager *fgAnalysisManager; //! static pointer to object instance
- ClassDef(AliAnalysisManager,13) // Analysis manager class
+ ClassDef(AliAnalysisManager,14) // Analysis manager class
};
#endif