ROOT logo
/*************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 *************************************************************************
 * $Id$ */
/**
 * @file    AliFMDParameters.cxx
 * @author  Christian Holm Christensen <cholm@nbi.dk>
 * @date    Mon Mar 27 12:44:26 2006
 * @brief   Manager of FMD parameters     
 */
//____________________________________________________________________
//                                                                          
// Forward Multiplicity Detector based on Silicon wafers. 
//
// This class is a singleton that handles various parameters of
// the FMD detectors.  
// The manager normally serves the parameters from the Conditions
// Database (CDB).  These are retrivied by the member function
// `Init'.  Optionally, the class can serve hard-coded constants, if
// no CDB is available. 
//                                                       
#include "AliFMDDebug.h"		   // ALILOG_H
#include "AliFMDParameters.h"	   // ALIFMDPARAMETERS_H
#include "AliFMDGeometry.h"	   // ALIFMDGEOMETRY_H
#include "AliFMDRing.h"	           // ALIFMDRING_H
#include "AliFMDCalibGain.h"       // ALIFMDCALIBGAIN_H
#include "AliFMDCalibPedestal.h"   // ALIFMDCALIBPEDESTAL_H
#include "AliFMDCalibSampleRate.h" // ALIFMDCALIBSAMPLERATE_H
#include "AliFMDCalibStripRange.h" // ALIFMDCALIBSTRIPRANGE_H
#include "AliFMDAltroMapping.h"    // ALIFMDALTROMAPPING_H
#include <AliCDBManager.h>         // ALICDBMANAGER_H
#include <AliCDBEntry.h>           // ALICDBMANAGER_H
#include <AliFMDPreprocessor.h>
#include <AliLog.h>
#include <Riostream.h>
#include <sstream>
#include <TSystem.h>
#include <TArrayF.h>
#include <TH2D.h>

//====================================================================
ClassImp(AliFMDParameters)
#if 0
  ; // This is here to keep Emacs for indenting the next line
#endif

//____________________________________________________________________
AliFMDParameters* AliFMDParameters::fgInstance = 0;

//____________________________________________________________________
const char* AliFMDParameters::fgkPulseGain	    = "FMD/Calib/PulseGain";
const char* AliFMDParameters::fgkPedestal	    = "FMD/Calib/Pedestal";
const char* AliFMDParameters::fgkDead	            = "FMD/Calib/Dead";
const char* AliFMDParameters::fgkSampleRate	    = "FMD/Calib/SampleRate";
const char* AliFMDParameters::fgkAltroMap	    = "FMD/Calib/AltroMap";
const char* AliFMDParameters::fgkZeroSuppression    = "FMD/Calib/ZeroSuppression";
const char* AliFMDParameters::fgkStripRange	    = "FMD/Calib/StripRange";
const char* AliFMDParameters::fkPedestalShuttleID   = "pedestals";
const char* AliFMDParameters::fkGainShuttleID       = "gains";
const char* AliFMDParameters::fkConditionsShuttleID = "conditions";

//____________________________________________________________________
AliFMDParameters* 
AliFMDParameters::Instance() 
{
  // 
  // Get static instance 
  //
  if (!fgInstance) fgInstance = new AliFMDParameters;
  return fgInstance;
}

//____________________________________________________________________
AliFMDParameters::AliFMDParameters() 
  : fIsInit(kFALSE),
    fkSiDeDxMip(1.664), 
    fVA1MipRange(0),
    fAltroChannelSize(0),
    fChannelsPerAltro(0),
    fPedestalFactor(0),
    fZSPre(1),
    fZSPost(1),
    fZSPedSubtract(kTRUE),
    fFixedPedestal(100),
    fFixedPedestalWidth(2),
    fFixedZeroSuppression(1),
    fFixedSampleRate(2),
    fFixedThreshold(0),
    fFixedMinStrip(0),
    fFixedMaxStrip(127),
    fFixedPulseGain(2), 
    fEdepMip(0),
    fHasCompleteHeader(kTRUE),
    fZeroSuppression(0), 
    fSampleRate(0), 
    fPedestal(0), 
    fPulseGain(0), 
    fDeadMap(0), 
    fAltroMap(0), 
  fStripRange(0),
  fRunNo(-1)
{
  //
  // Default constructor 
  //
  SetVA1MipRange();
  SetAltroChannelSize();
  SetChannelsPerAltro();
  SetZeroSuppression();
  SetSampleRate();
  SetPedestal();
  SetPedestalWidth();
  SetPedestalFactor();
  SetThreshold();
  SetStripRange();
  SetGain();
  fAltroMap = new AliFMDAltroMapping;
  fAltroMap->SetBit(TObject::kCanDelete);
}

//__________________________________________________________________
Bool_t
AliFMDParameters::CheckForNewRun()
{
  Int_t run = AliCDBManager::Instance()->GetRun();
  if (run != fRunNo) { 
    fIsInit = false;
    fRunNo = run;
  }
  return run != fRunNo;
}

//__________________________________________________________________
UShort_t
AliFMDParameters::Init(Bool_t forceReInit, UInt_t what)
{
  // 
  // Initialize the manager.  This tries to read the parameters from
  // CDB.  If that fails, the class uses the hard-coded parameters.
  // 
  // Parameters:
  //    forceReInit Force (re-)initalize flag
  //    what        What to initialize 
  //
  if (forceReInit) fIsInit = kFALSE;
  CheckForNewRun();

  if (fIsInit) return 0;

  UShort_t errMask = 0;
  if (what & kPulseGain)       errMask |= InitPulseGain();
  if (what & kPedestal)        errMask |= InitPedestal();
  if (what & kDeadMap)         errMask |= InitDeadMap();
  if (what & kSampleRate)      errMask |= InitSampleRate();
  if (what & kZeroSuppression) errMask |= InitZeroSuppression();
  if (what & kAltroMap)        errMask |= InitAltroMap();
  if (what & kStripRange)      errMask |= InitStripRange();
  fIsInit = kTRUE;

  return errMask;
}
//__________________________________________________________________
UShort_t
AliFMDParameters::Init(AliFMDPreprocessor* pp, Bool_t forceReInit, UInt_t what)
{
  // 
  // Initialize the manager.  This tries to read the parameters from
  // CDB.  If that fails, the class uses the hard-coded parameters.
  // 
  // Parameters:
  //    pp          Preprocessor 
  //    forceReInit Force (re-)initalize flag
  //    what        What to initialize 
  //
  if (forceReInit) fIsInit = kFALSE;
  CheckForNewRun();

  if (fIsInit) return 0;

  UShort_t errMask = 0;
  if (what & kPulseGain)       errMask |= InitPulseGain(pp);
  if (what & kPedestal)        errMask |= InitPedestal(pp);
  if (what & kDeadMap)         errMask |= InitDeadMap(pp);
  if (what & kSampleRate)      errMask |= InitSampleRate(pp);
  if (what & kZeroSuppression) errMask |= InitZeroSuppression(pp);
  if (what & kAltroMap)        errMask |= InitAltroMap(pp);
  if (what & kStripRange)      errMask |= InitStripRange(pp);
  fIsInit = kTRUE;

  return errMask;
}

//__________________________________________________________________
Bool_t
AliFMDParameters::CheckFile(const char* prefix, 
			    const char* path, 
			    int         number, 
			    TString&    f) const
{
  // 
  // Check if the file <i>prefix</i><i>number</i> exists in @a path, 
  // and write the full path to @a f.  
  // 
  // Parameters:
  //    prefix  File prefix (cond, peds, gains, ...)
  //    path    Path to files
  //    number  Detector number (1, 2, or 3)
  //    f       On return full path to file (if found)
  // 
  // Return:
  //    @c true if file exists and is readable, @c false otherwise
  //
  f = (Form("%s%d.csv", prefix, number));
  AliFMDDebug(5, ("Checking if %s exists in %s ...", f.Data(), path));
  f = gSystem->Which(path, f.Data());
  AliFMDDebug(5, ("Got back '%s'", f.Data()));
  return !f.IsNull();
}

//__________________________________________________________________
UShort_t
AliFMDParameters::Init(const char* path, Bool_t forceReInit, UInt_t what)
{
  // 
  // 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). 
  // 
  // Parameters:
  //    path        Where to look for the CSV files
  //    forceReInit Always reinitialise 
  //    what        What calibrations to load. 
  //  
  if (forceReInit) fIsInit = kFALSE;
  CheckForNewRun();

  if (fIsInit) return 0;

  AliFMDCalibStripRange*  range = 0;
  AliFMDCalibSampleRate*  rate  = 0;
  AliFMDCalibPedestal*    peds  = 0;
  AliFMDCalibGain*        gains = 0;

  for (Int_t i = 1; i <= 3; i++) { 
    TString f;
    if (((what & kSampleRate) || (what & kStripRange)) && 
	CheckFile("conditions", path, i, f)) {
      if (!rate  && (what & kSampleRate)) rate  = new AliFMDCalibSampleRate;
      if (!range && (what & kStripRange)) range = new AliFMDCalibStripRange;
      std::ifstream in(f.Data());
      if (range) range->ReadFromFile(in);
      if (rate)  rate->ReadFromFile(in);
      in.close();
    }
    if ((what & kPedestal) && CheckFile("peds", path, i, f)) {
      if (!peds) peds  = new AliFMDCalibPedestal;
      std::ifstream in(f.Data());
      peds->ReadFromFile(in);
      in.close();
    }
    if ((what & kPulseGain) && CheckFile("gains", path, i, f)) { 
      if (!gains) gains = new AliFMDCalibGain;
      std::ifstream in(f.Data());
      gains->ReadFromFile(in);
      in.close();
    }
  }

  if (range) what &= ~kStripRange;
  if (rate)  what &= ~kSampleRate;
  if (peds)  what &= ~kPedestal;
  if (gains) what &= ~kPulseGain;

  UShort_t ret = Init(kFALSE, what);
  
  if (range) SetStripRange(range);
  if (rate)  SetSampleRate(rate);
  if (peds)  SetPedestal(peds);
  if (gains) SetGain(gains);

  fIsInit = kTRUE;

  return ret;
}

//__________________________________________________________________
void
AliFMDParameters::MakeDeadMap(Float_t maxNoise, 
			      Float_t minGain, 
			      Float_t maxGain)
{
  // 
  // 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. 
  // 
  // Parameters:
  //    maxNoise  Maximum noise value before a channel is marked
  // as dead. 
  //    minGain   Minimum value of the calibrated gain before a
  // channel is considered dead. 
  //    maxGain   Maximum value of the calibrated gain before a
  // channel is considered dead. 
  //
  if (fPedestal)  
    fDeadMap = fPedestal->MakeDeadMap(maxNoise, fDeadMap);
  if (fPulseGain) 
    fDeadMap = fPulseGain->MakeDeadMap(minGain, maxGain, fDeadMap);
}
//__________________________________________________________________
#define DET2IDX(det,ring,sec,str) \
  (det * 1000 + (ring == 'I' ? 0 : 512) + str)  
  
