ROOT logo
//
// Class to fit the energy distribution.  
//
#ifndef ALIFMDENERGYFITTER_H
#define ALIFMDENERGYFITTER_H
/**
 * @file   AliFMDEnergyFitter.h
 * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
 * @date   Wed Mar 23 14:02:23 2011
 * 
 * @brief  
 * 
 * 
 * @ingroup pwglf_forward_eloss
 */
#include <TNamed.h>
// #include <TH1D.h>
#include <TAxis.h>
#include <TList.h>
#include <TObjArray.h>
#include <TClonesArray.h>
#include "AliFMDCorrELossFit.h"
#include "AliForwardUtil.h"
#include "AliLandauGaus.h"
class TH1;
class TH2;
class AliESDFMD;
class TFitResult;
class TF1;
class TArrayD;

/**
 * Class to fit the energy distribution.  
 *
 * @par Input: 
 *    - AliESDFMD object  - from reconstruction
 *
 * @par Output: 
 *    - Lists of histogram - one per ring.  Each list has a number of 
 *      histograms corresponding to the number of eta bins defined.  
 *
 * @par Corrections used: 
 *    - None
 *
 * @image html alice-int-2012-040-eloss_fits.png "Summary of fits"
 * 
 * @ingroup pwglf_forward_algo
 * @ingroup pwglf_forward_eloss
 */
class AliFMDEnergyFitter : public TNamed
{
public: 
  /** 
   * Enumeration of parameters 
   */
  enum { 
    /** Index of pre-constant @f$ C@f$ */
    kC		= AliLandauGaus::kC,
    /** Index of most probable value @f$ \Delta_p@f$ */
    kDelta	= AliLandauGaus::kDelta, 
    /** Index of Landau width @f$ \xi@f$ */
    kXi		= AliLandauGaus::kXi, 
    /** Index of Gaussian width @f$ \sigma@f$ */
    kSigma	= AliLandauGaus::kSigma, 
    /** Index of Gaussian additional width @f$ \sigma_n@f$ */
    kSigmaN	= AliLandauGaus::kSigmaN,
    /** Index of Number of particles @f$ N@f$ */
    kN		= AliLandauGaus::kN, 
    /** Base index of particle strengths @f$ a_i@f$ for 
	@f$i=2,\ldots,N@f$ */
    kA		= AliLandauGaus::kA
  };
  /** 
   * Enumeration of residual methods 
   */
  enum EResidualMethod {
    /** Do not calculate residuals */
    kNoResiduals = 0, 
    /** The residuals stored are the difference, and the errors are
	stored in the error bars of the histogram. */
    kResidualDifference, 
    /** The residuals stored are the differences scaled to the error
	on the data */ 
    kResidualScaledDifference, 
    /** The residuals stored are the square difference scale to the
	square error on the data. */
    kResidualSquareDifference
  };

  /**
   * FMD ring bits for skipping 
   */
   enum FMDRingBits { 
     /** FMD1i */
     kFMD1I=0x01,
     /** All of FMD1 */
     kFMD1 =kFMD1I,
     /** FMD2i */
     kFMD2I=0x02,
     /** FMD2o */
     kFMD2O=0x04,
     /** All of FMD2 */
     kFMD2 =kFMD2I|kFMD2O,
     /** FMD3i */
     kFMD3I=0x08,
     /** FMD3o */
     kFMD3O=0x10,
     /** All of FMD3 */
     kFMD3 =kFMD3I|kFMD3O
  };
  /** 
   * Destructor
   */
  virtual ~AliFMDEnergyFitter();
  /** 
   * Default Constructor - do not use 
   */
  AliFMDEnergyFitter();
  /** 
   * Constructor 
   * 
   * @param title Title of object  - not significant 
   */
  AliFMDEnergyFitter(const char* title);

