ROOT logo
#ifndef ALIANALYSISMANAGER_H
#define ALIANALYSISMANAGER_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */
// Author: Andrei Gheata, 31/05/2006

//==============================================================================
//   AliAnalysysManager - 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.
//==============================================================================

#ifndef ROOT_TNamed
#include <TNamed.h>
#endif
#ifndef ROOT_THashTable
#include <THashTable.h>
#endif
#ifndef ROOT_Riostream
#include <Riostream.h>
#endif

class TClass;
class TTree;
class TFile;
class TStopwatch;
class TMap;
class AliAnalysisSelector;
class AliAnalysisDataContainer;
class AliAnalysisFileDescriptor;
class AliAnalysisTask;
class AliVEventHandler;
class AliVEventPool;
class AliAnalysisGrid;
class AliAnalysisStatistics;
class AliVfriendEvent;
class AliVEvent;

class AliAnalysisManager : public TNamed {

public:

enum EAliAnalysisContType {
   kExchangeContainer  = 0,   // use to exchange data between tasks
   kInputContainer     = 1,   // use for the task private input data
   kOutputContainer    = 2,   // use for the task private output data
   kParamContainer     = 3    // use for storing task private parameters/cuts per analysis session
};   

enum EAliAnalysisExecMode {
   kLocalAnalysis    = 0,
   kProofAnalysis    = 1,
   kGridAnalysis     = 2,
   kMixingAnalysis   = 3
};

enum EAliAnalysisFlags {
   kEventLoop        = BIT(14),
   kDisableBranches  = BIT(15),
   kUseDataSet       = BIT(16),
   kSaveCanvases     = BIT(17),
   kExternalLoop     = BIT(18),
   kSkipTerminate    = BIT(19),
   kUseProgressBar   = BIT(20),
   kTrueNotify       = BIT(21),
   kTasksInitialized = BIT(22),
   kCollectThroughput= BIT(23)
};

   AliAnalysisManager(const char *name = "mgr", const char *title="");
   virtual            ~AliAnalysisManager();

   AliAnalysisManager(const AliAnalysisManager& other);
   AliAnalysisManager& operator=(const AliAnalysisManager& other);
   
