ROOT logo
#ifndef AliAnalysisTaskPhiCorrelations_H
#define AliAnalysisTaskPhiCorrelations_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

////////////////////////////////////////////////////////////////////////
//
// Analysis class for Underlying Event studies w.r.t. leading track
//
// Look for correlations on the tranverse regions w.r.t
// the leading track in the event
//
// This class needs input AODs.
// The output is a list of analysis-specific containers.
//
// The AOD can be either connected to the InputEventHandler  
// for a chain of AOD files 
// or 
// to the OutputEventHandler
// for a chain of ESD files,
// in this case the class should be in the train after the jet-finder
//
//    Authors:
//    Jan Fiete Grosse-Oetringhaus
// 
////////////////////////////////////////////////////////////////////////

#include "AliAnalysisTask.h"
#include "AliUEHist.h"
#include "TString.h"
#include "AliVParticle.h"
#include "AliLog.h"
#include "THn.h" // in cxx file causes .../THn.h:257: error: conflicting declaration ‘typedef class THnT<float> THnF’

class AliAODEvent;
class AliAnalyseLeadingTrackUE;
class AliInputEventHandler;
class AliMCEvent;
class AliMCEventHandler;
class AliUEHistograms;
class AliVParticle;
class TH1;
class TObjArray;
class AliEventPoolManager;
class AliESDEvent;
class AliHelperPID;
class AliAnalysisUtils;
class TFormula;
class TMap;
class AliGenEventHeader;
class AliVEvent;


