ROOT logo
/////////////////////////////////////////////////////////////////////////////
//                                                                         //
// AliFemtoShareQualityPairCut - a pair cut which checks for some pair     //
// qualities that attempt to identify slit/doubly reconstructed tracks     //
//                                                                         //
/////////////////////////////////////////////////////////////////////////////
/***************************************************************************
 *
 * $Id: AliFemtoShareQualityPairCut.cxx 50722 2011-07-21 15:18:38Z akisiel $
 *
 * Author: Adam Kisiel, Ohio State, kisiel@mps.ohio-state.edu
 ***************************************************************************
 *
 * Description: part of STAR HBT Framework: AliFemtoMaker package
 *   a cut to remove "shared" and "split" pairs
 *
 ***************************************************************************
 *
 *
 **************************************************************************/

#include "AliFemtoV0TrackPairCut.h"
#include <string>
#include <cstdio>

#ifdef __ROOT__
ClassImp(AliFemtoV0TrackPairCut)
#endif

//__________________
AliFemtoV0TrackPairCut::AliFemtoV0TrackPairCut():
  fNPairsPassed(0),
  fNPairsFailed(0),
  fV0Max(1.0),
  fShareQualityMax(1.0),
  fShareFractionMax(1.0),
  fRemoveSameLabel(0),
  fTrackTPCOnly(0),
  fDataType(kAOD),
  fDTPCMin(0),
  fDTPCExitMin(0),
  fKstarCut(0),
  fFirstParticleType(kLambda), 
  fSecondParticleType(kProton),
  fMinAvgSepTrackPos(0),
  fMinAvgSepTrackNeg(0)
{
  // Default constructor
  // Nothing to do
}
//__________________
AliFemtoV0TrackPairCut::~AliFemtoV0TrackPairCut(){
  /* no-op */
}
AliFemtoV0TrackPairCut& AliFemtoV0TrackPairCut::operator=(const AliFemtoV0TrackPairCut& cut)
{
  if (this != &cut) {
   
    AliFemtoPairCut::operator=(cut);
    fNPairsPassed = 0;
    fNPairsFailed =0;
    fV0Max = 1.0;
    fShareQualityMax = 1.0;
    fShareFractionMax = 1.0;
    fRemoveSameLabel = 0;
    fTrackTPCOnly = 0;
    fDataType = kAOD;
    fDTPCMin = 0;
    fDTPCExitMin = 0;
    fMinAvgSepTrackPos = 0;
    fMinAvgSepTrackNeg = 0;
  }

  return *this;
}
//__________________
bool AliFemtoV0TrackPairCut::Pass(const AliFemtoPair* pair){
  // Check for pairs that are possibly shared/double reconstruction

  bool temp = true;
  //Track1 - V0
  //Track2 - track

  if(!(pair->Track1()->V0() && pair->Track2()->Track()))
    {
      return false;
    }
  if(fTrackTPCOnly)
    {
      if( (-(pair->Track1()->V0()->IdNeg()+1)) ==pair->Track2()->TrackId() || (-(pair->Track1()->V0()->IdPos()+1)) ==pair->Track2()->TrackId())
	{
	  return false;
	}
    }
  else
    {
      if(pair->Track1()->V0()->IdNeg()==pair->Track2()->TrackId() || pair->Track1()->V0()->IdPos()==pair->Track2()->TrackId())
	{
	  return false;
	}
    }
  
  bool tempTPCEntrancePos = true;
  bool tempTPCEntranceNeg = true;
  bool tempTPCExitPos = true;
  bool tempTPCExitNeg = true;
  if(fDataType==kESD || fDataType==kAOD)
    {
      double distx = pair->Track1()->V0()->NominalTpcEntrancePointPos().x() - pair->Track2()->Track()->NominalTpcEntrancePoint().x();
      double disty = pair->Track1()->V0()->NominalTpcEntrancePointPos().y() - pair->Track2()->Track()->NominalTpcEntrancePoint().y();
      double distz = pair->Track1()->V0()->NominalTpcEntrancePointPos().z() - pair->Track2()->Track()->NominalTpcEntrancePoint().z();
      double distPos = sqrt(distx*distx + disty*disty + distz*distz);

      distx = pair->Track1()->V0()->NominalTpcEntrancePointNeg().x() - pair->Track2()->Track()->NominalTpcEntrancePoint().x();
      disty = pair->Track1()->V0()->NominalTpcEntrancePointNeg().y() - pair->Track2()->Track()->NominalTpcEntrancePoint().y();
      distz = pair->Track1()->V0()->NominalTpcEntrancePointNeg().z() - pair->Track2()->Track()->NominalTpcEntrancePoint().z();
      double distNeg = sqrt(distx*distx + disty*disty + distz*distz);

      double distExitX = pair->Track1()->V0()->NominalTpcExitPointPos().x() - pair->Track2()->Track()->NominalTpcExitPoint().x();
      double distExitY = pair->Track1()->V0()->NominalTpcExitPointPos().y() - pair->Track2()->Track()->NominalTpcExitPoint().y();
      double distExitZ = pair->Track1()->V0()->NominalTpcExitPointPos().z() - pair->Track2()->Track()->NominalTpcExitPoint().z();
      double distExitPos = sqrt(distExitX*distExitX + distExitY*distExitY + distExitZ*distExitZ);

      distExitX = pair->Track1()->V0()->NominalTpcExitPointNeg().x() - pair->Track2()->Track()->NominalTpcExitPoint().x();
      distExitY = pair->Track1()->V0()->NominalTpcExitPointNeg().y() - pair->Track2()->Track()->NominalTpcExitPoint().y();
      distExitZ = pair->Track1()->V0()->NominalTpcExitPointNeg().z() - pair->Track2()->Track()->NominalTpcExitPoint().z();
      double distExitNeg = sqrt(distExitX*distExitX + distExitY*distExitY + distExitZ*distExitZ);

      tempTPCEntrancePos = distPos > fDTPCMin;
      tempTPCEntranceNeg = distNeg > fDTPCMin;
      tempTPCExitPos = distExitPos > fDTPCExitMin;
      tempTPCExitNeg = distExitNeg > fDTPCExitMin;
    }
 
  if(!tempTPCEntrancePos || !tempTPCEntranceNeg || !tempTPCExitPos || !tempTPCExitNeg) return false;

  //reject merged trakcs in TPC
  

  //temp = dist > fDTPCMin;
  //koniec kopii
  //if(!temp)
  //return false;

  //kopia z AliFemtoShareQualityPairCut.cxx
  Int_t nh = 0;
  Int_t an = 0;
  Int_t ns = 0;

 
  
  if ((fShareFractionMax < 1.0) && ( fShareQualityMax < 1.0)) {
    for (unsigned int imap=0; imap<pair->Track1()->V0()->TPCclustersPos().GetNbits(); imap++) {
      // If both have clusters in the same row
      if (pair->Track1()->V0()->TPCclustersPos().TestBitNumber(imap) && 
	  pair->Track2()->Track()->TPCclusters().TestBitNumber(imap)) {
	// Do they share it ?
	if (pair->Track1()->V0()->TPCsharingPos().TestBitNumber(imap) &&
	    pair->Track2()->Track()->TPCsharing().TestBitNumber(imap))
	  {
	    //	  cout << "A shared cluster !!!" << endl;
	    //	cout << "imap idx1 idx2 " 
	    //	     << imap << " "
	    //	     << tP1idx[imap] << " " << tP2idx[imap] << endl;
	    an++;
	    nh+=2;
	    ns+=2;
	  }
	
	// Different hits on the same padrow
	else {
	  an--;
	  nh+=2;
	}
      }
      else if (pair->Track1()->V0()->TPCclustersPos().TestBitNumber(imap) ||
	       pair->Track2()->Track()->TPCclusters().TestBitNumber(imap)) {
	// One track has a hit, the other does not
	an++;
	nh++;
      }
    }
    
    Float_t hsmval = 0.0;
    Float_t hsfval = 0.0;
    
    if (nh >0) {
      hsmval = an*1.0/nh;
      hsfval = ns*1.0/nh;
    }
    //  if (hsmval > -0.4) {
    //   cout << "Pair quality: " << hsmval << " " << an << " " << nh << " " 
    //        << (pair->Track1()->Track()) << " " 
    //        << (pair->Track2()->Track()) << endl;
    //   cout << "Bits: " << pair->Track1()->Track()->TPCclusters().GetNbits() << endl;
    //  }
    //   if (hsfval > 0.0) {
    //     cout << "Pair sharity: " << hsfval << " " << ns << " " << nh << "    " << hsmval << " " << an << " " << nh << endl;
    //   }
    
    temp = (hsmval < fShareQualityMax) && (hsfval < fShareFractionMax);
    if(!temp) return false;

    nh = 0;
    an = 0;
    ns = 0;

    for (unsigned int imap=0; imap<pair->Track1()->V0()->TPCclustersNeg().GetNbits(); imap++) {
      // If both have clusters in the same row
      if (pair->Track1()->V0()->TPCclustersNeg().TestBitNumber(imap) && 
	  pair->Track2()->Track()->TPCclusters().TestBitNumber(imap)) {
	// Do they share it ?
	if (pair->Track1()->V0()->TPCsharingNeg().TestBitNumber(imap) &&
	    pair->Track2()->Track()->TPCsharing().TestBitNumber(imap))
	  {
	    //	  cout << "A shared cluster !!!" << endl;
	    //	cout << "imap idx1 idx2 " 
	    //	     << imap << " "
	    //	     << tP1idx[imap] << " " << tP2idx[imap] << endl;
	    an++;
	    nh+=2;
	    ns+=2;
	  }
	
	// Different hits on the same padrow
	else {
	  an--;
	  nh+=2;
	}
      }
      else if (pair->Track1()->V0()->TPCclustersNeg().TestBitNumber(imap) ||
	       pair->Track2()->Track()->TPCclusters().TestBitNumber(imap)) {
	// One track has a hit, the other does not
	an++;
	nh++;
      }
    }
    
    hsmval = 0.0;
    hsfval = 0.0;
    
    if (nh >0) {
      hsmval = an*1.0/nh;
      hsfval = ns*1.0/nh;
    }
    //  if (hsmval > -0.4) {
    //   cout << "Pair quality: " << hsmval << " " << an << " " << nh << " " 
    //        << (pair->Track1()->Track()) << " " 
    //        << (pair->Track2()->Track()) << endl;
    //   cout << "Bits: " << pair->Track1()->Track()->TPCclusters().GetNbits() << endl;
    //  }
    //   if (hsfval > 0.0) {
    //     cout << "Pair sharity: " << hsfval << " " << ns << " " << nh << "    " << hsmval << " " << an << " " << nh << endl;
    //   }
    
    temp = (hsmval < fShareQualityMax) && (hsfval < fShareFractionMax);


  }
  else
    temp = true;
  //koniec kopii


  //avg sep pair cut
  double avgSep=0;
  AliFemtoThreeVector first, second, tmp;
  for(int i=0; i<8 ;i++)
    {
      tmp = pair->Track1()->V0()->NominalTpcPointPos(i);
      //cout<<"X pos: "<<tmp.x()<<endl;
      first.SetX((double)(tmp.x()));
      first.SetY((double)tmp.y());
      first.SetZ((double)tmp.z());
      
      tmp = pair->Track2()->Track()->NominalTpcPoint(i);
      second.SetX((double)tmp.x());
      second.SetY((double)tmp.y());
      second.SetZ((double)tmp.z()); 

      avgSep += TMath::Sqrt(((double)first.x()-(double)second.x())*((double)first.x()-(double)second.x())+((double)first.y()-(double)second.y())*((double)first.y()-second.y())+((double)first.z()-(double)second.z())*((double)first.z()-(double)second.z()));
    }
  avgSep /= 8;

  if(avgSep<fMinAvgSepTrackPos) return false;

  avgSep = 0;
  
  for(int i=0; i<8 ;i++)
    {
      tmp = pair->Track1()->V0()->NominalTpcPointNeg(i);
      //cout<<"X pos: "<<tmp.x()<<endl;
      first.SetX((double)(tmp.x()));
      first.SetY((double)tmp.y());
      first.SetZ((double)tmp.z());
      
      tmp = pair->Track2()->Track()->NominalTpcPoint(i);
      second.SetX((double)tmp.x());
      second.SetY((double)tmp.y());
      second.SetZ((double)tmp.z()); 

      avgSep += TMath::Sqrt(((double)first.x()-(double)second.x())*((double)first.x()-(double)second.x())+((double)first.y()-(double)second.y())*((double)first.y()-second.y())+((double)first.z()-(double)second.z())*((double)first.z()-(double)second.z()));
    }
  avgSep /= 8;

  if(avgSep<fMinAvgSepTrackNeg) return false;




  //Qinv cut (we are trying to get rid of antiresidual correlation between primary protons)
  if(fKstarCut > 0)
    {

      //2 daughters of first V0
      double mom1PosX = pair->Track1()->V0()->MomPosX();
      double mom1PosY = pair->Track1()->V0()->MomPosY();
      double mom1PosZ = pair->Track1()->V0()->MomPosZ();
      double mom1NegX = pair->Track1()->V0()->MomNegX();
      double mom1NegY = pair->Track1()->V0()->MomNegY();
      double mom1NegZ = pair->Track1()->V0()->MomNegZ();


      //double PionMass = 0.13956995;
      //double KaonMass = 0.493677;
      double ProtonMass = 0.938272;
      //double LambdaMass = 1.115683;

      AliFemtoLorentzVector fFourMomentum1; // Particle momentum
      AliFemtoLorentzVector fFourMomentum2; // Particle momentum

      AliFemtoThreeVector temp1;
      double ener1=0;
      if(fFirstParticleType == 0) //lambda
	{
	  if(fSecondParticleType == 2) //proton
	    {
	      //temp1 = ::sqrt(mom1PosX*mom1PosX+mom1PosY*mom1PosY+mom1PosZ*mom1PosZ);
	      temp1.SetX(mom1PosX);
	      temp1.SetY(mom1PosY);
	      temp1.SetZ(mom1PosZ);
	      ener1 = ::sqrt(temp1.Mag2()+ProtonMass*ProtonMass);	  
	    }
	}
      else if(fFirstParticleType == 1) //antilambda
	{
	  if(fSecondParticleType == 3) //antiproton
	    {
	      //temp1 = ::sqrt(mom1NegX*mom1NegX+mom1NegY*mom1NegY+mom1NegZ*mom1NegZ);
	      temp1.SetX(mom1NegX);
	      temp1.SetY(mom1NegY);
	      temp1.SetZ(mom1NegZ);
	      ener1 = ::sqrt(temp1.Mag2()+ProtonMass*ProtonMass);
	    }
	}
      fFourMomentum1.SetVect(temp1);
      fFourMomentum1.SetE(ener1);

      //AliFemtoLorentzVector fFourMomentum2; // Particle momentum
      AliFemtoThreeVector temp2;
      double ener2=0;

      //2 daughters of second V0
      temp2 = pair->Track2()->Track()->P();
 
 
      if(fSecondParticleType == 2 || fSecondParticleType == 3) //proton
	{
	    ener2 = ::sqrt(temp2.Mag2()+ProtonMass*ProtonMass);
	}

      fFourMomentum2.SetVect(temp2);
      fFourMomentum2.SetE(ener2);

      //QInv calculation
      AliFemtoLorentzVector tDiff = (fFourMomentum1-fFourMomentum2);

      double tQinv = fabs(-1.*tDiff.m());   // note - qInv() will be negative for identical pairs...
   
      //cout<<"tQinv/2: "<<tQinv/2<<endl;
      if(tQinv/2 < fKstarCut)
	{

	  temp = false;
	}
    }
  return temp;
}
//__________________
AliFemtoString AliFemtoV0TrackPairCut::Report(){
  // Prepare the report from the execution
  string stemp = "AliFemtoV0 Pair Cut - remove shared and split pairs\n";  char ctemp[100];
  snprintf(ctemp , 100, "Number of pairs which passed:\t%ld  Number which failed:\t%ld\n",fNPairsPassed,fNPairsFailed);
  stemp += ctemp;
  AliFemtoString returnThis = stemp;
  return returnThis;}
