]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/JCORRAN/AliAnalysisTaskDiHadron.h
fixed coding violations (Jason)
[u/mrichter/AliRoot.git] / PWG4 / JCORRAN / AliAnalysisTaskDiHadron.h
index 0dbf6810f66bfc623f3117622dfa457518ac9007..82df1c45b877f9fbdafecba708be38475141e940 100755 (executable)
@@ -1,15 +1,32 @@
-#ifndef AliAnalysisTaskDiHadron_cxx
-#define AliAnalysisTaskDiHadron_cxx
-
-
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ *                                                                        *
+ * Author: The ALICE Off-line Project.                                    *
+ * Contributors are mentioned in the code where appropriate.              *
+ *                                                                        *
+ * Permission to use, copy, modify and distribute this software and its   *
+ * documentation strictly for non-commercial purposes is hereby granted   *
+ * without fee, provided that the above copyright notice appears in all   *
+ * copies and that both the copyright notice and this permission notice   *
+ * appear in the supporting documentation. The authors make no claims     *
+ * about the suitability of this software for any purpose. It is          *
+ * provided "as is" without express or implied warranty.                  *
+ **************************************************************************/
+
+//2- and 3-particle trigger particle correlation analysis
+//Author: Jason Glyndwr Ulery, ulery@uni-frankfurt.de
+//version 3.4, last revised 2010/08/15
+
+#ifndef ALIANALYSISTASKDIHADRON_H
+#define ALIANALYSISTASKDIHADRON_H
+
+
+class TF1;
 class TH1F;
 class TH2F;
 class TH3F;
 class AliESDEvent;
 
-#include "TH1.h"
-#include "TH2.h"
-#include "TH3.h"
 #include "AliAnalysisTask.h"
 
 
