]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.h
a60ce8e05411ee6a1a75cf2c5f47b9d2c0659796
[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 #include <TMath.h>
14
15 #include <AliVEvent.h>
16
17 #include "AliAnalysisTaskEmcalJet.h"
18
19 class AliAnalysisTaskEmcalJetTriggerQA : public AliAnalysisTaskEmcalJet {
20  public:
21
22   AliAnalysisTaskEmcalJetTriggerQA();
23   AliAnalysisTaskEmcalJetTriggerQA(const char *name);
24   virtual ~AliAnalysisTaskEmcalJetTriggerQA();
25
26   void                        UserCreateOutputObjects();
27   void                        Terminate(Option_t *option);
28
29   Bool_t                      SelectEvent();              //decides if event is used for analysis
30   void                        FillTriggerPatchHistos();
31
32   //Setters
33   void SetDebug(Int_t d)                    { fDebug = d;}
34   void SetTriggerClass(const char *n)       { fTriggerClass = n; }
35   void SetNFastorPatch(Int_t i)             { fNFastOR = i;}
36  
37   void SetContainerFull(Int_t c)            { fContainerFull      = c;}
38   void SetContainerCharged(Int_t c)         { fContainerCharged   = c;}
39
40   Int_t    GetLeadingCellId(const AliVCluster *clus) const;
41   Double_t GetEnergyLeadingCell(const AliVCluster *clus) const;
42   Double_t GetECross(Int_t absID) const;
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   Float_t                     RelativeEP(Double_t objAng, Double_t EPAng) const;
51   Bool_t                      TestFilterBit(Int_t trigBit, UInt_t bitJetTrig) const {return (Bool_t) ((trigBit & bitJetTrig) != 0);}
52
53  private:
54   Bool_t             fDebug;                 // debug level
55   TString            fTriggerClass;          // trigger class to analyze EJ1 or EJ2    
56   Int_t              fContainerFull;         // number of container with full jets DET
57   Int_t              fContainerCharged;      // number of container with charged jets DET
58   Double_t           fMaxPatchEnergy;        // energy of patch with largest energy
59   Int_t              fTriggerType;           // trigger type
60   Int_t              fNFastOR;               // size of trigger patch fNFastORxfNFastOR
61
62   TH1F  *fhNEvents;                         //! Histo number of events
63   TH2F  *fHistRhovsCentFull;                //!rho vs. centrality
64   TH2F  *fHistRhovsCentCharged;             //!rho vs. centrality
65   TH3F  *fh3PtEtaPhiTracks;                 //! pt,eta,phi of tracks at vertex
66   TH3F  *fh3PtEtaPhiTracksOnEmcal;          //! pt,eta,phi of tracks at Emcal surface
67   TH3F  *fh3PtEtaPhiTracksToProp;           //! pt,eta,phi of tracks at vertex
68   TH3F  *fh3PtEtaPhiTracksProp;             //! pt,eta,phi of tracks at vertex
69   TH3F  *fh3PtEtaPhiTracksNoProp;           //! pt,eta,phi of tracks at vertex
70   TH2F  *fh2CentPtJetFull;                  //! cent, pt of full jets
71   TH2F  *fh2CentPtJetCharged;               //! cent, pt of charged jets
72   TH3F  *fh3PtEtaPhiJetFull;                //! pt,eta,phi of full jets
73   TH3F  *fh3PtEtaPhiJetCharged;             //! pt,eta,phi of charged jets
74   TH2F  *fh2NJetsPtFull;                    //! NJets per event vs pT,jet
75   TH2F  *fh2NJetsPtCharged;                 //! NJets per event vs pT,jet
76   TH3F  *fh3PtEtaAreaJetFull;               //! pt,eta,area of full jet
77   TH3F  *fh3PtEtaAreaJetCharged;            //! pt,eta,area of charged jets
78   TH2F  *fh2PtNConstituentsCharged;         //! pt, # charged jet constituents
79   TH2F  *fh2PtNConstituents;                //! pt, # jet constituents
80   TH2F  *fh2PtMeanPtConstituentsCharged;    //! pt, <pt> charged constituents
81   TH2F  *fh2PtMeanPtConstituentsNeutral;    //! pt, <pt> neutral constituents
82   TH2F  *fh2PtNEF;                          //! pt, NEF (neutral energy fraction)
83   TH3F  *fh3NEFEtaPhi;                      //! NEF, eta, phi
84   TH2F  *fh2NEFNConstituentsCharged;        //! NEF, # charged jet constituents
85   TH2F  *fh2NEFNConstituentsNeutral;        //! NEF, # neutral jet constituents
86   TH2F  *fh2Ptz;                            //! pt, z=pT,h,proj/p,jet full jet
87   TH2F  *fh2PtzCharged;                     //! pt, z=pT,h,proj/p,jet charged jet
88   TH2F  *fh2PtLeadJet1VsLeadJet2;           //! correlation between leading jet of the two branches
89   TH3F  *fh3EEtaPhiCluster;                 //! cluster E, eta, phi
90   TH3F  *fh3PtLeadJet1VsPatchEnergy;        //! leading jet energy vs leading patch energy vs jet trigger (J1/J2)
91   TH3F  *fh3PtLeadJet2VsPatchEnergy;        //! leading jet energy vs leading patch energy vs jet trigger (J1/J2)
92   TH3F  *fh3PatchEnergyEtaPhiCenterJ1;      //! patch energy vs eta, phi at center of patch, high threshold
93   TH3F  *fh3PatchEnergyEtaPhiCenterJ2;      //! patch energy vs eta, phi at center of patch, low threshold
94   TH3F  *fh3PatchEnergyEtaPhiCenterJ1J2;    //! patch energy vs eta, phi at center of patch, low + high threshold
95   TH3F  *fh3PatchADCEnergyEtaPhiCenterJ1;   //! patch ADC energy vs eta, phi at center of patch, high threshold
96   TH3F  *fh3PatchADCEnergyEtaPhiCenterJ2;   //! patch ADC energy vs eta, phi at center of patch, low threshold
97   TH3F  *fh3PatchADCEnergyEtaPhiCenterJ1J2; //! patch ADC energy vs eta, phi at center of patch, low + high threshold
98   TH3F  *fh3EEtaPhiCell;                    //! cell E, eta, phi
99   TH2F  *fh2CellEnergyVsTime;               //! emcal cell energy vs time
100   TH3F  *fh3EClusELeadingCellVsTime;        //! cluster energy vs energy of leading cell in cluster vs time of the leading cell
101   TH3F  *fh3JetReacCent;                    //! jet energy vs cent vs dphi(jet,event plane)
102     
103   AliAnalysisTaskEmcalJetTriggerQA(const AliAnalysisTaskEmcalJetTriggerQA&);            // not implemented
104   AliAnalysisTaskEmcalJetTriggerQA &operator=(const AliAnalysisTaskEmcalJetTriggerQA&); // not implemented
105
106   ClassDef(AliAnalysisTaskEmcalJetTriggerQA, 12)
107 };
108 #endif