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

// AOD track cuts for B2
// author: Eulogio Serradilla <eulogio.serradilla@cern.ch>

#include <TMath.h>
#include <TString.h>
#include <TVector3.h>
#include <AliPID.h>
#include <AliAODEvent.h>
#include <AliAODMCParticle.h>
#include <AliAODTrack.h>
#include <AliAODVertex.h>
#include "AliLnAODtrackCuts.h"

ClassImp(AliLnAODtrackCuts)

AliLnAODtrackCuts::AliLnAODtrackCuts()
: TObject()
, fTrackSel("its_tpc_dca")
, fMaxDCAxy(1)
, fMaxDCAz(2)
, fMaxNSigma(3)
, fMaxEta(0.8)
, fTPCXRows(0)
, fMinTPCnClsOrXRows(70)
, fTOFmatch(0)
{
//
// constructor
}

AliLnAODtrackCuts::~AliLnAODtrackCuts()
{
//
// virtual destructor
}

void AliLnAODtrackCuts::SetSelectionCriteria(const TString& trksel)
{
//
// set track selection criteria
//
	fTrackSel = trksel;
	fTrackSel.ToLower();
	fTOFmatch = (fTrackSel.Contains("tof")) ? kTRUE : kFALSE;
}

Bool_t AliLnAODtrackCuts::IsWithinGeoAcceptance(const AliAODMCParticle* prt) const
{
//
// is particle within the geometrical acceptance?
//
	if( TMath::Abs(prt->Eta()) < fMaxEta ) return kTRUE;
	
	return kFALSE;
}

Bool_t AliLnAODtrackCuts::IsWithinGeoAcceptance(const AliAODTrack* trk) const
{
//
// is track within the geometrical acceptance?
//
//
	if( TMath::Abs(trk->Eta()) < fMaxEta ) return kTRUE;
	
	return kFALSE;
}

Bool_t AliLnAODtrackCuts::IsWithinGeoAcceptance(Double_t p[3]) const
{
//
// is track within the geometrical acceptance?
//
//
	TVector3 trk(p[0],p[1],p[2]);
	if( TMath::Abs(trk.Eta()) < fMaxEta ) return kTRUE;
	
	return kFALSE;
}

Bool_t AliLnAODtrackCuts::IsKinkDaughter(const AliAODTrack* trk) const
{
//
// is this track a kink daughter?
//
//
	AliAODVertex* vtx = trk->GetProdVertex();
	
	if(vtx == 0 ) return kFALSE;
	if(vtx->GetType() == AliAODVertex::kKink) return kTRUE;
	
	return kFALSE;
}

Double_t AliLnAODtrackCuts::GetNTPCXRowsOverFindable(const AliAODTrack* trk) const
{
//
// number of TPC crossed rows over findable
//
	if(trk->GetTPCNclsF() <= 0) return 1;
	
	return static_cast<Double_t>(trk->GetTPCNCrossedRows())/static_cast<Double_t>(trk->GetTPCNclsF());
}

Bool_t AliLnAODtrackCuts::AcceptItsTpcNSigma(const AliAODTrack* trk, Double_t b[2], Double_t bCov[3]) const
{
//
// Check ITS-TPC nsigma base cuts
//
	if(!trk->IsOn(AliAODTrack::kITSrefit)) return kFALSE;
	if(trk->GetITSNcls()<2) return kFALSE;
	//if(trk->GetITSchi2PerCluster()>36) return kFALSE;
	
	if(!trk->TestFilterBit(AliAODTrack::kTrkTPCOnly)) return kFALSE;
	if(!trk->IsOn(AliAODTrack::kTPCrefit) ) return kFALSE;
	
	if(this->IsKinkDaughter(trk)) return kFALSE;
	
	if(fTPCXRows)
	{
		if(trk->GetTPCNCrossedRows()<fMinTPCnClsOrXRows) return kFALSE;
		if(this->GetNTPCXRowsOverFindable(trk)< 0.8 ) return kFALSE;
	}
	else
	{
		if(trk->GetTPCNcls()<fMinTPCnClsOrXRows) return kFALSE;
	}
	
	//if(trk->GetTPCchi2Global()>36) return kFALSE;
	
	if(this->GetNSigmaToVertex(b, bCov) > fMaxNSigma) return kFALSE;
	
	return kTRUE;
}

