]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/EMCALJetTasks/UserTasks/AliAnalysisTaskEmcalJetTriggerQA.h
Merge branch 'feature-movesplit'
[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 TProfile;
9 class TClonesArray;
10 class TArrayI;
11
12 #include <TRef.h>
13 #include <TBits.h>
14 #include <TMath.h>
15
16 #include <AliVEvent.h>
17
18 #include "AliAnalysisTaskEmcalJet.h"
19
20 class AliAnalysisTaskEmcalJetTriggerQA : public AliAnalysisTaskEmcalJet {
21  public:
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   void SetMainTriggerTypeCat(TriggerCategory cat, Bool_t b) {fMainTrigCat = cat; fMainTrigSimple = b;}
41
42   Int_t    GetLeadingCellId(const AliVCluster *clus) const;
43   Double_t GetEnergyLeadingCell(const AliVCluster *clus) const;
44   Double_t GetECross(Int_t absID) const;
45
46   Double_t GetZ(const AliVParticle *trk, const AliEmcalJet *jet)       const;
47   Double_t GetZ(Double_t trkPx, Double_t trkPy, Double_t trkPz, Double_t jetPx, Double_t jetPy, Double_t jetPz) const;
48
49  protected:
50   Bool_t                      FillHistograms()   ;
51   Bool_t                      Run()              ;
52   Float_t                     RelativeEP(Double_t objAng, Double_t EPAng) const;
53   Bool_t                      TestFilterBit(Int_t trigBit, UInt_t bitJetTrig) const {return (Bool_t) ((trigBit & bitJetTrig) != 0);}
54
55  private:
56   Bool_t             fDebug;                 // debug level
57   TString            fTriggerClass;          // trigger class to analyze EJ1 or EJ2    
58   Int_t              fContainerFull;         // number of container with full jets DET
59   Int_t              fContainerCharged;      // number of container with charged jets DET
60   Double_t           fMaxPatchEnergy;        // energy of patch with largest energy (offline)
61   Double_t           fMaxPatchADCEnergy;     // energy of patch with largest energy from online ADC
62   Int_t              fTriggerType;           // trigger type
63   Int_t              fNFastOR;               // size of trigger patch fNFastORxfNFastOR
64   TriggerCategory    fMainTrigCat;           // trigger category for main trigger
65   Bool_t             fMainTrigSimple;        // use offline trigger instead of online
66
67   TH1F     *fhNEvents;                         //! Histo number of events
68   TProfile *fhTriggerbit;                      //! histogram containing the triggerbit (fOfflineTriggerMask)
69   TH2F     *fHistRhovsCentFull;                //! rho vs. centrality
70   TH2F     *fHistRhovsCentCharged;             //! rho vs. centrality
71   TH3F     *fh3PtEtaPhiTracks;                 //! pt,eta,phi of tracks at vertex
72   TH3F     *fh3PtEtaPhiTracksOnEmcal;          //! pt,eta,phi of tracks at Emcal surface
73   TH3F     *fh3PtEtaPhiTracksToProp;           //! pt,eta,phi of tracks at vertex
74   TH3F     *fh3PtEtaPhiTracksProp;             //! pt,eta,phi of tracks at vertex
75   TH3F     *fh3PtEtaPhiTracksNoProp;           //! pt,eta,phi of tracks at vertex
76   TH2F     *fh2CentPtJetFull;                  //! cent, pt of full jets
77   TH2F     *fh2CentPtJetCharged;               //! cent, pt of charged jets
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   TH3F     *fh3NEFEtaPhi;                      //! NEF, eta, phi
90   TH2F     *fh2NEFNConstituentsCharged;        //! NEF, # charged jet constituents
91   TH2F     *fh2NEFNConstituentsNeutral;        //! NEF, # neutral jet constituents
92   TH2F     *fh2Ptz;                            //! pt, z=pT,h,proj/p,jet full jet
93   TH2F     *fh2PtzCharged;                     //! pt, z=pT,h,proj/p,jet charged jet
94   TH2F     *fh2PtLeadJet1VsLeadJet2;           //! correlation between leading jet of the two branches
95   TH3F     *fh3EEtaPhiCluster;                 //! cluster E, eta, phi
96   TH3F     *fh3PtLeadJet1VsPatchEnergy;        //! leading jet energy vs leading patch energy vs jet trigger (J1/J2)
97   TH3F     *fh3PtLeadJet2VsPatchEnergy;        //! leading jet energy vs leading patch energy vs jet trigger (J1/J2)
98   TH3F     *fh3PtLeadJet1PatchEnergyVZEROAmp;  //! leading jet energy vs leading patch energy vs VZERO amplitude
99   TH3F     *fh3PtLeadJet1RawPatchEnergyVZEROAmp;  //! leading jet energy vs online leading patch energy vs VZERO amplitude
100   TH3F     *fh3PatchEnergyEtaPhiCenterJ1;      //! patch energy vs eta, phi at center of patch, high threshold
101   TH3F     *fh3PatchEnergyEtaPhiCenterJ2;      //! patch energy vs eta, phi at center of patch, low threshold
102   TH3F     *fh3PatchEnergyEtaPhiCenterJ1J2;    //! patch energy vs eta, phi at center of patch, low + high threshold
103   TH3F     *fh3PatchADCEnergyEtaPhiCenterJ1;   //! patch ADC energy vs eta, phi at center of patch, high threshold
104   TH3F     *fh3PatchADCEnergyEtaPhiCenterJ2;   //! patch ADC energy vs eta, phi at center of patch, low threshold
105   TH3F     *fh3PatchADCEnergyEtaPhiCenterJ1J2; //! patch ADC energy vs eta, phi at center of patch, low + high threshold
106   TH3F     *fh3PatchADCEnergyEtaPhiCenterAll;  //! patch ADC energy vs eta, phi at center of patch, all trigger patches
107   TH3F     *fh3EEtaPhiCell;                    //! cell E, eta, phi
108   TH2F     *fh2ECellVsCent;                    //! cell E vs centrality
109   TH2F     *fh2CellEnergyVsTime;               //! emcal cell energy vs time
110   TH3F     *fh3EClusELeadingCellVsTime;        //! cluster energy vs energy of leading cell in cluster vs time of the leading cell
111   TH3F     *fh3JetReacCent;                    //! jet energy vs cent vs dphi(jet,event plane)
112
113   AliAnalysisTaskEmcalJetTriggerQA(const AliAnalysisTaskEmcalJetTriggerQA&);            // not implemented
114   AliAnalysisTaskEmcalJetTriggerQA &operator=(const AliAnalysisTaskEmcalJetTriggerQA&); // not implemented
115
116   ClassDef(AliAnalysisTaskEmcalJetTriggerQA, 15)
117 };
118 #endif
119
120