//__________________________________________________________________
void
AliFMDParameters::Draw(Option_t* option)
{
  // 
  // Draw parameters. 
  // 
  // Parameters:
  //    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
  //
  TString opt(option);
  enum {
    kLocalPulseGain,       // Path to PulseGain calib object
    kLocalThreshold,       // Path to PulseGain calib object
    kLocalPedestal,        // Path to Pedestal calib object
    kLocalPedestalWidth,   // Path to Pedestal calib object
    kLocalDead,            // Path to Dead calib object
    kLocalSampleRate,      // Path to SampleRate calib object
    kLocalAltroMap,        // Path to AltroMap calib object
    kLocalZeroSuppression, // Path to ZeroSuppression cal object
    kLocalMinStripRange,   // Path to strip range cal object
    kLocalMaxStripRange    // Path to strip range cal object
  } what;
    
  if      (opt.Contains("dead", TString::kIgnoreCase)) 
    what = kLocalDead;
  else if (opt.Contains("threshold",TString::kIgnoreCase)) 
    what = kLocalThreshold;
  else if (opt.Contains("gain",TString::kIgnoreCase)) 
    what = kLocalPulseGain;
  else if (opt.Contains("pedestal",TString::kIgnoreCase)) 
    what = kLocalPedestal;
  else if (opt.Contains("noise",TString::kIgnoreCase)) 
    what = kLocalPedestalWidth;
  else if (opt.Contains("zero",TString::kIgnoreCase)) 
    what = kLocalZeroSuppression;
  else if (opt.Contains("rate",TString::kIgnoreCase)) 
    what = kLocalSampleRate;
  else if (opt.Contains("min",TString::kIgnoreCase)) 
    what = kLocalMinStripRange;
  else if (opt.Contains("max",TString::kIgnoreCase)) 
    what = kLocalMaxStripRange;
  else if (opt.Contains("map",TString::kIgnoreCase)) 
    what = kLocalAltroMap;
  else {
    Warning("Draw", "unknown parameter: %s\n\tShould be one of\n\t"
	    "dead, threshold, gain, pedestal, noise, zero, rate, "
	    "min, max, map",  
	    option); 
    return;
  }

  TArrayD xbins(3 * 512 + 2 * 256 + 5);
  Int_t i = 1;
  Bool_t skip = kTRUE;
  for (UShort_t det = 1; det <= 3; det++) {
    UShort_t nRings = (det == 1 ? 1 : 2);
    for (UShort_t iring = 0; iring < nRings; iring++) {
      UShort_t nStrip  = (iring == 0 ? 512 : 256);
      Char_t   ring    = (iring == 0 ? 'I' : 'O');
      for (UShort_t str = 0; str < nStrip; str++) {
	// UShort_t nSec    = (iring == 0 ? 20  : 40);
	// Char_t   ring    = (iring == 0 ? 'I' : 'O');
	// for (UShort_t sec = 0; sec < nSec; sec++) {
	Int_t idx = DET2IDX(det, ring, 0, str);
	// Int_t idx = DET2IDX(det, ring, sec, 0);
	if (skip) {
	  xbins[i-1] = idx - .5;
	  skip  = kFALSE;
	}
	xbins[i] = idx + .5;
	i++;
      }
      skip = kTRUE;
      i++;
    }
  }
  TArrayD ybins(41);
  for (/*Int_t*/ i = 0; i < ybins.fN; i++) ybins[i] = Float_t(i - .5);
  TH2D* hist = new TH2D("calib", Form("Calibration %s", option), 
			xbins.fN-1, xbins.fArray,  
			ybins.fN-1, ybins.fArray);
  hist->GetXaxis()->SetTitle("1000 #times detector + 512 #times ring + strip");
  hist->GetYaxis()->SetTitle("sector");
  
  // hist->Draw("Lego");
  // return;
  
  for (UShort_t det = 1; det <= 3; det++) {
    UShort_t nRings = (det == 1 ? 1 : 2);
    for (UShort_t iring = 0; iring < nRings; iring++) {
      UShort_t nSector = (iring == 0 ?  20 : 40);
      UShort_t nStrip  = (iring == 0 ? 512 : 256);
      Char_t   ring    = (iring == 0 ? 'I' : 'O');
      for (UShort_t sec = 0; sec < nSector; sec++) {
	for (UShort_t str = 0; str < nStrip; str++) {
	  Int_t idx = DET2IDX(det, ring, sec, str);
	  UShort_t ddl, addr, time, sam=0;
	  Double_t val = 0;
	  switch (what) {
	  case kLocalPulseGain:       // Path to PulseGain calib object
            val = GetPulseGain(det,ring,sec,str); break;
	  case kLocalThreshold:       // Path to PulseGain calib object
            val = GetThreshold(); break;
	  case kLocalPedestal:        // Path to Pedestal calib object
            val = GetPedestal(det,ring,sec,str); break;
	  case kLocalPedestalWidth:   // Path to Pedestal calib object
            val = GetPedestalWidth(det,ring,sec,str); break;
	  case kLocalDead:            // Path to Dead calib object
            val = IsDead(det,ring,sec,str); break;
	  case kLocalSampleRate:      // Path to SampleRate calib object
            val = GetSampleRate(det,ring,sec,str); break;
	  case kLocalAltroMap:        // Path to AltroMap calib object
	    Detector2Hardware(det,ring,sec,str,sam,ddl,addr,time); 
            val = addr; break;
	  case kLocalZeroSuppression: // Path to ZeroSuppression cal object
            val = GetZeroSuppression(det,ring,sec,str); break;
	  case kLocalMinStripRange:   // Path to strip range cal object
            val = GetMinStrip(det,ring,sec,str); break;
	  case kLocalMaxStripRange:    // Path to strip range cal object
            val = GetMaxStrip(det,ring,sec,str); break;
	  }
	  hist->Fill(idx,sec,val);
	  // hist->Fill(idx,str,val);
	}
      }
    }
  }
  hist->Draw("lego");
}

//__________________________________________________________________
void
AliFMDParameters::Print(Option_t* option) const
{
  // Print information. 
  // 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 the
  // format 
  // 
  //    FMD<detector><ring>[<sector>,<string>] 
  // 
  // The wild card '*' means all of <detector>, <ring>, <sector>, or 
  // <strip>. 
  TString opt(option);
  Bool_t showStrips  = opt.Contains("a", TString::kIgnoreCase);
  UShort_t ds[]      = { 1, 2, 3, 0 };
  Char_t   rs[]      = { 'I', 'O', '\0' };
  UShort_t minStrip  = 0;
  UShort_t maxStrip  = 512;
  UShort_t minSector = 0;
  UShort_t maxSector = 40;
  
  
  if (opt.Contains("fmd",TString::kIgnoreCase)) {
    Int_t   i    = opt.Index("fmd",TString::kIgnoreCase);
    Int_t   j    = opt.Index("]",TString::kIgnoreCase);
    if (j != kNPOS)
      showStrips    = kTRUE;
    else 
      j = opt.Length();
    enum {
      kReadDet, 
      kReadRing, 
      kReadLbrack,
      kReadSector,
      kReadComma,
      kReadStrip,
      kReadRbrack, 
      kEnd
    } state = kReadDet;
    std::stringstream s(opt(i+4, j-i-3).Data());
    while (state != kEnd) {
      Char_t tmp = s.peek();
      if (tmp == ' ' || tmp == '\t') {
	s.get();
	continue;
      }
      switch (state) {
      case kReadDet: { // First, try to kRead the detector 
	if (tmp == '*') s.get();
	else { 
	  UShort_t det;
	  s >> det;
	  if (!s.bad()) {
	    ds[0] = det;
	    ds[1] = 0;
	  }
	}
	state = (s.bad() ? kEnd : kReadRing);
      } break;
      case kReadRing: { // Then try to read the ring;
	Char_t ring;
	s >> ring;
	if (ring != '*' && !s.bad()) {
	  rs[0] = ring;
	  rs[1] = '\0';
	}
	state = (s.bad() ? kEnd : kReadLbrack);
      } break;
      case kReadLbrack: { // Try to read a left bracket 
	Char_t lbrack;
	s >> lbrack;
	state = (s.bad() ? kEnd : kReadSector);
      } break;
      case kReadSector: { // Try to read a sector 
	if (tmp == '*') s.get();
	else {
	  UShort_t sec;
	  s >> sec;
	  if (!s.bad()) {
	    minSector = sec;
	    maxSector = sec + 1;
	  }
	}
	state = (s.bad() ? kEnd : kReadComma);
      } break;
      case kReadComma: { // Try to read a left bracket 
	Char_t comma;
	s >> comma;
	state = (s.bad() ? kEnd : kReadStrip);
      } break;
      case kReadStrip: { // Try to read a strip 
	if (tmp == '*') s.get();
	else {
	  UShort_t str;
	  s >> str;
	  if (!s.bad()) {
	    minStrip = str;
	    maxStrip = str + 1;
	  }
	}
	state = (s.bad() ? kEnd : kReadRbrack);
      } break;
      case kReadRbrack: { // Try to read a left bracket 
	Char_t rbrack;
	s >> rbrack;
	state = kEnd;
      } break;
      case kEnd: 
	break;
      }
    }
  }
  UShort_t* dp = ds;
  UShort_t  det;
  while ((det = *(dp++))) {

    Char_t* rp = rs;
    Char_t  ring;
    while ((ring = *(rp++))) {
      if (det == 1 && ring == 'O') continue;
      UShort_t min  = GetMinStrip(det, ring, 0, 0);
      UShort_t max  = GetMaxStrip(det, ring, 0, 0);
      std::cout << "FMD" << det << ring 
		<< "  Strip range: " 
		<< std::setw(3) << min << "," 
		<< std::setw(3) << max << std::endl;

      UShort_t nSec = ( ring == 'I' ? 20  :  40 );
      UShort_t nStr = ( ring == 'I' ? 512 : 256 );
      for (UShort_t sec = minSector; sec < maxSector && sec < nSec; sec++) {

	UShort_t rate = GetSampleRate(det, ring, sec, 0);
	std::cout << "FMD" << det << ring << "[" << std::setw(2) << sec 
		  << "] sample rate: " << rate << std::endl;

	if (!showStrips) continue;
	std::cout 
	  << "  Strip |     Pedestal      |    Gain    | ZS thr. | Address\n" 
	  << "--------+-------------------+------------+---------+---------" 
	  << std::endl;
        for (UShort_t str = minStrip; str < nStr && str < maxStrip; str++) {
	  if (str == minStrip) std::cout << std::setw(3) << sec << ",";
	  else std::cout << "    ";
	  std::cout << std::setw(3) << str << " | ";
	  if (IsDead(det, ring, sec, str)) {
	    std::cout << "dead" << std::endl;
	    continue;
	  }
	  UShort_t ddl, addr, time, sam=0;
	  Detector2Hardware(det, ring, sec, str, sam, ddl, addr, time);
	  std::cout << std::setw(7) << GetPedestal(det, ring, sec, str) 
		    << "+/-" << std::setw(7) 
		    << GetPedestalWidth(det, ring, sec, str) 
		    << " | " << std::setw(10) 
		    << GetPulseGain(det, ring, sec, str) 
		    << " | " << std::setw(7) 
		    << GetZeroSuppression(det, ring, sec, str) 
		    << " | 0x" << std::hex << std::setw(4) 
		    << std::setfill('0') << ddl << ",0x" << std::setw(3) 
		    << addr << std::dec << std::setfill(' ') << std::endl;
        } // for (strip)
      } // for (sector)
      std::cout
	<< "=============================================================" 
	<< std::endl;
    } // while (ring)
  } // while (det)
  
}

//__________________________________________________________________
AliCDBEntry*
AliFMDParameters::GetEntry(const char* path, AliFMDPreprocessor* pp, 
			   Bool_t fatal) const
{
  // 
  // Get an entry from either global AliCDBManager or passed
  // AliFMDPreprocessor. 
  // 
  // Parameters:
  //    path  Path to CDB object. 
  //    pp    AliFMDPreprocessor 
  //    fatal If true, raise a fatal flag if we didn't get the entry.
  // Return:
  //    AliCDBEntry if found 
  // 
  AliCDBEntry* entry = 0;
  if (!pp) {
    AliCDBManager* cdb = AliCDBManager::Instance();
    entry              = cdb->Get(path);
  }
  else {
    const char* third  = gSystem->BaseName(path);
    const char* second = gSystem->BaseName(gSystem->DirName(path));
    entry              = pp->GetFromCDB(second, third);
  }
  if (!entry) { 
    TString msg(Form("No %s found in CDB, perhaps you need to "
		     "use AliFMDCalibFaker?", path));
    if (fatal) { AliFatal(msg.Data()); }
    else       AliLog::Message(AliLog::kWarning, msg.Data(), "FMD", 
			       "AliFMDParameters", "GetEntry", __FILE__, 
			       __LINE__);
    return 0;
  }
  if (entry && AliLog::GetDebugLevel("FMD", "") > 0) { 
    AliInfoF("Got entry %p for %s", entry, path);
    entry->PrintId();
    entry->PrintMetaData();			
    entry->Print();
  }
  return entry;
}

    
//__________________________________________________________________
UShort_t
AliFMDParameters::InitPulseGain(AliFMDPreprocessor* pp)
{
  // 
  // Initialize gains.  Try to get them from CDB 
  // 
  // Parameters:
  //    pp Pre-processor if called from shuttle
  //
  AliCDBEntry*   gain     = GetEntry(fgkPulseGain, pp);
  if (!gain) return kPulseGain;
  
  AliFMDDebug(5, ("Got gain from CDB"));
  fPulseGain = dynamic_cast<AliFMDCalibGain*>(gain->GetObject());
  if (!fPulseGain) { 
    AliError("Invalid pulser gain object from CDB");
    return kPulseGain;
  }
  if (!fPulseGain->Values().Ptr()) {
    AliError("Empty pulser gain object from CDB");
    return kPulseGain;
  }
  return 0;
}
//__________________________________________________________________
UShort_t
AliFMDParameters::InitPedestal(AliFMDPreprocessor* pp)
{
  //
  // Initialize pedestals.  Try to get them from CDB
  // 
  // Parameters:
  //    pp Pre-processor if called from shuttle
  //
  AliCDBEntry*   pedestal = GetEntry(fgkPedestal, pp);
  if (!pedestal) return kPedestal;

  AliFMDDebug(5, ("Got pedestal from CDB"));
  fPedestal = dynamic_cast<AliFMDCalibPedestal*>(pedestal->GetObject());
  if (!fPedestal) {
    AliError("Invalid pedestal object from CDB");
    return kPedestal;
  }
  if (!fPedestal->Values().Ptr()) {
    AliError("Empty pedestal object from CDB");
    return kPedestal;
  }
  return 0;
}

