ROOT logo
// -*- mode: C++ -*-
/**
 * @file   AliCorrectionManagerBase.h
 * @author Christian Holm Christensen <cholm@master.hehi.nbi.dk>
 * @date   Sun May 19 21:56:13 2013
 * 
 * @brief  Base class for correction managers
 * 
 * 
 */
#ifndef ALICORRECTIONMANAGERBASE_H
#define ALICORRECTIONMANAGERBASE_H
#include <TString.h>
#include <TNamed.h>
#include <TObjArray.h>
class AliOADBForward;
class TBrowser;
class TAxis;

/**
 * Base class for correction managers. 
 *
 * A correction is added to the manager by calling RegisterCorrection 
 *
 * @code 
 * class MyManager : public AliCorrectionManager
 * {
 * public: 
 *   enum {
 *     kA, 
 *     kB 
 *   };
 *   MyManager() 
 *     : AliCorrectionManager(Bool_t setup=false) 
 *   {
 *     if (setup) {
 *       RegisterCorrection(kA, "A", "/some/path/to/file", 
 *                          TH2D::Class(), kStandard);
 *       RegisterCorrection(kB, "B", "/some/path/to/file", 
 *                          TParameter<float>::Class(), kStandard);
 *     }
 *   }
 *   void Init(Bool_t useA, Bool_t useB, ULong_t run, UShort_t sys,
 *             UShort_t sNN, Short_t fld, Bool_t mc, Bool_t sat, 
 *             Bool_t force=false)
 *   {
 *     if (useA) GetCorrection(kA)->fEnabled = true;
 *     if (useB) GetCorrection(kB)->fEnabled = true;
 * 
 *     return InitCorrections(run, sys, sNN, fld, mc, sat, force);
 *   }
 *   TH2D* GetA() const { return static_cast<TH2D*>(Get(kA)); }
 *   TParameter<float>* GetB() const { return static_cast<TParameter<float>*>(Get(kB)); }
 *  };
 * @endcode
 *
 * In case the derived object is to be a singleton, one has to take a
 * little extra care about when the constructor is called - especially
 * if the singleton is to be streamed to disk:
 *
 * @code 
 * class MyManager : public AliCorrectionManager
 * {
 * public: 
 *   // As above, except the constructor must be private and 
 *   MyManager& Instance() 
 *   {
 *     if (!fgInstance) fgInstance = MyManager(true);
 *     return fgInstance; 
 *   }
 *   static MyManager* fgInstance; 
 * };
 * @endcode 
 * 
 * It is important - for I/O that default construction does not
 * register the corrections.  This should only be done in-code on
 * first construction.
 *
 */
class AliCorrectionManagerBase : public TObject
{
public:
  enum EConstants { 
    kIgnoreValue = 0,
    kIgnoreField = 999 // Must be synced with AliOADBForward::kInvalidField
  };
  enum EFields {
    kRun       = 0x01, 
    kSys       = 0x02, 
    kSNN       = 0x04, 
    kField     = 0x08, 
    kMC        = 0x10, 
    kSatellite = 0x20,
    kStandard  = kRun|kSys|kSNN|kField,
    kFull      = kStandard|kMC|kSatellite
  };
  /** 
   * Destructor 
   */
  virtual ~AliCorrectionManagerBase();
  /** 
   * Set the prefix to use when looking for the input files 
   * 
   * @param prefix Prefix to use for all corrections 
   */
  virtual void SetPrefix(const TString& prefix);
  /** 
   * Set whether to enable fall-back queries 
   * 
   * @param use If true, enable fall-back queries 
   */
  virtual void SetEnableFallBack(Bool_t use=true) { fFallBack = use; }

  /** 
   * @{ 
   * @name Storing corrections 
   */
  /** 
   * Store a correction 
   * 
   * @param o      Object to store
   * @param runNo  Run number of run this was created from
   * @param sys    Collision system (1:pp, 2:PbPb, 3:pPb)
   * @param sNN    Center of mass energy in GeV
   * @param field  L3 magnetic field in kG
   * @param mc     If true, this is for simulations
   * @param sat    If true, contain info for satellite interactions
   * @param file   (optional) file name to store in 
   * @param meth   (optional) method for run look to use. 
   * 
   * @return true on success
   */
  virtual Bool_t Store(TObject*     o,
		       ULong_t     runNo,
		       UShort_t    sys, 
		       UShort_t    sNN, 
		       Short_t     field, 
		       Bool_t      mc,
		       Bool_t      sat, 
		       const char* file,
		       const char* meth="NEAR") const;
  /** 
   * Append the content of the file @a addition to the @a destination
   * file for this manager.  This used TFileMerger::PartialMerge 
   * 
   * @param destination Filename of destination storage (in OADB_PATH)
   * @param addition    Filename of addition. 
   * 
   * @return true on success 
   */
  virtual Bool_t Append(const TString& addition,
			const TString& destination="") const;
  /** 
   * Write a new database file with tables that only has one entry for
   * each query tuple.
   * 
   * @param destination Where to write the new file 
   * 
   * @return true on success, false otherwise 
   */
  virtual Bool_t CleanUp(const TString& destination, Bool_t verb=false) const;
  /* @} */

