ROOT logo
////////////////////////////////////////////////////////////////////////////////
///                                                                          ///
/// AliFemtoShareQualityCorrFctn - A correlation function that saves the     ///
/// amount of sharing and splitting hits per pair as a function of qinv      ///
/// Authors: Adam Kisiel kisiel@mps.ohio-state.edu                           ///
///                                                                          ///
////////////////////////////////////////////////////////////////////////////////

#include "AliFemtoShareQualityCorrFctn.h"
//#include "AliFemtoHisto.hh"
#include <cstdio>

#ifdef __ROOT__ 
ClassImp(AliFemtoShareQualityCorrFctn)
#endif

//____________________________
AliFemtoShareQualityCorrFctn::AliFemtoShareQualityCorrFctn(char* title, const int& nbins, const float& QinvLo, const float& QinvHi):
  AliFemtoCorrFctn(),
  fShareNumerator(0),
  fShareDenominator(0),
  fQualityNumerator(0),
  fQualityDenominator(0),
  fTPCSepNumerator(0),
  fTPCSepDenominator(0)
{
  // set up numerator
  //  title = "Num Qinv (MeV/c)";
  char tTitNum[101] = "NumShare";
  strncat(tTitNum,title, 100);
  fShareNumerator = new TH2D(tTitNum,title,nbins,QinvLo,QinvHi,100,0.0,1.00001);
  // set up denominator
  //title = "Den Qinv (MeV/c)";
  char tTitDen[101] = "DenShare";
  strncat(tTitDen,title, 100);
  fShareDenominator = new TH2D(tTitDen,title,nbins,QinvLo,QinvHi,100,0.0,1.00001);

  char tTit2Num[101] = "NumQuality";
  strncat(tTit2Num,title, 100);
  fQualityNumerator = new TH2D(tTit2Num,title,nbins,QinvLo,QinvHi,150,-0.500001,1.000001);
  // set up denominator
  //title = "Den Qinv (MeV/c)";
  char tTit2Den[101] = "DenQuality";
  strncat(tTit2Den,title, 100);
  fQualityDenominator = new TH2D(tTit2Den,title,nbins,QinvLo,QinvHi,150,-0.500001,1.000001);
  // set up ratio
  //title = "Ratio Qinv (MeV/c)";
  // this next bit is unfortunately needed so that we can have many histos of same "title"
  // it is neccessary if we typedef TH2D to TH1d (which we do)
  //mShareNumerator->SetDirectory(0);
  //mShareDenominator->SetDirectory(0);
  //mRatio->SetDirectory(0);

  char tTit3Num[101] = "NumTPCSep";
  strncat(tTit3Num,title, 100);
  fTPCSepNumerator = new TH2D(tTit3Num,title,nbins,QinvLo,QinvHi,150,0.0,100.0);
  // set up denominator
  //title = "Den Qinv (MeV/c)";
  char tTit3Den[101] = "DenTPCSep";
  strncat(tTit3Den,title, 100);
  fTPCSepDenominator = new TH2D(tTit3Den,title,nbins,QinvLo,QinvHi,150,0.0,100.0);

  // to enable error bar calculation...
  fShareNumerator->Sumw2();
  fShareDenominator->Sumw2();

  fQualityNumerator->Sumw2();
  fQualityDenominator->Sumw2();
  
  fTPCSepNumerator->Sumw2();
  fTPCSepDenominator->Sumw2();
}