//__________________________________________________________________
UShort_t
AliFMDParameters::InitDeadMap(AliFMDPreprocessor* pp)
{
  //
  // Initialize dead map.  Try to get it from CDB
  // 
  // Parameters:
  //    pp Pre-processor if called from shuttle
  //
  AliCDBEntry*   deadMap  = GetEntry(fgkDead, pp);
  if (!deadMap) return kDeadMap;
  
  AliFMDDebug(5, ("Got dead map from CDB"));
  fDeadMap = dynamic_cast<AliFMDCalibDeadMap*>(deadMap->GetObject());
  if (!fDeadMap) { 
    AliError("Invalid dead map object from CDB");
    return kDeadMap;
  }
  if (!fDeadMap->Ptr()) {
    AliError("Empty dead map object from CDB");
    return kDeadMap;
  }
  return 0;
}

//__________________________________________________________________
UShort_t
AliFMDParameters::InitZeroSuppression(AliFMDPreprocessor* pp)
{
  //
  // Initialize zero suppression thresholds.  Try to get them from CDB
  // 
  // Parameters:
  //    pp Pre-processor if called from shuttle
  //
  AliCDBEntry*   zeroSup  = GetEntry(fgkZeroSuppression, pp);
  if (!zeroSup) return kZeroSuppression;

  AliFMDDebug(5, ("Got zero suppression from CDB"));
  fZeroSuppression = 
    dynamic_cast<AliFMDCalibZeroSuppression*>(zeroSup->GetObject());
  if (!fZeroSuppression) {
    AliError("Invalid zero suppression object from CDB");
    return kZeroSuppression;
  }
  if (!fZeroSuppression->Ptr()) {
    AliWarningF("Empty zero suppression object from CDB, assuming %d",
		fFixedZeroSuppression);
    AliCDBManager* cdbMan = AliCDBManager::Instance();
    if(!cdbMan || !cdbMan->GetCacheFlag())
      delete fZeroSuppression;
    fZeroSuppression = 0;
  }
  return 0;
}

//__________________________________________________________________
UShort_t
AliFMDParameters::InitSampleRate(AliFMDPreprocessor* pp)
{
  //
  // Initialize sample rates.  Try to get them from CDB
  // 
  // Parameters:
  //    pp Pre-processor if called from shuttle
  //
  AliCDBEntry*   sampRat  = GetEntry(fgkSampleRate, pp);
  if (!sampRat) return kSampleRate;

  AliFMDDebug(5, ("Got zero suppression from CDB"));
  fSampleRate = dynamic_cast<AliFMDCalibSampleRate*>(sampRat->GetObject());
  if (!fSampleRate) {
    AliError("Invalid sample rate object from CDB");
    return kSampleRate;
  }
  if (!fSampleRate->Rates().Ptr()) { 
    AliError("empty sample rate object from CDB");
    return kSampleRate;
  }
  return 0;
}

//__________________________________________________________________
UShort_t
AliFMDParameters::InitAltroMap(AliFMDPreprocessor* pp)
{
  //
  // Initialize hardware map.  Try to get it from CDB
  // 
  // Parameters:
  //    pp Pre-processor if called from shuttle
  //
  if (fAltroMap && fAltroMap->TestBit(TObject::kCanDelete)) { 
    delete fAltroMap;
    fAltroMap = 0;
  }
  AliCDBEntry*   hwMap    = GetEntry(fgkAltroMap, pp, kFALSE);       
  if (hwMap) {
    AliFMDDebug(5, ("Got ALTRO map from CDB"));
    fAltroMap = dynamic_cast<AliFMDAltroMapping*>(hwMap->GetObject());
    if (fAltroMap) fAltroMap->ResetBit(TObject::kCanDelete);
  }
  if (!fAltroMap) {
    AliError("Invalid ALTRO map object from CDB");
    fAltroMap = new AliFMDAltroMapping;
    fAltroMap->SetBit(TObject::kCanDelete);
    // return kAltroMap;
  }
  return 0;
}

//__________________________________________________________________
UShort_t
AliFMDParameters::InitStripRange(AliFMDPreprocessor* pp)
{
  //
  // Initialize strip range.  Try to get it from CDB
  // 
  // Parameters:
  //    pp Pre-processor if called from shuttle
  //
  AliCDBEntry*   range    = GetEntry(fgkStripRange, pp);
  if (!range) return kStripRange;

  AliFMDDebug(5, ("Got strip range from CDB"));
  fStripRange = dynamic_cast<AliFMDCalibStripRange*>(range->GetObject());

  if (!fStripRange) {
    AliError("Invalid strip range object from CDB");
    return kStripRange;
  }
  if (!fStripRange->Ranges().Ptr()) {
    AliError("Empty strip range object from CDB");
    return kStripRange;
  }
  return 0;
}


//__________________________________________________________________
Float_t
AliFMDParameters::GetThreshold() const
{
  // 
  // Get the threshold in the pulser gain 
  // 
  // 
  // Return:
  //    Threshold from pulser 
  //
  if (!fPulseGain) return fFixedThreshold;
  return fPulseGain->Threshold();
}

//__________________________________________________________________
Float_t
AliFMDParameters::GetPulseGain(UShort_t detector, Char_t ring, 
			       UShort_t sector, UShort_t strip) 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]
  // 
  // 
  // Parameters:
  //    detector Detector # (1-3)
  //    ring     Ring ID ('I' or 'O')
  //    sector   Sector number (0-39)
  //    strip    Strip number (0-511)
  //
  // Return:
  //    Gain of pre-amp.  
  //
  if (!fPulseGain) { 
    if (fFixedPulseGain <= 0)
      fFixedPulseGain = fVA1MipRange * GetEdepMip() / fAltroChannelSize;
    return fFixedPulseGain;
  }  
  AliFMDDebug(50, ("pulse gain for FMD%d%c[%2d,%3d]=%f",
		    detector, ring, sector, strip,
		    fPulseGain->Value(detector, ring, sector, strip)));
  return fPulseGain->Value(detector, ring, sector, strip);
}

//__________________________________________________________________
Bool_t
AliFMDParameters::IsDead(UShort_t detector, Char_t ring, 
			 UShort_t sector, UShort_t strip) const
{
  // 
  // Whether the strip is considered dead
  // 
  // Parameters:
  //    detector Detector # (1-3)
  //    ring     Ring ID ('I' or 'O')
  //    sector   Sector number (0-39)
  //    strip    Strip number (0-511)
  //
  // Return:
  //    @c true if the strip is considered dead, @c false if it's
  // OK.
  //
  if (!fDeadMap) return kFALSE;
  AliFMDDebug(50, ("Dead for FMD%d%c[%2d,%3d]=%s",
		    detector, ring, sector, strip,
		    fDeadMap->operator()(detector, ring, sector, strip) ? 
		    "no" : "yes"));
  return fDeadMap->operator()(detector, ring, sector, strip);
}

//__________________________________________________________________
UShort_t
AliFMDParameters::GetZeroSuppression(UShort_t detector, Char_t ring, 
				     UShort_t sector, UShort_t strip) const
{
  // 
  // zero suppression threshold (in ADC counts)
  // 
  // Parameters:
  //    detector Detector # (1-3)
  //    ring     Ring ID ('I' or 'O')
  //    sector   Sector number (0-39)
  //    strip    Strip number (0-511)
  //
  // Return:
  //    zero suppression threshold (in ADC counts) 
  //
  if (!fZeroSuppression) return fFixedZeroSuppression;

  // In case of empty zero suppression objects. 
  if (!fZeroSuppression->Ptr() || 
      fZeroSuppression->MaxIndex() <= 0) return fFixedZeroSuppression;

  // Need to map strip to ALTRO chip. 
  AliFMDDebug(50, ("zero sup. for FMD%d%c[%2d,%3d]=%d",
		    detector, ring, sector, strip,
		    fZeroSuppression->operator()(detector, ring, 
						 sector, strip)));
  return fZeroSuppression->operator()(detector, ring, sector, strip/128);
}

//__________________________________________________________________
UShort_t
AliFMDParameters::GetSampleRate(UShort_t det, Char_t ring, UShort_t sector, 
				UShort_t str) const
{
  // 
  // Get the sampling rate
  // 
  // Parameters:
  //    detector Detector # (1-3)
  //    ring     Ring ID ('I' or 'O')
  //    sector   Sector number (0-39)
  //    strip    Strip number (0-511)
  //
  // Return:
  //    The sampling rate 
  //
  if (!fSampleRate) return fFixedSampleRate;
  // Need to map sector to digitizier card. 
  UInt_t ret = fSampleRate->Rate(det, ring, sector, str);
  AliFMDDebug(50, ("Sample rate for FMD%d%c[%2d,%3d]=%d", 
		    det, ring, sector, str, ret));
  return ret;
}

//__________________________________________________________________
UShort_t
AliFMDParameters::GetMinStrip(UShort_t det, Char_t ring, UShort_t sector, 
			      UShort_t str) const
{
  // 
  // Get the minimum strip in the read-out range
  // 
  // Parameters:
  //    detector Detector # (1-3)
  //    ring     Ring ID ('I' or 'O')
  //    sector   Sector number (0-39)
  //    strip    Strip number (0-511)
  //
  // Return:
  //    Minimum strip 
  //
  if (!fStripRange) return fFixedMinStrip;
  // Need to map sector to digitizier card. 
  UInt_t ret = fStripRange->Min(det, ring, sector, str);
  AliFMDDebug(50, ("Min strip # for FMD%d%c[%2d,%3d]=%d", 
		    det, ring, sector, str, ret));
  return ret;
}

//__________________________________________________________________
UShort_t
AliFMDParameters::GetMaxStrip(UShort_t det, Char_t ring, UShort_t sector, 
			      UShort_t str) const
{
  // 
  // Get the maximum strip in the read-out range
  // 
  // Parameters:
  //    detector Detector # (1-3)
  //    ring     Ring ID ('I' or 'O')
  //    sector   Sector number (0-39)
  //    strip    Strip number (0-511)
  //
  // Return:
  //    Maximum strip 
  //
  if (!fStripRange) return fFixedMaxStrip;
  // Need to map sector to digitizier card. 
  UInt_t ret = fStripRange->Max(det, ring, sector, str);
  AliFMDDebug(50, ("Max strip # for FMD%d%c[%2d,%3d]=%d", 
		    det, ring, sector, str, ret));
  return ret;
}