  /** 
   * @{ 
   * @name Getting the corrections 
   */
  /** 
   * Convinience function to enable corrections on-mass.  User class
   * should overload this to properly enable corrections based on the
   * bit identifiers.
   *
   * @param what Bit mask of correction identifiers. 
   */
  virtual void EnableCorrections(UInt_t what);
  /** 
   * Check if the specified corrrections have been initialized
   * 
   * @param what     Corrections to check 
   * @param verbose  If true, be verbose 
   * 
   * @return true if all specified the corrections have been 
   */
  virtual Bool_t CheckCorrections(UInt_t what, Bool_t verbose=true) const;
  /** 
   * Read in all corrections 
   * 
   * @param run    Run number 
   * @param sys    System 
   * @param sNN    Center of mass energy 
   * @param fld    L3 magnetic field
   * @param mc     For simulations 
   * @param sat    For satellite interactions 
   * @param force  Force-reread 
   * 
   * @return true on success 
   */
  Bool_t InitCorrections(ULong_t    run, 
			 UShort_t   sys, 
			 UShort_t   sNN, 
			 Short_t    fld, 
			 Bool_t     mc, 
			 Bool_t     sat,
			 Bool_t     force=false);
  /* @} */

  /** 
   * @{ 
   * @name Get axis objects. 
   */
  /** 
   * Get the vertex axis 
   * 
   * @return The vertex axis or null
   */
  virtual const TAxis* GetVertexAxis() const { return 0; }
  /** 
   * Get the @f$\eta@f$ axis
   * 
   * @return The @f$\eta@f$ axis or null
   */
  virtual const TAxis* GetEtaAxis() const { return 0; }
  /* @} */

  /** 
   * @{ 
   * @name Misc
   */
  /** 
   * Check if the manager is initialized 
   * 
   * @return True if initialized
   */
  virtual Bool_t IsInit() const { return fIsInit; }
  /** 
   * Print information
   * 
   * @param option Options:
   * 
   *   - R  Recursive list each correction 
   *   - D  Also give details for each correction
   */
  virtual void Print(Option_t* option="") const;
  /** 
   * Browse this object
   * 
   * @param b Browser to use 
   */
  virtual void Browse(TBrowser* b);
  /** 
   * Flag that this is a folder 
   * 
   * @return Always true
   */
  virtual Bool_t IsFolder() const { return true; }
  /** 
   * Set whehter to enable debug information 
   * 
   * @param debug if true, do verbose queries 
   */
  virtual void SetDebug(Bool_t debug) { fDebug = debug; }
  /* @} */
protected:
  /** 
   * Correction registration
   */
  struct Correction : public TNamed
  {
    /** 
     * Constructor - for I/O
     */
    Correction();
    /** 
     * Constructor 
     * 
     * @param tableName   Table name
     * @param fileName    File name 
     * @param cls         Class
     * @param queryFields Enabled fields
     * @param enabled     Enabled or not 
     */
    Correction(const TString& tableName, 
	       const TString& fileName, 
	       TClass*        cls,
	       UShort_t       queryFields=kStandard,
	       Bool_t         enabled=false);
    /** 
     * Copy constructor
     * 
     * @param o Object to copy from 
     */
    Correction(const Correction& o);
    /** 
     * Assignement operator
     * 
     * @param o Object to assign from 
     * 
     * @return reference to this obejct
     */    
    Correction& operator=(const Correction& o);
    /** 
     * Destructor
     */
    ~Correction() { delete fObject; }
    /** 
     * Read the correction
     * 
     * @param db   Database interface 
     * @param run  Run number
     * @param sys  Collision system
     * @param sNN  Center of mass energy per nucleon
     * @param fld  L3 magnetic field
     * @param mc   If true, for simulated data, else real
     * @param sat  If true, for satellite interactions
     * @param vrb  If true, do verbose query
     * @param fbk  Force read
     *
     * @return true on success
     */
    Bool_t ReadIt(AliOADBForward* db,
		  ULong_t    run, 
		  UShort_t   sys, 
		  UShort_t   sNN, 
		  Short_t    fld, 
		  Bool_t     mc, 
		  Bool_t     sat,
		  Bool_t     vrb=false,
		  Bool_t     fbk=false);
    /** 
     * Store a correction
     * 
     * @param db    Possible database interface
     * @param o     Object to store 
     * @param run  Run number
     * @param sys  Collision system
     * @param sNN  Center of mass energy per nucleon
     * @param fld  L3 magnetic field
     * @param mc   If true, for simulated data, else real
     * @param sat  If true, for satellite interactions
     * @param file File to store in
     * @param meth Default run method
     * 
     * @return true on success
     */
    Bool_t StoreIt(AliOADBForward* db,
		   TObject*    o, 
		   ULong_t    run, 
		   UShort_t   sys, 
		   UShort_t   sNN, 
		   Short_t    fld, 
		   Bool_t     mc, 
		   Bool_t     sat,
		   const char* file=0,
		   const char* meth="NEAR") const;
    /** 
     * Enable this correction 
     * 
     * @param enabled If true, correction is enabled
     */
    void Enable(Bool_t enabled=true) { fEnabled = enabled; }
    /** 
     * Get the data of the correction
     * 
     * @return Data of the correction
     */
    TObject* Get();
    /** 
     * Get the data of the correction
     * 
     * @return Data of the correction
     */
    const TObject* Get() const;
    /** 
     * Set the file the table is stored in
     * 
     * @param fileName file name of file table is stored in 
     */
    void SetFile(const TString& fileName) { fTitle = fileName; }
    /** 
     * Get pointer to class meta information.  Sets the internal
     * member if not done already.
     * 
     * @return Pointer to class meta information
     */
    const TClass* TheClass() const;
    /** 
     * Print information to the screen 
     * 
     * @param option Options
     */
    void Print(Option_t* option="") const;
    /** 
     * Browse this object
     * 
     * @param b Browser to use 
     */
    void Browse(TBrowser* b);
    /** 
     * Flag that this is a folder 
     * 
     * @return Always true
     */
    Bool_t IsFolder() const { return true; }
    /**
     * Massage fields according to settings 
     */
    void MassageFields(ULong_t&  run,
		       UShort_t& sys,
		       UShort_t& sNN, 
		       Short_t & fld, 
		       Bool_t&   mc, 
		       Bool_t&   sat) const;
    Bool_t CleanIt(AliOADBForward* db, 
		   const TString& dest, 
		   Bool_t verb=false) const;
    Bool_t OpenIt(AliOADBForward* db, 
		  Bool_t vrb=false, 
		  Bool_t fallback=false) const;

