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 (eventually with sui-bwing division 
//  along the drift direction) of the SDD,        
//  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 "AliITSPlaneEffSDD.h"
#include "AliLog.h"
#include "AliCDBStorage.h"
#include "AliCDBEntry.h"
#include "AliCDBManager.h"
//#include "AliCDBRunRange.h"
#include "AliITSgeom.h"
#include "AliITSCalibrationSDD.h"
#include "AliITSsegmentationSDD.h"

ClassImp(AliITSPlaneEffSDD)	
//______________________________________________________________________
AliITSPlaneEffSDD::AliITSPlaneEffSDD():
  AliITSPlaneEff(),
  fHisResX(0),
  fHisResZ(0),
  fHisResXZ(0),
  fHisClusterSize(0),
  fProfResXvsCluSizeX(0),
  //fHisResXclu(0),
  fHisResZclu(0),
  fProfResXvsX(0),
  fProfResZvsX(0),
  fProfClustSizeXvsX(0),
  fProfClustSizeZvsX(0),
  fHisTrackErrX(0),
  fHisTrackErrZ(0),
  fHisClusErrX(0),
  fHisClusErrZ(0){
  for (UInt_t i=0; i<kNModule*kNChip*kNWing*kNSubWing; i++){
  // default constructor
    fFound[i]=0;
    fTried[i]=0;
  }
  AliDebug(1,Form("Calling default constructor"));
}
//______________________________________________________________________
AliITSPlaneEffSDD::~AliITSPlaneEffSDD(){
    // destructor
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Return:
    //     none.
    DeleteHistos();
}
//______________________________________________________________________
AliITSPlaneEffSDD::AliITSPlaneEffSDD(const AliITSPlaneEffSDD &s) : AliITSPlaneEff(s),
//fHis(s.fHis),
fHisResX(0),
fHisResZ(0),
fHisResXZ(0),
fHisClusterSize(0),
fProfResXvsCluSizeX(0),
//fHisResXclu(0),
fHisResZclu(0),
fProfResXvsX(0),
fProfResZvsX(0),
fProfClustSizeXvsX(0),
fProfClustSizeZvsX(0),
fHisTrackErrX(0),
fHisTrackErrZ(0),
fHisClusErrX(0),
fHisClusErrZ(0)
{
    //     Copy Constructor
    // Inputs:
    //    AliITSPlaneEffSDD &s The original class for which
    //                                this class is a copy of
    // Outputs:
    //    none.
    // Return:

 for (UInt_t i=0; i<kNModule*kNChip*kNWing*kNSubWing; 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]);
      s.fProfResXvsCluSizeX[i]->Copy(*fProfResXvsCluSizeX[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.fProfResXvsX[i]->Copy(*fProfResXvsX[i]);
     s.fProfResZvsX[i]->Copy(*fProfResZvsX[i]);
     s.fProfClustSizeXvsX[i]->Copy(*fProfClustSizeXvsX[i]);
     s.fProfClustSizeZvsX[i]->Copy(*fProfClustSizeZvsX[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]);
   }
 }
}
//_________________________________________________________________________
AliITSPlaneEffSDD& AliITSPlaneEffSDD::operator+=(const AliITSPlaneEffSDD &add){
    //    Add-to-me operator
    // Inputs:
    //    const AliITSPlaneEffSDD &add  simulation class to be added
    // Outputs:
    //    none.
    // Return:
    //    none
    for (UInt_t i=0; i<kNModule*kNChip*kNWing*kNSubWing; 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]);
        fProfResXvsCluSizeX[i]->Add(add.fProfResXvsCluSizeX[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]);
        }
       fProfResXvsX[i]->Add(add.fProfResXvsX[i]);
       fProfResZvsX[i]->Add(add.fProfResZvsX[i]);
       fProfClustSizeXvsX[i]->Add(add.fProfClustSizeXvsX[i]);
       fProfClustSizeZvsX[i]->Add(add.fProfClustSizeZvsX[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]);
      }
    }
    return *this;
}
//______________________________________________________________________
AliITSPlaneEffSDD&  AliITSPlaneEffSDD::operator=(const
                                           AliITSPlaneEffSDD &s){
    //    Assignment operator
    // Inputs:
    //    AliITSPlaneEffSDD &s The original class for which
    //                                this class is a copy of
    // Outputs:
    //    none.
    // Return:
 
    if(this==&s) return *this;
    this->~AliITSPlaneEffSDD();
    new(this) AliITSPlaneEffSDD();
    s.Copy(*this);
    return *this;
}
//______________________________________________________________________
void AliITSPlaneEffSDD::Copy(TObject &obj) const {
  // protected method. copy this to obj
  AliITSPlaneEff::Copy(obj);
  AliITSPlaneEffSDD& target = (AliITSPlaneEffSDD &) obj;
  for(Int_t i=0;i<kNModule*kNChip*kNWing*kNSubWing;i++) {
      target.fFound[i] = fFound[i];
      target.fTried[i] = fTried[i];
  }
  CopyHistos(target);
  return;
}
//_______________________________________________________________________
void AliITSPlaneEffSDD::CopyHistos(AliITSPlaneEffSDD &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.fProfResXvsCluSizeX=new TProfile*[kNHisto];
    //target.fHisResXclu=new TH1F**[kNHisto];
    target.fHisResZclu=new TH1F**[kNHisto];
    target.fProfResXvsX=new TProfile*[kNHisto];
    target.fProfResZvsX=new TProfile*[kNHisto];
    target.fProfClustSizeXvsX=new TProfile*[kNHisto];
    target.fProfClustSizeZvsX=new TProfile*[kNHisto];
    target.fHisTrackErrX=new TH1F*[kNHisto];
    target.fHisTrackErrZ=new TH1F*[kNHisto];
    target.fHisClusErrX=new TH1F*[kNHisto];
    target.fHisClusErrZ=new TH1F*[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.fProfResXvsCluSizeX[i] = new TProfile(*fProfResXvsCluSizeX[i]);
      //target.fHisResXclu[i]=new TH1F*[kNclu];
      target.fHisResZclu[i]=new TH1F*[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.fProfResXvsX[i]=new TProfile(*fProfResXvsX[i]);
      target.fProfResZvsX[i]=new TProfile(*fProfResZvsX[i]);
      target.fProfClustSizeXvsX[i]=new TProfile(*fProfClustSizeXvsX[i]);
      target.fProfClustSizeZvsX[i]=new TProfile(*fProfClustSizeZvsX[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]);
    }
  }
return;
}

