ROOT logo
#ifndef ALIFMDPARAMETERS_H
#define ALIFMDPARAMETERS_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights
 * reserved. 
 *
 * Latest changes by Christian Holm Christensen <cholm@nbi.dk>
 *
 * See cxx source for full Copyright notice                               
 */
//____________________________________________________________________
//
//  Singleton class to handle various parameters (not geometry) of the
//  FMD
//  Should get ata fromm Conditions DB.
//
/** @file    AliFMDParameters.h
    @author  Christian Holm Christensen <cholm@nbi.dk>
    @date    Mon Mar 27 12:44:43 2006
    @brief   Manager of FMD parameters
*/
#ifndef ROOT_TNamed
# include <TNamed.h>
#endif
#ifndef ROOT_TArrayI
# include <TArrayI.h>
#endif
#include "AliFMDCalibFwd.h"
class AliCDBEntry;
class AliFMDPreprocessor;

//____________________________________________________________________
//
//  Singleton class to handle various parameters (not geometry) of the
//  FMD
//  Should get ata fromm Conditions DB.
//

/** @brief This class is a singleton that handles various parameters
    of the FMD detectors.  
    This class reads from the Conditions DB to get the various
    parameters, which code can then request from here. In that way,
    all code uses the same data, and the interface is consistent.
     
    Some of the parameter managed are 
    - @c fPedestal, @c fPedestalWidth
      Mean and width of the pedestal.  The pedestal is simulated
      by a Guassian, but derived classes my override MakePedestal
      to simulate it differently (or pick it up from a database).
    - @c fVA1MipRange
      The dymamic MIP range of the VA1_ALICE pre-amplifier chip 
    - @c fAltroChannelSize
      The largest number plus one that can be stored in one
      channel in one time step in the ALTRO ADC chip. 
    - @c fSampleRate
      How many times the ALTRO ADC chip samples the VA1_ALICE
      pre-amplifier signal.   The VA1_ALICE chip is read-out at
      10MHz, while it's possible to drive the ALTRO chip at
      25MHz.  That means, that the ALTRO chip can have time to
      sample each VA1_ALICE signal up to 2 times.  Although it's
      not certain this feature will be used in the production,
      we'd like have the option, and so it should be reflected in
      the code.

    @ingroup FMD_base
*/
class AliFMDParameters : public TNamed
{
public:
  /** Enumeration of things to initialize */ 
  enum What { 
    /** Pulser gain */ 
    kPulseGain = 0x1, // Pulser gain 
    /** Pedestals and noise */ 
    kPedestal = 0x2, // Pedestal and noise 
    /** Dead channel map */ 
    kDeadMap = 0x4, // Dead channel map
    /**  Over sampling rate */ 
    kSampleRate = 0x8, // Over sampling rate 
    /** Zero suppression parameters */ 
    kZeroSuppression = 0x10, // Zero suppression parameters 
    /** ALTRO data map */ 
    kAltroMap = 0x20, // Altro channel map
    /** Strip Range */
    kStripRange = 0x40 //Strip range, 
  };
  enum { 
    kAll = (kPulseGain|kPedestal|kDeadMap|kSampleRate|
	    kZeroSuppression|kAltroMap|kStripRange)
  };
    
  /** 
   * Singleton access
   * 
   * 
   * @return singleton
   */
  static AliFMDParameters* Instance();