@@ -33,186 +50,186 @@ class AliAnalysisTaskDiHadron : public AliAnalysisTask{
   virtual void Terminate(Option_t *);
  
 
-  void SetEfficiencies(Float_t EffFitPt, TF1 *FitLow, TF1 *FitHigh, Int_t NFitLowParam, Int_t NFitHighParam, Float_t *FitLowParam, Float_t *FitHighParam);
+  void SetEfficiencies(Float_t EffFitPt, const TF1 *FitLow, const TF1 *FitHigh, Int_t NFitLowParam, Int_t NFitHighParam, Float_t *FitLowParam, Float_t *FitHighParam);
   void SetBins(Int_t nBinPhi, Int_t nBinEta, Int_t nBinPhiEtaPhi, Int_t nBinPhiEtaEta, Int_t nBinPhi3, Int_t nBinEta3, Float_t dPhiMin, Float_t dPhiMax, Int_t NTPtBins, Int_t NMixBins, Int_t NCentBins,Int_t NAPtBins, Int_t NAPt3Bins, Int_t NVertexBins, Int_t NXEBin,Float_t *PtTrigArray, Float_t *PtAssocArray, Float_t *PtAssoc3Array1, Float_t *PtAssoc3Array2, Int_t *CentArrayMin, Int_t *CentArrayMax, Float_t *XEArray);
-  void SetOptions(Int_t fEfficiencyCorr, Int_t DEBUG,Int_t fMCHistos);
-  void SetCuts(Int_t MinClutersTPC, Float_t MinClusterRatio, Float_t MaxTPCchi2, Int_t MinClustersITS, Float_t EtaCut, Float_t TrigEtaCut, Float_t NearPhiCut, Float_t XECut, Float_t MaxDCA, Float_t MaxDCAXY, Float_t MaxDCAZ, Int_t DCA2D, Int_t TPCRefit, Int_t ITSRefit, Int_t SPDCut, Float_t MinPtAssoc, Float_t MaxPtAssoc, Float_t VzCut, Int_t NIDs, char *TrigIDArray);
-  Int_t CheckVertex(AliESDEvent *rESD);
-  Int_t CheckTrigger(AliESDEvent *rESD);
-  Int_t TrackCuts(AliESDEvent *rESD, Float_t *rPt, Float_t *rEta, Float_t *rPhi, Short_t *rCharge, Float_t *rEff, Int_t **rPtAssoc3, Int_t *rNPtAssoc3, Int_t *rGoodTracks);
+  void SetOptions(Int_t fEfficiencyCorr, Int_t fDEBUG,Int_t fMCHistos);
+  void SetCuts(Int_t MinClutersTPC, Float_t MinClusterRatio, Float_t MaxTPCchi2, Int_t MinClustersITS, Float_t EtaCut, Float_t TrigEtaCut, Float_t NearPhiCut, Float_t XECut, Float_t MaxDCA, Float_t MaxDCAXY, Float_t MaxDCAZ, Int_t DCA2D, Int_t TPCRefit, Int_t ITSRefit, Int_t SPDCut, Float_t MinPtAssoc, Float_t MaxPtAssoc, Float_t VzCut, Int_t NIDs, const char *TrigIDArray);
+  Int_t CheckVertex(const AliESDEvent *rESD);
+  Int_t CheckTrigger(const AliESDEvent *rESD);
+  Int_t TrackCuts(const AliESDEvent *rESD, Float_t *rPt, Float_t *rEta, Float_t *rPhi, Short_t *rCharge, Float_t *rEff, Int_t **rPtAssoc3, Int_t *rNPtAssoc3, Int_t *rGoodTracks);
   Int_t TrackCutsMC(AliMCEvent *rMC, Float_t *rPt, Float_t *rEta, Float_t *rPhi, Short_t *rCharge, Float_t *rEff, Int_t **rPtAssoc3, Int_t *rNPtAssoc3, Int_t *rGoodTracks);
 
   
  private:
 
 //Maximum numbers for creating the arrays
-  enum{NUMBER_OF_PT_BINS=20, 
-       NUMBER_OF_CENT_BINS=10, 
-       NUMBER_OF_APT_BINS=50,
-       NUMBER_OF_APT3_BINS=50,
-       NUMBER_OF_TRIGGER_IDS=10,
-       NUMBER_OF_VERTEX_BINS=20,
-       NUMBER_OF_XE_BINS=20,
-       NUMBER_OF_EVENTS_TO_MIX=100};
+  enum{kNumberOfPtBins=20, 
+       kNumberOfCentBins=10, 
+       kNumberOfAPtBins=50,
+       kNumberOfApt3Bins=50,
+       kNumberOfTriggerIDs=10,
+       kNumberOfVertexBins=20,
+       kNumberOfXeBins=20,
+       kNumberOfEventsToMix=100};
   // virtual void SetParameters();
-  AliESDEvent *fESD;
-  AliMCEvent *fMC;
-  TList *fOutput;
+  AliESDEvent *fESD; //ESD data file
+  AliMCEvent *fMC;//Monty Carlo event file
+  TList *fOutput;//List used to store all the histograms for output
   
    //Cuts
   
-    Int_t fMinClustersTPC;
-    Float_t fMinClusterRatio;
-    Float_t fMaxTPCchi2;
-    Int_t fMinClustersITS;
-    Float_t fEtaCut;
-    Float_t fTrigEtaCut;
-    Float_t fNearPhiCut;
-    Float_t fXECut;
-    Float_t fMaxDCA;
-    Float_t fMaxDCAXY;
-    Float_t fMaxDCAZ;
-    Int_t fDCA2D;
-    Int_t fTPCRefit;
-    Int_t fITSRefit;
-    Int_t fSPDCut;
-    Float_t fMinPtAssoc;
-    Float_t fMaxPtAssoc;
-    Float_t fVzCut;
+  Int_t fMinClustersTPC;//Minimum Clusters in the TPC
+  Float_t fMinClusterRatio;//Ratio of MinClusters to Number of Possible Clusters in TPC
+  Float_t fMaxTPCchi2;//Max chi^2/ndf for TPC fit
+  Int_t fMinClustersITS;//Minimum Clusters in ITS
+  Float_t fEtaCut;//Associated particle eta range |eta|<fEtaCut
+  Float_t fTrigEtaCut;//Trigger particle eta range |eta|<fTrigEtaCut (should be <=fEtaCut)
+  Float_t fNearPhiCut;//Point in DeltaPhi seperating near and away sides
+  Float_t fXECut;//Point in DeltaPhi seperating near and away for XE (not finished)
+  Float_t fMaxDCA;//Max total DCA (if fDCA2D==0) (in cm)
+  Float_t fMaxDCAXY;//Max radial DCA (if fDCA2D==1)
+  Float_t fMaxDCAZ;//Max longitudional DCA (if fDCA2D==1)
+  Int_t fDCA2D;//1 cut on total DCA, 2 cut seperately on radial and logitudional, 3 pt dependent cut
+  Int_t fTPCRefit;//1 require TPCRefit 0 not
+  Int_t fITSRefit;//1 require ITSRefit 0 not
+  Int_t fSPDCut;//1 require a point in the SPD 0 not
+  Float_t fMinPtAssoc;//Minimum pT to look at 
+  Float_t fMaxPtAssoc;//Maximum pT to look at  
+  Float_t fVzCut;//z-vertex cut |z-vertex|<fVzCut in cm
     Int_t fEfficiencyCorr;//Toggle correcting of efficiencies when filling histograms
-    Int_t DEBUG;
+    Int_t fDEBUG;//if 1 extra printfs for debugging
 
     //Binning
-    Int_t fnBinPhi;
-    Int_t fnBinEta;
-    Int_t fnBinPhiEtaPhi;
-    Int_t fnBinPhiEtaEta;
-    Int_t fnBinPhi3;
-    Int_t fnBinEta3;
-    Float_t fPi;
-    Float_t fdPhiMin;
-    Float_t fdPhiMax;
+    Int_t fnBinPhi;//Number of bins for DeltaPhi histograms
+    Int_t fnBinEta;//Number of bins for DeltaEta histograms
+    Int_t fnBinPhiEtaPhi;//Number of bins for DeltaPhi-DeltaEta histograms in Phi
+    Int_t fnBinPhiEtaEta;//Number of bins for DeltaPhi-DeltaEta histograms in Eta
+    Int_t fnBinPhi3;//Number of bins in 3-particle DeltaPhi-DeltaPhi (along each axis)
+    Int_t fnBinEta3;//Number of bins in 3-particle DeltaEta-DeltaEta (along each axis)
+    Float_t fPi;//Pi=3.14....
+    Float_t fdPhiMin;//lowest edge of the first bin in DeltaPhi plots
+    Float_t fdPhiMax;//maximum in DeltaPhi plots (should be 2*Pi+fdPhiMin)
 
     //Parameters for settings
-    Int_t fNTPtBins;
-    Int_t fNMix;
-    Int_t fNCentBins;
-    Int_t fNAPtBins;
-    Int_t fNAPt3Bins;
-    Int_t fNVertexBins;
-    Int_t fNXEBins;
-    Int_t fNIDs;
-    Float_t fEffFitPt;
-    Int_t fNFitLowParam;
-    Int_t fNFitHighParam;
-    Int_t fMCHistos;
-    Int_t fNFitLow;
-    Int_t fNFitHigh;
-
-    TF1 *fFitLow;
-    TF1 *fFitHigh;
-    Float_t *fFitLowParam; 
-    Float_t *fFitHighParam;
-    Float_t *fPtTrigArray;
-
-    Float_t *fPtAssocArray;
-    Float_t *fPtAssoc3Array1;
-    Float_t *fPtAssoc3Array2; 
-    Int_t *fCentArrayMin;
-    Int_t *fCentArrayMax;
-    Float_t *fXEArray;
-    char *fTrigIDArray;
+    Int_t fNTPtBins;//Number of trigger pt bins
+    Int_t fNMix;//Number of events to mix
+    Int_t fNCentBins;//Number of centrality bins (they are allowed to overlap)
+    Int_t fNAPtBins;//Number of associated particle bins for 2-particle correlations (overlap not allowed)
+    Int_t fNAPt3Bins;//Number of associated particle bins for 3-particle correlations (overlap allowed)
+    Int_t fNVertexBins;//Number of bins in z-vertex for mixing
+    Int_t fNXEBins;//Number of bins for XE distribution (not finished)
+    Int_t fNIDs;//Number of trigger IDs (such as CINT1B)
+    Float_t fEffFitPt;//Pt cut used to divide efficiciency fits into low and high pt
+    Int_t fNFitLowParam;//Number of fit parameters for low pt efficeincy fit
+    Int_t fNFitHighParam;//Number of fit parameters for high pt efficeincy fit
+    Int_t fMCHistos;//Toggle whether to make Monty Carlo histograms (if made and ran on data will simply be empty not cause a crash)
+
+    TF1 *fFitLow;//Low pt efficiency fit function
+    TF1 *fFitHigh;//High pt efficiency fit function
+    Float_t *fFitLowParam; //fit parameters for low pt efficiency fit function
+    Float_t *fFitHighParam;//fit parameters for high pt efficiency fit function
+
+    Float_t *fPtTrigArray;//Array for trigger pt bins
+    Float_t *fPtAssocArray;//Array for associated pt bins (2-particle correlations)
+    //2 arrays to allow overlaping bins
+    Float_t *fPtAssoc3Array1;//lower bin edge for 3-particle correlations associated pt bins 
+    Float_t *fPtAssoc3Array2; //upper bin eged for 3-particle correlations associated pt bins
+    //2 arrays to allow oeverlaping bins 
+    Int_t *fCentArrayMin;//lower bin edge for centrality bins (based on SPD tracklet multiplicity)
+    Int_t *fCentArrayMax;//upper bin edge for centraily bins
+    Float_t *fXEArray;//XE bin array
+    char *fTrigIDArray;//array of trigger ids (such as CINT1B)
     
-    Float_t fVertexArray[(NUMBER_OF_VERTEX_BINS+1)];
+    Float_t fVertexArray[(kNumberOfVertexBins+1)];//array for dividing z vertex into bins for event mixing
   
   //Histograms
-  TH1F *fHistPt[NUMBER_OF_CENT_BINS][2];
-  TH1F *fHistPtEff[NUMBER_OF_CENT_BINS][2];
-  TH1F *fHistPtTrig[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
-  TH1F *fHistMult[2];
-  TH1F *fHistMultTrig[NUMBER_OF_PT_BINS][2];
+    TH1F *fHistPt[kNumberOfCentBins][2];//Pt Distribution of tracks (no efficency correction)
+    TH1F *fHistPtEff[kNumberOfCentBins][2];//Pt Distribution of tracks (efficnecy corrected if set)
+    TH1F *fHistPtTrig[kNumberOfPtBins][kNumberOfCentBins][2];//Pt Distributions of tracks from triggered events
+    TH1F *fHistMult[2];//Multipuliciy Distributions
+    TH1F *fHistMultTrig[kNumberOfPtBins][2];//Multiplicity Distributions of triggered events
 
-  TH2F *fHistPhi[NUMBER_OF_CENT_BINS][2];
-  TH2F *fHistPhiTrig[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
-  TH2F *fHistDeltaPhi[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
-  TH2F *fHistDeltaPhiMix[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
+    TH2F *fHistPhi[kNumberOfCentBins][2];//Phi Distributions of tracks
+    TH2F *fHistPhiTrig[kNumberOfPtBins][kNumberOfCentBins][2];//Phi Distributions fo tracks in triggered events
+    TH2F *fHistDeltaPhi[kNumberOfPtBins][kNumberOfCentBins][3][2];//DeltaPhi 2-particle distributions
+    TH2F *fHistDeltaPhiMix[kNumberOfPtBins][kNumberOfCentBins][3][2];//DeltaPhi 2-particle distributions from mixed events
 
-  TH2F *fHistPhiPt[NUMBER_OF_CENT_BINS][2];
-  TH2F *fHistPhiTrigPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
-  TH2F *fHistDeltaPhiPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
-  TH2F *fHistDeltaPhiMixPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
+    TH2F *fHistPhiPt[kNumberOfCentBins][2];//Pt weighed phi distributions
+    TH2F *fHistPhiTrigPt[kNumberOfPtBins][kNumberOfCentBins][2];//Pt weighted phi distributions from triggered events
+    TH2F *fHistDeltaPhiPt[kNumberOfPtBins][kNumberOfCentBins][3][2];//DeltaPhi 2-partricle pt weighted distributions
+    TH2F *fHistDeltaPhiMixPt[kNumberOfPtBins][kNumberOfCentBins][3][2];//DeltaPhi 2-particle pt weigthed distributions from mixed events
 
-  TH2F *fHistEta[NUMBER_OF_CENT_BINS][2];
-  TH2F *fHistEtaTrig[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
+    TH2F *fHistEta[kNumberOfCentBins][2];//Eta distributions
+    TH2F *fHistEtaTrig[kNumberOfPtBins][kNumberOfCentBins][2];//Eta distributions from mixed events
 
-  TH2F *fHistEtaPt[NUMBER_OF_CENT_BINS][2];
-  TH2F *fHistEtaTrigPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
+    TH2F *fHistEtaPt[kNumberOfCentBins][2];//Pt-weighted Eta distributions
+    TH2F *fHistEtaTrigPt[kNumberOfPtBins][kNumberOfCentBins][2];//Pt-weighted Eta diestibutions from mixed events
 
-  TH2F *fHistDeltaEtaN[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
-  TH2F *fHistDeltaEtaNMix[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
+    TH2F *fHistDeltaEtaN[kNumberOfPtBins][kNumberOfCentBins][3][2];//Near-side 2-particle DeltaEta distributions
+    TH2F *fHistDeltaEtaNMix[kNumberOfPtBins][kNumberOfCentBins][3][2];//Near-side 2-particle DeltaEta distributions from mxied events
 
-  TH2F *fHistDeltaEtaNPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
-  TH2F *fHistDeltaEtaNMixPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
+    TH2F *fHistDeltaEtaNPt[kNumberOfPtBins][kNumberOfCentBins][3][2];//Near-side pt weighted 2-particle DeltaEta distributions
+    TH2F *fHistDeltaEtaNMixPt[kNumberOfPtBins][kNumberOfCentBins][3][2];//Near-side pt-weighted 2-particle DeltaEta distributions from mixed events
 
-  TH2F *fHistDeltaEtaA[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
-  TH2F *fHistDeltaEtaAMix[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
+    TH2F *fHistDeltaEtaA[kNumberOfPtBins][kNumberOfCentBins][3][2];//Away-side DeltaEta distributions
+    TH2F *fHistDeltaEtaAMix[kNumberOfPtBins][kNumberOfCentBins][3][2];//Away-side DeltaEta distributions from mixed events
 
-  TH2F *fHistDeltaEtaAPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
-  TH2F *fHistDeltaEtaAMixPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][3][2];
+    TH2F *fHistDeltaEtaAPt[kNumberOfPtBins][kNumberOfCentBins][3][2];//Away-side pt-weighted DeltaEta distributions from mixed events
+    TH2F *fHistDeltaEtaAMixPt[kNumberOfPtBins][kNumberOfCentBins][3][2];//Away-side pt-weigthed DeltaEta distributions from mixed events
 
-  TH1F *fHistNEvents[NUMBER_OF_CENT_BINS][2];
-  TH1F *fHistNTrigger[NUMBER_OF_CENT_BINS][2];
-  TH1F *fHistNTriggerPt[NUMBER_OF_CENT_BINS][2];
-  TH1F *fHistNMix[NUMBER_OF_CENT_BINS][2];
+    TH1F *fHistNEvents[kNumberOfCentBins][2];//Number of events count
+    TH1F *fHistNTrigger[kNumberOfCentBins][2];//Number of triggers count
+    TH1F *fHistNTriggerPt[kNumberOfCentBins][2];//Pt-weighted number of triggers count
+    TH1F *fHistNMix[kNumberOfCentBins][2];//Number of mixed events count
 
-  TH3F *fHistPhiEta[NUMBER_OF_CENT_BINS][2];
-  TH3F *fHistPhiEtaTrig[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
-  TH3F *fHistDeltaPhiEta[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
-  TH3F *fHistDeltaPhiEtaMix[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
+    TH3F *fHistPhiEta[kNumberOfCentBins][2];//Phi-Eta distributions
+    TH3F *fHistPhiEtaTrig[kNumberOfPtBins][kNumberOfCentBins][2];//Phi-Eta distributions in triggered events
+    TH3F *fHistDeltaPhiEta[kNumberOfPtBins][kNumberOfCentBins][2];//DeltaPhi-DeltaEta 2-particle distributions
+    TH3F *fHistDeltaPhiEtaMix[kNumberOfPtBins][kNumberOfCentBins][2];//DeltaPhi-DeltaEta 2-particle distributions from mixed events
 
-  TH3F *fHistPhiEtaPt[NUMBER_OF_CENT_BINS][2];
-  TH3F *fHistPhiEtaTrigPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
-  TH3F *fHistDeltaPhiEtaPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
-  TH3F *fHistDeltaPhiEtaMixPt[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
+    TH3F *fHistPhiEtaPt[kNumberOfCentBins][2];//Pt-weighted Phi-Eta distributions
+    TH3F *fHistPhiEtaTrigPt[kNumberOfPtBins][kNumberOfCentBins][2];//Pt-weighted Phi-Eta distributions from triggered events
+    TH3F *fHistDeltaPhiEtaPt[kNumberOfPtBins][kNumberOfCentBins][2];//Pt-weighted DeltaPhi-DeltaEta 2-particle distributions
+    TH3F *fHistDeltaPhiEtaMixPt[kNumberOfPtBins][kNumberOfCentBins][2];//Pt-weigthed DeltaPhi-DeltaEta 2-particle distributions from mixed events
 
-  TH1F *fHistXEN[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
-  TH1F *fHistXENMix[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
-  TH1F *fHistXEA[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
-  TH1F *fHistXEAMix[NUMBER_OF_PT_BINS][NUMBER_OF_CENT_BINS][2];
+    TH1F *fHistXEN[kNumberOfPtBins][kNumberOfCentBins][2];//XE Near-side (not finished)
+    TH1F *fHistXENMix[kNumberOfPtBins][kNumberOfCentBins][2];//XE near-side from mixed events (not finished)
+    TH1F *fHistXEA[kNumberOfPtBins][kNumberOfCentBins][2];//XE away-side (not finished)
+    TH1F *fHistXEAMix[kNumberOfPtBins][kNumberOfCentBins][2];//XE away-side from mxied events (not finished)
 
   //Three-Particle Histograms
-  TH2F *fHistDeltaPhiPhi[NUMBER_OF_PT_BINS][NUMBER_OF_APT3_BINS][NUMBER_OF_CENT_BINS][4][2];
-  TH2F *fHistDeltaPhiPhiMix[NUMBER_OF_PT_BINS][NUMBER_OF_APT3_BINS][NUMBER_OF_CENT_BINS][4][2];
-  TH2F *fHistDeltaPhiPhiSS[NUMBER_OF_PT_BINS][NUMBER_OF_APT3_BINS][NUMBER_OF_CENT_BINS][4][2];
-  TH2F *fHistDeltaEtaEta[NUMBER_OF_PT_BINS][NUMBER_OF_APT3_BINS][NUMBER_OF_CENT_BINS][4][2];
-  TH2F *fHistDeltaEtaEtaMix[NUMBER_OF_PT_BINS][NUMBER_OF_APT3_BINS][NUMBER_OF_CENT_BINS][4][2];
-  TH2F *fHistDeltaEtaEtaSS[NUMBER_OF_PT_BINS][NUMBER_OF_APT3_BINS][NUMBER_OF_CENT_BINS][4][2];
+    TH2F *fHistDeltaPhiPhi[kNumberOfPtBins][kNumberOfApt3Bins][kNumberOfCentBins][4][2];//DeltaPhi-DeltaPhi 3-particle distributions
+    TH2F *fHistDeltaPhiPhiMix[kNumberOfPtBins][kNumberOfApt3Bins][kNumberOfCentBins][4][2];//DeltaPhi-DeltaPhi 3-particle distributions from mixed events
+    TH2F *fHistDeltaPhiPhiSS[kNumberOfPtBins][kNumberOfApt3Bins][kNumberOfCentBins][4][2];//DeltaPhi-DeltaPhi 3-particle soft-soft background term (from mixing)
+    TH2F *fHistDeltaEtaEta[kNumberOfPtBins][kNumberOfApt3Bins][kNumberOfCentBins][4][2];//DeltaEta-DeltaEta 3-particle distributions
+    TH2F *fHistDeltaEtaEtaMix[kNumberOfPtBins][kNumberOfApt3Bins][kNumberOfCentBins][4][2];//DeltaEta-DeltaEta 3-particle distributions from Mixed Events
+    TH2F *fHistDeltaEtaEtaSS[kNumberOfPtBins][kNumberOfApt3Bins][kNumberOfCentBins][4][2];//DeltaEta-DeltaEta 3-particle distributions soft-soft background term (from mixing)
 
 
  
 
-  //Arrays for event mixing
-  Float_t *fMPt[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
-  Float_t *fMPhi[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2]; 
-  Int_t fMixTrack[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
-  Float_t *fMEta[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
-  Short_t *fMCharge[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
-   Float_t *fMEff[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
-  Int_t fMixPointer[NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
-  Int_t fMixEnd[NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2]; 
+  //Arrays for event mixing (only need parameters of tracks passing cuts kept)
+    Float_t *fMPt[kNumberOfEventsToMix][kNumberOfCentBins][kNumberOfVertexBins][2];//Pt array (mixed events)
+    Float_t *fMPhi[kNumberOfEventsToMix][kNumberOfCentBins][kNumberOfVertexBins][2]; //Phi array (mixed events)
+    Int_t fMixTrack[kNumberOfEventsToMix][kNumberOfCentBins][kNumberOfVertexBins][2];//Number of tracks in the event stored (mixed events)
+    Float_t *fMEta[kNumberOfEventsToMix][kNumberOfCentBins][kNumberOfVertexBins][2];//Eta Array (mixed events)
+    Short_t *fMCharge[kNumberOfEventsToMix][kNumberOfCentBins][kNumberOfVertexBins][2];//Charge array (mixed events)
+    Float_t *fMEff[kNumberOfEventsToMix][kNumberOfCentBins][kNumberOfVertexBins][2];//Efficiency correction array (mixed events)
+    Int_t fMixPointer[kNumberOfCentBins][kNumberOfVertexBins][2];//which event should be replaced with newest mixed event (mixed events)
+    Int_t fMixEnd[kNumberOfCentBins][kNumberOfVertexBins][2]; //current depth of mixed event pool (mixed events)
   //additional ones to speed up the 3-particle correlations
-  Short_t *fMPtAssoc3[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2][10];//using a bit extra memory fixing the pt bins to 10, but makes the arrays much easier
-  Short_t *fMNPtAssoc3[NUMBER_OF_EVENTS_TO_MIX][NUMBER_OF_CENT_BINS][NUMBER_OF_VERTEX_BINS][2];
+  Short_t *fMPtAssoc3[kNumberOfEventsToMix][kNumberOfCentBins][kNumberOfVertexBins][2][10];//which 3-particle pt bin(s) the track is in, using a bit extra memory fixing the pt bins to 10, but makes the arrays much easier (mixed events)
+  Short_t *fMNPtAssoc3[kNumberOfEventsToMix][kNumberOfCentBins][kNumberOfVertexBins][2];//number of 3-particle pt bins the track is in (mixed events)
   
 
   //Arrays for Main Events
-  Float_t *tPhi;
-  Float_t *tEta;
-  Float_t *tPt;
-  Short_t *tCharge;
-  Float_t *tEff;
-  Int_t **tPtAssoc3;
-  Int_t *tNPtAssoc3;
+  Float_t *ftPhi;//Phi array (current event)
+  Float_t *ftEta;//Eta array (current event)
+  Float_t *ftPt;//Pt Array (current event)
+  Short_t *ftCharge;//Charge Array (current event)
+  Float_t *ftEff;//Efficneicy Array (current event)
+  Int_t **ftPtAssoc3;//which 3-particle bins the track is in (current event)
+  Int_t *ftNPtAssoc3;//number of 3-particle bins the track is in (current event)
 
   AliAnalysisTaskDiHadron(const AliAnalysisTaskDiHadron&);//not implimented
   AliAnalysisTaskDiHadron& operator=(const AliAnalysisTaskDiHadron&);//not implimnted