//_______________________________________________________________________
Int_t AliITSPlaneEffSDD::GetMissingTracksForGivenEff(Double_t eff, Double_t RelErr,
          UInt_t im, UInt_t ic, UInt_t iw, UInt_t is) 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,259]
  //         ic     -> chip number [0,3]
  //         iw     -> wing number [0,1]
  //         is     -> chip number [0,kNSubWing-1]
  //   Outputs: none
  //   Return: the estimated n. of tracks 
  //
if (im>=kNModule || ic>=kNChip || iw>=kNWing || is>=kNSubWing) 
 {AliError("GetMissingTracksForGivenEff: you asked for a non existing block");
 return -1;}
else {
  UInt_t key=GetKey(im,ic,iw,is);
  if (key<kNModule*kNChip*kNWing*kNSubWing) return GetNTracksForGivenEff(eff,RelErr)-fTried[key];
  else return -1;
}
}
//_________________________________________________________________________
Double_t  AliITSPlaneEffSDD::PlaneEff(const UInt_t im,const UInt_t ic,
                                      const UInt_t iw,const UInt_t is) const {
// Compute the efficiency for a basic block, 
// Inputs:
//        im     -> module number [0,259]
//        ic     -> chip number [0,3]
//        iw     -> wing number [0,1]
//        is     -> chip number [0,kNSubWing-1]
if (im>=kNModule || ic>=kNChip || iw>=kNWing || is>=kNSubWing) 
 {AliError("PlaneEff(UInt_t,UInt_t,UInt_t,UInt_t): you asked for a non existing block"); return -1.;}
UInt_t key=GetKey(im,ic,iw,is);
Int_t nf=-1;
Int_t nt=-1;
if (key<kNModule*kNChip*kNWing*kNSubWing) {
  nf=fFound[key];
  nt=fTried[key];
}
return AliITSPlaneEff::PlaneEff(nf,nt);
}
//_________________________________________________________________________
Double_t  AliITSPlaneEffSDD::ErrPlaneEff(const UInt_t im,const UInt_t ic,
                                         const UInt_t iw,const UInt_t is) const {
    // Compute the statistical error on efficiency for a basic block,
    // using binomial statistics 
    // Inputs:
    //        im     -> module number [0,259]
    //        ic     -> chip number [0,3]
    //        iw     -> wing number [0,1]
    //        is     -> chip number [0,kNSubWing-1]
if (im>=kNModule || ic>=kNChip || iw>=kNWing || is>=kNSubWing) 
 {AliError("ErrPlaneEff(UInt_t,UInt_t,UInt_t,UInt_t): you asked for a non existing block"); return -1.;}
UInt_t key=GetKey(im,ic,iw,is);
Int_t nf=-1;
Int_t nt=-1;
if (key<kNModule*kNChip*kNWing*kNSubWing) {
  nf=fFound[key];
  nt=fTried[key];
}
return AliITSPlaneEff::ErrPlaneEff(nf,nt);
} 
//_________________________________________________________________________
Bool_t AliITSPlaneEffSDD::UpDatePlaneEff(const Bool_t Kfound,
                                         const UInt_t im, const UInt_t ic,
                                         const UInt_t iw, const UInt_t is) {
  // Update efficiency for a basic block
if (im>=kNModule || ic>=kNChip || iw>=kNWing || is>=kNSubWing) 
 {AliError("UpDatePlaneEff: you asked for a non existing block"); return kFALSE;}
 UInt_t key=GetKey(im,ic,iw,is);
 if (key<kNModule*kNChip*kNWing*kNSubWing) { 
   fTried[key]++;
   if(Kfound) fFound[key]++;
   return kTRUE;
 }
 else {
   return kFALSE;
 }
}
//_________________________________________________________________________
void AliITSPlaneEffSDD::ChipAndWingFromAnode(const UInt_t anode, UInt_t& chip,
                                      UInt_t& wing) const {
  // Retun the chip number [0,3] and the wing number [0,1] given the anode number
  // input: anode number [0,511]
if(anode>=kNAnode*kNChip*kNWing)
 {AliError("ChipAndWingFromAnode: you asked for a non existing anode"); 
  chip=999;
  wing=99;
  return;}
wing=0;
chip=anode/kNAnode;
if(anode>=kNChip*kNAnode) wing=1;
if(wing==1) chip-=kNChip;
return;
}
//_________________________________________________________________________
UInt_t AliITSPlaneEffSDD::ChipFromAnode(const UInt_t anode) const {
  // Retun the chip number [0,3] given the anode number 
  // input: anode number [0,511]
if(anode>=kNAnode*kNChip*kNWing) 
 {AliError("ChipFromAnode: you asked for a non existing anode"); return 999;}
Int_t wing=0;
Int_t chip=anode/kNAnode;
if(anode>=kNChip*kNAnode) wing=1;
if(wing==1)chip-=kNChip;
return chip;
}
//_________________________________________________________________________
UInt_t AliITSPlaneEffSDD::WingFromAnode(const UInt_t anode) const {
  // return the wing number [0,1] given the anode number 
  // input: anode number [0,511]
if(anode>=kNAnode*kNChip*kNWing) 
 {AliError("WingFromAnode: you asked for a non existing anode"); return 99;}
Int_t wing=0;
if(anode>=kNChip*kNAnode) wing=1;
return wing;
}
//__________________________________________________________________________
UInt_t AliITSPlaneEffSDD::GetKey(const UInt_t mod, const UInt_t chip,
                                 const UInt_t wing, const UInt_t subw) const {
  // get key given a basic block
if(mod>=kNModule || chip>=kNChip || wing>= kNWing || subw>=kNSubWing)
  {AliError("GetKey: you asked for a non existing block"); return 99999;}
return mod*kNChip*kNWing*kNSubWing+chip*kNWing*kNSubWing+wing*kNSubWing+subw;
}
//__________________________________________________________________________
UInt_t AliITSPlaneEffSDD::GetModFromKey(const UInt_t key) const {
  // get mod. from key
if(key>=kNModule*kNChip*kNWing*kNSubWing)
  {AliError("GetModFromKey: you asked for a non existing key"); return 9999;}
return key/(kNChip*kNWing*kNSubWing);
}
//__________________________________________________________________________
UInt_t AliITSPlaneEffSDD::GetChipFromKey(const UInt_t key) const {
  // retrieves chip from key
if(key>=kNModule*kNChip*kNWing*kNSubWing)
  {AliError("GetChipFromKey: you asked for a non existing key"); return 999;}
return (key%(kNChip*kNWing*kNSubWing))/(kNWing*kNSubWing);
}
//__________________________________________________________________________
UInt_t AliITSPlaneEffSDD::GetWingFromKey(const UInt_t key) const {
  // retrieves wing from key
if(key>=kNModule*kNChip*kNWing*kNSubWing)
  {AliError("GetWingFromKey: you asked for a non existing key"); return 99;}
return ((key%(kNChip*kNWing*kNSubWing))%(kNWing*kNSubWing))/(kNSubWing);
}
//__________________________________________________________________________
UInt_t AliITSPlaneEffSDD::GetSubWingFromKey(const UInt_t key) const {
  // retrieves sub-wing from key
if(key>=kNModule*kNChip*kNWing*kNSubWing)
  {AliError("GetSubWingFromKey: you asked for a non existing key"); return 9;}
return ((key%(kNChip*kNWing*kNSubWing))%(kNWing*kNSubWing))%(kNSubWing);
}
//__________________________________________________________________________
void AliITSPlaneEffSDD::GetAllFromKey(const UInt_t key,UInt_t& mod,UInt_t& chip,
                                      UInt_t& wing,UInt_t& subw) const {
  // get module, chip, wing and subwing from a key
if(key>=kNModule*kNChip*kNWing*kNSubWing)
  {AliError("GetAllFromKey: you asked for a non existing key"); 
  mod=9999;
  chip=999;
  wing=99;
  subw=9;
  return;}
mod=GetModFromKey(key);
chip=GetChipFromKey(key);
wing=GetWingFromKey(key);
subw=GetSubWingFromKey(key);
return;
}
//____________________________________________________________________________
Double_t AliITSPlaneEffSDD::LivePlaneEff(UInt_t key) const {
  // returns plane efficieny after adding the fraction of sensor which is bad
if(key>=kNModule*kNChip*kNWing*kNSubWing)
  {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 AliITSPlaneEffSDD::ErrLivePlaneEff(UInt_t key) const {
  // returns error on live plane efficiency
if(key>=kNModule*kNChip*kNWing*kNSubWing)
  {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 AliITSPlaneEffSDD::GetFracLive(const UInt_t key) const {
  // returns the fraction of the sensor which is OK
if(key>=kNModule*kNChip*kNWing*kNSubWing)
  {AliError("GetFracLive: you asked for a non existing key");
   return -1.;}
    // Compute the fraction of bad (dead+noisy) detector 
UInt_t bad=0;
GetBadInBlock(key,bad);
Double_t live=bad;
live/=(kNAnode);
return 1.-live;
}
//_____________________________________________________________________________
void AliITSPlaneEffSDD::GetBadInBlock(const UInt_t key, UInt_t& nrBadInBlock) const {
  // Compute the number of bad (dead+noisy) anodes inside a block
  // (it depends on the chip, not on the sub-wing)
nrBadInBlock=0;
if(key>=kNModule*kNChip*kNWing*kNSubWing)
  {AliError("GetBadInBlock: you asked for a non existing key");
   return;}
//
if(!fInitCDBCalled) 
  {AliError("GetBadInBlock: CDB not inizialized: call InitCDB first");
   return;};
AliCDBManager* man = AliCDBManager::Instance();
// retrieve map of dead Pixel 
AliCDBEntry *cdbSDD = man->Get("ITS/Calib/CalibSDD", fRunNumber);
TObjArray* sddEntry;
if(cdbSDD) {
  sddEntry = (TObjArray*)cdbSDD->GetObject();
  if(!sddEntry) 
  {AliError("GetBadInBlock: SDDEntry not found in CDB");
   return;}
} else {
  AliError("GetBadInBlock: Did not find Calib/CalibSDD");
  return;
}
//
UInt_t mod=GetModFromKey(key);
UInt_t chip=GetChipFromKey(key);
UInt_t wing=GetWingFromKey(key);
// count number of dead
AliITSCalibrationSDD* calibSDD=(AliITSCalibrationSDD*) sddEntry->At(mod);
UInt_t nrBad = calibSDD-> GetDeadChannels();
for (UInt_t index=0; index<nrBad; index++) {
  if(ChipFromAnode(calibSDD->GetBadChannel(index))==chip &&
     WingFromAnode(calibSDD->GetBadChannel(index))==wing    ) nrBadInBlock++;
}
return;
}
//_____________________________________________________________________________
Double_t AliITSPlaneEffSDD::GetFracBad(const UInt_t key) const {
  // returns 1-fractional live
if(key>=kNModule*kNChip*kNWing*kNSubWing)
  {AliError("GetFracBad: you asked for a non existing key");
   return -1.;}
return 1.-GetFracLive(key);
}
//_____________________________________________________________________________
Bool_t AliITSPlaneEffSDD::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 02/01/08"); //root version
  AliCDBId id("ITS/PlaneEff/PlaneEffSDD",0,AliCDBRunRange::Infinity()); 
  AliITSPlaneEffSDD eff; 
  eff=*this;
  Bool_t r=AliCDBManager::Instance()->GetDefaultStorage()->Put(&eff,id,md);
  delete md;
  return r;
}
//_____________________________________________________________________________
Bool_t AliITSPlaneEffSDD::ReadFromCDB() {
// read from CDB
if(!fInitCDBCalled)
  {AliError("ReadFromCDB: CDB not inizialized: call InitCDB first");
   return kFALSE;}
AliCDBEntry *cdbEntry = AliCDBManager::Instance()->Get("ITS/PlaneEff/PlaneEffSDD",fRunNumber);
if(!cdbEntry) return kFALSE;
AliITSPlaneEffSDD* eff= (AliITSPlaneEffSDD*)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 AliITSPlaneEffSDD::AddFromCDB(AliCDBId *cdbId) {
// read efficiency values from CDB
AliCDBEntry *cdbEntry=0;
if (!cdbId) {
  if(!fInitCDBCalled)
    {AliError("ReadFromCDB: CDB not inizialized. Call InitCDB first"); return kFALSE;}
  cdbEntry = AliCDBManager::Instance()->Get("ITS/PlaneEff/PlaneEffSDD",fRunNumber);
} else {
  cdbEntry = AliCDBManager::Instance()->Get(*cdbId);
}
if(!cdbEntry) return kFALSE;
AliITSPlaneEffSDD* eff= (AliITSPlaneEffSDD*)cdbEntry->GetObject();
*this+=*eff;
return kTRUE;
}
//_____________________________________________________________________________
UInt_t AliITSPlaneEffSDD::GetKeyFromDetLocCoord(Int_t ilay, Int_t idet,
                                                Float_t locx, Float_t locz) const {
// method to locate a basic block from Detector Local coordinate (to be used in tracking)
//
// From AliITSsegmentationSDD rev. 24315 2008-03-05: 
//                            ^x_loc 
//                            |
//   _________________________|0_________________________ 
//  |0 1 ..      |            |.           |         255| (anode numbers)
//  |            |            |.           |            |
//  |            |            |.           |            |    CHANNEL (i.e. WING) = 1
//  |   chip=0   |   chip=1   |.  chip=2   |   chip=3   |  
//  |            |            |.           |            |
//  |____________|____________|256_________|____________|______\  local z (cm)
//  |            |            |.           |            |      /
//  |            |            |.           |            |
//  |   chip=7   |   chip=6   |.  chip=5   |   chip=4   |    CHANNEL (i.e. WING) = 0
//  |            |            |.           |            |  
//  |            |            |.           |            |
//  |____________|____________|0___________|____________| 
//   511 510 ...               ^              .. 257 256 (anode numbers)
//                             |_ (time bins)
//
// If kNSubWing = 1, i.e. no sub-wing subdivision, then the numbering scheme of the 
// unique key is the following, e.g. for the first detector (idet=0,  ilayer=2)
//
//			      ^x_loc (cm)
//			      |
//   _________________________|__________________________ 3.5085
//  |            |            |            |            |
//  |            |            |            |            |
//  |            |            |            |            |
//  |   key=0    |   key=2    |   key=4    |   key=6    |
//  |            |            |            |            |
//  |____________|____________|____________|____________|_0_____\  local z (cm)
//  |            |            |            |            |       /
//  |            |            |            |            |
//  |   key=7    |   key=5    |   key=3    |   key=1    |
//  |            |            |            |            |
//  |            |            |            |            |
//  |____________|____________|____________|____________| -3.5085
//-3.7632     -1.8816         0          1.1186      3.7632 
//
// for the second detector (idet=2, ilay=2), the same as above but +8: first one 8 (bottom-left), 
// last one is 15 (lower-left), and so on. 
//
// If subwing division has been applied, then you count as in the schemes below 
// E.g. kNSubWing=2. (It was much simpler with old AliITSsegmentation numbering!)
//
//			      ^x_loc (cm)
//		              |   
//   _________________________|__________________________ 3.5085
//  |            |            |            |            |
//  |   key=0    |   key=4    |   key=8    |   key=12   |
//  |____________|____________|____________|____________| 1.75425
//  |            |            |            |            |
//  |   key=1    |   key=5    |   key=9    |   key=13   |
//  |____________|____________|____________|____________|_0_____\  local z (cm)
//  |            |            |            |            |       /
//  |   key=15   |   key=11   |   key=7    |   key=3    |
//  |____________|____________|____________|____________| -1.75425
//  |            |            |            |            |
//  |   key=14   |   key=10   |   key=6    |   key=2    |
//  |____________|____________|____________|____________| -3.5085
//-3.7632     -1.8816         0          1.1186      3.7632 
//
// E.g. kNSubWing=3
//                            ^x_loc (cm)
//                            |
//   _________________________|__________________________ 3.5085
//  |     0      |     6      |     12     |     18     |
//  |____________|____________|____________|____________| 2.339
//  |     1      |     7      |     13     |     19     |
//  |____________|____________|____________|____________| 1.1695
//  |     2      |     8      |     14     |     20     |
//  |____________|____________|____________|____________|_0_____\  local z (cm)
//  |     23     |     17     |     11     |     5      |       /
//  |____________|____________|____________|____________| -1.1695
//  |   key=22   |   key=16   |   key=10   |   key=4    |
//  |____________|____________|____________|____________| -2.339
//  |    21      |    15      |     9      |     3      |
//  |____________|____________|____________|____________| -3.5085
//-3.7632     -1.8816         0          1.1186      3.7632
//___________________________________________________________________________
//
UInt_t key=999999;
if(ilay<2 || ilay>3)
  {AliError("GetKeyFromDetLocCoord: you asked for a non existing layer");
   return key;}
if(ilay==2 && (idet<0 || idet>83))
 {AliError("GetKeyFromDetLocCoord: you asked for a non existing detector");
   return key;}
if(ilay==3 && (idet<0 || idet>175))
 {AliError("GetKeyFromDetLocCoord: you asked for a non existing detector");
   return key;}
UInt_t mod=idet;
if(ilay==3) mod+=84;
UInt_t chip=0,wing=0,subw=0;
ChipAndWingAndSubWingFromLocCoor(locx,locz,chip,wing,subw);
key=GetKey(mod,chip,wing,subw);
return key;
}
//_____________________________________________________________________________
void AliITSPlaneEffSDD::ChipAndWingAndSubWingFromLocCoor(Float_t xloc, Float_t zloc, 
                                UInt_t& chip, UInt_t& wing, UInt_t& subw) const {
//AliITSgeom* geom=NULL;
//AliITSsegmentationSDD* sdd=new AliITSsegmentationSDD(geom);
AliITSsegmentationSDD sdd;
sdd.SetDriftSpeed(sdd.GetDriftSpeed()); // this only for setting fSetDriftSpeed=kTRUE !!!
Int_t ix,iz;
Int_t ntb;
UInt_t anode=0;
if(sdd.LocalToDet(xloc,zloc,ix,iz)) {  
  anode+=iz; 
  ChipAndWingFromAnode(anode,chip,wing);
  if(sdd.LocalToDet(0.,0.,ntb,iz)) {  // in this way the sub-division along time coordinate
    subw=SubWingFromTimeBin(ix,ntb); }  // is purely geometrical one and it does not 
  else {				// depen on the drift-velocity. 
    AliError("ChipAndWingAndSubWingFromLocCoor: cannot calculate n. of time bins for SubWing.");
    subw=9;
  }
} else {
  AliError("ChipAndWingAndSubWingFromLocCoor: cannot calculate anode number and time bin."); 
  chip=999; 
  wing=99; 
  subw=9;
}
//delete geom;
}
//__________________________________________________________________________________
UInt_t AliITSPlaneEffSDD::SubWingFromTimeBin(const Int_t tb, const Int_t ntb) const {
if(tb<0 || tb>ntb || ntb<0) {
 AliError(Form("SubWingFromTimeBin: you asked time bin = %d with %d n. of bins",tb,ntb));
 return 9;
}
//AliDebug(Form("tb = %d, ntb= %d , NSubWing = %d",tb,ntb,kNSubWing));
Float_t h=tb;
 h/=ntb;
 h*=(kNSubWing-1);
return TMath::Nint(h);
}
//________________________________________________________
Bool_t AliITSPlaneEffSDD::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
//
// the following scheemes will help in following the method implementation
// E.g. kNSubWing=1
//                            ^x_loc (cm)
//     for all: subw=0        |
//   _________________________|__________________________ 3.5085
//  |   wing=0   |   wing=0   |   wing=0   |   wing=0   |
//  |   chip=0   |   chip=1   |   chip=2   |   chip=3   |
//  |   key=0    |   key=2    |   key=4    |   key=6    |
//  |____________|____________|____________|____________|_0_____\  local z (cm)
//  |   wing=1   |   wing=1   |   wing=1   |   wing=1   |       /
//  |   chip=3   |   chip=2   |   chip=1   |   chip=0   |
//  |   key=7    |   key=5    |   key=3    |   key=1    |
//  |____________|____________|____________|____________| -3.5085
//-3.7632     -1.8816         0          1.1186      3.7632
//
// E.g. kNSubWing=2
//                            ^x_loc (cm)
//                            |
//   _________________________|__________________________ 3.5085
//  |   chip=0   |   chip=1   |   chip=2   |   chip=3   |
//  |   key=0    |   key=4    |   key=8    |   key=12   | subw=0
//  |____________|____________|____________|____________|        wing=0
//  |   chip=0   |   chip=1   |   chip=2   |   chip=3   | subw=1
//  |   key=1    |   key=5    |   key=9    |   key=13   |
//  |____________|____________|____________|____________|_0________\  local z (cm)
//  |   chip=3   |   chip=2   |   chip=1   |   chip=0   |          /
//  |   key=15   |   key=11   |   key=7    |   key=3    | subw=1
//  |____________|____________|____________|____________|        wing=1
//  |   chip=3   |   chip=2   |   chip=1   |   chip=0   | subw=0  
//  |   key=14   |   key=10   |   key=6    |   key=2    | 
//  |____________|____________|____________|____________| -3.5085
//-3.7632     -1.8816         0          1.1186      3.7632
//
if(key>=kNModule*kNChip*kNWing*kNSubWing)
  {AliWarning("GetBlockBoundaries: you asked for a non existing key"); return kFALSE;}
// as it is now it is consistent with new AliITSsegmentationSDD numbering !
const Float_t kDxDefault = 35085.; // For Plane Eff. purpouses, default values
const Float_t kDzDefault = 75264.; // are precise enough !!!
const Float_t kconv = 1.0E-04;  //converts microns to cm.
UInt_t chip=GetChipFromKey(key);
UInt_t wing=GetWingFromKey(key);
UInt_t subw=GetSubWingFromKey(key);
if(wing==1) { // count x from below, z from right
  xmn=kconv*(kDxDefault/kNSubWing*subw-kDxDefault);
  xmx=kconv*(kDxDefault/kNSubWing*(subw+1)-kDxDefault);
  zmn=kconv*(kDzDefault*0.5-kDzDefault/kNChip*(chip+1));
  zmx=kconv*(kDzDefault*0.5-kDzDefault/kNChip*chip);
}
else if(wing==0) { // count x from top, z from left
  xmx=kconv*(kDxDefault-kDxDefault/kNSubWing*subw);
  xmn=kconv*(kDxDefault-kDxDefault/kNSubWing*(subw+1));
  zmn=kconv*(kDzDefault/kNChip*chip-0.5*kDzDefault);
  zmx=kconv*(kDzDefault/kNChip*(chip+1)-0.5*kDzDefault);
}
else {AliError("GetBlockBoundaries: you got wrong n. of wing"); return kFALSE;}
return kTRUE;
}
//__________________________________________________________
void AliITSPlaneEffSDD::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 profnameResXvsCluSizeX="ProfResXvsCluSizeX_mod_";
  TString histnameResZclu="HistResZ_mod_";
  TString profnameResXvsX="ProfResXvsX_mod_";
  TString profnameResZvsX="ProfResZvsX_mod_";
  TString profnameClustSizeXvsX="ProfClustSizeXvsX_mod_";
  TString profnameClustSizeZvsX="ProfClustSizeZvsX_mod_";
  TString histnameTrackErrX="HistTrackErrX_mod_";
  TString histnameTrackErrZ="HistTrackErrZ_mod_";
  TString histnameClusErrX="HistClusErrX_mod_";
  TString histnameClusErrZ="HistClusErrZ_mod_";
//

  TH1::AddDirectory(kFALSE);

  fHisResX=new TH1F*[kNHisto];
  fHisResZ=new TH1F*[kNHisto];
  fHisResXZ=new TH2F*[kNHisto];
  fHisClusterSize=new TH2I*[kNHisto];
  fProfResXvsCluSizeX=new TProfile*[kNHisto];
  //fHisResXclu=new TH1F**[kNHisto];
  fHisResZclu=new TH1F**[kNHisto];
  fProfResXvsX=new TProfile*[kNHisto];
  fProfResZvsX=new TProfile*[kNHisto];
  fProfClustSizeXvsX=new TProfile*[kNHisto];
  fProfClustSizeZvsX=new TProfile*[kNHisto];
  fHisTrackErrX=new TH1F*[kNHisto];
  fHisTrackErrZ=new TH1F*[kNHisto];
  fHisClusErrX=new TH1F*[kNHisto];
  fHisClusErrZ=new TH1F*[kNHisto];

  for (Int_t nhist=0;nhist<kNHisto;nhist++){
    aux=histnameResX;
    aux+=nhist;
    fHisResX[nhist]=new TH1F("histname","histname",2000,-0.40,0.40); // +- 4000 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",1000,-0.30,0.30); // +-3000 micron; 1 bin=6 micron
    fHisResZ[nhist]->SetName(aux.Data());
    fHisResZ[nhist]->SetTitle(aux.Data());

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

    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());

    aux=profnameResXvsCluSizeX;
    aux+=nhist;
    fProfResXvsCluSizeX[nhist]=new TProfile("histname","histname",10,0.5,10.5);
    fProfResXvsCluSizeX[nhist]->SetName(aux.Data());
    fProfResXvsCluSizeX[nhist]->SetTitle(aux.Data());

//    fHisResXclu[nhist]=new TH1F*[kNclu];
    fHisResZclu[nhist]=new TH1F*[kNclu];
    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",1500,-0.15,0.15);// +- 1500 micron; 1 bin=2 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",1000,-0.30,0.30); // +-3000 micron; 1 bin=6 micron
      fHisResZclu[nhist][clu]->SetName(aux.Data());
      fHisResZclu[nhist][clu]->SetTitle(aux.Data());
    }

    aux=profnameResXvsX;
    aux+=nhist;
    fProfResXvsX[nhist]=new TProfile("histname","histname",140,-3.5,3.5);
    fProfResXvsX[nhist]->SetName(aux.Data());
    fProfResXvsX[nhist]->SetTitle(aux.Data());

    aux=profnameResZvsX;
    aux+=nhist;
    fProfResZvsX[nhist]=new TProfile("histname","histname",140,-3.5,3.5);
    fProfResZvsX[nhist]->SetName(aux.Data());
    fProfResZvsX[nhist]->SetTitle(aux.Data());

    aux=profnameClustSizeXvsX;
    aux+=nhist;
    fProfClustSizeXvsX[nhist]=new TProfile("histname","histname",140,-3.5,3.5);
    fProfClustSizeXvsX[nhist]->SetName(aux.Data());
    fProfClustSizeXvsX[nhist]->SetTitle(aux.Data());

    aux=profnameClustSizeZvsX;
    aux+=nhist;
    fProfClustSizeZvsX[nhist]=new TProfile("histname","histname",140,-3.5,3.5);
    fProfClustSizeZvsX[nhist]->SetName(aux.Data());
    fProfClustSizeZvsX[nhist]->SetTitle(aux.Data());

    aux=histnameTrackErrX;
    aux+=nhist;
    fHisTrackErrX[nhist]=new TH1F("histname","histname",500,0.,0.50); // 0-5000 micron; 1 bin=10 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.24); //  0-2400 micron; 1 bin=6 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());

  }

  TH1::AddDirectory(kTRUE);

