-Move cent, z axis into sparse
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / 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 <iostream>\r
14 #include "TObject.h"\r
15 #include "Rtypes.h"\r
16 #include "TF1.h"\r
17 #include <TMath.h>\r
18 class TH2F;\r
19 class TH1F;\r
20 class AliAODConversionPhoton;\r
21 class AliAODConversionParticle;\r
22 class TClonesArray;\r
23 class TList;\r
24 \r
25 using namespace std;\r
26 \r
27 class AliAnaConvIsolation : public TObject {\r
28 \r
29 public:\r
30   \r
31   AliAnaConvIsolation(); \r
32   AliAnaConvIsolation(Float_t coneSize, Float_t maxPtThreshold, Float_t sumPtThreshold, Float_t maxPtFraction, Float_t sumPtFraction);\r
33   virtual ~AliAnaConvIsolation();\r
34   \r
35 \r
36   //void CreateHistograms();\r
37 \r
38 \r
39   ///Set And get cone size\r
40   void SetConeSize(Float_t cs) {fConeSize = cs*cs;}\r
41   Float_t GetConeSize() const {return TMath::Sqrt(fConeSize);}\r
42 \r
43 \r
44   //Set and get max pt threshold\r
45   void SetMaxPtThreshold(Float_t cs) {fMaxPtThreshold = cs;}\r
46   Float_t GetPtThreshold() const {return fMaxPtThreshold;}\r
47 \r
48 \r
49   //Set and get sum pt threshold\r
50   void SetSumPtThreshold(Float_t cs) {fSumPtThreshold = cs;}\r
51   Float_t GetPtSumThreshold() const {return fSumPtThreshold;}\r
52 \r
53   //Set and get max Pt fraction threshold\r
54   void SetMaxPtFraction(Float_t cs) {fMaxPtFraction = cs;}\r
55   Float_t GetPtFraction() const {return fMaxPtFraction;}\r
56 \r
57   //Set and get sum pt fraction threshold\r
58   void SetSumPtFraction(Float_t cs) {fSumPtFraction = cs;}\r
59   Float_t GetPtSumFraction() const {return fSumPtFraction;}\r
60 \r
61   //Set min pt for a particle to be counted in bg\r
62   void SetMinPt( Float_t minpt) {fMinPt = minpt; }\r
63 \r
64   //Get isolation curve\r
65   TF1 * GetIsolationCurve() const { return fIsoCurve; }\r
66 \r
67   //Set function of isolation curve\r
68   void SetIsolationCurve(TString  curve) { \r
69     fCurveFunction = curve;\r
70   }\r
71 \r
72   Bool_t IsLeading(AliAODConversionParticle  * particle, const TObjArray * tracks, const TObjArray * aodParticles);\r
73 \r
74 \r
75   //Fill histograms\r
76   //void FillHistograms(Float_t pt, Float_t ptMax, Float_t ptSum, Bool_t isolated, Int_t nTracks);\r
77 \r
78   //Get list of histograms\r
79   //TList * GetHistograms() const { return fHistograms;}\r
80 \r
81   //Is particle isolated\r
82   Bool_t IsIsolated( const AliAODConversionPhoton * const particle, const TClonesArray * const tracks, Bool_t &leading);\r
83   Bool_t IsIsolated( AliAODConversionPhoton * const particle, const TClonesArray * const tracks, const Int_t nSpawn, const Int_t * const spawn, Bool_t &leading );\r
84   Int_t IsLeading(const AliAODConversionParticle * particle, const TObjArray * tracks, const Int_t * tIDs) const;\r
85 \r
86   //Is eta - phi distance smaller than conesize ?\r
87   Bool_t IsInCone(Float_t dEta, Float_t dPhi, const Float_t coneSize) const {\r
88         dPhi = (TMath::Abs(dPhi) < TMath::Pi()) ? dPhi : TMath::TwoPi() - TMath::Abs(dPhi); \r
89     return ( (dEta*dEta + dPhi*dPhi) < coneSize);\r
90   }\r
91 \r
92  private:\r
93 \r
94   ///Evaluate whether particle is isolated according to criterie\r
95   Bool_t EvaluateIsolationCriteria(Float_t ptSum, Float_t pt) const;\r
96 \r
97   TF1 * fIsoCurve; ///Curve defining if particle is isolated or not \r
98   TString fCurveFunction; ///Funtion defining curve\r
99 \r
100   Float_t fConeSize; //Size of isolation cone\r
101   Float_t fMinPt; //min pt for bg particles\r
102   Float_t fMaxPtThreshold; //max pt threshold\r
103   Float_t fSumPtThreshold; //sum pt threhold\r
104   Float_t fMaxPtFraction;  //max pt fraction threshold\r
105   Float_t fSumPtFraction; //sum pt fraction threshold\r
106 \r
107   // TList * fHistograms; //list of histograms\r
108 \r
109   // TH2F * fhMaxPtInCone[2]; //histogram of max pt in cone\r
110   // TH2F * fhSumPtInCone[2]; //histogram of sum pt in cone\r
111   // TH2F * fhSumPtVsMaxPt[2];//sum pt vs max pt\r
112   \r
113   // // TH1F * fHistSumPt[2][2]; \r
114   // // TH1F * fHistMaxPt[2][2];\r
115   \r
116   // TH1F * fhPtCandidates[2]; //pt distribution of isolation candidates\r
117   // TH1F * fhTrackMult[2];    //Track multiplicity of events with / wo isolated particles\r
118   \r
119 \r
120   // Float_t fHistogramMaxPt; //Upper pt limit in histograms\r
121 \r
122 \r
123   AliAnaConvIsolation(const AliAnaConvIsolation&); // not implemented\r
124   AliAnaConvIsolation& operator=(const AliAnaConvIsolation&); // not implemented\r
125   ClassDef(AliAnaConvIsolation, 2); // example of analysis\r
126 };\r
127 \r
128 #endif\r