-#ifndef ALIANALYSISTASKEMCALCALOTRACKCORR_cxx\r
-#define ALIANALYSISTASKEMCALCALOTRACKCORR_cxx\r
-\r
-class TList;\r
-class TH1F;\r
-class TH2F;\r
-class TH1I;\r
-class TString;\r
-class TGeoHMatrix;\r
-class TClonesArray;\r
-class AliEMCALGeometry;\r
-class AliEMCALRecoUtils;\r
-class AliESDtrackCuts;\r
-class AliESDEvent;\r
-class AliMCEvent;\r
-class AliStack;\r
-class AliVCluster;\r
-class AliFiducialCut;\r
-class AliCaloTrackParticle;\r
-class AliCentrality;\r
-class AliEventplane;\r
-class AliAnalysisManager;\r
-class AliInputEventHandler;\r
-\r
-\r
-#include "AliAnalysisTaskSE.h"\r
-\r
-class AliAnalysisTaskEMCALCaloTrackCorr : public AliAnalysisTaskSE {\r
-public:\r
- AliAnalysisTaskEMCALCaloTrackCorr(const char *name = "AliAnalysisTaskEMCALCaloTrackCorr");\r
- virtual ~AliAnalysisTaskEMCALCaloTrackCorr() {}\r
- \r
- virtual void UserCreateOutputObjects();\r
- virtual void UserExec(Option_t *option);\r
- virtual void Terminate(Option_t *);\r
-\r
-// virtual AliFiducialCut *GetFiducialCut() { if(!fFidCut) \r
-// fFidCut = new AliFiducialCut(); return fFidCut ; } \r
-\r
-\r
- enum type {kPtThresholdIC=0, kSumPtInConeIC=1, kPtFracationIC=2, kSumPtFracationIC=3};\r
- enum particleInCone { kIsolatedNeutralAndCharged=0, kIsolatedOnlyNeutral=1, kIsolatedOnlyCharged=2 }; \r
-\r
- Int_t GetMinNCells() const { return fMinNCells ; }\r
- Double_t GetMinE() const { return fMinE ; }\r
- Double_t GetMinDistBad() const { return fMinDistBad ; } \r
-\r
- Int_t GetDebug() const { return fDebug ; }\r
- void SetDebug(Int_t deb) { fDebug = deb ; }\r
-\r
- Bool_t IsDataMC() const { return kMC ; }\r
- void SetMC(Bool_t mc) { kMC = mc ; }\r
-\r
- TString GetDataType() const { return fDataType ; }\r
- void SetDataType(TString data) { fDataType = data ; }\r
-\r
- Int_t GetHistoPtBins() const { return fHistoPtBins ; }\r
- Float_t GetHistoPtMin() const { return fHistoPtMin ; }\r
- Float_t GetHistoPtMax() const { return fHistoPtMax ; }\r
-\r
- void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n)\r
- {fHistoPtBins = n; fHistoPtMax = max; fHistoPtMin = min;}\r
-\r
- Int_t GetHistoPhiBins() const { return fHistoPhiBins ; }\r
- Float_t GetHistoPhiMin() const { return fHistoPhiMin ; }\r
- Float_t GetHistoPhiMax() const { return fHistoPhiMax ; }\r
-\r
- void SetHistoPhiRangeAndNBins(Float_t min, Float_t max, Int_t n) \r
- {fHistoPhiBins = n; fHistoPhiMax = max; fHistoPhiMin = min;}\r
-\r
- Int_t GetHistoEtaBins() const { return fHistoEtaBins ; }\r
- Float_t GetHistoEtaMin() const { return fHistoEtaMin ; }\r
- Float_t GetHistoEtaMax() const { return fHistoEtaMax ; }\r
-\r
- void SetHistoEtaRangeAndNBins(Float_t min, Float_t max, Int_t n) \r
- {fHistoEtaBins = n; fHistoEtaMax = max; fHistoEtaMin = min;}\r
-\r
-\r
-\r
- Float_t GetConeR() const { return fSetConeR ; }\r
- Float_t GetPtThreshold() const { return fSetPtThreshold ; }\r
- Float_t GetSumPtThreshold() const { return fSetSumPtThreshold ; }\r
- Float_t GetPtFraction() const { return fSetPtFraction ; }\r
- TString GetICMethod() const { return fICMethod ; }\r
- TString GetParticleTypeInCone() const { return fParticlesInCone ; }\r
- \r
- void SetMinNCells(Int_t n) { fMinNCells = n ; }\r
- void SetMinE(Double_t pt) { fMinE = pt ; }\r
- void SetMinDistBad(Double_t fn) { fMinDistBad = fn ; }\r
- \r
- void SetConeR(Float_t r) { fSetConeR = r ; }\r
- void SetPtThreshold(Float_t pt) { fSetPtThreshold = pt ; }\r
- void SetSumPtThreshold(Float_t s) { fSetSumPtThreshold = s ; }\r
- void SetPtFraction(Float_t pt) { fSetPtFraction = pt ; }\r
- void SetICMethod(Int_t iMethod ) { fICMethod = iMethod ; }\r
- void SetParticleTypeInCone(Int_t i) { fParticlesInCone = i ; }\r
- \r
- void SwitchOnAnaIsolated() { kDoIsolatedAna = kTRUE ; }\r
- void SwitchOffAnaIsolated() { kDoIsolatedAna = kFALSE ; }\r
-\r
- void SwitchOnTrackMultBins() { kDoTrackMultBins = kTRUE ; }\r
- void SwitchOffTrackMultBins() { kDoTrackMultBins = kTRUE ; }\r
-\r
- void SetAnaUELeftRightOrNearAway(Bool_t leftright, Bool_t nearaway) {\r
- kUELeftRight = leftright,\r
- kUENearAway = nearaway ; }\r
- void SwitchOnTwoTracksCorr() { kTwoTracksCorr = kTRUE ; }\r
- void SwitchOffTwoTracksCorr() { kTwoTracksCorr = kFALSE ; } \r
-\r
- void SelectDecayPhotonCorr(Bool_t decayphoton) {kDecayPhotonCorr = decayphoton;}\r
-\r
- void SetAnaMCTruthOrPrimaryCorr(Bool_t kAnatruth, Bool_t kAnaprimary){\r
- kAnaMCTruthCorr = kAnatruth,\r
- kAnaMCPrimaryCorr = kAnaprimary ; }\r
-\r
- void SetAnaMCPrimaryParticle(Bool_t kpi0, Bool_t keta, Bool_t kphoton){\r
- kAnaPi0Prim = kpi0,\r
- kAnaEtaPrim = keta,\r
- kAnaPhotonPrim = kphoton ; }\r
- // Taking the absolute leading as the trigger or not\r
- Bool_t DoAbsoluteLeading() const { return kMakeAbsoluteLeading ; }\r
- void SwitchOnAbsoluteLeading() { kMakeAbsoluteLeading = kTRUE ; }\r
- void SwitchOffAbsoluteLeading() { kMakeAbsoluteLeading = kFALSE ; }\r
-\r
- // Taking the near side leading as the trigger or not\r
- Bool_t DoNearSideLeading() const { return kMakeNearSideLeading ; }\r
- void SwitchOnNearSideLeading() { kMakeNearSideLeading = kTRUE ; }\r
- void SwitchOffNearSideLeading() { kMakeNearSideLeading = kFALSE ; }\r
- \r
- void SwitchOnInAcceptance() { kPhotonInAcceptance = kTRUE ; }\r
- void SwitchOffInAcceptance() { kPhotonInAcceptance = kFALSE ; }\r
- \r
- void SwitchOnAnaMapping() { kAnaDecayMapping = kTRUE ; }\r
- void SwitchOffAnaMapping() { kAnaDecayMapping = kFALSE ; }\r
-\r
-// Bool_t IsFiducialCutOn() const { return fCheckFidCut ; }\r
-// void SwitchOnFiducialCut() { fCheckFidCut = kTRUE;\r
- // if(!fFidCut)fFidCut = new AliFiducialCut();}\r
-// void SwitchOffFiducialCut() { fCheckFidCut = kFALSE ; }\r
-\r
- void SetNTriggPtBins(Int_t nbins) { fNTriggPtBins = nbins ; }\r
- Int_t GetNTriggPtBins() const { return fNTriggPtBins ; }\r
- void SetTriggerBins(Float_t *ptTriggBins);\r
-\r
- void SetNAssocPtBins(Int_t mbins) { fNAssocPtBins = mbins ; }\r
- Int_t GetNAssocPtBins() const { return fNAssocPtBins ; }\r
- void SetAssociatedBins(Float_t *ptAssocBins);\r
-\r
- Float_t GetDeltaPhiMaxCut() const { return fDeltaPhiMaxCut ; }\r
- Float_t GetDeltaPhiMinCut() const { return fDeltaPhiMinCut ; }\r
- void SetDeltaPhiCutRange(Float_t phimin, Float_t phimax)\r
- {fDeltaPhiMaxCut = phimax; fDeltaPhiMinCut = phimin ; } \r
- \r
- void SetMixedEventsPool(Int_t n) { nMixedEvents = n ; }\r
- void SwitchOnAnaMixEvent() { kDoMixEventsAna = kTRUE ; }\r
- void SwitchOffAnaMixEvent() { kDoMixEventsAna = kFALSE ; }\r
-\r
- void SwitchOnFillMesonAOD() { kDoMesonFill = kTRUE ; }\r
- void SwitchOffFillMesonAOD() { kDoMesonFill = kFALSE ; }\r
-\r
- void SwitchOnFillMesonHistos() { kNeutralMesonHistos = kTRUE ; }\r
- void SwitchOffFillMesonHistos() { kNeutralMesonHistos = kFALSE ; }\r
-\r
- void SwitchOnAnaMesonCorr() { kDoMesonCorrAna = kTRUE ; }\r
- void SwitchOffAnaMesonCorr() { kDoMesonCorrAna = kFALSE ; }\r
-\r
- void SwitchOnAnaPhotonCorr() { kDoPhotonCorrAna = kTRUE ; }\r
- void SwitchOffAnaPhotonCorr() { kDoPhotonCorrAna = kFALSE ; } \r
-\r
- void SwitchOnEventTriggerAtSE() { kEventTriggerAtSE = kTRUE ; }\r
- void SwitchOffEventTriggerAtSE() { kEventTriggerAtSE = kFALSE; }\r
-\r
- void SwithchOnPhotonPairTimeCut() { kPhotonPairTimeCut = kTRUE ;}\r
- void SwithchOffPhotonPairTimeCut() { kPhotonPairTimeCut = kFALSE ;}\r
-\r
- void SwithchOnPhotonIDCut() { kDoPhotonIDCut = kTRUE ; }\r
- void SwithchOffPhotonIDCut() { kDoPhotonIDCut = kFALSE ; }\r
-\r
- TString GetAnaTypeInIsolated() const { return fAnaTypeInIsolated ; }\r
- void SetAnaTypeInIsolated(TString & part) { fAnaTypeInIsolated = part ; }\r
-\r
- Float_t GetDeltaPhiHRSize() const { return fDeltaPhiHRSize ; }\r
- void SetDeltaPhiHRSize(Float_t fHRphi) { fDeltaPhiHRSize = fHRphi ; }\r
-\r
- Float_t GetUeDeltaPhiSize() const { return fUeDeltaPhiSize ; }\r
- Float_t GetUeDeltaPhiFix() const { return fUeDeltaPhiFix ; }\r
- void SetUeDeltaPhiFixAndSize(Float_t uefix, Float_t uesize)\r
- { fUeDeltaPhiFix = uefix, fUeDeltaPhiSize = uesize ; }\r
-\r
- void SetAssociatedPtBegin(Float_t begin) {fptAssociatedBegin = begin;}\r
-\r
- void SetLargeCorrTrigger(Float_t ftrigger1, Float_t ftrigger2) \r
- {fptTriggerBegin = ftrigger1, fptTriggerEnd = ftrigger2; }\r
-\r
- void SwitchOnAsymmetryCut() { kDoAsymmetryCut = kTRUE ; }\r
- void SwitchOffAsymmetryCut() { kDoAsymmetryCut = kFALSE ; }\r
- void SetAsymmetryCut(Float_t asycut) { fAsymmetryCut = asycut ; }\r
-\r
- void SwitchOnAODHybridTrackSelection() { kDoSelectHybridTracks = kTRUE ;}\r
- void SwitchOffAODHybridTrackSelection() { kDoSelectHybridTracks = kFALSE;} \r
- void SetAnaMesonType(TString fmesontype){ fAnaMesonType = fmesontype ; }\r
-\r
- void SetCentralityBin(Int_t min, Int_t max)\r
- { fCentralityBinMin = min; fCentralityBinMax = max ; }\r
- void SetCentralityClass(TString name) { fCentralityClass = name ; }\r
- \r
- void SetEventPlaneMethod(TString m) { fEventPlaneMethod = m ; }\r
-\r
- UInt_t GetEventTriggerMask() const { return fEventTriggerMaks ; }\r
- void SetEventTriggerMask(UInt_t evtTrig = AliVEvent::kAny)\r
- { fEventTriggerMaks = evtTrig ; }\r
- void SetNCentralityBins(Int_t fcenbins) { fNCentralityBins = fcenbins; }\r
- void SetNEventPlaneBins(Int_t fevbins) { fNEventPlaneBins = fevbins ; }\r
-\r
- void SetEMCALLambda0Cut(Float_t l0min, Float_t l0max)\r
- { fL0CutMin = l0min, fL0CutMax = l0max ; }\r
- void SetClusterTimeCut(Float_t timemin, Float_t timemax){\r
- fTimeCutMin = timemin, fTimeCutMax = timemax ; }\r
- void SetPhotonPairDeltaTimeCut(Float_t deltatime)\r
- { fPhotonPairTimeCut = deltatime ; }\r
- \r
- void SetTrackMatchedDPhiCut(Float_t dphicut){ fEMCALDPhiCut = dphicut; }\r
- void SetTrackMatchedDEtaCut(Float_t detacut){ fEMCALDEtaCut = detacut; }\r
-\r
- void SetMesonInMassRangeCut(Float_t inmass1, Float_t inmass2){\r
- fInvMassMinCut = inmass1, fInvMassMaxCut = inmass2 ; }\r
-\r
- void SetMesonInMassLeftRangeCut(Float_t leftmin, Float_t leftmax){\r
- fLeftBandMinCut = leftmin, fLeftBandMaxCut = leftmax ; }\r
-\r
- void SetMesonInMassRightRangeCut(Float_t rightmin, Float_t rightmax){\r
- fRightBandMinCut = rightmin, fRightBandMaxCut = rightmax ; }\r
- \r
- void SetEMCALGeometryName(TString name) { fEMCALGeomName = name ; }\r
-\r
- void SetTrackCuts(AliESDtrackCuts * cuts);\r
- \r
- void SetZvertexCut(Float_t fzcut) { fZVertexCut = fzcut ; }\r
-\r
- void SetTrackFilterMask(ULong_t bit) { fTrackFilterMask = bit ; }\r
- \r
- \r
-private:\r
- AliAnalysisTaskEMCALCaloTrackCorr(const AliAnalysisTaskEMCALCaloTrackCorr&); // not implemented\r
- AliAnalysisTaskEMCALCaloTrackCorr& operator=(const AliAnalysisTaskEMCALCaloTrackCorr&); // not implemented\r
-\r
- ////////////Add function\r
- void InitParameters();\r
- \r
- Bool_t FillInputEvent();\r
-\r
- Bool_t SelectPair(AliCaloTrackParticle *mesonCandidate);\r
- Bool_t IsolatedPhoton(TClonesArray *fEMCALEventIsolated, \r
- TClonesArray *fCTSEventIsolated,\r
- Int_t fIndexPhotonCan, Double_t ptPhotonCan,\r
- Double_t phiPhotonCan, Double_t etaPhotonCan);\r
- void FillInputPhoton();\r
- void FillInputMeson() ;\r
- void FillInputTrack() ;\r
- Bool_t MakeChargedCorrelation(Int_t fTrackIndex, Double_t ptTrigg, \r
- Double_t phiTrigg, Double_t etaTrigg);\r
- void MakeChargedMixCorrelation(Double_t ptTriggMix, Double_t phiTriggMix,\r
- Double_t etaTriggMix, TList *poolMix);\r
-private:\r
- enum {kNtriggPtBins=10, kNassocPtBins=10};\r
-\r
- AliAnalysisManager *fManager;\r
- AliInputEventHandler *fInputHandler;\r
-\r
- AliVEvent *fEvent;\r
- AliMCEvent *fMCEvent;\r
- AliStack *fStack;\r
- AliCentrality *fCentrality;\r
- AliEventplane *fEventPlane;\r
-\r
- AliEMCALRecoUtils *fEMCALRecU;\r
- AliEMCALGeometry *fEMCALGeom;\r
- AliESDtrackCuts *fESDtrackCuts;\r
- // AliFiducialCut *fFidCut;\r
-\r
- TList *outputContainer;\r
-\r
- TString fEMCALGeomName; \r
- TString fCentralityClass; \r
- Int_t fCentralityBinMin;\r
- Int_t fCentralityBinMax;\r
- TString fEventPlaneMethod;\r
- UInt_t fEventTriggerMaks;\r
- Int_t fNCentralityBins;\r
- Int_t fNEventPlaneBins;\r
- \r
- Int_t fHistoPtBins ; \r
- Float_t fHistoPtMax ; \r
- Float_t fHistoPtMin ; \r
- Int_t fHistoPhiBins; \r
- Float_t fHistoPhiMax ;\r
- Float_t fHistoPhiMin ;\r
- Int_t fHistoEtaBins;\r
- Float_t fHistoEtaMax ;\r
- Float_t fHistoEtaMin ;\r
- \r
- Int_t fMinNCells;\r
- Float_t fMinE;\r
- Double_t fMinDistBad;\r
- Float_t fL0CutMin;\r
- Float_t fL0CutMax;\r
- Float_t fTimeCutMin;\r
- Float_t fTimeCutMax;\r
- Float_t fPhotonPairTimeCut;\r
- Float_t fEMCALDPhiCut;\r
- Float_t fEMCALDEtaCut;\r
- Float_t fZVertexCut; \r
- Int_t fDebug; \r
- TString fAnaMesonType;\r
- Float_t fAsymmetryCut;\r
- TString fDataType;\r
- ULong_t fTrackFilterMask;\r
-\r
- Float_t fInvMassMinCut;\r
- Float_t fInvMassMaxCut;\r
- Float_t fLeftBandMinCut;\r
- Float_t fLeftBandMaxCut;\r
- Float_t fRightBandMinCut;\r
- Float_t fRightBandMaxCut;\r
-\r
- Bool_t kMC;\r
- Bool_t kNeutralMesonHistos;\r
- Bool_t kDoMixEventsAna;\r
- Bool_t kDoPhotonCorrAna;\r
- Bool_t kDoAsymmetryCut;\r
- Bool_t kDoSelectHybridTracks;\r
- Bool_t kDoMesonFill;\r
- Bool_t kDoMesonCorrAna;\r
- Bool_t kDoIsolatedAna;\r
- Bool_t kDoTrackMultBins;\r
- Bool_t kUELeftRight;\r
- Bool_t kUENearAway;\r
- Bool_t kDecayPhotonCorr;\r
- Bool_t kAnaMCTruthCorr;\r
- Bool_t kAnaMCPrimaryCorr;\r
- Bool_t kAnaPi0Prim;\r
- Bool_t kAnaEtaPrim;\r
- Bool_t kAnaPhotonPrim;\r
- Bool_t kMakeAbsoluteLeading;\r
- Bool_t kMakeNearSideLeading;\r
- Bool_t kTwoTracksCorr;\r
- Bool_t kPhotonInAcceptance;\r
- Bool_t kAnaDecayMapping;\r
-// Bool_t fCheckFidCut;\r
- Bool_t kEventTriggerAtSE;\r
- Bool_t kPhotonPairTimeCut;\r
- Bool_t kDoPhotonIDCut;\r
-\r
- TH1F *fhNEvents; \r
- Int_t fnEvents;\r
- TH1F *fhNEventsAnalyized;\r
- Int_t fEventAnalyized;\r
- TClonesArray *fPhotonEvent;\r
- TClonesArray *fPhotonPairEvent;\r
- TClonesArray *fCTSEvent;\r
- Int_t nPhotonsEMCAL;\r
- Int_t nTracksCTS;\r
- TString fAnaTypeInIsolated;\r
- Int_t nMixedEvents;\r
- Float_t fSetConeR;\r
- Float_t fSetPtThreshold;\r
- Float_t fSetSumPtThreshold;\r
- Float_t fSetPtFraction;\r
- Int_t fICMethod;\r
- Int_t fParticlesInCone;\r
-\r
- Float_t *fTriggPtArray;\r
- Int_t fNTriggPtBins;\r
- Float_t fptTriggerBegin;\r
- Float_t fptTriggerEnd;\r
- Float_t *fAssocPtArray;\r
- Int_t fNAssocPtBins;\r
- Float_t fptAssociatedBegin;\r
-\r
- Float_t fDeltaPhiMaxCut;\r
- Float_t fDeltaPhiMinCut;\r
- Float_t fUeDeltaPhiSize;\r
- Float_t fUeDeltaPhiFix;\r
- Float_t fDeltaPhiHRSize;\r
-\r
- TH1F * fhPhotonE;\r
- TH2F * fhPhotonPtPhi;\r
- TH2F * fhPhotonPtEta;\r
- TH2F * fhPhotonPhiEta;\r
-\r
- TH1F * fhMesonE;\r
- TH2F * fhMesonPtPhi;\r
- TH2F * fhMesonPtEta;\r
- TH2F * fhMesonPhiEta;\r
-\r
- TH2F * fhAnglePairNoCut;\r
- TH2F * fhInvMassPairNoCut;\r
- TH2F * fhAsyNoCut;\r
- TH2F * fhInvMassPairAsyCut; \r
- TH2F * fhAnglePairAsyCut;\r
- TH2F * fhInvMassPairPhi;\r
- TH2F * fhInvMassPairEta;\r
- TH2F * fhInvMassPairAllCut;\r
- TH2F * fhAnglePairAllCut;\r
- TH2F * fhAsyAllCut;\r
- TH2F * fhPi0DecayPhoton1;\r
- TH2F * fhPi0DecayPhoton1Dphi;\r
- TH2F * fhDecayPhoton1Pi0Dphi;\r
- TH2F * fhPi0DecayPhoton2;\r
- TH2F * fhPi0DecayPhoton2Dphi;\r
- TH2F * fhDecayPhoton2Pi0Dphi;\r
- TH2F * fhDecayPhoton1Photon2;\r
- TH2F * fhDecayPhoton1Photon2Dphi;\r
- TH2F * fhDecayPhoton2Photon1Dphi;\r
-\r
- TH1F * fhNtracksAll;\r
- TH1F * fhNtracksEMC7;\r
- TH1F * fhNtracksAnyINT;\r
- TH1F * fhNtracksCentral;\r
- TH1F * fhNtracksSemiCentral;\r
- TH1F * fhNtracksOtherTirgger;\r
- TH1F * fhNtracksCorr;\r
- TH2F * fhTrackPtPhi;\r
- TH2F * fhTrackPtEta;\r
- TH2F * fhTrackPhiEta;\r
- TH2F * fhPtPhiLeading; //! phi distribution vs pT of leading\r
- TH2F * fhPtEtaLeading; //! eta distribution vs pT of leading\r
- TH2F * fhMixPtPhiLeading; //! phi distribution vs pT of leading\r
- TH2F * fhMixPtEtaLeading; //! eta distribution vs pT of leading\r
- \r
- TH2F * fhDPhiTriggPtAssocPt;\r
- TH2F * fhDEtaTriggPtAssocPt;\r
- TH2F * fhAssocPtTriggPt;\r
- TH2F * fhxELogTriggPt;\r
- TH2F * fhpoutTriggPt;\r
- TH2F * fhzTTriggPt;\r
- TH2F * fhxETriggPt; \r
- TH2F * fhAssocPtTriggPtHR;\r
- TH2F * fhxELogTriggPtHR;\r
- TH2F * fhpoutTriggPtHR;\r
- TH2F * fhzTTriggPtHR;\r
- TH2F * fhxETriggPtHR;\r
- TH2F * fhNUeAssocPtTriggPt;\r
- TH2F * fhNUepoutTriggPt;\r
- TH2F * fhNUexETriggPt;\r
- TH2F * fhNUezTTriggPt;\r
- TH2F * fhNUexELogTriggPt;\r
- TH2F * fhNUeDPhiDEta;\r
- TH2F * fhAUeAssocPtTriggPt;\r
- TH2F * fhAUepoutTriggPt;\r
- TH2F * fhAUezTTriggPt; \r
- TH2F * fhAUexETriggPt;\r
- TH2F * fhAUexELogTriggPt;\r
- TH2F * fhAUeDPhiDEta;\r
-\r
- TH2F * fhMCPtPhiLeading; //! phi distribution vs pT of leading\r
- TH2F * fhMCPtEtaLeading; //! eta distribution vs pT of leading\r
-\r
- TH2F * fhMCAssocPtTriggPt;\r
- TH2F * fhMCxELogTriggPt;\r
- TH2F * fhMCpoutTriggPt;\r
- TH2F * fhMCzTTriggPt;\r
- TH2F * fhMCxETriggPt;\r
- TH2F * fhMCAssocPtTriggPtHR;\r
- TH2F * fhMCxELogTriggPtHR;\r
- TH2F * fhMCpoutTriggPtHR;\r
- TH2F * fhMCzTTriggPtHR;\r
- TH2F * fhMCxETriggPtHR;\r
- TH2F * fhMCNUeAssocPtTriggPt;\r
- TH2F * fhMCNUepoutTriggPt;\r
- TH2F * fhMCNUexETriggPt;\r
- TH2F * fhMCNUezTTriggPt;\r
- TH2F * fhMCNUexELogTriggPt;\r
- TH2F * fhMCAUeAssocPtTriggPt;\r
- TH2F * fhMCAUepoutTriggPt;\r
- TH2F * fhMCAUezTTriggPt;\r
- TH2F * fhMCAUexETriggPt;\r
- TH2F * fhMCAUexELogTriggPt;\r
-\r
- TH2F * fhDPhiAssocPt15T;\r
- TH2F * fhDEtaAssocPt15T;\r
- TH2F * fhMixDPhiAssocPt15T;\r
- TH2F * fhMixDEtaAssocPt15T;\r
- TH2F * fhMCDPhiAssocPt15T;\r
- TH2F * fhMCDEtaAssocPt15T;\r
-\r
- TList* fListMixEvents[10][10][10]; \r
- \r
- TH2F *fhDPhiTriggPtT[kNassocPtBins];\r
- TH2F *fhDEtaTriggPtT[kNassocPtBins];\r
- TH2F *fhMixDPhiTriggPtT[kNassocPtBins];\r
- TH2F *fhMixDEtaTriggPtT[kNassocPtBins];\r
-\r
- TH2F *fhDPhiSumPtBin[kNtriggPtBins][kNassocPtBins];\r
- TH2F *fhDEtaSumPtBin[kNtriggPtBins][kNassocPtBins];\r
- TH2F *fhDPhiDEtaBin[kNtriggPtBins][kNassocPtBins];\r
- TH2F *fhMixDPhiDEtaBin[kNtriggPtBins][kNassocPtBins];\r
-\r
- TH2F *fhDPhiAssocPtA[kNtriggPtBins];\r
- TH2F *fhDEtaAssocPtA[kNtriggPtBins];\r
- TH2F *fhMixDPhiAssocPtA[kNtriggPtBins];\r
- TH2F *fhMixDEtaAssocPtA[kNtriggPtBins];\r
-\r
- TH2F *fhMCDPhiTriggPtT[kNassocPtBins];\r
- TH2F *fhMCDEtaTriggPtT[kNassocPtBins];\r
-\r
- TH2F *fhMCDPhiSumPtBin[kNtriggPtBins][kNassocPtBins];\r
- TH2F *fhMCDEtaSumPtBin[kNtriggPtBins][kNassocPtBins];\r
- TH2F *fhMCDPhiDEtaBin[kNtriggPtBins][kNassocPtBins];\r
-\r
- TH2F *fhMCDPhiAssocPtA[kNtriggPtBins];\r
- TH2F *fhMCDEtaAssocPtA[kNtriggPtBins];\r
-\r
- ClassDef(AliAnalysisTaskEMCALCaloTrackCorr, 1); // example of analysis\r
-};\r
-\r
-#endif\r
+#ifndef ALIANALYSISTASKEMCALCALOTRACKCORR_cxx
+#define ALIANALYSISTASKEMCALCALOTRACKCORR_cxx
+
+class TList;
+class TH1F;
+class TH2F;
+class TH1I;
+class TString;
+class TGeoHMatrix;
+class TClonesArray;
+class AliEMCALGeometry;
+class AliEMCALRecoUtils;
+class AliESDtrackCuts;
+class AliESDEvent;
+class AliMCEvent;
+class AliStack;
+class AliVCluster;
+class AliFiducialCut;
+class AliCaloTrackParticle;
+class AliCentrality;
+class AliEventplane;
+class AliAnalysisManager;
+class AliInputEventHandler;
+
+
+#include "AliAnalysisTaskSE.h"
+
+class AliAnalysisTaskEMCALCaloTrackCorr : public AliAnalysisTaskSE {
+public:
+ AliAnalysisTaskEMCALCaloTrackCorr(const char *name = "AliAnalysisTaskEMCALCaloTrackCorr");
+ virtual ~AliAnalysisTaskEMCALCaloTrackCorr() {}
+
+ virtual void UserCreateOutputObjects();
+ virtual void UserExec(Option_t *option);
+ virtual void Terminate(Option_t *);
+
+// virtual AliFiducialCut *GetFiducialCut() { if(!fFidCut)
+// fFidCut = new AliFiducialCut(); return fFidCut ; }
+
+
+ enum type {kPtThresholdIC=0, kSumPtInConeIC=1, kPtFracationIC=2, kSumPtFracationIC=3};
+ enum particleInCone { kIsolatedNeutralAndCharged=0, kIsolatedOnlyNeutral=1, kIsolatedOnlyCharged=2 };
+
+ Int_t GetMinNCells() const { return fMinNCells ; }
+ Double_t GetMinE() const { return fMinE ; }
+ Double_t GetMinDistBad() const { return fMinDistBad ; }
+
+ Int_t GetDebug() const { return fDebug ; }
+ void SetDebug(Int_t deb) { fDebug = deb ; }
+
+ Bool_t IsDataMC() const { return kMC ; }
+ void SetMC(Bool_t mc) { kMC = mc ; }
+
+ TString GetDataType() const { return fDataType ; }
+ void SetDataType(TString data) { fDataType = data ; }
+
+ Int_t GetHistoPtBins() const { return fHistoPtBins ; }
+ Float_t GetHistoPtMin() const { return fHistoPtMin ; }
+ Float_t GetHistoPtMax() const { return fHistoPtMax ; }
+
+ void SetHistoPtRangeAndNBins(Float_t min, Float_t max, Int_t n)
+ {fHistoPtBins = n; fHistoPtMax = max; fHistoPtMin = min;}
+
+ Int_t GetHistoPhiBins() const { return fHistoPhiBins ; }
+ Float_t GetHistoPhiMin() const { return fHistoPhiMin ; }
+ Float_t GetHistoPhiMax() const { return fHistoPhiMax ; }
+
+ void SetHistoPhiRangeAndNBins(Float_t min, Float_t max, Int_t n)
+ {fHistoPhiBins = n; fHistoPhiMax = max; fHistoPhiMin = min;}
+
+ Int_t GetHistoEtaBins() const { return fHistoEtaBins ; }
+ Float_t GetHistoEtaMin() const { return fHistoEtaMin ; }
+ Float_t GetHistoEtaMax() const { return fHistoEtaMax ; }
+
+ void SetHistoEtaRangeAndNBins(Float_t min, Float_t max, Int_t n)
+ {fHistoEtaBins = n; fHistoEtaMax = max; fHistoEtaMin = min;}
+
+
+
+ Float_t GetConeR() const { return fSetConeR ; }
+ Float_t GetPtThreshold() const { return fSetPtThreshold ; }
+ Float_t GetSumPtThreshold() const { return fSetSumPtThreshold ; }
+ Float_t GetPtFraction() const { return fSetPtFraction ; }
+ TString GetICMethod() const { return fICMethod ; }
+ TString GetParticleTypeInCone() const { return fParticlesInCone ; }
+
+ void SetMinNCells(Int_t n) { fMinNCells = n ; }
+ void SetMinE(Double_t pt) { fMinE = pt ; }
+ void SetMinDistBad(Double_t fn) { fMinDistBad = fn ; }
+
+ void SetConeR(Float_t r) { fSetConeR = r ; }
+ void SetPtThreshold(Float_t pt) { fSetPtThreshold = pt ; }
+ void SetSumPtThreshold(Float_t s) { fSetSumPtThreshold = s ; }
+ void SetPtFraction(Float_t pt) { fSetPtFraction = pt ; }
+ void SetICMethod(Int_t iMethod ) { fICMethod = iMethod ; }
+ void SetParticleTypeInCone(Int_t i) { fParticlesInCone = i ; }
+
+ void SwitchOnAnaIsolated() { kDoIsolatedAna = kTRUE ; }
+ void SwitchOffAnaIsolated() { kDoIsolatedAna = kFALSE ; }
+
+ void SwitchOnTrackMultBins() { kDoTrackMultBins = kTRUE ; }
+ void SwitchOffTrackMultBins() { kDoTrackMultBins = kTRUE ; }
+
+ void SetAnaUELeftRightOrNearAway(Bool_t leftright, Bool_t nearaway) {
+ kUELeftRight = leftright,
+ kUENearAway = nearaway ; }
+ void SwitchOnTwoTracksCorr() { kTwoTracksCorr = kTRUE ; }
+ void SwitchOffTwoTracksCorr() { kTwoTracksCorr = kFALSE ; }
+
+ void SelectDecayPhotonCorr(Bool_t decayphoton) {kDecayPhotonCorr = decayphoton;}
+
+ void SetAnaMCTruthOrPrimaryCorr(Bool_t kAnatruth, Bool_t kAnaprimary){
+ kAnaMCTruthCorr = kAnatruth,
+ kAnaMCPrimaryCorr = kAnaprimary ; }
+
+ void SetAnaMCPrimaryParticle(Bool_t kpi0, Bool_t keta, Bool_t kphoton){
+ kAnaPi0Prim = kpi0,
+ kAnaEtaPrim = keta,
+ kAnaPhotonPrim = kphoton ; }
+ // Taking the absolute leading as the trigger or not
+ Bool_t DoAbsoluteLeading() const { return kMakeAbsoluteLeading ; }
+ void SwitchOnAbsoluteLeading() { kMakeAbsoluteLeading = kTRUE ; }
+ void SwitchOffAbsoluteLeading() { kMakeAbsoluteLeading = kFALSE ; }
+
+ // Taking the near side leading as the trigger or not
+ Bool_t DoNearSideLeading() const { return kMakeNearSideLeading ; }
+ void SwitchOnNearSideLeading() { kMakeNearSideLeading = kTRUE ; }
+ void SwitchOffNearSideLeading() { kMakeNearSideLeading = kFALSE ; }
+
+ void SwitchOnInAcceptance() { kPhotonInAcceptance = kTRUE ; }
+ void SwitchOffInAcceptance() { kPhotonInAcceptance = kFALSE ; }
+
+ void SwitchOnAnaMapping() { kAnaDecayMapping = kTRUE ; }
+ void SwitchOffAnaMapping() { kAnaDecayMapping = kFALSE ; }
+
+// Bool_t IsFiducialCutOn() const { return fCheckFidCut ; }
+// void SwitchOnFiducialCut() { fCheckFidCut = kTRUE;
+ // if(!fFidCut)fFidCut = new AliFiducialCut();}
+// void SwitchOffFiducialCut() { fCheckFidCut = kFALSE ; }
+
+ void SetNTriggPtBins(Int_t nbins) { fNTriggPtBins = nbins ; }
+ Int_t GetNTriggPtBins() const { return fNTriggPtBins ; }
+ void SetTriggerBins(Float_t *ptTriggBins);
+
+ void SetNAssocPtBins(Int_t mbins) { fNAssocPtBins = mbins ; }
+ Int_t GetNAssocPtBins() const { return fNAssocPtBins ; }
+ void SetAssociatedBins(Float_t *ptAssocBins);
+
+ Float_t GetDeltaPhiMaxCut() const { return fDeltaPhiMaxCut ; }
+ Float_t GetDeltaPhiMinCut() const { return fDeltaPhiMinCut ; }
+ void SetDeltaPhiCutRange(Float_t phimin, Float_t phimax)
+ {fDeltaPhiMaxCut = phimax; fDeltaPhiMinCut = phimin ; }
+
+ void SetMixedEventsPool(Int_t n) { nMixedEvents = n ; }
+ void SwitchOnAnaMixEvent() { kDoMixEventsAna = kTRUE ; }
+ void SwitchOffAnaMixEvent() { kDoMixEventsAna = kFALSE ; }
+
+ void SwitchOnFillMesonAOD() { kDoMesonFill = kTRUE ; }
+ void SwitchOffFillMesonAOD() { kDoMesonFill = kFALSE ; }
+
+ void SwitchOnFillMesonHistos() { kNeutralMesonHistos = kTRUE ; }
+ void SwitchOffFillMesonHistos() { kNeutralMesonHistos = kFALSE ; }
+
+ void SwitchOnAnaMesonCorr() { kDoMesonCorrAna = kTRUE ; }
+ void SwitchOffAnaMesonCorr() { kDoMesonCorrAna = kFALSE ; }
+
+ void SwitchOnAnaPhotonCorr() { kDoPhotonCorrAna = kTRUE ; }
+ void SwitchOffAnaPhotonCorr() { kDoPhotonCorrAna = kFALSE ; }
+
+ void SwitchOnEventTriggerAtSE() { kEventTriggerAtSE = kTRUE ; }
+ void SwitchOffEventTriggerAtSE() { kEventTriggerAtSE = kFALSE; }
+
+ void SwithchOnPhotonPairTimeCut() { kPhotonPairTimeCut = kTRUE ;}
+ void SwithchOffPhotonPairTimeCut() { kPhotonPairTimeCut = kFALSE ;}
+
+ void SwithchOnPhotonIDCut() { kDoPhotonIDCut = kTRUE ; }
+ void SwithchOffPhotonIDCut() { kDoPhotonIDCut = kFALSE ; }
+
+ TString GetAnaTypeInIsolated() const { return fAnaTypeInIsolated ; }
+ void SetAnaTypeInIsolated(TString & part) { fAnaTypeInIsolated = part ; }
+
+ Float_t GetDeltaPhiHRSize() const { return fDeltaPhiHRSize ; }
+ void SetDeltaPhiHRSize(Float_t fHRphi) { fDeltaPhiHRSize = fHRphi ; }
+
+ Float_t GetUeDeltaPhiSize() const { return fUeDeltaPhiSize ; }
+ Float_t GetUeDeltaPhiFix() const { return fUeDeltaPhiFix ; }
+ void SetUeDeltaPhiFixAndSize(Float_t uefix, Float_t uesize)
+ { fUeDeltaPhiFix = uefix, fUeDeltaPhiSize = uesize ; }
+
+ void SetAssociatedPtBegin(Float_t begin) {fptAssociatedBegin = begin;}
+
+ void SetLargeCorrTrigger(Float_t ftrigger1, Float_t ftrigger2)
+ {fptTriggerBegin = ftrigger1, fptTriggerEnd = ftrigger2; }
+
+ void SwitchOnAsymmetryCut() { kDoAsymmetryCut = kTRUE ; }
+ void SwitchOffAsymmetryCut() { kDoAsymmetryCut = kFALSE ; }
+ void SetAsymmetryCut(Float_t asycut) { fAsymmetryCut = asycut ; }
+
+ void SwitchOnAODHybridTrackSelection() { kDoSelectHybridTracks = kTRUE ;}
+ void SwitchOffAODHybridTrackSelection() { kDoSelectHybridTracks = kFALSE;}
+ void SetAnaMesonType(TString fmesontype){ fAnaMesonType = fmesontype ; }
+
+ void SetCentralityBin(Int_t min, Int_t max)
+ { fCentralityBinMin = min; fCentralityBinMax = max ; }
+ void SetCentralityClass(TString name) { fCentralityClass = name ; }
+
+ void SetEventPlaneMethod(TString m) { fEventPlaneMethod = m ; }
+
+ UInt_t GetEventTriggerMask() const { return fEventTriggerMaks ; }
+ void SetEventTriggerMask(UInt_t evtTrig = AliVEvent::kAny)
+ { fEventTriggerMaks = evtTrig ; }
+ void SetNCentralityBins(Int_t fcenbins) { fNCentralityBins = fcenbins; }
+ void SetNEventPlaneBins(Int_t fevbins) { fNEventPlaneBins = fevbins ; }
+
+ void SetEMCALLambda0Cut(Float_t l0min, Float_t l0max)
+ { fL0CutMin = l0min, fL0CutMax = l0max ; }
+ void SetClusterTimeCut(Float_t timemin, Float_t timemax){
+ fTimeCutMin = timemin, fTimeCutMax = timemax ; }
+ void SetPhotonPairDeltaTimeCut(Float_t deltatime)
+ { fPhotonPairTimeCut = deltatime ; }
+
+ void SetTrackMatchedDPhiCut(Float_t dphicut){ fEMCALDPhiCut = dphicut; }
+ void SetTrackMatchedDEtaCut(Float_t detacut){ fEMCALDEtaCut = detacut; }
+
+ void SetMesonInMassRangeCut(Float_t inmass1, Float_t inmass2){
+ fInvMassMinCut = inmass1, fInvMassMaxCut = inmass2 ; }
+
+ void SetMesonInMassLeftRangeCut(Float_t leftmin, Float_t leftmax){
+ fLeftBandMinCut = leftmin, fLeftBandMaxCut = leftmax ; }
+
+ void SetMesonInMassRightRangeCut(Float_t rightmin, Float_t rightmax){
+ fRightBandMinCut = rightmin, fRightBandMaxCut = rightmax ; }
+
+ void SetEMCALGeometryName(TString name) { fEMCALGeomName = name ; }
+
+ void SetTrackCuts(AliESDtrackCuts * cuts);
+
+ void SetZvertexCut(Float_t fzcut) { fZVertexCut = fzcut ; }
+
+ void SetTrackFilterMask(ULong_t bit) { fTrackFilterMask = bit ; }
+
+
+private:
+ AliAnalysisTaskEMCALCaloTrackCorr(const AliAnalysisTaskEMCALCaloTrackCorr&); // not implemented
+ AliAnalysisTaskEMCALCaloTrackCorr& operator=(const AliAnalysisTaskEMCALCaloTrackCorr&); // not implemented
+
+ ////////////Add function
+ void InitParameters();
+
+ Bool_t FillInputEvent();
+
+ Bool_t SelectPair(AliCaloTrackParticle *mesonCandidate);
+ Bool_t IsolatedPhoton(TClonesArray *fEMCALEventIsolated,
+ TClonesArray *fCTSEventIsolated,
+ Int_t fIndexPhotonCan, Double_t ptPhotonCan,
+ Double_t phiPhotonCan, Double_t etaPhotonCan);
+ void FillInputPhoton();
+ void FillInputMeson() ;
+ void FillInputTrack() ;
+ Bool_t MakeChargedCorrelation(Int_t fTrackIndex, Double_t ptTrigg,
+ Double_t phiTrigg, Double_t etaTrigg);
+ void MakeChargedMixCorrelation(Double_t ptTriggMix, Double_t phiTriggMix,
+ Double_t etaTriggMix, TList *poolMix);
+private:
+ enum {kNtriggPtBins=10, kNassocPtBins=10};
+
+ AliAnalysisManager *fManager;
+ AliInputEventHandler *fInputHandler;
+
+ AliVEvent *fEvent;
+ AliMCEvent *fMCEvent;
+ AliStack *fStack;
+ AliCentrality *fCentrality;
+ AliEventplane *fEventPlane;
+
+ AliEMCALRecoUtils *fEMCALRecU;
+ AliEMCALGeometry *fEMCALGeom;
+ AliESDtrackCuts *fESDtrackCuts;
+ // AliFiducialCut *fFidCut;
+
+ TList *outputContainer;
+
+ TString fEMCALGeomName;
+ TString fCentralityClass;
+ Int_t fCentralityBinMin;
+ Int_t fCentralityBinMax;
+ TString fEventPlaneMethod;
+ UInt_t fEventTriggerMaks;
+ Int_t fNCentralityBins;
+ Int_t fNEventPlaneBins;
+
+ Int_t fHistoPtBins ;
+ Float_t fHistoPtMax ;
+ Float_t fHistoPtMin ;
+ Int_t fHistoPhiBins;
+ Float_t fHistoPhiMax ;
+ Float_t fHistoPhiMin ;
+ Int_t fHistoEtaBins;
+ Float_t fHistoEtaMax ;
+ Float_t fHistoEtaMin ;
+
+ Int_t fMinNCells;
+ Float_t fMinE;
+ Double_t fMinDistBad;
+ Float_t fL0CutMin;
+ Float_t fL0CutMax;
+ Float_t fTimeCutMin;
+ Float_t fTimeCutMax;
+ Float_t fPhotonPairTimeCut;
+ Float_t fEMCALDPhiCut;
+ Float_t fEMCALDEtaCut;
+ Float_t fZVertexCut;
+ Int_t fDebug;
+ TString fAnaMesonType;
+ Float_t fAsymmetryCut;
+ TString fDataType;
+ ULong_t fTrackFilterMask;
+
+ Float_t fInvMassMinCut;
+ Float_t fInvMassMaxCut;
+ Float_t fLeftBandMinCut;
+ Float_t fLeftBandMaxCut;
+ Float_t fRightBandMinCut;
+ Float_t fRightBandMaxCut;
+
+ Bool_t kMC;
+ Bool_t kNeutralMesonHistos;
+ Bool_t kDoMixEventsAna;
+ Bool_t kDoPhotonCorrAna;
+ Bool_t kDoAsymmetryCut;
+ Bool_t kDoSelectHybridTracks;
+ Bool_t kDoMesonFill;
+ Bool_t kDoMesonCorrAna;
+ Bool_t kDoIsolatedAna;
+ Bool_t kDoTrackMultBins;
+ Bool_t kUELeftRight;
+ Bool_t kUENearAway;
+ Bool_t kDecayPhotonCorr;
+ Bool_t kAnaMCTruthCorr;
+ Bool_t kAnaMCPrimaryCorr;
+ Bool_t kAnaPi0Prim;
+ Bool_t kAnaEtaPrim;
+ Bool_t kAnaPhotonPrim;
+ Bool_t kMakeAbsoluteLeading;
+ Bool_t kMakeNearSideLeading;
+ Bool_t kTwoTracksCorr;
+ Bool_t kPhotonInAcceptance;
+ Bool_t kAnaDecayMapping;
+// Bool_t fCheckFidCut;
+ Bool_t kEventTriggerAtSE;
+ Bool_t kPhotonPairTimeCut;
+ Bool_t kDoPhotonIDCut;
+
+ TH1F *fhNEvents;
+ Int_t fnEvents;
+ TH1F *fhNEventsAnalyized;
+ Int_t fEventAnalyized;
+ TClonesArray *fPhotonEvent;
+ TClonesArray *fPhotonPairEvent;
+ TClonesArray *fCTSEvent;
+ Int_t nPhotonsEMCAL;
+ Int_t nTracksCTS;
+ TString fAnaTypeInIsolated;
+ Int_t nMixedEvents;
+ Float_t fSetConeR;
+ Float_t fSetPtThreshold;
+ Float_t fSetSumPtThreshold;
+ Float_t fSetPtFraction;
+ Int_t fICMethod;
+ Int_t fParticlesInCone;
+
+ Float_t *fTriggPtArray;
+ Int_t fNTriggPtBins;
+ Float_t fptTriggerBegin;
+ Float_t fptTriggerEnd;
+ Float_t *fAssocPtArray;
+ Int_t fNAssocPtBins;
+ Float_t fptAssociatedBegin;
+
+ Float_t fDeltaPhiMaxCut;
+ Float_t fDeltaPhiMinCut;
+ Float_t fUeDeltaPhiSize;
+ Float_t fUeDeltaPhiFix;
+ Float_t fDeltaPhiHRSize;
+
+ TH1F * fhPhotonE;
+ TH2F * fhPhotonPtPhi;
+ TH2F * fhPhotonPtEta;
+ TH2F * fhPhotonPhiEta;
+
+ TH1F * fhMesonE;
+ TH2F * fhMesonPtPhi;
+ TH2F * fhMesonPtEta;
+ TH2F * fhMesonPhiEta;
+
+ TH2F * fhAnglePairNoCut;
+ TH2F * fhInvMassPairNoCut;
+ TH2F * fhAsyNoCut;
+ TH2F * fhInvMassPairAsyCut;
+ TH2F * fhAnglePairAsyCut;
+ TH2F * fhInvMassPairPhi;
+ TH2F * fhInvMassPairEta;
+ TH2F * fhInvMassPairAllCut;
+ TH2F * fhAnglePairAllCut;
+ TH2F * fhAsyAllCut;
+ TH2F * fhPi0DecayPhoton1;
+ TH2F * fhPi0DecayPhoton1Dphi;
+ TH2F * fhDecayPhoton1Pi0Dphi;
+ TH2F * fhPi0DecayPhoton2;
+ TH2F * fhPi0DecayPhoton2Dphi;
+ TH2F * fhDecayPhoton2Pi0Dphi;
+ TH2F * fhDecayPhoton1Photon2;
+ TH2F * fhDecayPhoton1Photon2Dphi;
+ TH2F * fhDecayPhoton2Photon1Dphi;
+
+ TH1F * fhNtracksAll;
+ TH1F * fhNtracksEMC7;
+ TH1F * fhNtracksAnyINT;
+ TH1F * fhNtracksCentral;
+ TH1F * fhNtracksSemiCentral;
+ TH1F * fhNtracksOtherTirgger;
+ TH1F * fhNtracksCorr;
+ TH2F * fhTrackPtPhi;
+ TH2F * fhTrackPtEta;
+ TH2F * fhTrackPhiEta;
+ TH2F * fhPtPhiLeading; //! phi distribution vs pT of leading
+ TH2F * fhPtEtaLeading; //! eta distribution vs pT of leading
+ TH2F * fhMixPtPhiLeading; //! phi distribution vs pT of leading
+ TH2F * fhMixPtEtaLeading; //! eta distribution vs pT of leading
+
+ TH2F * fhDPhiTriggPtAssocPt;
+ TH2F * fhDEtaTriggPtAssocPt;
+ TH2F * fhAssocPtTriggPt;
+ TH2F * fhxELogTriggPt;
+ TH2F * fhpoutTriggPt;
+ TH2F * fhzTTriggPt;
+ TH2F * fhxETriggPt;
+ TH2F * fhAssocPtTriggPtHR;
+ TH2F * fhxELogTriggPtHR;
+ TH2F * fhpoutTriggPtHR;
+ TH2F * fhzTTriggPtHR;
+ TH2F * fhxETriggPtHR;
+ TH2F * fhNUeAssocPtTriggPt;
+ TH2F * fhNUepoutTriggPt;
+ TH2F * fhNUexETriggPt;
+ TH2F * fhNUezTTriggPt;
+ TH2F * fhNUexELogTriggPt;
+ TH2F * fhNUeDPhiDEta;
+ TH2F * fhAUeAssocPtTriggPt;
+ TH2F * fhAUepoutTriggPt;
+ TH2F * fhAUezTTriggPt;
+ TH2F * fhAUexETriggPt;
+ TH2F * fhAUexELogTriggPt;
+ TH2F * fhAUeDPhiDEta;
+
+ TH2F * fhMCPtPhiLeading; //! phi distribution vs pT of leading
+ TH2F * fhMCPtEtaLeading; //! eta distribution vs pT of leading
+
+ TH2F * fhMCAssocPtTriggPt;
+ TH2F * fhMCxELogTriggPt;
+ TH2F * fhMCpoutTriggPt;
+ TH2F * fhMCzTTriggPt;
+ TH2F * fhMCxETriggPt;
+ TH2F * fhMCAssocPtTriggPtHR;
+ TH2F * fhMCxELogTriggPtHR;
+ TH2F * fhMCpoutTriggPtHR;
+ TH2F * fhMCzTTriggPtHR;
+ TH2F * fhMCxETriggPtHR;
+ TH2F * fhMCNUeAssocPtTriggPt;
+ TH2F * fhMCNUepoutTriggPt;
+ TH2F * fhMCNUexETriggPt;
+ TH2F * fhMCNUezTTriggPt;
+ TH2F * fhMCNUexELogTriggPt;
+ TH2F * fhMCAUeAssocPtTriggPt;
+ TH2F * fhMCAUepoutTriggPt;
+ TH2F * fhMCAUezTTriggPt;
+ TH2F * fhMCAUexETriggPt;
+ TH2F * fhMCAUexELogTriggPt;
+
+ TH2F * fhDPhiAssocPt15T;
+ TH2F * fhDEtaAssocPt15T;
+ TH2F * fhMixDPhiAssocPt15T;
+ TH2F * fhMixDEtaAssocPt15T;
+ TH2F * fhMCDPhiAssocPt15T;
+ TH2F * fhMCDEtaAssocPt15T;
+
+ TList* fListMixEvents[10][10][10];
+
+ TH2F *fhDPhiTriggPtT[kNassocPtBins];
+ TH2F *fhDEtaTriggPtT[kNassocPtBins];
+ TH2F *fhMixDPhiTriggPtT[kNassocPtBins];
+ TH2F *fhMixDEtaTriggPtT[kNassocPtBins];
+
+ TH2F *fhDPhiSumPtBin[kNtriggPtBins][kNassocPtBins];
+ TH2F *fhDEtaSumPtBin[kNtriggPtBins][kNassocPtBins];
+ TH2F *fhDPhiDEtaBin[kNtriggPtBins][kNassocPtBins];
+ TH2F *fhMixDPhiDEtaBin[kNtriggPtBins][kNassocPtBins];
+
+ TH2F *fhDPhiAssocPtA[kNtriggPtBins];
+ TH2F *fhDEtaAssocPtA[kNtriggPtBins];
+ TH2F *fhMixDPhiAssocPtA[kNtriggPtBins];
+ TH2F *fhMixDEtaAssocPtA[kNtriggPtBins];
+
+ TH2F *fhMCDPhiTriggPtT[kNassocPtBins];
+ TH2F *fhMCDEtaTriggPtT[kNassocPtBins];
+
+ TH2F *fhMCDPhiSumPtBin[kNtriggPtBins][kNassocPtBins];
+ TH2F *fhMCDEtaSumPtBin[kNtriggPtBins][kNassocPtBins];
+ TH2F *fhMCDPhiDEtaBin[kNtriggPtBins][kNassocPtBins];
+
+ TH2F *fhMCDPhiAssocPtA[kNtriggPtBins];
+ TH2F *fhMCDEtaAssocPtA[kNtriggPtBins];
+
+ ClassDef(AliAnalysisTaskEMCALCaloTrackCorr, 1); // example of analysis
+};
+
+#endif