CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Protected Attributes | Private Attributes
PFJetBenchmark Class Reference

#include <PFJetBenchmark.h>

Public Types

typedef dqm::legacy::DQMStore DQMStore
 
typedef dqm::legacy::MonitorElement MonitorElement
 

Public Member Functions

void gettrue (const reco::GenJet *truth, double &true_ChargedHadEnergy, double &true_NeutralHadEnergy, double &true_NeutralEmEnergy)
 
 PFJetBenchmark ()
 
void printGenJet (const reco::GenJet *)
 
void printPFJet (const reco::PFJet *)
 
void process (const reco::PFJetCollection &, const reco::GenJetCollection &)
 
double resChargedHadEnergyMax () const
 
double resNeutralEmEnergyMax () const
 
double resNeutralHadEnergyMax () const
 
double resPtMax () const
 
void setup (std::string Filename, bool debug, bool plotAgainstReco=false, bool onlyTwoJets=true, double deltaRMax=0.1, std::string benchmarkLabel_="ParticleFlow", double recPt=-1, double maxEta=-1, DQMStore *dbe_store=nullptr)
 
void write ()
 
virtual ~PFJetBenchmark ()
 

Protected Attributes

PFBenchmarkAlgoalgo_
 
DQMStoredbe_
 
bool debug_
 
double deltaRMax_
 
unsigned int entry_
 
double maxEta_cut
 
bool onlyTwoJets_
 
bool plotAgainstReco_
 
double recPt_cut
 
double resChargedHadEnergyMax_
 
double resNeutralEmEnergyMax_
 
double resNeutralHadEnergyMax_
 
double resPtMax_
 

Private Attributes

TFile * file_
 
TH2F * hBDEtavsPt
 
TH2F * hBDPhivsPt
 
TH1F * hBNCH
 
TH2F * hBNCH0vsPt
 
TH2F * hBNCH1vsPt
 
TH2F * hBNCH2vsPt
 
TH2F * hBNCH3vsPt
 
TH2F * hBNCH4vsPt
 
TH2F * hBNCH5vsPt
 
TH2F * hBNCH6vsPt
 
TH2F * hBNCH7vsPt
 
TH2F * hBNCHvsPt
 
TH1F * hBRCHE
 
TH2F * hBRCHEvsPt
 
TH2F * hBRHCALvsP
 
TH2F * hBRHONLvsP
 
TH1F * hBRNEE
 
TH2F * hBRNEEvsPt
 
TH1F * hBRneut
 
TH2F * hBRNEUTvsP
 
TH2F * hBRneutvsPt
 
TH1F * hBRNHE
 
TH2F * hBRNHEvsPt
 
TH2F * hBRNONLvsP
 
TH1F * hBRPt
 
TH1F * hBRPt100_150
 
TH1F * hBRPt1250_2000
 
TH1F * hBRPt150_200
 
TH1F * hBRPt2000_5000
 
TH1F * hBRPt200_250
 
TH1F * hBRPt20_40
 
TH1F * hBRPt250_300
 
TH1F * hBRPt300_400
 
TH1F * hBRPt400_500
 
TH1F * hBRPt40_60
 
TH1F * hBRPt500_750
 
TH1F * hBRPt60_80
 
TH1F * hBRPt750_1250
 
TH1F * hBRPt80_100
 
TH2F * hBRPtvsPt
 
TH2F * hDEtavsEta
 
TH2F * hDPhivsEta
 
TH2F * hEDEtavsPt
 
TH2F * hEDPhivsPt
 
TH1F * hENCH
 
TH2F * hENCH0vsPt
 
TH2F * hENCH1vsPt
 
TH2F * hENCH2vsPt
 
TH2F * hENCH3vsPt
 
TH2F * hENCH4vsPt
 
TH2F * hENCH5vsPt
 
TH2F * hENCH6vsPt
 
TH2F * hENCH7vsPt
 
TH2F * hENCHvsPt
 
TH1F * hERCHE
 
TH2F * hERCHEvsPt
 
TH2F * hERHCALvsP
 
TH2F * hERHONLvsP
 
TH1F * hERNEE
 
TH2F * hERNEEvsPt
 
TH1F * hERneut
 
TH2F * hERNEUTvsP
 
TH2F * hERneutvsPt
 
TH1F * hERNHE
 
TH2F * hERNHEvsPt
 
TH2F * hERNONLvsP
 
TH1F * hERPt
 
TH1F * hERPt100_150
 
TH1F * hERPt1250_2000
 
TH1F * hERPt150_200
 
TH1F * hERPt2000_5000
 
TH1F * hERPt200_250
 
TH1F * hERPt20_40
 
TH1F * hERPt250_300
 
TH1F * hERPt300_400
 
TH1F * hERPt400_500
 
TH1F * hERPt40_60
 
TH1F * hERPt500_750
 
TH1F * hERPt60_80
 
TH1F * hERPt750_1250
 
TH1F * hERPt80_100
 
TH2F * hERPtvsPt
 
TH2F * hFDEtavsPt
 
TH2F * hFDPhivsPt
 
TH1F * hFNCH
 
TH2F * hFNCH0vsPt
 
TH2F * hFNCH1vsPt
 
TH2F * hFNCH2vsPt
 
TH2F * hFNCH3vsPt
 
TH2F * hFNCH4vsPt
 
TH2F * hFNCH5vsPt
 
TH2F * hFNCH6vsPt
 
TH2F * hFNCH7vsPt
 
TH2F * hFNCHvsPt
 
TH1F * hFRCHE
 
TH2F * hFRCHEvsPt
 
TH2F * hFRHCALvsP
 
TH2F * hFRHONLvsP
 
TH1F * hFRNEE
 
TH2F * hFRNEEvsPt
 
TH1F * hFRneut
 
TH2F * hFRNEUTvsP
 
TH2F * hFRneutvsPt
 
TH1F * hFRNHE
 
TH2F * hFRNHEvsPt
 
TH2F * hFRNONLvsP
 
TH1F * hFRPt
 
TH1F * hFRPt100_150
 
TH1F * hFRPt1250_2000
 
TH1F * hFRPt150_200
 
TH1F * hFRPt2000_5000
 
TH1F * hFRPt200_250
 
TH1F * hFRPt20_40
 
TH1F * hFRPt250_300
 
TH1F * hFRPt300_400
 
TH1F * hFRPt400_500
 
TH1F * hFRPt40_60
 
TH1F * hFRPt500_750
 
TH1F * hFRPt60_80
 
TH1F * hFRPt750_1250
 
TH1F * hFRPt80_100
 
TH2F * hFRPtvsPt
 
TH1F * hjetsEta
 
TH1F * hjetsPt
 
TH2F * hNCH0vsEta
 
TH2F * hNCH1vsEta
 
TH2F * hNCH2vsEta
 
TH2F * hNCH3vsEta
 
TH2F * hNCH4vsEta
 
TH2F * hNCH5vsEta
 
TH2F * hNCH6vsEta
 
TH2F * hNCH7vsEta
 
TH2F * hNCHvsEta
 
TH1F * hNjets
 
TH2F * hRCHEvsEta
 
TH2F * hRHCALvsEta
 
TH2F * hRHONLvsEta
 
TH2F * hRNeutvsEta
 
TH2F * hRNEUTvsEta
 
TH2F * hRNONLvsEta
 
TH2F * hRPtvsEta
 
std::string outputFile_
 

Detailed Description

Definition at line 28 of file PFJetBenchmark.h.

Member Typedef Documentation

◆ DQMStore

Definition at line 30 of file PFJetBenchmark.h.

◆ MonitorElement

Definition at line 31 of file PFJetBenchmark.h.

Constructor & Destructor Documentation

◆ PFJetBenchmark()

PFJetBenchmark::PFJetBenchmark ( )

Definition at line 47 of file PFJetBenchmark.cc.

47 : file_(nullptr), entry_(0) {}
unsigned int entry_

◆ ~PFJetBenchmark()

PFJetBenchmark::~PFJetBenchmark ( )
virtual

Definition at line 49 of file PFJetBenchmark.cc.

References file_.

49  {
50  if (file_)
51  file_->Close();
52 }

Member Function Documentation

◆ gettrue()

void PFJetBenchmark::gettrue ( const reco::GenJet truth,
double &  true_ChargedHadEnergy,
double &  true_NeutralHadEnergy,
double &  true_NeutralEmEnergy 
)

Definition at line 718 of file PFJetBenchmark.cc.

References funct::abs(), MillePedeFileConverter_cfg::e, reco::LeafCandidate::energy(), reco::GenJet::getGenConstituents(), mps_fire::i, and reco::LeafCandidate::pdgId().

Referenced by process().

721  {
722  std::vector<const GenParticle*> mcparts = truth->getGenConstituents();
723  true_NeutralEmEnergy = 0.;
724  true_ChargedHadEnergy = 0.;
725  true_NeutralHadEnergy = 0.;
726  // for each MC particle in turn
727  for (unsigned i = 0; i < mcparts.size(); i++) {
728  const GenParticle* mcpart = mcparts[i];
729  int PDG = std::abs(mcpart->pdgId());
730  double e = mcpart->energy();
731  switch (PDG) { // start PDG switch
732  case 22: // photon
733  true_NeutralEmEnergy += e;
734  break;
735  case 211: // pi
736  case 321: // K
737  case 2212: // p
738  case 11: //electrons (until recognised)
739  true_ChargedHadEnergy += e;
740  break;
741  case 310: // K_S0
742  case 130: // K_L0
743  case 3122: // Lambda0
744  case 2112: // n0
745  true_NeutralHadEnergy += e;
746  default:
747  break;
748  } // end PDG switch
749  } // end loop on constituents.
750 }
int pdgId() const final
PDG identifier.
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
virtual std::vector< const GenParticle * > getGenConstituents() const
get all constituents
Definition: GenJet.cc:51
double energy() const final
energy

◆ printGenJet()

void PFJetBenchmark::printGenJet ( const reco::GenJet truth)

Definition at line 774 of file PFJetBenchmark.cc.

References gather_cfg::cout, reco::LeafCandidate::eta(), reco::GenJet::getGenConstituents(), mps_fire::i, reco::LeafCandidate::p(), reco::LeafCandidate::pdgId(), reco::LeafCandidate::phi(), reco::LeafCandidate::pt(), reco::LeafCandidate::px(), reco::LeafCandidate::py(), and reco::LeafCandidate::pz().

Referenced by process().

