32 float ptbins[14] = {0, 5, 10, 15, 20, 25, 30, 35, 40, 50, 60, 80, 120, 160};
36 for (
int i = 0;
i < Type::Number;
i++) {
38 (
Name[
i] +
" Efficiency vs Pt Denom; Gen p_{T} [GeV]; Entries").c_str(),
42 (
Name[
i] +
" Efficiency vs Pt Nomin; Gen p_{T} [GeV]; Entries").c_str(),
46 (
Name[
i] +
" Efficiency vs #eta Denom; Gen #eta; Entries").c_str(),
51 (
Name[
i] +
" Efficiency vs #eta Nomin; Gen #eta; Entries").c_str(),
56 (
Name[
i] +
" Turn On (15 GeV) Denom; Gen p_{T} [GeV]; Entries").c_str(),
60 (
Name[
i] +
" Turn On (15 GeV) Nomin; Gen p_{T} [GeV]; Entries").c_str(),
64 (
Name[
i] +
" Turn On (30 GeV) Denom; Gen p_{T} [GeV]; Entries").c_str(),
68 (
Name[
i] +
" Turn On (30 GeV) Nomin; Gen p_{T} [GeV]; Entries").c_str(),
74 for (
int i = 0;
i < Type::Number;
i++) {
75 N[
i] = iBooker.
book1D((
Name[
i] +
"_N").c_str(), (
"L1 " +
Name[
i] +
" Number with BX=0").c_str(), 16, -0.5, 15.5);
78 (
Name[
i] +
" Efficiency vs Pt; Gen p_{T} [GeV]; L1T Efficiency").c_str(),
83 (
Name[
i] +
" Efficiency vs #eta (Gen p_{T} > 10GeV); Gen #eta; L1T Efficiency").c_str(),
89 (
Name[
i] +
" Turn On (15 GeV); Gen p_{T} [GeV]; L1T Efficiency").c_str(),
94 (
Name[
i] +
" Turn On (30 GeV); Gen p_{T} [GeV]; L1T Efficiency").c_str(),
99 (
Name[
i] +
"_dR").c_str(), (
Name[
i] +
" #DeltaR; #DeltaR(L1 object, Gen object); Entries").c_str(), 40, 0, 1);
101 (
Name[
i] +
" #DeltaR vs p_{T}; Gen p_{T} [GeV]; "
102 "#DeltaR(L1 object, Gen object); Entries")
111 (
Name[
i] +
" #Deltap_{T}; (p_{T}^{L1}-p_{T}^{Gen})/p_{T}^{Gen}; Entries").c_str(),
116 (
Name[
i] +
" #Deltap_{T} vs p_{T}; Gen p_{T} [GeV]; "
117 "(p_{T}^{L1}-p_{T}^{Gen})/p_{T}^{Gen}; Entries")
129 double GenPartPt = GenPart->
pt();
131 if (GenPart->
pt() >= 160.0)
133 if (L1Part ==
nullptr) {
135 if (GenPart->
pt() > 10)
141 bool matched = idR < 0.15;
143 if (GenPart->
pt() > 10)
147 if (matched && GenPart->
pt() > 10)
151 if (L1Part->
pt() > 15 && matched)
153 if (L1Part->
pt() > 30 && matched)
165 for (
int i = 0;
i < Type::Number;
i++) {
void Fill(int, const reco::LeafCandidate *, const reco::LeafCandidate *)
MonitorElement * dR_vs_Pt[Type::Number]
virtual TH2F * getTH2F() const
double pt() const final
transverse momentum
MonitorElement * Eff_Eta[Type::Number]
MonitorElement * N[Type::Number]
virtual void setCurrentFolder(std::string const &fullpath)
MonitorElement * TurnOn_15[Type::Number]
MonitorElement * Eff_Pt_Denom[Type::Number]
MonitorElement * TurnOn_15_Denom[Type::Number]
MonitorElement * Eff_Eta_Nomin[Type::Number]
void FillNumber(int, int)
MonitorElement * TurnOn_15_Nomin[Type::Number]
void Book(DQMStore::IBooker &, std::string dirname)
MonitorElement * TurnOn_30_Denom[Type::Number]
MonitorElement * dPt[Type::Number]
MonitorElement * TurnOn_30[Type::Number]
constexpr auto deltaR(const T1 &t1, const T2 &t2) -> decltype(t1.eta())
MonitorElement * dR[Type::Number]
MonitorElement * TurnOn_30_Nomin[Type::Number]
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
MonitorElement * dPt_vs_Pt[Type::Number]
MonitorElement * Eff_Pt_Nomin[Type::Number]
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
double phi() const final
momentum azimuthal angle
MonitorElement * Eff_Eta_Denom[Type::Number]
virtual TH1 * getTH1() const
MonitorElement * Eff_Pt[Type::Number]
double eta() const final
momentum pseudorapidity