return;
}
//__________________________________________________________
void AliITSPlaneEffSDD::DeleteHistos() {
 // delete the histograms and clean the memory
  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(fProfResXvsCluSizeX) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fProfResXvsCluSizeX[i];
    delete [] fProfResXvsCluSizeX; fProfResXvsCluSizeX=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(fProfResXvsX) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fProfResXvsX[i];
    delete [] fProfResXvsX; fProfResXvsX=0;
  }
  if(fProfResZvsX) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fProfResZvsX[i];
    delete [] fProfResZvsX; fProfResZvsX=0;
  }
  if(fProfClustSizeXvsX) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fProfClustSizeXvsX[i];
    delete [] fProfClustSizeXvsX; fProfClustSizeXvsX=0;
  }
  if(fProfClustSizeZvsX) {
    for (Int_t i=0; i<kNHisto; i++ ) delete fProfClustSizeZvsX[i];
    delete [] fProfClustSizeZvsX; fProfClustSizeZvsX=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;
  }

return;
}
//__________________________________________________________
Bool_t AliITSPlaneEffSDD::FillHistos(UInt_t key, Bool_t found, 
                                     Float_t *tr, Float_t *clu, Int_t *csize, Float_t*) {
// 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
// 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*kNWing*kNSubWing)
    {AliWarning("FillHistos: you asked for a non existing key"); return kFALSE;}
  Int_t id=GetModFromKey(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]);
    fProfResXvsCluSizeX[id]->Fill((Double_t)csize[0],resx);
    //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);
    fProfResXvsX[id]->Fill(clu[0],resx);
    fProfResZvsX[id]->Fill(clu[0],resz);
    fProfClustSizeXvsX[id]->Fill(clu[0],(Double_t)csize[0]);
    fProfClustSizeZvsX[id]->Fill(clu[0],(Double_t)csize[1]);
  }
  fHisTrackErrX[id]->Fill(tr[2]);
  fHisTrackErrZ[id]->Fill(tr[3]);
  fHisClusErrX[id]->Fill(clu[2]);
  fHisClusErrZ[id]->Fill(clu[3]);
  return kTRUE;
}
//__________________________________________________________
Bool_t AliITSPlaneEffSDD::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 *SDDTree=new TTree("SDDTree","Tree whith Residuals and Cluster Type distributions for SDD");
  TH1F *histZ,*histX;
  TH2F *histXZ;
  TH2I *histClusterType;
  TProfile *profileResXvsCluSizeX;
  //TH1F *histXclu[kNclu];
  TH1F *histZclu[kNclu];
  TProfile *profileResXvsX, *profileResZvsX, *profileClSizXvsX, *profileClSizZvsX;
  TH1F *histTrErrZ,*histTrErrX;
  TH1F *histClErrZ,*histClErrX;

  histZ=new TH1F();
  histX=new TH1F();
  histXZ=new TH2F();
  histClusterType=new TH2I();
  profileResXvsCluSizeX=new TProfile();
  for(Int_t clu=0;clu<kNclu;clu++) {
    //histXclu[clu]=new TH1F();
    histZclu[clu]=new TH1F();
  }
  profileResXvsX=new TProfile();
  profileResZvsX=new TProfile();
  profileClSizXvsX=new TProfile();
  profileClSizZvsX=new TProfile();
  histTrErrX=new TH1F();
  histTrErrZ=new TH1F();
  histClErrX=new TH1F();
  histClErrZ=new TH1F();

  SDDTree->Branch("histX","TH1F",&histX,128000,0);
  SDDTree->Branch("histZ","TH1F",&histZ,128000,0);
  SDDTree->Branch("histXZ","TH2F",&histXZ,128000,0);
  SDDTree->Branch("histClusterType","TH2I",&histClusterType,128000,0);
  SDDTree->Branch("profileResXvsCluSizeX","TProfile",&profileResXvsCluSizeX,128000,0);
  for(Int_t clu=0;clu<kNclu;clu++) {
    //snprintf(branchname,50,"histXclu_%d",clu+1);
    //SDDTree->Branch(branchname,"TH1F",&histXclu[clu],128000,0);
    snprintf(branchname,50,"histZclu_%d",clu+1);
    SDDTree->Branch(branchname,"TH1F",&histZclu[clu],128000,0);
  }
  SDDTree->Branch("profileResXvsX","TProfile",&profileResXvsX,128000,0);
  SDDTree->Branch("profileResZvsX","TProfile",&profileResZvsX,128000,0);
  SDDTree->Branch("profileClSizXvsX","TProfile",&profileClSizXvsX,128000,0);
  SDDTree->Branch("profileClSizZvsX","TProfile",&profileClSizZvsX,128000,0);
  SDDTree->Branch("histTrErrX","TH1F",&histTrErrX,128000,0);
  SDDTree->Branch("histTrErrZ","TH1F",&histTrErrZ,128000,0);
  SDDTree->Branch("histClErrX","TH1F",&histClErrX,128000,0);
  SDDTree->Branch("histClErrZ","TH1F",&histClErrZ,128000,0);

  for(Int_t j=0;j<kNHisto;j++){
    histX=fHisResX[j];
    histZ=fHisResZ[j];
    histXZ=fHisResXZ[j];
    histClusterType=fHisClusterSize[j];
    profileResXvsCluSizeX=fProfResXvsCluSizeX[j];
    for(Int_t clu=0;clu<kNclu;clu++) {
      //histXclu[clu]=fHisResXclu[j][clu];
      histZclu[clu]=fHisResZclu[j][clu];
    }
    profileResXvsX=fProfResXvsX[j];
    profileResZvsX=fProfResZvsX[j];
    profileClSizXvsX=fProfClustSizeXvsX[j];
    profileClSizZvsX=fProfClustSizeZvsX[j];
    histTrErrX=fHisTrackErrX[j];
    histTrErrZ=fHisTrackErrZ[j];
    histClErrX=fHisClusErrX[j];
    histClErrZ=fHisClusErrZ[j];

    SDDTree->Fill();
  }
  hFile->Write();
  hFile->Close();
return kTRUE;
}
//__________________________________________________________
Bool_t AliITSPlaneEffSDD::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("SDDTree");

  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 *profileResXvsCluSizeX = (TBranch*) tree->GetBranch("profileResXvsCluSizeX");
  //TBranch *histXclu[kNclu], *histZclu[kNclu];
  TBranch *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 *profileResXvsX = (TBranch*) tree->GetBranch("profileResXvsX");
  TBranch *profileResZvsX = (TBranch*) tree->GetBranch("profileResZvsX");
  TBranch *profileClSizXvsX = (TBranch*) tree->GetBranch("profileClSizXvsX");
  TBranch *profileClSizZvsX = (TBranch*) tree->GetBranch("profileClSizZvsX");
  TBranch *histTrErrX = (TBranch*) tree->GetBranch("histTrErrX");
  TBranch *histTrErrZ = (TBranch*) tree->GetBranch("histTrErrZ");
  TBranch *histClErrX = (TBranch*) tree->GetBranch("histClErrX");
  TBranch *histClErrZ = (TBranch*) tree->GetBranch("histClErrZ");

  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);
  }

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

  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);
    }
  }

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

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

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

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

  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);
  }

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

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