Bool_t AliLnAODtrackCuts::AcceptItsTpcDCA(const AliAODTrack* trk, Double_t b[2]) const
{
//
// Check ITS-TPC-DCA base cuts
//
	if(!trk->IsOn(AliAODTrack::kITSrefit) ) return kFALSE;
	if(trk->GetITSNcls()<2) return kFALSE;
	//if(trk->GetITSchi2PerCluster()>36) return kFALSE;
	
	if(!trk->IsOn(AliAODTrack::kTPCrefit) ) return kFALSE;
	if(!trk->TestFilterBit(AliAODTrack::kTrkTPCOnly)) return kFALSE;
	
	if(this->IsKinkDaughter(trk)) return kFALSE;
	
	if(fTPCXRows)
	{
		if(trk->GetTPCNCrossedRows()<fMinTPCnClsOrXRows) return kFALSE;
		if(this->GetNTPCXRowsOverFindable(trk)< 0.8 ) return kFALSE;
	}
	else
	{
		if(trk->GetTPCNcls()<fMinTPCnClsOrXRows) return kFALSE;
	}
	
	//if(trk->GetTPCchi2Global()>36) return kFALSE;
	
	if(TMath::Abs(b[0]) > fMaxDCAxy) return kFALSE;
	if(TMath::Abs(b[1]) > fMaxDCAz) return kFALSE;
	
	return kTRUE;
}

Bool_t AliLnAODtrackCuts::AcceptItsTpcStdCut(const AliAODTrack* trk, Double_t b[2]) const
{
//
// standard cuts with very loose DCA
//
	if(!trk->TestFilterBit(AliAODTrack::kTrkGlobalNoDCA)) return kFALSE;
	
	if(trk->GetTPCNcls()<70) return kFALSE;
	
	if(TMath::Abs(b[0]) > fMaxDCAxy) return kFALSE;
	if(TMath::Abs(b[1]) > fMaxDCAz) return kFALSE;
	
	return kTRUE;
}

Bool_t AliLnAODtrackCuts::AcceptTOF(const AliAODTrack* trk) const
{
//
// check TOF match signal
//
	if( !trk->IsOn(AliAODTrack::kTOFout) || !trk->IsOn(AliAODTrack::kTIME)) return kFALSE;
	//if( trk->GetIntegratedLength() < 350) return kFALSE;
	if( this->GetIntegratedLength(trk) < 350) return kFALSE;
	if( trk->GetTOFsignal() < 1e-6) return kFALSE;
	
	return kTRUE;
}

Bool_t AliLnAODtrackCuts::AcceptTrack(const AliAODTrack* trk, Double_t b[2], Double_t bCov[3]) const
{
//
// check if the tracks fulfill the track selection criteria
// from a predefined set of track cuts
//
	if(fTrackSel == "its_tpc_dca")
	{
		if(!this->AcceptItsTpcDCA(trk, b)) return kFALSE;
	}
	else if(fTrackSel == "its_tpc_dca_spd1")
	{
		if(!this->AcceptItsTpcDCA(trk, b)) return kFALSE;
		if(!trk->HasPointOnITSLayer(0) ) return kFALSE;
	}
	else if(fTrackSel == "its_tpc_dca_spd" || fTrackSel == "its_tpc_dca_spd2")
	{
		if(!this->AcceptItsTpcDCA(trk, b)) return kFALSE;
		if(!trk->HasPointOnITSLayer(0) && !trk->HasPointOnITSLayer(1) ) return kFALSE;
	}
	else if(fTrackSel == "its_tpc_tof_nsigma")
	{
		if(!this->AcceptItsTpcNSigma(trk, b, bCov)) return kFALSE;
		if(!this->AcceptTOF(trk)) return kFALSE;
	}
	else if(fTrackSel == "its_tpc_tof_nsigma_spd" || fTrackSel == "its_tpc_tof_nsigma_spd2")
	{
		if(!this->AcceptItsTpcNSigma(trk, b, bCov)) return kFALSE;
		if(!this->AcceptTOF(trk)) return kFALSE;
		if(!trk->HasPointOnITSLayer(0) && !trk->HasPointOnITSLayer(1) ) return kFALSE;
	}
	else if(fTrackSel == "its_tpc_tof_dca")
	{
		if(!this->AcceptItsTpcDCA(trk, b)) return kFALSE;
		if(!this->AcceptTOF(trk)) return kFALSE;
	}
	else if(fTrackSel == "its_tpc_tof_dca_spd1")
	{
		if(!this->AcceptItsTpcDCA(trk, b)) return kFALSE;
		if(!this->AcceptTOF(trk)) return kFALSE;
		if(!trk->HasPointOnITSLayer(0) ) return kFALSE;
	}
	else if(fTrackSel == "its_tpc_tof_dca_spd" || fTrackSel == "its_tpc_tof_dca_spd2")
	{
		if(!this->AcceptItsTpcDCA(trk, b)) return kFALSE;
		if(!this->AcceptTOF(trk)) return kFALSE;
		if(!trk->HasPointOnITSLayer(0) && !trk->HasPointOnITSLayer(1) ) return kFALSE;
	}
	else if(fTrackSel == "std_its_tpc_dca")
	{
		if(!this->AcceptItsTpcStdCut(trk, b)) return kFALSE;
	}
	else if(fTrackSel == "std_its_tpc_tof_dca")
	{
		if(!this->AcceptItsTpcStdCut(trk, b)) return kFALSE;
		if(!this->AcceptTOF(trk)) return kFALSE;
	}
	else if(fTrackSel == "std_its_tpc_2010" || fTrackSel == "std_its_tpc_2011")
	{
		if(!trk->TestFilterBit(AliAODTrack::kTrkGlobal)) return kFALSE;
		if(trk->GetTPCNcls()<70) return kFALSE;
	}
	else if(fTrackSel == "std_its_tpc_tof_2010" || fTrackSel == "std_its_tpc_tof_2011")
	{
		if(!trk->TestFilterBit(AliAODTrack::kTrkGlobal)) return kFALSE;
		if(trk->GetTPCNcls()<70) return kFALSE;
		if(!this->AcceptTOF(trk)) return kFALSE;
	}
	else
	{
		// default to standard cuts with tight DCA cut
		return trk->TestFilterBit(AliAODTrack::kTrkGlobal);
	}
	
	return kTRUE;
}