//____________________________
AliFemtoShareQualityCorrFctn::AliFemtoShareQualityCorrFctn(const AliFemtoShareQualityCorrFctn& aCorrFctn) :
  AliFemtoCorrFctn(),
  fShareNumerator(0),
  fShareDenominator(0),
  fQualityNumerator(0),
  fQualityDenominator(0),
  fTPCSepNumerator(0),
  fTPCSepDenominator(0)
{
  // copy constructor
  if (aCorrFctn.fShareNumerator)
    fShareNumerator = new TH2D(*aCorrFctn.fShareNumerator);
  if (aCorrFctn.fShareDenominator)
    fShareDenominator = new TH2D(*aCorrFctn.fShareDenominator);
  if (aCorrFctn.fQualityNumerator)
    fQualityNumerator = new TH2D(*aCorrFctn.fQualityNumerator);
  if (aCorrFctn.fQualityDenominator)
    fQualityDenominator = new TH2D(*aCorrFctn.fQualityDenominator);
  if (aCorrFctn.fTPCSepNumerator)
    fTPCSepNumerator = new TH2D(*aCorrFctn.fTPCSepNumerator);
  if (aCorrFctn.fTPCSepDenominator)
    fTPCSepDenominator = new TH2D(*aCorrFctn.fTPCSepDenominator);
}
//____________________________
AliFemtoShareQualityCorrFctn::~AliFemtoShareQualityCorrFctn(){
  // destructor
  delete fShareNumerator;
  delete fShareDenominator;
  delete fQualityNumerator;
  delete fQualityDenominator;
  delete fTPCSepNumerator;
  delete fTPCSepDenominator;
}
//_________________________
AliFemtoShareQualityCorrFctn& AliFemtoShareQualityCorrFctn::operator=(const AliFemtoShareQualityCorrFctn& aCorrFctn)
{
  // assignment operator
  if (this == &aCorrFctn)
    return *this;

  if (aCorrFctn.fShareNumerator)
    fShareNumerator = new TH2D(*aCorrFctn.fShareNumerator);
  else
    fShareNumerator = 0;
  if (aCorrFctn.fShareDenominator)
    fShareDenominator = new TH2D(*aCorrFctn.fShareDenominator);
  else
    fShareDenominator = 0;
  if (aCorrFctn.fQualityNumerator)
    fQualityNumerator = new TH2D(*aCorrFctn.fQualityNumerator);
  else
    fQualityNumerator = 0;
  if (aCorrFctn.fQualityDenominator)
    fQualityDenominator = new TH2D(*aCorrFctn.fQualityDenominator);
  else
    fQualityDenominator = 0;
  if (aCorrFctn.fTPCSepNumerator)
    fTPCSepNumerator = new TH2D(*aCorrFctn.fTPCSepNumerator);
  else
    fTPCSepNumerator = 0;
  if (aCorrFctn.fTPCSepDenominator)
    fTPCSepDenominator = new TH2D(*aCorrFctn.fTPCSepDenominator);
  else
    fTPCSepDenominator = 0;

  return *this;
}
//_________________________
void AliFemtoShareQualityCorrFctn::Finish(){
  // here is where we should normalize, fit, etc...
  // we should NOT Draw() the histos (as I had done it below),
  // since we want to insulate ourselves from root at this level
  // of the code.  Do it instead at root command line with browser.
  //  mShareNumerator->Draw();
  //mShareDenominator->Draw();
  //mRatio->Draw();

}

