]> 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
11 #include <TRef.h>
12 #include <TBits.h>
13
14 #include "AliAnalysisTaskEmcalJet.h"
15
16 class AliAnalysisTaskEmcalJetTriggerQA : public AliAnalysisTaskEmcalJet {
17  public:
18
19   AliAnalysisTaskEmcalJetTriggerQA();
20   AliAnalysisTaskEmcalJetTriggerQA(const char *name);
21   virtual ~AliAnalysisTaskEmcalJetTriggerQA();
22
23   void                        UserCreateOutputObjects();
24   void                        Terminate(Option_t *option);
25
26   Bool_t                      SelectEvent();              //decides if event is used for analysis
27   void                        FindTriggerPatch();
28
29   //Setters
30   void SetDebug(Int_t d)                    { fDebug = d;}
31   void SetTriggerClass(const char *n)       { fTriggerClass = n; }
32   void SetNFastorPatch(Int_t i)             { fNFastOR = i;}
33  
34   void SetContainerFull(Int_t c)            { fContainerFull      = c;}
35   void SetContainerCharged(Int_t c)         { fContainerCharged   = c;}
36
37   Int_t    GetLeadingCellId(const AliVCluster *clus) const;
38   Double_t GetEnergyLeadingCell(const AliVCluster *clus) const;
39
40   Double_t GetZ(const AliVParticle *trk, const AliEmcalJet *jet)       const;
41   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;
42
43  protected:
44   Bool_t                      FillHistograms()   ;
45   Bool_t                      Run()              ;
46
47   Bool_t                      TestFilterBit(Int_t trigBit, UInt_t bitJetTrig) const {return (Bool_t) ((trigBit & bitJetTrig) != 0);}
48
49
50  private:
51   Bool_t             fDebug;                 //  debug level
52   TString            fTriggerClass;          // trigger class to analyze EJ1 or EJ2    
53   UInt_t             fBitJ1;                 // trigger bit of EJE1
54   UInt_t             fBitJ2;                 // trigger bit of EJE2
55   Int_t              fContainerFull;         //  number of container with full jets DET
56   Int_t              fContainerCharged;      //  number of container with charged jets DET
57   Double_t           fMaxPatchEnergy;        // energy of patch with largest energy
58   Int_t              fTriggerType;           // trigger type
59   Int_t              fNFastOR;               // size of trigger patch fNFastORxfNFastOR
60
61   TH1F  *fhNEvents;                         //! Histo number of events
62   TH3F  *fh3PtEtaPhiJetFull;                //! pt,eta,phi of full jets
63   TH3F  *fh3PtEtaPhiJetCharged;             //! pt,eta,phi of charged jets
64   TH2F  *fh2NJetsPtFull;                    //! NJets per event vs pT,jet
65   TH2F  *fh2NJetsPtCharged;                 //! NJets per event vs pT,jet
66   TH3F  *fh3PtEtaAreaJetFull;               //! pt,eta,area of full jet
67   TH3F  *fh3PtEtaAreaJetCharged;            //! pt,eta,area of charged jets
68   TH2F  *fh2PtNConstituentsCharged;         //! pt, # charged jet constituents
69   TH2F  *fh2PtNConstituents;                //! pt, # jet constituents
70   TH2F  *fh2PtMeanPtConstituentsCharged;    //! pt, <pt> charged constituents
71   TH2F  *fh2PtMeanPtConstituentsNeutral;    //! pt, <pt> neutral constituents
72   TH2F  *fh2PtNEF;                          //! pt, NEF (neutral energy fraction)
73   TH3F  *fh3NEFEtaPhi;                      //! NEF, eta, phi
74   TH2F  *fh2NEFNConstituentsCharged;        //! NEF, # charged jet constituents
75   TH2F  *fh2NEFNConstituentsNeutral;        //! NEF, # neutral jet constituents
76   TH2F  *fh2Ptz;                            //! pt, z=pT,h,proj/p,jet full jet
77   TH2F  *fh2PtzCharged;                     //! pt, z=pT,h,proj/p,jet charged jet
78   TH2F  *fh2PtLeadJet1VsLeadJet2;           //! correlation between leading jet of the two branches
79   TH3F  *fh3EEtaPhiCluster;                 //! cluster E, eta, phi
80   TH3F  *fh3PtLeadJet1VsPatchEnergy;        //! leading jet energy vs leading patch energy vs jet trigger (J1/J2)
81   TH3F  *fh3PtLeadJet2VsPatchEnergy;        //! leading jet energy vs leading patch energy vs jet trigger (J1/J2)
82   TH3F  *fh3PatchEnergyEtaPhiCenterJ1;      //! patch energy vs eta, phi at center of patch, high threshold
83   TH3F  *fh3PatchEnergyEtaPhiCenterJ2;      //! patch energy vs eta, phi at center of patch, low threshold
84   TH2F  *fh2CellEnergyVsTime;               //! emcal cell energy vs time
85   TH3F  *fh3EClusELeadingCellVsTime;        //! cluster energy vs energy of leading cell in cluster vs time of the leading cell
86
87
88   AliAnalysisTaskEmcalJetTriggerQA(const AliAnalysisTaskEmcalJetTriggerQA&);            // not implemented
89   AliAnalysisTaskEmcalJetTriggerQA &operator=(const AliAnalysisTaskEmcalJetTriggerQA&); // not implemented
90
91   ClassDef(AliAnalysisTaskEmcalJetTriggerQA, 5)
92 };
93 #endif