  /** 
   * Initialize the manager.  This tries to read the parameters from
   * CDB.  If that fails, the class uses the hard-coded parameters.
   *
   * @param forceReInit Force (re-)initalize flag
   * @param what        What to initialize 
   *
   * @return 0 on success, bit mask of failed elements otherwise
   */
  UShort_t Init(Bool_t forceReInit=kFALSE, UInt_t what=kAll );
  /** 
   * Initialize the manager.  This tries to read the parameters from
   * CDB.  If that fails, the class uses the hard-coded parameters.
   * 
   * @param pp          Preprocessor 
   * @param forceReInit Force (re-)initalize flag
   * @param what        What to initialize 
   *
   * @return 0 on success, bit mask of failed elements otherwise
   */
  UShort_t Init(AliFMDPreprocessor* pp, 
	    Bool_t              forceReInit=kFALSE, 
	    UInt_t              what=kAll);
  /** 
   * Initialize the manager.  This will try to read some calibrations
   * (sample rate, strip range, gains, pedestals) from local comma
   * separated value (CSV) files in the directory pointed at by @a
   * path.  If they are not found, then they will be retrieved from
   * OCDB as appropriately.   Other calibrations are always read from
   * OCDB.  
   * 
   * The CSV files should be named as 
   * 
   * - Pedestals: <tt>peds</tt><i>det_number</i><tt>.csv</tt>
   * - Gains: <tt>gains</tt><i>det_number</i><tt>.csv</tt>
   * - Sample Rate: <tt>conditions</tt><i>det_number</i><tt>.csv</tt>
   * - Strip Range: <tt>conditions</tt><i>det_number</i><tt>.csv</tt>
   *
   * where <i>det_number</i> is the detector number (1, 2, or 3). 
   *
   * @param path        Where to look for the CSV files
   * @param forceReInit Always reinitialise 
   * @param what        What calibrations to load. 
   *
   * @return 0 on success, bit mask of failed elements otherwise
   */  
  UShort_t Init(const char* path, 
		Bool_t      forceReInit=kFALSE, 
		UInt_t      what=kAll);
  
  /** 
   * Automatically generate a dead map from the pedestals and gains.
   * A channel is marked as dead of the noise is too high (currently
   * more than 10 ADC counts), or the gain is unreasonable (currently
   * larger than 10, or smaller than 0.1). 
   * 
   * The procedure does not overwrite channels previously marked as
   * dead - e.g., channels marked as dead in the calibration loaded
   * from OCDB will continue to be marked as dead.  That is, this
   * procedure will never make a channel un-dead. 
   *
   * @param maxNoise  Maximum noise value before a channel is marked
   * as dead. 
   * @param minGain   Minimum value of the calibrated gain before a
   * channel is considered dead. 
   * @param maxGain   Maximum value of the calibrated gain before a
   * channel is considered dead. 
   */
  void MakeDeadMap(Float_t maxNoise=10, Float_t minGain=.1, Float_t maxGain=10);
  /** 
   * Print all parameters. 
   *
   * If option contains an 'A' then everything is printed. 
   *
   * If the option contains the string "FMD" the function will search 
   * for detector, ring, sector, and strip numbers to print, in 
   * format 
   *
   * @verbatim 
   *    FMD<detector><ring>[<sector>,<string>] 
   * @endverbatim 
   *
   * The wild card '*' means all of <detector>, <ring>, <sector>, or 
   * <strip>. 
   *
   * @param option Option string 
   */
  void Print(Option_t* option="A") const;
  /** 
   * Draw parameters. 
   *
   * @param option What to draw. Should be one of 
   * - dead	  Dead channels
   * - threshold Threshold
   * - gain	  Gain
   * - pedestal  Pedestal
   * - noise	  Noise (or pedestal width)
   * - zero	  Zero suppression
   * - rate	  Sampling rate (VA1 clock / ALTRO clock)
   * - min	  Minimum strip read out
   * - max 	  Maximum strip read out
   * - map	  hardware address
   */
  void Draw(Option_t* option="pedestal");
  
  /** @{ */
  /** @name Set various `Fixed' parameters */
  /** 
   * @param r How many MIP signals we can fit in the VA1
   * pre-amps. (default and design is 20) 
   */
  void SetVA1MipRange(UShort_t r=20)          { fVA1MipRange = r; }
  /** 
   * @param s Maximum number of the ADC (ALTRO).  This is a 10 bit
   * ADC so, the maximum number is 1024 
   */
  void SetAltroChannelSize(UShort_t s=1024)   { fAltroChannelSize = s;}
  /** 
   * @param size The number of strips multiplexed into one ALTRO
   * channel. That is, how many strips is connected to one VA1
   * pre-amp. 
   */
  void SetChannelsPerAltro(UShort_t size=128) { fChannelsPerAltro = size; }
  /** 
   * @param f Factor to use for accepting a signal. 
   */
  void SetPedestalFactor(Float_t f=3)         { fPedestalFactor = f; }
  /** 
   * @param n Number of pre-samples to keep during zero-suppression -
   * only used in simulation. 
   */
  void SetZSPreSamples(UShort_t n=1) { fZSPre = (n & 0x3); }
  /** 
   * @param n Number of post-samples to keep during zero-suppression -
   * only used in simulation. 
   */
  void SetZSPostSamples(UShort_t n=1) { fZSPost = (n & 0x3); }
  /** 
   * @param use If true, do pedestal subtraction before zero
   * suppression - only used in simulation 
   */
  void SetZSPedSubtract(Bool_t use=kTRUE) { fZSPedSubtract = use; }
  /** @} */

