
AliAnalysisManager - Manager analysis class. Allows creation of several analysis tasks and data containers storing their input/output. Allows connecting/chaining tasks via shared data containers. Serializes the current event for all tasks depending only on initial input data.
| AliAnalysisManager(const AliAnalysisManager& other) | |
| AliAnalysisManager(const char* name = "mgr", const char* title = "") | |
| virtual | ~AliAnalysisManager() |
| void | TObject::AbstractMethod(const char* method) const |
| void | AddBranches(const char* branches) |
| void | AddClassDebug(const char* className, Int_t debugLevel) |
| void | AddStatisticsMsg(const char* line) |
| void | AddStatisticsTask(UInt_t offlineMask = 0) |
| void | AddTask(AliAnalysisTask* task) |
| virtual void | TObject::AppendPad(Option_t* option = "") |
| void | ApplyDebugOptions() |
| virtual void | TObject::Browse(TBrowser* b) |
| void | Changed() |
| void | CheckBranches(Bool_t load = kFALSE) |
| Bool_t | CheckTasks() const |
| static TClass* | Class() |
| virtual const char* | TObject::ClassName() const |
| void | CleanContainers() |
| virtual void | TNamed::Clear(Option_t* option = "") |
| virtual TObject* | TNamed::Clone(const char* newname = "") const |
| virtual Int_t | TNamed::Compare(const TObject* obj) const |
| Bool_t | ConnectInput(AliAnalysisTask* task, Int_t islot, AliAnalysisDataContainer* cont) |
| Bool_t | ConnectOutput(AliAnalysisTask* task, Int_t islot, AliAnalysisDataContainer* cont) |
| virtual void | TNamed::Copy(TObject& named) const |
| void | CountEvent(Int_t ninput, Int_t nprocessed, Int_t nfailed, Int_t naccepted) |
| AliAnalysisDataContainer* | CreateContainer(const char* name, TClass* datatype, AliAnalysisManager::EAliAnalysisContType type = kExchangeContainer, const char* filename = NULL) |
| virtual void | TObject::Delete(Option_t* option = "")MENU |
| virtual Int_t | TObject::DistancetoPrimitive(Int_t px, Int_t py) |
| virtual void | TObject::Draw(Option_t* option = "") |
| virtual void | TObject::DrawClass() constMENU |
| virtual TObject* | TObject::DrawClone(Option_t* option = "") constMENU |
| virtual void | TObject::Dump() constMENU |
| virtual void | TObject::Error(const char* method, const char* msgfmt) const |
| Bool_t | EventLoop(Long64_t nevents) |
| void | ExecAnalysis(Option_t* option = "") |
| virtual void | TObject::Execute(const char* method, const char* params, Int_t* error = 0) |
| virtual void | TObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0) |
| virtual void | TObject::ExecuteEvent(Int_t event, Int_t px, Int_t py) |
| virtual void | TObject::Fatal(const char* method, const char* msgfmt) const |
| virtual void | TNamed::FillBuffer(char*& buffer) |
| virtual TObject* | TObject::FindObject(const char* name) const |
| virtual TObject* | TObject::FindObject(const TObject* obj) const |
| static AliAnalysisManager* | GetAnalysisManager() |
| AliAnalysisManager::EAliAnalysisExecMode | GetAnalysisType() const |
| void | GetAnalysisTypeString(TString& type) const |
| Bool_t | GetAsyncReading() const |
| Bool_t | GetAutoBranchLoading() const |
| Long64_t | GetCacheSize() const |
| static const char* | GetCommonFileName() |
| AliAnalysisDataContainer* | GetCommonInputContainer() const |
| AliAnalysisDataContainer* | GetCommonOutputContainer() const |
| TObjArray* | GetContainers() const |
| Long64_t | GetCurrentEntry() const |
| UInt_t | GetDebugLevel() const |
| virtual Option_t* | TObject::GetDrawOption() const |
| static Long_t | TObject::GetDtorOnly() |
| virtual Int_t | GetEntry(Long64_t entry, Int_t getall = 0) |
| AliVEventPool* | GetEventPool() const |
| TObjArray* | GetExchangeContainers() const |
| TString | GetExtraFiles() const |
| Bool_t | GetFileFromWrapper(const char* filename, const TList* source) |
| const char* | GetFileInfoLog() const |
| static Double_t | GetGlobalDbl(const char* key, Bool_t& valid) |
| static Int_t | GetGlobalInt(const char* key, Bool_t& valid) |
| TMap* | GetGlobals() |
| static const char* | GetGlobalStr(const char* key, Bool_t& valid) |
| AliAnalysisGrid* | GetGridHandler() |
| virtual const char* | TObject::GetIconName() const |
| AliVEventHandler* | GetInputEventHandler() const |
| TObjArray* | GetInputs() const |
| AliVEventHandler* | GetMCtruthEventHandler() const |
| virtual const char* | TNamed::GetName() const |
| Int_t | GetNcalls() const |
| Int_t | GetNsysInfo() const |
| static const char* | GetOADBPath() |
| virtual char* | TObject::GetObjectInfo(Int_t px, Int_t py) const |
| static Bool_t | TObject::GetObjectStat() |
| virtual Option_t* | TObject::GetOption() const |
| AliVEventHandler* | GetOutputEventHandler() const |
| TObjArray* | GetOutputs() const |
| TObjArray* | GetParamOutputs() const |
| const char* | GetRequestedBranches() const |
| static Int_t | GetRunFromAlienPath(const char* path) |
| Int_t | GetRunFromPath() const |
| const AliAnalysisStatistics* | GetStatistics() const |
| const char* | GetStatisticsMsg() const |
| AliAnalysisTask* | GetTask(const char* name) const |
| Int_t | GetTaskIndex(const AliAnalysisTask* task) const |
| TObjArray* | GetTasks() const |
| virtual const char* | TNamed::GetTitle() const |
| TObjArray* | GetTopTasks() const |
| TTree* | GetTree() const |
| virtual UInt_t | TObject::GetUniqueID() const |
| TObjArray* | GetZombieTasks() const |
| virtual Bool_t | TObject::HandleTimer(TTimer* timer) |
| virtual ULong_t | TNamed::Hash() const |
| virtual void | TObject::Info(const char* method, const char* msgfmt) const |
| virtual Bool_t | TObject::InheritsFrom(const char* classname) const |
| virtual Bool_t | TObject::InheritsFrom(const TClass* cl) const |
| virtual Bool_t | Init(TTree* tree) |
| Bool_t | InitAnalysis() |
| void | InitInputData(AliVEvent* esdEvent, AliVfriendEvent* esdFriend) |
| virtual void | TObject::Inspect() constMENU |
| void | TObject::InvertBit(UInt_t f) |
| virtual TClass* | IsA() const |
| Bool_t | IsCollectThroughput() |
| virtual Bool_t | TObject::IsEqual(const TObject* obj) const |
| Bool_t | IsEventLoop() const |
| Bool_t | IsExternalLoop() const |
| virtual Bool_t | TObject::IsFolder() const |
| Bool_t | IsInitialized() const |
| Bool_t | IsLocked() const |
| static Bool_t | IsMacroLoaded(const char* filename) |
| Bool_t | IsMCLoop() const |
| Bool_t | TObject::IsOnHeap() const |
| static Bool_t | IsPipe(ostream& out) |
| Bool_t | IsProofMode() const |
| Bool_t | IsRemote() const |
| Bool_t | IsSkipTerminate() const |
| virtual Bool_t | TNamed::IsSortable() const |
| Bool_t | IsTrainInitialized() const |
| Bool_t | IsUsingDataSet() const |
| Bool_t | TObject::IsZombie() const |
| void | LoadBranch(const char* n) |
| static Int_t | LoadMacro(const char* filename, Int_t* error = 0, Bool_t check = kFALSE) |
| void | Lock() |
| virtual void | TNamed::ls(Option_t* option = "") const |
| void | TObject::MayNotUse(const char* method) const |
| Bool_t | MustClean() const |
| virtual Bool_t | Notify() |
| void | TObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const |
| static TFile* | OpenFile(AliAnalysisDataContainer* cont, const char* option, Bool_t ignoreProof = kFALSE) |
| TFile* | OpenProofFile(AliAnalysisDataContainer* cont, const char* option, const char* extaod = "") |
| static void | TObject::operator delete(void* ptr) |
| static void | TObject::operator delete(void* ptr, void* vp) |
| static void | TObject::operator delete[](void* ptr) |
| static void | TObject::operator delete[](void* ptr, void* vp) |
| void* | TObject::operator new(size_t sz) |
| void* | TObject::operator new(size_t sz, void* vp) |
| void* | TObject::operator new[](size_t sz) |
| void* | TObject::operator new[](size_t sz, void* vp) |
| AliAnalysisManager& | operator=(const AliAnalysisManager& other) |
| void | PackOutput(TList* target) |
| virtual void | TObject::Paint(Option_t* option = "") |
| virtual void | TObject::Pop() |
| virtual void | TNamed::Print(Option_t* option = "") const |
| void | PrintStatus(Option_t* option = "all") const |
| virtual Bool_t | Process(Long64_t entry) |
| virtual Bool_t | ProcessCut(Long64_t entry) |
| void | ProfileTask(const char* name, const char* option = "VM") const |
| void | ProfileTask(Int_t itop, const char* option = "VM") const |
| static void | ProgressBar(const char* opname, Long64_t current, Long64_t size, TStopwatch *const watch = 0, Bool_t last = kFALSE, Bool_t refresh = kFALSE) |
| virtual Int_t | TObject::Read(const char* name) |
| virtual void | TObject::RecursiveRemove(TObject* obj) |
| void | RegisterExtraFile(const char* fname) |
| void | ResetAnalysis() |
| void | TObject::ResetBit(UInt_t f) |
| void | RunLocalInit() |
| virtual void | TObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU |
| virtual void | TObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "") |
| void | SetAnalysisType(AliAnalysisManager::EAliAnalysisExecMode mode) |
| void | SetAsyncReading(Bool_t flag = kTRUE) |
| void | SetAutoBranchLoading(Bool_t b) |
| void | TObject::SetBit(UInt_t f) |
| void | TObject::SetBit(UInt_t f, Bool_t set) |
| void | SetCacheSize(Long64_t size) |
| void | SetCollectSysInfoEach(Int_t nevents = 0) |
| void | SetCollectThroughput(Bool_t flag) |
| static void | SetCommonFileName(const char* name) |
| void | SetCurrentEntry(Long64_t entry) |
| void | SetDebugLevel(UInt_t level) |
| void | SetDisableBranches(Bool_t disable = kTRUE) |
| virtual void | TObject::SetDrawOption(Option_t* option = "")MENU |
| static void | TObject::SetDtorOnly(void* obj) |
| void | SetEventPool(AliVEventPool *const epool) |
| void | SetExternalLoop(Bool_t flag) |
| void | SetFileInfoLog(const char* name) |
| static void | SetGlobalDbl(const char* key, Double_t value) |
| static void | SetGlobalInt(const char* key, Int_t value) |
| static void | SetGlobalStr(const char* key, const char* value) |
| void | SetGridHandler(AliAnalysisGrid *const handler) |
| void | SetInputEventHandler(AliVEventHandler *const handler) |
| void | SetMCLoop(Bool_t flag = kTRUE) |
| void | SetMCtruthEventHandler(AliVEventHandler *const handler) |
| void | SetMustClean(Bool_t flag = kTRUE) |
| virtual void | TNamed::SetName(const char* name)MENU |
| virtual void | TNamed::SetNameTitle(const char* name, const char* title) |
| void | SetNSysInfo(Long64_t nevents) |
| static void | TObject::SetObjectStat(Bool_t stat) |
| void | SetOutputEventHandler(AliVEventHandler *const handler) |
| void | SetRunFromPath(Int_t run) |
| void | SetSaveCanvases(Bool_t flag = kTRUE) |
| void | SetSelector(AliAnalysisSelector *const sel) |
| void | SetSkipTerminate(Bool_t flag) |
| void | SetSpecialOutputLocation(const char* loc) |
| void | SetStatistics(AliAnalysisStatistics* stat) |
| virtual void | TNamed::SetTitle(const char* title = "")MENU |
| virtual void | TObject::SetUniqueID(UInt_t uid) |
| void | SetUseProgressBar(Bool_t flag, Int_t freq = 1) |
| virtual void | ShowMembers(TMemberInspector&) |
| virtual Int_t | TNamed::Sizeof() const |
| virtual void | SlaveBegin(TTree* tree) |
| Long64_t | StartAnalysis(const char* type, Long64_t nentries = 1234567890, Long64_t firstentry = 0) |
| Long64_t | StartAnalysis(const char* type, TTree *const tree, Long64_t nentries = 1234567890, Long64_t firstentry = 0) |
| Long64_t | StartAnalysis(const char* type, const char* dataset, Long64_t nentries = 1234567890, Long64_t firstentry = 0) |
| virtual void | Streamer(TBuffer&) |
| void | StreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b) |
| virtual void | TObject::SysError(const char* method, const char* msgfmt) const |
| virtual void | Terminate() |
| Bool_t | TObject::TestBit(UInt_t f) const |
| Int_t | TObject::TestBits(UInt_t f) const |
| void | UnLock() |
| void | UnpackOutput(TList* source) |
| virtual void | TObject::UseCurrentStyle() |
| Bool_t | ValidateOutputFiles() const |
| virtual void | TObject::Warning(const char* method, const char* msgfmt) const |
| virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) |
| virtual Int_t | TObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const |
| void | WriteStatisticsMsg(Int_t nevents) |
| void | CreateReadCache() |
| virtual void | TObject::DoError(int level, const char* location, const char* fmt, va_list va) const |
| void | DoLoadBranch(const char* name) |
| void | ImportWrappers(TList* source) |
| void | InputFileFromTree(TTree *const tree, TString& fname) |
| void | TObject::MakeZombie() |
| void | SetEventLoop(Bool_t flag = kTRUE) |
| enum EAliAnalysisContType { | kExchangeContainer | |
| kInputContainer | ||
| kOutputContainer | ||
| kParamContainer | ||
| }; | ||
| enum EAliAnalysisExecMode { | kLocalAnalysis | |
| kProofAnalysis | ||
| kGridAnalysis | ||
| kMixingAnalysis | ||
| }; | ||
| enum EAliAnalysisFlags { | kEventLoop | |
| kDisableBranches | ||
| kUseDataSet | ||
| kSaveCanvases | ||
| kExternalLoop | ||
| kSkipTerminate | ||
| kUseProgressBar | ||
| kTrueNotify | ||
| kTasksInitialized | ||
| kCollectThroughput | ||
| }; | ||
| enum TObject::EStatusBits { | kCanDelete | |
| kMustCleanup | ||
| kObjInCanvas | ||
| kIsReferenced | ||
| kHasUUID | ||
| kCannotPick | ||
| kNoContextMenu | ||
| kInvalidObject | ||
| }; | ||
| enum TObject::[unnamed] { | kIsOnHeap | |
| kNotDeleted | ||
| kZombie | ||
| kBitMask | ||
| kSingleKey | ||
| kOverwrite | ||
| kWriteDelete | ||
| }; |
| TString | TNamed::fName | object identifier |
| TString | TNamed::fTitle | object title |
| Bool_t | fAsyncReading | Enable async reading |
| Bool_t | fAutoBranchHandling | def=kTRUE, turn off if you use LoadBranch |
| Double_t | fCPUTime | ! Cumulated time in Exec |
| TStopwatch* | fCPUTimer | ! Timer for useful processing |
| Long64_t | fCacheSize | Cache size in bytes |
| AliAnalysisDataContainer* | fCommonInput | Common input container |
| AliAnalysisDataContainer* | fCommonOutput | Common output container |
| TObjArray* | fContainers | List of all containers |
| AliAnalysisFileDescriptor* | fCurrentDescriptor | ! Current file descriptor |
| Long64_t | fCurrentEntry | ! Current processed entry in the tree |
| UInt_t | fDebug | Debug level |
| TObjArray* | fDebugOptions | List of debug options |
| AliVEventPool* | fEventPool | Event pool for mixing analysis |
| TObjArray* | fExchangeCont | List of exchange containers |
| TString | fExtraFiles | List of extra files to be merged |
| TObjArray* | fFileDescriptors | ! List of file descriptors |
| TString | fFileInfoLog | File name for fileinfo logs |
| TMap* | fGlobals | Map with global variables |
| AliAnalysisGrid* | fGridHandler | ! Grid handler plugin |
| Double_t | fIOTime | ! Cumulated time in IO |
| TStopwatch* | fIOTimer | ! Timer for I/O + deserialization |
| Bool_t | fInitOK | Initialisation done |
| Double_t | fInitTime | ! Cumulated time in initialization |
| TStopwatch* | fInitTimer | ! Timer for initialization |
| AliVEventHandler* | fInputEventHandler | Optional common input event handler |
| TObjArray* | fInputs | List of containers with input data |
| Bool_t | fIsRemote | ! Flag is set for remote analysis |
| Bool_t | fLocked | ! Lock for the manager and handlers |
| Bool_t | fMCLoop | External MC generator loop |
| AliVEventHandler* | fMCtruthEventHandler | Optional common MC Truth event handler |
| Long64_t | fMaxEntries | Maximum number of entries |
| AliAnalysisManager::EAliAnalysisExecMode | fMode | Execution mode |
| Bool_t | fMustClean | Flag to let ROOT do cleanup |
| Long64_t | fNSysInfo | Event frequency for collecting system information |
| Int_t | fNcalls | Total number of calls (events) of ExecAnalysis |
| AliVEventHandler* | fOutputEventHandler | Optional common output event handler |
| TObjArray* | fOutputs | List of containers with results |
| static Int_t | fPBUpdateFreq | Progress bar update freq. |
| TObjArray* | fParamCont | List of containers with parameters |
| TString | fRequestedBranches | Requested branch names |
| Int_t | fRunFromPath | Run number retrieved from path to input data |
| AliAnalysisSelector* | fSelector | ! Current selector |
| TString | fSpecialOutputLocation | URL/path where the special outputs will be copied |
| AliAnalysisStatistics* | fStatistics | Statistics info about input events |
| TString | fStatisticsMsg | Statistics user message |
| THashTable | fTable | keep branch ptrs in case of manual branch loading |
| TObjArray* | fTasks | List of analysis tasks |
| TObjArray* | fTopTasks | List of top tasks |
| TTree* | fTree | ! Input tree in case of TSelector model |
| TObjArray* | fZombies | List of zombie tasks |
| static AliAnalysisManager* | fgAnalysisManager | ! static pointer to object instance |
| static TString | fgCommonFileName | ! Common output file name (not streamed) |
| static TString | fgMacroNames | ! Loaded macro names |
| Inheritance Chart: | ||||||||
|
Initialize an event loop where the data producer is the input handler The handler must implement MakeTree creating the tree of events (likely memory resident) and generate the current event in the method BeginEvent. If the tree is memory resident, the handler should never call TTree::Fill method.
Attempt to extract run number from input data path. Works only for paths to
alice data in alien.
sim: /alice/sim/<production>/run_no/...
data: /alice/data/year/period/000run_no/... (ESD or AOD)
The Init() function is called when the selector needs to initialize a new tree or chain. Typically here the branch addresses of the tree will be set. It is normaly not necessary to make changes to the generated code, but the routine can be extended by the user if needed. Init() will be called many times when running with PROOF.
The SlaveBegin() function is called after the Begin() function. When running with PROOF SlaveBegin() is called on each slave server. The tree argument is deprecated (on PROOF 0 is passed).
The Notify() function is called when a new file is opened. This can be either for a new TTree in a TChain or when when a new TTree is started when using PROOF. It is normaly not necessary to make changes to the generated code, but the routine can be extended by the user if needed. The return value is currently not used.
The Process() function is called for each entry in the tree (or possibly keyed object in the case of PROOF) to be processed. The entry argument specifies which entry in the currently loaded tree is to be processed. It can be passed to either TTree::GetEntry() or TBranch::GetEntry() to read either all or the required parts of the data. When processing keyed objects with PROOF, the object is already loaded and is available via the fObject pointer. This function should contain the "body" of the analysis. It can contain simple or elaborate selection criteria, run algorithms on the data of the event and typically fill histograms.
Pack all output data containers in the output list. Called at SlaveTerminate stage in PROOF case for each slave.
The Terminate() function is the last function to be called during a query. It always runs on the client, it can be used to present the results graphically.
Profiles the task having the itop index in the list of top (first level) tasks.
Profile a managed task after the execution of the analysis in case NSysInfo was used.
Returns task inded in the manager's list, -1 if not registered.
Create a data container of a certain type. Types can be: kExchangeContainer = 0, used to exchange data between tasks kInputContainer = 1, used to store input data kOutputContainer = 2, used for writing result to a file filename: composed by file#folder (e.g. results.root#INCLUSIVE) - will write the output object to a folder inside the output file
Connect input of an existing task to a data container.
Connect output of an existing task to a data container.
Initialization of analysis chain of tasks. Should be called after all tasks and data containers are properly connected Reset flag and remove valid_outputs file if exists
The method checks the input branches to be loaded during the analysis.
Start analysis having a grid handler.
Start analysis for this manager. Analysis task can be: LOCAL, PROOF, GRID or MIX. Process nentries starting from firstentry
Start analysis for this manager on a given dataset. Analysis task can be: LOCAL, PROOF or GRID. Process nentries starting from firstentry.
Opens according the option the file specified by cont->GetFileName() and changes current directory to cont->GetFolderName(). If the file was already opened, it checks if the option UPDATE was preserved. File open via TProofOutputFile can be optionally ignored.
Opens a special output file used in PROOF.
Set the input event handler and create a container for it.
Set the input event handler and create a container for it.
Set verbosity of the analysis manager. If the progress bar is used, the call is ignored
Enable a text mode progress bar. Resets debug level to 0.
This method is used externally to register output files which are not connected to any output container, so that the manager can properly register, retrieve or merge them when running in distributed mode. The file names are separated by blancs. The method has to be called in MyAnalysisTask::LocalInit().
Copy a file from the location specified ina the wrapper with the same name from the source list.
Implements a nice text mode progress bar.
Bookkeep current event;
Add a line in the statistics message. If available, the statistics message is written at the end of the SlaveTerminate phase on workers AND at the end of Terminate on the client.
If fStatistics is present, write the file in the format ninput_nprocessed_nfailed_naccepted.stat
returns the path of the OADB this static function just depends on environment variables
Define a custom string variable mapped to a global unique name. The variable can be then retrieved by a given analysis macro via GetGlobalStr(key).
Static method to retrieve a global variable defined via SetGlobalStr.
Define a custom integer variable mapped to a global unique name. The variable can be then retrieved by a given analysis macro via GetGlobalInt(key).
Static method to retrieve a global variable defined via SetGlobalInt.
Define a custom double precision variable mapped to a global unique name. The variable can be then retrieved by a given analysis macro via GetGlobalInt(key).
Static method to retrieve a global variable defined via SetGlobalDbl.
Redirection of gROOT->LoadMacro which makes sure the same macro is not loaded twice
Security lock. This is to detect NORMAL user errors and not really to protect against intentional hacks.
All critical setters pass through the Changed method that throws an exception in case the lock was set.
{Changed(); TObject::SetBit(kDisableBranches,disable);}{TObject::SetBit(kCollectThroughput,kTRUE); fFileInfoLog = name;}{Changed(); fMCtruthEventHandler = handler;}