ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/
/* $Id$ */

/* History of cvs commits:
 *
 * $Log$
 * Revision 1.93  2007/10/10 09:05:10  schutz
 * Changing name QualAss to QA
 *
 * Revision 1.92  2007/08/28 12:55:08  policheh
 * Loaders removed from the reconstruction code (C.Cheshkov)
 *
 * Revision 1.91  2007/08/07 14:12:03  kharlov
 * Quality assurance added (Yves Schutz)
 *
 * Revision 1.90  2007/07/11 13:43:30  hristov
 * New class AliESDEvent, backward compatibility with the old AliESD (Christian)
 *
 * Revision 1.89  2007/07/03 08:13:04  kharlov
 * Bug fix in CPV local coordinates
 *
 * Revision 1.88  2007/06/27 09:11:07  kharlov
 * Bug fix for CPV-EMC distance
 *
 * Revision 1.87  2007/05/04 14:49:29  policheh
 * AliPHOSRecPoint inheritance from AliCluster
 *
 * Revision 1.86  2007/04/02 15:00:16  cvetan
 * No more calls to gAlice in the reconstruction
 *
 * Revision 1.85  2007/03/28 19:18:15  kharlov
 * RecPoints recalculation in TSM removed
 *
 * Revision 1.84  2007/03/07 07:01:21  hristov
 * Fixing copy/paste erro. Additional protections
 *
 * Revision 1.83  2007/03/06 21:07:37  kharlov
 * DP: xz CPV-EMC distance filled to TS
 *
 * Revision 1.82  2007/03/06 06:54:48  kharlov
 * DP:Calculation of cluster properties dep. on vertex added
 *
 * Revision 1.81  2007/02/05 10:02:40  kharlov
 * Module numbering is corrected
 *
 * Revision 1.80  2006/08/28 10:01:56  kharlov
 * Effective C++ warnings fixed (Timur Pocheptsov)
 *
 * Revision 1.79  2006/04/25 12:41:15  hristov
 * Moving non-persistent data to AliESDfriend (Yu.Belikov)
 *
 * Revision 1.78  2005/11/18 13:04:51  hristov
 * Bug fix
 *
 * Revision 1.77  2005/11/17 23:34:36  hristov
 * Corrected logics
 *
 * Revision 1.76  2005/11/17 22:29:12  hristov
 * Faster version, no attempt to match tracks outside the PHOS acceptance
 *
 * Revision 1.75  2005/11/17 12:35:27  hristov
 * Use references instead of objects. Avoid to create objects when they are not really needed
 *
 * Revision 1.74  2005/07/08 14:01:36  hristov
 * Tracking in non-uniform nmagnetic field (Yu.Belikov)
 *
 * Revision 1.73  2005/05/28 14:19:05  schutz
 * Compilation warnings fixed by T.P.
 *
 */

//_________________________________________________________________________
// Implementation version 1 of algorithm class to construct PHOS track segments
// Track segment for PHOS is list of 
//        EMC RecPoint + (possibly) CPV RecPoint
// To find TrackSegments we do the following: 
//  for each EMC RecPoints we look at
//   CPV RecPoints in the radious fRcpv. 
//  If there is such a CPV RecPoint, 
//   we make "Link" it is just indexes of EMC and CPV RecPoint and distance
//   between them in the PHOS plane. 
//  Then we sort "Links" and starting from the 
//   least "Link" pointing to the unassined EMC and CPV RecPoints assing them to 
//   new TrackSegment. 
// If there is no CPV RecPoint we make TrackSegment 
// consisting from EMC alone. There is no TrackSegments without EMC RecPoint.
//// In principle this class should be called from AliPHOSReconstructor, but 
// one can use it as well in standalone mode.
// Use  case:
//  root [0] AliPHOSTrackSegmentMakerv1 * t = new AliPHOSTrackSegmentMaker("galice.root", "tracksegmentsname", "recpointsname")
//  Warning in <TDatabasePDG::TDatabasePDG>: object already instantiated
//               // reads gAlice from header file "galice.root", uses recpoints stored in the branch names "recpointsname" (default = "Default")
//               // and saves recpoints in branch named "tracksegmentsname" (default = "recpointsname")                       
//  root [1] t->ExecuteTask()
//  root [3] t->SetTrackSegmentsBranch("max distance 5 cm")
//  root [4] t->ExecuteTask("deb all time") 
//                 
//*-- Author: Dmitri Peressounko (RRC Ki & SUBATECH) & Yves Schutz (SUBATECH) 
//

// --- ROOT system ---
#include "TVector3.h"
#include "TTree.h"
#include "TBenchmark.h"

// --- Standard library ---
#include "Riostream.h"
// --- AliRoot header files ---
#include "AliPHOSGeometry.h"
#include "AliPHOSTrackSegmentMakerv1.h"
#include "AliPHOSTrackSegment.h"
#include "AliPHOSLink.h"
#include "AliESDEvent.h"
#include "AliESDtrack.h"
#include "AliPHOSEmcRecPoint.h"
#include "AliPHOSCpvRecPoint.h"
#include "AliLog.h"
#include "AliMagF.h"
#include "AliMagF.h"
#include "AliTracker.h"
#include "AliGeomManager.h"
#include "AliCluster.h"
#include "AliKalmanTrack.h"
#include "AliGlobalQADataMaker.h"
#include "AliVParticle.h"


ClassImp( AliPHOSTrackSegmentMakerv1) 


//____________________________________________________________________________
AliPHOSTrackSegmentMakerv1::AliPHOSTrackSegmentMakerv1() :
  AliPHOSTrackSegmentMaker(),
  fDefaultInit(kTRUE),
  fWrite(kFALSE),
  fNTrackSegments(0),
  fRcpv(0.f),
  fRtpc(0.f),
  fVtx(0.f,0.f,0.f), 
  fLinkUpArray(0),
  fEmcFirst(0),
  fEmcLast(0),
  fCpvFirst(0),
  fCpvLast(0),
  fModule(0),
  fTrackSegments(NULL)
{
  // default ctor (to be used mainly by Streamer)
  InitParameters() ; 
}

//____________________________________________________________________________
AliPHOSTrackSegmentMakerv1::AliPHOSTrackSegmentMakerv1(AliPHOSGeometry *geom) :
  AliPHOSTrackSegmentMaker(geom),
  fDefaultInit(kFALSE),
  fWrite(kFALSE),
  fNTrackSegments(0),
  fRcpv(0.f),
  fRtpc(0.f),
  fVtx(0.f,0.f,0.f), 
  fLinkUpArray(0),
  fEmcFirst(0),
  fEmcLast(0),
  fCpvFirst(0),
  fCpvLast(0),
  fModule(0),
  fTrackSegments(NULL)
{
  // ctor
  InitParameters() ; 
  Init() ;
  fESD = 0;
}


AliPHOSTrackSegmentMakerv1::AliPHOSTrackSegmentMakerv1(const AliPHOSTrackSegmentMakerv1 & tsm) :
  AliPHOSTrackSegmentMaker(tsm),
  fDefaultInit(kFALSE),
  fWrite(kFALSE),
  fNTrackSegments(0),
  fRcpv(0.f),
  fRtpc(0.f),
  fVtx(0.f,0.f,0.f), 
  fLinkUpArray(0),
  fEmcFirst(0),
  fEmcLast(0),
  fCpvFirst(0),
  fCpvLast(0),
  fModule(0),
  fTrackSegments(NULL)
{
  // cpy ctor: no implementation yet
  // requested by the Coding Convention
  Fatal("cpy ctor", "not implemented") ;
}


//____________________________________________________________________________
 AliPHOSTrackSegmentMakerv1::~AliPHOSTrackSegmentMakerv1()
{ 
  // dtor
  // fDefaultInit = kTRUE if TrackSegmentMaker created by default ctor (to get just the parameters)
  if (!fDefaultInit)  
    delete fLinkUpArray ;
  if (fTrackSegments) {
    fTrackSegments->Delete();
    delete fTrackSegments;
  }
}

//____________________________________________________________________________
void  AliPHOSTrackSegmentMakerv1::FillOneModule()
{
  // Finds first and last indexes between which 
  // clusters from one PHOS module are

  //First EMC clusters
  Int_t totalEmc = fEMCRecPoints->GetEntriesFast() ;
  for(fEmcFirst = fEmcLast; (fEmcLast < totalEmc) &&  
	((static_cast<AliPHOSRecPoint *>(fEMCRecPoints->At(fEmcLast)))->GetPHOSMod() == fModule ); 
      fEmcLast ++)  ;
  
  //Now CPV clusters
  Int_t totalCpv = fCPVRecPoints->GetEntriesFast() ;

    for(fCpvFirst = fCpvLast; (fCpvLast < totalCpv) && 
         ((static_cast<AliPHOSRecPoint *>(fCPVRecPoints->At(fCpvLast)))->GetPHOSMod() == fModule ); 
       fCpvLast ++) ;
      
}