  // -----------------------------------------------------------------
  /** 
   * @{ 
   * @name Setters of options and parameters 
   */
  /** 
   * Set the eta axis to use.  This will force the code to use this
   * eta axis definition - irrespective of whatever axis is passed to
   * the Init member function.  Therefore, this member function can be
   * used to force another eta axis than one found in the correction
   * objects. 
   * 
   * @param nBins  Number of bins 
   * @param etaMin Minimum of the eta axis 
   * @param etaMax Maximum of the eta axis 
   */
  void SetEtaAxis(Int_t nBins, Double_t etaMin, Double_t etaMax);
  /** 
   * Set the eta axis to use.  This will force the code to use this
   * eta axis definition - irrespective of whatever axis is passed to
   * the Init member function.  Therefore, this member function can be
   * used to force another eta axis than one found in the correction
   * objects. 
   * 
   * @param etaAxis Eta axis to use 
   */
  void SetEtaAxis(const TAxis& etaAxis);
  /** 
   * Set the centrality bins.  E.g., 
   * @code 
   * UShort_t n = 12;
   * Double_t bins[] = {  0.,  5., 10., 15., 20., 30., 
   *                     40., 50., 60., 70., 80., 100. };
   * task->GetFitter().SetCentralityBins(n, bins);
   * @endcode
   * 
   * @param nBins Size of @a bins
   * @param bins  Bin limits. 
   */
  void SetCentralityAxis(UShort_t nBins, Double_t* bins);
  /** 
   * Set the low cut used for energy 
   * 
   * @param lowCut Low cut
   */
  void SetLowCut(Double_t lowCut=0.3) { fLowCut = lowCut; }
  /** 
   * Set the number of bins to subtract 
   * 
   * @param n 
   */
  void SetFitRangeBinWidth(UShort_t n=4) { fFitRangeBinWidth = n; }
  /** 
   * Whether or not to enable fitting of the final merged result.  
   * Note, fitting takes quite a while and one should be careful not to do 
   * this needlessly 
   * 
   * @param doFit Whether to do the fits or not 
   */
  void SetDoFits(Bool_t doFit=kTRUE) { fDoFits = doFit; }
  /** 
   * Set whether to make the corrections object on the output.  Note,
   * fits should be enable for this to have any effect.
   * 
   * @param doMake If true (false is default), do make the corrections object. 
   */
  void SetDoMakeObject(Bool_t doMake=kTRUE) { fDoMakeObject = doMake; }
  /** 
   * Set how many particles we will try to fit at most to the data
   * 
   * @param n Max number of particle to try to fit 
   */
  void SetNParticles(UShort_t n) { fNParticles = (n<1 ? 1 : (n>7 ? 7 : n)); }
  /** 
   * Set the minimum number of entries each histogram must have 
   * before we try to fit our response function to it
   * 
   * @param n Minimum number of entries
   */
  void SetMinEntries(UShort_t n) { fMinEntries = (n < 1 ? 1 : n); }
  /**
   * Set maximum energy loss to consider 
   *
   * @param x Maximum energy loss to consider 
   */
  void SetMaxE(Double_t x) { fMaxE = x; }
  /**
   * Set number of energy loss bins 
   *
   * @param x Number of energy loss bins 
   */
  void SetNEbins(Int_t x) { fNEbins = x; }
  /** 
   * Set the maximum relative error 
   * 
   * @param e Maximum relative error 
   */
  void SetMaxRelativeParameterError(Double_t e=0.2) { fMaxRelParError = e; }
  /** 
   * Set the maximum @f$ \chi^2/\nu@f$ 
   * 
   * @param c Maximum @f$ \chi^2/\nu@f$ 
   */
  void SetMaxChi2PerNDF(Double_t c=10) { fMaxChi2PerNDF = c; }
  /** 
   * Set the least weight
   * 
   * @param c Least weight
   */
  void SetMinWeight(Double_t c=1e-7) { fMinWeight = c; }
  /**
   * Set wheter to use increasing bin sizes 
   *
   * @param x Wheter to use increasing bin sizes 
   */
  void SetUseIncreasingBins(Bool_t x) { fUseIncreasingBins = x; }
  /** 
   * Set whether to make residuals, and in that case how. 
   *
   * - Square difference: @f$chi_i^2=(h_i - f(x_i))^2/\delta_i^2@f$ 
   * - Scaled difference: @f$(h_i - f(x_i))/\delta_i@f$ 
   * - Difference: @f$(h_i - f(x_i)) \pm\delta_i@f$ 
   *
   * where @f$h_i, x_i, \delta_i@f$ is the bin content, bin center,
   * and bin error for bin @f$i@f$ respectively, and @f$ f@f$ is the
   * fitted function.
   * 
   * @param x Residual method 
   */
  void SetStoreResiduals(EResidualMethod x=kResidualDifference) 
  { 
    fResidualMethod = x; 
  }
  /** 
   * Set the regularization cut @f$c_{R}@f$.  If a @f$\Delta@f$
   * distribution has more entries @f$ N_{dist}@f$ than @f$c_{R}@f$,
   * then we modify the errors of the the distribution with the factor
   * 
   * @f[
   * \sqrt{N_{dist}/c_{R}}
   * @f]
   *
   * to keep the @f$\chi^2/\nu@f$ within resonable limits. 
   *
   * The large residuals @f$chi_i^2=(h_i - f(x_i))^2/\delta_i^2@f$
   * (see also SetStoreResiduals) comes about on the boundary between
   * the @f$N@f$ and @f$N+1@f$ particle contributions, and seems to
   * fall off for larger @f$N@f$. This may indicate that there's a
   * component in the distributions that the function
   *
   * @f[
   *   f(\Delta;\Delta_p,\xi,\sigma,\mathbf{a}) = \sum_i=1^{n} a_i\int
   *   d\Delta' L(\Delta;\Delta',\xi) G(\Delta';\Delta_p,\sigma)
   * @f]
   * 
   * does not capture.   
   *
   * @param cut
   */
  void SetRegularizationCut(Double_t cut=3e6) 
  {
    fRegularizationCut = cut;
  }
  void SetSkips(UShort_t skip) { fSkips = skip; }
  /** 
   * Set the debug level.  The higher the value the more output 
   * 
   * @param dbg Debug level 
   */
  void SetDebug(Int_t dbg=1);
  /**
   * Whether to enable the extra shift in the MPV from @f$ \sigma/\xi@f$ 
   *
   * @param use If true, enable extra shift @f$\delta\Delta_p(\sigma/\xi)@f$  
   */
  void SetEnableDeltaShift(Bool_t use=true);

