1 #ifndef ALIJETRESPONSEMAKER_H
2 #define ALIJETRESPONSEMAKER_H
6 class AliGenPythiaEventHeader;
11 #include "AliAnalysisTaskEmcalJet.h"
13 class AliJetResponseMaker : public AliAnalysisTaskEmcalJet {
15 AliJetResponseMaker();
16 AliJetResponseMaker(const char *name);
17 virtual ~AliJetResponseMaker();
19 void UserCreateOutputObjects();
21 void SetMCJetsName(const char *n) { fMCJetsName = n; }
22 void SetMCTracksName(const char *n) { fMCTracksName = n; }
23 void SetMaxDistance(Double_t d) { fMaxDistance = d; }
24 void SetDoWeighting(Bool_t d = kTRUE) { fDoWeighting = d; }
25 void SetVertexCut(Double_t v) { fVertexCut = v; }
26 void SetMCFiducial(Bool_t f = kTRUE) { fMCFiducial = f; }
29 Bool_t AcceptJet(AliEmcalJet* jet, Bool_t /*bias*/ = kFALSE, Bool_t /*upCut*/ = kFALSE) const;
31 void DoJetLoop(TClonesArray *jets1, TClonesArray *jets2, Bool_t mc);
32 Bool_t FillHistograms();
33 Bool_t RetrieveEventObjects();
36 TString fMCTracksName; // name of MC particle collection
37 TString fMCJetsName; // name of MC jet collection
38 Double_t fMaxDistance; // maximum distance between matched particle and detector level jets
39 Bool_t fDoWeighting; // = true, weight using trials and given x section
40 Double_t fVertexCut; // z vertex cut
41 Bool_t fMCFiducial; // = true MC jets in fiducial acceptance
42 Double_t fMCminEta; // MC jets minimum eta
43 Double_t fMCmaxEta; // MC jets maximum eta
44 Double_t fMCminPhi; // MC jets minimum phi
45 Double_t fMCmaxPhi; // MC jets maximum phi
47 AliGenPythiaEventHeader *fPythiaHeader; //!event Pythia header
48 Double_t fEventWeight; //!event weight
49 Int_t fPtHardBin; //!event pt hard bin
50 Int_t fNTrials; //!event trials
51 TClonesArray *fMCTracks; //!MC particles
52 TClonesArray *fMCJets; //!MC jets
54 TH1F *fHistNTrials; //!total number of trials per pt hard bin
55 TH1F *fHistAcceptedEvents; //!number of accepted events per pt hard bin
56 TH1F *fHistEvents; //!total number of events per pt hard bin
57 // Particle level jets
58 TH2F *fHistMCJetPhiEta; //!phi-eta distribution of jets
59 TH1F *fHistMCJetsPt; //!inclusive jet pt spectrum
60 TH2F *fHistMCJetPhiEtaFiducial; //!phi-eta distribution of jets in fiducial acceptance (plus lead hadron bias)
61 TH1F *fHistMCJetsPtFiducial; //!inclusive jet pt spectrum in fiducial acceptance (plus lead hadron bias)
62 TH2F *fHistMCJetsNEFvsPt; //!jet neutral energy fraction vs. jet pt
63 TH2F *fHistMCJetsZvsPt; //!constituent Pt over Jet Pt ratio vs. jet pt
64 // Detector level jets
65 TH2F *fHistJetPhiEta; //!phi-eta distribution of jets
66 TH1F *fHistJetsPt; //!inclusive jet pt spectrum
67 TH2F *fHistJetsNEFvsPt; //!jet neutral energy fraction vs. jet pt
68 TH2F *fHistJetsZvsPt; //!constituent Pt over Jet Pt ratio vs. jet pt
69 // Detector-particle level matching
70 TH1F *fHistClosestDistance; //!distance between closest particle to detector level jet
71 TH1F *fHistClosestDeltaPhi; //!delta phi between closest particle to detector level jet
72 TH1F *fHistClosestDeltaEta; //!delta eta between closest particle to detector level jet
73 TH1F *fHistClosestDeltaPt; //!delta pt between closest particle to detector level jet
74 TH1F *fHistNonMatchedMCJetPt; //!non-matched mc jet pt distribution
75 TH1F *fHistNonMatchedJetPt; //!non-matched jet pt distribution
76 TH2F *fHistPartvsDetecPt; //!particle vs detector level jet pt
77 TH1F *fHistMissedMCJets; //!mc jets not measured
80 AliJetResponseMaker(const AliJetResponseMaker&); // not implemented
81 AliJetResponseMaker &operator=(const AliJetResponseMaker&); // not implemented
83 ClassDef(AliJetResponseMaker, 5) // Jet response matrix producing task