  /** @{ */
  /** @name Set various variable parameter defaults */
  /** 
   * @param s Zero suppression threshold in ADC counts 
   */
  void SetZeroSuppression(UShort_t s=1)       { fFixedZeroSuppression = s; }
  /** 
   * @param r How many times we oversample each strip. 
   */
  void SetSampleRate(UShort_t r=2)            { fFixedSampleRate = r ;}//(r>2?2:r);}
  /** 
   * @param r How many times we oversample each strip. 
   */
  void SetSampleRate(AliFMDCalibSampleRate* r) { fSampleRate = r; }
  /** 
   * @param p Pedestal value in ADC counts 
   */
  void SetPedestal(Float_t p=100)              { fFixedPedestal = p; }
  /** 
   * @param p Pedestal map 
   */
  void SetPedestal(AliFMDCalibPedestal* p) { fPedestal = p; }
  /** 
   * @param w Pedestal width in ADC counts 
   */
  void SetPedestalWidth(Float_t w=2)          { fFixedPedestalWidth = w; }
  /** 
   * @param t Threshold used for 1 MIP acceptance. 
   */
  void SetThreshold(Float_t t=0)              { fFixedThreshold = t; }
  /** 
   * Range of strips read out 
   *
   * @param min Minimum strip number (0-127). 
   * @param max Maximum strip number (0-127). 
   */
  void SetStripRange(UShort_t min=0, UShort_t max=127);
  /** 
   * set the strip range from object
   * 
   * @param r Strip range object 
   */
  void SetStripRange(AliFMDCalibStripRange* r) { fStripRange = r; }
  /** 
   * Whether raw data has full common data header (8 32bit words) or
   * the older invalid format (7 32bit words with bogus entries)
   *
   * @param yes if true the raw data has complete data header 
   */ 
  void UseCompleteHeader(Bool_t yes=kTRUE) { fHasCompleteHeader = yes; } 
  /** 
   * @param g Gain map 
   */
  void SetGain(AliFMDCalibGain* g) { fPulseGain = g; }
  /** 
   * @param g Gain map 
   */
  void SetGain(Float_t g=2) { fFixedPulseGain = g; }
  /** @} */

  /** @{ */
  /** @name Get `Fixed' various parameters */
  /** 
   * @return Number of MIP signals that fit inside a VA1 channel  
   */
  UShort_t GetVA1MipRange()          const { return fVA1MipRange; }
  /** 
   * @return The maximum count in the ADC 
   */
  UShort_t GetAltroChannelSize()     const { return fAltroChannelSize; }
  /** 
   * @return Number of strips muliplexed into one ADC channel 
   */
  UShort_t GetChannelsPerAltro()     const { return fChannelsPerAltro; }
  /** 
   * @return The average energy deposited by one MIP 
   */
  Float_t  GetEdepMip()              const;
  /** 
   * This is the conversion from Digital-to-Analog-Converter setting
   * to the number of MIPs. The number was measured in the NBI lab during
   * August 2008.
   *
   * @return The conversion factor from DAC to ADC 
   */
  Float_t  GetDACPerMIP()              const;
  /** 
   * @return The factor used of signal acceptance 
   */
  Float_t  GetPedestalFactor()	     const { return fPedestalFactor; }
  /** 
   * @param n Number of pre-samples to keep during zero-suppression -
   * only used in simulation. 
   */
  UShort_t GetZSPreSamples() const { return fZSPre; }
  /** 
   * @param n Number of post-samples to keep during zero-suppression -
   * only used in simulation. 
   */
  UShort_t GetZSPostSamples() const { return fZSPost; }
  /**
   * @param use If true, do pedestal subtraction before zero
   * suppression - only used in simulation 
   */
  Bool_t IsZSPedSubtract() const { return fZSPedSubtract; }
  /** @} */
  
