ROOT logo
/**************************************************************************
 * Copyright(c) 2007-2009, 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.                  *
 **************************************************************************/
///////////////////////////////////////////////////////////////////////////
//  Plane Efficiency class for ITS                      
//  It is used for chip by chip efficiency of the SPD,        
//  evaluated by tracks
//  (Inherits from AliITSPlaneEff)
//  Author: G.E. Bruno 
//          giuseppe.bruno@ba.infn.it
//
///////////////////////////////////////////////////////////////////////////

/* $Id$ */

#include <TMath.h>
#include <TH1F.h>
#include <TFile.h>
#include <TTree.h>
#include <TROOT.h>
#include "AliITSPlaneEffSPD.h"
#include "AliLog.h"
#include "AliCDBStorage.h"
#include "AliCDBEntry.h"
#include "AliCDBManager.h"
//#include "AliCDBRunRange.h"
#include "AliITSsegmentationSPD.h"
#include "AliITSCalibrationSPD.h"

ClassImp(AliITSPlaneEffSPD)	
//______________________________________________________________________
AliITSPlaneEffSPD::AliITSPlaneEffSPD():
  AliITSPlaneEff(),
  fHisResX(0),
  fHisResZ(0),
  fHisResXZ(0),
  fHisClusterSize(0),
  fHisResXclu(0),
  fHisResZclu(0),
  fHisResXchip(0),
  fHisResZchip(0),
  fProfResXvsPhi(0),
  fProfResZvsDip(0),
  fProfResXvsPhiclu(0), 
  fProfResZvsDipclu(0),
  fHisTrackErrX(0),
  fHisTrackErrZ(0),
  fHisClusErrX(0),
  fHisClusErrZ(0),
  fHisTrackXFOtrue(0),
  fHisTrackZFOtrue(0),
  fHisTrackXFOfalse(0),
  fHisTrackZFOfalse(0),
  fHisTrackXZFOtrue(0),
  fHisTrackXZFOfalse(0){
  for (UInt_t i=0; i<kNModule*kNChip*(kNClockPhase+1); i++){
    fFound[i]=0;
    fTried[i]=0;
  }
  // default constructor
  AliDebug(1,Form("Calling default constructor"));
}
//______________________________________________________________________
AliITSPlaneEffSPD::~AliITSPlaneEffSPD(){
    // destructor
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Return:
    //     none.
    DeleteHistos();
}
//______________________________________________________________________
AliITSPlaneEffSPD::AliITSPlaneEffSPD(const AliITSPlaneEffSPD &s) : AliITSPlaneEff(s), 
//fHis(s.fHis),
fHisResX(0),
fHisResZ(0),
fHisResXZ(0),
fHisClusterSize(0),
fHisResXclu(0),
fHisResZclu(0),
fHisResXchip(0),
fHisResZchip(0),
fProfResXvsPhi(0),
fProfResZvsDip(0),
fProfResXvsPhiclu(0),
fProfResZvsDipclu(0),
fHisTrackErrX(0),
fHisTrackErrZ(0),
fHisClusErrX(0),
fHisClusErrZ(0),
fHisTrackXFOtrue(0),
fHisTrackZFOtrue(0),
fHisTrackXFOfalse(0),
fHisTrackZFOfalse(0),
fHisTrackXZFOtrue(0),
fHisTrackXZFOfalse(0)
{
    //     Copy Constructor
    // Inputs:
    //    AliITSPlaneEffSPD &s The original class for which
    //                                this class is a copy of
    // Outputs:
    //    none.
    // Return:

 for (UInt_t i=0; i<kNModule*kNChip*(kNClockPhase+1); i++){
    fFound[i]=s.fFound[i];
    fTried[i]=s.fTried[i];
 }
 if(fHis) { 
   InitHistos();
   for(Int_t i=0; i<kNHisto; i++) {
      s.fHisResX[i]->Copy(*fHisResX[i]);
      s.fHisResZ[i]->Copy(*fHisResZ[i]);
      s.fHisResXZ[i]->Copy(*fHisResXZ[i]);
      s.fHisClusterSize[i]->Copy(*fHisClusterSize[i]);
      for(Int_t clu=0; clu<kNclu; clu++) {  // clu=0 --> cluster size 1
        s.fHisResXclu[i][clu]->Copy(*fHisResXclu[i][clu]);
        s.fHisResZclu[i][clu]->Copy(*fHisResZclu[i][clu]);
        s.fProfResXvsPhiclu[i][clu]->Copy(*fProfResXvsPhiclu[i][clu]);
        s.fProfResZvsDipclu[i][clu]->Copy(*fProfResZvsDipclu[i][clu]);
      }
      for(Int_t chip=0; chip<kNChip; chip++) { 
        s.fHisResXchip[i][chip]->Copy(*fHisResXchip[i][chip]);
        s.fHisResZchip[i][chip]->Copy(*fHisResZchip[i][chip]);
      }
      s.fProfResXvsPhi[i]->Copy(*fProfResXvsPhi[i]);
      s.fProfResZvsDip[i]->Copy(*fProfResZvsDip[i]);
      s.fHisTrackErrX[i]->Copy(*fHisTrackErrX[i]);
      s.fHisTrackErrZ[i]->Copy(*fHisTrackErrZ[i]);
      s.fHisClusErrX[i]->Copy(*fHisClusErrX[i]);
      s.fHisClusErrZ[i]->Copy(*fHisClusErrZ[i]);
      for(Int_t phas=0; phas<kNClockPhase;phas++){
        s.fHisTrackXFOtrue[i][phas]->Copy(*fHisTrackXFOtrue[i][phas]);
        s.fHisTrackZFOtrue[i][phas]->Copy(*fHisTrackXFOtrue[i][phas]);
        s.fHisTrackXFOfalse[i][phas]->Copy(*fHisTrackXFOtrue[i][phas]);
        s.fHisTrackZFOfalse[i][phas]->Copy(*fHisTrackXFOtrue[i][phas]);
        s.fHisTrackXZFOtrue[i][phas]->Copy(*fHisTrackXFOtrue[i][phas]);
        s.fHisTrackXZFOfalse[i][phas]->Copy(*fHisTrackXFOtrue[i][phas]);
      }
   }
 }
}
//_________________________________________________________________________
AliITSPlaneEffSPD& AliITSPlaneEffSPD::operator+=(const AliITSPlaneEffSPD &add){
    //    Add-to-me operator
    // Inputs:
    //    const AliITSPlaneEffSPD &add  simulation class to be added
    // Outputs:
    //    none.
    // Return:
    //    none
    for (UInt_t i=0; i<kNModule*kNChip*(kNClockPhase+1); i++){
      fFound[i] += add.fFound[i];
      fTried[i] += add.fTried[i];
    }
    if(fHis && add.fHis) {
      for(Int_t i=0; i<kNHisto; i++) {
        fHisResX[i]->Add(add.fHisResX[i]); 
        fHisResZ[i]->Add(add.fHisResZ[i]); 
        fHisResXZ[i]->Add(add.fHisResXZ[i]); 
        fHisClusterSize[i]->Add(add.fHisClusterSize[i]); 
        for(Int_t clu=0; clu<kNclu; clu++) {  // clu=0 --> cluster size 1
          fHisResXclu[i][clu]->Add(add.fHisResXclu[i][clu]); 
          fHisResZclu[i][clu]->Add(add.fHisResZclu[i][clu]); 
          fProfResXvsPhiclu[i][clu]->Add(add.fProfResXvsPhiclu[i][clu]);
          fProfResZvsDipclu[i][clu]->Add(add.fProfResZvsDipclu[i][clu]);
        }
        for(Int_t chip=0; chip<kNChip; chip++) {  
          fHisResXchip[i][chip]->Add(add.fHisResXchip[i][chip]); 
          fHisResZchip[i][chip]->Add(add.fHisResZchip[i][chip]); 
        }
        fProfResXvsPhi[i]->Add(add.fProfResXvsPhi[i]);
        fProfResZvsDip[i]->Add(add.fProfResZvsDip[i]);
        fHisTrackErrX[i]->Add(add.fHisTrackErrX[i]);
        fHisTrackErrZ[i]->Add(add.fHisTrackErrZ[i]);
        fHisClusErrX[i]->Add(add.fHisClusErrX[i]);
        fHisClusErrZ[i]->Add(add.fHisClusErrZ[i]);
        for(Int_t phas=0; phas<kNClockPhase;phas++){
          fHisTrackXFOtrue[i][phas]->Add(add.fHisTrackXFOtrue[i][phas]);
          fHisTrackZFOtrue[i][phas]->Add(add.fHisTrackXFOtrue[i][phas]);
          fHisTrackXFOfalse[i][phas]->Add(add.fHisTrackXFOtrue[i][phas]);
          fHisTrackZFOfalse[i][phas]->Add(add.fHisTrackXFOtrue[i][phas]);
          fHisTrackXZFOtrue[i][phas]->Add(add.fHisTrackXFOtrue[i][phas]);
          fHisTrackXZFOfalse[i][phas]->Add(add.fHisTrackXFOtrue[i][phas]);
        }
      }
    }
    return *this;
}
//______________________________________________________________________
AliITSPlaneEffSPD&  AliITSPlaneEffSPD::operator=(const
                                           AliITSPlaneEffSPD &s){
    //    Assignment operator
    // Inputs:
    //    AliITSPlaneEffSPD &s The original class for which
    //                                this class is a copy of
    // Outputs:
    //    none.
    // Return:
 
    if(this==&s) return *this;
    this->~AliITSPlaneEffSPD();
    new(this) AliITSPlaneEffSPD();
    s.Copy(*this);
    return *this;
}
//______________________________________________________________________
void AliITSPlaneEffSPD::Copy(TObject &obj) const {
  // protected method. copy this to obj
  AliITSPlaneEff::Copy(obj);
  AliITSPlaneEffSPD& target = (AliITSPlaneEffSPD &) obj;
  for(Int_t i=0;i<kNModule*kNChip*(kNClockPhase+1);i++) {
      target.fFound[i] = fFound[i];
      target.fTried[i] = fTried[i];
  }
  CopyHistos(target);
  return;
}
//_______________________________________________________________________
void AliITSPlaneEffSPD::CopyHistos(AliITSPlaneEffSPD &target) const {
  // protected method: copy histos from this to target
  target.fHis  = fHis; // this is redundant only in some cases. Leave as it is.
  if(fHis) {
    target.fHisResX=new TH1F*[kNHisto];
    target.fHisResZ=new TH1F*[kNHisto];
    target.fHisResXZ=new TH2F*[kNHisto];
    target.fHisClusterSize=new TH2I*[kNHisto];
    target.fHisResXclu=new TH1F**[kNHisto];
    target.fHisResZclu=new TH1F**[kNHisto];
    target.fHisResXchip=new TH1F**[kNHisto];
    target.fHisResZchip=new TH1F**[kNHisto];
    target.fProfResXvsPhi=new TProfile*[kNHisto];
    target.fProfResZvsDip=new TProfile*[kNHisto];
    target.fProfResXvsPhiclu=new TProfile**[kNHisto];
    target.fProfResZvsDipclu=new TProfile**[kNHisto];
    target.fHisTrackErrX=new TH1F*[kNHisto];
    target.fHisTrackErrZ=new TH1F*[kNHisto];
    target.fHisClusErrX=new TH1F*[kNHisto];
    target.fHisClusErrZ=new TH1F*[kNHisto];
    target.fHisTrackXFOtrue=new TH1F**[kNHisto];
    target.fHisTrackZFOtrue=new TH1F**[kNHisto];
    target.fHisTrackXFOfalse=new TH1F**[kNHisto];
    target.fHisTrackZFOfalse=new TH1F**[kNHisto];
    target.fHisTrackXZFOtrue=new TH2F**[kNHisto];
    target.fHisTrackXZFOfalse=new TH2F**[kNHisto];
    for(Int_t i=0; i<kNHisto; i++) {
      target.fHisResX[i] = new TH1F(*fHisResX[i]);
      target.fHisResZ[i] = new TH1F(*fHisResZ[i]);
      target.fHisResXZ[i] = new TH2F(*fHisResXZ[i]);
      target.fHisClusterSize[i] = new TH2I(*fHisClusterSize[i]);
      target.fHisResXclu[i]=new TH1F*[kNclu];
      target.fHisResZclu[i]=new TH1F*[kNclu];
      target.fProfResXvsPhiclu[i]=new TProfile*[kNclu];
      target.fProfResZvsDipclu[i]=new TProfile*[kNclu];
      for(Int_t clu=0; clu<kNclu; clu++) {  // clu=0 --> cluster size 1
        target.fHisResXclu[i][clu] = new TH1F(*fHisResXclu[i][clu]);
        target.fHisResZclu[i][clu] = new TH1F(*fHisResZclu[i][clu]);
        target.fProfResXvsPhiclu[i][clu] = new TProfile(*fProfResXvsPhiclu[i][clu]);
        target.fProfResZvsDipclu[i][clu] = new TProfile(*fProfResZvsDipclu[i][clu]);
      }
      target.fHisResXchip[i]=new TH1F*[kNChip];
      target.fHisResZchip[i]=new TH1F*[kNChip];
      for(Int_t chip=0; chip<kNChip; chip++) {  
        target.fHisResXchip[i][chip] = new TH1F(*fHisResXchip[i][chip]);
        target.fHisResZchip[i][chip] = new TH1F(*fHisResZchip[i][chip]);
      }
      target.fProfResXvsPhi[i] = new TProfile(*fProfResXvsPhi[i]);
      target.fProfResZvsDip[i] = new TProfile(*fProfResZvsDip[i]);
      target.fHisTrackErrX[i] = new TH1F(*fHisTrackErrX[i]);
      target.fHisTrackErrZ[i] = new TH1F(*fHisTrackErrZ[i]);
      target.fHisClusErrX[i] = new TH1F(*fHisClusErrX[i]);
      target.fHisClusErrZ[i] = new TH1F(*fHisClusErrZ[i]);

      target.fHisTrackXFOtrue[i]=new TH1F*[kNClockPhase];
      target.fHisTrackZFOtrue[i]=new TH1F*[kNClockPhase];
      target.fHisTrackXFOfalse[i]=new TH1F*[kNClockPhase];
      target.fHisTrackZFOfalse[i]=new TH1F*[kNClockPhase];
      target.fHisTrackXZFOtrue[i]=new TH2F*[kNClockPhase];
      target.fHisTrackXZFOfalse[i]=new TH2F*[kNClockPhase];
      for(Int_t phas=0; phas<kNClockPhase;phas++){
      target.fHisTrackXFOtrue[i][phas]=new TH1F(*fHisTrackXFOtrue[i][phas]);
      target.fHisTrackZFOtrue[i][phas]=new TH1F(*fHisTrackZFOtrue[i][phas]);
      target.fHisTrackXFOfalse[i][phas]=new TH1F(*fHisTrackXFOfalse[i][phas]);
      target.fHisTrackZFOfalse[i][phas]=new TH1F(*fHisTrackZFOfalse[i][phas]);
      target.fHisTrackXZFOtrue[i][phas]=new TH2F(*fHisTrackXZFOtrue[i][phas]);
      target.fHisTrackXZFOfalse[i][phas]=new TH2F(*fHisTrackXZFOfalse[i][phas]);
      }
    }
  }
return;
}

