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.                  *
 **************************************************************************/

//-------------------------------------------------------------------------
//
// AliTPCmapper
// Authors: Christian.Lippmann@cern.ch, J.Wiechula@gsi.de
// Class to map detector coordinates (row, pad, sector, ...) to
// hardware coordinates (RCU, Branch, FEC, Altro, channel, Equipment ID, ...)
// 
// There are two different ways to number padrows:
// 1) local padrow: for each ROC, 0 ... 62 for an IROC, 0 ... 95 for an OROC,
// 2) global padrow: for each sector, from 0 ... 158.
// If the global numbering is used, it is denoted by the variable name
// globalpadrow in this class.
//
// There are two different ways to number sectors:
// 1) Sectors contain one IROC and one OROC and are counted from 0 to 17 on
//    each of the two sides (A=0 and C=1),
// 2) ROCs are numbered from 0 to 71 where the ROCs 0 ... 35 are IROCS and
//    ROCs 36 ... 71 are OROCs. A ROC is often named "sector" in aliroot,
//    which can be very confusing!
//
//-------------------------------------------------------------------------

#include <TMath.h>
#include <TSystem.h>
#include <TString.h>

#include "AliTPCmapper.h"
#include "AliTPCAltroMapping.h"
#include "AliTPCROC.h"
#include "AliLog.h"
#include "AliDAQ.h"

ClassImp(AliTPCmapper)
//______________________________________________________________
AliTPCmapper::AliTPCmapper() :
  fNside(0),
  fNsector(0),
  fNrcu(0),
  fNbranch(0),
  fNaltro(0),
  fNchannel(0),
  fNpadrow(0),
  fNpadrowIROC(0),
  fNpadrowOROC(0),
  fTpcDdlOffset(0)
{
  //
  // Constructor
  //
  for ( Int_t i = 0; i < 6; i++ )  fMapping[i]=0;
}

//______________________________________________________________
AliTPCmapper::AliTPCmapper(const char * dirname) :
  fNside(0),
  fNsector(0),
  fNrcu(0),
  fNbranch(0),
  fNaltro(0),
  fNchannel(0),
  fNpadrow(0),
  fNpadrowIROC(0),
  fNpadrowOROC(0),
  fTpcDdlOffset(0)
{
  //
  // Constructor
  //
  // dirname - specify the directory with the ascii Altro mapping files
  //
  Init(dirname);
}

//______________________________________________________________
AliTPCmapper::~AliTPCmapper()
{
  // Destructor

  for ( Int_t i = 0; i < fNrcu; i++ ) {
    delete fMapping[i];
    fMapping[i] = 0;
  }
}


//_____________________________________________________________________________
AliTPCmapper::AliTPCmapper(const AliTPCmapper& mapper) :
  TObject(mapper),
  fNside(mapper.fNside),
  fNsector(mapper.fNsector),
  fNrcu(mapper.fNrcu),
  fNbranch(mapper.fNbranch),
  fNaltro(mapper.fNaltro),
  fNchannel(mapper.fNchannel),
  fNpadrow(mapper.fNpadrow),
  fNpadrowIROC(mapper.fNpadrowIROC),
  fNpadrowOROC(mapper.fNpadrowOROC),
  fTpcDdlOffset(mapper.fTpcDdlOffset)
{
  // Copy Constructor
  for ( Int_t i = 0; i < 6; i++ )  fMapping[i]=0;
  for ( Int_t i = 0; i < fNrcu; i++ ) fMapping[i] = mapper.fMapping[i];
}

//_____________________________________________________________________________
AliTPCmapper& AliTPCmapper::operator = (const AliTPCmapper& mapper)
{
  // Assignment operator

  if(&mapper == this) return *this;
  ((TObject *)this)->operator=(mapper);

  for ( Int_t i = 0; i < fNrcu; i++ ) fMapping[i] = mapper.fMapping[i];

  fNside = mapper.fNside;
  fNsector = mapper.fNsector;
  fNrcu = mapper.fNrcu;
  fNbranch = mapper.fNbranch;
  fNaltro = mapper.fNaltro;
  fNchannel = mapper.fNchannel;
  fNpadrow = mapper.fNpadrow;
  fNpadrowIROC = mapper.fNpadrowIROC;
  fNpadrowOROC = mapper.fNpadrowOROC;
  fTpcDdlOffset = mapper.fTpcDdlOffset;

  return *this;
}