  /** @{ */
  /** @name Various varible conditions */
  /** 
   * Whether the strip is considered dead
   * 
   * @param detector Detector # (1-3)
   * @param ring     Ring ID ('I' or 'O')
   * @param sector   Sector number (0-39)
   * @param strip    Strip number (0-511)
   *
   * @return @c true if the strip is considered dead, @c false if it's
   * OK.
   */
  Bool_t   IsDead(UShort_t detector, 
		  Char_t ring, 
		  UShort_t sector, 
		  UShort_t strip) const;
  /** 
   * Get the threshold in the pulser gain 
   * 
   * 
   * @return Threshold from pulser 
   */
  Float_t  GetThreshold() const;
  /** 
   * Gain of pre-amp. for strip, sector, ring, detector 
   *
   * For simulations this is normally set to 
   *
   * @f[ 
   *  \frac{\mbox{VA1_MIP_Range}{\mbox{ALTRO_channel_size}}\mbox{MIP_Energy_Loss}
   * @f]
   * 
   *  
   * @param detector Detector # (1-3)
   * @param ring     Ring ID ('I' or 'O')
   * @param sector   Sector number (0-39)
   * @param strip    Strip number (0-511)
   *
   * @return Gain of pre-amp.  
   */
  Float_t  GetPulseGain(UShort_t detector, 
			Char_t ring, 
			UShort_t sector, 
			UShort_t strip) const;
  /** 
   * Get mean of pedestal
   *
   * @param detector Detector # (1-3)
   * @param ring     Ring ID ('I' or 'O')
   * @param sector   Sector number (0-39)
   * @param strip    Strip number (0-511)
   *
   * @return Mean of pedestal 
   */
  Float_t  GetPedestal(UShort_t detector, 
		       Char_t ring, 
		       UShort_t sector, 
		       UShort_t strip) const;
  /** 
   * Width of pedestal
   *
   * @param detector Detector # (1-3)
   * @param ring     Ring ID ('I' or 'O')
   * @param sector   Sector number (0-39)
   * @param strip    Strip number (0-511)
   *
   * @return Width of pedestal 
   */
  Float_t  GetPedestalWidth(UShort_t detector, 
			    Char_t ring, 
			    UShort_t sector, 
			    UShort_t strip) const;
  /** 
   * zero suppression threshold (in ADC counts)
   *
   * @param detector Detector # (1-3)
   * @param ring     Ring ID ('I' or 'O')
   * @param sector   Sector number (0-39)
   * @param strip    Strip number (0-511)
   *
   * @return zero suppression threshold (in ADC counts) 
   */
  UShort_t GetZeroSuppression(UShort_t detector, 
			      Char_t ring, 
			      UShort_t sector, 
			      UShort_t strip) const;
  /** 
   * Get the sampling rate
   *
   * @param detector Detector # (1-3)
   * @param ring     Ring ID ('I' or 'O')
   * @param sector   Sector number (0-39)
   * @param strip    Strip number (0-511)
   *
   * @return The sampling rate 
   */
  UShort_t GetSampleRate(UShort_t detector, 
			 Char_t ring, 
			 UShort_t sector, 
			 UShort_t strip) const;
  /** 
   * Get the minimum strip in the read-out range
   *
   * @param detector Detector # (1-3)
   * @param ring     Ring ID ('I' or 'O')
   * @param sector   Sector number (0-39)
   * @param strip    Strip number (0-511)
   *
   * @return Minimum strip 
   */
  UShort_t GetMinStrip(UShort_t detector, 
		       Char_t ring, 
		       UShort_t sector, 
		       UShort_t strip) const;
  /** 
   * Get the maximum strip in the read-out range
   *
   * @param detector Detector # (1-3)
   * @param ring     Ring ID ('I' or 'O')
   * @param sector   Sector number (0-39)
   * @param strip    Strip number (0-511)
   *
   * @return Maximum strip 
   */
  UShort_t GetMaxStrip(UShort_t detector, 
		       Char_t ring, 
		       UShort_t sector, 
		       UShort_t strip) const;
  /** 
   * Get the number of pre-samples in ALTRO channels
   *
   * @param detector Detector # (1-3)
   * @param ring     Ring ID ('I' or 'O')
   * @param sector   Sector number (0-39)
   * @param strip    Strip number (0-511)
   *
   * @return Maximum strip 
   */
  UShort_t GetPreSamples(UShort_t, 
			 Char_t, 
			 UShort_t, 
			 UShort_t) const { return 14+5; }
  /* @}*/
  
