ROOT logo
#include <iostream>
#include <math.h>
#include "TChain.h"
#include "TFile.h"
#include "TKey.h"
#include "TObject.h"
#include "TObjString.h"
#include "TList.h"
#include "TTree.h"
#include "TH1F.h"
#include "TH1D.h"
#include "TH2D.h"
#include "TH3D.h"
#include "TProfile.h"
#include "TProfile2D.h"
#include "TCanvas.h"
#include "TRandom3.h"
#include "TF1.h"

#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"


#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliESDtrackCuts.h"

#include "AliAODEvent.h"
#include "AliAODInputHandler.h"
#include "AliAODMCParticle.h"

#include "AliChaoticity.h"

#define PI 3.1415927
#define G_Coeff 0.006399 // 2*pi*alpha*M_pion
#define kappa3 0.24 // kappa3 Edgeworth coefficient (non-Gaussian features of C2)
#define kappa4 0.16 // kappa4 Edgeworth coefficient (non-Gaussian features of C2)


// Author: Dhevan Gangadharan

ClassImp(AliChaoticity)

//________________________________________________________________________
AliChaoticity::AliChaoticity():
AliAnalysisTaskSE(),
  fname(0),
  fAOD(0x0), 
  fOutputList(0x0),
  fPIDResponse(0x0),
  fEC(0x0),
  fEvt(0x0),
  fTempStruct(0x0),
  fRandomNumber(0x0),
  fLEGO(kTRUE),
  fMCcase(kFALSE),
  fAODcase(kTRUE),
  fPbPbcase(kTRUE),
  fGenerateSignal(kFALSE),
  fGeneratorOnly(kFALSE),
  fPdensityExplicitLoop(kFALSE),
  fPdensityPairCut(kTRUE),
  fTabulatePairs(kFALSE),
  fRMax(11),
  fFixedLambdaBinMomRes(9),
  fFixedLambdaBinr3(10),
  fFilterBit(7),
  fMaxChi2NDF(10),
  fMinTPCncls(0),
  fBfield(0),
  fMbin(0),
  fFSIbin(0),
  fEDbin(0),
  fMbins(fCentBins),
  fMultLimit(0),
  fCentBinLowLimit(0),
  fCentBinHighLimit(1),
  fEventCounter(0),
  fEventsToMix(0),
  fZvertexBins(0),
  fMultLimits(),
  fQcut(),
  fQLowerCut(0),
  fNormQcutLow(),
  fNormQcutHigh(),
  fKupperBound(0),
  fQupperBound(0),
  fQupperBoundWeights(0),
  fKstepT(),
  fKstepY(),
  fKmeanT(),
  fKmeanY(),
  fKmiddleT(),
  fKmiddleY(),
  fQstep(0),
  fQstepWeights(0),
  fQmean(),
  fDampStart(0),
  fDampStep(0),
  fTPCTOFboundry(0),
  fTOFboundry(0),
  fSigmaCutTPC(2.0),
  fSigmaCutTOF(2.0),
  fMinSepPairEta(0.03),
  fMinSepPairPhi(0.04),
  fShareQuality(0),
  fShareFraction(0),
  fTrueMassP(0), 
  fTrueMassPi(0), 
  fTrueMassK(0), 
  fTrueMassKs(0), 
  fTrueMassLam(0),
  fKtIndexL(0),
  fKtIndexH(0),
  fQoIndexL(0),
  fQoIndexH(0),
  fQsIndexL(0),
  fQsIndexH(0),
  fQlIndexL(0),
  fQlIndexH(0),
  fDummyB(0),
  fDefaultsCharMult(),
  fDefaultsCharSE(),
  fDefaultsCharME(),
  fDefaultsInt(),
  fPairLocationSE(),
  fPairLocationME(),
  fTripletSkip1(),
  fTripletSkip2(),
  fOtherPairLocation1(),
  fOtherPairLocation2(),
  fNormPairSwitch(),
  fPairSplitCut(),
  fNormPairs(),
  fMomResC2(0x0),
  fFSI2SS(0x0),
  fFSI2OS(0x0)
{
  // Default constructor
  for(Int_t mb=0; mb<fMbins; mb++){
    for(Int_t edB=0; edB<fEDbins; edB++){
      for(Int_t c1=0; c1<2; c1++){
	for(Int_t c2=0; c2<2; c2++){
	  for(Int_t sc=0; sc<kSCLimit2; sc++){
	    for(Int_t term=0; term<2; term++){
	      
	      Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fExplicit2=0x0;
	      
	      Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fIdeal = 0x0;
	      Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fSmeared = 0x0;
	      Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[0].fExplicit2OSL = 0x0;
	      Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[0].fExplicit2OSLQW = 0x0;
	      Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[1].fExplicit2OSL = 0x0;
	      Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[1].fExplicit2OSLQW = 0x0;
	      
	    }// term_2
	  }// SC_2
	  
	  for(Int_t c3=0; c3<2; c3++){
	    for(Int_t sc=0; sc<kSCLimit3; sc++){
	      for(Int_t term=0; term<5; term++){
		
		Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fExplicit3 = 0x0;
		Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fNormEx3 = 0x0;
		Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fNorm3 = 0x0;
		Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fTerms3 = 0x0;
		for(Int_t dt=0; dt<kDENtypes; dt++){
		  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].fTwoPartNorm = 0x0;
		  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNorm = 0x0;
		  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNorm = 0x0;
		  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNormIdeal = 0x0;
		  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNormIdeal = 0x0;
		  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNormSmeared = 0x0;
		  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNormSmeared = 0x0;
		}//dt
		
	      }// term_3
	    }// SC_3
	  }//c3
	}//c2
      }//c1
      for(Int_t tKbin=0; tKbin<fKbinsT; tKbin++){
	for(Int_t yKbin=0; yKbin<fKbinsY; yKbin++){
	  KT[tKbin].KY[yKbin].MB[mb].EDB[edB].TwoPT[0].fExplicit2ThreeD = 0x0;
	  KT[tKbin].KY[yKbin].MB[mb].EDB[edB].TwoPT[1].fExplicit2ThreeD = 0x0;
	}
      }
      
    }// ED
  }// Mbin
  
  // Initialize 3-pion FSI histograms
  for(Int_t i=0; i<6; i++){
    fFSIOmega0SS[i]=0x0; 
    fFSIOmega0OS[i]=0x0;
  }


  // Initialize fNormWeight and fNormWeightErr to 0
  for(Int_t i=0; i<3; i++){// Kt iterator
    for(Int_t j=0; j<10; j++){// Mbin iterator
      fNormWeight[i][j]=0x0;
    }
  }
  

}
//________________________________________________________________________
AliChaoticity::AliChaoticity(const Char_t *name) 
: AliAnalysisTaskSE(name), 
  fname(name),
  fAOD(0x0), 
  fOutputList(0x0),
  fPIDResponse(0x0),
  fEC(0x0),
  fEvt(0x0),
  fTempStruct(0x0),
  fRandomNumber(0x0),
  fLEGO(kTRUE),
  fMCcase(kFALSE),
  fAODcase(kTRUE),
  fPbPbcase(kTRUE),
  fGenerateSignal(kFALSE),
  fGeneratorOnly(kFALSE),
  fPdensityExplicitLoop(kFALSE),
  fPdensityPairCut(kTRUE),
  fTabulatePairs(kFALSE),
  fRMax(11),
  fFixedLambdaBinMomRes(9),
  fFixedLambdaBinr3(10),
  fFilterBit(7),
  fMaxChi2NDF(10),
  fMinTPCncls(0),
  fBfield(0),
  fMbin(0),
  fFSIbin(0),
  fEDbin(0),
  fMbins(fCentBins),
  fMultLimit(0),
  fCentBinLowLimit(0),
  fCentBinHighLimit(1),
  fEventCounter(0),
  fEventsToMix(0),
  fZvertexBins(0),
  fMultLimits(),
  fQcut(),
  fQLowerCut(0),
  fNormQcutLow(),
  fNormQcutHigh(),
  fKupperBound(0),
  fQupperBound(0),
  fQupperBoundWeights(0),
  fKstepT(),
  fKstepY(),
  fKmeanT(),
  fKmeanY(),
  fKmiddleT(),
  fKmiddleY(),
  fQstep(0),
  fQstepWeights(0),
  fQmean(),
  fDampStart(0),
  fDampStep(0),
  fTPCTOFboundry(0),
  fTOFboundry(0),
  fSigmaCutTPC(2.0),
  fSigmaCutTOF(2.0),
  fMinSepPairEta(0.03),
  fMinSepPairPhi(0.04),
  fShareQuality(0),
  fShareFraction(0),
  fTrueMassP(0), 
  fTrueMassPi(0), 
  fTrueMassK(0), 
  fTrueMassKs(0), 
  fTrueMassLam(0),
  fKtIndexL(0),
  fKtIndexH(0),
  fQoIndexL(0),
  fQoIndexH(0),
  fQsIndexL(0),
  fQsIndexH(0),
  fQlIndexL(0),
  fQlIndexH(0),
  fDummyB(0),
  fDefaultsCharMult(),
  fDefaultsCharSE(),
  fDefaultsCharME(),
  fDefaultsInt(),
  fPairLocationSE(),
  fPairLocationME(),
  fTripletSkip1(),
  fTripletSkip2(),
  fOtherPairLocation1(),
  fOtherPairLocation2(),
  fNormPairSwitch(),
  fPairSplitCut(),
  fNormPairs(),
  fMomResC2(0x0),
  fFSI2SS(0x0),
  fFSI2OS(0x0)
{
  // Main constructor
  fAODcase=kTRUE;
  fPdensityExplicitLoop = kFALSE;
  fPdensityPairCut = kTRUE;
  

  for(Int_t mb=0; mb<fMbins; mb++){
    for(Int_t edB=0; edB<fEDbins; edB++){
      for(Int_t c1=0; c1<2; c1++){
	for(Int_t c2=0; c2<2; c2++){
	  for(Int_t sc=0; sc<kSCLimit2; sc++){
	    for(Int_t term=0; term<2; term++){
	      
	      Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fExplicit2=0x0;
	      
	      Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fIdeal = 0x0;
	      Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fSmeared = 0x0;
	      Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[0].fExplicit2OSL = 0x0;
	      Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[0].fExplicit2OSLQW = 0x0;
	      Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[1].fExplicit2OSL = 0x0;
	      Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[1].fExplicit2OSLQW = 0x0;
	      
	    }// term_2
	  }// SC_2
	  
	  for(Int_t c3=0; c3<2; c3++){
	    for(Int_t sc=0; sc<kSCLimit3; sc++){
	      for(Int_t term=0; term<5; term++){
		
		Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fExplicit3 = 0x0;
		Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fNormEx3 = 0x0;
		Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fNorm3 = 0x0;
		Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fTerms3 = 0x0;
		for(Int_t dt=0; dt<kDENtypes; dt++){
		  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].fTwoPartNorm = 0x0;
		  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNorm = 0x0;
		  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNorm = 0x0;
		  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNormIdeal = 0x0;
		  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNormIdeal = 0x0;
		  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNormSmeared = 0x0;
		  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNormSmeared = 0x0;
		}//dt
		
	      }// term_3
	    }// SC_3
	  }//c3
	}//c2
      }//c1
      for(Int_t tKbin=0; tKbin<fKbinsT; tKbin++){
	for(Int_t yKbin=0; yKbin<fKbinsY; yKbin++){
	  KT[tKbin].KY[yKbin].MB[mb].EDB[edB].TwoPT[0].fExplicit2ThreeD = 0x0;
	  KT[tKbin].KY[yKbin].MB[mb].EDB[edB].TwoPT[1].fExplicit2ThreeD = 0x0;
	}
      }
      
    }// ED
  }// Mbin
  
  // Initialize 3-pion FSI histograms
  for(Int_t i=0; i<6; i++){
    fFSIOmega0SS[i]=0x0; 
    fFSIOmega0OS[i]=0x0;
  }
  
  // Initialize fNormWeight and fNormWeightErr to 0
  for(Int_t i=0; i<3; i++){// Kt iterator
    for(Int_t j=0; j<10; j++){// Mbin iterator
      fNormWeight[i][j]=0x0;
    }
  }


  DefineOutput(1, TList::Class());
}
//________________________________________________________________________
AliChaoticity::AliChaoticity(const AliChaoticity &obj) 
  : AliAnalysisTaskSE(obj.fname),
    fname(obj.fname),
    fAOD(obj.fAOD), 
    //fESD(obj.fESD), 
    fOutputList(obj.fOutputList),
    fPIDResponse(obj.fPIDResponse),
    fEC(obj.fEC),
    fEvt(obj.fEvt),
    fTempStruct(obj.fTempStruct),
    fRandomNumber(obj.fRandomNumber),
    fLEGO(obj.fLEGO),
    fMCcase(obj.fMCcase),
    fAODcase(obj.fAODcase),
    fPbPbcase(obj.fPbPbcase),
    fGenerateSignal(obj.fGenerateSignal),
    fGeneratorOnly(obj.fGeneratorOnly),
    fPdensityExplicitLoop(obj.fPdensityExplicitLoop),
    fPdensityPairCut(obj.fPdensityPairCut),
    fTabulatePairs(obj.fTabulatePairs),
    fRMax(obj.fRMax),
    fFixedLambdaBinMomRes(obj.fFixedLambdaBinMomRes),
    fFixedLambdaBinr3(obj.fFixedLambdaBinr3),
    fFilterBit(obj.fFilterBit),
    fMaxChi2NDF(obj.fMaxChi2NDF),
    fMinTPCncls(obj.fMinTPCncls),
    fBfield(obj.fBfield),
    fMbin(obj.fMbin),
    fFSIbin(obj.fFSIbin),
    fEDbin(obj.fEDbin),
    fMbins(obj.fMbins),
    fMultLimit(obj.fMultLimit),
    fCentBinLowLimit(obj.fCentBinLowLimit),
    fCentBinHighLimit(obj.fCentBinHighLimit),
    fEventCounter(obj.fEventCounter),
    fEventsToMix(obj.fEventsToMix),
    fZvertexBins(obj.fZvertexBins),
    fMultLimits(),
    fQcut(),
    fQLowerCut(obj.fQLowerCut),
    fNormQcutLow(),
    fNormQcutHigh(),
    fKupperBound(obj.fKupperBound),
    fQupperBound(obj.fQupperBound),
    fQupperBoundWeights(obj.fQupperBoundWeights),
    fKstepT(),
    fKstepY(),
    fKmeanT(),
    fKmeanY(),
    fKmiddleT(),
    fKmiddleY(),
    fQstep(obj.fQstep),
    fQstepWeights(obj.fQstepWeights),
    fQmean(),
    fDampStart(obj.fDampStart),
    fDampStep(obj.fDampStep),
    fTPCTOFboundry(obj.fTPCTOFboundry),
    fTOFboundry(obj.fTOFboundry),
    fSigmaCutTPC(obj.fSigmaCutTPC),
    fSigmaCutTOF(obj.fSigmaCutTOF),
    fMinSepPairEta(obj.fMinSepPairEta),
    fMinSepPairPhi(obj.fMinSepPairPhi),
    fShareQuality(obj.fShareQuality),
    fShareFraction(obj.fShareFraction),
    fTrueMassP(obj.fTrueMassP), 
    fTrueMassPi(obj.fTrueMassPi), 
    fTrueMassK(obj.fTrueMassK), 
    fTrueMassKs(obj.fTrueMassKs), 
    fTrueMassLam(obj.fTrueMassLam),
    fKtIndexL(obj.fKtIndexL),
    fKtIndexH(obj.fKtIndexH),
    fQoIndexL(obj.fQoIndexL),
    fQoIndexH(obj.fQoIndexH),
    fQsIndexL(obj.fQsIndexL),
    fQsIndexH(obj.fQsIndexH),
    fQlIndexL(obj.fQlIndexL),
    fQlIndexH(obj.fQlIndexH),
    fDummyB(obj.fDummyB),
    fDefaultsCharMult(),
    fDefaultsCharSE(),
    fDefaultsCharME(),
    fDefaultsInt(),
    fPairLocationSE(),
    fPairLocationME(),
    fTripletSkip1(),
    fTripletSkip2(),
    fOtherPairLocation1(),
    fOtherPairLocation2(),
    fNormPairSwitch(),
    fPairSplitCut(),
    fNormPairs(),
    fMomResC2(obj.fMomResC2),
    fFSI2SS(obj.fFSI2SS),
    fFSI2OS(obj.fFSI2OS)
{
  // Copy Constructor
  
  for(Int_t i=0; i<6; i++){
    fFSIOmega0SS[i]=obj.fFSIOmega0SS[i]; 
    fFSIOmega0OS[i]=obj.fFSIOmega0OS[i];
  }
  
  // Initialize fNormWeight and fNormWeightErr to 0
  for(Int_t i=0; i<3; i++){// Kt iterator
    for(Int_t j=0; j<10; j++){// Mbin iterator
      fNormWeight[i][j]=0x0;
    }
  }
  

}
//________________________________________________________________________
AliChaoticity &AliChaoticity::operator=(const AliChaoticity &obj) 
{
  // Assignment operator  
  if (this == &obj)
    return *this;

  fname = obj.fname;
  fAOD = obj.fAOD; 
  fOutputList = obj.fOutputList;
  fPIDResponse = obj.fPIDResponse;
  fEC = obj.fEC;
  fEvt = obj.fEvt;
  fTempStruct = obj.fTempStruct;
  fRandomNumber = obj.fRandomNumber;
  fLEGO = obj.fLEGO;
  fMCcase = obj.fMCcase;
  fAODcase = obj.fAODcase;
  fPbPbcase = obj.fPbPbcase; 
  fGenerateSignal = obj.fGenerateSignal;
  fGeneratorOnly = obj.fGeneratorOnly;
  fPdensityExplicitLoop = obj.fPdensityExplicitLoop;
  fPdensityPairCut = obj.fPdensityPairCut;
  fTabulatePairs = obj.fTabulatePairs;
  fRMax = obj.fRMax;
  fFixedLambdaBinMomRes = obj.fFixedLambdaBinMomRes;
  fFixedLambdaBinr3 = obj.fFixedLambdaBinr3;
  fFilterBit = obj.fFilterBit;
  fMaxChi2NDF = obj.fMaxChi2NDF;
  fMinTPCncls = obj.fMinTPCncls;
  fBfield = obj.fBfield;
  fMbin = obj.fMbin;
  fFSIbin = obj.fFSIbin;
  fEDbin = obj.fEDbin;
  fMbins = obj.fMbins;
  fMultLimit = obj.fMultLimit;
  fCentBinLowLimit = obj.fCentBinLowLimit;
  fCentBinHighLimit = obj.fCentBinHighLimit;
  fEventCounter = obj.fEventCounter;
  fEventsToMix = obj.fEventsToMix;
  fZvertexBins = obj.fZvertexBins;
  fQLowerCut = obj.fQLowerCut;
  fKupperBound = obj.fKupperBound;
  fQupperBound = obj.fQupperBound;
  fQupperBoundWeights = obj.fQupperBoundWeights;
  fQstep = obj.fQstep;
  fQstepWeights = obj.fQstepWeights;
  fDampStart = obj.fDampStart;
  fDampStep = obj.fDampStep;
  fTPCTOFboundry = obj.fTPCTOFboundry;
  fTOFboundry = obj.fTOFboundry;
  fSigmaCutTPC = obj.fSigmaCutTPC;
  fSigmaCutTOF = obj.fSigmaCutTOF;
  fMinSepPairEta = obj.fMinSepPairEta;
  fMinSepPairPhi = obj.fMinSepPairPhi;
  fShareQuality = obj.fShareQuality;
  fShareFraction = obj.fShareFraction;
  fTrueMassP = obj.fTrueMassP; 
  fTrueMassPi = obj.fTrueMassPi; 
  fTrueMassK = obj.fTrueMassK; 
  fTrueMassKs = obj.fTrueMassKs; 
  fTrueMassLam = obj.fTrueMassLam;
  fKtIndexL = obj.fKtIndexL;
  fKtIndexH = obj.fKtIndexH;
  fQoIndexL = obj.fQoIndexL;
  fQoIndexH = obj.fQoIndexH;
  fQsIndexL = obj.fQsIndexL;
  fQsIndexH = obj.fQsIndexH;
  fQlIndexL = obj.fQlIndexL;
  fQlIndexH = obj.fQlIndexH;
  fDummyB = obj.fDummyB;
  fMomResC2 = obj.fMomResC2;
  fFSI2SS = obj.fFSI2SS; 
  fFSI2OS = obj.fFSI2OS;
 
  for(Int_t i=0; i<6; i++){
    fFSIOmega0SS[i]=obj.fFSIOmega0SS[i]; 
    fFSIOmega0OS[i]=obj.fFSIOmega0OS[i];
  }
  for(Int_t i=0; i<3; i++){// Kt iterator
    for(Int_t j=0; j<10; j++){// Mbin iterator
      fNormWeight[i][j]=obj.fNormWeight[i][j];
    }
  }
  
  return (*this);
}
//________________________________________________________________________
AliChaoticity::~AliChaoticity()
{
  // Destructor
  if(fAOD) delete fAOD; 
  //if(fESD) delete fESD; 
  if(fOutputList) delete fOutputList;
  if(fPIDResponse) delete fPIDResponse;
  if(fEC) delete fEC;
  if(fEvt) delete fEvt;
  if(fTempStruct) delete [] fTempStruct;
  if(fRandomNumber) delete fRandomNumber;
  if(fMomResC2) delete fMomResC2;
  if(fFSI2SS) delete fFSI2SS;
  if(fFSI2OS) delete fFSI2OS;

  for(Int_t i=0; i<fMultLimit; i++){
    if(fPairLocationSE[i]) delete [] fPairLocationSE[i];
    if(fPairLocationME[i]) delete [] fPairLocationME[i];
    for(Int_t j=0; j<2; j++){
      if(fOtherPairLocation1[j][i]) delete [] fOtherPairLocation1[j][i];
      if(fOtherPairLocation2[j][i]) delete [] fOtherPairLocation2[j][i];
    }
    for(Int_t j=0; j<3; j++) if(fNormPairSwitch[j][i]) delete [] fNormPairSwitch[j][i];
    for(Int_t j=0; j<4; j++) if(fPairSplitCut[j][i]) delete [] fPairSplitCut[j][i];
  }
  for(Int_t i=0; i<kPairLimit; i++) if(fTripletSkip1[i]) delete [] fTripletSkip1[i];
  for(Int_t i=0; i<2*kPairLimit; i++) if(fTripletSkip2[i]) delete [] fTripletSkip2[i];
  for(Int_t i=0; i<3; i++) if(fNormPairs[i]) delete [] fNormPairs[i];
  //
  for(Int_t mb=0; mb<fMbins; mb++){
    for(Int_t edB=0; edB<fEDbins; edB++){
      for(Int_t c1=0; c1<2; c1++){
	for(Int_t c2=0; c2<2; c2++){
	  for(Int_t sc=0; sc<kSCLimit2; sc++){
	    for(Int_t term=0; term<2; term++){
	      
	      if(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fExplicit2) delete Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fExplicit2;
	      
	      if(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fIdeal) delete Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fIdeal;
	      if(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fSmeared) delete Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fSmeared;
	      if(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[0].fExplicit2OSL) delete Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[0].fExplicit2OSL;
	      if(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[0].fExplicit2OSLQW) delete Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[0].fExplicit2OSLQW;
	      if(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[1].fExplicit2OSL) delete Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[1].fExplicit2OSL;
	      if(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[1].fExplicit2OSLQW) delete Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[1].fExplicit2OSLQW;
	      //
	      if(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fMCqinv) delete Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fMCqinv;
	      if(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fMCqinvQW) delete Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fMCqinvQW;
	    }// term_2
	  }// SC_2
	  
	  for(Int_t c3=0; c3<2; c3++){
	    for(Int_t sc=0; sc<kSCLimit3; sc++){
	      for(Int_t term=0; term<5; term++){
		
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fExplicit3) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fExplicit3;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fNormEx3) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fNormEx3;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fNorm3) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fNorm3;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fTerms3) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fTerms3;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1Terms) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1Terms;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2Terms) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2Terms;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsIdeal) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsIdeal;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsIdeal) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsIdeal;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsSmeared) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsSmeared;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsSmeared) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsSmeared;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1Q3W) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1Q3W;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2Q3W) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2Q3W;
		//
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsSumK3) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsSumK3;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsSumK3) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsSumK3;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsEnK3) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsEnK3;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsEnK3) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsEnK3;
		//
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsSumK2) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsSumK2;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsSumK2) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsSumK2;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsEnK2) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsEnK2;
		if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsEnK2) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsEnK2;

		//
		for(Int_t dt=0; dt<kDENtypes; dt++){
		  if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].fTwoPartNorm) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].fTwoPartNorm;
		  if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNorm) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNorm;
		  if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNorm) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNorm;
		  if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNormIdeal) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNormIdeal;
		  if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNormIdeal) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNormIdeal;
		  if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNormSmeared) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNormSmeared;
		  if(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNormIdeal) delete Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNormSmeared;

		}//dt
		
	      }// term_3
	    }// SC_3
	  }//c3
	}//c2
      }//c1
      for(Int_t tKbin=0; tKbin<fKbinsT; tKbin++){
	for(Int_t yKbin=0; yKbin<fKbinsY; yKbin++){
	  if(KT[tKbin].KY[yKbin].MB[mb].EDB[edB].TwoPT[0].fExplicit2ThreeD) delete KT[tKbin].KY[yKbin].MB[mb].EDB[edB].TwoPT[0].fExplicit2ThreeD;
	  if(KT[tKbin].KY[yKbin].MB[mb].EDB[edB].TwoPT[1].fExplicit2ThreeD) delete KT[tKbin].KY[yKbin].MB[mb].EDB[edB].TwoPT[1].fExplicit2ThreeD;
	}
      }
      
    }// ED
  }// Mbin
  
   
  for(Int_t i=0; i<6; i++){
    if(fFSIOmega0SS[i]) delete fFSIOmega0SS[i]; 
    if(fFSIOmega0OS[i]) delete fFSIOmega0OS[i];
  }
  for(Int_t i=0; i<3; i++){// Kt iterator
    for(Int_t j=0; j<10; j++){// Mbin iterator
      if(fNormWeight[i][j]) delete fNormWeight[i][j];
    }
  }
  
}
//________________________________________________________________________
void AliChaoticity::ParInit()
{
  cout<<"AliChaoticity MyInit() call"<<endl;
  cout<<"lego:"<<fLEGO<<"  MCcase:"<<fMCcase<<"  PbPbcase:"<<fPbPbcase<<"  TabulatePairs:"<<fTabulatePairs<<"  GenSignal:"<<fGenerateSignal<<"  CentLow:"<<fCentBinLowLimit<<"  CentHigh:"<<fCentBinHighLimit<<"  RMax:"<<fRMax<<"  LambdaBinMomRes:"<<fFixedLambdaBinMomRes<<"  LambdaBinr3:"<<fFixedLambdaBinr3<<"  FB:"<<fFilterBit<<"  MaxChi2/NDF:"<<fMaxChi2NDF<<"  MinTPCncls:"<<fMinTPCncls<<"  MinPairSepEta:"<<fMinSepPairEta<<"  MinPairSepPhi:"<<fMinSepPairPhi<<"  NsigTPC:"<<fSigmaCutTPC<<"  NsigTOF:"<<fSigmaCutTOF<<endl;

  fRandomNumber = new TRandom3();
  fRandomNumber->SetSeed(0);
    
  //
  fEventCounter=0;
  if(fPdensityExplicitLoop) fEventsToMix=3;
  else if(fPdensityPairCut && !fPdensityExplicitLoop) fEventsToMix=2;
  else fEventsToMix=0;
  fZvertexBins=2;//2
  
  fTPCTOFboundry = 0.6;// TPC pid used below this momentum, TOF above but below TOF_boundry
  fTOFboundry = 2.1;// TOF pid used below this momentum
  
  ////////////////////////////////////////////////
  // PadRow Pair Cuts
  fShareQuality = .5;// max
  fShareFraction = .05;// max
  ////////////////////////////////////////////////
  
  
  fMultLimits[0]=0, fMultLimits[1]=2, fMultLimits[2]=4, fMultLimits[3]=6, fMultLimits[4]=8, fMultLimits[5]=10;
  fMultLimits[6]=12, fMultLimits[7]=14, fMultLimits[8]=16, fMultLimits[9]=18, fMultLimits[10]=20, fMultLimits[11]=150;
  
    
  
  if(fPbPbcase) {// PbPb
    fMultLimit=kMultLimitPbPb; 
    fMbins=fCentBins; 
    fQcut[0]=0.1;//pi-pi, pi-k, pi-p
    fQcut[1]=0.1;//k-k
    fQcut[2]=0.6;//the rest
    fNormQcutLow[0] = 0.15;// 0.15 or 1.06
    fNormQcutHigh[0] = 0.175;// 0.175 or 1.1
    fNormQcutLow[1] = 1.34;//1.34
    fNormQcutHigh[1] = 1.4;//1.4
    fNormQcutLow[2] = 1.1;//1.1
    fNormQcutHigh[2] = 1.4;//1.4
  }
  else {// pp
    fMultLimit=kMultLimitpp; 
    fMbins=kMultBinspp; 
    fQcut[0]=0.6;
    fQcut[1]=0.6;
    fQcut[2]=0.6;
    fNormQcutLow[0] = 1.0;
    fNormQcutHigh[0] = 1.5;
    fNormQcutLow[1] = 1.0;
    fNormQcutHigh[1] = 1.5;
    fNormQcutLow[2] = 1.0;
    fNormQcutHigh[2] = 1.5;
  }

  fQLowerCut = 0.005;// was 0.005
  fKupperBound = 1.0;
  //
  fKstepY[0] = 1.6;
  fKmeanY[0] = 0;// central y
  fKmiddleY[0] = 0;

  // 4x1 (Kt: 0-0.25, 0.25-0.35, 0.35-0.45, 0.45-1.0)
  if(fKbinsT==4){
    fKstepT[0] = 0.25; fKstepT[1] = 0.1; fKstepT[2] = 0.1; fKstepT[3] = 0.55;
    fKmeanT[0] = 0.212; fKmeanT[1] = 0.299; fKmeanT[2] = 0.398; fKmeanT[3] = 0.576;
    fKmiddleT[0] = 0.125; fKmiddleT[1] = 0.3; fKmiddleT[2] = 0.4; fKmiddleT[3] = 0.725;
  }
  // 3x1 (Kt: 0-0.3, 0.3-0.45, 0.45-1.0)
  if(fKbinsT==3){
    fKstepT[0] = 0.3; fKstepT[1] = 0.15; fKstepT[2] = 0.55;
    fKmeanT[0] = 0.240; fKmeanT[1] = 0.369; fKmeanT[2] = 0.576;
    fKmiddleT[0] = 0.15; fKmiddleT[1] = 0.375; fKmiddleT[2] = 0.725;
  }
  // 2x1 (Kt: 0-0.35, 0.35-1.0)
  if(fKbinsT==2){
    fKstepT[0] = 0.35; fKstepT[1] = 0.65;
    fKmeanT[0] = 0.264; fKmeanT[1] = 0.500;
    fKmiddleT[0] = 0.175; fKmiddleT[1] = 0.675;
  }
 
  //
  fQupperBoundWeights = 0.2;
  fQupperBound = 0.1;
  fQstep = fQupperBound/Float_t(kQbins);
  fQstepWeights = fQupperBoundWeights/Float_t(kQbinsWeights);
  for(Int_t i=0; i<kQbinsWeights; i++) {fQmean[i]=(i+0.5)*fQstepWeights;}
  //
  fDampStart = 0.5;// was 0.3, then 0.5
  fDampStep = 0.02;
  
  //

  
  fEC = new AliChaoticityEventCollection **[fZvertexBins];
  for(UShort_t i=0; i<fZvertexBins; i++){
    
    fEC[i] = new AliChaoticityEventCollection *[fMbins];

    for(UShort_t j=0; j<fMbins; j++){
      
      fEC[i][j] = new AliChaoticityEventCollection(fEventsToMix+1, fMultLimit, kPairLimit, kMCarrayLimit, fMCcase);
    }
  }
  
    
  for(Int_t i=0; i<fMultLimit; i++) fDefaultsCharMult[i]='0';
  for(Int_t i=0; i<kPairLimit; i++) fDefaultsCharSE[i]='0';
  for(Int_t i=0; i<2*kPairLimit; i++) fDefaultsCharME[i]='0';
  for(Int_t i=0; i<fMultLimit; i++) fDefaultsInt[i]=-1;
  for(Int_t i=0; i<fMultLimit; i++) fPairLocationSE[i] = new TArrayI(fMultLimit,fDefaultsInt);
  for(Int_t i=0; i<fMultLimit; i++) fPairLocationME[i] = new TArrayI(fMultLimit,fDefaultsInt);
  for(Int_t i=0; i<kPairLimit; i++) fTripletSkip1[i] = new TArrayC(fMultLimit,fDefaultsCharSE);
  for(Int_t i=0; i<2*kPairLimit; i++) fTripletSkip2[i] = new TArrayC(fMultLimit,fDefaultsCharME);
 

  // Normalization utilities
  for(Int_t i=0; i<fMultLimit; i++) fOtherPairLocation1[0][i] = new TArrayI(fMultLimit,fDefaultsInt);
  for(Int_t i=0; i<fMultLimit; i++) fOtherPairLocation1[1][i] = new TArrayI(fMultLimit,fDefaultsInt);
  for(Int_t i=0; i<fMultLimit; i++) fOtherPairLocation2[0][i] = new TArrayI(fMultLimit,fDefaultsInt);
  for(Int_t i=0; i<fMultLimit; i++) fOtherPairLocation2[1][i] = new TArrayI(fMultLimit,fDefaultsInt);
  for(Int_t i=0; i<fMultLimit; i++) fNormPairSwitch[0][i] = new TArrayC(fMultLimit,fDefaultsCharMult);
  for(Int_t i=0; i<fMultLimit; i++) fNormPairSwitch[1][i] = new TArrayC(fMultLimit,fDefaultsCharMult);
  for(Int_t i=0; i<fMultLimit; i++) fNormPairSwitch[2][i] = new TArrayC(fMultLimit,fDefaultsCharMult);
 
  // Track Merging/Splitting utilities
  for(Int_t i=0; i<fMultLimit; i++) fPairSplitCut[0][i] = new TArrayC(fMultLimit,fDefaultsCharMult);// P11
  for(Int_t i=0; i<fMultLimit; i++) fPairSplitCut[1][i] = new TArrayC(fMultLimit,fDefaultsCharMult);// P12
  for(Int_t i=0; i<fMultLimit; i++) fPairSplitCut[2][i] = new TArrayC(fMultLimit,fDefaultsCharMult);// P13
  for(Int_t i=0; i<fMultLimit; i++) fPairSplitCut[3][i] = new TArrayC(fMultLimit,fDefaultsCharMult);// P23

  
  fNormPairs[0] = new AliChaoticityNormPairStruct[kNormPairLimit];
  fNormPairs[1] = new AliChaoticityNormPairStruct[kNormPairLimit];
  

  fTempStruct = new AliChaoticityTrackStruct[fMultLimit];
   
   
  fTrueMassP=0.93827, fTrueMassPi=0.13957, fTrueMassK=0.493677, fTrueMassKs=0.497614, fTrueMassLam=1.11568;

  

  // Set weights, Coulomb corrections, and Momentum resolution corrections manually if not on LEGO
  if(!fLEGO) {
    SetFSICorrelations(fLEGO);// Read in 2-particle and 3-particle FSI correlations
    if(!fTabulatePairs) SetWeightArrays(fLEGO);// Set Weight Array
    if(!fMCcase && !fTabulatePairs) SetMomResCorrections(fLEGO);// Read Momentum resolution file
  }
  
  /////////////////////////////////////////////
  /////////////////////////////////////////////
  
}
//________________________________________________________________________
void AliChaoticity::UserCreateOutputObjects()
{
  // Create histograms
  // Called once
  
  ParInit();// Initialize my settings


  fOutputList = new TList();
  fOutputList->SetOwner();
  
  TH3F *fVertexDist = new TH3F("fVertexDist","Vertex Distribution",20,-1,1, 20,-1,1, 600,-30,30);
  fVertexDist->GetXaxis()->SetTitle("X Vertex (cm)");
  fVertexDist->GetYaxis()->SetTitle("Y Vertex (cm)");
  fVertexDist->GetZaxis()->SetTitle("Z Vertex (cm)");
  fOutputList->Add(fVertexDist);
  
  
  TH2F *fDCAxyDistPlus = new TH2F("fDCAxyDistPlus","DCA distribution",300,0,3., 50,0,5);
  fOutputList->Add(fDCAxyDistPlus);
  TH2F *fDCAzDistPlus = new TH2F("fDCAzDistPlus","DCA distribution",300,0,3., 50,0,5);
  fOutputList->Add(fDCAzDistPlus);
  TH2F *fDCAxyDistMinus = new TH2F("fDCAxyDistMinus","DCA distribution",300,0,3., 50,0,5);
  fOutputList->Add(fDCAxyDistMinus);
  TH2F *fDCAzDistMinus = new TH2F("fDCAzDistMinus","DCA distribution",300,0,3., 50,0,5);
  fOutputList->Add(fDCAzDistMinus);
  
  
  TH1F *fEvents1 = new TH1F("fEvents1","Events vs. fMbin",fMbins,.5,fMbins+.5);
  fOutputList->Add(fEvents1);
  TH1F *fEvents2 = new TH1F("fEvents2","Events vs. fMbin",fMbins,.5,fMbins+.5);
  fOutputList->Add(fEvents2);
  
  TH1F *fMultDist1 = new TH1F("fMultDist1","Multiplicity Distribution",fMultLimit,-.5,fMultLimit-.5);
  fMultDist1->GetXaxis()->SetTitle("Multiplicity");
  fOutputList->Add(fMultDist1);
  
  TH1F *fMultDist2 = new TH1F("fMultDist2","Multiplicity Distribution",fMultLimit,-.5,fMultLimit-.5);
  fMultDist2->GetXaxis()->SetTitle("Multiplicity");
  fOutputList->Add(fMultDist2);
  
  TH1F *fMultDist3 = new TH1F("fMultDist3","Multiplicity Distribution",fMultLimit,-.5,fMultLimit-.5);
  fMultDist3->GetXaxis()->SetTitle("Multiplicity");
  fOutputList->Add(fMultDist3);
  
  TH3F *fPtEtaDist = new TH3F("fPtEtaDist","fPtEtaDist",2,-1.1,1.1, 300,0,3., 28,-1.4,1.4);
  fOutputList->Add(fPtEtaDist);

  TH3F *fPhiPtDist = new TH3F("fPhiPtDist","fPhiPtDist",2,-1.1,1.1, 120,0,2*PI, 300,0,3.);
  fOutputList->Add(fPhiPtDist);
  
  TH3F *fTOFResponse = new TH3F("fTOFResponse","TOF relative time",20,0,100, 200,0,2, 4000,-20000,20000);
  fOutputList->Add(fTOFResponse);
  TH3F *fTPCResponse = new TH3F("fTPCResponse","TPCsignal",20,0,100, 200,0,2, 1000,0,1000);
  fOutputList->Add(fTPCResponse);
 
  TH1F *fRejectedPairs = new TH1F("fRejectedPairs","",200,0,2);
  fOutputList->Add(fRejectedPairs);
  TH1I *fRejectedEvents = new TH1I("fRejectedEvents","",fMbins,0.5,fMbins+.5);
  fOutputList->Add(fRejectedEvents);
  
  TH3F *fPairsDetaDPhiNum = new TH3F("fPairsDetaDPhiNum","",10,-.5,9.5, 200,-0.2,0.2, 600,-0.3,0.3);
  if(fMCcase) fOutputList->Add(fPairsDetaDPhiNum);
  TH3F *fPairsDetaDPhiDen = new TH3F("fPairsDetaDPhiDen","",10,-.5,9.5, 200,-0.2,0.2, 600,-0.3,0.3);
  if(fMCcase) fOutputList->Add(fPairsDetaDPhiDen);
  TH3F *fPairsShareFracDPhiNum = new TH3F("fPairsShareFracDPhiNum","",10,-.5,9.5, 159,0,1, 600,-0.3,0.3);
  if(fMCcase) fOutputList->Add(fPairsShareFracDPhiNum);
  TH3F *fPairsShareFracDPhiDen = new TH3F("fPairsShareFracDPhiDen","",10,-.5,9.5, 159,0,1, 600,-0.3,0.3);
  if(fMCcase) fOutputList->Add(fPairsShareFracDPhiDen);
  TH3D* fPairsPadRowNum = new TH3D("fPairsPadRowNum","", 20,0,1, 159,0,1, 40,0,0.2);
  if(fMCcase) fOutputList->Add(fPairsPadRowNum);
  TH3D* fPairsPadRowDen = new TH3D("fPairsPadRowDen","", 20,0,1, 159,0,1, 40,0,0.2);
  if(fMCcase) fOutputList->Add(fPairsPadRowDen);



  TH2D *fResonanceOSPairs = new TH2D("fResonanceOSPairs","",fMbins,.5,fMbins+.5, 1000,0,2);
  if(fMCcase) fOutputList->Add(fResonanceOSPairs);
  TH2D *fAllOSPairs = new TH2D("fAllOSPairs","",fMbins,.5,fMbins+.5, 1000,0,2);
  if(fMCcase) fOutputList->Add(fAllOSPairs);
  
  TH3D *fPrimarySCPionPairs = new TH3D("fPrimarySCPionPairs","",fMbins,.5,fMbins+.5, 20,0,1, 20,0,0.2);
  if(fMCcase) fOutputList->Add(fPrimarySCPionPairs);
  TH3D *fAllSCPionPairs = new TH3D("fAllSCPionPairs","",fMbins,.5,fMbins+.5, 20,0,1, 20,0,0.2);
  if(fMCcase) fOutputList->Add(fAllSCPionPairs);
  TH3D *fPrimaryMCPionPairs = new TH3D("fPrimaryMCPionPairs","",fMbins,.5,fMbins+.5, 20,0,1, 20,0,0.2);
  if(fMCcase) fOutputList->Add(fPrimaryMCPionPairs);
  TH3D *fAllMCPionPairs = new TH3D("fAllMCPionPairs","",fMbins,.5,fMbins+.5, 20,0,1, 20,0,0.2);
  if(fMCcase) fOutputList->Add(fAllMCPionPairs);

  TProfile *fAvgMult = new TProfile("fAvgMult","",fMbins,.5,fMbins+.5, 0,1500,"");
  fOutputList->Add(fAvgMult);

  TH2D *fTrackChi2NDF = new TH2D("fTrackChi2NDF","",20,0,100, 100,0,10);
  fOutputList->Add(fTrackChi2NDF);
  TH2D *fTrackTPCncls = new TH2D("fTrackTPCncls","",20,0,100, 110,50,160);
  fOutputList->Add(fTrackTPCncls);


  TH3D *fTPNRejects1 = new TH3D("fTPNRejects1","",kQbins,0,fQupperBound, kQbins,0,fQupperBound, kQbins,0,fQupperBound);
  fOutputList->Add(fTPNRejects1);
  TH3D *fTPNRejects2 = new TH3D("fTPNRejects2","",kQbins,0,fQupperBound, kQbins,0,fQupperBound, kQbins,0,fQupperBound);
  fOutputList->Add(fTPNRejects2);
  TH3D *fTPNRejects3 = new TH3D("fTPNRejects3","",kQbins,0,fQupperBound, kQbins,0,fQupperBound, kQbins,0,fQupperBound);
  fOutputList->Add(fTPNRejects3);
  TH3D *fTPNRejects4 = new TH3D("fTPNRejects4","",kQbins,0,fQupperBound, kQbins,0,fQupperBound, kQbins,0,fQupperBound);
  fOutputList->Add(fTPNRejects4);
  TH3D *fTPNRejects5 = new TH3D("fTPNRejects5","",kQbins,0,fQupperBound, kQbins,0,fQupperBound, kQbins,0,fQupperBound);
  fOutputList->Add(fTPNRejects5);


  TH3D *fKt3DistTerm1 = new TH3D("fKt3DistTerm1","",fMbins,.5,fMbins+.5, 20,0,1, 20,0,0.2);
  TH3D *fKt3DistTerm5 = new TH3D("fKt3DistTerm5","",fMbins,.5,fMbins+.5, 20,0,1, 20,0,0.2);
  fOutputList->Add(fKt3DistTerm1);
  fOutputList->Add(fKt3DistTerm5);

  TProfile2D *fKtTripletAvg = new TProfile2D("fKtTripletAvg","",fMbins,.5,fMbins+.5, 2,-0.5,1.5, 0.,1.0,"");
  fOutputList->Add(fKtTripletAvg);

  TH1D *fMCWeight3DTerm1SC = new TH1D("fMCWeight3DTerm1SC","", 20,0,0.2);
  TH1D *fMCWeight3DTerm1SCden = new TH1D("fMCWeight3DTerm1SCden","", 20,0,0.2);
  TH1D *fMCWeight3DTerm2SC = new TH1D("fMCWeight3DTerm2SC","", 20,0,0.2);
  TH1D *fMCWeight3DTerm2SCden = new TH1D("fMCWeight3DTerm2SCden","", 20,0,0.2);
  TH1D *fMCWeight3DTerm1MC = new TH1D("fMCWeight3DTerm1MC","", 20,0,0.2);
  TH1D *fMCWeight3DTerm1MCden = new TH1D("fMCWeight3DTerm1MCden","", 20,0,0.2);
  TH1D *fMCWeight3DTerm2MC = new TH1D("fMCWeight3DTerm2MC","", 20,0,0.2);
  TH1D *fMCWeight3DTerm2MCden = new TH1D("fMCWeight3DTerm2MCden","", 20,0,0.2);
  TH1D *fMCWeight3DTerm3MC = new TH1D("fMCWeight3DTerm3MC","", 20,0,0.2);
  TH1D *fMCWeight3DTerm3MCden = new TH1D("fMCWeight3DTerm3MCden","", 20,0,0.2);
  TH1D *fMCWeight3DTerm4MC = new TH1D("fMCWeight3DTerm4MC","", 20,0,0.2);
  TH1D *fMCWeight3DTerm4MCden = new TH1D("fMCWeight3DTerm4MCden","", 20,0,0.2);
  fOutputList->Add(fMCWeight3DTerm1SC);
  fOutputList->Add(fMCWeight3DTerm1SCden);
  fOutputList->Add(fMCWeight3DTerm2SC);
  fOutputList->Add(fMCWeight3DTerm2SCden);
  fOutputList->Add(fMCWeight3DTerm1MC);
  fOutputList->Add(fMCWeight3DTerm1MCden);
  fOutputList->Add(fMCWeight3DTerm2MC);
  fOutputList->Add(fMCWeight3DTerm2MCden);
  fOutputList->Add(fMCWeight3DTerm3MC);
  fOutputList->Add(fMCWeight3DTerm3MCden);
  fOutputList->Add(fMCWeight3DTerm4MC);
  fOutputList->Add(fMCWeight3DTerm4MCden);


  if(fPdensityExplicitLoop || fPdensityPairCut){
    
    for(Int_t mb=0; mb<fMbins; mb++){
      if((mb < fCentBinLowLimit) || (mb > fCentBinHighLimit)) continue;

      for(Int_t edB=0; edB<fEDbins; edB++){
	for(Int_t c1=0; c1<2; c1++){
	  for(Int_t c2=0; c2<2; c2++){
	    for(Int_t sc=0; sc<kSCLimit2; sc++){
	      for(Int_t term=0; term<2; term++){
		
		TString *nameEx2 = new TString("Explicit2_Charge1_");
		*nameEx2 += c1;
		nameEx2->Append("_Charge2_");
		*nameEx2 += c2;
		nameEx2->Append("_SC_");
		*nameEx2 += sc;
		nameEx2->Append("_M_");
		*nameEx2 += mb;
		nameEx2->Append("_ED_");
		*nameEx2 += edB;
		nameEx2->Append("_Term_");
		*nameEx2 += term+1;
		
		if(sc==0 || sc==3 || sc==5){
		  if( (c1+c2)==1 ) {if(c1!=0) continue;}// skip degenerate histogram
		}
		
		Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fExplicit2 = new TH2D(nameEx2->Data(),"Two Particle Distribution",20,0,1, 400,0,2);
		fOutputList->Add(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fExplicit2);
		TString *nameEx2QW=new TString(nameEx2->Data());
		nameEx2QW->Append("_QW");
		Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fExplicit2QW = new TH2D(nameEx2QW->Data(),"Two Particle Distribution",20,0,1, 400,0,2);
		fOutputList->Add(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fExplicit2QW);
		TString *nameAvgP=new TString(nameEx2->Data());
		nameAvgP->Append("_AvgP");
		Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fAvgP = new TProfile2D(nameAvgP->Data(),"",10,0,1, 400,0,2, 0.,1.0,"");
		fOutputList->Add(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fAvgP);
		
		// Momentum resolution histos
		if(fMCcase && sc==0){
		  TString *nameIdeal = new TString(nameEx2->Data());
		  nameIdeal->Append("_Ideal");
		  Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fIdeal = new TH2D(nameIdeal->Data(),"Two Particle Distribution",fRVALUES*kNDampValues,-0.5,fRVALUES*kNDampValues-0.5, kQbinsWeights,0,fQupperBoundWeights);
		  fOutputList->Add(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fIdeal);
		  TString *nameSmeared = new TString(nameEx2->Data());
		  nameSmeared->Append("_Smeared");
		  Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fSmeared = new TH2D(nameSmeared->Data(),"Two Particle Distribution",fRVALUES*kNDampValues,-0.5,fRVALUES*kNDampValues-0.5, kQbinsWeights,0,fQupperBoundWeights);
		  fOutputList->Add(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fSmeared);
		  //
		  TString *nameEx2MC=new TString(nameEx2->Data());
		  nameEx2MC->Append("_MCqinv");
		  Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fMCqinv = new TH1D(nameEx2MC->Data(),"",400,0,2);
		  fOutputList->Add(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fMCqinv);
		  TString *nameEx2MCQW=new TString(nameEx2->Data());
		  nameEx2MCQW->Append("_MCqinvQW");
		  Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fMCqinvQW = new TH1D(nameEx2MCQW->Data(),"",400,0,2);
		  fOutputList->Add(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fMCqinvQW);
		  //
		  TString *nameEx2PIDpurityDen=new TString(nameEx2->Data());
		  nameEx2PIDpurityDen->Append("_PIDpurityDen");
		  Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fPIDpurityDen = new TH2D(nameEx2PIDpurityDen->Data(),"Two Particle Distribution",20,0,1, 400,0,2);
		  fOutputList->Add(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fPIDpurityDen);
		  TString *nameEx2PIDpurityNum=new TString(nameEx2->Data());
		  nameEx2PIDpurityNum->Append("_PIDpurityNum");
		  Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fPIDpurityNum = new TH2D(nameEx2PIDpurityNum->Data(),"Two Particle Distribution",20,0,1, 400,0,2);
		  fOutputList->Add(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].fPIDpurityNum);
		}
		if(sc==0){
		  
		  TString *nameEx2OSLB1 = new TString(nameEx2->Data()); 
		  nameEx2OSLB1->Append("_osl_b1");
		  Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[0].fExplicit2OSL = new TH3D(nameEx2OSLB1->Data(),"Two Particle Distribution",kQbinsWeights,0,fQupperBoundWeights, kQbinsWeights,0,fQupperBoundWeights, kQbinsWeights,0,fQupperBoundWeights);
		  fOutputList->Add(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[0].fExplicit2OSL);
		  nameEx2OSLB1->Append("_QW");
		  Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[0].fExplicit2OSLQW = new TH3D(nameEx2OSLB1->Data(),"Two Particle Distribution",kQbinsWeights,0,fQupperBoundWeights, kQbinsWeights,0,fQupperBoundWeights, kQbinsWeights,0,fQupperBoundWeights);
		  fOutputList->Add(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[0].fExplicit2OSLQW);
		  //
		  TString *nameEx2OSLB2 = new TString(nameEx2->Data()); 
		  nameEx2OSLB2->Append("_osl_b2");
		  Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[1].fExplicit2OSL = new TH3D(nameEx2OSLB2->Data(),"Two Particle Distribution",kQbinsWeights,0,fQupperBoundWeights, kQbinsWeights,0,fQupperBoundWeights, kQbinsWeights,0,fQupperBoundWeights);
		  fOutputList->Add(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[1].fExplicit2OSL);
		  nameEx2OSLB2->Append("_QW");
		  Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[1].fExplicit2OSLQW = new TH3D(nameEx2OSLB2->Data(),"Two Particle Distribution",kQbinsWeights,0,fQupperBoundWeights, kQbinsWeights,0,fQupperBoundWeights, kQbinsWeights,0,fQupperBoundWeights);
		  fOutputList->Add(Charge1[c1].Charge2[c2].SC[sc].MB[mb].EDB[edB].TwoPT[term].OSL_ktbin[1].fExplicit2OSLQW);
		  
		}

	      }// term_2
	    }// SC_2
	    
	    // skip 3-particle if Tabulate6DPairs is true
	    if(fTabulatePairs) continue;
 
	    for(Int_t c3=0; c3<2; c3++){
	      for(Int_t sc=0; sc<kSCLimit3; sc++){
		for(Int_t term=0; term<5; term++){
		  TString *nameEx3 = new TString("Explicit3_Charge1_");
		  *nameEx3 += c1;
		  nameEx3->Append("_Charge2_");
		  *nameEx3 += c2;
		  nameEx3->Append("_Charge3_");
		  *nameEx3 += c3;
		  nameEx3->Append("_SC_");
		  *nameEx3 += sc;
		  nameEx3->Append("_M_");
		  *nameEx3 += mb;
		  nameEx3->Append("_ED_");
		  *nameEx3 += edB;
		  nameEx3->Append("_Term_");
		  *nameEx3 += term+1;
		  
		  TString *namePC3 = new TString("PairCut3_Charge1_");
		  *namePC3 += c1;
		  namePC3->Append("_Charge2_");
		  *namePC3 += c2;
		  namePC3->Append("_Charge3_");
		  *namePC3 += c3;
		  namePC3->Append("_SC_");
		  *namePC3 += sc;
		  namePC3->Append("_M_");
		  *namePC3 += mb;
		  namePC3->Append("_ED_");
		  *namePC3 += edB;
		  namePC3->Append("_Term_");
		  *namePC3 += term+1;
	      
		  ///////////////////////////////////////
		  // skip degenerate histograms
		  if(sc==0 || sc==6 || sc==9){// Identical species
		    if( (c1+c2+c3)==1) {if(c3!=1) continue;}
		    if( (c1+c2+c3)==2) {if(c1!=0) continue;}
		  }else if(sc!=5){
		    if( (c1+c2)==1) {if(c1!=0) continue;}
		  }else {}// do nothing for pi-k-p case
		  
		  /////////////////////////////////////////
	      
		  

		  if(fPdensityExplicitLoop){
		    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fExplicit3 = new TH1D(nameEx3->Data(),"Three Particle Distribution",200,0,2);
		    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fExplicit3);
		    //
		    nameEx3->Append("_Norm");
		    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fNormEx3 = new TH1D(nameEx3->Data(),"Explicit_3 Norm",1,-0.5,0.5);
		    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fNormEx3);
		  }
		  if(fPdensityPairCut){
		    TString *nameNorm=new TString(namePC3->Data());
		    nameNorm->Append("_Norm");
		    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fNorm3 = new TH1D(nameNorm->Data(),"Norm",1,-0.5,0.5);
		    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fNorm3);
		    //
		    if(sc<=2){
		      TString *name3DQ=new TString(namePC3->Data());
		      name3DQ->Append("_3D");
		      Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fTerms3 = new TH3D(name3DQ->Data(),"", kQbins,0,fQupperBound, kQbins,0,fQupperBound, kQbins,0,fQupperBound);
		      fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fTerms3);
		      //
		      /*
		      const int NEdgesPos=16;
		      double lowEdges4vectPos[NEdgesPos]={0};
		      lowEdges4vectPos[0]=0.0;
		      lowEdges4vectPos[1]=0.00005;// best resolution at low Q^2
		      for(int edge=2; edge<NEdgesPos; edge++){
			lowEdges4vectPos[edge] = lowEdges4vectPos[edge-1] + lowEdges4vectPos[1]*(edge);
		      }
		      const int NEdges=2*NEdgesPos-1;
		      double lowEdges4vect[NEdges]={0};
		      for(int edge=0; edge<NEdges; edge++){
			if(edge<NEdgesPos-1) lowEdges4vect[edge] = -lowEdges4vectPos[NEdgesPos-1-edge];
			else if(edge==NEdgesPos-1) lowEdges4vect[edge] = 0;
			else lowEdges4vect[edge] = lowEdges4vectPos[edge-NEdgesPos+1];
			//if(c1==c2 && c1==c3) cout<<lowEdges4vect[edge]<<endl;
		      }
		      
		      if(c1==c2 && c1==c3 && sc==0 && fMCcase==kFALSE){
			TString *name4vect1=new TString(namePC3->Data());
			TString *name4vect2=new TString(namePC3->Data());
			name4vect1->Append("_4VectProd1");
			name4vect2->Append("_4VectProd2");
			// use 3.75e6 MeV^4 as the resolution on QprodSum
			Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1Terms = new TH3D(name4vect1->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1Terms);
			Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2Terms = new TH3D(name4vect2->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2Terms);
			}*/
		      if(sc==0 && fMCcase==kTRUE){
			TString *name3DMomResIdeal=new TString(namePC3->Data());
			name3DMomResIdeal->Append("_Ideal");
			Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fIdeal = new TH3D(name3DMomResIdeal->Data(),"", kQbins,0,fQupperBound, kQbins,0,fQupperBound, kQbins,0,fQupperBound);
			fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fIdeal);
			TString *name3DMomResSmeared=new TString(namePC3->Data());
			name3DMomResSmeared->Append("_Smeared");
			Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fSmeared = new TH3D(name3DMomResSmeared->Data(),"", kQbins,0,fQupperBound, kQbins,0,fQupperBound, kQbins,0,fQupperBound);
			fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fSmeared);
			//
			TString *name3DMomResQW12=new TString(namePC3->Data());
			name3DMomResQW12->Append("_QW12");
			Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fQW12 = new TH3D(name3DMomResQW12->Data(),"", kQbins,0,fQupperBound, kQbins,0,fQupperBound, kQbins,0,fQupperBound);
			fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fQW12);
			TString *name3DMomResQW13=new TString(namePC3->Data());
			name3DMomResQW13->Append("_QW13");
			Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fQW13 = new TH3D(name3DMomResQW13->Data(),"", kQbins,0,fQupperBound, kQbins,0,fQupperBound, kQbins,0,fQupperBound);
			fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fQW13);
			//
			if(term==0){
			  TString *name3DSumK3=new TString(namePC3->Data());
			  name3DSumK3->Append("_SumK3");
			  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fSumK3 = new TH3D(name3DSumK3->Data(),"", kQbins,0,fQupperBound, kQbins,0,fQupperBound, kQbins,0,fQupperBound);
			  fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fSumK3);
			  TString *name3DEnK3=new TString(namePC3->Data());
			  name3DEnK3->Append("_EnK3");
			  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fEnK3 = new TH3D(name3DEnK3->Data(),"", kQbins,0,fQupperBound, kQbins,0,fQupperBound, kQbins,0,fQupperBound);
			  fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].fEnK3);
			}

			/*if(c1==c2 && c1==c3){
			  TString *name4vect1Ideal=new TString(namePC3->Data());
			  TString *name4vect1Smeared=new TString(namePC3->Data());
			  TString *name4vect2Ideal=new TString(namePC3->Data());
			  TString *name4vect2Smeared=new TString(namePC3->Data());
			  TString *name4vect1Q3W=new TString(namePC3->Data());
			  TString *name4vect2Q3W=new TString(namePC3->Data());
			  name4vect1Ideal->Append("_4VectProd1Ideal");
			  name4vect1Smeared->Append("_4VectProd1Smeared");
			  name4vect2Ideal->Append("_4VectProd2Ideal");
			  name4vect2Smeared->Append("_4VectProd2Smeared");
			  name4vect1Q3W->Append("_4VectProd1Q3W");
			  name4vect2Q3W->Append("_4VectProd2Q3W");
			  // 
			  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsIdeal = new TH3D(name4vect1Ideal->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			  fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsIdeal);
			  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsSmeared = new TH3D(name4vect1Smeared->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			  fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsSmeared);
			  //
			  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsIdeal = new TH3D(name4vect2Ideal->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			  fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsIdeal);
			  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsSmeared = new TH3D(name4vect2Smeared->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			  fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsSmeared);
			  //
			  if(term==0){// average Q3 in each FVP cell
			    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1Q3W = new TH3D(name4vect1Q3W->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1Q3W);
			    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2Q3W = new TH3D(name4vect2Q3W->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2Q3W);
			  }
			  //
			  if(term==0){
			    TString *name4vect1SumK3=new TString(namePC3->Data());
			    TString *name4vect2SumK3=new TString(namePC3->Data());
			    TString *name4vect1EnK3=new TString(namePC3->Data());
			    TString *name4vect2EnK3=new TString(namePC3->Data());
			    name4vect1SumK3->Append("_4VectProd1SumK3");
			    name4vect2SumK3->Append("_4VectProd2SumK3");
			    name4vect1EnK3->Append("_4VectProd1EnK3");
			    name4vect2EnK3->Append("_4VectProd2EnK3");
			    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsSumK3 = new TH3D(name4vect1SumK3->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsSumK3);
			    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsSumK3 = new TH3D(name4vect2SumK3->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsSumK3);
			    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsEnK3 = new TH3D(name4vect1EnK3->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsEnK3);
			    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsEnK3 = new TH3D(name4vect2EnK3->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsEnK3);
			  }// term 0
			  if(term > 0 && term < 4){
			    TString *name4vect1SumK2=new TString(namePC3->Data());
			    TString *name4vect2SumK2=new TString(namePC3->Data());
			    TString *name4vect1EnK2=new TString(namePC3->Data());
			    TString *name4vect2EnK2=new TString(namePC3->Data());
			    name4vect1SumK2->Append("_4VectProd1SumK2");
			    name4vect2SumK2->Append("_4VectProd2SumK2");
			    name4vect1EnK2->Append("_4VectProd1EnK2");
			    name4vect2EnK2->Append("_4VectProd2EnK2");
			    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsSumK2 = new TH3D(name4vect1SumK2->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsSumK2);
			    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsSumK2 = new TH3D(name4vect2SumK2->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsSumK2);
			    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsEnK2 = new TH3D(name4vect1EnK2->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd1TermsEnK2);
			    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsEnK2 = new TH3D(name4vect2EnK2->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].f4VectProd2TermsEnK2);
			  }// terms 1,2,3
			}*/
		      }// MCcase
		      //
		      if(c1==c2 && c1==c3 && term==4 && sc==0){
			for(Int_t dt=0; dt<kDENtypes; dt++){
			  TString *nameDenType=new TString("PairCut3_Charge1_");
			  *nameDenType += c1;
			  nameDenType->Append("_Charge2_");
			  *nameDenType += c2;
			  nameDenType->Append("_Charge3_");
			  *nameDenType += c3;
			  nameDenType->Append("_SC_");
			  *nameDenType += sc;
			  nameDenType->Append("_M_");
			  *nameDenType += mb;
			  nameDenType->Append("_ED_");
			  *nameDenType += edB;
			  nameDenType->Append("_TPN_");
			  *nameDenType += dt;
			  
			  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].fTwoPartNorm = new TH3D(nameDenType->Data(),"",kQbins,0,fQupperBound, kQbins,0,fQupperBound, kQbins,0,fQupperBound);
			  fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].fTwoPartNorm);
			  // neglect errors for TPN
			  //nameDenType->Append("_Err");
			  //Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].fTwoPartNormErr = new TH3D(nameDenType->Data(),"",kQbins,0,fQupperBound, kQbins,0,fQupperBound, kQbins,0,fQupperBound);
			  //fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].fTwoPartNormErr);
			  //
			  /*TString *name4vect1TPN=new TString(nameDenType->Data());
			  TString *name4vect2TPN=new TString(nameDenType->Data());
			  name4vect1TPN->Append("_4VectProd1");
			  name4vect2TPN->Append("_4VectProd2");
			  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNorm = new TH3D(name4vect1TPN->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			  fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNorm);
			  Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNorm = new TH3D(name4vect2TPN->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			  fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNorm);
			  //
			  if(fMCcase){
			    TString *name4vect1TPNIdeal=new TString(nameDenType->Data());
			    TString *name4vect2TPNIdeal=new TString(nameDenType->Data());
			    TString *name4vect1TPNSmeared=new TString(nameDenType->Data());
			    TString *name4vect2TPNSmeared=new TString(nameDenType->Data());
			    name4vect1TPNIdeal->Append("_4VectProd1Ideal");
			    name4vect2TPNIdeal->Append("_4VectProd2Ideal");
			    name4vect1TPNSmeared->Append("_4VectProd1Smeared");
			    name4vect2TPNSmeared->Append("_4VectProd2Smeared");
			    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNormIdeal = new TH3D(name4vect1TPNIdeal->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNormIdeal);
			    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNormIdeal = new TH3D(name4vect2TPNIdeal->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNormIdeal);
			    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNormSmeared = new TH3D(name4vect1TPNSmeared->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd1TwoPartNormSmeared);
			    Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNormSmeared = new TH3D(name4vect2TPNSmeared->Data(),"",NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect, NEdges-1,lowEdges4vect);
			    fOutputList->Add(Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[mb].EDB[edB].ThreePT[term].DT[dt].f4VectProd2TwoPartNormSmeared);
			    }*/
			  
			}
			
		      }// term=4
		    }// c and sc exclusion
		  }// PdensityPairCut
		}// term_3
	      }// SC_3
	    }//c3
	  }//c2
	}//c1
      }// ED
    }// mbin
  }// Pdensity Method

  
  if(fTabulatePairs){
    
    for(Int_t tKbin=0; tKbin<fKbinsT; tKbin++){
      for(Int_t yKbin=0; yKbin<fKbinsY; yKbin++){
	for(Int_t mb=0; mb<fMbins; mb++){
	  for(Int_t edB=0; edB<fEDbins; edB++){
	      
	      TString *nameNum = new TString("TwoPart_num_Kt_");
	      *nameNum += tKbin;
	      nameNum->Append("_Ky_");
	      *nameNum += yKbin;
	      nameNum->Append("_M_");
	      *nameNum += mb;
	      nameNum->Append("_ED_");
	      *nameNum += edB;

	      TString *nameDen = new TString("TwoPart_den_Kt_");
	      *nameDen += tKbin;
	      nameDen->Append("_Ky_");
	      *nameDen += yKbin;
	      nameDen->Append("_M_");
	      *nameDen += mb;
	      nameDen->Append("_ED_");
	      *nameDen += edB;


	      KT[tKbin].KY[yKbin].MB[mb].EDB[edB].TwoPT[0].fExplicit2ThreeD = new TH3D(nameNum->Data(),"", kQbinsWeights,0,fQupperBoundWeights, kQbinsWeights,0,fQupperBoundWeights, kQbinsWeights,0,fQupperBoundWeights);
	      fOutputList->Add(KT[tKbin].KY[yKbin].MB[mb].EDB[edB].TwoPT[0].fExplicit2ThreeD);
	      
	      KT[tKbin].KY[yKbin].MB[mb].EDB[edB].TwoPT[1].fExplicit2ThreeD = new TH3D(nameDen->Data(),"", kQbinsWeights,0,fQupperBoundWeights, kQbinsWeights,0,fQupperBoundWeights, kQbinsWeights,0,fQupperBoundWeights);
	      fOutputList->Add(KT[tKbin].KY[yKbin].MB[mb].EDB[edB].TwoPT[1].fExplicit2ThreeD);
	    }
	  }
	}
      }
 
  }
  
  
  TProfile *fQsmearMean = new TProfile("fQsmearMean","",2,0.5,2.5, -0.2,0.2,"");
  fOutputList->Add(fQsmearMean);
  TProfile *fQsmearSq = new TProfile("fQsmearSq","",2,0.5,2.5, -2,2,"");
  fOutputList->Add(fQsmearSq);
  TH1D *fQDist = new TH1D("fQDist","",200,-.2,.2);
  fOutputList->Add(fQDist);
  
  

  ////////////////////////////////////
  ///////////////////////////////////  
  
  PostData(1, fOutputList);
}

//________________________________________________________________________
void AliChaoticity::Exec(Option_t *) 
{
  // Main loop
  // Called for each event
  //cout<<"===========  Event # "<<fEventCounter+1<<"  ==========="<<endl;
  fEventCounter++;
  
  if(!fAODcase) {cout<<"ESDs not supported"<<endl; return;}
  
  fAOD = dynamic_cast<AliAODEvent*> (InputEvent());
  if (!fAOD) {Printf("ERROR: fAOD not available"); return;}
  
  
  // Trigger Cut
  if(fAOD->GetRunNumber() >= 136851 && fAOD->GetRunNumber() <= 139517){// 10h data
  Bool_t isSelected1 = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kMB);
  if(!isSelected1 && !fMCcase) {return;}
  }else if(fAOD->GetRunNumber() >= 167693 && fAOD->GetRunNumber() <= 170593){// 11h data
    Bool_t isSelected1 = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kCentral);
    Bool_t isSelected2 = (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected() & AliVEvent::kSemiCentral);
    if(!isSelected1 && !isSelected2 && !fMCcase) {return;}
  }else {return;}

  ///////////////////////////////////////////////////////////
  const AliAODVertex *primaryVertexAOD;
  AliCentrality *centrality;// for AODs and ESDs

 
  AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
  AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
  fPIDResponse = inputHandler->GetPIDResponse();

  
  TClonesArray *mcArray = 0x0;
  if(fMCcase){
    if(fAODcase){ 
      mcArray = (TClonesArray*)fAOD->FindListObject(AliAODMCParticle::StdBranchName());
      if(!mcArray || mcArray->GetEntriesFast() >= kMCarrayLimit){
	cout<<"No MC particle branch found or Array too large!!"<<endl;
	return;
      }
    }
  }
  

  UInt_t status=0;
  Int_t positiveTracks=0, negativeTracks=0;
  Int_t myTracks=0, pionCount=0, kaonCount=0, protonCount=0;
   
  Double_t vertex[3]={0};
  Int_t zbin=0;
  Double_t zstep=2*10/Double_t(fZvertexBins), zstart=-10.;
  /////////////////////////////////////////////////

  
  Float_t centralityPercentile=0;
  Float_t cStep=5.0, cStart=0;
  
 
  if(fAODcase){// AOD case
    
    if(fPbPbcase){
      centrality = fAOD->GetCentrality();
      centralityPercentile = centrality->GetCentralityPercentile("V0M");
      if(centralityPercentile == 0) {cout<<"Centrality = 0, skipping event"<<endl; return;}
      if((centralityPercentile < 5*fCentBinLowLimit) || (centralityPercentile>= 5*(fCentBinHighLimit+1))) {/*cout<<"Centrality out of Range.  Skipping Event"<<endl;*/ return;}
      cout<<"Centrality % = "<<centralityPercentile<<endl;
    }
    

    
    
    ////////////////////////////////
    // Vertexing
    ((TH1F*)fOutputList->FindObject("fMultDist1"))->Fill(fAOD->GetNumberOfTracks());
    primaryVertexAOD = fAOD->GetPrimaryVertex();
    vertex[0]=primaryVertexAOD->GetX(); vertex[1]=primaryVertexAOD->GetY(); vertex[2]=primaryVertexAOD->GetZ();
    
    if(fabs(vertex[2]) > 10) {cout<<"Zvertex Out of Range. Skip Event"<<endl; return;} // Z-Vertex Cut 
    ((TH3F*)fOutputList->FindObject("fVertexDist"))->Fill(vertex[0], vertex[1], vertex[2]);
    
    if(fAOD->IsPileupFromSPD()) {cout<<"PileUpEvent. Skip Event"<<endl; return;} // Reject Pile-up events
    if(!fMCcase && primaryVertexAOD->GetNContributors() < 1) {cout<<"Bad Vertex. Skip Event"<<endl; return;}
   
    ((TH1F*)fOutputList->FindObject("fMultDist2"))->Fill(fAOD->GetNumberOfTracks());
 
    fBfield = fAOD->GetMagneticField();
    
    for(Int_t i=0; i<fZvertexBins; i++){
      if( (vertex[2] >= zstart+i*zstep) && (vertex[2] < zstart+(i+1)*zstep) ){
	zbin=i;
	break;
      }
    }
    
   
       
    /////////////////////////////
    // Create Shuffled index list
    Int_t randomIndex[fAOD->GetNumberOfTracks()];
    for (Int_t i = 0; i < fAOD->GetNumberOfTracks(); i++) randomIndex[i]=i;
    Shuffle(randomIndex,0,fAOD->GetNumberOfTracks()-1);
    /////////////////////////////
    

    // Track loop
    for (Int_t i = 0; i < fAOD->GetNumberOfTracks(); i++) {
      AliAODTrack* aodtrack = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(randomIndex[i]));
      if(!aodtrack) AliFatal("Not a standard AOD");
      if (!aodtrack) continue;
      if(myTracks >= fMultLimit) {cout<<"More tracks than Track Limit"<<endl; return;}
    
      status=aodtrack->GetStatus();
      
      if(!aodtrack->TestFilterBit(BIT(7))) continue;// AOD filterBit cut
      
      
      if(fFilterBit != 7){
	Bool_t goodTrackOtherFB = kFALSE;
	for (Int_t j = 0; j < fAOD->GetNumberOfTracks(); j++) {
	  AliAODTrack* aodtrack2 = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(randomIndex[j]));
	  if(!aodtrack2) AliFatal("Not a standard AOD");
	  if(!aodtrack2) continue;
	  if(!aodtrack2->TestFilterBit(BIT(fFilterBit))) continue;
	  
	  if(-(aodtrack->GetID()+1)==aodtrack2->GetID()) {goodTrackOtherFB=kTRUE; break;}
	  
	}
	if(!goodTrackOtherFB) continue;
      }
      
      
      if(aodtrack->Pt() < 0.16) continue;
      if(fabs(aodtrack->Eta()) > 0.8) continue;
      
      
      Bool_t goodMomentum = aodtrack->GetPxPyPz( fTempStruct[myTracks].fP);
      if(!goodMomentum) continue; 
      aodtrack->GetXYZ( fTempStruct[myTracks].fX);
      
	 
      Double_t dca2[2]={0};
      dca2[0] = sqrt( pow(fTempStruct[myTracks].fX[0] - vertex[0],2) + pow(fTempStruct[myTracks].fX[1] - vertex[1],2));
      dca2[1] = sqrt( pow(fTempStruct[myTracks].fX[2] - vertex[2],2));
      Double_t dca3d = sqrt( pow(dca2[0],2) + pow(dca2[1],2));
             
      fTempStruct[myTracks].fStatus = status;
      fTempStruct[myTracks].fFiltermap = aodtrack->GetFilterMap();
      fTempStruct[myTracks].fId = aodtrack->GetID();
      fTempStruct[myTracks].fLabel = aodtrack->GetLabel();
      fTempStruct[myTracks].fPhi = atan2(fTempStruct[myTracks].fP[1], fTempStruct[myTracks].fP[0]);
      if(fTempStruct[myTracks].fPhi < 0) fTempStruct[myTracks].fPhi += 2*PI;
      fTempStruct[myTracks].fPt = sqrt(pow(fTempStruct[myTracks].fP[0],2) + pow(fTempStruct[myTracks].fP[1],2));
      fTempStruct[myTracks].fMom = sqrt( pow(fTempStruct[myTracks].fPt,2) + pow(fTempStruct[myTracks].fP[2],2) );
      fTempStruct[myTracks].fEta = aodtrack->Eta();
      fTempStruct[myTracks].fCharge = aodtrack->Charge();
      fTempStruct[myTracks].fDCAXY = dca2[0];
      fTempStruct[myTracks].fDCAZ = dca2[1];
      fTempStruct[myTracks].fDCA = dca3d;
      fTempStruct[myTracks].fClusterMap = aodtrack->GetTPCClusterMap();
      fTempStruct[myTracks].fSharedMap = aodtrack->GetTPCSharedMap();
      
    
      
      if(fTempStruct[myTracks].fMom > 0.9999) continue;// upper P bound
      if(fTempStruct[myTracks].fPt > 0.9999) continue;// upper P bound
      if(fTempStruct[myTracks].fP[2] > 0.9999) continue;// upper P bound

                
      // PID section
      fTempStruct[myTracks].fElectron = kFALSE;
      fTempStruct[myTracks].fPion = kFALSE;
      fTempStruct[myTracks].fKaon = kFALSE;
      fTempStruct[myTracks].fProton = kFALSE;
      
      Float_t nSigmaTPC[5];
      Float_t nSigmaTOF[5];
      nSigmaTPC[0]=10; nSigmaTPC[1]=10; nSigmaTPC[2]=10; nSigmaTPC[3]=10; nSigmaTPC[4]=10;
      nSigmaTOF[0]=10; nSigmaTOF[1]=10; nSigmaTOF[2]=10; nSigmaTOF[3]=10; nSigmaTOF[4]=10;
      fTempStruct[myTracks].fTOFhit = kFALSE;// default
      Float_t signalTPC=0, signalTOF=0;
      Double_t integratedTimesTOF[10]={0};

      /*if(fFilterBit != 7 ) {
	nSigmaTPC[0]=fPIDResponse->NumberOfSigmasTPC(aodtrack,AliPID::kElectron);
	nSigmaTPC[1]=fPIDResponse->NumberOfSigmasTPC(aodtrack,AliPID::kMuon);
	nSigmaTPC[2]=fPIDResponse->NumberOfSigmasTPC(aodtrack,AliPID::kPion);
	nSigmaTPC[3]=fPIDResponse->NumberOfSigmasTPC(aodtrack,AliPID::kKaon);
	nSigmaTPC[4]=fPIDResponse->NumberOfSigmasTPC(aodtrack,AliPID::kProton);
	//
	nSigmaTOF[0]=fPIDResponse->NumberOfSigmasTOF(aodtrack,AliPID::kElectron);
	nSigmaTOF[1]=fPIDResponse->NumberOfSigmasTOF(aodtrack,AliPID::kMuon);
	nSigmaTOF[2]=fPIDResponse->NumberOfSigmasTOF(aodtrack,AliPID::kPion);
	nSigmaTOF[3]=fPIDResponse->NumberOfSigmasTOF(aodtrack,AliPID::kKaon);
	nSigmaTOF[4]=fPIDResponse->NumberOfSigmasTOF(aodtrack,AliPID::kProton);
	signalTPC = aodtrack->GetTPCsignal();
	if( (status&AliESDtrack::kTOFpid)!=0 && (status&AliESDtrack::kTIME)!=0 && (status&AliESDtrack::kTOFout)!=0 && (status&AliESDtrack::kTOFmismatch)<=0){// good tof hit
	  fTempStruct[myTracks].fTOFhit = kTRUE;
	  signalTOF = aodtrack->GetTOFsignal();
	  aodtrack->GetIntegratedTimes(integratedTimesTOF);
	}else fTempStruct[myTracks].fTOFhit = kFALSE;

      }else {// FilterBit 7 PID workaround
      */
	for(Int_t j = 0; j < fAOD->GetNumberOfTracks(); j++) {
	  AliAODTrack* aodTrack2 = dynamic_cast<AliAODTrack*>(fAOD->GetTrack(j));
	  if(!aodTrack2) AliFatal("Not a standard AOD");
	  if (!aodTrack2) continue;
	  if(aodtrack->GetID() != (-aodTrack2->GetID() - 1)) continue;// (-aodTrack2->GetID() - 1)
	  
	  UInt_t status2=aodTrack2->GetStatus();
	  
	  nSigmaTPC[0]=fPIDResponse->NumberOfSigmasTPC(aodTrack2,AliPID::kElectron);
	  nSigmaTPC[1]=fPIDResponse->NumberOfSigmasTPC(aodTrack2,AliPID::kMuon);
	  nSigmaTPC[2]=fPIDResponse->NumberOfSigmasTPC(aodTrack2,AliPID::kPion);
	  nSigmaTPC[3]=fPIDResponse->NumberOfSigmasTPC(aodTrack2,AliPID::kKaon);
	  nSigmaTPC[4]=fPIDResponse->NumberOfSigmasTPC(aodTrack2,AliPID::kProton);
	  //
	  nSigmaTOF[0]=fPIDResponse->NumberOfSigmasTOF(aodTrack2,AliPID::kElectron);
	  nSigmaTOF[1]=fPIDResponse->NumberOfSigmasTOF(aodTrack2,AliPID::kMuon);
	  nSigmaTOF[2]=fPIDResponse->NumberOfSigmasTOF(aodTrack2,AliPID::kPion);
	  nSigmaTOF[3]=fPIDResponse->NumberOfSigmasTOF(aodTrack2,AliPID::kKaon);
	  nSigmaTOF[4]=fPIDResponse->NumberOfSigmasTOF(aodTrack2,AliPID::kProton);
	  signalTPC = aodTrack2->GetTPCsignal();
	  
	  if( (status2&AliESDtrack::kTOFpid)!=0 && (status2&AliESDtrack::kTIME)!=0 && (status2&AliESDtrack::kTOFout)!=0 && (status2&AliESDtrack::kTOFmismatch)<=0){// good tof hit
	    fTempStruct[myTracks].fTOFhit = kTRUE;
	    signalTOF = aodTrack2->GetTOFsignal();
	    aodTrack2->GetIntegratedTimes(integratedTimesTOF);
	  }else fTempStruct[myTracks].fTOFhit = kFALSE;
	  
	}// aodTrack2
	//}// FilterBit 7 PID workaround

     
      ///////////////////
      ((TH3F*)fOutputList->FindObject("fTPCResponse"))->Fill(centralityPercentile, fTempStruct[myTracks].fMom, signalTPC);
      if(fTempStruct[myTracks].fTOFhit) {
	((TH3F*)fOutputList->FindObject("fTOFResponse"))->Fill(centralityPercentile, fTempStruct[myTracks].fMom, signalTOF - integratedTimesTOF[3]);
      }
      ///////////////////
      
      // Use TOF if good hit and above threshold
      if(fTempStruct[myTracks].fTOFhit && fTempStruct[myTracks].fMom > fTPCTOFboundry){
	if(fabs(nSigmaTOF[0])<fSigmaCutTOF) fTempStruct[myTracks].fElectron = kTRUE;// Electron candidate
	if(fabs(nSigmaTOF[2])<fSigmaCutTOF) fTempStruct[myTracks].fPion = kTRUE;// Pion candidate
	if(fabs(nSigmaTOF[3])<fSigmaCutTOF) fTempStruct[myTracks].fKaon = kTRUE;// Kaon candidate
	if(fabs(nSigmaTOF[4])<fSigmaCutTOF) fTempStruct[myTracks].fProton = kTRUE;// Proton candidate
      }else {// TPC info instead
	if(fabs(nSigmaTPC[0])<fSigmaCutTPC) fTempStruct[myTracks].fElectron = kTRUE;// Electron candidate
	if(fabs(nSigmaTPC[2])<fSigmaCutTPC) fTempStruct[myTracks].fPion = kTRUE;// Pion candidate
	if(fabs(nSigmaTPC[3])<fSigmaCutTPC) fTempStruct[myTracks].fKaon = kTRUE;// Kaon candidate
	if(fabs(nSigmaTPC[4])<fSigmaCutTPC) fTempStruct[myTracks].fProton = kTRUE;// Proton candidate
	// asymmetric dE/dx cut to reduce muon contamination
	//if(nSigmaTPC[2] < -0.5) fTempStruct[myTracks].fPion = kFALSE;// asymmetric dE/dx cut
      }
               
      
      // Ensure there is only 1 candidate per track
      if(fTempStruct[myTracks].fElectron && fTempStruct[myTracks].fMom < 0.45) continue;// Remove electron band
      if(!fTempStruct[myTracks].fPion && !fTempStruct[myTracks].fKaon && !fTempStruct[myTracks].fProton) continue;
      if(fTempStruct[myTracks].fPion && fTempStruct[myTracks].fKaon) continue;
      if(fTempStruct[myTracks].fPion && fTempStruct[myTracks].fProton) continue;
      if(fTempStruct[myTracks].fKaon && fTempStruct[myTracks].fProton) continue;
      if(fTempStruct[myTracks].fPion && fTempStruct[myTracks].fKaon && fTempStruct[myTracks].fProton) continue;
      ////////////////////////
      if(fTempStruct[myTracks].fProton && fTempStruct[myTracks].fMom < 0.25) continue;//extra cut for protons

      if(!fTempStruct[myTracks].fPion) continue;// only pions
      
          
           
    
      if(fTempStruct[myTracks].fPion) {// pions
	fTempStruct[myTracks].fEaccepted = sqrt(pow(fTempStruct[myTracks].fMom,2) + pow(fTrueMassPi,2)); 
	fTempStruct[myTracks].fKey = 1;
      }else if(fTempStruct[myTracks].fKaon){// kaons
	fTempStruct[myTracks].fEaccepted = sqrt(pow(fTempStruct[myTracks].fMom,2) + pow(fTrueMassK,2));;
	fTempStruct[myTracks].fKey = 10;
      }else{// protons
	fTempStruct[myTracks].fEaccepted = sqrt(pow(fTempStruct[myTracks].fMom,2) + pow(fTrueMassP,2));;
	fTempStruct[myTracks].fKey = 100;
      }
      
     
      ((TH2D*)fOutputList->FindObject("fTrackChi2NDF"))->Fill(centralityPercentile, aodtrack->Chi2perNDF());
      ((TH2D*)fOutputList->FindObject("fTrackTPCncls"))->Fill(centralityPercentile, aodtrack->GetTPCncls());
      if(aodtrack->Chi2perNDF() > fMaxChi2NDF) continue;
      if(aodtrack->GetTPCncls() < fMinTPCncls) continue;
      
      if(fTempStruct[myTracks].fCharge==+1) {
	((TH2F*)fOutputList->FindObject("fDCAxyDistPlus"))->Fill(fTempStruct[myTracks].fPt, dca2[0]);
	((TH2F*)fOutputList->FindObject("fDCAzDistPlus"))->Fill(fTempStruct[myTracks].fPt, dca2[1]);
      }else {
	((TH2F*)fOutputList->FindObject("fDCAxyDistMinus"))->Fill(fTempStruct[myTracks].fPt, dca2[0]);
	((TH2F*)fOutputList->FindObject("fDCAzDistMinus"))->Fill(fTempStruct[myTracks].fPt, dca2[1]);
      }
     
      ((TH3F*)fOutputList->FindObject("fPhiPtDist"))->Fill(aodtrack->Charge(), aodtrack->Phi(), aodtrack->Pt());
      ((TH3F*)fOutputList->FindObject("fPtEtaDist"))->Fill(aodtrack->Charge(), aodtrack->Pt(), aodtrack->Eta());


      if(aodtrack->Charge() > 0) positiveTracks++;
      else negativeTracks++;
      
      if(fTempStruct[myTracks].fPion) pionCount++;
      if(fTempStruct[myTracks].fKaon) kaonCount++;
      if(fTempStruct[myTracks].fProton) protonCount++;

      myTracks++;
      
    }
  }else {// ESD tracks
    cout<<"ESDs not supported currently"<<endl;
    return;
  }
  
  // Generator info only
  if(fMCcase && fGeneratorOnly){
    myTracks=0; pionCount=0; kaonCount=0; protonCount=0;// reset track counters
    for(Int_t mctrackN=0; mctrackN<mcArray->GetEntriesFast(); mctrackN++){
      if(myTracks >= fMultLimit) {cout<<"More tracks than Track Limit"<<endl; return;}
      if(myTracks >= 1300) continue;// additional cut to limit high mult events which exceed pair # limits
      
      AliAODMCParticle *mcParticle = (AliAODMCParticle*)mcArray->At(mctrackN);
      if(!mcParticle) continue;
      if(fabs(mcParticle->Eta())>0.8) continue;
      if(mcParticle->Charge()!=-3 && mcParticle->Charge()!=+3) continue;// x3 by convention
      if(mcParticle->Pt() < 0.16 || mcParticle->Pt() > 1.0) continue;
      if(!mcParticle->IsPrimary()) continue;
      if(!mcParticle->IsPhysicalPrimary()) continue;
      if(abs(mcParticle->GetPdgCode())!=211) continue;
      
      fTempStruct[myTracks].fP[0] = mcParticle->Px();
      fTempStruct[myTracks].fP[1] = mcParticle->Py();
      fTempStruct[myTracks].fP[2] = mcParticle->Pz();
      fTempStruct[myTracks].fX[0] = 0.; fTempStruct[myTracks].fX[1] = 0.; fTempStruct[myTracks].fX[2] = 0.;
      
      fTempStruct[myTracks].fId = myTracks;// use my track counter 
      fTempStruct[myTracks].fLabel = mctrackN;
      fTempStruct[myTracks].fPhi = atan2(fTempStruct[myTracks].fP[1], fTempStruct[myTracks].fP[0]);
      if(fTempStruct[myTracks].fPhi < 0) fTempStruct[myTracks].fPhi += 2*PI;
      fTempStruct[myTracks].fPt = sqrt(pow(fTempStruct[myTracks].fP[0],2) + pow(fTempStruct[myTracks].fP[1],2));
      fTempStruct[myTracks].fMom = sqrt( pow(fTempStruct[myTracks].fPt,2) + pow(fTempStruct[myTracks].fP[2],2) );
      fTempStruct[myTracks].fEta = mcParticle->Eta();
      fTempStruct[myTracks].fCharge = int(mcParticle->Charge()/3.);
      fTempStruct[myTracks].fDCAXY = 0.;
      fTempStruct[myTracks].fDCAZ = 0.;
      fTempStruct[myTracks].fDCA = 0.;
      fTempStruct[myTracks].fPion = kTRUE;
      fTempStruct[myTracks].fEaccepted = sqrt(pow(fTempStruct[myTracks].fMom,2) + pow(fTrueMassPi,2)); 
      fTempStruct[myTracks].fKey = 1;
      
      myTracks++;
      pionCount++;
    }
  }
  
  if(myTracks >= 1) {
    ((TH1F*)fOutputList->FindObject("fMultDist3"))->Fill(myTracks);
  }
 
 
  //cout<<"There are "<<myTracks<<"  myTracks"<<endl;
  //cout<<"pionCount = "<<pionCount<<"   kaonCount = "<<kaonCount<<"   protonCount = "<<protonCount<<endl;

  /////////////////////////////////////////
  // Pion Multiplicity Cut (To ensure all Correlation orders are present in each event)
  if(myTracks < 3) {cout<<"Less than 3 tracks. Skipping Event."<<endl; return;}
  /////////////////////////////////////////
 

  ////////////////////////////////
  ///////////////////////////////
  // Mbin determination
  //
  // Mbin set to Pion Count Only for pp!!!!!!!
  fMbin=-1;
  if(!fPbPbcase){
    for(Int_t i=0; i<kMultBinspp; i++){
      if( ( pionCount > fMultLimits[i]) && ( pionCount <= fMultLimits[i+1]) ) { fMbin=i; break;}
      // Mbin 0 has 1 pion
    }
  }else{
    for(Int_t i=0; i<fCentBins; i++){
      if( (centralityPercentile >= cStart+i*cStep) && (centralityPercentile < cStart+(i+1)*cStep) ){
	fMbin=i;// 0 = most central
	break;
      }
    }
  }

  if(fMbin==-1) {cout<<"Bad Mbin+++++++++++++++++++++++++++++++++++++++++++++++++++"<<endl; return;}
  
  fFSIbin=0;
  if(fMbin==0) fFSIbin = 0;//0-5%
  else if(fMbin==1) fFSIbin = 1;//5-10%
  else if(fMbin<=3) fFSIbin = 2;//10-20%
  else if(fMbin<=5) fFSIbin = 3;//20-30%
  else if(fMbin<=7) fFSIbin = 4;//30-40%
  else fFSIbin = 5;//40-50%

  Int_t rIndexForTPNMomRes = fRMax-6;
  if(fMbin==0) {rIndexForTPNMomRes=fRMax-6;}// 10 fm with EW (fRMax should be 11 for normal running)
  else if(fMbin==1) {rIndexForTPNMomRes=fRMax-7;}
  else if(fMbin<=3) {rIndexForTPNMomRes=fRMax-8;}
  else if(fMbin<=5) {rIndexForTPNMomRes=fRMax-9;}
  else {rIndexForTPNMomRes=fRMax-10;}

  //////////////////////////////////////////////////
  fEDbin=0;// Extra Dimension bin (Kt, (Kt-Psi),....)
  //////////////////////////////////////////////////
  
 
  
  ((TH1F*)fOutputList->FindObject("fEvents1"))->Fill(fMbin+1);
  ((TProfile*)fOutputList->FindObject("fAvgMult"))->Fill(fMbin+1., pionCount);

  ////////////////////////////////////
  // Add event to buffer if > 0 tracks
  if(myTracks > 0){
    fEC[zbin][fMbin]->FIFOShift();
    (fEvt) = fEC[zbin][fMbin]->fEvtStr;
    (fEvt)->fNtracks = myTracks;
    (fEvt)->fFillStatus = 1;
    for(Int_t i=0; i<myTracks; i++) (fEvt)->fTracks[i] = fTempStruct[i];
    if(fMCcase){
      (fEvt)->fMCarraySize = mcArray->GetEntriesFast();
      for(Int_t i=0; i<mcArray->GetEntriesFast(); i++) {
	AliAODMCParticle *tempMCTrack = (AliAODMCParticle*)mcArray->At(i);
	(fEvt)->fMCtracks[i].fPx = tempMCTrack->Px();
	(fEvt)->fMCtracks[i].fPy = tempMCTrack->Py();
	(fEvt)->fMCtracks[i].fPz = tempMCTrack->Pz();
	(fEvt)->fMCtracks[i].fPtot = sqrt(pow(tempMCTrack->Px(),2)+pow(tempMCTrack->Py(),2)+pow(tempMCTrack->Pz(),2));
      }	
    }
  }
    
  
  
  Float_t qinv12=0, qinv13=0, qinv23=0;
  Float_t qout=0, qside=0, qlong=0;
  Float_t qoutMC=0, qsideMC=0, qlongMC=0;
  Float_t firstQ=0, secondQ=0, thirdQ=0;
  Float_t firstQMC=0, secondQMC=0, thirdQMC=0;
  Float_t firstKt=0, secondKt=0, thirdKt=0;
  Float_t transK12=0, rapK12=0, transK3=0;
  Int_t transKbin=0, rapKbin=0;
  Float_t q3=0, q3MC=0;
  Int_t ch1=0, ch2=0, ch3=0;
  Short_t key1=0, key2=0, key3=0;
  Int_t bin1=0, bin2=0, bin3=0;
  Float_t pVect1[4]={0}; 
  Float_t pVect2[4]={0};
  Float_t pVect3[4]={0}; 
  Float_t pVect1MC[4]={0}; 
  Float_t pVect2MC[4]={0};
  Float_t pVect3MC[4]={0};
  Int_t index1=0, index2=0, index3=0;
  Float_t weight12=0, weight13=0, weight23=0;
  Float_t weight12Err=0, weight13Err=0, weight23Err=0;
  Float_t weight12CC=0, weight13CC=0, weight23CC=0;
  Float_t weightTotal=0;//, weightTotalErr=0;
  Float_t qinv12MC=0, qinv13MC=0, qinv23MC=0; 
  //Float_t Qsum1v1=0, Qsum2=0, Qsum3v1=0, Qsum1v2=0, Qsum3v2=0;
  //Float_t Qsum1v1MC=0, Qsum2MC=0, Qsum3v1MC=0, Qsum1v2MC=0, Qsum3v2MC=0;
  //
  AliAODMCParticle *mcParticle1=0x0;
  AliAODMCParticle *mcParticle2=0x0;
  

  if(fPdensityPairCut){
    ////////////////////
    Int_t pairCountSE=0, pairCountME=0;
    Int_t normPairCount[2]={0};
    Int_t numOtherPairs1[2][fMultLimit];
    Int_t numOtherPairs2[2][fMultLimit];
    Bool_t exitCode=kFALSE;
    Int_t tempNormFillCount[2][2][2][10][5];


    // reset to defaults
    for(Int_t i=0; i<fMultLimit; i++) {
      fPairLocationSE[i]->Set(fMultLimit,fDefaultsInt);
      fPairLocationME[i]->Set(fMultLimit,fDefaultsInt);
           
      // Normalization Utilities
      fOtherPairLocation1[0][i]->Set(fMultLimit,fDefaultsInt);
      fOtherPairLocation1[1][i]->Set(fMultLimit,fDefaultsInt);
      fOtherPairLocation2[0][i]->Set(fMultLimit,fDefaultsInt);
      fOtherPairLocation2[1][i]->Set(fMultLimit,fDefaultsInt);
      fNormPairSwitch[0][i]->Set(fMultLimit,fDefaultsCharMult);
      fNormPairSwitch[1][i]->Set(fMultLimit,fDefaultsCharMult);
      fNormPairSwitch[2][i]->Set(fMultLimit,fDefaultsCharMult);
      numOtherPairs1[0][i]=0;
      numOtherPairs1[1][i]=0;
      numOtherPairs2[0][i]=0;
      numOtherPairs2[1][i]=0;
      
      // Track Merging/Splitting Utilities
      fPairSplitCut[0][i]->Set(fMultLimit,fDefaultsCharMult);// P11
      fPairSplitCut[1][i]->Set(fMultLimit,fDefaultsCharMult);// P12
      fPairSplitCut[2][i]->Set(fMultLimit,fDefaultsCharMult);// P13
      fPairSplitCut[3][i]->Set(fMultLimit,fDefaultsCharMult);// P23
    }

    // Reset the temp Normalization counters
    for(Int_t i=0; i<2; i++){// Charge1
      for(Int_t j=0; j<2; j++){// Charge2
	for(Int_t k=0; k<2; k++){// Charge3
	  for(Int_t l=0; l<10; l++){// FillIndex (species Combination)
	    for(Int_t m=0; m<5; m++){// Term (Cumulant term)
	      tempNormFillCount[i][j][k][l][m] = 0;
	    }
	  }
	}
      }
    }
  	      
 
    ///////////////////////////////////////////////////////
    // Start the pairing process
    // P11 pairing
    // 1st Particle
  
    for (Int_t i=0; i<myTracks; i++) {
         
      Int_t en2=0;
   
      // 2nd particle
      for (Int_t j=i+1; j<(fEvt+en2)->fNtracks; j++) {
	
	key1 = (fEvt)->fTracks[i].fKey;
	key2 = (fEvt+en2)->fTracks[j].fKey;
	Short_t fillIndex2 = FillIndex2part(key1+key2);
	Short_t qCutBin = SetQcutBin(fillIndex2);
	Short_t normBin = SetNormBin(fillIndex2);
	pVect1[0]=(fEvt)->fTracks[i].fEaccepted; pVect2[0]=(fEvt+en2)->fTracks[j].fEaccepted;
	pVect1[1]=(fEvt)->fTracks[i].fP[0];      pVect2[1]=(fEvt+en2)->fTracks[j].fP[0];
	pVect1[2]=(fEvt)->fTracks[i].fP[1];      pVect2[2]=(fEvt+en2)->fTracks[j].fP[1];
	pVect1[3]=(fEvt)->fTracks[i].fP[2];      pVect2[3]=(fEvt+en2)->fTracks[j].fP[2];
	
	//
	
	qinv12 = GetQinv(fillIndex2, pVect1, pVect2);
	GetQosl(pVect1, pVect2, qout, qside, qlong);
	transK12 = sqrt(pow(pVect1[1]+pVect2[1],2) + pow(pVect1[2]+pVect2[2],2))/2.;


	//

	///////////////////////////////
	ch1 = Int_t(((fEvt)->fTracks[i].fCharge + 1)/2.);
	ch2 = Int_t(((fEvt+en2)->fTracks[j].fCharge + 1)/2.);
	SetFillBins2(fillIndex2, key1, key2, ch1, ch2, bin1, bin2);
	
	if(fMCcase && ch1==ch2 && fMbin==0 && qinv12<0.2){
	  //////////////////////////
	  // pad-row method testing
	  Float_t coeff = (5)*0.2*(0.18/1.2);// 5 to evaluate at 1.0m in TPC
	  Float_t phi1 = (fEvt)->fTracks[i].fPhi - asin((fEvt)->fTracks[i].fCharge*(0.1*fBfield)*coeff/(fEvt)->fTracks[i].fPt);
	  if(phi1 > 2*PI) phi1 -= 2*PI;
	  if(phi1 < 0) phi1 += 2*PI;
	  Float_t phi2 = (fEvt+en2)->fTracks[j].fPhi - asin((fEvt+en2)->fTracks[j].fCharge*(0.1*fBfield)*coeff/(fEvt+en2)->fTracks[j].fPt);
	  if(phi2 > 2*PI) phi2 -= 2*PI;
	  if(phi2 < 0) phi2 += 2*PI;
	  Float_t deltaphi = phi1 - phi2;
	  if(deltaphi > PI) deltaphi -= PI;
	  if(deltaphi < -PI) deltaphi += PI;
	  
	  Int_t ncl1 = (fEvt)->fTracks[i].fClusterMap.GetNbits();
	  Int_t ncl2 = (fEvt+en2)->fTracks[j].fClusterMap.GetNbits();
	  Float_t sumCls = 0; Float_t sumSha = 0; Float_t sumQ = 0;
	  Double_t shfrac = 0; //Double_t qfactor = 0;
	  for(Int_t imap = 0; imap < ncl1 && imap < ncl2; imap++) {
	    if ((fEvt)->fTracks[i].fClusterMap.TestBitNumber(imap) && (fEvt+en2)->fTracks[j].fClusterMap.TestBitNumber(imap)) {// Both clusters
	      if ((fEvt)->fTracks[i].fSharedMap.TestBitNumber(imap) && (fEvt+en2)->fTracks[j].fSharedMap.TestBitNumber(imap)) { // Shared
		sumQ++;
		sumCls+=2;
		sumSha+=2;}
	      else {sumQ--; sumCls+=2;}
	    }
	    else if ((fEvt)->fTracks[i].fClusterMap.TestBitNumber(imap) || (fEvt+en2)->fTracks[j].fClusterMap.TestBitNumber(imap)) {// Non shared
	      sumQ++;
	      sumCls++;}
	  }
	  if (sumCls>0) {
	    //qfactor = sumQ*1.0/sumCls;
	    shfrac = sumSha*1.0/sumCls;
	  }
	  if(fabs(deltaphi)<0.07 && fabs((fEvt)->fTracks[i].fEta-(fEvt+en2)->fTracks[j].fEta) < 0.03){
	    ((TH3D*)fOutputList->FindObject("fPairsPadRowNum"))->Fill(transK12, shfrac, qinv12);
	  }
	  
	  for(Int_t rstep=0; rstep<10; rstep++){
	    coeff = (rstep)*0.2*(0.18/1.2);
	    phi1 = (fEvt)->fTracks[i].fPhi - asin((fEvt)->fTracks[i].fCharge*(0.1*fBfield)*coeff/(fEvt)->fTracks[i].fPt);
	    if(phi1 > 2*PI) phi1 -= 2*PI;
	    if(phi1 < 0) phi1 += 2*PI;
	    phi2 = (fEvt+en2)->fTracks[j].fPhi - asin((fEvt+en2)->fTracks[j].fCharge*(0.1*fBfield)*coeff/(fEvt+en2)->fTracks[j].fPt);
	    if(phi2 > 2*PI) phi2 -= 2*PI;
	    if(phi2 < 0) phi2 += 2*PI;
	    deltaphi = phi1 - phi2;
	    if(deltaphi > PI) deltaphi -= PI;
	    if(deltaphi < -PI) deltaphi += PI;

	    if(fabs((fEvt)->fTracks[i].fEta-(fEvt+en2)->fTracks[j].fEta) < 0.03){
	      ((TH3F*)fOutputList->FindObject("fPairsShareFracDPhiNum"))->Fill(rstep, shfrac, deltaphi);
	    }
	    //if(shfrac < 0.05){
	    ((TH3F*)fOutputList->FindObject("fPairsDetaDPhiNum"))->Fill(rstep, (fEvt)->fTracks[i].fEta-(fEvt+en2)->fTracks[j].fEta, deltaphi);
	    //}
	  }
	  
	  
	}// MCcase and pair selection
	
	// Pair Splitting/Merging cut
	if(qinv12 < fQLowerCut) continue;// remove unwanted low-q pairs (also a type of track splitting/merging cut)
	if(ch1 == ch2 && !fGeneratorOnly){
	  if(!AcceptPair((fEvt)->fTracks[i], (fEvt+en2)->fTracks[j])) {
	    fPairSplitCut[0][i]->AddAt('1',j);
	    ((TH1F*)fOutputList->FindObject("fRejectedPairs"))->Fill(qinv12);
	    continue;
	  }
	}
      
	// HIJING tests 
	if(fMCcase && fillIndex2==0){
	  
	  // Check that label does not exceed stack size
	  if((fEvt)->fTracks[i].fLabel < (fEvt)->fMCarraySize && (fEvt+en2)->fTracks[j].fLabel < (fEvt+en2)->fMCarraySize){
	    pVect1MC[0]=sqrt(pow((fEvt)->fMCtracks[abs((fEvt)->fTracks[i].fLabel)].fPtot,2)+pow(fTrueMassPi,2)); 
	    pVect2MC[0]=sqrt(pow((fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[j].fLabel)].fPtot,2)+pow(fTrueMassPi,2));
	    pVect1MC[1]=(fEvt)->fMCtracks[abs((fEvt)->fTracks[i].fLabel)].fPx; pVect2MC[1]=(fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[j].fLabel)].fPx;
	    pVect1MC[2]=(fEvt)->fMCtracks[abs((fEvt)->fTracks[i].fLabel)].fPy; pVect2MC[2]=(fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[j].fLabel)].fPy;
	    pVect1MC[3]=(fEvt)->fMCtracks[abs((fEvt)->fTracks[i].fLabel)].fPz; pVect2MC[3]=(fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[j].fLabel)].fPz;
	    qinv12MC = GetQinv(fillIndex2, pVect1MC, pVect2MC);
	    GetQosl(pVect1MC, pVect2MC, qoutMC, qsideMC, qlongMC);
	    if(qinv12<0.1 && ch1==ch2) {
	      ((TProfile*)fOutputList->FindObject("fQsmearMean"))->Fill(1.,qinv12-qinv12MC); 
	      ((TProfile*)fOutputList->FindObject("fQsmearSq"))->Fill(1.,1000.*pow(qinv12-qinv12MC,2));
	      ((TH1D*)fOutputList->FindObject("fQDist"))->Fill(qinv12-qinv12MC);
	    }
	    //cout<<pVect1[0]<<"  "<<pVect1MC[0]<<" : "<<pVect1[1]<<"  "<<pVect1MC[1]<<" : "<<pVect1[2]<<"  "<<pVect1MC[2]<<" : "<<pVect1[3]<<"  "<<pVect1MC[3]<<" : "<<endl;
	    //if(transK12 <= 0.35) fEDbin=0;
	    //else fEDbin=1;

	    /*for(Int_t rIter=0; rIter<fRVALUES; rIter++){// 3fm to 8fm + 1 Therminator setting
	      for(Int_t myDampIt=0; myDampIt<kNDampValues; myDampIt++){
		Int_t denIndex = rIter*kNDampValues + myDampIt;
		Float_t WInput = MCWeight(ch1,ch2, rIter+kRmin, myDampIt, qinv12MC);
		Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[0].fIdeal->Fill(denIndex, qinv12MC, WInput);
		Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[1].fIdeal->Fill(denIndex, qinv12MC);
		Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[0].fSmeared->Fill(denIndex, qinv12, WInput);
		Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[1].fSmeared->Fill(denIndex, qinv12);
	      }
	      }*/
	    //fEDbin=0;

	    mcParticle1 = (AliAODMCParticle*)mcArray->At(abs((fEvt)->fTracks[i].fLabel));
	    mcParticle2 = (AliAODMCParticle*)mcArray->At(abs((fEvt+en2)->fTracks[j].fLabel));
	    
	    //HIJING resonance test
	    if(ch1 != ch2){
	      ((TH1F*)fOutputList->FindObject("fAllOSPairs"))->Fill(fMbin+1, qinv12);
	      if(abs(mcParticle1->GetPdgCode())==211 && abs(mcParticle2->GetPdgCode())==211){// Pions
		if(mcParticle1->GetMother() == mcParticle2->GetMother() && mcParticle1->GetMother() >=0){
		  ((TH1F*)fOutputList->FindObject("fResonanceOSPairs"))->Fill(fMbin+1, qinv12);
		}
	      }
	    }
	    // secondary contamination
	    if(abs(mcParticle1->GetPdgCode())==211 && abs(mcParticle2->GetPdgCode())==211){
	      if(ch1==ch2) {
		((TH3D*)fOutputList->FindObject("fAllSCPionPairs"))->Fill(fMbin+1, transK12, qinv12);
		if(!mcParticle1->IsSecondaryFromWeakDecay() && !mcParticle2->IsSecondaryFromWeakDecay()) {
		  ((TH3D*)fOutputList->FindObject("fPrimarySCPionPairs"))->Fill(fMbin+1, transK12, qinv12);
		}	      
	      }else{
		((TH3D*)fOutputList->FindObject("fAllMCPionPairs"))->Fill(fMbin+1, transK12, qinv12);
		if(!mcParticle1->IsSecondaryFromWeakDecay() && !mcParticle2->IsSecondaryFromWeakDecay()) {
		  ((TH3D*)fOutputList->FindObject("fPrimaryMCPionPairs"))->Fill(fMbin+1, transK12, qinv12);
		}
	      }
	    }

	    Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].fMCqinv->Fill(qinv12MC, MCWeight(ch1,ch2,10,10,qinv12MC, 0.));// was 4,5
	    Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].fMCqinvQW->Fill(qinv12MC, qinv12MC*MCWeight(ch1,ch2,10,10,qinv12MC, 0.));// was 4,5
	    // pion purity	    
	    Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].fPIDpurityDen->Fill(transK12, qinv12);
	    if(abs(mcParticle1->GetPdgCode())==211 && abs(mcParticle2->GetPdgCode())==211){// Pions
	      Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].fPIDpurityNum->Fill(transK12, qinv12);
	    }

	  }// label check 2
	}// MC case
      
	//////////////////////////////////////////
	// 2-particle term
	Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].fExplicit2->Fill(transK12, qinv12);
	Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].fExplicit2QW->Fill(transK12, qinv12, qinv12);
	Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].fAvgP->Fill(transK12, qinv12, (fEvt)->fTracks[i].fMom);
	Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].fAvgP->Fill(transK12, qinv12, (fEvt+en2)->fTracks[j].fMom);
	
	// osl frame
	if(fillIndex2==0){
	  if((transK12 > 0.2) && (transK12 < 0.3)){  
	    Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].OSL_ktbin[0].fExplicit2OSL->Fill(fabs(qout), fabs(qside), fabs(qlong));
	    Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].OSL_ktbin[0].fExplicit2OSLQW->Fill(fabs(qout), fabs(qside), fabs(qlong), qinv12);
	  }
	  if((transK12 > 0.6) && (transK12 < 0.7)){  
	    Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].OSL_ktbin[1].fExplicit2OSL->Fill(fabs(qout), fabs(qside), fabs(qlong));
	    Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].OSL_ktbin[1].fExplicit2OSLQW->Fill(fabs(qout), fabs(qside), fabs(qlong), qinv12);
	  }
	}
	
	//////////////////////////////////////////
	if(fTabulatePairs){
	  if(fillIndex2==0 && bin1==bin2){
	    rapK12 = 0;
	    transKbin=-1; rapKbin=-1;
	    
	    for(Int_t kIt=0; kIt<fKbinsT; kIt++) {if(transK12 < (fKmiddleT[kIt] + fKstepT[kIt]/2.)) {transKbin = kIt; break;}} 
	    for(Int_t kIt=0; kIt<fKbinsY; kIt++) {if(rapK12 < (fKmiddleY[kIt] + fKstepY[kIt]/2.)) {rapKbin = kIt; break;}}
	    if((transKbin<0) || (rapKbin<0)) {cout<<"problem!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<endl; continue;}
	    if((transKbin>=fKbinsT) || (rapKbin>=fKbinsY)) {cout<<"problem!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<endl; continue;}
	    Float_t WInput = 1.0;
	    if(fGenerateSignal) {
	      WInput = MCWeight(ch1,ch2, fRMax, fFixedLambdaBinr3, qinv12, transK12);
	      //WInput = MCWeight(ch1,ch2, fRMax, fFixedLambdaBinr3, qinv12MC);
	      //cout<<qinv12<<"  "<<qinv12MC<<endl;
	      KT[transKbin].KY[rapKbin].MB[fMbin].EDB[fEDbin].TwoPT[en2].fExplicit2ThreeD->Fill(fabs(qout), fabs(qside), fabs(qlong), WInput);
	    }else KT[transKbin].KY[rapKbin].MB[fMbin].EDB[fEDbin].TwoPT[en2].fExplicit2ThreeD->Fill(fabs(qout), fabs(qside), fabs(qlong));
	    
	    continue;
	  }
	}
	

	// exit out of loop if there are too many pairs  
	if(pairCountSE >= kPairLimit) {exitCode=kTRUE; continue;}// Too many SE pairs
	if(exitCode) continue;

	//////////////////////////
	// Enforce the Qcut
	if(qinv12 <= fQcut[qCutBin]) {
	 
	  ///////////////////////////
	  // particle 1
	  (fEvt)->fPairsSE[pairCountSE].fP1[0] = (fEvt)->fTracks[i].fP[0];
	  (fEvt)->fPairsSE[pairCountSE].fP1[1] = (fEvt)->fTracks[i].fP[1];
	  (fEvt)->fPairsSE[pairCountSE].fP1[2] = (fEvt)->fTracks[i].fP[2];
	  (fEvt)->fPairsSE[pairCountSE].fE1 = (fEvt)->fTracks[i].fEaccepted;
	  (fEvt)->fPairsSE[pairCountSE].fCharge1 = (fEvt)->fTracks[i].fCharge;
	  (fEvt)->fPairsSE[pairCountSE].fIndex1 = i;
	  (fEvt)->fPairsSE[pairCountSE].fKey1 = key1;
	  (fEvt)->fPairsSE[pairCountSE].fLabel1 = (fEvt)->fTracks[i].fLabel;
	  if(fMCcase && ((fEvt)->fTracks[i].fLabel < (fEvt)->fMCarraySize)){
	    (fEvt)->fPairsSE[pairCountSE].fP1MC[0] = (fEvt)->fMCtracks[abs((fEvt)->fTracks[i].fLabel)].fPx;
	    (fEvt)->fPairsSE[pairCountSE].fP1MC[1] = (fEvt)->fMCtracks[abs((fEvt)->fTracks[i].fLabel)].fPy;
	    (fEvt)->fPairsSE[pairCountSE].fP1MC[2] = (fEvt)->fMCtracks[abs((fEvt)->fTracks[i].fLabel)].fPz;
	  }
	  // particle 2
	  (fEvt)->fPairsSE[pairCountSE].fP2[0] = (fEvt+en2)->fTracks[j].fP[0];
	  (fEvt)->fPairsSE[pairCountSE].fP2[1] = (fEvt+en2)->fTracks[j].fP[1];
	  (fEvt)->fPairsSE[pairCountSE].fP2[2] = (fEvt+en2)->fTracks[j].fP[2];
	  (fEvt)->fPairsSE[pairCountSE].fE2 = (fEvt+en2)->fTracks[j].fEaccepted;
	  (fEvt)->fPairsSE[pairCountSE].fCharge2 = (fEvt+en2)->fTracks[j].fCharge;
	  (fEvt)->fPairsSE[pairCountSE].fIndex2 = j;
	  (fEvt)->fPairsSE[pairCountSE].fKey2 = key2;
	  (fEvt)->fPairsSE[pairCountSE].fLabel2 = (fEvt+en2)->fTracks[j].fLabel;
	  if(fMCcase && ((fEvt+en2)->fTracks[j].fLabel < (fEvt+en2)->fMCarraySize)){
	    (fEvt)->fPairsSE[pairCountSE].fP2MC[0] = (fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[j].fLabel)].fPx;
	    (fEvt)->fPairsSE[pairCountSE].fP2MC[1] = (fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[j].fLabel)].fPy;
	    (fEvt)->fPairsSE[pairCountSE].fP2MC[2] = (fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[j].fLabel)].fPz;
	  }
	
	  (fEvt)->fPairsSE[pairCountSE].fQinv = qinv12;
	  
	  fPairLocationSE[i]->AddAt(pairCountSE,j);
	  
	  pairCountSE++;
	  
	}
	
	
	/////////////////////////////////////////////////////////
	// Normalization Region
	
	if((qinv12 >= fNormQcutLow[normBin]) && (qinv12 < fNormQcutHigh[normBin])){
	  // particle 1
	  fNormPairs[en2][normPairCount[en2]].fCharge1 = (fEvt)->fTracks[i].fCharge;
	  fNormPairs[en2][normPairCount[en2]].fIndex1 = i;
	  fNormPairs[en2][normPairCount[en2]].fKey1 = (fEvt)->fTracks[i].fKey;
	  // particle 2
	  fNormPairs[en2][normPairCount[en2]].fCharge2 = (fEvt+en2)->fTracks[j].fCharge;
	  fNormPairs[en2][normPairCount[en2]].fIndex2 = j;
	  fNormPairs[en2][normPairCount[en2]].fKey2 = (fEvt+en2)->fTracks[j].fKey;
	  
	  
	  //other past pairs with particle j
	  for(Int_t pastpair=0; pastpair<numOtherPairs2[0][j]; pastpair++){
	    Int_t locationOtherPair = fOtherPairLocation2[0][j]->At(pastpair);
	    if(locationOtherPair < 0) continue;// no pair there
	    Int_t indexOther1 = i;
	    Int_t indexOther2 = fNormPairs[0][ locationOtherPair ].fIndex1;
	    
	    // Both possible orderings of other indexes
	    if( (fNormPairSwitch[0][indexOther1]->At(indexOther2)=='1') || (fNormPairSwitch[0][indexOther2]->At(indexOther1)=='1')) {
	      
	      // 1 and 2 are from SE
	      ch3 = Int_t((fNormPairs[0][ locationOtherPair ].fCharge1 + 1)/2.);
	      key3 = fNormPairs[0][ locationOtherPair ].fKey1;
	      Short_t fillIndex3 = FillIndex3part(key1+key2+key3);
	      SetFillBins3(fillIndex3, key1, key2, key3, ch1, ch2, ch3, 0, bin1, bin2, bin3, fDummyB, fDummyB, fDummyB);
	      
	      tempNormFillCount[bin1][bin2][bin3][fillIndex3][0]++;
	    }
	    
	  }// pastpair P11 loop
	  
	  
	  fNormPairSwitch[en2][i]->AddAt('1',j);	    
	  fOtherPairLocation1[en2][i]->AddAt(normPairCount[en2], numOtherPairs1[en2][i]);// location of otherpair with i as 1st particle
	  fOtherPairLocation2[en2][j]->AddAt(normPairCount[en2], numOtherPairs2[en2][j]);// location of otherpair with j as 2nd particle
	  
	  numOtherPairs1[en2][i]++;
	  numOtherPairs2[en2][j]++;
	  
	  
	  normPairCount[en2]++;
	  if(normPairCount[en2] >= kNormPairLimit) exitCode=kTRUE;
	  
	}// Norm Region
	
      }// j particle
    }// i particle
    
  
    
    //////////////////////////////////////////////
    // P12 pairing
    // 1st Particle
    for (Int_t i=0; i<myTracks; i++) {
         
      Int_t en2=1;

      // 2nd particle
      for (Int_t j=0; j<(fEvt+en2)->fNtracks; j++) {
	  	
	key1 = (fEvt)->fTracks[i].fKey;
	key2 = (fEvt+en2)->fTracks[j].fKey;
	Short_t fillIndex2 = FillIndex2part(key1+key2);
	Short_t qCutBin = SetQcutBin(fillIndex2);
	Short_t normBin = SetNormBin(fillIndex2);
	pVect1[0]=(fEvt)->fTracks[i].fEaccepted; pVect2[0]=(fEvt+en2)->fTracks[j].fEaccepted;
	pVect1[1]=(fEvt)->fTracks[i].fP[0];      pVect2[1]=(fEvt+en2)->fTracks[j].fP[0];
	pVect1[2]=(fEvt)->fTracks[i].fP[1];      pVect2[2]=(fEvt+en2)->fTracks[j].fP[1];
	pVect1[3]=(fEvt)->fTracks[i].fP[2];      pVect2[3]=(fEvt+en2)->fTracks[j].fP[2];
	
	qinv12 = GetQinv(fillIndex2, pVect1, pVect2);
	GetQosl(pVect1, pVect2, qout, qside, qlong);
	transK12 = sqrt(pow(pVect1[1]+pVect2[1],2) + pow(pVect1[2]+pVect2[2],2))/2.;
	//if(transK12 <= 0.35) fEDbin=0;
	//else fEDbin=1;

	
	
	///////////////////////////////
	ch1 = Int_t(((fEvt)->fTracks[i].fCharge + 1)/2.);
	ch2 = Int_t(((fEvt+en2)->fTracks[j].fCharge + 1)/2.);
	SetFillBins2(fillIndex2, key1, key2, ch1, ch2, bin1, bin2);
	
	if(fMCcase){
	  if((fEvt)->fTracks[i].fLabel < (fEvt)->fMCarraySize && (fEvt+en2)->fTracks[j].fLabel < (fEvt+en2)->fMCarraySize){
	    pVect1MC[0]=sqrt(pow((fEvt)->fMCtracks[abs((fEvt)->fTracks[i].fLabel)].fPtot,2)+pow(fTrueMassPi,2)); 
	    pVect2MC[0]=sqrt(pow((fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[j].fLabel)].fPtot,2)+pow(fTrueMassPi,2));
	    pVect1MC[1]=(fEvt)->fMCtracks[abs((fEvt)->fTracks[i].fLabel)].fPx; pVect2MC[1]=(fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[j].fLabel)].fPx;
	    pVect1MC[2]=(fEvt)->fMCtracks[abs((fEvt)->fTracks[i].fLabel)].fPy; pVect2MC[2]=(fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[j].fLabel)].fPy;
	    pVect1MC[3]=(fEvt)->fMCtracks[abs((fEvt)->fTracks[i].fLabel)].fPz; pVect2MC[3]=(fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[j].fLabel)].fPz;
	    qinv12MC = GetQinv(fillIndex2, pVect1MC, pVect2MC);
	    //
	  
	    for(Int_t rIter=0; rIter<fRVALUES; rIter++){
	      for(Int_t myDampIt=0; myDampIt<kNDampValues; myDampIt++){
		Int_t denIndex = rIter*kNDampValues + myDampIt;
		Float_t WInput = MCWeight(ch1,ch2, rIter+kRmin, myDampIt, qinv12MC, 0.);
		Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[0].fIdeal->Fill(denIndex, qinv12MC, WInput);
		Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[1].fIdeal->Fill(denIndex, qinv12MC);
		Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[0].fSmeared->Fill(denIndex, qinv12, WInput);
		Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[1].fSmeared->Fill(denIndex, qinv12);
	      }
	    }
	  
	    
	    /////////////////////////////////////////////////////
	    if(!fTabulatePairs && qinv12 <= fQcut[qCutBin]) {// 3-particle MRC
	      
	      // 3-particle MRC
	      Short_t fillIndex3 = 0;
	      key1=1; key2=1; key3=1;
	      Int_t en3 = 2;
	      
	      for (Int_t k=0; k<(fEvt+en3)->fNtracks; k++) {
		if((fEvt+en3)->fTracks[k].fLabel < (fEvt+en3)->fMCarraySize){
		  ch3 = Int_t(((fEvt+en3)->fTracks[k].fCharge + 1)/2.);
		  pVect3[0]=(fEvt+en3)->fTracks[k].fEaccepted;
		  pVect3[1]=(fEvt+en3)->fTracks[k].fP[0];
		  pVect3[2]=(fEvt+en3)->fTracks[k].fP[1];
		  pVect3[3]=(fEvt+en3)->fTracks[k].fP[2];
		  qinv13 = GetQinv(0, pVect1, pVect3);
		  qinv23 = GetQinv(0, pVect2, pVect3);
		  
		  if(qinv13 > fQcut[qCutBin] || qinv23 > fQcut[qCutBin]) continue;
		  
		  
		  pVect3MC[0]=sqrt(pow((fEvt+en3)->fMCtracks[abs((fEvt+en3)->fTracks[k].fLabel)].fPtot,2)+pow(fTrueMassPi,2)); 
		  pVect3MC[1]=(fEvt+en3)->fMCtracks[abs((fEvt+en3)->fTracks[k].fLabel)].fPx;
		  pVect3MC[2]=(fEvt+en3)->fMCtracks[abs((fEvt+en3)->fTracks[k].fLabel)].fPy;
		  pVect3MC[3]=(fEvt+en3)->fMCtracks[abs((fEvt+en3)->fTracks[k].fLabel)].fPz;
		  qinv13MC = GetQinv(0, pVect1MC, pVect3MC);
		  qinv23MC = GetQinv(0, pVect2MC, pVect3MC);
		  
		  
		  q3MC = sqrt(pow(qinv12MC,2)+pow(qinv13MC,2)+pow(qinv23MC,2));
		  transK3 = sqrt( pow(pVect1[1]+pVect2[1]+pVect3[1],2) + pow(pVect1[2]+pVect2[2]+pVect3[2],2))/3.;
		  

		  //
		  // The below call to SetFillBins3 will work for all 3-particle terms since all are for fully mixed events. part is set to 1, but only matters for terms 2-4.
		  Bool_t fill2=kFALSE, fill3=kFALSE, fill4=kFALSE;
		  SetFillBins3(fillIndex3, key1, key2, key3, ch1, ch2, ch3, 1, bin1, bin2, bin3, fill2, fill3, fill4);
		  
		  
		  for(Int_t jj=1; jj<=5; jj++){// term loop
		    
		    if(jj==2) {if(!fill2) continue;}//12
		    if(jj==3) {if(!fill3) continue;}//13
		    if(jj==4) {if(!fill4) continue;}//23
		    
		    Float_t WInput=1.0;
		    Double_t K3=1.0;
		    ArrangeQs(fillIndex3, key1, key2, key3, ch1, ch2, ch3, qinv12, qinv13, qinv23, 1, jj, firstQ, secondQ, thirdQ);
		    ArrangeQs(fillIndex3, key1, key2, key3, ch1, ch2, ch3, qinv12MC, qinv13MC, qinv23MC, 1, jj, firstQMC, secondQMC, thirdQMC);
		    
		    if(ch1==ch2 && ch1==ch3){// same charge
		      WInput = MCWeight3D(kTRUE, jj, fFixedLambdaBinMomRes, firstQMC, secondQMC, thirdQMC, 0., 0., 0.);
		      if(jj==1) {
			K3 = FSICorrelationTherm2(+1,+1, firstQMC)*FSICorrelationTherm2(+1,+1, secondQMC)*FSICorrelationTherm2(+1,+1, thirdQMC);// GRS
			((TH1D*)fOutputList->FindObject("fMCWeight3DTerm1SC"))->Fill(q3MC, WInput);
			((TH1D*)fOutputList->FindObject("fMCWeight3DTerm1SCden"))->Fill(q3MC);
		      }else if(jj!=5){
			((TH1D*)fOutputList->FindObject("fMCWeight3DTerm2SC"))->Fill(q3MC, WInput);
			((TH1D*)fOutputList->FindObject("fMCWeight3DTerm2SCden"))->Fill(q3MC);
		      }
		    }else {// mixed charge
		      if(bin1==bin2) {
			WInput = MCWeight3D(kFALSE, jj, fFixedLambdaBinMomRes, firstQMC, secondQMC, thirdQMC, 0., 0., 0.);
			if(jj==1) K3 = FSICorrelationTherm2(+1,+1, firstQMC)*FSICorrelationTherm2(+1,-1, secondQMC)*FSICorrelationTherm2(+1,-1, thirdQMC);// GRS
		      }else {
			if(jj==1 || jj==5) WInput = MCWeight3D(kFALSE, jj, fFixedLambdaBinMomRes, thirdQMC, secondQMC, firstQMC, 0., 0., 0.);// thirdQMC is ss
			else WInput = MCWeight3D(kFALSE, 6-jj, fFixedLambdaBinMomRes, thirdQMC, secondQMC, firstQMC, 0., 0., 0.);
			
			if(jj==1) K3 = FSICorrelationTherm2(+1,+1, thirdQMC)*FSICorrelationTherm2(+1,-1, secondQMC)*FSICorrelationTherm2(+1,-1, firstQMC);// GRS
		      }
		      if(jj==1){
			((TH1D*)fOutputList->FindObject("fMCWeight3DTerm1MC"))->Fill(q3MC, WInput);
			((TH1D*)fOutputList->FindObject("fMCWeight3DTerm1MCden"))->Fill(q3MC);
		      }else{
			if(bin1==bin2){
			  if(jj==2){
			    ((TH1D*)fOutputList->FindObject("fMCWeight3DTerm2MC"))->Fill(q3MC, WInput);
			    ((TH1D*)fOutputList->FindObject("fMCWeight3DTerm2MCden"))->Fill(q3MC);
			  }else if(jj==3){
			    ((TH1D*)fOutputList->FindObject("fMCWeight3DTerm3MC"))->Fill(q3MC, WInput);
			    ((TH1D*)fOutputList->FindObject("fMCWeight3DTerm3MCden"))->Fill(q3MC);
			  }else if(jj==4){
			    ((TH1D*)fOutputList->FindObject("fMCWeight3DTerm4MC"))->Fill(q3MC, WInput);
			    ((TH1D*)fOutputList->FindObject("fMCWeight3DTerm4MCden"))->Fill(q3MC);
			  }else{}
			}else{
			  if(jj==2){
			    ((TH1D*)fOutputList->FindObject("fMCWeight3DTerm4MC"))->Fill(q3MC, WInput);
			    ((TH1D*)fOutputList->FindObject("fMCWeight3DTerm4MCden"))->Fill(q3MC);
			  }else if(jj==3){
			    ((TH1D*)fOutputList->FindObject("fMCWeight3DTerm3MC"))->Fill(q3MC, WInput);
			    ((TH1D*)fOutputList->FindObject("fMCWeight3DTerm3MCden"))->Fill(q3MC);
			  }else if(jj==4){
			    ((TH1D*)fOutputList->FindObject("fMCWeight3DTerm2MC"))->Fill(q3MC, WInput);
			    ((TH1D*)fOutputList->FindObject("fMCWeight3DTerm2MCden"))->Fill(q3MC);
			  }else{}
			}
			
		      }
		    }
		   
		    Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].fIdeal->Fill(firstQMC, secondQMC, thirdQMC, WInput);
		    Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].fSmeared->Fill(firstQ, secondQ, thirdQ, WInput);
		    Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].fQW12->Fill(firstQMC, secondQMC, thirdQMC, WInput*firstQMC);
		    Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].fQW13->Fill(firstQMC, secondQMC, thirdQMC, WInput*secondQMC);
		    if(jj==1){
		      Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].fSumK3->Fill(firstQMC, secondQMC, thirdQMC, WInput/K3);
		      Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].fEnK3->Fill(firstQMC, secondQMC, thirdQMC, WInput);
		    }
		    
		    /*if(ch1==ch2 && ch1==ch3){
		      if(jj==1){
			FourVectProdTerms(pVect1, pVect2, pVect3, Qsum1v1, Qsum2, Qsum3v1, Qsum1v2, Qsum3v2);// 4-vector product sums
			FourVectProdTerms(pVect1MC, pVect2MC, pVect3MC, Qsum1v1MC, Qsum2MC, Qsum3v1MC, Qsum1v2MC, Qsum3v2MC);// 4-vector product sums
		      }else if(jj==2) {
			FourVectProdTerms(pVect1, pVect2, pVect3, Qsum1v1, Qsum2, Qsum3v1, Qsum1v2, Qsum3v2);// 4-vector product sums
			FourVectProdTerms(pVect1MC, pVect2MC, pVect3MC, Qsum1v1MC, Qsum2MC, Qsum3v1MC, Qsum1v2MC, Qsum3v2MC);// 4-vector product sums
		      }else if(jj==3){ 
			FourVectProdTerms(pVect1, pVect3, pVect2, Qsum1v1, Qsum2, Qsum3v1, Qsum1v2, Qsum3v2);// 4-vector product sums
			FourVectProdTerms(pVect1MC, pVect3MC, pVect2MC, Qsum1v1MC, Qsum2MC, Qsum3v1MC, Qsum1v2MC, Qsum3v2MC);// 4-vector product sums
		      }else if(jj==4) {
			FourVectProdTerms(pVect3, pVect1, pVect2, Qsum1v1, Qsum2, Qsum3v1, Qsum1v2, Qsum3v2);// 4-vector product sums
			FourVectProdTerms(pVect3MC, pVect1MC, pVect2MC, Qsum1v1MC, Qsum2MC, Qsum3v1MC, Qsum1v2MC, Qsum3v2MC);// 4-vector product sums
		      }else {
			FourVectProdTerms(pVect1, pVect2, pVect3, Qsum1v1, Qsum2, Qsum3v1, Qsum1v2, Qsum3v2);// 4-vector product sums
			FourVectProdTerms(pVect1MC, pVect2MC, pVect3MC, Qsum1v1MC, Qsum2MC, Qsum3v1MC, Qsum1v2MC, Qsum3v2MC);// 4-vector product sums
		      }
		      
		      Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd1TermsIdeal->Fill(Qsum1v1MC, Qsum2MC, Qsum3v1MC, WInput);
		      Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd1TermsSmeared->Fill(Qsum1v1, Qsum2, Qsum3v1, WInput);
		      Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd2TermsIdeal->Fill(Qsum1v2MC, Qsum2MC, Qsum3v2MC, WInput);
		      Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd2TermsSmeared->Fill(Qsum1v2, Qsum2, Qsum3v2, WInput);
		      if(jj==1){
			Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd1Q3W->Fill(Qsum1v1MC, Qsum2MC, Qsum3v1MC, WInput*q3);
			Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd2Q3W->Fill(Qsum1v2MC, Qsum2MC, Qsum3v2MC, WInput*q3);
		      }
		      //
		      if(qinv12MC > fQLowerCut && qinv13MC > fQLowerCut && qinv23MC > fQLowerCut){
			// does not really matter if MC or real data triplets are used to average 1/K3...but better to use umsmeared values
			if(jj==1){
			  WInput = MCWeight3D(kTRUE, 1, 25, firstQMC, secondQMC, thirdQMC);// pure 3-pion (lambda=1)
			  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd1TermsSumK3->Fill(Qsum1v1MC, Qsum2MC, Qsum3v1MC, WInput/K3);
			  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd2TermsSumK3->Fill(Qsum1v2MC, Qsum2MC, Qsum3v2MC, WInput/K3);
			  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd1TermsEnK3->Fill(Qsum1v1MC, Qsum2MC, Qsum3v1MC, WInput);
			  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd2TermsEnK3->Fill(Qsum1v2MC, Qsum2MC, Qsum3v2MC, WInput);
			}if(jj>1 && jj<=4){
			  Float_t InteractingQ=qinv12MC;
			  Double_t K2 = FSICorrelationTherm2(+1,+1, InteractingQ);// K2 from Therminator source
			  WInput = MCWeight3D(kTRUE, jj, 25, firstQMC, secondQMC, thirdQMC);// pure 2-pion (lambda=1)
			  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd1TermsSumK2->Fill(Qsum1v1MC, Qsum2MC, Qsum3v1MC, WInput/K2);
			  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd2TermsSumK2->Fill(Qsum1v2MC, Qsum2MC, Qsum3v2MC, WInput/K2);
			  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd1TermsEnK2->Fill(Qsum1v1MC, Qsum2MC, Qsum3v1MC, WInput);
			  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd2TermsEnK2->Fill(Qsum1v2MC, Qsum2MC, Qsum3v2MC, WInput);
			}
		      }
		      
		    }// same charges
		    */
		  }// jj
		}// MCarray check, 3rd particle
	      }// 3rd particle
	      
	    }// TabulatePairs Check
	    
	  }// MCarray check, 1st and 2nd particle
	  
	  // reset key's and fill bins (they were altered for 3 particle MRC calculation)
	  key1 = (fEvt)->fTracks[i].fKey;
	  key2 = (fEvt+en2)->fTracks[j].fKey;
	  SetFillBins2(fillIndex2, key1, key2, ch1, ch2, bin1, bin2);

	  
	  if(ch1==ch2 && fMbin==0 && qinv12<0.2){
	    //////////////////////////
	    // pad-row method testing
	    Float_t coeff = (5)*0.2*(0.18/1.2);// 5 to evaluate at 1.0m in TPC
	    Float_t phi1 = (fEvt)->fTracks[i].fPhi - asin((fEvt)->fTracks[i].fCharge*(0.1*fBfield)*coeff/(fEvt)->fTracks[i].fPt);
	    if(phi1 > 2*PI) phi1 -= 2*PI;
	    if(phi1 < 0) phi1 += 2*PI;
	    Float_t phi2 = (fEvt+en2)->fTracks[j].fPhi - asin((fEvt+en2)->fTracks[j].fCharge*(0.1*fBfield)*coeff/(fEvt+en2)->fTracks[j].fPt);
	    if(phi2 > 2*PI) phi2 -= 2*PI;
	    if(phi2 < 0) phi2 += 2*PI;
	    Float_t deltaphi = phi1 - phi2;
	    if(deltaphi > PI) deltaphi -= PI;
	    if(deltaphi < -PI) deltaphi += PI;
	    
	    Int_t ncl1 = (fEvt)->fTracks[i].fClusterMap.GetNbits();
	    Int_t ncl2 = (fEvt+en2)->fTracks[j].fClusterMap.GetNbits();
	    Float_t sumCls = 0; Float_t sumSha = 0; Float_t sumQ = 0;
	    Double_t shfrac = 0; //Double_t qfactor = 0;
	    for(Int_t imap = 0; imap < ncl1 && imap < ncl2; imap++) {
	      if ((fEvt)->fTracks[i].fClusterMap.TestBitNumber(imap) && (fEvt+en2)->fTracks[j].fClusterMap.TestBitNumber(imap)) {// Both clusters
		if ((fEvt)->fTracks[i].fSharedMap.TestBitNumber(imap) && (fEvt+en2)->fTracks[j].fSharedMap.TestBitNumber(imap)) { // Shared
		  sumQ++;
		  sumCls+=2;
		  sumSha+=2;}
		else {sumQ--; sumCls+=2;}
	      }
	      else if ((fEvt)->fTracks[i].fClusterMap.TestBitNumber(imap) || (fEvt+en2)->fTracks[j].fClusterMap.TestBitNumber(imap)) {// Non shared
		sumQ++;
		sumCls++;}
	    }
	    if (sumCls>0) {
	      //qfactor = sumQ*1.0/sumCls;
	      shfrac = sumSha*1.0/sumCls;
	    }
	    if(fabs(deltaphi)<0.07 && fabs((fEvt)->fTracks[i].fEta-(fEvt+en2)->fTracks[j].fEta) < 0.03){
	      ((TH3D*)fOutputList->FindObject("fPairsPadRowDen"))->Fill(transK12, shfrac, qinv12);
	    }
	    
	    for(Int_t rstep=0; rstep<10; rstep++){
	      coeff = (rstep)*0.2*(0.18/1.2);
	      // propagate through B field to r=1.2m
	      phi1 = (fEvt)->fTracks[i].fPhi - asin((fEvt)->fTracks[i].fCharge*(0.1*fBfield)*coeff/(fEvt)->fTracks[i].fPt);
	      if(phi1 > 2*PI) phi1 -= 2*PI;
	      if(phi1 < 0) phi1 += 2*PI;
	      phi2 = (fEvt+en2)->fTracks[j].fPhi - asin((fEvt+en2)->fTracks[j].fCharge*(0.1*fBfield)*coeff/(fEvt+en2)->fTracks[j].fPt);
	      if(phi2 > 2*PI) phi2 -= 2*PI;
	      if(phi2 < 0) phi2 += 2*PI;
	      deltaphi = phi1 - phi2;
	      if(deltaphi > PI) deltaphi -= PI;
	      if(deltaphi < -PI) deltaphi += PI;
	      
	      if(fabs((fEvt)->fTracks[i].fEta-(fEvt+en2)->fTracks[j].fEta) < 0.03){
		((TH3F*)fOutputList->FindObject("fPairsShareFracDPhiDen"))->Fill(rstep, shfrac, deltaphi);
	      }
	      //if(shfrac < 0.05){
	      ((TH3F*)fOutputList->FindObject("fPairsDetaDPhiDen"))->Fill(rstep, (fEvt)->fTracks[i].fEta-(fEvt+en2)->fTracks[j].fEta, deltaphi);
	      //}
	    }
	    
	   
	    
	    
	  }// desired pair selection
	  
	
  
	}// fMCcase
	
	

	if(qinv12 < fQLowerCut) continue;// remove unwanted low-q pairs (also a type of track splitting cut)
	if(ch1 == ch2 && !fGeneratorOnly){
	  if(!AcceptPair((fEvt)->fTracks[i], (fEvt+en2)->fTracks[j])) {
	    fPairSplitCut[1][i]->AddAt('1',j);
	    continue;
	  }
	}
	
	//////////////////////////////////////////
	// 2-particle term
	Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].fExplicit2->Fill(transK12, qinv12);
	Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].fExplicit2QW->Fill(transK12, qinv12, qinv12);
	
	// osl frame
	if(fillIndex2==0){
	  if((transK12 > 0.2) && (transK12 < 0.3)){
	    Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].OSL_ktbin[0].fExplicit2OSL->Fill(fabs(qout), fabs(qside), fabs(qlong));
	    Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].OSL_ktbin[0].fExplicit2OSLQW->Fill(fabs(qout), fabs(qside), fabs(qlong), qinv12);
	  }
	  if((transK12 > 0.6) && (transK12 < 0.7)){  
	    Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].OSL_ktbin[1].fExplicit2OSL->Fill(fabs(qout), fabs(qside), fabs(qlong));
	    Charge1[bin1].Charge2[bin2].SC[fillIndex2].MB[fMbin].EDB[fEDbin].TwoPT[en2].OSL_ktbin[1].fExplicit2OSLQW->Fill(fabs(qout), fabs(qside), fabs(qlong), qinv12);
	  }
	}
	//////////////////////////////////////////
	if(fTabulatePairs){
	  if(fillIndex2==0 && bin1==bin2){
	    rapK12 = 0;
	    transKbin=-1; rapKbin=-1;
	    
	    for(Int_t kIt=0; kIt<fKbinsT; kIt++) {if(transK12 < (fKmiddleT[kIt] + fKstepT[kIt]/2.)) {transKbin = kIt; break;}} 
	    for(Int_t kIt=0; kIt<fKbinsY; kIt++) {if(rapK12 < (fKmiddleY[kIt] + fKstepY[kIt]/2.)) {rapKbin = kIt; break;}}
	    if((transKbin<0) || (rapKbin<0)) {cout<<"problem!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<endl; continue;}
	    if((transKbin>=fKbinsT) || (rapKbin>=fKbinsY)) {cout<<"problem!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<endl; continue;}
	    
	    if(fGenerateSignal) KT[transKbin].KY[rapKbin].MB[fMbin].EDB[fEDbin].TwoPT[en2].fExplicit2ThreeD->Fill(fabs(qout), fabs(qside), fabs(qlong));
	    else KT[transKbin].KY[rapKbin].MB[fMbin].EDB[fEDbin].TwoPT[en2].fExplicit2ThreeD->Fill(fabs(qout), fabs(qside), fabs(qlong));
	   
	    continue;
	  }
	}
	
	
	if(pairCountME >= 2*kPairLimit) {exitCode=kTRUE; continue;}// Too many SE pairs
	if(exitCode) continue;

	if(qinv12 <= fQcut[qCutBin]) {
	  ///////////////////////////
	  
	  // particle 1
	  (fEvt)->fPairsME[pairCountME].fP1[0] = (fEvt)->fTracks[i].fP[0];
	  (fEvt)->fPairsME[pairCountME].fP1[1] = (fEvt)->fTracks[i].fP[1];
	  (fEvt)->fPairsME[pairCountME].fP1[2] = (fEvt)->fTracks[i].fP[2];
	  (fEvt)->fPairsME[pairCountME].fE1 = (fEvt)->fTracks[i].fEaccepted;
	  (fEvt)->fPairsME[pairCountME].fCharge1 = (fEvt)->fTracks[i].fCharge;
	  (fEvt)->fPairsME[pairCountME].fIndex1 = i;
	  (fEvt)->fPairsME[pairCountME].fKey1 = key1;
	  (fEvt)->fPairsME[pairCountME].fLabel1 = (fEvt)->fTracks[i].fLabel;
	  if(fMCcase && ((fEvt)->fTracks[i].fLabel < (fEvt)->fMCarraySize)){
	    (fEvt)->fPairsME[pairCountME].fP1MC[0] = (fEvt)->fMCtracks[abs((fEvt)->fTracks[i].fLabel)].fPx;
	    (fEvt)->fPairsME[pairCountME].fP1MC[1] = (fEvt)->fMCtracks[abs((fEvt)->fTracks[i].fLabel)].fPy;
	    (fEvt)->fPairsME[pairCountME].fP1MC[2] = (fEvt)->fMCtracks[abs((fEvt)->fTracks[i].fLabel)].fPz;
	  }
	  // particle 2
	  (fEvt)->fPairsME[pairCountME].fP2[0] = (fEvt+en2)->fTracks[j].fP[0];
	  (fEvt)->fPairsME[pairCountME].fP2[1] = (fEvt+en2)->fTracks[j].fP[1];
	  (fEvt)->fPairsME[pairCountME].fP2[2] = (fEvt+en2)->fTracks[j].fP[2];
	  (fEvt)->fPairsME[pairCountME].fE2 = (fEvt+en2)->fTracks[j].fEaccepted;
	  (fEvt)->fPairsME[pairCountME].fCharge2 = (fEvt+en2)->fTracks[j].fCharge;
	  (fEvt)->fPairsME[pairCountME].fIndex2 = j;
	  (fEvt)->fPairsME[pairCountME].fKey2 = key2;
	  (fEvt)->fPairsME[pairCountME].fLabel2 = (fEvt+en2)->fTracks[j].fLabel;
	  if(fMCcase && ((fEvt+en2)->fTracks[j].fLabel < (fEvt+en2)->fMCarraySize)){
	    (fEvt)->fPairsME[pairCountME].fP2MC[0] = (fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[j].fLabel)].fPx;
	    (fEvt)->fPairsME[pairCountME].fP2MC[1] = (fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[j].fLabel)].fPy;
	    (fEvt)->fPairsME[pairCountME].fP2MC[2] = (fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[j].fLabel)].fPz;
	  }
	  
	  (fEvt)->fPairsME[pairCountME].fQinv = qinv12;
	  
	  fPairLocationME[i]->AddAt(Int_t(pairCountME),j);
	  
	  pairCountME++;
	  
	}
	
	if((qinv12 >= fNormQcutLow[normBin]) && (qinv12 < fNormQcutHigh[normBin])){
	  // particle 1
	  fNormPairs[en2][normPairCount[en2]].fCharge1 = (fEvt)->fTracks[i].fCharge;
	  fNormPairs[en2][normPairCount[en2]].fIndex1 = i;
	  fNormPairs[en2][normPairCount[en2]].fKey1 = (fEvt)->fTracks[i].fKey;
	  // particle 2
	  fNormPairs[en2][normPairCount[en2]].fCharge2 = (fEvt+en2)->fTracks[j].fCharge;
	  fNormPairs[en2][normPairCount[en2]].fIndex2 = j;
	  fNormPairs[en2][normPairCount[en2]].fKey2 = (fEvt+en2)->fTracks[j].fKey;
	  
	  //other past pairs in P11 with particle i
	  for(Int_t pastpairP11=0; pastpairP11<numOtherPairs2[0][i]; pastpairP11++){// past pair in P11 with i as 1st and 2nd particle
	    Int_t locationOtherPairP11 = fOtherPairLocation2[0][i]->At(pastpairP11);// i is 2nd particle
	    if(locationOtherPairP11 < 0) continue;// no pair there
	    Int_t indexOther1P11 = fNormPairs[0][ locationOtherPairP11 ].fIndex1; 
	    	    
	    //Check other past pairs in P12
	    if( (fNormPairSwitch[1][indexOther1P11]->At(j)=='0')) continue;
	    
	    // 1 and 3 are from SE
	    ch3 = Int_t((fNormPairs[0][ locationOtherPairP11 ].fCharge1 + 1)/2.);// charge of second particle in P11
	    key3 = fNormPairs[0][ locationOtherPairP11 ].fKey1;
	    Short_t fillIndex3 = FillIndex3part(key1+key2+key3);
	    Bool_t fill2=kFALSE, fill3=kFALSE, fill4=kFALSE;
	    SetFillBins3(fillIndex3, key1, key2, key3, ch1, ch2, ch3, 2, bin1, bin2, bin3, fill2, fill3, fill4);
	    
	 	    
	    if(fill2) tempNormFillCount[bin1][bin2][bin3][fillIndex3][1]++;
	    if(fill3) tempNormFillCount[bin1][bin2][bin3][fillIndex3][2]++;
	    if(fill4) tempNormFillCount[bin1][bin2][bin3][fillIndex3][3]++;
	    

	  }// P11 loop
	  
	  
	  fNormPairSwitch[en2][i]->AddAt('1',j);	    
	  fOtherPairLocation1[en2][i]->AddAt(normPairCount[en2], numOtherPairs1[en2][i]);// location of otherpair with i as 1st particle
	  fOtherPairLocation2[en2][j]->AddAt(normPairCount[en2], numOtherPairs2[en2][j]);// location of otherpair with j as 2nd particle
	  
	  numOtherPairs1[en2][i]++;
	  numOtherPairs2[en2][j]++;
	  
	  normPairCount[en2]++;
	  if(normPairCount[en2] >= kNormPairLimit) exitCode=kTRUE;

	}// Norm Region
	

      }
    }
  
 
    ///////////////////////////////////////
    // P13 pairing (just for Norm counting of term5)
    for (Int_t i=0; i<myTracks; i++) {
      
      // exit out of loop if there are too many pairs
      // dont bother with this loop if exitCode is set.
      if(exitCode) break;
      
      // 2nd particle
      Int_t en2=2;
      
      for (Int_t j=0; j<(fEvt+en2)->fNtracks; j++) {
	
	key1 = (fEvt)->fTracks[i].fKey;
	key2 = (fEvt+en2)->fTracks[j].fKey;
	Short_t fillIndex2 = FillIndex2part(key1+key2);
	Short_t normBin = SetNormBin(fillIndex2);
	pVect1[0]=(fEvt)->fTracks[i].fEaccepted; pVect2[0]=(fEvt+en2)->fTracks[j].fEaccepted;
	pVect1[1]=(fEvt)->fTracks[i].fP[0];      pVect2[1]=(fEvt+en2)->fTracks[j].fP[0];
	pVect1[2]=(fEvt)->fTracks[i].fP[1];      pVect2[2]=(fEvt+en2)->fTracks[j].fP[1];
	pVect1[3]=(fEvt)->fTracks[i].fP[2];      pVect2[3]=(fEvt+en2)->fTracks[j].fP[2];

	qinv12 = GetQinv(fillIndex2, pVect1, pVect2);
	
	if(qinv12 < fQLowerCut) continue;// remove unwanted low-q pairs (also a type of track splitting cut)
	
	ch1 = Int_t(((fEvt)->fTracks[i].fCharge + 1)/2.);
	ch2 = Int_t(((fEvt+en2)->fTracks[j].fCharge + 1)/2.);
	
	if(ch1 == ch2 && !fGeneratorOnly){
	  if(!AcceptPair((fEvt)->fTracks[i], (fEvt+en2)->fTracks[j])) {
	    fPairSplitCut[2][i]->AddAt('1',j);
	    continue;
	  }
	}
	
	/////////////////////////////////////////////////////////
	// Normalization Region
	
	if((qinv12 >= fNormQcutLow[normBin]) && (qinv12 < fNormQcutHigh[normBin])){
	
	  fNormPairSwitch[en2][i]->AddAt('1',j);	    
	
	}// Norm Region
      }
    }


  
    ///////////////////////////////////////
    // P23 pairing (just for Norm counting of term5)
    Int_t en1=1;
    for (Int_t i=0; i<(fEvt+en1)->fNtracks; i++) {
      
      // exit out of loop if there are too many pairs
      // dont bother with this loop if exitCode is set.
      if(exitCode) break;
      
      // 2nd event
      Int_t en2=2;
      // 2nd particle
      for (Int_t j=0; j<(fEvt+en2)->fNtracks; j++) {
	
	if(exitCode) break;

	key1 = (fEvt+en1)->fTracks[i].fKey;
	key2 = (fEvt+en2)->fTracks[j].fKey;
	Short_t fillIndex2 = FillIndex2part(key1+key2);
	Short_t normBin = SetNormBin(fillIndex2);
	pVect1[0]=(fEvt+en1)->fTracks[i].fEaccepted; pVect2[0]=(fEvt+en2)->fTracks[j].fEaccepted;
	pVect1[1]=(fEvt+en1)->fTracks[i].fP[0];      pVect2[1]=(fEvt+en2)->fTracks[j].fP[0];
	pVect1[2]=(fEvt+en1)->fTracks[i].fP[1];      pVect2[2]=(fEvt+en2)->fTracks[j].fP[1];
	pVect1[3]=(fEvt+en1)->fTracks[i].fP[2];      pVect2[3]=(fEvt+en2)->fTracks[j].fP[2];

	qinv12 = GetQinv(fillIndex2, pVect1, pVect2);

	if(qinv12 < fQLowerCut) continue;// remove unwanted low-q pairs (also a type of track splitting cut)
	
	///////////////////////////////
	ch1 = Int_t(((fEvt+en1)->fTracks[i].fCharge + 1)/2.);
	ch2 = Int_t(((fEvt+en2)->fTracks[j].fCharge + 1)/2.);
	
	if(ch1 == ch2 && !fGeneratorOnly){
	  if(!AcceptPair((fEvt+en1)->fTracks[i], (fEvt+en2)->fTracks[j])) {
	    fPairSplitCut[3][i]->AddAt('1',j);
	    continue;
	  }
	}

	if((qinv12 < fNormQcutLow[normBin]) || (qinv12 >= fNormQcutHigh[normBin])) continue;
	
	Int_t index1P23 = i;
	Int_t index2P23 = j;
	
	for(Int_t pastpairP12=0; pastpairP12<numOtherPairs2[1][index1P23]; pastpairP12++){// loop in P12 with i as 2nd particle
	  Int_t locationOtherPairP12 = fOtherPairLocation2[1][index1P23]->At(pastpairP12);
	  if(locationOtherPairP12 < 0) continue; // no pair there
	  Int_t index1P12 = fNormPairs[1][ locationOtherPairP12 ].fIndex1;
	  
	 	  
	  //Check other past pair status in P13
	  if( (fNormPairSwitch[2][index1P12]->At(index2P23)=='0')) continue;
	  
	  // all from different event
	  ch3 = Int_t((fNormPairs[1][ locationOtherPairP12 ].fCharge1 + 1)/2.);// charge of first particle in P12
	  key3 = fNormPairs[1][ locationOtherPairP12 ].fKey1;
	  Short_t fillIndex3 = FillIndex3part(key1+key2+key3);
	  SetFillBins3(fillIndex3, key1, key2, key3, ch1, ch2, ch3, 3, bin1, bin2, bin3, fDummyB, fDummyB, fDummyB);
	  
	  tempNormFillCount[bin1][bin2][bin3][fillIndex3][4]++;
	}
      }
    }
    
    
  
    
    ///////////////////////////////////////////////////  
    // Do not use pairs from events with too many pairs
    if(exitCode) {
      cout<<"SE or ME or Norm PairCount too large.  Discarding all pairs and skipping event"<<endl;
      (fEvt)->fNpairsSE = 0;
      (fEvt)->fNpairsME = 0;
      ((TH1F*)fOutputList->FindObject("fRejectedEvents"))->Fill(fMbin+1);
      return;// Skip event
    }else{
      (fEvt)->fNpairsSE = pairCountSE;
      (fEvt)->fNpairsME = pairCountME;  
      ((TH1F*)fOutputList->FindObject("fEvents2"))->Fill(fMbin+1);
    }
    ///////////////////////////////////////////////////


    //cout<<"pairCountSE = "<<pairCountSE<<"   pairCountME = "<<pairCountME<<endl;
    //cout<<"Start Main analysis"<<endl;
    
    ///////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////
    //
    //
    // Start the Main Correlation Analysis
    //
    //
    ///////////////////////////////////////////////////////////////////////
    
    
    
    /////////////////////////////////////////////////////////    
    // Skip 3-particle part if Tabulate6DPairs is set to true
    if(fTabulatePairs) return;
    /////////////////////////////////////////////////////////

    // Set the Normalization counters
    for(Int_t termN=0; termN<5; termN++){
      
      if(termN==0){
	if((fEvt)->fNtracks ==0) continue;
      }else if(termN<4){
	if((fEvt)->fNtracks ==0) continue;
	if((fEvt+1)->fNtracks ==0) continue;
      }else {
	if((fEvt)->fNtracks ==0) continue;
	if((fEvt+1)->fNtracks ==0) continue;
	if((fEvt+2)->fNtracks ==0) continue;
      }
     
      for(Int_t sc=0; sc<kSCLimit3; sc++){
	
	for(Int_t c1=0; c1<2; c1++){
	  for(Int_t c2=0; c2<2; c2++){
	    for(Int_t c3=0; c3<2; c3++){
	      
	      if(sc==0 || sc==6 || sc==9){// Identical species
		if( (c1+c2+c3)==1) {if(c1!=0 || c2!=0 || c3!=1) continue;}
		if( (c1+c2+c3)==2) {if(c1!=0) continue;}
	      }else if(sc!=5){
		if( (c1+c2)==1) {if(c1!=0) continue;}
	      }else {}// do nothing for pi-k-p case
	      Charge1[c1].Charge2[c2].Charge3[c3].SC[sc].MB[fMbin].EDB[fEDbin].ThreePT[termN].fNorm3->Fill(0.,tempNormFillCount[c1][c2][c3][sc][termN]);
	    }
	  }
	}
      }
    }
    
    
    
    /////////////////////////////////////////////
    // Calculate Pair-Cut Correlations
    for(Int_t en1case=0; en1case<2; en1case++){// limit at 2 (normal)
      
      Int_t nump1=0;
      if(en1case==0) nump1 = (fEvt)->fNpairsSE;
      if(en1case==1) nump1 = (fEvt)->fNpairsME;
     
      // 1st pair
      for(Int_t p1=0; p1<nump1; p1++){
	
	if(en1case==0){
	  ch1 = Int_t(((fEvt)->fPairsSE[p1].fCharge1 + 1)/2.);
	  ch2 = Int_t(((fEvt)->fPairsSE[p1].fCharge2 + 1)/2.);
	  pVect1[0] = (fEvt)->fPairsSE[p1].fE1; pVect2[0] = (fEvt)->fPairsSE[p1].fE2;
	  pVect1[1] = (fEvt)->fPairsSE[p1].fP1[0]; pVect2[1] = (fEvt)->fPairsSE[p1].fP2[0]; 
	  pVect1[2] = (fEvt)->fPairsSE[p1].fP1[1]; pVect2[2] = (fEvt)->fPairsSE[p1].fP2[1];
	  pVect1[3] = (fEvt)->fPairsSE[p1].fP1[2]; pVect2[3] = (fEvt)->fPairsSE[p1].fP2[2];
	  index1 = (fEvt)->fPairsSE[p1].fIndex1; index2 = (fEvt)->fPairsSE[p1].fIndex2;
	  key1 = (fEvt)->fPairsSE[p1].fKey1; key2 = (fEvt)->fPairsSE[p1].fKey2;
	  qinv12 = (fEvt)->fPairsSE[p1].fQinv;
	  //
	  pVect1MC[1] = (fEvt)->fPairsSE[p1].fP1MC[0]; pVect2MC[1] = (fEvt)->fPairsSE[p1].fP2MC[0];
          pVect1MC[2] = (fEvt)->fPairsSE[p1].fP1MC[1]; pVect2MC[2] = (fEvt)->fPairsSE[p1].fP2MC[1];
          pVect1MC[3] = (fEvt)->fPairsSE[p1].fP1MC[2]; pVect2MC[3] = (fEvt)->fPairsSE[p1].fP2MC[2];
          pVect1MC[0] = sqrt(pow(pVect1MC[1],2)+pow(pVect1MC[2],2)+pow(pVect1MC[3],2)+pow(fTrueMassPi,2));
          pVect2MC[0] = sqrt(pow(pVect2MC[1],2)+pow(pVect2MC[2],2)+pow(pVect2MC[3],2)+pow(fTrueMassPi,2));
	}
	if(en1case==1){
	  ch1 = Int_t(((fEvt)->fPairsME[p1].fCharge1 + 1)/2.);
	  ch2 = Int_t(((fEvt)->fPairsME[p1].fCharge2 + 1)/2.);
	  pVect1[0] = (fEvt)->fPairsME[p1].fE1; pVect2[0] = (fEvt)->fPairsME[p1].fE2; 
	  pVect1[1] = (fEvt)->fPairsME[p1].fP1[0]; pVect2[1] = (fEvt)->fPairsME[p1].fP2[0]; 
	  pVect1[2] = (fEvt)->fPairsME[p1].fP1[1]; pVect2[2] = (fEvt)->fPairsME[p1].fP2[1];
	  pVect1[3] = (fEvt)->fPairsME[p1].fP1[2]; pVect2[3] = (fEvt)->fPairsME[p1].fP2[2];
	  index1 = (fEvt)->fPairsME[p1].fIndex1; index2 = (fEvt)->fPairsME[p1].fIndex2;
	  key1 = (fEvt)->fPairsME[p1].fKey1; key2 = (fEvt)->fPairsME[p1].fKey2;
	  qinv12 = (fEvt)->fPairsME[p1].fQinv;
	  //
	  pVect1MC[1] = (fEvt)->fPairsME[p1].fP1MC[0]; pVect2MC[1] = (fEvt)->fPairsME[p1].fP2MC[0];
          pVect1MC[2] = (fEvt)->fPairsME[p1].fP1MC[1]; pVect2MC[2] = (fEvt)->fPairsME[p1].fP2MC[1];
          pVect1MC[3] = (fEvt)->fPairsME[p1].fP1MC[2]; pVect2MC[3] = (fEvt)->fPairsME[p1].fP2MC[2];
          pVect1MC[0] = sqrt(pow(pVect1MC[1],2)+pow(pVect1MC[2],2)+pow(pVect1MC[3],2)+pow(fTrueMassPi,2));
          pVect2MC[0] = sqrt(pow(pVect2MC[1],2)+pow(pVect2MC[2],2)+pow(pVect2MC[3],2)+pow(fTrueMassPi,2));
	}
	
	
	// en2 buffer
	for(Int_t en2=0; en2<3; en2++){
	  //////////////////////////////////////

	  Bool_t skipcase=kTRUE;
	  Short_t config=-1, part=-1;
	  if(en1case==0 && en2==0) {skipcase=kFALSE; config=1; part=0;}// P11T1
	  if(en1case==0 && en2==1) {skipcase=kFALSE; config=2; part=1;}// P11T2
	  if(en1case==1 && en2==0) {skipcase=kFALSE; config=2; part=2;}// P12T1
	  if(en1case==1 && en2==2) {skipcase=kFALSE; config=3; part=3;}// P12T3
	  	 
	  if(skipcase) continue;
	
	  
	  // 3-particle terms
	  // 3rd particle
	  for(Int_t k=0; k<(fEvt+en2)->fNtracks; k++){
	    index3 = k;
	    

	    // remove auto-correlations and duplicate triplets
	    if(config==1){
	      if( index1 == index3) continue;
	      if( index2 == index3) continue;
	      if(fPairSplitCut[0][index1]->At(index2)=='1') continue;// Track splitting/merging
	     
	      // skip the switched off triplets
	      if(fTripletSkip1[fPairLocationSE[index1]->At(index2)]->At(index3)=='1') {
		fTripletSkip1[fPairLocationSE[index1]->At(index2)]->AddAt('0',index3);// Reset
		continue;
	      }
	      ///////////////////////////////
	      // Turn off 1st possible degenerate triplet
	      if(index1 < index3){// verify correct id ordering ( index1 < k )
		if(fPairLocationSE[index1]->At(index3) >= 0){
		  fTripletSkip1[fPairLocationSE[index1]->At(index3)]->AddAt('1',index2);
		}
		if(fPairSplitCut[0][index1]->At(index3)=='1') continue;// Track splitting/merging
	      }else {// or k < index1
		if(fPairLocationSE[index3]->At(index1) >= 0){
		  fTripletSkip1[fPairLocationSE[index3]->At(index1)]->AddAt('1',index2);
		}
		if(fPairSplitCut[0][index3]->At(index1)=='1') continue;// Track splitting/merging
	      }
	      // turn off 2nd possible degenerate triplet
	      if(index2 < index3){// verify correct id ordering (index2 < k)
		if(fPairLocationSE[index2]->At(index3) >= 0){
		  fTripletSkip1[fPairLocationSE[index2]->At(index3)]->AddAt('1',index1);
		}
		if(fPairSplitCut[0][index2]->At(index3)=='1') continue;// Track splitting/merging
	      }else {// or k < index2
		if(fPairLocationSE[index3]->At(index2) >= 0){
		  fTripletSkip1[fPairLocationSE[index3]->At(index2)]->AddAt('1',index1);
		}
		if(fPairSplitCut[0][index3]->At(index2)=='1') continue;// Track splitting/merging
	      }

	    }// end config 1
	    
	    if(config==2 && part==1){// SE pair and third particle from next event. P11T2
	      ///////////////////////////////
	      // Turn off 1st possible degenerate triplet
	      if(fPairLocationME[index1]->At(index3) >= 0){
		fTripletSkip2[fPairLocationME[index1]->At(index3)]->AddAt('1',index2);
	      }
	      
	      // turn off 2nd possible degenerate triplet
	      if(fPairLocationME[index2]->At(index3) >= 0){
		fTripletSkip2[fPairLocationME[index2]->At(index3)]->AddAt('1',index1);
	      }
	      
	      if(fPairSplitCut[0][index1]->At(index2)=='1') continue;// Track splitting/merging
	      if(fPairSplitCut[1][index1]->At(index3)=='1') continue;// Track splitting/merging
	      if(fPairSplitCut[1][index2]->At(index3)=='1') continue;// Track splitting/merging
	    }// end config 2 part 1

	    if(config==2 && part==2){// P12T1
	      if( index1 == index3) continue;
	      
	      // skip the switched off triplets
	      if(fTripletSkip2[fPairLocationME[index1]->At(index2)]->At(index3)=='1') {
		fTripletSkip2[fPairLocationME[index1]->At(index2)]->AddAt('0',index3);// Reset
		continue;
	      }
	      // turn off another possible degenerate
	      if(fPairLocationME[index3]->At(index2) >= 0){
		fTripletSkip2[fPairLocationME[index3]->At(index2)]->AddAt('1',index1);
	      }// end config 2 part 2

	      if(fPairSplitCut[1][index1]->At(index2)=='1') continue;// Track splitting/merging
	      if(index1 < index3) {if(fPairSplitCut[0][index1]->At(index3)=='1') continue;}// Track splitting/merging
	      else {if(fPairSplitCut[0][index3]->At(index1)=='1') continue;}// Track splitting/merging
	      if(fPairSplitCut[1][index3]->At(index2)=='1') continue;// Track splitting/merging
	    }
	    if(config==3){// P12T3
	      if(fPairSplitCut[1][index1]->At(index2)=='1') continue;// Track splitting/merging
	      if(fPairSplitCut[2][index1]->At(index3)=='1') continue;// Track splitting/merging
	      if(fPairSplitCut[3][index2]->At(index3)=='1') continue;// Track splitting/merging
	    }// end config 3
	    
	    

	    ch3 = Int_t(((fEvt+en2)->fTracks[k].fCharge + 1)/2.);
	    key3 = (fEvt+en2)->fTracks[k].fKey;
	    Short_t fillIndex3 = FillIndex3part(key1+key2+key3);
	    Short_t fillIndex13 = FillIndex2part(key1+key3);
	    Short_t fillIndex23 = FillIndex2part(key2+key3);
	    Short_t qCutBin13 = SetQcutBin(fillIndex13);
	    Short_t qCutBin23 = SetQcutBin(fillIndex23);
	    pVect3[0] = (fEvt+en2)->fTracks[k].fEaccepted;
	    pVect3[1] = (fEvt+en2)->fTracks[k].fP[0];
	    pVect3[2] = (fEvt+en2)->fTracks[k].fP[1];
	    pVect3[3] = (fEvt+en2)->fTracks[k].fP[2];
	    qinv13 = GetQinv(fillIndex13, pVect1, pVect3);
	    qinv23 = GetQinv(fillIndex23, pVect2, pVect3);

	    if(qinv13 < fQLowerCut) continue;
	    if(qinv23 < fQLowerCut) continue;
	    if(qinv13 > fQcut[qCutBin13]) continue;
	    if(qinv23 > fQcut[qCutBin23]) continue;

	    Float_t Kt12=sqrt( pow(pVect1[1]+pVect2[1],2) + pow(pVect1[2]+pVect2[2],2))/2.;
	    Float_t Kt13=sqrt( pow(pVect1[1]+pVect3[1],2) + pow(pVect1[2]+pVect3[2],2))/2.;
	    Float_t Kt23=sqrt( pow(pVect2[1]+pVect3[1],2) + pow(pVect2[2]+pVect3[2],2))/2.;
	    
	    if(fMCcase){
              pVect3MC[1] = (fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[k].fLabel)].fPx;
              pVect3MC[2] = (fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[k].fLabel)].fPy;
              pVect3MC[3] = (fEvt+en2)->fMCtracks[abs((fEvt+en2)->fTracks[k].fLabel)].fPz;
              pVect3MC[0] = sqrt(pow(pVect3MC[1],2)+pow(pVect3MC[2],2)+pow(pVect3MC[3],2)+pow(fTrueMassPi,2));
              qinv12MC = GetQinv(0, pVect1MC, pVect2MC);
              qinv13MC = GetQinv(0, pVect1MC, pVect3MC);
              qinv23MC = GetQinv(0, pVect2MC, pVect3MC);
            }

	    
	    
	    // if all three pair cuts are the same then the case (config=2 && term=2) never reaches here.
	    
	    q3 = sqrt(pow(qinv12,2) + pow(qinv13,2) + pow(qinv23,2));
	    transK3 = sqrt( pow(pVect1[1]+pVect2[1]+pVect3[1],2) + pow(pVect1[2]+pVect2[2]+pVect3[2],2))/3.;
	    if(fEDbins>1){
	      if(transK3<0.3) fEDbin=0;
	      else fEDbin=1;
	    }
	    firstQ=0; secondQ=0; thirdQ=0;
	    
	    
	    //
	    
	    //	    
	    if(config==1) {// 123
	      SetFillBins3(fillIndex3, key1, key2, key3, ch1, ch2, ch3, 0, bin1, bin2, bin3, fDummyB, fDummyB, fDummyB);
	      
	      if(fillIndex3 <= 2){
		ArrangeQs(fillIndex3, key1, key2, key3, ch1, ch2, ch3, qinv12, qinv13, qinv23, 0, 1, firstQ, secondQ, thirdQ);
		ArrangeQs(fillIndex3, key1, key2, key3, ch1, ch2, ch3, Kt12, Kt13, Kt23, 0, 1, firstKt, secondKt, thirdKt);
		if(fillIndex3==0 && fMCcase) ArrangeQs(fillIndex3, key1, key2, key3, ch1, ch2, ch3, qinv12MC, qinv13MC, qinv23MC, 0, 1, firstQMC, secondQMC, thirdQMC);
		Float_t WInput = 1.0;
		if(fGenerateSignal && ch1==ch2 && ch1==ch3) WInput = MCWeight3D(kTRUE, 1, fFixedLambdaBinr3, firstQ, secondQ, thirdQ, firstKt, secondKt, thirdKt);
		//if(fGenerateSignal && ch1==ch2 && ch1==ch3) WInput = MCWeight3D(kTRUE, 1, fFixedLambdaBinr3, firstQMC, secondQMC, thirdQMC);
		////
		
		Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[0].fTerms3->Fill(firstQ, secondQ, thirdQ, WInput);
		
		////
		//
		if(fillIndex3==0 && ch1==ch2 && ch1==ch3 && fMCcase==kFALSE){
		  ((TH3D*)fOutputList->FindObject("fKt3DistTerm1"))->Fill(fMbin+1, transK3, q3);
		  if(q3<0.06){
		    Float_t pt1=sqrt(pow(pVect1[1],2)+pow(pVect1[2],2));
		    Float_t pt2=sqrt(pow(pVect2[1],2)+pow(pVect2[2],2));
		    Float_t pt3=sqrt(pow(pVect3[1],2)+pow(pVect3[2],2));
		    ((TProfile2D*)fOutputList->FindObject("fKtTripletAvg"))->Fill(fMbin+1, fEDbin, pt1);
		    ((TProfile2D*)fOutputList->FindObject("fKtTripletAvg"))->Fill(fMbin+1, fEDbin, pt2);
		    ((TProfile2D*)fOutputList->FindObject("fKtTripletAvg"))->Fill(fMbin+1, fEDbin, pt3);
		  }
		  /*FourVectProdTerms(pVect1, pVect2, pVect3, Qsum1v1, Qsum2, Qsum3v1, Qsum1v2, Qsum3v2);// 4-vector product sums
		  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[0].f4VectProd1Terms->Fill(Qsum1v1, Qsum2, Qsum3v1);
		  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[0].f4VectProd2Terms->Fill(Qsum1v2, Qsum2, Qsum3v2);
		  */
		}		
		
	      }
	      
	    }else if(config==2){// 12, 13, 23
	      
	      Bool_t fill2=kFALSE, fill3=kFALSE, fill4=kFALSE;
	      SetFillBins3(fillIndex3, key1, key2, key3, ch1, ch2, ch3, part, bin1, bin2, bin3, fill2, fill3, fill4);
	  
	      // loop over terms 2-4
	      for(Int_t jj=2; jj<5; jj++){
		if(jj==2) {if(!fill2) continue;}//12
		if(jj==3) {if(!fill3) continue;}//13
		if(jj==4) {if(!fill4) continue;}//23
	
		if(fillIndex3 <= 2){
		  ArrangeQs(fillIndex3, key1, key2, key3, ch1, ch2, ch3, qinv12, qinv13, qinv23, part, jj, firstQ, secondQ, thirdQ);
		  ArrangeQs(fillIndex3, key1, key2, key3, ch1, ch2, ch3, Kt12, Kt13, Kt23, part, jj, firstKt, secondKt, thirdKt);
		  if(fillIndex3==0 && fMCcase) ArrangeQs(fillIndex3, key1, key2, key3, ch1, ch2, ch3, qinv12MC, qinv13MC, qinv23MC, part, jj, firstQMC, secondQMC, thirdQMC);
		  Float_t WInput = 1.0;
		  if(fGenerateSignal && ch1==ch2 && ch1==ch3) WInput = MCWeight3D(kTRUE, jj, fFixedLambdaBinr3, firstQ, secondQ, thirdQ, firstKt, secondKt, thirdKt);
		  //if(fGenerateSignal && ch1==ch2 && ch1==ch3) WInput = MCWeight3D(kTRUE, jj, fFixedLambdaBinr3, firstQMC, secondQMC, thirdQMC);
		  ////
		  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].fTerms3->Fill(firstQ, secondQ, thirdQ, WInput);
		  ////
		  /*if(fillIndex3==0 && ch1==ch2 && ch1==ch3){
		    if(part==1){// P11T2
		      if(jj==2) {
			FourVectProdTerms(pVect1, pVect2, pVect3, Qsum1v1, Qsum2, Qsum3v1, Qsum1v2, Qsum3v2);// 4-vector product sums
		      }if(jj==3){ 
			FourVectProdTerms(pVect1, pVect3, pVect2, Qsum1v1, Qsum2, Qsum3v1, Qsum1v2, Qsum3v2);// 4-vector product sums
		      }if(jj==4) {
			FourVectProdTerms(pVect3, pVect1, pVect2, Qsum1v1, Qsum2, Qsum3v1, Qsum1v2, Qsum3v2);// 4-vector product sums
		      }		    
		    }else{// P12T1
		      if(jj==2) {
			FourVectProdTerms(pVect1, pVect3, pVect2, Qsum1v1, Qsum2, Qsum3v1, Qsum1v2, Qsum3v2);// 4-vector product sums
		      }if(jj==3) {
			FourVectProdTerms(pVect1, pVect2, pVect3, Qsum1v1, Qsum2, Qsum3v1, Qsum1v2, Qsum3v2);// 4-vector product sums
		      }if(jj==4) {
			FourVectProdTerms(pVect2, pVect1, pVect3, Qsum1v1, Qsum2, Qsum3v1, Qsum1v2, Qsum3v2);// 4-vector product sums
		      }		    
		    }
		    if(!fMCcase){
		      Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd1Terms->Fill(Qsum1v1, Qsum2, Qsum3v1);
		      Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[jj-1].f4VectProd2Terms->Fill(Qsum1v2, Qsum2, Qsum3v2);
		    }
		  }*/

		}
	      }
	      
	    }else {// config 3: All particles from different events
	      
	      // "enhancement" differs from 1.0 only when Qinv goes over fQcut
	      //Float_t enhancement=1.0;
	      //Int_t nUnderCut=0;
	      //if(qinv13<fQcut[qCutBin13]) nUnderCut++;
	      //if(qinv23<fQcut[qCutBin23]) nUnderCut++;
	      //if(nUnderCut==0) enhancement = (1+1+1)/1.;// 1 LowQ pair
	      //if(nUnderCut==1) enhancement = (1+2)/2.;// 2 LowQ pair
	      //if(nUnderCut==2) enhancement = 1.;// 3 LowQ pair
	      
	      SetFillBins3(fillIndex3, key1, key2, key3, ch1, ch2, ch3, 3, bin1, bin2, bin3, fDummyB, fDummyB, fDummyB);
	      
	      if(ch1==ch2 && ch1==ch3 && fillIndex3==0) {
		//FourVectProdTerms(pVect1, pVect2, pVect3, Qsum1v1, Qsum2, Qsum3v1, Qsum1v2, Qsum3v2);// 4-vector product sums
		if(!fMCcase) ((TH3D*)fOutputList->FindObject("fKt3DistTerm5"))->Fill(fMbin+1, transK3, q3);
	      }	      
	      
	      if(fillIndex3 <= 2){
		ArrangeQs(fillIndex3, key1, key2, key3, ch1, ch2, ch3, qinv12, qinv13, qinv23, part, 5, firstQ, secondQ, thirdQ);
		ArrangeQs(fillIndex3, key1, key2, key3, ch1, ch2, ch3, Kt12, Kt13, Kt23, part, 5, firstKt, secondKt, thirdKt);
		Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[4].fTerms3->Fill(firstQ, secondQ, thirdQ);
		/*if(fillIndex3==0 && ch1==ch2 && ch1==ch3 && fMCcase==kFALSE){
		  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[4].f4VectProd1Terms->Fill(Qsum1v1, Qsum2, Qsum3v1);
		  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[4].f4VectProd2Terms->Fill(Qsum1v2, Qsum2, Qsum3v2);
		  }*/
	      }
	      
	      if(fillIndex3 !=0) continue;// only calculate TPN for pi-pi-pi
	      if(ch1!=ch2 || ch1!=ch3) continue;// only calcualte TPN for ss
	      
	      
	      GetWeight(pVect1, pVect2, weight12, weight12Err);
	      GetWeight(pVect1, pVect3, weight13, weight13Err);
	      GetWeight(pVect2, pVect3, weight23, weight23Err);
	      
	      if(sqrt(fabs(weight12*weight13*weight23)) > 1.0) {
		if(fMbin==0 && bin1==0) {
		  ((TH3F*)fOutputList->FindObject("fTPNRejects1"))->Fill(qinv12, qinv13, qinv23, sqrt(fabs(weight12*weight13*weight23)));
		}
		continue;// weight should never be larger than 1
	      }
	      	 
	    
	      Float_t myDamp = fDampStart + (fDampStep)*fFixedLambdaBinr3;// lambdabin=0.52 for v1 draft, 0.7 is more realistic
	      Int_t denIndex = 0;
	      Int_t momResIndex = rIndexForTPNMomRes*kNDampValues + fFixedLambdaBinMomRes;// lambdabin=0.52 for v1 draft, 0.4 is more realistic

	      Float_t coulCorr12 = FSICorrelationTherm2(+1,+1, qinv12);
	      Float_t coulCorr13 = FSICorrelationTherm2(+1,+1, qinv13);
	      Float_t coulCorr23 = FSICorrelationTherm2(+1,+1, qinv23);
	      if(coulCorr12 < 0.1 || coulCorr13 < 0.1 || coulCorr23 < 0.1) {// Safety check
		if(fMbin==0 && bin1==0) {
		  ((TH3F*)fOutputList->FindObject("fTPNRejects2"))->Fill(qinv12, qinv13, qinv23, sqrt(fabs(weight12*weight13*weight23)));
		}
		continue;
	      }
	      Float_t MomResCorr12=1.0, MomResCorr13=1.0, MomResCorr23=1.0;
	      if(!fGenerateSignal && !fMCcase) {
		Int_t momBin12 = fMomResC2->GetYaxis()->FindBin(qinv12);
		Int_t momBin13 = fMomResC2->GetYaxis()->FindBin(qinv13);
		Int_t momBin23 = fMomResC2->GetYaxis()->FindBin(qinv23);		  
		if(momBin12 >= kQbins) momBin12 = kQbins-1;
		if(momBin13 >= kQbins) momBin13 = kQbins-1;
		if(momBin23 >= kQbins) momBin23 = kQbins-1;
		MomResCorr12 = fMomResC2->GetBinContent(momResIndex+1, momBin12);
		MomResCorr13 = fMomResC2->GetBinContent(momResIndex+1, momBin13);
		MomResCorr23 = fMomResC2->GetBinContent(momResIndex+1, momBin23);
		
		if(MomResCorr12 > 1.2 || MomResCorr13 > 1.2 || MomResCorr23 > 1.2) {// Safety check
		  if(fMbin==0 && bin1==0) {
		    ((TH3F*)fOutputList->FindObject("fTPNRejects3"))->Fill(qinv12, qinv13, qinv23, sqrt(fabs(weight12*weight13*weight23)));
		  }
		  continue;
		}
	      }
	      weight12CC = ((weight12+1)*MomResCorr12 - myDamp*coulCorr12 - (1-myDamp));
	      weight12CC /= coulCorr12*myDamp;
	      weight13CC = ((weight13+1)*MomResCorr13 - myDamp*coulCorr13 - (1-myDamp));
	      weight13CC /= coulCorr13*myDamp;
	      weight23CC = ((weight23+1)*MomResCorr23 - myDamp*coulCorr23 - (1-myDamp));
	      weight23CC /= coulCorr23*myDamp;
	      
	      if(weight12CC < 0 || weight13CC < 0 || weight23CC < 0) {
		if(fMbin==0 && bin1==0) {
		  weightTotal = sqrt(fabs(weight12CC*weight13CC*weight23CC));
		  ((TH3F*)fOutputList->FindObject("fTPNRejects4"))->Fill(qinv12, qinv13, qinv23, weightTotal);
		}
		continue;// C2^QS can never be less than unity
	      }
	      
	      /////////////////////////////////////////////////////
	      weightTotal = sqrt(weight12CC*weight13CC*weight23CC);
	      /////////////////////////////////////////////////////
	      
	      if(weightTotal > 1.5) {
		if(fMbin==0 && bin1==0) {
		  ((TH3F*)fOutputList->FindObject("fTPNRejects5"))->Fill(qinv12, qinv13, qinv23, weightTotal);
		}
		continue;// C2^QS never be greater than 1.0 in theory. Can be slightly larger than 1.0 with fluctuations
	      }
	      
	      
	      
	      Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[4].DT[denIndex].fTwoPartNorm->Fill(qinv12, qinv13, qinv23, weightTotal);
	      
	      //Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[4].DT[denIndex].f4VectProd1TwoPartNorm->Fill(Qsum1v1, Qsum2, Qsum3v1, weightTotal);
	      //Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[4].DT[denIndex].f4VectProd2TwoPartNorm->Fill(Qsum1v2, Qsum2, Qsum3v2, weightTotal);
	     
		  
	      // Save cpu time and memory by skipping r3 denominator calculation below.  den errors are negligible compared to num errors.
	      /*
		if(weightTotal > 0.0001){// tiny numbers cause a Float_ting point exception below
		weightTotalErr = pow((weight12Err*coulCorr12)*weight13CC*weight23CC,2);
		weightTotalErr += pow(weight12CC*(weight13Err*coulCorr13)*weight23CC,2);
		weightTotalErr += pow(weight12CC*weight13CC*(weight23Err*coulCorr23),2);
		weightTotalErr /= pow(2*weightTotal,2);
		
		Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[4].TwoPartNormErr->Fill(denIndex, q3, weightTotalErr);
		}
	      */
	      
	      
	      
	    }// config 3
	  }// end 3rd particle
	}// en2
	
	
      }// p1
    }//en1
    
    ///////////////////
  }// end of PdensityPairs
  
  
 
    
   
    
  
  ////////////////////////////////////////////////////////
  // Pdensity Method with Explicit Loops
  if(fPdensityExplicitLoop){
    
    ////////////////////////////////////
    // 2nd, 3rd, and 4th order Correlations
    
    // First Particle
    for (Int_t i=0; i<myTracks; i++) {
      ch1 = Int_t( ((fEvt)->fTracks[i].fCharge + 1)/2. );
      pVect1[0] = (fEvt)->fTracks[i].fEaccepted;
      pVect1[1] = (fEvt)->fTracks[i].fP[0];
      pVect1[2] = (fEvt)->fTracks[i].fP[1];
      pVect1[3] = (fEvt)->fTracks[i].fP[2];
      key1 = (fEvt)->fTracks[i].fKey;

      // Second Event
      for(Int_t en2=0; en2<fEventsToMix+1; en2++){
	Int_t startbin2=0;
	if(en2==0) startbin2=i+1;
	
	// Second Particle
	for (Int_t j=startbin2; j<(fEvt+en2)->fNtracks; j++) {
	  ch2 = Int_t( ((fEvt+en2)->fTracks[j].fCharge + 1)/2. );
	  pVect2[0] = (fEvt+en2)->fTracks[j].fEaccepted;
	  pVect2[1] = (fEvt+en2)->fTracks[j].fP[0];
	  pVect2[2] = (fEvt+en2)->fTracks[j].fP[1];
	  pVect2[3] = (fEvt+en2)->fTracks[j].fP[2];
	  key2 = (fEvt+en2)->fTracks[j].fKey;

	  Short_t fillIndex12 = FillIndex2part(key1+key2);
	  qinv12 = GetQinv(fillIndex12, pVect1, pVect2);
	  
	  if(qinv12 < fQLowerCut) continue;

	  
	  // 2-particle part is filled always during pair creator
	  
	  // Third Event
	  for(Int_t en3=en2; en3<fEventsToMix+1; en3++){
	    Int_t startbin3=0;
	    if(en3==en2) startbin3=j+1;
	    else startbin3=0;
	    
	    
	    // Third Particle
	    for (Int_t k=startbin3; k<(fEvt+en3)->fNtracks; k++) {
	      ch3 = Int_t( ((fEvt+en3)->fTracks[k].fCharge + 1)/2. );
	      pVect3[0] = (fEvt+en3)->fTracks[k].fEaccepted;
	      pVect3[1] = (fEvt+en3)->fTracks[k].fP[0];
	      pVect3[2] = (fEvt+en3)->fTracks[k].fP[1];
	      pVect3[3] = (fEvt+en3)->fTracks[k].fP[2];
	      key3 = (fEvt+en3)->fTracks[k].fKey;
	      
	      Short_t fillIndex3 = FillIndex3part(key1+key2+key3);
	      Short_t fillIndex13 = FillIndex2part(key1+key3);
	      qinv13 = GetQinv(fillIndex13, pVect1, pVect3);
	      Short_t fillIndex23 = FillIndex2part(key2+key3);
	      qinv23 = GetQinv(fillIndex23, pVect2, pVect3);

	      
	      if(qinv13 < fQLowerCut) continue;
	      if(qinv23 < fQLowerCut) continue;
	      
	   	      
	      q3 = sqrt(pow(qinv12,2) + pow(qinv13,2) + pow(qinv23,2));
	      
	      Short_t normBin12 = SetNormBin(fillIndex12);
	      Short_t normBin13 = SetNormBin(fillIndex13);
	      Short_t normBin23 = SetNormBin(fillIndex23);

	      
	      if(en3==0 && en2==0) {// 123
		SetFillBins3(fillIndex3, key1, key2, key3, ch1, ch2, ch3, 0, bin1, bin2, bin3, fDummyB, fDummyB, fDummyB);
		
		Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[0].fExplicit3->Fill(q3);// 123
		
		if((qinv12>=fNormQcutLow[normBin12]) && (qinv13>=fNormQcutLow[normBin13]) && (qinv23>=fNormQcutLow[normBin23])) {
		  if((qinv12<fNormQcutHigh[normBin12]) && (qinv13<fNormQcutHigh[normBin13]) && (qinv23<fNormQcutHigh[normBin23])) {
		    Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[0].fNormEx3->Fill(0.);
		  }
		}
		
	      }else if((en2==0 && en3==1) ) {// 12-3, 13-2, 23-1
		Float_t gFact=1;
		
		Bool_t fill2=kFALSE, fill3=kFALSE, fill4=kFALSE;
		SetFillBins3(fillIndex3, key1, key2, key3, ch1, ch2, ch3, 1, bin1, bin2, bin3, fill2, fill3, fill4);

			
		if(fill2){
		  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[1].fExplicit3->Fill(q3, gFact);// 12
		  if((qinv12>=fNormQcutLow[normBin12]) && (qinv13>=fNormQcutLow[normBin13]) && (qinv23>=fNormQcutLow[normBin23])) {
		    if((qinv12<fNormQcutHigh[normBin12]) && (qinv13<fNormQcutHigh[normBin13]) && (qinv23<fNormQcutHigh[normBin23])) {
		      Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[1].fNormEx3->Fill(0.);
		    }
		  }
		}
		if(fill3){
		  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[2].fExplicit3->Fill(q3, gFact);// 12
		  if((qinv12>=fNormQcutLow[normBin12]) && (qinv13>=fNormQcutLow[normBin13]) && (qinv23>=fNormQcutLow[normBin23])) {
		    if((qinv12<fNormQcutHigh[normBin12]) && (qinv13<fNormQcutHigh[normBin13]) && (qinv23<fNormQcutHigh[normBin23])) {
		      Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[2].fNormEx3->Fill(0.);
		    }
		  }
		}
		if(fill4){
		  Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[3].fExplicit3->Fill(q3, gFact);// 12
		  if((qinv12>=fNormQcutLow[normBin12]) && (qinv13>=fNormQcutLow[normBin13]) && (qinv23>=fNormQcutLow[normBin23])) {
		    if((qinv12<fNormQcutHigh[normBin12]) && (qinv13<fNormQcutHigh[normBin13]) && (qinv23<fNormQcutHigh[normBin23])) {
		      Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[3].fNormEx3->Fill(0.);
		    }
		  }
		}
		
	      }else if(en2==1 && en3==2){// all uncorrelated events
		SetFillBins3(fillIndex3, key1, key2, key3, ch1, ch2, ch3, 3, bin1, bin2, bin3, fDummyB, fDummyB, fDummyB);
		
		Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[4].fExplicit3->Fill(q3);
		if((qinv12>=fNormQcutLow[normBin12]) && (qinv13>=fNormQcutLow[normBin13]) && (qinv23>=fNormQcutLow[normBin23])) {
		  if((qinv12<fNormQcutHigh[normBin12]) && (qinv13<fNormQcutHigh[normBin13]) && (qinv23<fNormQcutHigh[normBin23])) {
		    Charge1[bin1].Charge2[bin2].Charge3[bin3].SC[fillIndex3].MB[fMbin].EDB[fEDbin].ThreePT[4].fNormEx3->Fill(0.);
		  }
		}	
		Short_t qCutBin12 = SetQcutBin(fillIndex12);
		Short_t qCutBin13 = SetQcutBin(fillIndex13);
		Short_t qCutBin23 = SetQcutBin(fillIndex23);
		
		if( (qinv12 < fQcut[qCutBin12]) || (qinv13 < fQcut[qCutBin13]) || (qinv23 < fQcut[qCutBin23])){
		  
		  Int_t nUnderCut=0;
		  if(qinv12<fQcut[qCutBin12]) nUnderCut++;
		  if(qinv13<fQcut[qCutBin13]) nUnderCut++;
		  if(qinv23<fQcut[qCutBin23]) nUnderCut++;
		  
		}
		
	      }else {}
  	    
	      
  	    }// 3rd particle
	  }// 3rd event
	  
	}// 2nd particle
      }// 2nd event

    }// 1st particle
		 
    
  
       
  }// End of PdensityExplicit
  

 
  
  // Post output data.
  PostData(1, fOutputList);
  
}
//________________________________________________________________________
void AliChaoticity::Terminate(Option_t *) 
{
  // Called once at the end of the query
 
  cout<<"Done"<<endl;

}
//________________________________________________________________________
Bool_t AliChaoticity::AcceptPair(AliChaoticityTrackStruct first, AliChaoticityTrackStruct second)
{
  
  if(fabs(first.fEta-second.fEta) > fMinSepPairEta) return kTRUE;
  
  // propagate through B field to r=1m
  Float_t phi1 = first.fPhi - asin(first.fCharge*(0.1*fBfield)*0.15/first.fPt);// 0.15 for D=1m
  if(phi1 > 2*PI) phi1 -= 2*PI;
  if(phi1 < 0) phi1 += 2*PI;
  Float_t phi2 = second.fPhi - asin(second.fCharge*(0.1*fBfield)*0.15/second.fPt);// 0.15 for D=1m 
  if(phi2 > 2*PI) phi2 -= 2*PI;
  if(phi2 < 0) phi2 += 2*PI;
  
  Float_t deltaphi = phi1 - phi2;
  if(deltaphi > PI) deltaphi -= 2*PI;
  if(deltaphi < -PI) deltaphi += 2*PI;
  deltaphi = fabs(deltaphi);

  if(deltaphi < fMinSepPairPhi) return kFALSE;// Min Separation
    
  
  // propagate through B field to r=1.6m
  phi1 = first.fPhi - asin(first.fCharge*(0.1*fBfield)*0.24/first.fPt);// mine. 0.24 for D=1.6m
  if(phi1 > 2*PI) phi1 -= 2*PI;
  if(phi1 < 0) phi1 += 2*PI;
  phi2 = second.fPhi - asin(second.fCharge*(0.1*fBfield)*0.24/second.fPt);// mine. 0.24 for D=1.6m 
  if(phi2 > 2*PI) phi2 -= 2*PI;
  if(phi2 < 0) phi2 += 2*PI;
  
  deltaphi = phi1 - phi2;
  if(deltaphi > PI) deltaphi -= 2*PI;
  if(deltaphi < -PI) deltaphi += 2*PI;
  deltaphi = fabs(deltaphi);

  if(deltaphi < fMinSepPairPhi) return kFALSE;// Min Separation
  
  
   
  //
  
  Int_t ncl1 = first.fClusterMap.GetNbits();
  Int_t ncl2 = second.fClusterMap.GetNbits();
  Int_t sumCls = 0; Int_t sumSha = 0; Int_t sumQ = 0;
  Double_t shfrac = 0; Double_t qfactor = 0;
  for(Int_t imap = 0; imap < ncl1 && imap < ncl2; imap++) {
    if (first.fClusterMap.TestBitNumber(imap) && second.fClusterMap.TestBitNumber(imap)) {// Both clusters
      if (first.fSharedMap.TestBitNumber(imap) && second.fSharedMap.TestBitNumber(imap)) { // Shared
	sumQ++;
	sumCls+=2;
	sumSha+=2;}
      else {sumQ--; sumCls+=2;}
    }
    else if (first.fClusterMap.TestBitNumber(imap) || second.fClusterMap.TestBitNumber(imap)) {// Non shared
      sumQ++;
      sumCls++;}
  }
  if (sumCls>0) {
    qfactor = sumQ*1.0/sumCls;
    shfrac = sumSha*1.0/sumCls;
  }
  
  if(qfactor > fShareQuality || shfrac > fShareFraction) return kFALSE;
  
  
  return kTRUE;
  

}
//________________________________________________________________________
Float_t AliChaoticity::GamovFactor(Int_t chargeBin1, Int_t chargeBin2, Float_t qinv)
{
  Float_t arg = G_Coeff/qinv;
  
  if(chargeBin1==chargeBin2) return (exp(arg)-1)/(arg);
  else {return (exp(-arg)-1)/(-arg);}
  
}
//________________________________________________________________________
void AliChaoticity::Shuffle(Int_t *iarr, Int_t i1, Int_t i2)
{
  Int_t j, k;
  Int_t a = i2 - i1;
  for (Int_t i = i1; i < i2+1; i++) {
    j = (Int_t) (gRandom->Rndm() * a);
    k = iarr[j];
    iarr[j] = iarr[i];
    iarr[i] = k;
  }
}
//________________________________________________________________________
Short_t AliChaoticity::FillIndex2part(Short_t key){

  if(key==2) return 0;// pi-pi
  else if(key==11) return 1;// pi-k
  else if(key==101) return 2;// pi-p
  else if(key==20) return 3;// k-k
  else if(key==110) return 4;// k-p
  else return 5;// p-p
}
//________________________________________________________________________
Short_t AliChaoticity::FillIndex3part(Short_t key){
  
  if(key==3) return 0;// pi-pi-pi
  else if(key==12) return 1;// pi-pi-k
  else if(key==21) return 2;// k-k-pi
  else if(key==102) return 3;// pi-pi-p
  else if(key==201) return 4;// p-p-pi
  else if(key==111) return 5;// pi-k-p
  else if(key==30) return 6;// k-k-k
  else if(key==120) return 7;// k-k-p
  else if(key==210) return 8;// p-p-k
  else return 9;// p-p-p
  
}
//________________________________________________________________________
Short_t AliChaoticity::SetQcutBin(Short_t fi){// fi=FillIndex
  if(fi <= 2) return 0;
  else if(fi==3) return 1;
  else return 2;
}
//________________________________________________________________________
Short_t AliChaoticity::SetNormBin(Short_t fi){// fi=FillIndex
  if(fi==0) return 0;
  else if(fi <= 2) return 1;
  else return 2;
}
//________________________________________________________________________
void AliChaoticity::SetFillBins2(Short_t fi, Short_t key1, Short_t key2, Int_t c1, Int_t c2, Int_t &b1, Int_t &b2){
  
  if(fi==0 || fi==3 || fi==5){// Identical species
    if((c1+c2)==1) {b1=0; b2=1;}// Re-assign to merge degenerate histos
    else {b1=c1; b2=c2;}
  }else {// Mixed species
    if(key1 < key2) { b1=c1; b2=c2;}
    else {b1=c2; b2=c1;}
  }
  
}
//________________________________________________________________________
void AliChaoticity::SetFillBins3(Short_t fi, Short_t key1, Short_t key2, Short_t key3, Int_t c1, Int_t c2, Int_t c3, Short_t part, Int_t &b1, Int_t &b2, Int_t &b3, Bool_t &fill2, Bool_t &fill3, Bool_t &fill4){
  
  
  // seSS, seSK, SE_keysum only used to determine which terms to fill (only used for terms 2-4)
  // part only matters for terms 2-4
  Bool_t seSS=kFALSE;
  Bool_t seSK=kFALSE;
  Short_t seKeySum=0;// only used for pi-k-p case
  if(part==1) {// default case (irrelevant for term 1 and term 5)
    if(c1==c2) seSS=kTRUE;
    if(key1==key2) seSK=kTRUE;
    seKeySum = key1+key2;
  }
  if(part==2){
    if(c1==c3) seSS=kTRUE;
    if(key1==key3) seSK=kTRUE;
    seKeySum = key1+key3;
  }
  
  
  // fill2, fill3, fill4 are only used for Cumulant Terms 2,3,4
  
  if(fi==0 || fi==6 || fi==9){// Identical species
    if( (c1+c2+c3)==1) {
      b1=0; b2=0; b3=1;// Re-assign to merge degenerate histos
      //
      if(seSS) fill2=kTRUE;
      else {fill3=kTRUE; fill4=kTRUE;}
      //
    }else if( (c1+c2+c3)==2) {
      b1=0; b2=1; b3=1;
      //
      if(!seSS) {fill2=kTRUE; fill3=kTRUE;}
      else fill4=kTRUE;
      //
    }else {
      b1=c1; b2=c2; b3=c3;
      fill2=kTRUE; fill3=kTRUE; fill4=kTRUE;
    }
  }else if(fi != 5){// all the rest except pi-k-p
    if(key1==key2){
      b3=c3;
      if( (c1+c2)==1) {b1=0; b2=1;}
      else {b1=c1; b2=c2;}
    }else if(key1==key3){
      b3=c2;
      if( (c1+c3)==1) {b1=0; b2=1;}
      else {b1=c1; b2=c3;}
    }else {// Key2==Key3
      b3=c1;
      if( (c2+c3)==1) {b1=0; b2=1;}
      else {b1=c2; b2=c3;}
    }
    //////////////////////////////
    if(seSK) fill2=kTRUE;// Same keys from Same Event
    else {// Different keys from Same Event
      if( (c1+c2+c3)==1) {
	if(b3==0) {
	  if(seSS) fill3=kTRUE;
	  else fill4=kTRUE;
	}else{fill3=kTRUE; fill4=kTRUE;}// b3=1 so fill both
      }else if( (c1+c2+c3)==2) {
	if(b3==1) {
	  if(seSS) fill4=kTRUE;
	  else fill3=kTRUE;
	}else{fill3=kTRUE; fill4=kTRUE;}// b3=0 so fill both
      }else{fill3=kTRUE; fill4=kTRUE;}// all same charge so fill both
    }
    /////////////////////////////
  }else {// pi-k-p  (no charge ordering applies since all are unique)
    if(key1==1){
      if(key2==10) {b1=c1; b2=c2; b3=c3;}// pi-k-p
      else {b1=c1; b2=c3; b3=c2;}// pi-p-k
    }else if(key1==10){
      if(key2==1) {b1=c2; b2=c1; b3=c3;}// k-pi-p
      else {b1=c3; b2=c1; b3=c2;}// k-p-pi
    }else {// key1==100
      if(key2==1) {b1=c2; b2=c3; b3=c1;}// p-pi-k
      else {b1=c3; b2=c2; b3=c1;}// p-k-pi
    }
    ////////////////////////////////////
    if(seKeySum==11) fill2=kTRUE;
    else if(seKeySum==101) fill3=kTRUE;
    else fill4=kTRUE;
    ////////////////////////////////////
  }
  
}
//________________________________________________________________________
void AliChaoticity::ArrangeQs(Short_t fi, Short_t key1, Short_t key2, Short_t key3, Int_t c1, Int_t c2, Int_t c3, Float_t q12, Float_t q13, Float_t q23, Short_t part, Short_t term, Float_t &fQ, Float_t &sQ, Float_t &tQ){
 
  // for terms 2-4: start by setting q12(part 1) or q13(part 2)
  if(fi==0 || fi==6 || fi==9){// Identical species
    if( (c1+c2+c3)==1) {// fQ=ss, sQ=os, tQ=os
      if(term==1 || term==5){
	if(c1==c2) {fQ=q12; sQ=q13; tQ=q23;}
	else if(c1==c3) {fQ=q13; sQ=q12; tQ=q23;}
	else {fQ=q23; sQ=q12; tQ=q13;}
      }else if(term==2 && part==1){
	fQ=q12; sQ=q13; tQ=q23;
      }else if(term==2 && part==2){
	fQ=q13; sQ=q12; tQ=q23;
      }else if(term==3 && part==1){
	sQ=q12; 
	if(c1==c3) {fQ=q13; tQ=q23;}
	else {fQ=q23; tQ=q13;}
      }else if(term==3 && part==2){
	sQ=q13;
	if(c1==c2) {fQ=q12; tQ=q23;}
	else {fQ=q23; tQ=q12;}
      }else if(term==4 && part==1){
	tQ=q12;
	if(c1==c3) {fQ=q13; sQ=q23;}
	else {fQ=q23; sQ=q13;}
      }else if(term==4 && part==2){
	tQ=q13;
	if(c1==c2) {fQ=q12; sQ=q23;}
	else {fQ=q23; sQ=q12;}
      }else cout<<"problem!!!!!!!!!!!!!"<<endl;
    }else if( (c1+c2+c3)==2) {// fQ=os, sQ=os, tQ=ss
      if(term==1 || term==5){
	if(c1==c2) {tQ=q12; sQ=q13; fQ=q23;}
	else if(c1==c3) {tQ=q13; sQ=q12; fQ=q23;}
	else {tQ=q23; sQ=q12; fQ=q13;}
      }else if(term==2 && part==1){
	fQ=q12; 
	if(c1==c3) {tQ=q13; sQ=q23;}
	else {tQ=q23; sQ=q13;}
      }else if(term==2 && part==2){
	fQ=q13; 
	if(c1==c2) {tQ=q12; sQ=q23;}
	else {tQ=q23; sQ=q12;}
      }else if(term==3 && part==1){
	sQ=q12; 
	if(c1==c3) {tQ=q13; fQ=q23;}
	else {tQ=q23; fQ=q13;}
      }else if(term==3 && part==2){
	sQ=q13; 
	if(c1==c2) {tQ=q12; fQ=q23;}
	else {tQ=q23; fQ=q12;}
      }else if(term==4 && part==1){
	tQ=q12; sQ=q13; fQ=q23;
      }else if(term==4 && part==2){
	tQ=q13; sQ=q12; fQ=q23;
      }else cout<<"problem!!!!!!!!!!!!!"<<endl;
    }else {// fQ=ss, sQ=ss, tQ=ss
      if(term==1 || term==5) {fQ=q12; sQ=q13; tQ=q23;}
      else if(term==2 && part==1) {fQ=q12; sQ=q13; tQ=q23;}
      else if(term==2 && part==2) {fQ=q13; sQ=q12; tQ=q23;}
      else if(term==3 && part==1) {sQ=q12; fQ=q13; tQ=q23;}
      else if(term==3 && part==2) {sQ=q13; fQ=q12; tQ=q23;}
      else if(term==4 && part==1) {tQ=q12; fQ=q13; sQ=q23;}
      else if(term==4 && part==2) {tQ=q13; fQ=q12; sQ=q23;}
    }
  }else if(fi != 5){// all the rest except pi-k-p	
    if(key1==key2){
      fQ=q12;
      if(c1==c2){
	// cases not explicity shown below are not possible
	if(term==1 || term==5) {sQ=q13; tQ=q23;}
	else if(term==2 && part==1) {sQ=q13; tQ=q23;}
	else if(term==3 && part==2) {sQ=q13; tQ=q23;}
	else if(term==4 && part==2) {tQ=q13; sQ=q23;}
	else cout<<"problem!!!!!!!!!!!!!"<<endl;
      }else if(c3==0){
	if(c1==c3) {sQ=q13; tQ=q23;}
	else {sQ=q23; tQ=q13;}
      }else {//c3==1
	if(c1==c3) {tQ=q13; sQ=q23;}
	else {tQ=q23; sQ=q13;}
      }
    }else if(key1==key3){
      fQ=q13;
      if(c1==c3){
	// cases not explicity shown below are not possible
	if(term==1 || term==5) {sQ=q12; tQ=q23;}
	else if(term==2 && part==2) {sQ=q12; tQ=q23;}
	else if(term==3 && part==1) {sQ=q12; tQ=q23;}
	else if(term==4 && part==1) {tQ=q12; sQ=q23;}
	else cout<<"problem!!!!!!!!!!!!!!!!!!!!!!"<<endl;
      }else if(c2==0){
	if(c1==c2) {sQ=q12; tQ=q23;}
	else {sQ=q23; tQ=q12;}
      }else {//c2==1
	if(c1==c2) {tQ=q12; sQ=q23;}
	else {tQ=q23; sQ=q12;}
      }
    }else {// key2==key3
      fQ=q23;
      if(c2==c3){
	// cases not explicity shown below are not possible
	if(term==1 || term==5) {sQ=q12; tQ=q13;}
	else if(term==3 && part==1) {sQ=q12; tQ=q13;}
	else if(term==3 && part==2) {sQ=q13; tQ=q12;}
	else if(term==4 && part==1) {tQ=q12; sQ=q13;}
	else if(term==4 && part==2) {tQ=q13; sQ=q12;}
	else cout<<"problem!!!!!!!!!!!!!!!!!!!!!!"<<endl;
      }else if(c1==0){
	if(c1==c2) {sQ=q12; tQ=q13;}
	else {sQ=q13; tQ=q12;}
      }else {//c1==1
	if(c1==c2) {tQ=q12; sQ=q13;}
	else {tQ=q13; sQ=q12;}
      }
    }
  }else {// pi-k-p
    if(key1==1){
      if(key2==10) {fQ=q12; sQ=q13; tQ=q23;}// pi-k-p
      else {fQ=q13; sQ=q12; tQ=q23;}// pi-p-k
    }else if(key1==10){
      if(key2==1) {fQ=q12; sQ=q23; tQ=q13;}// k-pi-p
      else {fQ=q13; sQ=q23; tQ=q12;}// k-p-pi
    }else {// key1==100
      if(key2==1) {fQ=q23; sQ=q12; tQ=q13;}// p-pi-k
      else {fQ=q23; sQ=q13; tQ=q12;}// p-k-pi
    }
    
  }


}
//________________________________________________________________________
Float_t AliChaoticity::GetQinv(Short_t fi, Float_t track1[], Float_t track2[]){
  
  Float_t qinv=1.0;
  
  if(fi==0 || fi==3 || fi==5){// identical masses
    qinv = sqrt( pow(track1[1]-track2[1],2) + pow(track1[2]-track2[2],2) + pow(track1[3]-track2[3],2) - pow(track1[0]-track2[0],2));
  }else{// different masses
    Float_t px = track1[1] + track2[1]; 
    Float_t py = track1[2] + track2[2]; 
    Float_t pz = track1[3] + track2[3];    
    Float_t pSquared = pow(track1[0]+track2[0],2) - px*px - py*py - pz*pz;
    Float_t deltaDOTsum = (track1[0]-track2[0])*(track1[0]+track2[0]);
    deltaDOTsum -= (track1[1]-track2[1])*px + (track1[2]-track2[2])*py + (track1[3]-track2[3])*pz;
    
    qinv =  pow( (track1[1]-track2[1]) - deltaDOTsum*px/(pSquared),2);
    qinv += pow( (track1[2]-track2[2]) - deltaDOTsum*py/(pSquared),2);
    qinv += pow( (track1[3]-track2[3]) - deltaDOTsum*pz/(pSquared),2);
    qinv -= pow( (track1[0]-track2[0]) - deltaDOTsum*(track1[0]+track2[0])/(pSquared),2);
    qinv = sqrt(qinv);
  }
  
  return qinv;
  
}
//________________________________________________________________________
void AliChaoticity::GetQosl(Float_t track1[], Float_t track2[], Float_t& qout, Float_t& qside, Float_t& qlong){
 
  Float_t p0 = track1[0] + track2[0];
  Float_t px = track1[1] + track2[1];
  Float_t py = track1[2] + track2[2];
  Float_t pz = track1[3] + track2[3];
  
  Float_t mt = sqrt(p0*p0 - pz*pz);
  Float_t pt = sqrt(px*px + py*py);
  
  Float_t v0 = track1[0] - track2[0];
  Float_t vx = track1[1] - track2[1];
  Float_t vy = track1[2] - track2[2];
  Float_t vz = track1[3] - track2[3];
  
  qout = (px*vx + py*vy)/pt;
  qside = (px*vy - py*vx)/pt;
  qlong = (p0*vz - pz*v0)/mt;
}
//________________________________________________________________________
void AliChaoticity::SetWeightArrays(Bool_t legoCase, TH3F *histos[AliChaoticity::fKbinsT][AliChaoticity::fCentBins]){

  if(legoCase){
    cout<<"LEGO call to SetWeightArrays"<<endl;
    
    for(Int_t tKbin=0; tKbin<fKbinsT; tKbin++){
      for(Int_t mb=0; mb<fCentBins; mb++){
	fNormWeight[tKbin][mb] = (TH3F*)histos[tKbin][mb]->Clone();
	fNormWeight[tKbin][mb]->SetDirectory(0);
      }
    }
    
  }else{
    
    TFile *wFile = new TFile("WeightFile.root","READ");
    if(!wFile->IsOpen()) {cout<<"No Weight File!!!!!!!!!!"<<endl; return;}
    else cout<<"Good Weight File Found!"<<endl;
    
    for(Int_t tKbin=0; tKbin<fKbinsT; tKbin++){
      for(Int_t mb=0; mb<fCentBins; mb++){
		    
	TString *name = new TString("Weight_Kt_");
	*name += tKbin;
	name->Append("_Ky_0");
	name->Append("_M_");
	*name += mb;
	name->Append("_ED_0");
	
	
	fNormWeight[tKbin][mb] = (TH3F*)wFile->Get(name->Data());
	fNormWeight[tKbin][mb]->SetDirectory(0);
	
	
      }//mb
    }//kt
    
    wFile->Close();
  }
  
  cout<<"Done reading weight file"<<endl;
  
}
//________________________________________________________________________
void AliChaoticity::GetWeight(Float_t track1[], Float_t track2[], Float_t& wgt, Float_t& wgtErr){
  
  Float_t kt=sqrt( pow(track1[1]+track2[1],2) + pow(track1[2]+track2[2],2))/2.;
  //
  Float_t qOut=0,qSide=0,qLong=0;
  GetQosl(track1, track2, qOut, qSide, qLong);
  qOut = fabs(qOut);
  qSide = fabs(qSide);
  qLong = fabs(qLong);
  Float_t wd=0, xd=0, yd=0, zd=0;
  //Float_t qinvtemp=GetQinv(0,track1, track2);
  //
  
  if(kt < fKmeanT[0]) {fKtIndexL=0; fKtIndexH=1;}
  else if(kt >= fKmeanT[fKbinsT-1]) {fKtIndexL=fKbinsT-2; fKtIndexH=fKbinsT-1;}
  else {
    for(Int_t i=0; i<fKbinsT-1; i++){
      if((kt >= fKmeanT[i]) && (kt < fKmeanT[i+1])) {fKtIndexL=i; fKtIndexH=i+1; break;}
    }
  }
  wd = (kt-fKmeanT[fKtIndexL])/(fKmeanT[fKtIndexH]-fKmeanT[fKtIndexL]);
  //
  /////////
  if(qOut < fQmean[0]) {fQoIndexL=0; fQoIndexH=0; xd=0;}
  else if(qOut >= fQmean[kQbinsWeights-1]) {fQoIndexL=kQbinsWeights-1; fQoIndexH=kQbinsWeights-1; xd=1;}
  else {
    for(Int_t i=0; i<kQbinsWeights-1; i++){
      if((qOut >= fQmean[i]) && (qOut < fQmean[i+1])) {fQoIndexL=i; fQoIndexH=i+1; break;}
    }
    xd = (qOut-fQmean[fQoIndexL])/(fQmean[fQoIndexH]-fQmean[fQoIndexL]);
  }
  //
  if(qSide < fQmean[0]) {fQsIndexL=0; fQsIndexH=0; yd=0;}
  else if(qSide >= fQmean[kQbinsWeights-1]) {fQsIndexL=kQbinsWeights-1; fQsIndexH=kQbinsWeights-1; yd=1;}
  else {
    for(Int_t i=0; i<kQbinsWeights-1; i++){
      if((qSide >= fQmean[i]) && (qSide < fQmean[i+1])) {fQsIndexL=i; fQsIndexH=i+1; break;}
    }
    yd = (qSide-fQmean[fQsIndexL])/(fQmean[fQsIndexH]-fQmean[fQsIndexL]);
  }
  //
  if(qLong < fQmean[0]) {fQlIndexL=0; fQlIndexH=0; zd=0;}
  else if(qLong >= fQmean[kQbinsWeights-1]) {fQlIndexL=kQbinsWeights-1; fQlIndexH=kQbinsWeights-1; zd=1;}
  else {
    for(Int_t i=0; i<kQbinsWeights-1; i++){
      if((qLong >= fQmean[i]) && (qLong < fQmean[i+1])) {fQlIndexL=i; fQlIndexH=i+1; break;}
    }
    zd = (qLong-fQmean[fQlIndexL])/(fQmean[fQlIndexH]-fQmean[fQlIndexL]);
  }
  //

  
  //Float_t min = fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexH+1,fQsIndexH+1,fQlIndexH+1);
  Float_t minErr = fNormWeight[fKtIndexL][fMbin]->GetBinError(fQoIndexH+1,fQsIndexH+1,fQlIndexH+1);
  /*
  Float_t deltaW=0;
  // kt
  deltaW += (fNormWeight[fKtIndexH][fMbin]->GetBinContent(fQoIndexH+1, fQsIndexH+1, fQlIndexH+1) - min)*(kt-fKmeanT[fKtIndexL])/((fKstepT[fKtIndexL]+fKstepT[fKtIndexH])/2.);
  // Qo 
  deltaW += (fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexL+1, fQsIndexH+1, fQlIndexH+1) - min)*(qOut-fQmean[fQoIndexL])/fQstepWeights;
  // Qs
  deltaW += (fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexH+1, fQsIndexL+1, fQlIndexH+1) - min)*(qSide-fQmean[fQsIndexL])/fQstepWeights;
  // Ql
  deltaW += (fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexH+1, fQsIndexH+1, fQlIndexL+1) - min)*(qLong-fQmean[fQlIndexL])/fQstepWeights;
  //
  wgt = min + deltaW;
  */
  
 
  //
  // w interpolation (kt)
  Float_t c000 = fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexL+1, fQsIndexL+1, fQlIndexL+1)*(1-wd) + fNormWeight[fKtIndexH][fMbin]->GetBinContent(fQoIndexL+1, fQsIndexL+1, fQlIndexL+1)*wd;
  Float_t c100 = fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexH+1, fQsIndexL+1, fQlIndexL+1)*(1-wd) + fNormWeight[fKtIndexH][fMbin]->GetBinContent(fQoIndexH+1, fQsIndexL+1, fQlIndexL+1)*wd;
  Float_t c010 = fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexL+1, fQsIndexH+1, fQlIndexL+1)*(1-wd) + fNormWeight[fKtIndexH][fMbin]->GetBinContent(fQoIndexL+1, fQsIndexH+1, fQlIndexL+1)*wd;
  Float_t c001 = fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexL+1, fQsIndexL+1, fQlIndexH+1)*(1-wd) + fNormWeight[fKtIndexH][fMbin]->GetBinContent(fQoIndexL+1, fQsIndexL+1, fQlIndexH+1)*wd;
  Float_t c110 = fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexH+1, fQsIndexH+1, fQlIndexL+1)*(1-wd) + fNormWeight[fKtIndexH][fMbin]->GetBinContent(fQoIndexH+1, fQsIndexH+1, fQlIndexL+1)*wd;
  Float_t c101 = fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexH+1, fQsIndexL+1, fQlIndexH+1)*(1-wd) + fNormWeight[fKtIndexH][fMbin]->GetBinContent(fQoIndexH+1, fQsIndexL+1, fQlIndexH+1)*wd;
  Float_t c011 = fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexL+1, fQsIndexH+1, fQlIndexH+1)*(1-wd) + fNormWeight[fKtIndexH][fMbin]->GetBinContent(fQoIndexL+1, fQsIndexH+1, fQlIndexH+1)*wd;
  Float_t c111 = fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexH+1, fQsIndexH+1, fQlIndexH+1)*(1-wd) + fNormWeight[fKtIndexH][fMbin]->GetBinContent(fQoIndexH+1, fQsIndexH+1, fQlIndexH+1)*wd;
  // x interpolation (qOut)
  Float_t c00 = c000*(1-xd) + c100*xd;
  Float_t c10 = c010*(1-xd) + c110*xd;
  Float_t c01 = c001*(1-xd) + c101*xd;
  Float_t c11 = c011*(1-xd) + c111*xd;
  // y interpolation (qSide)
  Float_t c0 = c00*(1-yd) + c10*yd;
  Float_t c1 = c01*(1-yd) + c11*yd;
  // z interpolation (qLong)
  wgt = (c0*(1-zd) + c1*zd);
  
  ////
  
  // Denominator errors negligible compared to numerator so do not waste cpu time below.  
  //Float_t deltaWErr=0;
  // Kt
  /*
  deltaWErr += (fNormWeight[fKtIndexH][fMbin]->GetBinContent(fQoIndexH+1, fQsIndexH+1, fQlIndexH+1) - minErr)*(kt-fKmeanT[fKtIndexL])/((fKstepT[fKtIndexL]+fKstepT[fKtIndexH])/2.);
  // Qo 
  deltaWErr += (fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexL+1, fQsIndexH+1, fQlIndexH+1) - minErr)*(qOut-fQmean[fQoIndexL])/fQstepWeights;
  // Qs
  deltaWErr += (fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexH+1, fQsIndexL+1, fQlIndexH+1) - minErr)*(qSide-fQmean[fQsIndexL])/fQstepWeights;
  // Ql
  deltaWErr += (fNormWeight[fKtIndexL][fMbin]->GetBinContent(fQoIndexH+1, fQsIndexH+1, fQlIndexL+1) - minErr)*(qLong-fQmean[fQlIndexL])/fQstepWeights;
  */
  wgtErr = minErr;
  
 
}
//________________________________________________________________________
Float_t AliChaoticity::MCWeight(Int_t charge1, Int_t charge2, Int_t r, Int_t dampIndex, Float_t qinv, Float_t k12){
  
  Float_t radius = Float_t(r)/0.19733;// convert to GeV (starts at 5 fm, was 3 fm)
  Float_t r12=radius*(1-k12/2.0);
  
  Float_t myDamp = fDampStart + (fDampStep)*dampIndex;
  Float_t coulCorr12 = FSICorrelationTherm2(charge1, charge2, qinv);
  if(charge1==charge2){
    Float_t arg=qinv*r12;
    Float_t EW = 1 + kappa3/(6.*pow(2.,1.5))*(8.*pow(arg,3) - 12.*arg);
    EW += kappa4/(24.*pow(2.,2))*(16.*pow(arg,4) -48.*pow(arg,2) + 12);
    return ((1-myDamp) + myDamp*(1 + exp(-pow(qinv*r12,2))*pow(EW,2))*coulCorr12);
  }else {
    return ((1-myDamp) + myDamp*coulCorr12);
  }
    
}
//________________________________________________________________________
Float_t AliChaoticity::MCWeightOSL(Int_t charge1, Int_t charge2, Int_t r, Int_t dampIndex, Float_t qinv, Float_t qo, Float_t qs, Float_t ql){
  
  Float_t radiusOut = Float_t(r)/0.19733;// convert to GeV (starts at 5 fm, was 3 fm)
  Float_t radiusSide = radiusOut;
  Float_t radiusLong = radiusOut;
  Float_t myDamp = fDampStart + (fDampStep)*dampIndex;
  Float_t coulCorr12 = FSICorrelationTherm2(charge1, charge2, qinv);
  if(charge1==charge2){
    return ((1-myDamp) + myDamp*(1 + exp(-pow(qo*radiusOut,2)) * exp(-pow(qs*radiusSide,2)) * exp(-pow(ql*radiusLong,2)))*coulCorr12);
  }else {
    return ((1-myDamp) + myDamp*coulCorr12);
  }
    
}

//________________________________________________________________________
Float_t AliChaoticity::MCWeight3D(Bool_t SameCharge, Int_t term, Int_t dampIndex, Float_t q12, Float_t q13, Float_t q23, Float_t k12, Float_t k13, Float_t k23){
  if(term==5) return 1.0;
  
  Float_t radius=fRMax;
  radius /= 0.19733;
  Float_t r12=radius*(1-k12/2.0);
  Float_t r13=radius*(1-k13/2.0);
  Float_t r23=radius*(1-k23/2.0);
  //if(fMbin<=1) {}
  //else if(fMbin<=3) {radius = radius-1;}
  //else if(fMbin<=5) {radius = radius-2;}
  //else {radius = radius-3;}
  
 
  Float_t myDamp = fDampStart + (fDampStep)*dampIndex;
  Float_t fc = sqrt(myDamp);
  
  if(SameCharge){// all three of the same charge
    Float_t coulCorr12 = FSICorrelationTherm2(+1,+1, q12);// K2
    Float_t coulCorr13 = FSICorrelationTherm2(+1,+1, q13);// K2
    Float_t coulCorr23 = FSICorrelationTherm2(+1,+1, q23);// K2
    Float_t arg12=q12*r12;
    Float_t arg13=q13*r13;
    Float_t arg23=q23*r23;
    Float_t EW12 = 1 + kappa3/(6.*pow(2.,1.5))*(8.*pow(arg12,3) - 12.*arg12);
    EW12 += kappa4/(24.*pow(2.,2))*(16.*pow(arg12,4) -48.*pow(arg12,2) + 12);
    Float_t EW13 = 1 + kappa3/(6.*pow(2.,1.5))*(8.*pow(arg13,3) - 12.*arg13);
    EW13 += kappa4/(24.*pow(2.,2))*(16.*pow(arg13,4) -48.*pow(arg13,2) + 12);
    Float_t EW23 = 1 + kappa3/(6.*pow(2.,1.5))*(8.*pow(arg23,3) - 12.*arg23);
    EW23 += kappa4/(24.*pow(2.,2))*(16.*pow(arg23,4) -48.*pow(arg23,2) + 12);
    if(term==1){
      Float_t c3QS = 1 + exp(-pow(q12*r12,2))*pow(EW12,2) + exp(-pow(q13*r13,2))*pow(EW13,2) + exp(-pow(q23*r23,2))*pow(EW23,2);
      c3QS += 2*exp(-(pow(r12,2)*pow(q12,2) + pow(r13,2)*pow(q13,2) + pow(r23,2)*pow(q23,2))/2.)*EW12*EW13*EW23;
      Float_t w123 = pow(1-fc,3) + 3*fc*pow(1-fc,2);
      w123 += pow(fc,2)*(1-fc)*(1+exp(-pow(q12*r12,2))*pow(EW12,2))*coulCorr12;
      w123 += pow(fc,2)*(1-fc)*(1+exp(-pow(q13*r13,2))*pow(EW13,2))*coulCorr13;
      w123 += pow(fc,2)*(1-fc)*(1+exp(-pow(q23*r23,2))*pow(EW23,2))*coulCorr23;
      w123 += pow(fc,3)*c3QS*coulCorr12*coulCorr13*coulCorr23;
      return w123;
    }else if(term==2){
      return ((1-myDamp) + myDamp*(1 + exp(-pow(q12*r12,2))*pow(EW12,2))*coulCorr12);
    }else if(term==3){
      return ((1-myDamp) + myDamp*(1 + exp(-pow(q13*r13,2))*pow(EW13,2))*coulCorr13);
    }else if(term==4){
      return ((1-myDamp) + myDamp*(1 + exp(-pow(q23*r23,2))*pow(EW23,2))*coulCorr23);
    }else return 1.0;
  
  }else{// mixed charge case pair 12 always treated as ss
    Float_t coulCorr12 = FSICorrelationTherm2(+1,+1, q12);// K2 ss
    Float_t coulCorr13 = FSICorrelationTherm2(+1,-1, q13);// K2 os
    Float_t coulCorr23 = FSICorrelationTherm2(+1,-1, q23);// K2 os
    Float_t arg12=q12*r12;
    Float_t EW12 = 1 + kappa3/(6.*pow(2.,1.5))*(8.*pow(arg12,3) - 12.*arg12);
    EW12 += kappa4/(24.*pow(2.,2))*(16.*pow(arg12,4) -48.*pow(arg12,2) + 12);
    if(term==1){
      Float_t c3QS = 1 + exp(-pow(q12*r12,2))*pow(EW12,2);
      Float_t w123 = pow(1-fc,3) + 3*fc*pow(1-fc,2);
      w123 += pow(fc,2)*(1-fc)*(1+exp(-pow(q12*r12,2))*pow(EW12,2))*coulCorr12;
      w123 += pow(fc,2)*(1-fc)*coulCorr13;
      w123 += pow(fc,2)*(1-fc)*coulCorr23;
      w123 += pow(fc,3)*c3QS*coulCorr12*coulCorr13*coulCorr23;
      return w123;
    }else if(term==2){
      return ((1-myDamp) + myDamp*(1 + exp(-pow(q12*r12,2))*pow(EW12,2))*coulCorr12);
    }else if(term==3){
      return ((1-myDamp) + myDamp*coulCorr13);
    }else if(term==4){
      return ((1-myDamp) + myDamp*coulCorr23);
    }else return 1.0;
  }
  
}
//________________________________________________________________________
void AliChaoticity::SetMomResCorrections(Bool_t legoCase, TH2D *temp2D){
  
 
  if(legoCase){
    cout<<"LEGO call to SetMomResCorrections"<<endl;
    fMomResC2 = (TH2D*)temp2D->Clone();
    fMomResC2->SetDirectory(0);
  }else {
    TFile *momResFile = new TFile("MomResFile.root","READ");
    if(!momResFile->IsOpen()) {
      cout<<"No momentum resolution file found"<<endl;
      AliFatal("No momentum resolution file found.  Kill process.");
    }else {cout<<"Good Momentum Resolution File Found!"<<endl;}
    
    TH2D *temp2D2 = (TH2D*)momResFile->Get("MomResHisto_pp");
    fMomResC2 = (TH2D*)temp2D2->Clone();
    fMomResC2->SetDirectory(0);
            
    momResFile->Close();
  }

  // fMomResC2->GetBinContent(1,5) should be ~1.007
  if(fMomResC2->GetBinContent(1,5) > 1.2) AliFatal("AliChaoticity: SetMomResCorrections Problem");// Additional Safety check
  if(fMomResC2->GetBinContent(1,5) < 0.95) AliFatal("AliChaoticity: SetMomResCorrections Problem");// Additional Safety check

  for(Int_t bx=1; bx<=fMomResC2->GetNbinsX(); bx++){
    for(Int_t by=1; by<=fMomResC2->GetNbinsX(); by++){
      if(fMomResC2->GetBinContent(bx,by) > 1.5) fMomResC2->SetBinContent(bx,by, 1.5);// Maximum is ~1.02 
      if(fMomResC2->GetBinContent(bx,by) < 0.95) fMomResC2->SetBinContent(bx,by, 0.95);// Minimum is ~0.98
    }
  }

  cout<<"Done reading momentum resolution file"<<endl;
}
//________________________________________________________________________
void AliChaoticity::SetFSICorrelations(Bool_t legoCase, TH2D *temp2DTherm[2], TH3D *temp3Dos[6], TH3D *temp3Dss[6]){
  // read in 2-particle and 3-particle FSI correlations = K2 & K3
  // 2-particle input histo from file is binned in qinv.  3-particle in qinv of each pair
  if(legoCase){
    cout<<"LEGO call to SetFSICorrelations"<<endl;
    fFSI2SS = (TH2D*)temp2DTherm[0]->Clone();
    fFSI2OS = (TH2D*)temp2DTherm[1]->Clone();
    //
    fFSI2SS->SetDirectory(0);
    fFSI2OS->SetDirectory(0);

    for(Int_t CB=0; CB<6; CB++) {
      fFSIOmega0OS[CB] = (TH3D*)temp3Dos[CB]->Clone();
      fFSIOmega0SS[CB] = (TH3D*)temp3Dss[CB]->Clone();
      //
      fFSIOmega0OS[CB]->SetDirectory(0);
      fFSIOmega0SS[CB]->SetDirectory(0);
    }
  }else {
    cout<<"non LEGO call to SetFSICorrelations"<<endl;
    TFile *fsifile = new TFile("KFile.root","READ");
    if(!fsifile->IsOpen()) {
      cout<<"No FSI file found"<<endl;
      AliFatal("No FSI file found.  Kill process.");
    }else {cout<<"Good FSI File Found!"<<endl;}
    
    TH2D *temphisto2ThermSS = (TH2D*)fsifile->Get("K2ssT");
    TH2D *temphisto2ThermOS = (TH2D*)fsifile->Get("K2osT");
    TH3D *temphisto3OS[6];
    TH3D *temphisto3SS[6];
    for(Int_t CB=0; CB<6; CB++) {
      TString *nameK3SS = new TString("K3ss_");
      *nameK3SS += CB;
      temphisto3SS[CB] = (TH3D*)fsifile->Get(nameK3SS->Data());
      //
      TString *nameK3OS = new TString("K3os_");
      *nameK3OS += CB;
      temphisto3OS[CB] = (TH3D*)fsifile->Get(nameK3OS->Data());
    }

    fFSI2SS = (TH2D*)temphisto2ThermSS->Clone();
    fFSI2OS = (TH2D*)temphisto2ThermOS->Clone();
    fFSI2SS->SetDirectory(0);
    fFSI2OS->SetDirectory(0);
    
    for(Int_t CB=0; CB<6; CB++) {
      fFSIOmega0SS[CB] = (TH3D*)temphisto3SS[CB]->Clone();
      fFSIOmega0OS[CB] = (TH3D*)temphisto3OS[CB]->Clone();
      fFSIOmega0SS[CB]->SetDirectory(0);
      fFSIOmega0OS[CB]->SetDirectory(0);
    }   
    //
    
    fsifile->Close();
  }

  // fFSI2SS->GetBinContent(1,2) should be ~0.32
  if(fFSI2SS->GetBinContent(1,2) > 1.0) AliFatal("AliChaoticity: SetFSICorrelations Problem");// Additional Safety check
  if(fFSI2SS->GetBinContent(1,2) < 0.1) AliFatal("AliChaoticity: SetFSICorrelations Problem");// Additional Safety check

  for(Int_t ii=1; ii<=fFSI2SS->GetNbinsX(); ii++){
      for(Int_t jj=1; jj<=fFSI2SS->GetNbinsY(); jj++){
	if(fFSI2SS->GetBinContent(ii,jj) > 1.0) fFSI2SS->SetBinContent(ii,jj, 1.0);
	if(fFSI2OS->GetBinContent(ii,jj) > 10.0) fFSI2OS->SetBinContent(ii,jj, 10.0);
	//
	if(fFSI2SS->GetBinContent(ii,jj) < 0.05) fFSI2SS->SetBinContent(ii,jj, 0.05);
	if(fFSI2OS->GetBinContent(ii,jj) < 0.9) fFSI2OS->SetBinContent(ii,jj, 0.9);
      }
  }

  cout<<"Done reading FSI file"<<endl;
}
//________________________________________________________________________
Float_t AliChaoticity::FSICorrelationTherm2(Int_t charge1, Int_t charge2, Float_t qinv){
  // returns 2-particle Coulomb correlations = K2
  Int_t qbinL = fFSI2SS->GetYaxis()->FindBin(qinv-fFSI2SS->GetYaxis()->GetBinWidth(1)/2.);
  Int_t qbinH = qbinL+1;
  if(qbinL <= 0) return 1.0;
  if(qbinH > fFSI2SS->GetNbinsY()) return 1.0;
  
  Float_t slope=0;
  if(charge1==charge2){
    slope = fFSI2SS->GetBinContent(fFSIbin+1, qbinL) - fFSI2SS->GetBinContent(fFSIbin+1, qbinH);
    slope /= fFSI2SS->GetYaxis()->GetBinCenter(qbinL) - fFSI2SS->GetYaxis()->GetBinCenter(qbinH);
    return (slope*(qinv - fFSI2SS->GetYaxis()->GetBinCenter(qbinL)) + fFSI2SS->GetBinContent(fFSIbin+1, qbinL));
  }else {
    slope = fFSI2OS->GetBinContent(fFSIbin+1, qbinL) - fFSI2OS->GetBinContent(fFSIbin+1, qbinH);
    slope /= fFSI2OS->GetYaxis()->GetBinCenter(qbinL) - fFSI2OS->GetYaxis()->GetBinCenter(qbinH);
    return (slope*(qinv - fFSI2OS->GetYaxis()->GetBinCenter(qbinL)) + fFSI2OS->GetBinContent(fFSIbin+1, qbinL));
  }
}
//________________________________________________________________________
Double_t AliChaoticity::FSICorrelationOmega0(Bool_t SameCharge, Double_t Q12, Double_t Q13, Double_t Q23){
  // returns 3d 3-particle Coulomb Correlation = K3
  Int_t Q12bin = fFSIOmega0SS[fFSIbin]->GetXaxis()->FindBin(Q12);
  Int_t Q13bin = fFSIOmega0SS[fFSIbin]->GetZaxis()->FindBin(Q13);
  Int_t Q23bin = fFSIOmega0SS[fFSIbin]->GetYaxis()->FindBin(Q23);
  Int_t index12L = int(fabs(Q12 - fFSI2SS->GetYaxis()->GetBinWidth(1)/2.)/(fFSI2SS->GetYaxis()->GetBinWidth(1)));
  Int_t index12H = index12L+1;
  Int_t index13L = int(fabs(Q13 - fFSI2SS->GetYaxis()->GetBinWidth(1)/2.)/(fFSI2SS->GetYaxis()->GetBinWidth(1)));
  Int_t index13H = index13L+1;
  Int_t index23L = int(fabs(Q23 - fFSI2SS->GetYaxis()->GetBinWidth(1)/2.)/(fFSI2SS->GetYaxis()->GetBinWidth(1)));
  Int_t index23H = index23L+1;

  if(SameCharge){
    if(fFSIOmega0SS[fFSIbin]->GetBinContent(Q12bin, Q23bin, Q13bin) <=0) return 1.0;
    Double_t base = fFSIOmega0SS[fFSIbin]->GetBinContent(index12L+1, index23L+1, index13L+1);
    Double_t InterPolated = 0;
    Double_t slope12 = fFSIOmega0SS[fFSIbin]->GetBinContent(index12H+1, index23L+1, index13L+1);
    slope12 -= base;
    slope12 /= fFSIOmega0SS[fFSIbin]->GetXaxis()->GetBinWidth(1);
    InterPolated += slope12*fabs(Q12 - fFSIOmega0SS[fFSIbin]->GetXaxis()->GetBinCenter(index12L+1));
    Double_t slope23 = fFSIOmega0SS[fFSIbin]->GetBinContent(index12L+1, index23H+1, index13L+1);
    slope23 -= base;
    slope23 /= fFSIOmega0SS[fFSIbin]->GetYaxis()->GetBinWidth(1);
    InterPolated += slope23*fabs(Q23 - fFSIOmega0SS[fFSIbin]->GetYaxis()->GetBinCenter(index23L+1));
    Double_t slope13 = fFSIOmega0SS[fFSIbin]->GetBinContent(index12L+1, index23L+1, index13H+1);
    slope13 -= base;
    slope13 /= fFSIOmega0SS[fFSIbin]->GetZaxis()->GetBinWidth(1);
    InterPolated += slope13*fabs(Q13 - fFSIOmega0SS[fFSIbin]->GetZaxis()->GetBinCenter(index13L+1));
    if( (base+InterPolated) <= 0) return 1.0;
    return (base+InterPolated);
  
  }else{// mixed charge. Q12 is always designated as the same-charge pair
    if(fFSIOmega0OS[fFSIbin]->GetBinContent(Q12bin, Q23bin, Q13bin) <=0) return 1.0;
    Double_t base = fFSIOmega0OS[fFSIbin]->GetBinContent(index12L+1, index23H+1, index13H+1);
    Double_t InterPolated = 0;
    Double_t slope12 = fFSIOmega0OS[fFSIbin]->GetBinContent(index12H+1, index23H+1, index13H+1);
    slope12 -= base;
    slope12 /= fFSIOmega0OS[fFSIbin]->GetXaxis()->GetBinWidth(1);
    InterPolated += slope12*fabs(Q12 - fFSIOmega0OS[fFSIbin]->GetXaxis()->GetBinCenter(index12L+1));
    Double_t slope23 = fFSIOmega0OS[fFSIbin]->GetBinContent(index12L+1, index23L+1, index13H+1);
    slope23 -= base;
    slope23 /= fFSIOmega0OS[fFSIbin]->GetYaxis()->GetBinWidth(1);
    InterPolated += slope23*fabs(Q23 - fFSIOmega0OS[fFSIbin]->GetYaxis()->GetBinCenter(index23L+1));
    Double_t slope13 = fFSIOmega0OS[fFSIbin]->GetBinContent(index12L+1, index23H+1, index13L+1);
    slope13 -= base;
    slope13 /= fFSIOmega0OS[fFSIbin]->GetZaxis()->GetBinWidth(1);
    InterPolated += slope13*fabs(Q13 - fFSIOmega0OS[fFSIbin]->GetZaxis()->GetBinCenter(index13L+1));
    if( (base+InterPolated) <= 0) return 1.0;
    return (base+InterPolated);
    
  }
}
//________________________________________________________________________
void AliChaoticity::FourVectProdTerms(Float_t pV1[], Float_t pV2[], Float_t pV3[], Float_t& QS1v1, Float_t& QS2, Float_t& QS3v1, Float_t& QS1v2, Float_t& QS3v2){
  QS1v1 = (pV1[0]-pV2[0])*(pV2[1]-pV3[1]) - (pV1[1]-pV2[1])*(pV2[0]-pV3[0]);
  QS1v1 += (pV1[0]-pV2[0])*(pV2[2]-pV3[2]) - (pV1[2]-pV2[2])*(pV2[0]-pV3[0]);
  QS1v1 += (pV1[0]-pV2[0])*(pV2[3]-pV3[3]) - (pV1[3]-pV2[3])*(pV2[0]-pV3[0]);
  QS2 = (pV1[1]-pV2[1])*(pV2[2]-pV3[2]) - (pV1[2]-pV2[2])*(pV2[1]-pV3[1]);
  QS3v1 = (pV1[1]-pV2[1])*(pV2[3]-pV3[3]) - (pV1[3]-pV2[3])*(pV2[1]-pV3[1]);
  QS3v1 += (pV1[2]-pV2[2])*(pV2[3]-pV3[3]) - (pV1[3]-pV2[3])*(pV2[2]-pV3[2]);
  //
  QS1v2 = (pV1[0]-pV2[0])*(pV2[1]-pV3[1]) - (pV1[1]-pV2[1])*(pV2[0]-pV3[0]);
  QS1v2 += (pV1[0]-pV2[0])*(pV2[2]-pV3[2]) - (pV1[2]-pV2[2])*(pV2[0]-pV3[0]);
  QS3v2 = (pV1[1]-pV2[1])*(pV2[3]-pV3[3]) - (pV1[3]-pV2[3])*(pV2[1]-pV3[1]);
  QS3v2 += (pV1[0]-pV2[0])*(pV2[3]-pV3[3]) - (pV1[3]-pV2[3])*(pV2[0]-pV3[0]);
  QS3v2 += (pV1[2]-pV2[2])*(pV2[3]-pV3[3]) - (pV1[3]-pV2[3])*(pV2[2]-pV3[2]);  
}
//________________________________________________________________________
 AliChaoticity.cxx:1
 AliChaoticity.cxx:2
 AliChaoticity.cxx:3
 AliChaoticity.cxx:4
 AliChaoticity.cxx:5
 AliChaoticity.cxx:6
 AliChaoticity.cxx:7
 AliChaoticity.cxx:8
 AliChaoticity.cxx:9
 AliChaoticity.cxx:10
 AliChaoticity.cxx:11
 AliChaoticity.cxx:12
 AliChaoticity.cxx:13
 AliChaoticity.cxx:14
 AliChaoticity.cxx:15
 AliChaoticity.cxx:16
 AliChaoticity.cxx:17
 AliChaoticity.cxx:18
 AliChaoticity.cxx:19
 AliChaoticity.cxx:20
 AliChaoticity.cxx:21
 AliChaoticity.cxx:22
 AliChaoticity.cxx:23
 AliChaoticity.cxx:24
 AliChaoticity.cxx:25
 AliChaoticity.cxx:26
 AliChaoticity.cxx:27
 AliChaoticity.cxx:28
 AliChaoticity.cxx:29
 AliChaoticity.cxx:30
 AliChaoticity.cxx:31
 AliChaoticity.cxx:32
 AliChaoticity.cxx:33
 AliChaoticity.cxx:34
 AliChaoticity.cxx:35
 AliChaoticity.cxx:36
 AliChaoticity.cxx:37
 AliChaoticity.cxx:38
 AliChaoticity.cxx:39
 AliChaoticity.cxx:40
 AliChaoticity.cxx:41
 AliChaoticity.cxx:42
 AliChaoticity.cxx:43
 AliChaoticity.cxx:44
 AliChaoticity.cxx:45
 AliChaoticity.cxx:46
 AliChaoticity.cxx:47
 AliChaoticity.cxx:48
 AliChaoticity.cxx:49
 AliChaoticity.cxx:50
 AliChaoticity.cxx:51
 AliChaoticity.cxx:52
 AliChaoticity.cxx:53
 AliChaoticity.cxx:54
 AliChaoticity.cxx:55
 AliChaoticity.cxx:56
 AliChaoticity.cxx:57
 AliChaoticity.cxx:58
 AliChaoticity.cxx:59
 AliChaoticity.cxx:60
 AliChaoticity.cxx:61
 AliChaoticity.cxx:62
 AliChaoticity.cxx:63
 AliChaoticity.cxx:64
 AliChaoticity.cxx:65
 AliChaoticity.cxx:66
 AliChaoticity.cxx:67
 AliChaoticity.cxx:68
 AliChaoticity.cxx:69
 AliChaoticity.cxx:70
 AliChaoticity.cxx:71
 AliChaoticity.cxx:72
 AliChaoticity.cxx:73
 AliChaoticity.cxx:74
 AliChaoticity.cxx:75
 AliChaoticity.cxx:76
 AliChaoticity.cxx:77
 AliChaoticity.cxx:78
 AliChaoticity.cxx:79
 AliChaoticity.cxx:80
 AliChaoticity.cxx:81
 AliChaoticity.cxx:82
 AliChaoticity.cxx:83
 AliChaoticity.cxx:84
 AliChaoticity.cxx:85
 AliChaoticity.cxx:86
 AliChaoticity.cxx:87
 AliChaoticity.cxx:88
 AliChaoticity.cxx:89
 AliChaoticity.cxx:90
 AliChaoticity.cxx:91
 AliChaoticity.cxx:92
 AliChaoticity.cxx:93
 AliChaoticity.cxx:94
 AliChaoticity.cxx:95
 AliChaoticity.cxx:96
 AliChaoticity.cxx:97
 AliChaoticity.cxx:98
 AliChaoticity.cxx:99
 AliChaoticity.cxx:100
 AliChaoticity.cxx:101
 AliChaoticity.cxx:102
 AliChaoticity.cxx:103
 AliChaoticity.cxx:104
 AliChaoticity.cxx:105
 AliChaoticity.cxx:106
 AliChaoticity.cxx:107
 AliChaoticity.cxx:108
 AliChaoticity.cxx:109
 AliChaoticity.cxx:110
 AliChaoticity.cxx:111
 AliChaoticity.cxx:112
 AliChaoticity.cxx:113
 AliChaoticity.cxx:114
 AliChaoticity.cxx:115
 AliChaoticity.cxx:116
 AliChaoticity.cxx:117
 AliChaoticity.cxx:118
 AliChaoticity.cxx:119
 AliChaoticity.cxx:120
 AliChaoticity.cxx:121
 AliChaoticity.cxx:122
 AliChaoticity.cxx:123
 AliChaoticity.cxx:124
 AliChaoticity.cxx:125
 AliChaoticity.cxx:126
 AliChaoticity.cxx:127
 AliChaoticity.cxx:128
 AliChaoticity.cxx:129
 AliChaoticity.cxx:130
 AliChaoticity.cxx:131
 AliChaoticity.cxx:132
 AliChaoticity.cxx:133
 AliChaoticity.cxx:134
 AliChaoticity.cxx:135
 AliChaoticity.cxx:136
 AliChaoticity.cxx:137
 AliChaoticity.cxx:138
 AliChaoticity.cxx:139
 AliChaoticity.cxx:140
 AliChaoticity.cxx:141
 AliChaoticity.cxx:142
 AliChaoticity.cxx:143
 AliChaoticity.cxx:144
 AliChaoticity.cxx:145
 AliChaoticity.cxx:146
 AliChaoticity.cxx:147
 AliChaoticity.cxx:148
 AliChaoticity.cxx:149
 AliChaoticity.cxx:150
 AliChaoticity.cxx:151
 AliChaoticity.cxx:152
 AliChaoticity.cxx:153
 AliChaoticity.cxx:154
 AliChaoticity.cxx:155
 AliChaoticity.cxx:156
 AliChaoticity.cxx:157
 AliChaoticity.cxx:158
 AliChaoticity.cxx:159
 AliChaoticity.cxx:160
 AliChaoticity.cxx:161
 AliChaoticity.cxx:162
 AliChaoticity.cxx:163
 AliChaoticity.cxx:164
 AliChaoticity.cxx:165
 AliChaoticity.cxx:166
 AliChaoticity.cxx:167
 AliChaoticity.cxx:168
 AliChaoticity.cxx:169
 AliChaoticity.cxx:170
 AliChaoticity.cxx:171
 AliChaoticity.cxx:172
 AliChaoticity.cxx:173
 AliChaoticity.cxx:174
 AliChaoticity.cxx:175
 AliChaoticity.cxx:176
 AliChaoticity.cxx:177
 AliChaoticity.cxx:178
 AliChaoticity.cxx:179
 AliChaoticity.cxx:180
 AliChaoticity.cxx:181
 AliChaoticity.cxx:182
 AliChaoticity.cxx:183
 AliChaoticity.cxx:184
 AliChaoticity.cxx:185
 AliChaoticity.cxx:186
 AliChaoticity.cxx:187
 AliChaoticity.cxx:188
 AliChaoticity.cxx:189
 AliChaoticity.cxx:190
 AliChaoticity.cxx:191
 AliChaoticity.cxx:192
 AliChaoticity.cxx:193
 AliChaoticity.cxx:194
 AliChaoticity.cxx:195
 AliChaoticity.cxx:196
 AliChaoticity.cxx:197
 AliChaoticity.cxx:198
 AliChaoticity.cxx:199
 AliChaoticity.cxx:200
 AliChaoticity.cxx:201
 AliChaoticity.cxx:202
 AliChaoticity.cxx:203
 AliChaoticity.cxx:204
 AliChaoticity.cxx:205
 AliChaoticity.cxx:206
 AliChaoticity.cxx:207
 AliChaoticity.cxx:208
 AliChaoticity.cxx:209
 AliChaoticity.cxx:210
 AliChaoticity.cxx:211
 AliChaoticity.cxx:212
 AliChaoticity.cxx:213
 AliChaoticity.cxx:214
 AliChaoticity.cxx:215
 AliChaoticity.cxx:216
 AliChaoticity.cxx:217
 AliChaoticity.cxx:218
 AliChaoticity.cxx:219
 AliChaoticity.cxx:220
 AliChaoticity.cxx:221
 AliChaoticity.cxx:222
 AliChaoticity.cxx:223
 AliChaoticity.cxx:224
 AliChaoticity.cxx:225
 AliChaoticity.cxx:226
 AliChaoticity.cxx:227
 AliChaoticity.cxx:228
 AliChaoticity.cxx:229
 AliChaoticity.cxx:230
 AliChaoticity.cxx:231
 AliChaoticity.cxx:232
 AliChaoticity.cxx:233
 AliChaoticity.cxx:234
 AliChaoticity.cxx:235
 AliChaoticity.cxx:236
 AliChaoticity.cxx:237
 AliChaoticity.cxx:238
 AliChaoticity.cxx:239
 AliChaoticity.cxx:240
 AliChaoticity.cxx:241
 AliChaoticity.cxx:242
 AliChaoticity.cxx:243
 AliChaoticity.cxx:244
 AliChaoticity.cxx:245
 AliChaoticity.cxx:246
 AliChaoticity.cxx:247
 AliChaoticity.cxx:248
 AliChaoticity.cxx:249
 AliChaoticity.cxx:250
 AliChaoticity.cxx:251
 AliChaoticity.cxx:252
 AliChaoticity.cxx:253
 AliChaoticity.cxx:254
 AliChaoticity.cxx:255
 AliChaoticity.cxx:256
 AliChaoticity.cxx:257
 AliChaoticity.cxx:258
 AliChaoticity.cxx:259
 AliChaoticity.cxx:260
 AliChaoticity.cxx:261
 AliChaoticity.cxx:262
 AliChaoticity.cxx:263
 AliChaoticity.cxx:264
 AliChaoticity.cxx:265
 AliChaoticity.cxx:266
 AliChaoticity.cxx:267
 AliChaoticity.cxx:268
 AliChaoticity.cxx:269
 AliChaoticity.cxx:270
 AliChaoticity.cxx:271
 AliChaoticity.cxx:272
 AliChaoticity.cxx:273
 AliChaoticity.cxx:274
 AliChaoticity.cxx:275
 AliChaoticity.cxx:276
 AliChaoticity.cxx:277
 AliChaoticity.cxx:278
 AliChaoticity.cxx:279
 AliChaoticity.cxx:280
 AliChaoticity.cxx:281
 AliChaoticity.cxx:282
 AliChaoticity.cxx:283
 AliChaoticity.cxx:284
 AliChaoticity.cxx:285
 AliChaoticity.cxx:286
 AliChaoticity.cxx:287
 AliChaoticity.cxx:288
 AliChaoticity.cxx:289
 AliChaoticity.cxx:290
 AliChaoticity.cxx:291
 AliChaoticity.cxx:292
 AliChaoticity.cxx:293
 AliChaoticity.cxx:294
 AliChaoticity.cxx:295
 AliChaoticity.cxx:296
 AliChaoticity.cxx:297
 AliChaoticity.cxx:298
 AliChaoticity.cxx:299
 AliChaoticity.cxx:300
 AliChaoticity.cxx:301
 AliChaoticity.cxx:302
 AliChaoticity.cxx:303
 AliChaoticity.cxx:304
 AliChaoticity.cxx:305
 AliChaoticity.cxx:306
 AliChaoticity.cxx:307
 AliChaoticity.cxx:308
 AliChaoticity.cxx:309
 AliChaoticity.cxx:310
 AliChaoticity.cxx:311
 AliChaoticity.cxx:312
 AliChaoticity.cxx:313
 AliChaoticity.cxx:314
 AliChaoticity.cxx:315
 AliChaoticity.cxx:316
 AliChaoticity.cxx:317
 AliChaoticity.cxx:318
 AliChaoticity.cxx:319
 AliChaoticity.cxx:320
 AliChaoticity.cxx:321
 AliChaoticity.cxx:322
 AliChaoticity.cxx:323
 AliChaoticity.cxx:324
 AliChaoticity.cxx:325
 AliChaoticity.cxx:326
 AliChaoticity.cxx:327
 AliChaoticity.cxx:328
 AliChaoticity.cxx:329
 AliChaoticity.cxx:330
 AliChaoticity.cxx:331
 AliChaoticity.cxx:332
 AliChaoticity.cxx:333
 AliChaoticity.cxx:334
 AliChaoticity.cxx:335
 AliChaoticity.cxx:336
 AliChaoticity.cxx:337
 AliChaoticity.cxx:338
 AliChaoticity.cxx:339
 AliChaoticity.cxx:340
 AliChaoticity.cxx:341
 AliChaoticity.cxx:342
 AliChaoticity.cxx:343
 AliChaoticity.cxx:344
 AliChaoticity.cxx:345
 AliChaoticity.cxx:346
 AliChaoticity.cxx:347
 AliChaoticity.cxx:348
 AliChaoticity.cxx:349
 AliChaoticity.cxx:350
 AliChaoticity.cxx:351
 AliChaoticity.cxx:352
 AliChaoticity.cxx:353
 AliChaoticity.cxx:354
 AliChaoticity.cxx:355
 AliChaoticity.cxx:356
 AliChaoticity.cxx:357
 AliChaoticity.cxx:358
 AliChaoticity.cxx:359
 AliChaoticity.cxx:360
 AliChaoticity.cxx:361
 AliChaoticity.cxx:362
 AliChaoticity.cxx:363
 AliChaoticity.cxx:364
 AliChaoticity.cxx:365
 AliChaoticity.cxx:366
 AliChaoticity.cxx:367
 AliChaoticity.cxx:368
 AliChaoticity.cxx:369
 AliChaoticity.cxx:370
 AliChaoticity.cxx:371
 AliChaoticity.cxx:372
 AliChaoticity.cxx:373
 AliChaoticity.cxx:374
 AliChaoticity.cxx:375
 AliChaoticity.cxx:376
 AliChaoticity.cxx:377
 AliChaoticity.cxx:378
 AliChaoticity.cxx:379
 AliChaoticity.cxx:380
 AliChaoticity.cxx:381
 AliChaoticity.cxx:382
 AliChaoticity.cxx:383
 AliChaoticity.cxx:384
 AliChaoticity.cxx:385
 AliChaoticity.cxx:386
 AliChaoticity.cxx:387
 AliChaoticity.cxx:388
 AliChaoticity.cxx:389
 AliChaoticity.cxx:390
 AliChaoticity.cxx:391
 AliChaoticity.cxx:392
 AliChaoticity.cxx:393
 AliChaoticity.cxx:394
 AliChaoticity.cxx:395
 AliChaoticity.cxx:396
 AliChaoticity.cxx:397
 AliChaoticity.cxx:398
 AliChaoticity.cxx:399
 AliChaoticity.cxx:400
 AliChaoticity.cxx:401
 AliChaoticity.cxx:402
 AliChaoticity.cxx:403
 AliChaoticity.cxx:404
 AliChaoticity.cxx:405
 AliChaoticity.cxx:406
 AliChaoticity.cxx:407
 AliChaoticity.cxx:408
 AliChaoticity.cxx:409
 AliChaoticity.cxx:410
 AliChaoticity.cxx:411
 AliChaoticity.cxx:412
 AliChaoticity.cxx:413
 AliChaoticity.cxx:414
 AliChaoticity.cxx:415
 AliChaoticity.cxx:416
 AliChaoticity.cxx:417
 AliChaoticity.cxx:418
 AliChaoticity.cxx:419
 AliChaoticity.cxx:420
 AliChaoticity.cxx:421
 AliChaoticity.cxx:422
 AliChaoticity.cxx:423
 AliChaoticity.cxx:424
 AliChaoticity.cxx:425
 AliChaoticity.cxx:426
 AliChaoticity.cxx:427
 AliChaoticity.cxx:428
 AliChaoticity.cxx:429
 AliChaoticity.cxx:430
 AliChaoticity.cxx:431
 AliChaoticity.cxx:432
 AliChaoticity.cxx:433
 AliChaoticity.cxx:434
 AliChaoticity.cxx:435
 AliChaoticity.cxx:436
 AliChaoticity.cxx:437
 AliChaoticity.cxx:438
 AliChaoticity.cxx:439
 AliChaoticity.cxx:440
 AliChaoticity.cxx:441
 AliChaoticity.cxx:442
 AliChaoticity.cxx:443
 AliChaoticity.cxx:444
 AliChaoticity.cxx:445
 AliChaoticity.cxx:446
 AliChaoticity.cxx:447
 AliChaoticity.cxx:448
 AliChaoticity.cxx:449
 AliChaoticity.cxx:450
 AliChaoticity.cxx:451
 AliChaoticity.cxx:452
 AliChaoticity.cxx:453
 AliChaoticity.cxx:454
 AliChaoticity.cxx:455
 AliChaoticity.cxx:456
 AliChaoticity.cxx:457
 AliChaoticity.cxx:458
 AliChaoticity.cxx:459
 AliChaoticity.cxx:460
 AliChaoticity.cxx:461
 AliChaoticity.cxx:462
 AliChaoticity.cxx:463
 AliChaoticity.cxx:464
 AliChaoticity.cxx:465
 AliChaoticity.cxx:466
 AliChaoticity.cxx:467
 AliChaoticity.cxx:468
 AliChaoticity.cxx:469
 AliChaoticity.cxx:470
 AliChaoticity.cxx:471
 AliChaoticity.cxx:472
 AliChaoticity.cxx:473
 AliChaoticity.cxx:474
 AliChaoticity.cxx:475
 AliChaoticity.cxx:476
 AliChaoticity.cxx:477
 AliChaoticity.cxx:478
 AliChaoticity.cxx:479
 AliChaoticity.cxx:480
 AliChaoticity.cxx:481
 AliChaoticity.cxx:482
 AliChaoticity.cxx:483
 AliChaoticity.cxx:484
 AliChaoticity.cxx:485
 AliChaoticity.cxx:486
 AliChaoticity.cxx:487
 AliChaoticity.cxx:488
 AliChaoticity.cxx:489
 AliChaoticity.cxx:490
 AliChaoticity.cxx:491
 AliChaoticity.cxx:492
 AliChaoticity.cxx:493
 AliChaoticity.cxx:494
 AliChaoticity.cxx:495
 AliChaoticity.cxx:496
 AliChaoticity.cxx:497
 AliChaoticity.cxx:498
 AliChaoticity.cxx:499
 AliChaoticity.cxx:500
 AliChaoticity.cxx:501
 AliChaoticity.cxx:502
 AliChaoticity.cxx:503
 AliChaoticity.cxx:504
 AliChaoticity.cxx:505
 AliChaoticity.cxx:506
 AliChaoticity.cxx:507
 AliChaoticity.cxx:508
 AliChaoticity.cxx:509
 AliChaoticity.cxx:510
 AliChaoticity.cxx:511
 AliChaoticity.cxx:512
 AliChaoticity.cxx:513
 AliChaoticity.cxx:514
 AliChaoticity.cxx:515
 AliChaoticity.cxx:516
 AliChaoticity.cxx:517
 AliChaoticity.cxx:518
 AliChaoticity.cxx:519
 AliChaoticity.cxx:520
 AliChaoticity.cxx:521
 AliChaoticity.cxx:522
 AliChaoticity.cxx:523
 AliChaoticity.cxx:524
 AliChaoticity.cxx:525
 AliChaoticity.cxx:526
 AliChaoticity.cxx:527
 AliChaoticity.cxx:528
 AliChaoticity.cxx:529
 AliChaoticity.cxx:530
 AliChaoticity.cxx:531
 AliChaoticity.cxx:532
 AliChaoticity.cxx:533
 AliChaoticity.cxx:534
 AliChaoticity.cxx:535
 AliChaoticity.cxx:536
 AliChaoticity.cxx:537
 AliChaoticity.cxx:538
 AliChaoticity.cxx:539
 AliChaoticity.cxx:540
 AliChaoticity.cxx:541
 AliChaoticity.cxx:542
 AliChaoticity.cxx:543
 AliChaoticity.cxx:544
 AliChaoticity.cxx:545
 AliChaoticity.cxx:546
 AliChaoticity.cxx:547
 AliChaoticity.cxx:548
 AliChaoticity.cxx:549
 AliChaoticity.cxx:550
 AliChaoticity.cxx:551
 AliChaoticity.cxx:552
 AliChaoticity.cxx:553
 AliChaoticity.cxx:554
 AliChaoticity.cxx:555
 AliChaoticity.cxx:556
 AliChaoticity.cxx:557
 AliChaoticity.cxx:558
 AliChaoticity.cxx:559
 AliChaoticity.cxx:560
 AliChaoticity.cxx:561
 AliChaoticity.cxx:562
 AliChaoticity.cxx:563
 AliChaoticity.cxx:564
 AliChaoticity.cxx:565
 AliChaoticity.cxx:566
 AliChaoticity.cxx:567
 AliChaoticity.cxx:568
 AliChaoticity.cxx:569
 AliChaoticity.cxx:570
 AliChaoticity.cxx:571
 AliChaoticity.cxx:572
 AliChaoticity.cxx:573
 AliChaoticity.cxx:574
 AliChaoticity.cxx:575
 AliChaoticity.cxx:576
 AliChaoticity.cxx:577
 AliChaoticity.cxx:578
 AliChaoticity.cxx:579
 AliChaoticity.cxx:580
 AliChaoticity.cxx:581
 AliChaoticity.cxx:582
 AliChaoticity.cxx:583
 AliChaoticity.cxx:584
 AliChaoticity.cxx:585
 AliChaoticity.cxx:586
 AliChaoticity.cxx:587
 AliChaoticity.cxx:588
 AliChaoticity.cxx:589
 AliChaoticity.cxx:590
 AliChaoticity.cxx:591
 AliChaoticity.cxx:592
 AliChaoticity.cxx:593
 AliChaoticity.cxx:594
 AliChaoticity.cxx:595
 AliChaoticity.cxx:596
 AliChaoticity.cxx:597
 AliChaoticity.cxx:598
 AliChaoticity.cxx:599
 AliChaoticity.cxx:600
 AliChaoticity.cxx:601
 AliChaoticity.cxx:602
 AliChaoticity.cxx:603
 AliChaoticity.cxx:604
 AliChaoticity.cxx:605
 AliChaoticity.cxx:606
 AliChaoticity.cxx:607
 AliChaoticity.cxx:608
 AliChaoticity.cxx:609
 AliChaoticity.cxx:610
 AliChaoticity.cxx:611
 AliChaoticity.cxx:612
 AliChaoticity.cxx:613
 AliChaoticity.cxx:614
 AliChaoticity.cxx:615
 AliChaoticity.cxx:616
 AliChaoticity.cxx:617
 AliChaoticity.cxx:618
 AliChaoticity.cxx:619
 AliChaoticity.cxx:620
 AliChaoticity.cxx:621
 AliChaoticity.cxx:622
 AliChaoticity.cxx:623
 AliChaoticity.cxx:624
 AliChaoticity.cxx:625
 AliChaoticity.cxx:626
 AliChaoticity.cxx:627
 AliChaoticity.cxx:628
 AliChaoticity.cxx:629
 AliChaoticity.cxx:630
 AliChaoticity.cxx:631
 AliChaoticity.cxx:632
 AliChaoticity.cxx:633
 AliChaoticity.cxx:634
 AliChaoticity.cxx:635
 AliChaoticity.cxx:636
 AliChaoticity.cxx:637
 AliChaoticity.cxx:638
 AliChaoticity.cxx:639
 AliChaoticity.cxx:640
 AliChaoticity.cxx:641
 AliChaoticity.cxx:642
 AliChaoticity.cxx:643
 AliChaoticity.cxx:644
 AliChaoticity.cxx:645
 AliChaoticity.cxx:646
 AliChaoticity.cxx:647
 AliChaoticity.cxx:648
 AliChaoticity.cxx:649
 AliChaoticity.cxx:650
 AliChaoticity.cxx:651
 AliChaoticity.cxx:652
 AliChaoticity.cxx:653
 AliChaoticity.cxx:654
 AliChaoticity.cxx:655
 AliChaoticity.cxx:656
 AliChaoticity.cxx:657
 AliChaoticity.cxx:658
 AliChaoticity.cxx:659
 AliChaoticity.cxx:660
 AliChaoticity.cxx:661
 AliChaoticity.cxx:662
 AliChaoticity.cxx:663
 AliChaoticity.cxx:664
 AliChaoticity.cxx:665
 AliChaoticity.cxx:666
 AliChaoticity.cxx:667
 AliChaoticity.cxx:668
 AliChaoticity.cxx:669
 AliChaoticity.cxx:670
 AliChaoticity.cxx:671
 AliChaoticity.cxx:672
 AliChaoticity.cxx:673
 AliChaoticity.cxx:674
 AliChaoticity.cxx:675
 AliChaoticity.cxx:676
 AliChaoticity.cxx:677
 AliChaoticity.cxx:678
 AliChaoticity.cxx:679
 AliChaoticity.cxx:680
 AliChaoticity.cxx:681
 AliChaoticity.cxx:682
 AliChaoticity.cxx:683
 AliChaoticity.cxx:684
 AliChaoticity.cxx:685
 AliChaoticity.cxx:686
 AliChaoticity.cxx:687
 AliChaoticity.cxx:688
 AliChaoticity.cxx:689
 AliChaoticity.cxx:690
 AliChaoticity.cxx:691
 AliChaoticity.cxx:692
 AliChaoticity.cxx:693
 AliChaoticity.cxx:694
 AliChaoticity.cxx:695
 AliChaoticity.cxx:696
 AliChaoticity.cxx:697
 AliChaoticity.cxx:698
 AliChaoticity.cxx:699
 AliChaoticity.cxx:700
 AliChaoticity.cxx:701
 AliChaoticity.cxx:702
 AliChaoticity.cxx:703
 AliChaoticity.cxx:704
 AliChaoticity.cxx:705
 AliChaoticity.cxx:706
 AliChaoticity.cxx:707
 AliChaoticity.cxx:708
 AliChaoticity.cxx:709
 AliChaoticity.cxx:710
 AliChaoticity.cxx:711
 AliChaoticity.cxx:712
 AliChaoticity.cxx:713
 AliChaoticity.cxx:714
 AliChaoticity.cxx:715
 AliChaoticity.cxx:716
 AliChaoticity.cxx:717
 AliChaoticity.cxx:718
 AliChaoticity.cxx:719
 AliChaoticity.cxx:720
 AliChaoticity.cxx:721
 AliChaoticity.cxx:722
 AliChaoticity.cxx:723
 AliChaoticity.cxx:724
 AliChaoticity.cxx:725
 AliChaoticity.cxx:726
 AliChaoticity.cxx:727
 AliChaoticity.cxx:728
 AliChaoticity.cxx:729
 AliChaoticity.cxx:730
 AliChaoticity.cxx:731
 AliChaoticity.cxx:732
 AliChaoticity.cxx:733
 AliChaoticity.cxx:734
 AliChaoticity.cxx:735
 AliChaoticity.cxx:736
 AliChaoticity.cxx:737
 AliChaoticity.cxx:738
 AliChaoticity.cxx:739
 AliChaoticity.cxx:740
 AliChaoticity.cxx:741
 AliChaoticity.cxx:742
 AliChaoticity.cxx:743
 AliChaoticity.cxx:744
 AliChaoticity.cxx:745
 AliChaoticity.cxx:746
 AliChaoticity.cxx:747
 AliChaoticity.cxx:748
 AliChaoticity.cxx:749
 AliChaoticity.cxx:750
 AliChaoticity.cxx:751
 AliChaoticity.cxx:752
 AliChaoticity.cxx:753
 AliChaoticity.cxx:754
 AliChaoticity.cxx:755
 AliChaoticity.cxx:756
 AliChaoticity.cxx:757
 AliChaoticity.cxx:758
 AliChaoticity.cxx:759
 AliChaoticity.cxx:760
 AliChaoticity.cxx:761
 AliChaoticity.cxx:762
 AliChaoticity.cxx:763
 AliChaoticity.cxx:764
 AliChaoticity.cxx:765
 AliChaoticity.cxx:766
 AliChaoticity.cxx:767
 AliChaoticity.cxx:768
 AliChaoticity.cxx:769
 AliChaoticity.cxx:770
 AliChaoticity.cxx:771
 AliChaoticity.cxx:772
 AliChaoticity.cxx:773
 AliChaoticity.cxx:774
 AliChaoticity.cxx:775
 AliChaoticity.cxx:776
 AliChaoticity.cxx:777
 AliChaoticity.cxx:778
 AliChaoticity.cxx:779
 AliChaoticity.cxx:780
 AliChaoticity.cxx:781
 AliChaoticity.cxx:782
 AliChaoticity.cxx:783
 AliChaoticity.cxx:784
 AliChaoticity.cxx:785
 AliChaoticity.cxx:786
 AliChaoticity.cxx:787
 AliChaoticity.cxx:788
 AliChaoticity.cxx:789
 AliChaoticity.cxx:790
 AliChaoticity.cxx:791
 AliChaoticity.cxx:792
 AliChaoticity.cxx:793
 AliChaoticity.cxx:794
 AliChaoticity.cxx:795
 AliChaoticity.cxx:796
 AliChaoticity.cxx:797
 AliChaoticity.cxx:798
 AliChaoticity.cxx:799
 AliChaoticity.cxx:800
 AliChaoticity.cxx:801
 AliChaoticity.cxx:802
 AliChaoticity.cxx:803
 AliChaoticity.cxx:804
 AliChaoticity.cxx:805
 AliChaoticity.cxx:806
 AliChaoticity.cxx:807
 AliChaoticity.cxx:808
 AliChaoticity.cxx:809
 AliChaoticity.cxx:810
 AliChaoticity.cxx:811
 AliChaoticity.cxx:812
 AliChaoticity.cxx:813
 AliChaoticity.cxx:814
 AliChaoticity.cxx:815
 AliChaoticity.cxx:816
 AliChaoticity.cxx:817
 AliChaoticity.cxx:818
 AliChaoticity.cxx:819
 AliChaoticity.cxx:820
 AliChaoticity.cxx:821
 AliChaoticity.cxx:822
 AliChaoticity.cxx:823
 AliChaoticity.cxx:824
 AliChaoticity.cxx:825
 AliChaoticity.cxx:826
 AliChaoticity.cxx:827
 AliChaoticity.cxx:828
 AliChaoticity.cxx:829
 AliChaoticity.cxx:830
 AliChaoticity.cxx:831
 AliChaoticity.cxx:832
 AliChaoticity.cxx:833
 AliChaoticity.cxx:834
 AliChaoticity.cxx:835
 AliChaoticity.cxx:836
 AliChaoticity.cxx:837
 AliChaoticity.cxx:838
 AliChaoticity.cxx:839
 AliChaoticity.cxx:840
 AliChaoticity.cxx:841
 AliChaoticity.cxx:842
 AliChaoticity.cxx:843
 AliChaoticity.cxx:844
 AliChaoticity.cxx:845
 AliChaoticity.cxx:846
 AliChaoticity.cxx:847
 AliChaoticity.cxx:848
 AliChaoticity.cxx:849
 AliChaoticity.cxx:850
 AliChaoticity.cxx:851
 AliChaoticity.cxx:852
 AliChaoticity.cxx:853
 AliChaoticity.cxx:854
 AliChaoticity.cxx:855
 AliChaoticity.cxx:856
 AliChaoticity.cxx:857
 AliChaoticity.cxx:858
 AliChaoticity.cxx:859
 AliChaoticity.cxx:860
 AliChaoticity.cxx:861
 AliChaoticity.cxx:862
 AliChaoticity.cxx:863
 AliChaoticity.cxx:864
 AliChaoticity.cxx:865
 AliChaoticity.cxx:866
 AliChaoticity.cxx:867
 AliChaoticity.cxx:868
 AliChaoticity.cxx:869
 AliChaoticity.cxx:870
 AliChaoticity.cxx:871
 AliChaoticity.cxx:872
 AliChaoticity.cxx:873
 AliChaoticity.cxx:874
 AliChaoticity.cxx:875
 AliChaoticity.cxx:876
 AliChaoticity.cxx:877
 AliChaoticity.cxx:878
 AliChaoticity.cxx:879
 AliChaoticity.cxx:880
 AliChaoticity.cxx:881
 AliChaoticity.cxx:882
 AliChaoticity.cxx:883
 AliChaoticity.cxx:884
 AliChaoticity.cxx:885
 AliChaoticity.cxx:886
 AliChaoticity.cxx:887
 AliChaoticity.cxx:888
 AliChaoticity.cxx:889
 AliChaoticity.cxx:890
 AliChaoticity.cxx:891
 AliChaoticity.cxx:892
 AliChaoticity.cxx:893
 AliChaoticity.cxx:894
 AliChaoticity.cxx:895
 AliChaoticity.cxx:896
 AliChaoticity.cxx:897
 AliChaoticity.cxx:898
 AliChaoticity.cxx:899
 AliChaoticity.cxx:900
 AliChaoticity.cxx:901
 AliChaoticity.cxx:902
 AliChaoticity.cxx:903
 AliChaoticity.cxx:904
 AliChaoticity.cxx:905
 AliChaoticity.cxx:906
 AliChaoticity.cxx:907
 AliChaoticity.cxx:908
 AliChaoticity.cxx:909
 AliChaoticity.cxx:910
 AliChaoticity.cxx:911
 AliChaoticity.cxx:912
 AliChaoticity.cxx:913
 AliChaoticity.cxx:914
 AliChaoticity.cxx:915
 AliChaoticity.cxx:916
 AliChaoticity.cxx:917
 AliChaoticity.cxx:918
 AliChaoticity.cxx:919
 AliChaoticity.cxx:920
 AliChaoticity.cxx:921
 AliChaoticity.cxx:922
 AliChaoticity.cxx:923
 AliChaoticity.cxx:924
 AliChaoticity.cxx:925
 AliChaoticity.cxx:926
 AliChaoticity.cxx:927
 AliChaoticity.cxx:928
 AliChaoticity.cxx:929
 AliChaoticity.cxx:930
 AliChaoticity.cxx:931
 AliChaoticity.cxx:932
 AliChaoticity.cxx:933
 AliChaoticity.cxx:934
 AliChaoticity.cxx:935
 AliChaoticity.cxx:936
 AliChaoticity.cxx:937
 AliChaoticity.cxx:938
 AliChaoticity.cxx:939
 AliChaoticity.cxx:940
 AliChaoticity.cxx:941
 AliChaoticity.cxx:942
 AliChaoticity.cxx:943
 AliChaoticity.cxx:944
 AliChaoticity.cxx:945
 AliChaoticity.cxx:946
 AliChaoticity.cxx:947
 AliChaoticity.cxx:948
 AliChaoticity.cxx:949
 AliChaoticity.cxx:950
 AliChaoticity.cxx:951
 AliChaoticity.cxx:952
 AliChaoticity.cxx:953
 AliChaoticity.cxx:954
 AliChaoticity.cxx:955
 AliChaoticity.cxx:956
 AliChaoticity.cxx:957
 AliChaoticity.cxx:958
 AliChaoticity.cxx:959
 AliChaoticity.cxx:960
 AliChaoticity.cxx:961
 AliChaoticity.cxx:962
 AliChaoticity.cxx:963
 AliChaoticity.cxx:964
 AliChaoticity.cxx:965
 AliChaoticity.cxx:966
 AliChaoticity.cxx:967
 AliChaoticity.cxx:968
 AliChaoticity.cxx:969
 AliChaoticity.cxx:970
 AliChaoticity.cxx:971
 AliChaoticity.cxx:972
 AliChaoticity.cxx:973
 AliChaoticity.cxx:974
 AliChaoticity.cxx:975
 AliChaoticity.cxx:976
 AliChaoticity.cxx:977
 AliChaoticity.cxx:978
 AliChaoticity.cxx:979
 AliChaoticity.cxx:980
 AliChaoticity.cxx:981
 AliChaoticity.cxx:982
 AliChaoticity.cxx:983
 AliChaoticity.cxx:984
 AliChaoticity.cxx:985
 AliChaoticity.cxx:986
 AliChaoticity.cxx:987
 AliChaoticity.cxx:988
 AliChaoticity.cxx:989
 AliChaoticity.cxx:990
 AliChaoticity.cxx:991
 AliChaoticity.cxx:992
 AliChaoticity.cxx:993
 AliChaoticity.cxx:994
 AliChaoticity.cxx:995
 AliChaoticity.cxx:996
 AliChaoticity.cxx:997
 AliChaoticity.cxx:998
 AliChaoticity.cxx:999
 AliChaoticity.cxx:1000
 AliChaoticity.cxx:1001
 AliChaoticity.cxx:1002
 AliChaoticity.cxx:1003
 AliChaoticity.cxx:1004
 AliChaoticity.cxx:1005
 AliChaoticity.cxx:1006
 AliChaoticity.cxx:1007
 AliChaoticity.cxx:1008
 AliChaoticity.cxx:1009
 AliChaoticity.cxx:1010
 AliChaoticity.cxx:1011
 AliChaoticity.cxx:1012
 AliChaoticity.cxx:1013
 AliChaoticity.cxx:1014
 AliChaoticity.cxx:1015
 AliChaoticity.cxx:1016
 AliChaoticity.cxx:1017
 AliChaoticity.cxx:1018
 AliChaoticity.cxx:1019
 AliChaoticity.cxx:1020
 AliChaoticity.cxx:1021
 AliChaoticity.cxx:1022
 AliChaoticity.cxx:1023
 AliChaoticity.cxx:1024
 AliChaoticity.cxx:1025
 AliChaoticity.cxx:1026
 AliChaoticity.cxx:1027
 AliChaoticity.cxx:1028
 AliChaoticity.cxx:1029
 AliChaoticity.cxx:1030
 AliChaoticity.cxx:1031
 AliChaoticity.cxx:1032
 AliChaoticity.cxx:1033
 AliChaoticity.cxx:1034
 AliChaoticity.cxx:1035
 AliChaoticity.cxx:1036
 AliChaoticity.cxx:1037
 AliChaoticity.cxx:1038
 AliChaoticity.cxx:1039
 AliChaoticity.cxx:1040
 AliChaoticity.cxx:1041
 AliChaoticity.cxx:1042
 AliChaoticity.cxx:1043
 AliChaoticity.cxx:1044
 AliChaoticity.cxx:1045
 AliChaoticity.cxx:1046
 AliChaoticity.cxx:1047
 AliChaoticity.cxx:1048
 AliChaoticity.cxx:1049
 AliChaoticity.cxx:1050
 AliChaoticity.cxx:1051
 AliChaoticity.cxx:1052
 AliChaoticity.cxx:1053
 AliChaoticity.cxx:1054
 AliChaoticity.cxx:1055
 AliChaoticity.cxx:1056
 AliChaoticity.cxx:1057
 AliChaoticity.cxx:1058
 AliChaoticity.cxx:1059
 AliChaoticity.cxx:1060
 AliChaoticity.cxx:1061
 AliChaoticity.cxx:1062
 AliChaoticity.cxx:1063
 AliChaoticity.cxx:1064
 AliChaoticity.cxx:1065
 AliChaoticity.cxx:1066
 AliChaoticity.cxx:1067
 AliChaoticity.cxx:1068
 AliChaoticity.cxx:1069
 AliChaoticity.cxx:1070
 AliChaoticity.cxx:1071
 AliChaoticity.cxx:1072
 AliChaoticity.cxx:1073
 AliChaoticity.cxx:1074
 AliChaoticity.cxx:1075
 AliChaoticity.cxx:1076
 AliChaoticity.cxx:1077
 AliChaoticity.cxx:1078
 AliChaoticity.cxx:1079
 AliChaoticity.cxx:1080
 AliChaoticity.cxx:1081
 AliChaoticity.cxx:1082
 AliChaoticity.cxx:1083
 AliChaoticity.cxx:1084
 AliChaoticity.cxx:1085
 AliChaoticity.cxx:1086
 AliChaoticity.cxx:1087
 AliChaoticity.cxx:1088
 AliChaoticity.cxx:1089
 AliChaoticity.cxx:1090
 AliChaoticity.cxx:1091
 AliChaoticity.cxx:1092
 AliChaoticity.cxx:1093
 AliChaoticity.cxx:1094
 AliChaoticity.cxx:1095
 AliChaoticity.cxx:1096
 AliChaoticity.cxx:1097
 AliChaoticity.cxx:1098
 AliChaoticity.cxx:1099
 AliChaoticity.cxx:1100
 AliChaoticity.cxx:1101
 AliChaoticity.cxx:1102
 AliChaoticity.cxx:1103
 AliChaoticity.cxx:1104
 AliChaoticity.cxx:1105
 AliChaoticity.cxx:1106
 AliChaoticity.cxx:1107
 AliChaoticity.cxx:1108
 AliChaoticity.cxx:1109
 AliChaoticity.cxx:1110
 AliChaoticity.cxx:1111
 AliChaoticity.cxx:1112
 AliChaoticity.cxx:1113
 AliChaoticity.cxx:1114
 AliChaoticity.cxx:1115
 AliChaoticity.cxx:1116
 AliChaoticity.cxx:1117
 AliChaoticity.cxx:1118
 AliChaoticity.cxx:1119
 AliChaoticity.cxx:1120
 AliChaoticity.cxx:1121
 AliChaoticity.cxx:1122
 AliChaoticity.cxx:1123
 AliChaoticity.cxx:1124
 AliChaoticity.cxx:1125
 AliChaoticity.cxx:1126
 AliChaoticity.cxx:1127
 AliChaoticity.cxx:1128
 AliChaoticity.cxx:1129
 AliChaoticity.cxx:1130
 AliChaoticity.cxx:1131
 AliChaoticity.cxx:1132
 AliChaoticity.cxx:1133
 AliChaoticity.cxx:1134
 AliChaoticity.cxx:1135
 AliChaoticity.cxx:1136
 AliChaoticity.cxx:1137
 AliChaoticity.cxx:1138
 AliChaoticity.cxx:1139
 AliChaoticity.cxx:1140
 AliChaoticity.cxx:1141
 AliChaoticity.cxx:1142
 AliChaoticity.cxx:1143
 AliChaoticity.cxx:1144
 AliChaoticity.cxx:1145
 AliChaoticity.cxx:1146
 AliChaoticity.cxx:1147
 AliChaoticity.cxx:1148
 AliChaoticity.cxx:1149
 AliChaoticity.cxx:1150
 AliChaoticity.cxx:1151
 AliChaoticity.cxx:1152
 AliChaoticity.cxx:1153
 AliChaoticity.cxx:1154
 AliChaoticity.cxx:1155
 AliChaoticity.cxx:1156
 AliChaoticity.cxx:1157
 AliChaoticity.cxx:1158
 AliChaoticity.cxx:1159
 AliChaoticity.cxx:1160
 AliChaoticity.cxx:1161
 AliChaoticity.cxx:1162
 AliChaoticity.cxx:1163
 AliChaoticity.cxx:1164
 AliChaoticity.cxx:1165
 AliChaoticity.cxx:1166
 AliChaoticity.cxx:1167
 AliChaoticity.cxx:1168
 AliChaoticity.cxx:1169
 AliChaoticity.cxx:1170
 AliChaoticity.cxx:1171
 AliChaoticity.cxx:1172
 AliChaoticity.cxx:1173
 AliChaoticity.cxx:1174
 AliChaoticity.cxx:1175
 AliChaoticity.cxx:1176
 AliChaoticity.cxx:1177
 AliChaoticity.cxx:1178
 AliChaoticity.cxx:1179
 AliChaoticity.cxx:1180
 AliChaoticity.cxx:1181
 AliChaoticity.cxx:1182
 AliChaoticity.cxx:1183
 AliChaoticity.cxx:1184
 AliChaoticity.cxx:1185
 AliChaoticity.cxx:1186
 AliChaoticity.cxx:1187
 AliChaoticity.cxx:1188
 AliChaoticity.cxx:1189
 AliChaoticity.cxx:1190
 AliChaoticity.cxx:1191
 AliChaoticity.cxx:1192
 AliChaoticity.cxx:1193
 AliChaoticity.cxx:1194
 AliChaoticity.cxx:1195
 AliChaoticity.cxx:1196
 AliChaoticity.cxx:1197
 AliChaoticity.cxx:1198
 AliChaoticity.cxx:1199
 AliChaoticity.cxx:1200
 AliChaoticity.cxx:1201
 AliChaoticity.cxx:1202
 AliChaoticity.cxx:1203
 AliChaoticity.cxx:1204
 AliChaoticity.cxx:1205
 AliChaoticity.cxx:1206
 AliChaoticity.cxx:1207
 AliChaoticity.cxx:1208
 AliChaoticity.cxx:1209
 AliChaoticity.cxx:1210
 AliChaoticity.cxx:1211
 AliChaoticity.cxx:1212
 AliChaoticity.cxx:1213
 AliChaoticity.cxx:1214
 AliChaoticity.cxx:1215
 AliChaoticity.cxx:1216
 AliChaoticity.cxx:1217
 AliChaoticity.cxx:1218
 AliChaoticity.cxx:1219
 AliChaoticity.cxx:1220
 AliChaoticity.cxx:1221
 AliChaoticity.cxx:1222
 AliChaoticity.cxx:1223
 AliChaoticity.cxx:1224
 AliChaoticity.cxx:1225
 AliChaoticity.cxx:1226
 AliChaoticity.cxx:1227
 AliChaoticity.cxx:1228
 AliChaoticity.cxx:1229
 AliChaoticity.cxx:1230
 AliChaoticity.cxx:1231
 AliChaoticity.cxx:1232
 AliChaoticity.cxx:1233
 AliChaoticity.cxx:1234
 AliChaoticity.cxx:1235
 AliChaoticity.cxx:1236
 AliChaoticity.cxx:1237
 AliChaoticity.cxx:1238
 AliChaoticity.cxx:1239
 AliChaoticity.cxx:1240
 AliChaoticity.cxx:1241
 AliChaoticity.cxx:1242
 AliChaoticity.cxx:1243
 AliChaoticity.cxx:1244
 AliChaoticity.cxx:1245
 AliChaoticity.cxx:1246
 AliChaoticity.cxx:1247
 AliChaoticity.cxx:1248
 AliChaoticity.cxx:1249
 AliChaoticity.cxx:1250
 AliChaoticity.cxx:1251
 AliChaoticity.cxx:1252
 AliChaoticity.cxx:1253
 AliChaoticity.cxx:1254
 AliChaoticity.cxx:1255
 AliChaoticity.cxx:1256
 AliChaoticity.cxx:1257
 AliChaoticity.cxx:1258
 AliChaoticity.cxx:1259
 AliChaoticity.cxx:1260
 AliChaoticity.cxx:1261
 AliChaoticity.cxx:1262
 AliChaoticity.cxx:1263
 AliChaoticity.cxx:1264
 AliChaoticity.cxx:1265
 AliChaoticity.cxx:1266
 AliChaoticity.cxx:1267
 AliChaoticity.cxx:1268
 AliChaoticity.cxx:1269
 AliChaoticity.cxx:1270
 AliChaoticity.cxx:1271
 AliChaoticity.cxx:1272
 AliChaoticity.cxx:1273
 AliChaoticity.cxx:1274
 AliChaoticity.cxx:1275
 AliChaoticity.cxx:1276
 AliChaoticity.cxx:1277
 AliChaoticity.cxx:1278
 AliChaoticity.cxx:1279
 AliChaoticity.cxx:1280
 AliChaoticity.cxx:1281
 AliChaoticity.cxx:1282
 AliChaoticity.cxx:1283
 AliChaoticity.cxx:1284
 AliChaoticity.cxx:1285
 AliChaoticity.cxx:1286
 AliChaoticity.cxx:1287
 AliChaoticity.cxx:1288
 AliChaoticity.cxx:1289
 AliChaoticity.cxx:1290
 AliChaoticity.cxx:1291
 AliChaoticity.cxx:1292
 AliChaoticity.cxx:1293
 AliChaoticity.cxx:1294
 AliChaoticity.cxx:1295
 AliChaoticity.cxx:1296
 AliChaoticity.cxx:1297
 AliChaoticity.cxx:1298
 AliChaoticity.cxx:1299
 AliChaoticity.cxx:1300
 AliChaoticity.cxx:1301
 AliChaoticity.cxx:1302
 AliChaoticity.cxx:1303
 AliChaoticity.cxx:1304
 AliChaoticity.cxx:1305
 AliChaoticity.cxx:1306
 AliChaoticity.cxx:1307
 AliChaoticity.cxx:1308
 AliChaoticity.cxx:1309
 AliChaoticity.cxx:1310
 AliChaoticity.cxx:1311
 AliChaoticity.cxx:1312
 AliChaoticity.cxx:1313
 AliChaoticity.cxx:1314
 AliChaoticity.cxx:1315
 AliChaoticity.cxx:1316
 AliChaoticity.cxx:1317
 AliChaoticity.cxx:1318
 AliChaoticity.cxx:1319
 AliChaoticity.cxx:1320
 AliChaoticity.cxx:1321
 AliChaoticity.cxx:1322
 AliChaoticity.cxx:1323
 AliChaoticity.cxx:1324
 AliChaoticity.cxx:1325
 AliChaoticity.cxx:1326
 AliChaoticity.cxx:1327
 AliChaoticity.cxx:1328
 AliChaoticity.cxx:1329
 AliChaoticity.cxx:1330
 AliChaoticity.cxx:1331
 AliChaoticity.cxx:1332
 AliChaoticity.cxx:1333
 AliChaoticity.cxx:1334
 AliChaoticity.cxx:1335
 AliChaoticity.cxx:1336
 AliChaoticity.cxx:1337
 AliChaoticity.cxx:1338
 AliChaoticity.cxx:1339
 AliChaoticity.cxx:1340
 AliChaoticity.cxx:1341
 AliChaoticity.cxx:1342
 AliChaoticity.cxx:1343
 AliChaoticity.cxx:1344
 AliChaoticity.cxx:1345
 AliChaoticity.cxx:1346
 AliChaoticity.cxx:1347
 AliChaoticity.cxx:1348
 AliChaoticity.cxx:1349
 AliChaoticity.cxx:1350
 AliChaoticity.cxx:1351
 AliChaoticity.cxx:1352
 AliChaoticity.cxx:1353
 AliChaoticity.cxx:1354
 AliChaoticity.cxx:1355
 AliChaoticity.cxx:1356
 AliChaoticity.cxx:1357
 AliChaoticity.cxx:1358
 AliChaoticity.cxx:1359
 AliChaoticity.cxx:1360
 AliChaoticity.cxx:1361
 AliChaoticity.cxx:1362
 AliChaoticity.cxx:1363
 AliChaoticity.cxx:1364
 AliChaoticity.cxx:1365
 AliChaoticity.cxx:1366
 AliChaoticity.cxx:1367
 AliChaoticity.cxx:1368
 AliChaoticity.cxx:1369
 AliChaoticity.cxx:1370
 AliChaoticity.cxx:1371
 AliChaoticity.cxx:1372
 AliChaoticity.cxx:1373
 AliChaoticity.cxx:1374
 AliChaoticity.cxx:1375
 AliChaoticity.cxx:1376
 AliChaoticity.cxx:1377
 AliChaoticity.cxx:1378
 AliChaoticity.cxx:1379
 AliChaoticity.cxx:1380
 AliChaoticity.cxx:1381
 AliChaoticity.cxx:1382
 AliChaoticity.cxx:1383
 AliChaoticity.cxx:1384
 AliChaoticity.cxx:1385
 AliChaoticity.cxx:1386
 AliChaoticity.cxx:1387
 AliChaoticity.cxx:1388
 AliChaoticity.cxx:1389
 AliChaoticity.cxx:1390
 AliChaoticity.cxx:1391
 AliChaoticity.cxx:1392
 AliChaoticity.cxx:1393
 AliChaoticity.cxx:1394
 AliChaoticity.cxx:1395
 AliChaoticity.cxx:1396
 AliChaoticity.cxx:1397
 AliChaoticity.cxx:1398
 AliChaoticity.cxx:1399
 AliChaoticity.cxx:1400
 AliChaoticity.cxx:1401
 AliChaoticity.cxx:1402
 AliChaoticity.cxx:1403
 AliChaoticity.cxx:1404
 AliChaoticity.cxx:1405
 AliChaoticity.cxx:1406
 AliChaoticity.cxx:1407
 AliChaoticity.cxx:1408
 AliChaoticity.cxx:1409
 AliChaoticity.cxx:1410
 AliChaoticity.cxx:1411
 AliChaoticity.cxx:1412
 AliChaoticity.cxx:1413
 AliChaoticity.cxx:1414
 AliChaoticity.cxx:1415
 AliChaoticity.cxx:1416
 AliChaoticity.cxx:1417
 AliChaoticity.cxx:1418
 AliChaoticity.cxx:1419
 AliChaoticity.cxx:1420
 AliChaoticity.cxx:1421
 AliChaoticity.cxx:1422
 AliChaoticity.cxx:1423
 AliChaoticity.cxx:1424
 AliChaoticity.cxx:1425
 AliChaoticity.cxx:1426
 AliChaoticity.cxx:1427
 AliChaoticity.cxx:1428
 AliChaoticity.cxx:1429
 AliChaoticity.cxx:1430
 AliChaoticity.cxx:1431
 AliChaoticity.cxx:1432
 AliChaoticity.cxx:1433
 AliChaoticity.cxx:1434
 AliChaoticity.cxx:1435
 AliChaoticity.cxx:1436
 AliChaoticity.cxx:1437
 AliChaoticity.cxx:1438
 AliChaoticity.cxx:1439
 AliChaoticity.cxx:1440
 AliChaoticity.cxx:1441
 AliChaoticity.cxx:1442
 AliChaoticity.cxx:1443
 AliChaoticity.cxx:1444
 AliChaoticity.cxx:1445
 AliChaoticity.cxx:1446
 AliChaoticity.cxx:1447
 AliChaoticity.cxx:1448
 AliChaoticity.cxx:1449
 AliChaoticity.cxx:1450
 AliChaoticity.cxx:1451
 AliChaoticity.cxx:1452
 AliChaoticity.cxx:1453
 AliChaoticity.cxx:1454
 AliChaoticity.cxx:1455
 AliChaoticity.cxx:1456
 AliChaoticity.cxx:1457
 AliChaoticity.cxx:1458
 AliChaoticity.cxx:1459
 AliChaoticity.cxx:1460
 AliChaoticity.cxx:1461
 AliChaoticity.cxx:1462
 AliChaoticity.cxx:1463
 AliChaoticity.cxx:1464
 AliChaoticity.cxx:1465
 AliChaoticity.cxx:1466
 AliChaoticity.cxx:1467
 AliChaoticity.cxx:1468
 AliChaoticity.cxx:1469
 AliChaoticity.cxx:1470
 AliChaoticity.cxx:1471
 AliChaoticity.cxx:1472
 AliChaoticity.cxx:1473
 AliChaoticity.cxx:1474
 AliChaoticity.cxx:1475
 AliChaoticity.cxx:1476
 AliChaoticity.cxx:1477
 AliChaoticity.cxx:1478
 AliChaoticity.cxx:1479
 AliChaoticity.cxx:1480
 AliChaoticity.cxx:1481
 AliChaoticity.cxx:1482
 AliChaoticity.cxx:1483
 AliChaoticity.cxx:1484
 AliChaoticity.cxx:1485
 AliChaoticity.cxx:1486
 AliChaoticity.cxx:1487
 AliChaoticity.cxx:1488
 AliChaoticity.cxx:1489
 AliChaoticity.cxx:1490
 AliChaoticity.cxx:1491
 AliChaoticity.cxx:1492
 AliChaoticity.cxx:1493
 AliChaoticity.cxx:1494
 AliChaoticity.cxx:1495
 AliChaoticity.cxx:1496
 AliChaoticity.cxx:1497
 AliChaoticity.cxx:1498
 AliChaoticity.cxx:1499
 AliChaoticity.cxx:1500
 AliChaoticity.cxx:1501
 AliChaoticity.cxx:1502
 AliChaoticity.cxx:1503
 AliChaoticity.cxx:1504
 AliChaoticity.cxx:1505
 AliChaoticity.cxx:1506
 AliChaoticity.cxx:1507
 AliChaoticity.cxx:1508
 AliChaoticity.cxx:1509
 AliChaoticity.cxx:1510
 AliChaoticity.cxx:1511
 AliChaoticity.cxx:1512
 AliChaoticity.cxx:1513
 AliChaoticity.cxx:1514
 AliChaoticity.cxx:1515
 AliChaoticity.cxx:1516
 AliChaoticity.cxx:1517
 AliChaoticity.cxx:1518
 AliChaoticity.cxx:1519
 AliChaoticity.cxx:1520
 AliChaoticity.cxx:1521
 AliChaoticity.cxx:1522
 AliChaoticity.cxx:1523
 AliChaoticity.cxx:1524
 AliChaoticity.cxx:1525
 AliChaoticity.cxx:1526
 AliChaoticity.cxx:1527
 AliChaoticity.cxx:1528
 AliChaoticity.cxx:1529
 AliChaoticity.cxx:1530
 AliChaoticity.cxx:1531
 AliChaoticity.cxx:1532
 AliChaoticity.cxx:1533
 AliChaoticity.cxx:1534
 AliChaoticity.cxx:1535
 AliChaoticity.cxx:1536
 AliChaoticity.cxx:1537
 AliChaoticity.cxx:1538
 AliChaoticity.cxx:1539
 AliChaoticity.cxx:1540
 AliChaoticity.cxx:1541
 AliChaoticity.cxx:1542
 AliChaoticity.cxx:1543
 AliChaoticity.cxx:1544
 AliChaoticity.cxx:1545
 AliChaoticity.cxx:1546
 AliChaoticity.cxx:1547
 AliChaoticity.cxx:1548
 AliChaoticity.cxx:1549
 AliChaoticity.cxx:1550
 AliChaoticity.cxx:1551
 AliChaoticity.cxx:1552
 AliChaoticity.cxx:1553
 AliChaoticity.cxx:1554
 AliChaoticity.cxx:1555
 AliChaoticity.cxx:1556
 AliChaoticity.cxx:1557
 AliChaoticity.cxx:1558
 AliChaoticity.cxx:1559
 AliChaoticity.cxx:1560
 AliChaoticity.cxx:1561
 AliChaoticity.cxx:1562
 AliChaoticity.cxx:1563
 AliChaoticity.cxx:1564
 AliChaoticity.cxx:1565
 AliChaoticity.cxx:1566
 AliChaoticity.cxx:1567
 AliChaoticity.cxx:1568
 AliChaoticity.cxx:1569
 AliChaoticity.cxx:1570
 AliChaoticity.cxx:1571
 AliChaoticity.cxx:1572
 AliChaoticity.cxx:1573
 AliChaoticity.cxx:1574
 AliChaoticity.cxx:1575
 AliChaoticity.cxx:1576
 AliChaoticity.cxx:1577
 AliChaoticity.cxx:1578
 AliChaoticity.cxx:1579
 AliChaoticity.cxx:1580
 AliChaoticity.cxx:1581
 AliChaoticity.cxx:1582
 AliChaoticity.cxx:1583
 AliChaoticity.cxx:1584
 AliChaoticity.cxx:1585
 AliChaoticity.cxx:1586
 AliChaoticity.cxx:1587
 AliChaoticity.cxx:1588
 AliChaoticity.cxx:1589
 AliChaoticity.cxx:1590
 AliChaoticity.cxx:1591
 AliChaoticity.cxx:1592
 AliChaoticity.cxx:1593
 AliChaoticity.cxx:1594
 AliChaoticity.cxx:1595
 AliChaoticity.cxx:1596
 AliChaoticity.cxx:1597
 AliChaoticity.cxx:1598
 AliChaoticity.cxx:1599
 AliChaoticity.cxx:1600
 AliChaoticity.cxx:1601
 AliChaoticity.cxx:1602
 AliChaoticity.cxx:1603
 AliChaoticity.cxx:1604
 AliChaoticity.cxx:1605
 AliChaoticity.cxx:1606
 AliChaoticity.cxx:1607
 AliChaoticity.cxx:1608
 AliChaoticity.cxx:1609
 AliChaoticity.cxx:1610
 AliChaoticity.cxx:1611
 AliChaoticity.cxx:1612
 AliChaoticity.cxx:1613
 AliChaoticity.cxx:1614
 AliChaoticity.cxx:1615
 AliChaoticity.cxx:1616
 AliChaoticity.cxx:1617
 AliChaoticity.cxx:1618
 AliChaoticity.cxx:1619
 AliChaoticity.cxx:1620
 AliChaoticity.cxx:1621
 AliChaoticity.cxx:1622
 AliChaoticity.cxx:1623
 AliChaoticity.cxx:1624
 AliChaoticity.cxx:1625
 AliChaoticity.cxx:1626
 AliChaoticity.cxx:1627
 AliChaoticity.cxx:1628
 AliChaoticity.cxx:1629
 AliChaoticity.cxx:1630
 AliChaoticity.cxx:1631
 AliChaoticity.cxx:1632
 AliChaoticity.cxx:1633
 AliChaoticity.cxx:1634
 AliChaoticity.cxx:1635
 AliChaoticity.cxx:1636
 AliChaoticity.cxx:1637
 AliChaoticity.cxx:1638
 AliChaoticity.cxx:1639
 AliChaoticity.cxx:1640
 AliChaoticity.cxx:1641
 AliChaoticity.cxx:1642
 AliChaoticity.cxx:1643
 AliChaoticity.cxx:1644
 AliChaoticity.cxx:1645
 AliChaoticity.cxx:1646
 AliChaoticity.cxx:1647
 AliChaoticity.cxx:1648
 AliChaoticity.cxx:1649
 AliChaoticity.cxx:1650
 AliChaoticity.cxx:1651
 AliChaoticity.cxx:1652
 AliChaoticity.cxx:1653
 AliChaoticity.cxx:1654
 AliChaoticity.cxx:1655
 AliChaoticity.cxx:1656
 AliChaoticity.cxx:1657
 AliChaoticity.cxx:1658
 AliChaoticity.cxx:1659
 AliChaoticity.cxx:1660
 AliChaoticity.cxx:1661
 AliChaoticity.cxx:1662
 AliChaoticity.cxx:1663
 AliChaoticity.cxx:1664
 AliChaoticity.cxx:1665
 AliChaoticity.cxx:1666
 AliChaoticity.cxx:1667
 AliChaoticity.cxx:1668
 AliChaoticity.cxx:1669
 AliChaoticity.cxx:1670
 AliChaoticity.cxx:1671
 AliChaoticity.cxx:1672
 AliChaoticity.cxx:1673
 AliChaoticity.cxx:1674
 AliChaoticity.cxx:1675
 AliChaoticity.cxx:1676
 AliChaoticity.cxx:1677
 AliChaoticity.cxx:1678
 AliChaoticity.cxx:1679
 AliChaoticity.cxx:1680
 AliChaoticity.cxx:1681
 AliChaoticity.cxx:1682
 AliChaoticity.cxx:1683
 AliChaoticity.cxx:1684
 AliChaoticity.cxx:1685
 AliChaoticity.cxx:1686
 AliChaoticity.cxx:1687
 AliChaoticity.cxx:1688
 AliChaoticity.cxx:1689
 AliChaoticity.cxx:1690
 AliChaoticity.cxx:1691
 AliChaoticity.cxx:1692
 AliChaoticity.cxx:1693
 AliChaoticity.cxx:1694
 AliChaoticity.cxx:1695
 AliChaoticity.cxx:1696
 AliChaoticity.cxx:1697
 AliChaoticity.cxx:1698
 AliChaoticity.cxx:1699
 AliChaoticity.cxx:1700
 AliChaoticity.cxx:1701
 AliChaoticity.cxx:1702
 AliChaoticity.cxx:1703
 AliChaoticity.cxx:1704
 AliChaoticity.cxx:1705
 AliChaoticity.cxx:1706
 AliChaoticity.cxx:1707
 AliChaoticity.cxx:1708
 AliChaoticity.cxx:1709
 AliChaoticity.cxx:1710
 AliChaoticity.cxx:1711
 AliChaoticity.cxx:1712
 AliChaoticity.cxx:1713
 AliChaoticity.cxx:1714
 AliChaoticity.cxx:1715
 AliChaoticity.cxx:1716
 AliChaoticity.cxx:1717
 AliChaoticity.cxx:1718
 AliChaoticity.cxx:1719
 AliChaoticity.cxx:1720
 AliChaoticity.cxx:1721
 AliChaoticity.cxx:1722
 AliChaoticity.cxx:1723
 AliChaoticity.cxx:1724
 AliChaoticity.cxx:1725
 AliChaoticity.cxx:1726
 AliChaoticity.cxx:1727
 AliChaoticity.cxx:1728
 AliChaoticity.cxx:1729
 AliChaoticity.cxx:1730
 AliChaoticity.cxx:1731
 AliChaoticity.cxx:1732
 AliChaoticity.cxx:1733
 AliChaoticity.cxx:1734
 AliChaoticity.cxx:1735
 AliChaoticity.cxx:1736
 AliChaoticity.cxx:1737
 AliChaoticity.cxx:1738
 AliChaoticity.cxx:1739
 AliChaoticity.cxx:1740
 AliChaoticity.cxx:1741
 AliChaoticity.cxx:1742
 AliChaoticity.cxx:1743
 AliChaoticity.cxx:1744
 AliChaoticity.cxx:1745
 AliChaoticity.cxx:1746
 AliChaoticity.cxx:1747
 AliChaoticity.cxx:1748
 AliChaoticity.cxx:1749
 AliChaoticity.cxx:1750
 AliChaoticity.cxx:1751
 AliChaoticity.cxx:1752
 AliChaoticity.cxx:1753
 AliChaoticity.cxx:1754
 AliChaoticity.cxx:1755
 AliChaoticity.cxx:1756
 AliChaoticity.cxx:1757
 AliChaoticity.cxx:1758
 AliChaoticity.cxx:1759
 AliChaoticity.cxx:1760
 AliChaoticity.cxx:1761
 AliChaoticity.cxx:1762
 AliChaoticity.cxx:1763
 AliChaoticity.cxx:1764
 AliChaoticity.cxx:1765
 AliChaoticity.cxx:1766
 AliChaoticity.cxx:1767
 AliChaoticity.cxx:1768
 AliChaoticity.cxx:1769
 AliChaoticity.cxx:1770
 AliChaoticity.cxx:1771
 AliChaoticity.cxx:1772
 AliChaoticity.cxx:1773
 AliChaoticity.cxx:1774
 AliChaoticity.cxx:1775
 AliChaoticity.cxx:1776
 AliChaoticity.cxx:1777
 AliChaoticity.cxx:1778
 AliChaoticity.cxx:1779
 AliChaoticity.cxx:1780
 AliChaoticity.cxx:1781
 AliChaoticity.cxx:1782
 AliChaoticity.cxx:1783
 AliChaoticity.cxx:1784
 AliChaoticity.cxx:1785
 AliChaoticity.cxx:1786
 AliChaoticity.cxx:1787
 AliChaoticity.cxx:1788
 AliChaoticity.cxx:1789
 AliChaoticity.cxx:1790
 AliChaoticity.cxx:1791
 AliChaoticity.cxx:1792
 AliChaoticity.cxx:1793
 AliChaoticity.cxx:1794
 AliChaoticity.cxx:1795
 AliChaoticity.cxx:1796
 AliChaoticity.cxx:1797
 AliChaoticity.cxx:1798
 AliChaoticity.cxx:1799
 AliChaoticity.cxx:1800
 AliChaoticity.cxx:1801
 AliChaoticity.cxx:1802
 AliChaoticity.cxx:1803
 AliChaoticity.cxx:1804
 AliChaoticity.cxx:1805
 AliChaoticity.cxx:1806
 AliChaoticity.cxx:1807
 AliChaoticity.cxx:1808
 AliChaoticity.cxx:1809
 AliChaoticity.cxx:1810
 AliChaoticity.cxx:1811
 AliChaoticity.cxx:1812
 AliChaoticity.cxx:1813
 AliChaoticity.cxx:1814
 AliChaoticity.cxx:1815
 AliChaoticity.cxx:1816
 AliChaoticity.cxx:1817
 AliChaoticity.cxx:1818
 AliChaoticity.cxx:1819
 AliChaoticity.cxx:1820
 AliChaoticity.cxx:1821
 AliChaoticity.cxx:1822
 AliChaoticity.cxx:1823
 AliChaoticity.cxx:1824
 AliChaoticity.cxx:1825
 AliChaoticity.cxx:1826
 AliChaoticity.cxx:1827
 AliChaoticity.cxx:1828
 AliChaoticity.cxx:1829
 AliChaoticity.cxx:1830
 AliChaoticity.cxx:1831
 AliChaoticity.cxx:1832
 AliChaoticity.cxx:1833
 AliChaoticity.cxx:1834
 AliChaoticity.cxx:1835
 AliChaoticity.cxx:1836
 AliChaoticity.cxx:1837
 AliChaoticity.cxx:1838
 AliChaoticity.cxx:1839
 AliChaoticity.cxx:1840
 AliChaoticity.cxx:1841
 AliChaoticity.cxx:1842
 AliChaoticity.cxx:1843
 AliChaoticity.cxx:1844
 AliChaoticity.cxx:1845
 AliChaoticity.cxx:1846
 AliChaoticity.cxx:1847
 AliChaoticity.cxx:1848
 AliChaoticity.cxx:1849
 AliChaoticity.cxx:1850
 AliChaoticity.cxx:1851
 AliChaoticity.cxx:1852
 AliChaoticity.cxx:1853
 AliChaoticity.cxx:1854
 AliChaoticity.cxx:1855
 AliChaoticity.cxx:1856
 AliChaoticity.cxx:1857
 AliChaoticity.cxx:1858
 AliChaoticity.cxx:1859
 AliChaoticity.cxx:1860
 AliChaoticity.cxx:1861
 AliChaoticity.cxx:1862
 AliChaoticity.cxx:1863
 AliChaoticity.cxx:1864
 AliChaoticity.cxx:1865
 AliChaoticity.cxx:1866
 AliChaoticity.cxx:1867
 AliChaoticity.cxx:1868
 AliChaoticity.cxx:1869
 AliChaoticity.cxx:1870
 AliChaoticity.cxx:1871
 AliChaoticity.cxx:1872
 AliChaoticity.cxx:1873
 AliChaoticity.cxx:1874
 AliChaoticity.cxx:1875
 AliChaoticity.cxx:1876
 AliChaoticity.cxx:1877
 AliChaoticity.cxx:1878
 AliChaoticity.cxx:1879
 AliChaoticity.cxx:1880
 AliChaoticity.cxx:1881
 AliChaoticity.cxx:1882
 AliChaoticity.cxx:1883
 AliChaoticity.cxx:1884
 AliChaoticity.cxx:1885
 AliChaoticity.cxx:1886
 AliChaoticity.cxx:1887
 AliChaoticity.cxx:1888
 AliChaoticity.cxx:1889
 AliChaoticity.cxx:1890
 AliChaoticity.cxx:1891
 AliChaoticity.cxx:1892
 AliChaoticity.cxx:1893
 AliChaoticity.cxx:1894
 AliChaoticity.cxx:1895
 AliChaoticity.cxx:1896
 AliChaoticity.cxx:1897
 AliChaoticity.cxx:1898
 AliChaoticity.cxx:1899
 AliChaoticity.cxx:1900
 AliChaoticity.cxx:1901
 AliChaoticity.cxx:1902
 AliChaoticity.cxx:1903
 AliChaoticity.cxx:1904
 AliChaoticity.cxx:1905
 AliChaoticity.cxx:1906
 AliChaoticity.cxx:1907
 AliChaoticity.cxx:1908
 AliChaoticity.cxx:1909
 AliChaoticity.cxx:1910
 AliChaoticity.cxx:1911
 AliChaoticity.cxx:1912
 AliChaoticity.cxx:1913
 AliChaoticity.cxx:1914
 AliChaoticity.cxx:1915
 AliChaoticity.cxx:1916
 AliChaoticity.cxx:1917
 AliChaoticity.cxx:1918
 AliChaoticity.cxx:1919
 AliChaoticity.cxx:1920
 AliChaoticity.cxx:1921
 AliChaoticity.cxx:1922
 AliChaoticity.cxx:1923
 AliChaoticity.cxx:1924
 AliChaoticity.cxx:1925
 AliChaoticity.cxx:1926
 AliChaoticity.cxx:1927
 AliChaoticity.cxx:1928
 AliChaoticity.cxx:1929
 AliChaoticity.cxx:1930
 AliChaoticity.cxx:1931
 AliChaoticity.cxx:1932
 AliChaoticity.cxx:1933
 AliChaoticity.cxx:1934
 AliChaoticity.cxx:1935
 AliChaoticity.cxx:1936
 AliChaoticity.cxx:1937
 AliChaoticity.cxx:1938
 AliChaoticity.cxx:1939
 AliChaoticity.cxx:1940
 AliChaoticity.cxx:1941
 AliChaoticity.cxx:1942
 AliChaoticity.cxx:1943
 AliChaoticity.cxx:1944
 AliChaoticity.cxx:1945
 AliChaoticity.cxx:1946
 AliChaoticity.cxx:1947
 AliChaoticity.cxx:1948
 AliChaoticity.cxx:1949
 AliChaoticity.cxx:1950
 AliChaoticity.cxx:1951
 AliChaoticity.cxx:1952
 AliChaoticity.cxx:1953
 AliChaoticity.cxx:1954
 AliChaoticity.cxx:1955
 AliChaoticity.cxx:1956
 AliChaoticity.cxx:1957
 AliChaoticity.cxx:1958
 AliChaoticity.cxx:1959
 AliChaoticity.cxx:1960
 AliChaoticity.cxx:1961
 AliChaoticity.cxx:1962
 AliChaoticity.cxx:1963
 AliChaoticity.cxx:1964
 AliChaoticity.cxx:1965
 AliChaoticity.cxx:1966
 AliChaoticity.cxx:1967
 AliChaoticity.cxx:1968
 AliChaoticity.cxx:1969
 AliChaoticity.cxx:1970
 AliChaoticity.cxx:1971
 AliChaoticity.cxx:1972
 AliChaoticity.cxx:1973
 AliChaoticity.cxx:1974
 AliChaoticity.cxx:1975
 AliChaoticity.cxx:1976
 AliChaoticity.cxx:1977
 AliChaoticity.cxx:1978
 AliChaoticity.cxx:1979
 AliChaoticity.cxx:1980
 AliChaoticity.cxx:1981
 AliChaoticity.cxx:1982
 AliChaoticity.cxx:1983
 AliChaoticity.cxx:1984
 AliChaoticity.cxx:1985
 AliChaoticity.cxx:1986
 AliChaoticity.cxx:1987
 AliChaoticity.cxx:1988
 AliChaoticity.cxx:1989
 AliChaoticity.cxx:1990
 AliChaoticity.cxx:1991
 AliChaoticity.cxx:1992
 AliChaoticity.cxx:1993
 AliChaoticity.cxx:1994
 AliChaoticity.cxx:1995
 AliChaoticity.cxx:1996
 AliChaoticity.cxx:1997
 AliChaoticity.cxx:1998
 AliChaoticity.cxx:1999
 AliChaoticity.cxx:2000
 AliChaoticity.cxx:2001
 AliChaoticity.cxx:2002
 AliChaoticity.cxx:2003
 AliChaoticity.cxx:2004
 AliChaoticity.cxx:2005
 AliChaoticity.cxx:2006
 AliChaoticity.cxx:2007
 AliChaoticity.cxx:2008
 AliChaoticity.cxx:2009
 AliChaoticity.cxx:2010
 AliChaoticity.cxx:2011
 AliChaoticity.cxx:2012
 AliChaoticity.cxx:2013
 AliChaoticity.cxx:2014
 AliChaoticity.cxx:2015
 AliChaoticity.cxx:2016
 AliChaoticity.cxx:2017
 AliChaoticity.cxx:2018
 AliChaoticity.cxx:2019
 AliChaoticity.cxx:2020
 AliChaoticity.cxx:2021
 AliChaoticity.cxx:2022
 AliChaoticity.cxx:2023
 AliChaoticity.cxx:2024
 AliChaoticity.cxx:2025
 AliChaoticity.cxx:2026
 AliChaoticity.cxx:2027
 AliChaoticity.cxx:2028
 AliChaoticity.cxx:2029
 AliChaoticity.cxx:2030
 AliChaoticity.cxx:2031
 AliChaoticity.cxx:2032
 AliChaoticity.cxx:2033
 AliChaoticity.cxx:2034
 AliChaoticity.cxx:2035
 AliChaoticity.cxx:2036
 AliChaoticity.cxx:2037
 AliChaoticity.cxx:2038
 AliChaoticity.cxx:2039
 AliChaoticity.cxx:2040
 AliChaoticity.cxx:2041
 AliChaoticity.cxx:2042
 AliChaoticity.cxx:2043
 AliChaoticity.cxx:2044
 AliChaoticity.cxx:2045
 AliChaoticity.cxx:2046
 AliChaoticity.cxx:2047
 AliChaoticity.cxx:2048
 AliChaoticity.cxx:2049
 AliChaoticity.cxx:2050
 AliChaoticity.cxx:2051
 AliChaoticity.cxx:2052
 AliChaoticity.cxx:2053
 AliChaoticity.cxx:2054
 AliChaoticity.cxx:2055
 AliChaoticity.cxx:2056
 AliChaoticity.cxx:2057
 AliChaoticity.cxx:2058
 AliChaoticity.cxx:2059
 AliChaoticity.cxx:2060
 AliChaoticity.cxx:2061
 AliChaoticity.cxx:2062
 AliChaoticity.cxx:2063
 AliChaoticity.cxx:2064
 AliChaoticity.cxx:2065
 AliChaoticity.cxx:2066
 AliChaoticity.cxx:2067
 AliChaoticity.cxx:2068
 AliChaoticity.cxx:2069
 AliChaoticity.cxx:2070
 AliChaoticity.cxx:2071
 AliChaoticity.cxx:2072
 AliChaoticity.cxx:2073
 AliChaoticity.cxx:2074
 AliChaoticity.cxx:2075
 AliChaoticity.cxx:2076
 AliChaoticity.cxx:2077
 AliChaoticity.cxx:2078
 AliChaoticity.cxx:2079
 AliChaoticity.cxx:2080
 AliChaoticity.cxx:2081
 AliChaoticity.cxx:2082
 AliChaoticity.cxx:2083
 AliChaoticity.cxx:2084
 AliChaoticity.cxx:2085
 AliChaoticity.cxx:2086
 AliChaoticity.cxx:2087
 AliChaoticity.cxx:2088
 AliChaoticity.cxx:2089
 AliChaoticity.cxx:2090
 AliChaoticity.cxx:2091
 AliChaoticity.cxx:2092
 AliChaoticity.cxx:2093
 AliChaoticity.cxx:2094
 AliChaoticity.cxx:2095
 AliChaoticity.cxx:2096
 AliChaoticity.cxx:2097
 AliChaoticity.cxx:2098
 AliChaoticity.cxx:2099
 AliChaoticity.cxx:2100
 AliChaoticity.cxx:2101
 AliChaoticity.cxx:2102
 AliChaoticity.cxx:2103
 AliChaoticity.cxx:2104
 AliChaoticity.cxx:2105
 AliChaoticity.cxx:2106
 AliChaoticity.cxx:2107
 AliChaoticity.cxx:2108
 AliChaoticity.cxx:2109
 AliChaoticity.cxx:2110
 AliChaoticity.cxx:2111
 AliChaoticity.cxx:2112
 AliChaoticity.cxx:2113
 AliChaoticity.cxx:2114
 AliChaoticity.cxx:2115
 AliChaoticity.cxx:2116
 AliChaoticity.cxx:2117
 AliChaoticity.cxx:2118
 AliChaoticity.cxx:2119
 AliChaoticity.cxx:2120
 AliChaoticity.cxx:2121
 AliChaoticity.cxx:2122
 AliChaoticity.cxx:2123
 AliChaoticity.cxx:2124
 AliChaoticity.cxx:2125
 AliChaoticity.cxx:2126
 AliChaoticity.cxx:2127
 AliChaoticity.cxx:2128
 AliChaoticity.cxx:2129
 AliChaoticity.cxx:2130
 AliChaoticity.cxx:2131
 AliChaoticity.cxx:2132
 AliChaoticity.cxx:2133
 AliChaoticity.cxx:2134
 AliChaoticity.cxx:2135
 AliChaoticity.cxx:2136
 AliChaoticity.cxx:2137
 AliChaoticity.cxx:2138
 AliChaoticity.cxx:2139
 AliChaoticity.cxx:2140
 AliChaoticity.cxx:2141
 AliChaoticity.cxx:2142
 AliChaoticity.cxx:2143
 AliChaoticity.cxx:2144
 AliChaoticity.cxx:2145
 AliChaoticity.cxx:2146
 AliChaoticity.cxx:2147
 AliChaoticity.cxx:2148
 AliChaoticity.cxx:2149
 AliChaoticity.cxx:2150
 AliChaoticity.cxx:2151
 AliChaoticity.cxx:2152
 AliChaoticity.cxx:2153
 AliChaoticity.cxx:2154
 AliChaoticity.cxx:2155
 AliChaoticity.cxx:2156
 AliChaoticity.cxx:2157
 AliChaoticity.cxx:2158
 AliChaoticity.cxx:2159
 AliChaoticity.cxx:2160
 AliChaoticity.cxx:2161
 AliChaoticity.cxx:2162
 AliChaoticity.cxx:2163
 AliChaoticity.cxx:2164
 AliChaoticity.cxx:2165
 AliChaoticity.cxx:2166
 AliChaoticity.cxx:2167
 AliChaoticity.cxx:2168
 AliChaoticity.cxx:2169
 AliChaoticity.cxx:2170
 AliChaoticity.cxx:2171
 AliChaoticity.cxx:2172
 AliChaoticity.cxx:2173
 AliChaoticity.cxx:2174
 AliChaoticity.cxx:2175
 AliChaoticity.cxx:2176
 AliChaoticity.cxx:2177
 AliChaoticity.cxx:2178
 AliChaoticity.cxx:2179
 AliChaoticity.cxx:2180
 AliChaoticity.cxx:2181
 AliChaoticity.cxx:2182
 AliChaoticity.cxx:2183
 AliChaoticity.cxx:2184
 AliChaoticity.cxx:2185
 AliChaoticity.cxx:2186
 AliChaoticity.cxx:2187
 AliChaoticity.cxx:2188
 AliChaoticity.cxx:2189
 AliChaoticity.cxx:2190
 AliChaoticity.cxx:2191
 AliChaoticity.cxx:2192
 AliChaoticity.cxx:2193
 AliChaoticity.cxx:2194
 AliChaoticity.cxx:2195
 AliChaoticity.cxx:2196
 AliChaoticity.cxx:2197
 AliChaoticity.cxx:2198
 AliChaoticity.cxx:2199
 AliChaoticity.cxx:2200
 AliChaoticity.cxx:2201
 AliChaoticity.cxx:2202
 AliChaoticity.cxx:2203
 AliChaoticity.cxx:2204
 AliChaoticity.cxx:2205
 AliChaoticity.cxx:2206
 AliChaoticity.cxx:2207
 AliChaoticity.cxx:2208
 AliChaoticity.cxx:2209
 AliChaoticity.cxx:2210
 AliChaoticity.cxx:2211
 AliChaoticity.cxx:2212
 AliChaoticity.cxx:2213
 AliChaoticity.cxx:2214
 AliChaoticity.cxx:2215
 AliChaoticity.cxx:2216
 AliChaoticity.cxx:2217
 AliChaoticity.cxx:2218
 AliChaoticity.cxx:2219
 AliChaoticity.cxx:2220
 AliChaoticity.cxx:2221
 AliChaoticity.cxx:2222
 AliChaoticity.cxx:2223
 AliChaoticity.cxx:2224
 AliChaoticity.cxx:2225
 AliChaoticity.cxx:2226
 AliChaoticity.cxx:2227
 AliChaoticity.cxx:2228
 AliChaoticity.cxx:2229
 AliChaoticity.cxx:2230
 AliChaoticity.cxx:2231
 AliChaoticity.cxx:2232
 AliChaoticity.cxx:2233
 AliChaoticity.cxx:2234
 AliChaoticity.cxx:2235
 AliChaoticity.cxx:2236
 AliChaoticity.cxx:2237
 AliChaoticity.cxx:2238
 AliChaoticity.cxx:2239
 AliChaoticity.cxx:2240
 AliChaoticity.cxx:2241
 AliChaoticity.cxx:2242
 AliChaoticity.cxx:2243
 AliChaoticity.cxx:2244
 AliChaoticity.cxx:2245
 AliChaoticity.cxx:2246
 AliChaoticity.cxx:2247
 AliChaoticity.cxx:2248
 AliChaoticity.cxx:2249
 AliChaoticity.cxx:2250
 AliChaoticity.cxx:2251
 AliChaoticity.cxx:2252
 AliChaoticity.cxx:2253
 AliChaoticity.cxx:2254
 AliChaoticity.cxx:2255
 AliChaoticity.cxx:2256
 AliChaoticity.cxx:2257
 AliChaoticity.cxx:2258
 AliChaoticity.cxx:2259
 AliChaoticity.cxx:2260
 AliChaoticity.cxx:2261
 AliChaoticity.cxx:2262
 AliChaoticity.cxx:2263
 AliChaoticity.cxx:2264
 AliChaoticity.cxx:2265
 AliChaoticity.cxx:2266
 AliChaoticity.cxx:2267
 AliChaoticity.cxx:2268
 AliChaoticity.cxx:2269
 AliChaoticity.cxx:2270
 AliChaoticity.cxx:2271
 AliChaoticity.cxx:2272
 AliChaoticity.cxx:2273
 AliChaoticity.cxx:2274
 AliChaoticity.cxx:2275
 AliChaoticity.cxx:2276
 AliChaoticity.cxx:2277
 AliChaoticity.cxx:2278
 AliChaoticity.cxx:2279
 AliChaoticity.cxx:2280
 AliChaoticity.cxx:2281
 AliChaoticity.cxx:2282
 AliChaoticity.cxx:2283
 AliChaoticity.cxx:2284
 AliChaoticity.cxx:2285
 AliChaoticity.cxx:2286
 AliChaoticity.cxx:2287
 AliChaoticity.cxx:2288
 AliChaoticity.cxx:2289
 AliChaoticity.cxx:2290
 AliChaoticity.cxx:2291
 AliChaoticity.cxx:2292
 AliChaoticity.cxx:2293
 AliChaoticity.cxx:2294
 AliChaoticity.cxx:2295
 AliChaoticity.cxx:2296
 AliChaoticity.cxx:2297
 AliChaoticity.cxx:2298
 AliChaoticity.cxx:2299
 AliChaoticity.cxx:2300
 AliChaoticity.cxx:2301
 AliChaoticity.cxx:2302
 AliChaoticity.cxx:2303
 AliChaoticity.cxx:2304
 AliChaoticity.cxx:2305
 AliChaoticity.cxx:2306
 AliChaoticity.cxx:2307
 AliChaoticity.cxx:2308
 AliChaoticity.cxx:2309
 AliChaoticity.cxx:2310
 AliChaoticity.cxx:2311
 AliChaoticity.cxx:2312
 AliChaoticity.cxx:2313
 AliChaoticity.cxx:2314
 AliChaoticity.cxx:2315
 AliChaoticity.cxx:2316
 AliChaoticity.cxx:2317
 AliChaoticity.cxx:2318
 AliChaoticity.cxx:2319
 AliChaoticity.cxx:2320
 AliChaoticity.cxx:2321
 AliChaoticity.cxx:2322
 AliChaoticity.cxx:2323
 AliChaoticity.cxx:2324
 AliChaoticity.cxx:2325
 AliChaoticity.cxx:2326
 AliChaoticity.cxx:2327
 AliChaoticity.cxx:2328
 AliChaoticity.cxx:2329
 AliChaoticity.cxx:2330
 AliChaoticity.cxx:2331
 AliChaoticity.cxx:2332
 AliChaoticity.cxx:2333
 AliChaoticity.cxx:2334
 AliChaoticity.cxx:2335
 AliChaoticity.cxx:2336
 AliChaoticity.cxx:2337
 AliChaoticity.cxx:2338
 AliChaoticity.cxx:2339
 AliChaoticity.cxx:2340
 AliChaoticity.cxx:2341
 AliChaoticity.cxx:2342
 AliChaoticity.cxx:2343
 AliChaoticity.cxx:2344
 AliChaoticity.cxx:2345
 AliChaoticity.cxx:2346
 AliChaoticity.cxx:2347
 AliChaoticity.cxx:2348
 AliChaoticity.cxx:2349
 AliChaoticity.cxx:2350
 AliChaoticity.cxx:2351
 AliChaoticity.cxx:2352
 AliChaoticity.cxx:2353
 AliChaoticity.cxx:2354
 AliChaoticity.cxx:2355
 AliChaoticity.cxx:2356
 AliChaoticity.cxx:2357
 AliChaoticity.cxx:2358
 AliChaoticity.cxx:2359
 AliChaoticity.cxx:2360
 AliChaoticity.cxx:2361
 AliChaoticity.cxx:2362
 AliChaoticity.cxx:2363
 AliChaoticity.cxx:2364
 AliChaoticity.cxx:2365
 AliChaoticity.cxx:2366
 AliChaoticity.cxx:2367
 AliChaoticity.cxx:2368
 AliChaoticity.cxx:2369
 AliChaoticity.cxx:2370
 AliChaoticity.cxx:2371
 AliChaoticity.cxx:2372
 AliChaoticity.cxx:2373
 AliChaoticity.cxx:2374
 AliChaoticity.cxx:2375
 AliChaoticity.cxx:2376
 AliChaoticity.cxx:2377
 AliChaoticity.cxx:2378
 AliChaoticity.cxx:2379
 AliChaoticity.cxx:2380
 AliChaoticity.cxx:2381
 AliChaoticity.cxx:2382
 AliChaoticity.cxx:2383
 AliChaoticity.cxx:2384
 AliChaoticity.cxx:2385
 AliChaoticity.cxx:2386
 AliChaoticity.cxx:2387
 AliChaoticity.cxx:2388
 AliChaoticity.cxx:2389
 AliChaoticity.cxx:2390
 AliChaoticity.cxx:2391
 AliChaoticity.cxx:2392
 AliChaoticity.cxx:2393
 AliChaoticity.cxx:2394
 AliChaoticity.cxx:2395
 AliChaoticity.cxx:2396
 AliChaoticity.cxx:2397
 AliChaoticity.cxx:2398
 AliChaoticity.cxx:2399
 AliChaoticity.cxx:2400
 AliChaoticity.cxx:2401
 AliChaoticity.cxx:2402
 AliChaoticity.cxx:2403
 AliChaoticity.cxx:2404
 AliChaoticity.cxx:2405
 AliChaoticity.cxx:2406
 AliChaoticity.cxx:2407
 AliChaoticity.cxx:2408
 AliChaoticity.cxx:2409
 AliChaoticity.cxx:2410
 AliChaoticity.cxx:2411
 AliChaoticity.cxx:2412
 AliChaoticity.cxx:2413
 AliChaoticity.cxx:2414
 AliChaoticity.cxx:2415
 AliChaoticity.cxx:2416
 AliChaoticity.cxx:2417
 AliChaoticity.cxx:2418
 AliChaoticity.cxx:2419
 AliChaoticity.cxx:2420
 AliChaoticity.cxx:2421
 AliChaoticity.cxx:2422
 AliChaoticity.cxx:2423
 AliChaoticity.cxx:2424
 AliChaoticity.cxx:2425
 AliChaoticity.cxx:2426
 AliChaoticity.cxx:2427
 AliChaoticity.cxx:2428
 AliChaoticity.cxx:2429
 AliChaoticity.cxx:2430
 AliChaoticity.cxx:2431
 AliChaoticity.cxx:2432
 AliChaoticity.cxx:2433
 AliChaoticity.cxx:2434
 AliChaoticity.cxx:2435
 AliChaoticity.cxx:2436
 AliChaoticity.cxx:2437
 AliChaoticity.cxx:2438
 AliChaoticity.cxx:2439
 AliChaoticity.cxx:2440
 AliChaoticity.cxx:2441
 AliChaoticity.cxx:2442
 AliChaoticity.cxx:2443
 AliChaoticity.cxx:2444
 AliChaoticity.cxx:2445
 AliChaoticity.cxx:2446
 AliChaoticity.cxx:2447
 AliChaoticity.cxx:2448
 AliChaoticity.cxx:2449
 AliChaoticity.cxx:2450
 AliChaoticity.cxx:2451
 AliChaoticity.cxx:2452
 AliChaoticity.cxx:2453
 AliChaoticity.cxx:2454
 AliChaoticity.cxx:2455
 AliChaoticity.cxx:2456
 AliChaoticity.cxx:2457
 AliChaoticity.cxx:2458
 AliChaoticity.cxx:2459
 AliChaoticity.cxx:2460
 AliChaoticity.cxx:2461
 AliChaoticity.cxx:2462
 AliChaoticity.cxx:2463
 AliChaoticity.cxx:2464
 AliChaoticity.cxx:2465
 AliChaoticity.cxx:2466
 AliChaoticity.cxx:2467
 AliChaoticity.cxx:2468
 AliChaoticity.cxx:2469
 AliChaoticity.cxx:2470
 AliChaoticity.cxx:2471
 AliChaoticity.cxx:2472
 AliChaoticity.cxx:2473
 AliChaoticity.cxx:2474
 AliChaoticity.cxx:2475
 AliChaoticity.cxx:2476
 AliChaoticity.cxx:2477
 AliChaoticity.cxx:2478
 AliChaoticity.cxx:2479
 AliChaoticity.cxx:2480
 AliChaoticity.cxx:2481
 AliChaoticity.cxx:2482
 AliChaoticity.cxx:2483
 AliChaoticity.cxx:2484
 AliChaoticity.cxx:2485
 AliChaoticity.cxx:2486
 AliChaoticity.cxx:2487
 AliChaoticity.cxx:2488
 AliChaoticity.cxx:2489
 AliChaoticity.cxx:2490
 AliChaoticity.cxx:2491
 AliChaoticity.cxx:2492
 AliChaoticity.cxx:2493
 AliChaoticity.cxx:2494
 AliChaoticity.cxx:2495
 AliChaoticity.cxx:2496
 AliChaoticity.cxx:2497
 AliChaoticity.cxx:2498
 AliChaoticity.cxx:2499
 AliChaoticity.cxx:2500
 AliChaoticity.cxx:2501
 AliChaoticity.cxx:2502
 AliChaoticity.cxx:2503
 AliChaoticity.cxx:2504
 AliChaoticity.cxx:2505
 AliChaoticity.cxx:2506
 AliChaoticity.cxx:2507
 AliChaoticity.cxx:2508
 AliChaoticity.cxx:2509
 AliChaoticity.cxx:2510
 AliChaoticity.cxx:2511
 AliChaoticity.cxx:2512
 AliChaoticity.cxx:2513
 AliChaoticity.cxx:2514
 AliChaoticity.cxx:2515
 AliChaoticity.cxx:2516
 AliChaoticity.cxx:2517
 AliChaoticity.cxx:2518
 AliChaoticity.cxx:2519
 AliChaoticity.cxx:2520
 AliChaoticity.cxx:2521
 AliChaoticity.cxx:2522
 AliChaoticity.cxx:2523
 AliChaoticity.cxx:2524
 AliChaoticity.cxx:2525
 AliChaoticity.cxx:2526
 AliChaoticity.cxx:2527
 AliChaoticity.cxx:2528
 AliChaoticity.cxx:2529
 AliChaoticity.cxx:2530
 AliChaoticity.cxx:2531
 AliChaoticity.cxx:2532
 AliChaoticity.cxx:2533
 AliChaoticity.cxx:2534
 AliChaoticity.cxx:2535
 AliChaoticity.cxx:2536
 AliChaoticity.cxx:2537
 AliChaoticity.cxx:2538
 AliChaoticity.cxx:2539
 AliChaoticity.cxx:2540
 AliChaoticity.cxx:2541
 AliChaoticity.cxx:2542
 AliChaoticity.cxx:2543
 AliChaoticity.cxx:2544
 AliChaoticity.cxx:2545
 AliChaoticity.cxx:2546
 AliChaoticity.cxx:2547
 AliChaoticity.cxx:2548
 AliChaoticity.cxx:2549
 AliChaoticity.cxx:2550
 AliChaoticity.cxx:2551
 AliChaoticity.cxx:2552
 AliChaoticity.cxx:2553
 AliChaoticity.cxx:2554
 AliChaoticity.cxx:2555
 AliChaoticity.cxx:2556
 AliChaoticity.cxx:2557
 AliChaoticity.cxx:2558
 AliChaoticity.cxx:2559
 AliChaoticity.cxx:2560
 AliChaoticity.cxx:2561
 AliChaoticity.cxx:2562
 AliChaoticity.cxx:2563
 AliChaoticity.cxx:2564
 AliChaoticity.cxx:2565
 AliChaoticity.cxx:2566
 AliChaoticity.cxx:2567
 AliChaoticity.cxx:2568
 AliChaoticity.cxx:2569
 AliChaoticity.cxx:2570
 AliChaoticity.cxx:2571
 AliChaoticity.cxx:2572
 AliChaoticity.cxx:2573
 AliChaoticity.cxx:2574
 AliChaoticity.cxx:2575
 AliChaoticity.cxx:2576
 AliChaoticity.cxx:2577
 AliChaoticity.cxx:2578
 AliChaoticity.cxx:2579
 AliChaoticity.cxx:2580
 AliChaoticity.cxx:2581
 AliChaoticity.cxx:2582
 AliChaoticity.cxx:2583
 AliChaoticity.cxx:2584
 AliChaoticity.cxx:2585
 AliChaoticity.cxx:2586
 AliChaoticity.cxx:2587
 AliChaoticity.cxx:2588
 AliChaoticity.cxx:2589
 AliChaoticity.cxx:2590
 AliChaoticity.cxx:2591
 AliChaoticity.cxx:2592
 AliChaoticity.cxx:2593
 AliChaoticity.cxx:2594
 AliChaoticity.cxx:2595
 AliChaoticity.cxx:2596
 AliChaoticity.cxx:2597
 AliChaoticity.cxx:2598
 AliChaoticity.cxx:2599
 AliChaoticity.cxx:2600
 AliChaoticity.cxx:2601
 AliChaoticity.cxx:2602
 AliChaoticity.cxx:2603
 AliChaoticity.cxx:2604
 AliChaoticity.cxx:2605
 AliChaoticity.cxx:2606
 AliChaoticity.cxx:2607
 AliChaoticity.cxx:2608
 AliChaoticity.cxx:2609
 AliChaoticity.cxx:2610
 AliChaoticity.cxx:2611
 AliChaoticity.cxx:2612
 AliChaoticity.cxx:2613
 AliChaoticity.cxx:2614
 AliChaoticity.cxx:2615
 AliChaoticity.cxx:2616
 AliChaoticity.cxx:2617
 AliChaoticity.cxx:2618
 AliChaoticity.cxx:2619
 AliChaoticity.cxx:2620
 AliChaoticity.cxx:2621
 AliChaoticity.cxx:2622
 AliChaoticity.cxx:2623
 AliChaoticity.cxx:2624
 AliChaoticity.cxx:2625
 AliChaoticity.cxx:2626
 AliChaoticity.cxx:2627
 AliChaoticity.cxx:2628
 AliChaoticity.cxx:2629
 AliChaoticity.cxx:2630
 AliChaoticity.cxx:2631
 AliChaoticity.cxx:2632
 AliChaoticity.cxx:2633
 AliChaoticity.cxx:2634
 AliChaoticity.cxx:2635
 AliChaoticity.cxx:2636
 AliChaoticity.cxx:2637
 AliChaoticity.cxx:2638
 AliChaoticity.cxx:2639
 AliChaoticity.cxx:2640
 AliChaoticity.cxx:2641
 AliChaoticity.cxx:2642
 AliChaoticity.cxx:2643
 AliChaoticity.cxx:2644
 AliChaoticity.cxx:2645
 AliChaoticity.cxx:2646
 AliChaoticity.cxx:2647
 AliChaoticity.cxx:2648
 AliChaoticity.cxx:2649
 AliChaoticity.cxx:2650
 AliChaoticity.cxx:2651
 AliChaoticity.cxx:2652
 AliChaoticity.cxx:2653
 AliChaoticity.cxx:2654
 AliChaoticity.cxx:2655
 AliChaoticity.cxx:2656
 AliChaoticity.cxx:2657
 AliChaoticity.cxx:2658
 AliChaoticity.cxx:2659
 AliChaoticity.cxx:2660
 AliChaoticity.cxx:2661
 AliChaoticity.cxx:2662
 AliChaoticity.cxx:2663
 AliChaoticity.cxx:2664
 AliChaoticity.cxx:2665
 AliChaoticity.cxx:2666
 AliChaoticity.cxx:2667
 AliChaoticity.cxx:2668
 AliChaoticity.cxx:2669
 AliChaoticity.cxx:2670
 AliChaoticity.cxx:2671
 AliChaoticity.cxx:2672
 AliChaoticity.cxx:2673
 AliChaoticity.cxx:2674
 AliChaoticity.cxx:2675
 AliChaoticity.cxx:2676
 AliChaoticity.cxx:2677
 AliChaoticity.cxx:2678
 AliChaoticity.cxx:2679
 AliChaoticity.cxx:2680
 AliChaoticity.cxx:2681
 AliChaoticity.cxx:2682
 AliChaoticity.cxx:2683
 AliChaoticity.cxx:2684
 AliChaoticity.cxx:2685
 AliChaoticity.cxx:2686
 AliChaoticity.cxx:2687
 AliChaoticity.cxx:2688
 AliChaoticity.cxx:2689
 AliChaoticity.cxx:2690
 AliChaoticity.cxx:2691
 AliChaoticity.cxx:2692
 AliChaoticity.cxx:2693
 AliChaoticity.cxx:2694
 AliChaoticity.cxx:2695
 AliChaoticity.cxx:2696
 AliChaoticity.cxx:2697
 AliChaoticity.cxx:2698
 AliChaoticity.cxx:2699
 AliChaoticity.cxx:2700
 AliChaoticity.cxx:2701
 AliChaoticity.cxx:2702
 AliChaoticity.cxx:2703
 AliChaoticity.cxx:2704
 AliChaoticity.cxx:2705
 AliChaoticity.cxx:2706
 AliChaoticity.cxx:2707
 AliChaoticity.cxx:2708
 AliChaoticity.cxx:2709
 AliChaoticity.cxx:2710
 AliChaoticity.cxx:2711
 AliChaoticity.cxx:2712
 AliChaoticity.cxx:2713
 AliChaoticity.cxx:2714
 AliChaoticity.cxx:2715
 AliChaoticity.cxx:2716
 AliChaoticity.cxx:2717
 AliChaoticity.cxx:2718
 AliChaoticity.cxx:2719
 AliChaoticity.cxx:2720
 AliChaoticity.cxx:2721
 AliChaoticity.cxx:2722
 AliChaoticity.cxx:2723
 AliChaoticity.cxx:2724
 AliChaoticity.cxx:2725
 AliChaoticity.cxx:2726
 AliChaoticity.cxx:2727
 AliChaoticity.cxx:2728
 AliChaoticity.cxx:2729
 AliChaoticity.cxx:2730
 AliChaoticity.cxx:2731
 AliChaoticity.cxx:2732
 AliChaoticity.cxx:2733
 AliChaoticity.cxx:2734
 AliChaoticity.cxx:2735
 AliChaoticity.cxx:2736
 AliChaoticity.cxx:2737
 AliChaoticity.cxx:2738
 AliChaoticity.cxx:2739
 AliChaoticity.cxx:2740
 AliChaoticity.cxx:2741
 AliChaoticity.cxx:2742
 AliChaoticity.cxx:2743
 AliChaoticity.cxx:2744
 AliChaoticity.cxx:2745
 AliChaoticity.cxx:2746
 AliChaoticity.cxx:2747
 AliChaoticity.cxx:2748
 AliChaoticity.cxx:2749
 AliChaoticity.cxx:2750
 AliChaoticity.cxx:2751
 AliChaoticity.cxx:2752
 AliChaoticity.cxx:2753
 AliChaoticity.cxx:2754
 AliChaoticity.cxx:2755
 AliChaoticity.cxx:2756
 AliChaoticity.cxx:2757
 AliChaoticity.cxx:2758
 AliChaoticity.cxx:2759
 AliChaoticity.cxx:2760
 AliChaoticity.cxx:2761
 AliChaoticity.cxx:2762
 AliChaoticity.cxx:2763
 AliChaoticity.cxx:2764
 AliChaoticity.cxx:2765
 AliChaoticity.cxx:2766
 AliChaoticity.cxx:2767
 AliChaoticity.cxx:2768
 AliChaoticity.cxx:2769
 AliChaoticity.cxx:2770
 AliChaoticity.cxx:2771
 AliChaoticity.cxx:2772
 AliChaoticity.cxx:2773
 AliChaoticity.cxx:2774
 AliChaoticity.cxx:2775
 AliChaoticity.cxx:2776
 AliChaoticity.cxx:2777
 AliChaoticity.cxx:2778
 AliChaoticity.cxx:2779
 AliChaoticity.cxx:2780
 AliChaoticity.cxx:2781
 AliChaoticity.cxx:2782
 AliChaoticity.cxx:2783
 AliChaoticity.cxx:2784
 AliChaoticity.cxx:2785
 AliChaoticity.cxx:2786
 AliChaoticity.cxx:2787
 AliChaoticity.cxx:2788
 AliChaoticity.cxx:2789
 AliChaoticity.cxx:2790
 AliChaoticity.cxx:2791
 AliChaoticity.cxx:2792
 AliChaoticity.cxx:2793
 AliChaoticity.cxx:2794
 AliChaoticity.cxx:2795
 AliChaoticity.cxx:2796
 AliChaoticity.cxx:2797
 AliChaoticity.cxx:2798
 AliChaoticity.cxx:2799
 AliChaoticity.cxx:2800
 AliChaoticity.cxx:2801
 AliChaoticity.cxx:2802
 AliChaoticity.cxx:2803
 AliChaoticity.cxx:2804
 AliChaoticity.cxx:2805
 AliChaoticity.cxx:2806
 AliChaoticity.cxx:2807
 AliChaoticity.cxx:2808
 AliChaoticity.cxx:2809
 AliChaoticity.cxx:2810
 AliChaoticity.cxx:2811
 AliChaoticity.cxx:2812
 AliChaoticity.cxx:2813
 AliChaoticity.cxx:2814
 AliChaoticity.cxx:2815
 AliChaoticity.cxx:2816
 AliChaoticity.cxx:2817
 AliChaoticity.cxx:2818
 AliChaoticity.cxx:2819
 AliChaoticity.cxx:2820
 AliChaoticity.cxx:2821
 AliChaoticity.cxx:2822
 AliChaoticity.cxx:2823
 AliChaoticity.cxx:2824
 AliChaoticity.cxx:2825
 AliChaoticity.cxx:2826
 AliChaoticity.cxx:2827
 AliChaoticity.cxx:2828
 AliChaoticity.cxx:2829
 AliChaoticity.cxx:2830
 AliChaoticity.cxx:2831
 AliChaoticity.cxx:2832
 AliChaoticity.cxx:2833
 AliChaoticity.cxx:2834
 AliChaoticity.cxx:2835
 AliChaoticity.cxx:2836
 AliChaoticity.cxx:2837
 AliChaoticity.cxx:2838
 AliChaoticity.cxx:2839
 AliChaoticity.cxx:2840
 AliChaoticity.cxx:2841
 AliChaoticity.cxx:2842
 AliChaoticity.cxx:2843
 AliChaoticity.cxx:2844
 AliChaoticity.cxx:2845
 AliChaoticity.cxx:2846
 AliChaoticity.cxx:2847
 AliChaoticity.cxx:2848
 AliChaoticity.cxx:2849
 AliChaoticity.cxx:2850
 AliChaoticity.cxx:2851
 AliChaoticity.cxx:2852
 AliChaoticity.cxx:2853
 AliChaoticity.cxx:2854
 AliChaoticity.cxx:2855
 AliChaoticity.cxx:2856
 AliChaoticity.cxx:2857
 AliChaoticity.cxx:2858
 AliChaoticity.cxx:2859
 AliChaoticity.cxx:2860
 AliChaoticity.cxx:2861
 AliChaoticity.cxx:2862
 AliChaoticity.cxx:2863
 AliChaoticity.cxx:2864
 AliChaoticity.cxx:2865
 AliChaoticity.cxx:2866
 AliChaoticity.cxx:2867
 AliChaoticity.cxx:2868
 AliChaoticity.cxx:2869
 AliChaoticity.cxx:2870
 AliChaoticity.cxx:2871
 AliChaoticity.cxx:2872
 AliChaoticity.cxx:2873
 AliChaoticity.cxx:2874
 AliChaoticity.cxx:2875
 AliChaoticity.cxx:2876
 AliChaoticity.cxx:2877
 AliChaoticity.cxx:2878
 AliChaoticity.cxx:2879
 AliChaoticity.cxx:2880
 AliChaoticity.cxx:2881
 AliChaoticity.cxx:2882
 AliChaoticity.cxx:2883
 AliChaoticity.cxx:2884
 AliChaoticity.cxx:2885
 AliChaoticity.cxx:2886
 AliChaoticity.cxx:2887
 AliChaoticity.cxx:2888
 AliChaoticity.cxx:2889
 AliChaoticity.cxx:2890
 AliChaoticity.cxx:2891
 AliChaoticity.cxx:2892
 AliChaoticity.cxx:2893
 AliChaoticity.cxx:2894
 AliChaoticity.cxx:2895
 AliChaoticity.cxx:2896
 AliChaoticity.cxx:2897
 AliChaoticity.cxx:2898
 AliChaoticity.cxx:2899
 AliChaoticity.cxx:2900
 AliChaoticity.cxx:2901
 AliChaoticity.cxx:2902
 AliChaoticity.cxx:2903
 AliChaoticity.cxx:2904
 AliChaoticity.cxx:2905
 AliChaoticity.cxx:2906
 AliChaoticity.cxx:2907
 AliChaoticity.cxx:2908
 AliChaoticity.cxx:2909
 AliChaoticity.cxx:2910
 AliChaoticity.cxx:2911
 AliChaoticity.cxx:2912
 AliChaoticity.cxx:2913
 AliChaoticity.cxx:2914
 AliChaoticity.cxx:2915
 AliChaoticity.cxx:2916
 AliChaoticity.cxx:2917
 AliChaoticity.cxx:2918
 AliChaoticity.cxx:2919
 AliChaoticity.cxx:2920
 AliChaoticity.cxx:2921
 AliChaoticity.cxx:2922
 AliChaoticity.cxx:2923
 AliChaoticity.cxx:2924
 AliChaoticity.cxx:2925
 AliChaoticity.cxx:2926
 AliChaoticity.cxx:2927
 AliChaoticity.cxx:2928
 AliChaoticity.cxx:2929
 AliChaoticity.cxx:2930
 AliChaoticity.cxx:2931
 AliChaoticity.cxx:2932
 AliChaoticity.cxx:2933
 AliChaoticity.cxx:2934
 AliChaoticity.cxx:2935
 AliChaoticity.cxx:2936
 AliChaoticity.cxx:2937
 AliChaoticity.cxx:2938
 AliChaoticity.cxx:2939
 AliChaoticity.cxx:2940
 AliChaoticity.cxx:2941
 AliChaoticity.cxx:2942
 AliChaoticity.cxx:2943
 AliChaoticity.cxx:2944
 AliChaoticity.cxx:2945
 AliChaoticity.cxx:2946
 AliChaoticity.cxx:2947
 AliChaoticity.cxx:2948
 AliChaoticity.cxx:2949
 AliChaoticity.cxx:2950
 AliChaoticity.cxx:2951
 AliChaoticity.cxx:2952
 AliChaoticity.cxx:2953
 AliChaoticity.cxx:2954
 AliChaoticity.cxx:2955
 AliChaoticity.cxx:2956
 AliChaoticity.cxx:2957
 AliChaoticity.cxx:2958
 AliChaoticity.cxx:2959
 AliChaoticity.cxx:2960
 AliChaoticity.cxx:2961
 AliChaoticity.cxx:2962
 AliChaoticity.cxx:2963
 AliChaoticity.cxx:2964
 AliChaoticity.cxx:2965
 AliChaoticity.cxx:2966
 AliChaoticity.cxx:2967
 AliChaoticity.cxx:2968
 AliChaoticity.cxx:2969
 AliChaoticity.cxx:2970
 AliChaoticity.cxx:2971
 AliChaoticity.cxx:2972
 AliChaoticity.cxx:2973
 AliChaoticity.cxx:2974
 AliChaoticity.cxx:2975
 AliChaoticity.cxx:2976
 AliChaoticity.cxx:2977
 AliChaoticity.cxx:2978
 AliChaoticity.cxx:2979
 AliChaoticity.cxx:2980
 AliChaoticity.cxx:2981
 AliChaoticity.cxx:2982
 AliChaoticity.cxx:2983
 AliChaoticity.cxx:2984
 AliChaoticity.cxx:2985
 AliChaoticity.cxx:2986
 AliChaoticity.cxx:2987
 AliChaoticity.cxx:2988
 AliChaoticity.cxx:2989
 AliChaoticity.cxx:2990
 AliChaoticity.cxx:2991
 AliChaoticity.cxx:2992
 AliChaoticity.cxx:2993
 AliChaoticity.cxx:2994
 AliChaoticity.cxx:2995
 AliChaoticity.cxx:2996
 AliChaoticity.cxx:2997
 AliChaoticity.cxx:2998
 AliChaoticity.cxx:2999
 AliChaoticity.cxx:3000
 AliChaoticity.cxx:3001
 AliChaoticity.cxx:3002
 AliChaoticity.cxx:3003
 AliChaoticity.cxx:3004
 AliChaoticity.cxx:3005
 AliChaoticity.cxx:3006
 AliChaoticity.cxx:3007
 AliChaoticity.cxx:3008
 AliChaoticity.cxx:3009
 AliChaoticity.cxx:3010
 AliChaoticity.cxx:3011
 AliChaoticity.cxx:3012
 AliChaoticity.cxx:3013
 AliChaoticity.cxx:3014
 AliChaoticity.cxx:3015
 AliChaoticity.cxx:3016
 AliChaoticity.cxx:3017
 AliChaoticity.cxx:3018
 AliChaoticity.cxx:3019
 AliChaoticity.cxx:3020
 AliChaoticity.cxx:3021
 AliChaoticity.cxx:3022
 AliChaoticity.cxx:3023
 AliChaoticity.cxx:3024
 AliChaoticity.cxx:3025
 AliChaoticity.cxx:3026
 AliChaoticity.cxx:3027
 AliChaoticity.cxx:3028
 AliChaoticity.cxx:3029
 AliChaoticity.cxx:3030
 AliChaoticity.cxx:3031
 AliChaoticity.cxx:3032
 AliChaoticity.cxx:3033
 AliChaoticity.cxx:3034
 AliChaoticity.cxx:3035
 AliChaoticity.cxx:3036
 AliChaoticity.cxx:3037
 AliChaoticity.cxx:3038
 AliChaoticity.cxx:3039
 AliChaoticity.cxx:3040
 AliChaoticity.cxx:3041
 AliChaoticity.cxx:3042
 AliChaoticity.cxx:3043
 AliChaoticity.cxx:3044
 AliChaoticity.cxx:3045
 AliChaoticity.cxx:3046
 AliChaoticity.cxx:3047
 AliChaoticity.cxx:3048
 AliChaoticity.cxx:3049
 AliChaoticity.cxx:3050
 AliChaoticity.cxx:3051
 AliChaoticity.cxx:3052
 AliChaoticity.cxx:3053
 AliChaoticity.cxx:3054
 AliChaoticity.cxx:3055
 AliChaoticity.cxx:3056
 AliChaoticity.cxx:3057
 AliChaoticity.cxx:3058
 AliChaoticity.cxx:3059
 AliChaoticity.cxx:3060
 AliChaoticity.cxx:3061
 AliChaoticity.cxx:3062
 AliChaoticity.cxx:3063
 AliChaoticity.cxx:3064
 AliChaoticity.cxx:3065
 AliChaoticity.cxx:3066
 AliChaoticity.cxx:3067
 AliChaoticity.cxx:3068
 AliChaoticity.cxx:3069
 AliChaoticity.cxx:3070
 AliChaoticity.cxx:3071
 AliChaoticity.cxx:3072
 AliChaoticity.cxx:3073
 AliChaoticity.cxx:3074
 AliChaoticity.cxx:3075
 AliChaoticity.cxx:3076
 AliChaoticity.cxx:3077
 AliChaoticity.cxx:3078
 AliChaoticity.cxx:3079
 AliChaoticity.cxx:3080
 AliChaoticity.cxx:3081
 AliChaoticity.cxx:3082
 AliChaoticity.cxx:3083
 AliChaoticity.cxx:3084
 AliChaoticity.cxx:3085
 AliChaoticity.cxx:3086
 AliChaoticity.cxx:3087
 AliChaoticity.cxx:3088
 AliChaoticity.cxx:3089
 AliChaoticity.cxx:3090
 AliChaoticity.cxx:3091
 AliChaoticity.cxx:3092
 AliChaoticity.cxx:3093
 AliChaoticity.cxx:3094
 AliChaoticity.cxx:3095
 AliChaoticity.cxx:3096
 AliChaoticity.cxx:3097
 AliChaoticity.cxx:3098
 AliChaoticity.cxx:3099
 AliChaoticity.cxx:3100
 AliChaoticity.cxx:3101
 AliChaoticity.cxx:3102
 AliChaoticity.cxx:3103
 AliChaoticity.cxx:3104
 AliChaoticity.cxx:3105
 AliChaoticity.cxx:3106
 AliChaoticity.cxx:3107
 AliChaoticity.cxx:3108
 AliChaoticity.cxx:3109
 AliChaoticity.cxx:3110
 AliChaoticity.cxx:3111
 AliChaoticity.cxx:3112
 AliChaoticity.cxx:3113
 AliChaoticity.cxx:3114
 AliChaoticity.cxx:3115
 AliChaoticity.cxx:3116
 AliChaoticity.cxx:3117
 AliChaoticity.cxx:3118
 AliChaoticity.cxx:3119
 AliChaoticity.cxx:3120
 AliChaoticity.cxx:3121
 AliChaoticity.cxx:3122
 AliChaoticity.cxx:3123
 AliChaoticity.cxx:3124
 AliChaoticity.cxx:3125
 AliChaoticity.cxx:3126
 AliChaoticity.cxx:3127
 AliChaoticity.cxx:3128
 AliChaoticity.cxx:3129
 AliChaoticity.cxx:3130
 AliChaoticity.cxx:3131
 AliChaoticity.cxx:3132
 AliChaoticity.cxx:3133
 AliChaoticity.cxx:3134
 AliChaoticity.cxx:3135
 AliChaoticity.cxx:3136
 AliChaoticity.cxx:3137
 AliChaoticity.cxx:3138
 AliChaoticity.cxx:3139
 AliChaoticity.cxx:3140
 AliChaoticity.cxx:3141
 AliChaoticity.cxx:3142
 AliChaoticity.cxx:3143
 AliChaoticity.cxx:3144
 AliChaoticity.cxx:3145
 AliChaoticity.cxx:3146
 AliChaoticity.cxx:3147
 AliChaoticity.cxx:3148
 AliChaoticity.cxx:3149
 AliChaoticity.cxx:3150
 AliChaoticity.cxx:3151
 AliChaoticity.cxx:3152
 AliChaoticity.cxx:3153
 AliChaoticity.cxx:3154
 AliChaoticity.cxx:3155
 AliChaoticity.cxx:3156
 AliChaoticity.cxx:3157
 AliChaoticity.cxx:3158
 AliChaoticity.cxx:3159
 AliChaoticity.cxx:3160
 AliChaoticity.cxx:3161
 AliChaoticity.cxx:3162
 AliChaoticity.cxx:3163
 AliChaoticity.cxx:3164
 AliChaoticity.cxx:3165
 AliChaoticity.cxx:3166
 AliChaoticity.cxx:3167
 AliChaoticity.cxx:3168
 AliChaoticity.cxx:3169
 AliChaoticity.cxx:3170
 AliChaoticity.cxx:3171
 AliChaoticity.cxx:3172
 AliChaoticity.cxx:3173
 AliChaoticity.cxx:3174
 AliChaoticity.cxx:3175
 AliChaoticity.cxx:3176
 AliChaoticity.cxx:3177
 AliChaoticity.cxx:3178
 AliChaoticity.cxx:3179
 AliChaoticity.cxx:3180
 AliChaoticity.cxx:3181
 AliChaoticity.cxx:3182
 AliChaoticity.cxx:3183
 AliChaoticity.cxx:3184
 AliChaoticity.cxx:3185
 AliChaoticity.cxx:3186
 AliChaoticity.cxx:3187
 AliChaoticity.cxx:3188
 AliChaoticity.cxx:3189
 AliChaoticity.cxx:3190
 AliChaoticity.cxx:3191
 AliChaoticity.cxx:3192
 AliChaoticity.cxx:3193
 AliChaoticity.cxx:3194
 AliChaoticity.cxx:3195
 AliChaoticity.cxx:3196
 AliChaoticity.cxx:3197
 AliChaoticity.cxx:3198
 AliChaoticity.cxx:3199
 AliChaoticity.cxx:3200
 AliChaoticity.cxx:3201
 AliChaoticity.cxx:3202
 AliChaoticity.cxx:3203
 AliChaoticity.cxx:3204
 AliChaoticity.cxx:3205
 AliChaoticity.cxx:3206
 AliChaoticity.cxx:3207
 AliChaoticity.cxx:3208
 AliChaoticity.cxx:3209
 AliChaoticity.cxx:3210
 AliChaoticity.cxx:3211
 AliChaoticity.cxx:3212
 AliChaoticity.cxx:3213
 AliChaoticity.cxx:3214
 AliChaoticity.cxx:3215
 AliChaoticity.cxx:3216
 AliChaoticity.cxx:3217
 AliChaoticity.cxx:3218
 AliChaoticity.cxx:3219
 AliChaoticity.cxx:3220
 AliChaoticity.cxx:3221
 AliChaoticity.cxx:3222
 AliChaoticity.cxx:3223
 AliChaoticity.cxx:3224
 AliChaoticity.cxx:3225
 AliChaoticity.cxx:3226
 AliChaoticity.cxx:3227
 AliChaoticity.cxx:3228
 AliChaoticity.cxx:3229
 AliChaoticity.cxx:3230
 AliChaoticity.cxx:3231
 AliChaoticity.cxx:3232
 AliChaoticity.cxx:3233
 AliChaoticity.cxx:3234
 AliChaoticity.cxx:3235
 AliChaoticity.cxx:3236
 AliChaoticity.cxx:3237
 AliChaoticity.cxx:3238
 AliChaoticity.cxx:3239
 AliChaoticity.cxx:3240
 AliChaoticity.cxx:3241
 AliChaoticity.cxx:3242
 AliChaoticity.cxx:3243
 AliChaoticity.cxx:3244
 AliChaoticity.cxx:3245
 AliChaoticity.cxx:3246
 AliChaoticity.cxx:3247
 AliChaoticity.cxx:3248
 AliChaoticity.cxx:3249
 AliChaoticity.cxx:3250
 AliChaoticity.cxx:3251
 AliChaoticity.cxx:3252
 AliChaoticity.cxx:3253
 AliChaoticity.cxx:3254
 AliChaoticity.cxx:3255
 AliChaoticity.cxx:3256
 AliChaoticity.cxx:3257
 AliChaoticity.cxx:3258
 AliChaoticity.cxx:3259
 AliChaoticity.cxx:3260
 AliChaoticity.cxx:3261
 AliChaoticity.cxx:3262
 AliChaoticity.cxx:3263
 AliChaoticity.cxx:3264
 AliChaoticity.cxx:3265
 AliChaoticity.cxx:3266
 AliChaoticity.cxx:3267
 AliChaoticity.cxx:3268
 AliChaoticity.cxx:3269
 AliChaoticity.cxx:3270
 AliChaoticity.cxx:3271
 AliChaoticity.cxx:3272
 AliChaoticity.cxx:3273
 AliChaoticity.cxx:3274
 AliChaoticity.cxx:3275
 AliChaoticity.cxx:3276
 AliChaoticity.cxx:3277
 AliChaoticity.cxx:3278
 AliChaoticity.cxx:3279
 AliChaoticity.cxx:3280
 AliChaoticity.cxx:3281
 AliChaoticity.cxx:3282
 AliChaoticity.cxx:3283
 AliChaoticity.cxx:3284
 AliChaoticity.cxx:3285
 AliChaoticity.cxx:3286
 AliChaoticity.cxx:3287
 AliChaoticity.cxx:3288
 AliChaoticity.cxx:3289
 AliChaoticity.cxx:3290
 AliChaoticity.cxx:3291
 AliChaoticity.cxx:3292
 AliChaoticity.cxx:3293
 AliChaoticity.cxx:3294
 AliChaoticity.cxx:3295
 AliChaoticity.cxx:3296
 AliChaoticity.cxx:3297
 AliChaoticity.cxx:3298
 AliChaoticity.cxx:3299
 AliChaoticity.cxx:3300
 AliChaoticity.cxx:3301
 AliChaoticity.cxx:3302
 AliChaoticity.cxx:3303
 AliChaoticity.cxx:3304
 AliChaoticity.cxx:3305
 AliChaoticity.cxx:3306
 AliChaoticity.cxx:3307
 AliChaoticity.cxx:3308
 AliChaoticity.cxx:3309
 AliChaoticity.cxx:3310
 AliChaoticity.cxx:3311
 AliChaoticity.cxx:3312
 AliChaoticity.cxx:3313
 AliChaoticity.cxx:3314
 AliChaoticity.cxx:3315
 AliChaoticity.cxx:3316
 AliChaoticity.cxx:3317
 AliChaoticity.cxx:3318
 AliChaoticity.cxx:3319
 AliChaoticity.cxx:3320
 AliChaoticity.cxx:3321
 AliChaoticity.cxx:3322
 AliChaoticity.cxx:3323
 AliChaoticity.cxx:3324
 AliChaoticity.cxx:3325
 AliChaoticity.cxx:3326
 AliChaoticity.cxx:3327
 AliChaoticity.cxx:3328
 AliChaoticity.cxx:3329
 AliChaoticity.cxx:3330
 AliChaoticity.cxx:3331
 AliChaoticity.cxx:3332
 AliChaoticity.cxx:3333
 AliChaoticity.cxx:3334
 AliChaoticity.cxx:3335
 AliChaoticity.cxx:3336
 AliChaoticity.cxx:3337
 AliChaoticity.cxx:3338
 AliChaoticity.cxx:3339
 AliChaoticity.cxx:3340
 AliChaoticity.cxx:3341
 AliChaoticity.cxx:3342
 AliChaoticity.cxx:3343
 AliChaoticity.cxx:3344
 AliChaoticity.cxx:3345
 AliChaoticity.cxx:3346
 AliChaoticity.cxx:3347
 AliChaoticity.cxx:3348
 AliChaoticity.cxx:3349
 AliChaoticity.cxx:3350
 AliChaoticity.cxx:3351
 AliChaoticity.cxx:3352
 AliChaoticity.cxx:3353
 AliChaoticity.cxx:3354
 AliChaoticity.cxx:3355
 AliChaoticity.cxx:3356
 AliChaoticity.cxx:3357
 AliChaoticity.cxx:3358
 AliChaoticity.cxx:3359
 AliChaoticity.cxx:3360
 AliChaoticity.cxx:3361
 AliChaoticity.cxx:3362
 AliChaoticity.cxx:3363
 AliChaoticity.cxx:3364
 AliChaoticity.cxx:3365
 AliChaoticity.cxx:3366
 AliChaoticity.cxx:3367
 AliChaoticity.cxx:3368
 AliChaoticity.cxx:3369
 AliChaoticity.cxx:3370
 AliChaoticity.cxx:3371
 AliChaoticity.cxx:3372
 AliChaoticity.cxx:3373
 AliChaoticity.cxx:3374
 AliChaoticity.cxx:3375
 AliChaoticity.cxx:3376
 AliChaoticity.cxx:3377
 AliChaoticity.cxx:3378
 AliChaoticity.cxx:3379
 AliChaoticity.cxx:3380
 AliChaoticity.cxx:3381
 AliChaoticity.cxx:3382
 AliChaoticity.cxx:3383
 AliChaoticity.cxx:3384
 AliChaoticity.cxx:3385
 AliChaoticity.cxx:3386
 AliChaoticity.cxx:3387
 AliChaoticity.cxx:3388
 AliChaoticity.cxx:3389
 AliChaoticity.cxx:3390
 AliChaoticity.cxx:3391
 AliChaoticity.cxx:3392
 AliChaoticity.cxx:3393
 AliChaoticity.cxx:3394
 AliChaoticity.cxx:3395
 AliChaoticity.cxx:3396
 AliChaoticity.cxx:3397
 AliChaoticity.cxx:3398
 AliChaoticity.cxx:3399
 AliChaoticity.cxx:3400
 AliChaoticity.cxx:3401
 AliChaoticity.cxx:3402
 AliChaoticity.cxx:3403
 AliChaoticity.cxx:3404
 AliChaoticity.cxx:3405
 AliChaoticity.cxx:3406
 AliChaoticity.cxx:3407
 AliChaoticity.cxx:3408
 AliChaoticity.cxx:3409
 AliChaoticity.cxx:3410
 AliChaoticity.cxx:3411
 AliChaoticity.cxx:3412
 AliChaoticity.cxx:3413
 AliChaoticity.cxx:3414
 AliChaoticity.cxx:3415
 AliChaoticity.cxx:3416
 AliChaoticity.cxx:3417
 AliChaoticity.cxx:3418
 AliChaoticity.cxx:3419
 AliChaoticity.cxx:3420
 AliChaoticity.cxx:3421
 AliChaoticity.cxx:3422
 AliChaoticity.cxx:3423
 AliChaoticity.cxx:3424
 AliChaoticity.cxx:3425
 AliChaoticity.cxx:3426
 AliChaoticity.cxx:3427
 AliChaoticity.cxx:3428
 AliChaoticity.cxx:3429
 AliChaoticity.cxx:3430
 AliChaoticity.cxx:3431
 AliChaoticity.cxx:3432
 AliChaoticity.cxx:3433
 AliChaoticity.cxx:3434
 AliChaoticity.cxx:3435
 AliChaoticity.cxx:3436
 AliChaoticity.cxx:3437
 AliChaoticity.cxx:3438
 AliChaoticity.cxx:3439
 AliChaoticity.cxx:3440
 AliChaoticity.cxx:3441
 AliChaoticity.cxx:3442
 AliChaoticity.cxx:3443
 AliChaoticity.cxx:3444
 AliChaoticity.cxx:3445
 AliChaoticity.cxx:3446
 AliChaoticity.cxx:3447
 AliChaoticity.cxx:3448
 AliChaoticity.cxx:3449
 AliChaoticity.cxx:3450
 AliChaoticity.cxx:3451
 AliChaoticity.cxx:3452
 AliChaoticity.cxx:3453
 AliChaoticity.cxx:3454
 AliChaoticity.cxx:3455
 AliChaoticity.cxx:3456
 AliChaoticity.cxx:3457
 AliChaoticity.cxx:3458
 AliChaoticity.cxx:3459
 AliChaoticity.cxx:3460
 AliChaoticity.cxx:3461
 AliChaoticity.cxx:3462
 AliChaoticity.cxx:3463
 AliChaoticity.cxx:3464
 AliChaoticity.cxx:3465
 AliChaoticity.cxx:3466
 AliChaoticity.cxx:3467
 AliChaoticity.cxx:3468
 AliChaoticity.cxx:3469
 AliChaoticity.cxx:3470
 AliChaoticity.cxx:3471
 AliChaoticity.cxx:3472
 AliChaoticity.cxx:3473
 AliChaoticity.cxx:3474
 AliChaoticity.cxx:3475
 AliChaoticity.cxx:3476
 AliChaoticity.cxx:3477
 AliChaoticity.cxx:3478
 AliChaoticity.cxx:3479
 AliChaoticity.cxx:3480
 AliChaoticity.cxx:3481
 AliChaoticity.cxx:3482
 AliChaoticity.cxx:3483
 AliChaoticity.cxx:3484
 AliChaoticity.cxx:3485
 AliChaoticity.cxx:3486
 AliChaoticity.cxx:3487
 AliChaoticity.cxx:3488
 AliChaoticity.cxx:3489
 AliChaoticity.cxx:3490
 AliChaoticity.cxx:3491
 AliChaoticity.cxx:3492
 AliChaoticity.cxx:3493
 AliChaoticity.cxx:3494
 AliChaoticity.cxx:3495
 AliChaoticity.cxx:3496
 AliChaoticity.cxx:3497
 AliChaoticity.cxx:3498
 AliChaoticity.cxx:3499
 AliChaoticity.cxx:3500
 AliChaoticity.cxx:3501
 AliChaoticity.cxx:3502
 AliChaoticity.cxx:3503
 AliChaoticity.cxx:3504
 AliChaoticity.cxx:3505
 AliChaoticity.cxx:3506
 AliChaoticity.cxx:3507
 AliChaoticity.cxx:3508
 AliChaoticity.cxx:3509
 AliChaoticity.cxx:3510
 AliChaoticity.cxx:3511
 AliChaoticity.cxx:3512
 AliChaoticity.cxx:3513
 AliChaoticity.cxx:3514
 AliChaoticity.cxx:3515
 AliChaoticity.cxx:3516
 AliChaoticity.cxx:3517
 AliChaoticity.cxx:3518
 AliChaoticity.cxx:3519
 AliChaoticity.cxx:3520
 AliChaoticity.cxx:3521
 AliChaoticity.cxx:3522
 AliChaoticity.cxx:3523
 AliChaoticity.cxx:3524
 AliChaoticity.cxx:3525
 AliChaoticity.cxx:3526
 AliChaoticity.cxx:3527
 AliChaoticity.cxx:3528
 AliChaoticity.cxx:3529
 AliChaoticity.cxx:3530
 AliChaoticity.cxx:3531
 AliChaoticity.cxx:3532
 AliChaoticity.cxx:3533
 AliChaoticity.cxx:3534
 AliChaoticity.cxx:3535
 AliChaoticity.cxx:3536
 AliChaoticity.cxx:3537
 AliChaoticity.cxx:3538
 AliChaoticity.cxx:3539
 AliChaoticity.cxx:3540
 AliChaoticity.cxx:3541
 AliChaoticity.cxx:3542
 AliChaoticity.cxx:3543
 AliChaoticity.cxx:3544
 AliChaoticity.cxx:3545
 AliChaoticity.cxx:3546
 AliChaoticity.cxx:3547
 AliChaoticity.cxx:3548
 AliChaoticity.cxx:3549
 AliChaoticity.cxx:3550
 AliChaoticity.cxx:3551
 AliChaoticity.cxx:3552
 AliChaoticity.cxx:3553
 AliChaoticity.cxx:3554
 AliChaoticity.cxx:3555
 AliChaoticity.cxx:3556
 AliChaoticity.cxx:3557
 AliChaoticity.cxx:3558
 AliChaoticity.cxx:3559
 AliChaoticity.cxx:3560
 AliChaoticity.cxx:3561
 AliChaoticity.cxx:3562
 AliChaoticity.cxx:3563
 AliChaoticity.cxx:3564
 AliChaoticity.cxx:3565
 AliChaoticity.cxx:3566
 AliChaoticity.cxx:3567
 AliChaoticity.cxx:3568
 AliChaoticity.cxx:3569
 AliChaoticity.cxx:3570
 AliChaoticity.cxx:3571
 AliChaoticity.cxx:3572
 AliChaoticity.cxx:3573
 AliChaoticity.cxx:3574
 AliChaoticity.cxx:3575
 AliChaoticity.cxx:3576
 AliChaoticity.cxx:3577
 AliChaoticity.cxx:3578
 AliChaoticity.cxx:3579
 AliChaoticity.cxx:3580
 AliChaoticity.cxx:3581
 AliChaoticity.cxx:3582
 AliChaoticity.cxx:3583
 AliChaoticity.cxx:3584
 AliChaoticity.cxx:3585
 AliChaoticity.cxx:3586
 AliChaoticity.cxx:3587
 AliChaoticity.cxx:3588
 AliChaoticity.cxx:3589
 AliChaoticity.cxx:3590
 AliChaoticity.cxx:3591
 AliChaoticity.cxx:3592
 AliChaoticity.cxx:3593
 AliChaoticity.cxx:3594
 AliChaoticity.cxx:3595
 AliChaoticity.cxx:3596
 AliChaoticity.cxx:3597
 AliChaoticity.cxx:3598
 AliChaoticity.cxx:3599
 AliChaoticity.cxx:3600
 AliChaoticity.cxx:3601
 AliChaoticity.cxx:3602
 AliChaoticity.cxx:3603
 AliChaoticity.cxx:3604
 AliChaoticity.cxx:3605
 AliChaoticity.cxx:3606
 AliChaoticity.cxx:3607
 AliChaoticity.cxx:3608
 AliChaoticity.cxx:3609
 AliChaoticity.cxx:3610
 AliChaoticity.cxx:3611
 AliChaoticity.cxx:3612
 AliChaoticity.cxx:3613
 AliChaoticity.cxx:3614
 AliChaoticity.cxx:3615
 AliChaoticity.cxx:3616
 AliChaoticity.cxx:3617
 AliChaoticity.cxx:3618
 AliChaoticity.cxx:3619
 AliChaoticity.cxx:3620
 AliChaoticity.cxx:3621
 AliChaoticity.cxx:3622
 AliChaoticity.cxx:3623
 AliChaoticity.cxx:3624
 AliChaoticity.cxx:3625
 AliChaoticity.cxx:3626
 AliChaoticity.cxx:3627
 AliChaoticity.cxx:3628
 AliChaoticity.cxx:3629
 AliChaoticity.cxx:3630
 AliChaoticity.cxx:3631
 AliChaoticity.cxx:3632
 AliChaoticity.cxx:3633
 AliChaoticity.cxx:3634
 AliChaoticity.cxx:3635
 AliChaoticity.cxx:3636
 AliChaoticity.cxx:3637
 AliChaoticity.cxx:3638
 AliChaoticity.cxx:3639
 AliChaoticity.cxx:3640
 AliChaoticity.cxx:3641
 AliChaoticity.cxx:3642
 AliChaoticity.cxx:3643
 AliChaoticity.cxx:3644
 AliChaoticity.cxx:3645
 AliChaoticity.cxx:3646
 AliChaoticity.cxx:3647
 AliChaoticity.cxx:3648
 AliChaoticity.cxx:3649
 AliChaoticity.cxx:3650
 AliChaoticity.cxx:3651
 AliChaoticity.cxx:3652
 AliChaoticity.cxx:3653
 AliChaoticity.cxx:3654
 AliChaoticity.cxx:3655
 AliChaoticity.cxx:3656
 AliChaoticity.cxx:3657
 AliChaoticity.cxx:3658
 AliChaoticity.cxx:3659
 AliChaoticity.cxx:3660
 AliChaoticity.cxx:3661
 AliChaoticity.cxx:3662
 AliChaoticity.cxx:3663
 AliChaoticity.cxx:3664
 AliChaoticity.cxx:3665
 AliChaoticity.cxx:3666
 AliChaoticity.cxx:3667
 AliChaoticity.cxx:3668
 AliChaoticity.cxx:3669
 AliChaoticity.cxx:3670
 AliChaoticity.cxx:3671
 AliChaoticity.cxx:3672
 AliChaoticity.cxx:3673
 AliChaoticity.cxx:3674
 AliChaoticity.cxx:3675
 AliChaoticity.cxx:3676
 AliChaoticity.cxx:3677
 AliChaoticity.cxx:3678
 AliChaoticity.cxx:3679
 AliChaoticity.cxx:3680
 AliChaoticity.cxx:3681
 AliChaoticity.cxx:3682
 AliChaoticity.cxx:3683
 AliChaoticity.cxx:3684
 AliChaoticity.cxx:3685
 AliChaoticity.cxx:3686
 AliChaoticity.cxx:3687
 AliChaoticity.cxx:3688
 AliChaoticity.cxx:3689
 AliChaoticity.cxx:3690
 AliChaoticity.cxx:3691
 AliChaoticity.cxx:3692
 AliChaoticity.cxx:3693
 AliChaoticity.cxx:3694
 AliChaoticity.cxx:3695
 AliChaoticity.cxx:3696
 AliChaoticity.cxx:3697
 AliChaoticity.cxx:3698
 AliChaoticity.cxx:3699
 AliChaoticity.cxx:3700
 AliChaoticity.cxx:3701
 AliChaoticity.cxx:3702
 AliChaoticity.cxx:3703
 AliChaoticity.cxx:3704
 AliChaoticity.cxx:3705
 AliChaoticity.cxx:3706
 AliChaoticity.cxx:3707
 AliChaoticity.cxx:3708
 AliChaoticity.cxx:3709
 AliChaoticity.cxx:3710
 AliChaoticity.cxx:3711
 AliChaoticity.cxx:3712
 AliChaoticity.cxx:3713
 AliChaoticity.cxx:3714
 AliChaoticity.cxx:3715
 AliChaoticity.cxx:3716
 AliChaoticity.cxx:3717
 AliChaoticity.cxx:3718
 AliChaoticity.cxx:3719
 AliChaoticity.cxx:3720
 AliChaoticity.cxx:3721
 AliChaoticity.cxx:3722
 AliChaoticity.cxx:3723
 AliChaoticity.cxx:3724
 AliChaoticity.cxx:3725
 AliChaoticity.cxx:3726
 AliChaoticity.cxx:3727
 AliChaoticity.cxx:3728
 AliChaoticity.cxx:3729
 AliChaoticity.cxx:3730
 AliChaoticity.cxx:3731
 AliChaoticity.cxx:3732
 AliChaoticity.cxx:3733
 AliChaoticity.cxx:3734
 AliChaoticity.cxx:3735
 AliChaoticity.cxx:3736
 AliChaoticity.cxx:3737
 AliChaoticity.cxx:3738
 AliChaoticity.cxx:3739
 AliChaoticity.cxx:3740
 AliChaoticity.cxx:3741
 AliChaoticity.cxx:3742
 AliChaoticity.cxx:3743
 AliChaoticity.cxx:3744
 AliChaoticity.cxx:3745
 AliChaoticity.cxx:3746
 AliChaoticity.cxx:3747
 AliChaoticity.cxx:3748
 AliChaoticity.cxx:3749
 AliChaoticity.cxx:3750
 AliChaoticity.cxx:3751
 AliChaoticity.cxx:3752
 AliChaoticity.cxx:3753
 AliChaoticity.cxx:3754
 AliChaoticity.cxx:3755
 AliChaoticity.cxx:3756
 AliChaoticity.cxx:3757
 AliChaoticity.cxx:3758
 AliChaoticity.cxx:3759
 AliChaoticity.cxx:3760
 AliChaoticity.cxx:3761
 AliChaoticity.cxx:3762
 AliChaoticity.cxx:3763
 AliChaoticity.cxx:3764
 AliChaoticity.cxx:3765
 AliChaoticity.cxx:3766
 AliChaoticity.cxx:3767
 AliChaoticity.cxx:3768
 AliChaoticity.cxx:3769
 AliChaoticity.cxx:3770
 AliChaoticity.cxx:3771
 AliChaoticity.cxx:3772
 AliChaoticity.cxx:3773
 AliChaoticity.cxx:3774
 AliChaoticity.cxx:3775
 AliChaoticity.cxx:3776
 AliChaoticity.cxx:3777
 AliChaoticity.cxx:3778
 AliChaoticity.cxx:3779
 AliChaoticity.cxx:3780
 AliChaoticity.cxx:3781
 AliChaoticity.cxx:3782
 AliChaoticity.cxx:3783
 AliChaoticity.cxx:3784
 AliChaoticity.cxx:3785
 AliChaoticity.cxx:3786
 AliChaoticity.cxx:3787
 AliChaoticity.cxx:3788
 AliChaoticity.cxx:3789
 AliChaoticity.cxx:3790
 AliChaoticity.cxx:3791
 AliChaoticity.cxx:3792
 AliChaoticity.cxx:3793
 AliChaoticity.cxx:3794
 AliChaoticity.cxx:3795
 AliChaoticity.cxx:3796
 AliChaoticity.cxx:3797
 AliChaoticity.cxx:3798
 AliChaoticity.cxx:3799
 AliChaoticity.cxx:3800
 AliChaoticity.cxx:3801
 AliChaoticity.cxx:3802
 AliChaoticity.cxx:3803
 AliChaoticity.cxx:3804
 AliChaoticity.cxx:3805
 AliChaoticity.cxx:3806
 AliChaoticity.cxx:3807
 AliChaoticity.cxx:3808
 AliChaoticity.cxx:3809
 AliChaoticity.cxx:3810
 AliChaoticity.cxx:3811
 AliChaoticity.cxx:3812
 AliChaoticity.cxx:3813
 AliChaoticity.cxx:3814
 AliChaoticity.cxx:3815
 AliChaoticity.cxx:3816
 AliChaoticity.cxx:3817
 AliChaoticity.cxx:3818
 AliChaoticity.cxx:3819
 AliChaoticity.cxx:3820
 AliChaoticity.cxx:3821
 AliChaoticity.cxx:3822
 AliChaoticity.cxx:3823
 AliChaoticity.cxx:3824
 AliChaoticity.cxx:3825
 AliChaoticity.cxx:3826
 AliChaoticity.cxx:3827
 AliChaoticity.cxx:3828
 AliChaoticity.cxx:3829
 AliChaoticity.cxx:3830
 AliChaoticity.cxx:3831
 AliChaoticity.cxx:3832
 AliChaoticity.cxx:3833
 AliChaoticity.cxx:3834
 AliChaoticity.cxx:3835
 AliChaoticity.cxx:3836
 AliChaoticity.cxx:3837
 AliChaoticity.cxx:3838
 AliChaoticity.cxx:3839
 AliChaoticity.cxx:3840
 AliChaoticity.cxx:3841
 AliChaoticity.cxx:3842
 AliChaoticity.cxx:3843
 AliChaoticity.cxx:3844
 AliChaoticity.cxx:3845
 AliChaoticity.cxx:3846
 AliChaoticity.cxx:3847
 AliChaoticity.cxx:3848
 AliChaoticity.cxx:3849
 AliChaoticity.cxx:3850
 AliChaoticity.cxx:3851
 AliChaoticity.cxx:3852
 AliChaoticity.cxx:3853
 AliChaoticity.cxx:3854
 AliChaoticity.cxx:3855
 AliChaoticity.cxx:3856
 AliChaoticity.cxx:3857
 AliChaoticity.cxx:3858
 AliChaoticity.cxx:3859
 AliChaoticity.cxx:3860
 AliChaoticity.cxx:3861
 AliChaoticity.cxx:3862
 AliChaoticity.cxx:3863
 AliChaoticity.cxx:3864
 AliChaoticity.cxx:3865
 AliChaoticity.cxx:3866
 AliChaoticity.cxx:3867
 AliChaoticity.cxx:3868
 AliChaoticity.cxx:3869
 AliChaoticity.cxx:3870
 AliChaoticity.cxx:3871
 AliChaoticity.cxx:3872
 AliChaoticity.cxx:3873
 AliChaoticity.cxx:3874
 AliChaoticity.cxx:3875
 AliChaoticity.cxx:3876
 AliChaoticity.cxx:3877
 AliChaoticity.cxx:3878
 AliChaoticity.cxx:3879
 AliChaoticity.cxx:3880
 AliChaoticity.cxx:3881
 AliChaoticity.cxx:3882
 AliChaoticity.cxx:3883
 AliChaoticity.cxx:3884
 AliChaoticity.cxx:3885
 AliChaoticity.cxx:3886
 AliChaoticity.cxx:3887
 AliChaoticity.cxx:3888
 AliChaoticity.cxx:3889
 AliChaoticity.cxx:3890
 AliChaoticity.cxx:3891
 AliChaoticity.cxx:3892
 AliChaoticity.cxx:3893
 AliChaoticity.cxx:3894
 AliChaoticity.cxx:3895
 AliChaoticity.cxx:3896
 AliChaoticity.cxx:3897
 AliChaoticity.cxx:3898
 AliChaoticity.cxx:3899
 AliChaoticity.cxx:3900
 AliChaoticity.cxx:3901
 AliChaoticity.cxx:3902
 AliChaoticity.cxx:3903
 AliChaoticity.cxx:3904
 AliChaoticity.cxx:3905
 AliChaoticity.cxx:3906
 AliChaoticity.cxx:3907
 AliChaoticity.cxx:3908
 AliChaoticity.cxx:3909
 AliChaoticity.cxx:3910
 AliChaoticity.cxx:3911
 AliChaoticity.cxx:3912
 AliChaoticity.cxx:3913
 AliChaoticity.cxx:3914
 AliChaoticity.cxx:3915
 AliChaoticity.cxx:3916
 AliChaoticity.cxx:3917
 AliChaoticity.cxx:3918
 AliChaoticity.cxx:3919
 AliChaoticity.cxx:3920
 AliChaoticity.cxx:3921
 AliChaoticity.cxx:3922
 AliChaoticity.cxx:3923
 AliChaoticity.cxx:3924
 AliChaoticity.cxx:3925
 AliChaoticity.cxx:3926
 AliChaoticity.cxx:3927
 AliChaoticity.cxx:3928
 AliChaoticity.cxx:3929
 AliChaoticity.cxx:3930
 AliChaoticity.cxx:3931
 AliChaoticity.cxx:3932
 AliChaoticity.cxx:3933
 AliChaoticity.cxx:3934
 AliChaoticity.cxx:3935
 AliChaoticity.cxx:3936
 AliChaoticity.cxx:3937
 AliChaoticity.cxx:3938
 AliChaoticity.cxx:3939
 AliChaoticity.cxx:3940
 AliChaoticity.cxx:3941
 AliChaoticity.cxx:3942
 AliChaoticity.cxx:3943
 AliChaoticity.cxx:3944
 AliChaoticity.cxx:3945
 AliChaoticity.cxx:3946
 AliChaoticity.cxx:3947
 AliChaoticity.cxx:3948
 AliChaoticity.cxx:3949
 AliChaoticity.cxx:3950
 AliChaoticity.cxx:3951
 AliChaoticity.cxx:3952
 AliChaoticity.cxx:3953
 AliChaoticity.cxx:3954
 AliChaoticity.cxx:3955
 AliChaoticity.cxx:3956
 AliChaoticity.cxx:3957
 AliChaoticity.cxx:3958
 AliChaoticity.cxx:3959
 AliChaoticity.cxx:3960
 AliChaoticity.cxx:3961
 AliChaoticity.cxx:3962
 AliChaoticity.cxx:3963
 AliChaoticity.cxx:3964
 AliChaoticity.cxx:3965
 AliChaoticity.cxx:3966
 AliChaoticity.cxx:3967
 AliChaoticity.cxx:3968
 AliChaoticity.cxx:3969
 AliChaoticity.cxx:3970
 AliChaoticity.cxx:3971
 AliChaoticity.cxx:3972
 AliChaoticity.cxx:3973
 AliChaoticity.cxx:3974
 AliChaoticity.cxx:3975
 AliChaoticity.cxx:3976
 AliChaoticity.cxx:3977
 AliChaoticity.cxx:3978
 AliChaoticity.cxx:3979
 AliChaoticity.cxx:3980
 AliChaoticity.cxx:3981
 AliChaoticity.cxx:3982
 AliChaoticity.cxx:3983
 AliChaoticity.cxx:3984
 AliChaoticity.cxx:3985
 AliChaoticity.cxx:3986
 AliChaoticity.cxx:3987
 AliChaoticity.cxx:3988
 AliChaoticity.cxx:3989
 AliChaoticity.cxx:3990
 AliChaoticity.cxx:3991
 AliChaoticity.cxx:3992
 AliChaoticity.cxx:3993
 AliChaoticity.cxx:3994
 AliChaoticity.cxx:3995
 AliChaoticity.cxx:3996
 AliChaoticity.cxx:3997
 AliChaoticity.cxx:3998
 AliChaoticity.cxx:3999
 AliChaoticity.cxx:4000
 AliChaoticity.cxx:4001
 AliChaoticity.cxx:4002
 AliChaoticity.cxx:4003
 AliChaoticity.cxx:4004
 AliChaoticity.cxx:4005
 AliChaoticity.cxx:4006
 AliChaoticity.cxx:4007
 AliChaoticity.cxx:4008
 AliChaoticity.cxx:4009
 AliChaoticity.cxx:4010
 AliChaoticity.cxx:4011
 AliChaoticity.cxx:4012
 AliChaoticity.cxx:4013
 AliChaoticity.cxx:4014
 AliChaoticity.cxx:4015
 AliChaoticity.cxx:4016
 AliChaoticity.cxx:4017
 AliChaoticity.cxx:4018
 AliChaoticity.cxx:4019
 AliChaoticity.cxx:4020
 AliChaoticity.cxx:4021
 AliChaoticity.cxx:4022
 AliChaoticity.cxx:4023
 AliChaoticity.cxx:4024
 AliChaoticity.cxx:4025
 AliChaoticity.cxx:4026
 AliChaoticity.cxx:4027
 AliChaoticity.cxx:4028
 AliChaoticity.cxx:4029
 AliChaoticity.cxx:4030
 AliChaoticity.cxx:4031
 AliChaoticity.cxx:4032
 AliChaoticity.cxx:4033
 AliChaoticity.cxx:4034
 AliChaoticity.cxx:4035
 AliChaoticity.cxx:4036
 AliChaoticity.cxx:4037
 AliChaoticity.cxx:4038
 AliChaoticity.cxx:4039
 AliChaoticity.cxx:4040
 AliChaoticity.cxx:4041
 AliChaoticity.cxx:4042
 AliChaoticity.cxx:4043
 AliChaoticity.cxx:4044
 AliChaoticity.cxx:4045
 AliChaoticity.cxx:4046
 AliChaoticity.cxx:4047
 AliChaoticity.cxx:4048
 AliChaoticity.cxx:4049
 AliChaoticity.cxx:4050
 AliChaoticity.cxx:4051
 AliChaoticity.cxx:4052
 AliChaoticity.cxx:4053
 AliChaoticity.cxx:4054
 AliChaoticity.cxx:4055
 AliChaoticity.cxx:4056
 AliChaoticity.cxx:4057
 AliChaoticity.cxx:4058
 AliChaoticity.cxx:4059
 AliChaoticity.cxx:4060
 AliChaoticity.cxx:4061
 AliChaoticity.cxx:4062
 AliChaoticity.cxx:4063
 AliChaoticity.cxx:4064
 AliChaoticity.cxx:4065
 AliChaoticity.cxx:4066
 AliChaoticity.cxx:4067
 AliChaoticity.cxx:4068
 AliChaoticity.cxx:4069
 AliChaoticity.cxx:4070
 AliChaoticity.cxx:4071
 AliChaoticity.cxx:4072
 AliChaoticity.cxx:4073
 AliChaoticity.cxx:4074
 AliChaoticity.cxx:4075
 AliChaoticity.cxx:4076
 AliChaoticity.cxx:4077
 AliChaoticity.cxx:4078
 AliChaoticity.cxx:4079
 AliChaoticity.cxx:4080
 AliChaoticity.cxx:4081
 AliChaoticity.cxx:4082
 AliChaoticity.cxx:4083
 AliChaoticity.cxx:4084
 AliChaoticity.cxx:4085
 AliChaoticity.cxx:4086
 AliChaoticity.cxx:4087
 AliChaoticity.cxx:4088
 AliChaoticity.cxx:4089
 AliChaoticity.cxx:4090
 AliChaoticity.cxx:4091
 AliChaoticity.cxx:4092
 AliChaoticity.cxx:4093
 AliChaoticity.cxx:4094
 AliChaoticity.cxx:4095
 AliChaoticity.cxx:4096
 AliChaoticity.cxx:4097
 AliChaoticity.cxx:4098
 AliChaoticity.cxx:4099
 AliChaoticity.cxx:4100
 AliChaoticity.cxx:4101
 AliChaoticity.cxx:4102
 AliChaoticity.cxx:4103
 AliChaoticity.cxx:4104
 AliChaoticity.cxx:4105
 AliChaoticity.cxx:4106
 AliChaoticity.cxx:4107
 AliChaoticity.cxx:4108
 AliChaoticity.cxx:4109
 AliChaoticity.cxx:4110
 AliChaoticity.cxx:4111
 AliChaoticity.cxx:4112
 AliChaoticity.cxx:4113
 AliChaoticity.cxx:4114
 AliChaoticity.cxx:4115
 AliChaoticity.cxx:4116
 AliChaoticity.cxx:4117
 AliChaoticity.cxx:4118
 AliChaoticity.cxx:4119
 AliChaoticity.cxx:4120
 AliChaoticity.cxx:4121
 AliChaoticity.cxx:4122
 AliChaoticity.cxx:4123
 AliChaoticity.cxx:4124
 AliChaoticity.cxx:4125
 AliChaoticity.cxx:4126
 AliChaoticity.cxx:4127
 AliChaoticity.cxx:4128
 AliChaoticity.cxx:4129
 AliChaoticity.cxx:4130
 AliChaoticity.cxx:4131
 AliChaoticity.cxx:4132
 AliChaoticity.cxx:4133
 AliChaoticity.cxx:4134
 AliChaoticity.cxx:4135
 AliChaoticity.cxx:4136
 AliChaoticity.cxx:4137
 AliChaoticity.cxx:4138
 AliChaoticity.cxx:4139
 AliChaoticity.cxx:4140
 AliChaoticity.cxx:4141
 AliChaoticity.cxx:4142
 AliChaoticity.cxx:4143
 AliChaoticity.cxx:4144
 AliChaoticity.cxx:4145
 AliChaoticity.cxx:4146
 AliChaoticity.cxx:4147
 AliChaoticity.cxx:4148
 AliChaoticity.cxx:4149
 AliChaoticity.cxx:4150
 AliChaoticity.cxx:4151
 AliChaoticity.cxx:4152
 AliChaoticity.cxx:4153
 AliChaoticity.cxx:4154
 AliChaoticity.cxx:4155
 AliChaoticity.cxx:4156
 AliChaoticity.cxx:4157
 AliChaoticity.cxx:4158
 AliChaoticity.cxx:4159
 AliChaoticity.cxx:4160
 AliChaoticity.cxx:4161
 AliChaoticity.cxx:4162
 AliChaoticity.cxx:4163
 AliChaoticity.cxx:4164
 AliChaoticity.cxx:4165
 AliChaoticity.cxx:4166
 AliChaoticity.cxx:4167
 AliChaoticity.cxx:4168
 AliChaoticity.cxx:4169
 AliChaoticity.cxx:4170
 AliChaoticity.cxx:4171
 AliChaoticity.cxx:4172
 AliChaoticity.cxx:4173
 AliChaoticity.cxx:4174
 AliChaoticity.cxx:4175
 AliChaoticity.cxx:4176
 AliChaoticity.cxx:4177
 AliChaoticity.cxx:4178
 AliChaoticity.cxx:4179
 AliChaoticity.cxx:4180
 AliChaoticity.cxx:4181
 AliChaoticity.cxx:4182
 AliChaoticity.cxx:4183
 AliChaoticity.cxx:4184
 AliChaoticity.cxx:4185
 AliChaoticity.cxx:4186
 AliChaoticity.cxx:4187
 AliChaoticity.cxx:4188
 AliChaoticity.cxx:4189
 AliChaoticity.cxx:4190
 AliChaoticity.cxx:4191
 AliChaoticity.cxx:4192
 AliChaoticity.cxx:4193
 AliChaoticity.cxx:4194
 AliChaoticity.cxx:4195
 AliChaoticity.cxx:4196
 AliChaoticity.cxx:4197
 AliChaoticity.cxx:4198
 AliChaoticity.cxx:4199
 AliChaoticity.cxx:4200
 AliChaoticity.cxx:4201
 AliChaoticity.cxx:4202
 AliChaoticity.cxx:4203
 AliChaoticity.cxx:4204
 AliChaoticity.cxx:4205
 AliChaoticity.cxx:4206
 AliChaoticity.cxx:4207
 AliChaoticity.cxx:4208
 AliChaoticity.cxx:4209
 AliChaoticity.cxx:4210
 AliChaoticity.cxx:4211
 AliChaoticity.cxx:4212
 AliChaoticity.cxx:4213
 AliChaoticity.cxx:4214
 AliChaoticity.cxx:4215
 AliChaoticity.cxx:4216
 AliChaoticity.cxx:4217
 AliChaoticity.cxx:4218
 AliChaoticity.cxx:4219
 AliChaoticity.cxx:4220
 AliChaoticity.cxx:4221
 AliChaoticity.cxx:4222
 AliChaoticity.cxx:4223
 AliChaoticity.cxx:4224
 AliChaoticity.cxx:4225
 AliChaoticity.cxx:4226
 AliChaoticity.cxx:4227
 AliChaoticity.cxx:4228
 AliChaoticity.cxx:4229
 AliChaoticity.cxx:4230
 AliChaoticity.cxx:4231
 AliChaoticity.cxx:4232
 AliChaoticity.cxx:4233
 AliChaoticity.cxx:4234
 AliChaoticity.cxx:4235
 AliChaoticity.cxx:4236
 AliChaoticity.cxx:4237
 AliChaoticity.cxx:4238
 AliChaoticity.cxx:4239
 AliChaoticity.cxx:4240
 AliChaoticity.cxx:4241
 AliChaoticity.cxx:4242
 AliChaoticity.cxx:4243
 AliChaoticity.cxx:4244
 AliChaoticity.cxx:4245
 AliChaoticity.cxx:4246
 AliChaoticity.cxx:4247
 AliChaoticity.cxx:4248
 AliChaoticity.cxx:4249
 AliChaoticity.cxx:4250
 AliChaoticity.cxx:4251
 AliChaoticity.cxx:4252
 AliChaoticity.cxx:4253
 AliChaoticity.cxx:4254
 AliChaoticity.cxx:4255
 AliChaoticity.cxx:4256
 AliChaoticity.cxx:4257
 AliChaoticity.cxx:4258
 AliChaoticity.cxx:4259
 AliChaoticity.cxx:4260
 AliChaoticity.cxx:4261
 AliChaoticity.cxx:4262
 AliChaoticity.cxx:4263
 AliChaoticity.cxx:4264
 AliChaoticity.cxx:4265
 AliChaoticity.cxx:4266
 AliChaoticity.cxx:4267
 AliChaoticity.cxx:4268
 AliChaoticity.cxx:4269
 AliChaoticity.cxx:4270
 AliChaoticity.cxx:4271
 AliChaoticity.cxx:4272
 AliChaoticity.cxx:4273
 AliChaoticity.cxx:4274
 AliChaoticity.cxx:4275
 AliChaoticity.cxx:4276
 AliChaoticity.cxx:4277
 AliChaoticity.cxx:4278
 AliChaoticity.cxx:4279
 AliChaoticity.cxx:4280
 AliChaoticity.cxx:4281
 AliChaoticity.cxx:4282
 AliChaoticity.cxx:4283
 AliChaoticity.cxx:4284
 AliChaoticity.cxx:4285
 AliChaoticity.cxx:4286
 AliChaoticity.cxx:4287
 AliChaoticity.cxx:4288
 AliChaoticity.cxx:4289
 AliChaoticity.cxx:4290
 AliChaoticity.cxx:4291
 AliChaoticity.cxx:4292
 AliChaoticity.cxx:4293
 AliChaoticity.cxx:4294
 AliChaoticity.cxx:4295
 AliChaoticity.cxx:4296
 AliChaoticity.cxx:4297
 AliChaoticity.cxx:4298
 AliChaoticity.cxx:4299
 AliChaoticity.cxx:4300
 AliChaoticity.cxx:4301
 AliChaoticity.cxx:4302
 AliChaoticity.cxx:4303
 AliChaoticity.cxx:4304
 AliChaoticity.cxx:4305
 AliChaoticity.cxx:4306
 AliChaoticity.cxx:4307
 AliChaoticity.cxx:4308
 AliChaoticity.cxx:4309
 AliChaoticity.cxx:4310
 AliChaoticity.cxx:4311
 AliChaoticity.cxx:4312
 AliChaoticity.cxx:4313
 AliChaoticity.cxx:4314
 AliChaoticity.cxx:4315
 AliChaoticity.cxx:4316
 AliChaoticity.cxx:4317
 AliChaoticity.cxx:4318
 AliChaoticity.cxx:4319