CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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=0, bool onlyTwoJets=1, double deltaRMax=0.1, std::string benchmarkLabel_="ParticleFlow", double recPt=-1, double maxEta=-1, DQMStore *dbe_store=NULL)
 
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 * 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 * 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 * 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 * 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 38 of file PFJetBenchmark.h.

Constructor & Destructor Documentation

PFJetBenchmark::PFJetBenchmark ( )

Definition at line 40 of file PFJetBenchmark.cc.

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

Definition at line 42 of file PFJetBenchmark.cc.

References file_.

42  {
43  if(file_) file_->Close();
44 }

Member Function Documentation

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

Definition at line 663 of file PFJetBenchmark.cc.

References abs, reco::LeafCandidate::energy(), reco::GenJet::getGenConstituents(), i, and reco::LeafCandidate::pdgId().

Referenced by process().

664  {
665  std::vector <const GenParticle*> mcparts = truth->getGenConstituents ();
666  true_NeutralEmEnergy = 0.;
667  true_ChargedHadEnergy = 0.;
668  true_NeutralHadEnergy = 0.;
669  // for each MC particle in turn
670  for (unsigned i = 0; i < mcparts.size (); i++) {
671  const GenParticle* mcpart = mcparts[i];
672  int PDG = std::abs( mcpart->pdgId());
673  double e = mcpart->energy();
674  switch(PDG){ // start PDG switch
675  case 22: // photon
676  true_NeutralEmEnergy += e;
677  break;
678  case 211: // pi
679  case 321: // K
680  case 2212: // p
681  case 11: //electrons (until recognised)
682  true_ChargedHadEnergy += e;
683  break;
684  case 310: // K_S0
685  case 130: // K_L0
686  case 3122: // Lambda0
687  case 2112: // n0
688  true_NeutralHadEnergy += e;
689  default:
690  break;
691  } // end PDG switch
692  } // end loop on constituents.
693 }
int i
Definition: DBlmapReader.cc:9
virtual int pdgId() const
PDG identifier.
#define abs(x)
Definition: mlp_lapack.h:159
virtual double energy() const
energy
virtual std::vector< const GenParticle * > getGenConstituents() const
get all constituents
Definition: GenJet.cc:59
void PFJetBenchmark::printGenJet ( const reco::GenJet truth)

Definition at line 716 of file PFJetBenchmark.cc.

References gather_cfg::cout, reco::LeafCandidate::eta(), reco::GenJet::getGenConstituents(), 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().

716  {
717  std::vector <const GenParticle*> mcparts = truth->getGenConstituents ();
718  cout << "GenJet p/px/py/pz/pt: " << truth->p() << '/' << truth->px ()
719  << '/' << truth->py() << '/' << truth->pz() << '/' << truth->pt() << endl
720  << " eta/phi: " << truth->eta () << '/' << truth->phi () << endl
721  << " # of constituents: " << mcparts.size() << endl;
722  cout << " constituents:" << endl;
723  for (unsigned i = 0; i < mcparts.size (); i++) {
724  const GenParticle* mcpart = mcparts[i];
725  cout << " #" << i << " PDG code:" << mcpart->pdgId()
726  << ", p/pt/eta/phi: " << mcpart->p() << '/' << mcpart->pt()
727  << '/' << mcpart->eta() << '/' << mcpart->phi() << endl;
728  }
729 }
int i
Definition: DBlmapReader.cc:9
virtual int pdgId() const
PDG identifier.
virtual double p() const
magnitude of momentum vector
virtual double eta() const
momentum pseudorapidity
virtual std::vector< const GenParticle * > getGenConstituents() const
get all constituents
Definition: GenJet.cc:59
virtual double px() const
x coordinate of momentum vector
virtual double pt() const
transverse momentum
virtual double pz() const
z coordinate of momentum vector
tuple cout
Definition: gather_cfg.py:41
virtual double phi() const
momentum azimuthal angle
virtual double py() const
y coordinate of momentum vector
void PFJetBenchmark::printPFJet ( const reco::PFJet pfj)

Definition at line 695 of file PFJetBenchmark.cc.

References reco::PFJet::chargedEmEnergy(), reco::PFJet::chargedHadronEnergy(), reco::PFJet::chargedMuEnergy(), reco::PFJet::chargedMultiplicity(), gather_cfg::cout, reco::LeafCandidate::eta(), 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().