Double_t AliLnAODtrackCuts::GetIntegratedLength(const AliAODTrack* trk, Int_t pid) const
{
//
// track length workaround (cm)
//
	Double_t times[10];
	trk->GetIntegratedTimes(times);
	
	Double_t m = AliPID::ParticleMass(AliPID::kElectron);
	Double_t t = times[0];
	Double_t p = (pid > AliPID::kTriton) ? 2.*trk->P() : trk->P();
	Double_t c = 2.99792458e-2; // cm/ps
	Double_t beta = p/TMath::Sqrt(p*p+m*m);
	
	return c*t*beta;
}

Double_t AliLnAODtrackCuts::GetNSigmaToVertex(Double_t b[2], Double_t bCov[3]) const
{
//
// Number of sigma to the vertex (adapted from AliESDtrackCuts.cxx)
//
  //Double_t b[2];
  Double_t bRes[2];
  //Double_t bCov[3];

  //if(!this->GetImpactParameters(trk, b, b, bCov)) return 1.e+6;
  
  if (bCov[0]<=0 || bCov[2]<=0) {
    AliDebugClass(1, "Estimated b resolution lower or equal zero!");
    bCov[0]=0; bCov[2]=0;
  }
  bRes[0] = TMath::Sqrt(bCov[0]);
  bRes[1] = TMath::Sqrt(bCov[2]);

  // -----------------------------------
  // How to get to a n-sigma cut?
  //
  // The accumulated statistics from 0 to d is
  //
  // ->  Erf(d/Sqrt(2)) for a 1-dim gauss (d = n_sigma)
  // ->  1 - Exp(-d**2) for a 2-dim gauss (d*d = dx*dx + dy*dy != n_sigma)
  //
  // It means that for a 2-dim gauss: n_sigma(d) = Sqrt(2)*ErfInv(1 - Exp((-d**2)/2)
  // Can this be expressed in a different way?

  if (bRes[0] == 0 || bRes[1] ==0)
    return -1;

  Double_t d = TMath::Sqrt(TMath::Power(b[0]/bRes[0],2) + TMath::Power(b[1]/bRes[1],2));

  // work around precision problem
  // if d is too big, TMath::Exp(...) gets 0, and TMath::ErfInverse(1) that should be infinite, gets 0 :(
  // 1e-15 corresponds to nsigma ~ 7.7
  if (TMath::Exp(-d * d / 2) < 1e-15)
    return 1000;

  Double_t nSigma = TMath::ErfInverse(1 - TMath::Exp(-d * d / 2)) * TMath::Sqrt(2);
  return nSigma;
}
 AliLnAODtrackCuts.cxx:1
 AliLnAODtrackCuts.cxx:2
 AliLnAODtrackCuts.cxx:3
 AliLnAODtrackCuts.cxx:4
 AliLnAODtrackCuts.cxx:5
 AliLnAODtrackCuts.cxx:6
 AliLnAODtrackCuts.cxx:7
 AliLnAODtrackCuts.cxx:8
 AliLnAODtrackCuts.cxx:9
 AliLnAODtrackCuts.cxx:10
 AliLnAODtrackCuts.cxx:11
 AliLnAODtrackCuts.cxx:12
 AliLnAODtrackCuts.cxx:13
 AliLnAODtrackCuts.cxx:14
 AliLnAODtrackCuts.cxx:15
 AliLnAODtrackCuts.cxx:16
 AliLnAODtrackCuts.cxx:17
 AliLnAODtrackCuts.cxx:18
 AliLnAODtrackCuts.cxx:19
 AliLnAODtrackCuts.cxx:20
 AliLnAODtrackCuts.cxx:21
 AliLnAODtrackCuts.cxx:22
 AliLnAODtrackCuts.cxx:23
 AliLnAODtrackCuts.cxx:24
 AliLnAODtrackCuts.cxx:25
 AliLnAODtrackCuts.cxx:26
 AliLnAODtrackCuts.cxx:27
 AliLnAODtrackCuts.cxx:28
 AliLnAODtrackCuts.cxx:29
 AliLnAODtrackCuts.cxx:30
 AliLnAODtrackCuts.cxx:31
 AliLnAODtrackCuts.cxx:32
 AliLnAODtrackCuts.cxx:33
 AliLnAODtrackCuts.cxx:34
 AliLnAODtrackCuts.cxx:35
 AliLnAODtrackCuts.cxx:36
 AliLnAODtrackCuts.cxx:37
 AliLnAODtrackCuts.cxx:38
 AliLnAODtrackCuts.cxx:39
 AliLnAODtrackCuts.cxx:40
 AliLnAODtrackCuts.cxx:41
 AliLnAODtrackCuts.cxx:42
 AliLnAODtrackCuts.cxx:43
 AliLnAODtrackCuts.cxx:44
 AliLnAODtrackCuts.cxx:45
 AliLnAODtrackCuts.cxx:46
 AliLnAODtrackCuts.cxx:47
 AliLnAODtrackCuts.cxx:48
 AliLnAODtrackCuts.cxx:49
 AliLnAODtrackCuts.cxx:50
 AliLnAODtrackCuts.cxx:51
 AliLnAODtrackCuts.cxx:52
 AliLnAODtrackCuts.cxx:53
 AliLnAODtrackCuts.cxx:54
 AliLnAODtrackCuts.cxx:55
 AliLnAODtrackCuts.cxx:56
 AliLnAODtrackCuts.cxx:57
 AliLnAODtrackCuts.cxx:58
 AliLnAODtrackCuts.cxx:59
 AliLnAODtrackCuts.cxx:60
 AliLnAODtrackCuts.cxx:61
 AliLnAODtrackCuts.cxx:62
 AliLnAODtrackCuts.cxx:63
 AliLnAODtrackCuts.cxx:64
 AliLnAODtrackCuts.cxx:65
 AliLnAODtrackCuts.cxx:66
 AliLnAODtrackCuts.cxx:67
 AliLnAODtrackCuts.cxx:68
 AliLnAODtrackCuts.cxx:69
 AliLnAODtrackCuts.cxx:70
 AliLnAODtrackCuts.cxx:71
 AliLnAODtrackCuts.cxx:72
 AliLnAODtrackCuts.cxx:73
 AliLnAODtrackCuts.cxx:74
 AliLnAODtrackCuts.cxx:75
 AliLnAODtrackCuts.cxx:76
 AliLnAODtrackCuts.cxx:77
 AliLnAODtrackCuts.cxx:78
 AliLnAODtrackCuts.cxx:79
 AliLnAODtrackCuts.cxx:80
 AliLnAODtrackCuts.cxx:81
 AliLnAODtrackCuts.cxx:82
 AliLnAODtrackCuts.cxx:83
 AliLnAODtrackCuts.cxx:84
 AliLnAODtrackCuts.cxx:85
 AliLnAODtrackCuts.cxx:86
 AliLnAODtrackCuts.cxx:87
 AliLnAODtrackCuts.cxx:88
 AliLnAODtrackCuts.cxx:89
 AliLnAODtrackCuts.cxx:90
 AliLnAODtrackCuts.cxx:91
 AliLnAODtrackCuts.cxx:92
 AliLnAODtrackCuts.cxx:93
 AliLnAODtrackCuts.cxx:94
 AliLnAODtrackCuts.cxx:95
 AliLnAODtrackCuts.cxx:96
 AliLnAODtrackCuts.cxx:97
 AliLnAODtrackCuts.cxx:98
 AliLnAODtrackCuts.cxx:99
 AliLnAODtrackCuts.cxx:100
 AliLnAODtrackCuts.cxx:101
 AliLnAODtrackCuts.cxx:102
 AliLnAODtrackCuts.cxx:103
 AliLnAODtrackCuts.cxx:104
 AliLnAODtrackCuts.cxx:105
 AliLnAODtrackCuts.cxx:106
 AliLnAODtrackCuts.cxx:107
 AliLnAODtrackCuts.cxx:108
 AliLnAODtrackCuts.cxx:109
 AliLnAODtrackCuts.cxx:110
 AliLnAODtrackCuts.cxx:111
 AliLnAODtrackCuts.cxx:112
 AliLnAODtrackCuts.cxx:113
 AliLnAODtrackCuts.cxx:114
 AliLnAODtrackCuts.cxx:115
 AliLnAODtrackCuts.cxx:116
 AliLnAODtrackCuts.cxx:117
 AliLnAODtrackCuts.cxx:118
 AliLnAODtrackCuts.cxx:119
 AliLnAODtrackCuts.cxx:120
 AliLnAODtrackCuts.cxx:121
 AliLnAODtrackCuts.cxx:122
 AliLnAODtrackCuts.cxx:123
 AliLnAODtrackCuts.cxx:124
 AliLnAODtrackCuts.cxx:125
 AliLnAODtrackCuts.cxx:126
 AliLnAODtrackCuts.cxx:127
 AliLnAODtrackCuts.cxx:128
 AliLnAODtrackCuts.cxx:129
 AliLnAODtrackCuts.cxx:130
 AliLnAODtrackCuts.cxx:131
 AliLnAODtrackCuts.cxx:132
 AliLnAODtrackCuts.cxx:133
 AliLnAODtrackCuts.cxx:134
 AliLnAODtrackCuts.cxx:135
 AliLnAODtrackCuts.cxx:136
 AliLnAODtrackCuts.cxx:137
 AliLnAODtrackCuts.cxx:138
 AliLnAODtrackCuts.cxx:139
 AliLnAODtrackCuts.cxx:140
 AliLnAODtrackCuts.cxx:141
 AliLnAODtrackCuts.cxx:142
 AliLnAODtrackCuts.cxx:143
 AliLnAODtrackCuts.cxx:144
 AliLnAODtrackCuts.cxx:145
 AliLnAODtrackCuts.cxx:146
 AliLnAODtrackCuts.cxx:147
 AliLnAODtrackCuts.cxx:148
 AliLnAODtrackCuts.cxx:149
 AliLnAODtrackCuts.cxx:150
 AliLnAODtrackCuts.cxx:151
 AliLnAODtrackCuts.cxx:152
 AliLnAODtrackCuts.cxx:153
 AliLnAODtrackCuts.cxx:154
 AliLnAODtrackCuts.cxx:155
 AliLnAODtrackCuts.cxx:156
 AliLnAODtrackCuts.cxx:157
 AliLnAODtrackCuts.cxx:158
 AliLnAODtrackCuts.cxx:159
 AliLnAODtrackCuts.cxx:160
 AliLnAODtrackCuts.cxx:161
 AliLnAODtrackCuts.cxx:162
 AliLnAODtrackCuts.cxx:163
 AliLnAODtrackCuts.cxx:164
 AliLnAODtrackCuts.cxx:165
 AliLnAODtrackCuts.cxx:166
 AliLnAODtrackCuts.cxx:167
 AliLnAODtrackCuts.cxx:168
 AliLnAODtrackCuts.cxx:169
 AliLnAODtrackCuts.cxx:170
 AliLnAODtrackCuts.cxx:171
 AliLnAODtrackCuts.cxx:172
 AliLnAODtrackCuts.cxx:173
 AliLnAODtrackCuts.cxx:174
 AliLnAODtrackCuts.cxx:175
 AliLnAODtrackCuts.cxx:176
 AliLnAODtrackCuts.cxx:177
 AliLnAODtrackCuts.cxx:178
 AliLnAODtrackCuts.cxx:179
 AliLnAODtrackCuts.cxx:180
 AliLnAODtrackCuts.cxx:181
 AliLnAODtrackCuts.cxx:182
 AliLnAODtrackCuts.cxx:183
 AliLnAODtrackCuts.cxx:184
 AliLnAODtrackCuts.cxx:185
 AliLnAODtrackCuts.cxx:186
 AliLnAODtrackCuts.cxx:187
 AliLnAODtrackCuts.cxx:188
 AliLnAODtrackCuts.cxx:189
 AliLnAODtrackCuts.cxx:190
 AliLnAODtrackCuts.cxx:191
 AliLnAODtrackCuts.cxx:192
 AliLnAODtrackCuts.cxx:193
 AliLnAODtrackCuts.cxx:194
 AliLnAODtrackCuts.cxx:195
 AliLnAODtrackCuts.cxx:196
 AliLnAODtrackCuts.cxx:197
 AliLnAODtrackCuts.cxx:198
 AliLnAODtrackCuts.cxx:199
 AliLnAODtrackCuts.cxx:200
 AliLnAODtrackCuts.cxx:201
 AliLnAODtrackCuts.cxx:202
 AliLnAODtrackCuts.cxx:203
 AliLnAODtrackCuts.cxx:204
 AliLnAODtrackCuts.cxx:205
 AliLnAODtrackCuts.cxx:206
 AliLnAODtrackCuts.cxx:207
 AliLnAODtrackCuts.cxx:208
 AliLnAODtrackCuts.cxx:209
 AliLnAODtrackCuts.cxx:210
 AliLnAODtrackCuts.cxx:211
 AliLnAODtrackCuts.cxx:212
 AliLnAODtrackCuts.cxx:213
 AliLnAODtrackCuts.cxx:214
 AliLnAODtrackCuts.cxx:215
 AliLnAODtrackCuts.cxx:216
 AliLnAODtrackCuts.cxx:217
 AliLnAODtrackCuts.cxx:218
 AliLnAODtrackCuts.cxx:219
 AliLnAODtrackCuts.cxx:220
 AliLnAODtrackCuts.cxx:221
 AliLnAODtrackCuts.cxx:222
 AliLnAODtrackCuts.cxx:223
 AliLnAODtrackCuts.cxx:224
 AliLnAODtrackCuts.cxx:225
 AliLnAODtrackCuts.cxx:226
 AliLnAODtrackCuts.cxx:227
 AliLnAODtrackCuts.cxx:228
 AliLnAODtrackCuts.cxx:229
 AliLnAODtrackCuts.cxx:230
 AliLnAODtrackCuts.cxx:231
 AliLnAODtrackCuts.cxx:232
 AliLnAODtrackCuts.cxx:233
 AliLnAODtrackCuts.cxx:234
 AliLnAODtrackCuts.cxx:235
 AliLnAODtrackCuts.cxx:236
 AliLnAODtrackCuts.cxx:237
 AliLnAODtrackCuts.cxx:238
 AliLnAODtrackCuts.cxx:239
 AliLnAODtrackCuts.cxx:240
 AliLnAODtrackCuts.cxx:241
 AliLnAODtrackCuts.cxx:242
 AliLnAODtrackCuts.cxx:243
 AliLnAODtrackCuts.cxx:244
 AliLnAODtrackCuts.cxx:245
 AliLnAODtrackCuts.cxx:246
 AliLnAODtrackCuts.cxx:247
 AliLnAODtrackCuts.cxx:248
 AliLnAODtrackCuts.cxx:249
 AliLnAODtrackCuts.cxx:250
 AliLnAODtrackCuts.cxx:251
 AliLnAODtrackCuts.cxx:252
 AliLnAODtrackCuts.cxx:253
 AliLnAODtrackCuts.cxx:254
 AliLnAODtrackCuts.cxx:255
 AliLnAODtrackCuts.cxx:256
 AliLnAODtrackCuts.cxx:257
 AliLnAODtrackCuts.cxx:258
 AliLnAODtrackCuts.cxx:259
 AliLnAODtrackCuts.cxx:260
 AliLnAODtrackCuts.cxx:261
 AliLnAODtrackCuts.cxx:262
 AliLnAODtrackCuts.cxx:263
 AliLnAODtrackCuts.cxx:264
 AliLnAODtrackCuts.cxx:265
 AliLnAODtrackCuts.cxx:266
 AliLnAODtrackCuts.cxx:267
 AliLnAODtrackCuts.cxx:268
 AliLnAODtrackCuts.cxx:269
 AliLnAODtrackCuts.cxx:270
 AliLnAODtrackCuts.cxx:271
 AliLnAODtrackCuts.cxx:272
 AliLnAODtrackCuts.cxx:273
 AliLnAODtrackCuts.cxx:274
 AliLnAODtrackCuts.cxx:275
 AliLnAODtrackCuts.cxx:276
 AliLnAODtrackCuts.cxx:277
 AliLnAODtrackCuts.cxx:278
 AliLnAODtrackCuts.cxx:279
 AliLnAODtrackCuts.cxx:280
 AliLnAODtrackCuts.cxx:281
 AliLnAODtrackCuts.cxx:282
 AliLnAODtrackCuts.cxx:283
 AliLnAODtrackCuts.cxx:284
 AliLnAODtrackCuts.cxx:285
 AliLnAODtrackCuts.cxx:286
 AliLnAODtrackCuts.cxx:287
 AliLnAODtrackCuts.cxx:288
 AliLnAODtrackCuts.cxx:289
 AliLnAODtrackCuts.cxx:290
 AliLnAODtrackCuts.cxx:291
 AliLnAODtrackCuts.cxx:292
 AliLnAODtrackCuts.cxx:293
 AliLnAODtrackCuts.cxx:294
 AliLnAODtrackCuts.cxx:295
 AliLnAODtrackCuts.cxx:296
 AliLnAODtrackCuts.cxx:297
 AliLnAODtrackCuts.cxx:298
 AliLnAODtrackCuts.cxx:299
 AliLnAODtrackCuts.cxx:300
 AliLnAODtrackCuts.cxx:301
 AliLnAODtrackCuts.cxx:302
 AliLnAODtrackCuts.cxx:303
 AliLnAODtrackCuts.cxx:304
 AliLnAODtrackCuts.cxx:305
 AliLnAODtrackCuts.cxx:306
 AliLnAODtrackCuts.cxx:307
 AliLnAODtrackCuts.cxx:308
 AliLnAODtrackCuts.cxx:309
 AliLnAODtrackCuts.cxx:310
 AliLnAODtrackCuts.cxx:311
 AliLnAODtrackCuts.cxx:312
 AliLnAODtrackCuts.cxx:313
 AliLnAODtrackCuts.cxx:314
 AliLnAODtrackCuts.cxx:315
 AliLnAODtrackCuts.cxx:316
 AliLnAODtrackCuts.cxx:317
 AliLnAODtrackCuts.cxx:318
 AliLnAODtrackCuts.cxx:319
 AliLnAODtrackCuts.cxx:320
 AliLnAODtrackCuts.cxx:321
 AliLnAODtrackCuts.cxx:322
 AliLnAODtrackCuts.cxx:323
 AliLnAODtrackCuts.cxx:324
 AliLnAODtrackCuts.cxx:325
 AliLnAODtrackCuts.cxx:326
 AliLnAODtrackCuts.cxx:327
 AliLnAODtrackCuts.cxx:328
 AliLnAODtrackCuts.cxx:329
 AliLnAODtrackCuts.cxx:330
 AliLnAODtrackCuts.cxx:331
 AliLnAODtrackCuts.cxx:332
 AliLnAODtrackCuts.cxx:333
 AliLnAODtrackCuts.cxx:334
 AliLnAODtrackCuts.cxx:335
 AliLnAODtrackCuts.cxx:336
 AliLnAODtrackCuts.cxx:337
 AliLnAODtrackCuts.cxx:338
 AliLnAODtrackCuts.cxx:339
 AliLnAODtrackCuts.cxx:340
 AliLnAODtrackCuts.cxx:341
 AliLnAODtrackCuts.cxx:342
 AliLnAODtrackCuts.cxx:343
 AliLnAODtrackCuts.cxx:344
 AliLnAODtrackCuts.cxx:345
 AliLnAODtrackCuts.cxx:346