]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/GammaConv/ConvCorrelations/AliAnalysisTaskGammaJet.h
Moving gamma jet ana to separate folder. Addding several ana processors.
[u/mrichter/AliRoot.git] / PWG4 / GammaConv / ConvCorrelations / AliAnalysisTaskGammaJet.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 \r
11 #ifndef ALIANALYSISTASKGAMMAJET_H\r
12 #define ALIANALYSISTASKGAMMAJET_H\r
13 \r
14 \r
15 \r
16 class TH1F;\r
17 class AliESDEvent;\r
18 class AliGammaConversionAODObject;\r
19 class AliAODConversionParticle;\r
20 class AliAODPWG4ParticleCorrelation;\r
21 class AliAODPWG4Particle;\r
22 class TObjArray;\r
23 class TString;\r
24 class TClonesArray;\r
25 \r
26 \r
27 #include "AliAnaConvIsolation.h"\r
28 #include "AliAnalysisTaskSE.h"\r
29 \r
30 class AliAnalysisTaskGammaJet : public AliAnalysisTaskSE {\r
31 \r
32 public:\r
33  \r
34   AliAnalysisTaskGammaJet(); \r
35   AliAnalysisTaskGammaJet(const char *name);\r
36   virtual ~AliAnalysisTaskGammaJet();\r
37   \r
38   virtual void   UserCreateOutputObjects();\r
39   virtual void   UserExec(Option_t *option);\r
40   virtual void   Terminate(Option_t *);\r
41 \r
42   void SetDeltaAODFileName(TString string) { fDeltaAODFileName = string;}\r
43  \r
44   AliAnaConvIsolation * GetIsolation() const {return fAnaIsolation;}\r
45   void SetIsolation( AliAnaConvIsolation * isolation) { fAnaIsolation = isolation; }\r
46 \r
47   void SetConversionCutId(TString cut) { fConversionCutString = Form("GammaConv_%s", cut.Data());}\r
48 \r
49   void SetMinPt(Float_t minpt) { fMinPt = minpt;}\r
50   void SetMinNTracks(Int_t nTracks) { fMinNTracks = nTracks; }\r
51 \r
52   void AddIsolationAna(TObject * isoAna) { fAnaIsolationArray->Add(isoAna);}\r
53   void AddPhotonHadronAna(TObject * ana) { fAnaPhotonArray->Add(ana);}\r
54   void AddPhotonJetAna(TObject * ana) { fAnaPhotonJetArray->Add(ana);}\r
55   void AddPionHadronAna(TObject * ana) { fAnaPionArray->Add(ana);}\r
56 \r
57   void GetPionGrandChildren(const AliAODConversionParticle * const pion, const TClonesArray * photons, Int_t* trackLabels);\r
58 \r
59  private:\r
60 \r
61   void NotifyRun();\r
62   Bool_t UserNotify();\r
63 \r
64 \r
65   //Get the AOD event from whereever it might be accessible\r
66   AliAODEvent * GetAODEvent();\r
67 \r
68   //Get Conversion gammas branch\r
69   TClonesArray * GetConversionGammas(const AliAODEvent * aodEvent);\r
70   TClonesArray * GetConversionPions(const AliAODEvent * aodEvent);\r
71 \r
72   //Process conv gamma\r
73   void ProcessConvGamma( const TClonesArray * const convGamma, const TClonesArray * const pions, const TClonesArray * const tracks);\r
74   void ProcessPions( const TClonesArray * const pions, const TClonesArray * const photons, const TClonesArray * const tracks);\r
75 \r
76   //Process calorimeters\r
77   void ProcessCalorimeters( const AliAODEvent * const aodEvent );\r
78   \r
79 \r
80   //Does any pions have given photon (iPhot) index listed as daughter\r
81   Bool_t IsDecayPion(Int_t iPhot, const TClonesArray * const pions); //see above\r
82 \r
83 \r
84   TList       *fOutputList;       //! Output list\r
85   TString     fDeltaAODFileName;  //! File where Gamma Conv AOD is located, if not in default AOD\r
86   TString fConversionCutString;   //! The cut string of the conversion analysis used to produce input AOD\r
87 \r
88 \r
89   AliAnaConvIsolation * fAnaIsolation;\r
90 \r
91   TObjArray * fAnaIsolationArray; //!Array of isolation analysis objects\r
92   TObjArray * fAnaPionArray;      //!Array of pion - hadron ana objects\r
93   TObjArray * fAnaPhotonArray;    //!Array of photon - hadron ana objects\r
94   TObjArray * fAnaPhotonJetArray; //!Array of photon - jet ana objects\r
95 \r
96   Float_t fMinPt; //Minimum pt for leading particles\r
97   Int_t fMinNTracks; //Minimum number of tracks in event\r
98   \r
99   AliAnalysisTaskGammaJet(const AliAnalysisTaskGammaJet&); // not implemented\r
100   AliAnalysisTaskGammaJet& operator=(const AliAnalysisTaskGammaJet&); // not implemented\r
101   \r
102   ClassDef(AliAnalysisTaskGammaJet, 4); // example of analysis\r
103 };\r
104 \r
105 #endif\r