//_______________________________________________________________________
Int_t AliITSPlaneEffSPD::GetMissingTracksForGivenEff(Double_t eff, Double_t RelErr,
          UInt_t im, UInt_t ic) const {
   
  //   Estimate the number of tracks still to be collected to attain a 
  //   given efficiency eff, with relative error RelErr
  //   Inputs:
  //         eff    -> Expected efficiency (e.g. those from actual estimate)
  //         RelErr -> tollerance [0,1] 
  //         im     -> module number [0,239]
  //         ic     -> chip number [0,4]
  //   Outputs: none
  //   Return: the estimated n. of tracks 
  //
if (im>=kNModule || ic>=kNChip) 
 {AliError("GetMissingTracksForGivenEff: you asked for a non existing chip");
 return -1;}
else { 
  UInt_t key=GetKey(im,ic);
  if(key<kNModule*kNChip) return GetNTracksForGivenEff(eff,RelErr)-fTried[key];
  else return -1;
}
}
//_________________________________________________________________________
Double_t  AliITSPlaneEffSPD::PlaneEff(const UInt_t im,const UInt_t ic, const Bool_t fo, const UInt_t bcm4) const {
// Compute the efficiency for a basic block, 
// Inputs:
//        im     -> module number [0,239]
//        ic     -> chip number [0,4] 
//        fo     -> boolean, true in case of Fast Or studies
//        bcm4   -> for Fast Or: bunch crossing % 4
if (im>=kNModule || ic>=kNChip) 
 {AliError("PlaneEff(Uint_t,Uint_t): you asked for a non existing chip"); return -1.;}
if(fo && bcm4>=kNClockPhase)
 {AliError("PlaneEff(Uint_t,Uint_t): you asked for Fast Or in a wrong phase"); return -1.;}
Int_t nf=-1;
Int_t nt=-1;
if(fo) {
 AliWarning("PlaneEff: you asked for FO efficiency");
 UInt_t key=GetKey(im,ic,fo,bcm4);
 if(key<kNModule*kNChip*(kNClockPhase+1)) {
   nf=fFound[key];
   nt=fTried[key];
 }
} else {
 UInt_t key=GetKey(im,ic);
 if (key<kNModule*kNChip) {
  nf=fFound[key];
  nt=fTried[key];
 }
}
return AliITSPlaneEff::PlaneEff(nf,nt);
}
//_________________________________________________________________________
Double_t  AliITSPlaneEffSPD::ErrPlaneEff(const UInt_t im,const UInt_t ic, const Bool_t fo, const UInt_t bcm4) const {
    // Compute the statistical error on efficiency for a basic block,
    // using binomial statistics 
    // Inputs:
    //        im     -> module number [0,239]
    //        ic     -> chip number [0,4] 
//        fo     -> boolean, true in case of Fast Or studies
//        bcm4   -> for Fast Or: bunch crossing % 4
if (im>=kNModule || ic>=kNChip) 
 {AliError("ErrPlaneEff(Uint_t,Uint_t): you asked for a non existing chip"); return -1.;}
if(fo && bcm4>=kNClockPhase)
 {AliError("PlaneEff(Uint_t,Uint_t): you asked for Fast Or in a wrong phase"); return -1.;}
Int_t nf=-1;
Int_t nt=-1;
if(fo) {
 AliWarning("ErrPlaneEff: you asked for FO efficiency");
 UInt_t key=GetKey(im,ic,fo,bcm4);
 if(key<kNModule*kNChip*(kNClockPhase+1)) {
   nf=fFound[key];
   nt=fTried[key];
 }
} else {
 UInt_t key=GetKey(im,ic);
 if (key<kNModule*kNChip) {
   nf=fFound[key];
   nt=fTried[key];
 }
}
return AliITSPlaneEff::ErrPlaneEff(nf,nt);
} 
//_________________________________________________________________________
Bool_t AliITSPlaneEffSPD::UpDatePlaneEff(const Bool_t Kfound,
                                         const UInt_t im, const UInt_t ic, const Bool_t fo, const UInt_t bcm4) {
  // Update efficiency for a basic block
if (im>=kNModule || ic>=kNChip) 
 {AliError("UpDatePlaneEff: you asked for a non existing chip"); return kFALSE;}
if(fo && bcm4>=kNClockPhase)
 {AliError("UpDatePlaneEff: you asked for Fast Or in a wrong phase"); return kFALSE;}
if (!fo) {
 UInt_t key=GetKey(im,ic);
 if(key<kNModule*kNChip) {
   fTried[key]++;
   if(Kfound) fFound[key]++;
   return kTRUE;
 }
}
else {
 UInt_t key=GetKey(im,ic,fo,bcm4);
 if(key<kNModule*kNChip*(kNClockPhase+1)) {
   fTried[key]++;
   if(Kfound) fFound[key]++;
   return kTRUE;
 }
}
return kFALSE;
}
//_________________________________________________________________________
UInt_t AliITSPlaneEffSPD::GetChipFromCol(const UInt_t col) const {
  // get chip given the column
if(col>=kNCol*kNChip) 
 {AliDebug(1,Form("GetChipFromCol: you asked for a non existing column %d",col)); return 10;}
return col/kNCol;
}
//__________________________________________________________________________
UInt_t AliITSPlaneEffSPD::GetKey(const UInt_t mod, const UInt_t chip, const Bool_t FO, const UInt_t BCm4) const {
  // get key given a basic block
UInt_t key=99999;
if(mod>=kNModule || chip>=kNChip)
  {AliDebug(1,"GetKey: you asked for a non existing block"); return 99999;}
key = mod*kNChip+chip;
if(FO) { 
  if(BCm4>= kNClockPhase) {AliDebug(1,"GetKey: you have asked Fast OR and a non exisiting BC modulo 4"); return 99999;}
  key += kNModule*kNChip*(BCm4+1);
}
return key;
}
//__________________________________________________________________________
UInt_t AliITSPlaneEffSPD::SwitchChipKeyNumbering(UInt_t key) const {

// methods to switch from offline chip key numbering 
// to online Raw Stream chip numbering and viceversa. 
// Used for Fast-Or studies.
// Implemented by valerio.altini@ba.infn.it

if(key>=kNModule*kNChip*(kNClockPhase+1))
  {AliDebug(1,"SwitchChipKeyNumbering: you asked for a non existing key"); return 99999;}
UInt_t mod=9999,chip=9999,phase=9999;
GetModAndChipFromKey(key,mod,chip);
if(mod<kNModuleLy1) chip = kNChip-(chip+1);
if(IsForFO(key))phase = GetBCm4FromKey(key);

return GetKey(mod,chip,IsForFO(key),phase);

}
//__________________________________________________________________________
UInt_t AliITSPlaneEffSPD::GetModFromKey(const UInt_t key) const {
  // get mod. from key
if(key>=kNModule*kNChip*(kNClockPhase+1))
  {AliError("GetModFromKey: you asked for a non existing key"); return 9999;}
return (key%(kNModule*kNChip))/kNChip;
}
//__________________________________________________________________________
UInt_t AliITSPlaneEffSPD::GetChipFromKey(const UInt_t key) const {
  // retrieves chip from key
if(key>=kNModule*kNChip*(kNClockPhase+1))
  {AliError("GetChipFromKey: you asked for a non existing key"); return 999;}
return ((key%(kNModule*kNChip))%(kNModule*kNChip))%kNChip;
}
//__________________________________________________________________________
UInt_t AliITSPlaneEffSPD::GetBCm4FromKey(const UInt_t key) const {
  // retrieves the "Bunch Crossing modulo 4" (for Fast Or studies)
if(key>=kNModule*kNChip*(kNClockPhase+1))
  {AliError("GetBCm4FromKey: you asked for a non existing key"); return 999;}
if(key<kNModule*kNChip) 
  {AliDebug(1,"GetBCm4FromKey: key is below 1200, why are you asking for FO related stuff"); return 999;}

return key/(kNModule*kNChip) - 1 ;
}
//__________________________________________________________________________
Bool_t AliITSPlaneEffSPD::IsForFO(const UInt_t key) const {
if(key>=kNModule*kNChip) return kTRUE;
else return kFALSE;
}
//__________________________________________________________________________
void AliITSPlaneEffSPD::GetModAndChipFromKey(const UInt_t key,UInt_t& mod,UInt_t& chip) const {
  // get module and chip from a key
if(key>=kNModule*kNChip*(kNClockPhase+1))
  {AliError("GetModAndChipFromKey: you asked for a non existing key"); 
  mod=9999;
  chip=999;
  return;}
mod=GetModFromKey(key);
chip=GetChipFromKey(key);
return;
}
//____________________________________________________________________________
Double_t AliITSPlaneEffSPD::LivePlaneEff(UInt_t key) const {
  // returns plane efficieny after adding the fraction of sensor which is bad
if(key>=kNModule*kNChip)
  {AliError("LivePlaneEff: you asked for a non existing key");
   return -1.;}
Double_t leff=AliITSPlaneEff::LivePlaneEff(0); // this just for the Warning
leff=PlaneEff(key)+GetFracBad(key);
return leff>1?1:leff;
}
//____________________________________________________________________________
Double_t AliITSPlaneEffSPD::ErrLivePlaneEff(UInt_t key) const {
  // returns error on live plane efficiency
if(key>=kNModule*kNChip)
  {AliError("ErrLivePlaneEff: you asked for a non existing key");
   return -1.;}
Int_t nf=fFound[key];
Double_t triedInLive=GetFracLive(key)*fTried[key];
Int_t nt=TMath::Max(nf,TMath::Nint(triedInLive));
return AliITSPlaneEff::ErrPlaneEff(nf,nt); // for the time being: to be checked
}
//_____________________________________________________________________________
Double_t AliITSPlaneEffSPD::GetFracLive(const UInt_t key) const {
  // returns the fraction of the sensor which is OK
if(key>=kNModule*kNChip)
  {AliError("GetFracLive: you asked for a non existing key");
   return -1.;}
    // Compute the fraction of bad (dead+noisy) detector 
UInt_t dead=0,noisy=0;
GetDeadAndNoisyInChip(key,dead,noisy);
Double_t live=dead+noisy;
live/=(kNRow*kNCol);
return 1.-live;
}
//_____________________________________________________________________________
void AliITSPlaneEffSPD::GetDeadAndNoisyInChip(const UInt_t key,
      UInt_t& nrDeadInChip, UInt_t& nrNoisyInChip) const {
  // returns the number of dead and noisy pixels
nrDeadInChip=0;
nrNoisyInChip=0;
if(key>=kNModule*kNChip)
  {AliError("GetDeadAndNoisyInChip: you asked for a non existing key");
   return;}
    // Compute the number of bad (dead+noisy) pixel in a chip
//
if(!fInitCDBCalled) 
  {AliError("GetDeadAndNoisyInChip: CDB not inizialized: call InitCDB first");
   return;};
AliCDBManager* man = AliCDBManager::Instance();
// retrieve map of dead Pixel 
AliCDBEntry *cdbSPDDead = man->Get("ITS/Calib/SPDDead", fRunNumber);
TObjArray* spdDead;
if(cdbSPDDead) {
  spdDead = (TObjArray*)cdbSPDDead->GetObject();
  if(!spdDead) 
  {AliError("GetDeadAndNoisyInChip: SPDDead not found in CDB");
   return;}
} else {
  AliError("GetDeadAndNoisyInChip: did not find Calib/SPDDead.");
  return;
}
// retrieve map of sparse dead Pixel 
AliCDBEntry *cdbSPDSparseDead = man->Get("ITS/Calib/SPDSparseDead", fRunNumber);
TObjArray* spdSparseDead;
if(cdbSPDSparseDead) {
  spdSparseDead = (TObjArray*)cdbSPDSparseDead->GetObject();
  if(!spdSparseDead) 
  {AliError("GetDeadAndNoisyInChip: SPDSparseDead not found in CDB");
   return;}
} else {
  AliError("GetDeadAndNoisyInChip: did not find Calib/SPDSparseDead.");
  return;
}

// retrieve map of noisy Pixel 
AliCDBEntry *cdbSPDNoisy = man->Get("ITS/Calib/SPDNoisy", fRunNumber);
TObjArray* spdNoisy;
if(cdbSPDNoisy) {
  spdNoisy = (TObjArray*)cdbSPDNoisy->GetObject();
  if(!spdNoisy) 
  {AliError("GetDeadAndNoisyInChip: SPDNoisy not found in CDB");
   return;}
} else {
  AliError("GetDeadAndNoisyInChip: did not find Calib/SPDNoisy.");
  return;
}
//
UInt_t mod=GetModFromKey(key);
UInt_t chip=GetChipFromKey(key);
// count number of dead
AliITSCalibrationSPD* calibSPD=(AliITSCalibrationSPD*) spdDead->At(mod);
UInt_t nrDead = calibSPD->GetNrBad();
for (UInt_t index=0; index<nrDead; index++) {
  if(GetChipFromCol(calibSPD->GetBadColAt(index))==chip) nrDeadInChip++;
}
// add the number of sparse dead to the previous dead
calibSPD=(AliITSCalibrationSPD*) spdSparseDead->At(mod);
UInt_t nrSparseDead = calibSPD->GetNrBad();
for (UInt_t index=0; index<nrSparseDead; index++) {
  if(GetChipFromCol(calibSPD->GetBadColAt(index))==chip) nrDeadInChip++;
}
calibSPD=(AliITSCalibrationSPD*) spdNoisy->At(mod);
UInt_t nrNoisy = calibSPD->GetNrBad();
for (UInt_t index=0; index<nrNoisy; index++) {
  if(GetChipFromCol(calibSPD->GetBadColAt(index))==chip) nrNoisyInChip++;
}
return;
}
//_____________________________________________________________________________
Double_t AliITSPlaneEffSPD::GetFracBad(const UInt_t key) const {
  // returns 1-fractional live
if(key>=kNModule*kNChip)
  {AliError("GetFracBad: you asked for a non existing key");
   return -1.;}
return 1.-GetFracLive(key);
}
//_____________________________________________________________________________
Bool_t AliITSPlaneEffSPD::WriteIntoCDB() const {
// write onto CDB
if(!fInitCDBCalled)
  {AliError("WriteIntoCDB: CDB not inizialized. Call InitCDB first");
   return kFALSE;}
// to be written properly: now only for debugging 
  AliCDBMetaData *md= new AliCDBMetaData(); // metaData describing the object
  //md->SetObjectClassName("AliITSPlaneEff");
  md->SetResponsible("Giuseppe Eugenio Bruno");
  md->SetBeamPeriod(0);
  md->SetAliRootVersion("head 19/11/07"); //root version
  AliCDBId id("ITS/PlaneEff/PlaneEffSPD",0,AliCDBRunRange::Infinity()); 
  AliITSPlaneEffSPD eff; 
  eff=*this;
  Bool_t r=AliCDBManager::Instance()->GetDefaultStorage()->Put(&eff,id,md);
  delete md;
  return r;
}
//_____________________________________________________________________________
Bool_t AliITSPlaneEffSPD::ReadFromCDB() {
// read from CDB
if(!fInitCDBCalled)
  {AliError("ReadFromCDB: CDB not inizialized. Call InitCDB first");
   return kFALSE;}
AliCDBEntry *cdbEntry = AliCDBManager::Instance()->Get("ITS/PlaneEff/PlaneEffSPD",fRunNumber);
if(!cdbEntry) return kFALSE;
AliITSPlaneEffSPD* eff= (AliITSPlaneEffSPD*)cdbEntry->GetObject();
if(this==eff) return kFALSE;
if(fHis) CopyHistos(*eff); // If histos already exist then copy them to eff
eff->Copy(*this);          // copy everything (statistics and histos) from eff to this
return kTRUE;
}
//_____________________________________________________________________________
Bool_t AliITSPlaneEffSPD::AddFromCDB(AliCDBId *cdbId) {
AliCDBEntry *cdbEntry=0;
if (!cdbId) {
  if(!fInitCDBCalled)  
    {AliError("ReadFromCDB: CDB not inizialized. Call InitCDB first"); return kFALSE;}
  cdbEntry = AliCDBManager::Instance()->Get("ITS/PlaneEff/PlaneEffSPD",fRunNumber);
} else {
  cdbEntry = AliCDBManager::Instance()->Get(*cdbId);
}
if(!cdbEntry) return kFALSE;
AliITSPlaneEffSPD* eff= (AliITSPlaneEffSPD*)cdbEntry->GetObject();
*this+=*eff;
return kTRUE;
}
//_____________________________________________________________________________
UInt_t AliITSPlaneEffSPD::GetKeyFromDetLocCoord(Int_t ilay, Int_t idet, 
						Float_t, Float_t locz) const {
// method to locate a basic block from Detector Local coordinate (to be used in tracking)
UInt_t key=999999;
if(ilay<0 || ilay>1) 
  {AliError("GetKeyFromDetLocCoord: you asked for a non existing layer");
   return key;}
if(ilay==0 && (idet<0 || idet>79))
 {AliError("GetKeyFromDetLocCoord: you asked for a non existing detector");
   return key;}
if(ilay==1 && (idet<0 || idet>159))
 {AliError("GetKeyFromDetLocCoord: you asked for a non existing detector");
   return key;}

UInt_t mod=idet;
if(ilay==1) mod+=80;
key=GetKey(mod,GetChipFromCol(GetColFromLocZ(locz)));
return key;
}
//_____________________________________________________________________________
UInt_t AliITSPlaneEffSPD::GetColFromLocZ(Float_t zloc) const {
// method to retrieve column number from the local z coordinate
  UInt_t col=0;
  AliITSsegmentationSPD spd;
  Int_t ix,iz;
  if(spd.LocalToDet(0,zloc,ix,iz)) col+=iz;
  else {
    AliDebug(1,Form("cannot compute column number from local z=%f",zloc));
    col=99999;}
  return col;
/*
const Float_t kconv = 1.0E-04; // converts microns to cm.
Float_t bz[160];
for(Int_t i=000;i<160;i++) bz[i] = 425.0; // most are 425 microns except below
bz[ 31] = bz[ 32] = 625.0; // first chip boundry
bz[ 63] = bz[ 64] = 625.0; // first chip boundry
bz[ 95] = bz[ 96] = 625.0; // first chip boundry
bz[127] = bz[128] = 625.0; // first chip boundry
//
Int_t j=-1;
Float_t dz=0;
for(Int_t i=000;i<160;i++) dz+=bz[i];
dz = -0.5*kconv*dz;
if(zloc<dz || zloc>-1*dz) { // outside z range
  AliDebug(1,Form("GetColFromLocZ: cannot compute column number from local z=%f",zloc));
  return 99999;}
for(j=0;j<160;j++){
  dz += kconv*bz[j];
  if(zloc<dz) break;
} // end for j
col+=j;
//
return col;
*/
}
//________________________________________________________
Bool_t AliITSPlaneEffSPD::GetBlockBoundaries(const UInt_t key, Float_t& xmn,Float_t& xmx,
                                             Float_t& zmn,Float_t& zmx) const {
//
//  This method return the geometrical boundaries of the active volume of a given 
//  basic block, in the detector reference system.
//  Input: unique key to locate a basic block.
//  
//  Output: Ymin, Ymax, Zmin, Zmax of a basic block (chip for SPD)
//  Return: kTRUE if computation was succesfully, kFALSE otherwise
//
if(key>=kNModule*kNChip)
  {AliDebug(1,"GetBlockBoundaries: you asked for a non existing key"); return kFALSE;}
UInt_t chip=GetChipFromKey(key);
zmn=GetLocZFromCol(chip*kNCol);
zmx=GetLocZFromCol((chip+1)*kNCol);
xmn=GetLocXFromRow(0);
xmx=GetLocXFromRow(kNRow);
//
Float_t tmp=zmn;
if(zmx<zmn) {zmn=zmx; zmx=tmp;}
tmp=xmn;
if(xmx<xmn) {xmn=xmx; xmx=tmp;}
return kTRUE;
}
//________________________________________________________
Float_t AliITSPlaneEffSPD::GetLocXFromRow(const UInt_t row) const {
// 
//  This method return the local (i.e. detector reference system) lower x coordinate 
//  of the row. To get the central value of a given row, you can do 
//  1/2*[LocXFromRow(row)+LocXFromRow(row+1)].
//
//  Input: row number in the range [0,kNRow] 
//  Output: lower local X coordinate of this row.
//
if(row>kNRow)  // not >= ! allow also computation of upper limit of the last row. 
  {AliError("LocYFromRow: you asked for a non existing row"); return 9999999.;}
// Use only AliITSsegmentationSPD
AliITSsegmentationSPD spd;
Double_t dummy,x;
if(row==kNRow) spd.CellBoundries((Int_t)row-1,0,dummy,x,dummy,dummy);
else spd.CellBoundries((Int_t)row,0,x,dummy,dummy,dummy);
return (Float_t)x;

}
//________________________________________________________
Float_t AliITSPlaneEffSPD::GetLocZFromCol(const UInt_t col) const {
//
//  This method return the local (i.e. detector reference system) lower Z coordinate
//  of the column. To get the central value of a given column, you can do
//  1/2*[LocZFromCol(col)+LocZFromCol(col+1)].
//
//  Input: col number in the range [0,kNChip*kNCol]
//  Output: lower local Y coordinate of this row.
//
if(col>kNChip*kNCol) // not >= ! allow also computation of upper limit of the last column
  {AliError("LocZFromCol: you asked for a non existing column"); return 9999999.;}
// Use only AliITSsegmentationSPD
AliITSsegmentationSPD spd;
Double_t dummy,y;
if(col==kNChip*kNCol) spd.CellBoundries(0,(Int_t)col-1,dummy,dummy,dummy,y);
else spd.CellBoundries(0,(Int_t)col,dummy,dummy,y,dummy);
return (Float_t)y;

}
//__________________________________________________________
void AliITSPlaneEffSPD::InitHistos() {
  // for the moment let's create the histograms 
  // module by  module
  TString histnameResX="HistResX_mod_",aux;
  TString histnameResZ="HistResZ_mod_";
  TString histnameResXZ="HistResXZ_mod_";
  TString histnameClusterType="HistClusterType_mod_";
  TString histnameResXclu="HistResX_mod_";
  TString histnameResZclu="HistResZ_mod_";
  TString histnameResXchip="HistResX_mod_";
  TString histnameResZchip="HistResZ_mod_";
  TString profnameResXvsPhi="ProfResXvsPhi_mod_";
  TString profnameResZvsDip="ProfResZvsDip_mod_";
  TString profnameResXvsPhiclu="ProfResXvsPhi_mod_";
  TString profnameResZvsDipclu="ProfResZvsDip_mod_";
  TString histnameTrackErrX="HistTrackErrX_mod_";
  TString histnameTrackErrZ="HistTrackErrZ_mod_";
  TString histnameClusErrX="HistClusErrX_mod_";
  TString histnameClusErrZ="HistClusErrZ_mod_";
  TString histnameTrackXFOtrue="HistTrackXFOok_mod_";
  TString histnameTrackZFOtrue="HistTrackZFOok_mod_";
  TString histnameTrackXFOfalse="HistTrackXFOko_mod_";
  TString histnameTrackZFOfalse="HistTrackZFOko_mod_";
  TString histnameTrackXZFOtrue="HistTrackZvsXFOok_mod_";
  TString histnameTrackXZFOfalse="HistTrackZvsXFOko_mod_";
//

  TH1::AddDirectory(kFALSE);

  fHisResX=new TH1F*[kNHisto];
  fHisResZ=new TH1F*[kNHisto];
  fHisResXZ=new TH2F*[kNHisto];
  fHisClusterSize=new TH2I*[kNHisto];
  fHisResXclu=new TH1F**[kNHisto];
  fHisResZclu=new TH1F**[kNHisto];
  fHisResXchip=new TH1F**[kNHisto];
  fHisResZchip=new TH1F**[kNHisto];
  fProfResXvsPhi=new TProfile*[kNHisto];
  fProfResZvsDip=new TProfile*[kNHisto];
  fProfResXvsPhiclu=new TProfile**[kNHisto];
  fProfResZvsDipclu=new TProfile**[kNHisto];
  fHisTrackErrX=new TH1F*[kNHisto];
  fHisTrackErrZ=new TH1F*[kNHisto];
  fHisClusErrX=new TH1F*[kNHisto];
  fHisClusErrZ=new TH1F*[kNHisto];
  fHisTrackXFOtrue=new TH1F**[kNHisto];
  fHisTrackZFOtrue=new TH1F**[kNHisto];
  fHisTrackXFOfalse=new TH1F**[kNHisto];
  fHisTrackZFOfalse=new TH1F**[kNHisto];
  fHisTrackXZFOtrue=new TH2F**[kNHisto];
  fHisTrackXZFOfalse=new TH2F**[kNHisto];

  for (Int_t nhist=0;nhist<kNHisto;nhist++){
    aux=histnameResX;
    aux+=nhist;
    fHisResX[nhist]=new TH1F("histname","histname",1600,-0.32,0.32); // +- 3200 micron; 1 bin=4 micron
    fHisResX[nhist]->SetName(aux.Data());
    fHisResX[nhist]->SetTitle(aux.Data());

    aux=histnameResZ;
    aux+=nhist;
    fHisResZ[nhist]=new TH1F("histname","histname",1200,-0.48,0.48); // +-4800 micron; 1 bin=8 micron
    fHisResZ[nhist]->SetName(aux.Data());
    fHisResZ[nhist]->SetTitle(aux.Data());

    aux=histnameResXZ;
    aux+=nhist;
    fHisResXZ[nhist]=new TH2F("histname","histname",80,-0.16,0.16,80,-0.32,0.32); // binning:
    fHisResXZ[nhist]->SetName(aux.Data());					   // 40 micron in x;
    fHisResXZ[nhist]->SetTitle(aux.Data());					   // 80 micron in z;

    aux=histnameClusterType;
    aux+=nhist;
    fHisClusterSize[nhist]=new TH2I("histname","histname",10,0.5,10.5,10,0.5,10.5);
    fHisClusterSize[nhist]->SetName(aux.Data());
    fHisClusterSize[nhist]->SetTitle(aux.Data());

    fHisResXclu[nhist]=new TH1F*[kNclu];
    fHisResZclu[nhist]=new TH1F*[kNclu];
    fHisTrackXFOtrue[nhist]=new TH1F*[kNClockPhase];
    fHisTrackZFOtrue[nhist]=new TH1F*[kNClockPhase];
    fHisTrackXFOfalse[nhist]=new TH1F*[kNClockPhase];
    fHisTrackZFOfalse[nhist]=new TH1F*[kNClockPhase];
    fHisTrackXZFOtrue[nhist]=new TH2F*[kNClockPhase];
    fHisTrackXZFOfalse[nhist]=new TH2F*[kNClockPhase];

    for(Int_t clu=0; clu<kNclu; clu++) {  // clu=0 --> cluster size 1
      aux=histnameResXclu;
      aux+=nhist;
      aux+="_clu_";
      aux+=clu+1; // clu=0 --> cluster size 1
      fHisResXclu[nhist][clu]=new TH1F("histname","histname",1600,-0.32,0.32); // +- 3200 micron; 1 bin=4 micron
      fHisResXclu[nhist][clu]->SetName(aux.Data());
      fHisResXclu[nhist][clu]->SetTitle(aux.Data());

      aux=histnameResZclu;
      aux+=nhist;
      aux+="_clu_";
      aux+=clu+1; // clu=0 --> cluster size 1
      fHisResZclu[nhist][clu]=new TH1F("histname","histname",1200,-0.48,0.48); // +-4800 micron; 1 bin=8 micron
      fHisResZclu[nhist][clu]->SetName(aux.Data());
      fHisResZclu[nhist][clu]->SetTitle(aux.Data());
    }

    fHisResXchip[nhist]=new TH1F*[kNChip];
    fHisResZchip[nhist]=new TH1F*[kNChip];
    for(Int_t chip=0; chip<kNChip; chip++) { 
      aux=histnameResXchip;
      aux+=nhist;
      aux+="_chip_";
      aux+=chip; 
      fHisResXchip[nhist][chip]=new TH1F("histname","histname",800,-0.32,0.32); // +- 3200 micron; 1 bin=8 micron
      fHisResXchip[nhist][chip]->SetName(aux.Data());
      fHisResXchip[nhist][chip]->SetTitle(aux.Data());

      aux=histnameResZchip;
      aux+=nhist;
      aux+="_chip_";
      aux+=chip;
      fHisResZchip[nhist][chip]=new TH1F("histname","histname",300,-0.48,0.48); // +-4800 micron; 1 bin=32 micron
      fHisResZchip[nhist][chip]->SetName(aux.Data());
      fHisResZchip[nhist][chip]->SetTitle(aux.Data());
    }

    aux=histnameTrackErrX;
    aux+=nhist;
    fHisTrackErrX[nhist]=new TH1F("histname","histname",400,0.,0.32); // 0-3200 micron; 1 bin=8 micron
    fHisTrackErrX[nhist]->SetName(aux.Data());
    fHisTrackErrX[nhist]->SetTitle(aux.Data());

    aux=histnameTrackErrZ;
    aux+=nhist;
    fHisTrackErrZ[nhist]=new TH1F("histname","histname",200,0.,0.32); // 0-3200 micron; 1 bin=16 micron
    fHisTrackErrZ[nhist]->SetName(aux.Data());
    fHisTrackErrZ[nhist]->SetTitle(aux.Data());

    aux=histnameClusErrX;
    aux+=nhist;
    fHisClusErrX[nhist]=new TH1F("histname","histname",400,0.,0.08); //  0-800 micron; 1 bin=2 micron
    fHisClusErrX[nhist]->SetName(aux.Data());
    fHisClusErrX[nhist]->SetTitle(aux.Data());

    aux=histnameClusErrZ;
    aux+=nhist;
    fHisClusErrZ[nhist]=new TH1F("histname","histname",400,0.,0.32); //  0-3200 micron; 1 bin=8 micron
    fHisClusErrZ[nhist]->SetName(aux.Data());
    fHisClusErrZ[nhist]->SetTitle(aux.Data());

    aux=profnameResXvsPhi;
    aux+=nhist;
    fProfResXvsPhi[nhist]=new TProfile("histname","histname",40,-40.,40.0); // binning: range:  -40°- 40°
    fProfResXvsPhi[nhist]->SetName(aux.Data());                             //          bin width: 2°
    fProfResXvsPhi[nhist]->SetTitle(aux.Data());

    aux=profnameResZvsDip;
    aux+=nhist;
    fProfResZvsDip[nhist]=new TProfile("histname","histname",48,-72.,72.0); // binning: range:  -70°-4°
    fProfResZvsDip[nhist]->SetName(aux.Data());                             //          bin width: 3°
    fProfResZvsDip[nhist]->SetTitle(aux.Data());

    fProfResXvsPhiclu[nhist]=new TProfile*[kNclu];
    fProfResZvsDipclu[nhist]=new TProfile*[kNclu];
    for(Int_t clu=0; clu<kNclu; clu++) {  // clu=0 --> cluster size 1
      aux=profnameResXvsPhiclu;
      aux+=nhist;
      aux+="_clu_";
      aux+=clu+1; // clu=0 --> cluster size 1
      fProfResXvsPhiclu[nhist][clu]=new TProfile("histname","histname",40,-40.,40.0); // binning: range:  -40°- 40
      fProfResXvsPhiclu[nhist][clu]->SetName(aux.Data());                             //          bin width: 2°
      fProfResXvsPhiclu[nhist][clu]->SetTitle(aux.Data());

      aux=profnameResZvsDipclu;
      aux+=nhist;
      aux+="_clu_";
      aux+=clu+1; // clu=0 --> cluster size 1
      fProfResZvsDipclu[nhist][clu]= new TProfile("histname","histname",48,-72.,72.0); // binning: range:  -70°-7°
      fProfResZvsDipclu[nhist][clu]->SetName(aux.Data());                              //      bin width: 3°
      fProfResZvsDipclu[nhist][clu]->SetTitle(aux.Data());
    }

    fHisTrackXFOtrue[nhist]=new TH1F*[kNClockPhase];
    fHisTrackZFOtrue[nhist]=new TH1F*[kNClockPhase];
    fHisTrackXFOfalse[nhist]=new TH1F*[kNClockPhase];
    fHisTrackZFOfalse[nhist]=new TH1F*[kNClockPhase];
    fHisTrackXZFOtrue[nhist]=new TH2F*[kNClockPhase];
    fHisTrackXZFOfalse[nhist]=new TH2F*[kNClockPhase];
    for(Int_t phas=0; phas<kNClockPhase;phas++){
      aux=histnameTrackXFOtrue;
      aux+=nhist;
      aux+="_BCmod4_";
      aux+=phas;
      fHisTrackXFOtrue[nhist][phas]=new TH1F("histname","histname",128,-0.64,0.64); // +- 6.4 mm; 1 bin=0.1 mm
      fHisTrackXFOtrue[nhist][phas]->SetName(aux.Data());
      fHisTrackXFOtrue[nhist][phas]->SetTitle(aux.Data());
      
      aux=histnameTrackZFOtrue;
      aux+=nhist;
      aux+="_BCmod4_";
      aux+=phas;
      fHisTrackZFOtrue[nhist][phas]=new TH1F("histname","histname",350,-3.5,3.5); // +- 35. mm; 1 bin=0.2 mm
      fHisTrackZFOtrue[nhist][phas]->SetName(aux.Data());
      fHisTrackZFOtrue[nhist][phas]->SetTitle(aux.Data());
      
      aux=histnameTrackXFOfalse;
      aux+=nhist;
      aux+="_BCmod4_";
      aux+=phas;
      fHisTrackXFOfalse[nhist][phas]=new TH1F("histname","histname",128,-0.64,0.64); // +- 6.4 mm; 1 bin=0.1 mm
      fHisTrackXFOfalse[nhist][phas]->SetName(aux.Data());
      fHisTrackXFOfalse[nhist][phas]->SetTitle(aux.Data());

      aux=histnameTrackZFOfalse;
      aux+=nhist;
      aux+="_BCmod4_";
      aux+=phas;
      fHisTrackZFOfalse[nhist][phas]=new TH1F("histname","histname",350,-3.5,3.5); // +- 35. mm; 1 bin=0.2 mm
      fHisTrackZFOfalse[nhist][phas]->SetName(aux.Data());
      fHisTrackZFOfalse[nhist][phas]->SetTitle(aux.Data());
    
      aux=histnameTrackXZFOtrue;
      aux+=nhist;
      aux+="_BCmod4_";
      aux+=phas;
      fHisTrackXZFOtrue[nhist][phas]=new TH2F("histname","histname",22,-3.5,3.5,32,-0.64,0.64); //  localZ +- 35. mm; 1 bin=3.2 mm
      fHisTrackXZFOtrue[nhist][phas]->SetName(aux.Data());                                      //  localX +- 6.4 mm; 1 bin=0.4 mm
      fHisTrackXZFOtrue[nhist][phas]->SetTitle(aux.Data());

      aux=histnameTrackXZFOfalse;
      aux+=nhist;
      aux+="_BCmod4_";
      aux+=phas;
      fHisTrackXZFOfalse[nhist][phas]=new TH2F("histname","histname",22,-3.5,3.5,32,-0.64,0.64); //  localZ +- 35. mm; 1 bin=3.2 mm
      fHisTrackXZFOfalse[nhist][phas]->SetName(aux.Data());                                      //  localX +- 6.4 mm; 1 bin=0.4 mm
      fHisTrackXZFOfalse[nhist][phas]->SetTitle(aux.Data());
      } 
  } // end loop on module

  TH1::AddDirectory(kTRUE);

return;
}
//__________________________________________________________
void AliITSPlaneEffSPD::DeleteHistos() {
  if(fHisResX) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fHisResX[i];
    delete [] fHisResX; fHisResX=0;
  }
  if(fHisResZ) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fHisResZ[i];
    delete [] fHisResZ; fHisResZ=0;
  }
  if(fHisResXZ) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fHisResXZ[i];
    delete [] fHisResXZ; fHisResXZ=0;
  }
  if(fHisClusterSize) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fHisClusterSize[i];
    delete [] fHisClusterSize; fHisClusterSize=0;
  }
  if(fHisResXclu) {
    for (Int_t i=0; i<kNHisto; i++ ) {
      for (Int_t clu=0; clu<kNclu; clu++) if (fHisResXclu[i][clu]) delete fHisResXclu[i][clu];
      delete [] fHisResXclu[i];
    }
    delete [] fHisResXclu;
    fHisResXclu = 0;
  }
  if(fHisResZclu) {
    for (Int_t i=0; i<kNHisto; i++ ) {
      for (Int_t clu=0; clu<kNclu; clu++) if (fHisResZclu[i][clu]) delete fHisResZclu[i][clu];
      delete [] fHisResZclu[i];
    }
    delete [] fHisResZclu;
    fHisResZclu = 0;
  }
  if(fHisResXchip) {
    for (Int_t i=0; i<kNHisto; i++ ) {
      for (Int_t chip=0; chip<kNChip; chip++) if (fHisResXchip[i][chip]) delete fHisResXchip[i][chip];
      delete [] fHisResXchip[i];
    }
    delete [] fHisResXchip;
    fHisResXchip = 0;
  }
  if(fHisResZchip) {
    for (Int_t i=0; i<kNHisto; i++ ) {
      for (Int_t chip=0; chip<kNChip; chip++) if (fHisResZchip[i][chip]) delete fHisResZchip[i][chip];
      delete [] fHisResZchip[i];
    }
    delete [] fHisResZchip;
    fHisResZchip = 0;
  }
  if(fHisTrackErrX) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fHisTrackErrX[i];
    delete [] fHisTrackErrX; fHisTrackErrX=0;
  }
  if(fHisTrackErrZ) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fHisTrackErrZ[i];
    delete [] fHisTrackErrZ; fHisTrackErrZ=0;
  }
  if(fHisClusErrX) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fHisClusErrX[i];
    delete [] fHisClusErrX; fHisClusErrX=0;
  }
  if(fHisClusErrZ) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fHisClusErrZ[i];
    delete [] fHisClusErrZ; fHisClusErrZ=0;
  }
  if(fProfResXvsPhi) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fProfResXvsPhi[i];
    delete [] fProfResXvsPhi; fProfResXvsPhi=0;
  }
  if(fProfResZvsDip) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fProfResZvsDip[i];
    delete [] fProfResZvsDip; fProfResZvsDip=0;
  }
  if(fProfResXvsPhiclu) {
    for (Int_t i=0; i<kNHisto; i++ ) {
      for (Int_t clu=0; clu<kNclu; clu++) if (fProfResXvsPhiclu[i][clu]) delete fProfResXvsPhiclu[i][clu];
      delete [] fProfResXvsPhiclu[i];
    }
    delete [] fProfResXvsPhiclu;
    fProfResXvsPhiclu = 0;
  }
  if(fProfResZvsDipclu) {
    for (Int_t i=0; i<kNHisto; i++ ) {
      for (Int_t clu=0; clu<kNclu; clu++) if (fProfResZvsDipclu[i][clu]) delete fProfResZvsDipclu[i][clu];
      delete [] fProfResZvsDipclu[i];
    }
    delete [] fProfResZvsDipclu;
    fProfResZvsDipclu = 0;
  }
  if(fHisTrackXFOtrue) {
    for (Int_t i=0; i<kNHisto; i++ ) {
      for (Int_t phas=0; phas<kNClockPhase; phas++) if (fHisTrackXFOtrue[i][phas]) delete fHisTrackXFOtrue[i][phas];
      delete [] fHisTrackXFOtrue[i];
    }
    delete [] fHisTrackXFOtrue;
    fHisTrackXFOtrue = 0;
  }
  if(fHisTrackZFOtrue) {
    for (Int_t i=0; i<kNHisto; i++ ) {
      for (Int_t phas=0; phas<kNClockPhase; phas++) if (fHisTrackZFOtrue[i][phas]) delete fHisTrackZFOtrue[i][phas];
      delete [] fHisTrackZFOtrue[i];
    }
    delete [] fHisTrackZFOtrue;
    fHisTrackZFOtrue = 0;
  }
  if(fHisTrackXFOfalse) {
    for (Int_t i=0; i<kNHisto; i++ ) {
      for (Int_t phas=0; phas<kNClockPhase; phas++) if (fHisTrackXFOfalse[i][phas]) delete fHisTrackXFOfalse[i][phas];
      delete [] fHisTrackXFOfalse[i];
    }
    delete [] fHisTrackXFOfalse;
    fHisTrackXFOfalse = 0;
  }
  if(fHisTrackZFOfalse) {
    for (Int_t i=0; i<kNHisto; i++ ) {
      for (Int_t phas=0; phas<kNClockPhase; phas++) if (fHisTrackZFOfalse[i][phas]) delete fHisTrackZFOfalse[i][phas];
      delete [] fHisTrackZFOfalse[i];
    }
    delete [] fHisTrackZFOfalse;
    fHisTrackZFOfalse = 0;
  }
