]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/GammaConv/ConvCorrelations/AliAnaConvIsolation.h
Moving gamma jet ana to separate folder. Addding several ana processors.
[u/mrichter/AliRoot.git] / PWG4 / GammaConv / ConvCorrelations / AliAnaConvIsolation.h
1 /* This file is property of and copyright                                 *\r
2  * ALICE Experiment at CERN, All rights reserved.                         *\r
3  * See cxx source for full Copyright notice                               */\r
4 \r
5 /// @file   AliAnalysisTaskGammaJet.h\r
6 /// @author Svein Lindal\r
7 /// @brief  Class used to run isolation studies of conversion gamma/pions\r
8  \r
9 \r
10 #ifndef ALIANACONVISOLATION_CXX\r
11 #define ALIANACONVISOLATION_CXX\r
12 \r
13 #include "TObject.h"\r
14 #include "Rtypes.h"\r
15 #include "TF1.h"\r
16 class TH2F;\r
17 class TH1F;\r
18 class AliAODConversionParticle;\r
19 class TClonesArray;\r
20 class TList;\r
21 \r
22 class AliAnaConvIsolation : public TObject {\r
23 \r
24 public:\r
25   \r
26   AliAnaConvIsolation(); \r
27   AliAnaConvIsolation(Float_t coneSize, Float_t maxPtThreshold, Float_t sumPtThreshold, Float_t maxPtFraction, Float_t sumPtFraction);\r
28   virtual ~AliAnaConvIsolation();\r
29   \r
30 \r
31   void CreateHistograms();\r
32 \r
33 \r
34   ///Set And get cone size\r
35   void SetConeSize(Float_t cs) {fConeSize = cs;}\r
36   Float_t GetConeSize() const {return fConeSize;}\r
37 \r
38 \r
39   //Set and get max pt threshold\r
40   void SetMaxPtThreshold(Float_t cs) {fMaxPtThreshold = cs;}\r
41   Float_t GetPtThreshold() const {return fMaxPtThreshold;}\r
42 \r
43 \r
44   //Set and get sum pt threshold\r
45   void SetSumPtThreshold(Float_t cs) {fSumPtThreshold = cs;}\r
46   Float_t GetPtSumThreshold() const {return fSumPtThreshold;}\r
47 \r
48   //Set and get max Pt fraction threshold\r
49   void SetMaxPtFraction(Float_t cs) {fMaxPtFraction = cs;}\r
50   Float_t GetPtFraction() const {return fMaxPtFraction;}\r
51 \r
52   //Set and get sum pt fraction threshold\r
53   void SetSumPtFraction(Float_t cs) {fSumPtFraction = cs;}\r
54   Float_t GetPtSumFraction() const {return fSumPtFraction;}\r
55 \r
56   //Set min pt for a particle to be counted in bg\r
57   void SetMinPt( Float_t minpt) {fMinPt = minpt; }\r
58 \r
59   //Get isolation curve\r
60   TF1 * GetIsolationCurve() const { return fIsoCurve; }\r
61 \r
62   //Set function of isolation curve\r
63   void SetIsolationCurve(TString  curve) { \r
64     fCurveFunction = curve;\r
65   }\r
66 \r
67   //Fill histograms\r
68   void FillHistograms(Float_t pt, Float_t ptMax, Float_t ptSum, Bool_t isolated, Int_t nTracks);\r
69 \r
70   //Get list of histograms\r
71   TList * GetHistograms() const { return fHistograms;}\r
72 \r
73   //Is particle isolated\r
74   Bool_t IsIsolated( const AliAODConversionParticle * const particle, const TClonesArray * const tracks, Bool_t &leading);\r
75   Bool_t IsIsolated( AliAODConversionParticle * const particle, const TClonesArray * const tracks, const Int_t nSpawn, const Int_t * const spawn, Bool_t &leading );\r
76 \r
77  private:\r
78 \r
79   //Is eta - phi distance smaller than conesize ?\r
80   Bool_t IsInCone(Float_t dEta, Float_t dPhi, Float_t coneSize) const {\r
81     return ( (dEta*dEta + dPhi*dPhi) < coneSize*coneSize);\r
82   }\r
83 \r
84   ///Evaluate whether particle is isolated according to criterie\r
85   Bool_t EvaluateIsolationCriteria(Float_t ptSum, Float_t pt) const;\r
86 \r
87   TF1 * fIsoCurve; ///Curve defining if particle is isolated or not \r
88   TString fCurveFunction; ///Funtion defining curve\r
89 \r
90   Float_t fConeSize; //Size of isolation cone\r
91   Float_t fMinPt; //min pt for bg particles\r
92   Float_t fMaxPtThreshold; //max pt threshold\r
93   Float_t fSumPtThreshold; //sum pt threhold\r
94   Float_t fMaxPtFraction;  //max pt fraction threshold\r
95   Float_t fSumPtFraction; //sum pt fraction threshold\r
96 \r
97   TList * fHistograms; //list of histograms\r
98 \r
99   TH2F * fhMaxPtInCone[2]; //histogram of max pt in cone\r
100   TH2F * fhSumPtInCone[2]; //histogram of sum pt in cone\r
101   TH2F * fhSumPtVsMaxPt[2];//sum pt vs max pt\r
102   \r
103   // TH1F * fHistSumPt[2][2]; \r
104   // TH1F * fHistMaxPt[2][2];\r
105   \r
106   TH1F * fhPtCandidates[2]; //pt distribution of isolation candidates\r
107   TH1F * fhTrackMult[2];    //Track multiplicity of events with / wo isolated particles\r
108   \r
109 \r
110   Float_t fHistogramMaxPt; //Upper pt limit in histograms\r
111 \r
112 \r
113   AliAnaConvIsolation(const AliAnaConvIsolation&); // not implemented\r
114   AliAnaConvIsolation& operator=(const AliAnaConvIsolation&); // not implemented\r
115   ClassDef(AliAnaConvIsolation, 2); // example of analysis\r
116 };\r
117 \r
118 #endif\r