//__________________

void AliFemtoV0TrackPairCut::SetV0Max(Double_t aV0Max) {
  fV0Max = aV0Max;
}

Double_t AliFemtoV0TrackPairCut::GetAliFemtoV0Max() const {
  return fV0Max;
}


TList *AliFemtoV0TrackPairCut::ListSettings()
{
  // return a list of settings in a writable form
  TList *tListSetttings = new TList();
  char buf[200];
  snprintf(buf, 200, "AliFemtoV0TrackPairCut.sharequalitymax=%f", fV0Max);
  snprintf(buf, 200, "AliFemtoV0TrackPairCut.sharefractionmax=%f", fShareFractionMax);
  tListSetttings->AddLast(new TObjString(buf));

  return tListSetttings;
}

void     AliFemtoV0TrackPairCut::SetRemoveSameLabel(Bool_t aRemove)
{
  fRemoveSameLabel = aRemove;
}

void AliFemtoV0TrackPairCut::SetTPCOnly(Bool_t tpconly)
{
  fTrackTPCOnly = tpconly;
}

void AliFemtoV0TrackPairCut::SetShareQualityMax(Double_t aShareQualityMax) {
  fShareQualityMax = aShareQualityMax;
}

void AliFemtoV0TrackPairCut::SetShareFractionMax(Double_t aShareFractionMax) {
  fShareFractionMax = aShareFractionMax;
}