695  {
696  cout<<setiosflags(ios::right);
697  cout<<setiosflags(ios::fixed);
698  cout<<setprecision(3);
699 
700  cout << "PFJet p/px/py/pz/pt: " << pfj->p() << "/" << pfj->px ()
701  << "/" << pfj->py() << "/" << pfj->pz() << "/" << pfj->pt() << endl
702  << " eta/phi: " << pfj->eta () << "/" << pfj->phi () << endl
703  << " PFJet specific:" << std::endl
704  << " charged/neutral hadrons energy: " << pfj->chargedHadronEnergy () << '/' << pfj->neutralHadronEnergy () << endl
705  << " charged/neutral em energy: " << pfj->chargedEmEnergy () << '/' << pfj->neutralEmEnergy () << endl
706  << " charged muon energy: " << pfj->chargedMuEnergy () << '/' << endl
707  << " charged/neutral multiplicity: " << pfj->chargedMultiplicity () << '/' << pfj->neutralMultiplicity () << endl;
708 
709  // And print the constituents
710  std::cout << pfj->print() << std::endl;
711 
712  cout<<resetiosflags(ios::right|ios::fixed);
713 }
virtual double p() const
magnitude of momentum vector
float chargedEmEnergy() const
chargedEmEnergy
Definition: PFJet.h:135
int chargedMultiplicity() const
chargedMultiplicity
Definition: PFJet.h:148
virtual double eta() const
momentum pseudorapidity
float neutralEmEnergy() const
neutralEmEnergy
Definition: PFJet.h:143
virtual std::string print() const
Print object in details.
Definition: PFJet.cc:84
int neutralMultiplicity() const
neutralMultiplicity
Definition: PFJet.h:150
virtual double px() const
x coordinate of momentum vector
virtual double pt() const
transverse momentum
virtual double pz() const
z coordinate of momentum vector
float neutralHadronEnergy() const
neutralHadronEnergy
Definition: PFJet.h:95
tuple cout
Definition: gather_cfg.py:41
float chargedMuEnergy() const
chargedMuEnergy
Definition: PFJet.h:139
virtual double phi() const
momentum azimuthal angle
float chargedHadronEnergy() const
chargedHadronEnergy
Definition: PFJet.h:91
virtual double py() const
y coordinate of momentum vector
void PFJetBenchmark::process ( const reco::PFJetCollection pfJets,
const reco::GenJetCollection genJets 
)

Definition at line 228 of file PFJetBenchmark.cc.

References abs, algo_, sipixelsummary::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, 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, 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, hNCHvsEta, hNjets, hRCHEvsEta, hRHCALvsEta, hRHONLvsEta, hRNeutvsEta, hRNEUTvsEta, hRNONLvsEta, hRPtvsEta, i, edm::Ref< C, T, F >::isNull(), j, PFBenchmarkAlgo::matchByDeltaR(), maxEta_cut, reco::PFJet::neutralEmEnergy(), reco::PFJet::neutralHadronEnergy(), onlyTwoJets_, reco::LeafCandidate::p(), reco::LeafCandidate::phi(), plotAgainstReco_, printGenJet(), printPFJet(), reco::LeafCandidate::pt(), recPt_cut, resChargedHadEnergyMax_, resNeutralEmEnergyMax_, resNeutralHadEnergyMax_, and resPtMax_.

Referenced by PFJetBenchmarkAnalyzer::analyze(), and PFRootEventManager::processEntry().

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

Definition at line 62 of file PFJetBenchmark.h.

References resChargedHadEnergyMax_.

Referenced by PFRootEventManager::processEntry().

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

Definition at line 64 of file PFJetBenchmark.h.

References resNeutralEmEnergyMax_.

Referenced by PFRootEventManager::processEntry().

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

Definition at line 63 of file PFJetBenchmark.h.

References resNeutralHadEnergyMax_.

Referenced by PFRootEventManager::processEntry().

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

Definition at line 61 of file PFJetBenchmark.h.

References resPtMax_.

Referenced by PFRootEventManager::processEntry().

61 {return resPtMax_;};
void PFJetBenchmark::setup ( std::string  Filename,
bool  debug,
bool  plotAgainstReco = 0,
bool  onlyTwoJets = 1,
double  deltaRMax = 0.1,
std::string  benchmarkLabel_ = "ParticleFlow",
double  recPt = -1,
double  maxEta = -1,
DQMStore dbe_store = NULL 
)

Definition at line 63 of file PFJetBenchmark.cc.

References BOOK1D, BOOK2D, gather_cfg::cout, dbe_, DBOOK1D, DBOOK2D, debug, debug_, deltaRMax, deltaRMax_, DSETAXES, ECAL, eta(), file_, HCAL, maxEta, maxEta_cut, NULL, runTheMatrix::only, onlyTwoJets, onlyTwoJets_, outputFile_, P, path(), phi, plotAgainstReco, plotAgainstReco_, PT, recPt, recPt_cut, SETAXES, and DQMStore::setCurrentFolder().

Referenced by PFJetBenchmarkAnalyzer::PFJetBenchmarkAnalyzer(), and PFRootEventManager::readOptions().

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

Definition at line 46 of file PFJetBenchmark.cc.

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

Referenced by PFJetBenchmarkAnalyzer::endJob(), and PFRootEventManager::write().