class  AliAnalysisTaskPhiCorrelations : public AliAnalysisTask
  {
  public:
    AliAnalysisTaskPhiCorrelations(const char* name="AliAnalysisTaskPhiCorrelations");
    virtual           ~AliAnalysisTaskPhiCorrelations();
       
      
    // Implementation of interace methods
    virtual     void   ConnectInputData(Option_t *);
    virtual     void   CreateOutputObjects();
    virtual     void   Exec(Option_t *option);

    // Setters/Getters
    // general configuration
    virtual     void    SetDebugLevel( Int_t level )  { fDebug = level; }
    virtual     void    SetMode(Int_t mode)           { fMode  = mode;  }
    virtual     void    SetReduceMemoryFootprint(Bool_t flag) { fReduceMemoryFootprint = flag; }
    virtual	void	SetEventMixing(Bool_t flag) { fFillMixed = flag; }
    virtual	void    SetMixingTracks(Int_t tracks) { fMixingTracks = tracks; }
    virtual	void	SetTwoTrackEfficiencyStudy(Bool_t flag) { fTwoTrackEfficiencyStudy = flag; }
    virtual	void	SetTwoTrackEfficiencyCut(Float_t value = 0.02, Float_t min = 0.8) { fTwoTrackEfficiencyCut = value; fTwoTrackCutMinRadius = min; }
    virtual	void	SetUseVtxAxis(Int_t flag) { fUseVtxAxis = flag; }
    virtual	void	SetCourseCentralityBinning(Bool_t flag) { fCourseCentralityBinning = flag; }
    virtual     void    SetSkipTrigger(Bool_t flag) { fSkipTrigger = flag; }
    virtual     void    SetInjectedSignals(Bool_t flag) { fInjectedSignals = flag; }
    void SetRandomizeReactionPlane(Bool_t flag) { fRandomizeReactionPlane = flag; }
    
    // histogram settings
    void SetEfficiencyCorrectionTriggers(THnF* hist) { fEfficiencyCorrectionTriggers = hist; }
    void SetEfficiencyCorrectionAssociated(THnF* hist) { fEfficiencyCorrectionAssociated = hist; }
    void SetCentralityWeights(TH1* hist) { fCentralityWeights = hist; }

    // for event QA
    void   SetTracksInVertex( Int_t val ){ fnTracksVertex = val; }
    void   SetZVertex( Double_t val )    { fZVertex = val; }
    void   SetAcceptOnlyMuEvents( Bool_t val )    { fAcceptOnlyMuEvents = val; }
    
    // track cuts
    void   SetTrackEtaCut( Double_t val )    { fTrackEtaCut = val; }
    void   SetTrackEtaCutMin( Double_t val )    { fTrackEtaCutMin = val; }
    void   SetOnlyOneEtaSide(Int_t flag)     { fOnlyOneEtaSide = flag; }
    void   SetTrackPhiCutEvPlMin(Double_t val)  { fTrackPhiCutEvPlMin = val; }
    void   SetTrackPhiCutEvPlMax(Double_t val)  { fTrackPhiCutEvPlMax = val; }
    void   SetPtMin(Double_t val)            { fPtMin = val; }
    void   SetFilterBit( UInt_t val )        { fFilterBit = val;  }
    void   SetDCAXYCut(TFormula* value)      { fDCAXYCut = value; }
    void   SetSharedClusterCut(Float_t value) { fSharedClusterCut = value; }
    void   SetCrossedRowsCut(Int_t value)    { fCrossedRowsCut = value; }
    void   SetFoundFractionCut(Double_t value) { fFoundFractionCut = value; }
    void   SetTrackStatus(UInt_t status)     { fTrackStatus = status; }
    void   SetCheckMotherPDG(Bool_t checkpdg) { fCheckMotherPDG = checkpdg; }
   
    // track cuts
    void   SetTrackletDphiCut( Double_t val )    { fTrackletDphiCut = val; }

    void   SetEventSelectionBit( UInt_t val )        { fSelectBit = val;  }
    void   SetUseChargeHadrons( Bool_t val ) { fUseChargeHadrons = val; }
    void   SetSelectParticleSpecies( Int_t trigger, Int_t associated ) { fParticleSpeciesTrigger = trigger; fParticleSpeciesAssociated = associated; }
    void   SetSelectCharge(Int_t selectCharge) { fSelectCharge = selectCharge; }
    void   SetSelectTriggerCharge(Int_t selectCharge) { fTriggerSelectCharge = selectCharge; }
    void   SetSelectAssociatedCharge(Int_t selectCharge) { fAssociatedSelectCharge = selectCharge; }
    void   SetTriggerRestrictEta(Float_t eta) { fTriggerRestrictEta = eta; }
    void   SetEtaOrdering(Bool_t flag) { fEtaOrdering = flag; }
    void   SetPairCuts(Bool_t conversions, Bool_t resonances) { fCutConversions = conversions; fCutResonances = resonances; }
    void   SetRejectResonanceDaughters(Int_t value) { fRejectResonanceDaughters = value; }
    void   SetCentralityMethod(const char* method) { fCentralityMethod = method; }
    void   SetFillpT(Bool_t flag) { fFillpT = flag; }
    void   SetStepsFillSkip(Bool_t step0, Bool_t step6) { fFillOnlyStep0 = step0; fSkipStep6 = step6; }
    void   SetRejectCentralityOutliers(Bool_t flag = kTRUE) { fRejectCentralityOutliers = flag; }
    void   SetRejectZeroTrackEvents(Bool_t flag)    { fRejectZeroTrackEvents = flag; }
    void   SetRemoveWeakDecays(Bool_t flag = kTRUE) { fRemoveWeakDecays = flag; }
    void   SetRemoveDuplicates(Bool_t flag = kTRUE) { fRemoveDuplicates = flag; }
    void   SetSkipFastCluster(Bool_t flag = kTRUE)  { fSkipFastCluster = flag; }
    void   SetWeightPerEvent(Bool_t flag = kTRUE)   { fWeightPerEvent = flag; }
    void   SetCustomBinning(const char* binningStr) { fCustomBinning = binningStr; }
    void   SetPtOrder(Bool_t flag) { fPtOrder = flag; }
    void   SetTriggersFromDetector(Int_t flag) { fTriggersFromDetector = flag; }
    void   SetAssociatedFromDetector(Int_t flag) { fAssociatedFromDetector = flag; }
    void   SetMCUseUncheckedCentrality(Bool_t flag) { fMCUseUncheckedCentrality = flag; }
    
    AliHelperPID* GetHelperPID() { return fHelperPID; }
    void   SetHelperPID(AliHelperPID* pid){ fHelperPID = pid; }
   
    AliAnalysisUtils* GetAnalysisUtils() { return fAnalysisUtils; }
    void   SetAnalysisUtils(AliAnalysisUtils* utils){ fAnalysisUtils = utils; }
   
    TMap* GetMap() { return fMap; }
    void   SetMap(TMap* map){ fMap = map; }
    
  private:
    AliAnalysisTaskPhiCorrelations(const  AliAnalysisTaskPhiCorrelations &det);
    AliAnalysisTaskPhiCorrelations&   operator=(const  AliAnalysisTaskPhiCorrelations &det);
    void            AddSettingsTree();                                  // add list of settings to output list
    // Analysis methods
    void            AnalyseCorrectionMode();                            // main algorithm to get correction maps
    void            AnalyseDataMode();                                  // main algorithm to get raw distributions
    void            Initialize(); 			                // initialize some common pointer
    TObjArray* CloneAndReduceTrackList(TObjArray* tracks);
    void RemoveDuplicates(TObjArray* tracks);
    void CleanUp(TObjArray* tracks, TObject* mcObj, Int_t maxLabel);
    void SelectCharge(TObjArray* tracks);
    AliGenEventHeader* GetFirstHeader();
    Bool_t AcceptEventCentralityWeight(Double_t centrality);
    void ShiftTracks(TObjArray* tracks, Double_t angle);
    TObjArray* GetParticlesFromDetector(AliVEvent* inputEvent, Int_t idet);
    Bool_t IsMuEvent();

    // General configuration
    Int_t               fDebug;           //  Debug flag
    Int_t 	        fMode;            //  fMode = 0: data-like analysis 
    				          //  fMode = 1: corrections analysis	
    Bool_t              fReduceMemoryFootprint; // reduce memory consumption by writing less debug histograms
    Bool_t		fFillMixed;		// enable event mixing (default: ON)
    Int_t  		fMixingTracks;		// size of track buffer for event mixing
    Bool_t		fTwoTrackEfficiencyStudy; // two-track efficiency study on
    Float_t		fTwoTrackEfficiencyCut;   // enable two-track efficiency cut
    Float_t		fTwoTrackCutMinRadius;    // minimum radius for two-track efficiency cut
    Int_t		fUseVtxAxis;              // use z vtx as axis (needs 7-10 times more memory!)
    Bool_t		fCourseCentralityBinning; // less centrality bins
    Bool_t		fSkipTrigger;		  // skip trigger selection
    Bool_t		fInjectedSignals;	  // check header to skip injected signals in MC
    Bool_t		fRandomizeReactionPlane;  // change the orientation of the RP by a random value by shifting all tracks
    
    AliHelperPID*     fHelperPID;      // points to class for PID
    AliAnalysisUtils*     fAnalysisUtils;      // points to class with common analysis utilities
    TMap*     fMap;                   // points to TMap class containing scaling factors for VZERO A signal
 
   // Pointers to external UE classes
    AliAnalyseLeadingTrackUE*     fAnalyseUE;      //! points to class containing common analysis algorithms
    AliUEHistograms*  fHistos;       //! points to class to handle histograms/containers  
    AliUEHistograms*  fHistosMixed;       //! points to class to handle mixed histograms/containers  
    
    THnF* fEfficiencyCorrectionTriggers;     // if non-0 this efficiency correction is applied on the fly to the filling for trigger particles. The factor is multiplicative, i.e. should contain 1/efficiency. Axes: eta, pT, centrality, z-vtx
    THnF* fEfficiencyCorrectionAssociated;   // if non-0 this efficiency correction is applied on the fly to the filling for associated particles. The factor is multiplicative, i.e. should contain 1/efficiency. Axes: eta, pT, centrality, z-vtx
    TH1* fCentralityWeights;		     // for centrality flattening
    
    // Handlers and events
    AliAODEvent*             fAOD;             //! AOD Event 
    AliESDEvent*             fESD;             //! ESD Event 
    TClonesArray*            fArrayMC;         //! Array of MC particles 
    AliInputEventHandler*    fInputHandler;    //! Generic InputEventHandler 
    AliMCEvent*              fMcEvent;         //! MC event
    AliInputEventHandler*    fMcHandler;       //! MCEventHandler 
    AliEventPoolManager*     fPoolMgr;         //! event pool manager
    
    // Histogram settings
    TList*              fListOfHistos;    //  Output list of containers 
    
    // Event QA cuts
    Int_t          	fnTracksVertex;          // QA tracks pointing to principal vertex
    Double_t       	fZVertex;                 // Position of Vertex in Z direction
    Bool_t       	fAcceptOnlyMuEvents;   // Only Events with at least one muon are accepted
    TString             fCentralityMethod;      // Method to determine centrality
    
    // Track cuts
    Double_t      	fTrackEtaCut;          // Maximum Eta cut on particles
    Double_t      	fTrackEtaCutMin;          // Minimum Eta cut on particles
    Double_t            fTrackPhiCutEvPlMin;   // Minimum Phi cut on particles with respect to the Event Plane (values between 0 and Pi/2)
    Double_t            fTrackPhiCutEvPlMax;   // Maximum Phi cut on particles with respect to the Event Plane (values between 0 and Pi/2), if = 0, then no cut is performed
    Int_t 		fOnlyOneEtaSide;       // decides that only trigger particle from one eta side are considered (0 = all; -1 = negative, 1 = positive)
    Double_t            fPtMin;                // Min pT to start correlations
    TFormula*           fDCAXYCut;             // additional pt dependent cut on DCA XY (only for AOD)
    Double_t            fSharedClusterCut;  // cut on shared clusters (only for AOD)
    Int_t		fCrossedRowsCut;   // cut on crossed rows (only for AOD)
    Double_t	 	fFoundFractionCut;     // cut on crossed rows/findable clusters (only for AOD)
    UInt_t           	fFilterBit;            // Select tracks from an specific track cut 
    UInt_t         	fTrackStatus;          // if non-0, the bits set in this variable are required for each track
    UInt_t         	fSelectBit;            // Select events according to AliAnalysisTaskJetServices bit maps 
    Bool_t         	fUseChargeHadrons;     // Only use charge hadrons
    Int_t               fParticleSpeciesTrigger; // Select which particle to use for the trigger [ -1 (all, default) 0 (pions) 1 (kaons) 2 (protons) 3 (others) particles ]
    Int_t               fParticleSpeciesAssociated; // Select which particle to use for the associated [ -1 (all, default) 0 (pions) 1 (kaons) 2 (protons) 3 (others) particles ]
    Bool_t             fCheckMotherPDG;     // Check the PDG code of mother for secondaries 

    // Tracklets cuts
    Double_t      	fTrackletDphiCut;    //maximum Dphi cut on tracklets
    
    Int_t fSelectCharge;           // (un)like sign selection when building correlations: 0: no selection; 1: unlike sign; 2: like sign
    Int_t fTriggerSelectCharge;    // select charge of trigger particle: 1: positive; -1 negative
    Int_t fAssociatedSelectCharge; // select charge of associated particle: 1: positive; -1 negative
    Float_t fTriggerRestrictEta;   // restrict eta range for trigger particle (default: -1 [off])
    Bool_t fEtaOrdering;           // eta ordering, see AliUEHistograms.h for documentation
    Bool_t fCutConversions;        // cut on conversions (inv mass)
    Bool_t fCutResonances;         // cut on resonances (inv mass)
    Int_t fRejectResonanceDaughters; // reject all daughters of all resonance candidates (1: test method (cut at m_inv=0.9); 2: k0; 3: lambda)
    Bool_t fFillOnlyStep0; 	   // fill only step 0
    Bool_t fSkipStep6;		   // skip step 6 when filling
    Bool_t fRejectCentralityOutliers;  // enable rejection of outliers in centrality vs no track correlation. Interferes with the event plane dependence code
    Bool_t fRejectZeroTrackEvents;  // reject events which have no tracks (using the eta, pT cuts defined)
    Bool_t fRemoveWeakDecays;	   // remove secondaries from weak decays from tracks and particles
    Bool_t fRemoveDuplicates;      // remove particles with the same label (double reconstruction)
    Bool_t fSkipFastCluster;	   // skip kFastOnly flagged events (only for data)
    Bool_t fWeightPerEvent;	   // weight with the number of trigger particles per event
    TString fCustomBinning;	   // supersedes default binning if set, see AliUEHist::GetBinning or AliUEHistograms::AliUEHistograms for syntax and examples
    Bool_t fPtOrder;		   // apply pT,a < pt,t condition; default: kTRUE
    Int_t fTriggersFromDetector;   // 0 = tracks (default); 1 = VZERO_A; 2 = VZERO_C; 3 = SPD tracklets; 4 = forward muons
    Int_t fAssociatedFromDetector;   // 0 = tracks (default); 1 = VZERO_A; 2 = VZERO_C; 3 = SPD tracklets; 4 = forward muons
    Bool_t fMCUseUncheckedCentrality; // use unchecked centrality (only applies to MC); default: kFALSE
    
    Bool_t fFillpT;                // fill sum pT instead of number density
    
    ClassDef(AliAnalysisTaskPhiCorrelations, 47); // Analysis task for delta phi correlations
  };

