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.                  *
 **************************************************************************/
//____________________________________________________________________
//
// AliITSTrackleterSPDEff - find SPD chips efficiencies by using tracklets.
//
// This class has been developed from AliITSMultReconstructor (see
// it for more details). It is the class for the Trackleter used to estimate
// SPD plane efficiency.
// The trackleter prediction is built using the vertex and 1 cluster.
//
//
//  Author :  Giuseppe Eugenio Bruno, based on the skeleton of Reconstruct method  provided by Tiziano Virgili
//  email:    giuseppe.bruno@ba.infn.it
//
//____________________________________________________________________

/* $Id$ */

#include <TFile.h>
#include <TTree.h>
#include <TParticle.h>
#include <TParticlePDG.h>
#include <TSystem.h>
#include <Riostream.h>
#include <TClonesArray.h>

#include "AliTracker.h"
#include "AliITSTrackleterSPDEff.h"
#include "AliITSgeomTGeo.h"
#include "AliLog.h"
#include "AliITSPlaneEffSPD.h"
#include "AliStack.h"
#include "AliTrackReference.h"
#include "AliRunLoader.h"
#include "AliITSReconstructor.h"
#include "AliITSRecPoint.h"
#include "AliESDEvent.h"
#include "AliESDVertex.h"
//____________________________________________________________________

using std::ofstream;
using std::ios;
using std::ifstream;
ClassImp(AliITSTrackleterSPDEff)


//____________________________________________________________________
AliITSTrackleterSPDEff::AliITSTrackleterSPDEff():
AliTracker(),
//
fClustersLay1(0),
fClustersLay2(0),
fTracklets(0),
fAssociationFlag(0),
fNClustersLay1(0),
fNClustersLay2(0),
fNTracklets(0),
fOnlyOneTrackletPerC2(0),
fPhiWindowL2(0),
fZetaWindowL2(0),
fPhiOverlapCut(0),
fZetaOverlapCut(0),
fHistOn(0),
fhClustersDPhiAcc(0),
fhClustersDThetaAcc(0),
fhClustersDZetaAcc(0),
fhClustersDPhiAll(0),
fhClustersDThetaAll(0),
fhClustersDZetaAll(0),
fhDPhiVsDThetaAll(0),
fhDPhiVsDThetaAcc(0),
fhDPhiVsDZetaAll(0),
fhDPhiVsDZetaAcc(0),
fhetaTracklets(0),
fhphiTracklets(0),
fhetaClustersLay1(0),
fhphiClustersLay1(0),
//
fAssociationFlag1(0),
fChipPredOnLay2(0),
fChipPredOnLay1(0),
fNTracklets1(0),
fPhiWindowL1(0),
fZetaWindowL1(0),
fOnlyOneTrackletPerC1(0),
fUpdateOncePerEventPlaneEff(0),
fMinContVtx(0),
fChipUpdatedInEvent(0),
fPlaneEffSPD(0),
fPlaneEffBkg(0),
fReflectClusterAroundZAxisForLayer0(kFALSE),
fReflectClusterAroundZAxisForLayer1(kFALSE),
fLightBkgStudyInParallel(kFALSE),
fMC(0),
fUseOnlyPrimaryForPred(0),
fUseOnlySecondaryForPred(0), 
fUseOnlySameParticle(0),
fUseOnlyDifferentParticle(0),
fUseOnlyStableParticle(1),
fPredictionPrimary(0),
fPredictionSecondary(0),
fClusterPrimary(0),
fClusterSecondary(0),
fSuccessPP(0),
fSuccessTT(0),
fSuccessS(0),
fSuccessP(0),
fFailureS(0),
fFailureP(0),
fRecons(0),
fNonRecons(0),
fhClustersDPhiInterpAcc(0),
fhClustersDThetaInterpAcc(0),
fhClustersDZetaInterpAcc(0),
fhClustersDPhiInterpAll(0),
fhClustersDThetaInterpAll(0),
fhClustersDZetaInterpAll(0),
fhDPhiVsDThetaInterpAll(0),
fhDPhiVsDThetaInterpAcc(0),
fhDPhiVsDZetaInterpAll(0),
fhDPhiVsDZetaInterpAcc(0),
fhetaClustersLay2(0),
fhphiClustersLay2(0),
fhClustersInChip(0),
fhClustersInModuleLay1(0),
fhClustersInModuleLay2(0)
{
   // default constructor
// from AliITSMultReconstructor
  Init();
}
//______________________________________________________________________
void AliITSTrackleterSPDEff::Init() {
  SetPhiWindowL2();
  SetZetaWindowL2();
  SetOnlyOneTrackletPerC2();
  fClustersLay1       = new Float_t*[300000];
  fClustersLay2       = new Float_t*[300000];
  fTracklets          = new Float_t*[300000];
  fAssociationFlag    = new Bool_t[300000];
//
  SetPhiWindowL1();
  SetZetaWindowL1();
  SetOnlyOneTrackletPerC1();

  fAssociationFlag1   = new Bool_t[300000];
  fChipPredOnLay2     = new UInt_t[300000];
  fChipPredOnLay1     = new UInt_t[300000];
  fChipUpdatedInEvent = new Bool_t[1200];

  for(Int_t i=0; i<300000; i++) {
    // from AliITSMultReconstructor
    fClustersLay1[i]       = new Float_t[6];
    fClustersLay2[i]       = new Float_t[6];
    fTracklets[i]          = new Float_t[5];
    fAssociationFlag[i]    = kFALSE;
    //
    fAssociationFlag1[i]   = kFALSE;
  }
  for(Int_t i=0;i<1200; i++) fChipUpdatedInEvent[i] = kFALSE;

  if (GetHistOn()) BookHistos();

  fPlaneEffSPD = new AliITSPlaneEffSPD();
  SetLightBkgStudyInParallel();
}
//______________________________________________________________________
AliITSTrackleterSPDEff::AliITSTrackleterSPDEff(const AliITSTrackleterSPDEff &mr) :  
AliTracker(mr),
// from AliITSMultReconstructor
fClustersLay1(mr.fClustersLay1),
fClustersLay2(mr.fClustersLay2),
fTracklets(mr.fTracklets),
fAssociationFlag(mr.fAssociationFlag),
fNClustersLay1(mr.fNClustersLay1),
fNClustersLay2(mr.fNClustersLay2),
fNTracklets(mr.fNTracklets),
fOnlyOneTrackletPerC2(mr.fOnlyOneTrackletPerC2),
fPhiWindowL2(mr.fPhiWindowL2),
fZetaWindowL2(mr.fZetaWindowL2),
fPhiOverlapCut(mr.fPhiOverlapCut),
fZetaOverlapCut(mr.fZetaOverlapCut),
fHistOn(mr.fHistOn),
fhClustersDPhiAcc(mr.fhClustersDPhiAcc),
fhClustersDThetaAcc(mr.fhClustersDThetaAcc),
fhClustersDZetaAcc(mr.fhClustersDZetaAcc),
fhClustersDPhiAll(mr.fhClustersDPhiAll),
fhClustersDThetaAll(mr.fhClustersDThetaAll),
fhClustersDZetaAll(mr.fhClustersDZetaAll),
fhDPhiVsDThetaAll(mr.fhDPhiVsDThetaAll),
fhDPhiVsDThetaAcc(mr.fhDPhiVsDThetaAcc),
fhDPhiVsDZetaAll(mr.fhDPhiVsDZetaAll),
fhDPhiVsDZetaAcc(mr.fhDPhiVsDZetaAcc),
fhetaTracklets(mr.fhetaTracklets),
fhphiTracklets(mr.fhphiTracklets),
fhetaClustersLay1(mr.fhetaClustersLay1),
fhphiClustersLay1(mr.fhphiClustersLay1),
//
fAssociationFlag1(mr.fAssociationFlag1),
fChipPredOnLay2(mr.fChipPredOnLay2),
fChipPredOnLay1(mr.fChipPredOnLay1),
fNTracklets1(mr.fNTracklets1),
fPhiWindowL1(mr.fPhiWindowL1),
fZetaWindowL1(mr.fZetaWindowL1),
fOnlyOneTrackletPerC1(mr.fOnlyOneTrackletPerC1),
fUpdateOncePerEventPlaneEff(mr.fUpdateOncePerEventPlaneEff),
fMinContVtx(mr.fMinContVtx),
fChipUpdatedInEvent(mr.fChipUpdatedInEvent),
fPlaneEffSPD(mr.fPlaneEffSPD),
fPlaneEffBkg(mr.fPlaneEffBkg),
fReflectClusterAroundZAxisForLayer0(mr.fReflectClusterAroundZAxisForLayer0),
fReflectClusterAroundZAxisForLayer1(mr.fReflectClusterAroundZAxisForLayer1),
fLightBkgStudyInParallel(mr.fLightBkgStudyInParallel),
fMC(mr.fMC),
fUseOnlyPrimaryForPred(mr.fUseOnlyPrimaryForPred),
fUseOnlySecondaryForPred(mr.fUseOnlySecondaryForPred),
fUseOnlySameParticle(mr.fUseOnlySameParticle),
fUseOnlyDifferentParticle(mr.fUseOnlyDifferentParticle),
fUseOnlyStableParticle(mr.fUseOnlyStableParticle),
fPredictionPrimary(mr.fPredictionPrimary),
fPredictionSecondary(mr.fPredictionSecondary),
fClusterPrimary(mr.fClusterPrimary),
fClusterSecondary(mr.fClusterSecondary),
fSuccessPP(mr.fSuccessPP),
fSuccessTT(mr.fSuccessTT),
fSuccessS(mr.fSuccessS),
fSuccessP(mr.fSuccessP),
fFailureS(mr.fFailureS),
fFailureP(mr.fFailureP),
fRecons(mr.fRecons),
fNonRecons(mr.fNonRecons),
fhClustersDPhiInterpAcc(mr.fhClustersDPhiInterpAcc),
fhClustersDThetaInterpAcc(mr.fhClustersDThetaInterpAcc),
fhClustersDZetaInterpAcc(mr.fhClustersDZetaInterpAcc),
fhClustersDPhiInterpAll(mr.fhClustersDPhiInterpAll),
fhClustersDThetaInterpAll(mr.fhClustersDThetaInterpAll),
fhClustersDZetaInterpAll(mr.fhClustersDZetaInterpAll),
fhDPhiVsDThetaInterpAll(mr.fhDPhiVsDThetaInterpAll),
fhDPhiVsDThetaInterpAcc(mr.fhDPhiVsDThetaInterpAcc),
fhDPhiVsDZetaInterpAll(mr.fhDPhiVsDZetaInterpAll),
fhDPhiVsDZetaInterpAcc(mr.fhDPhiVsDZetaInterpAcc),
fhetaClustersLay2(mr.fhetaClustersLay2),
fhphiClustersLay2(mr.fhphiClustersLay2),
fhClustersInChip(mr.fhClustersInChip),
fhClustersInModuleLay1(mr.fhClustersInModuleLay1),
fhClustersInModuleLay2(mr.fhClustersInModuleLay2)
{
  // Copy constructor
}