46  {
47  // Store the DAQ Histograms
48  if (outputFile_.size() != 0) {
49  if (dbe_)
50  dbe_->save(outputFile_.c_str());
51  // use bare Root if no DQM (FWLite applications)
52  else if (file_) {
53  file_->Write(outputFile_.c_str());
54  cout << "Benchmark output written to file " << outputFile_.c_str() << endl;
55  file_->Close();
56  }
57  }
58  else
59  cout << "No output file specified ("<<outputFile_<<"). Results will not be saved!" << endl;
60 
61 }
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
Definition: DQMStore.cc:1898
DQMStore * dbe_
std::string outputFile_
tuple cout
Definition: gather_cfg.py:41

Member Data Documentation

PFBenchmarkAlgo* PFJetBenchmark::algo_
protected

Definition at line 221 of file PFJetBenchmark.h.

Referenced by process().

DQMStore* PFJetBenchmark::dbe_
protected

Definition at line 233 of file PFJetBenchmark.h.

Referenced by setup(), and write().

bool PFJetBenchmark::debug_
protected

Definition at line 222 of file PFJetBenchmark.h.

Referenced by process(), and setup().

double PFJetBenchmark::deltaRMax_
protected

Definition at line 225 of file PFJetBenchmark.h.

Referenced by process(), and setup().

unsigned int PFJetBenchmark::entry_
protected

Definition at line 232 of file PFJetBenchmark.h.

Referenced by process().

TFile* PFJetBenchmark::file_
private

Definition at line 70 of file PFJetBenchmark.h.

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

TH2F* PFJetBenchmark::hBDEtavsPt
private

Definition at line 124 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBDPhivsPt
private

Definition at line 125 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBNCH
private

Definition at line 127 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH0vsPt
private

Definition at line 128 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH1vsPt
private

Definition at line 129 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH2vsPt
private

Definition at line 130 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH3vsPt
private

Definition at line 131 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH4vsPt
private

Definition at line 132 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH5vsPt
private

Definition at line 133 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCH6vsPt
private

Definition at line 134 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBNCHvsPt
private

Definition at line 126 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRCHE
private

Definition at line 111 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRCHEvsPt
private

Definition at line 116 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRHCALvsP
private

Definition at line 122 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRHONLvsP
private

Definition at line 123 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRNEE
private

Definition at line 113 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRNEEvsPt
private

Definition at line 118 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRneut
private

Definition at line 114 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRNEUTvsP
private

Definition at line 120 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRneutvsPt
private

Definition at line 119 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRNHE
private

Definition at line 112 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRNHEvsPt
private

Definition at line 117 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRNONLvsP
private

Definition at line 121 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt
private

Definition at line 96 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt100_150
private

Definition at line 101 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt1250_2000
private

Definition at line 109 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt150_200
private

Definition at line 102 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt2000_5000
private

Definition at line 110 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt200_250
private

Definition at line 103 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt20_40
private

Definition at line 97 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt250_300
private

Definition at line 104 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt300_400
private

Definition at line 105 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt400_500
private

Definition at line 106 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt40_60
private

Definition at line 98 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt500_750
private

Definition at line 107 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt60_80
private

Definition at line 99 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt750_1250
private

Definition at line 108 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hBRPt80_100
private

Definition at line 100 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hBRPtvsPt
private

Definition at line 115 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hDEtavsEta
private

Definition at line 78 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hDPhivsEta
private

Definition at line 79 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hEDEtavsPt
private

Definition at line 165 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hEDPhivsPt
private

Definition at line 166 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hENCH
private

Definition at line 168 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH0vsPt
private

Definition at line 169 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH1vsPt
private

Definition at line 170 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH2vsPt
private

Definition at line 171 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH3vsPt
private

Definition at line 172 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH4vsPt
private

Definition at line 173 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH5vsPt
private

Definition at line 174 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCH6vsPt
private

Definition at line 175 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hENCHvsPt
private

Definition at line 167 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERCHE
private

Definition at line 152 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERCHEvsPt
private

Definition at line 157 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERHCALvsP
private

Definition at line 163 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERHONLvsP
private

Definition at line 164 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERNEE
private

Definition at line 154 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERNEEvsPt
private

Definition at line 159 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERneut
private

Definition at line 155 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERNEUTvsP
private

Definition at line 161 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERneutvsPt
private

Definition at line 160 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERNHE
private

Definition at line 153 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERNHEvsPt
private

Definition at line 158 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERNONLvsP
private

Definition at line 162 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt
private

Definition at line 137 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt100_150
private

Definition at line 142 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt1250_2000
private

Definition at line 150 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt150_200
private

Definition at line 143 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt2000_5000
private

Definition at line 151 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt200_250
private

Definition at line 144 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt20_40
private

Definition at line 138 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt250_300
private