774  {
775  std::vector<const GenParticle*> mcparts = truth->getGenConstituents();
776  cout << "GenJet p/px/py/pz/pt: " << truth->p() << '/' << truth->px() << '/' << truth->py() << '/' << truth->pz()
777  << '/' << truth->pt() << endl
778  << " eta/phi: " << truth->eta() << '/' << truth->phi() << endl
779  << " # of constituents: " << mcparts.size() << endl;
780  cout << " constituents:" << endl;
781  for (unsigned i = 0; i < mcparts.size(); i++) {
782  const GenParticle* mcpart = mcparts[i];
783  cout << " #" << i << " PDG code:" << mcpart->pdgId() << ", p/pt/eta/phi: " << mcpart->p() << '/'
784  << mcpart->pt() << '/' << mcpart->eta() << '/' << mcpart->phi() << endl;
785  }
786 }
double pz() const final
z coordinate of momentum vector
double pt() const final
transverse momentum
int pdgId() const final
PDG identifier.
double px() const final
x coordinate of momentum vector
double p() const final
magnitude of momentum vector
double py() const final
y coordinate of momentum vector
virtual std::vector< const GenParticle * > getGenConstituents() const
get all constituents
Definition: GenJet.cc:51
double phi() const final
momentum azimuthal angle
double eta() const final
momentum pseudorapidity

◆ printPFJet()

void PFJetBenchmark::printPFJet ( const reco::PFJet pfj)

Definition at line 752 of file PFJetBenchmark.cc.

References reco::PFJet::chargedEmEnergy(), reco::PFJet::chargedHadronEnergy(), reco::PFJet::chargedMuEnergy(), reco::PFJet::chargedMultiplicity(), gather_cfg::cout, reco::LeafCandidate::eta(), alignBH_cfg::fixed, reco::PFJet::neutralEmEnergy(), reco::PFJet::neutralHadronEnergy(), reco::PFJet::neutralMultiplicity(), reco::LeafCandidate::p(), reco::LeafCandidate::phi(), reco::PFJet::print(), reco::LeafCandidate::pt(), reco::LeafCandidate::px(), reco::LeafCandidate::py(), and reco::LeafCandidate::pz().

Referenced by process().

752  {
753  cout << setiosflags(ios::right);
754  cout << setiosflags(ios::fixed);
755  cout << setprecision(3);
756 
757  cout << "PFJet p/px/py/pz/pt: " << pfj->p() << "/" << pfj->px() << "/" << pfj->py() << "/" << pfj->pz() << "/"
758  << pfj->pt() << endl
759  << " eta/phi: " << pfj->eta() << "/" << pfj->phi() << endl
760  << " PFJet specific:" << std::endl
761  << " charged/neutral hadrons energy: " << pfj->chargedHadronEnergy() << '/' << pfj->neutralHadronEnergy()
762  << endl
763  << " charged/neutral em energy: " << pfj->chargedEmEnergy() << '/' << pfj->neutralEmEnergy() << endl
764  << " charged muon energy: " << pfj->chargedMuEnergy() << '/' << endl
765  << " charged/neutral multiplicity: " << pfj->chargedMultiplicity() << '/' << pfj->neutralMultiplicity()
766  << endl;
767 
768  // And print the constituents
769  std::cout << pfj->print() << std::endl;
770 
771  cout << resetiosflags(ios::right | ios::fixed);
772 }
double pz() const final
z coordinate of momentum vector
float neutralHadronEnergy() const
neutralHadronEnergy
Definition: PFJet.h:99
double pt() const final
transverse momentum
int chargedMultiplicity() const
chargedMultiplicity
Definition: PFJet.h:152
float chargedEmEnergy() const
chargedEmEnergy
Definition: PFJet.h:139
std::string print() const override
Print object in details.
Definition: PFJet.cc:67
float neutralEmEnergy() const
neutralEmEnergy
Definition: PFJet.h:147
int neutralMultiplicity() const
neutralMultiplicity
Definition: PFJet.h:154
double px() const final
x coordinate of momentum vector
double p() const final
magnitude of momentum vector
double py() const final
y coordinate of momentum vector
float chargedMuEnergy() const
chargedMuEnergy
Definition: PFJet.h:143
float chargedHadronEnergy() const
chargedHadronEnergy
Definition: PFJet.h:95
double phi() const final
momentum azimuthal angle
double eta() const final
momentum pseudorapidity

◆ process()

void PFJetBenchmark::process ( const reco::PFJetCollection pfJets,
const reco::GenJetCollection genJets 
)

Definition at line 232 of file PFJetBenchmark.cc.

References funct::abs(), algo_, Barrel, reco::PFJet::chargedHadronEnergy(), reco::PFJet::chargedMultiplicity(), gather_cfg::cout, debug_, PFBenchmarkAlgo::deltaR(), PbPb_ZMuSkimMuonDPG_cff::deltaR, deltaRMax_, entry_, reco::LeafCandidate::eta(), L1CaloJetHTTProducer_cfi::genJets, reco::PFJet::getPFConstituents(), gettrue(), hBDEtavsPt, hBDPhivsPt, hBNCH, hBNCH0vsPt, hBNCH1vsPt, hBNCH2vsPt, hBNCH3vsPt, hBNCH4vsPt, hBNCH5vsPt, hBNCH6vsPt, hBNCH7vsPt, hBNCHvsPt, hBRCHE, hBRCHEvsPt, hBRHCALvsP, hBRHONLvsP, hBRNEE, hBRNEEvsPt, hBRneut, hBRNEUTvsP, hBRneutvsPt, hBRNHE, hBRNHEvsPt, hBRNONLvsP, hBRPt, hBRPt100_150, hBRPt1250_2000, hBRPt150_200, hBRPt2000_5000, hBRPt200_250, hBRPt20_40, hBRPt250_300, hBRPt300_400, hBRPt400_500, hBRPt40_60, hBRPt500_750, hBRPt60_80, hBRPt750_1250, hBRPt80_100, hBRPtvsPt, hDEtavsEta, hDPhivsEta, hEDEtavsPt, hEDPhivsPt, hENCH, hENCH0vsPt, hENCH1vsPt, hENCH2vsPt, hENCH3vsPt, hENCH4vsPt, hENCH5vsPt, hENCH6vsPt, hENCH7vsPt, hENCHvsPt, hERCHE, hERCHEvsPt, hERHCALvsP, hERHONLvsP, hERNEE, hERNEEvsPt, hERneut, hERNEUTvsP, hERneutvsPt, hERNHE, hERNHEvsPt, hERNONLvsP, hERPt, hERPt100_150, hERPt1250_2000, hERPt150_200, hERPt2000_5000, hERPt200_250, hERPt20_40, hERPt250_300, hERPt300_400, hERPt400_500, hERPt40_60, hERPt500_750, hERPt60_80, hERPt750_1250, hERPt80_100, hERPtvsPt, hFDEtavsPt, hFDPhivsPt, hFRCHE, hFRCHEvsPt, hFRHCALvsP, hFRHONLvsP, hFRNEE, hFRNEEvsPt, hFRneut, hFRNEUTvsP, hFRneutvsPt, hFRNHE, hFRNHEvsPt, hFRNONLvsP, hFRPt, hFRPt100_150, hFRPt1250_2000, hFRPt150_200, hFRPt2000_5000, hFRPt200_250, hFRPt20_40, hFRPt250_300, hFRPt300_400, hFRPt400_500, hFRPt40_60, hFRPt500_750, hFRPt60_80, hFRPt750_1250, hFRPt80_100, hFRPtvsPt, hjetsEta, hjetsPt, hNCH0vsEta, hNCH1vsEta, hNCH2vsEta, hNCH3vsEta, hNCH4vsEta, hNCH5vsEta, hNCH6vsEta, hNCH7vsEta, hNCHvsEta, hNjets, hRCHEvsEta, hRHCALvsEta, hRHONLvsEta, hRNeutvsEta, hRNEUTvsEta, hRNONLvsEta, hRPtvsEta, mps_fire::i, edm::Ref< C, T, F >::isNull(), dqmiolumiharvest::j, PFBenchmarkAlgo::matchByDeltaR(), maxEta_cut, reco::PFJet::neutralEmEnergy(), reco::PFJet::neutralHadronEnergy(), onlyTwoJets_, reco::LeafCandidate::p(), pfJetBenchmark_cfi::pfJets, reco::LeafCandidate::phi(), plotAgainstReco_, printGenJet(), printPFJet(), DiDispStaMuonMonitor_cfi::pt, reco::LeafCandidate::pt(), recPt_cut, resChargedHadEnergyMax_, resNeutralEmEnergyMax_, resNeutralHadEnergyMax_, and resPtMax_.

Referenced by PFJetBenchmarkAnalyzer::analyze().