//______________________________________________________________________
AliITSTrackleterSPDEff& AliITSTrackleterSPDEff::operator=(const AliITSTrackleterSPDEff& mr){
  // Assignment operator
  this->~AliITSTrackleterSPDEff();
  new(this) AliITSTrackleterSPDEff(mr);
  return *this;
}
//______________________________________________________________________
AliITSTrackleterSPDEff::~AliITSTrackleterSPDEff(){
  // Destructor
// from AliITSMultReconstructor
 // delete arrays
  for(Int_t i=0; i<300000; i++) {
    delete [] fClustersLay1[i];
    delete [] fClustersLay2[i];
    delete [] fTracklets[i];
  }
  delete [] fClustersLay1;
  delete [] fClustersLay2;
  delete [] fTracklets;
  delete [] fAssociationFlag;
//
  // delete histograms
  DeleteHistos();

  delete [] fAssociationFlag1;

  delete [] fChipPredOnLay2;
  delete [] fChipPredOnLay1;

  delete [] fChipUpdatedInEvent;

  delete [] fPredictionPrimary;  
  delete [] fPredictionSecondary; 
  delete [] fClusterPrimary;  
  delete [] fClusterSecondary; 
  delete [] fSuccessPP;
  delete [] fSuccessTT;
  delete [] fSuccessS;
  delete [] fSuccessP;
  delete [] fFailureS;
  delete [] fFailureP;
  delete [] fRecons;
  delete [] fNonRecons;

  // delete PlaneEff
  delete fPlaneEffSPD;
  fPlaneEffSPD=0;
  if(fPlaneEffBkg) {
    delete fPlaneEffBkg;
    fPlaneEffBkg=0;

  }
}
//____________________________________________________________________
void
AliITSTrackleterSPDEff::Reconstruct(AliStack *pStack, TTree *tRef, Bool_t lbkg) {
  //
  // - you have to take care of the following, before of using Reconstruct
  //   1) call LoadClusters(TTree* cl) that finds the position of the clusters (in global coord)
  //   and  convert the cluster coordinates to theta, phi (seen from the
  //   interaction vertex). 
  //   2) call SetVertex(vtxPos, vtxErr) which set the position of the vertex
  // - Find the extrapolation/interpolation point.
  // - Find the chip corresponding to that
  // - Check if there is a cluster near that point  
  //
  // reset counters
  if(lbkg && !GetLightBkgStudyInParallel()) {
    AliError("You asked for lightBackground in the Reconstruction without proper call to SetLightBkgStudyInParallel(1)"); 
    return;
  }
  AliITSPlaneEffSPD *pe;
  if(lbkg) {
    pe=fPlaneEffBkg;
  } else {
    pe=fPlaneEffSPD;
  }
  fNTracklets = 0; 
  // retrieve the vertex position
  Float_t vtx[3];
  vtx[0]=(Float_t)GetX();
  vtx[1]=(Float_t)GetY();
  vtx[2]=(Float_t)GetZ();
  // to study residual background (i.e. contribution from TT' to measured efficiency) 
  if(fReflectClusterAroundZAxisForLayer0 && !lbkg) ReflectClusterAroundZAxisForLayer(0);
  if(fReflectClusterAroundZAxisForLayer1 && !lbkg) ReflectClusterAroundZAxisForLayer(1);
  //
  if(fMC && !pStack && !lbkg) {AliError("You asked for MC infos but AliStack not properly loaded"); return;}
  if(fMC && !tRef   && !lbkg) {AliError("You asked for MC infos but TrackRef Tree not properly loaded"); return;}
  Bool_t found;
  Int_t nfTraPred1=0;  Int_t ntTraPred1=0;
  Int_t nfTraPred2=0;  Int_t ntTraPred2=0;
  Int_t nfClu1=0;      Int_t ntClu1=0; 
  Int_t nfClu2=0;      Int_t ntClu2=0;
  
  // Set fChipUpdatedInEvent=kFALSE for all the chips (none of the chip efficiency already updated 
  // for this new event)
  for(Int_t i=0;i<1200;i++) fChipUpdatedInEvent[i] = kFALSE;

  // find the tracklets
  AliDebug(1,"Looking for tracklets... ");  
  AliDebug(1,Form("Reconstruct: vtx[0] = %f, vtx[1] = %f, vtx[2] = %f",vtx[0],vtx[1],vtx[2]));

  //###########################################################
  // Loop on layer 1 : finding theta, phi and z 
  UInt_t key;
  for (Int_t iC1=0; iC1<fNClustersLay1; iC1++) {    
    Float_t x = fClustersLay1[iC1][0] - vtx[0];
    Float_t y = fClustersLay1[iC1][1] - vtx[1];
    Float_t z = fClustersLay1[iC1][2] - vtx[2];

    Float_t r    = TMath::Sqrt(x*x + y*y +z*z); 
    
    fClustersLay1[iC1][0] = TMath::ACos(z/r);                   // Store Theta
    fClustersLay1[iC1][1] = TMath::Pi() + TMath::ATan2(-y,-x);  // Store Phi
    fClustersLay1[iC1][2] = z;                  // Store z

    // find the Radius and the chip corresponding to the extrapolation point

    found=FindChip(key, 1, vtx, fClustersLay1[iC1][0],fClustersLay1[iC1][1]);
    if (!found) {
      AliDebug(1,Form("Reconstruct: cannot find chip prediction on outer layer for cluster %d on the inner layer",iC1)); 
      key=999999;               // also some other actions should be taken if not Found 
    }
    nfTraPred2+=(Int_t)found; // this for debugging purpose
    ntTraPred2++;             // to check efficiency of the method FindChip
    fChipPredOnLay2[iC1] = key;
    fAssociationFlag1[iC1] = kFALSE;
 
    if (fHistOn && !lbkg) {
      Float_t eta=fClustersLay1[iC1][0];
      eta= TMath::Tan(eta/2.);
      eta=-TMath::Log(eta);
      fhetaClustersLay1->Fill(eta);
      fhphiClustersLay1->Fill(fClustersLay1[iC1][1]);
      fhClustersInChip->Fill(fhClustersInChip->GetBinCenter(key+1)); // if found=kFALSE -> overflow
    }      
  }
  // Loop on layer 2 : finding theta, phi and r   
  for (Int_t iC2=0; iC2<fNClustersLay2; iC2++) {    
    Float_t x = fClustersLay2[iC2][0] - vtx[0];
    Float_t y = fClustersLay2[iC2][1] - vtx[1];
    Float_t z = fClustersLay2[iC2][2] - vtx[2];
   
    Float_t r    = TMath::Sqrt(x*x + y*y +z*z);
    
    fClustersLay2[iC2][0] = TMath::ACos(z/r);                   // Store Theta
    fClustersLay2[iC2][1] = TMath::Pi() + TMath::ATan2(-y,-x);  // Store Phi (done properly in the range [0,2pi])
    fClustersLay2[iC2][2] = z;                  // Store z

    // find the Radius and the chip corresponding to the extrapolation point

    found=FindChip(key, 0, vtx, fClustersLay2[iC2][0],fClustersLay2[iC2][1]);
    if (!found) {
      AliDebug(1,Form("Reconstruct: cannot find chip prediction on inner layer for cluster %d on the outer layer",iC2)); 
      key=999999;
    }
    nfTraPred1+=(Int_t)found; // this for debugging purpose
    ntTraPred1++;             // to check efficiency of the method FindChip
    fChipPredOnLay1[iC2] = key;
    fAssociationFlag[iC2] = kFALSE;
 
    if (fHistOn && !lbkg) {
      Float_t eta=fClustersLay2[iC2][0];
      eta= TMath::Tan(eta/2.);
      eta=-TMath::Log(eta);
      fhetaClustersLay2->Fill(eta);
      fhphiClustersLay2->Fill(fClustersLay2[iC2][1]);
      fhClustersInChip->Fill(fhClustersInChip->GetBinCenter(key+1)); // if found=kFALSE -> overflow
    }
  }  
  
  //###########################################################

 // First part : Extrapolation to Layer 2 

  // Loop on layer 1 
  for (Int_t iC1=0; iC1<fNClustersLay1; iC1++) {    

    // here the control to check whether the efficiency of the chip traversed by this tracklet
    // prediction has already been updated in this event using another tracklet prediction
    if(fUpdateOncePerEventPlaneEff && fChipPredOnLay2[iC1]<1200 && fChipUpdatedInEvent[fChipPredOnLay2[iC1]]) continue;
  
    // reset of variables for multiple candidates
    Int_t  iC2WithBestDist = 0;     // reset 
    Float_t distmin        = 100.;  // just to put a huge number! 
    Float_t dPhimin        = 0.;  // Used for histograms only! 
    Float_t dThetamin      = 0.;  // Used for histograms only! 
    Float_t dZetamin       = 0.;  // Used for histograms only! 

    // in any case, if MC has been required, store statistics of primaries and secondaries
    Bool_t primary=kFALSE; Bool_t secondary=kFALSE; // it is better to have both since chip might not be found
    if (fMC && !lbkg) {
       Int_t lab1=(Int_t)fClustersLay1[iC1][3];
       Int_t lab2=(Int_t)fClustersLay1[iC1][4];
       Int_t lab3=(Int_t)fClustersLay1[iC1][5];
       // do it always as a function of the chip number used to built the prediction
       found=FindChip(key,0,vtx,fClustersLay1[iC1][0],fClustersLay1[iC1][1],fClustersLay1[iC1][2]);
       if (!found) {AliDebug(1,
         Form("Reconstruct MC: cannot find chip on inner layer for cluster %d",iC1)); }
       else {
         if((lab1 != -2  &&  PrimaryTrackChecker(lab1,pStack) ) ||
            (lab2 != -2  &&  PrimaryTrackChecker(lab2,pStack) ) ||
            (lab3 != -2  &&  PrimaryTrackChecker(lab3,pStack))) 
         { // this cluster is from a primary particle
           fClusterPrimary[key]++;
           primary=kTRUE;
           if(fUseOnlySecondaryForPred) continue; // skip this tracklet built with a primary track
         } else { // this cluster is from a secondary particle
            fClusterSecondary[key]++;
            secondary=kTRUE;
            if(fUseOnlyPrimaryForPred) continue; // skip this tracklet built with a secondary track
         }
       }
       // do it as a function of the chip number where you exspect the cluster (i.e. tracklet prediction)
       // (in case the prediction is reliable)
       if( fChipPredOnLay2[iC1]<1200) {
         if((lab1 != -2  &&  PrimaryTrackChecker(lab1,pStack) ) ||
            (lab2 != -2  &&  PrimaryTrackChecker(lab2,pStack) ) ||
            (lab3 != -2  &&  PrimaryTrackChecker(lab3,pStack))) fPredictionPrimary[fChipPredOnLay2[iC1]]++;
         else fPredictionSecondary[fChipPredOnLay2[iC1]]++;
         if((lab1 != -2  &&  IsReconstructableAt(1,iC1,lab1,vtx,pStack,tRef)) ||
            (lab2 != -2  &&  IsReconstructableAt(1,iC1,lab2,vtx,pStack,tRef)) ||
            (lab3 != -2  &&  IsReconstructableAt(1,iC1,lab3,vtx,pStack,tRef))) fRecons[fChipPredOnLay2[iC1]]++;
         else fNonRecons[fChipPredOnLay2[iC1]]++;
       }
    }
    
    // Loop on layer 2 
    for (Int_t iC2=0; iC2<fNClustersLay2; iC2++) {      
      
      // The following excludes double associations
      if (!fAssociationFlag[iC2]) {
	
	// find the difference in angles
	Float_t dTheta = fClustersLay2[iC2][0] - fClustersLay1[iC1][0];
	Float_t dPhi   = TMath::Abs(fClustersLay2[iC2][1] - fClustersLay1[iC1][1]);
        // take into account boundary condition
        if (dPhi>TMath::Pi()) dPhi=2.*TMath::Pi()-dPhi;	

	// find the difference in z (between linear projection from layer 1
	// and the actual point: Dzeta= z1/r1*r2 -z2) 	
	Float_t r2    = fClustersLay2[iC2][2]/TMath::Cos(fClustersLay2[iC2][0]);
        Float_t dZeta = TMath::Cos(fClustersLay1[iC1][0])*r2 - fClustersLay2[iC2][2];

 	if (fHistOn && !lbkg) {
	  fhClustersDPhiAll->Fill(dPhi);    
	  fhClustersDThetaAll->Fill(dTheta);    
	  fhClustersDZetaAll->Fill(dZeta);    
	  fhDPhiVsDThetaAll->Fill(dTheta, dPhi);
	  fhDPhiVsDZetaAll->Fill(dZeta, dPhi);
	}

	// make "elliptical" cut in Phi and Zeta! 
	Float_t d = TMath::Sqrt(dPhi*dPhi/fPhiWindowL2/fPhiWindowL2 + 
                                dZeta*dZeta/fZetaWindowL2/fZetaWindowL2);

	if (d>1) continue;      
	
	//look for the minimum distance: the minimum is in iC2WithBestDist
       	if (TMath::Sqrt(dZeta*dZeta+(r2*dPhi*r2*dPhi)) < distmin ) {
	  distmin=TMath::Sqrt(dZeta*dZeta + (r2*dPhi*r2*dPhi));
	  dPhimin = dPhi;
	  dThetamin = dTheta;
	  dZetamin = dZeta; 
	  iC2WithBestDist = iC2;
	}
      } 
    } // end of loop over clusters in layer 2 
    
    if (distmin<100) { // This means that a cluster in layer 2 was found that matches with iC1

      if (fHistOn && !lbkg) {
	fhClustersDPhiAcc->Fill(dPhimin);
	fhClustersDThetaAcc->Fill(dThetamin);    
	fhClustersDZetaAcc->Fill(dZetamin);    
	fhDPhiVsDThetaAcc->Fill(dThetamin, dPhimin);
	fhDPhiVsDZetaAcc->Fill(dZetamin, dPhimin);
      }
      
      if (fOnlyOneTrackletPerC2) fAssociationFlag[iC2WithBestDist] = kTRUE; 
       // flag the association
      
      // store the tracklet
      
      // use the theta from the clusters in the first layer
      fTracklets[fNTracklets][0] = fClustersLay1[iC1][0];
      // use the phi from the clusters in the first layer
      fTracklets[fNTracklets][1] = fClustersLay1[iC1][1];
      // Store the difference between phi1 and phi2
      fTracklets[fNTracklets][2] = fClustersLay1[iC1][1] - fClustersLay2[iC2WithBestDist][1];

      // find labels
      Int_t label1 = 0;
      Int_t label2 = 0;
      while (label2 < 3)
      {
        if ((Int_t) fClustersLay1[iC1][3+label1] != -2 && (Int_t) fClustersLay1[iC1][3+label1] == (Int_t) fClustersLay2[iC2WithBestDist][3+label2])
          break;
        label1++;
        if (label1 == 3)
        {
          label1 = 0;
          label2++;
        }
      }

      if (label2 < 3)
      {
        fTracklets[fNTracklets][3] = fClustersLay1[iC1][3+label1];
      }
      else
      {
        fTracklets[fNTracklets][3] = -2;
      }

      if (fHistOn && !lbkg) {
	Float_t eta=fTracklets[fNTracklets][0];
	eta= TMath::Tan(eta/2.);
	eta=-TMath::Log(eta);
	fhetaTracklets->Fill(eta);    
	fhphiTracklets->Fill(fTracklets[fNTracklets][1]);    
      }

// Check that this cluster is still in the same chip (here you pass also Zvtx for better computation)
      found=FindChip(key,1,vtx,fClustersLay2[iC2WithBestDist][0],fClustersLay2[iC2WithBestDist][1],fClustersLay2[iC2WithBestDist][2]);
      if(!found){
        AliDebug(1,
         Form("Reconstruct: cannot find chip on outer layer for cluster %d",iC2WithBestDist));
        key=999999;
      }
      nfClu2+=(Int_t)found; // this for debugging purpose
      ntClu2++;             // to check efficiency of the method FindChip
      if(key<1200) { // the Chip has been found
        if(fMC && !lbkg) { // this part only for MC
          // Int_t labc1=(Int_t)fClustersLay2[iC2WithBestDist][3];
          // Int_t labc2=(Int_t)fClustersLay2[iC2WithBestDist][4];
          // Int_t labc3=(Int_t)fClustersLay2[iC2WithBestDist][5];
          if (label2 < 3) {
            fSuccessTT[key]++;
            if(primary) fSuccessPP[key]++;
          }
          if (fUseOnlyDifferentParticle && label2 < 3) continue; // same label (reject it)
          if (fUseOnlySameParticle && label2 == 3) continue;      // different label (reject it)
        }

        if (key==fChipPredOnLay2[iC1]) { // this control seems too loose: has to be checked !
          				 // OK, success
                pe->UpDatePlaneEff(kTRUE,key); // success
                fChipUpdatedInEvent[key]=kTRUE; 
                if(fMC && !lbkg) {
                  if(primary)   fSuccessP[key]++;
                  if(secondary) fSuccessS[key]++;
                }
        }
        else {
                pe->UpDatePlaneEff(kTRUE,key); // this should not be a failure
                fChipUpdatedInEvent[key]=kTRUE;          // (might be in the tracking tollerance)
                if(fMC && !lbkg) {
                  if(primary)   fSuccessP[key]++;
                  if(secondary) fSuccessS[key]++;
                }
        }
      }

      fNTracklets++;

    } // if any cluster found --> increment statistics by 1 failure (provided you have chip prediction)
    else if (fChipPredOnLay2[iC1]<1200) {
      pe->UpDatePlaneEff(kFALSE,fChipPredOnLay2[iC1]);
      fChipUpdatedInEvent[fChipPredOnLay2[iC1]]=kTRUE;
      if(fMC && !lbkg) {
        if(primary)   fFailureP[fChipPredOnLay2[iC1]]++;
        if(secondary) fFailureS[fChipPredOnLay2[iC1]]++;
      }
    }
  } // end of loop over clusters in layer 1

    fNTracklets1=fNTracklets;

//###################################################################

  // Second part : Interpolation to Layer 1 

  // Loop on layer 2 
  for (Int_t iC2=0; iC2<fNClustersLay2; iC2++) {    

    // here the control to check whether the efficiency of the chip traversed by this tracklet
    // prediction has already been updated in this event using another tracklet prediction
    if(fUpdateOncePerEventPlaneEff && fChipPredOnLay1[iC2]<1200 && fChipUpdatedInEvent[fChipPredOnLay1[iC2]]) continue;

    // reset of variables for multiple candidates
    Int_t  iC1WithBestDist = 0;     // reset 
    Float_t distmin        = 100.;  // just to put a huge number! 
    Float_t dPhimin        = 0.;  // Used for histograms only! 
    Float_t dThetamin      = 0.;  // Used for histograms only! 
    Float_t dZetamin       = 0.;  // Used for histograms only! 

    // in any case, if MC has been required, store statistics of primaries and secondaries
    Bool_t primary=kFALSE; Bool_t secondary=kFALSE;
    if (fMC && !lbkg) {
       Int_t lab1=(Int_t)fClustersLay2[iC2][3];
       Int_t lab2=(Int_t)fClustersLay2[iC2][4];
       Int_t lab3=(Int_t)fClustersLay2[iC2][5];
       // do it always as a function of the chip number used to built the prediction
       found=FindChip(key,1,vtx,fClustersLay2[iC2][0],fClustersLay2[iC2][1],fClustersLay2[iC2][2]);
       if (!found) {AliDebug(1,
         Form("Reconstruct MC: cannot find chip on outer layer for cluster %d",iC2)); }
       else {
         if((lab1 != -2  &&  PrimaryTrackChecker(lab1,pStack) ) ||
            (lab2 != -2  &&  PrimaryTrackChecker(lab2,pStack) ) ||
            (lab3 != -2  &&  PrimaryTrackChecker(lab3,pStack))) 
         {  // this cluster is from a primary particle
            fClusterPrimary[key]++;
            primary=kTRUE;
            if(fUseOnlySecondaryForPred) continue; //  skip this tracklet built with a primary track
         } else { // this cluster is from a secondary particle
           fClusterSecondary[key]++;
           secondary=kTRUE;
           if(fUseOnlyPrimaryForPred) continue; //  skip this tracklet built with a secondary track
         }
       }
       // do it as a function of the chip number where you exspect the cluster (i.e. tracklet prediction)
       // (in case the prediction is reliable)
       if( fChipPredOnLay1[iC2]<1200) {
         if((lab1 != -2  &&  PrimaryTrackChecker(lab1,pStack) ) ||
            (lab2 != -2  &&  PrimaryTrackChecker(lab2,pStack) ) ||
            (lab3 != -2  &&  PrimaryTrackChecker(lab3,pStack)))   fPredictionPrimary[fChipPredOnLay1[iC2]]++;
         else fPredictionSecondary[fChipPredOnLay1[iC2]]++;
         if((lab1 != -2  &&  IsReconstructableAt(0,iC2,lab1,vtx,pStack,tRef)) ||
            (lab2 != -2  &&  IsReconstructableAt(0,iC2,lab2,vtx,pStack,tRef)) ||
            (lab3 != -2  &&  IsReconstructableAt(0,iC2,lab3,vtx,pStack,tRef))) fRecons[fChipPredOnLay1[iC2]]++;
         else fNonRecons[fChipPredOnLay1[iC2]]++;
       }
    }
    
    // Loop on layer 1 
    for (Int_t iC1=0; iC1<fNClustersLay1; iC1++) {
      
      // The following excludes double associations
      if (!fAssociationFlag1[iC1]) {
	
	// find the difference in angles
	Float_t dTheta = fClustersLay2[iC2][0] - fClustersLay1[iC1][0];
	Float_t dPhi   = TMath::Abs(fClustersLay2[iC2][1] - fClustersLay1[iC1][1]);
        // take into account boundary condition
        if (dPhi>TMath::Pi()) dPhi=2.*TMath::Pi()-dPhi;	


	// find the difference in z (between linear projection from layer 2
	// and the actual point: Dzeta= z2/r2*r1 -z1) 	
	Float_t r1    = fClustersLay1[iC1][2]/TMath::Cos(fClustersLay1[iC1][0]);
        Float_t dZeta = TMath::Cos(fClustersLay2[iC2][0])*r1 - fClustersLay1[iC1][2];


 	if (fHistOn && !lbkg) {
	  fhClustersDPhiInterpAll->Fill(dPhi);    
	  fhClustersDThetaInterpAll->Fill(dTheta);    
	  fhClustersDZetaInterpAll->Fill(dZeta);    
	  fhDPhiVsDThetaInterpAll->Fill(dTheta, dPhi);
	  fhDPhiVsDZetaInterpAll->Fill(dZeta, dPhi);
	}
	// make "elliptical" cut in Phi and Zeta! 
	Float_t d = TMath::Sqrt(dPhi*dPhi/fPhiWindowL1/fPhiWindowL1 + 
                                dZeta*dZeta/fZetaWindowL1/fZetaWindowL1);

	if (d>1) continue;      
	
	//look for the minimum distance: the minimum is in iC1WithBestDist
       	if (TMath::Sqrt(dZeta*dZeta+(r1*dPhi*r1*dPhi)) < distmin ) {
	  distmin=TMath::Sqrt(dZeta*dZeta + (r1*dPhi*r1*dPhi));
	  dPhimin = dPhi;
	  dThetamin = dTheta;
	  dZetamin = dZeta; 
	  iC1WithBestDist = iC1;
	}
      } 
    } // end of loop over clusters in layer 1 
    
    if (distmin<100) { // This means that a cluster in layer 1 was found that matches with iC2

      if (fHistOn && !lbkg) {
	fhClustersDPhiInterpAcc->Fill(dPhimin);
	fhClustersDThetaInterpAcc->Fill(dThetamin);    
	fhClustersDZetaInterpAcc->Fill(dZetamin);    
	fhDPhiVsDThetaInterpAcc->Fill(dThetamin, dPhimin);
	fhDPhiVsDZetaInterpAcc->Fill(dZetamin, dPhimin);
      }
      
      if (fOnlyOneTrackletPerC1) fAssociationFlag1[iC1WithBestDist] = kTRUE; // flag the association
       // flag the association
      
      // store the tracklet
      
      // use the theta from the clusters in the first layer
      fTracklets[fNTracklets][0] = fClustersLay2[iC2][0];
      // use the phi from the clusters in the first layer
      fTracklets[fNTracklets][1] = fClustersLay2[iC2][1];
      // Store the difference between phi1 and phi2
      fTracklets[fNTracklets][2] = fClustersLay2[iC2][1] - fClustersLay1[iC1WithBestDist][1];

      // find labels
      Int_t label1 = 0;
      Int_t label2 = 0;
      while (label2 < 3)
      {
        if ((Int_t) fClustersLay2[iC2][3+label1] != -2 && (Int_t) fClustersLay2[iC2][3+label1] == (Int_t) fClustersLay1[iC1WithBestDist][3+label2])
          break;
        label1++;
        if (label1 == 3)
        {
          label1 = 0;
          label2++;
        }
      }

      if (label2 < 3)
      {
        fTracklets[fNTracklets][3] = fClustersLay2[iC2][3+label1];
      }
      else
      {
        fTracklets[fNTracklets][3] = -2;
      }

// Check that this cluster is still in the same chip (here you pass also Zvtx for better computation)
      found=FindChip(key,0,vtx,fClustersLay1[iC1WithBestDist][0],fClustersLay1[iC1WithBestDist][1],fClustersLay1[iC1WithBestDist][2]);
      if(!found){
        AliDebug(1,
         Form("Reconstruct: cannot find chip on inner layer for cluster %d",iC1WithBestDist));
        key=999999;
      }
      nfClu1+=(Int_t)found; // this for debugging purpose
      ntClu1++;             // to check efficiency of the method FindChip
      if(key<1200) {
        if(fMC && !lbkg) { // this part only for MC
          // Int_t labc1=(Int_t)fClustersLay1[iC1WithBestDist][3];
          // Int_t labc2=(Int_t)fClustersLay1[iC1WithBestDist][4];
          // Int_t labc3=(Int_t)fClustersLay1[iC1WithBestDist][5];
          if (label2 < 3) { // same label 
            fSuccessTT[key]++;
            if(primary) fSuccessPP[key]++;
          }
          if (fUseOnlyDifferentParticle && label2 < 3) continue; // same label (reject it)
          if (fUseOnlySameParticle && label2 == 3) continue;      // different label (reject it)
        }

        if (key==fChipPredOnLay1[iC2]) { // this control seems too loose: has to be checked !
          				 // OK, success
                pe->UpDatePlaneEff(kTRUE,key); // success
                fChipUpdatedInEvent[key]=kTRUE;
                if(fMC && !lbkg) {
                  if(primary)   fSuccessP[key]++;
                  if(secondary) fSuccessS[key]++;
                }
        } else {
                pe->UpDatePlaneEff(kTRUE,key); // this should not be a failure
                fChipUpdatedInEvent[key]=kTRUE;          // (might be in the tracking tollerance)
                if(fMC && !lbkg) {
                  if(primary)   fSuccessP[key]++;
                  if(secondary) fSuccessS[key]++;
                }
        }
      }

    fNTracklets++;

    } // if no cluster found --> increment statistics by 1 failure (provided you have chip prediction)
    else if (fChipPredOnLay1[iC2]<1200) {
      pe->UpDatePlaneEff(kFALSE,fChipPredOnLay1[iC2]);
      fChipUpdatedInEvent[fChipPredOnLay1[iC2]]=kTRUE;
      if(fMC && !lbkg) {
        if(primary)   fFailureP[fChipPredOnLay1[iC2]]++;
        if(secondary) fFailureS[fChipPredOnLay1[iC2]]++;
      }
    }
  } // end of loop over clusters in layer 2
  
  AliDebug(1,Form("%d tracklets found", fNTracklets));
  AliDebug(1,Form(("Eff. of method FindChip for Track pred. on lay 1 = %d / %d"),nfTraPred1,ntTraPred1));
  AliDebug(1,Form(("Eff. of method FindChip for Track pred. on lay 2 = %d / %d"),nfTraPred2,ntTraPred2));
  AliDebug(1,Form(("Eff. of method FindChip for Cluster on lay 1 = %d / %d"),nfClu1,ntClu1));
  AliDebug(1,Form(("Eff. of method FindChip for Cluster on lay 2 = %d / %d"),nfClu2,ntClu2));
}
//____________________________________________________________________
Bool_t AliITSTrackleterSPDEff::FindChip(UInt_t &key, Int_t layer,const  Float_t* vtx, 
                                  Float_t thetaVtx, Float_t phiVtx, Float_t zVtx) {
//
// Input: a) layer number in the range [0,1]
//        b) vtx[3]: actual vertex 
//        c) zVtx     \ z of the cluster (-999 for tracklet) computed with respect to vtx
//        d) thetaVtx  > theta and phi of the cluster/tracklet computed with respect to vtx
//        e) phiVtx   /
// Output: Unique key to locate a chip
// return: kTRUE if succesfull

    if(layer<0 || layer >1) {AliWarning("Wrong layer: should be 0 or 1!"); return kFALSE;}
    Double_t r=GetRLayer(layer);
    //AliInfo(Form("Radius on layer %d  is %f cm",layer,r));

  // set phiVtx in the range [0,2pi]
  if(!SetAngleRange02Pi(phiVtx)) return kFALSE ;
  
  Double_t zAbs,phiAbs; // those are the polar coordinate, in the Absolute ALICE Reference 
                        // of the intersection of the tracklet with the pixel layer.  
  if (TMath::Abs(zVtx)<100) zAbs=zVtx + vtx[2]; // this is fine only for the cluster, not for the track prediction
  else {
    if(TMath::Abs(thetaVtx)<1E-6) return kFALSE;
    zAbs=r/TMath::Tan(thetaVtx) + vtx[2]; // this is the only way to do for the tracklet prediction
  }
  AliDebug(1,Form("FindChip: vtx[0] = %f, vtx[1] = %f, vtx[2] = %f",vtx[0],vtx[1],vtx[2]));
  Double_t vtxy[2]={vtx[0],vtx[1]};
  if (vtxy[0]*vtxy[1]+vtxy[1]*vtxy[1]>0) { // this method holds only for displaced vertices 
    // this method gives you two interceptions
    if (!FindIntersectionPolar(vtxy,(Double_t)phiVtx,r,phiAbs)) return kFALSE;
    // set phiAbs in the range [0,2pi]
    if(!SetAngleRange02Pi(phiAbs)) return kFALSE; 
    // since Vtx is very close to the ALICE origin, then phiVtx and phiAbs are very close; 
    // therofore you can select the right intersection (among phiAbs1 and phiAbs2) by 
    // taking the closest one to phiVtx
    AliDebug(1,Form("PhiVtx= %f, PhiAbs= %f",phiVtx,phiAbs));
  } else phiAbs=phiVtx;
  Int_t idet=FindDetectorIndex(layer,phiAbs,zAbs); // this is the detector number 

  // now you need to locate the chip within the idet detector, 
  // starting from the local coordinates in such a detector

  Float_t locx; // local Cartesian coordinate (to be determined) corresponding to 
  Float_t locz; // the Global Cilindrica coordinate (r,phiAbs,zAbs) . 
  if(!FromGloCilToLocCart(layer,idet,r,phiAbs,zAbs, locx, locz)) return kFALSE; 

  key=fPlaneEffSPD->GetKeyFromDetLocCoord(layer,idet,locx,locz); 
  return kTRUE;
}
//______________________________________________________________________________
Double_t AliITSTrackleterSPDEff::GetRLayer(Int_t layer) {
//
//  Return the average radius of a layer from Geometry
//
    if(layer<0 || layer >1) {AliWarning("Wrong layer: should be 0 or 1!"); return -999.;}
    Int_t i=layer+1; // in AliITSgeomTGeo you count from 1 to 6 !

    Double_t xyz[3], &x=xyz[0], &y=xyz[1];
    AliITSgeomTGeo::GetOrigTranslation(i,1,1,xyz);
    Double_t r=TMath::Sqrt(x*x + y*y);

    AliITSgeomTGeo::GetOrigTranslation(i,1,2,xyz);
    r += TMath::Sqrt(x*x + y*y);
    AliITSgeomTGeo::GetOrigTranslation(i,2,1,xyz);
    r += TMath::Sqrt(x*x + y*y);
    AliITSgeomTGeo::GetOrigTranslation(i,2,2,xyz);
    r += TMath::Sqrt(x*x + y*y);
    r*=0.25;
    return r;
}
//______________________________________________________________________________
Bool_t AliITSTrackleterSPDEff::FromGloCilToLocCart(Int_t ilayer,Int_t idet, Double_t r, Double_t phi, Double_t z, 
                           Float_t &xloc, Float_t &zloc) {
  // this method transform Global Cilindrical coordinates into local (i.e. module) 
  // cartesian coordinates
  //
  //Compute Cartesian Global Coordinate
  Double_t xyzGlob[3],xyzLoc[3];
  xyzGlob[2]=z;
  xyzGlob[0]=r*TMath::Cos(phi);
  xyzGlob[1]=r*TMath::Sin(phi);

  xloc=0.;
  zloc=0.;

  if(idet<0)  return kFALSE;

  Int_t ndet=AliITSgeomTGeo::GetNDetectors(ilayer+1); // layers from 1 to 6
  Int_t lad = Int_t(idet/ndet) + 1;
  Int_t det = idet - (lad-1)*ndet + 1;

  AliITSgeomTGeo::GlobalToLocal(ilayer+1,lad,det,xyzGlob,xyzLoc);

  xloc = (Float_t)xyzLoc[0];
  zloc = (Float_t)xyzLoc[2];

return kTRUE;
}
//______________________________________________________________________________
Int_t AliITSTrackleterSPDEff::FindDetectorIndex(Int_t layer, Double_t phi, Double_t z) {
  //--------------------------------------------------------------------
  // This function finds the detector crossed by the track
  // Input: layer in range [0,1]
  //        phi   in ALICE absolute reference system
  //         z     "  "       "         "        "
  //--------------------------------------------------------------------
    if(layer<0 || layer >1) {AliWarning("Wrong layer: should be 0 or 1!"); return -1;}
    Int_t i=layer+1; // in AliITSgeomTGeo you count from 1 to 6 !
    Int_t nladders=AliITSgeomTGeo::GetNLadders(i);
    Int_t ndetectors=AliITSgeomTGeo::GetNDetectors(i);

    Double_t xyz[3], &x=xyz[0], &y=xyz[1], &z2=xyz[2];
    AliITSgeomTGeo::GetOrigTranslation(i,1,1,xyz);
    Double_t phiOffset=TMath::ATan2(y,x);
    Double_t zOffset=z2;

  Double_t dphi;
  if (zOffset<0)            // old geometry
    dphi = -(phi-phiOffset);
  else                       // new geometry
    dphi = phi-phiOffset;

  if      (dphi <  0) dphi += 2*TMath::Pi();
  else if (dphi >= 2*TMath::Pi()) dphi -= 2*TMath::Pi();
  Int_t np=Int_t(dphi*nladders*0.5/TMath::Pi()+0.5);
  if (np>=nladders) np-=nladders;
  if (np<0)          np+=nladders;

  Double_t dz=zOffset-z;
  Double_t nnz = dz*(ndetectors-1)*0.5/zOffset+0.5;
  Int_t nz = (nnz<0 ? -1 : (Int_t)nnz);
  if (nz>=ndetectors) {AliDebug(1,Form("too  long: nz =%d",nz)); return -1;}
  if (nz<0)           {AliDebug(1,Form("too short: nz =%d",nz)); return -1;}

  return np*ndetectors + nz;
}
//____________________________________________________________
Bool_t AliITSTrackleterSPDEff::FindIntersectionPolar(Double_t vtx[2],Double_t phiVtx, Double_t R,Double_t &phi) {
// this method find the intersection in xy between a tracklet (straight line) and 
// a circonference (r=R), using polar coordinates. 
/*
Input: - vtx[2]: actual vertex w.r.t. ALICE reference system
       - phiVtx: phi angle of the line (tracklet) computed w.r.t. vtx
       - R: radius of the circle
Output: - phi : phi angle of the unique interception in the ALICE Global ref. system 

Correct method below: you have the equation of a circle (in polar coordinate) w.r.t. Actual vtx:
r^2-2*r*r0*cos(phi-phi0) + r0^2 = R^2 , where (r0,phi0) is the centre of the circle
In the same system, the equation of a semi-line is: phi=phiVtx;
Hence you get one interception only: P=(r,phiVtx)
Finally you want P in the ABSOLUTE ALICE reference system.
*/
Double_t rO=TMath::Sqrt(vtx[0]*vtx[0]+vtx[1]*vtx[1]); // polar coordinates of the ALICE origin
Double_t phiO=TMath::ATan2(-vtx[1],-vtx[0]);          // in the system with vtx[2] as origin
Double_t bB=-2.*rO*TMath::Cos(phiVtx-phiO);
Double_t cC=rO*rO-R*R;
Double_t dDelta=bB*bB-4*cC;
if(dDelta<0) return kFALSE;
Double_t r1,r2;
r1=(-bB-TMath::Sqrt(dDelta))/2;
r2=(-bB+TMath::Sqrt(dDelta))/2;
if(r1*r2>0) { printf("allora non hai capito nulla \n"); return kFALSE;}
Double_t r=TMath::Max(r1,r2); // take the positive
Double_t pvtx[2]; // Cartesian coordinates of the interception w.r.t. vtx
Double_t pP[2]; // Cartesian coordinates of the interception w.r.t. ALICE origin
pvtx[0]=r*TMath::Cos(phiVtx);
pvtx[1]=r*TMath::Sin(phiVtx);
pP[0]=vtx[0]+pvtx[0];
pP[1]=vtx[1]+pvtx[1];
phi=TMath::ATan2(pP[1],pP[0]);
return kTRUE;
}
//___________________________________________________________
Bool_t AliITSTrackleterSPDEff::SetAngleRange02Pi(Double_t &angle) const {
//
//  simple method to reduce all angles (in rad)
//  in range [0,2pi[
//
//
while(angle >=2*TMath::Pi() || angle<0) {
  if(angle >= 2*TMath::Pi()) angle-=2*TMath::Pi();
  if(angle < 0) angle+=2*TMath::Pi();
}
return kTRUE;
}
//___________________________________________________________
Bool_t AliITSTrackleterSPDEff::PrimaryTrackChecker(Int_t ipart,AliStack* stack) {
//
//  This method check if a particle is primary; i.e.  
//  it comes from the main vertex and it is a "stable" particle, according to 
//  AliStack::IsPhysicalPrimary() (note that there also Sigma0 are considered as 
//  a stable particle: it has no effect on this analysis). 
//  This method can be called only for MC events, where Kinematics is available.
//  if fUseOnlyStableParticle is kTRUE (via SetUseOnlyStableParticle) then it 
//  returns kTRUE if also AliITSTrackleterSPDEff::DecayingTrackChecker() return 0.
//  The latter (see below) try to verify if a primary particle is also "detectable".
//
if(!fMC) {AliError("This method works only if SetMC() has been called"); return kFALSE;}
if(!stack) {AliError("null pointer to MC stack"); return kFALSE;}
if(ipart >= stack->GetNtrack()) {AliError("this track label is not in MC stack"); return kFALSE;}
// return stack->IsPhysicalPrimary(ipart); // looking at AliStack.cxx this does not seem to be complete (e.g. Pi0 Dalitz)
 if(!stack->IsPhysicalPrimary(ipart)) return kFALSE; 
 // like below: as in the correction for Multiplicity (i.e. by hand in macro)
 TParticle* part = stack->Particle(ipart);
 TParticle* part0 = stack->Particle(0); // first primary
 TParticle* partl = stack->Particle(stack->GetNprimary()-1); //last primary
 if (part0->Vx()-partl->Vx()>0) AliDebug(1,Form("Difference in vtx position between 1th and last primaries %f %f %f",
            part0->Vx()-partl->Vx(),part0->Vy()-partl->Vy(), part0->Vz()-partl->Vz() ));

 if (!part || strcmp(part->GetName(),"XXX")==0) {AliWarning("String , not particle ??") ;return kFALSE; }
 TParticlePDG* pdgPart = part->GetPDG();
 if (TMath::Abs(pdgPart->Charge()) < 3) {AliWarning("This seems a quark"); return kFALSE;}
 
  Double_t distx = part->Vx() - part0->Vx();
  Double_t disty = part->Vy() - part0->Vy();
  Double_t distz = part->Vz() - part0->Vz();
  Double_t distR=TMath::Sqrt(distx*distx + disty*disty + distz*distz);

  if (distR > 0.05) {AliDebug(1,Form("True vertex should be %f %f, this particle from %f %f ",
                                 part0->Vx(),part0->Vy(),part->Vx(),part->Vy()));
                      return kFALSE; }// primary if within 500 microns from true Vertex

 if(fUseOnlyStableParticle && DecayingTrackChecker(ipart,stack)>0) return kFALSE; 
 return kTRUE;
}
//_____________________________________________________________________________________________
Int_t AliITSTrackleterSPDEff::DecayingTrackChecker(Int_t ipart,AliStack* stack) {
//
// This private method can be applied on MC particles (if stack is available),  
// provided they have been identified as "primary" from PrimaryTrackChecker() (see above).
//   
// It define "detectable" a primary particle according to the following criteria:
//
// - if no decay products can be found in the stack (note that this does not 
//     means it is stable, since a particle is stored in stack if it has at least 1 hit in a 
//     sensitive detector)
// - if it has at least one decay daughter produced outside or just on the outer pixel layer 
// - if the last decay particle is an electron (or a muon) which is not produced in-between 
//     the two pixel layers (this is likely to be a kink).
if(!fMC) {AliError("This method works only if SetMC() has been called"); return 0;}
if(!stack) {AliError("null pointer to MC stack"); return 0;}
if(ipart >= stack->GetNtrack()) {AliError("this track label is not in MC stack"); return 0;}

TParticle* part = stack->Particle(ipart);
//TParticle* part0 = stack->Particle(0); // first primary

  Int_t nret=0;
  TParticle* dau = 0;
  //  Int_t nDau = 0;
  Int_t pdgDau;
  Int_t firstDau = part->GetFirstDaughter(); // if no daugther stored then no way to understand i
                                             // its real fate ! But you have to take it !
  if (firstDau > 0) { // if it has daugther(s) try to infer if it is "detectable" as a tracklet
    Int_t lastDau = part->GetLastDaughter();
    //    nDau = lastDau - firstDau + 1;
    Double_t distMax=0.;
    Int_t jmax=0;
    for(Int_t j=firstDau; j<=lastDau; j++)  {
      dau = stack->Particle(j);
      Double_t distx = dau->Vx();
      Double_t disty = dau->Vy();
      //Double_t distz = dau->Vz();
      Double_t distR = TMath::Sqrt(distx*distx+disty*disty);
      if(distR<distMax) continue; // considere only the daughter produced at largest radius
      distMax=distR;
      jmax=j;
    }
    dau = stack->Particle(jmax);
    pdgDau=dau->GetPdgCode();
    if (pdgDau == 11 || pdgDau == 13 ) {
       if(distMax < GetRLayer(1)-0.25 && distMax > GetRLayer(0)+0.27) nret=1; // can be a kink (reject it)
       else nret =0; // delta-ray emission in material  (keep it)
    }
    else {// not ele or muon
      if (distMax < GetRLayer(1)-0.25 )  nret= 1;}  // decay before the second pixel layer (reject it)
    }
return nret;
}
//_________________________________________________________________
void AliITSTrackleterSPDEff::InitPredictionMC() {
//
// this method allocate memory for the MC related informations
// all the counters are set to 0
//
//
if(!fMC) {AliError("This method works only if SetMC() has been called"); return;}
fPredictionPrimary   = new Int_t[1200];
fPredictionSecondary = new Int_t[1200];
fClusterPrimary      = new Int_t[1200];
fClusterSecondary    = new Int_t[1200];
fSuccessPP           = new Int_t[1200];
fSuccessTT           = new Int_t[1200];
fSuccessS            = new Int_t[1200];
fSuccessP            = new Int_t[1200];
fFailureS            = new Int_t[1200];
fFailureP            = new Int_t[1200];
fRecons              = new Int_t[1200];
fNonRecons           = new Int_t[1200];
for(Int_t i=0; i<1200; i++) {
 fPredictionPrimary[i]=0;
 fPredictionSecondary[i]=0; 
 fPredictionSecondary[i]=0;
 fClusterSecondary[i]=0;
 fSuccessPP[i]=0;
 fSuccessTT[i]=0;
 fSuccessS[i]=0;
 fSuccessP[i]=0;
 fFailureS[i]=0;
 fFailureP[i]=0;
 fRecons[i]=0;
 fNonRecons[i]=0;
}
return;
}
//_________________________________________________________________
void AliITSTrackleterSPDEff::DeletePredictionMC() {
//
// this method deallocate memory for the MC related informations
// all the counters are set to 0
//
//
if(fMC) {AliInfo("This method works only if fMC=kTRUE"); return;}
if(fPredictionPrimary) {
  delete fPredictionPrimary; fPredictionPrimary=0;
}
if(fPredictionSecondary) {
  delete fPredictionSecondary; fPredictionSecondary=0;
}
if(fClusterPrimary) {
  delete fClusterPrimary; fClusterPrimary=0;
}
if(fClusterSecondary) {
  delete fClusterSecondary; fClusterSecondary=0;
}
if(fSuccessPP) {
  delete fSuccessPP; fSuccessPP=0;
}
if(fSuccessTT) {
  delete fSuccessTT; fSuccessTT=0;
}
if(fSuccessS) {
  delete fSuccessS; fSuccessS=0;
}
if(fSuccessP) {
  delete fSuccessP; fSuccessP=0;
}
if(fFailureS) {
  delete fFailureS; fFailureS=0;
}
if(fFailureP) {
  delete fFailureP; fFailureP=0;
}
if(fRecons) {
  delete fRecons; fRecons=0;
}
if(fNonRecons) {
  delete fNonRecons; fNonRecons=0;
}
return;
}
//______________________________________________________________________
Int_t AliITSTrackleterSPDEff::GetPredictionPrimary(const UInt_t key) const {
//
// This method return the Data menmber fPredictionPrimary [1200].
// You can call it only for MC events.
// fPredictionPrimary[key] contains the number of tracklet predictions on the
// given chip key built using  a cluster on the other layer produced (at least)
// from a primary particle.
// Key refers to the chip crossed by the prediction 
//
//
if (!fMC) {CallWarningMC(); return 0;}
if (key>=1200) {AliWarning("You asked for a non existing chip"); return -999;}
return fPredictionPrimary[(Int_t)key];
}
//______________________________________________________________________
Int_t AliITSTrackleterSPDEff::GetPredictionSecondary(const UInt_t key) const {
//
// This method return the Data menmber fPredictionSecondary [1200].
// You can call it only for MC events.
// fPredictionSecondary[key] contains the number of tracklet predictions on the
// given chip key built using  a cluster on the other layer produced (only)
// from a secondary particle
// Key refers to the chip crossed by the prediction 
//
//
if (!fMC) {CallWarningMC(); return 0;}
if (key>=1200) {AliWarning("You asked for a non existing chip"); return -999;}
return fPredictionSecondary[(Int_t)key];
}
//______________________________________________________________________
Int_t AliITSTrackleterSPDEff::GetClusterPrimary(const UInt_t key) const {
//
// This method return the Data menmber fClusterPrimary [1200].
// You can call it only for MC events.
// fClusterPrimary[key] contains the number of tracklet predictions 
// built using  a cluster on that layer produced (only)
// from a primary particle
// Key refers to the chip used to build the prediction
//
//
if (!fMC) {CallWarningMC(); return 0;}
if (key>=1200) {AliWarning("You asked for a non existing chip"); return -999;}
return fClusterPrimary[(Int_t)key];
}
//______________________________________________________________________
Int_t AliITSTrackleterSPDEff::GetClusterSecondary(const UInt_t key) const {
//
// This method return the Data menmber fClusterSecondary [1200].
// You can call it only for MC events.
// fClusterSecondary[key] contains the number of tracklet predictions
// built using  a cluster on that layer produced (only)
// from a secondary particle
// Key refers to the chip used to build the prediction
//
if (!fMC) {CallWarningMC(); return 0;}
if (key>=1200) {AliWarning("You asked for a non existing chip"); return -999;}
return fClusterSecondary[(Int_t)key];
}
//______________________________________________________________________
Int_t AliITSTrackleterSPDEff::GetSuccessPP(const UInt_t key) const {
//
// This method return the Data menmber fSuccessPP [1200].
// You can call it only for MC events.
// fSuccessPP[key] contains the number of successes (i.e. a tracklet prediction matching
// with a cluster on the other layer) built by using the same primary particle
// the unique chip key refers to the chip which get updated its efficiency
//
if (!fMC) {CallWarningMC(); return 0;}
if (key>=1200) {AliWarning("You asked for a non existing chip"); return -999;}
return fSuccessPP[(Int_t)key];
}
//______________________________________________________________________
Int_t AliITSTrackleterSPDEff::GetSuccessTT(const UInt_t key) const {
//
// This method return the Data menmber fSuccessTT [1200].
// You can call it only for MC events.
// fSuccessTT[key] contains the number of successes (i.e. a tracklet prediction matching
// with a cluster on the other layer) built by using the same  particle (whatever)
// the unique chip key refers to the chip which get updated its efficiency
//
if (!fMC) {CallWarningMC(); return 0;}
if (key>=1200) {AliWarning("You asked for a non existing chip"); return -999;}
return fSuccessTT[(Int_t)key];
}
//______________________________________________________________________
Int_t AliITSTrackleterSPDEff::GetSuccessS(const UInt_t key) const {
//
// This method return the Data menmber fSuccessS [1200].
// You can call it only for MC events.
// fSuccessS[key] contains the number of successes (i.e. a tracklet prediction matching
// with a cluster on the other layer) built by using a secondary particle
// the unique chip key refers to the chip which get updated its efficiency
//
if (!fMC) {CallWarningMC(); return 0;}
if (key>=1200) {AliWarning("You asked for a non existing chip"); return -999;}
return fSuccessS[(Int_t)key];
}
//______________________________________________________________________
Int_t AliITSTrackleterSPDEff::GetSuccessP(const UInt_t key) const {
//
// This method return the Data menmber fSuccessP [1200].
// You can call it only for MC events.
// fSuccessP[key] contains the number of successes (i.e. a tracklet prediction matching
// with a cluster on the other layer) built by using a primary particle
// the unique chip key refers to the chip which get updated its efficiency
//
if (!fMC) {CallWarningMC(); return 0;}
if (key>=1200) {AliWarning("You asked for a non existing chip"); return -999;}
return fSuccessP[(Int_t)key];
}
//______________________________________________________________________
Int_t AliITSTrackleterSPDEff::GetFailureS(const UInt_t key) const {
//
// This method return the Data menmber fFailureS [1200].
// You can call it only for MC events.
// fFailureS[key] contains the number of failures (i.e. a tracklet prediction not matching
// with a cluster on the other layer) built by using a secondary particle
// the unique chip key refers to the chip which get updated its efficiency
//
if (!fMC) {CallWarningMC(); return 0;}
if (key>=1200) {AliWarning("You asked for a non existing chip"); return -999;}
return fFailureS[(Int_t)key];
}
//______________________________________________________________________
Int_t AliITSTrackleterSPDEff::GetFailureP(const UInt_t key) const {
//
// This method return the Data menmber fFailureP [1200].
// You can call it only for MC events.
// fFailureP[key] contains the number of failures (i.e. a tracklet prediction not matching
// with a cluster on the other layer) built by using a primary particle
// the unique chip key refers to the chip which get updated its efficiency
//
if (!fMC) {CallWarningMC(); return 0;}
if (key>=1200) {AliWarning("You asked for a non existing chip"); return -999;}
return fFailureP[(Int_t)key];
}
//_____________________________________________________________________
Int_t AliITSTrackleterSPDEff::GetRecons(const UInt_t key) const {
//
// This method return the Data menmber fRecons [1200].
// You can call it only for MC events.
// fRecons[key] contains the number of reconstractable tracklets (i.e. a tracklet prediction which
// has an hit in the detector)
// the unique chip key refers to the chip where fall the prediction
//
if (!fMC) {CallWarningMC(); return 0;}
if (key>=1200) {AliWarning("You asked for a non existing chip"); return -999;}
return fRecons[(Int_t)key];
}
//_____________________________________________________________________
Int_t AliITSTrackleterSPDEff::GetNonRecons(const UInt_t key) const {
//
// This method return the Data menmber fNonRecons [1200].
// You can call it only for MC events.
// fRecons[key] contains the number of unreconstractable tracklets (i.e. a tracklet prediction which
// has not any hit in the detector)
// the unique chip key refers to the chip where fall the prediction
//
if (!fMC) {CallWarningMC(); return 0;}
if (key>=1200) {AliWarning("You asked for a non existing chip"); return -999;}
return fNonRecons[(Int_t)key];
}
//______________________________________________________________________
void AliITSTrackleterSPDEff::PrintAscii(ostream *os)const{
    // Print out some class data values in Ascii Form to output stream
    // Inputs:
    //   ostream *os   Output stream where Ascii data is to be writen
    // Outputs:
    //   none.
    // Return:
    //   none.
    *os << fPhiWindowL1 <<" "<< fZetaWindowL1 << " " << fPhiWindowL2 <<" "<< fZetaWindowL2 
        << " " << fOnlyOneTrackletPerC1 << " " << fOnlyOneTrackletPerC2 
        << " " << fUpdateOncePerEventPlaneEff << " " << fMinContVtx 
        << " " << fReflectClusterAroundZAxisForLayer0
        << " " << fReflectClusterAroundZAxisForLayer1;
    *os << " " << fMC;
    if(!fMC) {AliInfo("Writing only cuts, no MC info"); return;}
    *os << " " << fUseOnlyPrimaryForPred << " " << fUseOnlySecondaryForPred
        << " " << fUseOnlySameParticle   << " " << fUseOnlyDifferentParticle
        << " " << fUseOnlyStableParticle ;
    for(Int_t i=0;i<1200;i++) *os <<" "<< GetPredictionPrimary(i)  ;
    for(Int_t i=0;i<1200;i++) *os <<" "<< GetPredictionSecondary(i) ;
    for(Int_t i=0;i<1200;i++) *os <<" "<< GetClusterPrimary(i) ;
    for(Int_t i=0;i<1200;i++) *os <<" "<< GetClusterSecondary(i) ;
    for(Int_t i=0;i<1200;i++) *os <<" "<< GetSuccessPP(i) ;
    for(Int_t i=0;i<1200;i++) *os <<" "<< GetSuccessTT(i) ;
    for(Int_t i=0;i<1200;i++) *os <<" "<< GetSuccessS(i) ;
    for(Int_t i=0;i<1200;i++) *os <<" "<< GetSuccessP(i) ;
    for(Int_t i=0;i<1200;i++) *os <<" "<< GetFailureS(i) ;
    for(Int_t i=0;i<1200;i++) *os <<" "<< GetFailureP(i) ;
    for(Int_t i=0;i<1200;i++) *os <<" "<< GetRecons(i) ;
    for(Int_t i=0;i<1200;i++) *os <<" "<< GetNonRecons(i) ;
    return;
}
//______________________________________________________________________
void AliITSTrackleterSPDEff::ReadAscii(istream *is){
    // Read in some class data values in Ascii Form to output stream
    // Inputs:
    //   istream *is   Input stream where Ascii data is to be read in from
    // Outputs:
    //   none.
    // Return:
    //   none.

    Bool_t tmp= fMC;
    *is >> fPhiWindowL1 >> fZetaWindowL1 >> fPhiWindowL2 >> fZetaWindowL2 
        >> fOnlyOneTrackletPerC1 >> fOnlyOneTrackletPerC2  
        >> fUpdateOncePerEventPlaneEff >> fMinContVtx 
        >> fReflectClusterAroundZAxisForLayer0
        >> fReflectClusterAroundZAxisForLayer1;
    //if(!fMC) {AliInfo("Reading only cuts, no MC info available");return;}
    *is >> fMC;
    if(!fMC) {AliInfo("Reading only cuts, no MC info"); if(tmp) SetMC(kFALSE); }
    else {
      if(!tmp) {AliInfo("Calling SetMC() to read this file wtih MC info"); SetMC();}
      *is >> fUseOnlyPrimaryForPred >> fUseOnlySecondaryForPred
          >> fUseOnlySameParticle   >> fUseOnlyDifferentParticle
          >> fUseOnlyStableParticle;
      for(Int_t i=0;i<1200;i++) *is >> fPredictionPrimary[i] ;
      for(Int_t i=0;i<1200;i++) *is >> fPredictionSecondary[i] ;
      for(Int_t i=0;i<1200;i++) *is >> fClusterPrimary[i] ;
      for(Int_t i=0;i<1200;i++) *is >> fClusterSecondary[i] ;
      for(Int_t i=0;i<1200;i++) *is >> fSuccessPP[i] ;
      for(Int_t i=0;i<1200;i++) *is >> fSuccessTT[i] ;
      for(Int_t i=0;i<1200;i++) *is >> fSuccessS[i] ;
      for(Int_t i=0;i<1200;i++) *is >> fSuccessP[i] ;
      for(Int_t i=0;i<1200;i++) *is >> fFailureS[i] ;
      for(Int_t i=0;i<1200;i++) *is >> fFailureP[i] ;
      for(Int_t i=0;i<1200;i++) *is >> fRecons[i] ;
      for(Int_t i=0;i<1200;i++) *is >> fNonRecons[i] ;
    } 
    return;
}
//______________________________________________________________________
ostream &operator<<(ostream &os,const AliITSTrackleterSPDEff &s){
    // Standard output streaming function
    // Inputs:
    //   ostream            &os  output steam
    //   AliITSTrackleterSPDEff &s class to be streamed.
    // Output:
    //   none.
    // Return:
    //   ostream &os  The stream pointer

    s.PrintAscii(&os);
    return os;
}
//______________________________________________________________________
istream &operator>>(istream &is,AliITSTrackleterSPDEff &s){
    // Standard inputput streaming function
    // Inputs:
    //   istream            &is  input steam
    //   AliITSTrackleterSPDEff &s class to be streamed.
    // Output:
    //   none.
    // Return:
    //   ostream &os  The stream pointer

    //printf("prova %d \n", (Int_t)s.GetMC());
    s.ReadAscii(&is);
    return is;
}
//______________________________________________________________________
void AliITSTrackleterSPDEff::SavePredictionMC(TString filename) const {
//
// This Method write into an either asci or root file 
// the used cuts and the statistics  of the MC related quantities
// The method SetMC() has to be called before 
// Input TString filename: name of file for output (it deletes already existing 
// file)
// Output: none
//
//
 //if(!fMC) {CallWarningMC(); return;}
 if (!filename.Contains(".root")) {
   ofstream out(filename.Data(),ios::out | ios::binary);
   out << *this;
   out.close();
   return;
 }
 else {
    TFile* mcfile = TFile::Open(filename, "RECREATE");
    TH1F* cuts = new TH1F("cuts", "list of cuts", 11, 0, 11); // TH1I containing cuts 
    cuts->SetBinContent(1,fPhiWindowL1);
    cuts->SetBinContent(2,fZetaWindowL1);
    cuts->SetBinContent(3,fPhiWindowL2);
    cuts->SetBinContent(4,fZetaWindowL2);
    cuts->SetBinContent(5,fOnlyOneTrackletPerC1);
    cuts->SetBinContent(6,fOnlyOneTrackletPerC2);
    cuts->SetBinContent(7,fUpdateOncePerEventPlaneEff);
    cuts->SetBinContent(8,fMinContVtx);
    cuts->SetBinContent(9,fReflectClusterAroundZAxisForLayer0);
    cuts->SetBinContent(10,fReflectClusterAroundZAxisForLayer1);
    cuts->SetBinContent(11,fMC);
    cuts->Write();
    delete cuts;
    if(!fMC) {AliInfo("Writing only cuts, no MC info");}
    else {
      TH1C* mc0 = new TH1C("mc0", "mc cuts", 5, 0, 5);
      mc0->SetBinContent(1,fUseOnlyPrimaryForPred);
      mc0->SetBinContent(2,fUseOnlySecondaryForPred);
      mc0->SetBinContent(3,fUseOnlySameParticle);
      mc0->SetBinContent(4,fUseOnlyDifferentParticle);
      mc0->SetBinContent(5,fUseOnlyStableParticle);
      mc0->Write();
      delete mc0;
      TH1I *mc1;
      mc1 = new TH1I("mc1", "mc info PredictionPrimary", 1200, 0, 1200); 
      for(Int_t i=0;i<1200;i++)  mc1->SetBinContent(i+1,GetPredictionPrimary(i)) ;
      mc1->Write();
      mc1 = new TH1I("mc2", "mc info PredictionSecondary", 1200, 0, 1200); 
      for(Int_t i=0;i<1200;i++)  mc1->SetBinContent(i+1,GetPredictionSecondary(i)) ;
      mc1->Write();
      mc1 = new TH1I("mc3", "mc info ClusterPrimary", 1200, 0, 1200); 
      for(Int_t i=0;i<1200;i++)  mc1->SetBinContent(i+1,GetClusterPrimary(i)) ;
      mc1->Write();
      mc1 = new TH1I("mc4", "mc info ClusterSecondary", 1200, 0, 1200);
      for(Int_t i=0;i<1200;i++)  mc1->SetBinContent(i+1,GetClusterSecondary(i)) ;
      mc1->Write();
      mc1 = new TH1I("mc5", "mc info SuccessPP", 1200, 0, 1200);
      for(Int_t i=0;i<1200;i++)  mc1->SetBinContent(i+1,GetSuccessPP(i)) ;
      mc1->Write();
      mc1 = new TH1I("mc6", "mc info SuccessTT", 1200, 0, 1200);
      for(Int_t i=0;i<1200;i++)  mc1->SetBinContent(i+1,GetSuccessTT(i)) ;
      mc1->Write();
      mc1 = new TH1I("mc7", "mc info SuccessS", 1200, 0, 1200);
      for(Int_t i=0;i<1200;i++)  mc1->SetBinContent(i+1,GetSuccessS(i)) ;
      mc1->Write();
      mc1 = new TH1I("mc8", "mc info SuccessP", 1200, 0, 1200);
      for(Int_t i=0;i<1200;i++)  mc1->SetBinContent(i+1,GetSuccessP(i)) ;
      mc1->Write();
      mc1 = new TH1I("mc9", "mc info FailureS", 1200, 0, 1200);
      for(Int_t i=0;i<1200;i++)  mc1->SetBinContent(i+1,GetFailureS(i)) ;
      mc1->Write();
      mc1 = new TH1I("mc10", "mc info FailureP", 1200, 0, 1200);
      for(Int_t i=0;i<1200;i++)  mc1->SetBinContent(i+1,GetFailureP(i)) ;
      mc1->Write();
      mc1 = new TH1I("mc11", "mc info Recons", 1200, 0, 1200);
      for(Int_t i=0;i<1200;i++)  mc1->SetBinContent(i+1,GetRecons(i)) ;
      mc1->Write();
      mc1 = new TH1I("mc12", "mc info NonRecons", 1200, 0, 1200);
      for(Int_t i=0;i<1200;i++)  mc1->SetBinContent(i+1,GetNonRecons(i)) ;
      mc1->Write();
      delete mc1;
   }
   mcfile->Close();
 }
return;
}
//____________________________________________________________________
void AliITSTrackleterSPDEff::ReadPredictionMC(TString filename) {
//
// This Method read from an asci file (do not know why binary does not work)
// the cuts to be used and the statistics  of the MC related quantities
// Input TString filename: name of input file for output 
// The method SetMC() has to be called before
// Output: none
//
//
 //if(!fMC) {CallWarningMC(); return;}
 if( gSystem->AccessPathName( filename.Data() ) ) {
      AliError( Form( "file (%s) not found", filename.Data() ) );
      return;
   }

 if (!filename.Contains(".root")) {
   ifstream in(filename.Data(),ios::in | ios::binary);
   in >> *this;
   in.close();
   return;
 }
 else {
    Bool_t tmp= fMC;
    TFile *mcfile = TFile::Open(filename);
    TH1F *cuts = (TH1F*)mcfile->Get("cuts"); 
    fPhiWindowL1=(Float_t)cuts->GetBinContent(1);
    fZetaWindowL1=(Float_t)cuts->GetBinContent(2);
    fPhiWindowL2=(Float_t)cuts->GetBinContent(3);
    fZetaWindowL2=(Float_t)cuts->GetBinContent(4);
    fOnlyOneTrackletPerC1=(Bool_t)cuts->GetBinContent(5);
    fOnlyOneTrackletPerC2=(Bool_t)cuts->GetBinContent(6);
    fUpdateOncePerEventPlaneEff=(Bool_t)cuts->GetBinContent(7);
    fMinContVtx=(Int_t)cuts->GetBinContent(8);
    fReflectClusterAroundZAxisForLayer0=(Bool_t)cuts->GetBinContent(9);
    fReflectClusterAroundZAxisForLayer1=(Bool_t)cuts->GetBinContent(10);
    fMC=(Bool_t)cuts->GetBinContent(11);
    if(!fMC) {AliInfo("Reading only cuts, no MC info"); if(tmp) SetMC(kFALSE); }
    else { // only if file with MC predictions 
      if(!tmp) {AliInfo("Calling SetMC() to read this file wtih MC info"); SetMC();}
      TH1C *mc0 = (TH1C*)mcfile->Get("mc0");
      fUseOnlyPrimaryForPred=(Bool_t)mc0->GetBinContent(1);
      fUseOnlySecondaryForPred=(Bool_t)mc0->GetBinContent(2);
      fUseOnlySameParticle=(Bool_t)mc0->GetBinContent(3);
      fUseOnlyDifferentParticle=(Bool_t)mc0->GetBinContent(4);
      fUseOnlyStableParticle=(Bool_t)mc0->GetBinContent(5);
      TH1I *mc1;
      mc1 =(TH1I*)mcfile->Get("mc1");
      for(Int_t i=0;i<1200;i++)  fPredictionPrimary[i]=(Int_t)mc1->GetBinContent(i+1) ;
      mc1 =(TH1I*)mcfile->Get("mc2");
      for(Int_t i=0;i<1200;i++)  fPredictionSecondary[i]=(Int_t)mc1->GetBinContent(i+1) ;
      mc1 =(TH1I*)mcfile->Get("mc3");
      for(Int_t i=0;i<1200;i++)  fClusterPrimary[i]=(Int_t)mc1->GetBinContent(i+1) ;
      mc1 =(TH1I*)mcfile->Get("mc4");
      for(Int_t i=0;i<1200;i++)  fClusterSecondary[i]=(Int_t)mc1->GetBinContent(i+1) ;
      mc1 =(TH1I*)mcfile->Get("mc5");
      for(Int_t i=0;i<1200;i++)  fSuccessPP[i]=(Int_t)mc1->GetBinContent(i+1) ;
      mc1 =(TH1I*)mcfile->Get("mc6");
      for(Int_t i=0;i<1200;i++)  fSuccessTT[i]=(Int_t)mc1->GetBinContent(i+1) ;
      mc1 =(TH1I*)mcfile->Get("mc7");
      for(Int_t i=0;i<1200;i++)  fSuccessS[i]=(Int_t)mc1->GetBinContent(i+1) ;
      mc1 =(TH1I*)mcfile->Get("mc8");
      for(Int_t i=0;i<1200;i++)  fSuccessP[i]=(Int_t)mc1->GetBinContent(i+1) ;
      mc1 =(TH1I*)mcfile->Get("mc9");
      for(Int_t i=0;i<1200;i++)  fFailureS[i]=(Int_t)mc1->GetBinContent(i+1) ;
      mc1 =(TH1I*)mcfile->Get("mc10");
      for(Int_t i=0;i<1200;i++)  fFailureP[i]=(Int_t)mc1->GetBinContent(i+1) ;
      mc1 =(TH1I*)mcfile->Get("mc11");
      for(Int_t i=0;i<1200;i++)  fRecons[i]=(Int_t)mc1->GetBinContent(i+1) ;
      mc1 =(TH1I*)mcfile->Get("mc12");
      for(Int_t i=0;i<1200;i++)  fNonRecons[i]=(Int_t)mc1->GetBinContent(i+1) ;
    }
   mcfile->Close();
 }
 return;
}
//____________________________________________________________________
Bool_t AliITSTrackleterSPDEff::SaveHists() {
  // This (private) method save the histograms on the output file
  // (only if fHistOn is TRUE).
  // Also the histograms from the base class are saved through the 
  // AliITSMultReconstructor::SaveHists() call

  if (!GetHistOn()) return kFALSE;

//  AliITSMultReconstructor::SaveHists(); // this save the histograms of the base class
  fhClustersDPhiAll->Write();
  fhClustersDThetaAll->Write();
  fhClustersDZetaAll->Write();
  fhDPhiVsDThetaAll->Write();
  fhDPhiVsDZetaAll->Write();

  fhClustersDPhiAcc->Write();
  fhClustersDThetaAcc->Write();
  fhClustersDZetaAcc->Write();
  fhDPhiVsDThetaAcc->Write();
  fhDPhiVsDZetaAcc->Write();

  fhetaTracklets->Write();
  fhphiTracklets->Write();
  fhetaClustersLay1->Write();
  fhphiClustersLay1->Write();

  fhClustersDPhiInterpAll->Write();
  fhClustersDThetaInterpAll->Write();
  fhClustersDZetaInterpAll->Write();
  fhDPhiVsDThetaInterpAll->Write();
  fhDPhiVsDZetaInterpAll->Write();

  fhClustersDPhiInterpAcc->Write();
  fhClustersDThetaInterpAcc->Write();
  fhClustersDZetaInterpAcc->Write();
  fhDPhiVsDThetaInterpAcc->Write();
  fhDPhiVsDZetaInterpAcc->Write();

  fhetaClustersLay2->Write();
  fhphiClustersLay2->Write();
  fhClustersInChip->Write();
  for (Int_t nhist=0;nhist<80;nhist++){
    fhClustersInModuleLay1[nhist]->Write(); 
  }
  for (Int_t nhist=0;nhist<160;nhist++){
    fhClustersInModuleLay2[nhist]->Write(); 
  }
  return kTRUE;
}
//__________________________________________________________
Bool_t AliITSTrackleterSPDEff::WriteHistosToFile(TString filename, Option_t* option) {
  //
  // Saves the histograms into a tree and saves the trees into a file
  // Also the histograms from the base class are saved 
  //
  if (!GetHistOn()) return kFALSE;
  if (!strcmp(filename.Data(),"")) {
     AliWarning("WriteHistosToFile: null output filename!");
     return kFALSE;
  }
  TFile *hFile=new TFile(filename.Data(),option,
                         "The File containing the histos for SPD efficiency studies with tracklets");
  if(!SaveHists()) return kFALSE; 
  hFile->Write();
  hFile->Close();
  return kTRUE;
}
//____________________________________________________________
void AliITSTrackleterSPDEff::BookHistos() {
//
// This method books addtitional histograms 
// w.r.t. those of the base class.
// In particular, the differences of cluster coordinate between the two SPD
// layers are computed in the interpolation phase
//
  if (! GetHistOn()) { AliInfo("Call SetHistOn(kTRUE) first"); return;}
//
  fhClustersDPhiAcc   = new TH1F("dphiacc",  "dphi",  100,0.,0.1);
  fhClustersDPhiAcc->SetDirectory(0);
  fhClustersDThetaAcc = new TH1F("dthetaacc","dtheta",100,-0.1,0.1);
  fhClustersDThetaAcc->SetDirectory(0);
  fhClustersDZetaAcc = new TH1F("dzetaacc","dzeta",100,-1.,1.);
  fhClustersDZetaAcc->SetDirectory(0);

  fhDPhiVsDZetaAcc = new TH2F("dphiVsDzetaacc","",100,-1.,1.,100,0.,0.1);
  fhDPhiVsDZetaAcc->SetDirectory(0);
  fhDPhiVsDThetaAcc = new TH2F("dphiVsDthetaAcc","",100,-0.1,0.1,100,0.,0.1);
  fhDPhiVsDThetaAcc->SetDirectory(0);

  fhClustersDPhiAll   = new TH1F("dphiall",  "dphi",  100,0.0,0.5);
  fhClustersDPhiAll->SetDirectory(0);
  fhClustersDThetaAll = new TH1F("dthetaall","dtheta",100,-0.5,0.5);
  fhClustersDThetaAll->SetDirectory(0);
  fhClustersDZetaAll = new TH1F("dzetaall","dzeta",100,-5.,5.);
  fhClustersDZetaAll->SetDirectory(0);

  fhDPhiVsDZetaAll = new TH2F("dphiVsDzetaall","",100,-5.,5.,100,0.,0.5);
  fhDPhiVsDZetaAll->SetDirectory(0);
  fhDPhiVsDThetaAll = new TH2F("dphiVsDthetaAll","",100,-0.5,0.5,100,0.,0.5);
  fhDPhiVsDThetaAll->SetDirectory(0);

  fhetaTracklets  = new TH1F("etaTracklets",  "eta",  100,-2.,2.);
  fhetaTracklets->SetDirectory(0);
  fhphiTracklets  = new TH1F("phiTracklets",  "phi",  100, 0., 2*TMath::Pi());
  fhphiTracklets->SetDirectory(0);
  fhetaClustersLay1  = new TH1F("etaClustersLay1",  "etaCl1",  100,-2.,2.);
  fhetaClustersLay1->SetDirectory(0);
  fhphiClustersLay1  = new TH1F("phiClustersLay1", "phiCl1", 100, 0., 2*TMath::Pi());
  fhphiClustersLay1->SetDirectory(0);
//
  fhClustersDPhiInterpAcc   = new TH1F("dphiaccInterp",  "dphi Interpolation phase",  100,0.,0.1);
  fhClustersDPhiInterpAcc->SetDirectory(0);
  fhClustersDThetaInterpAcc = new TH1F("dthetaaccInterp","dtheta Interpolation phase",100,-0.1,0.1);
  fhClustersDThetaInterpAcc->SetDirectory(0);
  fhClustersDZetaInterpAcc = new TH1F("dzetaaccInterp","dzeta Interpolation phase",100,-1.,1.);
  fhClustersDZetaInterpAcc->SetDirectory(0);

  fhDPhiVsDZetaInterpAcc = new TH2F("dphiVsDzetaaccInterp","dphiVsDzeta Interpolation phase",100,-1.,1.,100,0.,0.1);
  fhDPhiVsDZetaInterpAcc->SetDirectory(0);
  fhDPhiVsDThetaInterpAcc = new TH2F("dphiVsDthetaAccInterp","dphiVsDtheta Interpolation phase",100,-0.1,0.1,100,0.,0.1);
  fhDPhiVsDThetaInterpAcc->SetDirectory(0);

  fhClustersDPhiInterpAll   = new TH1F("dphiallInterp",  "dphi Interpolation phase",  100,0.0,0.5);
  fhClustersDPhiInterpAll->SetDirectory(0);
  fhClustersDThetaInterpAll = new TH1F("dthetaallInterp","dtheta Interpolation phase",100,-0.5,0.5);
  fhClustersDThetaInterpAll->SetDirectory(0);
  fhClustersDZetaInterpAll = new TH1F("dzetaallInterp","dzeta Interpolation phase",100,-5.,5.);
  fhClustersDZetaInterpAll->SetDirectory(0);

  fhDPhiVsDZetaInterpAll = new TH2F("dphiVsDzetaallInterp","dphiVsDzeta Interpolation phase",100,-5.,5.,100,0.,0.5);
  fhDPhiVsDZetaInterpAll->SetDirectory(0);
  fhDPhiVsDThetaInterpAll = new TH2F("dphiVsDthetaAllInterp","dphiVsDtheta Interpolation phase",100,-0.5,0.5,100,0.,0.5);
  fhDPhiVsDThetaInterpAll->SetDirectory(0);

  fhetaClustersLay2  = new TH1F("etaClustersLay2",  "etaCl2",  100,-2.,2.);
  fhetaClustersLay2->SetDirectory(0);
  fhphiClustersLay2  = new TH1F("phiClustersLay2", "phiCl2", 100, 0., 2*TMath::Pi());
  fhphiClustersLay2->SetDirectory(0);
  fhClustersInChip = new TH1F("fhClustersInChip", "ClustersPerChip", 1200, -0.5, 1199.5);
  fhClustersInChip->SetDirectory(0);
// each chip is divided 8(z) x 4(y), i.e. in 32 squares, each containing 4 columns and 64 rows.
  Float_t bz[160]; const Float_t kconv = 1.0E-04; // converts microns to cm.
  for(Int_t i=0;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
  Double_t xbins[41]; // each bin in x (Z loc coordinate) includes 4 columns
  //xbins[0]=0;
  Float_t xmn,xmx,zmn,zmx;
  if(!fPlaneEffSPD->GetBlockBoundaries(0,xmn,xmx,zmn,zmx)) AliWarning("Could not book histo properly");
  xbins[0]=(Double_t)zmn;
  for(Int_t i=0;i<40;i++) {
   xbins[i+1]=xbins[i] + (bz[4*i]+bz[4*i+1]+bz[4*i+2]+bz[4*i+3])*kconv; 
  }
  TString histname="ClustersLay1_mod_",aux;
  fhClustersInModuleLay1 =new TH2F*[80];
  for (Int_t nhist=0;nhist<80;nhist++){
    aux=histname;
    aux+=nhist;
    //  
    fhClustersInModuleLay1[nhist]=new TH2F("histname","histname",40,xbins,4,(Double_t)xmn,(Double_t)xmx); 
    fhClustersInModuleLay1[nhist]->SetName(aux.Data());
    fhClustersInModuleLay1[nhist]->SetTitle(aux.Data());
    fhClustersInModuleLay1[nhist]->SetDirectory(0);
  }
  histname="ClustersLay2_mod_";
  fhClustersInModuleLay2 =new TH2F*[160];
  for (Int_t nhist=0;nhist<160;nhist++){
    aux=histname;
    aux+=nhist;
    fhClustersInModuleLay2[nhist]=new TH2F("histname","histname",40,xbins,4,(Double_t)xmn,(Double_t)xmx);
    fhClustersInModuleLay2[nhist]->SetName(aux.Data());
    fhClustersInModuleLay2[nhist]->SetTitle(aux.Data());
    fhClustersInModuleLay2[nhist]->SetDirectory(0);
  }
//
  return;
}
//____________________________________________________________
void AliITSTrackleterSPDEff::DeleteHistos() {
//
// Private method to delete Histograms from memory 
// it is called. e.g., by the destructor.
//
// form AliITSMultReconstructor
  if(fhClustersDPhiAcc) {delete fhClustersDPhiAcc; fhClustersDPhiAcc=0;}
  if(fhClustersDThetaAcc) {delete fhClustersDThetaAcc; fhClustersDThetaAcc=0;}
  if(fhClustersDZetaAcc) {delete fhClustersDZetaAcc; fhClustersDZetaAcc=0;}
  if(fhClustersDPhiAll) {delete fhClustersDPhiAll; fhClustersDPhiAll=0;}
  if(fhClustersDThetaAll) {delete fhClustersDThetaAll; fhClustersDThetaAll=0;}
  if(fhClustersDZetaAll) {delete fhClustersDZetaAll; fhClustersDZetaAll=0;}
  if(fhDPhiVsDThetaAll) {delete fhDPhiVsDThetaAll; fhDPhiVsDThetaAll=0;}
  if(fhDPhiVsDThetaAcc) {delete fhDPhiVsDThetaAcc; fhDPhiVsDThetaAcc=0;}
  if(fhDPhiVsDZetaAll) {delete fhDPhiVsDZetaAll; fhDPhiVsDZetaAll=0;}
  if(fhDPhiVsDZetaAcc) {delete fhDPhiVsDZetaAcc; fhDPhiVsDZetaAcc=0;}
  if(fhetaTracklets) {delete fhetaTracklets; fhetaTracklets=0;}
  if(fhphiTracklets) {delete fhphiTracklets; fhphiTracklets=0;}
  if(fhetaClustersLay1) {delete fhetaClustersLay1; fhetaClustersLay1=0;}
  if(fhphiClustersLay1) {delete fhphiClustersLay1; fhphiClustersLay1=0;}
//
    if(fhClustersDPhiInterpAcc) {delete fhClustersDPhiInterpAcc; fhClustersDPhiInterpAcc=0;}
    if(fhClustersDThetaInterpAcc) {delete fhClustersDThetaInterpAcc; fhClustersDThetaInterpAcc=0;}
    if(fhClustersDZetaInterpAcc) {delete fhClustersDZetaInterpAcc; fhClustersDZetaInterpAcc=0;}
    if(fhClustersDPhiInterpAll) {delete fhClustersDPhiInterpAll; fhClustersDPhiInterpAll=0;}
    if(fhClustersDThetaInterpAll) {delete fhClustersDThetaInterpAll; fhClustersDThetaInterpAll=0;}
    if(fhClustersDZetaInterpAll) {delete fhClustersDZetaInterpAll; fhClustersDZetaInterpAll=0;}
    if(fhDPhiVsDThetaInterpAll) {delete fhDPhiVsDThetaInterpAll; fhDPhiVsDThetaInterpAll=0;}
    if(fhDPhiVsDThetaInterpAcc) {delete fhDPhiVsDThetaInterpAcc; fhDPhiVsDThetaInterpAcc=0;}
    if(fhDPhiVsDZetaInterpAll) {delete fhDPhiVsDZetaInterpAll; fhDPhiVsDZetaInterpAll=0;}
    if(fhDPhiVsDZetaInterpAcc) {delete fhDPhiVsDZetaInterpAcc; fhDPhiVsDZetaInterpAcc=0;}
    if(fhetaClustersLay2) {delete fhetaClustersLay2; fhetaClustersLay2=0;}
    if(fhphiClustersLay2) {delete fhphiClustersLay2; fhphiClustersLay2=0;}
    if(fhClustersInChip) {delete fhClustersInChip; fhClustersInChip=0;}
    if(fhClustersInModuleLay1) {
      for (Int_t i=0; i<80; i++ ) delete fhClustersInModuleLay1[i];
      delete [] fhClustersInModuleLay1; fhClustersInModuleLay1=0;
    }
    if(fhClustersInModuleLay2) {
      for (Int_t i=0; i<160; i++ ) delete fhClustersInModuleLay2[i];
      delete [] fhClustersInModuleLay2; fhClustersInModuleLay2=0;
    }
}
//_______________________________________________________________
Bool_t AliITSTrackleterSPDEff::IsReconstructableAt(Int_t layer,Int_t iC,Int_t ipart,
                                                   const Float_t* vtx, const AliStack *stack, TTree *ref) {
// This (private) method can be used only for MC events, where both AliStack and the TrackReference
// are available. 
// It is used to asses whether a tracklet prediction is reconstructable or not at the other layer
// Input: 
//      - Int_t layer (either 0 or 1): layer which you want to check if the tracklete can be 
//                                     reconstructed at
//      - Int_t iC : cluster index used to build the tracklet prediction 
//                   if layer=0 ==> iC=iC2 ; elseif layer=1 ==> iC=iC1
//      - Float_t* vtx: actual event vertex
//      - stack: pointer to Stack
//      - ref:   pointer to TTRee of TrackReference
Bool_t ret=kFALSE; // returned value
Float_t trefLayExtr[3]; // equivalent to fClustersLay1/fClustersLay2 but for the track reference
if(!fMC) {AliError("This method works only if SetMC() has been called"); return ret;}
if(!stack) {AliError("null pointer to MC stack"); return ret;}
if(!ref)  {AliError("null pointer to TrackReference Tree"); return ret;}
if(ipart >= stack->GetNtrack()) {AliError("this track label is not in MC stack"); return ret;}
if(layer<0 || layer>1) {AliError("You can extrapolate either at lay 0 or at lay 1"); return ret;}

AliTrackReference *tref=0x0;
Int_t imatch=-100; // index of the track in TrackReference which matches with ipart
Int_t nentries = (Int_t)ref->GetEntries();
TClonesArray *tcaRef = new TClonesArray("AliTrackReference");
TBranch *br = ref->GetBranch("TrackReferences");
br->SetAddress(&tcaRef);
for(Int_t itrack=0;itrack<nentries;itrack++) { // loop over all Tracks in TrackReference to match the ipart one
  br->GetEntry(itrack);
  Int_t nref=tcaRef->GetEntriesFast();
  if(nref>0) { //it is enough to look at the first one
    tref=(AliTrackReference*)tcaRef->At(0); // it is enough to look at the first one
    if(tref->GetTrack()==ipart) {imatch=itrack; break;}
  }
}
if(imatch<0) {AliWarning(Form("Could not find AliTrackReference for particle %d",ipart)); return kFALSE;}
br->GetEntry(imatch); // redundant, nevertheless ...
Int_t nref=tcaRef->GetEntriesFast();
for(Int_t iref=0;iref<nref;iref++) { // loop over all the refs of the matching track
  tref=(AliTrackReference*)tcaRef->At(iref);
  if(tref->R()>10) continue; // not SPD ref
  if(layer==0 && tref->R()>5) continue; // ref on SPD outer layer
  if(layer==1 && tref->R()<5) continue; // ref on SPD inner layer

// compute the proper quantities for this tref, as was done for fClustersLay1/2
  Float_t x = tref->X() - vtx[0];
  Float_t y = tref->Y() - vtx[1];
  Float_t z = tref->Z() - vtx[2];

  Float_t r    = TMath::Sqrt(x*x + y*y +z*z);

  trefLayExtr[0] = TMath::ACos(z/r);                   // Store Theta
  trefLayExtr[1] = TMath::Pi() + TMath::ATan2(-y,-x);  // Store Phi
  trefLayExtr[2] = z;                                    // Store z

  if(layer==1) { // try to see if it is reconstructable at the outer layer
// find the difference in angles
    Float_t dPhi   = TMath::Abs(trefLayExtr[1] - fClustersLay1[iC][1]);
    // take into account boundary condition
    if (dPhi>TMath::Pi()) dPhi=2.*TMath::Pi()-dPhi;

    // find the difference in z (between linear projection from layer 1
    // and the actual point: Dzeta= z1/r1*r2 -z2)
    Float_t r2    = trefLayExtr[2]/TMath::Cos(trefLayExtr[0]);
    Float_t dZeta = TMath::Cos(fClustersLay1[iC][0])*r2 - trefLayExtr[2];

    // make "elliptical" cut in Phi and Zeta!
    Float_t d = TMath::Sqrt(dPhi*dPhi/fPhiWindowL2/fPhiWindowL2 +
                              dZeta*dZeta/fZetaWindowL2/fZetaWindowL2);
    if (d<1) {ret=kTRUE; break;}
  }
  if(layer==0) { // try to see if it is reconstructable at the inner layer

    // find the difference in angles
    Float_t dPhi   = TMath::Abs(fClustersLay2[iC][1] - trefLayExtr[1]);
    // take into account boundary condition
    if (dPhi>TMath::Pi()) dPhi=2.*TMath::Pi()-dPhi;

    // find the difference in z (between linear projection from layer 2
    // and the actual point: Dzeta= z2/r2*r1 -z1)
    Float_t r1    = trefLayExtr[2]/TMath::Cos(trefLayExtr[0]);
    Float_t dZeta = TMath::Cos(fClustersLay2[iC][0])*r1 - trefLayExtr[2];

    // make "elliptical" cut in Phi and Zeta!
    Float_t d = TMath::Sqrt(dPhi*dPhi/fPhiWindowL1/fPhiWindowL1 +
                            dZeta*dZeta/fZetaWindowL1/fZetaWindowL1);
    if (d<1) {ret=kTRUE; break;};
  }
}
delete tcaRef;
return ret;
}
//_________________________________________________________________________
void AliITSTrackleterSPDEff::ReflectClusterAroundZAxisForLayer(Int_t ilayer){
//
// this method apply a rotation by 180 degree around the Z (beam) axis to all 
// the RecPoints in a given layer to be used to build tracklets.
// **************** VERY IMPORTANT:: ***************
// It must be called just after LoadClusterArrays, since afterwards the datamember
// fClustersLay1[iC1][0] and fClustersLay1[iC1][1] are redefined using polar coordinate 
// instead of Cartesian
//
if(ilayer<0 || ilayer>1) {AliInfo("Input argument (ilayer) should be either 0 or 1: nothing done"); return ;}
AliDebug(3,Form("Applying a rotation by 180 degree around z axiz to all clusters on layer %d",ilayer));
if(ilayer==0) {
  for (Int_t iC1=0; iC1<fNClustersLay1; iC1++) {
    fClustersLay1[iC1][0]*=-1;
    fClustersLay1[iC1][1]*=-1;
  }
}
if(ilayer==1) {
  for (Int_t iC2=0; iC2<fNClustersLay2; iC2++) {
    fClustersLay2[iC2][0]*=-1;
    fClustersLay2[iC2][1]*=-1;
  }
}
return;
}
//____________________________________________________________________________
Int_t AliITSTrackleterSPDEff::Clusters2Tracks(AliESDEvent *esd){
// This method is used to find the tracklets. 
// It is called from AliReconstruction
// The vertex is supposed to be associated to the Tracker (i.e. to this) already
// The cluster is supposed to be associated to the Tracker already
// In case Monte Carlo is required, the appropriate linking to Stack and TrackRef is attempted 
//
  Int_t rc=1;
  // apply cuts on the vertex quality
  const AliESDVertex *vertex = esd->GetVertex();
  if(vertex->GetNContributors()<fMinContVtx) return 0;
  //
  AliRunLoader* runLoader = AliRunLoader::Instance();
  if (!runLoader) {
    Error("Clusters2Tracks", "no run loader found");
    return rc;
  }
  AliStack *pStack=0x0; TTree *tRefTree=0x0;
  if(GetMC()) {
    runLoader->LoadKinematics("read");
    runLoader->LoadTrackRefs("read");
    pStack= runLoader->Stack();
    tRefTree= runLoader->TreeTR();
  }
  Reconstruct(pStack,tRefTree);

  if (GetLightBkgStudyInParallel()) {
    AliStack *dummy1=0x0; TTree *dummy2=0x0;
    ReflectClusterAroundZAxisForLayer(1);
    Reconstruct(dummy1,dummy2,kTRUE);
  }
  return 0;
}
//____________________________________________________________________________
Int_t AliITSTrackleterSPDEff::PostProcess(AliESDEvent *){
// 
// It is called from AliReconstruction
// 
// 
// 
//
  Int_t rc=0;
  if(GetMC()) SavePredictionMC("TrackletsMCpred.root");
  if(GetHistOn()) rc=(Int_t)WriteHistosToFile();
  if(GetLightBkgStudyInParallel()) {
    TString name="AliITSPlaneEffSPDtrackletBkg.root";
    TFile* pefile = TFile::Open(name, "RECREATE");
    rc*=fPlaneEffBkg->Write();
    pefile->Close();
  }
  return rc;
}
//____________________________________________________________________
void
AliITSTrackleterSPDEff::LoadClusterArrays(TTree* itsClusterTree) {
  // This method
  // - gets the clusters from the cluster tree
  // - convert them into global coordinates
  // - store them in the internal arrays
  // - count the number of cluster-fired chips

  //AliDebug(1,"Loading clusters and cluster-fired chips ...");

  fNClustersLay1 = 0;
  fNClustersLay2 = 0;

  TClonesArray* itsClusters = new TClonesArray("AliITSRecPoint");
  TBranch* itsClusterBranch=itsClusterTree->GetBranch("ITSRecPoints");

  itsClusterBranch->SetAddress(&itsClusters);

  Int_t nItsSubs = (Int_t)itsClusterTree->GetEntries();
  Float_t cluGlo[3]={0.,0.,0.};

  // loop over the its subdetectors
  for (Int_t iIts=0; iIts < nItsSubs; iIts++) {

    if (!itsClusterTree->GetEvent(iIts))
      continue;

    Int_t nClusters = itsClusters->GetEntriesFast();

    // number of clusters in each chip of the current module
    Int_t layer = 0;

    // loop over clusters
    while(nClusters--) {
      AliITSRecPoint* cluster = (AliITSRecPoint*)itsClusters->UncheckedAt(nClusters);

      layer = cluster->GetLayer();
      if (layer>1) continue;

      cluster->GetGlobalXYZ(cluGlo);
      Float_t x = cluGlo[0];
      Float_t y = cluGlo[1];
      Float_t z = cluGlo[2];

      if (layer==0) {
        fClustersLay1[fNClustersLay1][0] = x;
        fClustersLay1[fNClustersLay1][1] = y;
        fClustersLay1[fNClustersLay1][2] = z;

        for (Int_t i=0; i<3; i++)
                fClustersLay1[fNClustersLay1][3+i] = cluster->GetLabel(i);
        fNClustersLay1++;
        if(fHistOn) { 
          Int_t det=cluster->GetDetectorIndex();
          if(det<0 || det>79) {AliError("Cluster with det. index out of boundaries"); return;}
          fhClustersInModuleLay1[det]->Fill((Double_t)cluster->GetDetLocalZ(),(Double_t)cluster->GetDetLocalX());
        }
      }
      if (layer==1) {
        fClustersLay2[fNClustersLay2][0] = x;
        fClustersLay2[fNClustersLay2][1] = y;
        fClustersLay2[fNClustersLay2][2] = z;

        for (Int_t i=0; i<3; i++)
                fClustersLay2[fNClustersLay2][3+i] = cluster->GetLabel(i);
        fNClustersLay2++;
        if(fHistOn) {
          Int_t det=cluster->GetDetectorIndex();
          if(det<0 || det>159) {AliError("Cluster with det. index out of boundaries"); return;}
          fhClustersInModuleLay2[det]->Fill((Double_t)cluster->GetDetLocalZ(),(Double_t)cluster->GetDetLocalX());
        }
      }

    }// end of cluster loop

  } // end of its "subdetector" loop
  if (itsClusters) {
    itsClusters->Delete();
    delete itsClusters;
    itsClusters = 0;
  }
  AliDebug(1,Form("(clusters in layer 1 : %d,  layer 2: %d)",fNClustersLay1,fNClustersLay2));
}
//_________________________________________________________________________
void
AliITSTrackleterSPDEff::SetLightBkgStudyInParallel(Bool_t b) {
//     This method:
//  - set Bool_t fLightBackgroundStudyInParallel = b 
//    a) if you set this kTRUE, then the estimation of the 
//      SPD efficiency is done as usual for data, but in 
//      parallel a light (i.e. without control histograms, etc.) 
//      evaluation of combinatorial background is performed
//      with the usual ReflectClusterAroundZAxisForLayer method.
//    b) if you set this kFALSE, then you would not have a second 
//      container for PlaneEfficiency statistics to be used for background 
//      (fPlaneEffBkg=0). If you want to have a full evaluation of the 
//      background (with all control histograms and additional data 
//      members referring to the background) then you have to call the 
//      method SetReflectClusterAroundZAxisForLayer(kTRUE) esplicitily
  fLightBkgStudyInParallel=b; 
  if(fLightBkgStudyInParallel) {
    if(!fPlaneEffBkg) fPlaneEffBkg = new AliITSPlaneEffSPD();   
  }
  else {
    delete fPlaneEffBkg;
    fPlaneEffBkg=0;
  }
}
//______________________________________________________________
void AliITSTrackleterSPDEff::SetReflectClusterAroundZAxisForLayer(Int_t ilayer,Bool_t b){  
//
// method to study residual background:
// Input b= KTRUE --> reflect the clusters 
//      ilayer (either 0 or 1) --> which SPD layers should be reflected
//
    if(b) {AliInfo(Form("All clusters on layer %d will be rotated by 180 deg around z",ilayer));
           SetLightBkgStudyInParallel(kFALSE);}
    if(ilayer==0) fReflectClusterAroundZAxisForLayer0=b;                   // a rotation by 180degree around the Z axis  
    else if(ilayer==1) fReflectClusterAroundZAxisForLayer1=b;              // (x->-x; y->-y) to all RecPoints on a 
    else AliInfo("Nothing done: input argument (ilayer) either 0 or 1");   // given layer is applied. In such a way 
  }                    
 AliITSTrackleterSPDEff.cxx:1
 AliITSTrackleterSPDEff.cxx:2
 AliITSTrackleterSPDEff.cxx:3
 AliITSTrackleterSPDEff.cxx:4
 AliITSTrackleterSPDEff.cxx:5
 AliITSTrackleterSPDEff.cxx:6
 AliITSTrackleterSPDEff.cxx:7
 AliITSTrackleterSPDEff.cxx:8
 AliITSTrackleterSPDEff.cxx:9
 AliITSTrackleterSPDEff.cxx:10
 AliITSTrackleterSPDEff.cxx:11
 AliITSTrackleterSPDEff.cxx:12
 AliITSTrackleterSPDEff.cxx:13
 AliITSTrackleterSPDEff.cxx:14
 AliITSTrackleterSPDEff.cxx:15
 AliITSTrackleterSPDEff.cxx:16
 AliITSTrackleterSPDEff.cxx:17
 AliITSTrackleterSPDEff.cxx:18
 AliITSTrackleterSPDEff.cxx:19
 AliITSTrackleterSPDEff.cxx:20
 AliITSTrackleterSPDEff.cxx:21
 AliITSTrackleterSPDEff.cxx:22
 AliITSTrackleterSPDEff.cxx:23
 AliITSTrackleterSPDEff.cxx:24
 AliITSTrackleterSPDEff.cxx:25
 AliITSTrackleterSPDEff.cxx:26
 AliITSTrackleterSPDEff.cxx:27
 AliITSTrackleterSPDEff.cxx:28
 AliITSTrackleterSPDEff.cxx:29
 AliITSTrackleterSPDEff.cxx:30
 AliITSTrackleterSPDEff.cxx:31
 AliITSTrackleterSPDEff.cxx:32
 AliITSTrackleterSPDEff.cxx:33
 AliITSTrackleterSPDEff.cxx:34
 AliITSTrackleterSPDEff.cxx:35
 AliITSTrackleterSPDEff.cxx:36
 AliITSTrackleterSPDEff.cxx:37
 AliITSTrackleterSPDEff.cxx:38
 AliITSTrackleterSPDEff.cxx:39
 AliITSTrackleterSPDEff.cxx:40
 AliITSTrackleterSPDEff.cxx:41
 AliITSTrackleterSPDEff.cxx:42
 AliITSTrackleterSPDEff.cxx:43
 AliITSTrackleterSPDEff.cxx:44
 AliITSTrackleterSPDEff.cxx:45
 AliITSTrackleterSPDEff.cxx:46
 AliITSTrackleterSPDEff.cxx:47
 AliITSTrackleterSPDEff.cxx:48
 AliITSTrackleterSPDEff.cxx:49
 AliITSTrackleterSPDEff.cxx:50
 AliITSTrackleterSPDEff.cxx:51
 AliITSTrackleterSPDEff.cxx:52
 AliITSTrackleterSPDEff.cxx:53
 AliITSTrackleterSPDEff.cxx:54
 AliITSTrackleterSPDEff.cxx:55
 AliITSTrackleterSPDEff.cxx:56
 AliITSTrackleterSPDEff.cxx:57
 AliITSTrackleterSPDEff.cxx:58
 AliITSTrackleterSPDEff.cxx:59
 AliITSTrackleterSPDEff.cxx:60
 AliITSTrackleterSPDEff.cxx:61
 AliITSTrackleterSPDEff.cxx:62
 AliITSTrackleterSPDEff.cxx:63
 AliITSTrackleterSPDEff.cxx:64
 AliITSTrackleterSPDEff.cxx:65
 AliITSTrackleterSPDEff.cxx:66
 AliITSTrackleterSPDEff.cxx:67
 AliITSTrackleterSPDEff.cxx:68
 AliITSTrackleterSPDEff.cxx:69
 AliITSTrackleterSPDEff.cxx:70
 AliITSTrackleterSPDEff.cxx:71
 AliITSTrackleterSPDEff.cxx:72
 AliITSTrackleterSPDEff.cxx:73
 AliITSTrackleterSPDEff.cxx:74
 AliITSTrackleterSPDEff.cxx:75
 AliITSTrackleterSPDEff.cxx:76
 AliITSTrackleterSPDEff.cxx:77
 AliITSTrackleterSPDEff.cxx:78
 AliITSTrackleterSPDEff.cxx:79
 AliITSTrackleterSPDEff.cxx:80
 AliITSTrackleterSPDEff.cxx:81
 AliITSTrackleterSPDEff.cxx:82
 AliITSTrackleterSPDEff.cxx:83
 AliITSTrackleterSPDEff.cxx:84
 AliITSTrackleterSPDEff.cxx:85
 AliITSTrackleterSPDEff.cxx:86
 AliITSTrackleterSPDEff.cxx:87
 AliITSTrackleterSPDEff.cxx:88
 AliITSTrackleterSPDEff.cxx:89
 AliITSTrackleterSPDEff.cxx:90
 AliITSTrackleterSPDEff.cxx:91
 AliITSTrackleterSPDEff.cxx:92
 AliITSTrackleterSPDEff.cxx:93
 AliITSTrackleterSPDEff.cxx:94
 AliITSTrackleterSPDEff.cxx:95
 AliITSTrackleterSPDEff.cxx:96
 AliITSTrackleterSPDEff.cxx:97
 AliITSTrackleterSPDEff.cxx:98
 AliITSTrackleterSPDEff.cxx:99
 AliITSTrackleterSPDEff.cxx:100
 AliITSTrackleterSPDEff.cxx:101
 AliITSTrackleterSPDEff.cxx:102
 AliITSTrackleterSPDEff.cxx:103
 AliITSTrackleterSPDEff.cxx:104
 AliITSTrackleterSPDEff.cxx:105
 AliITSTrackleterSPDEff.cxx:106
 AliITSTrackleterSPDEff.cxx:107
 AliITSTrackleterSPDEff.cxx:108
 AliITSTrackleterSPDEff.cxx:109
 AliITSTrackleterSPDEff.cxx:110
 AliITSTrackleterSPDEff.cxx:111
 AliITSTrackleterSPDEff.cxx:112
 AliITSTrackleterSPDEff.cxx:113
 AliITSTrackleterSPDEff.cxx:114
 AliITSTrackleterSPDEff.cxx:115
 AliITSTrackleterSPDEff.cxx:116
 AliITSTrackleterSPDEff.cxx:117
 AliITSTrackleterSPDEff.cxx:118
 AliITSTrackleterSPDEff.cxx:119
 AliITSTrackleterSPDEff.cxx:120
 AliITSTrackleterSPDEff.cxx:121
 AliITSTrackleterSPDEff.cxx:122
 AliITSTrackleterSPDEff.cxx:123
 AliITSTrackleterSPDEff.cxx:124
 AliITSTrackleterSPDEff.cxx:125
 AliITSTrackleterSPDEff.cxx:126
 AliITSTrackleterSPDEff.cxx:127
 AliITSTrackleterSPDEff.cxx:128
 AliITSTrackleterSPDEff.cxx:129
 AliITSTrackleterSPDEff.cxx:130
 AliITSTrackleterSPDEff.cxx:131
 AliITSTrackleterSPDEff.cxx:132
 AliITSTrackleterSPDEff.cxx:133
 AliITSTrackleterSPDEff.cxx:134
 AliITSTrackleterSPDEff.cxx:135
 AliITSTrackleterSPDEff.cxx:136
 AliITSTrackleterSPDEff.cxx:137
 AliITSTrackleterSPDEff.cxx:138
 AliITSTrackleterSPDEff.cxx:139
 AliITSTrackleterSPDEff.cxx:140
 AliITSTrackleterSPDEff.cxx:141
 AliITSTrackleterSPDEff.cxx:142
 AliITSTrackleterSPDEff.cxx:143
 AliITSTrackleterSPDEff.cxx:144
 AliITSTrackleterSPDEff.cxx:145
 AliITSTrackleterSPDEff.cxx:146
 AliITSTrackleterSPDEff.cxx:147
 AliITSTrackleterSPDEff.cxx:148
 AliITSTrackleterSPDEff.cxx:149
 AliITSTrackleterSPDEff.cxx:150
 AliITSTrackleterSPDEff.cxx:151
 AliITSTrackleterSPDEff.cxx:152
 AliITSTrackleterSPDEff.cxx:153
 AliITSTrackleterSPDEff.cxx:154
 AliITSTrackleterSPDEff.cxx:155
 AliITSTrackleterSPDEff.cxx:156
 AliITSTrackleterSPDEff.cxx:157
 AliITSTrackleterSPDEff.cxx:158
 AliITSTrackleterSPDEff.cxx:159
 AliITSTrackleterSPDEff.cxx:160
 AliITSTrackleterSPDEff.cxx:161
 AliITSTrackleterSPDEff.cxx:162
 AliITSTrackleterSPDEff.cxx:163
 AliITSTrackleterSPDEff.cxx:164
 AliITSTrackleterSPDEff.cxx:165
 AliITSTrackleterSPDEff.cxx:166
 AliITSTrackleterSPDEff.cxx:167
 AliITSTrackleterSPDEff.cxx:168
 AliITSTrackleterSPDEff.cxx:169
 AliITSTrackleterSPDEff.cxx:170
 AliITSTrackleterSPDEff.cxx:171
 AliITSTrackleterSPDEff.cxx:172
 AliITSTrackleterSPDEff.cxx:173
 AliITSTrackleterSPDEff.cxx:174
 AliITSTrackleterSPDEff.cxx:175
 AliITSTrackleterSPDEff.cxx:176
 AliITSTrackleterSPDEff.cxx:177
 AliITSTrackleterSPDEff.cxx:178
 AliITSTrackleterSPDEff.cxx:179
 AliITSTrackleterSPDEff.cxx:180
 AliITSTrackleterSPDEff.cxx:181
 AliITSTrackleterSPDEff.cxx:182
 AliITSTrackleterSPDEff.cxx:183
 AliITSTrackleterSPDEff.cxx:184
 AliITSTrackleterSPDEff.cxx:185
 AliITSTrackleterSPDEff.cxx:186
 AliITSTrackleterSPDEff.cxx:187
 AliITSTrackleterSPDEff.cxx:188
 AliITSTrackleterSPDEff.cxx:189
 AliITSTrackleterSPDEff.cxx:190
 AliITSTrackleterSPDEff.cxx:191
 AliITSTrackleterSPDEff.cxx:192
 AliITSTrackleterSPDEff.cxx:193
 AliITSTrackleterSPDEff.cxx:194
 AliITSTrackleterSPDEff.cxx:195
 AliITSTrackleterSPDEff.cxx:196
 AliITSTrackleterSPDEff.cxx:197
 AliITSTrackleterSPDEff.cxx:198
 AliITSTrackleterSPDEff.cxx:199
 AliITSTrackleterSPDEff.cxx:200
 AliITSTrackleterSPDEff.cxx:201
 AliITSTrackleterSPDEff.cxx:202
 AliITSTrackleterSPDEff.cxx:203
 AliITSTrackleterSPDEff.cxx:204
 AliITSTrackleterSPDEff.cxx:205
 AliITSTrackleterSPDEff.cxx:206
 AliITSTrackleterSPDEff.cxx:207
 AliITSTrackleterSPDEff.cxx:208
 AliITSTrackleterSPDEff.cxx:209
 AliITSTrackleterSPDEff.cxx:210
 AliITSTrackleterSPDEff.cxx:211
 AliITSTrackleterSPDEff.cxx:212
 AliITSTrackleterSPDEff.cxx:213
 AliITSTrackleterSPDEff.cxx:214
 AliITSTrackleterSPDEff.cxx:215
 AliITSTrackleterSPDEff.cxx:216
 AliITSTrackleterSPDEff.cxx:217
 AliITSTrackleterSPDEff.cxx:218
 AliITSTrackleterSPDEff.cxx:219
 AliITSTrackleterSPDEff.cxx:220
 AliITSTrackleterSPDEff.cxx:221
 AliITSTrackleterSPDEff.cxx:222
 AliITSTrackleterSPDEff.cxx:223
 AliITSTrackleterSPDEff.cxx:224
 AliITSTrackleterSPDEff.cxx:225
 AliITSTrackleterSPDEff.cxx:226
 AliITSTrackleterSPDEff.cxx:227
 AliITSTrackleterSPDEff.cxx:228
 AliITSTrackleterSPDEff.cxx:229
 AliITSTrackleterSPDEff.cxx:230
 AliITSTrackleterSPDEff.cxx:231
 AliITSTrackleterSPDEff.cxx:232
 AliITSTrackleterSPDEff.cxx:233
 AliITSTrackleterSPDEff.cxx:234
 AliITSTrackleterSPDEff.cxx:235
 AliITSTrackleterSPDEff.cxx:236
 AliITSTrackleterSPDEff.cxx:237
 AliITSTrackleterSPDEff.cxx:238
 AliITSTrackleterSPDEff.cxx:239
 AliITSTrackleterSPDEff.cxx:240
 AliITSTrackleterSPDEff.cxx:241
 AliITSTrackleterSPDEff.cxx:242
 AliITSTrackleterSPDEff.cxx:243
 AliITSTrackleterSPDEff.cxx:244
 AliITSTrackleterSPDEff.cxx:245
 AliITSTrackleterSPDEff.cxx:246
 AliITSTrackleterSPDEff.cxx:247
 AliITSTrackleterSPDEff.cxx:248
 AliITSTrackleterSPDEff.cxx:249
 AliITSTrackleterSPDEff.cxx:250
 AliITSTrackleterSPDEff.cxx:251
 AliITSTrackleterSPDEff.cxx:252
 AliITSTrackleterSPDEff.cxx:253
 AliITSTrackleterSPDEff.cxx:254
 AliITSTrackleterSPDEff.cxx:255
 AliITSTrackleterSPDEff.cxx:256
 AliITSTrackleterSPDEff.cxx:257
 AliITSTrackleterSPDEff.cxx:258
 AliITSTrackleterSPDEff.cxx:259
 AliITSTrackleterSPDEff.cxx:260
 AliITSTrackleterSPDEff.cxx:261
 AliITSTrackleterSPDEff.cxx:262
 AliITSTrackleterSPDEff.cxx:263
 AliITSTrackleterSPDEff.cxx:264
 AliITSTrackleterSPDEff.cxx:265
 AliITSTrackleterSPDEff.cxx:266
 AliITSTrackleterSPDEff.cxx:267
 AliITSTrackleterSPDEff.cxx:268
 AliITSTrackleterSPDEff.cxx:269
 AliITSTrackleterSPDEff.cxx:270
 AliITSTrackleterSPDEff.cxx:271
 AliITSTrackleterSPDEff.cxx:272
 AliITSTrackleterSPDEff.cxx:273
 AliITSTrackleterSPDEff.cxx:274
 AliITSTrackleterSPDEff.cxx:275
 AliITSTrackleterSPDEff.cxx:276
 AliITSTrackleterSPDEff.cxx:277
 AliITSTrackleterSPDEff.cxx:278
 AliITSTrackleterSPDEff.cxx:279
 AliITSTrackleterSPDEff.cxx:280
 AliITSTrackleterSPDEff.cxx:281
 AliITSTrackleterSPDEff.cxx:282
 AliITSTrackleterSPDEff.cxx:283
 AliITSTrackleterSPDEff.cxx:284
 AliITSTrackleterSPDEff.cxx:285
 AliITSTrackleterSPDEff.cxx:286
 AliITSTrackleterSPDEff.cxx:287
 AliITSTrackleterSPDEff.cxx:288
 AliITSTrackleterSPDEff.cxx:289
 AliITSTrackleterSPDEff.cxx:290
 AliITSTrackleterSPDEff.cxx:291
 AliITSTrackleterSPDEff.cxx:292
 AliITSTrackleterSPDEff.cxx:293
 AliITSTrackleterSPDEff.cxx:294
 AliITSTrackleterSPDEff.cxx:295
 AliITSTrackleterSPDEff.cxx:296
 AliITSTrackleterSPDEff.cxx:297
 AliITSTrackleterSPDEff.cxx:298
 AliITSTrackleterSPDEff.cxx:299
 AliITSTrackleterSPDEff.cxx:300
 AliITSTrackleterSPDEff.cxx:301
 AliITSTrackleterSPDEff.cxx:302
 AliITSTrackleterSPDEff.cxx:303
 AliITSTrackleterSPDEff.cxx:304
 AliITSTrackleterSPDEff.cxx:305
 AliITSTrackleterSPDEff.cxx:306
 AliITSTrackleterSPDEff.cxx:307
 AliITSTrackleterSPDEff.cxx:308
 AliITSTrackleterSPDEff.cxx:309
 AliITSTrackleterSPDEff.cxx:310
 AliITSTrackleterSPDEff.cxx:311
 AliITSTrackleterSPDEff.cxx:312
 AliITSTrackleterSPDEff.cxx:313
 AliITSTrackleterSPDEff.cxx:314
 AliITSTrackleterSPDEff.cxx:315
 AliITSTrackleterSPDEff.cxx:316
 AliITSTrackleterSPDEff.cxx:317
 AliITSTrackleterSPDEff.cxx:318
 AliITSTrackleterSPDEff.cxx:319
 AliITSTrackleterSPDEff.cxx:320
 AliITSTrackleterSPDEff.cxx:321
 AliITSTrackleterSPDEff.cxx:322
 AliITSTrackleterSPDEff.cxx:323
 AliITSTrackleterSPDEff.cxx:324
 AliITSTrackleterSPDEff.cxx:325
 AliITSTrackleterSPDEff.cxx:326
 AliITSTrackleterSPDEff.cxx:327
 AliITSTrackleterSPDEff.cxx:328
 AliITSTrackleterSPDEff.cxx:329
 AliITSTrackleterSPDEff.cxx:330
 AliITSTrackleterSPDEff.cxx:331
 AliITSTrackleterSPDEff.cxx:332
 AliITSTrackleterSPDEff.cxx:333
 AliITSTrackleterSPDEff.cxx:334
 AliITSTrackleterSPDEff.cxx:335
 AliITSTrackleterSPDEff.cxx:336
 AliITSTrackleterSPDEff.cxx:337
 AliITSTrackleterSPDEff.cxx:338
 AliITSTrackleterSPDEff.cxx:339
 AliITSTrackleterSPDEff.cxx:340
 AliITSTrackleterSPDEff.cxx:341
 AliITSTrackleterSPDEff.cxx:342
 AliITSTrackleterSPDEff.cxx:343
 AliITSTrackleterSPDEff.cxx:344
 AliITSTrackleterSPDEff.cxx:345
 AliITSTrackleterSPDEff.cxx:346
 AliITSTrackleterSPDEff.cxx:347
 AliITSTrackleterSPDEff.cxx:348
 AliITSTrackleterSPDEff.cxx:349
 AliITSTrackleterSPDEff.cxx:350
 AliITSTrackleterSPDEff.cxx:351
 AliITSTrackleterSPDEff.cxx:352
 AliITSTrackleterSPDEff.cxx:353
 AliITSTrackleterSPDEff.cxx:354
 AliITSTrackleterSPDEff.cxx:355
 AliITSTrackleterSPDEff.cxx:356
 AliITSTrackleterSPDEff.cxx:357
 AliITSTrackleterSPDEff.cxx:358
 AliITSTrackleterSPDEff.cxx:359
 AliITSTrackleterSPDEff.cxx:360
 AliITSTrackleterSPDEff.cxx:361
 AliITSTrackleterSPDEff.cxx:362
 AliITSTrackleterSPDEff.cxx:363
 AliITSTrackleterSPDEff.cxx:364
 AliITSTrackleterSPDEff.cxx:365
 AliITSTrackleterSPDEff.cxx:366
 AliITSTrackleterSPDEff.cxx:367
 AliITSTrackleterSPDEff.cxx:368
 AliITSTrackleterSPDEff.cxx:369
 AliITSTrackleterSPDEff.cxx:370
 AliITSTrackleterSPDEff.cxx:371
 AliITSTrackleterSPDEff.cxx:372
 AliITSTrackleterSPDEff.cxx:373
 AliITSTrackleterSPDEff.cxx:374
 AliITSTrackleterSPDEff.cxx:375
 AliITSTrackleterSPDEff.cxx:376
 AliITSTrackleterSPDEff.cxx:377
 AliITSTrackleterSPDEff.cxx:378
 AliITSTrackleterSPDEff.cxx:379
 AliITSTrackleterSPDEff.cxx:380
 AliITSTrackleterSPDEff.cxx:381
 AliITSTrackleterSPDEff.cxx:382
 AliITSTrackleterSPDEff.cxx:383
 AliITSTrackleterSPDEff.cxx:384
 AliITSTrackleterSPDEff.cxx:385
 AliITSTrackleterSPDEff.cxx:386
 AliITSTrackleterSPDEff.cxx:387
 AliITSTrackleterSPDEff.cxx:388
 AliITSTrackleterSPDEff.cxx:389
 AliITSTrackleterSPDEff.cxx:390
 AliITSTrackleterSPDEff.cxx:391
 AliITSTrackleterSPDEff.cxx:392
 AliITSTrackleterSPDEff.cxx:393
 AliITSTrackleterSPDEff.cxx:394
 AliITSTrackleterSPDEff.cxx:395
 AliITSTrackleterSPDEff.cxx:396
 AliITSTrackleterSPDEff.cxx:397
 AliITSTrackleterSPDEff.cxx:398
 AliITSTrackleterSPDEff.cxx:399
 AliITSTrackleterSPDEff.cxx:400
 AliITSTrackleterSPDEff.cxx:401
 AliITSTrackleterSPDEff.cxx:402
 AliITSTrackleterSPDEff.cxx:403
 AliITSTrackleterSPDEff.cxx:404
 AliITSTrackleterSPDEff.cxx:405
 AliITSTrackleterSPDEff.cxx:406
 AliITSTrackleterSPDEff.cxx:407
 AliITSTrackleterSPDEff.cxx:408
 AliITSTrackleterSPDEff.cxx:409
 AliITSTrackleterSPDEff.cxx:410
 AliITSTrackleterSPDEff.cxx:411
 AliITSTrackleterSPDEff.cxx:412
 AliITSTrackleterSPDEff.cxx:413
 AliITSTrackleterSPDEff.cxx:414
 AliITSTrackleterSPDEff.cxx:415
 AliITSTrackleterSPDEff.cxx:416
 AliITSTrackleterSPDEff.cxx:417
 AliITSTrackleterSPDEff.cxx:418
 AliITSTrackleterSPDEff.cxx:419
 AliITSTrackleterSPDEff.cxx:420
 AliITSTrackleterSPDEff.cxx:421
 AliITSTrackleterSPDEff.cxx:422
 AliITSTrackleterSPDEff.cxx:423
 AliITSTrackleterSPDEff.cxx:424
 AliITSTrackleterSPDEff.cxx:425
 AliITSTrackleterSPDEff.cxx:426
 AliITSTrackleterSPDEff.cxx:427
 AliITSTrackleterSPDEff.cxx:428
 AliITSTrackleterSPDEff.cxx:429
 AliITSTrackleterSPDEff.cxx:430
 AliITSTrackleterSPDEff.cxx:431
 AliITSTrackleterSPDEff.cxx:432
 AliITSTrackleterSPDEff.cxx:433
 AliITSTrackleterSPDEff.cxx:434
 AliITSTrackleterSPDEff.cxx:435
 AliITSTrackleterSPDEff.cxx:436
 AliITSTrackleterSPDEff.cxx:437
 AliITSTrackleterSPDEff.cxx:438
 AliITSTrackleterSPDEff.cxx:439
 AliITSTrackleterSPDEff.cxx:440
 AliITSTrackleterSPDEff.cxx:441
 AliITSTrackleterSPDEff.cxx:442
 AliITSTrackleterSPDEff.cxx:443
 AliITSTrackleterSPDEff.cxx:444
 AliITSTrackleterSPDEff.cxx:445
 AliITSTrackleterSPDEff.cxx:446
 AliITSTrackleterSPDEff.cxx:447
 AliITSTrackleterSPDEff.cxx:448
 AliITSTrackleterSPDEff.cxx:449
 AliITSTrackleterSPDEff.cxx:450
 AliITSTrackleterSPDEff.cxx:451
 AliITSTrackleterSPDEff.cxx:452
 AliITSTrackleterSPDEff.cxx:453
 AliITSTrackleterSPDEff.cxx:454
 AliITSTrackleterSPDEff.cxx:455
 AliITSTrackleterSPDEff.cxx:456
 AliITSTrackleterSPDEff.cxx:457
 AliITSTrackleterSPDEff.cxx:458
 AliITSTrackleterSPDEff.cxx:459
 AliITSTrackleterSPDEff.cxx:460
 AliITSTrackleterSPDEff.cxx:461
 AliITSTrackleterSPDEff.cxx:462
 AliITSTrackleterSPDEff.cxx:463
 AliITSTrackleterSPDEff.cxx:464
 AliITSTrackleterSPDEff.cxx:465
 AliITSTrackleterSPDEff.cxx:466
 AliITSTrackleterSPDEff.cxx:467
 AliITSTrackleterSPDEff.cxx:468
 AliITSTrackleterSPDEff.cxx:469
 AliITSTrackleterSPDEff.cxx:470
 AliITSTrackleterSPDEff.cxx:471
 AliITSTrackleterSPDEff.cxx:472
 AliITSTrackleterSPDEff.cxx:473
 AliITSTrackleterSPDEff.cxx:474
 AliITSTrackleterSPDEff.cxx:475
 AliITSTrackleterSPDEff.cxx:476
 AliITSTrackleterSPDEff.cxx:477
 AliITSTrackleterSPDEff.cxx:478
 AliITSTrackleterSPDEff.cxx:479
 AliITSTrackleterSPDEff.cxx:480
 AliITSTrackleterSPDEff.cxx:481
 AliITSTrackleterSPDEff.cxx:482
 AliITSTrackleterSPDEff.cxx:483
 AliITSTrackleterSPDEff.cxx:484
 AliITSTrackleterSPDEff.cxx:485
 AliITSTrackleterSPDEff.cxx:486
 AliITSTrackleterSPDEff.cxx:487
 AliITSTrackleterSPDEff.cxx:488
 AliITSTrackleterSPDEff.cxx:489
 AliITSTrackleterSPDEff.cxx:490
 AliITSTrackleterSPDEff.cxx:491
 AliITSTrackleterSPDEff.cxx:492
 AliITSTrackleterSPDEff.cxx:493
 AliITSTrackleterSPDEff.cxx:494
 AliITSTrackleterSPDEff.cxx:495
 AliITSTrackleterSPDEff.cxx:496
 AliITSTrackleterSPDEff.cxx:497
 AliITSTrackleterSPDEff.cxx:498
 AliITSTrackleterSPDEff.cxx:499
 AliITSTrackleterSPDEff.cxx:500
 AliITSTrackleterSPDEff.cxx:501
 AliITSTrackleterSPDEff.cxx:502
 AliITSTrackleterSPDEff.cxx:503
 AliITSTrackleterSPDEff.cxx:504
 AliITSTrackleterSPDEff.cxx:505
 AliITSTrackleterSPDEff.cxx:506
 AliITSTrackleterSPDEff.cxx:507
 AliITSTrackleterSPDEff.cxx:508
 AliITSTrackleterSPDEff.cxx:509
 AliITSTrackleterSPDEff.cxx:510
 AliITSTrackleterSPDEff.cxx:511
 AliITSTrackleterSPDEff.cxx:512
 AliITSTrackleterSPDEff.cxx:513
 AliITSTrackleterSPDEff.cxx:514
 AliITSTrackleterSPDEff.cxx:515
 AliITSTrackleterSPDEff.cxx:516
 AliITSTrackleterSPDEff.cxx:517
 AliITSTrackleterSPDEff.cxx:518
 AliITSTrackleterSPDEff.cxx:519
 AliITSTrackleterSPDEff.cxx:520
 AliITSTrackleterSPDEff.cxx:521
 AliITSTrackleterSPDEff.cxx:522
 AliITSTrackleterSPDEff.cxx:523
 AliITSTrackleterSPDEff.cxx:524
 AliITSTrackleterSPDEff.cxx:525
 AliITSTrackleterSPDEff.cxx:526
 AliITSTrackleterSPDEff.cxx:527
 AliITSTrackleterSPDEff.cxx:528
 AliITSTrackleterSPDEff.cxx:529
 AliITSTrackleterSPDEff.cxx:530
 AliITSTrackleterSPDEff.cxx:531
 AliITSTrackleterSPDEff.cxx:532
 AliITSTrackleterSPDEff.cxx:533
 AliITSTrackleterSPDEff.cxx:534
 AliITSTrackleterSPDEff.cxx:535
 AliITSTrackleterSPDEff.cxx:536
 AliITSTrackleterSPDEff.cxx:537
 AliITSTrackleterSPDEff.cxx:538
 AliITSTrackleterSPDEff.cxx:539
 AliITSTrackleterSPDEff.cxx:540
 AliITSTrackleterSPDEff.cxx:541
 AliITSTrackleterSPDEff.cxx:542
 AliITSTrackleterSPDEff.cxx:543
 AliITSTrackleterSPDEff.cxx:544
 AliITSTrackleterSPDEff.cxx:545
 AliITSTrackleterSPDEff.cxx:546
 AliITSTrackleterSPDEff.cxx:547
 AliITSTrackleterSPDEff.cxx:548
 AliITSTrackleterSPDEff.cxx:549
 AliITSTrackleterSPDEff.cxx:550
 AliITSTrackleterSPDEff.cxx:551
 AliITSTrackleterSPDEff.cxx:552
 AliITSTrackleterSPDEff.cxx:553
 AliITSTrackleterSPDEff.cxx:554
 AliITSTrackleterSPDEff.cxx:555
 AliITSTrackleterSPDEff.cxx:556
 AliITSTrackleterSPDEff.cxx:557
 AliITSTrackleterSPDEff.cxx:558
 AliITSTrackleterSPDEff.cxx:559
 AliITSTrackleterSPDEff.cxx:560
 AliITSTrackleterSPDEff.cxx:561
 AliITSTrackleterSPDEff.cxx:562
 AliITSTrackleterSPDEff.cxx:563
 AliITSTrackleterSPDEff.cxx:564
 AliITSTrackleterSPDEff.cxx:565
 AliITSTrackleterSPDEff.cxx:566
 AliITSTrackleterSPDEff.cxx:567
 AliITSTrackleterSPDEff.cxx:568
 AliITSTrackleterSPDEff.cxx:569
 AliITSTrackleterSPDEff.cxx:570
 AliITSTrackleterSPDEff.cxx:571
 AliITSTrackleterSPDEff.cxx:572
 AliITSTrackleterSPDEff.cxx:573
 AliITSTrackleterSPDEff.cxx:574
 AliITSTrackleterSPDEff.cxx:575
 AliITSTrackleterSPDEff.cxx:576
 AliITSTrackleterSPDEff.cxx:577
 AliITSTrackleterSPDEff.cxx:578
 AliITSTrackleterSPDEff.cxx:579
 AliITSTrackleterSPDEff.cxx:580
 AliITSTrackleterSPDEff.cxx:581
 AliITSTrackleterSPDEff.cxx:582
 AliITSTrackleterSPDEff.cxx:583
 AliITSTrackleterSPDEff.cxx:584
 AliITSTrackleterSPDEff.cxx:585
 AliITSTrackleterSPDEff.cxx:586
 AliITSTrackleterSPDEff.cxx:587
 AliITSTrackleterSPDEff.cxx:588
 AliITSTrackleterSPDEff.cxx:589
 AliITSTrackleterSPDEff.cxx:590
 AliITSTrackleterSPDEff.cxx:591
 AliITSTrackleterSPDEff.cxx:592
 AliITSTrackleterSPDEff.cxx:593
 AliITSTrackleterSPDEff.cxx:594
 AliITSTrackleterSPDEff.cxx:595
 AliITSTrackleterSPDEff.cxx:596
 AliITSTrackleterSPDEff.cxx:597
 AliITSTrackleterSPDEff.cxx:598
 AliITSTrackleterSPDEff.cxx:599
 AliITSTrackleterSPDEff.cxx:600
 AliITSTrackleterSPDEff.cxx:601
 AliITSTrackleterSPDEff.cxx:602
 AliITSTrackleterSPDEff.cxx:603
 AliITSTrackleterSPDEff.cxx:604
 AliITSTrackleterSPDEff.cxx:605
 AliITSTrackleterSPDEff.cxx:606
 AliITSTrackleterSPDEff.cxx:607
 AliITSTrackleterSPDEff.cxx:608
 AliITSTrackleterSPDEff.cxx:609
 AliITSTrackleterSPDEff.cxx:610
 AliITSTrackleterSPDEff.cxx:611
 AliITSTrackleterSPDEff.cxx:612
 AliITSTrackleterSPDEff.cxx:613
 AliITSTrackleterSPDEff.cxx:614
 AliITSTrackleterSPDEff.cxx:615
 AliITSTrackleterSPDEff.cxx:616
 AliITSTrackleterSPDEff.cxx:617
 AliITSTrackleterSPDEff.cxx:618
 AliITSTrackleterSPDEff.cxx:619
 AliITSTrackleterSPDEff.cxx:620
 AliITSTrackleterSPDEff.cxx:621
 AliITSTrackleterSPDEff.cxx:622
 AliITSTrackleterSPDEff.cxx:623
 AliITSTrackleterSPDEff.cxx:624
 AliITSTrackleterSPDEff.cxx:625
 AliITSTrackleterSPDEff.cxx:626
 AliITSTrackleterSPDEff.cxx:627
 AliITSTrackleterSPDEff.cxx:628
 AliITSTrackleterSPDEff.cxx:629
 AliITSTrackleterSPDEff.cxx:630
 AliITSTrackleterSPDEff.cxx:631
 AliITSTrackleterSPDEff.cxx:632
 AliITSTrackleterSPDEff.cxx:633
 AliITSTrackleterSPDEff.cxx:634
 AliITSTrackleterSPDEff.cxx:635
 AliITSTrackleterSPDEff.cxx:636
 AliITSTrackleterSPDEff.cxx:637
 AliITSTrackleterSPDEff.cxx:638
 AliITSTrackleterSPDEff.cxx:639
 AliITSTrackleterSPDEff.cxx:640
 AliITSTrackleterSPDEff.cxx:641
 AliITSTrackleterSPDEff.cxx:642
 AliITSTrackleterSPDEff.cxx:643
 AliITSTrackleterSPDEff.cxx:644
 AliITSTrackleterSPDEff.cxx:645
 AliITSTrackleterSPDEff.cxx:646
 AliITSTrackleterSPDEff.cxx:647
 AliITSTrackleterSPDEff.cxx:648
 AliITSTrackleterSPDEff.cxx:649
 AliITSTrackleterSPDEff.cxx:650
 AliITSTrackleterSPDEff.cxx:651
 AliITSTrackleterSPDEff.cxx:652
 AliITSTrackleterSPDEff.cxx:653
 AliITSTrackleterSPDEff.cxx:654
 AliITSTrackleterSPDEff.cxx:655
 AliITSTrackleterSPDEff.cxx:656
 AliITSTrackleterSPDEff.cxx:657
 AliITSTrackleterSPDEff.cxx:658
 AliITSTrackleterSPDEff.cxx:659
 AliITSTrackleterSPDEff.cxx:660
 AliITSTrackleterSPDEff.cxx:661
 AliITSTrackleterSPDEff.cxx:662
 AliITSTrackleterSPDEff.cxx:663
 AliITSTrackleterSPDEff.cxx:664
 AliITSTrackleterSPDEff.cxx:665
 AliITSTrackleterSPDEff.cxx:666
 AliITSTrackleterSPDEff.cxx:667
 AliITSTrackleterSPDEff.cxx:668
 AliITSTrackleterSPDEff.cxx:669
 AliITSTrackleterSPDEff.cxx:670
 AliITSTrackleterSPDEff.cxx:671
 AliITSTrackleterSPDEff.cxx:672
 AliITSTrackleterSPDEff.cxx:673
 AliITSTrackleterSPDEff.cxx:674
 AliITSTrackleterSPDEff.cxx:675
 AliITSTrackleterSPDEff.cxx:676
 AliITSTrackleterSPDEff.cxx:677
 AliITSTrackleterSPDEff.cxx:678
 AliITSTrackleterSPDEff.cxx:679
 AliITSTrackleterSPDEff.cxx:680
 AliITSTrackleterSPDEff.cxx:681
 AliITSTrackleterSPDEff.cxx:682
 AliITSTrackleterSPDEff.cxx:683
 AliITSTrackleterSPDEff.cxx:684
 AliITSTrackleterSPDEff.cxx:685
 AliITSTrackleterSPDEff.cxx:686
 AliITSTrackleterSPDEff.cxx:687
 AliITSTrackleterSPDEff.cxx:688
 AliITSTrackleterSPDEff.cxx:689
 AliITSTrackleterSPDEff.cxx:690
 AliITSTrackleterSPDEff.cxx:691
 AliITSTrackleterSPDEff.cxx:692
 AliITSTrackleterSPDEff.cxx:693
 AliITSTrackleterSPDEff.cxx:694
 AliITSTrackleterSPDEff.cxx:695
 AliITSTrackleterSPDEff.cxx:696
 AliITSTrackleterSPDEff.cxx:697
 AliITSTrackleterSPDEff.cxx:698
 AliITSTrackleterSPDEff.cxx:699
 AliITSTrackleterSPDEff.cxx:700
 AliITSTrackleterSPDEff.cxx:701
 AliITSTrackleterSPDEff.cxx:702
 AliITSTrackleterSPDEff.cxx:703
 AliITSTrackleterSPDEff.cxx:704
 AliITSTrackleterSPDEff.cxx:705
 AliITSTrackleterSPDEff.cxx:706
 AliITSTrackleterSPDEff.cxx:707
 AliITSTrackleterSPDEff.cxx:708
 AliITSTrackleterSPDEff.cxx:709
 AliITSTrackleterSPDEff.cxx:710
 AliITSTrackleterSPDEff.cxx:711
 AliITSTrackleterSPDEff.cxx:712
 AliITSTrackleterSPDEff.cxx:713
 AliITSTrackleterSPDEff.cxx:714
 AliITSTrackleterSPDEff.cxx:715
 AliITSTrackleterSPDEff.cxx:716
 AliITSTrackleterSPDEff.cxx:717
 AliITSTrackleterSPDEff.cxx:718
 AliITSTrackleterSPDEff.cxx:719
 AliITSTrackleterSPDEff.cxx:720
 AliITSTrackleterSPDEff.cxx:721
 AliITSTrackleterSPDEff.cxx:722
 AliITSTrackleterSPDEff.cxx:723
 AliITSTrackleterSPDEff.cxx:724
 AliITSTrackleterSPDEff.cxx:725
 AliITSTrackleterSPDEff.cxx:726
 AliITSTrackleterSPDEff.cxx:727
 AliITSTrackleterSPDEff.cxx:728
 AliITSTrackleterSPDEff.cxx:729
 AliITSTrackleterSPDEff.cxx:730
 AliITSTrackleterSPDEff.cxx:731
 AliITSTrackleterSPDEff.cxx:732
 AliITSTrackleterSPDEff.cxx:733
 AliITSTrackleterSPDEff.cxx:734
 AliITSTrackleterSPDEff.cxx:735
 AliITSTrackleterSPDEff.cxx:736
 AliITSTrackleterSPDEff.cxx:737
 AliITSTrackleterSPDEff.cxx:738
 AliITSTrackleterSPDEff.cxx:739
 AliITSTrackleterSPDEff.cxx:740
 AliITSTrackleterSPDEff.cxx:741
 AliITSTrackleterSPDEff.cxx:742
 AliITSTrackleterSPDEff.cxx:743
 AliITSTrackleterSPDEff.cxx:744
 AliITSTrackleterSPDEff.cxx:745
 AliITSTrackleterSPDEff.cxx:746
 AliITSTrackleterSPDEff.cxx:747
 AliITSTrackleterSPDEff.cxx:748
 AliITSTrackleterSPDEff.cxx:749
 AliITSTrackleterSPDEff.cxx:750
 AliITSTrackleterSPDEff.cxx:751
 AliITSTrackleterSPDEff.cxx:752
 AliITSTrackleterSPDEff.cxx:753
 AliITSTrackleterSPDEff.cxx:754
 AliITSTrackleterSPDEff.cxx:755
 AliITSTrackleterSPDEff.cxx:756
 AliITSTrackleterSPDEff.cxx:757
 AliITSTrackleterSPDEff.cxx:758
 AliITSTrackleterSPDEff.cxx:759
 AliITSTrackleterSPDEff.cxx:760
 AliITSTrackleterSPDEff.cxx:761
 AliITSTrackleterSPDEff.cxx:762
 AliITSTrackleterSPDEff.cxx:763
 AliITSTrackleterSPDEff.cxx:764
 AliITSTrackleterSPDEff.cxx:765
 AliITSTrackleterSPDEff.cxx:766
 AliITSTrackleterSPDEff.cxx:767
 AliITSTrackleterSPDEff.cxx:768
 AliITSTrackleterSPDEff.cxx:769
 AliITSTrackleterSPDEff.cxx:770
 AliITSTrackleterSPDEff.cxx:771
 AliITSTrackleterSPDEff.cxx:772
 AliITSTrackleterSPDEff.cxx:773
 AliITSTrackleterSPDEff.cxx:774
 AliITSTrackleterSPDEff.cxx:775
 AliITSTrackleterSPDEff.cxx:776
 AliITSTrackleterSPDEff.cxx:777
 AliITSTrackleterSPDEff.cxx:778
 AliITSTrackleterSPDEff.cxx:779
 AliITSTrackleterSPDEff.cxx:780
 AliITSTrackleterSPDEff.cxx:781
 AliITSTrackleterSPDEff.cxx:782
 AliITSTrackleterSPDEff.cxx:783
 AliITSTrackleterSPDEff.cxx:784
 AliITSTrackleterSPDEff.cxx:785
 AliITSTrackleterSPDEff.cxx:786
 AliITSTrackleterSPDEff.cxx:787
 AliITSTrackleterSPDEff.cxx:788
 AliITSTrackleterSPDEff.cxx:789
 AliITSTrackleterSPDEff.cxx:790
 AliITSTrackleterSPDEff.cxx:791
 AliITSTrackleterSPDEff.cxx:792
 AliITSTrackleterSPDEff.cxx:793
 AliITSTrackleterSPDEff.cxx:794
 AliITSTrackleterSPDEff.cxx:795
 AliITSTrackleterSPDEff.cxx:796
 AliITSTrackleterSPDEff.cxx:797
 AliITSTrackleterSPDEff.cxx:798
 AliITSTrackleterSPDEff.cxx:799
 AliITSTrackleterSPDEff.cxx:800
 AliITSTrackleterSPDEff.cxx:801
 AliITSTrackleterSPDEff.cxx:802
 AliITSTrackleterSPDEff.cxx:803
 AliITSTrackleterSPDEff.cxx:804
 AliITSTrackleterSPDEff.cxx:805
 AliITSTrackleterSPDEff.cxx:806
 AliITSTrackleterSPDEff.cxx:807
 AliITSTrackleterSPDEff.cxx:808
 AliITSTrackleterSPDEff.cxx:809
 AliITSTrackleterSPDEff.cxx:810
 AliITSTrackleterSPDEff.cxx:811
 AliITSTrackleterSPDEff.cxx:812
 AliITSTrackleterSPDEff.cxx:813
 AliITSTrackleterSPDEff.cxx:814
 AliITSTrackleterSPDEff.cxx:815
 AliITSTrackleterSPDEff.cxx:816
 AliITSTrackleterSPDEff.cxx:817
 AliITSTrackleterSPDEff.cxx:818
 AliITSTrackleterSPDEff.cxx:819
 AliITSTrackleterSPDEff.cxx:820
 AliITSTrackleterSPDEff.cxx:821
 AliITSTrackleterSPDEff.cxx:822
 AliITSTrackleterSPDEff.cxx:823
 AliITSTrackleterSPDEff.cxx:824
 AliITSTrackleterSPDEff.cxx:825
 AliITSTrackleterSPDEff.cxx:826
 AliITSTrackleterSPDEff.cxx:827
 AliITSTrackleterSPDEff.cxx:828
 AliITSTrackleterSPDEff.cxx:829
 AliITSTrackleterSPDEff.cxx:830
 AliITSTrackleterSPDEff.cxx:831
 AliITSTrackleterSPDEff.cxx:832
 AliITSTrackleterSPDEff.cxx:833
 AliITSTrackleterSPDEff.cxx:834
 AliITSTrackleterSPDEff.cxx:835
 AliITSTrackleterSPDEff.cxx:836
 AliITSTrackleterSPDEff.cxx:837
 AliITSTrackleterSPDEff.cxx:838
 AliITSTrackleterSPDEff.cxx:839
 AliITSTrackleterSPDEff.cxx:840
 AliITSTrackleterSPDEff.cxx:841
 AliITSTrackleterSPDEff.cxx:842
 AliITSTrackleterSPDEff.cxx:843
 AliITSTrackleterSPDEff.cxx:844
 AliITSTrackleterSPDEff.cxx:845
 AliITSTrackleterSPDEff.cxx:846
 AliITSTrackleterSPDEff.cxx:847
 AliITSTrackleterSPDEff.cxx:848
 AliITSTrackleterSPDEff.cxx:849
 AliITSTrackleterSPDEff.cxx:850
 AliITSTrackleterSPDEff.cxx:851
 AliITSTrackleterSPDEff.cxx:852
 AliITSTrackleterSPDEff.cxx:853
 AliITSTrackleterSPDEff.cxx:854
 AliITSTrackleterSPDEff.cxx:855
 AliITSTrackleterSPDEff.cxx:856
 AliITSTrackleterSPDEff.cxx:857
 AliITSTrackleterSPDEff.cxx:858
 AliITSTrackleterSPDEff.cxx:859
 AliITSTrackleterSPDEff.cxx:860
 AliITSTrackleterSPDEff.cxx:861
 AliITSTrackleterSPDEff.cxx:862
 AliITSTrackleterSPDEff.cxx:863
 AliITSTrackleterSPDEff.cxx:864
 AliITSTrackleterSPDEff.cxx:865
 AliITSTrackleterSPDEff.cxx:866
 AliITSTrackleterSPDEff.cxx:867
 AliITSTrackleterSPDEff.cxx:868
 AliITSTrackleterSPDEff.cxx:869
 AliITSTrackleterSPDEff.cxx:870
 AliITSTrackleterSPDEff.cxx:871
 AliITSTrackleterSPDEff.cxx:872
 AliITSTrackleterSPDEff.cxx:873
 AliITSTrackleterSPDEff.cxx:874
 AliITSTrackleterSPDEff.cxx:875
 AliITSTrackleterSPDEff.cxx:876
 AliITSTrackleterSPDEff.cxx:877
 AliITSTrackleterSPDEff.cxx:878
 AliITSTrackleterSPDEff.cxx:879
 AliITSTrackleterSPDEff.cxx:880
 AliITSTrackleterSPDEff.cxx:881
 AliITSTrackleterSPDEff.cxx:882
 AliITSTrackleterSPDEff.cxx:883
 AliITSTrackleterSPDEff.cxx:884
 AliITSTrackleterSPDEff.cxx:885
 AliITSTrackleterSPDEff.cxx:886
 AliITSTrackleterSPDEff.cxx:887
 AliITSTrackleterSPDEff.cxx:888
 AliITSTrackleterSPDEff.cxx:889
 AliITSTrackleterSPDEff.cxx:890
 AliITSTrackleterSPDEff.cxx:891
 AliITSTrackleterSPDEff.cxx:892
 AliITSTrackleterSPDEff.cxx:893
 AliITSTrackleterSPDEff.cxx:894
 AliITSTrackleterSPDEff.cxx:895
 AliITSTrackleterSPDEff.cxx:896
 AliITSTrackleterSPDEff.cxx:897
 AliITSTrackleterSPDEff.cxx:898
 AliITSTrackleterSPDEff.cxx:899
 AliITSTrackleterSPDEff.cxx:900
 AliITSTrackleterSPDEff.cxx:901
 AliITSTrackleterSPDEff.cxx:902
 AliITSTrackleterSPDEff.cxx:903
 AliITSTrackleterSPDEff.cxx:904
 AliITSTrackleterSPDEff.cxx:905
 AliITSTrackleterSPDEff.cxx:906
 AliITSTrackleterSPDEff.cxx:907
 AliITSTrackleterSPDEff.cxx:908
 AliITSTrackleterSPDEff.cxx:909
 AliITSTrackleterSPDEff.cxx:910
 AliITSTrackleterSPDEff.cxx:911
 AliITSTrackleterSPDEff.cxx:912
 AliITSTrackleterSPDEff.cxx:913
 AliITSTrackleterSPDEff.cxx:914
 AliITSTrackleterSPDEff.cxx:915
 AliITSTrackleterSPDEff.cxx:916
 AliITSTrackleterSPDEff.cxx:917
 AliITSTrackleterSPDEff.cxx:918
 AliITSTrackleterSPDEff.cxx:919
 AliITSTrackleterSPDEff.cxx:920
 AliITSTrackleterSPDEff.cxx:921
 AliITSTrackleterSPDEff.cxx:922
 AliITSTrackleterSPDEff.cxx:923
 AliITSTrackleterSPDEff.cxx:924
 AliITSTrackleterSPDEff.cxx:925
 AliITSTrackleterSPDEff.cxx:926
 AliITSTrackleterSPDEff.cxx:927
 AliITSTrackleterSPDEff.cxx:928
 AliITSTrackleterSPDEff.cxx:929
 AliITSTrackleterSPDEff.cxx:930
 AliITSTrackleterSPDEff.cxx:931
 AliITSTrackleterSPDEff.cxx:932
 AliITSTrackleterSPDEff.cxx:933
 AliITSTrackleterSPDEff.cxx:934
 AliITSTrackleterSPDEff.cxx:935
 AliITSTrackleterSPDEff.cxx:936
 AliITSTrackleterSPDEff.cxx:937
 AliITSTrackleterSPDEff.cxx:938
 AliITSTrackleterSPDEff.cxx:939
 AliITSTrackleterSPDEff.cxx:940
 AliITSTrackleterSPDEff.cxx:941
 AliITSTrackleterSPDEff.cxx:942
 AliITSTrackleterSPDEff.cxx:943
 AliITSTrackleterSPDEff.cxx:944
 AliITSTrackleterSPDEff.cxx:945
 AliITSTrackleterSPDEff.cxx:946
 AliITSTrackleterSPDEff.cxx:947
 AliITSTrackleterSPDEff.cxx:948
 AliITSTrackleterSPDEff.cxx:949
 AliITSTrackleterSPDEff.cxx:950
 AliITSTrackleterSPDEff.cxx:951
 AliITSTrackleterSPDEff.cxx:952
 AliITSTrackleterSPDEff.cxx:953
 AliITSTrackleterSPDEff.cxx:954
 AliITSTrackleterSPDEff.cxx:955
 AliITSTrackleterSPDEff.cxx:956
 AliITSTrackleterSPDEff.cxx:957
 AliITSTrackleterSPDEff.cxx:958
 AliITSTrackleterSPDEff.cxx:959
 AliITSTrackleterSPDEff.cxx:960
 AliITSTrackleterSPDEff.cxx:961
 AliITSTrackleterSPDEff.cxx:962
 AliITSTrackleterSPDEff.cxx:963
 AliITSTrackleterSPDEff.cxx:964
 AliITSTrackleterSPDEff.cxx:965
 AliITSTrackleterSPDEff.cxx:966
 AliITSTrackleterSPDEff.cxx:967
 AliITSTrackleterSPDEff.cxx:968
 AliITSTrackleterSPDEff.cxx:969
 AliITSTrackleterSPDEff.cxx:970
 AliITSTrackleterSPDEff.cxx:971
 AliITSTrackleterSPDEff.cxx:972
 AliITSTrackleterSPDEff.cxx:973
 AliITSTrackleterSPDEff.cxx:974
 AliITSTrackleterSPDEff.cxx:975
 AliITSTrackleterSPDEff.cxx:976
 AliITSTrackleterSPDEff.cxx:977
 AliITSTrackleterSPDEff.cxx:978
 AliITSTrackleterSPDEff.cxx:979
 AliITSTrackleterSPDEff.cxx:980
 AliITSTrackleterSPDEff.cxx:981
 AliITSTrackleterSPDEff.cxx:982
 AliITSTrackleterSPDEff.cxx:983
 AliITSTrackleterSPDEff.cxx:984
 AliITSTrackleterSPDEff.cxx:985
 AliITSTrackleterSPDEff.cxx:986
 AliITSTrackleterSPDEff.cxx:987
 AliITSTrackleterSPDEff.cxx:988
 AliITSTrackleterSPDEff.cxx:989
 AliITSTrackleterSPDEff.cxx:990
 AliITSTrackleterSPDEff.cxx:991
 AliITSTrackleterSPDEff.cxx:992
 AliITSTrackleterSPDEff.cxx:993
 AliITSTrackleterSPDEff.cxx:994
 AliITSTrackleterSPDEff.cxx:995
 AliITSTrackleterSPDEff.cxx:996
 AliITSTrackleterSPDEff.cxx:997
 AliITSTrackleterSPDEff.cxx:998
 AliITSTrackleterSPDEff.cxx:999
 AliITSTrackleterSPDEff.cxx:1000
 AliITSTrackleterSPDEff.cxx:1001
 AliITSTrackleterSPDEff.cxx:1002
 AliITSTrackleterSPDEff.cxx:1003
 AliITSTrackleterSPDEff.cxx:1004
 AliITSTrackleterSPDEff.cxx:1005
 AliITSTrackleterSPDEff.cxx:1006
 AliITSTrackleterSPDEff.cxx:1007
 AliITSTrackleterSPDEff.cxx:1008
 AliITSTrackleterSPDEff.cxx:1009
 AliITSTrackleterSPDEff.cxx:1010
 AliITSTrackleterSPDEff.cxx:1011
 AliITSTrackleterSPDEff.cxx:1012
 AliITSTrackleterSPDEff.cxx:1013
 AliITSTrackleterSPDEff.cxx:1014
 AliITSTrackleterSPDEff.cxx:1015
 AliITSTrackleterSPDEff.cxx:1016
 AliITSTrackleterSPDEff.cxx:1017
 AliITSTrackleterSPDEff.cxx:1018
 AliITSTrackleterSPDEff.cxx:1019
 AliITSTrackleterSPDEff.cxx:1020
 AliITSTrackleterSPDEff.cxx:1021
 AliITSTrackleterSPDEff.cxx:1022
 AliITSTrackleterSPDEff.cxx:1023
 AliITSTrackleterSPDEff.cxx:1024
 AliITSTrackleterSPDEff.cxx:1025
 AliITSTrackleterSPDEff.cxx:1026
 AliITSTrackleterSPDEff.cxx:1027
 AliITSTrackleterSPDEff.cxx:1028
 AliITSTrackleterSPDEff.cxx:1029
 AliITSTrackleterSPDEff.cxx:1030
 AliITSTrackleterSPDEff.cxx:1031
 AliITSTrackleterSPDEff.cxx:1032
 AliITSTrackleterSPDEff.cxx:1033
 AliITSTrackleterSPDEff.cxx:1034
 AliITSTrackleterSPDEff.cxx:1035
 AliITSTrackleterSPDEff.cxx:1036
 AliITSTrackleterSPDEff.cxx:1037
 AliITSTrackleterSPDEff.cxx:1038
 AliITSTrackleterSPDEff.cxx:1039
 AliITSTrackleterSPDEff.cxx:1040
 AliITSTrackleterSPDEff.cxx:1041
 AliITSTrackleterSPDEff.cxx:1042
 AliITSTrackleterSPDEff.cxx:1043
 AliITSTrackleterSPDEff.cxx:1044
 AliITSTrackleterSPDEff.cxx:1045
 AliITSTrackleterSPDEff.cxx:1046
 AliITSTrackleterSPDEff.cxx:1047
 AliITSTrackleterSPDEff.cxx:1048
 AliITSTrackleterSPDEff.cxx:1049
 AliITSTrackleterSPDEff.cxx:1050
 AliITSTrackleterSPDEff.cxx:1051
 AliITSTrackleterSPDEff.cxx:1052
 AliITSTrackleterSPDEff.cxx:1053
 AliITSTrackleterSPDEff.cxx:1054
 AliITSTrackleterSPDEff.cxx:1055
 AliITSTrackleterSPDEff.cxx:1056
 AliITSTrackleterSPDEff.cxx:1057
 AliITSTrackleterSPDEff.cxx:1058
 AliITSTrackleterSPDEff.cxx:1059
 AliITSTrackleterSPDEff.cxx:1060
 AliITSTrackleterSPDEff.cxx:1061
 AliITSTrackleterSPDEff.cxx:1062
 AliITSTrackleterSPDEff.cxx:1063
 AliITSTrackleterSPDEff.cxx:1064
 AliITSTrackleterSPDEff.cxx:1065
 AliITSTrackleterSPDEff.cxx:1066
 AliITSTrackleterSPDEff.cxx:1067
 AliITSTrackleterSPDEff.cxx:1068
 AliITSTrackleterSPDEff.cxx:1069
 AliITSTrackleterSPDEff.cxx:1070
 AliITSTrackleterSPDEff.cxx:1071
 AliITSTrackleterSPDEff.cxx:1072
 AliITSTrackleterSPDEff.cxx:1073
 AliITSTrackleterSPDEff.cxx:1074
 AliITSTrackleterSPDEff.cxx:1075
 AliITSTrackleterSPDEff.cxx:1076
 AliITSTrackleterSPDEff.cxx:1077
 AliITSTrackleterSPDEff.cxx:1078
 AliITSTrackleterSPDEff.cxx:1079
 AliITSTrackleterSPDEff.cxx:1080
 AliITSTrackleterSPDEff.cxx:1081
 AliITSTrackleterSPDEff.cxx:1082
 AliITSTrackleterSPDEff.cxx:1083
 AliITSTrackleterSPDEff.cxx:1084
 AliITSTrackleterSPDEff.cxx:1085
 AliITSTrackleterSPDEff.cxx:1086
 AliITSTrackleterSPDEff.cxx:1087
 AliITSTrackleterSPDEff.cxx:1088
 AliITSTrackleterSPDEff.cxx:1089
 AliITSTrackleterSPDEff.cxx:1090
 AliITSTrackleterSPDEff.cxx:1091
 AliITSTrackleterSPDEff.cxx:1092
 AliITSTrackleterSPDEff.cxx:1093
 AliITSTrackleterSPDEff.cxx:1094
 AliITSTrackleterSPDEff.cxx:1095
 AliITSTrackleterSPDEff.cxx:1096
 AliITSTrackleterSPDEff.cxx:1097
 AliITSTrackleterSPDEff.cxx:1098
 AliITSTrackleterSPDEff.cxx:1099
 AliITSTrackleterSPDEff.cxx:1100
 AliITSTrackleterSPDEff.cxx:1101
 AliITSTrackleterSPDEff.cxx:1102
 AliITSTrackleterSPDEff.cxx:1103
 AliITSTrackleterSPDEff.cxx:1104
 AliITSTrackleterSPDEff.cxx:1105
 AliITSTrackleterSPDEff.cxx:1106
 AliITSTrackleterSPDEff.cxx:1107
 AliITSTrackleterSPDEff.cxx:1108
 AliITSTrackleterSPDEff.cxx:1109
 AliITSTrackleterSPDEff.cxx:1110
 AliITSTrackleterSPDEff.cxx:1111
 AliITSTrackleterSPDEff.cxx:1112
 AliITSTrackleterSPDEff.cxx:1113
 AliITSTrackleterSPDEff.cxx:1114
 AliITSTrackleterSPDEff.cxx:1115
 AliITSTrackleterSPDEff.cxx:1116
 AliITSTrackleterSPDEff.cxx:1117
 AliITSTrackleterSPDEff.cxx:1118
 AliITSTrackleterSPDEff.cxx:1119
 AliITSTrackleterSPDEff.cxx:1120
 AliITSTrackleterSPDEff.cxx:1121
 AliITSTrackleterSPDEff.cxx:1122
 AliITSTrackleterSPDEff.cxx:1123
 AliITSTrackleterSPDEff.cxx:1124
 AliITSTrackleterSPDEff.cxx:1125
 AliITSTrackleterSPDEff.cxx:1126
 AliITSTrackleterSPDEff.cxx:1127
 AliITSTrackleterSPDEff.cxx:1128
 AliITSTrackleterSPDEff.cxx:1129
 AliITSTrackleterSPDEff.cxx:1130
 AliITSTrackleterSPDEff.cxx:1131
 AliITSTrackleterSPDEff.cxx:1132
 AliITSTrackleterSPDEff.cxx:1133
 AliITSTrackleterSPDEff.cxx:1134
 AliITSTrackleterSPDEff.cxx:1135
 AliITSTrackleterSPDEff.cxx:1136
 AliITSTrackleterSPDEff.cxx:1137
 AliITSTrackleterSPDEff.cxx:1138
 AliITSTrackleterSPDEff.cxx:1139
 AliITSTrackleterSPDEff.cxx:1140
 AliITSTrackleterSPDEff.cxx:1141
 AliITSTrackleterSPDEff.cxx:1142
 AliITSTrackleterSPDEff.cxx:1143
 AliITSTrackleterSPDEff.cxx:1144
 AliITSTrackleterSPDEff.cxx:1145
 AliITSTrackleterSPDEff.cxx:1146
 AliITSTrackleterSPDEff.cxx:1147
 AliITSTrackleterSPDEff.cxx:1148
 AliITSTrackleterSPDEff.cxx:1149
 AliITSTrackleterSPDEff.cxx:1150
 AliITSTrackleterSPDEff.cxx:1151
 AliITSTrackleterSPDEff.cxx:1152
 AliITSTrackleterSPDEff.cxx:1153
 AliITSTrackleterSPDEff.cxx:1154
 AliITSTrackleterSPDEff.cxx:1155
 AliITSTrackleterSPDEff.cxx:1156
 AliITSTrackleterSPDEff.cxx:1157
 AliITSTrackleterSPDEff.cxx:1158
 AliITSTrackleterSPDEff.cxx:1159
 AliITSTrackleterSPDEff.cxx:1160
 AliITSTrackleterSPDEff.cxx:1161
 AliITSTrackleterSPDEff.cxx:1162
 AliITSTrackleterSPDEff.cxx:1163
 AliITSTrackleterSPDEff.cxx:1164
 AliITSTrackleterSPDEff.cxx:1165
 AliITSTrackleterSPDEff.cxx:1166
 AliITSTrackleterSPDEff.cxx:1167
 AliITSTrackleterSPDEff.cxx:1168
 AliITSTrackleterSPDEff.cxx:1169
 AliITSTrackleterSPDEff.cxx:1170
 AliITSTrackleterSPDEff.cxx:1171
 AliITSTrackleterSPDEff.cxx:1172
 AliITSTrackleterSPDEff.cxx:1173
 AliITSTrackleterSPDEff.cxx:1174
 AliITSTrackleterSPDEff.cxx:1175
 AliITSTrackleterSPDEff.cxx:1176
 AliITSTrackleterSPDEff.cxx:1177
 AliITSTrackleterSPDEff.cxx:1178
 AliITSTrackleterSPDEff.cxx:1179
 AliITSTrackleterSPDEff.cxx:1180
 AliITSTrackleterSPDEff.cxx:1181
 AliITSTrackleterSPDEff.cxx:1182
 AliITSTrackleterSPDEff.cxx:1183
 AliITSTrackleterSPDEff.cxx:1184
 AliITSTrackleterSPDEff.cxx:1185
 AliITSTrackleterSPDEff.cxx:1186
 AliITSTrackleterSPDEff.cxx:1187
 AliITSTrackleterSPDEff.cxx:1188
 AliITSTrackleterSPDEff.cxx:1189
 AliITSTrackleterSPDEff.cxx:1190
 AliITSTrackleterSPDEff.cxx:1191
 AliITSTrackleterSPDEff.cxx:1192
 AliITSTrackleterSPDEff.cxx:1193
 AliITSTrackleterSPDEff.cxx:1194
 AliITSTrackleterSPDEff.cxx:1195
 AliITSTrackleterSPDEff.cxx:1196
 AliITSTrackleterSPDEff.cxx:1197
 AliITSTrackleterSPDEff.cxx:1198
 AliITSTrackleterSPDEff.cxx:1199
 AliITSTrackleterSPDEff.cxx:1200
 AliITSTrackleterSPDEff.cxx:1201
 AliITSTrackleterSPDEff.cxx:1202
 AliITSTrackleterSPDEff.cxx:1203
 AliITSTrackleterSPDEff.cxx:1204
 AliITSTrackleterSPDEff.cxx:1205
 AliITSTrackleterSPDEff.cxx:1206
 AliITSTrackleterSPDEff.cxx:1207
 AliITSTrackleterSPDEff.cxx:1208
 AliITSTrackleterSPDEff.cxx:1209
 AliITSTrackleterSPDEff.cxx:1210
 AliITSTrackleterSPDEff.cxx:1211
 AliITSTrackleterSPDEff.cxx:1212
 AliITSTrackleterSPDEff.cxx:1213
 AliITSTrackleterSPDEff.cxx:1214
 AliITSTrackleterSPDEff.cxx:1215
 AliITSTrackleterSPDEff.cxx:1216
 AliITSTrackleterSPDEff.cxx:1217
 AliITSTrackleterSPDEff.cxx:1218
 AliITSTrackleterSPDEff.cxx:1219
 AliITSTrackleterSPDEff.cxx:1220
 AliITSTrackleterSPDEff.cxx:1221
 AliITSTrackleterSPDEff.cxx:1222
 AliITSTrackleterSPDEff.cxx:1223
 AliITSTrackleterSPDEff.cxx:1224
 AliITSTrackleterSPDEff.cxx:1225
 AliITSTrackleterSPDEff.cxx:1226
 AliITSTrackleterSPDEff.cxx:1227
 AliITSTrackleterSPDEff.cxx:1228
 AliITSTrackleterSPDEff.cxx:1229
 AliITSTrackleterSPDEff.cxx:1230
 AliITSTrackleterSPDEff.cxx:1231
 AliITSTrackleterSPDEff.cxx:1232
 AliITSTrackleterSPDEff.cxx:1233
 AliITSTrackleterSPDEff.cxx:1234
 AliITSTrackleterSPDEff.cxx:1235
 AliITSTrackleterSPDEff.cxx:1236
 AliITSTrackleterSPDEff.cxx:1237
 AliITSTrackleterSPDEff.cxx:1238
 AliITSTrackleterSPDEff.cxx:1239
 AliITSTrackleterSPDEff.cxx:1240
 AliITSTrackleterSPDEff.cxx:1241
 AliITSTrackleterSPDEff.cxx:1242
 AliITSTrackleterSPDEff.cxx:1243
 AliITSTrackleterSPDEff.cxx:1244
 AliITSTrackleterSPDEff.cxx:1245
 AliITSTrackleterSPDEff.cxx:1246
 AliITSTrackleterSPDEff.cxx:1247
 AliITSTrackleterSPDEff.cxx:1248
 AliITSTrackleterSPDEff.cxx:1249
 AliITSTrackleterSPDEff.cxx:1250
 AliITSTrackleterSPDEff.cxx:1251
 AliITSTrackleterSPDEff.cxx:1252
 AliITSTrackleterSPDEff.cxx:1253
 AliITSTrackleterSPDEff.cxx:1254
 AliITSTrackleterSPDEff.cxx:1255
 AliITSTrackleterSPDEff.cxx:1256
 AliITSTrackleterSPDEff.cxx:1257
 AliITSTrackleterSPDEff.cxx:1258
 AliITSTrackleterSPDEff.cxx:1259
 AliITSTrackleterSPDEff.cxx:1260
 AliITSTrackleterSPDEff.cxx:1261
 AliITSTrackleterSPDEff.cxx:1262
 AliITSTrackleterSPDEff.cxx:1263
 AliITSTrackleterSPDEff.cxx:1264
 AliITSTrackleterSPDEff.cxx:1265
 AliITSTrackleterSPDEff.cxx:1266
 AliITSTrackleterSPDEff.cxx:1267
 AliITSTrackleterSPDEff.cxx:1268
 AliITSTrackleterSPDEff.cxx:1269
 AliITSTrackleterSPDEff.cxx:1270
 AliITSTrackleterSPDEff.cxx:1271
 AliITSTrackleterSPDEff.cxx:1272
 AliITSTrackleterSPDEff.cxx:1273
 AliITSTrackleterSPDEff.cxx:1274
 AliITSTrackleterSPDEff.cxx:1275
 AliITSTrackleterSPDEff.cxx:1276
 AliITSTrackleterSPDEff.cxx:1277
 AliITSTrackleterSPDEff.cxx:1278
 AliITSTrackleterSPDEff.cxx:1279
 AliITSTrackleterSPDEff.cxx:1280
 AliITSTrackleterSPDEff.cxx:1281
 AliITSTrackleterSPDEff.cxx:1282
 AliITSTrackleterSPDEff.cxx:1283
 AliITSTrackleterSPDEff.cxx:1284
 AliITSTrackleterSPDEff.cxx:1285
 AliITSTrackleterSPDEff.cxx:1286
 AliITSTrackleterSPDEff.cxx:1287
 AliITSTrackleterSPDEff.cxx:1288
 AliITSTrackleterSPDEff.cxx:1289
 AliITSTrackleterSPDEff.cxx:1290
 AliITSTrackleterSPDEff.cxx:1291
 AliITSTrackleterSPDEff.cxx:1292
 AliITSTrackleterSPDEff.cxx:1293
 AliITSTrackleterSPDEff.cxx:1294
 AliITSTrackleterSPDEff.cxx:1295
 AliITSTrackleterSPDEff.cxx:1296
 AliITSTrackleterSPDEff.cxx:1297
 AliITSTrackleterSPDEff.cxx:1298
 AliITSTrackleterSPDEff.cxx:1299
 AliITSTrackleterSPDEff.cxx:1300
 AliITSTrackleterSPDEff.cxx:1301
 AliITSTrackleterSPDEff.cxx:1302
 AliITSTrackleterSPDEff.cxx:1303
 AliITSTrackleterSPDEff.cxx:1304
 AliITSTrackleterSPDEff.cxx:1305
 AliITSTrackleterSPDEff.cxx:1306
 AliITSTrackleterSPDEff.cxx:1307
 AliITSTrackleterSPDEff.cxx:1308
 AliITSTrackleterSPDEff.cxx:1309
 AliITSTrackleterSPDEff.cxx:1310
 AliITSTrackleterSPDEff.cxx:1311
 AliITSTrackleterSPDEff.cxx:1312
 AliITSTrackleterSPDEff.cxx:1313
 AliITSTrackleterSPDEff.cxx:1314
 AliITSTrackleterSPDEff.cxx:1315
 AliITSTrackleterSPDEff.cxx:1316
 AliITSTrackleterSPDEff.cxx:1317
 AliITSTrackleterSPDEff.cxx:1318
 AliITSTrackleterSPDEff.cxx:1319
 AliITSTrackleterSPDEff.cxx:1320
 AliITSTrackleterSPDEff.cxx:1321
 AliITSTrackleterSPDEff.cxx:1322
 AliITSTrackleterSPDEff.cxx:1323
 AliITSTrackleterSPDEff.cxx:1324
 AliITSTrackleterSPDEff.cxx:1325
 AliITSTrackleterSPDEff.cxx:1326
 AliITSTrackleterSPDEff.cxx:1327
 AliITSTrackleterSPDEff.cxx:1328
 AliITSTrackleterSPDEff.cxx:1329
 AliITSTrackleterSPDEff.cxx:1330
 AliITSTrackleterSPDEff.cxx:1331
 AliITSTrackleterSPDEff.cxx:1332
 AliITSTrackleterSPDEff.cxx:1333
 AliITSTrackleterSPDEff.cxx:1334
 AliITSTrackleterSPDEff.cxx:1335
 AliITSTrackleterSPDEff.cxx:1336
 AliITSTrackleterSPDEff.cxx:1337
 AliITSTrackleterSPDEff.cxx:1338
 AliITSTrackleterSPDEff.cxx:1339
 AliITSTrackleterSPDEff.cxx:1340
 AliITSTrackleterSPDEff.cxx:1341
 AliITSTrackleterSPDEff.cxx:1342
 AliITSTrackleterSPDEff.cxx:1343
 AliITSTrackleterSPDEff.cxx:1344
 AliITSTrackleterSPDEff.cxx:1345
 AliITSTrackleterSPDEff.cxx:1346
 AliITSTrackleterSPDEff.cxx:1347
 AliITSTrackleterSPDEff.cxx:1348
 AliITSTrackleterSPDEff.cxx:1349
 AliITSTrackleterSPDEff.cxx:1350
 AliITSTrackleterSPDEff.cxx:1351
 AliITSTrackleterSPDEff.cxx:1352
 AliITSTrackleterSPDEff.cxx:1353
 AliITSTrackleterSPDEff.cxx:1354
 AliITSTrackleterSPDEff.cxx:1355
 AliITSTrackleterSPDEff.cxx:1356
 AliITSTrackleterSPDEff.cxx:1357
 AliITSTrackleterSPDEff.cxx:1358
 AliITSTrackleterSPDEff.cxx:1359
 AliITSTrackleterSPDEff.cxx:1360
 AliITSTrackleterSPDEff.cxx:1361
 AliITSTrackleterSPDEff.cxx:1362
 AliITSTrackleterSPDEff.cxx:1363
 AliITSTrackleterSPDEff.cxx:1364
 AliITSTrackleterSPDEff.cxx:1365
 AliITSTrackleterSPDEff.cxx:1366
 AliITSTrackleterSPDEff.cxx:1367
 AliITSTrackleterSPDEff.cxx:1368
 AliITSTrackleterSPDEff.cxx:1369
 AliITSTrackleterSPDEff.cxx:1370
 AliITSTrackleterSPDEff.cxx:1371
 AliITSTrackleterSPDEff.cxx:1372
 AliITSTrackleterSPDEff.cxx:1373
 AliITSTrackleterSPDEff.cxx:1374
 AliITSTrackleterSPDEff.cxx:1375
 AliITSTrackleterSPDEff.cxx:1376
 AliITSTrackleterSPDEff.cxx:1377
 AliITSTrackleterSPDEff.cxx:1378
 AliITSTrackleterSPDEff.cxx:1379
 AliITSTrackleterSPDEff.cxx:1380
 AliITSTrackleterSPDEff.cxx:1381
 AliITSTrackleterSPDEff.cxx:1382
 AliITSTrackleterSPDEff.cxx:1383
 AliITSTrackleterSPDEff.cxx:1384
 AliITSTrackleterSPDEff.cxx:1385
 AliITSTrackleterSPDEff.cxx:1386
 AliITSTrackleterSPDEff.cxx:1387
 AliITSTrackleterSPDEff.cxx:1388
 AliITSTrackleterSPDEff.cxx:1389
 AliITSTrackleterSPDEff.cxx:1390
 AliITSTrackleterSPDEff.cxx:1391
 AliITSTrackleterSPDEff.cxx:1392
 AliITSTrackleterSPDEff.cxx:1393
 AliITSTrackleterSPDEff.cxx:1394
 AliITSTrackleterSPDEff.cxx:1395
 AliITSTrackleterSPDEff.cxx:1396
 AliITSTrackleterSPDEff.cxx:1397
 AliITSTrackleterSPDEff.cxx:1398
 AliITSTrackleterSPDEff.cxx:1399
 AliITSTrackleterSPDEff.cxx:1400
 AliITSTrackleterSPDEff.cxx:1401
 AliITSTrackleterSPDEff.cxx:1402
 AliITSTrackleterSPDEff.cxx:1403
 AliITSTrackleterSPDEff.cxx:1404
 AliITSTrackleterSPDEff.cxx:1405
 AliITSTrackleterSPDEff.cxx:1406
 AliITSTrackleterSPDEff.cxx:1407
 AliITSTrackleterSPDEff.cxx:1408
 AliITSTrackleterSPDEff.cxx:1409
 AliITSTrackleterSPDEff.cxx:1410
 AliITSTrackleterSPDEff.cxx:1411
 AliITSTrackleterSPDEff.cxx:1412
 AliITSTrackleterSPDEff.cxx:1413
 AliITSTrackleterSPDEff.cxx:1414
 AliITSTrackleterSPDEff.cxx:1415
 AliITSTrackleterSPDEff.cxx:1416
 AliITSTrackleterSPDEff.cxx:1417
 AliITSTrackleterSPDEff.cxx:1418
 AliITSTrackleterSPDEff.cxx:1419
 AliITSTrackleterSPDEff.cxx:1420
 AliITSTrackleterSPDEff.cxx:1421
 AliITSTrackleterSPDEff.cxx:1422
 AliITSTrackleterSPDEff.cxx:1423
 AliITSTrackleterSPDEff.cxx:1424
 AliITSTrackleterSPDEff.cxx:1425
 AliITSTrackleterSPDEff.cxx:1426
 AliITSTrackleterSPDEff.cxx:1427
 AliITSTrackleterSPDEff.cxx:1428
 AliITSTrackleterSPDEff.cxx:1429
 AliITSTrackleterSPDEff.cxx:1430
 AliITSTrackleterSPDEff.cxx:1431
 AliITSTrackleterSPDEff.cxx:1432
 AliITSTrackleterSPDEff.cxx:1433
 AliITSTrackleterSPDEff.cxx:1434
 AliITSTrackleterSPDEff.cxx:1435
 AliITSTrackleterSPDEff.cxx:1436
 AliITSTrackleterSPDEff.cxx:1437
 AliITSTrackleterSPDEff.cxx:1438
 AliITSTrackleterSPDEff.cxx:1439
 AliITSTrackleterSPDEff.cxx:1440
 AliITSTrackleterSPDEff.cxx:1441
 AliITSTrackleterSPDEff.cxx:1442
 AliITSTrackleterSPDEff.cxx:1443
 AliITSTrackleterSPDEff.cxx:1444
 AliITSTrackleterSPDEff.cxx:1445
 AliITSTrackleterSPDEff.cxx:1446
 AliITSTrackleterSPDEff.cxx:1447
 AliITSTrackleterSPDEff.cxx:1448
 AliITSTrackleterSPDEff.cxx:1449
 AliITSTrackleterSPDEff.cxx:1450
 AliITSTrackleterSPDEff.cxx:1451
 AliITSTrackleterSPDEff.cxx:1452
 AliITSTrackleterSPDEff.cxx:1453
 AliITSTrackleterSPDEff.cxx:1454
 AliITSTrackleterSPDEff.cxx:1455
 AliITSTrackleterSPDEff.cxx:1456
 AliITSTrackleterSPDEff.cxx:1457
 AliITSTrackleterSPDEff.cxx:1458
 AliITSTrackleterSPDEff.cxx:1459
 AliITSTrackleterSPDEff.cxx:1460
 AliITSTrackleterSPDEff.cxx:1461
 AliITSTrackleterSPDEff.cxx:1462
 AliITSTrackleterSPDEff.cxx:1463
 AliITSTrackleterSPDEff.cxx:1464
 AliITSTrackleterSPDEff.cxx:1465
 AliITSTrackleterSPDEff.cxx:1466
 AliITSTrackleterSPDEff.cxx:1467
 AliITSTrackleterSPDEff.cxx:1468
 AliITSTrackleterSPDEff.cxx:1469
 AliITSTrackleterSPDEff.cxx:1470
 AliITSTrackleterSPDEff.cxx:1471
 AliITSTrackleterSPDEff.cxx:1472
 AliITSTrackleterSPDEff.cxx:1473
 AliITSTrackleterSPDEff.cxx:1474
 AliITSTrackleterSPDEff.cxx:1475
 AliITSTrackleterSPDEff.cxx:1476
 AliITSTrackleterSPDEff.cxx:1477
 AliITSTrackleterSPDEff.cxx:1478
 AliITSTrackleterSPDEff.cxx:1479
 AliITSTrackleterSPDEff.cxx:1480
 AliITSTrackleterSPDEff.cxx:1481
 AliITSTrackleterSPDEff.cxx:1482
 AliITSTrackleterSPDEff.cxx:1483
 AliITSTrackleterSPDEff.cxx:1484
 AliITSTrackleterSPDEff.cxx:1485
 AliITSTrackleterSPDEff.cxx:1486
 AliITSTrackleterSPDEff.cxx:1487
 AliITSTrackleterSPDEff.cxx:1488
 AliITSTrackleterSPDEff.cxx:1489
 AliITSTrackleterSPDEff.cxx:1490
 AliITSTrackleterSPDEff.cxx:1491
 AliITSTrackleterSPDEff.cxx:1492
 AliITSTrackleterSPDEff.cxx:1493
 AliITSTrackleterSPDEff.cxx:1494
 AliITSTrackleterSPDEff.cxx:1495
 AliITSTrackleterSPDEff.cxx:1496
 AliITSTrackleterSPDEff.cxx:1497
 AliITSTrackleterSPDEff.cxx:1498
 AliITSTrackleterSPDEff.cxx:1499
 AliITSTrackleterSPDEff.cxx:1500
 AliITSTrackleterSPDEff.cxx:1501
 AliITSTrackleterSPDEff.cxx:1502
 AliITSTrackleterSPDEff.cxx:1503
 AliITSTrackleterSPDEff.cxx:1504
 AliITSTrackleterSPDEff.cxx:1505
 AliITSTrackleterSPDEff.cxx:1506
 AliITSTrackleterSPDEff.cxx:1507
 AliITSTrackleterSPDEff.cxx:1508
 AliITSTrackleterSPDEff.cxx:1509
 AliITSTrackleterSPDEff.cxx:1510
 AliITSTrackleterSPDEff.cxx:1511
 AliITSTrackleterSPDEff.cxx:1512
 AliITSTrackleterSPDEff.cxx:1513
 AliITSTrackleterSPDEff.cxx:1514
 AliITSTrackleterSPDEff.cxx:1515
 AliITSTrackleterSPDEff.cxx:1516
 AliITSTrackleterSPDEff.cxx:1517
 AliITSTrackleterSPDEff.cxx:1518
 AliITSTrackleterSPDEff.cxx:1519
 AliITSTrackleterSPDEff.cxx:1520
 AliITSTrackleterSPDEff.cxx:1521
 AliITSTrackleterSPDEff.cxx:1522
 AliITSTrackleterSPDEff.cxx:1523
 AliITSTrackleterSPDEff.cxx:1524
 AliITSTrackleterSPDEff.cxx:1525
 AliITSTrackleterSPDEff.cxx:1526
 AliITSTrackleterSPDEff.cxx:1527
 AliITSTrackleterSPDEff.cxx:1528
 AliITSTrackleterSPDEff.cxx:1529
 AliITSTrackleterSPDEff.cxx:1530
 AliITSTrackleterSPDEff.cxx:1531
 AliITSTrackleterSPDEff.cxx:1532
 AliITSTrackleterSPDEff.cxx:1533
 AliITSTrackleterSPDEff.cxx:1534
 AliITSTrackleterSPDEff.cxx:1535
 AliITSTrackleterSPDEff.cxx:1536
 AliITSTrackleterSPDEff.cxx:1537
 AliITSTrackleterSPDEff.cxx:1538
 AliITSTrackleterSPDEff.cxx:1539
 AliITSTrackleterSPDEff.cxx:1540
 AliITSTrackleterSPDEff.cxx:1541
 AliITSTrackleterSPDEff.cxx:1542
 AliITSTrackleterSPDEff.cxx:1543
 AliITSTrackleterSPDEff.cxx:1544
 AliITSTrackleterSPDEff.cxx:1545
 AliITSTrackleterSPDEff.cxx:1546
 AliITSTrackleterSPDEff.cxx:1547
 AliITSTrackleterSPDEff.cxx:1548
 AliITSTrackleterSPDEff.cxx:1549
 AliITSTrackleterSPDEff.cxx:1550
 AliITSTrackleterSPDEff.cxx:1551
 AliITSTrackleterSPDEff.cxx:1552
 AliITSTrackleterSPDEff.cxx:1553
 AliITSTrackleterSPDEff.cxx:1554
 AliITSTrackleterSPDEff.cxx:1555
 AliITSTrackleterSPDEff.cxx:1556
 AliITSTrackleterSPDEff.cxx:1557
 AliITSTrackleterSPDEff.cxx:1558
 AliITSTrackleterSPDEff.cxx:1559
 AliITSTrackleterSPDEff.cxx:1560
 AliITSTrackleterSPDEff.cxx:1561
 AliITSTrackleterSPDEff.cxx:1562
 AliITSTrackleterSPDEff.cxx:1563
 AliITSTrackleterSPDEff.cxx:1564
 AliITSTrackleterSPDEff.cxx:1565
 AliITSTrackleterSPDEff.cxx:1566
 AliITSTrackleterSPDEff.cxx:1567
 AliITSTrackleterSPDEff.cxx:1568
 AliITSTrackleterSPDEff.cxx:1569
 AliITSTrackleterSPDEff.cxx:1570
 AliITSTrackleterSPDEff.cxx:1571
 AliITSTrackleterSPDEff.cxx:1572
 AliITSTrackleterSPDEff.cxx:1573
 AliITSTrackleterSPDEff.cxx:1574
 AliITSTrackleterSPDEff.cxx:1575
 AliITSTrackleterSPDEff.cxx:1576
 AliITSTrackleterSPDEff.cxx:1577
 AliITSTrackleterSPDEff.cxx:1578
 AliITSTrackleterSPDEff.cxx:1579
 AliITSTrackleterSPDEff.cxx:1580
 AliITSTrackleterSPDEff.cxx:1581
 AliITSTrackleterSPDEff.cxx:1582
 AliITSTrackleterSPDEff.cxx:1583
 AliITSTrackleterSPDEff.cxx:1584
 AliITSTrackleterSPDEff.cxx:1585
 AliITSTrackleterSPDEff.cxx:1586
 AliITSTrackleterSPDEff.cxx:1587
 AliITSTrackleterSPDEff.cxx:1588
 AliITSTrackleterSPDEff.cxx:1589
 AliITSTrackleterSPDEff.cxx:1590
 AliITSTrackleterSPDEff.cxx:1591
 AliITSTrackleterSPDEff.cxx:1592
 AliITSTrackleterSPDEff.cxx:1593
 AliITSTrackleterSPDEff.cxx:1594
 AliITSTrackleterSPDEff.cxx:1595
 AliITSTrackleterSPDEff.cxx:1596
 AliITSTrackleterSPDEff.cxx:1597
 AliITSTrackleterSPDEff.cxx:1598
 AliITSTrackleterSPDEff.cxx:1599
 AliITSTrackleterSPDEff.cxx:1600
 AliITSTrackleterSPDEff.cxx:1601
 AliITSTrackleterSPDEff.cxx:1602
 AliITSTrackleterSPDEff.cxx:1603
 AliITSTrackleterSPDEff.cxx:1604
 AliITSTrackleterSPDEff.cxx:1605
 AliITSTrackleterSPDEff.cxx:1606
 AliITSTrackleterSPDEff.cxx:1607
 AliITSTrackleterSPDEff.cxx:1608
 AliITSTrackleterSPDEff.cxx:1609
 AliITSTrackleterSPDEff.cxx:1610
 AliITSTrackleterSPDEff.cxx:1611
 AliITSTrackleterSPDEff.cxx:1612
 AliITSTrackleterSPDEff.cxx:1613
 AliITSTrackleterSPDEff.cxx:1614
 AliITSTrackleterSPDEff.cxx:1615
 AliITSTrackleterSPDEff.cxx:1616
 AliITSTrackleterSPDEff.cxx:1617
 AliITSTrackleterSPDEff.cxx:1618
 AliITSTrackleterSPDEff.cxx:1619
 AliITSTrackleterSPDEff.cxx:1620
 AliITSTrackleterSPDEff.cxx:1621
 AliITSTrackleterSPDEff.cxx:1622
 AliITSTrackleterSPDEff.cxx:1623
 AliITSTrackleterSPDEff.cxx:1624
 AliITSTrackleterSPDEff.cxx:1625
 AliITSTrackleterSPDEff.cxx:1626
 AliITSTrackleterSPDEff.cxx:1627
 AliITSTrackleterSPDEff.cxx:1628
 AliITSTrackleterSPDEff.cxx:1629
 AliITSTrackleterSPDEff.cxx:1630
 AliITSTrackleterSPDEff.cxx:1631
 AliITSTrackleterSPDEff.cxx:1632
 AliITSTrackleterSPDEff.cxx:1633
 AliITSTrackleterSPDEff.cxx:1634
 AliITSTrackleterSPDEff.cxx:1635
 AliITSTrackleterSPDEff.cxx:1636
 AliITSTrackleterSPDEff.cxx:1637
 AliITSTrackleterSPDEff.cxx:1638
 AliITSTrackleterSPDEff.cxx:1639
 AliITSTrackleterSPDEff.cxx:1640
 AliITSTrackleterSPDEff.cxx:1641
 AliITSTrackleterSPDEff.cxx:1642
 AliITSTrackleterSPDEff.cxx:1643
 AliITSTrackleterSPDEff.cxx:1644
 AliITSTrackleterSPDEff.cxx:1645
 AliITSTrackleterSPDEff.cxx:1646
 AliITSTrackleterSPDEff.cxx:1647
 AliITSTrackleterSPDEff.cxx:1648
 AliITSTrackleterSPDEff.cxx:1649
 AliITSTrackleterSPDEff.cxx:1650
 AliITSTrackleterSPDEff.cxx:1651
 AliITSTrackleterSPDEff.cxx:1652
 AliITSTrackleterSPDEff.cxx:1653
 AliITSTrackleterSPDEff.cxx:1654
 AliITSTrackleterSPDEff.cxx:1655
 AliITSTrackleterSPDEff.cxx:1656
 AliITSTrackleterSPDEff.cxx:1657
 AliITSTrackleterSPDEff.cxx:1658
 AliITSTrackleterSPDEff.cxx:1659
 AliITSTrackleterSPDEff.cxx:1660
 AliITSTrackleterSPDEff.cxx:1661
 AliITSTrackleterSPDEff.cxx:1662
 AliITSTrackleterSPDEff.cxx:1663
 AliITSTrackleterSPDEff.cxx:1664
 AliITSTrackleterSPDEff.cxx:1665
 AliITSTrackleterSPDEff.cxx:1666
 AliITSTrackleterSPDEff.cxx:1667
 AliITSTrackleterSPDEff.cxx:1668
 AliITSTrackleterSPDEff.cxx:1669
 AliITSTrackleterSPDEff.cxx:1670
 AliITSTrackleterSPDEff.cxx:1671
 AliITSTrackleterSPDEff.cxx:1672
 AliITSTrackleterSPDEff.cxx:1673
 AliITSTrackleterSPDEff.cxx:1674
 AliITSTrackleterSPDEff.cxx:1675
 AliITSTrackleterSPDEff.cxx:1676
 AliITSTrackleterSPDEff.cxx:1677
 AliITSTrackleterSPDEff.cxx:1678
 AliITSTrackleterSPDEff.cxx:1679
 AliITSTrackleterSPDEff.cxx:1680
 AliITSTrackleterSPDEff.cxx:1681
 AliITSTrackleterSPDEff.cxx:1682
 AliITSTrackleterSPDEff.cxx:1683
 AliITSTrackleterSPDEff.cxx:1684
 AliITSTrackleterSPDEff.cxx:1685
 AliITSTrackleterSPDEff.cxx:1686
 AliITSTrackleterSPDEff.cxx:1687
 AliITSTrackleterSPDEff.cxx:1688
 AliITSTrackleterSPDEff.cxx:1689
 AliITSTrackleterSPDEff.cxx:1690
 AliITSTrackleterSPDEff.cxx:1691
 AliITSTrackleterSPDEff.cxx:1692
 AliITSTrackleterSPDEff.cxx:1693
 AliITSTrackleterSPDEff.cxx:1694
 AliITSTrackleterSPDEff.cxx:1695
 AliITSTrackleterSPDEff.cxx:1696
 AliITSTrackleterSPDEff.cxx:1697
 AliITSTrackleterSPDEff.cxx:1698
 AliITSTrackleterSPDEff.cxx:1699
 AliITSTrackleterSPDEff.cxx:1700
 AliITSTrackleterSPDEff.cxx:1701
 AliITSTrackleterSPDEff.cxx:1702
 AliITSTrackleterSPDEff.cxx:1703
 AliITSTrackleterSPDEff.cxx:1704
 AliITSTrackleterSPDEff.cxx:1705
 AliITSTrackleterSPDEff.cxx:1706
 AliITSTrackleterSPDEff.cxx:1707
 AliITSTrackleterSPDEff.cxx:1708
 AliITSTrackleterSPDEff.cxx:1709
 AliITSTrackleterSPDEff.cxx:1710
 AliITSTrackleterSPDEff.cxx:1711
 AliITSTrackleterSPDEff.cxx:1712
 AliITSTrackleterSPDEff.cxx:1713
 AliITSTrackleterSPDEff.cxx:1714
 AliITSTrackleterSPDEff.cxx:1715
 AliITSTrackleterSPDEff.cxx:1716
 AliITSTrackleterSPDEff.cxx:1717
 AliITSTrackleterSPDEff.cxx:1718
 AliITSTrackleterSPDEff.cxx:1719
 AliITSTrackleterSPDEff.cxx:1720
 AliITSTrackleterSPDEff.cxx:1721
 AliITSTrackleterSPDEff.cxx:1722
 AliITSTrackleterSPDEff.cxx:1723
 AliITSTrackleterSPDEff.cxx:1724
 AliITSTrackleterSPDEff.cxx:1725
 AliITSTrackleterSPDEff.cxx:1726
 AliITSTrackleterSPDEff.cxx:1727
 AliITSTrackleterSPDEff.cxx:1728
 AliITSTrackleterSPDEff.cxx:1729
 AliITSTrackleterSPDEff.cxx:1730
 AliITSTrackleterSPDEff.cxx:1731
 AliITSTrackleterSPDEff.cxx:1732
 AliITSTrackleterSPDEff.cxx:1733
 AliITSTrackleterSPDEff.cxx:1734
 AliITSTrackleterSPDEff.cxx:1735
 AliITSTrackleterSPDEff.cxx:1736
 AliITSTrackleterSPDEff.cxx:1737
 AliITSTrackleterSPDEff.cxx:1738
 AliITSTrackleterSPDEff.cxx:1739
 AliITSTrackleterSPDEff.cxx:1740
 AliITSTrackleterSPDEff.cxx:1741
 AliITSTrackleterSPDEff.cxx:1742
 AliITSTrackleterSPDEff.cxx:1743
 AliITSTrackleterSPDEff.cxx:1744
 AliITSTrackleterSPDEff.cxx:1745
 AliITSTrackleterSPDEff.cxx:1746
 AliITSTrackleterSPDEff.cxx:1747
 AliITSTrackleterSPDEff.cxx:1748
 AliITSTrackleterSPDEff.cxx:1749
 AliITSTrackleterSPDEff.cxx:1750
 AliITSTrackleterSPDEff.cxx:1751
 AliITSTrackleterSPDEff.cxx:1752
 AliITSTrackleterSPDEff.cxx:1753
 AliITSTrackleterSPDEff.cxx:1754
 AliITSTrackleterSPDEff.cxx:1755
 AliITSTrackleterSPDEff.cxx:1756
 AliITSTrackleterSPDEff.cxx:1757
 AliITSTrackleterSPDEff.cxx:1758
 AliITSTrackleterSPDEff.cxx:1759
 AliITSTrackleterSPDEff.cxx:1760
 AliITSTrackleterSPDEff.cxx:1761
 AliITSTrackleterSPDEff.cxx:1762
 AliITSTrackleterSPDEff.cxx:1763
 AliITSTrackleterSPDEff.cxx:1764
 AliITSTrackleterSPDEff.cxx:1765
 AliITSTrackleterSPDEff.cxx:1766
 AliITSTrackleterSPDEff.cxx:1767
 AliITSTrackleterSPDEff.cxx:1768
 AliITSTrackleterSPDEff.cxx:1769
 AliITSTrackleterSPDEff.cxx:1770
 AliITSTrackleterSPDEff.cxx:1771
 AliITSTrackleterSPDEff.cxx:1772
 AliITSTrackleterSPDEff.cxx:1773
 AliITSTrackleterSPDEff.cxx:1774
 AliITSTrackleterSPDEff.cxx:1775
 AliITSTrackleterSPDEff.cxx:1776
 AliITSTrackleterSPDEff.cxx:1777
 AliITSTrackleterSPDEff.cxx:1778
 AliITSTrackleterSPDEff.cxx:1779
 AliITSTrackleterSPDEff.cxx:1780
 AliITSTrackleterSPDEff.cxx:1781
 AliITSTrackleterSPDEff.cxx:1782
 AliITSTrackleterSPDEff.cxx:1783
 AliITSTrackleterSPDEff.cxx:1784
 AliITSTrackleterSPDEff.cxx:1785
 AliITSTrackleterSPDEff.cxx:1786
 AliITSTrackleterSPDEff.cxx:1787
 AliITSTrackleterSPDEff.cxx:1788
 AliITSTrackleterSPDEff.cxx:1789
 AliITSTrackleterSPDEff.cxx:1790
 AliITSTrackleterSPDEff.cxx:1791
 AliITSTrackleterSPDEff.cxx:1792
 AliITSTrackleterSPDEff.cxx:1793
 AliITSTrackleterSPDEff.cxx:1794
 AliITSTrackleterSPDEff.cxx:1795
 AliITSTrackleterSPDEff.cxx:1796
 AliITSTrackleterSPDEff.cxx:1797
 AliITSTrackleterSPDEff.cxx:1798
 AliITSTrackleterSPDEff.cxx:1799
 AliITSTrackleterSPDEff.cxx:1800
 AliITSTrackleterSPDEff.cxx:1801
 AliITSTrackleterSPDEff.cxx:1802
 AliITSTrackleterSPDEff.cxx:1803
 AliITSTrackleterSPDEff.cxx:1804
 AliITSTrackleterSPDEff.cxx:1805
 AliITSTrackleterSPDEff.cxx:1806
 AliITSTrackleterSPDEff.cxx:1807
 AliITSTrackleterSPDEff.cxx:1808
 AliITSTrackleterSPDEff.cxx:1809
 AliITSTrackleterSPDEff.cxx:1810
 AliITSTrackleterSPDEff.cxx:1811
 AliITSTrackleterSPDEff.cxx:1812
 AliITSTrackleterSPDEff.cxx:1813
 AliITSTrackleterSPDEff.cxx:1814
 AliITSTrackleterSPDEff.cxx:1815
 AliITSTrackleterSPDEff.cxx:1816
 AliITSTrackleterSPDEff.cxx:1817
 AliITSTrackleterSPDEff.cxx:1818
 AliITSTrackleterSPDEff.cxx:1819
 AliITSTrackleterSPDEff.cxx:1820
 AliITSTrackleterSPDEff.cxx:1821
 AliITSTrackleterSPDEff.cxx:1822
 AliITSTrackleterSPDEff.cxx:1823
 AliITSTrackleterSPDEff.cxx:1824
 AliITSTrackleterSPDEff.cxx:1825
 AliITSTrackleterSPDEff.cxx:1826
 AliITSTrackleterSPDEff.cxx:1827
 AliITSTrackleterSPDEff.cxx:1828
 AliITSTrackleterSPDEff.cxx:1829
 AliITSTrackleterSPDEff.cxx:1830
 AliITSTrackleterSPDEff.cxx:1831
 AliITSTrackleterSPDEff.cxx:1832
 AliITSTrackleterSPDEff.cxx:1833
 AliITSTrackleterSPDEff.cxx:1834
 AliITSTrackleterSPDEff.cxx:1835
 AliITSTrackleterSPDEff.cxx:1836
 AliITSTrackleterSPDEff.cxx:1837
 AliITSTrackleterSPDEff.cxx:1838
 AliITSTrackleterSPDEff.cxx:1839
 AliITSTrackleterSPDEff.cxx:1840
 AliITSTrackleterSPDEff.cxx:1841
 AliITSTrackleterSPDEff.cxx:1842
 AliITSTrackleterSPDEff.cxx:1843
 AliITSTrackleterSPDEff.cxx:1844
 AliITSTrackleterSPDEff.cxx:1845
 AliITSTrackleterSPDEff.cxx:1846
 AliITSTrackleterSPDEff.cxx:1847
 AliITSTrackleterSPDEff.cxx:1848
 AliITSTrackleterSPDEff.cxx:1849
 AliITSTrackleterSPDEff.cxx:1850
 AliITSTrackleterSPDEff.cxx:1851
 AliITSTrackleterSPDEff.cxx:1852
 AliITSTrackleterSPDEff.cxx:1853
 AliITSTrackleterSPDEff.cxx:1854
 AliITSTrackleterSPDEff.cxx:1855
 AliITSTrackleterSPDEff.cxx:1856
 AliITSTrackleterSPDEff.cxx:1857
 AliITSTrackleterSPDEff.cxx:1858
 AliITSTrackleterSPDEff.cxx:1859
 AliITSTrackleterSPDEff.cxx:1860
 AliITSTrackleterSPDEff.cxx:1861
 AliITSTrackleterSPDEff.cxx:1862
 AliITSTrackleterSPDEff.cxx:1863
 AliITSTrackleterSPDEff.cxx:1864
 AliITSTrackleterSPDEff.cxx:1865
 AliITSTrackleterSPDEff.cxx:1866
 AliITSTrackleterSPDEff.cxx:1867
 AliITSTrackleterSPDEff.cxx:1868
 AliITSTrackleterSPDEff.cxx:1869
 AliITSTrackleterSPDEff.cxx:1870
 AliITSTrackleterSPDEff.cxx:1871
 AliITSTrackleterSPDEff.cxx:1872
 AliITSTrackleterSPDEff.cxx:1873
 AliITSTrackleterSPDEff.cxx:1874
 AliITSTrackleterSPDEff.cxx:1875
 AliITSTrackleterSPDEff.cxx:1876
 AliITSTrackleterSPDEff.cxx:1877
 AliITSTrackleterSPDEff.cxx:1878
 AliITSTrackleterSPDEff.cxx:1879
 AliITSTrackleterSPDEff.cxx:1880
 AliITSTrackleterSPDEff.cxx:1881
 AliITSTrackleterSPDEff.cxx:1882
 AliITSTrackleterSPDEff.cxx:1883
 AliITSTrackleterSPDEff.cxx:1884
 AliITSTrackleterSPDEff.cxx:1885
 AliITSTrackleterSPDEff.cxx:1886
 AliITSTrackleterSPDEff.cxx:1887
 AliITSTrackleterSPDEff.cxx:1888
 AliITSTrackleterSPDEff.cxx:1889
 AliITSTrackleterSPDEff.cxx:1890
 AliITSTrackleterSPDEff.cxx:1891
 AliITSTrackleterSPDEff.cxx:1892
 AliITSTrackleterSPDEff.cxx:1893
 AliITSTrackleterSPDEff.cxx:1894
 AliITSTrackleterSPDEff.cxx:1895
 AliITSTrackleterSPDEff.cxx:1896
 AliITSTrackleterSPDEff.cxx:1897
 AliITSTrackleterSPDEff.cxx:1898
 AliITSTrackleterSPDEff.cxx:1899
 AliITSTrackleterSPDEff.cxx:1900
 AliITSTrackleterSPDEff.cxx:1901
 AliITSTrackleterSPDEff.cxx:1902
 AliITSTrackleterSPDEff.cxx:1903
 AliITSTrackleterSPDEff.cxx:1904
 AliITSTrackleterSPDEff.cxx:1905
 AliITSTrackleterSPDEff.cxx:1906
 AliITSTrackleterSPDEff.cxx:1907
 AliITSTrackleterSPDEff.cxx:1908
 AliITSTrackleterSPDEff.cxx:1909
 AliITSTrackleterSPDEff.cxx:1910
 AliITSTrackleterSPDEff.cxx:1911
 AliITSTrackleterSPDEff.cxx:1912
 AliITSTrackleterSPDEff.cxx:1913
 AliITSTrackleterSPDEff.cxx:1914
 AliITSTrackleterSPDEff.cxx:1915
 AliITSTrackleterSPDEff.cxx:1916
 AliITSTrackleterSPDEff.cxx:1917
 AliITSTrackleterSPDEff.cxx:1918
 AliITSTrackleterSPDEff.cxx:1919
 AliITSTrackleterSPDEff.cxx:1920
 AliITSTrackleterSPDEff.cxx:1921
 AliITSTrackleterSPDEff.cxx:1922
 AliITSTrackleterSPDEff.cxx:1923
 AliITSTrackleterSPDEff.cxx:1924
 AliITSTrackleterSPDEff.cxx:1925
 AliITSTrackleterSPDEff.cxx:1926
 AliITSTrackleterSPDEff.cxx:1927
 AliITSTrackleterSPDEff.cxx:1928
 AliITSTrackleterSPDEff.cxx:1929
 AliITSTrackleterSPDEff.cxx:1930
 AliITSTrackleterSPDEff.cxx:1931
 AliITSTrackleterSPDEff.cxx:1932
 AliITSTrackleterSPDEff.cxx:1933
 AliITSTrackleterSPDEff.cxx:1934
 AliITSTrackleterSPDEff.cxx:1935
 AliITSTrackleterSPDEff.cxx:1936
 AliITSTrackleterSPDEff.cxx:1937
 AliITSTrackleterSPDEff.cxx:1938
 AliITSTrackleterSPDEff.cxx:1939
 AliITSTrackleterSPDEff.cxx:1940
 AliITSTrackleterSPDEff.cxx:1941
 AliITSTrackleterSPDEff.cxx:1942
 AliITSTrackleterSPDEff.cxx:1943
 AliITSTrackleterSPDEff.cxx:1944
 AliITSTrackleterSPDEff.cxx:1945
 AliITSTrackleterSPDEff.cxx:1946
 AliITSTrackleterSPDEff.cxx:1947
 AliITSTrackleterSPDEff.cxx:1948
 AliITSTrackleterSPDEff.cxx:1949
 AliITSTrackleterSPDEff.cxx:1950
 AliITSTrackleterSPDEff.cxx:1951
 AliITSTrackleterSPDEff.cxx:1952
 AliITSTrackleterSPDEff.cxx:1953
 AliITSTrackleterSPDEff.cxx:1954
 AliITSTrackleterSPDEff.cxx:1955
 AliITSTrackleterSPDEff.cxx:1956
 AliITSTrackleterSPDEff.cxx:1957
 AliITSTrackleterSPDEff.cxx:1958
 AliITSTrackleterSPDEff.cxx:1959
 AliITSTrackleterSPDEff.cxx:1960
 AliITSTrackleterSPDEff.cxx:1961
 AliITSTrackleterSPDEff.cxx:1962
 AliITSTrackleterSPDEff.cxx:1963
 AliITSTrackleterSPDEff.cxx:1964
 AliITSTrackleterSPDEff.cxx:1965
 AliITSTrackleterSPDEff.cxx:1966
 AliITSTrackleterSPDEff.cxx:1967
 AliITSTrackleterSPDEff.cxx:1968
 AliITSTrackleterSPDEff.cxx:1969
 AliITSTrackleterSPDEff.cxx:1970
 AliITSTrackleterSPDEff.cxx:1971
 AliITSTrackleterSPDEff.cxx:1972
 AliITSTrackleterSPDEff.cxx:1973
 AliITSTrackleterSPDEff.cxx:1974
 AliITSTrackleterSPDEff.cxx:1975
 AliITSTrackleterSPDEff.cxx:1976
 AliITSTrackleterSPDEff.cxx:1977
 AliITSTrackleterSPDEff.cxx:1978
 AliITSTrackleterSPDEff.cxx:1979
 AliITSTrackleterSPDEff.cxx:1980
 AliITSTrackleterSPDEff.cxx:1981
 AliITSTrackleterSPDEff.cxx:1982
 AliITSTrackleterSPDEff.cxx:1983
 AliITSTrackleterSPDEff.cxx:1984
 AliITSTrackleterSPDEff.cxx:1985
 AliITSTrackleterSPDEff.cxx:1986
 AliITSTrackleterSPDEff.cxx:1987
 AliITSTrackleterSPDEff.cxx:1988
 AliITSTrackleterSPDEff.cxx:1989
 AliITSTrackleterSPDEff.cxx:1990
 AliITSTrackleterSPDEff.cxx:1991
 AliITSTrackleterSPDEff.cxx:1992
 AliITSTrackleterSPDEff.cxx:1993
 AliITSTrackleterSPDEff.cxx:1994
 AliITSTrackleterSPDEff.cxx:1995
 AliITSTrackleterSPDEff.cxx:1996
 AliITSTrackleterSPDEff.cxx:1997
 AliITSTrackleterSPDEff.cxx:1998
 AliITSTrackleterSPDEff.cxx:1999
 AliITSTrackleterSPDEff.cxx:2000
 AliITSTrackleterSPDEff.cxx:2001
 AliITSTrackleterSPDEff.cxx:2002
 AliITSTrackleterSPDEff.cxx:2003
 AliITSTrackleterSPDEff.cxx:2004
 AliITSTrackleterSPDEff.cxx:2005
 AliITSTrackleterSPDEff.cxx:2006
 AliITSTrackleterSPDEff.cxx:2007
 AliITSTrackleterSPDEff.cxx:2008
 AliITSTrackleterSPDEff.cxx:2009
 AliITSTrackleterSPDEff.cxx:2010
 AliITSTrackleterSPDEff.cxx:2011
 AliITSTrackleterSPDEff.cxx:2012
 AliITSTrackleterSPDEff.cxx:2013
 AliITSTrackleterSPDEff.cxx:2014
 AliITSTrackleterSPDEff.cxx:2015
 AliITSTrackleterSPDEff.cxx:2016
 AliITSTrackleterSPDEff.cxx:2017
 AliITSTrackleterSPDEff.cxx:2018
 AliITSTrackleterSPDEff.cxx:2019
 AliITSTrackleterSPDEff.cxx:2020
 AliITSTrackleterSPDEff.cxx:2021
 AliITSTrackleterSPDEff.cxx:2022
 AliITSTrackleterSPDEff.cxx:2023
 AliITSTrackleterSPDEff.cxx:2024
 AliITSTrackleterSPDEff.cxx:2025
 AliITSTrackleterSPDEff.cxx:2026
 AliITSTrackleterSPDEff.cxx:2027
 AliITSTrackleterSPDEff.cxx:2028
 AliITSTrackleterSPDEff.cxx:2029
 AliITSTrackleterSPDEff.cxx:2030
 AliITSTrackleterSPDEff.cxx:2031
 AliITSTrackleterSPDEff.cxx:2032
 AliITSTrackleterSPDEff.cxx:2033
 AliITSTrackleterSPDEff.cxx:2034
 AliITSTrackleterSPDEff.cxx:2035
 AliITSTrackleterSPDEff.cxx:2036
 AliITSTrackleterSPDEff.cxx:2037
 AliITSTrackleterSPDEff.cxx:2038
 AliITSTrackleterSPDEff.cxx:2039
 AliITSTrackleterSPDEff.cxx:2040
 AliITSTrackleterSPDEff.cxx:2041
 AliITSTrackleterSPDEff.cxx:2042
 AliITSTrackleterSPDEff.cxx:2043
 AliITSTrackleterSPDEff.cxx:2044
 AliITSTrackleterSPDEff.cxx:2045
 AliITSTrackleterSPDEff.cxx:2046
 AliITSTrackleterSPDEff.cxx:2047
 AliITSTrackleterSPDEff.cxx:2048
 AliITSTrackleterSPDEff.cxx:2049
 AliITSTrackleterSPDEff.cxx:2050
 AliITSTrackleterSPDEff.cxx:2051
 AliITSTrackleterSPDEff.cxx:2052
 AliITSTrackleterSPDEff.cxx:2053
 AliITSTrackleterSPDEff.cxx:2054
 AliITSTrackleterSPDEff.cxx:2055
 AliITSTrackleterSPDEff.cxx:2056
 AliITSTrackleterSPDEff.cxx:2057
 AliITSTrackleterSPDEff.cxx:2058
 AliITSTrackleterSPDEff.cxx:2059
 AliITSTrackleterSPDEff.cxx:2060
 AliITSTrackleterSPDEff.cxx:2061
 AliITSTrackleterSPDEff.cxx:2062
 AliITSTrackleterSPDEff.cxx:2063
 AliITSTrackleterSPDEff.cxx:2064
 AliITSTrackleterSPDEff.cxx:2065
 AliITSTrackleterSPDEff.cxx:2066
 AliITSTrackleterSPDEff.cxx:2067
 AliITSTrackleterSPDEff.cxx:2068
 AliITSTrackleterSPDEff.cxx:2069
 AliITSTrackleterSPDEff.cxx:2070
 AliITSTrackleterSPDEff.cxx:2071
 AliITSTrackleterSPDEff.cxx:2072
 AliITSTrackleterSPDEff.cxx:2073
 AliITSTrackleterSPDEff.cxx:2074
 AliITSTrackleterSPDEff.cxx:2075
 AliITSTrackleterSPDEff.cxx:2076
 AliITSTrackleterSPDEff.cxx:2077
 AliITSTrackleterSPDEff.cxx:2078
 AliITSTrackleterSPDEff.cxx:2079
 AliITSTrackleterSPDEff.cxx:2080
 AliITSTrackleterSPDEff.cxx:2081
 AliITSTrackleterSPDEff.cxx:2082
 AliITSTrackleterSPDEff.cxx:2083
 AliITSTrackleterSPDEff.cxx:2084
 AliITSTrackleterSPDEff.cxx:2085
 AliITSTrackleterSPDEff.cxx:2086
 AliITSTrackleterSPDEff.cxx:2087
 AliITSTrackleterSPDEff.cxx:2088
 AliITSTrackleterSPDEff.cxx:2089
 AliITSTrackleterSPDEff.cxx:2090
 AliITSTrackleterSPDEff.cxx:2091
 AliITSTrackleterSPDEff.cxx:2092
 AliITSTrackleterSPDEff.cxx:2093
 AliITSTrackleterSPDEff.cxx:2094
 AliITSTrackleterSPDEff.cxx:2095
 AliITSTrackleterSPDEff.cxx:2096
 AliITSTrackleterSPDEff.cxx:2097
 AliITSTrackleterSPDEff.cxx:2098
 AliITSTrackleterSPDEff.cxx:2099
 AliITSTrackleterSPDEff.cxx:2100
 AliITSTrackleterSPDEff.cxx:2101
 AliITSTrackleterSPDEff.cxx:2102
 AliITSTrackleterSPDEff.cxx:2103
 AliITSTrackleterSPDEff.cxx:2104
 AliITSTrackleterSPDEff.cxx:2105
 AliITSTrackleterSPDEff.cxx:2106
 AliITSTrackleterSPDEff.cxx:2107
 AliITSTrackleterSPDEff.cxx:2108
 AliITSTrackleterSPDEff.cxx:2109
 AliITSTrackleterSPDEff.cxx:2110
 AliITSTrackleterSPDEff.cxx:2111
 AliITSTrackleterSPDEff.cxx:2112
 AliITSTrackleterSPDEff.cxx:2113
 AliITSTrackleterSPDEff.cxx:2114
 AliITSTrackleterSPDEff.cxx:2115
 AliITSTrackleterSPDEff.cxx:2116
 AliITSTrackleterSPDEff.cxx:2117
 AliITSTrackleterSPDEff.cxx:2118
 AliITSTrackleterSPDEff.cxx:2119
 AliITSTrackleterSPDEff.cxx:2120
 AliITSTrackleterSPDEff.cxx:2121
 AliITSTrackleterSPDEff.cxx:2122
 AliITSTrackleterSPDEff.cxx:2123
 AliITSTrackleterSPDEff.cxx:2124
 AliITSTrackleterSPDEff.cxx:2125
 AliITSTrackleterSPDEff.cxx:2126
 AliITSTrackleterSPDEff.cxx:2127
 AliITSTrackleterSPDEff.cxx:2128
 AliITSTrackleterSPDEff.cxx:2129
 AliITSTrackleterSPDEff.cxx:2130
 AliITSTrackleterSPDEff.cxx:2131
 AliITSTrackleterSPDEff.cxx:2132
 AliITSTrackleterSPDEff.cxx:2133
 AliITSTrackleterSPDEff.cxx:2134
 AliITSTrackleterSPDEff.cxx:2135
 AliITSTrackleterSPDEff.cxx:2136
 AliITSTrackleterSPDEff.cxx:2137
 AliITSTrackleterSPDEff.cxx:2138
 AliITSTrackleterSPDEff.cxx:2139
 AliITSTrackleterSPDEff.cxx:2140
 AliITSTrackleterSPDEff.cxx:2141
 AliITSTrackleterSPDEff.cxx:2142
 AliITSTrackleterSPDEff.cxx:2143
 AliITSTrackleterSPDEff.cxx:2144
 AliITSTrackleterSPDEff.cxx:2145
 AliITSTrackleterSPDEff.cxx:2146
 AliITSTrackleterSPDEff.cxx:2147
 AliITSTrackleterSPDEff.cxx:2148
 AliITSTrackleterSPDEff.cxx:2149
 AliITSTrackleterSPDEff.cxx:2150
 AliITSTrackleterSPDEff.cxx:2151
 AliITSTrackleterSPDEff.cxx:2152
 AliITSTrackleterSPDEff.cxx:2153
 AliITSTrackleterSPDEff.cxx:2154