ROOT logo
/***************************************************************************
 *
 * $Id: AliFemtoCorrFctn3DSphercicalEMCIC.h  $
 *
 * Author: Nicolas Bock, Ohio State University, bock@mps.ohio-state.edu
 ***************************************************************************
 *
 * Description: Calculates of the 3D Correlation Function in Spherical
 *              coordinates, and also produces histograms to calculate 
 *              Energy Momentum Conservation Induced Correlations  (EMCICs)
 *
 * This Class produces the following histograms as function of Q, theta, phi
 * (for both real and mixed pairs):
 *        1)   E1 + E2
 *        2)   E1 * E2
 *        3)   Pt1*Pt2
 *        4)   Pz1*Pz2
 *  
 * This class is similar to AliFemtoCorrFctn3DSpherical, but it uses Q
 * instead of K to do the binning. 
 * 
 * NOTE: The EMCIC histograms are not averaged in this class, to obtain 
 * the average, the user needs to divide the real pair histograms by 
 * the numerator, and the mixed pair histograms by the denominator.
 *
 ***************************************************************************
 *
 **************************************************************************/

#include "AliFemtoCorrFctn3DSphericalEMCIC.h"
#include "AliFemtoKTPairCut.h"
#include <TMath.h>
#include <TVector2.h>
#include <cstdio>

#ifdef __ROOT__ 
ClassImp(AliFemtoCorrFctn3DSphericalEMCIC)
#endif


//____________________________
AliFemtoCorrFctn3DSphericalEMCIC::AliFemtoCorrFctn3DSphericalEMCIC(char* title, const int& nqbins, const float& QLo, const float& QHi, const int& nphibins, const int& ncthetabins):
  AliFemtoCorrFctn(),
  fNumerator(0),
  fDenominator(0),