232  {
233  // loop over reco pf jets
234  resPtMax_ = 0.;
238  int NPFJets = 0;
239 
240  for (unsigned i = 0; i < pfJets.size(); i++) {
241  // Count the number of jets with a larger energy
242  unsigned highJets = 0;
243  for (unsigned j = 0; j < pfJets.size(); j++) {
244  if (j != i && pfJets[j].pt() > pfJets[i].pt())
245  highJets++;
246  }
247  if (onlyTwoJets_ && highJets > 1)
248  continue;
249 
250  const reco::PFJet& pfj = pfJets[i];
251  double rec_pt = pfj.pt();
252  double rec_eta = pfj.eta();
253  double rec_phi = pfj.phi();
254 
255  // skip PFjets with pt < recPt_cut GeV
256  if (rec_pt < recPt_cut and recPt_cut != -1.)
257  continue;
258  // skip PFjets with eta > maxEta_cut
259  if (fabs(rec_eta) > maxEta_cut and maxEta_cut != -1.)
260  continue;
261 
262  NPFJets++;
263 
264  // fill inclusive PFjet distribution pt > 20 GeV
265  hNjets->Fill(NPFJets);
266  hjetsPt->Fill(rec_pt);
267  hjetsEta->Fill(rec_eta);
268 
269  // separate Barrel PFJets from Endcap PFJets
270  bool Barrel = false;
271  bool Endcap = false;
272  bool Forward = false;
273  if (std::abs(rec_eta) < 1.4)
274  Barrel = true;
275  if (std::abs(rec_eta) > 1.6 && std::abs(rec_eta) < 2.4)
276  Endcap = true;
277  if (std::abs(rec_eta) > 2.5 && std::abs(rec_eta) < 2.9)
278  Forward = true;
279  if (std::abs(rec_eta) > 3.1 && std::abs(rec_eta) < 4.7)
280  Forward = true;
281 
282  // do only barrel for now
283  // if(!Barrel) continue;
284 
285  // look for the closets gen Jet : truth
286  const GenJet* truth = algo_->matchByDeltaR(&pfj, &genJets);
287  if (!truth)
288  continue;
289  double deltaR = algo_->deltaR(&pfj, truth);
290  // check deltaR is small enough
291  if (deltaR < deltaRMax_ || (abs(rec_eta) > 2.5 && deltaR < 0.2) ||
292  deltaRMax_ == -1.0) { //start case deltaR < deltaRMax
293 
294  // generate histograms comparing the reco and truth candidate (truth = closest in delta-R)
295  // get the quantities to place on the denominator and/or divide by
296  double pt_denom;
297  double true_E = truth->p();
298  double true_pt = truth->pt();
299  double true_eta = truth->eta();
300  double true_phi = truth->phi();
301 
302  if (plotAgainstReco_) {
303  pt_denom = rec_pt;
304  } else {
305  pt_denom = true_pt;
306  }
307  // get true specific quantities
308  double true_ChargedHadEnergy;
309  double true_NeutralHadEnergy;
310  double true_NeutralEmEnergy;
311  gettrue(truth, true_ChargedHadEnergy, true_NeutralHadEnergy, true_NeutralEmEnergy);
312  double true_NeutralEnergy = true_NeutralHadEnergy + true_NeutralEmEnergy;
313  double rec_ChargedHadEnergy = pfj.chargedHadronEnergy();
314  double rec_NeutralHadEnergy = pfj.neutralHadronEnergy();
315  double rec_NeutralEmEnergy = pfj.neutralEmEnergy();
316  double rec_NeutralEnergy = rec_NeutralHadEnergy + rec_NeutralEmEnergy;
317  double rec_ChargedMultiplicity = pfj.chargedMultiplicity();
318  std::vector<PFCandidatePtr> constituents = pfj.getPFConstituents();
319  std::vector<unsigned int> chMult(9, static_cast<unsigned int>(0));
320  for (unsigned ic = 0; ic < constituents.size(); ++ic) {
321  if (constituents[ic]->particleId() > 3)
322  continue;
323  reco::TrackRef trackRef = constituents[ic]->trackRef();
324  if (trackRef.isNull()) {
325  //std::cout << "Warning in entry " << entry_
326  // << " : a track with Id " << constituents[ic]->particleId()
327  // << " has no track ref.." << std::endl;
328  continue;
329  }
330  unsigned int iter = trackRef->algo() > 6 ? 6 : trackRef->algo();
331  ++(chMult[iter]);
332  }
333 
334  bool plot1 = false;
335  bool plot2 = false;
336  bool plot3 = false;
337  bool plot4 = false;
338  bool plot5 = false;
339  bool plot6 = false;
340  bool plot7 = false;
341  double cut1 = 0.0001;
342  double cut2 = 0.0001;
343  double cut3 = 0.0001;
344  double cut4 = 0.0001;
345  double cut5 = 0.0001;
346  double cut6 = 0.0001;
347  double cut7 = 0.0001;
348  double resPt = 0.;
349  double resChargedHadEnergy = 0.;
350  double resNeutralHadEnergy = 0.;
351  double resNeutralEmEnergy = 0.;
352  double resNeutralEnergy = 0.;
353 
354  double resHCALEnergy = 0.;
355  double resNEUTEnergy = 0.;
356  if (rec_NeutralHadEnergy > cut6 && rec_ChargedHadEnergy < cut1) {
357  double true_NEUTEnergy = true_NeutralHadEnergy + true_NeutralEmEnergy;
358  double true_HCALEnergy = true_NEUTEnergy - rec_NeutralEmEnergy;
359  double rec_NEUTEnergy = rec_NeutralHadEnergy + rec_NeutralEmEnergy;
360  double rec_HCALEnergy = rec_NeutralHadEnergy;
361  resHCALEnergy = (rec_HCALEnergy - true_HCALEnergy) / rec_HCALEnergy;
362  resNEUTEnergy = (rec_NEUTEnergy - true_NEUTEnergy) / rec_NEUTEnergy;
363  if (rec_NeutralEmEnergy > cut7) {
364  plot6 = true;
365  } else {
366  plot7 = true;
367  }
368  }
369 
370  // get relative delta quantities (protect against division by zero!)
371  if (true_pt > 0.0001) {
372  resPt = (rec_pt - true_pt) / true_pt;
373  plot1 = true;
374  }
375  if (true_ChargedHadEnergy > cut1) {
376  resChargedHadEnergy = (rec_ChargedHadEnergy - true_ChargedHadEnergy) / true_ChargedHadEnergy;
377  plot2 = true;
378  }
379  if (true_NeutralHadEnergy > cut2) {
380  resNeutralHadEnergy = (rec_NeutralHadEnergy - true_NeutralHadEnergy) / true_NeutralHadEnergy;
381  plot3 = true;
382  } else if (rec_NeutralHadEnergy > cut3) {
383  resNeutralHadEnergy = (rec_NeutralHadEnergy - true_NeutralHadEnergy) / rec_NeutralHadEnergy;
384  plot3 = true;
385  }
386  if (true_NeutralEmEnergy > cut4) {
387  resNeutralEmEnergy = (rec_NeutralEmEnergy - true_NeutralEmEnergy) / true_NeutralEmEnergy;
388  plot4 = true;
389  }
390  if (true_NeutralEnergy > cut5) {
391  resNeutralEnergy = (rec_NeutralEnergy - true_NeutralEnergy) / true_NeutralEnergy;
392  plot5 = true;
393  }
394 
395  //double deltaEta = algo_->deltaEta(&pfj, truth);
396  //double deltaPhi = algo_->deltaPhi(&pfj, truth);
397 
398  // Print outliers for further debugging
399  if ((resPt > 0.2 && true_pt > 100.) || (resPt < -0.5 && true_pt > 100.)) {
400  //if ( ( true_pt > 50. &&
401  // ( ( truth->eta()>3.0 && rec_eta-truth->eta() < -0.1 ) ||
402  // ( truth->eta()<-3.0 && rec_eta-truth->eta() > 0.1 ) ))) {
403  std::cout << "Entry " << entry_ << " resPt = " << resPt << " resCharged " << resChargedHadEnergy
404  << " resNeutralHad " << resNeutralHadEnergy << " resNeutralEm " << resNeutralEmEnergy
405  << " pT (T/R) " << true_pt << "/" << rec_pt << " Eta (T/R) " << truth->eta() << "/" << rec_eta
406  << " Phi (T/R) " << truth->phi() << "/" << rec_phi << std::endl;
407 
408  // check overlapping PF jets
409  const reco::PFJet* pfoj = nullptr;
410  double dRo = 1E9;
411  for (unsigned j = 0; j < pfJets.size(); j++) {
412  const reco::PFJet& pfo = pfJets[j];
413  if (j != i && algo_->deltaR(&pfj, &pfo) < dRo && pfo.pt() > 0.25 * pfj.pt()) {
414  dRo = algo_->deltaR(&pfj, &pfo);
415  pfoj = &pfo;
416  }
417  }
418 
419  // Check overlapping Gen Jet
420  math::XYZTLorentzVector overlappinGenJet(0., 0., 0., 0.);
421  const reco::GenJet* genoj = nullptr;
422  double dRgo = 1E9;
423  for (unsigned j = 0; j < genJets.size(); j++) {
424  const reco::GenJet* gjo = &(genJets[j]);
425  if (gjo != truth && algo_->deltaR(truth, gjo) < dRgo && gjo->pt() > 0.25 * truth->pt()) {
426  dRgo = algo_->deltaR(truth, gjo);
427  genoj = gjo;
428  }
429  }
430 
431  if (dRo < 0.8 && dRgo < 0.8 && algo_->deltaR(genoj, pfoj) < 2. * deltaRMax_)
432  std::cout << "Excess probably due to overlapping jets (DR = " << algo_->deltaR(genoj, pfoj) << "),"
433  << " at DeltaR(T/R) = " << dRgo << "/" << dRo << " with pT(T/R) " << genoj->pt() << "/"
434  << pfoj->pt() << " and Eta (T/R) " << genoj->eta() << "/" << pfoj->eta() << " and Phi (T/R) "
435  << genoj->phi() << "/" << pfoj->phi() << std::endl;
436  }
437 
438  if (std::abs(resPt) > std::abs(resPtMax_))
439  resPtMax_ = resPt;
440  if (std::abs(resChargedHadEnergy) > std::abs(resChargedHadEnergyMax_))
441  resChargedHadEnergyMax_ = resChargedHadEnergy;
442  if (std::abs(resNeutralHadEnergy) > std::abs(resNeutralHadEnergyMax_))
443  resNeutralHadEnergyMax_ = resNeutralHadEnergy;
444  if (std::abs(resNeutralEmEnergy) > std::abs(resNeutralEmEnergyMax_))
445  resNeutralEmEnergyMax_ = resNeutralEmEnergy;
446  if (debug_) {
447  cout << i << " =========PFJet Pt " << rec_pt << " eta " << rec_eta << " phi " << rec_phi
448  << " Charged Had Energy " << rec_ChargedHadEnergy << " Neutral Had Energy " << rec_NeutralHadEnergy
449  << " Neutral elm Energy " << rec_NeutralEmEnergy << endl;
450  cout << " matching Gen Jet Pt " << true_pt << " eta " << truth->eta() << " phi " << truth->phi()
451  << " Charged Had Energy " << true_ChargedHadEnergy << " Neutral Had Energy " << true_NeutralHadEnergy
452  << " Neutral elm Energy " << true_NeutralEmEnergy << endl;
453  printPFJet(&pfj);
454  // cout<<pfj.print()<<endl;
455  printGenJet(truth);
456  //cout <<truth->print()<<endl;
457 
458  cout << "==============deltaR " << deltaR << " resPt " << resPt << " resChargedHadEnergy "
459  << resChargedHadEnergy << " resNeutralHadEnergy " << resNeutralHadEnergy << " resNeutralEmEnergy "
460  << resNeutralEmEnergy << endl;
461  }
462 
463  if (plot1) {
464  if (rec_eta > 0.)
465  hDEtavsEta->Fill(true_eta, rec_eta - true_eta);
466  else
467  hDEtavsEta->Fill(true_eta, -rec_eta + true_eta);
468  hDPhivsEta->Fill(true_eta, rec_phi - true_phi);
469 
470  hRPtvsEta->Fill(true_eta, resPt);
471  hNCHvsEta->Fill(true_eta, rec_ChargedMultiplicity);
472  hNCH0vsEta->Fill(true_eta, chMult[0]);
473  hNCH1vsEta->Fill(true_eta, chMult[1]);
474  hNCH2vsEta->Fill(true_eta, chMult[2]);
475  hNCH3vsEta->Fill(true_eta, chMult[3]);
476  hNCH4vsEta->Fill(true_eta, chMult[4]);
477  hNCH5vsEta->Fill(true_eta, chMult[5]);
478  hNCH6vsEta->Fill(true_eta, chMult[6]);
479  hNCH7vsEta->Fill(true_eta, chMult[7]);
480  }
481  if (plot2)
482  hRCHEvsEta->Fill(true_eta, resChargedHadEnergy);
483  if (plot5)
484  hRNeutvsEta->Fill(true_eta, resNeutralEnergy);
485  if (plot6) {
486  hRHCALvsEta->Fill(true_eta, resHCALEnergy);
487  hRNEUTvsEta->Fill(true_eta, resNEUTEnergy);
488  }
489  if (plot7) {
490  hRHONLvsEta->Fill(true_eta, resHCALEnergy);
491  hRNONLvsEta->Fill(true_eta, resNEUTEnergy);
492  }
493 
494  // fill histograms for relative delta quantitites of matched jets
495  // delta Pt or E quantities for Barrel
496  if (Barrel) {
497  if (plot1) {
498  hBRPt->Fill(resPt);
499  if (pt_denom > 20. && pt_denom < 40.)
500  hBRPt20_40->Fill(resPt);
501  if (pt_denom > 40. && pt_denom < 60.)
502  hBRPt40_60->Fill(resPt);
503  if (pt_denom > 60. && pt_denom < 80.)
504  hBRPt60_80->Fill(resPt);
505  if (pt_denom > 80. && pt_denom < 100.)
506  hBRPt80_100->Fill(resPt);
507  if (pt_denom > 100. && pt_denom < 150.)
508  hBRPt100_150->Fill(resPt);
509  if (pt_denom > 150. && pt_denom < 200.)
510  hBRPt150_200->Fill(resPt);
511  if (pt_denom > 200. && pt_denom < 250.)
512  hBRPt200_250->Fill(resPt);
513  if (pt_denom > 250. && pt_denom < 300.)
514  hBRPt250_300->Fill(resPt);
515  if (pt_denom > 300. && pt_denom < 400.)
516  hBRPt300_400->Fill(resPt);
517  if (pt_denom > 400. && pt_denom < 500.)
518  hBRPt400_500->Fill(resPt);
519  if (pt_denom > 500. && pt_denom < 750.)
520  hBRPt500_750->Fill(resPt);
521  if (pt_denom > 750. && pt_denom < 1250.)
522  hBRPt750_1250->Fill(resPt);
523  if (pt_denom > 1250. && pt_denom < 2000.)
524  hBRPt1250_2000->Fill(resPt);
525  if (pt_denom > 2000. && pt_denom < 5000.)
526  hBRPt2000_5000->Fill(resPt);
527  hBNCH->Fill(rec_ChargedMultiplicity);
528  hBNCH0vsPt->Fill(pt_denom, chMult[0]);
529  hBNCH1vsPt->Fill(pt_denom, chMult[1]);
530  hBNCH2vsPt->Fill(pt_denom, chMult[2]);
531  hBNCH3vsPt->Fill(pt_denom, chMult[3]);
532  hBNCH4vsPt->Fill(pt_denom, chMult[4]);
533  hBNCH5vsPt->Fill(pt_denom, chMult[5]);
534  hBNCH6vsPt->Fill(pt_denom, chMult[6]);
535  hBNCH7vsPt->Fill(pt_denom, chMult[7]);
536  hBNCHvsPt->Fill(pt_denom, rec_ChargedMultiplicity);
537  if (rec_eta > 0.)
538  hBDEtavsPt->Fill(pt_denom, rec_eta - true_eta);
539  else
540  hBDEtavsPt->Fill(pt_denom, -rec_eta + true_eta);
541  hBDPhivsPt->Fill(pt_denom, rec_phi - true_phi);
542  }
543  if (plot2)
544  hBRCHE->Fill(resChargedHadEnergy);
545  if (plot3)
546  hBRNHE->Fill(resNeutralHadEnergy);
547  if (plot4)
548  hBRNEE->Fill(resNeutralEmEnergy);
549  if (plot5)
550  hBRneut->Fill(resNeutralEnergy);
551  if (plot1)
552  hBRPtvsPt->Fill(pt_denom, resPt);
553  if (plot2)
554  hBRCHEvsPt->Fill(pt_denom, resChargedHadEnergy);
555  if (plot3)
556  hBRNHEvsPt->Fill(pt_denom, resNeutralHadEnergy);
557  if (plot4)
558  hBRNEEvsPt->Fill(pt_denom, resNeutralEmEnergy);
559  if (plot5)
560  hBRneutvsPt->Fill(pt_denom, resNeutralEnergy);
561  if (plot6) {
562  hBRHCALvsP->Fill(true_E, resHCALEnergy);
563  hBRNEUTvsP->Fill(true_E, resNEUTEnergy);
564  }
565  if (plot7) {
566  hBRHONLvsP->Fill(true_E, resHCALEnergy);
567  hBRNONLvsP->Fill(true_E, resNEUTEnergy);
568  }
569  }
570  // delta Pt or E quantities for Endcap
571  if (Endcap) {
572  if (plot1) {
573  hERPt->Fill(resPt);
574  if (pt_denom > 20. && pt_denom < 40.)
575  hERPt20_40->Fill(resPt);
576  if (pt_denom > 40. && pt_denom < 60.)
577  hERPt40_60->Fill(resPt);
578  if (pt_denom > 60. && pt_denom < 80.)
579  hERPt60_80->Fill(resPt);
580  if (pt_denom > 80. && pt_denom < 100.)
581  hERPt80_100->Fill(resPt);
582  if (pt_denom > 100. && pt_denom < 150.)
583  hERPt100_150->Fill(resPt);
584  if (pt_denom > 150. && pt_denom < 200.)
585  hERPt150_200->Fill(resPt);
586  if (pt_denom > 200. && pt_denom < 250.)
587  hERPt200_250->Fill(resPt);
588  if (pt_denom > 250. && pt_denom < 300.)
589  hERPt250_300->Fill(resPt);
590  if (pt_denom > 300. && pt_denom < 400.)
591  hERPt300_400->Fill(resPt);
592  if (pt_denom > 400. && pt_denom < 500.)
593  hERPt400_500->Fill(resPt);
594  if (pt_denom > 500. && pt_denom < 750.)
595  hERPt500_750->Fill(resPt);
596  if (pt_denom > 750. && pt_denom < 1250.)
597  hERPt750_1250->Fill(resPt);
598  if (pt_denom > 1250. && pt_denom < 2000.)
599  hERPt1250_2000->Fill(resPt);
600  if (pt_denom > 2000. && pt_denom < 5000.)
601  hERPt2000_5000->Fill(resPt);
602  hENCH->Fill(rec_ChargedMultiplicity);
603  hENCHvsPt->Fill(pt_denom, rec_ChargedMultiplicity);
604  hENCH0vsPt->Fill(pt_denom, chMult[0]);
605  hENCH1vsPt->Fill(pt_denom, chMult[1]);
606  hENCH2vsPt->Fill(pt_denom, chMult[2]);
607  hENCH3vsPt->Fill(pt_denom, chMult[3]);
608  hENCH4vsPt->Fill(pt_denom, chMult[4]);
609  hENCH5vsPt->Fill(pt_denom, chMult[5]);
610  hENCH6vsPt->Fill(pt_denom, chMult[6]);
611  hENCH7vsPt->Fill(pt_denom, chMult[7]);
612  if (rec_eta > 0.)
613  hEDEtavsPt->Fill(pt_denom, rec_eta - true_eta);
614  else
615  hEDEtavsPt->Fill(pt_denom, -rec_eta + true_eta);
616  hEDPhivsPt->Fill(pt_denom, rec_phi - true_phi);
617  }
618  if (plot2)
619  hERCHE->Fill(resChargedHadEnergy);
620  if (plot3)
621  hERNHE->Fill(resNeutralHadEnergy);
622  if (plot4)
623  hERNEE->Fill(resNeutralEmEnergy);
624  if (plot5)
625  hERneut->Fill(resNeutralEnergy);
626  if (plot1)
627  hERPtvsPt->Fill(pt_denom, resPt);
628  if (plot2)
629  hERCHEvsPt->Fill(pt_denom, resChargedHadEnergy);
630  if (plot3)
631  hERNHEvsPt->Fill(pt_denom, resNeutralHadEnergy);
632  if (plot4)
633  hERNEEvsPt->Fill(pt_denom, resNeutralEmEnergy);
634  if (plot5)
635  hERneutvsPt->Fill(pt_denom, resNeutralEnergy);
636  if (plot6) {
637  hERHCALvsP->Fill(true_E, resHCALEnergy);
638  hERNEUTvsP->Fill(true_E, resNEUTEnergy);
639  }
640  if (plot7) {
641  hERHONLvsP->Fill(true_E, resHCALEnergy);
642  hERNONLvsP->Fill(true_E, resNEUTEnergy);
643  }
644  }
645  // delta Pt or E quantities for Forward
646  if (Forward) {
647  if (plot1) {
648  hFRPt->Fill(resPt);
649  if (pt_denom > 20. && pt_denom < 40.)
650  hFRPt20_40->Fill(resPt);
651  if (pt_denom > 40. && pt_denom < 60.)
652  hFRPt40_60->Fill(resPt);
653  if (pt_denom > 60. && pt_denom < 80.)
654  hFRPt60_80->Fill(resPt);
655  if (pt_denom > 80. && pt_denom < 100.)
656  hFRPt80_100->Fill(resPt);
657  if (pt_denom > 100. && pt_denom < 150.)
658  hFRPt100_150->Fill(resPt);
659  if (pt_denom > 150. && pt_denom < 200.)
660  hFRPt150_200->Fill(resPt);
661  if (pt_denom > 200. && pt_denom < 250.)
662  hFRPt200_250->Fill(resPt);
663  if (pt_denom > 250. && pt_denom < 300.)
664  hFRPt250_300->Fill(resPt);
665  if (pt_denom > 300. && pt_denom < 400.)
666  hFRPt300_400->Fill(resPt);
667  if (pt_denom > 400. && pt_denom < 500.)
668  hFRPt400_500->Fill(resPt);
669  if (pt_denom > 500. && pt_denom < 750.)
670  hFRPt500_750->Fill(resPt);
671  if (pt_denom > 750. && pt_denom < 1250.)
672  hFRPt750_1250->Fill(resPt);
673  if (pt_denom > 1250. && pt_denom < 2000.)
674  hFRPt1250_2000->Fill(resPt);
675  if (pt_denom > 2000. && pt_denom < 5000.)
676  hFRPt2000_5000->Fill(resPt);
677  if (rec_eta > 0.)
678  hFDEtavsPt->Fill(pt_denom, rec_eta - true_eta);
679  else
680  hFDEtavsPt->Fill(pt_denom, -rec_eta + true_eta);
681  hFDPhivsPt->Fill(pt_denom, rec_phi - true_phi);
682  }
683  if (plot2)
684  hFRCHE->Fill(resChargedHadEnergy);
685  if (plot3)
686  hFRNHE->Fill(resNeutralHadEnergy);
687  if (plot4)
688  hFRNEE->Fill(resNeutralEmEnergy);
689  if (plot5)
690  hFRneut->Fill(resNeutralEnergy);
691  if (plot1)
692  hFRPtvsPt->Fill(pt_denom, resPt);
693  if (plot2)
694  hFRCHEvsPt->Fill(pt_denom, resChargedHadEnergy);
695  if (plot3)
696  hFRNHEvsPt->Fill(pt_denom, resNeutralHadEnergy);
697  if (plot4)
698  hFRNEEvsPt->Fill(pt_denom, resNeutralEmEnergy);
699  if (plot5)
700  hFRneutvsPt->Fill(pt_denom, resNeutralEnergy);
701  if (plot6) {
702  hFRHCALvsP->Fill(true_E, resHCALEnergy);
703  hFRNEUTvsP->Fill(true_E, resNEUTEnergy);
704  }
705  if (plot7) {
706  hFRHONLvsP->Fill(true_E, resHCALEnergy);
707  hFRNONLvsP->Fill(true_E, resNEUTEnergy);
708  }
709  }
710  } // end case deltaR < deltaRMax
711 
712  } // i loop on pf Jets
713 
714  // Increment counter
715  entry_++;
716 }
float neutralHadronEnergy() const
neutralHadronEnergy
Definition: PFJet.h:99
double pt() const final
transverse momentum
int chargedMultiplicity() const
chargedMultiplicity
Definition: PFJet.h:152
float neutralEmEnergy() const
neutralEmEnergy
Definition: PFJet.h:147
Jets made from PFObjects.
Definition: PFJet.h:20
unsigned int entry_
void gettrue(const reco::GenJet *truth, double &true_ChargedHadEnergy, double &true_NeutralHadEnergy, double &true_NeutralEmEnergy)
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
virtual std::vector< reco::PFCandidatePtr > getPFConstituents() const
get all constituents
Definition: PFJet.cc:41
double p() const final
magnitude of momentum vector
TH1F * hBRPt750_1250
static double deltaR(const T *, const U *)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
Jets made from MC generator particles.
Definition: GenJet.h:23
PFBenchmarkAlgo * algo_
bool isNull() const
Checks for null.
Definition: Ref.h:235
double resChargedHadEnergyMax_
static const Collection::value_type * matchByDeltaR(const T *, const Collection *)
double resNeutralHadEnergyMax_
void printPFJet(const reco::PFJet *)
float chargedHadronEnergy() const
chargedHadronEnergy
Definition: PFJet.h:95
double resNeutralEmEnergyMax_
double phi() const final
momentum azimuthal angle
void printGenJet(const reco::GenJet *)
double eta() const final
momentum pseudorapidity