   // Event loop control
   Bool_t              EventLoop(Long64_t nevents);
   virtual Int_t       GetEntry(Long64_t entry, Int_t getall = 0);
   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);
   TFile              *OpenProofFile(AliAnalysisDataContainer *cont, const char *option, const char *extaod="");
   static TFile       *OpenFile(AliAnalysisDataContainer *cont, const char *option, Bool_t ignoreProof=kFALSE);
   void                PackOutput(TList *target);
   void                RegisterExtraFile(const char *fname);
   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);
   Long64_t            StartAnalysis(const char *type, Long64_t nentries=1234567890, Long64_t firstentry=0);
   virtual void        SlaveBegin(TTree *tree);
   virtual void        Terminate();
   void                UnpackOutput(TList *source);

   // Getters/Setters
   static AliAnalysisManager *GetAnalysisManager() {return fgAnalysisManager;}
   static Int_t        LoadMacro(const char *filename, Int_t *error = 0, Bool_t check = kFALSE);
   EAliAnalysisExecMode 
                       GetAnalysisType() const    {return fMode;}
   void                GetAnalysisTypeString(TString &type) const;                    
   Bool_t              GetAutoBranchLoading() const {return fAutoBranchHandling;} 
   Long64_t            GetCacheSize() const       {return fCacheSize;}
   static const char  *GetCommonFileName()        {return fgCommonFileName.Data();}
   AliAnalysisDataContainer *
                       GetCommonInputContainer() const  {return fCommonInput;}
   AliAnalysisDataContainer *
                       GetCommonOutputContainer() const {return fCommonOutput;}
   TObjArray          *GetContainers() const      {return fContainers;}
   Long64_t            GetCurrentEntry() const    {return fCurrentEntry;}
   UInt_t              GetDebugLevel() const      {return fDebug;}
   Bool_t              GetAsyncReading() const {return fAsyncReading;}
   TString             GetExtraFiles() const      {return fExtraFiles;}
   AliVEventPool*      GetEventPool()  const      {return fEventPool;}
   Bool_t              GetFileFromWrapper(const char *filename, const TList *source);
   const char         *GetFileInfoLog() const     {return fFileInfoLog.Data();}
   static Int_t        GetRunFromAlienPath(const char *path);
   AliAnalysisGrid*    GetGridHandler()           {return fGridHandler;}
   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          *GetExchangeContainers() const {return fExchangeCont;}
   Int_t               GetRunFromPath() const     {return fRunFromPath;}
   const char         *GetRequestedBranches() const {return fRequestedBranches.Data();}
   TObjArray          *GetTasks() const           {return fTasks;}
   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       IsMacroLoaded(const char * filename);
   Bool_t              IsMCLoop() const           {return fMCLoop;}
   static Bool_t       IsPipe(std::ostream &out);
   Bool_t              IsProofMode() const        {return (fMode==kProofAnalysis)?kTRUE:kFALSE;}
   Bool_t              IsRemote() const           {return fIsRemote;}
   Bool_t              IsCollectThroughput()      {return TObject::TestBit(kCollectThroughput);}
   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                SetCacheSize(Long64_t size)                {fCacheSize = size;}
   void                SetCollectSysInfoEach(Int_t nevents=0)     {fNSysInfo = nevents;}
   void                SetCollectThroughput(Bool_t flag)          {Changed(); TObject::SetBit(kCollectThroughput,flag);}
   static void         SetCommonFileName(const char *name)        {fgCommonFileName = name;}
   void                SetDebugLevel(UInt_t level);
   void                SetDisableBranches(Bool_t disable=kTRUE)   {Changed(); TObject::SetBit(kDisableBranches,disable);}
   void                SetAsyncReading(Bool_t flag=kTRUE)    {fAsyncReading = flag;}
   void                SetExternalLoop(Bool_t flag)               {Changed(); TObject::SetBit(kExternalLoop,flag);}
   void                SetMCLoop(Bool_t flag=kTRUE)               {fMCLoop = flag;}
   void                SetEventPool(AliVEventPool* const epool)   {Changed(); fEventPool = epool;}
   void                SetFileInfoLog(const char *name) {TObject::SetBit(kCollectThroughput,kTRUE); fFileInfoLog = name;}
   void                SetGridHandler(AliAnalysisGrid * const handler) {Changed(); fGridHandler = handler;}
   void                SetInputEventHandler(AliVEventHandler* const handler);
   void                SetMCtruthEventHandler(AliVEventHandler* const handler) {Changed(); fMCtruthEventHandler = handler;}
   void                SetNSysInfo(Long64_t nevents)              {fNSysInfo = nevents;}
   void                SetOutputEventHandler(AliVEventHandler* const handler);
   void                SetRunFromPath(Int_t run)                  {fRunFromPath = run;}
   void                SetSelector(AliAnalysisSelector * const sel)      {fSelector = sel;}
   void                SetSaveCanvases(Bool_t flag=kTRUE)         {TObject::SetBit(kSaveCanvases,flag);}
   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, 
                       EAliAnalysisContType type     = kExchangeContainer, 
                       const char          *filename = NULL);
   
   // Including tasks and getting them
   void                 AddTask(AliAnalysisTask *task);
   AliAnalysisTask     *GetTask(const char *name) const;
   Int_t                GetTaskIndex(const AliAnalysisTask *task) const;
   
   // Connecting data containers to task inputs/outputs
   Bool_t               ConnectInput(AliAnalysisTask *task, Int_t islot,
                                     AliAnalysisDataContainer *cont);
   Bool_t               ConnectOutput(AliAnalysisTask *task, Int_t islot,
                                     AliAnalysisDataContainer *cont);
   // Garbage collection
   void                 CleanContainers();
   
   // Analysis initialization and execution, status
   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);}
   Bool_t               MustClean() const {return fMustClean;}
   void                 SetMustClean(Bool_t flag=kTRUE) {fMustClean = flag;}
   void                 ResetAnalysis();
   void                 ExecAnalysis(Option_t *option="");
   void                 PrintStatus(Option_t *option="all") const;
   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);
   void                 AddStatisticsMsg(const char *line);
   const char          *GetStatisticsMsg() const {return fStatisticsMsg.Data();}
   const AliAnalysisStatistics *GetStatistics() const {return fStatistics;}
   void                 SetStatistics(AliAnalysisStatistics *stat) {fStatistics = stat;}
   void                 WriteStatisticsMsg(Int_t nevents);
   Int_t                GetNcalls() const {return fNcalls;}
   Bool_t               ValidateOutputFiles() const;
   
   static const char*   GetOADBPath();

   void                 ApplyDebugOptions();
   void                 AddClassDebug(const char *className, Int_t debugLevel);
   
   // Security
   Bool_t               IsLocked() const {return fLocked;}
   void                 Lock();
   void                 UnLock();
   void                 Changed();
   void                 InitInputData(AliVEvent* esdEvent, AliVfriendEvent* esdFriend);