/*fEnergyTotalReal(0),  
  fEnergyMultReal(0),        
  fPzMultReal(0),      
  fPtMultReal(0),*/            
  fEnergyTotalMix (0),      
  fEnergyMultMix (0),      
  fPzMultMix(0),            
  fPtMultMix(0),
  fPairCut(0x0)
{
  
  // To better sample on phi shift bin low edge by binsize/2 = Pi/numBins.
  Double_t shiftPhi=TMath::Pi()/nphibins;
  // set up numerator
  char tTitNum[101] = "Num";
  strncat(tTitNum,title, 100);
  fNumerator = new TH3D(tTitNum,title,nqbins,QLo,QHi,nphibins,
			-TMath::Pi()-shiftPhi,TMath::Pi()-shiftPhi,ncthetabins,-1.0,1.0);
  // set up denominator
  char tTitDen[101] = "Den";
  strncat(tTitDen,title, 100);
  fDenominator = new TH3D(tTitDen,title,nqbins,QLo,QHi,nphibins,
			  -TMath::Pi()-shiftPhi,TMath::Pi()-shiftPhi,ncthetabins,-1.0,1.0);

  //Added histograms to calculate EMCICs , Nicolas Bock 19.01.2010
  //Setup EnergyTotalReal
  /*char tTitNum1[101] = "ESumReal";
  strncat(tTitNum1,title, 100);
  fEnergyTotalReal = new TH3D(tTitNum1,title,nqbins,QLo,QHi,nphibins,
			      -TMath::Pi()-shiftPhi,TMath::Pi()-shiftPhi,ncthetabins,-1.0,1.0);
 
  //Setup EnergyMultReal
  char tTitNum2[101] = "EMultReal";
  strncat(tTitNum2,title, 100);
  fEnergyMultReal = new TH3D(tTitNum2,title,nqbins,QLo,QHi,nphibins,
			     -TMath::Pi()-shiftPhi,TMath::Pi()-shiftPhi,ncthetabins,-1.0,1.0);
  
  //Setup Pz MultReal
  char tTitNum3[101] = "PzMultReal";
  strncat(tTitNum3,title, 100);
  fPzMultReal = new TH3D(tTitNum3,title,nqbins,QLo,QHi,nphibins,
			 -TMath::Pi()-shiftPhi,TMath::Pi()-shiftPhi,ncthetabins,-1.0,1.0);

  //Setup Pt MultReal
  char tTitNum4[101] = "PtMultReal";
  strncat(tTitNum4,title, 100);
  fPtMultReal = new TH3D(tTitNum4,title,nqbins,QLo,QHi,nphibins,
			 -TMath::Pi()-shiftPhi,TMath::Pi()-shiftPhi,ncthetabins,-1.0,1.0);
  */ 


  //Setup EnergyTotalMix
  char tTitNum5[101] = "ESumMix";
  strncat(tTitNum5,title, 100);
  fEnergyTotalMix = new TH3D(tTitNum5,title,nqbins,QLo,QHi,nphibins,
			     -TMath::Pi()-shiftPhi,TMath::Pi()-shiftPhi,ncthetabins,-1.0,1.0);
  
  //Setup EnergyMultMix
  char tTitNum6[101] = "EMultMix";
  strncat(tTitNum6,title, 100);
  fEnergyMultMix = new TH3D(tTitNum6,title,nqbins,QLo,QHi,nphibins,
			    -TMath::Pi()-shiftPhi,TMath::Pi()-shiftPhi,ncthetabins,-1.0,1.0);
  
  //Setup Pz MultMix
  char tTitNum7[101] = "PzMultMix";
  strncat(tTitNum7,title, 100);
  fPzMultMix = new TH3D(tTitNum7,title,nqbins,QLo,QHi,nphibins,
			-TMath::Pi()-shiftPhi,TMath::Pi()-shiftPhi,ncthetabins,-1.0,1.0);

  //Setup Pt MultMix
  char tTitNum8[101] = "PtMultMix";
  strncat(tTitNum8,title, 100);
  fPtMultMix = new TH3D(tTitNum8,title,nqbins,QLo,QHi,nphibins,
			-TMath::Pi()-shiftPhi,TMath::Pi()-shiftPhi,
			ncthetabins,-1.0,1.0);

  // to enable error bar calculation...
  fNumerator->Sumw2();
  fDenominator->Sumw2();
  /*fEnergyTotalReal->Sumw2();
  fEnergyMultReal->Sumw2();
  fPzMultReal->Sumw2();
  fPtMultReal->Sumw2();  */
  fEnergyTotalMix->Sumw2();
  fEnergyMultMix->Sumw2();
  fPzMultMix->Sumw2();
  fPtMultMix->Sumw2();


}

