Compilation on Windows/Cygwin
[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$
4b707925 10 * Revision 1.5 2007/08/17 12:40:04 schutz
11 * New analysis classes by Gustavo Conesa
12 *
bdcfac30 13 * Revision 1.4.4.3 2007/07/26 10:32:09 schutz
14 * new analysis classes in the the new analysis framework
2a1d8a29 15 *
f9cea31c 16 *
17 */
18
19//_________________________________________________________________________
20
bdcfac30 21// Class for the analysis of prompt gamma, isolation cut.
f9cea31c 22//
23// Class created from old AliPHOSGammaJet
24// (see AliRoot versions previous Release 4-09)
25
26//*-- Author: Gustavo Conesa (INFN-LNF)
27
28// --- ROOT system ---
f9cea31c 29#include <TParticle.h>
2a1d8a29 30#include <TClonesArray.h>
bdcfac30 31#include "TObject.h"
2a1d8a29 32#include <TH2F.h>
4b707925 33#include <TNtuple.h>
f9cea31c 34
bdcfac30 35class TList ;
36
37class AliAnaGammaDirect : public TObject {
f9cea31c 38
39public:
40
bdcfac30 41 AliAnaGammaDirect() ; // default ctor
f9cea31c 42 AliAnaGammaDirect(const AliAnaGammaDirect & g) ; // cpy ctor
463ee300 43 AliAnaGammaDirect & operator = (const AliAnaGammaDirect & g) ;//cpy assignment
f9cea31c 44 virtual ~AliAnaGammaDirect() ; //virtual dtor
f9cea31c 45
3bb2c538 46 enum Anatype {kNoIC, kPtIC, kSumPtIC, kSeveralIC};
bdcfac30 47
f9cea31c 48 Double_t GetMinGammaPt() const {return fMinGammaPt ; }
f9cea31c 49 Float_t GetConeSize() const {return fConeSize ; }
50 Float_t GetPtThreshold() const {return fPtThreshold ; }
51 Float_t GetPtSumThres() const {return fPtSumThreshold ; }
bdcfac30 52 Int_t GetICMethod() const {return fICMethod ; }
4b707925 53 Bool_t IsMC() const {return fAnaMC ; };
f9cea31c 54
bdcfac30 55 TList * GetCreateOutputObjects();
4b707925 56 void GetPromptGamma(TClonesArray * plNe, TClonesArray * plCTS, TClonesArray * plPrimNe, TParticle * pGamma, Bool_t &Is) const;
bdcfac30 57
58 void MakeSeveralICAnalysis(TClonesArray * plCalo, TClonesArray * plCTS);
59 void MakeIsolationCut(TClonesArray * plCTS, TClonesArray * plNe,
4b707925 60 TParticle *pCandidate, Int_t index, Int_t &n,
bdcfac30 61 Bool_t &imcpt, Bool_t &icms, Float_t &ptsum) const ;
62
f9cea31c 63 void Print(const Option_t * opt)const;
bdcfac30 64
f9cea31c 65 void SetMinGammaPt(Double_t ptcut){fMinGammaPt =ptcut;}
f9cea31c 66 void SetConeSize(Float_t r) {fConeSize = r ; }
67 void SetPtThreshold(Float_t pt) {fPtThreshold = pt; };
68 void SetPtSumThreshold(Float_t pt) {fPtSumThreshold = pt; };
bdcfac30 69 void SetICMethod(Int_t i ) {fICMethod = i ; }
4b707925 70 void SetMC() {fAnaMC = kTRUE ; }
3bb2c538 71 void SetIsolatePi0(Bool_t iso) {fIsolatePi0 = iso ; }
4b707925 72
bdcfac30 73 Int_t GetNCones() const {return fNCones ; }
74 Int_t GetNPtThresholds() const {return fNPtThres ; }
75 Float_t GetConeSizes(Int_t i) const {return fConeSizes[i] ; }
76 Float_t GetPtThresholds(Int_t i) const {return fPtThresholds[i] ; }
f9cea31c 77
bdcfac30 78 void InitParameters();
79
80 void SetNCones(Int_t ncs) {fNCones = ncs ; }
81 void SetNPtThresholds(Int_t npt) {fNPtThres = npt; }
82 void SetConeSizes(Int_t i, Float_t r) {fConeSizes[i] = r ; }
83 void SetPtThresholds(Int_t i, Float_t pt) {fPtThresholds[i] = pt; }
f9cea31c 84
bdcfac30 85
86 private:
87
f9cea31c 88 Double_t fMinGammaPt ; // Min pt in Calorimeter
f9cea31c 89 Float_t fConeSize ; //Size of the isolation cone
90 Float_t fPtThreshold ; //Mimium pt of the particles in the cone to set isolation
91 Float_t fPtSumThreshold ; //Mimium pt sum of the particles in the cone to set isolation
bdcfac30 92 Int_t fICMethod ; //Isolation cut method to be used
93 // kNoIC: No isolation
94 // kPtIC: Pt threshold method
95 // kSumPtIC: Cone pt sum method
96 // kSeveralIC: Analysis for several cuts
4b707925 97 Bool_t fAnaMC ; //Set in case of using MCData reader
3bb2c538 98 Bool_t fIsolatePi0 ; //Consider identified pi0 in the isolation study.
f9cea31c 99 //Histograms
bdcfac30 100 TH1F * fhNGamma ; //Number of (isolated) gamma identified
4b707925 101 TH2F * fhPhiGamma ; // Phi of identified gamma
102 TH2F * fhEtaGamma ; // eta of identified gamma
103 TH2F * fhConeSumPt ; // Sum Pt in the cone
104
105 TNtuple * fntuplePrompt ; //List of found prompt photons, pt, eta and phi. Also primary information.
106
bdcfac30 107 //Prompt photon analysis data members for multiple cones and pt thresholds kIsolationCut
108 Int_t fNCones ; //Number of cone sizes to test
109 Int_t fNPtThres ; //Number of ptThres to test
110 Float_t fConeSizes[10] ; // Array with cones to test
111 Float_t fPtThresholds[10] ; // Array with pt thresholds to test
112
113 TH1F* fhPtThresIsolated[20][20]; // Isolated gamma with pt threshold
114 TH2F* fhPtSumIsolated[20] ; // Isolated gamma with threshold on cone pt sume
4b707925 115 TNtuple * fntSeveralIC[20] ; //ntuple
f9cea31c 116
4b707925 117 ClassDef(AliAnaGammaDirect,1)
f9cea31c 118} ;
119
120
121#endif //ALIANAGAMMADIRECT_H
122
123
124