//____________________________________________________________________________
void  AliPHOSTrackSegmentMakerv1::GetDistanceInPHOSPlane(AliPHOSEmcRecPoint * emcClu,
                                                         AliPHOSCpvRecPoint * cpvClu, 
                                                         Int_t &trackindex, 
                                                         Float_t &dx, Float_t &dz) const
{
  // Calculates the distance between the EMC RecPoint and the CPV RecPoint
  // If no CPV, calculates the distance between the EMC RecPoint and the track
  // prolongation to the PHOS module plane.
  // Clusters are sorted in "rows" and "columns" of width 1 cm

//  Float_t delta = 1 ;  // Width of the rows in sorting of RecPoints (in cm)
//                       // if you change this value, change it as well in xxxRecPoint::Compare()

  trackindex = -1;
  dx         = 999.;
  dz         = 999.;

  if(!cpvClu) {
    
    if(!emcClu) {
      return;
    }

    // *** Start the matching
    Int_t nt=fESD->GetNumberOfTracks();
    Int_t iPHOSMod = emcClu->GetPHOSMod()  ;
    //Calculate actual distance to PHOS module
    TVector3 globaPos ;
    fGeom->Local2Global(iPHOSMod, 0.,0., globaPos) ;
    const Double_t rPHOS = globaPos.Pt() ; //Distance to center of  PHOS module
    const Double_t kYmax = 72.+10. ; //Size of the module (with some reserve) in phi direction
    const Double_t kZmax = 64.+10. ; //Size of the module (with some reserve) in z direction
    const Double_t kAlpha0=330./180.*TMath::Pi() ; //First PHOS module angular direction
    const Double_t kAlpha= 20./180.*TMath::Pi() ; //PHOS module angular size
    Double_t minDistance = 1.e6;

    TVector3 vecEmc ;   // Local position of EMC recpoint
    emcClu->GetLocalPosition(vecEmc) ;

    Double_t gposTrack[3] ; 
    Double_t bz = AliTracker::GetBz() ; //B-Field for approximate matching
    Double_t b[3]; 
    for (Int_t i=0; i<nt; i++) {
      AliESDtrack *esdTrack=fESD->GetTrack(i);

      // Skip the tracks having "wrong" status (has to be checked/tuned)
      ULong_t status = esdTrack->GetStatus();
      if ((status & AliESDtrack::kTPCout)   == 0) continue;
//     if ((status & AliESDtrack::kTRDout)   == 0) continue;
//     if ((status & AliESDtrack::kTRDrefit) == 1) continue;

      //Continue extrapolation from TPC outer surface
      const AliExternalTrackParam *outerParam=esdTrack->GetOuterParam();
      if (!outerParam) continue;
      AliExternalTrackParam t(*outerParam);

      t.GetBxByBz(b) ;
      //Direction to the current PHOS module
      Double_t phiMod=kAlpha0-kAlpha*iPHOSMod ;
      if(!t.Rotate(phiMod))
        continue ;
 
      Double_t y;                       // Some tracks do not reach the PHOS
      if (!t.GetYAt(rPHOS,bz,y)) continue; //    because of the bending

      Double_t z; 
      if(!t.GetZAt(rPHOS,bz,z))
        continue ;
      if (TMath::Abs(z) > kZmax) 
        continue; // Some tracks miss the PHOS in Z
      if(TMath::Abs(y) < kYmax){
        t.PropagateToBxByBz(rPHOS,b);        // Propagate to the matching module
      //t.CorrectForMaterial(...); // Correct for the TOF material, if needed
        t.GetXYZ(gposTrack) ;
        TVector3 globalPositionTr(gposTrack) ;
        TVector3 localPositionTr ;
        fGeom->Global2Local(localPositionTr,globalPositionTr,iPHOSMod) ;
        Double_t ddx = vecEmc.X()-localPositionTr.X();
        Double_t ddz = vecEmc.Z()-localPositionTr.Z();
        Double_t d2 = ddx*ddx + ddz*ddz;
        if(d2 < minDistance) {
	  dx = ddx ;
	  dz = ddz ;
	  trackindex=i;
	  minDistance=d2 ;
        }
      }
    } //Scanned all tracks
    return ;
  }


  TVector3 emcGlobal;
  fGeom->GetGlobalPHOS((AliPHOSRecPoint*)emcClu,emcGlobal);
    
  // Radius from IP to current point
  Double_t rEMC = TMath::Abs(emcGlobal.Pt());
    
  // Extrapolate the global track direction to EMC
  // and find the closest track
    
  Int_t nTracks = fESD->GetNumberOfTracks();
    
  AliESDtrack *track;
  Double_t xyz[] = {-1,-1,-1};
  Double_t pxyz[3];
  Double_t zEMC,xEMC;
  Int_t module;
  TVector3 vecP;
  TVector3 locClu;

  Float_t minDistance = 1.e6;
  Float_t dr;

  for (Int_t iTrack=0; iTrack<nTracks; iTrack++) {
    track = fESD->GetTrack(iTrack);
    if (!track->GetXYZAt(rEMC, fESD->GetMagneticField(), xyz)) continue;
    
    AliDebug(1,Form("Event %d, iTrack: %d, (%.3f,%.3f,%.3f)",
		    fESD->GetEventNumberInFile(),iTrack,xyz[0],xyz[1],xyz[2]));
      
    if (track->GetPxPyPzAt(rEMC,fESD->GetMagneticField(),pxyz)) { 

      vecP.SetXYZ(pxyz[0],pxyz[1],pxyz[2]);
      fGeom->ImpactOnEmc(xyz,vecP.Theta(),vecP.Phi(),module,zEMC,xEMC) ;

      if(!module) continue;
      AliDebug(1,Form("\t\tTrack hit PHOS! Module: %d, (x,z)=(%.3f,%.3f)",module,xEMC,zEMC));
	
      if(emcClu->GetPHOSMod() != module) continue;
	
      // match track to EMC cluster
      emcClu->GetLocalPosition(locClu);
	
      Float_t delta_x = xEMC - locClu.X();
      Float_t delta_z = zEMC - locClu.Z();
      dr = TMath::Sqrt(delta_x*delta_x + delta_z*delta_z);
      AliDebug(1,Form("\tMatch iTrack=%d: (dx,dz)=(%.3f,%.3f)",iTrack,delta_x,delta_z));
	
      if(dr<minDistance) {
	trackindex = iTrack;
	minDistance = dr;
	dx = delta_x;
	dz = delta_z;
      }
    }
      
  }
    
  if(trackindex>=0) {
    AliDebug(1,Form("\t\tBest match for (xClu,zClu,eClu)=(%.3f,%.3f,%.3f): iTrack=%d, dR=%.3f",
		    locClu.X(),locClu.Z(),emcClu->GetEnergy(),
		    trackindex,TMath::Sqrt(dx*dx+dz*dz)));	  
    return;
  }
  
  Float_t distance2Track = fRtpc ; 
  
  trackindex = -1 ; // closest track within fRCpv 
  
  TVector3 vecEmc ;   // Local position of EMC recpoint
  TVector3 vecPloc ;     // Momentum direction at CPV plain
  
  //toofar = kTRUE ;
  if(emcClu->GetPHOSMod() != cpvClu->GetPHOSMod()){
    dx=999. ;
    dz=999. ;
    return ;
  }
  
  emcClu->GetLocalPosition(vecEmc) ;
  
  Double_t xCPV=0,zCPV=0 ; //EMC-projected coordinates of CPV cluster 
  TVector3 cpvGlobal; // Global position of the CPV recpoint
  fGeom->GetGlobalPHOS((AliPHOSRecPoint*)cpvClu,cpvGlobal);
  Double_t vtxCPV[3]={cpvGlobal.X(),cpvGlobal.Y(),cpvGlobal.Z()} ;
  Int_t dummyMod ;

  if (fESD == 0x0) {
    //if no track information available, assume straight line from IP to emcal
    fGeom->ImpactOnEmc(vtxCPV,cpvGlobal.Theta(),cpvGlobal.Phi(),dummyMod,zCPV,xCPV) ;
    dx=xCPV - vecEmc.X() ;
    dz=zCPV - vecEmc.Z() ;
    return ;
  } 
  
  //if there is ESD try to correct distance using TPC information on particle direct in CPV 
  if (fESD != 0x0) {

    Double_t rCPV = cpvGlobal.Pt() ;// Radius from IP to current point 

    // Extrapolate the global track direction if any to CPV and find the closest track
    Int_t iClosestTrack = -1;
    TVector3 inPHOS ; 

    for (Int_t iTrack=0; iTrack<nTracks; iTrack++) {
      track = fESD->GetTrack(iTrack);
      if (!track->GetXYZAt(rCPV, fESD->GetMagneticField(), xyz))
	continue; //track coord on the cylinder of PHOS radius
      if ((TMath::Abs(xyz[0])+TMath::Abs(xyz[1])+TMath::Abs(xyz[2]))<=0)
	continue;
      //Check if this track hits PHOS
      inPHOS.SetXYZ(xyz[0],xyz[1],xyz[2]);
      distance2Track = inPHOS.Angle(cpvGlobal) ;
      // Find the closest track to the CPV recpoint
      if (distance2Track < minDistance) {
	minDistance = distance2Track;
	iClosestTrack = iTrack;
      }
    }

    if (iClosestTrack != -1) {
      track = fESD->GetTrack(iClosestTrack);
      if (track->GetPxPyPzAt(rCPV, fESD->GetMagneticField(), pxyz)) { // track momentum ibid.
        vecP.SetXYZ(pxyz[0],pxyz[1],pxyz[2]);
	fGeom->ImpactOnEmc(vtxCPV,vecP.Theta(),vecP.Phi(),dummyMod,zCPV,xCPV) ;
      }
    }
    
    if(minDistance < fRtpc ){
      trackindex = iClosestTrack ; 
    }
  }
  if(trackindex!=-1){
    // If the closest global track is found, calculate EMC-CPV distance from it
    dx=xCPV - vecEmc.X() ;
    dz=zCPV - vecEmc.Z() ;
  }
  else{
    // If no global track was found, just take the nearest CPV point
    fGeom->ImpactOnEmc(vtxCPV,cpvGlobal.Theta(),cpvGlobal.Phi(),dummyMod,zCPV,xCPV) ;
    dx=xCPV - vecEmc.X() ;
    dz=zCPV - vecEmc.Z() ;
  }
  return ;
}
//____________________________________________________________________________
void  AliPHOSTrackSegmentMakerv1::Init()
{
  // Make all memory allocations that are not possible in default constructor
  
  fLinkUpArray  = new TClonesArray("AliPHOSLink", 1000); 
  fTrackSegments = new TClonesArray("AliPHOSTrackSegment",100);
  fTrackSegments->SetName("TRACKS");
}