AliFemtoCorrFctn3DSphericalEMCIC::AliFemtoCorrFctn3DSphericalEMCIC(const AliFemtoCorrFctn3DSphericalEMCIC& aCorrFctn) :
  AliFemtoCorrFctn(),
  fNumerator(0),
  fDenominator(0),
  /*fEnergyTotalReal(0),
  fEnergyMultReal(0),        
  fPzMultReal(0),      
  fPtMultReal(0),            */
  fEnergyTotalMix (0),      
  fEnergyMultMix (0),      
  fPzMultMix(0),            
  fPtMultMix(0),
  fPairCut(0x0)
{
  // Copy constructor
  fNumerator = new TH3D(*aCorrFctn.fNumerator);
  fDenominator = new TH3D(*aCorrFctn.fDenominator);
  /*fEnergyTotalReal = new TH3D(*aCorrFctn.fEnergyTotalReal);
  fEnergyMultReal = new TH3D(*aCorrFctn.fEnergyMultReal);
  fPzMultReal = new TH3D(*aCorrFctn.fPzMultReal);
  fPtMultReal = new TH3D(*aCorrFctn.fPtMultReal);*/
  fEnergyTotalMix = new TH3D(*aCorrFctn.fEnergyTotalMix);
  fEnergyMultMix = new TH3D(*aCorrFctn.fEnergyMultMix);
  fPzMultMix = new TH3D(*aCorrFctn.fPzMultMix);
  fPtMultMix = new TH3D(*aCorrFctn.fPtMultMix);
  fPairCut = aCorrFctn.fPairCut;
}
//____________________________
AliFemtoCorrFctn3DSphericalEMCIC::~AliFemtoCorrFctn3DSphericalEMCIC(){
  // Destructor
  delete fNumerator;
  delete fDenominator;
  /*delete fEnergyTotalReal;
  delete fEnergyMultReal;        
  delete fPzMultReal;     
  delete fPtMultReal;            */
  delete fEnergyTotalMix;      
  delete fEnergyMultMix; 
  delete fPzMultMix;   
  delete fPtMultMix;
}
//_________________________
AliFemtoCorrFctn3DSphericalEMCIC& AliFemtoCorrFctn3DSphericalEMCIC::operator=(const AliFemtoCorrFctn3DSphericalEMCIC& aCorrFctn)
{
  // assignment operator
  if (this == &aCorrFctn)
    return *this;

  if (fNumerator) delete fNumerator;
  fNumerator = new TH3D(*aCorrFctn.fNumerator);
  if (fDenominator) delete fDenominator;
  fDenominator = new TH3D(*aCorrFctn.fDenominator);
  /*  if (fEnergyTotalReal) delete fEnergyTotalReal;
  fEnergyTotalReal = new TH3D(*aCorrFctn.fEnergyTotalReal);
  if (fEnergyMultReal) delete fEnergyMultReal;
  fEnergyMultReal = new TH3D(*aCorrFctn.fEnergyMultReal);
  if (fPzMultReal) delete fPzMultReal;
  fPzMultReal = new TH3D(*aCorrFctn.fPzMultReal);
  if (fPtMultReal) delete fPtMultReal;
  fPtMultReal = new TH3D(*aCorrFctn.fPtMultReal);  */
  if (fEnergyTotalMix) delete fEnergyTotalMix;
  fEnergyTotalMix = new TH3D(*aCorrFctn.fEnergyTotalMix);
  if (fEnergyMultMix) delete fEnergyMultMix;
  fEnergyMultMix = new TH3D(*aCorrFctn.fEnergyMultMix);
  if (fPzMultMix) delete fPzMultMix;
  fPzMultMix = new TH3D(*aCorrFctn.fPzMultMix);
  if (fPtMultMix) delete fPtMultMix;
  fPtMultMix = new TH3D(*aCorrFctn.fPtMultMix);
  fPairCut = aCorrFctn.fPairCut;
  
  return *this;
}

//_________________________
void AliFemtoCorrFctn3DSphericalEMCIC::WriteOutHistos(){
  // Write out all histograms to file
  fNumerator->Write();
  fDenominator->Write();
  /*fEnergyTotalReal->Write();
  fEnergyMultReal->Write();        
  fPzMultReal->Write();      
  fPtMultReal->Write();            */
  fEnergyTotalMix->Write();      
  fEnergyMultMix->Write();      
  fPzMultMix->Write();            
  fPtMultMix->Write();
}
//______________________________
TList* AliFemtoCorrFctn3DSphericalEMCIC::GetOutputList()
{
  // Prepare the list of objects to be written to the output
  TList *tOutputList = new TList();

  tOutputList->Add(fNumerator); 
  tOutputList->Add(fDenominator);  
  /*  tOutputList->Add(fEnergyTotalReal);
  tOutputList->Add(fEnergyMultReal);        
  tOutputList->Add(fPzMultReal);      
  tOutputList->Add(fPtMultReal);            */
  tOutputList->Add(fEnergyTotalMix );      
  tOutputList->Add(fEnergyMultMix );      
  tOutputList->Add(fPzMultMix);            
  tOutputList->Add(fPtMultMix);
  return tOutputList;
}

//_________________________
void AliFemtoCorrFctn3DSphericalEMCIC::Finish(){
  // here is where we should normalize, fit, etc...
}