◆ resChargedHadEnergyMax()

double PFJetBenchmark::resChargedHadEnergyMax ( ) const
inline

Definition at line 53 of file PFJetBenchmark.h.

References resChargedHadEnergyMax_.

53 { return resChargedHadEnergyMax_; };
double resChargedHadEnergyMax_

◆ resNeutralEmEnergyMax()

double PFJetBenchmark::resNeutralEmEnergyMax ( ) const
inline

Definition at line 55 of file PFJetBenchmark.h.

References resNeutralEmEnergyMax_.

55 { return resNeutralEmEnergyMax_; };
double resNeutralEmEnergyMax_

◆ resNeutralHadEnergyMax()

double PFJetBenchmark::resNeutralHadEnergyMax ( ) const
inline

Definition at line 54 of file PFJetBenchmark.h.

References resNeutralHadEnergyMax_.

54 { return resNeutralHadEnergyMax_; };
double resNeutralHadEnergyMax_

◆ resPtMax()

double PFJetBenchmark::resPtMax ( ) const
inline

Definition at line 52 of file PFJetBenchmark.h.

References resPtMax_.

52 { return resPtMax_; };

◆ setup()

void PFJetBenchmark::setup ( std::string  Filename,
bool  debug,
bool  plotAgainstReco = false,
bool  onlyTwoJets = true,
double  deltaRMax = 0.1,
std::string  benchmarkLabel_ = "ParticleFlow",
double  recPt = -1,
double  maxEta = -1,
DQMStore dbe_store = nullptr 
)