  /* @} */
  // -----------------------------------------------------------------
  /** 
   * @{ 
   * @name Processing 
   */
  void Init();
  /** 
   * Define the output histograms.  These are put in a sub list of the
   * passed list.   The histograms are merged before the parent task calls 
   * AliAnalysisTaskSE::Terminate 
   * 
   * @param dir Directory to add to 
   */
  virtual void CreateOutputObjects(TList* dir);
  /** 
   * Initialise the task
   * 
   * @param etaAxis The eta axis to use.  Note, that if the eta axis
   * has already been set (using SetEtaAxis), then this parameter will be 
   * ignored
   */
 virtual void SetupForData(const TAxis& etaAxis);
  /** 
   * Fitter the input AliESDFMD object
   * 
   * @param input     Input 
   * @param cent      Event centrality (or < 0 if not valid)
   * @param empty     Whether the event is 'empty'
   * 
   * @return True on success, false otherwise 
   */
  virtual Bool_t Accumulate(const AliESDFMD& input, 
			    Double_t         cent,
			    Bool_t           empty);
  /** 
   * Scale the histograms to the total number of events 
   * 
   * @param dir Where the histograms are  
   */
  virtual void Fit(const TList* dir);
  /** 
   * Generate the corrections object 
   * 
   * @param dir List to analyse 
   */
  void MakeCorrectionsObject(TList* dir);
  /** @} */
  /** 
   * Print information
   * 
   * @param option Not used 
   */
  void Print(Option_t* option="") const;
  /** 
   * Read the parameters from a list - used when re-running the code 
   * 
   * @param list Input list 
   * 
   * @return true if the parameter where read 
   */
  Bool_t ReadParameters(const TCollection* list);
protected:
  /** 
   * Copy constructor 
   * 
   * @param o Object to copy from 
   */
  AliFMDEnergyFitter(const AliFMDEnergyFitter& o);
  /** 
   * Assignment operator 
   * 
   * @param o Object to assign from 
   * 
   * @return Reference to this 
   */
  AliFMDEnergyFitter& operator=(const AliFMDEnergyFitter& o);

