1 #ifndef ALIANALYSISTASKEMCALPHOTONISOLATION_H
2 #define ALIANALYSISTASKEMCALPHOTONISOLATION_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
6 //////////////////////////////////////////////////////////////////////////
8 // Task for Isolated Gamma in p-p,p-Pb and eventually g-h Correlation //
10 // Author: Davide Francesco Lodato (Utrecht University) //
11 // Lucile Ronflette (Subatech, Nantes) //
12 // Marco Marquard (University Frankfurt am Main) //
13 //////////////////////////////////////////////////////////////////////////
23 class AliEMCALGeometry;
24 class AliESDCaloCells;
32 class AliESDtrackCuts;
34 class AliAODCaloCells;
39 class AliClusterContainer;
40 class AliParticleContainer;
41 class AliEmcalParticle;
45 class AliEMCALRecoUtils;
46 //class AliAnalysisFilter;
48 class AliAODCaloCluster;
49 class AliESDCaloCluster;
51 //class AliEventPoolManager;
53 #include "AliAnalysisTaskEmcal.h"
55 class AliAnalysisTaskEMCALPhotonIsolation : public AliAnalysisTaskEmcal {
57 AliAnalysisTaskEMCALPhotonIsolation();
58 AliAnalysisTaskEMCALPhotonIsolation(const char *name, Bool_t histo=kFALSE);
59 virtual ~AliAnalysisTaskEMCALPhotonIsolation();
61 void UserCreateOutputObjects();
63 void SetIsoConeRadius(Float_t r) { fIsoConeRadius = r ;}
64 void SetCTMdeltaEta (Float_t r) { fdetacut = r ;}
65 void SetCTMdeltaPhi (Float_t r) { fdphicut = r ;}
66 void SetIsoMethod (Int_t r ) { fIsoMethod = r ;}
67 void SetUEMethod (Int_t UE) { fUEMethod = UE;}
68 void SetOutputFormat (Int_t iOut) { fWho = iOut;}
69 void SetQA (Bool_t QA) { fQA = QA;}
70 void SetMC (Bool_t MC) { fIsMC = MC;}
71 void SetUSEofTPC (Bool_t TPC) { fTPC4Iso = TPC;}
72 void SetLCAnalysis (Bool_t LC) { fisLCAnalysis = LC;}
76 void EtIsoCellPhiBand(TLorentzVector c, Float_t &EtIso, Float_t &PhiBand); //EIsoCone via Cells UE via PhiBand EMCAL
77 void EtIsoCellEtaBand(TLorentzVector c, Float_t &EtIso, Float_t &EtaBand); //EIsoCone via Cells UE via EtaBand EMCAL
78 void EtIsoClusPhiBand(TLorentzVector c, Float_t &EtIso, Float_t &EtaBand, Int_t index); //EIsoCone via Clusters UE via EtaBand EMCAL
79 void EtIsoClusEtaBand(TLorentzVector c, Float_t &EtIso, Float_t &EtaBand, Int_t index); //EIsoCone via Clusters UE via EtaBand EMCAL
80 void PtIsoTrackPhiBand(TLorentzVector c, Float_t &PtIso, Float_t &PhiBand); //PIsoCone via Track UE via PhiBand TPC
81 void PtIsoTrackEtaBand(TLorentzVector c, Float_t &PtIso, Float_t &EtaBand); //PIsoCone via Track UE via EtaBand TPC
82 // void PtIsoTraClusPhiBand(TLorentzVector c, Float_t &PtIso, Float_t &PhiBand); //(P+E)IsoCone via Track/Clus UE via PhiBand TPC+EMCAL
83 // void PtIsoTraClusEtaBand(TLorentzVector c, Float_t &PtIso, Float_t &EtaBand); //(P+E)IsoCone via Track/Clus UE via EtaBand TPC+EMCAL
84 void PtIsoTrackOrthCones(TLorentzVector c, Float_t &PtIso, Float_t &Cones); //PIsoCone via Tracks UE via Orthogonal Cones in Phi
85 void PtIsoTrackFullTPC(TLorentzVector c, Float_t &PtIso, Float_t &Full); //PIsoCone via Tracks UE via FullTPC - IsoCone - B2BEtaBand
86 Bool_t ClustTrackMatching(AliVCluster *cluster);
87 Bool_t CheckBoundaries(TLorentzVector VecCOI);
88 // void FillNCOutput(AliVCluster *COI, TLorentzVector VecCOI, Int_t index);
90 Float_t* GenerateFixedBinArray(Int_t n, Float_t min, Float_t max) const;
94 using AliAnalysisTaskEmcal::FillGeneralHistograms;
95 Bool_t FillGeneralHistograms(AliVCluster *COI, TLorentzVector VecCOI, Int_t index);
96 //Bool_t FillGeneralHistograms(AliVCluster *COI, TLorentzVector VecCOI, Int_t index);
99 // TObjArray fParticleCollArray; // Neutral Clusters collection array
100 TClonesArray *fNCluster; // Neutral clusters
102 Int_t fWho; // MODE for the Output Object (TTree or THnSparse)
108 //IMPLEMENT ALL THE HISTOGRAMS AND ALL THE OUTPUT OBJECTS WE WANT!!!
109 // TList *fOutputList; //! Output list
110 TGeoHMatrix *fGeomMatrix[12];//! Geometry misalignment matrices for EMCal
113 TH1 *fTrackMult; //!Track Multiplicity ---QA
114 TH1 *fTrackMultEMCAL; //!Track Multiplicity EMCAL ---QA
115 TH1 *fClustMult; //!Cluster Multiplicity EMCAL ---QA
116 TH1 *fPVZBefore; //!Z Vertex distribution before cuts. ---QA
117 TH2 *fEtaPhiCell; //!EMCAL Active Cells Distribution EtaPhi ---QA
118 TH2 *fEtaPhiClus; //!EMCAL Cluster Distribution EtaPhi ---QA
119 TH2 *fClusEvsClusT; //!Cluster Energy vs Cluster Time ---QA
120 TH1 *fGoodEventsOnPVZ; //!Number of selected events After the Cut on Primary Vertex
121 TH1 *fPT; //!Pt distribution
122 TH2 *fM02; //!Squared_Lambda0 distribution
123 TH1 *fNLM; //!NLM distribution
124 TH2 *fDeltaETAClusTrackVSpT; //!dEta Cluster-Track VS pT!
125 TH2 *fDeltaPHIClusTrackVSpT; //!dPhi Cluster-Track VS pT!
126 TH1 *fEtIsoCells; //!Isolation Energy with EMCAL Cells
127 TH1 *fEtIsoClust; //!Isolation Energy with EMCAL Clusters
128 TH1 *fPtIsoTrack; //!Isolation Pt with Tracks
129 TH1 *fPtEtIsoTC; //!Isolation with Pt from Tracks and Et from NON-Matched Clusters
130 TH2 *fPhiBandUEClust; //!UE with Phi Band (Clusters)
131 TH2 *fEtaBandUEClust; //!UE with Eta Band (Clusters)
132 TH2 *fPhiBandUECells; //!UE with Phi Band (Cells)
133 TH2 *fEtaBandUECells; //!UE with Eta Band (Cells)
134 TH2 *fPhiBandUETracks; //!UE with Phi Band (Tracks)
135 TH2 *fEtaBandUETracks; //!UE with Eta Band (Tracks)
136 TH2 *fPerpConesUETracks; //!UE with Cones (Tracks ONLY)
137 TH2 *fTPCWithoutIsoConeB2BbandUE; //!UE with Full TPC except IsoCone and EtaBand in Back2Back
138 TH1 *fNTotClus10GeV; //!number of TOTAL clusters with Energy bigger than 10 GeV
139 TH1 *fRecoPV; //! primary vertex reconstruction
140 TH1 *fEtIsolatedCells; //! Isolated photons, isolation with cells
141 TH1 *fEtIsolatedClust; //! Isolated photons, isolation with clusters
142 TH1 *fEtIsolatedTracks; //! Isolated photons, isolation with tracks
145 THnSparse *fOutputTHnS; //! 1st Method 4 Output
146 THnSparse *fOutPTMAX; //! 1st Method 4 Isolation on pTMax
148 TTree *fOutputTree; //! 2nd Method 4 Output
150 Float_t fIsoConeRadius; // Radius for the Isolation Cont
151 Int_t fEtIsoMethod; // Isolation definition 0=SumEt<EtThr, 1=SumEt<%Ephoton, 2=Etmax<EtThr
152 Double_t fEtIsoThreshold; // Et isolation threshold, supposed to be % if method one is choosed
153 Double_t fdetacut; // cut on deta between track and cluster
154 Double_t fdphicut; // cut on dphi between track and cluster
155 Double_t fM02mincut; // lambda0^2 minimum cut
156 Double_t fM02maxcut; // lambda0^2 maximum cut
157 Bool_t fQA; // Flag for few further QA plots wrt the ones already done in the EMCALTask
158 Bool_t fIsMC; // Flag for MC Truth Analysis
159 Bool_t fTPC4Iso; //0=EMCAL_ONLY; 1=EMCAL+TPC
160 Int_t fIsoMethod; //0=Cells, 1=Clusters (EMCAL_ONLY), 2=Tracks (EMCAL w/o TPC)
161 Int_t fUEMethod; //0=PhiBand, 1=EtaBand, (EMCAL or TPC) 2= Ort Cones, 3=FullTPC (only with TPC)
162 Double_t *fVertex; //!event vertex
163 Int_t fNDimensions; //!number of Dimensions for the THnSPARSE
164 Bool_t fisLCAnalysis; // Flag to pass from Leading Clusters Analysis to a NC One
166 // Initialization for TTree variables
175 Double_t fsumEtisoconeT;
177 // AliParticleContainer *fTracksCont; //!Tracks
178 // AliParticleContainer *fclusters; //!Container for Particle container 4 clusters
181 AliAnalysisTaskEMCALPhotonIsolation(const AliAnalysisTaskEMCALPhotonIsolation&); // not implemented
182 AliAnalysisTaskEMCALPhotonIsolation &operator=(const AliAnalysisTaskEMCALPhotonIsolation&); // not implemented
185 ClassDef(AliAnalysisTaskEMCALPhotonIsolation, 1) //EMCAL Neutrals base analysis task