    mutable TClass*  fCls;      //! Class of correction objects
    const TString fClientCls; // Class name
    UShort_t fQueryFields;    // Enabled query fields
    Bool_t   fEnabled;   // Whether we're in use 
    TString  fLastEntry; // Text representation of last entry
    TObject* fObject;    // The data 
    ClassDef(Correction,1) // Correction meta object
  };
  /**
   * Constructor 
   */
  AliCorrectionManagerBase();
  /**
   * Constructor 
   */
  AliCorrectionManagerBase(Bool_t notUsed);
  /**
   * Copy Constructor 
   */
  AliCorrectionManagerBase(const AliCorrectionManagerBase& o);
  /** 
   * Assignement operator
   * 
   * @param o Object to assign from
   * 
   * @return Reference to this 
   */
  AliCorrectionManagerBase& operator=(const AliCorrectionManagerBase& o);
  /** 
   * Register a correction 
   * 
   * @param id   Identifier 
   * @param corr Correction 
   */  
  void RegisterCorrection(Int_t id, Correction* corr);
  /** 
   * Register a new correction. 
   * 
   * @param id         Identifier 
   * @param tableName  Table name 
   * @param fileName   File name 
   * @param cls        Class 
   * @param fields     Fields 
   * @param enabled    Enabled or not 
   */
  void RegisterCorrection(Int_t id, 
			  const TString& tableName, 
			  const TString& fileName, 
			  TClass*        cls,
			  UShort_t       fields=kStandard,
			  Bool_t         enabled=false);  
  /** 
   * Enable the correction at @a id
   * 
   * @param id Identifier 
   * @param enable Whether to enable (true) or disable (false)
   */
  void EnableCorrection(Int_t id, Bool_t enable=true);
  /** 
   * Get the correction at @a id
   * 
   * @param id Identifier 
   * 
   * @return Correction or null
   */
  Correction* GetCorrection(Int_t id);
  /** 
   * Get the correction at @a id
   * 
   * @param id Identifier 
   * 
   * @return Correction or null
   */
  const Correction* GetCorrection(Int_t id) const;
  /** 
   * Set the correction file 
   * 
   * @param id        Identifier 
   * @param fileName  file 
   */
  void SetCorrectionFile(Int_t id, const TString& fileName) const;
  /** 
   * Get the id of the correction with a given name
   * 
   * @param what Name of correction to look for
   * 
   * @return Correction identifier 
   */
  Int_t GetId(const TString& what) const;
  /** 
   * Get the id of the correction to store an object
   * 
   * @param obj Correction object 
   * 
   * @return Correction identifier 
   */
  Int_t GetId(const TObject* obj) const;
  /** 
   * Get the object corresponding to ID
   * 
   * @param id Correction identifier 
   * 
   * @return Object of correction, or null if correction not found or in-active
   */
  TObject* Get(Int_t id);
  /** 
   * Get the object corresponding to ID
   * 
   * @param id Correction identifier 
   * 
   * @return Object of correction, or null if correction not found or in-active
   */
  const TObject* Get(Int_t id) const;
  /** 
   * Read in all corrections 
   * 
   * @param run    Run number 
   * @param sys    System 
   * @param sNN    Center of mass energy 
   * @param fld    L3 magnetic field
   * @param mc     For simulations 
   * @param sat    For satellite interactions 
   * 
   * @return true on success 
   */
  Bool_t CheckConditions(ULong_t    run, 
			 UShort_t   sys, 
			 UShort_t   sNN, 
			 Short_t    fld, 
			 Bool_t     mc, 
			 Bool_t     sat);
  /** 
   * Read in all corrections 
   * 
   * @param run    Run number 
   * @param sys    System 
   * @param sNN    Center of mass energy 
   * @param fld    L3 magnetic field
   * @param mc     For simulations 
   * @param sat    For satellite interactions 
   * 
   * @return true on success 
   */
  Bool_t ReadCorrections(ULong_t    run, 
			 UShort_t   sys, 
			 UShort_t   sNN, 
			 Short_t    fld, 
			 Bool_t     mc, 
			 Bool_t     sat);
  /** 
   * Read in a correction
   * 
   * @param id     Correction identifier 
   * @param run    Run number 
   * @param sys    System 
   * @param sNN    Center of mass energy 
   * @param fld    L3 magnetic field
   * @param mc     For simulations 
   * @param sat    For satellite interactions 
   * 
   * @return true on success 
   */
  Bool_t ReadCorrection(Int_t      id,
			ULong_t    run, 
			UShort_t   sys, 
			UShort_t   sNN, 
			Short_t    fld, 
			Bool_t     mc, 
			Bool_t     sat);
  /** 
   * Set the correction file name for correction at @a i
   * 
   * @param i    Identifier 
   * @param file Filename 
   */
  void SetCorrectionFile(Int_t i, const TString& file);
  
