adding new task for jet properties (Sidharth Kumar Prasad)
[u/mrichter/AliRoot.git] / PWGJE / AliAnalysisTaskJetProperties.h
CommitLineData
59a5935a 1// *************************************************************************************
2// * Task for Jetproperties and jet shape analysis in PWG4 Jet Task Force Train for pp *
3// *************************************************************************************
4
5#ifndef ALIANALYSISTASKJETPROPERTIES_H
6#define ALIANALYSISTASKJETPROPERTIES_H
7
8/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
9 * See cxx source for full Copyright notice */
10
11/* $Id$ */
12
13class AliESDEvent;
14class AliAODEvent;
15class AliAODExtension;
16class TList;
17class TH1F;
18class TH2F;
19class TH3F;
20class TProfile;
21class THnSparse;
22class TRandom3;
23class TArrayS;
24
25#include "AliAnalysisTaskSE.h"
26
27class AliAnalysisTaskJetProperties : public AliAnalysisTaskSE {
28
29 public:
30 AliAnalysisTaskJetProperties();
31 AliAnalysisTaskJetProperties(const char *name);
32 virtual ~AliAnalysisTaskJetProperties();
33
34 virtual Bool_t Notify();
35 virtual void UserCreateOutputObjects();
36 virtual void Init();
37 virtual void UserExec(Option_t *option);
38 virtual void Terminate(Option_t* );
39
40 virtual void SetJetBranch(const char* c){fBranchJets = c;}
41 virtual void SetTrackType(Int_t i){fTrackType = i;}
42 virtual void SetEventCuts(Float_t VtxZ=10.,Int_t nContributors=2)
43 {fMaxVertexZ = VtxZ; fNContributors = nContributors;}
44 virtual void SetTrackCuts(Float_t trackPt = 0.15, Float_t trackEtaMin = -0.9, Float_t trackEtaMax = 0.9)
45 {fTrackPtCut = trackPt; fTrackEtaMin = trackEtaMin; fTrackEtaMax = trackEtaMax;}
46 virtual void SetJetCuts(Float_t jetPt = 5., Float_t jetEtaMin = -0.5, Float_t jetEtaMax = 0.5)
47 {fJetPtCut = jetPt; fJetEtaMin = jetEtaMin; fJetEtaMax = jetEtaMax;}
48 virtual void SetJetRejectType(Int_t i){fJetRejectType = i;}
49 virtual void SetFilterMask(UInt_t i) {fFilterMask = i;}
50 virtual void UsePhysicsSelection(Bool_t b) {fUsePhysicsSelection = b;}
51
52 enum {kTrackUndef=0, kTrackAOD, kTrackKine,kTrackAODMC};//for track selection
53 enum {kNoReject=0, kReject1Track};//for jet rejection
54
55 protected:
56 Int_t GetListOfJetTracks(TList* l, const AliAODJet* j);
57 Int_t GetListOfJets(TList* list);
58 void FillJetProperties(TList *jetlist);
59 void FillJetShape(TList *jetlist);
60
61 AliESDEvent* fESD; // ESD event
62 AliAODEvent* fAOD; // AOD event
63 AliAODEvent* fAODJets; // AOD event with jet branch (case we have AOD both in input and output)
64 AliAODExtension* fAODExtension; //! where we take the jets from can be input or output AOD
65 //AliMCEvent* fMCEvent; // MC event
66
67 TString fNonStdFile; // name of delta aod file to catch the extension
68 TString fBranchJets; // branch name for reconstructed jets
69 Int_t fTrackType; // type of generated tracks
70 Int_t fJetRejectType; // type of jets rejected
71 Bool_t fUseAODInputJets; // take jets from in/output - only relevant if AOD event both in input AND output and we want to use output
72 UInt_t fFilterMask; // filter bit for selected tracks
73 Bool_t fUsePhysicsSelection; // switch for event selection
74 Float_t fMaxVertexZ; // maximum abs(z) position of primiary vertex [cm]
75 Int_t fNContributors; // contributors to primary vertex
76 // track cuts
77 Float_t fTrackPtCut; // track transverse momentum cut
78 Float_t fTrackEtaMin; // track eta cut
79 Float_t fTrackEtaMax; // track eta cut
80 // jet cuts
81 Float_t fJetPtCut; // jet transverse momentum cut
82 Float_t fJetEtaMin; // jet eta cut
83 Float_t fJetEtaMax; // jet eta cut
84 Float_t fAvgTrials; // average number of trials per event
85
86 TList *fJetList; //! List of jets
87 TList *fTrackList; //! List of tracks in a jet
88 TList *fCommonHistList; //! List of common histos
89 TH1F *fh1EvtSelection; //! event cuts
90 TH1F *fh1VertexNContributors; //! NContributors to prim vertex
91 TH1F *fh1VertexZ; //! prim vertex z distribution
92 TProfile *fh1Xsec; //! pythia cross section and trials
93 TH1F* fh1Trials; //! sum of trials
94 TH1F* fh1PtHard; //! pt hard of the event
95 TH1F* fh1PtHardTrials; //! pt hard of the event
96
97 TH2F* fh2EtaJet; //!jet eta distribution
98 TH2F* fh2PhiJet; //!jet phi distribution
99 TH2F* fh2PtJet; //!jet pt distribution
100 TH1F* fh1PtJet; //!jet pt distribution 1D
101 TH2F* fh2NtracksJet; //!number of tracks in jet
102 TProfile* fProNtracksJet; //!number of tracks in jet
103 TH2F* fh2EtaTrack; //!track eta distribution
104 TH2F* fh2PhiTrack; //!track phi distribution
105 TH2F* fh2PtTrack; //!track pt distribution
106 TH2F* fh2FF; //!fragmentation function
107 TH2F* fh2DelEta; //!delta eta distribution
108 TH2F* fh2DelPhi; //!delta phi distribution
109 TH2F* fh2DelR; //!delta R distribution
110
111 TH1F* fh1PtLeadingJet; //!highest jet pt
112 TH2F* fh2NtracksLeadingJet; //!number of tracks in jet
113 TProfile* fProNtracksLeadingJet; //!number of tracks in jet
114 TH2F* fh2DelR80pcNch; //!R containing 80% of Nch vs jet pt
115 TProfile* fProDelR80pcNch; //!R containing 80% of Nch vs jet pt
116 TH2F* fh2DelR80pcPt; //!R containing 80% of pT vs jet pt
117 TProfile* fProDelR80pcPt; //!R containing 80% of pT vs jet pt
118 TH2F* fh2AreaCh; //!charged jet area vs jet pT
119 TProfile* fProAreaCh; //!charged jet area vs jet pT
120 TH3F* fh3PtDelRNchSum; //!Nch sum vs R
121 TH3F* fh3PtDelRPtSum; //!Pt sum vs R
122 TProfile* fProDelRNchSum[5]; //!!Nch sum vs R
123 TProfile* fProDelRPtSum[5]; //!!Pt sum vs R
124
125 AliAnalysisTaskJetProperties(const AliAnalysisTaskJetProperties&);// not implemented
126 AliAnalysisTaskJetProperties& operator=(const AliAnalysisTaskJetProperties&);// not implemented
127 ClassDef(AliAnalysisTaskJetProperties, 1);
128};
129
130#endif