  /** 
   * Internal data structure to keep track of the histograms
   */
  struct RingHistos : public AliForwardUtil::RingHistos
  { 
    typedef AliFMDCorrELossFit::ELossFit ELossFit_t;
    /** 
     * Default CTOR
     */
    RingHistos();
    /** 
     * Constructor
     * 
     * @param d detector
     * @param r ring 
     */
    RingHistos(UShort_t d, Char_t r);
    /** 
     * Copy constructor - not defined
     * 
     * @param o Object to copy from 
     */
    RingHistos(const RingHistos& o);
    /** 
     * Assignment operator  - not defined
     * 
     * @param o Object to assign from 
     * 
     * @return Reference to this 
     */
    RingHistos& operator=(const RingHistos& o);
    /** 
     * Destructor 
     */
    ~RingHistos();
    /** 
     * Make an axis with increasing bins 
     * 
     * @param n    Number of bins 
     * @param min  Minimum 
     * @param max  Maximum
     * 
     * @return An axis with quadratically increasing bin size 
     */
    virtual TArrayD MakeIncreasingAxis(Int_t    n, 
				       Double_t min, 
				       Double_t max) const;
    /** 
     * Make E/E_mip histogram 
     * 
     * @param name    Name of histogram
     * @param title   Title of histogram
     * @param eAxis   @f$\eta@f$ axis
     * @param deMax   Maximum energy loss 
     * @param nDeBins Number energy loss bins 
     * @param incr    Whether to make bins of increasing size
     */
    TH2* Make(const char*  name, 
	      const char*  title, 
	      const TAxis& eAxis, 
	      Double_t     deMax=12, 
	      Int_t        nDeBins=300, 
	      Bool_t       incr=true);
    /** 
     * Define outputs
     * 
     * @param dir 
     */
    virtual void CreateOutputObjects(TList* dir);
    /** 
     * Initialise object 
     * 
     * @param eAxis      Eta axis
     * @param cAxis      Centrality axis 
     * @param maxDE      Max energy loss to consider 
     * @param nDEbins    Number of bins 
     * @param useIncrBin Whether to use an increasing bin size 
     */
    virtual void SetupForData(const TAxis& eAxis, 
			      const TAxis& cAxis,
			      Double_t     maxDE=10, 
			      Int_t        nDEbins=300, 
			      Bool_t       useIncrBin=true);
    /** 
     * Fill histogram 
     * 
     * @param empty  True if event is empty
     * @param eta    @f$ Eta@f$
     * @param icent  Centrality bin (1 based)
     * @param mult   Signal 
     */
    virtual void Fill(Bool_t empty, Double_t eta, Int_t icent, Double_t mult);
    /** 
     * Get the the 2D histogram eloss name from our sub-list of @a dir
     * and call the Fit function described below (with &fBest) as last
     * argument.
     * 
     * @param dir         Output list 
     * @param lowCut      Lower cut 
     * @param nParticles  Max number of convolved landaus to fit
     * @param minEntries  Minimum number of entries 
     * @param minusBins   Number of bins from peak to subtract to 
     *                    get the fit range 
     * @param relErrorCut Cut applied to relative error of parameter. 
     *                    Note, for multi-particle weights, the cut 
     *                    is loosend by a factor of 2 
     * @param chi2nuCut   Cut on @f$ \chi^2/\nu@f$ - 
     *                    the reduced @f$\chi^2@f$ 
     * @param minWeight   Least weight ot consider
     * @param regCut      Regularization cut-off
     * @param residuals   Mode for residual plots
     *
     * @return List of fit parameters 
     */
    virtual TObjArray* Fit(TList*          dir, 
			   Double_t        lowCut, 
			   UShort_t        nParticles,
			   UShort_t        minEntries,
			   UShort_t        minusBins,
			   Double_t        relErrorCut, 
			   Double_t        chi2nuCut,
			   Double_t        minWeight,
			   Double_t        regCut,
			   EResidualMethod residuals) const;
    /** 
     * Get the the 2D histogram @a name from our sub-list of @a
     * dir. Then for each eta slice, try to fit the energu loss
     * distribution up to @a nParticles particle responses.
     *
     * The fitted distributions (along with the functions fitted) are
     * stored in a newly created sublist (<i>name</i>Dists).
     *
     * The fit parameters are also recorded in the newly created sub-list 
     * <i>name</i>Results.  
     *
     * If @a residuals is not equal to kNoResiduals, then the
     * residuals of the fits will be stored in the newly created
     * sub-list <i>name</i>Residuals.
     *
     * A histogram named <i>name</i>Status is also generated and
     * stored in the output list.
     * 
     * @param dir         Output list 
     * @param name        Name of 2D base histogram in list
     * @param lowCut      Lower cut 
     * @param nParticles  Max number of convolved landaus to fit
     * @param minEntries  Minimum number of entries 
     * @param minusBins   Number of bins from peak to subtract to 
     *                    get the fit range 
     * @param relErrorCut Cut applied to relative error of parameter. 
     *                    Note, for multi-particle weights, the cut 
     *                    is loosend by a factor of 2 
     * @param chi2nuCut   Cut on @f$ \chi^2/\nu@f$ - 
     *                    the reduced @f$\chi^2@f$ 
     * @param minWeight   Least weight ot consider
     * @param regCut      Regularization cut-off
     * @param residuals   Mode for residual plots
     * @param scaleToPeak If true, scale distribution to peak value
     * @param best        Optional array to store fits in
     *
     * @return List of fit parameters 
     */
    virtual TObjArray* FitSlices(TList*          dir, 
				 const char*     name,
				 Double_t        lowCut, 
				 UShort_t        nParticles,
				 UShort_t        minEntries,
				 UShort_t        minusBins,
				 Double_t        relErrorCut, 
				 Double_t        chi2nuCut,
				 Double_t        minWeight,
				 Double_t        regCut,
				 EResidualMethod residuals,
				 Bool_t          scaleToPeak=true,
				 TObjArray*      best=0) const;
    /** 
     * Do scaling of histogram before fitting.  This can be
     * overwritten to do some smoothing or the like. By default, this
     * simply scales to the bin width.
     * 
     * @param dist Histogram to scale. 
     */     
    virtual void Scale(TH1* dist) const;
    /** 
     * Fit a signal histogram.  First, the bin @f$ b_{min}@f$ with
     * maximum bin content in the range @f$ [E_{min},\infty]@f$ is
     * found.  Then the fit range is set to the bin range 
     * @f$ [b_{min}-\Delta b,b_{min}+2\Delta b]@f$, and a 1 
     * particle signal is fitted to that.  The parameters of that fit 
     * is then used as seeds for a fit of the @f$ N@f$ particle response 
     * to the data in the range 
     * @f$ [b_{min}-\Delta b,N(\Delta_1+\xi_1\log(N))+2N\xi@f$
     * 
     * @param dist        Histogram to fit 
     * @param lowCut      Lower cut @f$ E_{min}@f$ on signal 
     * @param minEntries  Least number of entries required
     * @param nParticles  Max number @f$ N@f$ of convolved landaus to fit
     * @param minusBins   Number of bins @f$ \Delta b@f$ from peak to 
     *                    subtract to get the fit range 
     * @param relErrorCut Cut applied to relative error of parameter. 
     *                    Note, for multi-particle weights, the cut 
     *                    is loosend by a factor of 2 
     * @param chi2nuCut   Cut on @f$ \chi^2/\nu@f$ - 
     *                    the reduced @f$\chi^2@f$ 
     * @param minWeight   Least weight ot consider
     * @param regCut      Regularization cut-off
     * @param scaleToPeak If true, scale distribution to peak value
     * @param status      On return, contain the status code (0: OK, 1:
     *                    empty, 2: low statistics, 3: fit failed)
     * 
     * @return The best fit function 
     */
    virtual ELossFit_t* FitHist(TH1*      dist,
				Double_t  lowCut, 
				UShort_t  nParticles,
				UShort_t  minEntries,
				UShort_t  minusBins,
				Double_t  relErrorCut, 
				Double_t  chi2nuCut,
				Double_t  minWeight,
				Double_t  regCut,
				Bool_t    scaleToPeak,
				UShort_t& status) const;
    /** 
     * Find the best fit 
     * 
     * @param dist           Histogram 
     * @param relErrorCut    Cut applied to relative error of parameter. 
     *                       Note, for multi-particle weights, the cut 
     *                       is loosend by a factor of 2 
     * @param chi2nuCut      Cut on @f$ \chi^2/\nu@f$ - 
     *                       the reduced @f$\chi^2@f$ 
     * @param minWeightCut   Least valid @f$ a_i@f$ 
     * 
     * @return Best fit 
     */
    virtual ELossFit_t* FindBestFit(const TH1* dist,
				    Double_t   relErrorCut, 
				    Double_t   chi2nuCut,
				    Double_t   minWeightCut) const;
    /** 
     * Calculate residuals of the fit 
     * 
     * @param mode   How to calculate 
     * @param lowCut Lower cut 
     * @param dist   Distribution 
     * @param fit    Function fitted to distribution
     * @param out    Output list to store residual histogram in
     */
    virtual void CalculateResiduals(EResidualMethod  mode,
				    Double_t         lowCut,
				    TH1*             dist, 
				    ELossFit_t*      fit, 
				    TCollection*     out) const;
    /** 
     * Find the best fits.  This assumes that the array fBest has been
     * filled with the best possible fits for each eta bin, and that
     * the fits are placed according to the bin number of the eta bin.
     *
     * This is called by the parent class when generating the corretion 
     * object. 
     * 
     * @param d    Parent list
     * @param obj  Object to add fits to
     * @param eta  Eta axis 
     */
    virtual void FindBestFits(const TList*        d, 
			      AliFMDCorrELossFit& obj,
			      const TAxis&        eta);
    /** 
     * Make a parameter histogram
     * 
     * @param name   Name of histogram.
     * @param title  Title of histogram. 
     * @param eta    Eta axis 
     * 
     * @return 
     */
    TH1* MakePar(const char* name, const char* title, const TAxis& eta) const;
    /** 
     * Make a histogram that contains the results of the fit over the
     * full ring
     * 
     * @param name  Name 
     * @param title Title
     * @param eta   Eta axis 
     * @param low   Least bin
     * @param high  Largest bin
     * @param val   Value of parameter 
     * @param err   Error on parameter 
     * 
     * @return The newly allocated histogram 
     */
    TH1* MakeTotal(const char*  name, 
		    const char*  title, 
		    const TAxis& eta, 
		    Int_t        low, 
		    Int_t        high, 
		    Double_t     val, 
		    Double_t     err) const;
    TH1*                 fEDist;     // Ring energy distribution 
    TH1*                 fEmpty;     // Ring energy dist for empty events
    TH2*                 fHist;      // Two dimension Delta distribution
    // TList*               fEtaEDists; // Energy distributions per eta bin. 
    TList*               fList;
    mutable TObjArray    fBest;
    mutable TClonesArray fFits;
    Int_t                fDebug;
    ClassDef(RingHistos,4);
  };
  virtual RingHistos* CreateRingHistos(UShort_t d, Char_t r) const;
  /** 
   * Get the ring histogram container 
   * 
   * @param d Detector
   * @param r Ring 
   * 
   * @return Ring histogram container 
   */
  RingHistos* GetRingHistos(UShort_t d, Char_t r) const;
  /** 
   * Check if the detector @a d, ring @a r is listed <i>in</i> the @a
   * skips bit mask.  If the detector/ring is in the mask, return true.
   * 
   * That is, use case is 
   * @code 
   *  for (UShort_t d=1. d<=3, d++) {
   *    UShort_t nr = (d == 1 ? 1 : 2);
   *    for (UShort_t q = 0; q < nr; q++) { 
   *      Char_t r = (q == 0 ? 'I' : 'O');
   *      if (CheckSkips(d, r, skips)) continue; 
   *      // Process detector/ring 
   *    }
   *  }
   * @endcode
   *
   * @param d      Detector
   * @param r      Ring 
   * @param skips  Mask of detector/rings to skip
   * 
   * @return True if detector @a d, ring @a r is in the mask @a skips 
   */
  static Bool_t CheckSkip(UShort_t d, Char_t r, UShort_t skips);