  TObjArray       fCorrections; // List of corrections
  Bool_t          fIsInit;      // Whether we're intialized or not 
  ULong_t         fRun;         // Cached run number
  UShort_t        fSys;         // Cached system (1:pp 2:PbPb 3:pPb)
  UShort_t        fSNN;         // Cached center of mass energy [GeV]
  Short_t         fField;       // Cached L3 magnetic field [kG]
  Bool_t          fMC;          // Cached Simulation flag
  Bool_t          fSatellite;   // Cached satellite interaction flat
  AliOADBForward* fDB;          //! do not store 
  Bool_t          fDebug;       // If true, do verbose queries 
  Bool_t          fFallBack;    // If true, enable fall-back queries 
  ClassDef(AliCorrectionManagerBase,2);
};

#endif

			  
		  
    
 AliCorrectionManagerBase.h:1
 AliCorrectionManagerBase.h:2
 AliCorrectionManagerBase.h:3
 AliCorrectionManagerBase.h:4
 AliCorrectionManagerBase.h:5
 AliCorrectionManagerBase.h:6
 AliCorrectionManagerBase.h:7
 AliCorrectionManagerBase.h:8
 AliCorrectionManagerBase.h:9
 AliCorrectionManagerBase.h:10
 AliCorrectionManagerBase.h:11
 AliCorrectionManagerBase.h:12
 AliCorrectionManagerBase.h:13
 AliCorrectionManagerBase.h:14
 AliCorrectionManagerBase.h:15
 AliCorrectionManagerBase.h:16
 AliCorrectionManagerBase.h:17
 AliCorrectionManagerBase.h:18
 AliCorrectionManagerBase.h:19
 AliCorrectionManagerBase.h:20
 AliCorrectionManagerBase.h:21
 AliCorrectionManagerBase.h:22
 AliCorrectionManagerBase.h:23
 AliCorrectionManagerBase.h:24
 AliCorrectionManagerBase.h:25
 AliCorrectionManagerBase.h:26
 AliCorrectionManagerBase.h:27
 AliCorrectionManagerBase.h:28
 AliCorrectionManagerBase.h:29
 AliCorrectionManagerBase.h:30
 AliCorrectionManagerBase.h:31
 AliCorrectionManagerBase.h:32
 AliCorrectionManagerBase.h:33
 AliCorrectionManagerBase.h:34
 AliCorrectionManagerBase.h:35
 AliCorrectionManagerBase.h:36
 AliCorrectionManagerBase.h:37
 AliCorrectionManagerBase.h:38
 AliCorrectionManagerBase.h:39
 AliCorrectionManagerBase.h:40
 AliCorrectionManagerBase.h:41
 AliCorrectionManagerBase.h:42
 AliCorrectionManagerBase.h:43
 AliCorrectionManagerBase.h:44
 AliCorrectionManagerBase.h:45
 AliCorrectionManagerBase.h:46
 AliCorrectionManagerBase.h:47
 AliCorrectionManagerBase.h:48
 AliCorrectionManagerBase.h:49
 AliCorrectionManagerBase.h:50
 AliCorrectionManagerBase.h:51
 AliCorrectionManagerBase.h:52
 AliCorrectionManagerBase.h:53
 AliCorrectionManagerBase.h:54
 AliCorrectionManagerBase.h:55
 AliCorrectionManagerBase.h:56
 AliCorrectionManagerBase.h:57
 AliCorrectionManagerBase.h:58
 AliCorrectionManagerBase.h:59
 AliCorrectionManagerBase.h:60
 AliCorrectionManagerBase.h:61
 AliCorrectionManagerBase.h:62
 AliCorrectionManagerBase.h:63
 AliCorrectionManagerBase.h:64
 AliCorrectionManagerBase.h:65
 AliCorrectionManagerBase.h:66
 AliCorrectionManagerBase.h:67
 AliCorrectionManagerBase.h:68
 AliCorrectionManagerBase.h:69
 AliCorrectionManagerBase.h:70
 AliCorrectionManagerBase.h:71
 AliCorrectionManagerBase.h:72
 AliCorrectionManagerBase.h:73
 AliCorrectionManagerBase.h:74
 AliCorrectionManagerBase.h:75
 AliCorrectionManagerBase.h:76
 AliCorrectionManagerBase.h:77
 AliCorrectionManagerBase.h:78
 AliCorrectionManagerBase.h:79
 AliCorrectionManagerBase.h:80
 AliCorrectionManagerBase.h:81
 AliCorrectionManagerBase.h:82
 AliCorrectionManagerBase.h:83
 AliCorrectionManagerBase.h:84
 AliCorrectionManagerBase.h:85
 AliCorrectionManagerBase.h:86
 AliCorrectionManagerBase.h:87
 AliCorrectionManagerBase.h:88
 AliCorrectionManagerBase.h:89
 AliCorrectionManagerBase.h:90
 AliCorrectionManagerBase.h:91
 AliCorrectionManagerBase.h:92
 AliCorrectionManagerBase.h:93
 AliCorrectionManagerBase.h:94
 AliCorrectionManagerBase.h:95
 AliCorrectionManagerBase.h:96
 AliCorrectionManagerBase.h:97
 AliCorrectionManagerBase.h:98
 AliCorrectionManagerBase.h:99
 AliCorrectionManagerBase.h:100
 AliCorrectionManagerBase.h:101
 AliCorrectionManagerBase.h:102
 AliCorrectionManagerBase.h:103
 AliCorrectionManagerBase.h:104
 AliCorrectionManagerBase.h:105
 AliCorrectionManagerBase.h:106
 AliCorrectionManagerBase.h:107
 AliCorrectionManagerBase.h:108
 AliCorrectionManagerBase.h:109
 AliCorrectionManagerBase.h:110
 AliCorrectionManagerBase.h:111
 AliCorrectionManagerBase.h:112
 AliCorrectionManagerBase.h:113
 AliCorrectionManagerBase.h:114
 AliCorrectionManagerBase.h:115
 AliCorrectionManagerBase.h:116
 AliCorrectionManagerBase.h:117
 AliCorrectionManagerBase.h:118
 AliCorrectionManagerBase.h:119
 AliCorrectionManagerBase.h:120
 AliCorrectionManagerBase.h:121
 AliCorrectionManagerBase.h:122
 AliCorrectionManagerBase.h:123
 AliCorrectionManagerBase.h:124
 AliCorrectionManagerBase.h:125
 AliCorrectionManagerBase.h:126
 AliCorrectionManagerBase.h:127
 AliCorrectionManagerBase.h:128
 AliCorrectionManagerBase.h:129
 AliCorrectionManagerBase.h:130
 AliCorrectionManagerBase.h:131
 AliCorrectionManagerBase.h:132
 AliCorrectionManagerBase.h:133
 AliCorrectionManagerBase.h:134
 AliCorrectionManagerBase.h:135
 AliCorrectionManagerBase.h:136
 AliCorrectionManagerBase.h:137
 AliCorrectionManagerBase.h:138
 AliCorrectionManagerBase.h:139
 AliCorrectionManagerBase.h:140
 AliCorrectionManagerBase.h:141
 AliCorrectionManagerBase.h:142
 AliCorrectionManagerBase.h:143
 AliCorrectionManagerBase.h:144
 AliCorrectionManagerBase.h:145
 AliCorrectionManagerBase.h:146
 AliCorrectionManagerBase.h:147
 AliCorrectionManagerBase.h:148
 AliCorrectionManagerBase.h:149
 AliCorrectionManagerBase.h:150
 AliCorrectionManagerBase.h:151
 AliCorrectionManagerBase.h:152
 AliCorrectionManagerBase.h:153
 AliCorrectionManagerBase.h:154
 AliCorrectionManagerBase.h:155
 AliCorrectionManagerBase.h:156
 AliCorrectionManagerBase.h:157
 AliCorrectionManagerBase.h:158
 AliCorrectionManagerBase.h:159
 AliCorrectionManagerBase.h:160
 AliCorrectionManagerBase.h:161
 AliCorrectionManagerBase.h:162
 AliCorrectionManagerBase.h:163
 AliCorrectionManagerBase.h:164
 AliCorrectionManagerBase.h:165
 AliCorrectionManagerBase.h:166
 AliCorrectionManagerBase.h:167
 AliCorrectionManagerBase.h:168
 AliCorrectionManagerBase.h:169
 AliCorrectionManagerBase.h:170
 AliCorrectionManagerBase.h:171
 AliCorrectionManagerBase.h:172
 AliCorrectionManagerBase.h:173
 AliCorrectionManagerBase.h:174
 AliCorrectionManagerBase.h:175
 AliCorrectionManagerBase.h:176
 AliCorrectionManagerBase.h:177
 AliCorrectionManagerBase.h:178
 AliCorrectionManagerBase.h:179
 AliCorrectionManagerBase.h:180
 AliCorrectionManagerBase.h:181
 AliCorrectionManagerBase.h:182
 AliCorrectionManagerBase.h:183
 AliCorrectionManagerBase.h:184
 AliCorrectionManagerBase.h:185
 AliCorrectionManagerBase.h:186
 AliCorrectionManagerBase.h:187
 AliCorrectionManagerBase.h:188
 AliCorrectionManagerBase.h:189
 AliCorrectionManagerBase.h:190
 AliCorrectionManagerBase.h:191
 AliCorrectionManagerBase.h:192
 AliCorrectionManagerBase.h:193
 AliCorrectionManagerBase.h:194
 AliCorrectionManagerBase.h:195
 AliCorrectionManagerBase.h:196
 AliCorrectionManagerBase.h:197
 AliCorrectionManagerBase.h:198
 AliCorrectionManagerBase.h:199
 AliCorrectionManagerBase.h:200
 AliCorrectionManagerBase.h:201
 AliCorrectionManagerBase.h:202
 AliCorrectionManagerBase.h:203
 AliCorrectionManagerBase.h:204
 AliCorrectionManagerBase.h:205
 AliCorrectionManagerBase.h:206
 AliCorrectionManagerBase.h:207
 AliCorrectionManagerBase.h:208
 AliCorrectionManagerBase.h:209
 AliCorrectionManagerBase.h:210
 AliCorrectionManagerBase.h:211
 AliCorrectionManagerBase.h:212
 AliCorrectionManagerBase.h:213
 AliCorrectionManagerBase.h:214
 AliCorrectionManagerBase.h:215
 AliCorrectionManagerBase.h:216
 AliCorrectionManagerBase.h:217
 AliCorrectionManagerBase.h:218
 AliCorrectionManagerBase.h:219
 AliCorrectionManagerBase.h:220
 AliCorrectionManagerBase.h:221
 AliCorrectionManagerBase.h:222
 AliCorrectionManagerBase.h:223
 AliCorrectionManagerBase.h:224
 AliCorrectionManagerBase.h:225
 AliCorrectionManagerBase.h:226
 AliCorrectionManagerBase.h:227
 AliCorrectionManagerBase.h:228
 AliCorrectionManagerBase.h:229
 AliCorrectionManagerBase.h:230
 AliCorrectionManagerBase.h:231
 AliCorrectionManagerBase.h:232
 AliCorrectionManagerBase.h:233
 AliCorrectionManagerBase.h:234
 AliCorrectionManagerBase.h:235
 AliCorrectionManagerBase.h:236
 AliCorrectionManagerBase.h:237
 AliCorrectionManagerBase.h:238
 AliCorrectionManagerBase.h:239
 AliCorrectionManagerBase.h:240
 AliCorrectionManagerBase.h:241
 AliCorrectionManagerBase.h:242
 AliCorrectionManagerBase.h:243
 AliCorrectionManagerBase.h:244
 AliCorrectionManagerBase.h:245
 AliCorrectionManagerBase.h:246
 AliCorrectionManagerBase.h:247
 AliCorrectionManagerBase.h:248
 AliCorrectionManagerBase.h:249
 AliCorrectionManagerBase.h:250
 AliCorrectionManagerBase.h:251
 AliCorrectionManagerBase.h:252
 AliCorrectionManagerBase.h:253
 AliCorrectionManagerBase.h:254
 AliCorrectionManagerBase.h:255
 AliCorrectionManagerBase.h:256
 AliCorrectionManagerBase.h:257
 AliCorrectionManagerBase.h:258
 AliCorrectionManagerBase.h:259
 AliCorrectionManagerBase.h:260
 AliCorrectionManagerBase.h:261
 AliCorrectionManagerBase.h:262
 AliCorrectionManagerBase.h:263
 AliCorrectionManagerBase.h:264
 AliCorrectionManagerBase.h:265
 AliCorrectionManagerBase.h:266
 AliCorrectionManagerBase.h:267
 AliCorrectionManagerBase.h:268
 AliCorrectionManagerBase.h:269
 AliCorrectionManagerBase.h:270
 AliCorrectionManagerBase.h:271
 AliCorrectionManagerBase.h:272
 AliCorrectionManagerBase.h:273
 AliCorrectionManagerBase.h:274
 AliCorrectionManagerBase.h:275
 AliCorrectionManagerBase.h:276
 AliCorrectionManagerBase.h:277
 AliCorrectionManagerBase.h:278
 AliCorrectionManagerBase.h:279
 AliCorrectionManagerBase.h:280
 AliCorrectionManagerBase.h:281
 AliCorrectionManagerBase.h:282
 AliCorrectionManagerBase.h:283
 AliCorrectionManagerBase.h:284
 AliCorrectionManagerBase.h:285
 AliCorrectionManagerBase.h:286
 AliCorrectionManagerBase.h:287
 AliCorrectionManagerBase.h:288
 AliCorrectionManagerBase.h:289
 AliCorrectionManagerBase.h:290
 AliCorrectionManagerBase.h:291
 AliCorrectionManagerBase.h:292
 AliCorrectionManagerBase.h:293
 AliCorrectionManagerBase.h:294
 AliCorrectionManagerBase.h:295
 AliCorrectionManagerBase.h:296
 AliCorrectionManagerBase.h:297
 AliCorrectionManagerBase.h:298
 AliCorrectionManagerBase.h:299
 AliCorrectionManagerBase.h:300
 AliCorrectionManagerBase.h:301
 AliCorrectionManagerBase.h:302
 AliCorrectionManagerBase.h:303
 AliCorrectionManagerBase.h:304
 AliCorrectionManagerBase.h:305
 AliCorrectionManagerBase.h:306
 AliCorrectionManagerBase.h:307
 AliCorrectionManagerBase.h:308
 AliCorrectionManagerBase.h:309
 AliCorrectionManagerBase.h:310
 AliCorrectionManagerBase.h:311
 AliCorrectionManagerBase.h:312
 AliCorrectionManagerBase.h:313
 AliCorrectionManagerBase.h:314
 AliCorrectionManagerBase.h:315
 AliCorrectionManagerBase.h:316
 AliCorrectionManagerBase.h:317
 AliCorrectionManagerBase.h:318
 AliCorrectionManagerBase.h:319
 AliCorrectionManagerBase.h:320
 AliCorrectionManagerBase.h:321
 AliCorrectionManagerBase.h:322
 AliCorrectionManagerBase.h:323
 AliCorrectionManagerBase.h:324
 AliCorrectionManagerBase.h:325
 AliCorrectionManagerBase.h:326
 AliCorrectionManagerBase.h:327
 AliCorrectionManagerBase.h:328
 AliCorrectionManagerBase.h:329
 AliCorrectionManagerBase.h:330
 AliCorrectionManagerBase.h:331
 AliCorrectionManagerBase.h:332
 AliCorrectionManagerBase.h:333
 AliCorrectionManagerBase.h:334
 AliCorrectionManagerBase.h:335
 AliCorrectionManagerBase.h:336
 AliCorrectionManagerBase.h:337
 AliCorrectionManagerBase.h:338
 AliCorrectionManagerBase.h:339
 AliCorrectionManagerBase.h:340
 AliCorrectionManagerBase.h:341
 AliCorrectionManagerBase.h:342
 AliCorrectionManagerBase.h:343
 AliCorrectionManagerBase.h:344
 AliCorrectionManagerBase.h:345
 AliCorrectionManagerBase.h:346
 AliCorrectionManagerBase.h:347
 AliCorrectionManagerBase.h:348
 AliCorrectionManagerBase.h:349
 AliCorrectionManagerBase.h:350
 AliCorrectionManagerBase.h:351
 AliCorrectionManagerBase.h:352
 AliCorrectionManagerBase.h:353
 AliCorrectionManagerBase.h:354
 AliCorrectionManagerBase.h:355
 AliCorrectionManagerBase.h:356
 AliCorrectionManagerBase.h:357
 AliCorrectionManagerBase.h:358
 AliCorrectionManagerBase.h:359
 AliCorrectionManagerBase.h:360
 AliCorrectionManagerBase.h:361
 AliCorrectionManagerBase.h:362
 AliCorrectionManagerBase.h:363
 AliCorrectionManagerBase.h:364
 AliCorrectionManagerBase.h:365
 AliCorrectionManagerBase.h:366
 AliCorrectionManagerBase.h:367
 AliCorrectionManagerBase.h:368
 AliCorrectionManagerBase.h:369
 AliCorrectionManagerBase.h:370
 AliCorrectionManagerBase.h:371
 AliCorrectionManagerBase.h:372
 AliCorrectionManagerBase.h:373
 AliCorrectionManagerBase.h:374
 AliCorrectionManagerBase.h:375
 AliCorrectionManagerBase.h:376
 AliCorrectionManagerBase.h:377
 AliCorrectionManagerBase.h:378
 AliCorrectionManagerBase.h:379
 AliCorrectionManagerBase.h:380
 AliCorrectionManagerBase.h:381
 AliCorrectionManagerBase.h:382
 AliCorrectionManagerBase.h:383
 AliCorrectionManagerBase.h:384
 AliCorrectionManagerBase.h:385
 AliCorrectionManagerBase.h:386
 AliCorrectionManagerBase.h:387
 AliCorrectionManagerBase.h:388
 AliCorrectionManagerBase.h:389
 AliCorrectionManagerBase.h:390
 AliCorrectionManagerBase.h:391
 AliCorrectionManagerBase.h:392
 AliCorrectionManagerBase.h:393
 AliCorrectionManagerBase.h:394
 AliCorrectionManagerBase.h:395
 AliCorrectionManagerBase.h:396
 AliCorrectionManagerBase.h:397
 AliCorrectionManagerBase.h:398
 AliCorrectionManagerBase.h:399
 AliCorrectionManagerBase.h:400
 AliCorrectionManagerBase.h:401
 AliCorrectionManagerBase.h:402
 AliCorrectionManagerBase.h:403
 AliCorrectionManagerBase.h:404
 AliCorrectionManagerBase.h:405
 AliCorrectionManagerBase.h:406
 AliCorrectionManagerBase.h:407
 AliCorrectionManagerBase.h:408
 AliCorrectionManagerBase.h:409
 AliCorrectionManagerBase.h:410
 AliCorrectionManagerBase.h:411
 AliCorrectionManagerBase.h:412
 AliCorrectionManagerBase.h:413
 AliCorrectionManagerBase.h:414
 AliCorrectionManagerBase.h:415
 AliCorrectionManagerBase.h:416
 AliCorrectionManagerBase.h:417
 AliCorrectionManagerBase.h:418
 AliCorrectionManagerBase.h:419
 AliCorrectionManagerBase.h:420
 AliCorrectionManagerBase.h:421
 AliCorrectionManagerBase.h:422
 AliCorrectionManagerBase.h:423
 AliCorrectionManagerBase.h:424
 AliCorrectionManagerBase.h:425
 AliCorrectionManagerBase.h:426
 AliCorrectionManagerBase.h:427
 AliCorrectionManagerBase.h:428
 AliCorrectionManagerBase.h:429
 AliCorrectionManagerBase.h:430
 AliCorrectionManagerBase.h:431
 AliCorrectionManagerBase.h:432
 AliCorrectionManagerBase.h:433
 AliCorrectionManagerBase.h:434
 AliCorrectionManagerBase.h:435
 AliCorrectionManagerBase.h:436
 AliCorrectionManagerBase.h:437
 AliCorrectionManagerBase.h:438
 AliCorrectionManagerBase.h:439
 AliCorrectionManagerBase.h:440
 AliCorrectionManagerBase.h:441
 AliCorrectionManagerBase.h:442
 AliCorrectionManagerBase.h:443
 AliCorrectionManagerBase.h:444
 AliCorrectionManagerBase.h:445
 AliCorrectionManagerBase.h:446
 AliCorrectionManagerBase.h:447
 AliCorrectionManagerBase.h:448
 AliCorrectionManagerBase.h:449
 AliCorrectionManagerBase.h:450
 AliCorrectionManagerBase.h:451
 AliCorrectionManagerBase.h:452
 AliCorrectionManagerBase.h:453
 AliCorrectionManagerBase.h:454
 AliCorrectionManagerBase.h:455
 AliCorrectionManagerBase.h:456
 AliCorrectionManagerBase.h:457
 AliCorrectionManagerBase.h:458
 AliCorrectionManagerBase.h:459
 AliCorrectionManagerBase.h:460
 AliCorrectionManagerBase.h:461
 AliCorrectionManagerBase.h:462
 AliCorrectionManagerBase.h:463
 AliCorrectionManagerBase.h:464
 AliCorrectionManagerBase.h:465
 AliCorrectionManagerBase.h:466
 AliCorrectionManagerBase.h:467
 AliCorrectionManagerBase.h:468
 AliCorrectionManagerBase.h:469
 AliCorrectionManagerBase.h:470
 AliCorrectionManagerBase.h:471
 AliCorrectionManagerBase.h:472
 AliCorrectionManagerBase.h:473
 AliCorrectionManagerBase.h:474
 AliCorrectionManagerBase.h:475
 AliCorrectionManagerBase.h:476
 AliCorrectionManagerBase.h:477
 AliCorrectionManagerBase.h:478
 AliCorrectionManagerBase.h:479
 AliCorrectionManagerBase.h:480
 AliCorrectionManagerBase.h:481
 AliCorrectionManagerBase.h:482
 AliCorrectionManagerBase.h:483
 AliCorrectionManagerBase.h:484
 AliCorrectionManagerBase.h:485
 AliCorrectionManagerBase.h:486
 AliCorrectionManagerBase.h:487
 AliCorrectionManagerBase.h:488
 AliCorrectionManagerBase.h:489
 AliCorrectionManagerBase.h:490
 AliCorrectionManagerBase.h:491
 AliCorrectionManagerBase.h:492
 AliCorrectionManagerBase.h:493
 AliCorrectionManagerBase.h:494
 AliCorrectionManagerBase.h:495
 AliCorrectionManagerBase.h:496
 AliCorrectionManagerBase.h:497
 AliCorrectionManagerBase.h:498
 AliCorrectionManagerBase.h:499
 AliCorrectionManagerBase.h:500
 AliCorrectionManagerBase.h:501
 AliCorrectionManagerBase.h:502
 AliCorrectionManagerBase.h:503
 AliCorrectionManagerBase.h:504
 AliCorrectionManagerBase.h:505
 AliCorrectionManagerBase.h:506
 AliCorrectionManagerBase.h:507
 AliCorrectionManagerBase.h:508
 AliCorrectionManagerBase.h:509
 AliCorrectionManagerBase.h:510
 AliCorrectionManagerBase.h:511
 AliCorrectionManagerBase.h:512
 AliCorrectionManagerBase.h:513
 AliCorrectionManagerBase.h:514
 AliCorrectionManagerBase.h:515
 AliCorrectionManagerBase.h:516
 AliCorrectionManagerBase.h:517
 AliCorrectionManagerBase.h:518
 AliCorrectionManagerBase.h:519
 AliCorrectionManagerBase.h:520
 AliCorrectionManagerBase.h:521
 AliCorrectionManagerBase.h:522
 AliCorrectionManagerBase.h:523
 AliCorrectionManagerBase.h:524
 AliCorrectionManagerBase.h:525
 AliCorrectionManagerBase.h:526
 AliCorrectionManagerBase.h:527
 AliCorrectionManagerBase.h:528
 AliCorrectionManagerBase.h:529
 AliCorrectionManagerBase.h:530
 AliCorrectionManagerBase.h:531
 AliCorrectionManagerBase.h:532
 AliCorrectionManagerBase.h:533
 AliCorrectionManagerBase.h:534
 AliCorrectionManagerBase.h:535
 AliCorrectionManagerBase.h:536
 AliCorrectionManagerBase.h:537
 AliCorrectionManagerBase.h:538
 AliCorrectionManagerBase.h:539
 AliCorrectionManagerBase.h:540
 AliCorrectionManagerBase.h:541
 AliCorrectionManagerBase.h:542
 AliCorrectionManagerBase.h:543
 AliCorrectionManagerBase.h:544
 AliCorrectionManagerBase.h:545
 AliCorrectionManagerBase.h:546
 AliCorrectionManagerBase.h:547
 AliCorrectionManagerBase.h:548
 AliCorrectionManagerBase.h:549
 AliCorrectionManagerBase.h:550
 AliCorrectionManagerBase.h:551
 AliCorrectionManagerBase.h:552
 AliCorrectionManagerBase.h:553
 AliCorrectionManagerBase.h:554
 AliCorrectionManagerBase.h:555
 AliCorrectionManagerBase.h:556
 AliCorrectionManagerBase.h:557
 AliCorrectionManagerBase.h:558
 AliCorrectionManagerBase.h:559
 AliCorrectionManagerBase.h:560
 AliCorrectionManagerBase.h:561
 AliCorrectionManagerBase.h:562
 AliCorrectionManagerBase.h:563
 AliCorrectionManagerBase.h:564
 AliCorrectionManagerBase.h:565
 AliCorrectionManagerBase.h:566
 AliCorrectionManagerBase.h:567
 AliCorrectionManagerBase.h:568
 AliCorrectionManagerBase.h:569
 AliCorrectionManagerBase.h:570
 AliCorrectionManagerBase.h:571
 AliCorrectionManagerBase.h:572
 AliCorrectionManagerBase.h:573
 AliCorrectionManagerBase.h:574
 AliCorrectionManagerBase.h:575
 AliCorrectionManagerBase.h:576
 AliCorrectionManagerBase.h:577
 AliCorrectionManagerBase.h:578
 AliCorrectionManagerBase.h:579
 AliCorrectionManagerBase.h:580
 AliCorrectionManagerBase.h:581
 AliCorrectionManagerBase.h:582
 AliCorrectionManagerBase.h:583
 AliCorrectionManagerBase.h:584
 AliCorrectionManagerBase.h:585
 AliCorrectionManagerBase.h:586
 AliCorrectionManagerBase.h:587
 AliCorrectionManagerBase.h:588
 AliCorrectionManagerBase.h:589
 AliCorrectionManagerBase.h:590
 AliCorrectionManagerBase.h:591
 AliCorrectionManagerBase.h:592
 AliCorrectionManagerBase.h:593
 AliCorrectionManagerBase.h:594
 AliCorrectionManagerBase.h:595
 AliCorrectionManagerBase.h:596
 AliCorrectionManagerBase.h:597
 AliCorrectionManagerBase.h:598
 AliCorrectionManagerBase.h:599
 AliCorrectionManagerBase.h:600
 AliCorrectionManagerBase.h:601
 AliCorrectionManagerBase.h:602
 AliCorrectionManagerBase.h:603
 AliCorrectionManagerBase.h:604
 AliCorrectionManagerBase.h:605
 AliCorrectionManagerBase.h:606
 AliCorrectionManagerBase.h:607
 AliCorrectionManagerBase.h:608
 AliCorrectionManagerBase.h:609
 AliCorrectionManagerBase.h:610
 AliCorrectionManagerBase.h:611
 AliCorrectionManagerBase.h:612
 AliCorrectionManagerBase.h:613
 AliCorrectionManagerBase.h:614
 AliCorrectionManagerBase.h:615