CMS 3D CMS Logo

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

#include <PFJetBenchmark.h>

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=0)
 
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 30 of file PFJetBenchmark.h.

Constructor & Destructor Documentation

PFJetBenchmark::PFJetBenchmark ( )

Definition at line 42 of file PFJetBenchmark.cc.

42 : file_(nullptr), entry_(0) {}
unsigned int entry_
PFJetBenchmark::~PFJetBenchmark ( )
virtual

Definition at line 44 of file PFJetBenchmark.cc.

References file_.

44  {
45  if(file_) file_->Close();
46 }

Member Function Documentation

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

Definition at line 644 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().

645  {
646  std::vector <const GenParticle*> mcparts = truth->getGenConstituents ();
647  true_NeutralEmEnergy = 0.;
648  true_ChargedHadEnergy = 0.;
649  true_NeutralHadEnergy = 0.;
650  // for each MC particle in turn
651  for (unsigned i = 0; i < mcparts.size (); i++) {
652  const GenParticle* mcpart = mcparts[i];
653  int PDG = std::abs( mcpart->pdgId());
654  double e = mcpart->energy();
655  switch(PDG){ // start PDG switch
656  case 22: // photon
657  true_NeutralEmEnergy += e;
658  break;
659  case 211: // pi
660  case 321: // K
661  case 2212: // p
662  case 11: //electrons (until recognised)
663  true_ChargedHadEnergy += e;
664  break;
665  case 310: // K_S0
666  case 130: // K_L0
667  case 3122: // Lambda0
668  case 2112: // n0
669  true_NeutralHadEnergy += e;
670  default:
671  break;
672  } // end PDG switch
673  } // end loop on constituents.
674 }
int pdgId() const final
PDG identifier.
double energy() const final
energy
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
virtual std::vector< const GenParticle * > getGenConstituents() const
get all constituents
Definition: GenJet.cc:58
void PFJetBenchmark::printGenJet ( const reco::GenJet truth)

Definition at line 697 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().

697  {
698  std::vector <const GenParticle*> mcparts = truth->getGenConstituents ();
699  cout << "GenJet p/px/py/pz/pt: " << truth->p() << '/' << truth->px ()
700  << '/' << truth->py() << '/' << truth->pz() << '/' << truth->pt() << endl
701  << " eta/phi: " << truth->eta () << '/' << truth->phi () << endl
702  << " # of constituents: " << mcparts.size() << endl;
703  cout << " constituents:" << endl;
704  for (unsigned i = 0; i < mcparts.size (); i++) {
705  const GenParticle* mcpart = mcparts[i];
706  cout << " #" << i << " PDG code:" << mcpart->pdgId()
707  << ", p/pt/eta/phi: " << mcpart->p() << '/' << mcpart->pt()
708  << '/' << mcpart->eta() << '/' << mcpart->phi() << endl;
709  }
710 }
int pdgId() const final
PDG identifier.
double eta() const final
momentum pseudorapidity
double px() const final
x coordinate of momentum vector
double pt() const final
transverse momentum
double pz() const final
z coordinate of momentum vector
virtual std::vector< const GenParticle * > getGenConstituents() const
get all constituents
Definition: GenJet.cc:58
double p() const final
magnitude of momentum vector
double py() const final
y coordinate of momentum vector
double phi() const final
momentum azimuthal angle
void PFJetBenchmark::printPFJet ( const reco::PFJet pfj)

Definition at line 676 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().

676  {
677  cout<<setiosflags(ios::right);
678  cout<<setiosflags(ios::fixed);
679  cout<<setprecision(3);
680 
681  cout << "PFJet p/px/py/pz/pt: " << pfj->p() << "/" << pfj->px ()
682  << "/" << pfj->py() << "/" << pfj->pz() << "/" << pfj->pt() << endl
683  << " eta/phi: " << pfj->eta () << "/" << pfj->phi () << endl
684  << " PFJet specific:" << std::endl
685  << " charged/neutral hadrons energy: " << pfj->chargedHadronEnergy () << '/' << pfj->neutralHadronEnergy () << endl
686  << " charged/neutral em energy: " << pfj->chargedEmEnergy () << '/' << pfj->neutralEmEnergy () << endl
687  << " charged muon energy: " << pfj->chargedMuEnergy () << '/' << endl
688  << " charged/neutral multiplicity: " << pfj->chargedMultiplicity () << '/' << pfj->neutralMultiplicity () << endl;
689 
690  // And print the constituents
691  std::cout << pfj->print() << std::endl;
692 
693  cout<<resetiosflags(ios::right|ios::fixed);
694 }
double eta() const final
momentum pseudorapidity
float chargedEmEnergy() const
chargedEmEnergy
Definition: PFJet.h:142
double px() const final
x coordinate of momentum vector
double pt() const final
transverse momentum
int chargedMultiplicity() const
chargedMultiplicity
Definition: PFJet.h:155
float neutralEmEnergy() const
neutralEmEnergy
Definition: PFJet.h:150
double pz() const final
z coordinate of momentum vector
int neutralMultiplicity() const
neutralMultiplicity
Definition: PFJet.h:157
std::string print() const override
Print object in details.
Definition: PFJet.cc:83
double p() const final
magnitude of momentum vector
double py() const final
y coordinate of momentum vector
float neutralHadronEnergy() const
neutralHadronEnergy
Definition: PFJet.h:102
float chargedMuEnergy() const
chargedMuEnergy
Definition: PFJet.h:146
double phi() const final
momentum azimuthal angle
float chargedHadronEnergy() const
chargedHadronEnergy
Definition: PFJet.h:98
void PFJetBenchmark::process ( const reco::PFJetCollection pfJets,
const reco::GenJetCollection genJets 
)

