]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.h
from Marta
[u/mrichter/AliRoot.git] / PWGJE / EMCALJetTasks / UserTasks / AliAnalysisTaskEmcalJetTriggerQA.h
1 #ifndef ALIANALYSISTASKEMCALJETTRIGGERQA_H
2 #define ALIANALYSISTASKEMCALJETTRIGGERQA_H
3
4 class TH1;
5 class TH2;
6 class TH3;
7 class TH3F;
8 class TClonesArray;
9 class TArrayI;
10 class AliAnalysisUtils;
11
12 #include <TRef.h>
13 #include <TBits.h>
14
15 #include "AliAnalysisTaskEmcalJet.h"
16
17 class AliAnalysisTaskEmcalJetTriggerQA : public AliAnalysisTaskEmcalJet {
18  public:
19
20   AliAnalysisTaskEmcalJetTriggerQA();
21   AliAnalysisTaskEmcalJetTriggerQA(const char *name);
22   virtual ~AliAnalysisTaskEmcalJetTriggerQA();
23
24   void                        UserCreateOutputObjects();
25   void                        Terminate(Option_t *option);
26
27   void                        InitOnce();
28   void                        LoadExtraBranches();
29
30   Bool_t                      SelectEvent();              //decides if event is used for analysis
31   void                        FindTriggerPatch();
32
33   Bool_t                      AcceptChargedJet(const AliEmcalJet *jet) const;
34
35   //Setters
36   void SetDebug(Int_t d)                    { fDebug = d;}
37   void SetTriggerClass(const char *n)       { fTriggerClass = n; }
38   void SetNFastorPatch(Int_t i)             { fNFastOR = i;}
39  
40   void SetJetsChName(const char *n)         { fJetsNameCh = n; }
41   void SetRhoChName(const char *n)          { fRhoChName = n; }
42   void SetChargedJetEtaMax(Double_t e)      { fEtaMaxChJet = e;}
43
44   Double_t GetZ(const AliVParticle *trk, const AliEmcalJet *jet)       const;
45   Double_t GetZ(const Double_t trkPx, const Double_t trkPy, const Double_t trkPz, const Double_t jetPx, const Double_t jetPy, const Double_t jetPz) const;
46
47  protected:
48   Bool_t                      FillHistograms()   ;
49   Bool_t                      Run()              ;
50
51   Bool_t                      TestFilterBit(Int_t trigBit, UInt_t bitJetTrig) const {return (Bool_t) ((trigBit & bitJetTrig) != 0);}
52
53
54
55  private:
56   Bool_t            fDebug;                 //  debug level
57   Bool_t            fUseAnaUtils;           //  used for LHC13* data
58   AliAnalysisUtils *fAnalysisUtils;         //! vertex selection
59   TString           fJetsNameCh;            //  name of charged jet collection
60   TClonesArray     *fJetsCh;                //! list with charged jets
61   Double_t          fEtaMaxChJet;           //  max eta of jet axis, charged jets
62   Double_t          fPhiMinChJet;           //  min phi of jet axis, charged jets
63   Double_t          fPhiMaxChJet;           //  max phi of jet axis, charged jets
64   Double_t          fMaxTrackPtChJet;       //  maximum track pT in jet
65
66   TString           fRhoChName;             //  name of charged rho branch
67   AliRhoParameter  *fRhoCh;                 //! event rho charged
68   Double_t          fRhoChVal;              //  charged rho value
69
70   TString           fTriggerClass;          // trigger class to analyze EJ1 or EJ2    
71   UInt_t            fBitJ1;                 // trigger bit of EJE1
72   UInt_t            fBitJ2;                 // trigger bit of EJE2
73   Double_t          fMaxPatchEnergy;        // energy of patch with largest energy
74   Int_t             fTriggerType;           // trigger type
75   Int_t             fNFastOR;               // size of trigger patch fNFastORxfNFastOR
76
77   TH1F  *fhNEvents;                         //! Histo number of events
78   TH3F  *fh3PtEtaPhiJetFull;                //! pt,eta,phi of full jets
79   TH3F  *fh3PtEtaPhiJetCharged;             //! pt,eta,phi of charged jets
80   TH2F  *fh2NJetsPtFull;                    //! NJets per event vs pT,jet
81   TH2F  *fh2NJetsPtCharged;                 //! NJets per event vs pT,jet
82   TH3F  *fh3PtEtaAreaJetFull;               //! pt,eta,area of full jet
83   TH3F  *fh3PtEtaAreaJetCharged;            //! pt,eta,area of charged jets
84   TH2F  *fh2PtNConstituentsCharged;         //! pt, # charged jet constituents
85   TH2F  *fh2PtNConstituents;                //! pt, # jet constituents
86   TH2F  *fh2PtMeanPtConstituentsCharged;    //! pt, <pt> charged constituents
87   TH2F  *fh2PtMeanPtConstituentsNeutral;    //! pt, <pt> neutral constituents
88   TH2F  *fh2PtNEF;                          //! pt, NEF (neutral energy fraction)
89   TH2F  *fh2Ptz;                            //! pt, z=pT,h,proj/p,jet
90   TH2F  *fh2PtLeadJet1VsLeadJet2;           //! correlation between leading jet of the two branches
91   TH3F  *fh3EEtaPhiCluster;                 //! cluster E, eta, phi
92   TH3F  *fh3PtLeadJet1VsPatchEnergy;        //! leading jet energy vs leading patch energy vs jet trigger (J1/J2)
93   TH3F  *fh3PtLeadJet2VsPatchEnergy;        //! leading jet energy vs leading patch energy vs jet trigger (J1/J2)
94   TH3F  *fh3PatchEnergyEtaPhiCenter;        //! patch energy vs eta, phi at center of patch
95
96
97
98   AliAnalysisTaskEmcalJetTriggerQA(const AliAnalysisTaskEmcalJetTriggerQA&);            // not implemented
99   AliAnalysisTaskEmcalJetTriggerQA &operator=(const AliAnalysisTaskEmcalJetTriggerQA&); // not implemented
100
101   ClassDef(AliAnalysisTaskEmcalJetTriggerQA, 1) // jet sample analysis task
102 };
103 #endif