ROOT logo
///////////////////////////////////////////////////////////////////////////
//                                                                       //
// AliFemtoQinvCorrFctn:                                                 //
// a simple Q-invariant correlation function                             //
//                                                                       //
///////////////////////////////////////////////////////////////////////////

#include "AliFemtoQinvCorrFctn.h"
//#include "AliFemtoHisto.h"
#include <cstdio>

#ifdef __ROOT__
ClassImp(AliFemtoQinvCorrFctn)
#endif

//____________________________
AliFemtoQinvCorrFctn::AliFemtoQinvCorrFctn(char* title, const int& nbins, const float& QinvLo, const float& QinvHi):
  fNumerator(0),
  fDenominator(0),
  fRatio(0),
  fkTMonitor(0),
  fDetaDphiscal(kFALSE),
  fPairKinematics(kFALSE),
  fRaddedps(1.2),
  fNumDEtaDPhiS(0),
  fDenDEtaDPhiS(0),
  PairReader(0)// ,
  // fTrack1(NULL),
  // fTrack2(NULL)

{
  // set up numerator
  //  title = "Num Qinv (MeV/c)";
  char tTitNum[101] = "Num";
  strncat(tTitNum,title, 100);
  fNumerator = new TH1D(tTitNum,title,nbins,QinvLo,QinvHi);
  // set up denominator
  //title = "Den Qinv (MeV/c)";
  char tTitDen[101] = "Den";
  strncat(tTitDen,title, 100);
  fDenominator = new TH1D(tTitDen,title,nbins,QinvLo,QinvHi);
  // set up ratio
  //title = "Ratio Qinv (MeV/c)";
  char tTitRat[101] = "Rat";
  strncat(tTitRat,title, 100);
  fRatio = new TH1D(tTitRat,title,nbins,QinvLo,QinvHi);

  char tTitkT[101] = "kTDep";
  strncat(tTitkT,title, 100);
  fkTMonitor = new TH1D(tTitkT,title,250,0.0,5.0);

  char tTitNumDeDp[101] = "NumDEtaDPhiS";
  strncat(tTitNumDeDp,title, 100);
  fNumDEtaDPhiS = new TH2D(tTitNumDeDp,title,500,-0.2*TMath::Pi(),0.2*TMath::Pi(),500,-0.5,0.5);

  char tTitDenDeDp[101] = "DenDEtaDPhiS";
  strncat(tTitDenDeDp,title, 100);
  fDenDEtaDPhiS = new TH2D(tTitDenDeDp,title,500,-0.2*TMath::Pi(),0.2*TMath::Pi(),500,-0.5,0.5);

  char tTitPair[101] = "Pair";
  strncat(tTitPair,title, 100);
  PairReader = new TNtuple(tTitPair,title,  "px1:py1:pz1:e1:px2:py2:pz2:e2");


  // this next bit is unfortunately needed so that we can have many histos of same "title"
  // it is neccessary if we typedef TH1D to TH1d (which we do)
  //fNumerator->SetDirectory(0);
  //fDenominator->SetDirectory(0);
  //fRatio->SetDirectory(0);

  // to enable error bar calculation...
  fNumerator->Sumw2();
  fDenominator->Sumw2();
  fRatio->Sumw2();
  fkTMonitor->Sumw2();

  fNumDEtaDPhiS->Sumw2();
  fDenDEtaDPhiS->Sumw2();

}

//____________________________
AliFemtoQinvCorrFctn::AliFemtoQinvCorrFctn(const AliFemtoQinvCorrFctn& aCorrFctn) :
  AliFemtoCorrFctn(),
  fNumerator(0),
  fDenominator(0),
  fRatio(0),
  fkTMonitor(0),
  fDetaDphiscal(kFALSE),
  fPairKinematics(kFALSE),
  fRaddedps(1.2),
  fNumDEtaDPhiS(0),
  fDenDEtaDPhiS(0),
  PairReader(0)// ,
  // fTrack1(NULL),
  // fTrack2(NULL)