//__________________________________________________________________
Float_t
AliFMDParameters::GetPedestal(UShort_t detector, Char_t ring, 
			      UShort_t sector, UShort_t strip) const
{
  // 
  // Get mean of pedestal
  // 
  // Parameters:
  //    detector Detector # (1-3)
  //    ring     Ring ID ('I' or 'O')
  //    sector   Sector number (0-39)
  //    strip    Strip number (0-511)
  //
  // Return:
  //    Mean of pedestal 
  //
  if (!fPedestal) return fFixedPedestal;
  AliFMDDebug(50, ("pedestal for FMD%d%c[%2d,%3d]=%f",
		    detector, ring, sector, strip,
		    fPedestal->Value(detector, ring, sector, strip)));
  return fPedestal->Value(detector, ring, sector, strip);
}

//__________________________________________________________________
Float_t
AliFMDParameters::GetPedestalWidth(UShort_t detector, Char_t ring, 
				   UShort_t sector, UShort_t strip) const
{
  // 
  // Width of pedestal
  // 
  // Parameters:
  //    detector Detector # (1-3)
  //    ring     Ring ID ('I' or 'O')
  //    sector   Sector number (0-39)
  //    strip    Strip number (0-511)
  //
  // Return:
  //    Width of pedestal 
  //
  if (!fPedestal) return fFixedPedestalWidth;
  AliFMDDebug(50, ("pedetal width for FMD%d%c[%2d,%3d]=%f",
		    detector, ring, sector, strip,
		    fPedestal->Width(detector, ring, sector, strip)));
  return fPedestal->Width(detector, ring, sector, strip);
}
  
//__________________________________________________________________
AliFMDAltroMapping*
AliFMDParameters::GetAltroMap() const
{
  // 
  // Get the map that translates hardware to detector coordinates 
  //
  // Return:
  //    Get the map that translates hardware to detector
  // coordinates 
  // 
  return fAltroMap;
}


//____________________________________________________________________
Bool_t 
AliFMDParameters::Hardware2Detector(UShort_t  ddl,       UShort_t addr,
				    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. 
  // 
  // Parameters:
  //    ddl        Hardware DDL number 
  //    addr       Hardware address.  
  //    timebin    Timebin 
  //    det        On return, the detector #
  //    ring       On return, the ring ID
  //    sec        On return, the sector #
  //    str        On return, the base of strip #
  //    sam        On return, the sample number for this strip
  //
  // Return:
  //    @c true on success, false otherwise 
  //
  if (!fAltroMap) return kFALSE;
  UShort_t board, chip, chan;
  fAltroMap->ChannelAddress(addr, board, chip, chan);
  return Hardware2Detector(ddl,board,chip,chan,timebin,det,ring,sec,str,sam);
}
//____________________________________________________________________
Bool_t 
AliFMDParameters::Hardware2Detector(UShort_t  ddl,       UShort_t   board,
				    UShort_t  chip,      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. 
  // 
  // Parameters:
  //    ddl        Hardware DDL number 
  //    board      FEC number
  //    altro      ALTRO number 
  //    channel    Channel number 
  //    timebin    Timebin 
  //    det        On return, the detector #
  //    ring       On return, the ring ID
  //    sec        On return, the sector #
  //    str        On return, the base of strip #
  //    sam        On return, the sample number for this strip
  //
  // Return:
  //    @c true on success, false otherwise 
  //
  if (!fAltroMap) {
    AliFMDDebug(1, ("No ALTRO map available"));
    return kFALSE;
  }
  if (fAltroMap->DDL2Detector(ddl) < 0) { 
    AliFMDDebug(1, ("Invalid DDL number %d", ddl));
    return kFALSE;
  }
  det = fAltroMap->DDL2Detector(ddl);
  Short_t stripBase = 0;
  if (!fAltroMap->Channel2StripBase(board,chip,chan, ring, sec, stripBase)) {
    AliFMDDebug(1, ("Failed to translate  "
		    "%d/0x%02x/0x%x/0x%x/%04d -> "
		    "FMD%d%c[%2d,%3d] to detector", 
		    ddl, board, chip, chan, timebin, 
		    det, ring, sec, stripBase));
    return kFALSE;
  }
  UShort_t preSamples = GetPreSamples(det, ring, sec, stripBase);
  UShort_t sampleRate = GetSampleRate(det, ring, sec, stripBase);
  Short_t stripOff = 0;
  fAltroMap->Timebin2Strip(sec, timebin, preSamples, sampleRate, stripOff, sam);
  str = stripBase + stripOff;
  AliFMDDebug(50, ("%d/0x%02x/0x%x/0x%x/%04d -> FMD%d%c[%02d,%03d]-%d"
		  " (pre=%2d, rate=%d)", 
		   ddl, board, chip, chan, timebin, 
		   det, ring, sec, str, sam, preSamples, sampleRate));
  return kTRUE;
}


//____________________________________________________________________
Bool_t 
AliFMDParameters::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. 
  // 
  // Parameters:
  //    det         The detector #
  //    ring        The ring ID
  //    sec         The sector #
  //    str         The strip #
  //    sam         The sample number 
  //    ddl         On return, hardware DDL number 
  //    board       On return, the FEC board address (local to DDL)
  //    altro       On return, the ALTRO number (local to FEC)
  //    channel     On return, the channel number (local to ALTRO)
  //    timebin     On return, the timebin number (local to ALTRO)
  //
  // Return:
  //    @c true on success, false otherwise 
  //
  if (!fAltroMap) { 
    AliFMDDebug(1, ("No ALTRO map available"));
    return kFALSE;
  }
  UShort_t preSamples = GetPreSamples(det, ring, sec, str);
  UShort_t sampleRate = GetSampleRate(det, ring, sec, str);
  UShort_t strip      = str - GetMinStrip(det,ring,sec,str);
  return fAltroMap->Detector2Hardware(det, ring, sec, strip, sam,
				      preSamples, sampleRate,
				      ddl, board, altro, channel, timebin);
}

  

//____________________________________________________________________
Bool_t 
AliFMDParameters::Detector2Hardware(UShort_t  det,        Char_t    ring, 
				    UShort_t  sec,        UShort_t  str,
				    UShort_t  sam, 
				    UShort_t&   ddl,        UShort_t&   addr,
				    UShort_t& timebin) const
{
  // 
  // Map a detector index into a hardware address. 
  // 
  // Parameters:
  //    det         The detector #
  //    ring        The ring ID
  //    sec         The sector #
  //    str         The strip #
  //    sam         The sample number 
  //    ddl         On return, hardware DDL number 
  //    addr      On return, hardware address.  
  //    timebin     On return, the timebin number (local to ALTRO)
  //
  // Return:
  //    @c true on success, false otherwise 
  //
  if (!fAltroMap) return kFALSE;
  UShort_t preSamples = GetPreSamples(det, ring, sec, str);
  UShort_t sampleRate = GetSampleRate(det, ring, sec, str);
  UShort_t strip      = str - GetMinStrip(det,ring,sec,str);
  return fAltroMap->Detector2Hardware(det, ring, sec, strip, sam,
				      preSamples, sampleRate,
				      ddl, addr, timebin);
}


//__________________________________________________________________
Float_t
AliFMDParameters::GetEdepMip() const 
{ 
  // 
  // Return:
  //    The average energy deposited by one MIP 
  //
  if (fEdepMip <= 0){
    AliFMDGeometry* fmd = AliFMDGeometry::Instance();
    fEdepMip = (fkSiDeDxMip 
		* fmd->GetRing('I')->GetSiThickness() 
		* fmd->GetSiDensity());
  }
  return fEdepMip;
}
//____________________________________________________________________
Float_t  
AliFMDParameters::GetDACPerMIP() 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 
  //
  return 29.67;
  
}
 