Definition at line 231 of file PFJetBenchmark.cc.

References funct::abs(), algo_, RecoMuonCosmics_cff::Barrel, reco::PFJet::chargedHadronEnergy(), reco::PFJet::chargedMultiplicity(), gather_cfg::cout, debug_, deltaR(), PFBenchmarkAlgo::deltaR(), deltaRMax_, entry_, reco::LeafCandidate::eta(), 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(), PFBenchmarkAlgo::matchByDeltaR(), maxEta_cut, reco::PFJet::neutralEmEnergy(), reco::PFJet::neutralHadronEnergy(), onlyTwoJets_, reco::LeafCandidate::p(), reco::LeafCandidate::phi(), plotAgainstReco_, printGenJet(), printPFJet(), EnergyCorrector::pt, reco::LeafCandidate::pt(), recPt_cut, resChargedHadEnergyMax_, resNeutralEmEnergyMax_, resNeutralHadEnergyMax_, and resPtMax_.

Referenced by ConfigBuilder.ConfigBuilder::addExtraStream(), PFJetBenchmarkAnalyzer::analyze(), ConfigBuilder.ConfigBuilder::completeInputCommand(), ConfigBuilder.ConfigBuilder::doNotInlineEventContent(), ConfigBuilder.ConfigBuilder.PrintAllModules::leave(), ConfigBuilder.ConfigBuilder::prepare(), ConfigBuilder.ConfigBuilder::prepare_ALCA(), ConfigBuilder.ConfigBuilder::prepare_DQM(), ConfigBuilder.ConfigBuilder::prepare_HLT(), ConfigBuilder.ConfigBuilder::prepare_LHE(), ConfigBuilder.ConfigBuilder::prepare_PATFILTER(), ConfigBuilder.ConfigBuilder::prepare_VALIDATION(), ConfigBuilder.ConfigBuilder::renameHLTprocessInSequence(), ConfigBuilder.ConfigBuilder::renameInputTagsInSequence(), and ConfigBuilder.ConfigBuilder::scheduleSequence().

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

Definition at line 54 of file PFJetBenchmark.h.

References resChargedHadEnergyMax_.

54 {return resChargedHadEnergyMax_;};
double resChargedHadEnergyMax_
double PFJetBenchmark::resNeutralEmEnergyMax ( ) const
inline

Definition at line 56 of file PFJetBenchmark.h.

References resNeutralEmEnergyMax_, and write().

56 {return resNeutralEmEnergyMax_;};
double resNeutralEmEnergyMax_
double PFJetBenchmark::resNeutralHadEnergyMax ( ) const
inline

Definition at line 55 of file PFJetBenchmark.h.

References resNeutralHadEnergyMax_.

55 {return resNeutralHadEnergyMax_;};
double resNeutralHadEnergyMax_
double PFJetBenchmark::resPtMax ( ) const
inline

Definition at line 53 of file PFJetBenchmark.h.

References resPtMax_.

53 {return resPtMax_;};
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 = 0 
)

Definition at line 65 of file PFJetBenchmark.cc.

References BOOK1D, BOOK2D, gather_cfg::cout, dbe_, DBOOK1D, DBOOK2D, debug, debug_, deltaRMax, deltaRMax_, DSETAXES, ECAL, PVValHelper::eta, file_, maxEta, maxEta_cut, ECF_cff::Njets, onlyTwoJets, onlyTwoJets_, outputFile_, callgraph::path, phi, plotAgainstReco, plotAgainstReco_, PT, recPt, recPt_cut, and SETAXES.

Referenced by PFJetBenchmarkAnalyzer::PFJetBenchmarkAnalyzer().

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

Definition at line 48 of file PFJetBenchmark.cc.

References gather_cfg::cout, dbe_, file_, and outputFile_.

