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
5 /// @file AliAnalysisTaskGammaJet.h
\r
6 /// @author Svein Lindal
\r
7 /// @brief Class used to run isolation studies of conversion gamma / pions
\r
11 #ifndef ALIANALYSISTASKGAMMAJET_H
\r
12 #define ALIANALYSISTASKGAMMAJET_H
\r
18 class AliGammaConversionAODObject;
\r
19 class AliAODConversionParticle;
\r
20 class AliAODPWG4ParticleCorrelation;
\r
21 class AliAODPWG4Particle;
\r
27 #include "AliAnaConvIsolation.h"
\r
28 #include "AliAnalysisTaskSE.h"
\r
30 class AliAnalysisTaskGammaJet : public AliAnalysisTaskSE {
\r
34 AliAnalysisTaskGammaJet();
\r
35 AliAnalysisTaskGammaJet(const char *name);
\r
36 virtual ~AliAnalysisTaskGammaJet();
\r
38 virtual void UserCreateOutputObjects();
\r
39 virtual void UserExec(Option_t *option);
\r
40 virtual void Terminate(Option_t *);
\r
42 void SetDeltaAODFileName(TString string) { fDeltaAODFileName = string;}
\r
44 AliAnaConvIsolation * GetIsolation() const {return fAnaIsolation;}
\r
45 void SetIsolation( AliAnaConvIsolation * isolation) { fAnaIsolation = isolation; }
\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
50 void SetMinPt(Float_t minpt) { fMinPt = minpt;}
\r
51 void SetMinNTracks(Int_t nTracks) { fMinNTracks = nTracks; }
\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
59 void GetPionGrandChildren(const AliAODConversionParticle * const pion, const TClonesArray * photons, Int_t* trackLabels);
\r
60 void SetEtaLimits(Float_t eta) { fEtaLimit = eta; }
\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
72 //Get Conversion gammas branch
\r
73 TClonesArray * GetConversionGammas(const AliAODEvent * aodEvent);
\r
74 TClonesArray * GetConversionPions(const AliAODEvent * aodEvent);
\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
80 //Process calorimeters
\r
81 void ProcessCalorimeters( const AliAODEvent * const aodEvent );
\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
88 TList *fOutputList; //! Output list
\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
95 AliAnaConvIsolation * fAnaIsolation;
\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
103 Float_t fMinPt; //Minimum pt for leading particles
\r
104 Int_t fMinNTracks; //Minimum number of tracks in event
\r
106 TH2F * fhTracksMissingPt[2];
\r
111 AliAnalysisTaskGammaJet(const AliAnalysisTaskGammaJet&); // not implemented
\r
112 AliAnalysisTaskGammaJet& operator=(const AliAnalysisTaskGammaJet&); // not implemented
\r
114 ClassDef(AliAnalysisTaskGammaJet, 4); // example of analysis
\r