void AliFemtoV0TrackPairCut::SetDataType(AliFemtoDataType type)
{
  fDataType = type;
}

void AliFemtoV0TrackPairCut::SetTPCEntranceSepMinimum(double dtpc)
{
  fDTPCMin = dtpc;
}

void AliFemtoV0TrackPairCut::SetTPCExitSepMinimum(double dtpc)
{
  fDTPCExitMin = dtpc;
}

void AliFemtoV0TrackPairCut::SetKstarCut(double kstar, AliFemtoParticleType firstParticle, AliFemtoParticleType secondParticle)
{
  fKstarCut = kstar; 
  fFirstParticleType = firstParticle;  //for kstar - first particle type (V0 type) 
  fSecondParticleType = secondParticle;
}

void AliFemtoV0TrackPairCut::SetMinAvgSeparation(int type, double minSep)
{
  if(type == 0) //Track-Pos
    fMinAvgSepTrackPos = minSep;
  else if(type == 1) //Track-Neg
    fMinAvgSepTrackNeg = minSep;
}
 AliFemtoV0TrackPairCut.cxx:1
 AliFemtoV0TrackPairCut.cxx:2
 AliFemtoV0TrackPairCut.cxx:3
 AliFemtoV0TrackPairCut.cxx:4
 AliFemtoV0TrackPairCut.cxx:5
 AliFemtoV0TrackPairCut.cxx:6
 AliFemtoV0TrackPairCut.cxx:7
 AliFemtoV0TrackPairCut.cxx:8
 AliFemtoV0TrackPairCut.cxx:9
 AliFemtoV0TrackPairCut.cxx:10
 AliFemtoV0TrackPairCut.cxx:11
 AliFemtoV0TrackPairCut.cxx:12
 AliFemtoV0TrackPairCut.cxx:13
 AliFemtoV0TrackPairCut.cxx:14
 AliFemtoV0TrackPairCut.cxx:15
 AliFemtoV0TrackPairCut.cxx:16
 AliFemtoV0TrackPairCut.cxx:17
 AliFemtoV0TrackPairCut.cxx:18
 AliFemtoV0TrackPairCut.cxx:19
 AliFemtoV0TrackPairCut.cxx:20
 AliFemtoV0TrackPairCut.cxx:21
 AliFemtoV0TrackPairCut.cxx:22
 AliFemtoV0TrackPairCut.cxx:23
 AliFemtoV0TrackPairCut.cxx:24
 AliFemtoV0TrackPairCut.cxx:25
 AliFemtoV0TrackPairCut.cxx:26
 AliFemtoV0TrackPairCut.cxx:27
 AliFemtoV0TrackPairCut.cxx:28
 AliFemtoV0TrackPairCut.cxx:29
 AliFemtoV0TrackPairCut.cxx:30
 AliFemtoV0TrackPairCut.cxx:31
 AliFemtoV0TrackPairCut.cxx:32
 AliFemtoV0TrackPairCut.cxx:33
 AliFemtoV0TrackPairCut.cxx:34
 AliFemtoV0TrackPairCut.cxx:35
 AliFemtoV0TrackPairCut.cxx:36
 AliFemtoV0TrackPairCut.cxx:37
 AliFemtoV0TrackPairCut.cxx:38
 AliFemtoV0TrackPairCut.cxx:39
 AliFemtoV0TrackPairCut.cxx:40
 AliFemtoV0TrackPairCut.cxx:41
 AliFemtoV0TrackPairCut.cxx:42
 AliFemtoV0TrackPairCut.cxx:43
 AliFemtoV0TrackPairCut.cxx:44
 AliFemtoV0TrackPairCut.cxx:45
 AliFemtoV0TrackPairCut.cxx:46
 AliFemtoV0TrackPairCut.cxx:47
 AliFemtoV0TrackPairCut.cxx:48
 AliFemtoV0TrackPairCut.cxx:49
 AliFemtoV0TrackPairCut.cxx:50
 AliFemtoV0TrackPairCut.cxx:51
 AliFemtoV0TrackPairCut.cxx:52
 AliFemtoV0TrackPairCut.cxx:53
 AliFemtoV0TrackPairCut.cxx:54
 AliFemtoV0TrackPairCut.cxx:55
 AliFemtoV0TrackPairCut.cxx:56
 AliFemtoV0TrackPairCut.cxx:57
 AliFemtoV0TrackPairCut.cxx:58
 AliFemtoV0TrackPairCut.cxx:59
 AliFemtoV0TrackPairCut.cxx:60
 AliFemtoV0TrackPairCut.cxx:61
 AliFemtoV0TrackPairCut.cxx:62
 AliFemtoV0TrackPairCut.cxx:63
 AliFemtoV0TrackPairCut.cxx:64
 AliFemtoV0TrackPairCut.cxx:65
 AliFemtoV0TrackPairCut.cxx:66
 AliFemtoV0TrackPairCut.cxx:67
 AliFemtoV0TrackPairCut.cxx:68
 AliFemtoV0TrackPairCut.cxx:69
 AliFemtoV0TrackPairCut.cxx:70
 AliFemtoV0TrackPairCut.cxx:71
 AliFemtoV0TrackPairCut.cxx:72
 AliFemtoV0TrackPairCut.cxx:73
 AliFemtoV0TrackPairCut.cxx:74
 AliFemtoV0TrackPairCut.cxx:75
 AliFemtoV0TrackPairCut.cxx:76
 AliFemtoV0TrackPairCut.cxx:77
 AliFemtoV0TrackPairCut.cxx:78
 AliFemtoV0TrackPairCut.cxx:79
 AliFemtoV0TrackPairCut.cxx:80
 AliFemtoV0TrackPairCut.cxx:81
 AliFemtoV0TrackPairCut.cxx:82
 AliFemtoV0TrackPairCut.cxx:83
 AliFemtoV0TrackPairCut.cxx:84
 AliFemtoV0TrackPairCut.cxx:85
 AliFemtoV0TrackPairCut.cxx:86
 AliFemtoV0TrackPairCut.cxx:87
 AliFemtoV0TrackPairCut.cxx:88
 AliFemtoV0TrackPairCut.cxx:89
 AliFemtoV0TrackPairCut.cxx:90
 AliFemtoV0TrackPairCut.cxx:91
 AliFemtoV0TrackPairCut.cxx:92
 AliFemtoV0TrackPairCut.cxx:93
 AliFemtoV0TrackPairCut.cxx:94
 AliFemtoV0TrackPairCut.cxx:95
 AliFemtoV0TrackPairCut.cxx:96
 AliFemtoV0TrackPairCut.cxx:97
 AliFemtoV0TrackPairCut.cxx:98
 AliFemtoV0TrackPairCut.cxx:99
 AliFemtoV0TrackPairCut.cxx:100
 AliFemtoV0TrackPairCut.cxx:101
 AliFemtoV0TrackPairCut.cxx:102
 AliFemtoV0TrackPairCut.cxx:103
 AliFemtoV0TrackPairCut.cxx:104
 AliFemtoV0TrackPairCut.cxx:105
 AliFemtoV0TrackPairCut.cxx:106
 AliFemtoV0TrackPairCut.cxx:107
 AliFemtoV0TrackPairCut.cxx:108
 AliFemtoV0TrackPairCut.cxx:109
 AliFemtoV0TrackPairCut.cxx:110
 AliFemtoV0TrackPairCut.cxx:111
 AliFemtoV0TrackPairCut.cxx:112
 AliFemtoV0TrackPairCut.cxx:113
 AliFemtoV0TrackPairCut.cxx:114
 AliFemtoV0TrackPairCut.cxx:115
 AliFemtoV0TrackPairCut.cxx:116
 AliFemtoV0TrackPairCut.cxx:117
 AliFemtoV0TrackPairCut.cxx:118
 AliFemtoV0TrackPairCut.cxx:119
 AliFemtoV0TrackPairCut.cxx:120
 AliFemtoV0TrackPairCut.cxx:121
 AliFemtoV0TrackPairCut.cxx:122
 AliFemtoV0TrackPairCut.cxx:123
 AliFemtoV0TrackPairCut.cxx:124
 AliFemtoV0TrackPairCut.cxx:125
 AliFemtoV0TrackPairCut.cxx:126
 AliFemtoV0TrackPairCut.cxx:127
 AliFemtoV0TrackPairCut.cxx:128
 AliFemtoV0TrackPairCut.cxx:129
 AliFemtoV0TrackPairCut.cxx:130
 AliFemtoV0TrackPairCut.cxx:131
 AliFemtoV0TrackPairCut.cxx:132
 AliFemtoV0TrackPairCut.cxx:133
 AliFemtoV0TrackPairCut.cxx:134
 AliFemtoV0TrackPairCut.cxx:135
 AliFemtoV0TrackPairCut.cxx:136
 AliFemtoV0TrackPairCut.cxx:137
 AliFemtoV0TrackPairCut.cxx:138
 AliFemtoV0TrackPairCut.cxx:139
 AliFemtoV0TrackPairCut.cxx:140
 AliFemtoV0TrackPairCut.cxx:141
 AliFemtoV0TrackPairCut.cxx:142
 AliFemtoV0TrackPairCut.cxx:143
 AliFemtoV0TrackPairCut.cxx:144
 AliFemtoV0TrackPairCut.cxx:145
 AliFemtoV0TrackPairCut.cxx:146
 AliFemtoV0TrackPairCut.cxx:147
 AliFemtoV0TrackPairCut.cxx:148
 AliFemtoV0TrackPairCut.cxx:149
 AliFemtoV0TrackPairCut.cxx:150
 AliFemtoV0TrackPairCut.cxx:151
 AliFemtoV0TrackPairCut.cxx:152
 AliFemtoV0TrackPairCut.cxx:153
 AliFemtoV0TrackPairCut.cxx:154
 AliFemtoV0TrackPairCut.cxx:155
 AliFemtoV0TrackPairCut.cxx:156
 AliFemtoV0TrackPairCut.cxx:157
 AliFemtoV0TrackPairCut.cxx:158
 AliFemtoV0TrackPairCut.cxx:159
 AliFemtoV0TrackPairCut.cxx:160
 AliFemtoV0TrackPairCut.cxx:161
 AliFemtoV0TrackPairCut.cxx:162
 AliFemtoV0TrackPairCut.cxx:163
 AliFemtoV0TrackPairCut.cxx:164
 AliFemtoV0TrackPairCut.cxx:165
 AliFemtoV0TrackPairCut.cxx:166
 AliFemtoV0TrackPairCut.cxx:167
 AliFemtoV0TrackPairCut.cxx:168
 AliFemtoV0TrackPairCut.cxx:169
 AliFemtoV0TrackPairCut.cxx:170
 AliFemtoV0TrackPairCut.cxx:171
 AliFemtoV0TrackPairCut.cxx:172
 AliFemtoV0TrackPairCut.cxx:173
 AliFemtoV0TrackPairCut.cxx:174
 AliFemtoV0TrackPairCut.cxx:175
 AliFemtoV0TrackPairCut.cxx:176
 AliFemtoV0TrackPairCut.cxx:177
 AliFemtoV0TrackPairCut.cxx:178
 AliFemtoV0TrackPairCut.cxx:179
 AliFemtoV0TrackPairCut.cxx:180
 AliFemtoV0TrackPairCut.cxx:181
 AliFemtoV0TrackPairCut.cxx:182
 AliFemtoV0TrackPairCut.cxx:183
 AliFemtoV0TrackPairCut.cxx:184
 AliFemtoV0TrackPairCut.cxx:185
 AliFemtoV0TrackPairCut.cxx:186
 AliFemtoV0TrackPairCut.cxx:187
 AliFemtoV0TrackPairCut.cxx:188
 AliFemtoV0TrackPairCut.cxx:189
 AliFemtoV0TrackPairCut.cxx:190
 AliFemtoV0TrackPairCut.cxx:191
 AliFemtoV0TrackPairCut.cxx:192
 AliFemtoV0TrackPairCut.cxx:193
 AliFemtoV0TrackPairCut.cxx:194
 AliFemtoV0TrackPairCut.cxx:195
 AliFemtoV0TrackPairCut.cxx:196
 AliFemtoV0TrackPairCut.cxx:197
 AliFemtoV0TrackPairCut.cxx:198
 AliFemtoV0TrackPairCut.cxx:199
 AliFemtoV0TrackPairCut.cxx:200
 AliFemtoV0TrackPairCut.cxx:201
 AliFemtoV0TrackPairCut.cxx:202
 AliFemtoV0TrackPairCut.cxx:203
 AliFemtoV0TrackPairCut.cxx:204
 AliFemtoV0TrackPairCut.cxx:205
 AliFemtoV0TrackPairCut.cxx:206
 AliFemtoV0TrackPairCut.cxx:207
 AliFemtoV0TrackPairCut.cxx:208
 AliFemtoV0TrackPairCut.cxx:209
 AliFemtoV0TrackPairCut.cxx:210
 AliFemtoV0TrackPairCut.cxx:211
 AliFemtoV0TrackPairCut.cxx:212
 AliFemtoV0TrackPairCut.cxx:213
 AliFemtoV0TrackPairCut.cxx:214
 AliFemtoV0TrackPairCut.cxx:215
 AliFemtoV0TrackPairCut.cxx:216
 AliFemtoV0TrackPairCut.cxx:217
 AliFemtoV0TrackPairCut.cxx:218
 AliFemtoV0TrackPairCut.cxx:219
 AliFemtoV0TrackPairCut.cxx:220
 AliFemtoV0TrackPairCut.cxx:221
 AliFemtoV0TrackPairCut.cxx:222
 AliFemtoV0TrackPairCut.cxx:223
 AliFemtoV0TrackPairCut.cxx:224
 AliFemtoV0TrackPairCut.cxx:225
 AliFemtoV0TrackPairCut.cxx:226
 AliFemtoV0TrackPairCut.cxx:227
 AliFemtoV0TrackPairCut.cxx:228
 AliFemtoV0TrackPairCut.cxx:229
 AliFemtoV0TrackPairCut.cxx:230
 AliFemtoV0TrackPairCut.cxx:231
 AliFemtoV0TrackPairCut.cxx:232
 AliFemtoV0TrackPairCut.cxx:233
 AliFemtoV0TrackPairCut.cxx:234
 AliFemtoV0TrackPairCut.cxx:235
 AliFemtoV0TrackPairCut.cxx:236
 AliFemtoV0TrackPairCut.cxx:237
 AliFemtoV0TrackPairCut.cxx:238
 AliFemtoV0TrackPairCut.cxx:239
 AliFemtoV0TrackPairCut.cxx:240
 AliFemtoV0TrackPairCut.cxx:241
 AliFemtoV0TrackPairCut.cxx:242
 AliFemtoV0TrackPairCut.cxx:243
 AliFemtoV0TrackPairCut.cxx:244
 AliFemtoV0TrackPairCut.cxx:245
 AliFemtoV0TrackPairCut.cxx:246
 AliFemtoV0TrackPairCut.cxx:247
 AliFemtoV0TrackPairCut.cxx:248
 AliFemtoV0TrackPairCut.cxx:249
 AliFemtoV0TrackPairCut.cxx:250
 AliFemtoV0TrackPairCut.cxx:251
 AliFemtoV0TrackPairCut.cxx:252
 AliFemtoV0TrackPairCut.cxx:253
 AliFemtoV0TrackPairCut.cxx:254
 AliFemtoV0TrackPairCut.cxx:255
 AliFemtoV0TrackPairCut.cxx:256
 AliFemtoV0TrackPairCut.cxx:257
 AliFemtoV0TrackPairCut.cxx:258
 AliFemtoV0TrackPairCut.cxx:259
 AliFemtoV0TrackPairCut.cxx:260
 AliFemtoV0TrackPairCut.cxx:261
 AliFemtoV0TrackPairCut.cxx:262
 AliFemtoV0TrackPairCut.cxx:263
 AliFemtoV0TrackPairCut.cxx:264
 AliFemtoV0TrackPairCut.cxx:265
 AliFemtoV0TrackPairCut.cxx:266
 AliFemtoV0TrackPairCut.cxx:267
 AliFemtoV0TrackPairCut.cxx:268
 AliFemtoV0TrackPairCut.cxx:269
 AliFemtoV0TrackPairCut.cxx:270
 AliFemtoV0TrackPairCut.cxx:271
 AliFemtoV0TrackPairCut.cxx:272
 AliFemtoV0TrackPairCut.cxx:273
 AliFemtoV0TrackPairCut.cxx:274
 AliFemtoV0TrackPairCut.cxx:275
 AliFemtoV0TrackPairCut.cxx:276
 AliFemtoV0TrackPairCut.cxx:277
 AliFemtoV0TrackPairCut.cxx:278
 AliFemtoV0TrackPairCut.cxx:279
 AliFemtoV0TrackPairCut.cxx:280
 AliFemtoV0TrackPairCut.cxx:281
 AliFemtoV0TrackPairCut.cxx:282
 AliFemtoV0TrackPairCut.cxx:283
 AliFemtoV0TrackPairCut.cxx:284
 AliFemtoV0TrackPairCut.cxx:285
 AliFemtoV0TrackPairCut.cxx:286
 AliFemtoV0TrackPairCut.cxx:287
 AliFemtoV0TrackPairCut.cxx:288
 AliFemtoV0TrackPairCut.cxx:289
 AliFemtoV0TrackPairCut.cxx:290
 AliFemtoV0TrackPairCut.cxx:291
 AliFemtoV0TrackPairCut.cxx:292
 AliFemtoV0TrackPairCut.cxx:293
 AliFemtoV0TrackPairCut.cxx:294
 AliFemtoV0TrackPairCut.cxx:295
 AliFemtoV0TrackPairCut.cxx:296
 AliFemtoV0TrackPairCut.cxx:297
 AliFemtoV0TrackPairCut.cxx:298
 AliFemtoV0TrackPairCut.cxx:299
 AliFemtoV0TrackPairCut.cxx:300
 AliFemtoV0TrackPairCut.cxx:301
 AliFemtoV0TrackPairCut.cxx:302
 AliFemtoV0TrackPairCut.cxx:303
 AliFemtoV0TrackPairCut.cxx:304
 AliFemtoV0TrackPairCut.cxx:305
 AliFemtoV0TrackPairCut.cxx:306
 AliFemtoV0TrackPairCut.cxx:307
 AliFemtoV0TrackPairCut.cxx:308
 AliFemtoV0TrackPairCut.cxx:309
 AliFemtoV0TrackPairCut.cxx:310
 AliFemtoV0TrackPairCut.cxx:311
 AliFemtoV0TrackPairCut.cxx:312
 AliFemtoV0TrackPairCut.cxx:313
 AliFemtoV0TrackPairCut.cxx:314
 AliFemtoV0TrackPairCut.cxx:315
 AliFemtoV0TrackPairCut.cxx:316
 AliFemtoV0TrackPairCut.cxx:317
 AliFemtoV0TrackPairCut.cxx:318
 AliFemtoV0TrackPairCut.cxx:319
 AliFemtoV0TrackPairCut.cxx:320
 AliFemtoV0TrackPairCut.cxx:321
 AliFemtoV0TrackPairCut.cxx:322
 AliFemtoV0TrackPairCut.cxx:323
 AliFemtoV0TrackPairCut.cxx:324
 AliFemtoV0TrackPairCut.cxx:325
 AliFemtoV0TrackPairCut.cxx:326
 AliFemtoV0TrackPairCut.cxx:327
 AliFemtoV0TrackPairCut.cxx:328
 AliFemtoV0TrackPairCut.cxx:329
 AliFemtoV0TrackPairCut.cxx:330
 AliFemtoV0TrackPairCut.cxx:331
 AliFemtoV0TrackPairCut.cxx:332
 AliFemtoV0TrackPairCut.cxx:333
 AliFemtoV0TrackPairCut.cxx:334
 AliFemtoV0TrackPairCut.cxx:335
 AliFemtoV0TrackPairCut.cxx:336
 AliFemtoV0TrackPairCut.cxx:337
 AliFemtoV0TrackPairCut.cxx:338
 AliFemtoV0TrackPairCut.cxx:339
 AliFemtoV0TrackPairCut.cxx:340
 AliFemtoV0TrackPairCut.cxx:341
 AliFemtoV0TrackPairCut.cxx:342
 AliFemtoV0TrackPairCut.cxx:343
 AliFemtoV0TrackPairCut.cxx:344
 AliFemtoV0TrackPairCut.cxx:345
 AliFemtoV0TrackPairCut.cxx:346
 AliFemtoV0TrackPairCut.cxx:347
 AliFemtoV0TrackPairCut.cxx:348
 AliFemtoV0TrackPairCut.cxx:349
 AliFemtoV0TrackPairCut.cxx:350
 AliFemtoV0TrackPairCut.cxx:351
 AliFemtoV0TrackPairCut.cxx:352
 AliFemtoV0TrackPairCut.cxx:353
 AliFemtoV0TrackPairCut.cxx:354
 AliFemtoV0TrackPairCut.cxx:355
 AliFemtoV0TrackPairCut.cxx:356
 AliFemtoV0TrackPairCut.cxx:357
 AliFemtoV0TrackPairCut.cxx:358
 AliFemtoV0TrackPairCut.cxx:359
 AliFemtoV0TrackPairCut.cxx:360
 AliFemtoV0TrackPairCut.cxx:361
 AliFemtoV0TrackPairCut.cxx:362
 AliFemtoV0TrackPairCut.cxx:363
 AliFemtoV0TrackPairCut.cxx:364
 AliFemtoV0TrackPairCut.cxx:365
 AliFemtoV0TrackPairCut.cxx:366
 AliFemtoV0TrackPairCut.cxx:367
 AliFemtoV0TrackPairCut.cxx:368
 AliFemtoV0TrackPairCut.cxx:369
 AliFemtoV0TrackPairCut.cxx:370
 AliFemtoV0TrackPairCut.cxx:371
 AliFemtoV0TrackPairCut.cxx:372
 AliFemtoV0TrackPairCut.cxx:373
 AliFemtoV0TrackPairCut.cxx:374
 AliFemtoV0TrackPairCut.cxx:375
 AliFemtoV0TrackPairCut.cxx:376
 AliFemtoV0TrackPairCut.cxx:377
 AliFemtoV0TrackPairCut.cxx:378
 AliFemtoV0TrackPairCut.cxx:379
 AliFemtoV0TrackPairCut.cxx:380
 AliFemtoV0TrackPairCut.cxx:381
 AliFemtoV0TrackPairCut.cxx:382
 AliFemtoV0TrackPairCut.cxx:383
 AliFemtoV0TrackPairCut.cxx:384
 AliFemtoV0TrackPairCut.cxx:385
 AliFemtoV0TrackPairCut.cxx:386
 AliFemtoV0TrackPairCut.cxx:387
 AliFemtoV0TrackPairCut.cxx:388
 AliFemtoV0TrackPairCut.cxx:389
 AliFemtoV0TrackPairCut.cxx:390
 AliFemtoV0TrackPairCut.cxx:391
 AliFemtoV0TrackPairCut.cxx:392
 AliFemtoV0TrackPairCut.cxx:393
 AliFemtoV0TrackPairCut.cxx:394
 AliFemtoV0TrackPairCut.cxx:395
 AliFemtoV0TrackPairCut.cxx:396
 AliFemtoV0TrackPairCut.cxx:397
 AliFemtoV0TrackPairCut.cxx:398
 AliFemtoV0TrackPairCut.cxx:399
 AliFemtoV0TrackPairCut.cxx:400
 AliFemtoV0TrackPairCut.cxx:401
 AliFemtoV0TrackPairCut.cxx:402
 AliFemtoV0TrackPairCut.cxx:403
 AliFemtoV0TrackPairCut.cxx:404
 AliFemtoV0TrackPairCut.cxx:405
 AliFemtoV0TrackPairCut.cxx:406
 AliFemtoV0TrackPairCut.cxx:407
 AliFemtoV0TrackPairCut.cxx:408
 AliFemtoV0TrackPairCut.cxx:409
 AliFemtoV0TrackPairCut.cxx:410
 AliFemtoV0TrackPairCut.cxx:411
 AliFemtoV0TrackPairCut.cxx:412
 AliFemtoV0TrackPairCut.cxx:413
 AliFemtoV0TrackPairCut.cxx:414
 AliFemtoV0TrackPairCut.cxx:415
 AliFemtoV0TrackPairCut.cxx:416
 AliFemtoV0TrackPairCut.cxx:417
 AliFemtoV0TrackPairCut.cxx:418
 AliFemtoV0TrackPairCut.cxx:419
 AliFemtoV0TrackPairCut.cxx:420
 AliFemtoV0TrackPairCut.cxx:421
 AliFemtoV0TrackPairCut.cxx:422
 AliFemtoV0TrackPairCut.cxx:423
 AliFemtoV0TrackPairCut.cxx:424
 AliFemtoV0TrackPairCut.cxx:425
 AliFemtoV0TrackPairCut.cxx:426
 AliFemtoV0TrackPairCut.cxx:427
 AliFemtoV0TrackPairCut.cxx:428
 AliFemtoV0TrackPairCut.cxx:429
 AliFemtoV0TrackPairCut.cxx:430
 AliFemtoV0TrackPairCut.cxx:431
 AliFemtoV0TrackPairCut.cxx:432
 AliFemtoV0TrackPairCut.cxx:433
 AliFemtoV0TrackPairCut.cxx:434
 AliFemtoV0TrackPairCut.cxx:435
 AliFemtoV0TrackPairCut.cxx:436
 AliFemtoV0TrackPairCut.cxx:437
 AliFemtoV0TrackPairCut.cxx:438
 AliFemtoV0TrackPairCut.cxx:439
 AliFemtoV0TrackPairCut.cxx:440
 AliFemtoV0TrackPairCut.cxx:441
 AliFemtoV0TrackPairCut.cxx:442
 AliFemtoV0TrackPairCut.cxx:443
 AliFemtoV0TrackPairCut.cxx:444
 AliFemtoV0TrackPairCut.cxx:445
 AliFemtoV0TrackPairCut.cxx:446
 AliFemtoV0TrackPairCut.cxx:447
 AliFemtoV0TrackPairCut.cxx:448
 AliFemtoV0TrackPairCut.cxx:449
 AliFemtoV0TrackPairCut.cxx:450
 AliFemtoV0TrackPairCut.cxx:451
 AliFemtoV0TrackPairCut.cxx:452
 AliFemtoV0TrackPairCut.cxx:453
 AliFemtoV0TrackPairCut.cxx:454
 AliFemtoV0TrackPairCut.cxx:455
 AliFemtoV0TrackPairCut.cxx:456
 AliFemtoV0TrackPairCut.cxx:457
 AliFemtoV0TrackPairCut.cxx:458
 AliFemtoV0TrackPairCut.cxx:459
 AliFemtoV0TrackPairCut.cxx:460
 AliFemtoV0TrackPairCut.cxx:461
 AliFemtoV0TrackPairCut.cxx:462
 AliFemtoV0TrackPairCut.cxx:463
 AliFemtoV0TrackPairCut.cxx:464
 AliFemtoV0TrackPairCut.cxx:465
 AliFemtoV0TrackPairCut.cxx:466