#ifndef ALIJETRESPONSEMAKER_H
#define ALIJETRESPONSEMAKER_H
class TClonesArray;
class TH2;
class THnSparse;
class AliNamedArrayI;
#include "AliEmcalJet.h"
#include "AliAnalysisTaskEmcalJet.h"
class AliJetResponseMaker : public AliAnalysisTaskEmcalJet {
public:
AliJetResponseMaker();
AliJetResponseMaker(const char *name);
virtual ~AliJetResponseMaker();
enum MatchingType{
kNoMatching = 0,
kGeometrical = 1,
kMCLabel = 2,
kSameCollections = 3
};
void UserCreateOutputObjects();
void SetMatching(MatchingType t, Double_t p1=1, Double_t p2=1) { fMatching = t; fMatchingPar1 = p1; fMatchingPar2 = p2; }
void SetPtHardBin(Int_t b) { fSelectPtHardBin = b ; }
void SetUseCellsToMatch(Bool_t i) { fUseCellsToMatch = i ; }
void SetMinJetMCPt(Float_t pt) { fMinJetMCPt = pt ; }
void SetHistoType(Int_t b) { fHistoType = b ; }
void SetDeltaPtAxis(Int_t b) { fDeltaPtAxis = b ; }
void SetDeltaEtaDeltaPhiAxis(Int_t b) { fDeltaEtaDeltaPhiAxis= b ; }
void SetNEFAxis(Int_t b) { fNEFAxis = b ; }
void SetZAxis(Int_t b) { fZAxis = b ; }
protected:
void ExecOnce();
void DoJetLoop();
Bool_t FillHistograms();
Bool_t Run();
Bool_t DoJetMatching();
void SetMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, MatchingType matching);
void GetGeometricalMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d) const;
void GetMCLabelMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d1, Double_t &d2) const;
void GetSameCollectionsMatchingLevel(AliEmcalJet *jet1, AliEmcalJet *jet2, Double_t &d1, Double_t &d2) const;
void FillMatchingHistos(Double_t Pt1, Double_t Pt2, Double_t Eta1, Double_t Eta2, Double_t Phi1, Double_t Phi2,
Double_t A1, Double_t A2, Double_t d, Double_t CE1, Double_t CE2, Double_t CorrPt1, Double_t CorrPt2,
Double_t MCPt1, Double_t NEF1, Double_t NEF2, Double_t LeadingPt1, Double_t LeadingPt2);
void FillJetHisto(Double_t Phi, Double_t Eta, Double_t Pt, Double_t A, Double_t NEF, Double_t LeadingPt, Double_t CorrPt, Double_t MCPt, Int_t Set);
void AllocateTH2();
void AllocateTHnSparse();
MatchingType fMatching;
Double_t fMatchingPar1;
Double_t fMatchingPar2;
Bool_t fUseCellsToMatch;
Double_t fMinJetMCPt;
Int_t fHistoType;
Int_t fDeltaPtAxis;
Int_t fDeltaEtaDeltaPhiAxis;
Int_t fNEFAxis;
Int_t fZAxis;
Bool_t fIsJet1Rho;
Bool_t fIsJet2Rho;
TH2 *fHistRejectionReason1;
TH2 *fHistRejectionReason2;
THnSparse *fHistJets1;
THnSparse *fHistJets2;
THnSparse *fHistMatching;
TH2 *fHistJets1PhiEta;
TH2 *fHistJets1PtArea;
TH2 *fHistJets1CorrPtArea;
TH2 *fHistJets1NEFvsPt;
TH2 *fHistJets1CEFvsCEFPt;
TH2 *fHistJets1ZvsPt;
TH2 *fHistJets2PhiEta;
TH2 *fHistJets2PtArea;
TH2 *fHistJets2CorrPtArea;
TH2 *fHistJets2NEFvsPt;
TH2 *fHistJets2CEFvsCEFPt;
TH2 *fHistJets2ZvsPt;
TH2 *fHistCommonEnergy1vsJet1Pt;
TH2 *fHistCommonEnergy2vsJet2Pt;
TH2 *fHistDistancevsJet1Pt;
TH2 *fHistDistancevsJet2Pt;
TH2 *fHistDistancevsCommonEnergy1;
TH2 *fHistDistancevsCommonEnergy2;
TH2 *fHistCommonEnergy1vsCommonEnergy2;
TH2 *fHistDeltaEtaDeltaPhi;
TH2 *fHistJet2PtOverJet1PtvsJet2Pt;
TH2 *fHistJet1PtOverJet2PtvsJet1Pt;
TH2 *fHistDeltaPtvsJet1Pt;
TH2 *fHistDeltaPtvsJet2Pt;
TH2 *fHistDeltaPtOverJet1PtvsJet1Pt;
TH2 *fHistDeltaPtOverJet2PtvsJet2Pt;
TH2 *fHistDeltaPtvsDistance;
TH2 *fHistDeltaPtvsCommonEnergy1;
TH2 *fHistDeltaPtvsCommonEnergy2;
TH2 *fHistDeltaPtvsArea1;
TH2 *fHistDeltaPtvsArea2;
TH2 *fHistDeltaPtvsDeltaArea;
TH2 *fHistJet1PtvsJet2Pt;
TH2 *fHistDeltaCorrPtOverJet1CorrPtvsJet1CorrPt;
TH2 *fHistDeltaCorrPtOverJet2CorrPtvsJet2CorrPt;
TH2 *fHistDeltaCorrPtvsJet1CorrPt;
TH2 *fHistDeltaCorrPtvsJet2CorrPt;
TH2 *fHistDeltaCorrPtvsDistance;
TH2 *fHistDeltaCorrPtvsCommonEnergy1;
TH2 *fHistDeltaCorrPtvsCommonEnergy2;
TH2 *fHistDeltaCorrPtvsArea1;
TH2 *fHistDeltaCorrPtvsArea2;
TH2 *fHistDeltaCorrPtvsDeltaArea;
TH2 *fHistJet1CorrPtvsJet2CorrPt;
TH2 *fHistDeltaMCPtOverJet1MCPtvsJet1MCPt;
TH2 *fHistDeltaMCPtOverJet2PtvsJet2Pt;
TH2 *fHistDeltaMCPtvsJet1MCPt;
TH2 *fHistDeltaMCPtvsJet2Pt;
TH2 *fHistDeltaMCPtvsDistance;
TH2 *fHistDeltaMCPtvsCommonEnergy1;
TH2 *fHistDeltaMCPtvsCommonEnergy2;
TH2 *fHistDeltaMCPtvsArea1;
TH2 *fHistDeltaMCPtvsArea2;
TH2 *fHistDeltaMCPtvsDeltaArea;
TH2 *fHistJet1MCPtvsJet2Pt;
private:
AliJetResponseMaker(const AliJetResponseMaker&);
AliJetResponseMaker &operator=(const AliJetResponseMaker&);
ClassDef(AliJetResponseMaker, 24)
};
#endif
AliJetResponseMaker.h:100 AliJetResponseMaker.h:101 AliJetResponseMaker.h:102 AliJetResponseMaker.h:103 AliJetResponseMaker.h:104 AliJetResponseMaker.h:105 AliJetResponseMaker.h:106 AliJetResponseMaker.h:107 AliJetResponseMaker.h:108 AliJetResponseMaker.h:109 AliJetResponseMaker.h:110 AliJetResponseMaker.h:111 AliJetResponseMaker.h:112 AliJetResponseMaker.h:113 AliJetResponseMaker.h:114 AliJetResponseMaker.h:115 AliJetResponseMaker.h:116 AliJetResponseMaker.h:117 AliJetResponseMaker.h:118 AliJetResponseMaker.h:119 AliJetResponseMaker.h:120 AliJetResponseMaker.h:121 AliJetResponseMaker.h:122 AliJetResponseMaker.h:123 AliJetResponseMaker.h:124 AliJetResponseMaker.h:125 AliJetResponseMaker.h:126 AliJetResponseMaker.h:127 AliJetResponseMaker.h:128 AliJetResponseMaker.h:129 AliJetResponseMaker.h:130 AliJetResponseMaker.h:131 AliJetResponseMaker.h:132 AliJetResponseMaker.h:133 AliJetResponseMaker.h:134 AliJetResponseMaker.h:135 AliJetResponseMaker.h:136 AliJetResponseMaker.h:137 AliJetResponseMaker.h:138 AliJetResponseMaker.h:139 AliJetResponseMaker.h:140 AliJetResponseMaker.h:141 AliJetResponseMaker.h:142 AliJetResponseMaker.h:143 AliJetResponseMaker.h:144 AliJetResponseMaker.h:145 AliJetResponseMaker.h:146 AliJetResponseMaker.h:147 AliJetResponseMaker.h:148