{
  // copy constructor
  fNumerator = new TH1D(*aCorrFctn.fNumerator);
  fDenominator = new TH1D(*aCorrFctn.fDenominator);
  fRatio = new TH1D(*aCorrFctn.fRatio);
  fkTMonitor = new TH1D(*aCorrFctn.fkTMonitor);

  fNumDEtaDPhiS = new TH2D(*aCorrFctn.fNumDEtaDPhiS);
  fDenDEtaDPhiS = new TH2D(*aCorrFctn.fDenDEtaDPhiS);

  fDetaDphiscal = aCorrFctn.fDetaDphiscal;
  fRaddedps = aCorrFctn.fRaddedps;

  fPairKinematics = aCorrFctn.fPairKinematics;

  if (aCorrFctn.PairReader)
    PairReader = (TNtuple*)aCorrFctn.PairReader;

}
//____________________________
AliFemtoQinvCorrFctn::~AliFemtoQinvCorrFctn(){
  // destructor
  delete fNumerator;
  delete fDenominator;
  delete fRatio;
  delete fkTMonitor;
  delete fNumDEtaDPhiS;
  delete fDenDEtaDPhiS;
  delete PairReader;

}
//_________________________
AliFemtoQinvCorrFctn& AliFemtoQinvCorrFctn::operator=(const AliFemtoQinvCorrFctn& aCorrFctn)
{
  // assignment operator
  if (this == &aCorrFctn)
    return *this;

  if (fNumerator) delete fNumerator;
  fNumerator = new TH1D(*aCorrFctn.fNumerator);
  if (fDenominator) delete fDenominator;
  fDenominator = new TH1D(*aCorrFctn.fDenominator);
  if (fRatio) delete fRatio;
  fRatio = new TH1D(*aCorrFctn.fRatio);
  if (fkTMonitor) delete fkTMonitor;
  fkTMonitor = new TH1D(*aCorrFctn.fkTMonitor);

  if (fNumDEtaDPhiS) delete fNumDEtaDPhiS;
  fNumDEtaDPhiS = new TH2D(*aCorrFctn.fNumDEtaDPhiS);
  if (fDenDEtaDPhiS) delete fDenDEtaDPhiS;
  fDenDEtaDPhiS = new TH2D(*aCorrFctn.fDenDEtaDPhiS);

  fDetaDphiscal = aCorrFctn.fDetaDphiscal;
  fRaddedps = aCorrFctn.fRaddedps;

  fPairKinematics = aCorrFctn.fPairKinematics;

  if (aCorrFctn.PairReader)
    PairReader = (TNtuple*)aCorrFctn.PairReader;

  return *this;
}

//_________________________
void AliFemtoQinvCorrFctn::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.
  //  fNumerator->Draw();
  //fDenominator->Draw();
  //fRatio->Draw();
  fRatio->Divide(fNumerator,fDenominator,1.0,1.0);

}

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

  double tQinv = fabs(pair->QInv());   // note - qInv() will be negative for identical pairs...

  fNumerator->Fill(tQinv);
  fkTMonitor->Fill(pair->KT());


//_______________________________________
  if (fDetaDphiscal) {

    double phi1 = pair->Track1()->Track()->P().Phi();
    double phi2 = pair->Track2()->Track()->P().Phi();
    double chg1 = pair->Track1()->Track()->Charge();
    double chg2 = pair->Track2()->Track()->Charge();
    double ptv1 = pair->Track1()->Track()->Pt();
    double ptv2 = pair->Track2()->Track()->Pt();
    double eta1 = pair->Track1()->Track()->P().PseudoRapidity();
    double eta2 = pair->Track2()->Track()->P().PseudoRapidity();

    AliAODInputHandler *aodH = dynamic_cast<AliAODInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
    Int_t magsign = 0;

    if (!aodH) {
      //AliWarning("Could not get AODInputHandler");
    }
    else {
      AliAODEvent *fAOD; // = new AliAODEvent()
      fAOD = aodH->GetEvent();
      magsign = fAOD->GetMagneticField();
    }


    Int_t fMagSign;

    if (magsign > 1)
      fMagSign = 1;
    else if ( magsign < 1)
      fMagSign = -1;
    else
      fMagSign = magsign;

    Double_t rad = fRaddedps;

    double afsi0b = 0.07510020733*chg1*fMagSign*rad/ptv1;
    double afsi1b = 0.07510020733*chg2*fMagSign*rad/ptv2;
    Double_t dps6 =  phi2 - phi1 + TMath::ASin(afsi1b) - TMath::ASin(afsi0b);
    dps6 = TVector2::Phi_mpi_pi(dps6);

    // Double_t dps = (phi1-phi2+(TMath::ASin(-0.075*chg1*fMagSign*rad/ptv1))-(TMath::ASin(-0.075*chg2*fMagSign*rad/ptv2)));
    // dps = TVector2::Phi_mpi_pi(dps);
    double etad = eta2 - eta1;

    fNumDEtaDPhiS->Fill(dps6,etad);
  }
