Include L0 trigger in the trigger maker and the trigger patch object Add monitoring...
[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   SetPileupRejection(Bool_t IsPileupReject){fRejectPileup = IsPileupReject;}
48   virtual void   SetJetCuts(Float_t jetPt = 5., Float_t jetEtaMin = -0.5, Float_t jetEtaMax = 0.5) 
49   {fJetPtCut = jetPt; fJetEtaMin = jetEtaMin; fJetEtaMax = jetEtaMax;}
50   virtual void   SetJetRejectType(Int_t i){fJetRejectType = i;}
51   virtual void   SetFilterMask(UInt_t i) {fFilterMask = i;}
52   virtual void   UsePhysicsSelection(Bool_t b) {fUsePhysicsSelection = b;}
53   virtual void   SetJetRadius(Float_t r){fJetRadius = r;}
54   
55   enum {kTrackUndef=0, kTrackAOD, kTrackKine,kTrackAODMC};//for track selection
56   enum {kNoReject=0, kReject1Track};//for jet rejection
57   enum {kRejectPileup=1};//for pileup rejection
58  protected:
59   Int_t    GetListOfJetTracks(TList* l, const AliAODJet* j);
60   Int_t    GetListOfJets(TList* list);
61   void     FillJetProperties(TList *jetlist);
62   void     FillJetShape(TList *jetlist);
63   void     FillJetShapeUE(TList *jetlist);
64   void     FillFFCorr(TList *jetlist);
65
66   void     GetTracksTiltedwrpJetAxis(Float_t alpha, TList* inputlist, TList* outputlist, const AliAODJet* jet, Double_t radius,Double_t& sumPt);
67   Int_t    GetListOfTracks(TList *list, Int_t type);
68   
69   AliESDEvent*     fESD;          // ESD event
70   AliAODEvent*     fAOD;          // AOD event
71   AliAODEvent*     fAODJets;      // AOD event with jet branch (case we have AOD both in input and output)
72   AliAODExtension* fAODExtension; //! where we take the jets from can be input or output AOD
73   //AliMCEvent*  fMCEvent;  // MC event
74   
75   TString fNonStdFile;          // name of delta aod file to catch the extension
76   TString fBranchJets;          // branch name for reconstructed jets
77   Int_t   fTrackType;           // type of generated tracks
78   Int_t   fJetRejectType;       // type of jets rejected
79   Bool_t  fRejectPileup;        // pileup rejection
80   Bool_t  fUseAODInputJets;     // take jets from in/output - only relevant if AOD event both in input AND output and we want to use output
81   UInt_t  fFilterMask;          // filter bit for selected tracks
82   Bool_t  fUsePhysicsSelection; // switch for event selection
83   Float_t fMaxVertexZ;          // maximum abs(z) position of primiary vertex [cm]
84   Int_t   fNContributors;       // contributors to primary vertex
85   // track cuts
86   Float_t fTrackPtCut;          // track transverse momentum cut
87   Float_t fTrackEtaMin;         // track eta cut
88   Float_t fTrackEtaMax;         // track eta cut
89   // jet cuts
90   Float_t fJetPtCut;            // jet transverse momentum cut
91   Float_t fJetEtaMin;           // jet eta cut
92   Float_t fJetEtaMax;           // jet eta cut
93   Float_t fAvgTrials;           // average number of trials per event
94   Float_t fJetRadius;
95   
96   TList     *fJetList;                //! List of jets
97   TList     *fTrackList;              //! List of selected tracks
98   TList     *fTrackListUE;            //! List of tracks in jet cone UE
99   TList     *fTrackListJet;           //! List of tracks in a jet
100   TList     *fCommonHistList;         //! List of common histos
101   TH1F      *fh1EvtSelection;         //! event cuts 
102   TH1F      *fh1VertexNContributors;  //! NContributors to prim vertex
103   TH1F      *fh1VertexZ;              //! prim vertex z distribution
104   TProfile  *fh1Xsec;                 //! pythia cross section and trials
105   TH1F*     fh1Trials;                //! sum of trials
106   TH1F*     fh1PtHard;                //! pt hard of the event
107   TH1F*     fh1PtHardTrials;          //! pt hard of the event
108  
109   TH2F*     fh2EtaJet;                //!jet eta distribution
110   TH2F*     fh2PhiJet;                //!jet phi distribution
111   TH2F*     fh2PtJet;                 //!jet pt distribution
112   TH1F*     fh1PtJet;                 //!jet pt distribution 1D
113   TH2F*     fh2NtracksJet;            //!number of tracks in jet
114   TProfile* fProNtracksJet;           //!number of tracks in jet
115   TH2F*     fh2EtaTrack;              //!track eta distribution
116   TH2F*     fh2PhiTrack;              //!track phi distribution
117   TH2F*     fh2PtTrack;               //!track pt distribution
118   TH2F*     fh2FF;                    //!fragmentation function (z)
119   TH2F*     fh2Ksi;                   //!fragmentation function (Ksi)
120   TH2F*     fh2DelEta;                //!delta eta distribution
121   TH2F*     fh2DelPhi;                //!delta phi distribution
122   TH2F*     fh2DelR;                  //!delta R distribution
123   
124   TH1F*     fh1PtLeadingJet;          //!highest jet pt
125   TH2F*     fh2NtracksLeadingJet;     //!number of tracks in jet
126   TProfile* fProNtracksLeadingJet;    //!number of tracks in jet
127   TH2F*     fh2DelR80pcNch;           //!R containing 80% of Nch vs jet pt
128   TProfile* fProDelR80pcNch;          //!R containing 80% of Nch vs jet pt
129   TH2F*     fh2DelR80pcPt;            //!R containing 80% of pT vs jet pt
130   TProfile* fProDelR80pcPt;           //!R containing 80% of pT vs jet pt
131   TH2F*     fh2AreaCh;                //!charged jet area vs jet pT
132   TProfile* fProAreaCh;               //!charged jet area vs jet pT
133   TH3F*     fh3PtDelRNchSum;          //!Nch sum vs R
134   TH3F*     fh3PtDelRPtSum;           //!Pt sum vs R
135   TProfile* fProDiffJetShape;         //!Diff jet shape pT=20-100
136   TProfile* fProIntJetShape;          //!Int jet shape pT=20-100
137   TProfile* fProDelRNchSum[13];        //!Nch sum vs R
138   TProfile* fProDelRPtSum[13];         //!Pt sum vs R
139   TProfile* fProDiffJetShapeA[13];     //!Diff jet shape pT
140   TProfile* fProIntJetShapeA[13];      //!Int jet shape pT
141
142   TH1F*     fh1PtSumInJetConeUE;        //!pt sum of UE in cone R
143   TH2F*     fh2NtracksLeadingJetUE;     //!number of tracks in jet (UE)
144   TProfile* fProNtracksLeadingJetUE;    //!number of tracks in jet (UE)
145   TH2F*     fh2DelR80pcNchUE;           //!R containing 80% of Nch vs jet pt (UE)
146   TProfile* fProDelR80pcNchUE;          //!R containing 80% of Nch vs jet pt (UE)
147   TH2F*     fh2DelR80pcPtUE;            //!R containing 80% of pT vs jet pt (UE)
148   TProfile* fProDelR80pcPtUE;           //!R containing 80% of pT vs jet pt (UE)
149   TH2F*     fh2AreaChUE;                //!charged jet area vs jet pT (UE)
150   TProfile* fProAreaChUE;               //!charged jet area vs jet pT (UE)
151   TH3F*     fh3PtDelRNchSumUE;          //!Nch sum vs R (UE)
152   TH3F*     fh3PtDelRPtSumUE;           //!Pt sum vs R (UE)
153   TProfile* fProDiffJetShapeUE;         //!Diff jet shape pT=20-100 (UE)
154   TProfile* fProIntJetShapeUE;          //!Int jet shape pT=20-100 (UE)
155   TProfile* fProDelRNchSumUE[13];        //!Nch sum vs R (UE)
156   TProfile* fProDelRPtSumUE[13];         //!Pt sum vs R (UE)
157   TProfile* fProDiffJetShapeAUE[13];     //!Diff jet shape pT (UE)
158   TProfile* fProIntJetShapeAUE[13];      //!Int jet shape pT (UE)
159
160   TH1F* fh1CorrJetPt;                    //!jet pt in FillCorr
161   TH2F* fh2CorrPtTrack1;                 //!trk pt in FillCorr
162   TH2F* fh2CorrFF1;                      //!FF in FillCorr
163   TH2F* fh2CorrKsi1;                     //!Ksi in FillCorr
164   TH2F* fh2CorrjT1;                      //!jT in FillCorr
165   TH1F* fh1JetPtvsTrkSum;                //!QA plots to check jetPt-trkPtsum
166   TH2F* fh2CorrPt1Pt2[6];                //!pt1-pt2 in FillCorr
167   TH2F* fh2CorrZ1Z2[6];                  //!z1-z2 in FillCorr
168   TH2F* fh2CorrKsi1Ksi2[6];              //!ksi1-ksi2 in FillCorr
169   TH2F* fh2CorrjT1jT2[6];                //!jt1-jt2 in FillCorr
170   
171   AliAnalysisTaskJetProperties(const AliAnalysisTaskJetProperties&);// not implemented
172   AliAnalysisTaskJetProperties& operator=(const AliAnalysisTaskJetProperties&);// not implemented
173   ClassDef(AliAnalysisTaskJetProperties, 2);
174 };
175
176 #endif