Definition at line 145 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt300_400
private

Definition at line 146 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt400_500
private

Definition at line 147 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt40_60
private

Definition at line 139 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt500_750
private

Definition at line 148 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt60_80
private

Definition at line 140 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt750_1250
private

Definition at line 149 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hERPt80_100
private

Definition at line 141 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hERPtvsPt
private

Definition at line 156 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFDEtavsPt
private

Definition at line 206 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFDPhivsPt
private

Definition at line 207 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFNCH
private

Definition at line 209 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH0vsPt
private

Definition at line 210 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH1vsPt
private

Definition at line 211 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH2vsPt
private

Definition at line 212 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH3vsPt
private

Definition at line 213 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH4vsPt
private

Definition at line 214 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH5vsPt
private

Definition at line 215 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCH6vsPt
private

Definition at line 216 of file PFJetBenchmark.h.

TH2F* PFJetBenchmark::hFNCHvsPt
private

Definition at line 208 of file PFJetBenchmark.h.

TH1F* PFJetBenchmark::hFRCHE
private

Definition at line 193 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRCHEvsPt
private

Definition at line 198 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRHCALvsP
private

Definition at line 204 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRHONLvsP
private

Definition at line 205 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRNEE
private

Definition at line 195 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRNEEvsPt
private

Definition at line 200 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRneut
private

Definition at line 196 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRNEUTvsP
private

Definition at line 202 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRneutvsPt
private

Definition at line 201 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRNHE
private

Definition at line 194 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRNHEvsPt
private

Definition at line 199 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRNONLvsP
private

Definition at line 203 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt
private

Definition at line 178 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt100_150
private

Definition at line 183 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt1250_2000
private

Definition at line 191 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt150_200
private

Definition at line 184 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt2000_5000
private

Definition at line 192 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt200_250
private

Definition at line 185 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt20_40
private

Definition at line 179 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt250_300
private

Definition at line 186 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt300_400
private

Definition at line 187 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt400_500
private

Definition at line 188 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt40_60
private

Definition at line 180 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt500_750
private

Definition at line 189 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt60_80
private

Definition at line 181 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt750_1250
private

Definition at line 190 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hFRPt80_100
private

Definition at line 182 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hFRPtvsPt
private

Definition at line 197 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hjetsEta
private

Definition at line 76 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hjetsPt
private

Definition at line 75 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH0vsEta
private

Definition at line 87 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH1vsEta
private

Definition at line 88 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH2vsEta
private

Definition at line 89 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH3vsEta
private

Definition at line 90 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH4vsEta
private

Definition at line 91 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH5vsEta
private

Definition at line 92 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCH6vsEta
private

Definition at line 93 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hNCHvsEta
private

Definition at line 86 of file PFJetBenchmark.h.

Referenced by process().

TH1F* PFJetBenchmark::hNjets
private

Definition at line 74 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hRCHEvsEta
private

Definition at line 85 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hRHCALvsEta
private

Definition at line 83 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hRHONLvsEta
private

Definition at line 84 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hRNeutvsEta
private

Definition at line 80 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hRNEUTvsEta
private

Definition at line 81 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hRNONLvsEta
private

Definition at line 82 of file PFJetBenchmark.h.

Referenced by process().

TH2F* PFJetBenchmark::hRPtvsEta
private

Definition at line 77 of file PFJetBenchmark.h.

Referenced by process().

double PFJetBenchmark::maxEta_cut
protected

Definition at line 231 of file PFJetBenchmark.h.

Referenced by process(), and setup().

bool PFJetBenchmark::onlyTwoJets_
protected

Definition at line 224 of file PFJetBenchmark.h.

Referenced by process(), and setup().

std::string PFJetBenchmark::outputFile_
private

Definition at line 218 of file PFJetBenchmark.h.

Referenced by setup(), and write().

bool PFJetBenchmark::plotAgainstReco_
protected

Definition at line 223 of file PFJetBenchmark.h.

Referenced by process(), and setup().

double PFJetBenchmark::recPt_cut
protected

Definition at line 230 of file PFJetBenchmark.h.

Referenced by process(), and setup().

double PFJetBenchmark::resChargedHadEnergyMax_
protected

Definition at line 227 of file PFJetBenchmark.h.

Referenced by process(), and resChargedHadEnergyMax().

double PFJetBenchmark::resNeutralEmEnergyMax_
protected

Definition at line 229 of file PFJetBenchmark.h.

Referenced by process(), and resNeutralEmEnergyMax().

double PFJetBenchmark::resNeutralHadEnergyMax_
protected

Definition at line 228 of file PFJetBenchmark.h.

Referenced by process(), and resNeutralHadEnergyMax().

double PFJetBenchmark::resPtMax_
protected

Definition at line 226 of file PFJetBenchmark.h.

Referenced by process(), and resPtMax().