return;
}
//__________________________________________________________
Bool_t AliITSPlaneEffSPD::FillHistos(UInt_t key, Bool_t found,
                                     Float_t *tr, Float_t *clu, Int_t *csize, Float_t *angtrkmod) {
//
// depending on the value of key this method
// either call the standard one for clusters 
// or the one for FO studies
// if key <  1200 --> call FillHistosST
// if key >= 1200 --> call FillHistosFO
if(key>=kNModule*kNChip*(kNClockPhase+1))
  {AliError("GetChipFromKey: you asked for a non existing key"); return kFALSE;}
if(key<kNModule*kNChip) return FillHistosStd(key,found,tr,clu,csize,angtrkmod);
else return FillHistosFO(key,found,tr);
return kFALSE;
}
//__________________________________________________________
Bool_t AliITSPlaneEffSPD::FillHistosFO(UInt_t key, Bool_t found, Float_t *tr) {
// this method fill the histograms for FastOr studies
// input: - key: unique key of the basic block 
//        - found: Boolean to asses whether a FastOr bit has been associated to the track or not 
//        - tr[0],tr[1] local X and Z coordinates of the track prediction, respectively
//        - tr[2],tr[3] error on local X and Z coordinates of the track prediction, respectively
// output: kTRUE if filling was succesfull kFALSE otherwise
// side effects: updating of the histograms.
  if (!fHis) {
    AliWarning("FillHistos: histograms do not exist! Call SetCreateHistos(kTRUE) first");
    return kFALSE;
  }
  if(key>=kNModule*kNChip*(kNClockPhase+1))
    {AliWarning("FillHistos: you asked for a non existing key"); return kFALSE;}
  if(key<kNModule*kNChip)
    {AliWarning("FillHistos: you asked for a key which is not for FO studies"); return kFALSE;}
  Int_t id=GetModFromKey(key);
  Int_t BCm4=GetBCm4FromKey(key);
  if(id>=kNHisto)
    {AliWarning("FillHistos: you want to fill a non-existing histos"); return kFALSE;}
  if(found) {
    fHisTrackXFOtrue[id][BCm4]->Fill(tr[0]);
    fHisTrackZFOtrue[id][BCm4]->Fill(tr[1]);
    fHisTrackXZFOtrue[id][BCm4]->Fill(tr[1],tr[0]);
  }
  else {
    fHisTrackXFOfalse[id][BCm4]->Fill(tr[0]);
    fHisTrackZFOfalse[id][BCm4]->Fill(tr[1]);
    fHisTrackXZFOfalse[id][BCm4]->Fill(tr[1],tr[0]);
  }
return kTRUE;
}
//__________________________________________________________
Bool_t AliITSPlaneEffSPD::FillHistosStd(UInt_t key, Bool_t found, 
                                     Float_t *tr, Float_t *clu, Int_t *csize, Float_t *angtrkmod) {
// this method fill the histograms
// input: - key: unique key of the basic block 
//        - found: Boolean to asses whether a cluster has been associated to the track or not 
//        - tr[0],tr[1] local X and Z coordinates of the track prediction, respectively
//        - tr[2],tr[3] error on local X and Z coordinates of the track prediction, respectively
//        - clu[0],clu[1] local X and Z coordinates of the cluster associated to the track, respectively
//        - clu[2],clu[3] error on local X and Z coordinates of the cluster associated to the track, respectively
//        - csize[0][1] cluster size in X and Z, respectively
//        - angtrkmod[0],angtrkmod[1]  
// output: kTRUE if filling was succesfull kFALSE otherwise
// side effects: updating of the histograms. 
//
  if (!fHis) {
    AliWarning("FillHistos: histograms do not exist! Call SetCreateHistos(kTRUE) first");
    return kFALSE;
  }
  if(key>=kNModule*kNChip)
    {AliWarning("FillHistos: you asked for a non existing key"); return kFALSE;}
  Int_t id=GetModFromKey(key);
  Int_t chip=GetChipFromKey(key);
  if(id>=kNHisto) 
    {AliWarning("FillHistos: you want to fill a non-existing histos"); return kFALSE;}
  if(found) {
    Float_t resx=tr[0]-clu[0];
    Float_t resz=tr[1]-clu[1];
    fHisResX[id]->Fill(resx);
    fHisResZ[id]->Fill(resz);
    fHisResXZ[id]->Fill(resx,resz);
    fHisClusterSize[id]->Fill((Double_t)csize[0],(Double_t)csize[1]);
    if(csize[0]>0 &&  csize[0]<=kNclu) fHisResXclu[id][csize[0]-1]->Fill(resx);
    if(csize[1]>0 &&  csize[1]<=kNclu) fHisResZclu[id][csize[1]-1]->Fill(resz);
    fHisResXchip[id][chip]->Fill(resx);
    fHisResZchip[id][chip]->Fill(resz);
    fProfResXvsPhi[id]->Fill(angtrkmod[0],resx);
    fProfResZvsDip[id]->Fill(angtrkmod[1],resz);
    if(csize[0]>0 &&  csize[0]<=kNclu) fProfResXvsPhiclu[id][csize[0]-1]->Fill(angtrkmod[0],resx);
    if(csize[1]>0 &&  csize[1]<=kNclu) fProfResZvsDipclu[id][csize[1]-1]->Fill(angtrkmod[1],resz);
  }
  fHisTrackErrX[id]->Fill(tr[2]);
  fHisTrackErrZ[id]->Fill(tr[3]);
  fHisClusErrX[id]->Fill(clu[2]);
  fHisClusErrZ[id]->Fill(clu[3]);
  return kTRUE;
}
//__________________________________________________________
Bool_t AliITSPlaneEffSPD::WriteHistosToFile(TString filename, Option_t* option) {
  //
  // Saves the histograms into a tree and saves the trees into a file
  //
  if (!fHis) return kFALSE;
  if (filename.IsNull() || filename.IsWhitespace()) {
     AliWarning("WriteHistosToFile: null output filename!");
     return kFALSE;
  }
  char branchname[51];
  TFile *hFile=new TFile(filename.Data(),option,
                         "The File containing the TREEs with ITS PlaneEff Histos");
  TTree *SPDTree=new TTree("SPDTree","Tree whith Residuals and Cluster Type distributions for SPD");
  TH1F *histZ,*histX;
  TH2F *histXZ;
  TH2I *histClusterType;
  TH1F *histXclu[kNclu];
  TH1F *histZclu[kNclu];
  TH1F *histXchip[kNChip];
  TH1F *histZchip[kNChip];
  TH1F *histTrErrZ,*histTrErrX;
  TH1F *histClErrZ,*histClErrX;
  TProfile *profXvsPhi,*profZvsDip;
  TProfile *profXvsPhiclu[kNclu],*profZvsDipclu[kNclu];
  TH1F *histXtrkFOtrue[kNClockPhase];
  TH1F *histZtrkFOtrue[kNClockPhase];
  TH1F *histXtrkFOfalse[kNClockPhase];
  TH1F *histZtrkFOfalse[kNClockPhase];
  TH2F *histXZtrkFOtrue[kNClockPhase];
  TH2F *histXZtrkFOfalse[kNClockPhase];

  histZ=new TH1F();
  histX=new TH1F();
  histXZ=new TH2F();
  histClusterType=new TH2I();
  for(Int_t clu=0;clu<kNclu;clu++) {
    histXclu[clu]=new TH1F();
    histZclu[clu]=new TH1F();
  }
  for(Int_t chip=0;chip<kNChip;chip++) {
    histXchip[chip]=new TH1F();
    histZchip[chip]=new TH1F();
  }

  histTrErrX=new TH1F();
  histTrErrZ=new TH1F();
  histClErrX=new TH1F();
  histClErrZ=new TH1F();
  profXvsPhi=new TProfile();
  profZvsDip=new TProfile();
  for(Int_t clu=0;clu<kNclu;clu++) {
    profXvsPhiclu[clu]=new TProfile();
    profZvsDipclu[clu]=new TProfile();
  }

  for(Int_t phas=0; phas<kNClockPhase;phas++){
    histXtrkFOtrue[phas]=new TH1F();
    histZtrkFOtrue[phas]=new TH1F();
    histXtrkFOfalse[phas]=new TH1F();
    histZtrkFOfalse[phas]=new TH1F();
    histXZtrkFOtrue[phas]=new TH2F();
    histXZtrkFOfalse[phas]=new TH2F();
  }

  SPDTree->Branch("histX","TH1F",&histX,128000,0);
  SPDTree->Branch("histZ","TH1F",&histZ,128000,0);
  SPDTree->Branch("histXZ","TH2F",&histXZ,128000,0);
  SPDTree->Branch("histClusterType","TH2I",&histClusterType,128000,0);
  for(Int_t clu=0;clu<kNclu;clu++) {
    snprintf(branchname,50,"histXclu_%d",clu+1);
    SPDTree->Branch(branchname,"TH1F",&histXclu[clu],128000,0);
    snprintf(branchname,50,"histZclu_%d",clu+1);
    SPDTree->Branch(branchname,"TH1F",&histZclu[clu],128000,0);
  }
  for(Int_t chip=0;chip<kNChip;chip++) {
    snprintf(branchname,50,"histXchip_%d",chip);
    SPDTree->Branch(branchname,"TH1F",&histXchip[chip],128000,0);
    snprintf(branchname,50,"histZchip_%d",chip);
    SPDTree->Branch(branchname,"TH1F",&histZchip[chip],128000,0);
  }
  SPDTree->Branch("histTrErrX","TH1F",&histTrErrX,128000,0);
  SPDTree->Branch("histTrErrZ","TH1F",&histTrErrZ,128000,0);
  SPDTree->Branch("histClErrX","TH1F",&histClErrX,128000,0);
  SPDTree->Branch("histClErrZ","TH1F",&histClErrZ,128000,0);
  SPDTree->Branch("profXvsPhi","TProfile",&profXvsPhi,128000,0);
  SPDTree->Branch("profZvsDip","TProfile",&profZvsDip,128000,0);
  for(Int_t clu=0;clu<kNclu;clu++) {
    snprintf(branchname,50,"profXvsPhiclu_%d",clu+1);
    SPDTree->Branch(branchname,"TProfile",&profXvsPhiclu[clu],128000,0);
    snprintf(branchname,50,"profZvsDipclu_%d",clu+1);
    SPDTree->Branch(branchname,"TProfile",&profZvsDipclu[clu],128000,0);
  }
  for(Int_t phas=0; phas<kNClockPhase;phas++){
    snprintf(branchname,50,"histTrXFOokBCmod4_%d",phas);
    SPDTree->Branch(branchname,"TH1F",&histXtrkFOtrue[phas],128000,0);
    snprintf(branchname,50,"histTrZFOokBCmod4_%d",phas);
    SPDTree->Branch(branchname,"TH1F",&histZtrkFOtrue[phas],128000,0);
    snprintf(branchname,50,"histTrXFOkoBCmod4_%d",phas);
    SPDTree->Branch(branchname,"TH1F",&histXtrkFOfalse[phas],128000,0);
    snprintf(branchname,50,"histTrZFOkoBCmod4_%d",phas);
    SPDTree->Branch(branchname,"TH1F",&histZtrkFOfalse[phas],128000,0);
    snprintf(branchname,50,"histTrXZFOokBCmod4_%d",phas);
    SPDTree->Branch(branchname,"TH2F",&histXZtrkFOtrue[phas],128000,0);
    snprintf(branchname,50,"histTrXZFOkoBCmod4_%d",phas);
    SPDTree->Branch(branchname,"TH2F",&histXZtrkFOfalse[phas],128000,0);
  }

  for(Int_t j=0;j<kNHisto;j++){
    histX=fHisResX[j];
    histZ=fHisResZ[j];
    histXZ=fHisResXZ[j];
    histClusterType=fHisClusterSize[j];
    for(Int_t clu=0;clu<kNclu;clu++) {
      histXclu[clu]=fHisResXclu[j][clu];
      histZclu[clu]=fHisResZclu[j][clu];
    }
    for(Int_t chip=0;chip<kNChip;chip++) {
      histXchip[chip]=fHisResXchip[j][chip];
      histZchip[chip]=fHisResZchip[j][chip];
    }
    histTrErrX=fHisTrackErrX[j];
    histTrErrZ=fHisTrackErrZ[j];
    histClErrX=fHisClusErrX[j];
    histClErrZ=fHisClusErrZ[j];
    profXvsPhi=fProfResXvsPhi[j];
    profZvsDip=fProfResZvsDip[j];
    for(Int_t clu=0;clu<kNclu;clu++) {
      profXvsPhiclu[clu]=fProfResXvsPhiclu[j][clu];
      profZvsDipclu[clu]=fProfResZvsDipclu[j][clu];
    }
    for(Int_t phas=0; phas<kNClockPhase;phas++){
      histXtrkFOtrue[phas]=fHisTrackXFOtrue[j][phas];
      histZtrkFOtrue[phas]=fHisTrackZFOtrue[j][phas];
      histXtrkFOfalse[phas]=fHisTrackXFOfalse[j][phas];
      histZtrkFOfalse[phas]=fHisTrackZFOfalse[j][phas];
      histXZtrkFOtrue[phas]=fHisTrackXZFOtrue[j][phas];
      histXZtrkFOfalse[phas]=fHisTrackXZFOfalse[j][phas];
    }

    SPDTree->Fill();
  }
  hFile->Write();
  hFile->Close();
return kTRUE;
}
//__________________________________________________________
Bool_t AliITSPlaneEffSPD::ReadHistosFromFile(TString filename) {
  //
  // Read histograms from an already existing file 
  //
  if (!fHis) return kFALSE;
  if (filename.IsNull() || filename.IsWhitespace()) {
     AliWarning("ReadHistosFromFile: incorrect output filename!");
     return kFALSE;
  }
  char branchname[51];

  TH1F *h  = 0;
  TH2F *h2 = 0;
  TH2I *h2i= 0;
  TProfile *p = 0;

  TFile *file=TFile::Open(filename.Data(),"READONLY");

  if (!file || file->IsZombie()) {
    AliWarning(Form("Can't open %s !",filename.Data()));
    delete file;
    return kFALSE;
  }
  TTree *tree = (TTree*) file->Get("SPDTree");

  TBranch *histX = (TBranch*) tree->GetBranch("histX");
  TBranch *histZ = (TBranch*) tree->GetBranch("histZ");
  TBranch *histXZ = (TBranch*) tree->GetBranch("histXZ");
  TBranch *histClusterType = (TBranch*) tree->GetBranch("histClusterType");
   
  TBranch *histXclu[kNclu], *histZclu[kNclu];
  for(Int_t clu=0; clu<kNclu; clu++) {
    snprintf(branchname,50,"histXclu_%d",clu+1);
    histXclu[clu]= (TBranch*) tree->GetBranch(branchname);
    snprintf(branchname,50,"histZclu_%d",clu+1);
    histZclu[clu]= (TBranch*) tree->GetBranch(branchname);
  }

  TBranch *histXchip[kNChip], *histZchip[kNChip];
  for(Int_t chip=0; chip<kNChip; chip++) {
    snprintf(branchname,50,"histXchip_%d",chip);
    histXchip[chip]= (TBranch*) tree->GetBranch(branchname);
    snprintf(branchname,50,"histZchip_%d",chip);
    histZchip[chip]= (TBranch*) tree->GetBranch(branchname);
  }

  TBranch *histTrErrX = (TBranch*) tree->GetBranch("histTrErrX");
  TBranch *histTrErrZ = (TBranch*) tree->GetBranch("histTrErrZ");
  TBranch *histClErrX = (TBranch*) tree->GetBranch("histClErrX");
  TBranch *histClErrZ = (TBranch*) tree->GetBranch("histClErrZ");
  TBranch *profXvsPhi = (TBranch*) tree->GetBranch("profXvsPhi");
  TBranch *profZvsDip = (TBranch*) tree->GetBranch("profZvsDip");

  TBranch *profXvsPhiclu[kNclu], *profZvsDipclu[kNclu];
  for(Int_t clu=0; clu<kNclu; clu++) {
    snprintf(branchname,50,"profXvsPhiclu_%d",clu+1);
    profXvsPhiclu[clu]= (TBranch*) tree->GetBranch(branchname);
    snprintf(branchname,50,"profZvsDipclu_%d",clu+1);
    profZvsDipclu[clu]= (TBranch*) tree->GetBranch(branchname);
  }

  TBranch *histXtrkFOtrue[kNClockPhase], *histZtrkFOtrue[kNClockPhase],
          *histXtrkFOfalse[kNClockPhase], *histZtrkFOfalse[kNClockPhase],
          *histXZtrkFOtrue[kNClockPhase], *histXZtrkFOfalse[kNClockPhase];
  for(Int_t phas=0; phas<kNClockPhase;phas++){
    snprintf(branchname,50,"histTrXFOokBCmod4_%d",phas);
    histXtrkFOtrue[phas] = (TBranch*) tree->GetBranch(branchname);
    snprintf(branchname,50,"histTrZFOokBCmod4_%d",phas);
    histZtrkFOtrue[phas] = (TBranch*) tree->GetBranch(branchname);
    snprintf(branchname,50,"histTrXFOkoBCmod4_%d",phas);
    histXtrkFOfalse[phas] = (TBranch*) tree->GetBranch(branchname);
    snprintf(branchname,50,"histTrZFOkoBCmod4_%d",phas);
    histZtrkFOfalse[phas] = (TBranch*) tree->GetBranch(branchname);
    snprintf(branchname,50,"histTrXZFOokBCmod4_%d",phas);
    histXZtrkFOtrue[phas] = (TBranch*) tree->GetBranch(branchname);
    snprintf(branchname,50,"histTrXZFOkoBCmod4_%d",phas);
    histXZtrkFOfalse[phas] = (TBranch*) tree->GetBranch(branchname);
  }

  gROOT->cd();

  Int_t nevent = (Int_t)histX->GetEntries();
  if(nevent!=kNHisto) 
    {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
  histX->SetAddress(&h);
  for(Int_t j=0;j<kNHisto;j++){
    histX->GetEntry(j);
    fHisResX[j]->Add(h);
  }

  nevent = (Int_t)histZ->GetEntries();
  if(nevent!=kNHisto) 
    {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
  histZ->SetAddress(&h);
  for(Int_t j=0;j<kNHisto;j++){
    histZ->GetEntry(j);
    fHisResZ[j]->Add(h);
  }

  nevent = (Int_t)histXZ->GetEntries();
  if(nevent!=kNHisto) 
    {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
  histXZ->SetAddress(&h2);
  for(Int_t j=0;j<kNHisto;j++){
    histXZ->GetEntry(j);
    fHisResXZ[j]->Add(h2);
  }

  nevent = (Int_t)histClusterType->GetEntries();
  if(nevent!=kNHisto) 
    {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
  histClusterType->SetAddress(&h2i);
  for(Int_t j=0;j<kNHisto;j++){
    histClusterType->GetEntry(j);
    fHisClusterSize[j]->Add(h2i);
  }

  for(Int_t clu=0; clu<kNclu; clu++) {

    nevent = (Int_t)histXclu[clu]->GetEntries();
    if(nevent!=kNHisto)
      {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
    histXclu[clu]->SetAddress(&h);
    for(Int_t j=0;j<kNHisto;j++){
      histXclu[clu]->GetEntry(j);
      fHisResXclu[j][clu]->Add(h);
    }

   nevent = (Int_t)histZclu[clu]->GetEntries();
    if(nevent!=kNHisto)
      {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
    histZclu[clu]->SetAddress(&h);
    for(Int_t j=0;j<kNHisto;j++){
      histZclu[clu]->GetEntry(j);
      fHisResZclu[j][clu]->Add(h);
    }
  }


    for(Int_t chip=0; chip<kNChip; chip++) {

    nevent = (Int_t)histXchip[chip]->GetEntries();
    if(nevent!=kNHisto)
      {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
    histXchip[chip]->SetAddress(&h);
    for(Int_t j=0;j<kNHisto;j++){
      histXchip[chip]->GetEntry(j);
      fHisResXchip[j][chip]->Add(h);
    }

    nevent = (Int_t)histZchip[chip]->GetEntries();
    if(nevent!=kNHisto)
      {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
    histZchip[chip]->SetAddress(&h);
    for(Int_t j=0;j<kNHisto;j++){
      histZchip[chip]->GetEntry(j);
      fHisResZchip[j][chip]->Add(h);
    }
  }

  nevent = (Int_t)histTrErrX->GetEntries(); 
  if(nevent!=kNHisto)
    {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
  histTrErrX->SetAddress(&h);
  for(Int_t j=0;j<kNHisto;j++){
    histTrErrX->GetEntry(j);
    fHisTrackErrX[j]->Add(h);
  }

  nevent = (Int_t)histTrErrZ->GetEntries();
  if(nevent!=kNHisto)
    {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
  histTrErrZ->SetAddress(&h);
  for(Int_t j=0;j<kNHisto;j++){
    histTrErrZ->GetEntry(j);
    fHisTrackErrZ[j]->Add(h);
  }

  nevent = (Int_t)histClErrX->GetEntries();
  if(nevent!=kNHisto)
    {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
  histClErrX->SetAddress(&h);
  for(Int_t j=0;j<kNHisto;j++){
    histClErrX->GetEntry(j);
    fHisClusErrX[j]->Add(h);
  }

  nevent = (Int_t)histClErrZ->GetEntries();
  if(nevent!=kNHisto)
    {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
  histClErrZ->SetAddress(&h);
  for(Int_t j=0;j<kNHisto;j++){
    histClErrZ->GetEntry(j);
    fHisClusErrZ[j]->Add(h);
  }
  nevent = (Int_t)profXvsPhi->GetEntries();
  if(nevent!=kNHisto)
    {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
  profXvsPhi->SetAddress(&p);
  for(Int_t j=0;j<kNHisto;j++){
    profXvsPhi->GetEntry(j);
    fProfResXvsPhi[j]->Add(p);
  }

  nevent = (Int_t)profZvsDip->GetEntries();
  if(nevent!=kNHisto)
    {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
  profZvsDip->SetAddress(&p);
  for(Int_t j=0;j<kNHisto;j++){ 
    profZvsDip->GetEntry(j);
    fProfResZvsDip[j]->Add(p);
  }

    for(Int_t clu=0; clu<kNclu; clu++) {

    nevent = (Int_t)profXvsPhiclu[clu]->GetEntries();
    if(nevent!=kNHisto)
      {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
    profXvsPhiclu[clu]->SetAddress(&p);
    for(Int_t j=0;j<kNHisto;j++){
      profXvsPhiclu[clu]->GetEntry(j);
      fProfResXvsPhiclu[j][clu]->Add(p);
    }

    nevent = (Int_t)profZvsDipclu[clu]->GetEntries();
    if(nevent!=kNHisto)
      {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
    profZvsDipclu[clu]->SetAddress(&p);
    for(Int_t j=0;j<kNHisto;j++){ 
      profZvsDipclu[clu]->GetEntry(j);
      fProfResZvsDipclu[j][clu]->Add(p);
    }
  }

    for(Int_t phas=0; phas<kNClockPhase;phas++){

    nevent = (Int_t)histXtrkFOtrue[phas]->GetEntries();
    if(nevent!=kNHisto)
       {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
    histXtrkFOtrue[phas]->SetAddress(&h);
    for(Int_t j=0;j<kNHisto;j++){
      histXtrkFOtrue[phas]->GetEntry(j);
      fHisTrackXFOtrue[j][phas]->Add(h);
    }

    nevent = (Int_t)histZtrkFOtrue[phas]->GetEntries();
    if(nevent!=kNHisto)
       {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
    histZtrkFOtrue[phas]->SetAddress(&h);
    for(Int_t j=0;j<kNHisto;j++){
      histZtrkFOtrue[phas]->GetEntry(j);
      fHisTrackZFOtrue[j][phas]->Add(h);
    }

    nevent = (Int_t)histXtrkFOfalse[phas]->GetEntries();
    if(nevent!=kNHisto)
       {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
    histXtrkFOfalse[phas]->SetAddress(&h);
    for(Int_t j=0;j<kNHisto;j++){
      histXtrkFOfalse[phas]->GetEntry(j);
      fHisTrackXFOfalse[j][phas]->Add(h);
    }

    nevent = (Int_t)histZtrkFOfalse[phas]->GetEntries();
    if(nevent!=kNHisto)
       {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
    histZtrkFOfalse[phas]->SetAddress(&h);
    for(Int_t j=0;j<kNHisto;j++){
      histZtrkFOfalse[phas]->GetEntry(j);
      fHisTrackZFOfalse[j][phas]->Add(h);
    }

    nevent = (Int_t)histXZtrkFOtrue[phas]->GetEntries();
    if(nevent!=kNHisto)
       {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
    histXZtrkFOtrue[phas]->SetAddress(&h2);
    for(Int_t j=0;j<kNHisto;j++){
      histXZtrkFOtrue[phas]->GetEntry(j);
      fHisTrackXZFOtrue[j][phas]->Add(h2);
    }

    nevent = (Int_t)histXZtrkFOfalse[phas]->GetEntries();
    if(nevent!=kNHisto)
       {AliWarning("ReadHistosFromFile: trying to read too many or too few histos!"); return kFALSE;}
    histXZtrkFOfalse[phas]->SetAddress(&h2);
    for(Int_t j=0;j<kNHisto;j++){
      histXZtrkFOfalse[phas]->GetEntry(j);
      fHisTrackXZFOfalse[j][phas]->Add(h2);
    }

   }

  delete h;   
  delete h2;  
  delete h2i; 
  delete p;   

  if (file) {
    file->Close();
    delete file;
  }
return kTRUE;
}

 AliITSPlaneEffSPD.cxx:1
 AliITSPlaneEffSPD.cxx:2
 AliITSPlaneEffSPD.cxx:3
 AliITSPlaneEffSPD.cxx:4
 AliITSPlaneEffSPD.cxx:5
 AliITSPlaneEffSPD.cxx:6
 AliITSPlaneEffSPD.cxx:7
 AliITSPlaneEffSPD.cxx:8
 AliITSPlaneEffSPD.cxx:9
 AliITSPlaneEffSPD.cxx:10
 AliITSPlaneEffSPD.cxx:11
 AliITSPlaneEffSPD.cxx:12
 AliITSPlaneEffSPD.cxx:13
 AliITSPlaneEffSPD.cxx:14
 AliITSPlaneEffSPD.cxx:15
 AliITSPlaneEffSPD.cxx:16
 AliITSPlaneEffSPD.cxx:17
 AliITSPlaneEffSPD.cxx:18
 AliITSPlaneEffSPD.cxx:19
 AliITSPlaneEffSPD.cxx:20
 AliITSPlaneEffSPD.cxx:21
 AliITSPlaneEffSPD.cxx:22
 AliITSPlaneEffSPD.cxx:23
 AliITSPlaneEffSPD.cxx:24
 AliITSPlaneEffSPD.cxx:25
 AliITSPlaneEffSPD.cxx:26
 AliITSPlaneEffSPD.cxx:27
 AliITSPlaneEffSPD.cxx:28
 AliITSPlaneEffSPD.cxx:29
 AliITSPlaneEffSPD.cxx:30
 AliITSPlaneEffSPD.cxx:31
 AliITSPlaneEffSPD.cxx:32
 AliITSPlaneEffSPD.cxx:33
 AliITSPlaneEffSPD.cxx:34
 AliITSPlaneEffSPD.cxx:35
 AliITSPlaneEffSPD.cxx:36
 AliITSPlaneEffSPD.cxx:37
 AliITSPlaneEffSPD.cxx:38
 AliITSPlaneEffSPD.cxx:39
 AliITSPlaneEffSPD.cxx:40
 AliITSPlaneEffSPD.cxx:41
 AliITSPlaneEffSPD.cxx:42
 AliITSPlaneEffSPD.cxx:43
 AliITSPlaneEffSPD.cxx:44
 AliITSPlaneEffSPD.cxx:45
 AliITSPlaneEffSPD.cxx:46
 AliITSPlaneEffSPD.cxx:47
 AliITSPlaneEffSPD.cxx:48
 AliITSPlaneEffSPD.cxx:49
 AliITSPlaneEffSPD.cxx:50
 AliITSPlaneEffSPD.cxx:51
 AliITSPlaneEffSPD.cxx:52
 AliITSPlaneEffSPD.cxx:53
 AliITSPlaneEffSPD.cxx:54
 AliITSPlaneEffSPD.cxx:55
 AliITSPlaneEffSPD.cxx:56
 AliITSPlaneEffSPD.cxx:57
 AliITSPlaneEffSPD.cxx:58
 AliITSPlaneEffSPD.cxx:59
 AliITSPlaneEffSPD.cxx:60
 AliITSPlaneEffSPD.cxx:61
 AliITSPlaneEffSPD.cxx:62
 AliITSPlaneEffSPD.cxx:63
 AliITSPlaneEffSPD.cxx:64
 AliITSPlaneEffSPD.cxx:65
 AliITSPlaneEffSPD.cxx:66
 AliITSPlaneEffSPD.cxx:67
 AliITSPlaneEffSPD.cxx:68
 AliITSPlaneEffSPD.cxx:69
 AliITSPlaneEffSPD.cxx:70
 AliITSPlaneEffSPD.cxx:71
 AliITSPlaneEffSPD.cxx:72
 AliITSPlaneEffSPD.cxx:73
 AliITSPlaneEffSPD.cxx:74
 AliITSPlaneEffSPD.cxx:75
 AliITSPlaneEffSPD.cxx:76
 AliITSPlaneEffSPD.cxx:77
 AliITSPlaneEffSPD.cxx:78
 AliITSPlaneEffSPD.cxx:79
 AliITSPlaneEffSPD.cxx:80
 AliITSPlaneEffSPD.cxx:81
 AliITSPlaneEffSPD.cxx:82
 AliITSPlaneEffSPD.cxx:83
 AliITSPlaneEffSPD.cxx:84
 AliITSPlaneEffSPD.cxx:85
 AliITSPlaneEffSPD.cxx:86
 AliITSPlaneEffSPD.cxx:87
 AliITSPlaneEffSPD.cxx:88
 AliITSPlaneEffSPD.cxx:89
 AliITSPlaneEffSPD.cxx:90
 AliITSPlaneEffSPD.cxx:91
 AliITSPlaneEffSPD.cxx:92
 AliITSPlaneEffSPD.cxx:93
 AliITSPlaneEffSPD.cxx:94
 AliITSPlaneEffSPD.cxx:95
 AliITSPlaneEffSPD.cxx:96
 AliITSPlaneEffSPD.cxx:97
 AliITSPlaneEffSPD.cxx:98
 AliITSPlaneEffSPD.cxx:99
 AliITSPlaneEffSPD.cxx:100
 AliITSPlaneEffSPD.cxx:101
 AliITSPlaneEffSPD.cxx:102
 AliITSPlaneEffSPD.cxx:103
 AliITSPlaneEffSPD.cxx:104
 AliITSPlaneEffSPD.cxx:105
 AliITSPlaneEffSPD.cxx:106
 AliITSPlaneEffSPD.cxx:107
 AliITSPlaneEffSPD.cxx:108
 AliITSPlaneEffSPD.cxx:109
 AliITSPlaneEffSPD.cxx:110
 AliITSPlaneEffSPD.cxx:111
 AliITSPlaneEffSPD.cxx:112
 AliITSPlaneEffSPD.cxx:113
 AliITSPlaneEffSPD.cxx:114
 AliITSPlaneEffSPD.cxx:115
 AliITSPlaneEffSPD.cxx:116
 AliITSPlaneEffSPD.cxx:117
 AliITSPlaneEffSPD.cxx:118
 AliITSPlaneEffSPD.cxx:119
 AliITSPlaneEffSPD.cxx:120
 AliITSPlaneEffSPD.cxx:121
 AliITSPlaneEffSPD.cxx:122
 AliITSPlaneEffSPD.cxx:123
 AliITSPlaneEffSPD.cxx:124
 AliITSPlaneEffSPD.cxx:125
 AliITSPlaneEffSPD.cxx:126
 AliITSPlaneEffSPD.cxx:127
 AliITSPlaneEffSPD.cxx:128
 AliITSPlaneEffSPD.cxx:129
 AliITSPlaneEffSPD.cxx:130
 AliITSPlaneEffSPD.cxx:131
 AliITSPlaneEffSPD.cxx:132
 AliITSPlaneEffSPD.cxx:133
 AliITSPlaneEffSPD.cxx:134
 AliITSPlaneEffSPD.cxx:135
 AliITSPlaneEffSPD.cxx:136
 AliITSPlaneEffSPD.cxx:137
 AliITSPlaneEffSPD.cxx:138
 AliITSPlaneEffSPD.cxx:139
 AliITSPlaneEffSPD.cxx:140
 AliITSPlaneEffSPD.cxx:141
 AliITSPlaneEffSPD.cxx:142
 AliITSPlaneEffSPD.cxx:143
 AliITSPlaneEffSPD.cxx:144
 AliITSPlaneEffSPD.cxx:145
 AliITSPlaneEffSPD.cxx:146
 AliITSPlaneEffSPD.cxx:147
 AliITSPlaneEffSPD.cxx:148
 AliITSPlaneEffSPD.cxx:149
 AliITSPlaneEffSPD.cxx:150
 AliITSPlaneEffSPD.cxx:151
 AliITSPlaneEffSPD.cxx:152
 AliITSPlaneEffSPD.cxx:153
 AliITSPlaneEffSPD.cxx:154
 AliITSPlaneEffSPD.cxx:155
 AliITSPlaneEffSPD.cxx:156
 AliITSPlaneEffSPD.cxx:157
 AliITSPlaneEffSPD.cxx:158
 AliITSPlaneEffSPD.cxx:159
 AliITSPlaneEffSPD.cxx:160
 AliITSPlaneEffSPD.cxx:161
 AliITSPlaneEffSPD.cxx:162
 AliITSPlaneEffSPD.cxx:163
 AliITSPlaneEffSPD.cxx:164
 AliITSPlaneEffSPD.cxx:165
 AliITSPlaneEffSPD.cxx:166
 AliITSPlaneEffSPD.cxx:167
 AliITSPlaneEffSPD.cxx:168
 AliITSPlaneEffSPD.cxx:169
 AliITSPlaneEffSPD.cxx:170
 AliITSPlaneEffSPD.cxx:171
 AliITSPlaneEffSPD.cxx:172
 AliITSPlaneEffSPD.cxx:173
 AliITSPlaneEffSPD.cxx:174
 AliITSPlaneEffSPD.cxx:175
 AliITSPlaneEffSPD.cxx:176
 AliITSPlaneEffSPD.cxx:177
 AliITSPlaneEffSPD.cxx:178
 AliITSPlaneEffSPD.cxx:179
 AliITSPlaneEffSPD.cxx:180
 AliITSPlaneEffSPD.cxx:181
 AliITSPlaneEffSPD.cxx:182
 AliITSPlaneEffSPD.cxx:183
 AliITSPlaneEffSPD.cxx:184
 AliITSPlaneEffSPD.cxx:185
 AliITSPlaneEffSPD.cxx:186
 AliITSPlaneEffSPD.cxx:187
 AliITSPlaneEffSPD.cxx:188
 AliITSPlaneEffSPD.cxx:189
 AliITSPlaneEffSPD.cxx:190
 AliITSPlaneEffSPD.cxx:191
 AliITSPlaneEffSPD.cxx:192
 AliITSPlaneEffSPD.cxx:193
 AliITSPlaneEffSPD.cxx:194
 AliITSPlaneEffSPD.cxx:195
 AliITSPlaneEffSPD.cxx:196
 AliITSPlaneEffSPD.cxx:197
 AliITSPlaneEffSPD.cxx:198
 AliITSPlaneEffSPD.cxx:199
 AliITSPlaneEffSPD.cxx:200
 AliITSPlaneEffSPD.cxx:201
 AliITSPlaneEffSPD.cxx:202
 AliITSPlaneEffSPD.cxx:203
 AliITSPlaneEffSPD.cxx:204
 AliITSPlaneEffSPD.cxx:205
 AliITSPlaneEffSPD.cxx:206
 AliITSPlaneEffSPD.cxx:207
 AliITSPlaneEffSPD.cxx:208
 AliITSPlaneEffSPD.cxx:209
 AliITSPlaneEffSPD.cxx:210
 AliITSPlaneEffSPD.cxx:211
 AliITSPlaneEffSPD.cxx:212
 AliITSPlaneEffSPD.cxx:213
 AliITSPlaneEffSPD.cxx:214
 AliITSPlaneEffSPD.cxx:215
 AliITSPlaneEffSPD.cxx:216
 AliITSPlaneEffSPD.cxx:217
 AliITSPlaneEffSPD.cxx:218
 AliITSPlaneEffSPD.cxx:219
 AliITSPlaneEffSPD.cxx:220
 AliITSPlaneEffSPD.cxx:221
 AliITSPlaneEffSPD.cxx:222
 AliITSPlaneEffSPD.cxx:223
 AliITSPlaneEffSPD.cxx:224
 AliITSPlaneEffSPD.cxx:225
 AliITSPlaneEffSPD.cxx:226
 AliITSPlaneEffSPD.cxx:227
 AliITSPlaneEffSPD.cxx:228
 AliITSPlaneEffSPD.cxx:229
 AliITSPlaneEffSPD.cxx:230
 AliITSPlaneEffSPD.cxx:231
 AliITSPlaneEffSPD.cxx:232
 AliITSPlaneEffSPD.cxx:233
 AliITSPlaneEffSPD.cxx:234
 AliITSPlaneEffSPD.cxx:235
 AliITSPlaneEffSPD.cxx:236
 AliITSPlaneEffSPD.cxx:237
 AliITSPlaneEffSPD.cxx:238
 AliITSPlaneEffSPD.cxx:239
 AliITSPlaneEffSPD.cxx:240
 AliITSPlaneEffSPD.cxx:241
 AliITSPlaneEffSPD.cxx:242
 AliITSPlaneEffSPD.cxx:243
 AliITSPlaneEffSPD.cxx:244
 AliITSPlaneEffSPD.cxx:245
 AliITSPlaneEffSPD.cxx:246
 AliITSPlaneEffSPD.cxx:247
 AliITSPlaneEffSPD.cxx:248
 AliITSPlaneEffSPD.cxx:249
 AliITSPlaneEffSPD.cxx:250
 AliITSPlaneEffSPD.cxx:251
 AliITSPlaneEffSPD.cxx:252
 AliITSPlaneEffSPD.cxx:253
 AliITSPlaneEffSPD.cxx:254
 AliITSPlaneEffSPD.cxx:255
 AliITSPlaneEffSPD.cxx:256
 AliITSPlaneEffSPD.cxx:257
 AliITSPlaneEffSPD.cxx:258
 AliITSPlaneEffSPD.cxx:259
 AliITSPlaneEffSPD.cxx:260
 AliITSPlaneEffSPD.cxx:261
 AliITSPlaneEffSPD.cxx:262
 AliITSPlaneEffSPD.cxx:263
 AliITSPlaneEffSPD.cxx:264
 AliITSPlaneEffSPD.cxx:265
 AliITSPlaneEffSPD.cxx:266
 AliITSPlaneEffSPD.cxx:267
 AliITSPlaneEffSPD.cxx:268
 AliITSPlaneEffSPD.cxx:269
 AliITSPlaneEffSPD.cxx:270
 AliITSPlaneEffSPD.cxx:271
 AliITSPlaneEffSPD.cxx:272
 AliITSPlaneEffSPD.cxx:273
 AliITSPlaneEffSPD.cxx:274
 AliITSPlaneEffSPD.cxx:275
 AliITSPlaneEffSPD.cxx:276
 AliITSPlaneEffSPD.cxx:277
 AliITSPlaneEffSPD.cxx:278
 AliITSPlaneEffSPD.cxx:279
 AliITSPlaneEffSPD.cxx:280
 AliITSPlaneEffSPD.cxx:281
 AliITSPlaneEffSPD.cxx:282
 AliITSPlaneEffSPD.cxx:283
 AliITSPlaneEffSPD.cxx:284
 AliITSPlaneEffSPD.cxx:285
 AliITSPlaneEffSPD.cxx:286
 AliITSPlaneEffSPD.cxx:287
 AliITSPlaneEffSPD.cxx:288
 AliITSPlaneEffSPD.cxx:289
 AliITSPlaneEffSPD.cxx:290
 AliITSPlaneEffSPD.cxx:291
 AliITSPlaneEffSPD.cxx:292
 AliITSPlaneEffSPD.cxx:293
 AliITSPlaneEffSPD.cxx:294
 AliITSPlaneEffSPD.cxx:295
 AliITSPlaneEffSPD.cxx:296
 AliITSPlaneEffSPD.cxx:297
 AliITSPlaneEffSPD.cxx:298
 AliITSPlaneEffSPD.cxx:299
 AliITSPlaneEffSPD.cxx:300
 AliITSPlaneEffSPD.cxx:301
 AliITSPlaneEffSPD.cxx:302
 AliITSPlaneEffSPD.cxx:303
 AliITSPlaneEffSPD.cxx:304
 AliITSPlaneEffSPD.cxx:305
 AliITSPlaneEffSPD.cxx:306
 AliITSPlaneEffSPD.cxx:307
 AliITSPlaneEffSPD.cxx:308
 AliITSPlaneEffSPD.cxx:309
 AliITSPlaneEffSPD.cxx:310
 AliITSPlaneEffSPD.cxx:311
 AliITSPlaneEffSPD.cxx:312
 AliITSPlaneEffSPD.cxx:313
 AliITSPlaneEffSPD.cxx:314
 AliITSPlaneEffSPD.cxx:315
 AliITSPlaneEffSPD.cxx:316
 AliITSPlaneEffSPD.cxx:317
 AliITSPlaneEffSPD.cxx:318
 AliITSPlaneEffSPD.cxx:319
 AliITSPlaneEffSPD.cxx:320
 AliITSPlaneEffSPD.cxx:321
 AliITSPlaneEffSPD.cxx:322
 AliITSPlaneEffSPD.cxx:323
 AliITSPlaneEffSPD.cxx:324
 AliITSPlaneEffSPD.cxx:325
 AliITSPlaneEffSPD.cxx:326
 AliITSPlaneEffSPD.cxx:327
 AliITSPlaneEffSPD.cxx:328
 AliITSPlaneEffSPD.cxx:329
 AliITSPlaneEffSPD.cxx:330
 AliITSPlaneEffSPD.cxx:331
 AliITSPlaneEffSPD.cxx:332
 AliITSPlaneEffSPD.cxx:333
 AliITSPlaneEffSPD.cxx:334
 AliITSPlaneEffSPD.cxx:335
 AliITSPlaneEffSPD.cxx:336
 AliITSPlaneEffSPD.cxx:337
 AliITSPlaneEffSPD.cxx:338
 AliITSPlaneEffSPD.cxx:339
 AliITSPlaneEffSPD.cxx:340
 AliITSPlaneEffSPD.cxx:341
 AliITSPlaneEffSPD.cxx:342
 AliITSPlaneEffSPD.cxx:343
 AliITSPlaneEffSPD.cxx:344
 AliITSPlaneEffSPD.cxx:345
 AliITSPlaneEffSPD.cxx:346
 AliITSPlaneEffSPD.cxx:347
 AliITSPlaneEffSPD.cxx:348
 AliITSPlaneEffSPD.cxx:349
 AliITSPlaneEffSPD.cxx:350
 AliITSPlaneEffSPD.cxx:351
 AliITSPlaneEffSPD.cxx:352
 AliITSPlaneEffSPD.cxx:353
 AliITSPlaneEffSPD.cxx:354
 AliITSPlaneEffSPD.cxx:355
 AliITSPlaneEffSPD.cxx:356
 AliITSPlaneEffSPD.cxx:357
 AliITSPlaneEffSPD.cxx:358
 AliITSPlaneEffSPD.cxx:359
 AliITSPlaneEffSPD.cxx:360
 AliITSPlaneEffSPD.cxx:361
 AliITSPlaneEffSPD.cxx:362
 AliITSPlaneEffSPD.cxx:363
 AliITSPlaneEffSPD.cxx:364
 AliITSPlaneEffSPD.cxx:365
 AliITSPlaneEffSPD.cxx:366
 AliITSPlaneEffSPD.cxx:367
 AliITSPlaneEffSPD.cxx:368
 AliITSPlaneEffSPD.cxx:369
 AliITSPlaneEffSPD.cxx:370
 AliITSPlaneEffSPD.cxx:371
 AliITSPlaneEffSPD.cxx:372
 AliITSPlaneEffSPD.cxx:373
 AliITSPlaneEffSPD.cxx:374
 AliITSPlaneEffSPD.cxx:375
 AliITSPlaneEffSPD.cxx:376
 AliITSPlaneEffSPD.cxx:377
 AliITSPlaneEffSPD.cxx:378
 AliITSPlaneEffSPD.cxx:379
 AliITSPlaneEffSPD.cxx:380
 AliITSPlaneEffSPD.cxx:381
 AliITSPlaneEffSPD.cxx:382
 AliITSPlaneEffSPD.cxx:383
 AliITSPlaneEffSPD.cxx:384
 AliITSPlaneEffSPD.cxx:385
 AliITSPlaneEffSPD.cxx:386
 AliITSPlaneEffSPD.cxx:387
 AliITSPlaneEffSPD.cxx:388
 AliITSPlaneEffSPD.cxx:389
 AliITSPlaneEffSPD.cxx:390
 AliITSPlaneEffSPD.cxx:391
 AliITSPlaneEffSPD.cxx:392
 AliITSPlaneEffSPD.cxx:393
 AliITSPlaneEffSPD.cxx:394
 AliITSPlaneEffSPD.cxx:395
 AliITSPlaneEffSPD.cxx:396
 AliITSPlaneEffSPD.cxx:397
 AliITSPlaneEffSPD.cxx:398
 AliITSPlaneEffSPD.cxx:399
 AliITSPlaneEffSPD.cxx:400
 AliITSPlaneEffSPD.cxx:401
 AliITSPlaneEffSPD.cxx:402
 AliITSPlaneEffSPD.cxx:403
 AliITSPlaneEffSPD.cxx:404
 AliITSPlaneEffSPD.cxx:405
 AliITSPlaneEffSPD.cxx:406
 AliITSPlaneEffSPD.cxx:407
 AliITSPlaneEffSPD.cxx:408
 AliITSPlaneEffSPD.cxx:409
 AliITSPlaneEffSPD.cxx:410
 AliITSPlaneEffSPD.cxx:411
 AliITSPlaneEffSPD.cxx:412
 AliITSPlaneEffSPD.cxx:413
 AliITSPlaneEffSPD.cxx:414
 AliITSPlaneEffSPD.cxx:415
 AliITSPlaneEffSPD.cxx:416
 AliITSPlaneEffSPD.cxx:417
 AliITSPlaneEffSPD.cxx:418
 AliITSPlaneEffSPD.cxx:419
 AliITSPlaneEffSPD.cxx:420
 AliITSPlaneEffSPD.cxx:421
 AliITSPlaneEffSPD.cxx:422
 AliITSPlaneEffSPD.cxx:423
 AliITSPlaneEffSPD.cxx:424
 AliITSPlaneEffSPD.cxx:425
 AliITSPlaneEffSPD.cxx:426
 AliITSPlaneEffSPD.cxx:427
 AliITSPlaneEffSPD.cxx:428
 AliITSPlaneEffSPD.cxx:429
 AliITSPlaneEffSPD.cxx:430
 AliITSPlaneEffSPD.cxx:431
 AliITSPlaneEffSPD.cxx:432
 AliITSPlaneEffSPD.cxx:433
 AliITSPlaneEffSPD.cxx:434
 AliITSPlaneEffSPD.cxx:435
 AliITSPlaneEffSPD.cxx:436
 AliITSPlaneEffSPD.cxx:437
 AliITSPlaneEffSPD.cxx:438
 AliITSPlaneEffSPD.cxx:439
 AliITSPlaneEffSPD.cxx:440
 AliITSPlaneEffSPD.cxx:441
 AliITSPlaneEffSPD.cxx:442
 AliITSPlaneEffSPD.cxx:443
 AliITSPlaneEffSPD.cxx:444
 AliITSPlaneEffSPD.cxx:445
 AliITSPlaneEffSPD.cxx:446
 AliITSPlaneEffSPD.cxx:447
 AliITSPlaneEffSPD.cxx:448
 AliITSPlaneEffSPD.cxx:449
 AliITSPlaneEffSPD.cxx:450
 AliITSPlaneEffSPD.cxx:451
 AliITSPlaneEffSPD.cxx:452
 AliITSPlaneEffSPD.cxx:453
 AliITSPlaneEffSPD.cxx:454
 AliITSPlaneEffSPD.cxx:455
 AliITSPlaneEffSPD.cxx:456
 AliITSPlaneEffSPD.cxx:457
 AliITSPlaneEffSPD.cxx:458
 AliITSPlaneEffSPD.cxx:459
 AliITSPlaneEffSPD.cxx:460
 AliITSPlaneEffSPD.cxx:461
 AliITSPlaneEffSPD.cxx:462
 AliITSPlaneEffSPD.cxx:463
 AliITSPlaneEffSPD.cxx:464
 AliITSPlaneEffSPD.cxx:465
 AliITSPlaneEffSPD.cxx:466
 AliITSPlaneEffSPD.cxx:467
 AliITSPlaneEffSPD.cxx:468
 AliITSPlaneEffSPD.cxx:469
 AliITSPlaneEffSPD.cxx:470
 AliITSPlaneEffSPD.cxx:471
 AliITSPlaneEffSPD.cxx:472
 AliITSPlaneEffSPD.cxx:473
 AliITSPlaneEffSPD.cxx:474
 AliITSPlaneEffSPD.cxx:475
 AliITSPlaneEffSPD.cxx:476
 AliITSPlaneEffSPD.cxx:477
 AliITSPlaneEffSPD.cxx:478
 AliITSPlaneEffSPD.cxx:479
 AliITSPlaneEffSPD.cxx:480
 AliITSPlaneEffSPD.cxx:481
 AliITSPlaneEffSPD.cxx:482
 AliITSPlaneEffSPD.cxx:483
 AliITSPlaneEffSPD.cxx:484
 AliITSPlaneEffSPD.cxx:485
 AliITSPlaneEffSPD.cxx:486
 AliITSPlaneEffSPD.cxx:487
 AliITSPlaneEffSPD.cxx:488
 AliITSPlaneEffSPD.cxx:489
 AliITSPlaneEffSPD.cxx:490
 AliITSPlaneEffSPD.cxx:491
 AliITSPlaneEffSPD.cxx:492
 AliITSPlaneEffSPD.cxx:493
 AliITSPlaneEffSPD.cxx:494
 AliITSPlaneEffSPD.cxx:495
 AliITSPlaneEffSPD.cxx:496
 AliITSPlaneEffSPD.cxx:497
 AliITSPlaneEffSPD.cxx:498
 AliITSPlaneEffSPD.cxx:499
 AliITSPlaneEffSPD.cxx:500
 AliITSPlaneEffSPD.cxx:501
 AliITSPlaneEffSPD.cxx:502
 AliITSPlaneEffSPD.cxx:503
 AliITSPlaneEffSPD.cxx:504
 AliITSPlaneEffSPD.cxx:505
 AliITSPlaneEffSPD.cxx:506
 AliITSPlaneEffSPD.cxx:507
 AliITSPlaneEffSPD.cxx:508
 AliITSPlaneEffSPD.cxx:509
 AliITSPlaneEffSPD.cxx:510
 AliITSPlaneEffSPD.cxx:511
 AliITSPlaneEffSPD.cxx:512
 AliITSPlaneEffSPD.cxx:513
 AliITSPlaneEffSPD.cxx:514
 AliITSPlaneEffSPD.cxx:515
 AliITSPlaneEffSPD.cxx:516
 AliITSPlaneEffSPD.cxx:517
 AliITSPlaneEffSPD.cxx:518
 AliITSPlaneEffSPD.cxx:519
 AliITSPlaneEffSPD.cxx:520
 AliITSPlaneEffSPD.cxx:521
 AliITSPlaneEffSPD.cxx:522
 AliITSPlaneEffSPD.cxx:523
 AliITSPlaneEffSPD.cxx:524
 AliITSPlaneEffSPD.cxx:525
 AliITSPlaneEffSPD.cxx:526
 AliITSPlaneEffSPD.cxx:527
 AliITSPlaneEffSPD.cxx:528
 AliITSPlaneEffSPD.cxx:529
 AliITSPlaneEffSPD.cxx:530
 AliITSPlaneEffSPD.cxx:531
 AliITSPlaneEffSPD.cxx:532
 AliITSPlaneEffSPD.cxx:533
 AliITSPlaneEffSPD.cxx:534
 AliITSPlaneEffSPD.cxx:535
 AliITSPlaneEffSPD.cxx:536
 AliITSPlaneEffSPD.cxx:537
 AliITSPlaneEffSPD.cxx:538
 AliITSPlaneEffSPD.cxx:539
 AliITSPlaneEffSPD.cxx:540
 AliITSPlaneEffSPD.cxx:541
 AliITSPlaneEffSPD.cxx:542
 AliITSPlaneEffSPD.cxx:543
 AliITSPlaneEffSPD.cxx:544
 AliITSPlaneEffSPD.cxx:545
 AliITSPlaneEffSPD.cxx:546
 AliITSPlaneEffSPD.cxx:547
 AliITSPlaneEffSPD.cxx:548
 AliITSPlaneEffSPD.cxx:549
 AliITSPlaneEffSPD.cxx:550
 AliITSPlaneEffSPD.cxx:551
 AliITSPlaneEffSPD.cxx:552
 AliITSPlaneEffSPD.cxx:553
 AliITSPlaneEffSPD.cxx:554
 AliITSPlaneEffSPD.cxx:555
 AliITSPlaneEffSPD.cxx:556
 AliITSPlaneEffSPD.cxx:557
 AliITSPlaneEffSPD.cxx:558
 AliITSPlaneEffSPD.cxx:559
 AliITSPlaneEffSPD.cxx:560
 AliITSPlaneEffSPD.cxx:561
 AliITSPlaneEffSPD.cxx:562
 AliITSPlaneEffSPD.cxx:563
 AliITSPlaneEffSPD.cxx:564
 AliITSPlaneEffSPD.cxx:565
 AliITSPlaneEffSPD.cxx:566
 AliITSPlaneEffSPD.cxx:567
 AliITSPlaneEffSPD.cxx:568
 AliITSPlaneEffSPD.cxx:569
 AliITSPlaneEffSPD.cxx:570
 AliITSPlaneEffSPD.cxx:571
 AliITSPlaneEffSPD.cxx:572
 AliITSPlaneEffSPD.cxx:573
 AliITSPlaneEffSPD.cxx:574
 AliITSPlaneEffSPD.cxx:575
 AliITSPlaneEffSPD.cxx:576
 AliITSPlaneEffSPD.cxx:577
 AliITSPlaneEffSPD.cxx:578
 AliITSPlaneEffSPD.cxx:579
 AliITSPlaneEffSPD.cxx:580
 AliITSPlaneEffSPD.cxx:581
 AliITSPlaneEffSPD.cxx:582
 AliITSPlaneEffSPD.cxx:583
 AliITSPlaneEffSPD.cxx:584
 AliITSPlaneEffSPD.cxx:585
 AliITSPlaneEffSPD.cxx:586
 AliITSPlaneEffSPD.cxx:587
 AliITSPlaneEffSPD.cxx:588
 AliITSPlaneEffSPD.cxx:589
 AliITSPlaneEffSPD.cxx:590
 AliITSPlaneEffSPD.cxx:591
 AliITSPlaneEffSPD.cxx:592
 AliITSPlaneEffSPD.cxx:593
 AliITSPlaneEffSPD.cxx:594
 AliITSPlaneEffSPD.cxx:595
 AliITSPlaneEffSPD.cxx:596
 AliITSPlaneEffSPD.cxx:597
 AliITSPlaneEffSPD.cxx:598
 AliITSPlaneEffSPD.cxx:599
 AliITSPlaneEffSPD.cxx:600
 AliITSPlaneEffSPD.cxx:601
 AliITSPlaneEffSPD.cxx:602
 AliITSPlaneEffSPD.cxx:603
 AliITSPlaneEffSPD.cxx:604
 AliITSPlaneEffSPD.cxx:605
 AliITSPlaneEffSPD.cxx:606
 AliITSPlaneEffSPD.cxx:607
 AliITSPlaneEffSPD.cxx:608
 AliITSPlaneEffSPD.cxx:609
 AliITSPlaneEffSPD.cxx:610
 AliITSPlaneEffSPD.cxx:611
 AliITSPlaneEffSPD.cxx:612
 AliITSPlaneEffSPD.cxx:613
 AliITSPlaneEffSPD.cxx:614
 AliITSPlaneEffSPD.cxx:615
 AliITSPlaneEffSPD.cxx:616
 AliITSPlaneEffSPD.cxx:617
 AliITSPlaneEffSPD.cxx:618
 AliITSPlaneEffSPD.cxx:619
 AliITSPlaneEffSPD.cxx:620
 AliITSPlaneEffSPD.cxx:621
 AliITSPlaneEffSPD.cxx:622
 AliITSPlaneEffSPD.cxx:623
 AliITSPlaneEffSPD.cxx:624
 AliITSPlaneEffSPD.cxx:625
 AliITSPlaneEffSPD.cxx:626
 AliITSPlaneEffSPD.cxx:627
 AliITSPlaneEffSPD.cxx:628
 AliITSPlaneEffSPD.cxx:629
 AliITSPlaneEffSPD.cxx:630
 AliITSPlaneEffSPD.cxx:631
 AliITSPlaneEffSPD.cxx:632
 AliITSPlaneEffSPD.cxx:633
 AliITSPlaneEffSPD.cxx:634
 AliITSPlaneEffSPD.cxx:635
 AliITSPlaneEffSPD.cxx:636
 AliITSPlaneEffSPD.cxx:637
 AliITSPlaneEffSPD.cxx:638
 AliITSPlaneEffSPD.cxx:639
 AliITSPlaneEffSPD.cxx:640
 AliITSPlaneEffSPD.cxx:641
 AliITSPlaneEffSPD.cxx:642
 AliITSPlaneEffSPD.cxx:643
 AliITSPlaneEffSPD.cxx:644
 AliITSPlaneEffSPD.cxx:645
 AliITSPlaneEffSPD.cxx:646
 AliITSPlaneEffSPD.cxx:647
 AliITSPlaneEffSPD.cxx:648
 AliITSPlaneEffSPD.cxx:649
 AliITSPlaneEffSPD.cxx:650
 AliITSPlaneEffSPD.cxx:651
 AliITSPlaneEffSPD.cxx:652
 AliITSPlaneEffSPD.cxx:653
 AliITSPlaneEffSPD.cxx:654
 AliITSPlaneEffSPD.cxx:655
 AliITSPlaneEffSPD.cxx:656
 AliITSPlaneEffSPD.cxx:657
 AliITSPlaneEffSPD.cxx:658
 AliITSPlaneEffSPD.cxx:659
 AliITSPlaneEffSPD.cxx:660
 AliITSPlaneEffSPD.cxx:661
 AliITSPlaneEffSPD.cxx:662
 AliITSPlaneEffSPD.cxx:663
 AliITSPlaneEffSPD.cxx:664
 AliITSPlaneEffSPD.cxx:665
 AliITSPlaneEffSPD.cxx:666
 AliITSPlaneEffSPD.cxx:667
 AliITSPlaneEffSPD.cxx:668
 AliITSPlaneEffSPD.cxx:669
 AliITSPlaneEffSPD.cxx:670
 AliITSPlaneEffSPD.cxx:671
 AliITSPlaneEffSPD.cxx:672
 AliITSPlaneEffSPD.cxx:673
 AliITSPlaneEffSPD.cxx:674
 AliITSPlaneEffSPD.cxx:675
 AliITSPlaneEffSPD.cxx:676
 AliITSPlaneEffSPD.cxx:677
 AliITSPlaneEffSPD.cxx:678
 AliITSPlaneEffSPD.cxx:679
 AliITSPlaneEffSPD.cxx:680
 AliITSPlaneEffSPD.cxx:681
 AliITSPlaneEffSPD.cxx:682
 AliITSPlaneEffSPD.cxx:683
 AliITSPlaneEffSPD.cxx:684
 AliITSPlaneEffSPD.cxx:685
 AliITSPlaneEffSPD.cxx:686
 AliITSPlaneEffSPD.cxx:687
 AliITSPlaneEffSPD.cxx:688
 AliITSPlaneEffSPD.cxx:689
 AliITSPlaneEffSPD.cxx:690
 AliITSPlaneEffSPD.cxx:691
 AliITSPlaneEffSPD.cxx:692
 AliITSPlaneEffSPD.cxx:693
 AliITSPlaneEffSPD.cxx:694
 AliITSPlaneEffSPD.cxx:695
 AliITSPlaneEffSPD.cxx:696
 AliITSPlaneEffSPD.cxx:697
 AliITSPlaneEffSPD.cxx:698
 AliITSPlaneEffSPD.cxx:699
 AliITSPlaneEffSPD.cxx:700
 AliITSPlaneEffSPD.cxx:701
 AliITSPlaneEffSPD.cxx:702
 AliITSPlaneEffSPD.cxx:703
 AliITSPlaneEffSPD.cxx:704
 AliITSPlaneEffSPD.cxx:705
 AliITSPlaneEffSPD.cxx:706
 AliITSPlaneEffSPD.cxx:707
 AliITSPlaneEffSPD.cxx:708
 AliITSPlaneEffSPD.cxx:709
 AliITSPlaneEffSPD.cxx:710
 AliITSPlaneEffSPD.cxx:711
 AliITSPlaneEffSPD.cxx:712
 AliITSPlaneEffSPD.cxx:713
 AliITSPlaneEffSPD.cxx:714
 AliITSPlaneEffSPD.cxx:715
 AliITSPlaneEffSPD.cxx:716
 AliITSPlaneEffSPD.cxx:717
 AliITSPlaneEffSPD.cxx:718
 AliITSPlaneEffSPD.cxx:719
 AliITSPlaneEffSPD.cxx:720
 AliITSPlaneEffSPD.cxx:721
 AliITSPlaneEffSPD.cxx:722
 AliITSPlaneEffSPD.cxx:723
 AliITSPlaneEffSPD.cxx:724
 AliITSPlaneEffSPD.cxx:725
 AliITSPlaneEffSPD.cxx:726
 AliITSPlaneEffSPD.cxx:727
 AliITSPlaneEffSPD.cxx:728
 AliITSPlaneEffSPD.cxx:729
 AliITSPlaneEffSPD.cxx:730
 AliITSPlaneEffSPD.cxx:731
 AliITSPlaneEffSPD.cxx:732
 AliITSPlaneEffSPD.cxx:733
 AliITSPlaneEffSPD.cxx:734
 AliITSPlaneEffSPD.cxx:735
 AliITSPlaneEffSPD.cxx:736
 AliITSPlaneEffSPD.cxx:737
 AliITSPlaneEffSPD.cxx:738
 AliITSPlaneEffSPD.cxx:739
 AliITSPlaneEffSPD.cxx:740
 AliITSPlaneEffSPD.cxx:741
 AliITSPlaneEffSPD.cxx:742
 AliITSPlaneEffSPD.cxx:743
 AliITSPlaneEffSPD.cxx:744
 AliITSPlaneEffSPD.cxx:745
 AliITSPlaneEffSPD.cxx:746
 AliITSPlaneEffSPD.cxx:747
 AliITSPlaneEffSPD.cxx:748
 AliITSPlaneEffSPD.cxx:749
 AliITSPlaneEffSPD.cxx:750
 AliITSPlaneEffSPD.cxx:751
 AliITSPlaneEffSPD.cxx:752
 AliITSPlaneEffSPD.cxx:753
 AliITSPlaneEffSPD.cxx:754
 AliITSPlaneEffSPD.cxx:755
 AliITSPlaneEffSPD.cxx:756
 AliITSPlaneEffSPD.cxx:757
 AliITSPlaneEffSPD.cxx:758
 AliITSPlaneEffSPD.cxx:759
 AliITSPlaneEffSPD.cxx:760
 AliITSPlaneEffSPD.cxx:761
 AliITSPlaneEffSPD.cxx:762
 AliITSPlaneEffSPD.cxx:763
 AliITSPlaneEffSPD.cxx:764
 AliITSPlaneEffSPD.cxx:765
 AliITSPlaneEffSPD.cxx:766
 AliITSPlaneEffSPD.cxx:767
 AliITSPlaneEffSPD.cxx:768
 AliITSPlaneEffSPD.cxx:769
 AliITSPlaneEffSPD.cxx:770
 AliITSPlaneEffSPD.cxx:771
 AliITSPlaneEffSPD.cxx:772
 AliITSPlaneEffSPD.cxx:773
 AliITSPlaneEffSPD.cxx:774
 AliITSPlaneEffSPD.cxx:775
 AliITSPlaneEffSPD.cxx:776
 AliITSPlaneEffSPD.cxx:777
 AliITSPlaneEffSPD.cxx:778
 AliITSPlaneEffSPD.cxx:779
 AliITSPlaneEffSPD.cxx:780
 AliITSPlaneEffSPD.cxx:781
 AliITSPlaneEffSPD.cxx:782
 AliITSPlaneEffSPD.cxx:783
 AliITSPlaneEffSPD.cxx:784
 AliITSPlaneEffSPD.cxx:785
 AliITSPlaneEffSPD.cxx:786
 AliITSPlaneEffSPD.cxx:787
 AliITSPlaneEffSPD.cxx:788
 AliITSPlaneEffSPD.cxx:789
 AliITSPlaneEffSPD.cxx:790
 AliITSPlaneEffSPD.cxx:791
 AliITSPlaneEffSPD.cxx:792
 AliITSPlaneEffSPD.cxx:793
 AliITSPlaneEffSPD.cxx:794
 AliITSPlaneEffSPD.cxx:795
 AliITSPlaneEffSPD.cxx:796
 AliITSPlaneEffSPD.cxx:797
 AliITSPlaneEffSPD.cxx:798
 AliITSPlaneEffSPD.cxx:799
 AliITSPlaneEffSPD.cxx:800
 AliITSPlaneEffSPD.cxx:801
 AliITSPlaneEffSPD.cxx:802
 AliITSPlaneEffSPD.cxx:803
 AliITSPlaneEffSPD.cxx:804
 AliITSPlaneEffSPD.cxx:805
 AliITSPlaneEffSPD.cxx:806
 AliITSPlaneEffSPD.cxx:807
 AliITSPlaneEffSPD.cxx:808
 AliITSPlaneEffSPD.cxx:809
 AliITSPlaneEffSPD.cxx:810
 AliITSPlaneEffSPD.cxx:811
 AliITSPlaneEffSPD.cxx:812
 AliITSPlaneEffSPD.cxx:813
 AliITSPlaneEffSPD.cxx:814
 AliITSPlaneEffSPD.cxx:815
 AliITSPlaneEffSPD.cxx:816
 AliITSPlaneEffSPD.cxx:817
 AliITSPlaneEffSPD.cxx:818
 AliITSPlaneEffSPD.cxx:819
 AliITSPlaneEffSPD.cxx:820
 AliITSPlaneEffSPD.cxx:821
 AliITSPlaneEffSPD.cxx:822
 AliITSPlaneEffSPD.cxx:823
 AliITSPlaneEffSPD.cxx:824
 AliITSPlaneEffSPD.cxx:825
 AliITSPlaneEffSPD.cxx:826
 AliITSPlaneEffSPD.cxx:827
 AliITSPlaneEffSPD.cxx:828
 AliITSPlaneEffSPD.cxx:829
 AliITSPlaneEffSPD.cxx:830
 AliITSPlaneEffSPD.cxx:831
 AliITSPlaneEffSPD.cxx:832
 AliITSPlaneEffSPD.cxx:833
 AliITSPlaneEffSPD.cxx:834
 AliITSPlaneEffSPD.cxx:835
 AliITSPlaneEffSPD.cxx:836
 AliITSPlaneEffSPD.cxx:837
 AliITSPlaneEffSPD.cxx:838
 AliITSPlaneEffSPD.cxx:839
 AliITSPlaneEffSPD.cxx:840
 AliITSPlaneEffSPD.cxx:841
 AliITSPlaneEffSPD.cxx:842
 AliITSPlaneEffSPD.cxx:843
 AliITSPlaneEffSPD.cxx:844
 AliITSPlaneEffSPD.cxx:845
 AliITSPlaneEffSPD.cxx:846
 AliITSPlaneEffSPD.cxx:847
 AliITSPlaneEffSPD.cxx:848
 AliITSPlaneEffSPD.cxx:849
 AliITSPlaneEffSPD.cxx:850
 AliITSPlaneEffSPD.cxx:851
 AliITSPlaneEffSPD.cxx:852
 AliITSPlaneEffSPD.cxx:853
 AliITSPlaneEffSPD.cxx:854
 AliITSPlaneEffSPD.cxx:855
 AliITSPlaneEffSPD.cxx:856
 AliITSPlaneEffSPD.cxx:857
 AliITSPlaneEffSPD.cxx:858
 AliITSPlaneEffSPD.cxx:859
 AliITSPlaneEffSPD.cxx:860
 AliITSPlaneEffSPD.cxx:861
 AliITSPlaneEffSPD.cxx:862
 AliITSPlaneEffSPD.cxx:863
 AliITSPlaneEffSPD.cxx:864
 AliITSPlaneEffSPD.cxx:865
 AliITSPlaneEffSPD.cxx:866
 AliITSPlaneEffSPD.cxx:867
 AliITSPlaneEffSPD.cxx:868
 AliITSPlaneEffSPD.cxx:869
 AliITSPlaneEffSPD.cxx:870
 AliITSPlaneEffSPD.cxx:871
 AliITSPlaneEffSPD.cxx:872
 AliITSPlaneEffSPD.cxx:873
 AliITSPlaneEffSPD.cxx:874
 AliITSPlaneEffSPD.cxx:875
 AliITSPlaneEffSPD.cxx:876
 AliITSPlaneEffSPD.cxx:877
 AliITSPlaneEffSPD.cxx:878
 AliITSPlaneEffSPD.cxx:879
 AliITSPlaneEffSPD.cxx:880
 AliITSPlaneEffSPD.cxx:881
 AliITSPlaneEffSPD.cxx:882
 AliITSPlaneEffSPD.cxx:883
 AliITSPlaneEffSPD.cxx:884
 AliITSPlaneEffSPD.cxx:885
 AliITSPlaneEffSPD.cxx:886
 AliITSPlaneEffSPD.cxx:887
 AliITSPlaneEffSPD.cxx:888
 AliITSPlaneEffSPD.cxx:889
 AliITSPlaneEffSPD.cxx:890
 AliITSPlaneEffSPD.cxx:891
 AliITSPlaneEffSPD.cxx:892
 AliITSPlaneEffSPD.cxx:893
 AliITSPlaneEffSPD.cxx:894
 AliITSPlaneEffSPD.cxx:895
 AliITSPlaneEffSPD.cxx:896
 AliITSPlaneEffSPD.cxx:897
 AliITSPlaneEffSPD.cxx:898
 AliITSPlaneEffSPD.cxx:899
 AliITSPlaneEffSPD.cxx:900
 AliITSPlaneEffSPD.cxx:901
 AliITSPlaneEffSPD.cxx:902
 AliITSPlaneEffSPD.cxx:903
 AliITSPlaneEffSPD.cxx:904
 AliITSPlaneEffSPD.cxx:905
 AliITSPlaneEffSPD.cxx:906
 AliITSPlaneEffSPD.cxx:907
 AliITSPlaneEffSPD.cxx:908
 AliITSPlaneEffSPD.cxx:909
 AliITSPlaneEffSPD.cxx:910
 AliITSPlaneEffSPD.cxx:911
 AliITSPlaneEffSPD.cxx:912
 AliITSPlaneEffSPD.cxx:913
 AliITSPlaneEffSPD.cxx:914
 AliITSPlaneEffSPD.cxx:915
 AliITSPlaneEffSPD.cxx:916
 AliITSPlaneEffSPD.cxx:917
 AliITSPlaneEffSPD.cxx:918
 AliITSPlaneEffSPD.cxx:919
 AliITSPlaneEffSPD.cxx:920
 AliITSPlaneEffSPD.cxx:921
 AliITSPlaneEffSPD.cxx:922
 AliITSPlaneEffSPD.cxx:923
 AliITSPlaneEffSPD.cxx:924
 AliITSPlaneEffSPD.cxx:925
 AliITSPlaneEffSPD.cxx:926
 AliITSPlaneEffSPD.cxx:927
 AliITSPlaneEffSPD.cxx:928
 AliITSPlaneEffSPD.cxx:929
 AliITSPlaneEffSPD.cxx:930
 AliITSPlaneEffSPD.cxx:931
 AliITSPlaneEffSPD.cxx:932
 AliITSPlaneEffSPD.cxx:933
 AliITSPlaneEffSPD.cxx:934
 AliITSPlaneEffSPD.cxx:935
 AliITSPlaneEffSPD.cxx:936
 AliITSPlaneEffSPD.cxx:937
 AliITSPlaneEffSPD.cxx:938
 AliITSPlaneEffSPD.cxx:939
 AliITSPlaneEffSPD.cxx:940
 AliITSPlaneEffSPD.cxx:941
 AliITSPlaneEffSPD.cxx:942
 AliITSPlaneEffSPD.cxx:943
 AliITSPlaneEffSPD.cxx:944
 AliITSPlaneEffSPD.cxx:945
 AliITSPlaneEffSPD.cxx:946
 AliITSPlaneEffSPD.cxx:947
 AliITSPlaneEffSPD.cxx:948
 AliITSPlaneEffSPD.cxx:949
 AliITSPlaneEffSPD.cxx:950
 AliITSPlaneEffSPD.cxx:951
 AliITSPlaneEffSPD.cxx:952
 AliITSPlaneEffSPD.cxx:953
 AliITSPlaneEffSPD.cxx:954
 AliITSPlaneEffSPD.cxx:955
 AliITSPlaneEffSPD.cxx:956
 AliITSPlaneEffSPD.cxx:957
 AliITSPlaneEffSPD.cxx:958
 AliITSPlaneEffSPD.cxx:959
 AliITSPlaneEffSPD.cxx:960
 AliITSPlaneEffSPD.cxx:961
 AliITSPlaneEffSPD.cxx:962
 AliITSPlaneEffSPD.cxx:963
 AliITSPlaneEffSPD.cxx:964
 AliITSPlaneEffSPD.cxx:965
 AliITSPlaneEffSPD.cxx:966
 AliITSPlaneEffSPD.cxx:967
 AliITSPlaneEffSPD.cxx:968
 AliITSPlaneEffSPD.cxx:969
 AliITSPlaneEffSPD.cxx:970
 AliITSPlaneEffSPD.cxx:971
 AliITSPlaneEffSPD.cxx:972
 AliITSPlaneEffSPD.cxx:973
 AliITSPlaneEffSPD.cxx:974
 AliITSPlaneEffSPD.cxx:975
 AliITSPlaneEffSPD.cxx:976
 AliITSPlaneEffSPD.cxx:977
 AliITSPlaneEffSPD.cxx:978
 AliITSPlaneEffSPD.cxx:979
 AliITSPlaneEffSPD.cxx:980
 AliITSPlaneEffSPD.cxx:981
 AliITSPlaneEffSPD.cxx:982
 AliITSPlaneEffSPD.cxx:983
 AliITSPlaneEffSPD.cxx:984
 AliITSPlaneEffSPD.cxx:985
 AliITSPlaneEffSPD.cxx:986
 AliITSPlaneEffSPD.cxx:987
 AliITSPlaneEffSPD.cxx:988
 AliITSPlaneEffSPD.cxx:989
 AliITSPlaneEffSPD.cxx:990
 AliITSPlaneEffSPD.cxx:991
 AliITSPlaneEffSPD.cxx:992
 AliITSPlaneEffSPD.cxx:993
 AliITSPlaneEffSPD.cxx:994
 AliITSPlaneEffSPD.cxx:995
 AliITSPlaneEffSPD.cxx:996
 AliITSPlaneEffSPD.cxx:997
 AliITSPlaneEffSPD.cxx:998
 AliITSPlaneEffSPD.cxx:999
 AliITSPlaneEffSPD.cxx:1000
 AliITSPlaneEffSPD.cxx:1001
 AliITSPlaneEffSPD.cxx:1002
 AliITSPlaneEffSPD.cxx:1003
 AliITSPlaneEffSPD.cxx:1004
 AliITSPlaneEffSPD.cxx:1005
 AliITSPlaneEffSPD.cxx:1006
 AliITSPlaneEffSPD.cxx:1007
 AliITSPlaneEffSPD.cxx:1008
 AliITSPlaneEffSPD.cxx:1009
 AliITSPlaneEffSPD.cxx:1010
 AliITSPlaneEffSPD.cxx:1011
 AliITSPlaneEffSPD.cxx:1012
 AliITSPlaneEffSPD.cxx:1013
 AliITSPlaneEffSPD.cxx:1014
 AliITSPlaneEffSPD.cxx:1015
 AliITSPlaneEffSPD.cxx:1016
 AliITSPlaneEffSPD.cxx:1017
 AliITSPlaneEffSPD.cxx:1018
 AliITSPlaneEffSPD.cxx:1019
 AliITSPlaneEffSPD.cxx:1020
 AliITSPlaneEffSPD.cxx:1021
 AliITSPlaneEffSPD.cxx:1022
 AliITSPlaneEffSPD.cxx:1023
 AliITSPlaneEffSPD.cxx:1024
 AliITSPlaneEffSPD.cxx:1025
 AliITSPlaneEffSPD.cxx:1026
 AliITSPlaneEffSPD.cxx:1027
 AliITSPlaneEffSPD.cxx:1028
 AliITSPlaneEffSPD.cxx:1029
 AliITSPlaneEffSPD.cxx:1030
 AliITSPlaneEffSPD.cxx:1031
 AliITSPlaneEffSPD.cxx:1032
 AliITSPlaneEffSPD.cxx:1033
 AliITSPlaneEffSPD.cxx:1034
 AliITSPlaneEffSPD.cxx:1035
 AliITSPlaneEffSPD.cxx:1036
 AliITSPlaneEffSPD.cxx:1037
 AliITSPlaneEffSPD.cxx:1038
 AliITSPlaneEffSPD.cxx:1039
 AliITSPlaneEffSPD.cxx:1040
 AliITSPlaneEffSPD.cxx:1041
 AliITSPlaneEffSPD.cxx:1042
 AliITSPlaneEffSPD.cxx:1043
 AliITSPlaneEffSPD.cxx:1044
 AliITSPlaneEffSPD.cxx:1045
 AliITSPlaneEffSPD.cxx:1046
 AliITSPlaneEffSPD.cxx:1047
 AliITSPlaneEffSPD.cxx:1048
 AliITSPlaneEffSPD.cxx:1049
 AliITSPlaneEffSPD.cxx:1050
 AliITSPlaneEffSPD.cxx:1051
 AliITSPlaneEffSPD.cxx:1052
 AliITSPlaneEffSPD.cxx:1053
 AliITSPlaneEffSPD.cxx:1054
 AliITSPlaneEffSPD.cxx:1055
 AliITSPlaneEffSPD.cxx:1056
 AliITSPlaneEffSPD.cxx:1057
 AliITSPlaneEffSPD.cxx:1058
 AliITSPlaneEffSPD.cxx:1059
 AliITSPlaneEffSPD.cxx:1060
 AliITSPlaneEffSPD.cxx:1061
 AliITSPlaneEffSPD.cxx:1062
 AliITSPlaneEffSPD.cxx:1063
 AliITSPlaneEffSPD.cxx:1064
 AliITSPlaneEffSPD.cxx:1065
 AliITSPlaneEffSPD.cxx:1066
 AliITSPlaneEffSPD.cxx:1067
 AliITSPlaneEffSPD.cxx:1068
 AliITSPlaneEffSPD.cxx:1069
 AliITSPlaneEffSPD.cxx:1070
 AliITSPlaneEffSPD.cxx:1071
 AliITSPlaneEffSPD.cxx:1072
 AliITSPlaneEffSPD.cxx:1073
 AliITSPlaneEffSPD.cxx:1074
 AliITSPlaneEffSPD.cxx:1075
 AliITSPlaneEffSPD.cxx:1076
 AliITSPlaneEffSPD.cxx:1077
 AliITSPlaneEffSPD.cxx:1078
 AliITSPlaneEffSPD.cxx:1079
 AliITSPlaneEffSPD.cxx:1080
 AliITSPlaneEffSPD.cxx:1081
 AliITSPlaneEffSPD.cxx:1082
 AliITSPlaneEffSPD.cxx:1083
 AliITSPlaneEffSPD.cxx:1084
 AliITSPlaneEffSPD.cxx:1085
 AliITSPlaneEffSPD.cxx:1086
 AliITSPlaneEffSPD.cxx:1087
 AliITSPlaneEffSPD.cxx:1088
 AliITSPlaneEffSPD.cxx:1089
 AliITSPlaneEffSPD.cxx:1090
 AliITSPlaneEffSPD.cxx:1091
 AliITSPlaneEffSPD.cxx:1092
 AliITSPlaneEffSPD.cxx:1093
 AliITSPlaneEffSPD.cxx:1094
 AliITSPlaneEffSPD.cxx:1095
 AliITSPlaneEffSPD.cxx:1096
 AliITSPlaneEffSPD.cxx:1097
 AliITSPlaneEffSPD.cxx:1098
 AliITSPlaneEffSPD.cxx:1099
 AliITSPlaneEffSPD.cxx:1100
 AliITSPlaneEffSPD.cxx:1101
 AliITSPlaneEffSPD.cxx:1102
 AliITSPlaneEffSPD.cxx:1103
 AliITSPlaneEffSPD.cxx:1104
 AliITSPlaneEffSPD.cxx:1105
 AliITSPlaneEffSPD.cxx:1106
 AliITSPlaneEffSPD.cxx:1107
 AliITSPlaneEffSPD.cxx:1108
 AliITSPlaneEffSPD.cxx:1109
 AliITSPlaneEffSPD.cxx:1110
 AliITSPlaneEffSPD.cxx:1111
 AliITSPlaneEffSPD.cxx:1112
 AliITSPlaneEffSPD.cxx:1113
 AliITSPlaneEffSPD.cxx:1114
 AliITSPlaneEffSPD.cxx:1115
 AliITSPlaneEffSPD.cxx:1116
 AliITSPlaneEffSPD.cxx:1117
 AliITSPlaneEffSPD.cxx:1118
 AliITSPlaneEffSPD.cxx:1119
 AliITSPlaneEffSPD.cxx:1120
 AliITSPlaneEffSPD.cxx:1121
 AliITSPlaneEffSPD.cxx:1122
 AliITSPlaneEffSPD.cxx:1123
 AliITSPlaneEffSPD.cxx:1124
 AliITSPlaneEffSPD.cxx:1125
 AliITSPlaneEffSPD.cxx:1126
 AliITSPlaneEffSPD.cxx:1127
 AliITSPlaneEffSPD.cxx:1128
 AliITSPlaneEffSPD.cxx:1129
 AliITSPlaneEffSPD.cxx:1130
 AliITSPlaneEffSPD.cxx:1131
 AliITSPlaneEffSPD.cxx:1132
 AliITSPlaneEffSPD.cxx:1133
 AliITSPlaneEffSPD.cxx:1134
 AliITSPlaneEffSPD.cxx:1135
 AliITSPlaneEffSPD.cxx:1136
 AliITSPlaneEffSPD.cxx:1137
 AliITSPlaneEffSPD.cxx:1138
 AliITSPlaneEffSPD.cxx:1139
 AliITSPlaneEffSPD.cxx:1140
 AliITSPlaneEffSPD.cxx:1141
 AliITSPlaneEffSPD.cxx:1142
 AliITSPlaneEffSPD.cxx:1143
 AliITSPlaneEffSPD.cxx:1144
 AliITSPlaneEffSPD.cxx:1145
 AliITSPlaneEffSPD.cxx:1146
 AliITSPlaneEffSPD.cxx:1147
 AliITSPlaneEffSPD.cxx:1148
 AliITSPlaneEffSPD.cxx:1149
 AliITSPlaneEffSPD.cxx:1150
 AliITSPlaneEffSPD.cxx:1151
 AliITSPlaneEffSPD.cxx:1152
 AliITSPlaneEffSPD.cxx:1153
 AliITSPlaneEffSPD.cxx:1154
 AliITSPlaneEffSPD.cxx:1155
 AliITSPlaneEffSPD.cxx:1156
 AliITSPlaneEffSPD.cxx:1157
 AliITSPlaneEffSPD.cxx:1158
 AliITSPlaneEffSPD.cxx:1159
 AliITSPlaneEffSPD.cxx:1160
 AliITSPlaneEffSPD.cxx:1161
 AliITSPlaneEffSPD.cxx:1162
 AliITSPlaneEffSPD.cxx:1163
 AliITSPlaneEffSPD.cxx:1164
 AliITSPlaneEffSPD.cxx:1165
 AliITSPlaneEffSPD.cxx:1166
 AliITSPlaneEffSPD.cxx:1167
 AliITSPlaneEffSPD.cxx:1168
 AliITSPlaneEffSPD.cxx:1169
 AliITSPlaneEffSPD.cxx:1170
 AliITSPlaneEffSPD.cxx:1171
 AliITSPlaneEffSPD.cxx:1172
 AliITSPlaneEffSPD.cxx:1173
 AliITSPlaneEffSPD.cxx:1174
 AliITSPlaneEffSPD.cxx:1175
 AliITSPlaneEffSPD.cxx:1176
 AliITSPlaneEffSPD.cxx:1177
 AliITSPlaneEffSPD.cxx:1178
 AliITSPlaneEffSPD.cxx:1179
 AliITSPlaneEffSPD.cxx:1180
 AliITSPlaneEffSPD.cxx:1181
 AliITSPlaneEffSPD.cxx:1182
 AliITSPlaneEffSPD.cxx:1183
 AliITSPlaneEffSPD.cxx:1184
 AliITSPlaneEffSPD.cxx:1185
 AliITSPlaneEffSPD.cxx:1186
 AliITSPlaneEffSPD.cxx:1187
 AliITSPlaneEffSPD.cxx:1188
 AliITSPlaneEffSPD.cxx:1189
 AliITSPlaneEffSPD.cxx:1190
 AliITSPlaneEffSPD.cxx:1191
 AliITSPlaneEffSPD.cxx:1192
 AliITSPlaneEffSPD.cxx:1193
 AliITSPlaneEffSPD.cxx:1194
 AliITSPlaneEffSPD.cxx:1195
 AliITSPlaneEffSPD.cxx:1196
 AliITSPlaneEffSPD.cxx:1197
 AliITSPlaneEffSPD.cxx:1198
 AliITSPlaneEffSPD.cxx:1199
 AliITSPlaneEffSPD.cxx:1200
 AliITSPlaneEffSPD.cxx:1201
 AliITSPlaneEffSPD.cxx:1202
 AliITSPlaneEffSPD.cxx:1203
 AliITSPlaneEffSPD.cxx:1204
 AliITSPlaneEffSPD.cxx:1205
 AliITSPlaneEffSPD.cxx:1206
 AliITSPlaneEffSPD.cxx:1207
 AliITSPlaneEffSPD.cxx:1208
 AliITSPlaneEffSPD.cxx:1209
 AliITSPlaneEffSPD.cxx:1210
 AliITSPlaneEffSPD.cxx:1211
 AliITSPlaneEffSPD.cxx:1212
 AliITSPlaneEffSPD.cxx:1213
 AliITSPlaneEffSPD.cxx:1214
 AliITSPlaneEffSPD.cxx:1215
 AliITSPlaneEffSPD.cxx:1216
 AliITSPlaneEffSPD.cxx:1217
 AliITSPlaneEffSPD.cxx:1218
 AliITSPlaneEffSPD.cxx:1219
 AliITSPlaneEffSPD.cxx:1220
 AliITSPlaneEffSPD.cxx:1221
 AliITSPlaneEffSPD.cxx:1222
 AliITSPlaneEffSPD.cxx:1223
 AliITSPlaneEffSPD.cxx:1224
 AliITSPlaneEffSPD.cxx:1225
 AliITSPlaneEffSPD.cxx:1226
 AliITSPlaneEffSPD.cxx:1227
 AliITSPlaneEffSPD.cxx:1228
 AliITSPlaneEffSPD.cxx:1229
 AliITSPlaneEffSPD.cxx:1230
 AliITSPlaneEffSPD.cxx:1231
 AliITSPlaneEffSPD.cxx:1232
 AliITSPlaneEffSPD.cxx:1233
 AliITSPlaneEffSPD.cxx:1234
 AliITSPlaneEffSPD.cxx:1235
 AliITSPlaneEffSPD.cxx:1236
 AliITSPlaneEffSPD.cxx:1237
 AliITSPlaneEffSPD.cxx:1238
 AliITSPlaneEffSPD.cxx:1239
 AliITSPlaneEffSPD.cxx:1240
 AliITSPlaneEffSPD.cxx:1241
 AliITSPlaneEffSPD.cxx:1242
 AliITSPlaneEffSPD.cxx:1243
 AliITSPlaneEffSPD.cxx:1244
 AliITSPlaneEffSPD.cxx:1245
 AliITSPlaneEffSPD.cxx:1246
 AliITSPlaneEffSPD.cxx:1247
 AliITSPlaneEffSPD.cxx:1248
 AliITSPlaneEffSPD.cxx:1249
 AliITSPlaneEffSPD.cxx:1250
 AliITSPlaneEffSPD.cxx:1251
 AliITSPlaneEffSPD.cxx:1252
 AliITSPlaneEffSPD.cxx:1253
 AliITSPlaneEffSPD.cxx:1254
 AliITSPlaneEffSPD.cxx:1255
 AliITSPlaneEffSPD.cxx:1256
 AliITSPlaneEffSPD.cxx:1257
 AliITSPlaneEffSPD.cxx:1258
 AliITSPlaneEffSPD.cxx:1259
 AliITSPlaneEffSPD.cxx:1260
 AliITSPlaneEffSPD.cxx:1261
 AliITSPlaneEffSPD.cxx:1262
 AliITSPlaneEffSPD.cxx:1263
 AliITSPlaneEffSPD.cxx:1264
 AliITSPlaneEffSPD.cxx:1265
 AliITSPlaneEffSPD.cxx:1266
 AliITSPlaneEffSPD.cxx:1267
 AliITSPlaneEffSPD.cxx:1268
 AliITSPlaneEffSPD.cxx:1269
 AliITSPlaneEffSPD.cxx:1270
 AliITSPlaneEffSPD.cxx:1271
 AliITSPlaneEffSPD.cxx:1272
 AliITSPlaneEffSPD.cxx:1273
 AliITSPlaneEffSPD.cxx:1274
 AliITSPlaneEffSPD.cxx:1275
 AliITSPlaneEffSPD.cxx:1276
 AliITSPlaneEffSPD.cxx:1277
 AliITSPlaneEffSPD.cxx:1278
 AliITSPlaneEffSPD.cxx:1279
 AliITSPlaneEffSPD.cxx:1280
 AliITSPlaneEffSPD.cxx:1281
 AliITSPlaneEffSPD.cxx:1282
 AliITSPlaneEffSPD.cxx:1283
 AliITSPlaneEffSPD.cxx:1284
 AliITSPlaneEffSPD.cxx:1285
 AliITSPlaneEffSPD.cxx:1286
 AliITSPlaneEffSPD.cxx:1287
 AliITSPlaneEffSPD.cxx:1288
 AliITSPlaneEffSPD.cxx:1289
 AliITSPlaneEffSPD.cxx:1290
 AliITSPlaneEffSPD.cxx:1291
 AliITSPlaneEffSPD.cxx:1292
 AliITSPlaneEffSPD.cxx:1293
 AliITSPlaneEffSPD.cxx:1294
 AliITSPlaneEffSPD.cxx:1295
 AliITSPlaneEffSPD.cxx:1296
 AliITSPlaneEffSPD.cxx:1297
 AliITSPlaneEffSPD.cxx:1298
 AliITSPlaneEffSPD.cxx:1299
 AliITSPlaneEffSPD.cxx:1300
 AliITSPlaneEffSPD.cxx:1301
 AliITSPlaneEffSPD.cxx:1302
 AliITSPlaneEffSPD.cxx:1303
 AliITSPlaneEffSPD.cxx:1304
 AliITSPlaneEffSPD.cxx:1305
 AliITSPlaneEffSPD.cxx:1306
 AliITSPlaneEffSPD.cxx:1307
 AliITSPlaneEffSPD.cxx:1308
 AliITSPlaneEffSPD.cxx:1309
 AliITSPlaneEffSPD.cxx:1310
 AliITSPlaneEffSPD.cxx:1311
 AliITSPlaneEffSPD.cxx:1312
 AliITSPlaneEffSPD.cxx:1313
 AliITSPlaneEffSPD.cxx:1314
 AliITSPlaneEffSPD.cxx:1315
 AliITSPlaneEffSPD.cxx:1316
 AliITSPlaneEffSPD.cxx:1317
 AliITSPlaneEffSPD.cxx:1318
 AliITSPlaneEffSPD.cxx:1319
 AliITSPlaneEffSPD.cxx:1320
 AliITSPlaneEffSPD.cxx:1321
 AliITSPlaneEffSPD.cxx:1322
 AliITSPlaneEffSPD.cxx:1323
 AliITSPlaneEffSPD.cxx:1324
 AliITSPlaneEffSPD.cxx:1325
 AliITSPlaneEffSPD.cxx:1326
 AliITSPlaneEffSPD.cxx:1327
 AliITSPlaneEffSPD.cxx:1328
 AliITSPlaneEffSPD.cxx:1329
 AliITSPlaneEffSPD.cxx:1330
 AliITSPlaneEffSPD.cxx:1331
 AliITSPlaneEffSPD.cxx:1332
 AliITSPlaneEffSPD.cxx:1333
 AliITSPlaneEffSPD.cxx:1334
 AliITSPlaneEffSPD.cxx:1335
 AliITSPlaneEffSPD.cxx:1336
 AliITSPlaneEffSPD.cxx:1337
 AliITSPlaneEffSPD.cxx:1338
 AliITSPlaneEffSPD.cxx:1339
 AliITSPlaneEffSPD.cxx:1340
 AliITSPlaneEffSPD.cxx:1341
 AliITSPlaneEffSPD.cxx:1342
 AliITSPlaneEffSPD.cxx:1343
 AliITSPlaneEffSPD.cxx:1344
 AliITSPlaneEffSPD.cxx:1345
 AliITSPlaneEffSPD.cxx:1346
 AliITSPlaneEffSPD.cxx:1347
 AliITSPlaneEffSPD.cxx:1348
 AliITSPlaneEffSPD.cxx:1349
 AliITSPlaneEffSPD.cxx:1350
 AliITSPlaneEffSPD.cxx:1351
 AliITSPlaneEffSPD.cxx:1352
 AliITSPlaneEffSPD.cxx:1353
 AliITSPlaneEffSPD.cxx:1354
 AliITSPlaneEffSPD.cxx:1355
 AliITSPlaneEffSPD.cxx:1356
 AliITSPlaneEffSPD.cxx:1357
 AliITSPlaneEffSPD.cxx:1358
 AliITSPlaneEffSPD.cxx:1359
 AliITSPlaneEffSPD.cxx:1360
 AliITSPlaneEffSPD.cxx:1361
 AliITSPlaneEffSPD.cxx:1362
 AliITSPlaneEffSPD.cxx:1363
 AliITSPlaneEffSPD.cxx:1364
 AliITSPlaneEffSPD.cxx:1365
 AliITSPlaneEffSPD.cxx:1366
 AliITSPlaneEffSPD.cxx:1367
 AliITSPlaneEffSPD.cxx:1368
 AliITSPlaneEffSPD.cxx:1369
 AliITSPlaneEffSPD.cxx:1370
 AliITSPlaneEffSPD.cxx:1371
 AliITSPlaneEffSPD.cxx:1372
 AliITSPlaneEffSPD.cxx:1373
 AliITSPlaneEffSPD.cxx:1374
 AliITSPlaneEffSPD.cxx:1375
 AliITSPlaneEffSPD.cxx:1376
 AliITSPlaneEffSPD.cxx:1377
 AliITSPlaneEffSPD.cxx:1378
 AliITSPlaneEffSPD.cxx:1379
 AliITSPlaneEffSPD.cxx:1380
 AliITSPlaneEffSPD.cxx:1381
 AliITSPlaneEffSPD.cxx:1382
 AliITSPlaneEffSPD.cxx:1383
 AliITSPlaneEffSPD.cxx:1384
 AliITSPlaneEffSPD.cxx:1385
 AliITSPlaneEffSPD.cxx:1386
 AliITSPlaneEffSPD.cxx:1387
 AliITSPlaneEffSPD.cxx:1388
 AliITSPlaneEffSPD.cxx:1389
 AliITSPlaneEffSPD.cxx:1390
 AliITSPlaneEffSPD.cxx:1391
 AliITSPlaneEffSPD.cxx:1392
 AliITSPlaneEffSPD.cxx:1393
 AliITSPlaneEffSPD.cxx:1394
 AliITSPlaneEffSPD.cxx:1395
 AliITSPlaneEffSPD.cxx:1396
 AliITSPlaneEffSPD.cxx:1397
 AliITSPlaneEffSPD.cxx:1398
 AliITSPlaneEffSPD.cxx:1399
 AliITSPlaneEffSPD.cxx:1400
 AliITSPlaneEffSPD.cxx:1401
 AliITSPlaneEffSPD.cxx:1402
 AliITSPlaneEffSPD.cxx:1403
 AliITSPlaneEffSPD.cxx:1404
 AliITSPlaneEffSPD.cxx:1405
 AliITSPlaneEffSPD.cxx:1406
 AliITSPlaneEffSPD.cxx:1407
 AliITSPlaneEffSPD.cxx:1408
 AliITSPlaneEffSPD.cxx:1409
 AliITSPlaneEffSPD.cxx:1410
 AliITSPlaneEffSPD.cxx:1411
 AliITSPlaneEffSPD.cxx:1412
 AliITSPlaneEffSPD.cxx:1413
 AliITSPlaneEffSPD.cxx:1414
 AliITSPlaneEffSPD.cxx:1415
 AliITSPlaneEffSPD.cxx:1416
 AliITSPlaneEffSPD.cxx:1417
 AliITSPlaneEffSPD.cxx:1418
 AliITSPlaneEffSPD.cxx:1419
 AliITSPlaneEffSPD.cxx:1420
 AliITSPlaneEffSPD.cxx:1421
 AliITSPlaneEffSPD.cxx:1422
 AliITSPlaneEffSPD.cxx:1423
 AliITSPlaneEffSPD.cxx:1424
 AliITSPlaneEffSPD.cxx:1425
 AliITSPlaneEffSPD.cxx:1426
 AliITSPlaneEffSPD.cxx:1427
 AliITSPlaneEffSPD.cxx:1428
 AliITSPlaneEffSPD.cxx:1429
 AliITSPlaneEffSPD.cxx:1430
 AliITSPlaneEffSPD.cxx:1431
 AliITSPlaneEffSPD.cxx:1432
 AliITSPlaneEffSPD.cxx:1433
 AliITSPlaneEffSPD.cxx:1434
 AliITSPlaneEffSPD.cxx:1435
 AliITSPlaneEffSPD.cxx:1436
 AliITSPlaneEffSPD.cxx:1437
 AliITSPlaneEffSPD.cxx:1438
 AliITSPlaneEffSPD.cxx:1439
 AliITSPlaneEffSPD.cxx:1440
 AliITSPlaneEffSPD.cxx:1441
 AliITSPlaneEffSPD.cxx:1442
 AliITSPlaneEffSPD.cxx:1443
 AliITSPlaneEffSPD.cxx:1444
 AliITSPlaneEffSPD.cxx:1445
 AliITSPlaneEffSPD.cxx:1446
 AliITSPlaneEffSPD.cxx:1447
 AliITSPlaneEffSPD.cxx:1448
 AliITSPlaneEffSPD.cxx:1449
 AliITSPlaneEffSPD.cxx:1450
 AliITSPlaneEffSPD.cxx:1451
 AliITSPlaneEffSPD.cxx:1452
 AliITSPlaneEffSPD.cxx:1453
 AliITSPlaneEffSPD.cxx:1454
 AliITSPlaneEffSPD.cxx:1455
 AliITSPlaneEffSPD.cxx:1456
 AliITSPlaneEffSPD.cxx:1457
 AliITSPlaneEffSPD.cxx:1458
 AliITSPlaneEffSPD.cxx:1459
 AliITSPlaneEffSPD.cxx:1460
 AliITSPlaneEffSPD.cxx:1461
 AliITSPlaneEffSPD.cxx:1462
 AliITSPlaneEffSPD.cxx:1463
 AliITSPlaneEffSPD.cxx:1464
 AliITSPlaneEffSPD.cxx:1465
 AliITSPlaneEffSPD.cxx:1466
 AliITSPlaneEffSPD.cxx:1467
 AliITSPlaneEffSPD.cxx:1468
 AliITSPlaneEffSPD.cxx:1469
 AliITSPlaneEffSPD.cxx:1470
 AliITSPlaneEffSPD.cxx:1471
 AliITSPlaneEffSPD.cxx:1472
 AliITSPlaneEffSPD.cxx:1473
 AliITSPlaneEffSPD.cxx:1474
 AliITSPlaneEffSPD.cxx:1475
 AliITSPlaneEffSPD.cxx:1476
 AliITSPlaneEffSPD.cxx:1477
 AliITSPlaneEffSPD.cxx:1478
 AliITSPlaneEffSPD.cxx:1479
 AliITSPlaneEffSPD.cxx:1480
 AliITSPlaneEffSPD.cxx:1481
 AliITSPlaneEffSPD.cxx:1482
 AliITSPlaneEffSPD.cxx:1483
 AliITSPlaneEffSPD.cxx:1484
 AliITSPlaneEffSPD.cxx:1485
 AliITSPlaneEffSPD.cxx:1486
 AliITSPlaneEffSPD.cxx:1487
 AliITSPlaneEffSPD.cxx:1488
 AliITSPlaneEffSPD.cxx:1489
 AliITSPlaneEffSPD.cxx:1490
 AliITSPlaneEffSPD.cxx:1491
 AliITSPlaneEffSPD.cxx:1492
 AliITSPlaneEffSPD.cxx:1493
 AliITSPlaneEffSPD.cxx:1494
 AliITSPlaneEffSPD.cxx:1495
 AliITSPlaneEffSPD.cxx:1496
 AliITSPlaneEffSPD.cxx:1497
 AliITSPlaneEffSPD.cxx:1498
 AliITSPlaneEffSPD.cxx:1499
 AliITSPlaneEffSPD.cxx:1500
 AliITSPlaneEffSPD.cxx:1501
 AliITSPlaneEffSPD.cxx:1502
 AliITSPlaneEffSPD.cxx:1503
 AliITSPlaneEffSPD.cxx:1504
 AliITSPlaneEffSPD.cxx:1505
 AliITSPlaneEffSPD.cxx:1506
 AliITSPlaneEffSPD.cxx:1507
 AliITSPlaneEffSPD.cxx:1508
 AliITSPlaneEffSPD.cxx:1509
 AliITSPlaneEffSPD.cxx:1510
 AliITSPlaneEffSPD.cxx:1511
 AliITSPlaneEffSPD.cxx:1512
 AliITSPlaneEffSPD.cxx:1513
 AliITSPlaneEffSPD.cxx:1514
 AliITSPlaneEffSPD.cxx:1515
 AliITSPlaneEffSPD.cxx:1516
 AliITSPlaneEffSPD.cxx:1517
 AliITSPlaneEffSPD.cxx:1518
 AliITSPlaneEffSPD.cxx:1519
 AliITSPlaneEffSPD.cxx:1520
 AliITSPlaneEffSPD.cxx:1521
 AliITSPlaneEffSPD.cxx:1522
 AliITSPlaneEffSPD.cxx:1523
 AliITSPlaneEffSPD.cxx:1524
 AliITSPlaneEffSPD.cxx:1525
 AliITSPlaneEffSPD.cxx:1526
 AliITSPlaneEffSPD.cxx:1527
 AliITSPlaneEffSPD.cxx:1528
 AliITSPlaneEffSPD.cxx:1529
 AliITSPlaneEffSPD.cxx:1530
 AliITSPlaneEffSPD.cxx:1531
 AliITSPlaneEffSPD.cxx:1532
 AliITSPlaneEffSPD.cxx:1533
 AliITSPlaneEffSPD.cxx:1534
 AliITSPlaneEffSPD.cxx:1535
 AliITSPlaneEffSPD.cxx:1536
 AliITSPlaneEffSPD.cxx:1537
 AliITSPlaneEffSPD.cxx:1538
 AliITSPlaneEffSPD.cxx:1539
 AliITSPlaneEffSPD.cxx:1540
 AliITSPlaneEffSPD.cxx:1541
 AliITSPlaneEffSPD.cxx:1542
 AliITSPlaneEffSPD.cxx:1543
 AliITSPlaneEffSPD.cxx:1544
 AliITSPlaneEffSPD.cxx:1545
 AliITSPlaneEffSPD.cxx:1546
 AliITSPlaneEffSPD.cxx:1547
 AliITSPlaneEffSPD.cxx:1548
 AliITSPlaneEffSPD.cxx:1549
 AliITSPlaneEffSPD.cxx:1550
 AliITSPlaneEffSPD.cxx:1551
 AliITSPlaneEffSPD.cxx:1552
 AliITSPlaneEffSPD.cxx:1553
 AliITSPlaneEffSPD.cxx:1554
 AliITSPlaneEffSPD.cxx:1555
 AliITSPlaneEffSPD.cxx:1556
 AliITSPlaneEffSPD.cxx:1557
 AliITSPlaneEffSPD.cxx:1558
 AliITSPlaneEffSPD.cxx:1559
 AliITSPlaneEffSPD.cxx:1560
 AliITSPlaneEffSPD.cxx:1561
 AliITSPlaneEffSPD.cxx:1562
 AliITSPlaneEffSPD.cxx:1563
 AliITSPlaneEffSPD.cxx:1564
 AliITSPlaneEffSPD.cxx:1565
 AliITSPlaneEffSPD.cxx:1566
 AliITSPlaneEffSPD.cxx:1567
 AliITSPlaneEffSPD.cxx:1568
 AliITSPlaneEffSPD.cxx:1569
 AliITSPlaneEffSPD.cxx:1570
 AliITSPlaneEffSPD.cxx:1571
 AliITSPlaneEffSPD.cxx:1572
 AliITSPlaneEffSPD.cxx:1573
 AliITSPlaneEffSPD.cxx:1574
 AliITSPlaneEffSPD.cxx:1575
 AliITSPlaneEffSPD.cxx:1576
 AliITSPlaneEffSPD.cxx:1577
 AliITSPlaneEffSPD.cxx:1578
 AliITSPlaneEffSPD.cxx:1579
 AliITSPlaneEffSPD.cxx:1580
 AliITSPlaneEffSPD.cxx:1581
 AliITSPlaneEffSPD.cxx:1582
 AliITSPlaneEffSPD.cxx:1583
 AliITSPlaneEffSPD.cxx:1584
 AliITSPlaneEffSPD.cxx:1585
 AliITSPlaneEffSPD.cxx:1586
 AliITSPlaneEffSPD.cxx:1587
 AliITSPlaneEffSPD.cxx:1588
 AliITSPlaneEffSPD.cxx:1589
 AliITSPlaneEffSPD.cxx:1590
 AliITSPlaneEffSPD.cxx:1591
 AliITSPlaneEffSPD.cxx:1592
 AliITSPlaneEffSPD.cxx:1593
 AliITSPlaneEffSPD.cxx:1594
 AliITSPlaneEffSPD.cxx:1595
 AliITSPlaneEffSPD.cxx:1596
 AliITSPlaneEffSPD.cxx:1597
 AliITSPlaneEffSPD.cxx:1598
 AliITSPlaneEffSPD.cxx:1599
 AliITSPlaneEffSPD.cxx:1600
 AliITSPlaneEffSPD.cxx:1601
 AliITSPlaneEffSPD.cxx:1602
 AliITSPlaneEffSPD.cxx:1603
 AliITSPlaneEffSPD.cxx:1604
 AliITSPlaneEffSPD.cxx:1605
 AliITSPlaneEffSPD.cxx:1606
 AliITSPlaneEffSPD.cxx:1607
 AliITSPlaneEffSPD.cxx:1608
 AliITSPlaneEffSPD.cxx:1609
 AliITSPlaneEffSPD.cxx:1610
 AliITSPlaneEffSPD.cxx:1611
 AliITSPlaneEffSPD.cxx:1612
 AliITSPlaneEffSPD.cxx:1613
 AliITSPlaneEffSPD.cxx:1614
 AliITSPlaneEffSPD.cxx:1615
 AliITSPlaneEffSPD.cxx:1616
 AliITSPlaneEffSPD.cxx:1617
 AliITSPlaneEffSPD.cxx:1618
 AliITSPlaneEffSPD.cxx:1619
 AliITSPlaneEffSPD.cxx:1620
 AliITSPlaneEffSPD.cxx:1621
 AliITSPlaneEffSPD.cxx:1622
 AliITSPlaneEffSPD.cxx:1623
 AliITSPlaneEffSPD.cxx:1624
 AliITSPlaneEffSPD.cxx:1625
 AliITSPlaneEffSPD.cxx:1626
 AliITSPlaneEffSPD.cxx:1627
 AliITSPlaneEffSPD.cxx:1628
 AliITSPlaneEffSPD.cxx:1629
 AliITSPlaneEffSPD.cxx:1630
 AliITSPlaneEffSPD.cxx:1631
 AliITSPlaneEffSPD.cxx:1632
 AliITSPlaneEffSPD.cxx:1633
 AliITSPlaneEffSPD.cxx:1634
 AliITSPlaneEffSPD.cxx:1635
 AliITSPlaneEffSPD.cxx:1636
 AliITSPlaneEffSPD.cxx:1637
 AliITSPlaneEffSPD.cxx:1638
 AliITSPlaneEffSPD.cxx:1639
 AliITSPlaneEffSPD.cxx:1640
 AliITSPlaneEffSPD.cxx:1641
 AliITSPlaneEffSPD.cxx:1642
 AliITSPlaneEffSPD.cxx:1643
 AliITSPlaneEffSPD.cxx:1644
 AliITSPlaneEffSPD.cxx:1645
 AliITSPlaneEffSPD.cxx:1646
 AliITSPlaneEffSPD.cxx:1647
 AliITSPlaneEffSPD.cxx:1648
 AliITSPlaneEffSPD.cxx:1649
 AliITSPlaneEffSPD.cxx:1650
 AliITSPlaneEffSPD.cxx:1651
 AliITSPlaneEffSPD.cxx:1652
 AliITSPlaneEffSPD.cxx:1653
 AliITSPlaneEffSPD.cxx:1654
 AliITSPlaneEffSPD.cxx:1655
 AliITSPlaneEffSPD.cxx:1656
 AliITSPlaneEffSPD.cxx:1657
 AliITSPlaneEffSPD.cxx:1658
 AliITSPlaneEffSPD.cxx:1659
 AliITSPlaneEffSPD.cxx:1660
 AliITSPlaneEffSPD.cxx:1661
 AliITSPlaneEffSPD.cxx:1662
 AliITSPlaneEffSPD.cxx:1663
 AliITSPlaneEffSPD.cxx:1664
 AliITSPlaneEffSPD.cxx:1665
 AliITSPlaneEffSPD.cxx:1666
 AliITSPlaneEffSPD.cxx:1667
 AliITSPlaneEffSPD.cxx:1668
 AliITSPlaneEffSPD.cxx:1669
 AliITSPlaneEffSPD.cxx:1670
 AliITSPlaneEffSPD.cxx:1671
 AliITSPlaneEffSPD.cxx:1672
 AliITSPlaneEffSPD.cxx:1673
 AliITSPlaneEffSPD.cxx:1674
 AliITSPlaneEffSPD.cxx:1675
 AliITSPlaneEffSPD.cxx:1676
 AliITSPlaneEffSPD.cxx:1677
 AliITSPlaneEffSPD.cxx:1678
 AliITSPlaneEffSPD.cxx:1679
 AliITSPlaneEffSPD.cxx:1680
 AliITSPlaneEffSPD.cxx:1681
 AliITSPlaneEffSPD.cxx:1682
 AliITSPlaneEffSPD.cxx:1683
 AliITSPlaneEffSPD.cxx:1684
 AliITSPlaneEffSPD.cxx:1685
 AliITSPlaneEffSPD.cxx:1686
 AliITSPlaneEffSPD.cxx:1687
 AliITSPlaneEffSPD.cxx:1688
 AliITSPlaneEffSPD.cxx:1689
 AliITSPlaneEffSPD.cxx:1690
 AliITSPlaneEffSPD.cxx:1691
 AliITSPlaneEffSPD.cxx:1692