  /** 
   * @{ 
   * @name Hardware to detector translation (and inverse) 
   */
  /** 
   * Map a hardware address into a detector index. 
   *
   * @param ddl        Hardware DDL number 
   * @param board      FEC number
   * @param altro      ALTRO number 
   * @param channel    Channel number 
   * @param timebin    Timebin 
   * @param det        On return, the detector #
   * @param ring       On return, the ring ID
   * @param sec        On return, the sector #
   * @param str        On return, the base of strip #
   * @param sam        On return, the sample number for this strip
   *
   * @return @c true on success, false otherwise 
   */
  Bool_t Hardware2Detector(UShort_t    ddl,        UShort_t    board, 
			   UShort_t    altro,      UShort_t    chan,
			   UShort_t  timebin,   
			   UShort_t& det,        Char_t&   ring, 
			   UShort_t& sec,        Short_t& str,
			   UShort_t& sam) const;
  /** 
   * Map a hardware address into a detector index. 
   *
   * @param ddl        Hardware DDL number 
   * @param hwaddr     Hardware address.  
   * @param timebin    Timebin 
   * @param det        On return, the detector #
   * @param ring       On return, the ring ID
   * @param sec        On return, the sector #
   * @param str        On return, the base of strip #
   * @param sam        On return, the sample number for this strip
   *
   * @return @c true on success, false otherwise 
   */
  Bool_t Hardware2Detector(UShort_t    ddl,        UShort_t    hwaddr, 
			   UShort_t  timebin,    
			   UShort_t& det,        Char_t&   ring, 
			   UShort_t& sec,        Short_t& str,
			   UShort_t& sam) const;

  /** 
   * Map a detector index into a hardware address. 
   *
   * @param det         The detector #
   * @param ring        The ring ID
   * @param sec         The sector #
   * @param str         The strip #
   * @param sam         The sample number 
   * @param ddl         On return, hardware DDL number 
   * @param board       On return, the FEC board address (local to DDL)
   * @param altro       On return, the ALTRO number (local to FEC)
   * @param channel     On return, the channel number (local to ALTRO)
   * @param timebin     On return, the timebin number (local to ALTRO)
   *
   * @return @c true on success, false otherwise 
   */
  Bool_t Detector2Hardware(UShort_t  det,        Char_t    ring, 
			   UShort_t  sec,        UShort_t  str,
			   UShort_t  sam, 
			   UShort_t&   ddl,        UShort_t&   board, 
			   UShort_t&   altro,      UShort_t&   channel, 
			   UShort_t& timebin) const;
  /** 
   * Map a detector index into a hardware address. 
   *
   * @param det         The detector #
   * @param ring        The ring ID
   * @param sec         The sector #
   * @param str         The strip #
   * @param sam         The sample number 
   * @param ddl         On return, hardware DDL number 
   * @param hwaddr      On return, hardware address.  
   * @param timebin     On return, the timebin number (local to ALTRO)
   *
   * @return @c true on success, false otherwise 
   */
  Bool_t Detector2Hardware(UShort_t  det,        Char_t    ring, 
			   UShort_t  sec,        UShort_t  str,
			   UShort_t  sam, 
			   UShort_t&   ddl,        UShort_t&   hwaddr, 
			   UShort_t& timebin) const;
  /** 
   * Get the map that translates hardware to detector coordinates 
   *
   * @return Get the map that translates hardware to detector
   * coordinates 
   */ 
  AliFMDAltroMapping* GetAltroMap() const;
  /** 
   * Whether raw data has full common data header (8 32bit words) or
   * the older invalid format (7 32bit words with bogus entries)
   *
   * @return false if the raw data has incomplete data header 
   */ 
  Bool_t HasCompleteHeader() const { return fHasCompleteHeader; } 

  /** @} */