//____________________________
AliFemtoString AliFemtoCorrFctn3DSphericalEMCIC::Report(){
  // Construct the report
  string stemp = "PRF Frame SphericalEMCIC 3D 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;

  if (fPairCut){
    snprintf(ctemp , 100, "Here is the PairCut specific to this CorrFctn\n");
    stemp += ctemp;
    stemp += fPairCut->Report();
  }
  else{
    snprintf(ctemp , 100, "No PairCut specific to this CorrFctn\n");
    stemp += ctemp;
  }

  //  
  AliFemtoString returnThis = stemp;
  return returnThis;
}
//____________________________
void AliFemtoCorrFctn3DSphericalEMCIC::AddRealPair( AliFemtoPair* pair){
  // perform operations on real pairs
  if (fPairCut){
    AliFemtoKTPairCut *ktc = dynamic_cast<AliFemtoKTPairCut *>(fPairCut);
    if (!ktc){
      if (!(fPairCut->Pass(pair))) return;
    }
    else
      if (!(ktc->Pass(pair))) return;
  }

  //                          
  double tQO = pair->QOutCMS();  
  double tQS = pair->QSideCMS();  
  double tQL = pair->QLongCMS();  

  double tQR = sqrt(tQO*tQO + tQS*tQS + tQL*tQL);
  double tQC = 0;
  if ( fabs(tQR) < 1e-10 ) tQC = 0.0;
  else tQC = tQL/tQR;
  double tQP = atan2(tQS,tQO);

  fNumerator->Fill(tQR,tQP,tQC);
  
  // EMCICs  
  /*AliFemtoLorentzVector tMom1 = pair->Track1()->FourMomentum();
  AliFemtoLorentzVector tMom2 = pair->Track2()->FourMomentum();
  double tE1 = tMom1.e();
  double tE2 = tMom2.e();
  double tPz1 = tMom1.pz();
  double tPz2 = tMom2.pz();
  
  TVector2 tPt1;  
  TVector2 tPt2; 
  tPt1.Set(tMom1.px(),tMom1.py());
  tPt2.Set(tMom2.px(),tMom2.py());
  double tPt1DotPt2 = tPt1*tPt2;
  
  fEnergyTotalReal->Fill(tQR,tQP,tQC,tE1+tE2);
  fEnergyMultReal->Fill(tQR,tQP,tQC,tE1*tE2);
  fPzMultReal->Fill(tQR,tQP,tQC,tPz1*tPz2);
  fPtMultReal->Fill(tQR,tQP,tQC,tPt1DotPt2);*/
   

}
//____________________________
void AliFemtoCorrFctn3DSphericalEMCIC::AddMixedPair( AliFemtoPair* pair){
  // perform operations on mixed pairs
  if (fPairCut){
    AliFemtoKTPairCut *ktc = dynamic_cast<AliFemtoKTPairCut *>(fPairCut);
    if (!ktc){
      if (!(fPairCut->Pass(pair))) return;
    }
    else
      if (!(ktc->Pass(pair))) return;
  }
  


 //                          //Changed K to Q to be in LCMS, N. Bock
  double tQO = pair->QOutCMS();  
  double tQS = pair->QSideCMS();   
  double tQL = pair->QLongCMS();  

  double tQR = sqrt(tQO*tQO + tQS*tQS + tQL*tQL);
  double tQC;
  if ( fabs(tQR) < 1e-10 ) tQC = 0.0;
  else tQC=tQL/tQR;
  double tQP=atan2(tQS,tQO);

  fDenominator->Fill(tQR,tQP,tQC);

  // EMCICs   
  AliFemtoLorentzVector tMom1 = pair->Track1()->FourMomentum();
  AliFemtoLorentzVector tMom2 = pair->Track2()->FourMomentum();
  double tE1 = tMom1.e();
  double tE2 = tMom2.e();
  double tPz1 = tMom1.pz();
  double tPz2 = tMom2.pz();
  
  TVector2 tPt1;  
  TVector2 tPt2; 
  tPt1.Set(tMom1.px(),tMom1.py());
  tPt2.Set(tMom2.px(),tMom2.py());
  double tPt1DotPt2 = tPt1*tPt2;
  
  fEnergyTotalMix->Fill(tQR,tQP,tQC,tE1+tE2);
  fEnergyMultMix->Fill(tQR,tQP,tQC,tE1*tE2);
  fPzMultMix->Fill(tQR,tQP,tQC,tPz1*tPz2);
  fPtMultMix->Fill(tQR,tQP,tQC,tPt1DotPt2);
  
}

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