Referenced by PFJetBenchmarkAnalyzer::endJob(), and resNeutralEmEnergyMax().

48  {
49  // Store the DAQ Histograms
50  if (!outputFile_.empty()) {
51  if (dbe_)
52  dbe_->save(outputFile_);
53  // use bare Root if no DQM (FWLite applications)
54  else if (file_) {
55  file_->Write(outputFile_.c_str());
56  cout << "Benchmark output written to file " << outputFile_.c_str() << endl;
57  file_->Close();
58  }
59  }
60  else
61  cout << "No output file specified ("<<outputFile_<<"). Results will not be saved!" << endl;
62 
63 }
DQMStore * dbe_
std::string outputFile_

Member Data Documentation

PFBenchmarkAlgo* PFJetBenchmark::algo_
protected

Definition at line 217 of file PFJetBenchmark.h.

Referenced by process().

DQMStore* PFJetBenchmark::dbe_
protected

Definition at line 229 of file PFJetBenchmark.h.

Referenced by setup(), and write().

bool PFJetBenchmark::debug_
protected

Definition at line 218 of file PFJetBenchmark.h.

Referenced by process(), and setup().

double PFJetBenchmark::deltaRMax_
protected

Definition at line 221 of file PFJetBenchmark.h.

Referenced by process(), and setup().

unsigned int PFJetBenchmark::entry_
protected

Definition at line 228 of file PFJetBenchmark.h.

Referenced by process().

TFile* PFJetBenchmark::file_
private

Definition at line 62 of file PFJetBenchmark.h.

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

TH2F* PFJetBenchmark::hBDEtavsPt
private

Definition at line 117 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBDPhivsPt
private

Definition at line 118 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBNCH
private

Definition at line 120 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH0vsPt
private

Definition at line 121 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH1vsPt
private

Definition at line 122 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH2vsPt
private

Definition at line 123 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH3vsPt
private

Definition at line 124 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH4vsPt
private

Definition at line 125 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH5vsPt
private

Definition at line 126 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH6vsPt
private

Definition at line 127 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH7vsPt
private

Definition at line 128 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCHvsPt
private

Definition at line 119 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRCHE
private

Definition at line 104 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRCHEvsPt
private

Definition at line 109 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRHCALvsP
private

Definition at line 115 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRHONLvsP
private

Definition at line 116 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRNEE
private

Definition at line 106 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRNEEvsPt
private

Definition at line 111 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRneut
private

Definition at line 107 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRNEUTvsP
private

Definition at line 113 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRneutvsPt
private

Definition at line 112 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRNHE
private

Definition at line 105 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRNHEvsPt
private

Definition at line 110 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRNONLvsP
private

Definition at line 114 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt
private

Definition at line 89 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt100_150
private

Definition at line 94 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt1250_2000
private

Definition at line 102 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt150_200
private

Definition at line 95 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt2000_5000
private

Definition at line 103 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt200_250
private

Definition at line 96 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt20_40
private

Definition at line 90 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt250_300
private

Definition at line 97 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt300_400
private

Definition at line 98 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt400_500
private

Definition at line 99 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt40_60
private

Definition at line 91 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt500_750
private

Definition at line 100 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt60_80
private

Definition at line 92 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt750_1250
private

Definition at line 101 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt80_100
private

Definition at line 93 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRPtvsPt
private

Definition at line 108 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hDEtavsEta
private

Definition at line 70 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hDPhivsEta
private

Definition at line 71 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hEDEtavsPt
private

Definition at line 159 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hEDPhivsPt
private

Definition at line 160 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hENCH
private

Definition at line 162 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH0vsPt
private

Definition at line 163 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH1vsPt
private

Definition at line 164 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH2vsPt
private

Definition at line 165 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH3vsPt
private

Definition at line 166 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH4vsPt
private

Definition at line 167 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH5vsPt
private

Definition at line 168 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH6vsPt
private

Definition at line 169 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH7vsPt
private

Definition at line 170 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCHvsPt
private

Definition at line 161 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERCHE
private

Definition at line 146 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERCHEvsPt
private

Definition at line 151 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERHCALvsP
private

Definition at line 157 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERHONLvsP
private

Definition at line 158 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERNEE
private

Definition at line 148 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERNEEvsPt
private

Definition at line 153 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERneut
private

Definition at line 149 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERNEUTvsP
private

Definition at line 155 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERneutvsPt
private

Definition at line 154 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERNHE
private

Definition at line 147 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERNHEvsPt
private

Definition at line 152 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERNONLvsP
private

Definition at line 156 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt
private

Definition at line 131 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt100_150
private

Definition at line 136 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt1250_2000
private

Definition at line 144 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt150_200
private

Definition at line 137 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt2000_5000
private

