]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/AliAnaGammaDirect.h
coding conventions, compilation warnings, code cleanup
[u/mrichter/AliRoot.git] / PWG4 / AliAnaGammaDirect.h
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$
10  * Revision 1.4.4.3  2007/07/26 10:32:09  schutz
11  * new analysis classes in the the new analysis framework
12  *
13  *
14  */
15
16 //_________________________________________________________________________
17
18 // Class for the analysis of prompt gamma, isolation cut. 
19 //
20 //  Class created from old AliPHOSGammaJet
21 //  (see AliRoot versions previous Release 4-09)
22
23 //*-- Author: Gustavo Conesa (INFN-LNF)
24
25 // --- ROOT system ---
26 #include <TParticle.h> 
27 #include <TClonesArray.h> 
28 #include "TObject.h" 
29 #include <TH2F.h>
30
31 class TList ;
32
33 class AliAnaGammaDirect : public TObject {
34
35 public: 
36
37   AliAnaGammaDirect() ; // default ctor
38   AliAnaGammaDirect(const AliAnaGammaDirect & g) ; // cpy ctor
39   AliAnaGammaDirect & operator = (const AliAnaGammaDirect & g) ;//cpy assignment
40   virtual ~AliAnaGammaDirect() ; //virtual dtor
41   
42   enum anatype_t {kNoIC, kPtIC, kSumPtIC, kSeveralIC};
43   
44   Double_t  GetMinGammaPt()    const {return fMinGammaPt ; }
45   Float_t     GetConeSize()          const {return fConeSize ; }
46   Float_t     GetPtThreshold()      const {return fPtThreshold ; }
47   Float_t     GetPtSumThres()     const {return fPtSumThreshold ; }
48   Int_t        GetICMethod()          const {return fICMethod ; }
49
50   TList *  GetCreateOutputObjects();
51   void GetPromptGamma(TClonesArray * plNe, TClonesArray * plCTS, TParticle * pGamma, Bool_t &Is)  const;
52   
53   void MakeSeveralICAnalysis(TClonesArray * plCalo, TClonesArray * plCTS); 
54   void MakeIsolationCut(TClonesArray * plCTS, TClonesArray * plNe, 
55                         TParticle *pCandidate, Int_t index, 
56                         Bool_t &imcpt, Bool_t &icms, Float_t &ptsum) const ;  
57   
58   void Print(const Option_t * opt)const;
59   
60   void SetMinGammaPt(Double_t ptcut){fMinGammaPt =ptcut;}
61   void SetConeSize(Float_t r)              {fConeSize = r ; }
62   void SetPtThreshold(Float_t pt)        {fPtThreshold = pt; };
63   void SetPtSumThreshold(Float_t pt) {fPtSumThreshold = pt; };
64   void SetICMethod(Int_t i )          {fICMethod = i ; }
65   
66   Int_t    GetNCones()                  const {return fNCones ; }
67   Int_t    GetNPtThresholds()                const {return fNPtThres ; }
68   Float_t GetConeSizes(Int_t i)      const {return fConeSizes[i] ; }
69   Float_t GetPtThresholds(Int_t i)  const {return fPtThresholds[i] ; }
70   
71   void InitParameters();
72  
73   void SetNCones(Int_t ncs)              {fNCones = ncs ; }
74   void SetNPtThresholds(Int_t npt)        {fNPtThres = npt; }
75   void SetConeSizes(Int_t i, Float_t r)         {fConeSizes[i] = r ; }
76   void SetPtThresholds(Int_t i, Float_t pt)   {fPtThresholds[i] = pt; }
77
78   
79   private:
80      
81   Double_t    fMinGammaPt ;  // Min pt in Calorimeter
82   Float_t      fConeSize ; //Size of the isolation cone 
83   Float_t      fPtThreshold ; //Mimium pt of the particles in the cone to set isolation
84   Float_t      fPtSumThreshold ; //Mimium pt sum of the particles in the cone to set isolation  
85   Int_t        fICMethod ; //Isolation cut method to be used
86                                            // kNoIC: No isolation
87                                            // kPtIC: Pt threshold method
88                                            // kSumPtIC: Cone pt sum method
89                                            // kSeveralIC: Analysis for several cuts
90   //Histograms  
91   TH1F * fhNGamma    ;  //Number of (isolated) gamma identified
92   TH2F * fhPhiGamma    ; // Phi of identified gamma
93   TH2F * fhEtaGamma    ; // eta of identified gamma
94   
95   //Prompt photon analysis data members for multiple cones and pt thresholds kIsolationCut
96   Int_t         fNCones   ; //Number of cone sizes to test
97   Int_t         fNPtThres ; //Number of ptThres to test
98   Float_t     fConeSizes[10] ; // Array with cones to test
99   Float_t     fPtThresholds[10] ; // Array with pt thresholds to test
100   
101   TH1F* fhPtThresIsolated[20][20]; // Isolated gamma with pt threshold 
102   TH2F* fhPtSumIsolated[20] ;  //  Isolated gamma with threshold on cone pt sume
103
104   ClassDef(AliAnaGammaDirect,0)
105 } ;
106  
107
108 #endif //ALIANAGAMMADIRECT_H
109
110
111