  static const char* PulseGainPath()       { return fgkPulseGain; }
  static const char* PedestalPath()        { return fgkPedestal; }
  static const char* DeadPath()            { return fgkDead; }
  static const char* SampleRatePath()      { return fgkSampleRate; }
  static const char* AltroMapPath()        { return fgkAltroMap; }
  static const char* ZeroSuppressionPath() { return fgkZeroSuppression; }
  static const char* StripRangePath()      { return fgkStripRange; }
  static const char* GetPedestalShuttleID()   {return fkPedestalShuttleID;}
  static const char* GetGainShuttleID()       {return fkGainShuttleID;}
  static const char* GetConditionsShuttleID()   {return fkConditionsShuttleID;}
  
protected:
  /** 
   * CTOR  
   */
  AliFMDParameters();
  /** 
   * CTOR  
   */
  AliFMDParameters(const AliFMDParameters& o) 
    : TNamed(o), 
      fIsInit(o.fIsInit),
      fkSiDeDxMip(o.fkSiDeDxMip),
      fVA1MipRange(o.fVA1MipRange),
      fAltroChannelSize(o.fAltroChannelSize),
      fChannelsPerAltro(o.fChannelsPerAltro),
      fPedestalFactor(o.fPedestalFactor),
      fZSPre(o.fZSPre),
      fZSPost(o.fZSPost),
      fZSPedSubtract(o.fZSPedSubtract),
      fFixedPedestal(o.fFixedPedestal),
      fFixedPedestalWidth(o.fFixedPedestalWidth),
      fFixedZeroSuppression(o.fFixedZeroSuppression),
      fFixedSampleRate(o.fFixedSampleRate),
      fFixedThreshold(o.fFixedThreshold),
      fFixedMinStrip(o.fFixedMinStrip),
      fFixedMaxStrip(o.fFixedMaxStrip),
      fFixedPulseGain(o.fFixedPulseGain),
      fEdepMip(o.fEdepMip),
      fHasCompleteHeader(o.fHasCompleteHeader),
      fZeroSuppression(o.fZeroSuppression),
      fSampleRate(o.fSampleRate),
      fPedestal(o.fPedestal),
      fPulseGain(o.fPulseGain),
      fDeadMap(o.fDeadMap),
      fAltroMap(o.fAltroMap),
    fStripRange(o.fStripRange), 
    fRunNo(o.fRunNo)
  {}
  /** 
   * Assignement operator 
   *
   * @return Reference to this 
   */
  AliFMDParameters& operator=(const AliFMDParameters&) { return *this; }
  /** 
   * DTOR 
   */
  virtual ~AliFMDParameters() {}
  /** 
   * Singleton instance  
   */
  static AliFMDParameters* fgInstance;   // Static singleton instance
  /** 
   * Check if the file <i>prefix</i><i>number</i> exists in @a path, 
   * and write the full path to @a f.  
   * 
   * @param prefix  File prefix (cond, peds, gains, ...)
   * @param path    Path to files
   * @param number  Detector number (1, 2, or 3)
   * @param f       On return full path to file (if found)
   * 
   * @return @c true if file exists and is readable, @c false otherwise
   */
  Bool_t CheckFile(const char* prefix, const char* path, 
		   int         number, TString&    f) const;
  /** 
   * Get an entry from either global AliCDBManager or passed
   * AliFMDPreprocessor. 
   * 
   * @param path  Path to CDB object. 
   * @param pp    AliFMDPreprocessor 
   * @param fatal If true, raise a fatal flag if we didn't get the entry.
   * @return AliCDBEntry if found 
   */ 
  AliCDBEntry* GetEntry(const char* path, AliFMDPreprocessor* pp, 
			Bool_t fatal=kTRUE) const;
  /** 
   * Initialize gains.  Try to get them from CDB 
   *
   * @param pp Pre-processor if called from shuttle
   * 
   * @return 0 on success, error mask otherwise 
   */
  UShort_t InitPulseGain(AliFMDPreprocessor* pp=0);
  /**
   * Initialize pedestals.  Try to get them from CDB
   *
   * @param pp Pre-processor if called from shuttle
   * 
   * @return 0 on success, error mask otherwise 
   */
  UShort_t InitPedestal(AliFMDPreprocessor* pp=0);
  /**
   * Initialize dead map.  Try to get it from CDB
   *
   * @param pp Pre-processor if called from shuttle
   * 
   * @return 0 on success, error mask otherwise 
   */
  UShort_t InitDeadMap(AliFMDPreprocessor* pp=0);
  /**
   * Initialize sample rates.  Try to get them from CDB
   *
   * @param pp Pre-processor if called from shuttle
   * 
   * @return 0 on success, error mask otherwise 
   */
  UShort_t InitSampleRate(AliFMDPreprocessor* pp=0);
  /**
   * Initialize zero suppression thresholds.  Try to get them from CDB
   *
   * @param pp Pre-processor if called from shuttle
   * 
   * @return 0 on success, error mask otherwise 
   */
  UShort_t InitZeroSuppression(AliFMDPreprocessor* pp=0);
  /**
   * Initialize hardware map.  Try to get it from CDB
   *
   * @param pp Pre-processor if called from shuttle
   * 
   * @return 0 on success, error mask otherwise 
   */
  UShort_t InitAltroMap(AliFMDPreprocessor* pp=0);
  /**
   * Initialize strip range.  Try to get it from CDB
   *
   * @param pp Pre-processor if called from shuttle
   * 
   * @return 0 on success, error mask otherwise 
   */
  UShort_t InitStripRange(AliFMDPreprocessor* pp=0);
  Bool_t CheckForNewRun();