//____________________________
AliFemtoString AliFemtoShareQualityCorrFctn::Report(){
  // create report
  string stemp = "Qinv Correlation Function Report:\n";
  char ctemp[100];
  snprintf(ctemp , 100, "Number of entries in numerator:\t%E\n",fShareNumerator->GetEntries());
  stemp += ctemp;
  snprintf(ctemp , 100, "Number of entries in denominator:\t%E\n",fShareDenominator->GetEntries());
  stemp += ctemp;
  //  stemp += mCoulombWeight->Report();
  AliFemtoString returnThis = stemp;
  return returnThis;
}
//____________________________
void AliFemtoShareQualityCorrFctn::AddRealPair( AliFemtoPair* pair){
  // add real (effect) pair
  if (fPairCut)
    if (!fPairCut->Pass(pair)) return;

  double tQinv = fabs(pair->QInv());   // note - qInv() will be negative for identical pairs...
  Int_t nh = 0;
  Int_t an = 0;
  Int_t ns = 0;
  
  for (unsigned int imap=0; imap<pair->Track1()->Track()->TPCclusters().GetNbits(); imap++) {
    // If both have clusters in the same row
    if (pair->Track1()->Track()->TPCclusters().TestBitNumber(imap) && 
	pair->Track2()->Track()->TPCclusters().TestBitNumber(imap)) {
      // Do they share it ?
      if (pair->Track1()->Track()->TPCsharing().TestBitNumber(imap) &&
	  pair->Track2()->Track()->TPCsharing().TestBitNumber(imap))
	{
// 	  if (tQinv < 0.01) {
// 	    cout << "Shared cluster in row " << imap << endl; 
// 	  }
	  an++;
	  nh+=2;
	  ns+=2;
	}
      
      // Different hits on the same padrow
      else {
	an--;
	nh+=2;
      }
    }
    else if (pair->Track1()->Track()->TPCclusters().TestBitNumber(imap) ||
	     pair->Track2()->Track()->TPCclusters().TestBitNumber(imap)) {
      // One track has a hit, the other does not
      an++;
      nh++;
    }
  }
//    if (tQinv < 0.01) {
//     cout << "Qinv of the pair is " << tQinv << endl;
//     cout << "Clusters: " << endl;
//     for (unsigned int imap=0; imap<pair->Track1()->Track()->TPCclusters().GetNbits(); imap++) {
//       cout << imap ;
//       if (pair->Track1()->Track()->TPCclusters().TestBitNumber(imap)) cout << " 1 ";
//       else cout << " 0 " ;
//       if (pair->Track2()->Track()->TPCclusters().TestBitNumber(imap)) cout << " 1 ";
//       else cout << " 0 " ;
//       cout << "     ";
//       if (pair->Track1()->Track()->TPCsharing().TestBitNumber(imap)) cout << " S ";
//       else cout << " X ";
//       if (pair->Track2()->Track()->TPCsharing().TestBitNumber(imap)) cout << " S ";
//       else cout << " X ";
//       cout << endl;
//     }
//   }

  Float_t hsmval = 0.0;
  Float_t hsfval = 0.0;

  if (nh >0) {
    hsmval = an*1.0/nh;
    hsfval = ns*1.0/nh;
  }

//   if ((tQinv < 0.005) && (hsmval<-0.0)) {
//     cout << "Quality  Sharity " << hsmval << " " << hsfval << " " << pair->Track1()->Track() << " " << pair->Track2()->Track() << endl;
//     cout << "Qinv of the pair is " << tQinv << endl;
//     cout << "Clusters: " << endl;
//     for (unsigned int imap=0; imap<pair->Track1()->Track()->TPCclusters().GetNbits(); imap++) {
//       cout << imap ;
//       if (pair->Track1()->Track()->TPCclusters().TestBitNumber(imap)) cout << " 1 ";
//       else cout << " 0 " ;
//       if (pair->Track2()->Track()->TPCclusters().TestBitNumber(imap)) cout << " 1 ";
//       else cout << " 0 " ;
//       cout << "     ";
//       if (pair->Track1()->Track()->TPCsharing().TestBitNumber(imap)) cout << " S ";
//       else cout << " X ";
//       if (pair->Track2()->Track()->TPCsharing().TestBitNumber(imap)) cout << " S ";
//       else cout << " X ";
//       cout << endl;
//     }
//     cout << "Momentum1 " 
// 	 << pair->Track1()->Track()->P().x() << " " 
// 	 << pair->Track1()->Track()->P().y() << " "  
// 	 << pair->Track1()->Track()->P().z() << " "  
// 	 << pair->Track1()->Track()->Label() << " "  
// 	 << pair->Track1()->Track()->TrackId() << " "  
// 	 << pair->Track1()->Track()->Flags() << " "
// 	 << pair->Track1()->Track()->KinkIndex(0) << " "
// 	 << pair->Track1()->Track()->KinkIndex(1) << " "
// 	 << pair->Track1()->Track()->KinkIndex(2) << " "
// 	 << pair->Track1()->Track()->ITSchi2() << " "
// 	 << pair->Track1()->Track()->ITSncls() << " "
// 	 << pair->Track1()->Track()->TPCchi2() << " "
// 	 << pair->Track1()->Track()->TPCncls() << " "
// 	 << endl;
//     cout << "Momentum2 " 
// 	 << pair->Track2()->Track()->P().x() << " "  
// 	 << pair->Track2()->Track()->P().y() << " "  
// 	 << pair->Track2()->Track()->P().z() << " "  
// 	 << pair->Track2()->Track()->Label() << " "  
// 	 << pair->Track2()->Track()->TrackId() << " "  
// 	 << pair->Track2()->Track()->Flags() << " " 
// 	 << pair->Track2()->Track()->KinkIndex(0) << " "
// 	 << pair->Track2()->Track()->KinkIndex(1) << " "
// 	 << pair->Track2()->Track()->KinkIndex(2) << " "
// 	 << pair->Track2()->Track()->ITSchi2() << " "
// 	 << pair->Track2()->Track()->ITSncls() << " "
// 	 << pair->Track2()->Track()->TPCchi2() << " "
// 	 << pair->Track2()->Track()->TPCncls() << " "
// 	 << endl;
//   }

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

  fShareNumerator->Fill(tQinv, hsfval);
  fQualityNumerator->Fill(tQinv, hsmval);
  fTPCSepNumerator->Fill(tQinv, dist);

  //  cout << "AliFemtoShareQualityCorrFctn::AddRealPair : " << pair->qInv() << " " << tQinv <<
  //" " << pair->Track1().FourMomentum() << " " << pair->Track2().FourMomentum() << endl;
}
//____________________________
void AliFemtoShareQualityCorrFctn::AddMixedPair( AliFemtoPair* pair){
  // add mixed (background) pair
  if (fPairCut)
    if (!fPairCut->Pass(pair)) return;

  double weight = 1.0;
  double tQinv = fabs(pair->QInv());   // note - qInv() will be negative for identical pairs...
  Int_t nh = 0;
  Int_t an = 0;
  Int_t ns = 0;
  
  for (unsigned int imap=0; imap<pair->Track1()->Track()->TPCclusters().GetNbits(); imap++) {
    // If both have clusters in the same row
    if (pair->Track1()->Track()->TPCclusters().TestBitNumber(imap) && 
	pair->Track2()->Track()->TPCclusters().TestBitNumber(imap)) {
      // Do they share it ?
      if (pair->Track1()->Track()->TPCsharing().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()->Track()->TPCclusters().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;
  }

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

  fShareDenominator->Fill(tQinv,hsfval,weight);
  fQualityDenominator->Fill(tQinv,hsmval,weight);
  fTPCSepDenominator->Fill(tQinv, dist, weight);

}


void AliFemtoShareQualityCorrFctn::WriteHistos()
{
  // Write out result histograms
  fShareNumerator->Write();
  fShareDenominator->Write();
  fQualityNumerator->Write();
  fQualityDenominator->Write();
  fTPCSepNumerator->Write();
  fTPCSepDenominator->Write();
  
}
//______________________________
TList* AliFemtoShareQualityCorrFctn::GetOutputList()
{
  // Prepare the list of objects to be written to the output
  TList *tOutputList = new TList();

  tOutputList->Add(fShareNumerator); 
  tOutputList->Add(fShareDenominator);  
  tOutputList->Add(fQualityNumerator);  
  tOutputList->Add(fQualityDenominator);  
  tOutputList->Add(fTPCSepNumerator);  
  tOutputList->Add(fTPCSepDenominator);  

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