Definition at line 69 of file PFJetBenchmark.cc.

References benchmarkLabel_, BOOK1D, BOOK2D, gather_cfg::cout, dbe_, DBOOK1D, DBOOK2D, debug, debug_, deltaRMax, deltaRMax_, DSETAXES, ECAL, PVValHelper::eta, file_, maxEta, maxEta_cut, HLT_2022v12_cff::NCH, ECF_cff::Njets, onlyTwoJets, onlyTwoJets_, outputFile_, castor_dqm_sourceclient_file_cfg::path, phi, plotAgainstReco, plotAgainstReco_, PT, recPt, recPt_cut, SETAXES, and dqm::implementation::DQMStore::setCurrentFolder().

Referenced by PFJetBenchmarkAnalyzer::PFJetBenchmarkAnalyzer().

77  {
78  debug_ = debug;
82  outputFile_ = Filename;
83  recPt_cut = recPt;
85  file_ = nullptr;
86  dbe_ = dbe_store;
87  // print parameters
88  cout << "PFJetBenchmark Setup parameters ==============================================" << endl;
89  cout << "Filename to write histograms " << Filename << endl;
90  cout << "PFJetBenchmark debug " << debug_ << endl;
91  cout << "plotAgainstReco " << plotAgainstReco_ << endl;
92  cout << "onlyTwoJets " << onlyTwoJets_ << endl;
93  cout << "deltaRMax " << deltaRMax << endl;
94  cout << "benchmarkLabel " << benchmarkLabel_ << endl;
95  cout << "recPt_cut " << recPt_cut << endl;
96  cout << "maxEta_cut " << maxEta_cut << endl;
97 
98  // Book histogram
99 
100  // Establish DQM Store
101  string path = "PFTask/Benchmarks/" + benchmarkLabel_ + "/";
102  if (plotAgainstReco)
103  path += "Reco";
104  else
105  path += "Gen";
106  if (dbe_) {
108  } else {
109  file_ = new TFile(outputFile_.c_str(), "recreate");
110  // TTree * tr = new TTree("PFTast");
111  // tr->Branch("Benchmarks/ParticleFlow")
112  cout << "Info: DQM is not available to provide data storage service. Using TFile to save histograms. " << endl;
113  }
114  // Jets inclusive distributions (Pt > 20 or specified recPt GeV)
115  char cutString[35];
116  sprintf(cutString, "Jet multiplicity P_{T}>%4.1f GeV", recPt_cut);
117  BOOK1D(Njets, cutString, 50, 0, 50);
118 
119  BOOK1D(jetsPt, "Jets P_{T} Distribution", 100, 0, 500);
120 
121  sprintf(cutString, "Jets #eta Distribution |#eta|<%4.1f", maxEta_cut);
122  BOOK1D(jetsEta, cutString, 100, -5, 5);
123 
124  BOOK2D(RPtvsEta, "#DeltaP_{T}/P_{T} vs #eta", 200, -5., 5., 200, -1, 1);
125  BOOK2D(RNeutvsEta, "R_{Neutral} vs #eta", 200, -5., 5., 200, -1, 1);
126  BOOK2D(RNEUTvsEta, "R_{HCAL+ECAL} vs #eta", 200, -5., 5., 200, -1, 1);
127  BOOK2D(RNONLvsEta, "R_{HCAL+ECAL - Hcal Only} vs #eta", 200, -5., 5., 200, -1, 1);
128  BOOK2D(RHCALvsEta, "R_{HCAL} vs #eta", 200, -5., 5., 200, -1, 1);
129  BOOK2D(RHONLvsEta, "R_{HCAL only} vs #eta", 200, -5., 5., 200, -1, 1);
130  BOOK2D(RCHEvsEta, "R_{Charged} vs #eta", 200, -5., 5., 200, -1, 1);
131  BOOK2D(NCHvsEta, "N_{Charged} vs #eta", 200, -5., 5., 200, 0., 200.);
132  BOOK2D(NCH0vsEta, "N_{Charged} vs #eta, iter 0", 200, -5., 5., 200, 0., 200.);
133  BOOK2D(NCH1vsEta, "N_{Charged} vs #eta, iter 1", 200, -5., 5., 200, 0., 200.);
134  BOOK2D(NCH2vsEta, "N_{Charged} vs #eta, iter 2", 200, -5., 5., 200, 0., 200.);
135  BOOK2D(NCH3vsEta, "N_{Charged} vs #eta, iter 3", 200, -5., 5., 200, 0., 200.);
136  BOOK2D(NCH4vsEta, "N_{Charged} vs #eta, iter 4", 200, -5., 5., 200, 0., 200.);
137  BOOK2D(NCH5vsEta, "N_{Charged} vs #eta, iter 5", 200, -5., 5., 200, 0., 200.);
138  BOOK2D(NCH6vsEta, "N_{Charged} vs #eta, iter 6", 200, -5., 5., 200, 0., 200.);
139  // delta Pt or E quantities for Barrel
140  DBOOK1D(RPt, #DeltaP_{T} / P_{T}, 80, -1, 1);
141  DBOOK1D(RCHE, #DeltaE / E(charged had), 80, -2, 2);
142  DBOOK1D(RNHE, #DeltaE / E(neutral had), 80, -2, 2);
143  DBOOK1D(RNEE, #DeltaE / E(neutral em), 80, -2, 2);
144  DBOOK1D(Rneut, #DeltaE / E(neutral), 80, -2, 2);
145  DBOOK1D(NCH, #N_{charged}, 200, 0., 200.);
146  DBOOK2D(RPtvsPt, #DeltaP_{T} / P_{T} vs P_{T}, 250, 0, 500, 200, -1, 1); //used to be 50 bin for each in x-direction
147  DBOOK2D(RCHEvsPt, #DeltaE / E(charged had) vs P_{T}, 250, 0, 500, 120, -1, 2);
148  DBOOK2D(RNHEvsPt, #DeltaE / E(neutral had) vs P_{T}, 250, 0, 500, 120, -1, 2);
149  DBOOK2D(RNEEvsPt, #DeltaE / E(neutral em) vs P_{T}, 250, 0, 500, 120, -1, 2);
150  DBOOK2D(RneutvsPt, #DeltaE / E(neutral) vs P_{T}, 250, 0, 500, 120, -1, 2);
151  DBOOK2D(NCHvsPt, N_{charged} vs P_{T}, 250, 0, 500, 200, 0., 200.);
152  DBOOK2D(NCH0vsPt, N_{charged} vs P_{T} iter 0, 250, 0, 500, 200, 0., 200.);
153  DBOOK2D(NCH1vsPt, N_{charged} vs P_{T} iter 1, 250, 0, 500, 200, 0., 200.);
154  DBOOK2D(NCH2vsPt, N_{charged} vs P_{T} iter 2, 250, 0, 500, 200, 0., 200.);
155  DBOOK2D(NCH3vsPt, N_{charged} vs P_{T} iter 3, 250, 0, 500, 200, 0., 200.);
156  DBOOK2D(NCH4vsPt, N_{charged} vs P_{T} iter 4, 250, 0, 500, 200, 0., 200.);
157  DBOOK2D(NCH5vsPt, N_{charged} vs P_{T} iter 5, 250, 0, 500, 200, 0., 200.);
158  DBOOK2D(NCH6vsPt, N_{charged} vs P_{T} iter 6, 250, 0, 500, 200, 0., 200.);
159 
160  DBOOK2D(RNEUTvsP, #DeltaE / E(ECAL + HCAL) vs P, 250, 0, 1000, 150, -1.5, 1.5);
161  DBOOK2D(RNONLvsP, #DeltaE / E(ECAL + HCAL - only) vs P, 250, 0, 1000, 150, -1.5, 1.5);
162  DBOOK2D(RHCALvsP, #DeltaE / E(HCAL) vs P, 250, 0, 1000, 150, -1.5, 1.5);
163  DBOOK2D(RHONLvsP, #DeltaE / E(HCAL only) vs P, 250, 0, 1000, 150, -1.5, 1.5);
164  DBOOK1D(RPt20_40, #DeltaP_{T} / P_{T}, 80, -1, 1);
165  DBOOK1D(RPt40_60, #DeltaP_{T} / P_{T}, 80, -1, 1);
166  DBOOK1D(RPt60_80, #DeltaP_{T} / P_{T}, 80, -1, 1);
167  DBOOK1D(RPt80_100, #DeltaP_{T} / P_{T}, 80, -1, 1);
168  DBOOK1D(RPt100_150, #DeltaP_{T} / P_{T}, 80, -1, 1);
169  DBOOK1D(RPt150_200, #DeltaP_{T} / P_{T}, 80, -1, 1);
170  DBOOK1D(RPt200_250, #DeltaP_{T} / P_{T}, 80, -1, 1);
171  DBOOK1D(RPt250_300, #DeltaP_{T} / P_{T}, 80, -1, 1);
172  DBOOK1D(RPt300_400, #DeltaP_{T} / P_{T}, 160, -1, 1);
173  DBOOK1D(RPt400_500, #DeltaP_{T} / P_{T}, 160, -1, 1);
174  DBOOK1D(RPt500_750, #DeltaP_{T} / P_{T}, 160, -1, 1);
175  DBOOK1D(RPt750_1250, #DeltaP_{T} / P_{T}, 160, -1, 1);
176  DBOOK1D(RPt1250_2000, #DeltaP_{T} / P_{T}, 160, -1, 1);
177  DBOOK1D(RPt2000_5000, #DeltaP_{T} / P_{T}, 160, -1, 1);
178 
179  DBOOK2D(DEtavsPt, #Delta #eta vs P_{T}, 1000, 0, 2000, 500, -0.5, 0.5);
180  DBOOK2D(DPhivsPt, #Delta #phi vs P_{T}, 1000, 0, 2000, 500, -0.5, 0.5);
181  BOOK2D(DEtavsEta, "#Delta#eta vs P_{T}", 1000, -5., +5., 500, -0.5, 0.5);
182  BOOK2D(DPhivsEta, "#Delta#phi vs P_{T}", 1000, -5., +5., 500, -0.5, 0.5);
183 
184  // Set Axis Titles
185 
186  // Jets inclusive distributions (Pt > 20 GeV)
187  SETAXES(Njets, "", "Multiplicity");
188  SETAXES(jetsPt, PT, "Number of Events");
189  SETAXES(jetsEta, "#eta", "Number of Events");
190  SETAXES(RNeutvsEta, "#eta", "#DeltaE/E (Neutral)");
191  SETAXES(RNEUTvsEta, "#eta", "#DeltaE/E (ECAL+HCAL)");
192  SETAXES(RNONLvsEta, "#eta", "#DeltaE/E (ECAL+HCAL-only)");
193  SETAXES(RHCALvsEta, "#eta", "#DeltaE/E (HCAL)");
194  SETAXES(RHONLvsEta, "#eta", "#DeltaE/E (HCAL Only)");
195  SETAXES(RCHEvsEta, "#eta", "#DeltaE/E (Charged)");
196  SETAXES(RPtvsEta, "#eta", "#DeltaP_{T}/P_{T}");
197  SETAXES(DEtavsEta, "#eta", "#Delta#eta");
198  SETAXES(DPhivsEta, "#eta", "#Delta#phi");
199  // delta Pt or E quantities for Barrel and Endcap
200  DSETAXES(RPt, "#DeltaP_{T}/P_{T}", "Events");
201  DSETAXES(RPt20_40, "#DeltaP_{T}/P_{T}", "Events");
202  DSETAXES(RPt40_60, "#DeltaP_{T}/P_{T}", "Events");
203  DSETAXES(RPt60_80, "#DeltaP_{T}/P_{T}", "Events");
204  DSETAXES(RPt80_100, "#DeltaP_{T}/P_{T}", "Events");
205  DSETAXES(RPt100_150, "#DeltaP_{T}/P_{T}", "Events");
206  DSETAXES(RPt150_200, "#DeltaP_{T}/P_{T}", "Events");
207  DSETAXES(RPt200_250, "#DeltaP_{T}/P_{T}", "Events");
208  DSETAXES(RPt250_300, "#DeltaP_{T}/P_{T}", "Events");
209  DSETAXES(RPt300_400, "#DeltaP_{T}/P_{T}", "Events");
210  DSETAXES(RPt400_500, "#DeltaP_{T}/P_{T}", "Events");
211  DSETAXES(RPt500_750, "#DeltaP_{T}/P_{T}", "Events");
212  DSETAXES(RPt750_1250, "#DeltaP_{T}/P_{T}", "Events");
213  DSETAXES(RPt1250_2000, "#DeltaP_{T}/P_{T}", "Events");
214  DSETAXES(RPt2000_5000, "#DeltaP_{T}/P_{T}", "Events");
215  DSETAXES(RCHE, "#DeltaE/E(charged had)", "Events");
216  DSETAXES(RNHE, "#DeltaE/E(neutral had)", "Events");
217  DSETAXES(RNEE, "#DeltaE/E(neutral em)", "Events");
218  DSETAXES(Rneut, "#DeltaE/E(neutral)", "Events");
219  DSETAXES(RPtvsPt, PT, "#DeltaP_{T}/P_{T}");
220  DSETAXES(RCHEvsPt, PT, "#DeltaE/E(charged had)");
221  DSETAXES(RNHEvsPt, PT, "#DeltaE/E(neutral had)");
222  DSETAXES(RNEEvsPt, PT, "#DeltaE/E(neutral em)");
223  DSETAXES(RneutvsPt, PT, "#DeltaE/E(neutral)");
224  DSETAXES(RHCALvsP, P, "#DeltaE/E(HCAL)");
225  DSETAXES(RHONLvsP, P, "#DeltaE/E(HCAL-only)");
226  DSETAXES(RNEUTvsP, P, "#DeltaE/E(ECAL+HCAL)");
227  DSETAXES(RNONLvsP, P, "#DeltaE/E(ECAL+HCAL-only)");
228  DSETAXES(DEtavsPt, PT, "#Delta#eta");
229  DSETAXES(DPhivsPt, PT, "#Delta#phi");
230 }
#define BOOK1D(name, title, nbinsx, lowx, highx)
bool onlyTwoJets
#define PT
double deltaRMax
void setCurrentFolder(std::string const &fullpath) override
Definition: DQMStore.h:646
#define SETAXES(name, xtitle, ytitle)
double maxEta
DQMStore * dbe_
#define BOOK2D(name, title, nbinsx, lowx, highx, nbinsy, lowy, highy)
#define DBOOK2D(name, title, nbinsx, lowx, highx, nbinsy, lowy, highy)
std::string outputFile_
string benchmarkLabel_
Definition: HCAL.py:1
bool plotAgainstReco
#define debug
Definition: HDRShower.cc:19
std::pair< OmniClusterRef, TrackingParticleRef > P
double recPt
#define DSETAXES(name, xtitle, ytitle)
long double T
#define DBOOK1D(name, title, nbinsx, lowx, highx)

◆ write()

void PFJetBenchmark::write ( )

Definition at line 54 of file PFJetBenchmark.cc.

References gather_cfg::cout, dbe_, file_, outputFile_, and dqm::implementation::DQMStore::save().

Referenced by PFJetBenchmarkAnalyzer::endJob().

54  {
55  // Store the DAQ Histograms
56  if (!outputFile_.empty()) {
57  if (dbe_)
59  // use bare Root if no DQM (FWLite applications)
60  else if (file_) {
61  file_->Write(outputFile_.c_str());
62  cout << "Benchmark output written to file " << outputFile_.c_str() << endl;
63  file_->Close();
64  }
65  } else
66  cout << "No output file specified (" << outputFile_ << "). Results will not be saved!" << endl;
67 }
DQMStore * dbe_
std::string outputFile_
DQM_DEPRECATED void save(std::string const &filename, std::string const &path="")
Definition: DQMStore.cc:791

Member Data Documentation

◆ algo_

PFBenchmarkAlgo* PFJetBenchmark::algo_
protected

Definition at line 215 of file PFJetBenchmark.h.

Referenced by process().

◆ dbe_

DQMStore* PFJetBenchmark::dbe_
protected

Definition at line 227 of file PFJetBenchmark.h.

Referenced by setup(), and write().

◆ debug_

bool PFJetBenchmark::debug_
protected

Definition at line 216 of file PFJetBenchmark.h.

Referenced by process(), and setup().

◆ deltaRMax_

double PFJetBenchmark::deltaRMax_
protected

Definition at line 219 of file PFJetBenchmark.h.

Referenced by process(), and setup().

◆ entry_

unsigned int PFJetBenchmark::entry_
protected

Definition at line 226 of file PFJetBenchmark.h.

Referenced by process().

◆ file_

TFile* PFJetBenchmark::file_
private

Definition at line 60 of file PFJetBenchmark.h.

Referenced by setup(), write(), and ~PFJetBenchmark().

◆ hBDEtavsPt

TH2F* PFJetBenchmark::hBDEtavsPt
private

Definition at line 115 of file PFJetBenchmark.h.

Referenced by process().

◆ hBDPhivsPt

TH2F* PFJetBenchmark::hBDPhivsPt
private

Definition at line 116 of file PFJetBenchmark.h.

Referenced by process().

◆ hBNCH

TH1F* PFJetBenchmark::hBNCH
private

Definition at line 118 of file PFJetBenchmark.h.

Referenced by process().

◆ hBNCH0vsPt

TH2F* PFJetBenchmark::hBNCH0vsPt
private

Definition at line 119 of file PFJetBenchmark.h.

Referenced by process().

◆ hBNCH1vsPt

TH2F* PFJetBenchmark::hBNCH1vsPt
private

Definition at line 120 of file PFJetBenchmark.h.

Referenced by process().

◆ hBNCH2vsPt

TH2F* PFJetBenchmark::hBNCH2vsPt
private

Definition at line 121 of file PFJetBenchmark.h.

Referenced by process().

◆ hBNCH3vsPt

TH2F* PFJetBenchmark::hBNCH3vsPt
private

Definition at line 122 of file PFJetBenchmark.h.

Referenced by process().

◆ hBNCH4vsPt

TH2F* PFJetBenchmark::hBNCH4vsPt
private

Definition at line 123 of file PFJetBenchmark.h.

Referenced by process().

◆ hBNCH5vsPt

TH2F* PFJetBenchmark::hBNCH5vsPt
private

Definition at line 124 of file PFJetBenchmark.h.

Referenced by process().

◆ hBNCH6vsPt

TH2F* PFJetBenchmark::hBNCH6vsPt
private

Definition at line 125 of file PFJetBenchmark.h.

Referenced by process().

◆ hBNCH7vsPt

TH2F* PFJetBenchmark::hBNCH7vsPt
private

Definition at line 126 of file PFJetBenchmark.h.

Referenced by process().

◆ hBNCHvsPt

TH2F* PFJetBenchmark::hBNCHvsPt
private

Definition at line 117 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRCHE

TH1F* PFJetBenchmark::hBRCHE
private

Definition at line 102 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRCHEvsPt

TH2F* PFJetBenchmark::hBRCHEvsPt
private

Definition at line 107 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRHCALvsP

TH2F* PFJetBenchmark::hBRHCALvsP
private

Definition at line 113 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRHONLvsP

TH2F* PFJetBenchmark::hBRHONLvsP
private

Definition at line 114 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRNEE

TH1F* PFJetBenchmark::hBRNEE
private

Definition at line 104 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRNEEvsPt

TH2F* PFJetBenchmark::hBRNEEvsPt
private

Definition at line 109 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRneut

TH1F* PFJetBenchmark::hBRneut
private

Definition at line 105 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRNEUTvsP

TH2F* PFJetBenchmark::hBRNEUTvsP
private

Definition at line 111 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRneutvsPt

TH2F* PFJetBenchmark::hBRneutvsPt
private

Definition at line 110 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRNHE

TH1F* PFJetBenchmark::hBRNHE
private

Definition at line 103 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRNHEvsPt

TH2F* PFJetBenchmark::hBRNHEvsPt
private

Definition at line 108 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRNONLvsP

TH2F* PFJetBenchmark::hBRNONLvsP
private

Definition at line 112 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt

TH1F* PFJetBenchmark::hBRPt
private

Definition at line 87 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt100_150

TH1F* PFJetBenchmark::hBRPt100_150
private

Definition at line 92 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt1250_2000

TH1F* PFJetBenchmark::hBRPt1250_2000
private

Definition at line 100 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt150_200

TH1F* PFJetBenchmark::hBRPt150_200
private

Definition at line 93 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt2000_5000

TH1F* PFJetBenchmark::hBRPt2000_5000
private

Definition at line 101 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt200_250

TH1F* PFJetBenchmark::hBRPt200_250
private

Definition at line 94 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt20_40

TH1F* PFJetBenchmark::hBRPt20_40
private

Definition at line 88 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt250_300

TH1F* PFJetBenchmark::hBRPt250_300
private

Definition at line 95 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt300_400

TH1F* PFJetBenchmark::hBRPt300_400
private

Definition at line 96 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt400_500

TH1F* PFJetBenchmark::hBRPt400_500
private

Definition at line 97 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt40_60

TH1F* PFJetBenchmark::hBRPt40_60
private

Definition at line 89 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt500_750

TH1F* PFJetBenchmark::hBRPt500_750
private

Definition at line 98 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt60_80

TH1F* PFJetBenchmark::hBRPt60_80
private

Definition at line 90 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt750_1250

TH1F* PFJetBenchmark::hBRPt750_1250
private

Definition at line 99 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPt80_100

TH1F* PFJetBenchmark::hBRPt80_100
private

Definition at line 91 of file PFJetBenchmark.h.

Referenced by process().

◆ hBRPtvsPt

TH2F* PFJetBenchmark::hBRPtvsPt
private

Definition at line 106 of file PFJetBenchmark.h.

Referenced by process().

◆ hDEtavsEta

TH2F* PFJetBenchmark::hDEtavsEta
private

Definition at line 68 of file PFJetBenchmark.h.

Referenced by process().

◆ hDPhivsEta

TH2F* PFJetBenchmark::hDPhivsEta
private

Definition at line 69 of file PFJetBenchmark.h.

Referenced by process().

◆ hEDEtavsPt

TH2F* PFJetBenchmark::hEDEtavsPt
private

Definition at line 157 of file PFJetBenchmark.h.

Referenced by process().

◆ hEDPhivsPt

TH2F* PFJetBenchmark::hEDPhivsPt
private

Definition at line 158 of file PFJetBenchmark.h.

Referenced by process().

◆ hENCH

TH1F* PFJetBenchmark::hENCH
private

Definition at line 160 of file PFJetBenchmark.h.

Referenced by process().

◆ hENCH0vsPt

TH2F* PFJetBenchmark::hENCH0vsPt
private

Definition at line 161 of file PFJetBenchmark.h.

Referenced by process().

◆ hENCH1vsPt

TH2F* PFJetBenchmark::hENCH1vsPt
private

Definition at line 162 of file PFJetBenchmark.h.

Referenced by process().

◆ hENCH2vsPt

TH2F* PFJetBenchmark::hENCH2vsPt
private

Definition at line 163 of file PFJetBenchmark.h.

Referenced by process().

◆ hENCH3vsPt

TH2F* PFJetBenchmark::hENCH3vsPt
private

Definition at line 164 of file PFJetBenchmark.h.

Referenced by process().

◆ hENCH4vsPt

TH2F* PFJetBenchmark::hENCH4vsPt
private

Definition at line 165 of file PFJetBenchmark.h.

Referenced by process().

◆ hENCH5vsPt

TH2F* PFJetBenchmark::hENCH5vsPt
private

Definition at line 166 of file PFJetBenchmark.h.

Referenced by process().

◆ hENCH6vsPt

TH2F* PFJetBenchmark::hENCH6vsPt
private

Definition at line 167 of file PFJetBenchmark.h.

Referenced by process().

◆ hENCH7vsPt

TH2F* PFJetBenchmark::hENCH7vsPt
private

Definition at line 168 of file PFJetBenchmark.h.

Referenced by process().

◆ hENCHvsPt

TH2F* PFJetBenchmark::hENCHvsPt
private

Definition at line 159 of file PFJetBenchmark.h.

Referenced by process().

◆ hERCHE

TH1F* PFJetBenchmark::hERCHE
private

Definition at line 144 of file PFJetBenchmark.h.

Referenced by process().

◆ hERCHEvsPt

TH2F* PFJetBenchmark::hERCHEvsPt
private

Definition at line 149 of file PFJetBenchmark.h.

Referenced by process().

◆ hERHCALvsP

TH2F* PFJetBenchmark::hERHCALvsP
private

Definition at line 155 of file PFJetBenchmark.h.

Referenced by process().

◆ hERHONLvsP

TH2F* PFJetBenchmark::hERHONLvsP
private

Definition at line 156 of file PFJetBenchmark.h.

Referenced by process().

◆ hERNEE

TH1F* PFJetBenchmark::hERNEE
private

Definition at line 146 of file PFJetBenchmark.h.

Referenced by process().

◆ hERNEEvsPt

TH2F* PFJetBenchmark::hERNEEvsPt
private

Definition at line 151 of file PFJetBenchmark.h.

Referenced by process().

◆ hERneut

TH1F* PFJetBenchmark::hERneut
private

Definition at line 147 of file PFJetBenchmark.h.

Referenced by process().

◆ hERNEUTvsP

TH2F* PFJetBenchmark::hERNEUTvsP
private

Definition at line 153 of file PFJetBenchmark.h.

Referenced by process().

◆ hERneutvsPt

TH2F* PFJetBenchmark::hERneutvsPt
private

Definition at line 152 of file PFJetBenchmark.h.

Referenced by process().

◆ hERNHE

TH1F* PFJetBenchmark::hERNHE
private

Definition at line 145 of file PFJetBenchmark.h.

Referenced by process().

◆ hERNHEvsPt

TH2F* PFJetBenchmark::hERNHEvsPt
private

Definition at line 150 of file PFJetBenchmark.h.

Referenced by process().

◆ hERNONLvsP

TH2F* PFJetBenchmark::hERNONLvsP
private

Definition at line 154 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt

TH1F* PFJetBenchmark::hERPt
private

Definition at line 129 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt100_150

TH1F* PFJetBenchmark::hERPt100_150
private

Definition at line 134 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt1250_2000

TH1F* PFJetBenchmark::hERPt1250_2000
private

Definition at line 142 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt150_200

TH1F* PFJetBenchmark::hERPt150_200
private

Definition at line 135 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt2000_5000

TH1F* PFJetBenchmark::hERPt2000_5000
private

Definition at line 143 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt200_250

TH1F* PFJetBenchmark::hERPt200_250
private

Definition at line 136 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt20_40

TH1F* PFJetBenchmark::hERPt20_40
private

Definition at line 130 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt250_300

TH1F* PFJetBenchmark::hERPt250_300
private

Definition at line 137 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt300_400

TH1F* PFJetBenchmark::hERPt300_400
private

Definition at line 138 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt400_500

TH1F* PFJetBenchmark::hERPt400_500
private

Definition at line 139 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt40_60

TH1F* PFJetBenchmark::hERPt40_60
private

Definition at line 131 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt500_750

TH1F* PFJetBenchmark::hERPt500_750
private

Definition at line 140 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt60_80

TH1F* PFJetBenchmark::hERPt60_80
private

Definition at line 132 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt750_1250

TH1F* PFJetBenchmark::hERPt750_1250
private

Definition at line 141 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPt80_100

TH1F* PFJetBenchmark::hERPt80_100
private

Definition at line 133 of file PFJetBenchmark.h.

Referenced by process().

◆ hERPtvsPt

TH2F* PFJetBenchmark::hERPtvsPt
private

Definition at line 148 of file PFJetBenchmark.h.

Referenced by process().

◆ hFDEtavsPt

TH2F* PFJetBenchmark::hFDEtavsPt
private

Definition at line 199 of file PFJetBenchmark.h.

Referenced by process().

◆ hFDPhivsPt

TH2F* PFJetBenchmark::hFDPhivsPt
private

Definition at line 200 of file PFJetBenchmark.h.

Referenced by process().

◆ hFNCH

TH1F* PFJetBenchmark::hFNCH
private

Definition at line 202 of file PFJetBenchmark.h.

◆ hFNCH0vsPt

TH2F* PFJetBenchmark::hFNCH0vsPt
private

Definition at line 203 of file PFJetBenchmark.h.

◆ hFNCH1vsPt

TH2F* PFJetBenchmark::hFNCH1vsPt
private

Definition at line 204 of file PFJetBenchmark.h.

◆ hFNCH2vsPt

TH2F* PFJetBenchmark::hFNCH2vsPt
private

Definition at line 205 of file PFJetBenchmark.h.

◆ hFNCH3vsPt

TH2F* PFJetBenchmark::hFNCH3vsPt
private

Definition at line 206 of file PFJetBenchmark.h.

◆ hFNCH4vsPt

TH2F* PFJetBenchmark::hFNCH4vsPt
private

Definition at line 207 of file PFJetBenchmark.h.

◆ hFNCH5vsPt

TH2F* PFJetBenchmark::hFNCH5vsPt
private

Definition at line 208 of file PFJetBenchmark.h.

◆ hFNCH6vsPt

TH2F* PFJetBenchmark::hFNCH6vsPt
private

Definition at line 209 of file PFJetBenchmark.h.

◆ hFNCH7vsPt

TH2F* PFJetBenchmark::hFNCH7vsPt
private

Definition at line 210 of file PFJetBenchmark.h.

◆ hFNCHvsPt

TH2F* PFJetBenchmark::hFNCHvsPt
private

Definition at line 201 of file PFJetBenchmark.h.

◆ hFRCHE

TH1F* PFJetBenchmark::hFRCHE
private

Definition at line 186 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRCHEvsPt

TH2F* PFJetBenchmark::hFRCHEvsPt
private

Definition at line 191 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRHCALvsP

TH2F* PFJetBenchmark::hFRHCALvsP
private

Definition at line 197 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRHONLvsP

TH2F* PFJetBenchmark::hFRHONLvsP
private

Definition at line 198 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRNEE

TH1F* PFJetBenchmark::hFRNEE
private

Definition at line 188 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRNEEvsPt

TH2F* PFJetBenchmark::hFRNEEvsPt
private

Definition at line 193 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRneut

TH1F* PFJetBenchmark::hFRneut
private

Definition at line 189 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRNEUTvsP

TH2F* PFJetBenchmark::hFRNEUTvsP
private

Definition at line 195 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRneutvsPt

TH2F* PFJetBenchmark::hFRneutvsPt
private

Definition at line 194 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRNHE

TH1F* PFJetBenchmark::hFRNHE
private

Definition at line 187 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRNHEvsPt

TH2F* PFJetBenchmark::hFRNHEvsPt
private

Definition at line 192 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRNONLvsP

TH2F* PFJetBenchmark::hFRNONLvsP
private

Definition at line 196 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt

TH1F* PFJetBenchmark::hFRPt
private

Definition at line 171 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt100_150

TH1F* PFJetBenchmark::hFRPt100_150
private

Definition at line 176 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt1250_2000

TH1F* PFJetBenchmark::hFRPt1250_2000
private

Definition at line 184 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt150_200

TH1F* PFJetBenchmark::hFRPt150_200
private

Definition at line 177 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt2000_5000

TH1F* PFJetBenchmark::hFRPt2000_5000
private

Definition at line 185 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt200_250

TH1F* PFJetBenchmark::hFRPt200_250
private

Definition at line 178 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt20_40

TH1F* PFJetBenchmark::hFRPt20_40
private

Definition at line 172 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt250_300

TH1F* PFJetBenchmark::hFRPt250_300
private

Definition at line 179 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt300_400

TH1F* PFJetBenchmark::hFRPt300_400
private

Definition at line 180 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt400_500

TH1F* PFJetBenchmark::hFRPt400_500
private

Definition at line 181 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt40_60

TH1F* PFJetBenchmark::hFRPt40_60
private

Definition at line 173 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt500_750

TH1F* PFJetBenchmark::hFRPt500_750
private

Definition at line 182 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt60_80

TH1F* PFJetBenchmark::hFRPt60_80
private

Definition at line 174 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt750_1250

TH1F* PFJetBenchmark::hFRPt750_1250
private

Definition at line 183 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPt80_100

TH1F* PFJetBenchmark::hFRPt80_100
private

Definition at line 175 of file PFJetBenchmark.h.

Referenced by process().

◆ hFRPtvsPt

TH2F* PFJetBenchmark::hFRPtvsPt
private

Definition at line 190 of file PFJetBenchmark.h.

Referenced by process().

◆ hjetsEta

TH1F* PFJetBenchmark::hjetsEta
private

Definition at line 66 of file PFJetBenchmark.h.

Referenced by process().

◆ hjetsPt

TH1F* PFJetBenchmark::hjetsPt
private

Definition at line 65 of file PFJetBenchmark.h.

Referenced by process().

◆ hNCH0vsEta

TH2F* PFJetBenchmark::hNCH0vsEta
private

Definition at line 77 of file PFJetBenchmark.h.

Referenced by process().

◆ hNCH1vsEta

TH2F* PFJetBenchmark::hNCH1vsEta
private

Definition at line 78 of file PFJetBenchmark.h.

Referenced by process().

◆ hNCH2vsEta

TH2F* PFJetBenchmark::hNCH2vsEta
private

Definition at line 79 of file PFJetBenchmark.h.

Referenced by process().

◆ hNCH3vsEta

TH2F* PFJetBenchmark::hNCH3vsEta
private

Definition at line 80 of file PFJetBenchmark.h.

Referenced by process().

◆ hNCH4vsEta

TH2F* PFJetBenchmark::hNCH4vsEta
private

Definition at line 81 of file PFJetBenchmark.h.

Referenced by process().

◆ hNCH5vsEta

TH2F* PFJetBenchmark::hNCH5vsEta
private

Definition at line 82 of file PFJetBenchmark.h.

Referenced by process().

◆ hNCH6vsEta

TH2F* PFJetBenchmark::hNCH6vsEta
private

Definition at line 83 of file PFJetBenchmark.h.

Referenced by process().

◆ hNCH7vsEta

TH2F* PFJetBenchmark::hNCH7vsEta
private

Definition at line 84 of file PFJetBenchmark.h.

Referenced by process().

◆ hNCHvsEta

TH2F* PFJetBenchmark::hNCHvsEta
private

Definition at line 76 of file PFJetBenchmark.h.

Referenced by process().

◆ hNjets

TH1F* PFJetBenchmark::hNjets
private

Definition at line 64 of file PFJetBenchmark.h.

Referenced by process().

◆ hRCHEvsEta

TH2F* PFJetBenchmark::hRCHEvsEta
private

Definition at line 75 of file PFJetBenchmark.h.

Referenced by process().

◆ hRHCALvsEta

TH2F* PFJetBenchmark::hRHCALvsEta
private

Definition at line 73 of file PFJetBenchmark.h.

Referenced by process().

◆ hRHONLvsEta

TH2F* PFJetBenchmark::hRHONLvsEta
private

Definition at line 74 of file PFJetBenchmark.h.

Referenced by process().

◆ hRNeutvsEta

TH2F* PFJetBenchmark::hRNeutvsEta
private

Definition at line 70 of file PFJetBenchmark.h.

Referenced by process().

◆ hRNEUTvsEta

TH2F* PFJetBenchmark::hRNEUTvsEta
private

Definition at line 71 of file PFJetBenchmark.h.

Referenced by process().

◆ hRNONLvsEta

TH2F* PFJetBenchmark::hRNONLvsEta
private

Definition at line 72 of file PFJetBenchmark.h.

Referenced by process().

◆ hRPtvsEta

TH2F* PFJetBenchmark::hRPtvsEta
private

Definition at line 67 of file PFJetBenchmark.h.

Referenced by process().

◆ maxEta_cut

double PFJetBenchmark::maxEta_cut
protected

Definition at line 225 of file PFJetBenchmark.h.

Referenced by process(), and setup().

◆ onlyTwoJets_

bool PFJetBenchmark::onlyTwoJets_
protected

Definition at line 218 of file PFJetBenchmark.h.

Referenced by process(), and setup().

◆ outputFile_

std::string PFJetBenchmark::outputFile_
private

Definition at line 212 of file PFJetBenchmark.h.

Referenced by setup(), and write().

◆ plotAgainstReco_

bool PFJetBenchmark::plotAgainstReco_
protected

Definition at line 217 of file PFJetBenchmark.h.

Referenced by process(), and setup().

◆ recPt_cut

double PFJetBenchmark::recPt_cut
protected

Definition at line 224 of file PFJetBenchmark.h.

Referenced by process(), and setup().

◆ resChargedHadEnergyMax_

double PFJetBenchmark::resChargedHadEnergyMax_
protected

Definition at line 221 of file PFJetBenchmark.h.

Referenced by process(), and resChargedHadEnergyMax().

◆ resNeutralEmEnergyMax_

double PFJetBenchmark::resNeutralEmEnergyMax_
protected

Definition at line 223 of file PFJetBenchmark.h.

Referenced by process(), and resNeutralEmEnergyMax().

◆ resNeutralHadEnergyMax_

double PFJetBenchmark::resNeutralHadEnergyMax_
protected

Definition at line 222 of file PFJetBenchmark.h.

Referenced by process(), and resNeutralHadEnergyMax().

◆ resPtMax_

double PFJetBenchmark::resPtMax_
protected

Definition at line 220 of file PFJetBenchmark.h.

Referenced by process(), and resPtMax().