]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/GammaConv/ConvCorrelations/AliAnalysisTaskGammaJet.h
Updating conv correlation software
[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 SetGammaCutId(TString cut) { fGammaCutString = Form("GammaConv_%s", cut.Data());}\r
48   void SetPionCutId(TString cut) { fPionCutString = Form("GammaConv_%s", cut.Data());}\r
49 \r
50   void SetMinPt(Float_t minpt) { fMinPt = minpt;}\r
51   void SetMinNTracks(Int_t nTracks) { fMinNTracks = nTracks; }\r
52 \r
53   void AddIsolationAna(TObject * isoAna) { fAnaIsolationArray->Add(isoAna);}\r
54   void AddPhotonHadronAna(TObject * ana) { fAnaPhotonArray->Add(ana);}\r
55   void AddPhotonJetAna(TObject * ana) { fAnaPhotonJetArray->Add(ana);}\r
56   void AddPionJetAna(TObject * ana) { fAnaPionJetArray->Add(ana);}\r
57   void AddPionHadronAna(TObject * ana) { fAnaPionArray->Add(ana);}\r
58 \r
59   void GetPionGrandChildren(const AliAODConversionParticle * const pion, const TClonesArray * photons, Int_t* trackLabels);\r
60   void SetEtaLimits(Float_t eta) { fEtaLimit = eta; }\r
61 \r
62 \r
63  private:\r
64 \r
65   void NotifyRun();\r
66   Bool_t UserNotify();\r
67   Bool_t EventIsSynced(const TClonesArray * const tracks, const TClonesArray * const convGamma, const TClonesArray * const pions);\r
68   Bool_t BothTracksPresent(const AliAODConversionParticle * const photon, const TClonesArray * const tracks) const;\r
69   Bool_t BothGammaPresent(const AliAODConversionParticle * const pion, const TClonesArray * const photons, const TClonesArray * const tracks) const;\r
70   AliAODEvent * GetAODEvent();\r
71 \r
72   //Get Conversion gammas branch\r
73   TClonesArray * GetConversionGammas(const AliAODEvent * aodEvent);\r
74   TClonesArray * GetConversionPions(const AliAODEvent * aodEvent);\r
75 \r
76   //Process conv gamma\r
77   void ProcessConvGamma( const TClonesArray * const convGamma, const TClonesArray * const pions, const TClonesArray * const tracks);\r
78   void ProcessPions( const TClonesArray * const pions, const TClonesArray * const photons, const TClonesArray * const tracks);\r
79 \r
80   //Process calorimeters\r
81   void ProcessCalorimeters( const AliAODEvent * const aodEvent );\r
82   \r
83 \r
84   //Does any pions have given photon (iPhot) index listed as daughter\r
85   Bool_t IsDecayPion(Int_t iPhot, const TClonesArray * const pions); //see above\r
86 \r
87 \r
88   TList       *fOutputList;       //! Output list\r
89   Float_t     fEtaLimit;\r
90   TString     fDeltaAODFileName;  //! File where Gamma Conv AOD is located, if not in default AOD\r
91   TString     fGammaCutString;   //! The cut string of the conversion analysis used to produce input AOD\r
92   TString     fPionCutString;   //! The cut string of the conversion analysis used to produce input AOD\r
93 \r
94 \r
95   AliAnaConvIsolation * fAnaIsolation;\r
96 \r
97   TObjArray * fAnaIsolationArray; //!Array of isolation analysis objects\r
98   TObjArray * fAnaPionArray;      //!Array of pion - hadron ana objects\r
99   TObjArray * fAnaPhotonArray;    //!Array of photon - hadron ana objects\r
100   TObjArray * fAnaPhotonJetArray; //!Array of photon - jet ana objects\r
101   TObjArray * fAnaPionJetArray; //!Array of photon - jet ana objects\r
102 \r
103   Float_t fMinPt; //Minimum pt for leading particles\r
104   Int_t fMinNTracks; //Minimum number of tracks in event\r
105   \r
106   TH2F * fhTracksMissingPt[2];\r
107  \r
108 \r
109 \r
110   \r
111   AliAnalysisTaskGammaJet(const AliAnalysisTaskGammaJet&); // not implemented\r
112   AliAnalysisTaskGammaJet& operator=(const AliAnalysisTaskGammaJet&); // not implemented\r
113   \r
114   ClassDef(AliAnalysisTaskGammaJet, 4); // example of analysis\r
115 };\r
116 \r
117 #endif\r