//____________________________________________________________________________
void  AliPHOSTrackSegmentMakerv1::InitParameters()
{
  //Initializes parameters
  fRcpv      = 10. ;
  fRtpc      = 4. ;
  fEmcFirst  = 0 ;    
  fEmcLast   = 0 ;   
  fCpvFirst  = 0 ;   
  fCpvLast   = 0 ;   
  fLinkUpArray = 0 ;
  fWrite                   = kTRUE ;
}


//____________________________________________________________________________
void  AliPHOSTrackSegmentMakerv1::MakeLinks()const
{ 
  // Finds distances (links) between all EMC and CPV clusters, 
  // which are not further apart from each other than fRcpv 
  // and sort them in accordance with this distance
  
  fLinkUpArray->Clear() ;    

  AliPHOSCpvRecPoint * cpv ;
  AliPHOSEmcRecPoint * emcclu ;

  Int_t iLinkUp  = 0 ;
  
  Int_t iEmcRP;
  for(iEmcRP = fEmcFirst; iEmcRP < fEmcLast; iEmcRP++ ) {
    emcclu = dynamic_cast<AliPHOSEmcRecPoint *>(fEMCRecPoints->At(iEmcRP)) ;

    //Bool_t toofar ;        
    Int_t iCpv = 0 ;    
    for(iCpv = fCpvFirst; iCpv < fCpvLast;iCpv++ ) { 
      
      cpv = dynamic_cast<AliPHOSCpvRecPoint *>(fCPVRecPoints->At(iCpv)) ;
      Int_t track = -1 ; 
      Float_t dx,dz ;
      GetDistanceInPHOSPlane(emcclu, cpv, track,dx,dz) ;     
      if(TMath::Sqrt(dx*dx+dz*dz) < fRcpv ){ 
        new ((*fLinkUpArray)[iLinkUp++])  AliPHOSLink(dx, dz, iEmcRP, iCpv, track) ;
      }      
    }
  } 
  
  fLinkUpArray->Sort() ;  //first links with smallest distances
}

//____________________________________________________________________________
void  AliPHOSTrackSegmentMakerv1::MakePairs()
{ 
  // Using the previously made list of "links", we found the smallest link - i.e. 
  // link with the least distance between EMC and CPV and pointing to still 
  // unassigned RecParticles. We assign these RecPoints to TrackSegment and 
  // remove them from the list of "unassigned". 

  //Make arrays to mark clusters already chosen
  Int_t index;

  Int_t * emcExist = 0;
  if(fEmcLast > fEmcFirst) {
    emcExist = new Int_t[fEmcLast-fEmcFirst] ;
    for(index = 0; index <fEmcLast-fEmcFirst; index ++)
      emcExist[index] = 1 ;
  }
  else 
    return;

  Bool_t * cpvExist = 0;
  if(fCpvLast > fCpvFirst) {
    cpvExist = new Bool_t[fCpvLast-fCpvFirst] ;
    for(index = 0; index <fCpvLast-fCpvFirst; index ++)
      cpvExist[index] = kTRUE ;
  }
  
  // Finds the smallest links and makes pairs of CPV and EMC clusters with smallest distance 
  TIter nextUp(fLinkUpArray) ;
  
  AliPHOSLink * linkUp ;
  
  AliPHOSCpvRecPoint * nullpointer = 0 ;
  
  while ( (linkUp =  static_cast<AliPHOSLink *>(nextUp()) ) ){  

    if(emcExist[linkUp->GetEmc()-fEmcFirst] != -1){

      //array cpvExist[] should be non-zero as far as linkUp exists
      //But Coverity requires to check it
      if(cpvExist && cpvExist[linkUp->GetCpv()-fCpvFirst]){ //CPV still exist
         Float_t dx,dz ;
         linkUp->GetXZ(dx,dz) ;
	 new ((* fTrackSegments)[fNTrackSegments]) 
	   AliPHOSTrackSegment(static_cast<AliPHOSEmcRecPoint *>(fEMCRecPoints->At(linkUp->GetEmc())) , 
			       static_cast<AliPHOSCpvRecPoint *>(fCPVRecPoints->At(linkUp->GetCpv())) , 
			       linkUp->GetTrack(),dx,dz) ;
	 
       (static_cast<AliPHOSTrackSegment *>(fTrackSegments->At(fNTrackSegments)))->SetIndexInList(fNTrackSegments);
       fNTrackSegments++ ;
       emcExist[linkUp->GetEmc()-fEmcFirst] = -1 ; //Mark emc  that Cpv was found 
       //mark CPV recpoint as already used 
       cpvExist[linkUp->GetCpv()-fCpvFirst] = kFALSE ;
      } //if CpvUp still exist
    }
  }

  //look through emc recPoints left without CPV
  if(emcExist){ //if there is emc rec point
    Int_t iEmcRP ;
    for(iEmcRP = 0; iEmcRP < fEmcLast-fEmcFirst  ; iEmcRP++ ){
      if(emcExist[iEmcRP] > 0 ){
        Int_t track = -1 ;
        Float_t dx,dz ;
        AliPHOSEmcRecPoint *emcclu = dynamic_cast<AliPHOSEmcRecPoint *>(fEMCRecPoints->At(iEmcRP+fEmcFirst));
        GetDistanceInPHOSPlane(emcclu, 0, track,dx,dz);
        if(track<0)
	  new ((*fTrackSegments)[fNTrackSegments]) AliPHOSTrackSegment(emcclu,nullpointer) ;
        else
          new ((*fTrackSegments)[fNTrackSegments]) AliPHOSTrackSegment(emcclu,0,track,dx,dz);
	(static_cast<AliPHOSTrackSegment *>(fTrackSegments->At(fNTrackSegments)))->SetIndexInList(fNTrackSegments);
	fNTrackSegments++;    
      } 
    }
  }
  delete [] emcExist ; 
  if(cpvExist)
    delete [] cpvExist ; 
}

//____________________________________________________________________________
void AliPHOSTrackSegmentMakerv1::Clusters2TrackSegments(Option_t *option)
{
  // Steering method to perform track segment construction for the current event
  // Returns an array with the found track-segments.
  
  if(strstr(option,"tim"))
    gBenchmark->Start("PHOSTSMaker");
 
  if(strstr(option,"print")) {
    Print() ; 
    return ; 
  }
  
  //Make some initializations 
  fNTrackSegments = 0 ;
  fEmcFirst = 0 ;    
  fEmcLast  = 0 ;   
  fCpvFirst = 0 ;   
  fCpvLast  = 0 ;   

  fTrackSegments->Clear();

  //   if(!ReadRecPoints(ievent))   continue; //reads RecPoints for event ievent

  for(fModule = 1; fModule <= fGeom->GetNModules() ; fModule++ ) {
    FillOneModule() ; 
    MakeLinks() ;
    MakePairs() ;
  }
    
  if(strstr(option,"deb"))
    PrintTrackSegments(option);

  if(strstr(option,"tim")){
    gBenchmark->Stop("PHOSTSMaker");
    Info("Exec", "took %f seconds for making TS", 
	 gBenchmark->GetCpuTime("PHOSTSMaker")); 
  }
}

//____________________________________________________________________________
void AliPHOSTrackSegmentMakerv1::Print(const Option_t *)const
{
  //  Print TrackSegmentMaker parameters

  TString message("") ;
  if( strcmp(GetName(), "") != 0 ) {
    message = "\n======== AliPHOSTrackSegmentMakerv1 ========\n" ; 
    message += "Making Track segments\n" ;
    message += "with parameters:\n" ; 
    message += "     Maximal EMC - CPV distance (cm) %f\n" ;
    message += "============================================\n" ;
    Info("Print", message.Data(),fRcpv) ;
  }
  else
    Info("Print", "AliPHOSTrackSegmentMakerv1 not initialized ") ;
}