Definition at line 145 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt200_250
private

Definition at line 138 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt20_40
private

Definition at line 132 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt250_300
private

Definition at line 139 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt300_400
private

Definition at line 140 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt400_500
private

Definition at line 141 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt40_60
private

Definition at line 133 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt500_750
private

Definition at line 142 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt60_80
private

Definition at line 134 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt750_1250
private

Definition at line 143 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt80_100
private

Definition at line 135 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERPtvsPt
private

Definition at line 150 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFDEtavsPt
private

Definition at line 201 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFDPhivsPt
private

Definition at line 202 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFNCH
private

Definition at line 204 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH0vsPt
private

Definition at line 205 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH1vsPt
private

Definition at line 206 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH2vsPt
private

Definition at line 207 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH3vsPt
private

Definition at line 208 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH4vsPt
private

Definition at line 209 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH5vsPt
private

Definition at line 210 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH6vsPt
private

Definition at line 211 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH7vsPt
private

Definition at line 212 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCHvsPt
private

Definition at line 203 of file PFJetBenchmark.h.

TH1F* PFJetBenchmark::hFRCHE
private

Definition at line 188 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRCHEvsPt
private

Definition at line 193 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRHCALvsP
private

Definition at line 199 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRHONLvsP
private

Definition at line 200 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRNEE
private

Definition at line 190 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRNEEvsPt
private

Definition at line 195 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRneut
private

Definition at line 191 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRNEUTvsP
private

Definition at line 197 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRneutvsPt
private

Definition at line 196 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRNHE
private

Definition at line 189 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRNHEvsPt
private

Definition at line 194 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRNONLvsP
private

Definition at line 198 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt
private

Definition at line 173 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt100_150
private

Definition at line 178 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt1250_2000
private

Definition at line 186 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt150_200
private

Definition at line 179 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt2000_5000
private

Definition at line 187 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt200_250
private

Definition at line 180 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt20_40
private

Definition at line 174 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt250_300
private

Definition at line 181 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt300_400
private

Definition at line 182 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt400_500
private

Definition at line 183 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt40_60
private

Definition at line 175 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt500_750
private

Definition at line 184 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt60_80
private

Definition at line 176 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt750_1250
private

Definition at line 185 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt80_100
private

Definition at line 177 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRPtvsPt
private

Definition at line 192 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hjetsEta
private

Definition at line 68 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hjetsPt
private

Definition at line 67 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH0vsEta
private

Definition at line 79 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH1vsEta
private

Definition at line 80 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH2vsEta
private

Definition at line 81 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH3vsEta
private

Definition at line 82 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH4vsEta
private

Definition at line 83 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH5vsEta
private

Definition at line 84 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH6vsEta
private

Definition at line 85 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH7vsEta
private

Definition at line 86 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCHvsEta
private

Definition at line 78 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hNjets
private

Definition at line 66 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hRCHEvsEta
private

Definition at line 77 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hRHCALvsEta
private

Definition at line 75 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hRHONLvsEta
private

Definition at line 76 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hRNeutvsEta
private

Definition at line 72 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hRNEUTvsEta
private

Definition at line 73 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hRNONLvsEta
private

Definition at line 74 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hRPtvsEta
private

Definition at line 69 of file PFJetBenchmark.h.

Referenced by process().

double PFJetBenchmark::maxEta_cut
protected

Definition at line 227 of file PFJetBenchmark.h.

Referenced by process(), and setup().

bool PFJetBenchmark::onlyTwoJets_
protected

Definition at line 220 of file PFJetBenchmark.h.

Referenced by process(), and setup().

std::string PFJetBenchmark::outputFile_
private

Definition at line 214 of file PFJetBenchmark.h.

Referenced by setup(), and write().

bool PFJetBenchmark::plotAgainstReco_
protected

Definition at line 219 of file PFJetBenchmark.h.

Referenced by process(), and setup().

double PFJetBenchmark::recPt_cut
protected

Definition at line 226 of file PFJetBenchmark.h.

Referenced by process(), and setup().

double PFJetBenchmark::resChargedHadEnergyMax_
protected

Definition at line 223 of file PFJetBenchmark.h.

Referenced by process(), and resChargedHadEnergyMax().

double PFJetBenchmark::resNeutralEmEnergyMax_
protected

Definition at line 225 of file PFJetBenchmark.h.

Referenced by process(), and resNeutralEmEnergyMax().

double PFJetBenchmark::resNeutralHadEnergyMax_
protected

Definition at line 224 of file PFJetBenchmark.h.

Referenced by process(), and resNeutralHadEnergyMax().

double PFJetBenchmark::resPtMax_
protected

Definition at line 222 of file PFJetBenchmark.h.

Referenced by process(), and resPtMax().