//_______________________________________________________________

  //  cout << "AliFemtoQinvCorrFctn::AddRealPair : " << pair->qInv() << " " << tQinv <<
  //" " << pair->track1().FourMomentum() << " " << pair->track2().FourMomentum() << endl;
}

//____________________________
void AliFemtoQinvCorrFctn::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...
  fDenominator->Fill(tQinv,weight);

  if (fPairKinematics) {
    AliFemtoParticle* fTrack1 = pair->Track1();
    AliFemtoParticle* fTrack2 = pair->Track2();

    double px1 = fTrack1->FourMomentum().vect().x();
    double py1 = fTrack1->FourMomentum().vect().y();
    double pz1 = fTrack1->FourMomentum().vect().z();
    double e1 = fTrack1->FourMomentum().e();

    double px2 = fTrack2->FourMomentum().vect().x();
    double py2 = fTrack2->FourMomentum().vect().y();
    double pz2 = fTrack2->FourMomentum().vect().z();
    double e2 = fTrack2->FourMomentum().e();
    PairReader->Fill(px1, py1, pz1, e1, px2, py2, pz2, e2);
  }

//_______________________________________
  if (fDetaDphiscal) {

    double phi1 = pair->Track1()->Track()->P().Phi();
    double phi2 = pair->Track2()->Track()->P().Phi();
    double chg1 = pair->Track1()->Track()->Charge();
    double chg2 = pair->Track2()->Track()->Charge();
    double ptv1 = pair->Track1()->Track()->Pt();
    double ptv2 = pair->Track2()->Track()->Pt();
    double eta1 = pair->Track1()->Track()->P().PseudoRapidity();
    double eta2 = pair->Track2()->Track()->P().PseudoRapidity();

    AliAODInputHandler *aodH = dynamic_cast<AliAODInputHandler*> (AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler());
    Int_t magsign = 0;


    if (!aodH) {
      //AliWarning("Could not get AODInputHandler");
      cout << "Could not get AODInputHandler" << endl;
    }
    else {
      AliAODEvent *fAOD;
      fAOD = aodH->GetEvent();
      magsign = fAOD->GetMagneticField();
    }


    Int_t fMagSign;
    if (magsign > 1)
      fMagSign = 1;
    else if ( magsign < 1)
      fMagSign = -1;
    else
      fMagSign = magsign;

    Double_t rad = fRaddedps;

    double afsi0b = 0.07510020733*chg1*fMagSign*rad/ptv1;
    double afsi1b = 0.07510020733*chg2*fMagSign*rad/ptv2;
    Double_t dps6 =  phi2 - phi1 + TMath::ASin(afsi1b) - TMath::ASin(afsi0b);
    dps6 = TVector2::Phi_mpi_pi(dps6);
    double etad = eta2 - eta1;

    fDenDEtaDPhiS->Fill(dps6,etad);
  }
//_______________________________________________________________

}
//____________________________
void AliFemtoQinvCorrFctn::Write(){
  // Write out neccessary objects
  fNumerator->Write();
  fDenominator->Write();
  fkTMonitor->Write();
  if (fDetaDphiscal) {
    fNumDEtaDPhiS->Write();
    fDenDEtaDPhiS->Write();
  }
  if (fPairKinematics) {
    PairReader->Write();
  }
}
//______________________________
TList* AliFemtoQinvCorrFctn::GetOutputList()
{
  // Prepare the list of objects to be written to the output
  TList *tOutputList = new TList();

  tOutputList->Add(fNumerator);
  tOutputList->Add(fDenominator);
  tOutputList->Add(fkTMonitor);
  if (fDetaDphiscal) {
    tOutputList->Add(fNumDEtaDPhiS);
    tOutputList->Add(fDenDEtaDPhiS);
  }
  if (fPairKinematics) {
    tOutputList->Add(PairReader);
  }
  return tOutputList;
}

void AliFemtoQinvCorrFctn::CalculateDetaDphis(Bool_t dedpsc, Double_t rad) {
  fDetaDphiscal = dedpsc;
  fRaddedps = rad;
}

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