//____________________________________________________________________________
void AliPHOSTrackSegmentMakerv1::PrintTrackSegments(Option_t * option)
{
  // option deb - prints # of found TrackSegments
  // option deb all - prints as well indexed of found RecParticles assigned to the TS

  Info("PrintTrackSegments", "Results from TrackSegmentMaker:") ; 
  printf("        Found %d TrackSegments\n", fTrackSegments->GetEntriesFast() ); 
  
  if(strstr(option,"all")) {  // printing found TS
    printf("TrackSegment #  EMC RP#  CPV RP#\n") ; 
    Int_t index;
    for (index = 0 ; index <fTrackSegments->GetEntriesFast() ; index++) {
      AliPHOSTrackSegment * ts = (AliPHOSTrackSegment * )fTrackSegments->At(index) ; 
      printf("   %d           %d        %d \n", ts->GetIndexInList(), ts->GetEmcIndex(), ts->GetCpvIndex() ) ; 
    }	
  }
}

 AliPHOSTrackSegmentMakerv1.cxx:1
 AliPHOSTrackSegmentMakerv1.cxx:2
 AliPHOSTrackSegmentMakerv1.cxx:3
 AliPHOSTrackSegmentMakerv1.cxx:4
 AliPHOSTrackSegmentMakerv1.cxx:5
 AliPHOSTrackSegmentMakerv1.cxx:6
 AliPHOSTrackSegmentMakerv1.cxx:7
 AliPHOSTrackSegmentMakerv1.cxx:8
 AliPHOSTrackSegmentMakerv1.cxx:9
 AliPHOSTrackSegmentMakerv1.cxx:10
 AliPHOSTrackSegmentMakerv1.cxx:11
 AliPHOSTrackSegmentMakerv1.cxx:12
 AliPHOSTrackSegmentMakerv1.cxx:13
 AliPHOSTrackSegmentMakerv1.cxx:14
 AliPHOSTrackSegmentMakerv1.cxx:15
 AliPHOSTrackSegmentMakerv1.cxx:16
 AliPHOSTrackSegmentMakerv1.cxx:17
 AliPHOSTrackSegmentMakerv1.cxx:18
 AliPHOSTrackSegmentMakerv1.cxx:19
 AliPHOSTrackSegmentMakerv1.cxx:20
 AliPHOSTrackSegmentMakerv1.cxx:21
 AliPHOSTrackSegmentMakerv1.cxx:22
 AliPHOSTrackSegmentMakerv1.cxx:23
 AliPHOSTrackSegmentMakerv1.cxx:24
 AliPHOSTrackSegmentMakerv1.cxx:25
 AliPHOSTrackSegmentMakerv1.cxx:26
 AliPHOSTrackSegmentMakerv1.cxx:27
 AliPHOSTrackSegmentMakerv1.cxx:28
 AliPHOSTrackSegmentMakerv1.cxx:29
 AliPHOSTrackSegmentMakerv1.cxx:30
 AliPHOSTrackSegmentMakerv1.cxx:31
 AliPHOSTrackSegmentMakerv1.cxx:32
 AliPHOSTrackSegmentMakerv1.cxx:33
 AliPHOSTrackSegmentMakerv1.cxx:34
 AliPHOSTrackSegmentMakerv1.cxx:35
 AliPHOSTrackSegmentMakerv1.cxx:36
 AliPHOSTrackSegmentMakerv1.cxx:37
 AliPHOSTrackSegmentMakerv1.cxx:38
 AliPHOSTrackSegmentMakerv1.cxx:39
 AliPHOSTrackSegmentMakerv1.cxx:40
 AliPHOSTrackSegmentMakerv1.cxx:41
 AliPHOSTrackSegmentMakerv1.cxx:42
 AliPHOSTrackSegmentMakerv1.cxx:43
 AliPHOSTrackSegmentMakerv1.cxx:44
 AliPHOSTrackSegmentMakerv1.cxx:45
 AliPHOSTrackSegmentMakerv1.cxx:46
 AliPHOSTrackSegmentMakerv1.cxx:47
 AliPHOSTrackSegmentMakerv1.cxx:48
 AliPHOSTrackSegmentMakerv1.cxx:49
 AliPHOSTrackSegmentMakerv1.cxx:50
 AliPHOSTrackSegmentMakerv1.cxx:51
 AliPHOSTrackSegmentMakerv1.cxx:52
 AliPHOSTrackSegmentMakerv1.cxx:53
 AliPHOSTrackSegmentMakerv1.cxx:54
 AliPHOSTrackSegmentMakerv1.cxx:55
 AliPHOSTrackSegmentMakerv1.cxx:56
 AliPHOSTrackSegmentMakerv1.cxx:57
 AliPHOSTrackSegmentMakerv1.cxx:58
 AliPHOSTrackSegmentMakerv1.cxx:59
 AliPHOSTrackSegmentMakerv1.cxx:60
 AliPHOSTrackSegmentMakerv1.cxx:61
 AliPHOSTrackSegmentMakerv1.cxx:62
 AliPHOSTrackSegmentMakerv1.cxx:63
 AliPHOSTrackSegmentMakerv1.cxx:64
 AliPHOSTrackSegmentMakerv1.cxx:65
 AliPHOSTrackSegmentMakerv1.cxx:66
 AliPHOSTrackSegmentMakerv1.cxx:67
 AliPHOSTrackSegmentMakerv1.cxx:68
 AliPHOSTrackSegmentMakerv1.cxx:69
 AliPHOSTrackSegmentMakerv1.cxx:70
 AliPHOSTrackSegmentMakerv1.cxx:71
 AliPHOSTrackSegmentMakerv1.cxx:72
 AliPHOSTrackSegmentMakerv1.cxx:73
 AliPHOSTrackSegmentMakerv1.cxx:74
 AliPHOSTrackSegmentMakerv1.cxx:75
 AliPHOSTrackSegmentMakerv1.cxx:76
 AliPHOSTrackSegmentMakerv1.cxx:77
 AliPHOSTrackSegmentMakerv1.cxx:78
 AliPHOSTrackSegmentMakerv1.cxx:79
 AliPHOSTrackSegmentMakerv1.cxx:80
 AliPHOSTrackSegmentMakerv1.cxx:81
 AliPHOSTrackSegmentMakerv1.cxx:82
 AliPHOSTrackSegmentMakerv1.cxx:83
 AliPHOSTrackSegmentMakerv1.cxx:84
 AliPHOSTrackSegmentMakerv1.cxx:85
 AliPHOSTrackSegmentMakerv1.cxx:86
 AliPHOSTrackSegmentMakerv1.cxx:87
 AliPHOSTrackSegmentMakerv1.cxx:88
 AliPHOSTrackSegmentMakerv1.cxx:89
 AliPHOSTrackSegmentMakerv1.cxx:90
 AliPHOSTrackSegmentMakerv1.cxx:91
 AliPHOSTrackSegmentMakerv1.cxx:92
 AliPHOSTrackSegmentMakerv1.cxx:93
 AliPHOSTrackSegmentMakerv1.cxx:94
 AliPHOSTrackSegmentMakerv1.cxx:95
 AliPHOSTrackSegmentMakerv1.cxx:96
 AliPHOSTrackSegmentMakerv1.cxx:97
 AliPHOSTrackSegmentMakerv1.cxx:98
 AliPHOSTrackSegmentMakerv1.cxx:99
 AliPHOSTrackSegmentMakerv1.cxx:100
 AliPHOSTrackSegmentMakerv1.cxx:101
 AliPHOSTrackSegmentMakerv1.cxx:102
 AliPHOSTrackSegmentMakerv1.cxx:103
 AliPHOSTrackSegmentMakerv1.cxx:104
 AliPHOSTrackSegmentMakerv1.cxx:105
 AliPHOSTrackSegmentMakerv1.cxx:106
 AliPHOSTrackSegmentMakerv1.cxx:107
 AliPHOSTrackSegmentMakerv1.cxx:108
 AliPHOSTrackSegmentMakerv1.cxx:109
 AliPHOSTrackSegmentMakerv1.cxx:110
 AliPHOSTrackSegmentMakerv1.cxx:111
 AliPHOSTrackSegmentMakerv1.cxx:112
 AliPHOSTrackSegmentMakerv1.cxx:113
 AliPHOSTrackSegmentMakerv1.cxx:114
 AliPHOSTrackSegmentMakerv1.cxx:115
 AliPHOSTrackSegmentMakerv1.cxx:116
 AliPHOSTrackSegmentMakerv1.cxx:117
 AliPHOSTrackSegmentMakerv1.cxx:118
 AliPHOSTrackSegmentMakerv1.cxx:119
 AliPHOSTrackSegmentMakerv1.cxx:120
 AliPHOSTrackSegmentMakerv1.cxx:121
 AliPHOSTrackSegmentMakerv1.cxx:122
 AliPHOSTrackSegmentMakerv1.cxx:123
 AliPHOSTrackSegmentMakerv1.cxx:124
 AliPHOSTrackSegmentMakerv1.cxx:125
 AliPHOSTrackSegmentMakerv1.cxx:126
 AliPHOSTrackSegmentMakerv1.cxx:127
 AliPHOSTrackSegmentMakerv1.cxx:128
 AliPHOSTrackSegmentMakerv1.cxx:129
 AliPHOSTrackSegmentMakerv1.cxx:130
 AliPHOSTrackSegmentMakerv1.cxx:131
 AliPHOSTrackSegmentMakerv1.cxx:132
 AliPHOSTrackSegmentMakerv1.cxx:133
 AliPHOSTrackSegmentMakerv1.cxx:134
 AliPHOSTrackSegmentMakerv1.cxx:135
 AliPHOSTrackSegmentMakerv1.cxx:136
 AliPHOSTrackSegmentMakerv1.cxx:137
 AliPHOSTrackSegmentMakerv1.cxx:138
 AliPHOSTrackSegmentMakerv1.cxx:139
 AliPHOSTrackSegmentMakerv1.cxx:140
 AliPHOSTrackSegmentMakerv1.cxx:141
 AliPHOSTrackSegmentMakerv1.cxx:142
 AliPHOSTrackSegmentMakerv1.cxx:143
 AliPHOSTrackSegmentMakerv1.cxx:144
 AliPHOSTrackSegmentMakerv1.cxx:145
 AliPHOSTrackSegmentMakerv1.cxx:146
 AliPHOSTrackSegmentMakerv1.cxx:147
 AliPHOSTrackSegmentMakerv1.cxx:148
 AliPHOSTrackSegmentMakerv1.cxx:149
 AliPHOSTrackSegmentMakerv1.cxx:150
 AliPHOSTrackSegmentMakerv1.cxx:151
 AliPHOSTrackSegmentMakerv1.cxx:152
 AliPHOSTrackSegmentMakerv1.cxx:153
 AliPHOSTrackSegmentMakerv1.cxx:154
 AliPHOSTrackSegmentMakerv1.cxx:155
 AliPHOSTrackSegmentMakerv1.cxx:156
 AliPHOSTrackSegmentMakerv1.cxx:157
 AliPHOSTrackSegmentMakerv1.cxx:158
 AliPHOSTrackSegmentMakerv1.cxx:159
 AliPHOSTrackSegmentMakerv1.cxx:160
 AliPHOSTrackSegmentMakerv1.cxx:161
 AliPHOSTrackSegmentMakerv1.cxx:162
 AliPHOSTrackSegmentMakerv1.cxx:163
 AliPHOSTrackSegmentMakerv1.cxx:164
 AliPHOSTrackSegmentMakerv1.cxx:165
 AliPHOSTrackSegmentMakerv1.cxx:166
 AliPHOSTrackSegmentMakerv1.cxx:167
 AliPHOSTrackSegmentMakerv1.cxx:168
 AliPHOSTrackSegmentMakerv1.cxx:169
 AliPHOSTrackSegmentMakerv1.cxx:170
 AliPHOSTrackSegmentMakerv1.cxx:171
 AliPHOSTrackSegmentMakerv1.cxx:172
 AliPHOSTrackSegmentMakerv1.cxx:173
 AliPHOSTrackSegmentMakerv1.cxx:174
 AliPHOSTrackSegmentMakerv1.cxx:175
 AliPHOSTrackSegmentMakerv1.cxx:176
 AliPHOSTrackSegmentMakerv1.cxx:177
 AliPHOSTrackSegmentMakerv1.cxx:178
 AliPHOSTrackSegmentMakerv1.cxx:179
 AliPHOSTrackSegmentMakerv1.cxx:180
 AliPHOSTrackSegmentMakerv1.cxx:181
 AliPHOSTrackSegmentMakerv1.cxx:182
 AliPHOSTrackSegmentMakerv1.cxx:183
 AliPHOSTrackSegmentMakerv1.cxx:184
 AliPHOSTrackSegmentMakerv1.cxx:185
 AliPHOSTrackSegmentMakerv1.cxx:186
 AliPHOSTrackSegmentMakerv1.cxx:187
 AliPHOSTrackSegmentMakerv1.cxx:188
 AliPHOSTrackSegmentMakerv1.cxx:189
 AliPHOSTrackSegmentMakerv1.cxx:190
 AliPHOSTrackSegmentMakerv1.cxx:191
 AliPHOSTrackSegmentMakerv1.cxx:192
 AliPHOSTrackSegmentMakerv1.cxx:193
 AliPHOSTrackSegmentMakerv1.cxx:194
 AliPHOSTrackSegmentMakerv1.cxx:195
 AliPHOSTrackSegmentMakerv1.cxx:196
 AliPHOSTrackSegmentMakerv1.cxx:197
 AliPHOSTrackSegmentMakerv1.cxx:198
 AliPHOSTrackSegmentMakerv1.cxx:199
 AliPHOSTrackSegmentMakerv1.cxx:200
 AliPHOSTrackSegmentMakerv1.cxx:201
 AliPHOSTrackSegmentMakerv1.cxx:202
 AliPHOSTrackSegmentMakerv1.cxx:203
 AliPHOSTrackSegmentMakerv1.cxx:204
 AliPHOSTrackSegmentMakerv1.cxx:205
 AliPHOSTrackSegmentMakerv1.cxx:206
 AliPHOSTrackSegmentMakerv1.cxx:207
 AliPHOSTrackSegmentMakerv1.cxx:208
 AliPHOSTrackSegmentMakerv1.cxx:209
 AliPHOSTrackSegmentMakerv1.cxx:210
 AliPHOSTrackSegmentMakerv1.cxx:211
 AliPHOSTrackSegmentMakerv1.cxx:212
 AliPHOSTrackSegmentMakerv1.cxx:213
 AliPHOSTrackSegmentMakerv1.cxx:214
 AliPHOSTrackSegmentMakerv1.cxx:215
 AliPHOSTrackSegmentMakerv1.cxx:216
 AliPHOSTrackSegmentMakerv1.cxx:217
 AliPHOSTrackSegmentMakerv1.cxx:218
 AliPHOSTrackSegmentMakerv1.cxx:219
 AliPHOSTrackSegmentMakerv1.cxx:220
 AliPHOSTrackSegmentMakerv1.cxx:221
 AliPHOSTrackSegmentMakerv1.cxx:222
 AliPHOSTrackSegmentMakerv1.cxx:223
 AliPHOSTrackSegmentMakerv1.cxx:224
 AliPHOSTrackSegmentMakerv1.cxx:225
 AliPHOSTrackSegmentMakerv1.cxx:226
 AliPHOSTrackSegmentMakerv1.cxx:227
 AliPHOSTrackSegmentMakerv1.cxx:228
 AliPHOSTrackSegmentMakerv1.cxx:229
 AliPHOSTrackSegmentMakerv1.cxx:230
 AliPHOSTrackSegmentMakerv1.cxx:231
 AliPHOSTrackSegmentMakerv1.cxx:232
 AliPHOSTrackSegmentMakerv1.cxx:233
 AliPHOSTrackSegmentMakerv1.cxx:234
 AliPHOSTrackSegmentMakerv1.cxx:235
 AliPHOSTrackSegmentMakerv1.cxx:236
 AliPHOSTrackSegmentMakerv1.cxx:237
 AliPHOSTrackSegmentMakerv1.cxx:238
 AliPHOSTrackSegmentMakerv1.cxx:239
 AliPHOSTrackSegmentMakerv1.cxx:240
 AliPHOSTrackSegmentMakerv1.cxx:241
 AliPHOSTrackSegmentMakerv1.cxx:242
 AliPHOSTrackSegmentMakerv1.cxx:243
 AliPHOSTrackSegmentMakerv1.cxx:244
 AliPHOSTrackSegmentMakerv1.cxx:245
 AliPHOSTrackSegmentMakerv1.cxx:246
 AliPHOSTrackSegmentMakerv1.cxx:247
 AliPHOSTrackSegmentMakerv1.cxx:248
 AliPHOSTrackSegmentMakerv1.cxx:249
 AliPHOSTrackSegmentMakerv1.cxx:250
 AliPHOSTrackSegmentMakerv1.cxx:251
 AliPHOSTrackSegmentMakerv1.cxx:252
 AliPHOSTrackSegmentMakerv1.cxx:253
 AliPHOSTrackSegmentMakerv1.cxx:254
 AliPHOSTrackSegmentMakerv1.cxx:255
 AliPHOSTrackSegmentMakerv1.cxx:256
 AliPHOSTrackSegmentMakerv1.cxx:257
 AliPHOSTrackSegmentMakerv1.cxx:258
 AliPHOSTrackSegmentMakerv1.cxx:259
 AliPHOSTrackSegmentMakerv1.cxx:260
 AliPHOSTrackSegmentMakerv1.cxx:261
 AliPHOSTrackSegmentMakerv1.cxx:262
 AliPHOSTrackSegmentMakerv1.cxx:263
 AliPHOSTrackSegmentMakerv1.cxx:264
 AliPHOSTrackSegmentMakerv1.cxx:265
 AliPHOSTrackSegmentMakerv1.cxx:266
 AliPHOSTrackSegmentMakerv1.cxx:267
 AliPHOSTrackSegmentMakerv1.cxx:268
 AliPHOSTrackSegmentMakerv1.cxx:269
 AliPHOSTrackSegmentMakerv1.cxx:270
 AliPHOSTrackSegmentMakerv1.cxx:271
 AliPHOSTrackSegmentMakerv1.cxx:272
 AliPHOSTrackSegmentMakerv1.cxx:273
 AliPHOSTrackSegmentMakerv1.cxx:274
 AliPHOSTrackSegmentMakerv1.cxx:275
 AliPHOSTrackSegmentMakerv1.cxx:276
 AliPHOSTrackSegmentMakerv1.cxx:277
 AliPHOSTrackSegmentMakerv1.cxx:278
 AliPHOSTrackSegmentMakerv1.cxx:279
 AliPHOSTrackSegmentMakerv1.cxx:280
 AliPHOSTrackSegmentMakerv1.cxx:281
 AliPHOSTrackSegmentMakerv1.cxx:282
 AliPHOSTrackSegmentMakerv1.cxx:283
 AliPHOSTrackSegmentMakerv1.cxx:284
 AliPHOSTrackSegmentMakerv1.cxx:285
 AliPHOSTrackSegmentMakerv1.cxx:286
 AliPHOSTrackSegmentMakerv1.cxx:287
 AliPHOSTrackSegmentMakerv1.cxx:288
 AliPHOSTrackSegmentMakerv1.cxx:289
 AliPHOSTrackSegmentMakerv1.cxx:290
 AliPHOSTrackSegmentMakerv1.cxx:291
 AliPHOSTrackSegmentMakerv1.cxx:292
 AliPHOSTrackSegmentMakerv1.cxx:293
 AliPHOSTrackSegmentMakerv1.cxx:294
 AliPHOSTrackSegmentMakerv1.cxx:295
 AliPHOSTrackSegmentMakerv1.cxx:296
 AliPHOSTrackSegmentMakerv1.cxx:297
 AliPHOSTrackSegmentMakerv1.cxx:298
 AliPHOSTrackSegmentMakerv1.cxx:299
 AliPHOSTrackSegmentMakerv1.cxx:300
 AliPHOSTrackSegmentMakerv1.cxx:301
 AliPHOSTrackSegmentMakerv1.cxx:302
 AliPHOSTrackSegmentMakerv1.cxx:303
 AliPHOSTrackSegmentMakerv1.cxx:304
 AliPHOSTrackSegmentMakerv1.cxx:305
 AliPHOSTrackSegmentMakerv1.cxx:306
 AliPHOSTrackSegmentMakerv1.cxx:307
 AliPHOSTrackSegmentMakerv1.cxx:308
 AliPHOSTrackSegmentMakerv1.cxx:309
 AliPHOSTrackSegmentMakerv1.cxx:310
 AliPHOSTrackSegmentMakerv1.cxx:311
 AliPHOSTrackSegmentMakerv1.cxx:312
 AliPHOSTrackSegmentMakerv1.cxx:313
 AliPHOSTrackSegmentMakerv1.cxx:314
 AliPHOSTrackSegmentMakerv1.cxx:315
 AliPHOSTrackSegmentMakerv1.cxx:316
 AliPHOSTrackSegmentMakerv1.cxx:317
 AliPHOSTrackSegmentMakerv1.cxx:318
 AliPHOSTrackSegmentMakerv1.cxx:319
 AliPHOSTrackSegmentMakerv1.cxx:320
 AliPHOSTrackSegmentMakerv1.cxx:321
 AliPHOSTrackSegmentMakerv1.cxx:322
 AliPHOSTrackSegmentMakerv1.cxx:323
 AliPHOSTrackSegmentMakerv1.cxx:324
 AliPHOSTrackSegmentMakerv1.cxx:325
 AliPHOSTrackSegmentMakerv1.cxx:326
 AliPHOSTrackSegmentMakerv1.cxx:327
 AliPHOSTrackSegmentMakerv1.cxx:328
 AliPHOSTrackSegmentMakerv1.cxx:329
 AliPHOSTrackSegmentMakerv1.cxx:330
 AliPHOSTrackSegmentMakerv1.cxx:331
 AliPHOSTrackSegmentMakerv1.cxx:332
 AliPHOSTrackSegmentMakerv1.cxx:333
 AliPHOSTrackSegmentMakerv1.cxx:334
 AliPHOSTrackSegmentMakerv1.cxx:335
 AliPHOSTrackSegmentMakerv1.cxx:336
 AliPHOSTrackSegmentMakerv1.cxx:337
 AliPHOSTrackSegmentMakerv1.cxx:338
 AliPHOSTrackSegmentMakerv1.cxx:339
 AliPHOSTrackSegmentMakerv1.cxx:340
 AliPHOSTrackSegmentMakerv1.cxx:341
 AliPHOSTrackSegmentMakerv1.cxx:342
 AliPHOSTrackSegmentMakerv1.cxx:343
 AliPHOSTrackSegmentMakerv1.cxx:344
 AliPHOSTrackSegmentMakerv1.cxx:345
 AliPHOSTrackSegmentMakerv1.cxx:346
 AliPHOSTrackSegmentMakerv1.cxx:347
 AliPHOSTrackSegmentMakerv1.cxx:348
 AliPHOSTrackSegmentMakerv1.cxx:349
 AliPHOSTrackSegmentMakerv1.cxx:350
 AliPHOSTrackSegmentMakerv1.cxx:351
 AliPHOSTrackSegmentMakerv1.cxx:352
 AliPHOSTrackSegmentMakerv1.cxx:353
 AliPHOSTrackSegmentMakerv1.cxx:354
 AliPHOSTrackSegmentMakerv1.cxx:355
 AliPHOSTrackSegmentMakerv1.cxx:356
 AliPHOSTrackSegmentMakerv1.cxx:357
 AliPHOSTrackSegmentMakerv1.cxx:358
 AliPHOSTrackSegmentMakerv1.cxx:359
 AliPHOSTrackSegmentMakerv1.cxx:360
 AliPHOSTrackSegmentMakerv1.cxx:361
 AliPHOSTrackSegmentMakerv1.cxx:362
 AliPHOSTrackSegmentMakerv1.cxx:363
 AliPHOSTrackSegmentMakerv1.cxx:364
 AliPHOSTrackSegmentMakerv1.cxx:365
 AliPHOSTrackSegmentMakerv1.cxx:366
 AliPHOSTrackSegmentMakerv1.cxx:367
 AliPHOSTrackSegmentMakerv1.cxx:368
 AliPHOSTrackSegmentMakerv1.cxx:369
 AliPHOSTrackSegmentMakerv1.cxx:370
 AliPHOSTrackSegmentMakerv1.cxx:371
 AliPHOSTrackSegmentMakerv1.cxx:372
 AliPHOSTrackSegmentMakerv1.cxx:373
 AliPHOSTrackSegmentMakerv1.cxx:374
 AliPHOSTrackSegmentMakerv1.cxx:375
 AliPHOSTrackSegmentMakerv1.cxx:376
 AliPHOSTrackSegmentMakerv1.cxx:377
 AliPHOSTrackSegmentMakerv1.cxx:378
 AliPHOSTrackSegmentMakerv1.cxx:379
 AliPHOSTrackSegmentMakerv1.cxx:380
 AliPHOSTrackSegmentMakerv1.cxx:381
 AliPHOSTrackSegmentMakerv1.cxx:382
 AliPHOSTrackSegmentMakerv1.cxx:383
 AliPHOSTrackSegmentMakerv1.cxx:384
 AliPHOSTrackSegmentMakerv1.cxx:385
 AliPHOSTrackSegmentMakerv1.cxx:386
 AliPHOSTrackSegmentMakerv1.cxx:387
 AliPHOSTrackSegmentMakerv1.cxx:388
 AliPHOSTrackSegmentMakerv1.cxx:389
 AliPHOSTrackSegmentMakerv1.cxx:390
 AliPHOSTrackSegmentMakerv1.cxx:391
 AliPHOSTrackSegmentMakerv1.cxx:392
 AliPHOSTrackSegmentMakerv1.cxx:393
 AliPHOSTrackSegmentMakerv1.cxx:394
 AliPHOSTrackSegmentMakerv1.cxx:395
 AliPHOSTrackSegmentMakerv1.cxx:396
 AliPHOSTrackSegmentMakerv1.cxx:397
 AliPHOSTrackSegmentMakerv1.cxx:398
 AliPHOSTrackSegmentMakerv1.cxx:399
 AliPHOSTrackSegmentMakerv1.cxx:400
 AliPHOSTrackSegmentMakerv1.cxx:401
 AliPHOSTrackSegmentMakerv1.cxx:402
 AliPHOSTrackSegmentMakerv1.cxx:403
 AliPHOSTrackSegmentMakerv1.cxx:404
 AliPHOSTrackSegmentMakerv1.cxx:405
 AliPHOSTrackSegmentMakerv1.cxx:406
 AliPHOSTrackSegmentMakerv1.cxx:407
 AliPHOSTrackSegmentMakerv1.cxx:408
 AliPHOSTrackSegmentMakerv1.cxx:409
 AliPHOSTrackSegmentMakerv1.cxx:410
 AliPHOSTrackSegmentMakerv1.cxx:411
 AliPHOSTrackSegmentMakerv1.cxx:412
 AliPHOSTrackSegmentMakerv1.cxx:413
 AliPHOSTrackSegmentMakerv1.cxx:414
 AliPHOSTrackSegmentMakerv1.cxx:415
 AliPHOSTrackSegmentMakerv1.cxx:416
 AliPHOSTrackSegmentMakerv1.cxx:417
 AliPHOSTrackSegmentMakerv1.cxx:418
 AliPHOSTrackSegmentMakerv1.cxx:419
 AliPHOSTrackSegmentMakerv1.cxx:420
 AliPHOSTrackSegmentMakerv1.cxx:421
 AliPHOSTrackSegmentMakerv1.cxx:422
 AliPHOSTrackSegmentMakerv1.cxx:423
 AliPHOSTrackSegmentMakerv1.cxx:424
 AliPHOSTrackSegmentMakerv1.cxx:425
 AliPHOSTrackSegmentMakerv1.cxx:426
 AliPHOSTrackSegmentMakerv1.cxx:427
 AliPHOSTrackSegmentMakerv1.cxx:428
 AliPHOSTrackSegmentMakerv1.cxx:429
 AliPHOSTrackSegmentMakerv1.cxx:430
 AliPHOSTrackSegmentMakerv1.cxx:431
 AliPHOSTrackSegmentMakerv1.cxx:432
 AliPHOSTrackSegmentMakerv1.cxx:433
 AliPHOSTrackSegmentMakerv1.cxx:434
 AliPHOSTrackSegmentMakerv1.cxx:435
 AliPHOSTrackSegmentMakerv1.cxx:436
 AliPHOSTrackSegmentMakerv1.cxx:437
 AliPHOSTrackSegmentMakerv1.cxx:438
 AliPHOSTrackSegmentMakerv1.cxx:439
 AliPHOSTrackSegmentMakerv1.cxx:440
 AliPHOSTrackSegmentMakerv1.cxx:441
 AliPHOSTrackSegmentMakerv1.cxx:442
 AliPHOSTrackSegmentMakerv1.cxx:443
 AliPHOSTrackSegmentMakerv1.cxx:444
 AliPHOSTrackSegmentMakerv1.cxx:445
 AliPHOSTrackSegmentMakerv1.cxx:446
 AliPHOSTrackSegmentMakerv1.cxx:447
 AliPHOSTrackSegmentMakerv1.cxx:448
 AliPHOSTrackSegmentMakerv1.cxx:449
 AliPHOSTrackSegmentMakerv1.cxx:450
 AliPHOSTrackSegmentMakerv1.cxx:451
 AliPHOSTrackSegmentMakerv1.cxx:452
 AliPHOSTrackSegmentMakerv1.cxx:453
 AliPHOSTrackSegmentMakerv1.cxx:454
 AliPHOSTrackSegmentMakerv1.cxx:455
 AliPHOSTrackSegmentMakerv1.cxx:456
 AliPHOSTrackSegmentMakerv1.cxx:457
 AliPHOSTrackSegmentMakerv1.cxx:458
 AliPHOSTrackSegmentMakerv1.cxx:459
 AliPHOSTrackSegmentMakerv1.cxx:460
 AliPHOSTrackSegmentMakerv1.cxx:461
 AliPHOSTrackSegmentMakerv1.cxx:462
 AliPHOSTrackSegmentMakerv1.cxx:463
 AliPHOSTrackSegmentMakerv1.cxx:464
 AliPHOSTrackSegmentMakerv1.cxx:465
 AliPHOSTrackSegmentMakerv1.cxx:466
 AliPHOSTrackSegmentMakerv1.cxx:467
 AliPHOSTrackSegmentMakerv1.cxx:468
 AliPHOSTrackSegmentMakerv1.cxx:469
 AliPHOSTrackSegmentMakerv1.cxx:470
 AliPHOSTrackSegmentMakerv1.cxx:471
 AliPHOSTrackSegmentMakerv1.cxx:472
 AliPHOSTrackSegmentMakerv1.cxx:473
 AliPHOSTrackSegmentMakerv1.cxx:474
 AliPHOSTrackSegmentMakerv1.cxx:475
 AliPHOSTrackSegmentMakerv1.cxx:476
 AliPHOSTrackSegmentMakerv1.cxx:477
 AliPHOSTrackSegmentMakerv1.cxx:478
 AliPHOSTrackSegmentMakerv1.cxx:479
 AliPHOSTrackSegmentMakerv1.cxx:480
 AliPHOSTrackSegmentMakerv1.cxx:481
 AliPHOSTrackSegmentMakerv1.cxx:482
 AliPHOSTrackSegmentMakerv1.cxx:483
 AliPHOSTrackSegmentMakerv1.cxx:484
 AliPHOSTrackSegmentMakerv1.cxx:485
 AliPHOSTrackSegmentMakerv1.cxx:486
 AliPHOSTrackSegmentMakerv1.cxx:487
 AliPHOSTrackSegmentMakerv1.cxx:488
 AliPHOSTrackSegmentMakerv1.cxx:489
 AliPHOSTrackSegmentMakerv1.cxx:490
 AliPHOSTrackSegmentMakerv1.cxx:491
 AliPHOSTrackSegmentMakerv1.cxx:492
 AliPHOSTrackSegmentMakerv1.cxx:493
 AliPHOSTrackSegmentMakerv1.cxx:494
 AliPHOSTrackSegmentMakerv1.cxx:495
 AliPHOSTrackSegmentMakerv1.cxx:496
 AliPHOSTrackSegmentMakerv1.cxx:497
 AliPHOSTrackSegmentMakerv1.cxx:498
 AliPHOSTrackSegmentMakerv1.cxx:499
 AliPHOSTrackSegmentMakerv1.cxx:500
 AliPHOSTrackSegmentMakerv1.cxx:501
 AliPHOSTrackSegmentMakerv1.cxx:502
 AliPHOSTrackSegmentMakerv1.cxx:503
 AliPHOSTrackSegmentMakerv1.cxx:504
 AliPHOSTrackSegmentMakerv1.cxx:505
 AliPHOSTrackSegmentMakerv1.cxx:506
 AliPHOSTrackSegmentMakerv1.cxx:507
 AliPHOSTrackSegmentMakerv1.cxx:508
 AliPHOSTrackSegmentMakerv1.cxx:509
 AliPHOSTrackSegmentMakerv1.cxx:510
 AliPHOSTrackSegmentMakerv1.cxx:511
 AliPHOSTrackSegmentMakerv1.cxx:512
 AliPHOSTrackSegmentMakerv1.cxx:513
 AliPHOSTrackSegmentMakerv1.cxx:514
 AliPHOSTrackSegmentMakerv1.cxx:515
 AliPHOSTrackSegmentMakerv1.cxx:516
 AliPHOSTrackSegmentMakerv1.cxx:517
 AliPHOSTrackSegmentMakerv1.cxx:518
 AliPHOSTrackSegmentMakerv1.cxx:519
 AliPHOSTrackSegmentMakerv1.cxx:520
 AliPHOSTrackSegmentMakerv1.cxx:521
 AliPHOSTrackSegmentMakerv1.cxx:522
 AliPHOSTrackSegmentMakerv1.cxx:523
 AliPHOSTrackSegmentMakerv1.cxx:524
 AliPHOSTrackSegmentMakerv1.cxx:525
 AliPHOSTrackSegmentMakerv1.cxx:526
 AliPHOSTrackSegmentMakerv1.cxx:527
 AliPHOSTrackSegmentMakerv1.cxx:528
 AliPHOSTrackSegmentMakerv1.cxx:529
 AliPHOSTrackSegmentMakerv1.cxx:530
 AliPHOSTrackSegmentMakerv1.cxx:531
 AliPHOSTrackSegmentMakerv1.cxx:532
 AliPHOSTrackSegmentMakerv1.cxx:533
 AliPHOSTrackSegmentMakerv1.cxx:534
 AliPHOSTrackSegmentMakerv1.cxx:535
 AliPHOSTrackSegmentMakerv1.cxx:536
 AliPHOSTrackSegmentMakerv1.cxx:537
 AliPHOSTrackSegmentMakerv1.cxx:538
 AliPHOSTrackSegmentMakerv1.cxx:539
 AliPHOSTrackSegmentMakerv1.cxx:540
 AliPHOSTrackSegmentMakerv1.cxx:541
 AliPHOSTrackSegmentMakerv1.cxx:542
 AliPHOSTrackSegmentMakerv1.cxx:543
 AliPHOSTrackSegmentMakerv1.cxx:544
 AliPHOSTrackSegmentMakerv1.cxx:545
 AliPHOSTrackSegmentMakerv1.cxx:546
 AliPHOSTrackSegmentMakerv1.cxx:547
 AliPHOSTrackSegmentMakerv1.cxx:548
 AliPHOSTrackSegmentMakerv1.cxx:549
 AliPHOSTrackSegmentMakerv1.cxx:550
 AliPHOSTrackSegmentMakerv1.cxx:551
 AliPHOSTrackSegmentMakerv1.cxx:552
 AliPHOSTrackSegmentMakerv1.cxx:553
 AliPHOSTrackSegmentMakerv1.cxx:554
 AliPHOSTrackSegmentMakerv1.cxx:555
 AliPHOSTrackSegmentMakerv1.cxx:556
 AliPHOSTrackSegmentMakerv1.cxx:557
 AliPHOSTrackSegmentMakerv1.cxx:558
 AliPHOSTrackSegmentMakerv1.cxx:559
 AliPHOSTrackSegmentMakerv1.cxx:560
 AliPHOSTrackSegmentMakerv1.cxx:561
 AliPHOSTrackSegmentMakerv1.cxx:562
 AliPHOSTrackSegmentMakerv1.cxx:563
 AliPHOSTrackSegmentMakerv1.cxx:564
 AliPHOSTrackSegmentMakerv1.cxx:565
 AliPHOSTrackSegmentMakerv1.cxx:566
 AliPHOSTrackSegmentMakerv1.cxx:567
 AliPHOSTrackSegmentMakerv1.cxx:568
 AliPHOSTrackSegmentMakerv1.cxx:569
 AliPHOSTrackSegmentMakerv1.cxx:570
 AliPHOSTrackSegmentMakerv1.cxx:571
 AliPHOSTrackSegmentMakerv1.cxx:572
 AliPHOSTrackSegmentMakerv1.cxx:573
 AliPHOSTrackSegmentMakerv1.cxx:574
 AliPHOSTrackSegmentMakerv1.cxx:575
 AliPHOSTrackSegmentMakerv1.cxx:576
 AliPHOSTrackSegmentMakerv1.cxx:577
 AliPHOSTrackSegmentMakerv1.cxx:578
 AliPHOSTrackSegmentMakerv1.cxx:579
 AliPHOSTrackSegmentMakerv1.cxx:580
 AliPHOSTrackSegmentMakerv1.cxx:581
 AliPHOSTrackSegmentMakerv1.cxx:582
 AliPHOSTrackSegmentMakerv1.cxx:583
 AliPHOSTrackSegmentMakerv1.cxx:584
 AliPHOSTrackSegmentMakerv1.cxx:585
 AliPHOSTrackSegmentMakerv1.cxx:586
 AliPHOSTrackSegmentMakerv1.cxx:587
 AliPHOSTrackSegmentMakerv1.cxx:588
 AliPHOSTrackSegmentMakerv1.cxx:589
 AliPHOSTrackSegmentMakerv1.cxx:590
 AliPHOSTrackSegmentMakerv1.cxx:591
 AliPHOSTrackSegmentMakerv1.cxx:592
 AliPHOSTrackSegmentMakerv1.cxx:593
 AliPHOSTrackSegmentMakerv1.cxx:594
 AliPHOSTrackSegmentMakerv1.cxx:595
 AliPHOSTrackSegmentMakerv1.cxx:596
 AliPHOSTrackSegmentMakerv1.cxx:597
 AliPHOSTrackSegmentMakerv1.cxx:598
 AliPHOSTrackSegmentMakerv1.cxx:599
 AliPHOSTrackSegmentMakerv1.cxx:600
 AliPHOSTrackSegmentMakerv1.cxx:601
 AliPHOSTrackSegmentMakerv1.cxx:602
 AliPHOSTrackSegmentMakerv1.cxx:603
 AliPHOSTrackSegmentMakerv1.cxx:604
 AliPHOSTrackSegmentMakerv1.cxx:605
 AliPHOSTrackSegmentMakerv1.cxx:606
 AliPHOSTrackSegmentMakerv1.cxx:607
 AliPHOSTrackSegmentMakerv1.cxx:608
 AliPHOSTrackSegmentMakerv1.cxx:609
 AliPHOSTrackSegmentMakerv1.cxx:610
 AliPHOSTrackSegmentMakerv1.cxx:611
 AliPHOSTrackSegmentMakerv1.cxx:612
 AliPHOSTrackSegmentMakerv1.cxx:613
 AliPHOSTrackSegmentMakerv1.cxx:614
 AliPHOSTrackSegmentMakerv1.cxx:615
 AliPHOSTrackSegmentMakerv1.cxx:616
 AliPHOSTrackSegmentMakerv1.cxx:617
 AliPHOSTrackSegmentMakerv1.cxx:618
 AliPHOSTrackSegmentMakerv1.cxx:619
 AliPHOSTrackSegmentMakerv1.cxx:620
 AliPHOSTrackSegmentMakerv1.cxx:621
 AliPHOSTrackSegmentMakerv1.cxx:622
 AliPHOSTrackSegmentMakerv1.cxx:623
 AliPHOSTrackSegmentMakerv1.cxx:624
 AliPHOSTrackSegmentMakerv1.cxx:625
 AliPHOSTrackSegmentMakerv1.cxx:626
 AliPHOSTrackSegmentMakerv1.cxx:627
 AliPHOSTrackSegmentMakerv1.cxx:628
 AliPHOSTrackSegmentMakerv1.cxx:629
 AliPHOSTrackSegmentMakerv1.cxx:630
 AliPHOSTrackSegmentMakerv1.cxx:631
 AliPHOSTrackSegmentMakerv1.cxx:632
 AliPHOSTrackSegmentMakerv1.cxx:633
 AliPHOSTrackSegmentMakerv1.cxx:634
 AliPHOSTrackSegmentMakerv1.cxx:635
 AliPHOSTrackSegmentMakerv1.cxx:636
 AliPHOSTrackSegmentMakerv1.cxx:637
 AliPHOSTrackSegmentMakerv1.cxx:638
 AliPHOSTrackSegmentMakerv1.cxx:639
 AliPHOSTrackSegmentMakerv1.cxx:640
 AliPHOSTrackSegmentMakerv1.cxx:641
 AliPHOSTrackSegmentMakerv1.cxx:642
 AliPHOSTrackSegmentMakerv1.cxx:643
 AliPHOSTrackSegmentMakerv1.cxx:644
 AliPHOSTrackSegmentMakerv1.cxx:645
 AliPHOSTrackSegmentMakerv1.cxx:646
 AliPHOSTrackSegmentMakerv1.cxx:647
 AliPHOSTrackSegmentMakerv1.cxx:648
 AliPHOSTrackSegmentMakerv1.cxx:649
 AliPHOSTrackSegmentMakerv1.cxx:650
 AliPHOSTrackSegmentMakerv1.cxx:651
 AliPHOSTrackSegmentMakerv1.cxx:652
 AliPHOSTrackSegmentMakerv1.cxx:653
 AliPHOSTrackSegmentMakerv1.cxx:654
 AliPHOSTrackSegmentMakerv1.cxx:655
 AliPHOSTrackSegmentMakerv1.cxx:656
 AliPHOSTrackSegmentMakerv1.cxx:657
 AliPHOSTrackSegmentMakerv1.cxx:658
 AliPHOSTrackSegmentMakerv1.cxx:659
 AliPHOSTrackSegmentMakerv1.cxx:660
 AliPHOSTrackSegmentMakerv1.cxx:661
 AliPHOSTrackSegmentMakerv1.cxx:662
 AliPHOSTrackSegmentMakerv1.cxx:663
 AliPHOSTrackSegmentMakerv1.cxx:664
 AliPHOSTrackSegmentMakerv1.cxx:665
 AliPHOSTrackSegmentMakerv1.cxx:666
 AliPHOSTrackSegmentMakerv1.cxx:667
 AliPHOSTrackSegmentMakerv1.cxx:668
 AliPHOSTrackSegmentMakerv1.cxx:669
 AliPHOSTrackSegmentMakerv1.cxx:670
 AliPHOSTrackSegmentMakerv1.cxx:671
 AliPHOSTrackSegmentMakerv1.cxx:672
 AliPHOSTrackSegmentMakerv1.cxx:673
 AliPHOSTrackSegmentMakerv1.cxx:674
 AliPHOSTrackSegmentMakerv1.cxx:675
 AliPHOSTrackSegmentMakerv1.cxx:676
 AliPHOSTrackSegmentMakerv1.cxx:677
 AliPHOSTrackSegmentMakerv1.cxx:678
 AliPHOSTrackSegmentMakerv1.cxx:679
 AliPHOSTrackSegmentMakerv1.cxx:680
 AliPHOSTrackSegmentMakerv1.cxx:681
 AliPHOSTrackSegmentMakerv1.cxx:682
 AliPHOSTrackSegmentMakerv1.cxx:683
 AliPHOSTrackSegmentMakerv1.cxx:684
 AliPHOSTrackSegmentMakerv1.cxx:685
 AliPHOSTrackSegmentMakerv1.cxx:686
 AliPHOSTrackSegmentMakerv1.cxx:687
 AliPHOSTrackSegmentMakerv1.cxx:688
 AliPHOSTrackSegmentMakerv1.cxx:689
 AliPHOSTrackSegmentMakerv1.cxx:690
 AliPHOSTrackSegmentMakerv1.cxx:691
 AliPHOSTrackSegmentMakerv1.cxx:692
 AliPHOSTrackSegmentMakerv1.cxx:693
 AliPHOSTrackSegmentMakerv1.cxx:694
 AliPHOSTrackSegmentMakerv1.cxx:695
 AliPHOSTrackSegmentMakerv1.cxx:696
 AliPHOSTrackSegmentMakerv1.cxx:697
 AliPHOSTrackSegmentMakerv1.cxx:698
 AliPHOSTrackSegmentMakerv1.cxx:699