//____________________________________________________________________
//
// EOF
//
 AliFMDParameters.cxx:1
 AliFMDParameters.cxx:2
 AliFMDParameters.cxx:3
 AliFMDParameters.cxx:4
 AliFMDParameters.cxx:5
 AliFMDParameters.cxx:6
 AliFMDParameters.cxx:7
 AliFMDParameters.cxx:8
 AliFMDParameters.cxx:9
 AliFMDParameters.cxx:10
 AliFMDParameters.cxx:11
 AliFMDParameters.cxx:12
 AliFMDParameters.cxx:13
 AliFMDParameters.cxx:14
 AliFMDParameters.cxx:15
 AliFMDParameters.cxx:16
 AliFMDParameters.cxx:17
 AliFMDParameters.cxx:18
 AliFMDParameters.cxx:19
 AliFMDParameters.cxx:20
 AliFMDParameters.cxx:21
 AliFMDParameters.cxx:22
 AliFMDParameters.cxx:23
 AliFMDParameters.cxx:24
 AliFMDParameters.cxx:25
 AliFMDParameters.cxx:26
 AliFMDParameters.cxx:27
 AliFMDParameters.cxx:28
 AliFMDParameters.cxx:29
 AliFMDParameters.cxx:30
 AliFMDParameters.cxx:31
 AliFMDParameters.cxx:32
 AliFMDParameters.cxx:33
 AliFMDParameters.cxx:34
 AliFMDParameters.cxx:35
 AliFMDParameters.cxx:36
 AliFMDParameters.cxx:37
 AliFMDParameters.cxx:38
 AliFMDParameters.cxx:39
 AliFMDParameters.cxx:40
 AliFMDParameters.cxx:41
 AliFMDParameters.cxx:42
 AliFMDParameters.cxx:43
 AliFMDParameters.cxx:44
 AliFMDParameters.cxx:45
 AliFMDParameters.cxx:46
 AliFMDParameters.cxx:47
 AliFMDParameters.cxx:48
 AliFMDParameters.cxx:49
 AliFMDParameters.cxx:50
 AliFMDParameters.cxx:51
 AliFMDParameters.cxx:52
 AliFMDParameters.cxx:53
 AliFMDParameters.cxx:54
 AliFMDParameters.cxx:55
 AliFMDParameters.cxx:56
 AliFMDParameters.cxx:57
 AliFMDParameters.cxx:58
 AliFMDParameters.cxx:59
 AliFMDParameters.cxx:60
 AliFMDParameters.cxx:61
 AliFMDParameters.cxx:62
 AliFMDParameters.cxx:63
 AliFMDParameters.cxx:64
 AliFMDParameters.cxx:65
 AliFMDParameters.cxx:66
 AliFMDParameters.cxx:67
 AliFMDParameters.cxx:68
 AliFMDParameters.cxx:69
 AliFMDParameters.cxx:70
 AliFMDParameters.cxx:71
 AliFMDParameters.cxx:72
 AliFMDParameters.cxx:73
 AliFMDParameters.cxx:74
 AliFMDParameters.cxx:75
 AliFMDParameters.cxx:76
 AliFMDParameters.cxx:77
 AliFMDParameters.cxx:78
 AliFMDParameters.cxx:79
 AliFMDParameters.cxx:80
 AliFMDParameters.cxx:81
 AliFMDParameters.cxx:82
 AliFMDParameters.cxx:83
 AliFMDParameters.cxx:84
 AliFMDParameters.cxx:85
 AliFMDParameters.cxx:86
 AliFMDParameters.cxx:87
 AliFMDParameters.cxx:88
 AliFMDParameters.cxx:89
 AliFMDParameters.cxx:90
 AliFMDParameters.cxx:91
 AliFMDParameters.cxx:92
 AliFMDParameters.cxx:93
 AliFMDParameters.cxx:94
 AliFMDParameters.cxx:95
 AliFMDParameters.cxx:96
 AliFMDParameters.cxx:97
 AliFMDParameters.cxx:98
 AliFMDParameters.cxx:99
 AliFMDParameters.cxx:100
 AliFMDParameters.cxx:101
 AliFMDParameters.cxx:102
 AliFMDParameters.cxx:103
 AliFMDParameters.cxx:104
 AliFMDParameters.cxx:105
 AliFMDParameters.cxx:106
 AliFMDParameters.cxx:107
 AliFMDParameters.cxx:108
 AliFMDParameters.cxx:109
 AliFMDParameters.cxx:110
 AliFMDParameters.cxx:111
 AliFMDParameters.cxx:112
 AliFMDParameters.cxx:113
 AliFMDParameters.cxx:114
 AliFMDParameters.cxx:115
 AliFMDParameters.cxx:116
 AliFMDParameters.cxx:117
 AliFMDParameters.cxx:118
 AliFMDParameters.cxx:119
 AliFMDParameters.cxx:120
 AliFMDParameters.cxx:121
 AliFMDParameters.cxx:122
 AliFMDParameters.cxx:123
 AliFMDParameters.cxx:124
 AliFMDParameters.cxx:125
 AliFMDParameters.cxx:126
 AliFMDParameters.cxx:127
 AliFMDParameters.cxx:128
 AliFMDParameters.cxx:129
 AliFMDParameters.cxx:130
 AliFMDParameters.cxx:131
 AliFMDParameters.cxx:132
 AliFMDParameters.cxx:133
 AliFMDParameters.cxx:134
 AliFMDParameters.cxx:135
 AliFMDParameters.cxx:136
 AliFMDParameters.cxx:137
 AliFMDParameters.cxx:138
 AliFMDParameters.cxx:139
 AliFMDParameters.cxx:140
 AliFMDParameters.cxx:141
 AliFMDParameters.cxx:142
 AliFMDParameters.cxx:143
 AliFMDParameters.cxx:144
 AliFMDParameters.cxx:145
 AliFMDParameters.cxx:146
 AliFMDParameters.cxx:147
 AliFMDParameters.cxx:148
 AliFMDParameters.cxx:149
 AliFMDParameters.cxx:150
 AliFMDParameters.cxx:151
 AliFMDParameters.cxx:152
 AliFMDParameters.cxx:153
 AliFMDParameters.cxx:154
 AliFMDParameters.cxx:155
 AliFMDParameters.cxx:156
 AliFMDParameters.cxx:157
 AliFMDParameters.cxx:158
 AliFMDParameters.cxx:159
 AliFMDParameters.cxx:160
 AliFMDParameters.cxx:161
 AliFMDParameters.cxx:162
 AliFMDParameters.cxx:163
 AliFMDParameters.cxx:164
 AliFMDParameters.cxx:165
 AliFMDParameters.cxx:166
 AliFMDParameters.cxx:167
 AliFMDParameters.cxx:168
 AliFMDParameters.cxx:169
 AliFMDParameters.cxx:170
 AliFMDParameters.cxx:171
 AliFMDParameters.cxx:172
 AliFMDParameters.cxx:173
 AliFMDParameters.cxx:174
 AliFMDParameters.cxx:175
 AliFMDParameters.cxx:176
 AliFMDParameters.cxx:177
 AliFMDParameters.cxx:178
 AliFMDParameters.cxx:179
 AliFMDParameters.cxx:180
 AliFMDParameters.cxx:181
 AliFMDParameters.cxx:182
 AliFMDParameters.cxx:183
 AliFMDParameters.cxx:184
 AliFMDParameters.cxx:185
 AliFMDParameters.cxx:186
 AliFMDParameters.cxx:187
 AliFMDParameters.cxx:188
 AliFMDParameters.cxx:189
 AliFMDParameters.cxx:190
 AliFMDParameters.cxx:191
 AliFMDParameters.cxx:192
 AliFMDParameters.cxx:193
 AliFMDParameters.cxx:194
 AliFMDParameters.cxx:195
 AliFMDParameters.cxx:196
 AliFMDParameters.cxx:197
 AliFMDParameters.cxx:198
 AliFMDParameters.cxx:199
 AliFMDParameters.cxx:200
 AliFMDParameters.cxx:201
 AliFMDParameters.cxx:202
 AliFMDParameters.cxx:203
 AliFMDParameters.cxx:204
 AliFMDParameters.cxx:205
 AliFMDParameters.cxx:206
 AliFMDParameters.cxx:207
 AliFMDParameters.cxx:208
 AliFMDParameters.cxx:209
 AliFMDParameters.cxx:210
 AliFMDParameters.cxx:211
 AliFMDParameters.cxx:212
 AliFMDParameters.cxx:213
 AliFMDParameters.cxx:214
 AliFMDParameters.cxx:215
 AliFMDParameters.cxx:216
 AliFMDParameters.cxx:217
 AliFMDParameters.cxx:218
 AliFMDParameters.cxx:219
 AliFMDParameters.cxx:220
 AliFMDParameters.cxx:221
 AliFMDParameters.cxx:222
 AliFMDParameters.cxx:223
 AliFMDParameters.cxx:224
 AliFMDParameters.cxx:225
 AliFMDParameters.cxx:226
 AliFMDParameters.cxx:227
 AliFMDParameters.cxx:228
 AliFMDParameters.cxx:229
 AliFMDParameters.cxx:230
 AliFMDParameters.cxx:231
 AliFMDParameters.cxx:232
 AliFMDParameters.cxx:233
 AliFMDParameters.cxx:234
 AliFMDParameters.cxx:235
 AliFMDParameters.cxx:236
 AliFMDParameters.cxx:237
 AliFMDParameters.cxx:238
 AliFMDParameters.cxx:239
 AliFMDParameters.cxx:240
 AliFMDParameters.cxx:241
 AliFMDParameters.cxx:242
 AliFMDParameters.cxx:243
 AliFMDParameters.cxx:244
 AliFMDParameters.cxx:245
 AliFMDParameters.cxx:246
 AliFMDParameters.cxx:247
 AliFMDParameters.cxx:248
 AliFMDParameters.cxx:249
 AliFMDParameters.cxx:250
 AliFMDParameters.cxx:251
 AliFMDParameters.cxx:252
 AliFMDParameters.cxx:253
 AliFMDParameters.cxx:254
 AliFMDParameters.cxx:255
 AliFMDParameters.cxx:256
 AliFMDParameters.cxx:257
 AliFMDParameters.cxx:258
 AliFMDParameters.cxx:259
 AliFMDParameters.cxx:260
 AliFMDParameters.cxx:261
 AliFMDParameters.cxx:262
 AliFMDParameters.cxx:263
 AliFMDParameters.cxx:264
 AliFMDParameters.cxx:265
 AliFMDParameters.cxx:266
 AliFMDParameters.cxx:267
 AliFMDParameters.cxx:268
 AliFMDParameters.cxx:269
 AliFMDParameters.cxx:270
 AliFMDParameters.cxx:271
 AliFMDParameters.cxx:272
 AliFMDParameters.cxx:273
 AliFMDParameters.cxx:274
 AliFMDParameters.cxx:275
 AliFMDParameters.cxx:276
 AliFMDParameters.cxx:277
 AliFMDParameters.cxx:278
 AliFMDParameters.cxx:279
 AliFMDParameters.cxx:280
 AliFMDParameters.cxx:281
 AliFMDParameters.cxx:282
 AliFMDParameters.cxx:283
 AliFMDParameters.cxx:284
 AliFMDParameters.cxx:285
 AliFMDParameters.cxx:286
 AliFMDParameters.cxx:287
 AliFMDParameters.cxx:288
 AliFMDParameters.cxx:289
 AliFMDParameters.cxx:290
 AliFMDParameters.cxx:291
 AliFMDParameters.cxx:292
 AliFMDParameters.cxx:293
 AliFMDParameters.cxx:294
 AliFMDParameters.cxx:295
 AliFMDParameters.cxx:296
 AliFMDParameters.cxx:297
 AliFMDParameters.cxx:298
 AliFMDParameters.cxx:299
 AliFMDParameters.cxx:300
 AliFMDParameters.cxx:301
 AliFMDParameters.cxx:302
 AliFMDParameters.cxx:303
 AliFMDParameters.cxx:304
 AliFMDParameters.cxx:305
 AliFMDParameters.cxx:306
 AliFMDParameters.cxx:307
 AliFMDParameters.cxx:308
 AliFMDParameters.cxx:309
 AliFMDParameters.cxx:310
 AliFMDParameters.cxx:311
 AliFMDParameters.cxx:312
 AliFMDParameters.cxx:313
 AliFMDParameters.cxx:314
 AliFMDParameters.cxx:315
 AliFMDParameters.cxx:316
 AliFMDParameters.cxx:317
 AliFMDParameters.cxx:318
 AliFMDParameters.cxx:319
 AliFMDParameters.cxx:320
 AliFMDParameters.cxx:321
 AliFMDParameters.cxx:322
 AliFMDParameters.cxx:323
 AliFMDParameters.cxx:324
 AliFMDParameters.cxx:325
 AliFMDParameters.cxx:326
 AliFMDParameters.cxx:327
 AliFMDParameters.cxx:328
 AliFMDParameters.cxx:329
 AliFMDParameters.cxx:330
 AliFMDParameters.cxx:331
 AliFMDParameters.cxx:332
 AliFMDParameters.cxx:333
 AliFMDParameters.cxx:334
 AliFMDParameters.cxx:335
 AliFMDParameters.cxx:336
 AliFMDParameters.cxx:337
 AliFMDParameters.cxx:338
 AliFMDParameters.cxx:339
 AliFMDParameters.cxx:340
 AliFMDParameters.cxx:341
 AliFMDParameters.cxx:342
 AliFMDParameters.cxx:343
 AliFMDParameters.cxx:344
 AliFMDParameters.cxx:345
 AliFMDParameters.cxx:346
 AliFMDParameters.cxx:347
 AliFMDParameters.cxx:348
 AliFMDParameters.cxx:349
 AliFMDParameters.cxx:350
 AliFMDParameters.cxx:351
 AliFMDParameters.cxx:352
 AliFMDParameters.cxx:353
 AliFMDParameters.cxx:354
 AliFMDParameters.cxx:355
 AliFMDParameters.cxx:356
 AliFMDParameters.cxx:357
 AliFMDParameters.cxx:358
 AliFMDParameters.cxx:359
 AliFMDParameters.cxx:360
 AliFMDParameters.cxx:361
 AliFMDParameters.cxx:362
 AliFMDParameters.cxx:363
 AliFMDParameters.cxx:364
 AliFMDParameters.cxx:365
 AliFMDParameters.cxx:366
 AliFMDParameters.cxx:367
 AliFMDParameters.cxx:368
 AliFMDParameters.cxx:369
 AliFMDParameters.cxx:370
 AliFMDParameters.cxx:371
 AliFMDParameters.cxx:372
 AliFMDParameters.cxx:373
 AliFMDParameters.cxx:374
 AliFMDParameters.cxx:375
 AliFMDParameters.cxx:376
 AliFMDParameters.cxx:377
 AliFMDParameters.cxx:378
 AliFMDParameters.cxx:379
 AliFMDParameters.cxx:380
 AliFMDParameters.cxx:381
 AliFMDParameters.cxx:382
 AliFMDParameters.cxx:383
 AliFMDParameters.cxx:384
 AliFMDParameters.cxx:385
 AliFMDParameters.cxx:386
 AliFMDParameters.cxx:387
 AliFMDParameters.cxx:388
 AliFMDParameters.cxx:389
 AliFMDParameters.cxx:390
 AliFMDParameters.cxx:391
 AliFMDParameters.cxx:392
 AliFMDParameters.cxx:393
 AliFMDParameters.cxx:394
 AliFMDParameters.cxx:395
 AliFMDParameters.cxx:396
 AliFMDParameters.cxx:397
 AliFMDParameters.cxx:398
 AliFMDParameters.cxx:399
 AliFMDParameters.cxx:400
 AliFMDParameters.cxx:401
 AliFMDParameters.cxx:402
 AliFMDParameters.cxx:403
 AliFMDParameters.cxx:404
 AliFMDParameters.cxx:405
 AliFMDParameters.cxx:406
 AliFMDParameters.cxx:407
 AliFMDParameters.cxx:408
 AliFMDParameters.cxx:409
 AliFMDParameters.cxx:410
 AliFMDParameters.cxx:411
 AliFMDParameters.cxx:412
 AliFMDParameters.cxx:413
 AliFMDParameters.cxx:414
 AliFMDParameters.cxx:415
 AliFMDParameters.cxx:416
 AliFMDParameters.cxx:417
 AliFMDParameters.cxx:418
 AliFMDParameters.cxx:419
 AliFMDParameters.cxx:420
 AliFMDParameters.cxx:421
 AliFMDParameters.cxx:422
 AliFMDParameters.cxx:423
 AliFMDParameters.cxx:424
 AliFMDParameters.cxx:425
 AliFMDParameters.cxx:426
 AliFMDParameters.cxx:427
 AliFMDParameters.cxx:428
 AliFMDParameters.cxx:429
 AliFMDParameters.cxx:430
 AliFMDParameters.cxx:431
 AliFMDParameters.cxx:432
 AliFMDParameters.cxx:433
 AliFMDParameters.cxx:434
 AliFMDParameters.cxx:435
 AliFMDParameters.cxx:436
 AliFMDParameters.cxx:437
 AliFMDParameters.cxx:438
 AliFMDParameters.cxx:439
 AliFMDParameters.cxx:440
 AliFMDParameters.cxx:441
 AliFMDParameters.cxx:442
 AliFMDParameters.cxx:443
 AliFMDParameters.cxx:444
 AliFMDParameters.cxx:445
 AliFMDParameters.cxx:446
 AliFMDParameters.cxx:447
 AliFMDParameters.cxx:448
 AliFMDParameters.cxx:449
 AliFMDParameters.cxx:450
 AliFMDParameters.cxx:451
 AliFMDParameters.cxx:452
 AliFMDParameters.cxx:453
 AliFMDParameters.cxx:454
 AliFMDParameters.cxx:455
 AliFMDParameters.cxx:456
 AliFMDParameters.cxx:457
 AliFMDParameters.cxx:458
 AliFMDParameters.cxx:459
 AliFMDParameters.cxx:460
 AliFMDParameters.cxx:461
 AliFMDParameters.cxx:462
 AliFMDParameters.cxx:463
 AliFMDParameters.cxx:464
 AliFMDParameters.cxx:465
 AliFMDParameters.cxx:466
 AliFMDParameters.cxx:467
 AliFMDParameters.cxx:468
 AliFMDParameters.cxx:469
 AliFMDParameters.cxx:470
 AliFMDParameters.cxx:471
 AliFMDParameters.cxx:472
 AliFMDParameters.cxx:473
 AliFMDParameters.cxx:474
 AliFMDParameters.cxx:475
 AliFMDParameters.cxx:476
 AliFMDParameters.cxx:477
 AliFMDParameters.cxx:478
 AliFMDParameters.cxx:479
 AliFMDParameters.cxx:480
 AliFMDParameters.cxx:481
 AliFMDParameters.cxx:482
 AliFMDParameters.cxx:483
 AliFMDParameters.cxx:484
 AliFMDParameters.cxx:485
 AliFMDParameters.cxx:486
 AliFMDParameters.cxx:487
 AliFMDParameters.cxx:488
 AliFMDParameters.cxx:489
 AliFMDParameters.cxx:490
 AliFMDParameters.cxx:491
 AliFMDParameters.cxx:492
 AliFMDParameters.cxx:493
 AliFMDParameters.cxx:494
 AliFMDParameters.cxx:495
 AliFMDParameters.cxx:496
 AliFMDParameters.cxx:497
 AliFMDParameters.cxx:498
 AliFMDParameters.cxx:499
 AliFMDParameters.cxx:500
 AliFMDParameters.cxx:501
 AliFMDParameters.cxx:502
 AliFMDParameters.cxx:503
 AliFMDParameters.cxx:504
 AliFMDParameters.cxx:505
 AliFMDParameters.cxx:506
 AliFMDParameters.cxx:507
 AliFMDParameters.cxx:508
 AliFMDParameters.cxx:509
 AliFMDParameters.cxx:510
 AliFMDParameters.cxx:511
 AliFMDParameters.cxx:512
 AliFMDParameters.cxx:513
 AliFMDParameters.cxx:514
 AliFMDParameters.cxx:515
 AliFMDParameters.cxx:516
 AliFMDParameters.cxx:517
 AliFMDParameters.cxx:518
 AliFMDParameters.cxx:519
 AliFMDParameters.cxx:520
 AliFMDParameters.cxx:521
 AliFMDParameters.cxx:522
 AliFMDParameters.cxx:523
 AliFMDParameters.cxx:524
 AliFMDParameters.cxx:525
 AliFMDParameters.cxx:526
 AliFMDParameters.cxx:527
 AliFMDParameters.cxx:528
 AliFMDParameters.cxx:529
 AliFMDParameters.cxx:530
 AliFMDParameters.cxx:531
 AliFMDParameters.cxx:532
 AliFMDParameters.cxx:533
 AliFMDParameters.cxx:534
 AliFMDParameters.cxx:535
 AliFMDParameters.cxx:536
 AliFMDParameters.cxx:537
 AliFMDParameters.cxx:538
 AliFMDParameters.cxx:539
 AliFMDParameters.cxx:540
 AliFMDParameters.cxx:541
 AliFMDParameters.cxx:542
 AliFMDParameters.cxx:543
 AliFMDParameters.cxx:544
 AliFMDParameters.cxx:545
 AliFMDParameters.cxx:546
 AliFMDParameters.cxx:547
 AliFMDParameters.cxx:548
 AliFMDParameters.cxx:549
 AliFMDParameters.cxx:550
 AliFMDParameters.cxx:551
 AliFMDParameters.cxx:552
 AliFMDParameters.cxx:553
 AliFMDParameters.cxx:554
 AliFMDParameters.cxx:555
 AliFMDParameters.cxx:556
 AliFMDParameters.cxx:557
 AliFMDParameters.cxx:558
 AliFMDParameters.cxx:559
 AliFMDParameters.cxx:560
 AliFMDParameters.cxx:561
 AliFMDParameters.cxx:562
 AliFMDParameters.cxx:563
 AliFMDParameters.cxx:564
 AliFMDParameters.cxx:565
 AliFMDParameters.cxx:566
 AliFMDParameters.cxx:567
 AliFMDParameters.cxx:568
 AliFMDParameters.cxx:569
 AliFMDParameters.cxx:570
 AliFMDParameters.cxx:571
 AliFMDParameters.cxx:572
 AliFMDParameters.cxx:573
 AliFMDParameters.cxx:574
 AliFMDParameters.cxx:575
 AliFMDParameters.cxx:576
 AliFMDParameters.cxx:577
 AliFMDParameters.cxx:578
 AliFMDParameters.cxx:579
 AliFMDParameters.cxx:580
 AliFMDParameters.cxx:581
 AliFMDParameters.cxx:582
 AliFMDParameters.cxx:583
 AliFMDParameters.cxx:584
 AliFMDParameters.cxx:585
 AliFMDParameters.cxx:586
 AliFMDParameters.cxx:587
 AliFMDParameters.cxx:588
 AliFMDParameters.cxx:589
 AliFMDParameters.cxx:590
 AliFMDParameters.cxx:591
 AliFMDParameters.cxx:592
 AliFMDParameters.cxx:593
 AliFMDParameters.cxx:594
 AliFMDParameters.cxx:595
 AliFMDParameters.cxx:596
 AliFMDParameters.cxx:597
 AliFMDParameters.cxx:598
 AliFMDParameters.cxx:599
 AliFMDParameters.cxx:600
 AliFMDParameters.cxx:601
 AliFMDParameters.cxx:602
 AliFMDParameters.cxx:603
 AliFMDParameters.cxx:604
 AliFMDParameters.cxx:605
 AliFMDParameters.cxx:606
 AliFMDParameters.cxx:607
 AliFMDParameters.cxx:608
 AliFMDParameters.cxx:609
 AliFMDParameters.cxx:610
 AliFMDParameters.cxx:611
 AliFMDParameters.cxx:612
 AliFMDParameters.cxx:613
 AliFMDParameters.cxx:614
 AliFMDParameters.cxx:615
 AliFMDParameters.cxx:616
 AliFMDParameters.cxx:617
 AliFMDParameters.cxx:618
 AliFMDParameters.cxx:619
 AliFMDParameters.cxx:620
 AliFMDParameters.cxx:621
 AliFMDParameters.cxx:622
 AliFMDParameters.cxx:623
 AliFMDParameters.cxx:624
 AliFMDParameters.cxx:625
 AliFMDParameters.cxx:626
 AliFMDParameters.cxx:627
 AliFMDParameters.cxx:628
 AliFMDParameters.cxx:629
 AliFMDParameters.cxx:630
 AliFMDParameters.cxx:631
 AliFMDParameters.cxx:632
 AliFMDParameters.cxx:633
 AliFMDParameters.cxx:634
 AliFMDParameters.cxx:635
 AliFMDParameters.cxx:636
 AliFMDParameters.cxx:637
 AliFMDParameters.cxx:638
 AliFMDParameters.cxx:639
 AliFMDParameters.cxx:640
 AliFMDParameters.cxx:641
 AliFMDParameters.cxx:642
 AliFMDParameters.cxx:643
 AliFMDParameters.cxx:644
 AliFMDParameters.cxx:645
 AliFMDParameters.cxx:646
 AliFMDParameters.cxx:647
 AliFMDParameters.cxx:648
 AliFMDParameters.cxx:649
 AliFMDParameters.cxx:650
 AliFMDParameters.cxx:651
 AliFMDParameters.cxx:652
 AliFMDParameters.cxx:653
 AliFMDParameters.cxx:654
 AliFMDParameters.cxx:655
 AliFMDParameters.cxx:656
 AliFMDParameters.cxx:657
 AliFMDParameters.cxx:658
 AliFMDParameters.cxx:659
 AliFMDParameters.cxx:660
 AliFMDParameters.cxx:661
 AliFMDParameters.cxx:662
 AliFMDParameters.cxx:663
 AliFMDParameters.cxx:664
 AliFMDParameters.cxx:665
 AliFMDParameters.cxx:666
 AliFMDParameters.cxx:667
 AliFMDParameters.cxx:668
 AliFMDParameters.cxx:669
 AliFMDParameters.cxx:670
 AliFMDParameters.cxx:671
 AliFMDParameters.cxx:672
 AliFMDParameters.cxx:673
 AliFMDParameters.cxx:674
 AliFMDParameters.cxx:675
 AliFMDParameters.cxx:676
 AliFMDParameters.cxx:677
 AliFMDParameters.cxx:678
 AliFMDParameters.cxx:679
 AliFMDParameters.cxx:680
 AliFMDParameters.cxx:681
 AliFMDParameters.cxx:682
 AliFMDParameters.cxx:683
 AliFMDParameters.cxx:684
 AliFMDParameters.cxx:685
 AliFMDParameters.cxx:686
 AliFMDParameters.cxx:687
 AliFMDParameters.cxx:688
 AliFMDParameters.cxx:689
 AliFMDParameters.cxx:690
 AliFMDParameters.cxx:691
 AliFMDParameters.cxx:692
 AliFMDParameters.cxx:693
 AliFMDParameters.cxx:694
 AliFMDParameters.cxx:695
 AliFMDParameters.cxx:696
 AliFMDParameters.cxx:697
 AliFMDParameters.cxx:698
 AliFMDParameters.cxx:699
 AliFMDParameters.cxx:700
 AliFMDParameters.cxx:701
 AliFMDParameters.cxx:702
 AliFMDParameters.cxx:703
 AliFMDParameters.cxx:704
 AliFMDParameters.cxx:705
 AliFMDParameters.cxx:706
 AliFMDParameters.cxx:707
 AliFMDParameters.cxx:708
 AliFMDParameters.cxx:709
 AliFMDParameters.cxx:710
 AliFMDParameters.cxx:711
 AliFMDParameters.cxx:712
 AliFMDParameters.cxx:713
 AliFMDParameters.cxx:714
 AliFMDParameters.cxx:715
 AliFMDParameters.cxx:716
 AliFMDParameters.cxx:717
 AliFMDParameters.cxx:718
 AliFMDParameters.cxx:719
 AliFMDParameters.cxx:720
 AliFMDParameters.cxx:721
 AliFMDParameters.cxx:722
 AliFMDParameters.cxx:723
 AliFMDParameters.cxx:724
 AliFMDParameters.cxx:725
 AliFMDParameters.cxx:726
 AliFMDParameters.cxx:727
 AliFMDParameters.cxx:728
 AliFMDParameters.cxx:729
 AliFMDParameters.cxx:730
 AliFMDParameters.cxx:731
 AliFMDParameters.cxx:732
 AliFMDParameters.cxx:733
 AliFMDParameters.cxx:734
 AliFMDParameters.cxx:735
 AliFMDParameters.cxx:736
 AliFMDParameters.cxx:737
 AliFMDParameters.cxx:738
 AliFMDParameters.cxx:739
 AliFMDParameters.cxx:740
 AliFMDParameters.cxx:741
 AliFMDParameters.cxx:742
 AliFMDParameters.cxx:743
 AliFMDParameters.cxx:744
 AliFMDParameters.cxx:745
 AliFMDParameters.cxx:746
 AliFMDParameters.cxx:747
 AliFMDParameters.cxx:748
 AliFMDParameters.cxx:749
 AliFMDParameters.cxx:750
 AliFMDParameters.cxx:751
 AliFMDParameters.cxx:752
 AliFMDParameters.cxx:753
 AliFMDParameters.cxx:754
 AliFMDParameters.cxx:755
 AliFMDParameters.cxx:756
 AliFMDParameters.cxx:757
 AliFMDParameters.cxx:758
 AliFMDParameters.cxx:759
 AliFMDParameters.cxx:760
 AliFMDParameters.cxx:761
 AliFMDParameters.cxx:762
 AliFMDParameters.cxx:763
 AliFMDParameters.cxx:764
 AliFMDParameters.cxx:765
 AliFMDParameters.cxx:766
 AliFMDParameters.cxx:767
 AliFMDParameters.cxx:768
 AliFMDParameters.cxx:769
 AliFMDParameters.cxx:770
 AliFMDParameters.cxx:771
 AliFMDParameters.cxx:772
 AliFMDParameters.cxx:773
 AliFMDParameters.cxx:774
 AliFMDParameters.cxx:775
 AliFMDParameters.cxx:776
 AliFMDParameters.cxx:777
 AliFMDParameters.cxx:778
 AliFMDParameters.cxx:779
 AliFMDParameters.cxx:780
 AliFMDParameters.cxx:781
 AliFMDParameters.cxx:782
 AliFMDParameters.cxx:783
 AliFMDParameters.cxx:784
 AliFMDParameters.cxx:785
 AliFMDParameters.cxx:786
 AliFMDParameters.cxx:787
 AliFMDParameters.cxx:788
 AliFMDParameters.cxx:789
 AliFMDParameters.cxx:790
 AliFMDParameters.cxx:791
 AliFMDParameters.cxx:792
 AliFMDParameters.cxx:793
 AliFMDParameters.cxx:794
 AliFMDParameters.cxx:795
 AliFMDParameters.cxx:796
 AliFMDParameters.cxx:797
 AliFMDParameters.cxx:798
 AliFMDParameters.cxx:799
 AliFMDParameters.cxx:800
 AliFMDParameters.cxx:801
 AliFMDParameters.cxx:802
 AliFMDParameters.cxx:803
 AliFMDParameters.cxx:804
 AliFMDParameters.cxx:805
 AliFMDParameters.cxx:806
 AliFMDParameters.cxx:807
 AliFMDParameters.cxx:808
 AliFMDParameters.cxx:809
 AliFMDParameters.cxx:810
 AliFMDParameters.cxx:811
 AliFMDParameters.cxx:812
 AliFMDParameters.cxx:813
 AliFMDParameters.cxx:814
 AliFMDParameters.cxx:815
 AliFMDParameters.cxx:816
 AliFMDParameters.cxx:817
 AliFMDParameters.cxx:818
 AliFMDParameters.cxx:819
 AliFMDParameters.cxx:820
 AliFMDParameters.cxx:821
 AliFMDParameters.cxx:822
 AliFMDParameters.cxx:823
 AliFMDParameters.cxx:824
 AliFMDParameters.cxx:825
 AliFMDParameters.cxx:826
 AliFMDParameters.cxx:827
 AliFMDParameters.cxx:828
 AliFMDParameters.cxx:829
 AliFMDParameters.cxx:830
 AliFMDParameters.cxx:831
 AliFMDParameters.cxx:832
 AliFMDParameters.cxx:833
 AliFMDParameters.cxx:834
 AliFMDParameters.cxx:835
 AliFMDParameters.cxx:836
 AliFMDParameters.cxx:837
 AliFMDParameters.cxx:838
 AliFMDParameters.cxx:839
 AliFMDParameters.cxx:840
 AliFMDParameters.cxx:841
 AliFMDParameters.cxx:842
 AliFMDParameters.cxx:843
 AliFMDParameters.cxx:844
 AliFMDParameters.cxx:845
 AliFMDParameters.cxx:846
 AliFMDParameters.cxx:847
 AliFMDParameters.cxx:848
 AliFMDParameters.cxx:849
 AliFMDParameters.cxx:850
 AliFMDParameters.cxx:851
 AliFMDParameters.cxx:852
 AliFMDParameters.cxx:853
 AliFMDParameters.cxx:854
 AliFMDParameters.cxx:855
 AliFMDParameters.cxx:856
 AliFMDParameters.cxx:857
 AliFMDParameters.cxx:858
 AliFMDParameters.cxx:859
 AliFMDParameters.cxx:860
 AliFMDParameters.cxx:861
 AliFMDParameters.cxx:862
 AliFMDParameters.cxx:863
 AliFMDParameters.cxx:864
 AliFMDParameters.cxx:865
 AliFMDParameters.cxx:866
 AliFMDParameters.cxx:867
 AliFMDParameters.cxx:868
 AliFMDParameters.cxx:869
 AliFMDParameters.cxx:870
 AliFMDParameters.cxx:871
 AliFMDParameters.cxx:872
 AliFMDParameters.cxx:873
 AliFMDParameters.cxx:874
 AliFMDParameters.cxx:875
 AliFMDParameters.cxx:876
 AliFMDParameters.cxx:877
 AliFMDParameters.cxx:878
 AliFMDParameters.cxx:879
 AliFMDParameters.cxx:880
 AliFMDParameters.cxx:881
 AliFMDParameters.cxx:882
 AliFMDParameters.cxx:883
 AliFMDParameters.cxx:884
 AliFMDParameters.cxx:885
 AliFMDParameters.cxx:886
 AliFMDParameters.cxx:887
 AliFMDParameters.cxx:888
 AliFMDParameters.cxx:889
 AliFMDParameters.cxx:890
 AliFMDParameters.cxx:891
 AliFMDParameters.cxx:892
 AliFMDParameters.cxx:893
 AliFMDParameters.cxx:894
 AliFMDParameters.cxx:895
 AliFMDParameters.cxx:896
 AliFMDParameters.cxx:897
 AliFMDParameters.cxx:898
 AliFMDParameters.cxx:899
 AliFMDParameters.cxx:900
 AliFMDParameters.cxx:901
 AliFMDParameters.cxx:902
 AliFMDParameters.cxx:903
 AliFMDParameters.cxx:904
 AliFMDParameters.cxx:905
 AliFMDParameters.cxx:906
 AliFMDParameters.cxx:907
 AliFMDParameters.cxx:908
 AliFMDParameters.cxx:909
 AliFMDParameters.cxx:910
 AliFMDParameters.cxx:911
 AliFMDParameters.cxx:912
 AliFMDParameters.cxx:913
 AliFMDParameters.cxx:914
 AliFMDParameters.cxx:915
 AliFMDParameters.cxx:916
 AliFMDParameters.cxx:917
 AliFMDParameters.cxx:918
 AliFMDParameters.cxx:919
 AliFMDParameters.cxx:920
 AliFMDParameters.cxx:921
 AliFMDParameters.cxx:922
 AliFMDParameters.cxx:923
 AliFMDParameters.cxx:924
 AliFMDParameters.cxx:925
 AliFMDParameters.cxx:926
 AliFMDParameters.cxx:927
 AliFMDParameters.cxx:928
 AliFMDParameters.cxx:929
 AliFMDParameters.cxx:930
 AliFMDParameters.cxx:931
 AliFMDParameters.cxx:932
 AliFMDParameters.cxx:933
 AliFMDParameters.cxx:934
 AliFMDParameters.cxx:935
 AliFMDParameters.cxx:936
 AliFMDParameters.cxx:937
 AliFMDParameters.cxx:938
 AliFMDParameters.cxx:939
 AliFMDParameters.cxx:940
 AliFMDParameters.cxx:941
 AliFMDParameters.cxx:942
 AliFMDParameters.cxx:943
 AliFMDParameters.cxx:944
 AliFMDParameters.cxx:945
 AliFMDParameters.cxx:946
 AliFMDParameters.cxx:947
 AliFMDParameters.cxx:948
 AliFMDParameters.cxx:949
 AliFMDParameters.cxx:950
 AliFMDParameters.cxx:951
 AliFMDParameters.cxx:952
 AliFMDParameters.cxx:953
 AliFMDParameters.cxx:954
 AliFMDParameters.cxx:955
 AliFMDParameters.cxx:956
 AliFMDParameters.cxx:957
 AliFMDParameters.cxx:958
 AliFMDParameters.cxx:959
 AliFMDParameters.cxx:960
 AliFMDParameters.cxx:961
 AliFMDParameters.cxx:962
 AliFMDParameters.cxx:963
 AliFMDParameters.cxx:964
 AliFMDParameters.cxx:965
 AliFMDParameters.cxx:966
 AliFMDParameters.cxx:967
 AliFMDParameters.cxx:968
 AliFMDParameters.cxx:969
 AliFMDParameters.cxx:970
 AliFMDParameters.cxx:971
 AliFMDParameters.cxx:972
 AliFMDParameters.cxx:973
 AliFMDParameters.cxx:974
 AliFMDParameters.cxx:975
 AliFMDParameters.cxx:976
 AliFMDParameters.cxx:977
 AliFMDParameters.cxx:978
 AliFMDParameters.cxx:979
 AliFMDParameters.cxx:980
 AliFMDParameters.cxx:981
 AliFMDParameters.cxx:982
 AliFMDParameters.cxx:983
 AliFMDParameters.cxx:984
 AliFMDParameters.cxx:985
 AliFMDParameters.cxx:986
 AliFMDParameters.cxx:987
 AliFMDParameters.cxx:988
 AliFMDParameters.cxx:989
 AliFMDParameters.cxx:990
 AliFMDParameters.cxx:991
 AliFMDParameters.cxx:992
 AliFMDParameters.cxx:993
 AliFMDParameters.cxx:994
 AliFMDParameters.cxx:995
 AliFMDParameters.cxx:996
 AliFMDParameters.cxx:997
 AliFMDParameters.cxx:998
 AliFMDParameters.cxx:999
 AliFMDParameters.cxx:1000
 AliFMDParameters.cxx:1001
 AliFMDParameters.cxx:1002
 AliFMDParameters.cxx:1003
 AliFMDParameters.cxx:1004
 AliFMDParameters.cxx:1005
 AliFMDParameters.cxx:1006
 AliFMDParameters.cxx:1007
 AliFMDParameters.cxx:1008
 AliFMDParameters.cxx:1009
 AliFMDParameters.cxx:1010
 AliFMDParameters.cxx:1011
 AliFMDParameters.cxx:1012
 AliFMDParameters.cxx:1013
 AliFMDParameters.cxx:1014
 AliFMDParameters.cxx:1015
 AliFMDParameters.cxx:1016
 AliFMDParameters.cxx:1017
 AliFMDParameters.cxx:1018
 AliFMDParameters.cxx:1019
 AliFMDParameters.cxx:1020
 AliFMDParameters.cxx:1021
 AliFMDParameters.cxx:1022
 AliFMDParameters.cxx:1023
 AliFMDParameters.cxx:1024
 AliFMDParameters.cxx:1025
 AliFMDParameters.cxx:1026
 AliFMDParameters.cxx:1027
 AliFMDParameters.cxx:1028
 AliFMDParameters.cxx:1029
 AliFMDParameters.cxx:1030
 AliFMDParameters.cxx:1031
 AliFMDParameters.cxx:1032
 AliFMDParameters.cxx:1033
 AliFMDParameters.cxx:1034
 AliFMDParameters.cxx:1035
 AliFMDParameters.cxx:1036
 AliFMDParameters.cxx:1037
 AliFMDParameters.cxx:1038
 AliFMDParameters.cxx:1039
 AliFMDParameters.cxx:1040
 AliFMDParameters.cxx:1041
 AliFMDParameters.cxx:1042
 AliFMDParameters.cxx:1043
 AliFMDParameters.cxx:1044
 AliFMDParameters.cxx:1045
 AliFMDParameters.cxx:1046
 AliFMDParameters.cxx:1047
 AliFMDParameters.cxx:1048
 AliFMDParameters.cxx:1049
 AliFMDParameters.cxx:1050
 AliFMDParameters.cxx:1051
 AliFMDParameters.cxx:1052
 AliFMDParameters.cxx:1053
 AliFMDParameters.cxx:1054
 AliFMDParameters.cxx:1055
 AliFMDParameters.cxx:1056
 AliFMDParameters.cxx:1057
 AliFMDParameters.cxx:1058
 AliFMDParameters.cxx:1059
 AliFMDParameters.cxx:1060
 AliFMDParameters.cxx:1061
 AliFMDParameters.cxx:1062
 AliFMDParameters.cxx:1063
 AliFMDParameters.cxx:1064
 AliFMDParameters.cxx:1065
 AliFMDParameters.cxx:1066
 AliFMDParameters.cxx:1067
 AliFMDParameters.cxx:1068
 AliFMDParameters.cxx:1069
 AliFMDParameters.cxx:1070
 AliFMDParameters.cxx:1071
 AliFMDParameters.cxx:1072
 AliFMDParameters.cxx:1073
 AliFMDParameters.cxx:1074
 AliFMDParameters.cxx:1075
 AliFMDParameters.cxx:1076
 AliFMDParameters.cxx:1077
 AliFMDParameters.cxx:1078
 AliFMDParameters.cxx:1079
 AliFMDParameters.cxx:1080
 AliFMDParameters.cxx:1081
 AliFMDParameters.cxx:1082
 AliFMDParameters.cxx:1083
 AliFMDParameters.cxx:1084
 AliFMDParameters.cxx:1085
 AliFMDParameters.cxx:1086
 AliFMDParameters.cxx:1087
 AliFMDParameters.cxx:1088
 AliFMDParameters.cxx:1089
 AliFMDParameters.cxx:1090
 AliFMDParameters.cxx:1091
 AliFMDParameters.cxx:1092
 AliFMDParameters.cxx:1093
 AliFMDParameters.cxx:1094
 AliFMDParameters.cxx:1095
 AliFMDParameters.cxx:1096
 AliFMDParameters.cxx:1097
 AliFMDParameters.cxx:1098
 AliFMDParameters.cxx:1099
 AliFMDParameters.cxx:1100
 AliFMDParameters.cxx:1101
 AliFMDParameters.cxx:1102
 AliFMDParameters.cxx:1103
 AliFMDParameters.cxx:1104
 AliFMDParameters.cxx:1105
 AliFMDParameters.cxx:1106
 AliFMDParameters.cxx:1107
 AliFMDParameters.cxx:1108
 AliFMDParameters.cxx:1109
 AliFMDParameters.cxx:1110
 AliFMDParameters.cxx:1111
 AliFMDParameters.cxx:1112
 AliFMDParameters.cxx:1113
 AliFMDParameters.cxx:1114
 AliFMDParameters.cxx:1115
 AliFMDParameters.cxx:1116
 AliFMDParameters.cxx:1117
 AliFMDParameters.cxx:1118
 AliFMDParameters.cxx:1119
 AliFMDParameters.cxx:1120
 AliFMDParameters.cxx:1121
 AliFMDParameters.cxx:1122
 AliFMDParameters.cxx:1123
 AliFMDParameters.cxx:1124
 AliFMDParameters.cxx:1125
 AliFMDParameters.cxx:1126
 AliFMDParameters.cxx:1127
 AliFMDParameters.cxx:1128
 AliFMDParameters.cxx:1129
 AliFMDParameters.cxx:1130
 AliFMDParameters.cxx:1131
 AliFMDParameters.cxx:1132
 AliFMDParameters.cxx:1133
 AliFMDParameters.cxx:1134
 AliFMDParameters.cxx:1135
 AliFMDParameters.cxx:1136
 AliFMDParameters.cxx:1137
 AliFMDParameters.cxx:1138
 AliFMDParameters.cxx:1139
 AliFMDParameters.cxx:1140
 AliFMDParameters.cxx:1141
 AliFMDParameters.cxx:1142
 AliFMDParameters.cxx:1143
 AliFMDParameters.cxx:1144
 AliFMDParameters.cxx:1145
 AliFMDParameters.cxx:1146
 AliFMDParameters.cxx:1147
 AliFMDParameters.cxx:1148
 AliFMDParameters.cxx:1149
 AliFMDParameters.cxx:1150
 AliFMDParameters.cxx:1151
 AliFMDParameters.cxx:1152
 AliFMDParameters.cxx:1153
 AliFMDParameters.cxx:1154
 AliFMDParameters.cxx:1155
 AliFMDParameters.cxx:1156
 AliFMDParameters.cxx:1157
 AliFMDParameters.cxx:1158
 AliFMDParameters.cxx:1159
 AliFMDParameters.cxx:1160
 AliFMDParameters.cxx:1161
 AliFMDParameters.cxx:1162
 AliFMDParameters.cxx:1163
 AliFMDParameters.cxx:1164
 AliFMDParameters.cxx:1165
 AliFMDParameters.cxx:1166
 AliFMDParameters.cxx:1167
 AliFMDParameters.cxx:1168
 AliFMDParameters.cxx:1169
 AliFMDParameters.cxx:1170
 AliFMDParameters.cxx:1171
 AliFMDParameters.cxx:1172
 AliFMDParameters.cxx:1173
 AliFMDParameters.cxx:1174
 AliFMDParameters.cxx:1175
 AliFMDParameters.cxx:1176
 AliFMDParameters.cxx:1177
 AliFMDParameters.cxx:1178
 AliFMDParameters.cxx:1179
 AliFMDParameters.cxx:1180
 AliFMDParameters.cxx:1181
 AliFMDParameters.cxx:1182
 AliFMDParameters.cxx:1183
 AliFMDParameters.cxx:1184
 AliFMDParameters.cxx:1185
 AliFMDParameters.cxx:1186
 AliFMDParameters.cxx:1187
 AliFMDParameters.cxx:1188
 AliFMDParameters.cxx:1189
 AliFMDParameters.cxx:1190
 AliFMDParameters.cxx:1191
 AliFMDParameters.cxx:1192
 AliFMDParameters.cxx:1193
 AliFMDParameters.cxx:1194
 AliFMDParameters.cxx:1195
 AliFMDParameters.cxx:1196
 AliFMDParameters.cxx:1197
 AliFMDParameters.cxx:1198
 AliFMDParameters.cxx:1199
 AliFMDParameters.cxx:1200
 AliFMDParameters.cxx:1201
 AliFMDParameters.cxx:1202
 AliFMDParameters.cxx:1203
 AliFMDParameters.cxx:1204
 AliFMDParameters.cxx:1205
 AliFMDParameters.cxx:1206
 AliFMDParameters.cxx:1207
 AliFMDParameters.cxx:1208
 AliFMDParameters.cxx:1209
 AliFMDParameters.cxx:1210
 AliFMDParameters.cxx:1211
 AliFMDParameters.cxx:1212
 AliFMDParameters.cxx:1213
 AliFMDParameters.cxx:1214
 AliFMDParameters.cxx:1215
 AliFMDParameters.cxx:1216
 AliFMDParameters.cxx:1217
 AliFMDParameters.cxx:1218
 AliFMDParameters.cxx:1219
 AliFMDParameters.cxx:1220
 AliFMDParameters.cxx:1221
 AliFMDParameters.cxx:1222
 AliFMDParameters.cxx:1223
 AliFMDParameters.cxx:1224
 AliFMDParameters.cxx:1225
 AliFMDParameters.cxx:1226
 AliFMDParameters.cxx:1227
 AliFMDParameters.cxx:1228
 AliFMDParameters.cxx:1229
 AliFMDParameters.cxx:1230
 AliFMDParameters.cxx:1231
 AliFMDParameters.cxx:1232
 AliFMDParameters.cxx:1233
 AliFMDParameters.cxx:1234
 AliFMDParameters.cxx:1235
 AliFMDParameters.cxx:1236
 AliFMDParameters.cxx:1237
 AliFMDParameters.cxx:1238
 AliFMDParameters.cxx:1239
 AliFMDParameters.cxx:1240
 AliFMDParameters.cxx:1241
 AliFMDParameters.cxx:1242
 AliFMDParameters.cxx:1243
 AliFMDParameters.cxx:1244
 AliFMDParameters.cxx:1245
 AliFMDParameters.cxx:1246
 AliFMDParameters.cxx:1247
 AliFMDParameters.cxx:1248
 AliFMDParameters.cxx:1249
 AliFMDParameters.cxx:1250
 AliFMDParameters.cxx:1251
 AliFMDParameters.cxx:1252
 AliFMDParameters.cxx:1253
 AliFMDParameters.cxx:1254
 AliFMDParameters.cxx:1255
 AliFMDParameters.cxx:1256
 AliFMDParameters.cxx:1257
 AliFMDParameters.cxx:1258
 AliFMDParameters.cxx:1259
 AliFMDParameters.cxx:1260
 AliFMDParameters.cxx:1261
 AliFMDParameters.cxx:1262
 AliFMDParameters.cxx:1263
 AliFMDParameters.cxx:1264
 AliFMDParameters.cxx:1265
 AliFMDParameters.cxx:1266
 AliFMDParameters.cxx:1267
 AliFMDParameters.cxx:1268
 AliFMDParameters.cxx:1269
 AliFMDParameters.cxx:1270
 AliFMDParameters.cxx:1271
 AliFMDParameters.cxx:1272
 AliFMDParameters.cxx:1273
 AliFMDParameters.cxx:1274
 AliFMDParameters.cxx:1275
 AliFMDParameters.cxx:1276
 AliFMDParameters.cxx:1277
 AliFMDParameters.cxx:1278
 AliFMDParameters.cxx:1279
 AliFMDParameters.cxx:1280
 AliFMDParameters.cxx:1281
 AliFMDParameters.cxx:1282
 AliFMDParameters.cxx:1283
 AliFMDParameters.cxx:1284
 AliFMDParameters.cxx:1285
 AliFMDParameters.cxx:1286
 AliFMDParameters.cxx:1287
 AliFMDParameters.cxx:1288
 AliFMDParameters.cxx:1289
 AliFMDParameters.cxx:1290
 AliFMDParameters.cxx:1291
 AliFMDParameters.cxx:1292
 AliFMDParameters.cxx:1293
 AliFMDParameters.cxx:1294
 AliFMDParameters.cxx:1295
 AliFMDParameters.cxx:1296
 AliFMDParameters.cxx:1297
 AliFMDParameters.cxx:1298
 AliFMDParameters.cxx:1299
 AliFMDParameters.cxx:1300
 AliFMDParameters.cxx:1301
 AliFMDParameters.cxx:1302
 AliFMDParameters.cxx:1303
 AliFMDParameters.cxx:1304
 AliFMDParameters.cxx:1305
 AliFMDParameters.cxx:1306
 AliFMDParameters.cxx:1307
 AliFMDParameters.cxx:1308
 AliFMDParameters.cxx:1309
 AliFMDParameters.cxx:1310
 AliFMDParameters.cxx:1311
 AliFMDParameters.cxx:1312
 AliFMDParameters.cxx:1313
 AliFMDParameters.cxx:1314
 AliFMDParameters.cxx:1315
 AliFMDParameters.cxx:1316
 AliFMDParameters.cxx:1317
 AliFMDParameters.cxx:1318
 AliFMDParameters.cxx:1319
 AliFMDParameters.cxx:1320
 AliFMDParameters.cxx:1321
 AliFMDParameters.cxx:1322
 AliFMDParameters.cxx:1323
 AliFMDParameters.cxx:1324
 AliFMDParameters.cxx:1325
 AliFMDParameters.cxx:1326
 AliFMDParameters.cxx:1327
 AliFMDParameters.cxx:1328
 AliFMDParameters.cxx:1329
 AliFMDParameters.cxx:1330
 AliFMDParameters.cxx:1331
 AliFMDParameters.cxx:1332
 AliFMDParameters.cxx:1333
 AliFMDParameters.cxx:1334