class AliDPhiBasicParticle : public AliVParticle
{
  public:
    AliDPhiBasicParticle(Float_t eta, Float_t phi, Float_t pt, Short_t charge)
      : fEta(eta), fPhi(phi), fpT(pt), fCharge(charge)
    {
    }
    ~AliDPhiBasicParticle() {}
    
    // kinematics
    virtual Double_t Px() const { AliFatal("Not implemented"); return 0; }
    virtual Double_t Py() const { AliFatal("Not implemented"); return 0; }
    virtual Double_t Pz() const { AliFatal("Not implemented"); return 0; }
    virtual Double_t Pt() const { return fpT; }
    virtual Double_t P() const { AliFatal("Not implemented"); return 0; }
    virtual Bool_t   PxPyPz(Double_t[3]) const { AliFatal("Not implemented"); return 0; }

    virtual Double_t Xv() const { AliFatal("Not implemented"); return 0; }
    virtual Double_t Yv() const { AliFatal("Not implemented"); return 0; }
    virtual Double_t Zv() const { AliFatal("Not implemented"); return 0; }
    virtual Bool_t   XvYvZv(Double_t[3]) const { AliFatal("Not implemented"); return 0; }

    virtual Double_t OneOverPt()  const { AliFatal("Not implemented"); return 0; }
    virtual Double_t Phi()        const { return fPhi; }
    virtual Double_t Theta()      const { AliFatal("Not implemented"); return 0; }


    virtual Double_t E()          const { AliFatal("Not implemented"); return 0; }
    virtual Double_t M()          const { AliFatal("Not implemented"); return 0; }
    
    virtual Double_t Eta()        const { return fEta; }
    virtual Double_t Y()          const { AliFatal("Not implemented"); return 0; }
    
    virtual Short_t Charge()      const { return fCharge; }
    virtual Int_t   GetLabel()    const { AliFatal("Not implemented"); return 0; }
    // PID
    virtual Int_t   PdgCode()     const { AliFatal("Not implemented"); return 0; }      
    virtual const Double_t *PID() const { AliFatal("Not implemented"); return 0; }
    
    virtual Bool_t IsEqual(const TObject* obj) const { return (obj->GetUniqueID() == GetUniqueID()); }
    
    virtual void SetPhi(Double_t phi) { fPhi = phi; }
    
  private:
    Float_t fEta;      // eta
    Float_t fPhi;      // phi
    Float_t fpT;       // pT
    Short_t fCharge;   // charge
    
    ClassDef( AliDPhiBasicParticle, 1); // class which contains only quantities requires for this analysis to reduce memory consumption for event mixing
};
  
#endif

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