  TList           fRingHistos;        // List of histogram containers
  Double_t        fLowCut;            // Low cut on energy
  UShort_t        fNParticles;        // Number of landaus to try to fit 
  UShort_t        fMinEntries;        // Minimum number of entries
  UShort_t        fFitRangeBinWidth;  // N-bins to subtract from found max
  Bool_t          fDoFits;            // Whether to actually do the fits 
  Bool_t          fDoMakeObject;      // Whether to make corrections object
  TAxis           fEtaAxis;           // Eta axis 
  TAxis           fCentralityAxis;    // Centrality axis 
  Double_t        fMaxE;              // Maximum energy loss to consider 
  Int_t           fNEbins;            // Number of energy loss bins 
  Bool_t          fUseIncreasingBins; // Wheter to use increasing bin sizes 
  Double_t        fMaxRelParError;    // Relative error cut
  Double_t        fMaxChi2PerNDF;     // chi^2/nu cit
  Double_t        fMinWeight;         // Minimum weight value 
  Int_t           fDebug;             // Debug level 
  EResidualMethod fResidualMethod;    // Whether to store residuals (debugging)
  UShort_t        fSkips;             // Rings to skip when fitting 
  Double_t        fRegularizationCut; // When to regularize the chi^2

  ClassDef(AliFMDEnergyFitter,8); //
};

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