  Bool_t          fIsInit;                   // Whether we've been initialised  

  static const char* fgkPulseGain;	     // Path to PulseGain calib object
  static const char* fgkPedestal;	     // Path to Pedestal calib object
  static const char* fgkDead;	             // Path to Dead calib object
  static const char* fgkSampleRate;	     // Path to SampleRate calib object
  static const char* fgkAltroMap;	     // Path to AltroMap calib object
  static const char* fgkZeroSuppression;     // Path to ZeroSuppression cal object
  static const char* fgkStripRange;          // Path to strip range cal object
  const Float_t   fkSiDeDxMip;               // MIP dE/dx in Silicon
  UShort_t        fVA1MipRange;              // # MIPs the pre-amp can do    
  UShort_t        fAltroChannelSize;         // Largest # to store in 1 ADC ch.
  UShort_t        fChannelsPerAltro;         // Number of pre-amp. chan/adc chan.
  Float_t         fPedestalFactor;           // Number of pedestal widths
  UShort_t        fZSPre;                    // Number of pre-samples in ZS
  UShort_t        fZSPost;                   // Number of post-samples in ZS
  Bool_t          fZSPedSubtract;            // Pedestal subtraction before ZS

  Float_t         fFixedPedestal;            // Pedestal to subtract
  Float_t         fFixedPedestalWidth;       // Width of pedestal
  UShort_t        fFixedZeroSuppression;     // Threshold for zero-suppression
  UShort_t        fFixedSampleRate;          // Times the ALTRO samples pre-amp.
  Float_t         fFixedThreshold;           // Threshold in ADC counts
  UShort_t        fFixedMinStrip;            // Minimum strip read-out
  UShort_t        fFixedMaxStrip;            // Maximum strip read-out 
  mutable Float_t fFixedPulseGain;           //! Gain (cached)
  mutable Float_t fEdepMip;                  //! Cache of energy loss for a MIP
  Bool_t          fHasCompleteHeader;        // raw data has incomplete data header
  
  static const char* fkPedestalShuttleID;    // Shuttle/preprocessor ID for pedestals
  static const char* fkGainShuttleID;        // Shuttle/preprocessor ID for gains
  static const char* fkConditionsShuttleID;  // Shuttle/preprocessor ID for conditions
  
  AliFMDCalibZeroSuppression* fZeroSuppression; // Zero suppression from CDB
  AliFMDCalibSampleRate*      fSampleRate;      // Sample rate from CDB 
  AliFMDCalibPedestal*        fPedestal;        // Pedestals 
  AliFMDCalibGain*            fPulseGain;       // Pulser gain
  AliFMDCalibDeadMap*         fDeadMap;         // Pulser gain
  AliFMDAltroMapping*         fAltroMap;        // Map of hardware
  AliFMDCalibStripRange*      fStripRange;      // Strip range
  Int_t                       fRunNo;           // Initialized for this run
  
  ClassDef(AliFMDParameters,7) // Manager of parameters
};

//__________________________________________________________________
inline void
AliFMDParameters::SetStripRange(UShort_t min, UShort_t max) 
{
  // Set fixed strip range 
  fFixedMinStrip = min;
  fFixedMaxStrip = max;
}

#endif
//____________________________________________________________________
//
// Local Variables:
//   mode: C++
// End:
//
// EOF
//

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