]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/AliAnaGammaDirect.h
Remove clusters to avoid memory leaks (Marco)
[u/mrichter/AliRoot.git] / PWG4 / AliAnaGammaDirect.h
CommitLineData
f9cea31c 1#ifndef ALIANAGAMMADIRECT_H
2#define ALIANAGAMMADIRECT_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5/* $Id$ */
6
7/* History of cvs commits:
8 *
9 * $Log$
84e10d55 10 * Revision 1.3 2007/03/08 10:24:32 schutz
11 * Coding convention
12 *
463ee300 13 * Revision 1.2 2007/02/09 18:40:40 schutz
14 * B\bNew version from Gustavo
15 *
2a1d8a29 16 * Revision 1.1 2007/01/23 17:17:29 schutz
17 * New Gamma package
18 *
f9cea31c 19 *
20 */
21
22//_________________________________________________________________________
23
463ee300 24// Class for the analysis of gamma
f9cea31c 25// This class only contains 3 methods: one to fill lists of particles (ESDs) comming
2a1d8a29 26// from the CTS (ITS+TPC) and the calorimeters; the other search in the
f9cea31c 27// corresponing calorimeter for the highest energy cluster, identify it as
2a1d8a29 28// prompt photon(Shower Shape and Isolation Cut), the last method does the
29// isolation selection
f9cea31c 30//
31// Class created from old AliPHOSGammaJet
32// (see AliRoot versions previous Release 4-09)
33
34//*-- Author: Gustavo Conesa (INFN-LNF)
35
36// --- ROOT system ---
f9cea31c 37#include <TParticle.h>
2a1d8a29 38#include <TClonesArray.h>
39#include <TTree.h>
f9cea31c 40#include "AliAnalysisTask.h"
2a1d8a29 41#include <TH2F.h>
f9cea31c 42
43class AliESD ;
44
45class AliAnaGammaDirect : public AliAnalysisTask {
46
47public:
48
49 AliAnaGammaDirect(const char *name) ; // default ctor
50 AliAnaGammaDirect(const AliAnaGammaDirect & g) ; // cpy ctor
463ee300 51 AliAnaGammaDirect & operator = (const AliAnaGammaDirect & g) ;//cpy assignment
f9cea31c 52 virtual ~AliAnaGammaDirect() ; //virtual dtor
2a1d8a29 53
f9cea31c 54 virtual void Exec(Option_t * opt = "") ;
2a1d8a29 55 virtual void ConnectInputData(Option_t *);
56 virtual void CreateOutputObjects();
f9cea31c 57 virtual void Terminate(Option_t * opt = "");
58
2a1d8a29 59 void InitParameters();
f9cea31c 60 TTree * GetChain() const {return fChain ; }
61 AliESD * GetESD() const {return fESD ; }
62 TObjArray * GetOutputContainer() const {return fOutputContainer ; }
63 Double_t GetMinGammaPt() const {return fMinGammaPt ; }
64 TString GetCalorimeter() const {return fCalorimeter ; }
65 Bool_t GetPrintInfo() const {return fPrintInfo ; }
66 Float_t GetConeSize() const {return fConeSize ; }
67 Float_t GetPtThreshold() const {return fPtThreshold ; }
68 Float_t GetPtSumThres() const {return fPtSumThreshold ; }
69 Int_t GetICMethod() const {return fMakeICMethod ; }
70
71 Bool_t IsEMCALPIDOn() const {return fEMCALPID ; }
72 Bool_t IsPHOSPIDOn() const {return fPHOSPID ; }
84e10d55 73 Float_t GetEMCALPhotonWeight() { return fEMCALPhotonWeight ; }
74 Float_t GetEMCALPi0Weight() { return fEMCALPi0Weight ; }
75 Float_t GetPHOSPhotonWeight() { return fPHOSPhotonWeight ; }
f9cea31c 76
77 void Print(const Option_t * opt)const;
78
79 void SetMinGammaPt(Double_t ptcut){fMinGammaPt =ptcut;}
80 void SetCalorimeter(TString calo){ fCalorimeter= calo ; }
81 void SetPrintInfo(Bool_t print){ fPrintInfo = print ; }
82 void SetConeSize(Float_t r) {fConeSize = r ; }
83 void SetPtThreshold(Float_t pt) {fPtThreshold = pt; };
84 void SetPtSumThreshold(Float_t pt) {fPtSumThreshold = pt; };
85 void SetICMethod(Int_t i ) {fMakeICMethod = i ; }
86
f9cea31c 87 void SetEMCALPIDOn(Bool_t pid){ fEMCALPID= pid ; }
88 void SetPHOSPIDOn(Bool_t pid){ fPHOSPID= pid ; }
84e10d55 89 void SetEMCALPhotonWeight(Float_t w){ fEMCALPhotonWeight = w ; }
90 void SetEMCALPi0Weight(Float_t w){ fEMCALPi0Weight = w ; }
91 void SetPHOSPhotonWeight(Float_t w){ fPHOSPhotonWeight = w ; }
f9cea31c 92
93 void CreateParticleList(TClonesArray * particleList,
94 TClonesArray * plCh, TClonesArray * plNe,
95 TClonesArray * plNePHOS);
96
97
98 void GetPromptGamma(TClonesArray * plNe, TClonesArray * plCTS, TParticle * pGamma, Bool_t &Is) const;
99
100 void MakeIsolationCut(TClonesArray * plCTS, TClonesArray * plNe,
101 TParticle *pCandidate, Int_t index,
463ee300 102 Bool_t &imcpt, Bool_t &icms, Float_t &ptsum) const ;
f9cea31c 103
104 private:
105
106 TTree *fChain ; //!pointer to the analyzed TTree or TChain
107 AliESD *fESD ; //! Declaration of leave types
108 TObjArray *fOutputContainer ; //! output data container
109 Bool_t fPrintInfo ; //Print most interesting information on screen
110 Double_t fMinGammaPt ; // Min pt in Calorimeter
111 TString fCalorimeter ; //PHOS or EMCAL detects Gamma
112 Bool_t fEMCALPID ;//Fill EMCAL particle lists with particles with corresponding pid
113 Bool_t fPHOSPID; //Fill PHOS particle lists with particles with corresponding pid
84e10d55 114 Float_t fEMCALPhotonWeight; //Bayesian PID weight for photons in EMCAL
115 Float_t fEMCALPi0Weight; //Bayesian PID weight for pi0 in EMCAL
116 Float_t fPHOSPhotonWeight; //Bayesian PID weight for photons in PHOS
f9cea31c 117 Float_t fConeSize ; //Size of the isolation cone
118 Float_t fPtThreshold ; //Mimium pt of the particles in the cone to set isolation
119 Float_t fPtSumThreshold ; //Mimium pt sum of the particles in the cone to set isolation
f9cea31c 120 Int_t fMakeICMethod ; //Isolation cut method to be used
121 // 0: No isolation
122 // 1: Pt threshold method
123 // 2: Cone pt sum method
f9cea31c 124 //Histograms
125 TH1F * fhNGamma ;
126 TH2F * fhPhiGamma ;
127 TH2F * fhEtaGamma ;
f9cea31c 128
129 ClassDef(AliAnaGammaDirect,0)
130} ;
131
132
133#endif //ALIANAGAMMADIRECT_H
134
135
136