]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/AliAnalysisTaskJetProperties.h
minor fixes, added std:: to vector (D. Sakata)
[u/mrichter/AliRoot.git] / PWGJE / AliAnalysisTaskJetProperties.h
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
13 class AliESDEvent;
14 class AliAODEvent;
15 class AliAODExtension;
16 class TList;
17 class TH1F;
18 class TH2F;
19 class TH3F;
20 class TProfile;
21 class THnSparse; 
22 class TRandom3;
23 class TArrayS;
24
25 #include "AliAnalysisTaskSE.h"
26
27 class 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   SetNonStdFile(char* c){fNonStdFile = c;}
42   virtual void   SetTrackType(Int_t i){fTrackType = i;}
43   virtual void   SetEventCuts(Float_t VtxZ=10.,Int_t nContributors=2)
44   {fMaxVertexZ = VtxZ; fNContributors = nContributors;}
45   virtual void   SetTrackCuts(Float_t trackPt = 0.15, Float_t trackEtaMin = -0.9, Float_t trackEtaMax = 0.9)
46   {fTrackPtCut = trackPt; fTrackEtaMin = trackEtaMin; fTrackEtaMax = trackEtaMax;}
47   virtual void   SetJetCuts(Float_t jetPt = 5., Float_t jetEtaMin = -0.5, Float_t jetEtaMax = 0.5) 
48   {fJetPtCut = jetPt; fJetEtaMin = jetEtaMin; fJetEtaMax = jetEtaMax;}
49   virtual void   SetJetRejectType(Int_t i){fJetRejectType = i;}
50   virtual void   SetFilterMask(UInt_t i) {fFilterMask = i;}
51   virtual void   UsePhysicsSelection(Bool_t b) {fUsePhysicsSelection = b;}
52   
53   enum {kTrackUndef=0, kTrackAOD, kTrackKine,kTrackAODMC};//for track selection
54   enum {kNoReject=0, kReject1Track};//for jet rejection
55   
56  protected:
57   Int_t    GetListOfJetTracks(TList* l, const AliAODJet* j);
58   Int_t    GetListOfJets(TList* list);
59   void     FillJetProperties(TList *jetlist);
60   void     FillJetShape(TList *jetlist);
61   
62   AliESDEvent*     fESD;          // ESD event
63   AliAODEvent*     fAOD;          // AOD event
64   AliAODEvent*     fAODJets;      // AOD event with jet branch (case we have AOD both in input and output)
65   AliAODExtension* fAODExtension; //! where we take the jets from can be input or output AOD
66   //AliMCEvent*  fMCEvent;  // MC event
67   
68   TString fNonStdFile;          // name of delta aod file to catch the extension
69   TString fBranchJets;          // branch name for reconstructed jets
70   Int_t   fTrackType;           // type of generated tracks
71   Int_t   fJetRejectType;       // type of jets rejected
72   Bool_t  fUseAODInputJets;     // take jets from in/output - only relevant if AOD event both in input AND output and we want to use output
73   UInt_t  fFilterMask;          // filter bit for selected tracks
74   Bool_t  fUsePhysicsSelection; // switch for event selection
75   Float_t fMaxVertexZ;          // maximum abs(z) position of primiary vertex [cm]
76   Int_t   fNContributors;       // contributors to primary vertex
77   // track cuts
78   Float_t fTrackPtCut;          // track transverse momentum cut
79   Float_t fTrackEtaMin;         // track eta cut
80   Float_t fTrackEtaMax;         // track eta cut
81   // jet cuts
82   Float_t fJetPtCut;            // jet transverse momentum cut
83   Float_t fJetEtaMin;           // jet eta cut
84   Float_t fJetEtaMax;           // jet eta cut
85   Float_t fAvgTrials;           // average number of trials per event
86   
87   TList     *fJetList;                //! List of jets
88   TList     *fTrackList;              //! List of tracks in a jet
89   TList     *fCommonHistList;         //! List of common histos
90   TH1F      *fh1EvtSelection;         //! event cuts 
91   TH1F      *fh1VertexNContributors;  //! NContributors to prim vertex
92   TH1F      *fh1VertexZ;              //! prim vertex z distribution
93   TProfile  *fh1Xsec;                 //! pythia cross section and trials
94   TH1F*     fh1Trials;                //! sum of trials
95   TH1F*     fh1PtHard;                //! pt hard of the event
96   TH1F*     fh1PtHardTrials;          //! pt hard of the event
97  
98   TH2F*     fh2EtaJet;                //!jet eta distribution
99   TH2F*     fh2PhiJet;                //!jet phi distribution
100   TH2F*     fh2PtJet;                 //!jet pt distribution
101   TH1F*     fh1PtJet;                 //!jet pt distribution 1D
102   TH2F*     fh2NtracksJet;            //!number of tracks in jet
103   TProfile* fProNtracksJet;           //!number of tracks in jet
104   TH2F*     fh2EtaTrack;              //!track eta distribution
105   TH2F*     fh2PhiTrack;              //!track phi distribution
106   TH2F*     fh2PtTrack;               //!track pt distribution
107   TH2F*     fh2FF;                    //!fragmentation function
108   TH2F*     fh2DelEta;                //!delta eta distribution
109   TH2F*     fh2DelPhi;                //!delta phi distribution
110   TH2F*     fh2DelR;                  //!delta R distribution
111   
112   TH1F*     fh1PtLeadingJet;          //!highest jet pt
113   TH2F*     fh2NtracksLeadingJet;     //!number of tracks in jet
114   TProfile* fProNtracksLeadingJet;    //!number of tracks in jet
115   TH2F*     fh2DelR80pcNch;           //!R containing 80% of Nch vs jet pt
116   TProfile* fProDelR80pcNch;          //!R containing 80% of Nch vs jet pt
117   TH2F*     fh2DelR80pcPt;            //!R containing 80% of pT vs jet pt
118   TProfile* fProDelR80pcPt;           //!R containing 80% of pT vs jet pt
119   TH2F*     fh2AreaCh;                //!charged jet area vs jet pT
120   TProfile* fProAreaCh;               //!charged jet area vs jet pT
121   TH3F*     fh3PtDelRNchSum;          //!Nch sum vs R
122   TH3F*     fh3PtDelRPtSum;           //!Pt sum vs R
123   TProfile* fProDiffJetShape;         //!Diff jet shape pT=20-100
124   TProfile* fProIntJetShape;          //!Int jet shape pT=20-100
125   TProfile* fProDelRNchSum[5];        //!Nch sum vs R
126   TProfile* fProDelRPtSum[5];         //!Pt sum vs R
127   TProfile* fProDiffJetShapeA[5];     //!Diff jet shape pT
128   TProfile* fProIntJetShapeA[5];      //!Int jet shape pT
129
130
131   AliAnalysisTaskJetProperties(const AliAnalysisTaskJetProperties&);// not implemented
132   AliAnalysisTaskJetProperties& operator=(const AliAnalysisTaskJetProperties&);// not implemented
133   ClassDef(AliAnalysisTaskJetProperties, 2);
134 };
135
136 #endif