//______________________________________________________________
void AliTPCmapper::Init(const char *dirname)
{
  // Initialize all
  fNside    = 2;
  fNsector  = 18;
  fNrcu     = 6;
  fNbranch  = 2;
  fNaltro   = 8;
  fNchannel = 16;

  // Load and read mapping files. AliTPCAltroMapping contains the mapping for
  // each patch (rcu).
  TString path;
  if (dirname==0){
    path  =gSystem->Getenv("ALICE_ROOT");
    path += "/TPC/mapping/Patch";
  }else{
    path  = dirname;
    path +="Patch";
  }

  TString path2;
  for(Int_t i = 0; i < fNrcu; i++) {
    path2 = path;
    path2 += i;
    path2 += ".data";
    fMapping[i] = new AliTPCAltroMapping(path2.Data());
  }

  // Get instance of AliTPCROC object
  AliTPCROC *fROC = AliTPCROC::Instance();
  fNpadrowIROC = fROC->GetNRows(0);
  fNpadrowOROC = fROC->GetNRows(36);
  fNpadrow     = fNpadrowIROC+fNpadrowOROC;

  AliDAQ daq;
  fTpcDdlOffset = daq.DdlIDOffset("TPC");

}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetHWAddress(Int_t roc, Int_t padrow, Int_t pad) const
{
  // Get the hardware address from pad coordinates for a given ROC
  Int_t patch = GetPatch(roc, padrow, pad);
  if ( (patch >= fNrcu) || (patch < 0) ) return -1;
  return fMapping[patch]->GetHWAddress(padrow, pad, roc);
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetHWAddressSector(Int_t globalpadrow, Int_t pad) const
{
  // Get the hardware address from pad coordinates
  Int_t patch = 0;
  Int_t hwAddress=-1;
  if ( globalpadrow < fNpadrowIROC   ) {
    patch = GetPatch(0,  globalpadrow, pad);
    if (patch>-1)
      hwAddress = fMapping[patch]->GetHWAddress(globalpadrow, pad, 0);
  } else if ( globalpadrow < fNpadrow ) {
    patch = GetPatch(36, globalpadrow - fNpadrowIROC, pad);
    if (patch>-1)
      hwAddress = fMapping[patch]->GetHWAddress(globalpadrow - fNpadrowIROC, pad, 36);
  } else {
    AliWarning(Form("Padrow outside range (globalpadrow %d) !", globalpadrow));
    hwAddress = -1;
  }
  return hwAddress;
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetRcu(Int_t roc, Int_t padrow, Int_t pad) const
{
  // Get the patch (rcu) index from the pad coordinates. The Roc index is
  // needed as well to determine if it is IROC or OROC. 
  return GetPatch(roc, padrow, pad);
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetPatch(Int_t roc, Int_t padrow, Int_t pad) const
{
  // Get the patch (rcu) index from the pad coordinates. The Roc index is
  // needed as well to determine if it is IROC or OROC. 

  if ( (padrow < 0) || (pad < 0) || (roc < 0) ) {
    AliWarning(Form("Pad coordinates outside range (padrow %d, pad %d, roc %d) !", padrow, pad, roc));
    return -1;
  }

  if ( roc < 36 ) {
    // IROC (ROCs 0 ... 35)
    Int_t padsInRow = GetNpads(padrow);
    if ( (padsInRow < 0) || (pad >= padsInRow) ) {
      AliWarning(Form("Pad index outside range (padrow %d, pad %d, roc %d) !", padrow, pad, roc));
      return -1;
    }
    if ( padrow < 30 ) {                  return 0;
    } else if ( padrow == 30 ) {          // padrow 30 is shared between rcus 0 and 1
      if ( (pad < 37) || (pad > 48) )     return 1;
      else                                return 0;
    } else if ( padrow < fNpadrowIROC ) { return 1;
    } else {
      AliWarning(Form("Padrow outside range (padrow %d, roc %d) !", padrow, roc));
      return -1;
    }
  } else if ( roc < 72 ) {
    // OROC (ROCs 36 ... 71)
    Int_t padsInRow = GetNpads(fNpadrowIROC+padrow);
    if ( (padsInRow < 0) || (pad >= padsInRow) ) {
      AliWarning(Form("Pad index outside range (padrow %d, pad %d, roc %d) !", padrow, pad, roc));
      return -1;
    }
    if ( padrow < 27 ) {                  return 2;
    } else if ( padrow == 27 ) {          // padrow 27 is shared between rcus 2 and 3
      if ( (pad >= 43) && (pad <= 46) )   return 3;
      else                                return 2;
    } else if ( padrow < 54 ) {           return 3;
    } else if ( padrow < 76 ) {           return 4;
    } else if ( padrow == 76) {           // padrow 76 is shared between rcus 4 and 5
      if ( (pad >= 33) && (pad <= 88) )   return 5;
      else                                return 4;
    } else if ( padrow < fNpadrowOROC ) { return 5;
    } else {
      AliWarning(Form("Padrow outside range (padrow %d, roc %d) !", padrow, roc));
      return -1;
    }
  }
  return -1;
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetRcuSector(Int_t globalpadrow, Int_t pad) const
{
  // Get the patch (rcu) index from the pad coordinates for a sector
  return GetPatchSector(globalpadrow, pad);
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetPatchSector(Int_t globalpadrow, Int_t pad) const
{
  // Get the patch (rcu) index from the pad coordinates for a sector
  if ( globalpadrow >= fNpadrow ) {
    AliWarning(Form("Padrow outside range (globalpadrow %d) !", globalpadrow));
    return -1;
  }
  if ( globalpadrow < fNpadrowIROC ) return GetPatch(0,  globalpadrow, pad);
  else                               return GetPatch(36, globalpadrow-fNpadrowIROC, pad);
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetPadRow(Int_t patch, Int_t hwAddress) const
{
  // Get Pad Row (for a ROC) from the hardware address
  if ( (patch >= fNrcu) || (patch < 0) ) {
    AliWarning(Form("Patch index outside range (patch %d) !", patch));
    return -1;
  }
  return fMapping[patch]->GetPadRow(hwAddress);
}


//_____________________________________________________________________________
  Int_t AliTPCmapper::GetGlobalPadRow(Int_t patch, Int_t hwAddress) const
{
  // Get Pad Row (for full sector) from the hardware address
  if ( patch < 2 ) return GetPadRow(patch, hwAddress);
  else             return GetPadRow(patch, hwAddress) + fNpadrowIROC;
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetPad(Int_t patch, Int_t hwAddress) const
{
  // Get Pad index from the hardware address
  if ( (patch >= fNrcu) || (patch < 0) ) {
    AliWarning(Form("Patch index outside range (patch %d) !", patch));
    return -1;
  }
  return fMapping[patch]->GetPad(hwAddress);
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetPadRow(Int_t patch, Int_t branch, Int_t fec, Int_t chip,
			      Int_t channel) const
{
  // Get pad row (for a ROC) from hardware coordinates
  if ( (patch >= fNrcu) || (branch >= fNbranch) || (chip >= fNaltro) || (channel >= fNchannel)
       || (patch < 0) || (branch < 0) || (chip < 0) || (channel < 0) ) {
    AliWarning(Form("Coordinates outside range (patch %d, branch %d, fec %d, chip %d, channel %d)) !",
		    patch, branch, fec, chip, channel));
    return -1;
  }
  return GetPadRow(patch, CodeHWAddress(branch, fec, chip, channel));
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetGlobalPadRow(Int_t patch, Int_t branch, Int_t fec, Int_t chip,
				    Int_t channel) const
{
  // Get Pad Row (for full sector) from the hardware address
  if ( (patch >= fNrcu) || (branch >= fNbranch) || (chip >= fNaltro) || (channel >= fNchannel)
       || (patch < 0) || (branch < 0) || (chip < 0) || (channel < 0) ) {
    AliWarning(Form("Coordinates outside range (patch %d, branch %d, fec %d, chip %d, channel %d)) !",
		    patch, branch, fec, chip, channel));
    return -1;
  }
  if ( patch < 2 ) return GetPadRow(patch, branch, fec, chip, channel);
  else             return GetPadRow(patch, branch, fec, chip, channel) + fNpadrowIROC;
}


//_____________________________________________________________________________
  Int_t AliTPCmapper::GetPad(Int_t patch, Int_t branch, Int_t fec, Int_t chip, Int_t channel) const
{
  // Get pad from hardware coordinates
  if ( (patch >= fNrcu) || (branch >= fNbranch) || (chip >= fNaltro) || (channel >= fNchannel)
       || (patch < 0) || (branch < 0) || (chip < 0) || (channel < 0) ) {
    AliWarning(Form("Coordinates outside range (patch %d, branch %d, fec %d, chip %d, channel %d)) !",
		    patch, branch, fec, chip, channel));
    return -1;
  }
  return GetPad(patch, CodeHWAddress(branch, fec, chip, channel));
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetBranch(Int_t roc, Int_t padrow, Int_t pad) const
{
  // Get the branch to which this pad is connected. The FECs connected to
  // one RCU are divided into two branches: A(=0) and B(=1). This information
  // can be extracted from the hardware address.
  return DecodedHWAddressBranch(GetHWAddress(roc, padrow, pad));
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetBranchSector(Int_t globalpadrow, Int_t pad) const
{
  // Get Branch from pad coordinates, where globalpadrow is counted
  // for a full sector (0 ... 158)
  return DecodedHWAddressBranch(GetHWAddressSector(globalpadrow, pad));
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetFEChw(Int_t roc, Int_t padrow, Int_t pad) const
{
  // Get the FEC number in hardware numbering. The FECs are numbered from 0 (in the
  // center of the partition) to 8 (partition 3, 4, 5), 9 (partition 0, 2), 11
  // (partition 1, branch A) or 12 (partition 1, branch B). This information
  // can be extracted from the hardware address.
  return DecodedHWAddressFECaddr(GetHWAddress(roc, padrow, pad));
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetFEChwSector(Int_t globalpadrow, Int_t pad) const
{
  // Get the FEC number in hardware numbering from pad coordinates, where 
  // globalpadrow is counted for a full sector (0 ... 158)
  return DecodedHWAddressFECaddr(GetHWAddressSector(globalpadrow, pad));
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetFEC(Int_t roc, Int_t padrow, Int_t pad) const
{
  // Get the FEC number in offline-oriented numbering. The FECs are numbered from 0
  // 17 (partition 3, 4, 5), 19 (partition 0, 2) or 24 (partition 1).
  Int_t patch  = GetPatch(roc, padrow, pad);
  Int_t fec    = DecodedHWAddressFECaddr(GetHWAddress(roc, padrow, pad));
  Int_t branch = DecodedHWAddressBranch(GetHWAddress(roc, padrow, pad));
  if ( (fec < 0) || (branch < 0) || (patch < 0) ) return -1;
  return HwToOffline(patch, branch, fec);
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetFECSector(Int_t globalpadrow, Int_t pad) const
{
  // Get the FEC number in offline-oriented numbering. globalpadrow is
  // counted for a full sector (0 ... 158)
  Int_t patch  = GetPatchSector(globalpadrow, pad);
  Int_t fec    = DecodedHWAddressFECaddr(GetHWAddressSector(globalpadrow, pad));
  Int_t branch = DecodedHWAddressBranch(GetHWAddressSector(globalpadrow, pad));
  if ( (fec < 0) || (branch < 0) || (patch < 0) ) return -1;
  return HwToOffline(patch, branch, fec);
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetChip(Int_t roc, Int_t padrow, Int_t pad) const
{
  // Get Chip (ALTRO) index (0 ... 7) from pad coordinates
  return DecodedHWAddressChipaddr(GetHWAddress(roc, padrow, pad));
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetChipSector(Int_t globalpadrow, Int_t pad) const
{
  // Get Chip (ALTRO) index (0 ... 7) from pad coordinates, where 
  // globalpadrow is counted for a full sector (0 ... 158)
  return DecodedHWAddressChipaddr(GetHWAddressSector(globalpadrow, pad));
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetChannel(Int_t roc, Int_t padrow, Int_t pad) const
{
  // Get Channel index (0 ... 15) from pad coordinates
  return DecodedHWAddressChanneladdr(GetHWAddress(roc, padrow, pad));
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetChannelSector(Int_t globalpadrow, Int_t pad) const
{
  // Get Channel index (0 ... 15) from pad coordinates, where 
  // globalpadrow is counted for a full sector (0 ... 158)
  return DecodedHWAddressChanneladdr(GetHWAddressSector(globalpadrow, pad));
}


//_____________________________________________________________________________
Int_t AliTPCmapper::CodeHWAddress(Int_t branch, Int_t fec, Int_t chip, Int_t channel) const
{
  // Get Hardware address from channel, altro, fec and branch coordinates
  return ((branch&1)<<11) + ((fec&0xf)<<7) + ((chip&0x7)<<4) + (channel&0xf);
}


//_____________________________________________________________________________
Int_t AliTPCmapper::DecodedHWAddressBranch(Int_t hwAddress) const
{
  // Get branch index (0, 1) from hardware address
  if ( hwAddress < 0 ) return -1;
  return ((hwAddress>>11)&1);
}


//_____________________________________________________________________________
Int_t AliTPCmapper::DecodedHWAddressFECaddr(Int_t hwAddress) const
{
  // Get FEC index (0 ... 12) from hardware address
  if ( hwAddress < 0 ) return -1;
  return ((hwAddress>>7)&0xf);
}


//_____________________________________________________________________________
Int_t AliTPCmapper::DecodedHWAddressChipaddr(Int_t hwAddress) const
{
  // Get ALTRO index (0 ... 7) from hardware address
  if ( hwAddress < 0 ) return -1;
  return ((hwAddress>>4)&0x7);
}


//_____________________________________________________________________________
Int_t AliTPCmapper::DecodedHWAddressChanneladdr(Int_t hwAddress) const
{
  // Get channel index (0 ... 15) from hardware address
  if ( hwAddress < 0 ) return -1;
  return ((hwAddress&0xf));
}


//______________________________________________________________
Int_t AliTPCmapper::GetNpads(Int_t roc, Int_t padrow) const{
  // Get number of pads in padrow for this ROC.
  AliTPCROC *fROC = AliTPCROC::Instance();
  Int_t retval = fROC->GetNPads((UInt_t)roc, (UInt_t)padrow);
  return retval;
}


//______________________________________________________________
Int_t AliTPCmapper::GetNpads(Int_t globalpadrow) const{
  // Get number of pads in padrow, where globalpadrow is counted for a full sector (0 ... 158)

  if ( globalpadrow >= fNpadrow ) {
    AliWarning(Form("Padrow outside range (globalpadrow %d) !", globalpadrow));
    return -1;
  }
  if ( globalpadrow < fNpadrowIROC ) return GetNpads(0,  globalpadrow);  // IROC
  else  return GetNpads(36, globalpadrow - fNpadrowIROC);                // OROC

  return -1;
}


//______________________________________________________________
Int_t AliTPCmapper::GetNpadrows(Int_t roc) const
{
  // Get number of padrows
  if      (roc < 36) return fNpadrowIROC;
  else if (roc < 72) return fNpadrowOROC;
  return -1;
}


//______________________________________________________________
/*
Double_t AliTPCmapper::GetPadXlocal(Int_t globalpadrow) const
{
  // Get local x coordinate of pad, where globalpadrow is counted for a full sector (0 ... 158)

  if ( globalpadrow >= fNpadrow ) {
    AliWarning(Form("Padrow outside range (globalpadrow %d) !", globalpadrow));
    return -1.0;
  }

  //IROC
  if ( globalpadrow < fNpadrowIROC )
    return (852.25 + 7.5*(Double_t)globalpadrow)/10.; //divide by 10 to get cm

  globalpadrow -= fNpadrowIROC;

  if ( globalpadrow < 64 ) //OROC inner part
    return (10.* globalpadrow + 1351.)/10.;         //divide by 10 to get cm

  //OROC outer part
  return (15.*(globalpadrow - 64) + 1993.5)/10.;    //divide by 10 to get cm
}
*/

//______________________________________________________________
/*
Double_t AliTPCmapper::GetPadYlocal(Int_t globalpadrow, Int_t pad) const
{
  // Get local y coordinate of pad, where globalpadrow is counted for a full sector (0 ... 158)

  if ( globalpadrow >= fNpadrow ) {
    AliWarning(Form("Padrow outside range (globalpadrow %d) !", globalpadrow));
    return -1.0;
  }

  Int_t padsInRow = GetNpads(globalpadrow);
  if ( (padsInRow < 0) || (pad >= padsInRow) ) {
    AliWarning(Form("Pad index outside range (pad %d) !", pad));
    return -1.0;
  }

  //IROC
  if ( globalpadrow < fNpadrowIROC )
    return (2.* padsInRow - 4.*pad - 2.)*1.e-1;  //divide by 10 to get cm

  //OROC
  return (3.* padsInRow -6.*pad - 3.)*1.e-1;  //divide by 10 to get cm
}
*/

//______________________________________________________________
/*
Double_t AliTPCmapper::GetPadXglobal(Int_t globalpadrow, Int_t pad, Int_t sector) const
{
  // Get global x coordinate of pad, where globalpadrow is counted for a full sector (0 ... 158)

  if ( globalpadrow >= fNpadrow ) {
    AliWarning(Form("Padrow outside range (globalpadrow %d) !", globalpadrow));
    return -1.0;
  }

  Int_t padsInRow = GetNpads(globalpadrow);
  if ( (padsInRow < 0) || (pad >= padsInRow) ) {
    AliWarning(Form("Pad index outside range (pad %d) !", pad));
    return -1.0;
  }

  Double_t angle = (Double_t)(( sector * 20. ) + 10. ) * TMath::DegToRad();
  return GetPadXlocal(globalpadrow) * TMath::Cos(angle) -
    GetPadYlocal(globalpadrow, pad) * TMath::Sin(angle);
}
*/

//______________________________________________________________
/*
Double_t AliTPCmapper::GetPadYglobal(Int_t globalpadrow, Int_t pad,Int_t sector) const
{
  // Get global y coordinate of pad, where globalpadrow is counted for a full sector (0 ... 158)

  if ( globalpadrow >= fNpadrow ) {
    AliWarning(Form("Padrow outside range (globalpadrow %d) !", globalpadrow));
    return -1.0;
  }

  Int_t padsInRow = GetNpads(globalpadrow);
  if ( (padsInRow < 0) || (pad >= padsInRow) ) {
    AliWarning(Form("Pad index outside range (pad %d) !", pad));
    return -1.0;
  }

  Double_t angle = (Double_t)(( sector * 20. ) + 10. ) * TMath::DegToRad();
  return GetPadXlocal(globalpadrow) * TMath::Sin(angle) +
    GetPadYlocal(globalpadrow, pad) * TMath::Cos(angle);
}
*/

//______________________________________________________________
/*
Double_t AliTPCmapper::GetPadWidth(Int_t globalpadrow) const
{
  //  Get pad width, where globalpadrow is counted for a full sector (0 ... 158)

  if ( globalpadrow >= fNpadrow ) {
    AliWarning(Form("Padrow outside range (globalpadrow %d) !", globalpadrow));
    return -1.0;
  }

  if (globalpadrow < fNpadrowIROC ) // IROC
    return 0.4;
  return 0.6;
}
*/

//______________________________________________________________
/*
Double_t AliTPCmapper::GetPadLength(Int_t globalpadrow) const
{
  // Get pad length, where globalpadrow is counted for a full sector (0 ... 158)

  if ( globalpadrow >= fNpadrow ) {
    AliWarning(Form("Padrow outside range (globalpadrow %d) !", globalpadrow));
    return -1.0;
  }

  if ( globalpadrow < fNpadrowIROC ) return  0.75;
  if ( globalpadrow < 127 )          return 1.0;
  return 1.5;
}
*/

//_____________________________________________________________________________
Int_t AliTPCmapper::GetNfec(Int_t patch) const
{
  // Get size of readout partition (number of FECs) for this rcu (patch) index (0 ... 5)
  Int_t retval = 0;
  switch(patch){
  case(0):
    retval = 18;
    break;
  case(1):
    retval = 25;
    break;
  case(2):
    retval = 18;
    break;
  case(3):
    retval = 20;
    break;
  case(4):
    retval = 20;
    break;
  case(5):
    retval = 20;
    break;
  };
  return retval;
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetNfec(Int_t patch, Int_t branch) const
{
  // Get size of readout partition (number of FECs) for this branch
  Int_t retval = 0;
  switch(patch){
  case(0):
    retval = 9;
    break;
  case(1):
    retval = 13;
    break;
  case(2):
    retval = 9;
    break;
  case(3):
    retval = 10;
    break;
  case(4):
    retval = 10;
    break;
  case(5):
    retval = 10;
    break;
  };
  
  if( (branch == 1) && (patch == 1) ){
    retval = 12;
  }

  return retval;
}


//_____________________________________________________________________________
Int_t AliTPCmapper::OfflineToHwFec(Int_t patch, Int_t fec) const
{
  // Convert FEC position in offline-like numbering to hardware numbering (fec).

  if ( (patch < 0) || (fec < 0) ) {
    AliWarning(Form("Patch (%d) or Fec number (%d) outside range !", patch, fec));
    return -1;
  }
  if ( (patch > 5) || (fec >= GetNfec(patch)) ) {
    AliWarning(Form("Patch (%d) or Fec number (%d) outside range !", patch, fec));
    return -1;
  }

  Int_t fecsInBranchA = GetNfec(patch, 0);
  if ( fec < fecsInBranchA ) // branch A
    return (fecsInBranchA - 1 - fec);
  else                       // branch B
    return (fec - fecsInBranchA);

  return -1;
}


//_____________________________________________________________________________
Int_t AliTPCmapper::OfflineToHwBranch(Int_t patch, Int_t fec) const
{
  // Convert fec position in offline-like numbering to hardware numbering (branch).

  if ( (patch < 0) || (fec < 0) ) {
    AliWarning(Form("Patch (%d) or Fec number (%d) outside range !", patch, fec));
    return -1;
  }
  if ( (patch > 5) || (fec >= GetNfec(patch)) ) {
    AliWarning(Form("Patch (%d) or Fec number (%d) outside range !", patch, fec));
    return -1;
  }
  if ( fec < GetNfec(patch, 0) ) return 0; // branch A
  else                                         return 1; // branch B

  return -1;
}


//_____________________________________________________________________________
Int_t AliTPCmapper::HwToOffline(Int_t patch, Int_t branch, Int_t fec) const
{
  // Convert hardware FEC position (branch, fec) to the offline-oriented numbering

  if ( (patch < 0) || (fec < 0) || (branch < 0) ) {
    AliWarning(Form("Patch (%d), branch (%d) or Fec number (%d) outside range !", patch, branch, fec));
    return -1;
  }
  if ( (patch > 5) || (branch > 1) || (fec >= GetNfec(patch, branch)) ) {
    AliWarning(Form("Patch (%d), branch (%d) or Fec number (%d) outside range !", patch, branch, fec));
    return -1;
  }
  Int_t fecsInBranchA = GetNfec(patch, 0);
  if ( branch == 0 )  // branch A
    return (fecsInBranchA - 1 - fec);
  else                // branch B
    return (fec + fecsInBranchA);

  return -1;
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetEquipmentID(Int_t roc, Int_t padrow, Int_t pad) const
{
  // Get EqID from pad coordinate. The Roc index is
  // needed as well to determine if it is IROC or OROC. 

  Int_t side = GetSideFromRoc(roc);
  if ( side < 0 ) return -1;
  Int_t sector = GetSectorFromRoc(roc);
  if ( sector < 0 ) return -1;
  Int_t patch = GetPatch(roc, padrow, pad);
  if ( patch < 0 ) return -1;
  return GetEquipmentIDfromPatch(side, sector, patch);
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetEquipmentIDsector(Int_t side, Int_t sector, Int_t globalpadrow, Int_t pad) const
{
  // Get EqID from pad coordinate, where padrow is counted for a full sector (0 ... 158)
  Int_t patch = GetPatchSector(globalpadrow, pad);
  if ( patch < 0 ) return -1;
  Int_t roc = GetRocFromPatch(side, sector, patch);
  if ( roc < 0 ) return -1;

  if ( globalpadrow < fNpadrowIROC )
    return GetEquipmentID(roc, globalpadrow, pad);
  else
    return GetEquipmentID(roc, globalpadrow-fNpadrowIROC, pad);
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetEquipmentIDfromPatch(Int_t side, Int_t sector, Int_t patch) const
{
  // Get EqID from patch (rcu).

  Int_t roc = GetRocFromPatch(side, sector, patch);
  Int_t ddl = 0;
  if (patch < 2)  // IROC
    ddl = roc*2 + patch;
  else            // OROC
    ddl = (roc-36)*4 + 36*2 + (patch-2);
  // Add offset. TPC has detectorID = 3
  return ddl+fTpcDdlOffset;
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetPatchFromEquipmentID(Int_t equipmentID) const
{
  // Get rcu (patch) index (0 ... 5) from equipment ID
  Int_t retval = 0;

  if ( (equipmentID < fTpcDdlOffset) || (equipmentID > 983) ) {
    AliWarning(Form("Equipment ID (%d) outside range !", equipmentID));
    return -1;
  }
  if ( ( (int)equipmentID - 840 ) < 0) retval = (equipmentID-768)%2;
  else                                 retval = (equipmentID-840)%4 + 2;
  return retval;
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetSideFromEquipmentID(Int_t equipmentID) const
{
  // Get side from Eq ID
  if ( equipmentID < fTpcDdlOffset ) {
    AliWarning(Form("Equipment ID (%d) outside range !", equipmentID));
    return -1;
  }
  if      ( equipmentID < 804 ) return 0;
  else if ( equipmentID < 840 ) return 1;
  else if ( equipmentID < 912 ) return 0;
  else if ( equipmentID < 984 ) return 1;
  else {
    AliWarning(Form("Equipment ID (%d) outside range !", equipmentID));
    return -1;
  }
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetSectorFromEquipmentID(Int_t equipmentID) const
{
  // Get sector index (0 ... 17) from equipment ID
  Int_t retval = 0;
  if ( (equipmentID < fTpcDdlOffset) || (equipmentID >= fTpcDdlOffset+216) ) {
    AliWarning(Form("Equipment ID (%d) outside range !", equipmentID));
    return -1;
  }
  Int_t side   = GetSideFromEquipmentID(equipmentID);
  if ( side < 0 ) return -1;

  if ( (equipmentID - 840) < 0 ) { // IROC
    if ( side == 0 ) retval = (equipmentID-fTpcDdlOffset)/2;
    else             retval = (equipmentID-fTpcDdlOffset-18*2)/2;
  } else {                         // OROC
    if ( side == 0 ) retval = (equipmentID-840)/4;
    else             retval = (equipmentID-840-18*4)/4;
  }
  return retval;
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetRocFromEquipmentID(Int_t equipmentID) const
{
  // Get ROC index (0 ... 71) from equipment ID
  Int_t side   = GetSideFromEquipmentID(equipmentID);
  if ( side < 0 ) return -1;
  Int_t sector = GetSectorFromEquipmentID(equipmentID);
  if ( sector < 0 ) return -1;
  Int_t patch  = GetPatchFromEquipmentID(equipmentID);
  if ( patch < 0 ) return -1;

  return GetRocFromPatch(side, sector, patch);
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetSectorFromRoc(Int_t roc) const
{
  // get the sector number (0 ... 17) from the roc number (0 ... 71)

  if ( roc < 0 ) {
    AliWarning(Form("Roc outside range (roc %d) !", roc));
    return -1;
  } else if ( roc < 18 ) {   // inner sector, A side
    return roc;
  } else if ( roc < 36 ) {   // inner sector, C side
    return (roc-18);
  } else if ( roc < 54 ) {   // outer sector, A side
    return (roc-36);
  } else if ( roc < 72 ) {   // outer sector, C side
    return (roc-54);
  } else {
    AliWarning(Form("Roc outside range (roc %d) !", roc));
    return -1;
  }
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetSideFromRoc(Int_t roc) const
{
  // get the side (0, 1) from the roc number (0 ... 71)

  if ( roc < 0 ) {
    AliWarning(Form("Roc outside range (roc %d) !", roc));
    return -1;
  } else if ( roc < 18 ) {   // inner sector, A side
    return 0;
  } else if ( roc < 36 ) {   // inner sector, C side
    return 1;
  } else if ( roc < 54 ) {   // outer sector, A side
    return 0;
  } else if ( roc < 72 ) {   // outer sector, C side
    return 1;
  } else { 
    AliWarning(Form("Roc outside range (roc %d) !", roc));
    return -1;
  } 
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetRocFromPatch(Int_t side, Int_t sector, Int_t patch) const
{
  // Get Roc (0 ... 71) from side (0, 1), sector (0 ... 17) and patch (0 ... 5)

  if ( (side < 0) || (side >= fNside) ) {
    AliWarning(Form("Side outside range (side %d) !", side));
    return -1;
  }
  if ( (sector < 0) || (sector >= fNsector) ) {
    AliWarning(Form("Sector outside range (sector %d) !", sector));
    return -1;
  }
  if ( (patch < 0) || (patch >= fNrcu) ) {
    AliWarning(Form("Patch (rcu) outside range (patch %d) !", patch));
    return -1;
  }

  if ( side == 0 ) { // A side
    if ( patch < 2 ) return sector;         // IROC
    else             return 36+sector;      // OROC
  } else {           // C side
    if ( patch < 2 ) return 18+sector;      // IROC
    else             return 54+sector;      // OROC
  }
}


//_____________________________________________________________________________
Int_t AliTPCmapper::GetRoc(Int_t side, Int_t sector, Int_t globalpadrow, Int_t pad) const
{
  // Get Roc (0 ... 71) from side (0, 1), sector (0 ... 17) and pad coordinates

  Int_t patch = GetPatchSector(globalpadrow, pad);
  if ( patch < 0 ) return -1;
  return GetRocFromPatch(side, sector, patch);
}


//_____________________________________________________________________________
  Bool_t AliTPCmapper::IsIROC(Int_t roc) const
{
  // Is this ROC an IROC?
  if ( roc < 0 ) {
    AliWarning(Form("Roc outside range (roc %d) !", roc));
    return -1;
  } else if ( roc < 36 ) {   // inner sector
    return true;
  } else if ( roc < 72 ) {   // outer sector, C side
    return false;
  } else {
    AliWarning(Form("Roc outside range (roc %d) !", roc));
    return -1;
  }
}


//_____________________________________________________________________________
  Bool_t AliTPCmapper::IsOROC(Int_t roc) const
{
  // Is this ROC an OROC?
  if ( roc < 0 ) {
    AliWarning(Form("Roc outside range (roc %d) !", roc));
    return -1;
  } else if ( roc < 36 ) {   // inner sector
    return false;
  } else if ( roc < 72 ) {   // outer sector, C side
    return true;
  } else {
    AliWarning(Form("Roc outside range (roc %d) !", roc));
    return -1;
  }
}

// EOF
 AliTPCmapper.cxx:1
 AliTPCmapper.cxx:2
 AliTPCmapper.cxx:3
 AliTPCmapper.cxx:4
 AliTPCmapper.cxx:5
 AliTPCmapper.cxx:6
 AliTPCmapper.cxx:7
 AliTPCmapper.cxx:8
 AliTPCmapper.cxx:9
 AliTPCmapper.cxx:10
 AliTPCmapper.cxx:11
 AliTPCmapper.cxx:12
 AliTPCmapper.cxx:13
 AliTPCmapper.cxx:14
 AliTPCmapper.cxx:15
 AliTPCmapper.cxx:16
 AliTPCmapper.cxx:17
 AliTPCmapper.cxx:18
 AliTPCmapper.cxx:19
 AliTPCmapper.cxx:20
 AliTPCmapper.cxx:21
 AliTPCmapper.cxx:22
 AliTPCmapper.cxx:23
 AliTPCmapper.cxx:24
 AliTPCmapper.cxx:25
 AliTPCmapper.cxx:26
 AliTPCmapper.cxx:27
 AliTPCmapper.cxx:28
 AliTPCmapper.cxx:29
 AliTPCmapper.cxx:30
 AliTPCmapper.cxx:31
 AliTPCmapper.cxx:32
 AliTPCmapper.cxx:33
 AliTPCmapper.cxx:34
 AliTPCmapper.cxx:35
 AliTPCmapper.cxx:36
 AliTPCmapper.cxx:37
 AliTPCmapper.cxx:38
 AliTPCmapper.cxx:39
 AliTPCmapper.cxx:40
 AliTPCmapper.cxx:41
 AliTPCmapper.cxx:42
 AliTPCmapper.cxx:43
 AliTPCmapper.cxx:44
 AliTPCmapper.cxx:45
 AliTPCmapper.cxx:46
 AliTPCmapper.cxx:47
 AliTPCmapper.cxx:48
 AliTPCmapper.cxx:49
 AliTPCmapper.cxx:50
 AliTPCmapper.cxx:51
 AliTPCmapper.cxx:52
 AliTPCmapper.cxx:53
 AliTPCmapper.cxx:54
 AliTPCmapper.cxx:55
 AliTPCmapper.cxx:56
 AliTPCmapper.cxx:57
 AliTPCmapper.cxx:58
 AliTPCmapper.cxx:59
 AliTPCmapper.cxx:60
 AliTPCmapper.cxx:61
 AliTPCmapper.cxx:62
 AliTPCmapper.cxx:63
 AliTPCmapper.cxx:64
 AliTPCmapper.cxx:65
 AliTPCmapper.cxx:66
 AliTPCmapper.cxx:67
 AliTPCmapper.cxx:68
 AliTPCmapper.cxx:69
 AliTPCmapper.cxx:70
 AliTPCmapper.cxx:71
 AliTPCmapper.cxx:72
 AliTPCmapper.cxx:73
 AliTPCmapper.cxx:74
 AliTPCmapper.cxx:75
 AliTPCmapper.cxx:76
 AliTPCmapper.cxx:77
 AliTPCmapper.cxx:78
 AliTPCmapper.cxx:79
 AliTPCmapper.cxx:80
 AliTPCmapper.cxx:81
 AliTPCmapper.cxx:82
 AliTPCmapper.cxx:83
 AliTPCmapper.cxx:84
 AliTPCmapper.cxx:85
 AliTPCmapper.cxx:86
 AliTPCmapper.cxx:87
 AliTPCmapper.cxx:88
 AliTPCmapper.cxx:89
 AliTPCmapper.cxx:90
 AliTPCmapper.cxx:91
 AliTPCmapper.cxx:92
 AliTPCmapper.cxx:93
 AliTPCmapper.cxx:94
 AliTPCmapper.cxx:95
 AliTPCmapper.cxx:96
 AliTPCmapper.cxx:97
 AliTPCmapper.cxx:98
 AliTPCmapper.cxx:99
 AliTPCmapper.cxx:100
 AliTPCmapper.cxx:101
 AliTPCmapper.cxx:102
 AliTPCmapper.cxx:103
 AliTPCmapper.cxx:104
 AliTPCmapper.cxx:105
 AliTPCmapper.cxx:106
 AliTPCmapper.cxx:107
 AliTPCmapper.cxx:108
 AliTPCmapper.cxx:109
 AliTPCmapper.cxx:110
 AliTPCmapper.cxx:111
 AliTPCmapper.cxx:112
 AliTPCmapper.cxx:113
 AliTPCmapper.cxx:114
 AliTPCmapper.cxx:115
 AliTPCmapper.cxx:116
 AliTPCmapper.cxx:117
 AliTPCmapper.cxx:118
 AliTPCmapper.cxx:119
 AliTPCmapper.cxx:120
 AliTPCmapper.cxx:121
 AliTPCmapper.cxx:122
 AliTPCmapper.cxx:123
 AliTPCmapper.cxx:124
 AliTPCmapper.cxx:125
 AliTPCmapper.cxx:126
 AliTPCmapper.cxx:127
 AliTPCmapper.cxx:128
 AliTPCmapper.cxx:129
 AliTPCmapper.cxx:130
 AliTPCmapper.cxx:131
 AliTPCmapper.cxx:132
 AliTPCmapper.cxx:133
 AliTPCmapper.cxx:134
 AliTPCmapper.cxx:135
 AliTPCmapper.cxx:136
 AliTPCmapper.cxx:137
 AliTPCmapper.cxx:138
 AliTPCmapper.cxx:139
 AliTPCmapper.cxx:140
 AliTPCmapper.cxx:141
 AliTPCmapper.cxx:142
 AliTPCmapper.cxx:143
 AliTPCmapper.cxx:144
 AliTPCmapper.cxx:145
 AliTPCmapper.cxx:146
 AliTPCmapper.cxx:147
 AliTPCmapper.cxx:148
 AliTPCmapper.cxx:149
 AliTPCmapper.cxx:150
 AliTPCmapper.cxx:151
 AliTPCmapper.cxx:152
 AliTPCmapper.cxx:153
 AliTPCmapper.cxx:154
 AliTPCmapper.cxx:155
 AliTPCmapper.cxx:156
 AliTPCmapper.cxx:157
 AliTPCmapper.cxx:158
 AliTPCmapper.cxx:159
 AliTPCmapper.cxx:160
 AliTPCmapper.cxx:161
 AliTPCmapper.cxx:162
 AliTPCmapper.cxx:163
 AliTPCmapper.cxx:164
 AliTPCmapper.cxx:165
 AliTPCmapper.cxx:166
 AliTPCmapper.cxx:167
 AliTPCmapper.cxx:168
 AliTPCmapper.cxx:169
 AliTPCmapper.cxx:170
 AliTPCmapper.cxx:171
 AliTPCmapper.cxx:172
 AliTPCmapper.cxx:173
 AliTPCmapper.cxx:174
 AliTPCmapper.cxx:175
 AliTPCmapper.cxx:176
 AliTPCmapper.cxx:177
 AliTPCmapper.cxx:178
 AliTPCmapper.cxx:179
 AliTPCmapper.cxx:180
 AliTPCmapper.cxx:181
 AliTPCmapper.cxx:182
 AliTPCmapper.cxx:183
 AliTPCmapper.cxx:184
 AliTPCmapper.cxx:185
 AliTPCmapper.cxx:186
 AliTPCmapper.cxx:187
 AliTPCmapper.cxx:188
 AliTPCmapper.cxx:189
 AliTPCmapper.cxx:190
 AliTPCmapper.cxx:191
 AliTPCmapper.cxx:192
 AliTPCmapper.cxx:193
 AliTPCmapper.cxx:194
 AliTPCmapper.cxx:195
 AliTPCmapper.cxx:196
 AliTPCmapper.cxx:197
 AliTPCmapper.cxx:198
 AliTPCmapper.cxx:199
 AliTPCmapper.cxx:200
 AliTPCmapper.cxx:201
 AliTPCmapper.cxx:202
 AliTPCmapper.cxx:203
 AliTPCmapper.cxx:204
 AliTPCmapper.cxx:205
 AliTPCmapper.cxx:206
 AliTPCmapper.cxx:207
 AliTPCmapper.cxx:208
 AliTPCmapper.cxx:209
 AliTPCmapper.cxx:210
 AliTPCmapper.cxx:211
 AliTPCmapper.cxx:212
 AliTPCmapper.cxx:213
 AliTPCmapper.cxx:214
 AliTPCmapper.cxx:215
 AliTPCmapper.cxx:216
 AliTPCmapper.cxx:217
 AliTPCmapper.cxx:218
 AliTPCmapper.cxx:219
 AliTPCmapper.cxx:220
 AliTPCmapper.cxx:221
 AliTPCmapper.cxx:222
 AliTPCmapper.cxx:223
 AliTPCmapper.cxx:224
 AliTPCmapper.cxx:225
 AliTPCmapper.cxx:226
 AliTPCmapper.cxx:227
 AliTPCmapper.cxx:228
 AliTPCmapper.cxx:229
 AliTPCmapper.cxx:230
 AliTPCmapper.cxx:231
 AliTPCmapper.cxx:232
 AliTPCmapper.cxx:233
 AliTPCmapper.cxx:234
 AliTPCmapper.cxx:235
 AliTPCmapper.cxx:236
 AliTPCmapper.cxx:237
 AliTPCmapper.cxx:238
 AliTPCmapper.cxx:239
 AliTPCmapper.cxx:240
 AliTPCmapper.cxx:241
 AliTPCmapper.cxx:242
 AliTPCmapper.cxx:243
 AliTPCmapper.cxx:244
 AliTPCmapper.cxx:245
 AliTPCmapper.cxx:246
 AliTPCmapper.cxx:247
 AliTPCmapper.cxx:248
 AliTPCmapper.cxx:249
 AliTPCmapper.cxx:250
 AliTPCmapper.cxx:251
 AliTPCmapper.cxx:252
 AliTPCmapper.cxx:253
 AliTPCmapper.cxx:254
 AliTPCmapper.cxx:255
 AliTPCmapper.cxx:256
 AliTPCmapper.cxx:257
 AliTPCmapper.cxx:258
 AliTPCmapper.cxx:259
 AliTPCmapper.cxx:260
 AliTPCmapper.cxx:261
 AliTPCmapper.cxx:262
 AliTPCmapper.cxx:263
 AliTPCmapper.cxx:264
 AliTPCmapper.cxx:265
 AliTPCmapper.cxx:266
 AliTPCmapper.cxx:267
 AliTPCmapper.cxx:268
 AliTPCmapper.cxx:269
 AliTPCmapper.cxx:270
 AliTPCmapper.cxx:271
 AliTPCmapper.cxx:272
 AliTPCmapper.cxx:273
 AliTPCmapper.cxx:274
 AliTPCmapper.cxx:275
 AliTPCmapper.cxx:276
 AliTPCmapper.cxx:277
 AliTPCmapper.cxx:278
 AliTPCmapper.cxx:279
 AliTPCmapper.cxx:280
 AliTPCmapper.cxx:281
 AliTPCmapper.cxx:282
 AliTPCmapper.cxx:283
 AliTPCmapper.cxx:284
 AliTPCmapper.cxx:285
 AliTPCmapper.cxx:286
 AliTPCmapper.cxx:287
 AliTPCmapper.cxx:288
 AliTPCmapper.cxx:289
 AliTPCmapper.cxx:290
 AliTPCmapper.cxx:291
 AliTPCmapper.cxx:292
 AliTPCmapper.cxx:293
 AliTPCmapper.cxx:294
 AliTPCmapper.cxx:295
 AliTPCmapper.cxx:296
 AliTPCmapper.cxx:297
 AliTPCmapper.cxx:298
 AliTPCmapper.cxx:299
 AliTPCmapper.cxx:300
 AliTPCmapper.cxx:301
 AliTPCmapper.cxx:302
 AliTPCmapper.cxx:303
 AliTPCmapper.cxx:304
 AliTPCmapper.cxx:305
 AliTPCmapper.cxx:306
 AliTPCmapper.cxx:307
 AliTPCmapper.cxx:308
 AliTPCmapper.cxx:309
 AliTPCmapper.cxx:310
 AliTPCmapper.cxx:311
 AliTPCmapper.cxx:312
 AliTPCmapper.cxx:313
 AliTPCmapper.cxx:314
 AliTPCmapper.cxx:315
 AliTPCmapper.cxx:316
 AliTPCmapper.cxx:317
 AliTPCmapper.cxx:318
 AliTPCmapper.cxx:319
 AliTPCmapper.cxx:320
 AliTPCmapper.cxx:321
 AliTPCmapper.cxx:322
 AliTPCmapper.cxx:323
 AliTPCmapper.cxx:324
 AliTPCmapper.cxx:325
 AliTPCmapper.cxx:326
 AliTPCmapper.cxx:327
 AliTPCmapper.cxx:328
 AliTPCmapper.cxx:329
 AliTPCmapper.cxx:330
 AliTPCmapper.cxx:331
 AliTPCmapper.cxx:332
 AliTPCmapper.cxx:333
 AliTPCmapper.cxx:334
 AliTPCmapper.cxx:335
 AliTPCmapper.cxx:336
 AliTPCmapper.cxx:337
 AliTPCmapper.cxx:338
 AliTPCmapper.cxx:339
 AliTPCmapper.cxx:340
 AliTPCmapper.cxx:341
 AliTPCmapper.cxx:342
 AliTPCmapper.cxx:343
 AliTPCmapper.cxx:344
 AliTPCmapper.cxx:345
 AliTPCmapper.cxx:346
 AliTPCmapper.cxx:347
 AliTPCmapper.cxx:348
 AliTPCmapper.cxx:349
 AliTPCmapper.cxx:350
 AliTPCmapper.cxx:351
 AliTPCmapper.cxx:352
 AliTPCmapper.cxx:353
 AliTPCmapper.cxx:354
 AliTPCmapper.cxx:355
 AliTPCmapper.cxx:356
 AliTPCmapper.cxx:357
 AliTPCmapper.cxx:358
 AliTPCmapper.cxx:359
 AliTPCmapper.cxx:360
 AliTPCmapper.cxx:361
 AliTPCmapper.cxx:362
 AliTPCmapper.cxx:363
 AliTPCmapper.cxx:364
 AliTPCmapper.cxx:365
 AliTPCmapper.cxx:366
 AliTPCmapper.cxx:367
 AliTPCmapper.cxx:368
 AliTPCmapper.cxx:369
 AliTPCmapper.cxx:370
 AliTPCmapper.cxx:371
 AliTPCmapper.cxx:372
 AliTPCmapper.cxx:373
 AliTPCmapper.cxx:374
 AliTPCmapper.cxx:375
 AliTPCmapper.cxx:376
 AliTPCmapper.cxx:377
 AliTPCmapper.cxx:378
 AliTPCmapper.cxx:379
 AliTPCmapper.cxx:380
 AliTPCmapper.cxx:381
 AliTPCmapper.cxx:382
 AliTPCmapper.cxx:383
 AliTPCmapper.cxx:384
 AliTPCmapper.cxx:385
 AliTPCmapper.cxx:386
 AliTPCmapper.cxx:387
 AliTPCmapper.cxx:388
 AliTPCmapper.cxx:389
 AliTPCmapper.cxx:390
 AliTPCmapper.cxx:391
 AliTPCmapper.cxx:392
 AliTPCmapper.cxx:393
 AliTPCmapper.cxx:394
 AliTPCmapper.cxx:395
 AliTPCmapper.cxx:396
 AliTPCmapper.cxx:397
 AliTPCmapper.cxx:398
 AliTPCmapper.cxx:399
 AliTPCmapper.cxx:400
 AliTPCmapper.cxx:401
 AliTPCmapper.cxx:402
 AliTPCmapper.cxx:403
 AliTPCmapper.cxx:404
 AliTPCmapper.cxx:405
 AliTPCmapper.cxx:406
 AliTPCmapper.cxx:407
 AliTPCmapper.cxx:408
 AliTPCmapper.cxx:409
 AliTPCmapper.cxx:410
 AliTPCmapper.cxx:411
 AliTPCmapper.cxx:412
 AliTPCmapper.cxx:413
 AliTPCmapper.cxx:414
 AliTPCmapper.cxx:415
 AliTPCmapper.cxx:416
 AliTPCmapper.cxx:417
 AliTPCmapper.cxx:418
 AliTPCmapper.cxx:419
 AliTPCmapper.cxx:420
 AliTPCmapper.cxx:421
 AliTPCmapper.cxx:422
 AliTPCmapper.cxx:423
 AliTPCmapper.cxx:424
 AliTPCmapper.cxx:425
 AliTPCmapper.cxx:426
 AliTPCmapper.cxx:427
 AliTPCmapper.cxx:428
 AliTPCmapper.cxx:429
 AliTPCmapper.cxx:430
 AliTPCmapper.cxx:431
 AliTPCmapper.cxx:432
 AliTPCmapper.cxx:433
 AliTPCmapper.cxx:434
 AliTPCmapper.cxx:435
 AliTPCmapper.cxx:436
 AliTPCmapper.cxx:437
 AliTPCmapper.cxx:438
 AliTPCmapper.cxx:439
 AliTPCmapper.cxx:440
 AliTPCmapper.cxx:441
 AliTPCmapper.cxx:442
 AliTPCmapper.cxx:443
 AliTPCmapper.cxx:444
 AliTPCmapper.cxx:445
 AliTPCmapper.cxx:446
 AliTPCmapper.cxx:447
 AliTPCmapper.cxx:448
 AliTPCmapper.cxx:449
 AliTPCmapper.cxx:450
 AliTPCmapper.cxx:451
 AliTPCmapper.cxx:452
 AliTPCmapper.cxx:453
 AliTPCmapper.cxx:454
 AliTPCmapper.cxx:455
 AliTPCmapper.cxx:456
 AliTPCmapper.cxx:457
 AliTPCmapper.cxx:458
 AliTPCmapper.cxx:459
 AliTPCmapper.cxx:460
 AliTPCmapper.cxx:461
 AliTPCmapper.cxx:462
 AliTPCmapper.cxx:463
 AliTPCmapper.cxx:464
 AliTPCmapper.cxx:465
 AliTPCmapper.cxx:466
 AliTPCmapper.cxx:467
 AliTPCmapper.cxx:468
 AliTPCmapper.cxx:469
 AliTPCmapper.cxx:470
 AliTPCmapper.cxx:471
 AliTPCmapper.cxx:472
 AliTPCmapper.cxx:473
 AliTPCmapper.cxx:474
 AliTPCmapper.cxx:475
 AliTPCmapper.cxx:476
 AliTPCmapper.cxx:477
 AliTPCmapper.cxx:478
 AliTPCmapper.cxx:479
 AliTPCmapper.cxx:480
 AliTPCmapper.cxx:481
 AliTPCmapper.cxx:482
 AliTPCmapper.cxx:483
 AliTPCmapper.cxx:484
 AliTPCmapper.cxx:485
 AliTPCmapper.cxx:486
 AliTPCmapper.cxx:487
 AliTPCmapper.cxx:488
 AliTPCmapper.cxx:489
 AliTPCmapper.cxx:490
 AliTPCmapper.cxx:491
 AliTPCmapper.cxx:492
 AliTPCmapper.cxx:493
 AliTPCmapper.cxx:494
 AliTPCmapper.cxx:495
 AliTPCmapper.cxx:496
 AliTPCmapper.cxx:497
 AliTPCmapper.cxx:498
 AliTPCmapper.cxx:499
 AliTPCmapper.cxx:500
 AliTPCmapper.cxx:501
 AliTPCmapper.cxx:502
 AliTPCmapper.cxx:503
 AliTPCmapper.cxx:504
 AliTPCmapper.cxx:505
 AliTPCmapper.cxx:506
 AliTPCmapper.cxx:507
 AliTPCmapper.cxx:508
 AliTPCmapper.cxx:509
 AliTPCmapper.cxx:510
 AliTPCmapper.cxx:511
 AliTPCmapper.cxx:512
 AliTPCmapper.cxx:513
 AliTPCmapper.cxx:514
 AliTPCmapper.cxx:515
 AliTPCmapper.cxx:516
 AliTPCmapper.cxx:517
 AliTPCmapper.cxx:518
 AliTPCmapper.cxx:519
 AliTPCmapper.cxx:520
 AliTPCmapper.cxx:521
 AliTPCmapper.cxx:522
 AliTPCmapper.cxx:523
 AliTPCmapper.cxx:524
 AliTPCmapper.cxx:525
 AliTPCmapper.cxx:526
 AliTPCmapper.cxx:527
 AliTPCmapper.cxx:528
 AliTPCmapper.cxx:529
 AliTPCmapper.cxx:530
 AliTPCmapper.cxx:531
 AliTPCmapper.cxx:532
 AliTPCmapper.cxx:533
 AliTPCmapper.cxx:534
 AliTPCmapper.cxx:535
 AliTPCmapper.cxx:536
 AliTPCmapper.cxx:537
 AliTPCmapper.cxx:538
 AliTPCmapper.cxx:539
 AliTPCmapper.cxx:540
 AliTPCmapper.cxx:541
 AliTPCmapper.cxx:542
 AliTPCmapper.cxx:543
 AliTPCmapper.cxx:544
 AliTPCmapper.cxx:545
 AliTPCmapper.cxx:546
 AliTPCmapper.cxx:547
 AliTPCmapper.cxx:548
 AliTPCmapper.cxx:549
 AliTPCmapper.cxx:550
 AliTPCmapper.cxx:551
 AliTPCmapper.cxx:552
 AliTPCmapper.cxx:553
 AliTPCmapper.cxx:554
 AliTPCmapper.cxx:555
 AliTPCmapper.cxx:556
 AliTPCmapper.cxx:557
 AliTPCmapper.cxx:558
 AliTPCmapper.cxx:559
 AliTPCmapper.cxx:560
 AliTPCmapper.cxx:561
 AliTPCmapper.cxx:562
 AliTPCmapper.cxx:563
 AliTPCmapper.cxx:564
 AliTPCmapper.cxx:565
 AliTPCmapper.cxx:566
 AliTPCmapper.cxx:567
 AliTPCmapper.cxx:568
 AliTPCmapper.cxx:569
 AliTPCmapper.cxx:570
 AliTPCmapper.cxx:571
 AliTPCmapper.cxx:572
 AliTPCmapper.cxx:573
 AliTPCmapper.cxx:574
 AliTPCmapper.cxx:575
 AliTPCmapper.cxx:576
 AliTPCmapper.cxx:577
 AliTPCmapper.cxx:578
 AliTPCmapper.cxx:579
 AliTPCmapper.cxx:580
 AliTPCmapper.cxx:581
 AliTPCmapper.cxx:582
 AliTPCmapper.cxx:583
 AliTPCmapper.cxx:584
 AliTPCmapper.cxx:585
 AliTPCmapper.cxx:586
 AliTPCmapper.cxx:587
 AliTPCmapper.cxx:588
 AliTPCmapper.cxx:589
 AliTPCmapper.cxx:590
 AliTPCmapper.cxx:591
 AliTPCmapper.cxx:592
 AliTPCmapper.cxx:593
 AliTPCmapper.cxx:594
 AliTPCmapper.cxx:595
 AliTPCmapper.cxx:596
 AliTPCmapper.cxx:597
 AliTPCmapper.cxx:598
 AliTPCmapper.cxx:599
 AliTPCmapper.cxx:600
 AliTPCmapper.cxx:601
 AliTPCmapper.cxx:602
 AliTPCmapper.cxx:603
 AliTPCmapper.cxx:604
 AliTPCmapper.cxx:605
 AliTPCmapper.cxx:606
 AliTPCmapper.cxx:607
 AliTPCmapper.cxx:608
 AliTPCmapper.cxx:609
 AliTPCmapper.cxx:610
 AliTPCmapper.cxx:611
 AliTPCmapper.cxx:612
 AliTPCmapper.cxx:613
 AliTPCmapper.cxx:614
 AliTPCmapper.cxx:615
 AliTPCmapper.cxx:616
 AliTPCmapper.cxx:617
 AliTPCmapper.cxx:618
 AliTPCmapper.cxx:619
 AliTPCmapper.cxx:620
 AliTPCmapper.cxx:621
 AliTPCmapper.cxx:622
 AliTPCmapper.cxx:623
 AliTPCmapper.cxx:624
 AliTPCmapper.cxx:625
 AliTPCmapper.cxx:626
 AliTPCmapper.cxx:627
 AliTPCmapper.cxx:628
 AliTPCmapper.cxx:629
 AliTPCmapper.cxx:630
 AliTPCmapper.cxx:631
 AliTPCmapper.cxx:632
 AliTPCmapper.cxx:633
 AliTPCmapper.cxx:634
 AliTPCmapper.cxx:635
 AliTPCmapper.cxx:636
 AliTPCmapper.cxx:637
 AliTPCmapper.cxx:638
 AliTPCmapper.cxx:639
 AliTPCmapper.cxx:640
 AliTPCmapper.cxx:641
 AliTPCmapper.cxx:642
 AliTPCmapper.cxx:643
 AliTPCmapper.cxx:644
 AliTPCmapper.cxx:645
 AliTPCmapper.cxx:646
 AliTPCmapper.cxx:647
 AliTPCmapper.cxx:648
 AliTPCmapper.cxx:649
 AliTPCmapper.cxx:650
 AliTPCmapper.cxx:651
 AliTPCmapper.cxx:652
 AliTPCmapper.cxx:653
 AliTPCmapper.cxx:654
 AliTPCmapper.cxx:655
 AliTPCmapper.cxx:656
 AliTPCmapper.cxx:657
 AliTPCmapper.cxx:658
 AliTPCmapper.cxx:659
 AliTPCmapper.cxx:660
 AliTPCmapper.cxx:661
 AliTPCmapper.cxx:662
 AliTPCmapper.cxx:663
 AliTPCmapper.cxx:664
 AliTPCmapper.cxx:665
 AliTPCmapper.cxx:666
 AliTPCmapper.cxx:667
 AliTPCmapper.cxx:668
 AliTPCmapper.cxx:669
 AliTPCmapper.cxx:670
 AliTPCmapper.cxx:671
 AliTPCmapper.cxx:672
 AliTPCmapper.cxx:673
 AliTPCmapper.cxx:674
 AliTPCmapper.cxx:675
 AliTPCmapper.cxx:676
 AliTPCmapper.cxx:677
 AliTPCmapper.cxx:678
 AliTPCmapper.cxx:679
 AliTPCmapper.cxx:680
 AliTPCmapper.cxx:681
 AliTPCmapper.cxx:682
 AliTPCmapper.cxx:683
 AliTPCmapper.cxx:684
 AliTPCmapper.cxx:685
 AliTPCmapper.cxx:686
 AliTPCmapper.cxx:687
 AliTPCmapper.cxx:688
 AliTPCmapper.cxx:689
 AliTPCmapper.cxx:690
 AliTPCmapper.cxx:691
 AliTPCmapper.cxx:692
 AliTPCmapper.cxx:693
 AliTPCmapper.cxx:694
 AliTPCmapper.cxx:695
 AliTPCmapper.cxx:696
 AliTPCmapper.cxx:697
 AliTPCmapper.cxx:698
 AliTPCmapper.cxx:699
 AliTPCmapper.cxx:700
 AliTPCmapper.cxx:701
 AliTPCmapper.cxx:702
 AliTPCmapper.cxx:703
 AliTPCmapper.cxx:704
 AliTPCmapper.cxx:705
 AliTPCmapper.cxx:706
 AliTPCmapper.cxx:707
 AliTPCmapper.cxx:708
 AliTPCmapper.cxx:709
 AliTPCmapper.cxx:710
 AliTPCmapper.cxx:711
 AliTPCmapper.cxx:712
 AliTPCmapper.cxx:713
 AliTPCmapper.cxx:714
 AliTPCmapper.cxx:715
 AliTPCmapper.cxx:716
 AliTPCmapper.cxx:717
 AliTPCmapper.cxx:718
 AliTPCmapper.cxx:719
 AliTPCmapper.cxx:720
 AliTPCmapper.cxx:721
 AliTPCmapper.cxx:722
 AliTPCmapper.cxx:723
 AliTPCmapper.cxx:724
 AliTPCmapper.cxx:725
 AliTPCmapper.cxx:726
 AliTPCmapper.cxx:727
 AliTPCmapper.cxx:728
 AliTPCmapper.cxx:729
 AliTPCmapper.cxx:730
 AliTPCmapper.cxx:731
 AliTPCmapper.cxx:732
 AliTPCmapper.cxx:733
 AliTPCmapper.cxx:734
 AliTPCmapper.cxx:735
 AliTPCmapper.cxx:736
 AliTPCmapper.cxx:737
 AliTPCmapper.cxx:738
 AliTPCmapper.cxx:739
 AliTPCmapper.cxx:740
 AliTPCmapper.cxx:741
 AliTPCmapper.cxx:742
 AliTPCmapper.cxx:743
 AliTPCmapper.cxx:744
 AliTPCmapper.cxx:745
 AliTPCmapper.cxx:746
 AliTPCmapper.cxx:747
 AliTPCmapper.cxx:748
 AliTPCmapper.cxx:749
 AliTPCmapper.cxx:750
 AliTPCmapper.cxx:751
 AliTPCmapper.cxx:752
 AliTPCmapper.cxx:753
 AliTPCmapper.cxx:754
 AliTPCmapper.cxx:755
 AliTPCmapper.cxx:756
 AliTPCmapper.cxx:757
 AliTPCmapper.cxx:758
 AliTPCmapper.cxx:759
 AliTPCmapper.cxx:760
 AliTPCmapper.cxx:761
 AliTPCmapper.cxx:762
 AliTPCmapper.cxx:763
 AliTPCmapper.cxx:764
 AliTPCmapper.cxx:765
 AliTPCmapper.cxx:766
 AliTPCmapper.cxx:767
 AliTPCmapper.cxx:768
 AliTPCmapper.cxx:769
 AliTPCmapper.cxx:770
 AliTPCmapper.cxx:771
 AliTPCmapper.cxx:772
 AliTPCmapper.cxx:773
 AliTPCmapper.cxx:774
 AliTPCmapper.cxx:775
 AliTPCmapper.cxx:776
 AliTPCmapper.cxx:777
 AliTPCmapper.cxx:778
 AliTPCmapper.cxx:779
 AliTPCmapper.cxx:780
 AliTPCmapper.cxx:781
 AliTPCmapper.cxx:782
 AliTPCmapper.cxx:783
 AliTPCmapper.cxx:784
 AliTPCmapper.cxx:785
 AliTPCmapper.cxx:786
 AliTPCmapper.cxx:787
 AliTPCmapper.cxx:788
 AliTPCmapper.cxx:789
 AliTPCmapper.cxx:790
 AliTPCmapper.cxx:791
 AliTPCmapper.cxx:792
 AliTPCmapper.cxx:793
 AliTPCmapper.cxx:794
 AliTPCmapper.cxx:795
 AliTPCmapper.cxx:796
 AliTPCmapper.cxx:797
 AliTPCmapper.cxx:798
 AliTPCmapper.cxx:799
 AliTPCmapper.cxx:800
 AliTPCmapper.cxx:801
 AliTPCmapper.cxx:802
 AliTPCmapper.cxx:803
 AliTPCmapper.cxx:804
 AliTPCmapper.cxx:805
 AliTPCmapper.cxx:806
 AliTPCmapper.cxx:807
 AliTPCmapper.cxx:808
 AliTPCmapper.cxx:809
 AliTPCmapper.cxx:810
 AliTPCmapper.cxx:811
 AliTPCmapper.cxx:812
 AliTPCmapper.cxx:813
 AliTPCmapper.cxx:814
 AliTPCmapper.cxx:815
 AliTPCmapper.cxx:816
 AliTPCmapper.cxx:817
 AliTPCmapper.cxx:818
 AliTPCmapper.cxx:819
 AliTPCmapper.cxx:820
 AliTPCmapper.cxx:821
 AliTPCmapper.cxx:822
 AliTPCmapper.cxx:823
 AliTPCmapper.cxx:824
 AliTPCmapper.cxx:825
 AliTPCmapper.cxx:826
 AliTPCmapper.cxx:827
 AliTPCmapper.cxx:828
 AliTPCmapper.cxx:829
 AliTPCmapper.cxx:830
 AliTPCmapper.cxx:831
 AliTPCmapper.cxx:832
 AliTPCmapper.cxx:833
 AliTPCmapper.cxx:834
 AliTPCmapper.cxx:835
 AliTPCmapper.cxx:836
 AliTPCmapper.cxx:837
 AliTPCmapper.cxx:838
 AliTPCmapper.cxx:839
 AliTPCmapper.cxx:840
 AliTPCmapper.cxx:841
 AliTPCmapper.cxx:842
 AliTPCmapper.cxx:843
 AliTPCmapper.cxx:844
 AliTPCmapper.cxx:845
 AliTPCmapper.cxx:846
 AliTPCmapper.cxx:847
 AliTPCmapper.cxx:848
 AliTPCmapper.cxx:849
 AliTPCmapper.cxx:850
 AliTPCmapper.cxx:851
 AliTPCmapper.cxx:852
 AliTPCmapper.cxx:853
 AliTPCmapper.cxx:854
 AliTPCmapper.cxx:855
 AliTPCmapper.cxx:856
 AliTPCmapper.cxx:857
 AliTPCmapper.cxx:858
 AliTPCmapper.cxx:859
 AliTPCmapper.cxx:860
 AliTPCmapper.cxx:861
 AliTPCmapper.cxx:862
 AliTPCmapper.cxx:863
 AliTPCmapper.cxx:864
 AliTPCmapper.cxx:865
 AliTPCmapper.cxx:866
 AliTPCmapper.cxx:867
 AliTPCmapper.cxx:868
 AliTPCmapper.cxx:869
 AliTPCmapper.cxx:870
 AliTPCmapper.cxx:871
 AliTPCmapper.cxx:872
 AliTPCmapper.cxx:873
 AliTPCmapper.cxx:874
 AliTPCmapper.cxx:875
 AliTPCmapper.cxx:876
 AliTPCmapper.cxx:877
 AliTPCmapper.cxx:878
 AliTPCmapper.cxx:879
 AliTPCmapper.cxx:880
 AliTPCmapper.cxx:881
 AliTPCmapper.cxx:882
 AliTPCmapper.cxx:883
 AliTPCmapper.cxx:884
 AliTPCmapper.cxx:885
 AliTPCmapper.cxx:886
 AliTPCmapper.cxx:887
 AliTPCmapper.cxx:888
 AliTPCmapper.cxx:889
 AliTPCmapper.cxx:890
 AliTPCmapper.cxx:891
 AliTPCmapper.cxx:892
 AliTPCmapper.cxx:893
 AliTPCmapper.cxx:894
 AliTPCmapper.cxx:895
 AliTPCmapper.cxx:896
 AliTPCmapper.cxx:897
 AliTPCmapper.cxx:898
 AliTPCmapper.cxx:899
 AliTPCmapper.cxx:900
 AliTPCmapper.cxx:901
 AliTPCmapper.cxx:902
 AliTPCmapper.cxx:903
 AliTPCmapper.cxx:904
 AliTPCmapper.cxx:905
 AliTPCmapper.cxx:906
 AliTPCmapper.cxx:907
 AliTPCmapper.cxx:908
 AliTPCmapper.cxx:909
 AliTPCmapper.cxx:910
 AliTPCmapper.cxx:911
 AliTPCmapper.cxx:912
 AliTPCmapper.cxx:913
 AliTPCmapper.cxx:914
 AliTPCmapper.cxx:915
 AliTPCmapper.cxx:916
 AliTPCmapper.cxx:917
 AliTPCmapper.cxx:918
 AliTPCmapper.cxx:919
 AliTPCmapper.cxx:920
 AliTPCmapper.cxx:921
 AliTPCmapper.cxx:922
 AliTPCmapper.cxx:923
 AliTPCmapper.cxx:924
 AliTPCmapper.cxx:925
 AliTPCmapper.cxx:926
 AliTPCmapper.cxx:927
 AliTPCmapper.cxx:928
 AliTPCmapper.cxx:929
 AliTPCmapper.cxx:930
 AliTPCmapper.cxx:931
 AliTPCmapper.cxx:932
 AliTPCmapper.cxx:933
 AliTPCmapper.cxx:934
 AliTPCmapper.cxx:935
 AliTPCmapper.cxx:936
 AliTPCmapper.cxx:937
 AliTPCmapper.cxx:938
 AliTPCmapper.cxx:939
 AliTPCmapper.cxx:940
 AliTPCmapper.cxx:941
 AliTPCmapper.cxx:942
 AliTPCmapper.cxx:943
 AliTPCmapper.cxx:944
 AliTPCmapper.cxx:945
 AliTPCmapper.cxx:946
 AliTPCmapper.cxx:947
 AliTPCmapper.cxx:948
 AliTPCmapper.cxx:949
 AliTPCmapper.cxx:950
 AliTPCmapper.cxx:951
 AliTPCmapper.cxx:952
 AliTPCmapper.cxx:953
 AliTPCmapper.cxx:954
 AliTPCmapper.cxx:955
 AliTPCmapper.cxx:956
 AliTPCmapper.cxx:957
 AliTPCmapper.cxx:958
 AliTPCmapper.cxx:959
 AliTPCmapper.cxx:960
 AliTPCmapper.cxx:961
 AliTPCmapper.cxx:962
 AliTPCmapper.cxx:963
 AliTPCmapper.cxx:964
 AliTPCmapper.cxx:965
 AliTPCmapper.cxx:966
 AliTPCmapper.cxx:967
 AliTPCmapper.cxx:968
 AliTPCmapper.cxx:969
 AliTPCmapper.cxx:970
 AliTPCmapper.cxx:971
 AliTPCmapper.cxx:972
 AliTPCmapper.cxx:973
 AliTPCmapper.cxx:974
 AliTPCmapper.cxx:975
 AliTPCmapper.cxx:976
 AliTPCmapper.cxx:977
 AliTPCmapper.cxx:978
 AliTPCmapper.cxx:979
 AliTPCmapper.cxx:980
 AliTPCmapper.cxx:981
 AliTPCmapper.cxx:982
 AliTPCmapper.cxx:983
 AliTPCmapper.cxx:984
 AliTPCmapper.cxx:985
 AliTPCmapper.cxx:986
 AliTPCmapper.cxx:987
 AliTPCmapper.cxx:988
 AliTPCmapper.cxx:989
 AliTPCmapper.cxx:990
 AliTPCmapper.cxx:991
 AliTPCmapper.cxx:992
 AliTPCmapper.cxx:993
 AliTPCmapper.cxx:994
 AliTPCmapper.cxx:995
 AliTPCmapper.cxx:996
 AliTPCmapper.cxx:997
 AliTPCmapper.cxx:998
 AliTPCmapper.cxx:999
 AliTPCmapper.cxx:1000
 AliTPCmapper.cxx:1001
 AliTPCmapper.cxx:1002
 AliTPCmapper.cxx:1003
 AliTPCmapper.cxx:1004
 AliTPCmapper.cxx:1005
 AliTPCmapper.cxx:1006
 AliTPCmapper.cxx:1007
 AliTPCmapper.cxx:1008
 AliTPCmapper.cxx:1009
 AliTPCmapper.cxx:1010
 AliTPCmapper.cxx:1011
 AliTPCmapper.cxx:1012
 AliTPCmapper.cxx:1013
 AliTPCmapper.cxx:1014
 AliTPCmapper.cxx:1015
 AliTPCmapper.cxx:1016
 AliTPCmapper.cxx:1017
 AliTPCmapper.cxx:1018
 AliTPCmapper.cxx:1019
 AliTPCmapper.cxx:1020
 AliTPCmapper.cxx:1021
 AliTPCmapper.cxx:1022
 AliTPCmapper.cxx:1023
 AliTPCmapper.cxx:1024
 AliTPCmapper.cxx:1025
 AliTPCmapper.cxx:1026
 AliTPCmapper.cxx:1027
 AliTPCmapper.cxx:1028
 AliTPCmapper.cxx:1029
 AliTPCmapper.cxx:1030
 AliTPCmapper.cxx:1031
 AliTPCmapper.cxx:1032
 AliTPCmapper.cxx:1033
 AliTPCmapper.cxx:1034
 AliTPCmapper.cxx:1035
 AliTPCmapper.cxx:1036
 AliTPCmapper.cxx:1037
 AliTPCmapper.cxx:1038
 AliTPCmapper.cxx:1039
 AliTPCmapper.cxx:1040
 AliTPCmapper.cxx:1041
 AliTPCmapper.cxx:1042
 AliTPCmapper.cxx:1043
 AliTPCmapper.cxx:1044
 AliTPCmapper.cxx:1045
 AliTPCmapper.cxx:1046
 AliTPCmapper.cxx:1047
 AliTPCmapper.cxx:1048
 AliTPCmapper.cxx:1049
 AliTPCmapper.cxx:1050
 AliTPCmapper.cxx:1051
 AliTPCmapper.cxx:1052
 AliTPCmapper.cxx:1053
 AliTPCmapper.cxx:1054
 AliTPCmapper.cxx:1055
 AliTPCmapper.cxx:1056
 AliTPCmapper.cxx:1057
 AliTPCmapper.cxx:1058