1 #ifndef AliAnalysisTaskEmcalJetHMEC_H
2 #define AliAnalysisTaskEmcalJetHMEC_H
14 class AliEventPoolManager;
16 #include "AliAnalysisTaskEmcalJet.h"
18 class AliAnalysisTaskEmcalJetHMEC : public AliAnalysisTaskEmcalJet {
20 AliAnalysisTaskEmcalJetHMEC();
21 AliAnalysisTaskEmcalJetHMEC(const char *name);
22 virtual ~AliAnalysisTaskEmcalJetHMEC() {}
24 virtual void UserCreateOutputObjects();
25 virtual Double_t RelativePhi(Double_t mphi, Double_t vphi);
26 // virtual void UserExec(Option_t *option);
27 virtual void Terminate(Option_t *);
28 virtual Int_t AcceptthisJet(AliEmcalJet *jet);
29 virtual THnSparse* NewTHnSparseF(const char* name, UInt_t entries);
30 virtual void GetDimParams(Int_t iEntry,TString &label, Int_t &nbins, Double_t &xmin, Double_t &xmax);
32 virtual void SetTracksName(const char *n) {fTracksName=n;}
33 virtual void SetJetsName(const char *jn) {fJetsName=jn;}
35 virtual void SetAreaCut(Double_t a) { fAreacut = a; }
36 virtual void SetTrkBias(Double_t b) { fTrkBias = b; } //require a track with pt > b in jet
37 virtual void SetClusBias(Double_t b) { fClusBias = b; } //require a cluster with pt > b in jet
39 virtual void SetTrkEta(Double_t e) { fTrkEta = e; } //eta range of the associated tracks
41 virtual void SetJetEta(Double_t emin, Double_t emax) { fEtamin = emin; fEtamax = emax; }
42 virtual void SetJetPhi(Double_t pmin, Double_t pmax) { fPhimin = pmin; fPhimax = pmax; }
43 virtual void SetEventMixing(Int_t yesno) { fDoEventMixing=yesno;}
44 virtual void SetMixingTracks(Int_t tracks) { fMixingTracks = tracks; }
46 // event trigger/mixed selection - setters
47 virtual void SetTrigType(UInt_t te) { fTriggerEventType = te; }
48 virtual void SetMixType(UInt_t me) { fMixingEventType = me; }
49 virtual void SetNMixedTracks(Int_t nmt) { fNMIXtracks = nmt; }
50 virtual void SetNMixedEvents(Int_t nme) { fNMIXevents = nme; }
52 // switch to cut out some unneeded sparse axis
53 void SetDoLessSparseAxes(Bool_t dlsa) { fDoLessSparseAxes = dlsa; }
54 void SetDoWiderTrackBin(Bool_t wtrbin) { fDoWiderTrackBin = wtrbin; }
56 virtual void SetCentBinSize(Bool_t centbins) { fCentBinSize = centbins; }
57 // set efficiency correction
58 void SetDoEffCorr(Int_t effcorr) { fDoEffCorrection = effcorr; }
59 virtual void SetEffCorrFunc(Double_t efffunc) { fEffFunctionCorrection = efffunc; }
64 virtual Int_t GetCentBin(Double_t cent) const;
65 virtual Int_t GetEtaBin(Double_t eta) const;
66 virtual Int_t GetpTjetBin(Double_t pt) const;
67 virtual Double_t EffCorrection(Double_t trkETA, Double_t trkPT, Int_t effswitch) const; // efficiency correction function
69 TString fTracksName; // name of tracks collection
70 TString fJetsName; // name of Jet collection
71 Double_t fPhimin; // phi min of jet
72 Double_t fPhimax; // phi max of jet
73 Double_t fEtamin; // eta min of jet
74 Double_t fEtamax; // eta max of jet
75 Double_t fAreacut; // area cut of jet
78 Double_t fTrkEta; // eta min/max of tracks
79 Int_t fDoEventMixing; // flag to do evt mixing
80 Int_t fMixingTracks; // size of track buffer for event mixing
81 Int_t fNMIXtracks; // threshold to use event pool # tracks
82 Int_t fNMIXevents; // threshold to use event pool # events
83 TObjArray* CloneAndReduceTrackList(TObjArray* tracks);
85 // event selection types
86 UInt_t fTriggerEventType;
87 UInt_t fMixingEventType;
89 // efficiency correction
90 Int_t fDoEffCorrection;
91 Double_t fEffFunctionCorrection;
93 Bool_t fDoLessSparseAxes;
94 Bool_t fDoWiderTrackBin;
98 AliESDEvent *fESD; //! ESD object
99 AliAODEvent *fAOD; //! AOD object
100 AliEventPoolManager *fPoolMgr; //!
101 TH1 *fHistTrackPt; //! Pt spectrum
102 TH1 *fHistCentrality;//!
103 TH2 *fHistJetEtaPhi;//!
104 TH2 *fHistTrackEtaPhi[7];//!
105 TH2 *fHistJetHEtaPhi;//!
107 TH1 *fHistJetPt[6]; //!
108 TH1 *fHistJetPtBias[6];//!
109 TH1 *fHistLeadJetPt[6];//!
110 TH1 *fHistLeadJetPtBias[6];//!
111 TH1 *fHistJetPtTT[6];//!
112 TH2 *fHistJetH[6][5][3];//!
113 TH2 *fHistJetHBias[6][5][3];//!
114 TH2 *fHistJetHTT[6][5][3];//!
115 THnSparse *fhnMixedEvents; //!mixed events matrix
116 THnSparse *fhnJH; //!Fg events matrix
120 AliAnalysisTaskEmcalJetHMEC(const AliAnalysisTaskEmcalJetHMEC&); // not implemented
121 AliAnalysisTaskEmcalJetHMEC& operator=(const AliAnalysisTaskEmcalJetHMEC&); // not implemented
123 ClassDef(AliAnalysisTaskEmcalJetHMEC, 10);