protected:
   void                 CreateReadCache();
   void                 ImportWrappers(TList *source);
   void                 InputFileFromTree(TTree * const tree, TString &fname);
   void                 SetEventLoop(Bool_t flag=kTRUE) {TObject::SetBit(kEventLoop,flag);}
   void                 DoLoadBranch(const char *name);

private:
   TTree                  *fTree;                //! Input tree in case of TSelector model
   AliVEventHandler       *fInputEventHandler;   //  Optional common input  event handler
   AliVEventHandler       *fOutputEventHandler;  //  Optional common output event handler
   AliVEventHandler       *fMCtruthEventHandler; //  Optional common MC Truth event handler
   AliVEventPool          *fEventPool;           //  Event pool for mixing analysis
   Long64_t                fCurrentEntry;        //! Current processed entry in the tree
   Long64_t                fNSysInfo;            // Event frequency for collecting system information
   EAliAnalysisExecMode    fMode;                // Execution mode
   Bool_t                  fInitOK;              // Initialisation done
   Bool_t                  fMustClean;           // Flag to let ROOT do cleanup
   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
   UInt_t                  fDebug;               // Debug level
   TString                 fSpecialOutputLocation; // URL/path where the special outputs will be copied
   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
   TObjArray              *fParamCont;           // List of containers with parameters
   TObjArray              *fExchangeCont;        // List of exchange containers
   TObjArray              *fDebugOptions;        // List of debug options
   TObjArray              *fFileDescriptors;     //! List of file descriptors
   AliAnalysisFileDescriptor *fCurrentDescriptor; //! Current file descriptor
   AliAnalysisDataContainer *fCommonInput;       // Common input container
   AliAnalysisDataContainer *fCommonOutput;      // Common output container
   AliAnalysisSelector    *fSelector;            //! Current selector
   AliAnalysisGrid        *fGridHandler;         //! Grid handler plugin
   TString                 fExtraFiles;          // List of extra files to be merged
   TString                 fFileInfoLog;         // File name for fileinfo logs
   Bool_t                  fAutoBranchHandling;  // def=kTRUE, turn off if you use LoadBranch
   Bool_t                  fAsyncReading;        // Enable async reading
   THashTable              fTable;               // keep branch ptrs in case of manual branch loading
   Int_t                   fRunFromPath;         // Run number retrieved from path to input data
   Int_t                   fNcalls;              // Total number of calls (events) of ExecAnalysis
   Long64_t                fMaxEntries;          // Maximum number of entries
   Long64_t                fCacheSize;           // Cache size in bytes
   static Int_t            fPBUpdateFreq;        // Progress bar update freq.
   TString                 fStatisticsMsg;       // Statistics user message
   TString                 fRequestedBranches;   // Requested branch names
   AliAnalysisStatistics  *fStatistics;          // Statistics info about input events
   TMap                   *fGlobals;             // Map with global variables
   TStopwatch             *fIOTimer;             //! Timer for I/O + deserialization
   TStopwatch             *fCPUTimer;            //! Timer for useful processing
   TStopwatch             *fInitTimer;           //! Timer for initialization
   Double_t                fIOTime;              //! Cumulated time in IO
   Double_t                fCPUTime;             //! Cumulated time in Exec
   Double_t                fInitTime;            //! Cumulated time in initialization
   static TString          fgCommonFileName;     //! Common output file name (not streamed)
   static TString          fgMacroNames;         //! Loaded macro names
   static AliAnalysisManager *fgAnalysisManager; //! static pointer to object instance
   ClassDef(AliAnalysisManager, 21)  // Analysis manager class
};   
#endif
 AliAnalysisManager.h:1
 AliAnalysisManager.h:2
 AliAnalysisManager.h:3
 AliAnalysisManager.h:4
 AliAnalysisManager.h:5
 AliAnalysisManager.h:6
 AliAnalysisManager.h:7
 AliAnalysisManager.h:8
 AliAnalysisManager.h:9
 AliAnalysisManager.h:10
 AliAnalysisManager.h:11
 AliAnalysisManager.h:12
 AliAnalysisManager.h:13
 AliAnalysisManager.h:14
 AliAnalysisManager.h:15
 AliAnalysisManager.h:16
 AliAnalysisManager.h:17
 AliAnalysisManager.h:18
 AliAnalysisManager.h:19
 AliAnalysisManager.h:20
 AliAnalysisManager.h:21
 AliAnalysisManager.h:22
 AliAnalysisManager.h:23
 AliAnalysisManager.h:24
 AliAnalysisManager.h:25
 AliAnalysisManager.h:26
 AliAnalysisManager.h:27
 AliAnalysisManager.h:28
 AliAnalysisManager.h:29
 AliAnalysisManager.h:30
 AliAnalysisManager.h:31
 AliAnalysisManager.h:32
 AliAnalysisManager.h:33
 AliAnalysisManager.h:34
 AliAnalysisManager.h:35
 AliAnalysisManager.h:36
 AliAnalysisManager.h:37
 AliAnalysisManager.h:38
 AliAnalysisManager.h:39
 AliAnalysisManager.h:40
 AliAnalysisManager.h:41
 AliAnalysisManager.h:42
 AliAnalysisManager.h:43
 AliAnalysisManager.h:44
 AliAnalysisManager.h:45
 AliAnalysisManager.h:46
 AliAnalysisManager.h:47
 AliAnalysisManager.h:48
 AliAnalysisManager.h:49
 AliAnalysisManager.h:50
 AliAnalysisManager.h:51
 AliAnalysisManager.h:52
 AliAnalysisManager.h:53
 AliAnalysisManager.h:54
 AliAnalysisManager.h:55
 AliAnalysisManager.h:56
 AliAnalysisManager.h:57
 AliAnalysisManager.h:58
 AliAnalysisManager.h:59
 AliAnalysisManager.h:60
 AliAnalysisManager.h:61
 AliAnalysisManager.h:62
 AliAnalysisManager.h:63
 AliAnalysisManager.h:64
 AliAnalysisManager.h:65
 AliAnalysisManager.h:66
 AliAnalysisManager.h:67
 AliAnalysisManager.h:68
 AliAnalysisManager.h:69
 AliAnalysisManager.h:70
 AliAnalysisManager.h:71
 AliAnalysisManager.h:72
 AliAnalysisManager.h:73
 AliAnalysisManager.h:74
 AliAnalysisManager.h:75
 AliAnalysisManager.h:76
 AliAnalysisManager.h:77
 AliAnalysisManager.h:78
 AliAnalysisManager.h:79
 AliAnalysisManager.h:80
 AliAnalysisManager.h:81
 AliAnalysisManager.h:82
 AliAnalysisManager.h:83
 AliAnalysisManager.h:84
 AliAnalysisManager.h:85
 AliAnalysisManager.h:86
 AliAnalysisManager.h:87
 AliAnalysisManager.h:88
 AliAnalysisManager.h:89
 AliAnalysisManager.h:90
 AliAnalysisManager.h:91
 AliAnalysisManager.h:92
 AliAnalysisManager.h:93
 AliAnalysisManager.h:94
 AliAnalysisManager.h:95
 AliAnalysisManager.h:96
 AliAnalysisManager.h:97
 AliAnalysisManager.h:98
 AliAnalysisManager.h:99
 AliAnalysisManager.h:100
 AliAnalysisManager.h:101
 AliAnalysisManager.h:102
 AliAnalysisManager.h:103
 AliAnalysisManager.h:104
 AliAnalysisManager.h:105
 AliAnalysisManager.h:106
 AliAnalysisManager.h:107
 AliAnalysisManager.h:108
 AliAnalysisManager.h:109
 AliAnalysisManager.h:110
 AliAnalysisManager.h:111
 AliAnalysisManager.h:112
 AliAnalysisManager.h:113
 AliAnalysisManager.h:114
 AliAnalysisManager.h:115
 AliAnalysisManager.h:116
 AliAnalysisManager.h:117
 AliAnalysisManager.h:118
 AliAnalysisManager.h:119
 AliAnalysisManager.h:120
 AliAnalysisManager.h:121
 AliAnalysisManager.h:122
 AliAnalysisManager.h:123
 AliAnalysisManager.h:124
 AliAnalysisManager.h:125
 AliAnalysisManager.h:126
 AliAnalysisManager.h:127
 AliAnalysisManager.h:128
 AliAnalysisManager.h:129
 AliAnalysisManager.h:130
 AliAnalysisManager.h:131
 AliAnalysisManager.h:132
 AliAnalysisManager.h:133
 AliAnalysisManager.h:134
 AliAnalysisManager.h:135
 AliAnalysisManager.h:136
 AliAnalysisManager.h:137
 AliAnalysisManager.h:138
 AliAnalysisManager.h:139
 AliAnalysisManager.h:140
 AliAnalysisManager.h:141
 AliAnalysisManager.h:142
 AliAnalysisManager.h:143
 AliAnalysisManager.h:144
 AliAnalysisManager.h:145
 AliAnalysisManager.h:146
 AliAnalysisManager.h:147
 AliAnalysisManager.h:148
 AliAnalysisManager.h:149
 AliAnalysisManager.h:150
 AliAnalysisManager.h:151
 AliAnalysisManager.h:152
 AliAnalysisManager.h:153
 AliAnalysisManager.h:154
 AliAnalysisManager.h:155
 AliAnalysisManager.h:156
 AliAnalysisManager.h:157
 AliAnalysisManager.h:158
 AliAnalysisManager.h:159
 AliAnalysisManager.h:160
 AliAnalysisManager.h:161
 AliAnalysisManager.h:162
 AliAnalysisManager.h:163
 AliAnalysisManager.h:164
 AliAnalysisManager.h:165
 AliAnalysisManager.h:166
 AliAnalysisManager.h:167
 AliAnalysisManager.h:168
 AliAnalysisManager.h:169
 AliAnalysisManager.h:170
 AliAnalysisManager.h:171
 AliAnalysisManager.h:172
 AliAnalysisManager.h:173
 AliAnalysisManager.h:174
 AliAnalysisManager.h:175
 AliAnalysisManager.h:176
 AliAnalysisManager.h:177
 AliAnalysisManager.h:178
 AliAnalysisManager.h:179
 AliAnalysisManager.h:180
 AliAnalysisManager.h:181
 AliAnalysisManager.h:182
 AliAnalysisManager.h:183
 AliAnalysisManager.h:184
 AliAnalysisManager.h:185
 AliAnalysisManager.h:186
 AliAnalysisManager.h:187
 AliAnalysisManager.h:188
 AliAnalysisManager.h:189
 AliAnalysisManager.h:190
 AliAnalysisManager.h:191
 AliAnalysisManager.h:192
 AliAnalysisManager.h:193
 AliAnalysisManager.h:194
 AliAnalysisManager.h:195
 AliAnalysisManager.h:196
 AliAnalysisManager.h:197
 AliAnalysisManager.h:198
 AliAnalysisManager.h:199
 AliAnalysisManager.h:200
 AliAnalysisManager.h:201
 AliAnalysisManager.h:202
 AliAnalysisManager.h:203
 AliAnalysisManager.h:204
 AliAnalysisManager.h:205
 AliAnalysisManager.h:206
 AliAnalysisManager.h:207
 AliAnalysisManager.h:208
 AliAnalysisManager.h:209
 AliAnalysisManager.h:210
 AliAnalysisManager.h:211
 AliAnalysisManager.h:212
 AliAnalysisManager.h:213
 AliAnalysisManager.h:214
 AliAnalysisManager.h:215
 AliAnalysisManager.h:216
 AliAnalysisManager.h:217
 AliAnalysisManager.h:218
 AliAnalysisManager.h:219
 AliAnalysisManager.h:220
 AliAnalysisManager.h:221
 AliAnalysisManager.h:222
 AliAnalysisManager.h:223
 AliAnalysisManager.h:224
 AliAnalysisManager.h:225
 AliAnalysisManager.h:226
 AliAnalysisManager.h:227
 AliAnalysisManager.h:228
 AliAnalysisManager.h:229
 AliAnalysisManager.h:230
 AliAnalysisManager.h:231
 AliAnalysisManager.h:232
 AliAnalysisManager.h:233
 AliAnalysisManager.h:234
 AliAnalysisManager.h:235
 AliAnalysisManager.h:236
 AliAnalysisManager.h:237
 AliAnalysisManager.h:238
 AliAnalysisManager.h:239
 AliAnalysisManager.h:240
 AliAnalysisManager.h:241
 AliAnalysisManager.h:242
 AliAnalysisManager.h:243
 AliAnalysisManager.h:244
 AliAnalysisManager.h:245
 AliAnalysisManager.h:246
 AliAnalysisManager.h:247
 AliAnalysisManager.h:248
 AliAnalysisManager.h:249
 AliAnalysisManager.h:250
 AliAnalysisManager.h:251
 AliAnalysisManager.h:252
 AliAnalysisManager.h:253
 AliAnalysisManager.h:254
 AliAnalysisManager.h:255
 AliAnalysisManager.h:256
 AliAnalysisManager.h:257
 AliAnalysisManager.h:258
 AliAnalysisManager.h:259
 AliAnalysisManager.h:260
 AliAnalysisManager.h:261
 AliAnalysisManager.h:262
 AliAnalysisManager.h:263
 AliAnalysisManager.h:264
 AliAnalysisManager.h:265
 AliAnalysisManager.h:266
 AliAnalysisManager.h:267
 AliAnalysisManager.h:268
 AliAnalysisManager.h:269
 AliAnalysisManager.h:270
 AliAnalysisManager.h:271
 AliAnalysisManager.h:272
 AliAnalysisManager.h:273
 AliAnalysisManager.h:274
 AliAnalysisManager.h:275
 AliAnalysisManager.h:276
 AliAnalysisManager.h:277
 AliAnalysisManager.h:278
 AliAnalysisManager.h:279
 AliAnalysisManager.h:280
 AliAnalysisManager.h:281
 AliAnalysisManager.h:282
 AliAnalysisManager.h:283
 AliAnalysisManager.h:284
 AliAnalysisManager.h:285
 AliAnalysisManager.h:286
 AliAnalysisManager.h:287
 AliAnalysisManager.h:288
 AliAnalysisManager.h:289
 AliAnalysisManager.h:290
 AliAnalysisManager.h:291
 AliAnalysisManager.h:292
 AliAnalysisManager.h:293
 AliAnalysisManager.h:294
 AliAnalysisManager.h:295
 AliAnalysisManager.h:296
 AliAnalysisManager.h:297