]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALJetTasks/AliAnalysisTaskEmcalJet.cxx
adjust
[u/mrichter/AliRoot.git] / PWGGA / EMCALJetTasks / AliAnalysisTaskEmcalJet.cxx
1 // $Id: AliAnalysisTaskEmcalJet.cxx 56756 2012-05-30 05:03:02Z loizides $
2 //
3 // Emcal jet analysis base task.
4 //
5 // Author: S.Aiola
6
7 #include "AliAnalysisTaskEmcalJet.h"
8
9 #include <TObject.h>
10 #include <TChain.h>
11 #include <TClonesArray.h>
12 #include <TList.h>
13
14 #include "AliESDEvent.h"
15 #include "AliAnalysisManager.h"
16 #include "AliCentrality.h"
17 #include "AliVCluster.h"
18 #include "AliVParticle.h"
19 #include "AliEmcalJet.h"
20 #include "AliVEventHandler.h"
21 #include "AliLog.h"
22 #include "AliEMCALGeometry.h"
23
24 ClassImp(AliAnalysisTaskEmcalJet)
25
26 //________________________________________________________________________
27 AliAnalysisTaskEmcalJet::AliAnalysisTaskEmcalJet() : 
28   AliAnalysisTaskEmcal("AliAnalysisTaskEmcalJet"),
29   fJetRadius(0.4),
30   fJetsName("Jets"),
31   fPtBiasJetTrack(10),
32   fPtBiasJetClus(10),
33   fJetPtCut(1),
34   fJetAreaCut(0.2),
35   fJets(0)
36 {
37   // Default constructor.
38 }
39
40 //________________________________________________________________________
41 AliAnalysisTaskEmcalJet::AliAnalysisTaskEmcalJet(const char *name) : 
42   AliAnalysisTaskEmcal(name),
43   fJetRadius(0.4),
44   fJetsName("Jets"),
45   fPtBiasJetTrack(10),
46   fPtBiasJetClus(10),
47   fJetPtCut(1),
48   fJetAreaCut(0.2),
49   fJets(0)
50 {
51   // Standard constructor.
52 }
53
54 //________________________________________________________________________
55 AliAnalysisTaskEmcalJet::AliAnalysisTaskEmcalJet(const char *name, Bool_t histo) : 
56   AliAnalysisTaskEmcal(name, histo),
57   fJetRadius(0.4),
58   fJetsName("Jets"),
59   fPtBiasJetTrack(10),
60   fPtBiasJetClus(10),
61   fJetPtCut(1),
62   fJetAreaCut(0.2),
63   fJets(0)
64 {
65   // Standard constructor.
66 }
67
68 //________________________________________________________________________
69 AliAnalysisTaskEmcalJet::~AliAnalysisTaskEmcalJet()
70 {
71   // Destructor
72 }
73
74 //________________________________________________________________________
75 Bool_t AliAnalysisTaskEmcalJet::RetrieveEventObjects()
76 {
77   // Retrieve objects from event.
78
79   if (!AliAnalysisTaskEmcal::RetrieveEventObjects())
80     return kFALSE;
81
82   if (!fJetsName.IsNull()) {
83     fJets = dynamic_cast<TClonesArray*>(InputEvent()->FindListObject(fJetsName));
84     if (!fJets) {
85       AliWarning(Form("Could not retrieve jets %s!", fJetsName.Data())); 
86     }
87   }
88
89   return kTRUE;
90 }
91
92 //________________________________________________________________________
93 Bool_t AliAnalysisTaskEmcalJet::IsJetTrack(AliEmcalJet* jet, Int_t itrack, Bool_t sorted) const
94 {
95   // Return true if track is in jet.
96
97   for (Int_t i = 0; i < jet->GetNumberOfTracks(); i++) {
98     Int_t ijettrack = jet->TrackAt(i);
99     if (sorted && ijettrack > itrack)
100       return kFALSE;
101     if (ijettrack == itrack)
102       return kTRUE;
103   }
104   return kFALSE;
105 }
106
107 //________________________________________________________________________
108 Bool_t AliAnalysisTaskEmcalJet::IsJetCluster(AliEmcalJet* jet, Int_t iclus, Bool_t sorted) const
109 {
110   // Return true if cluster is in jet.
111
112   for (Int_t i = 0; i < jet->GetNumberOfClusters(); i++) {
113     Int_t ijetclus = jet->ClusterAt(i);
114     if (sorted && ijetclus > iclus)
115       return kFALSE;
116     if (ijetclus == iclus)
117       return kTRUE;
118   }
119   return kFALSE;
120 }
121
122 //________________________________________________________________________
123 Bool_t AliAnalysisTaskEmcalJet::AcceptJet(AliEmcalJet *jet, Bool_t bias) const
124 {   
125   // Return true if jet is accepted.
126
127   if (jet->Pt() <= fJetPtCut)
128     return kFALSE;
129   if (jet->Area() <= fJetAreaCut)
130     return kFALSE;
131   if (bias && jet->MaxTrackPt() < fPtBiasJetTrack && (fAnaType == kTPC || jet->MaxClusterPt() < fPtBiasJetClus))
132     return kFALSE;
133
134   return (Bool_t)(jet->Eta() > fMinEta + fJetRadius && jet->Eta() < fMaxEta - fJetRadius && jet->Phi() > fMinPhi + fJetRadius && jet->Phi() < fMaxPhi - fJetRadius);
135 }