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 * 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 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 677 of file PFJetBenchmark.cc.

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

Referenced by process().

678  {
679  std::vector <const GenParticle*> mcparts = truth->getGenConstituents ();
680  true_NeutralEmEnergy = 0.;
681  true_ChargedHadEnergy = 0.;
682  true_NeutralHadEnergy = 0.;
683  // for each MC particle in turn
684  for (unsigned i = 0; i < mcparts.size (); i++) {
685  const GenParticle* mcpart = mcparts[i];
686  int PDG = std::abs( mcpart->pdgId());
687  double e = mcpart->energy();
688  switch(PDG){ // start PDG switch
689  case 22: // photon
690  true_NeutralEmEnergy += e;
691  break;
692  case 211: // pi
693  case 321: // K
694  case 2212: // p
695  case 11: //electrons (until recognised)
696  true_ChargedHadEnergy += e;
697  break;
698  case 310: // K_S0
699  case 130: // K_L0
700  case 3122: // Lambda0
701  case 2112: // n0
702  true_NeutralHadEnergy += e;
703  default:
704  break;
705  } // end PDG switch
706  } // end loop on constituents.
707 }
virtual double energy() const GCC11_FINAL
energy
int i
Definition: DBlmapReader.cc:9
virtual int pdgId() const GCC11_FINAL
PDG identifier.
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
virtual std::vector< const GenParticle * > getGenConstituents() const
get all constituents
Definition: GenJet.cc:58
void PFJetBenchmark::printGenJet ( const reco::GenJet truth)

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

730  {
731  std::vector <const GenParticle*> mcparts = truth->getGenConstituents ();
732  cout << "GenJet p/px/py/pz/pt: " << truth->p() << '/' << truth->px ()
733  << '/' << truth->py() << '/' << truth->pz() << '/' << truth->pt() << endl
734  << " eta/phi: " << truth->eta () << '/' << truth->phi () << endl
735  << " # of constituents: " << mcparts.size() << endl;
736  cout << " constituents:" << endl;
737  for (unsigned i = 0; i < mcparts.size (); i++) {
738  const GenParticle* mcpart = mcparts[i];
739  cout << " #" << i << " PDG code:" << mcpart->pdgId()
740  << ", p/pt/eta/phi: " << mcpart->p() << '/' << mcpart->pt()
741  << '/' << mcpart->eta() << '/' << mcpart->phi() << endl;
742  }
743 }
int i
Definition: DBlmapReader.cc:9
virtual double p() const GCC11_FINAL
magnitude of momentum vector
virtual int pdgId() const GCC11_FINAL
PDG identifier.
virtual double pz() const GCC11_FINAL
z coordinate of momentum vector
virtual double py() const GCC11_FINAL
y coordinate of momentum vector
virtual float phi() const GCC11_FINAL
momentum azimuthal angle
virtual double px() const GCC11_FINAL
x coordinate of momentum vector
virtual std::vector< const GenParticle * > getGenConstituents() const
get all constituents
Definition: GenJet.cc:58
virtual float eta() const GCC11_FINAL
momentum pseudorapidity
tuple cout
Definition: gather_cfg.py:121
virtual float pt() const GCC11_FINAL
transverse momentum
void PFJetBenchmark::printPFJet ( const reco::PFJet pfj)

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

709  {
710  cout<<setiosflags(ios::right);
711  cout<<setiosflags(ios::fixed);
712  cout<<setprecision(3);
713 
714  cout << "PFJet p/px/py/pz/pt: " << pfj->p() << "/" << pfj->px ()
715  << "/" << pfj->py() << "/" << pfj->pz() << "/" << pfj->pt() << endl
716  << " eta/phi: " << pfj->eta () << "/" << pfj->phi () << endl
717  << " PFJet specific:" << std::endl
718  << " charged/neutral hadrons energy: " << pfj->chargedHadronEnergy () << '/' << pfj->neutralHadronEnergy () << endl
719  << " charged/neutral em energy: " << pfj->chargedEmEnergy () << '/' << pfj->neutralEmEnergy () << endl
720  << " charged muon energy: " << pfj->chargedMuEnergy () << '/' << endl
721  << " charged/neutral multiplicity: " << pfj->chargedMultiplicity () << '/' << pfj->neutralMultiplicity () << endl;
722 
723  // And print the constituents
724  std::cout << pfj->print() << std::endl;
725 
726  cout<<resetiosflags(ios::right|ios::fixed);
727 }
float chargedEmEnergy() const
chargedEmEnergy
Definition: PFJet.h:138
virtual double p() const GCC11_FINAL
magnitude of momentum vector
int chargedMultiplicity() const
chargedMultiplicity
Definition: PFJet.h:151
virtual double pz() const GCC11_FINAL
z coordinate of momentum vector
virtual double py() const GCC11_FINAL
y coordinate of momentum vector
float neutralEmEnergy() const
neutralEmEnergy
Definition: PFJet.h:146
virtual float phi() const GCC11_FINAL
momentum azimuthal angle
virtual std::string print() const
Print object in details.
Definition: PFJet.cc:83
virtual double px() const GCC11_FINAL
x coordinate of momentum vector
int neutralMultiplicity() const
neutralMultiplicity
Definition: PFJet.h:153
virtual float eta() const GCC11_FINAL
momentum pseudorapidity
float neutralHadronEnergy() const
neutralHadronEnergy
Definition: PFJet.h:98
tuple cout
Definition: gather_cfg.py:121
float chargedMuEnergy() const
chargedMuEnergy
Definition: PFJet.h:142
virtual float pt() const GCC11_FINAL
transverse momentum
float chargedHadronEnergy() const
chargedHadronEnergy
Definition: PFJet.h:94
void PFJetBenchmark::process ( const reco::PFJetCollection pfJets,
const reco::GenJetCollection genJets 
)

Definition at line 230 of file PFJetBenchmark.cc.

References funct::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, 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, 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(), RecoTauCleanerPlugins::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_FASTSIM(), ConfigBuilder.ConfigBuilder::prepare_HLT(), ConfigBuilder.ConfigBuilder::prepare_LHE(), ConfigBuilder.ConfigBuilder::prepare_VALIDATION(), ConfigBuilder.ConfigBuilder::renameHLTprocessInSequence(), ConfigBuilder.ConfigBuilder::renameInputTagsInSequence(), and ConfigBuilder.ConfigBuilder::scheduleSequence().

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

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 = 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, onlyTwoJets, onlyTwoJets_, outputFile_, P, getHLTPrescaleColumns::path, phi, plotAgainstReco, plotAgainstReco_, PT, recPt, recPt_cut, SETAXES, and DQMStore::setCurrentFolder().

Referenced by PFJetBenchmarkAnalyzer::PFJetBenchmarkAnalyzer().

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  BOOK2D(NCH7vsEta,"N_{Charged} vs #eta, iter 7",200, -5., 5., 200,0.,200.);
133  // delta Pt or E quantities for Barrel
134  DBOOK1D(RPt,#DeltaP_{T}/P_{T},80,-1,1);
135  DBOOK1D(RCHE,#DeltaE/E (charged had),80,-2,2);
136  DBOOK1D(RNHE,#DeltaE/E (neutral had),80,-2,2);
137  DBOOK1D(RNEE,#DeltaE/E (neutral em),80,-2,2);
138  DBOOK1D(Rneut,#DeltaE/E (neutral),80,-2,2);
139  DBOOK1D(NCH, #N_{charged},200,0.,200.);
140  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
141  DBOOK2D(RCHEvsPt,#DeltaE/E (charged had) vs P_{T},250, 0, 500, 120,-1,2);
142  DBOOK2D(RNHEvsPt,#DeltaE/E (neutral had) vs P_{T},250, 0, 500, 120,-1,2);
143  DBOOK2D(RNEEvsPt,#DeltaE/E (neutral em) vs P_{T},250, 0, 500, 120,-1,2);
144  DBOOK2D(RneutvsPt,#DeltaE/E (neutral) vs P_{T},250, 0, 500, 120,-1,2);
145  DBOOK2D(NCHvsPt,N_{charged} vs P_{T},250,0,500,200,0.,200.);
146  DBOOK2D(NCH0vsPt, N_{charged} vs P_{T} iter 0,250,0,500,200,0.,200.);
147  DBOOK2D(NCH1vsPt, N_{charged} vs P_{T} iter 1,250,0,500,200,0.,200.);
148  DBOOK2D(NCH2vsPt, N_{charged} vs P_{T} iter 2,250,0,500,200,0.,200.);
149  DBOOK2D(NCH3vsPt, N_{charged} vs P_{T} iter 3,250,0,500,200,0.,200.);
150  DBOOK2D(NCH4vsPt, N_{charged} vs P_{T} iter 4,250,0,500,200,0.,200.);
151  DBOOK2D(NCH5vsPt, N_{charged} vs P_{T} iter 5,250,0,500,200,0.,200.);
152  DBOOK2D(NCH6vsPt, N_{charged} vs P_{T} iter 6,250,0,500,200,0.,200.);
153  DBOOK2D(NCH7vsPt, N_{charged} vs P_{T} iter 7,250,0,500,200,0.,200.);
154 
155 
156  DBOOK2D(RNEUTvsP,#DeltaE/E (ECAL+HCAL) vs P,250, 0, 1000, 150,-1.5,1.5);
157  DBOOK2D(RNONLvsP,#DeltaE/E (ECAL+HCAL-only) vs P,250, 0, 1000, 150,-1.5,1.5);
158  DBOOK2D(RHCALvsP,#DeltaE/E (HCAL) vs P,250, 0, 1000, 150,-1.5,1.5);
159  DBOOK2D(RHONLvsP,#DeltaE/E (HCAL only) vs P,250, 0, 1000, 150,-1.5,1.5);
160  DBOOK1D(RPt20_40,#DeltaP_{T}/P_{T},80,-1,1);
161  DBOOK1D(RPt40_60,#DeltaP_{T}/P_{T},80,-1,1);
162  DBOOK1D(RPt60_80,#DeltaP_{T}/P_{T},80,-1,1);
163  DBOOK1D(RPt80_100,#DeltaP_{T}/P_{T},80,-1,1);
164  DBOOK1D(RPt100_150,#DeltaP_{T}/P_{T},80,-1,1);
165  DBOOK1D(RPt150_200,#DeltaP_{T}/P_{T},80,-1,1);
166  DBOOK1D(RPt200_250,#DeltaP_{T}/P_{T},80,-1,1);
167  DBOOK1D(RPt250_300,#DeltaP_{T}/P_{T},80,-1,1);
168  DBOOK1D(RPt300_400,#DeltaP_{T}/P_{T},160,-1,1);
169  DBOOK1D(RPt400_500,#DeltaP_{T}/P_{T},160,-1,1);
170  DBOOK1D(RPt500_750,#DeltaP_{T}/P_{T},160,-1,1);
171  DBOOK1D(RPt750_1250,#DeltaP_{T}/P_{T},160,-1,1);
172  DBOOK1D(RPt1250_2000,#DeltaP_{T}/P_{T},160,-1,1);
173  DBOOK1D(RPt2000_5000,#DeltaP_{T}/P_{T},160,-1,1);
174 
175  DBOOK2D(DEtavsPt,#Delta#eta vs P_{T},1000,0,2000,500,-0.5,0.5);
176  DBOOK2D(DPhivsPt,#Delta#phi vs P_{T},1000,0,2000,500,-0.5,0.5);
177  BOOK2D(DEtavsEta,"#Delta#eta vs P_{T}",1000,-5.,+5.,500,-0.5,0.5);
178  BOOK2D(DPhivsEta,"#Delta#phi vs P_{T}",1000,-5.,+5.,500,-0.5,0.5);
179 
180  // Set Axis Titles
181 
182  // Jets inclusive distributions (Pt > 20 GeV)
183  SETAXES(Njets,"","Multiplicity");
184  SETAXES(jetsPt, PT, "Number of Events");
185  SETAXES(jetsEta, "#eta", "Number of Events");
186  SETAXES(RNeutvsEta, "#eta", "#DeltaE/E (Neutral)");
187  SETAXES(RNEUTvsEta, "#eta", "#DeltaE/E (ECAL+HCAL)");
188  SETAXES(RNONLvsEta, "#eta", "#DeltaE/E (ECAL+HCAL-only)");
189  SETAXES(RHCALvsEta, "#eta", "#DeltaE/E (HCAL)");
190  SETAXES(RHONLvsEta, "#eta", "#DeltaE/E (HCAL Only)");
191  SETAXES(RCHEvsEta, "#eta", "#DeltaE/E (Charged)");
192  SETAXES(RPtvsEta, "#eta", "#DeltaP_{T}/P_{T}");
193  SETAXES(DEtavsEta, "#eta", "#Delta#eta");
194  SETAXES(DPhivsEta,"#eta", "#Delta#phi");
195  // delta Pt or E quantities for Barrel and Endcap
196  DSETAXES(RPt, "#DeltaP_{T}/P_{T}", "Events");
197  DSETAXES(RPt20_40, "#DeltaP_{T}/P_{T}", "Events");
198  DSETAXES(RPt40_60, "#DeltaP_{T}/P_{T}", "Events");
199  DSETAXES(RPt60_80, "#DeltaP_{T}/P_{T}", "Events");
200  DSETAXES(RPt80_100, "#DeltaP_{T}/P_{T}", "Events");
201  DSETAXES(RPt100_150, "#DeltaP_{T}/P_{T}", "Events");
202  DSETAXES(RPt150_200, "#DeltaP_{T}/P_{T}", "Events");
203  DSETAXES(RPt200_250, "#DeltaP_{T}/P_{T}", "Events");
204  DSETAXES(RPt250_300, "#DeltaP_{T}/P_{T}", "Events");
205  DSETAXES(RPt300_400, "#DeltaP_{T}/P_{T}", "Events");
206  DSETAXES(RPt400_500, "#DeltaP_{T}/P_{T}", "Events");
207  DSETAXES(RPt500_750, "#DeltaP_{T}/P_{T}", "Events");
208  DSETAXES(RPt750_1250, "#DeltaP_{T}/P_{T}", "Events");
209  DSETAXES(RPt1250_2000, "#DeltaP_{T}/P_{T}", "Events");
210  DSETAXES(RPt2000_5000, "#DeltaP_{T}/P_{T}", "Events");
211  DSETAXES(RCHE, "#DeltaE/E(charged had)", "Events");
212  DSETAXES(RNHE, "#DeltaE/E(neutral had)", "Events");
213  DSETAXES(RNEE, "#DeltaE/E(neutral em)", "Events");
214  DSETAXES(Rneut, "#DeltaE/E(neutral)", "Events");
215  DSETAXES(RPtvsPt, PT, "#DeltaP_{T}/P_{T}");
216  DSETAXES(RCHEvsPt, PT, "#DeltaE/E(charged had)");
217  DSETAXES(RNHEvsPt, PT, "#DeltaE/E(neutral had)");
218  DSETAXES(RNEEvsPt, PT, "#DeltaE/E(neutral em)");
219  DSETAXES(RneutvsPt, PT, "#DeltaE/E(neutral)");
220  DSETAXES(RHCALvsP, P, "#DeltaE/E(HCAL)");
221  DSETAXES(RHONLvsP, P, "#DeltaE/E(HCAL-only)");
222  DSETAXES(RNEUTvsP, P, "#DeltaE/E(ECAL+HCAL)");
223  DSETAXES(RNONLvsP, P, "#DeltaE/E(ECAL+HCAL-only)");
224  DSETAXES(DEtavsPt, PT, "#Delta#eta");
225  DSETAXES(DPhivsPt, PT, "#Delta#phi");
226 
227 }
#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_
#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
#define debug
Definition: HDRShower.cc:19
tuple cout
Definition: gather_cfg.py:121
double recPt
#define DSETAXES(name, xtitle, ytitle)
long double T
#define DBOOK1D(name, title, nbinsx, lowx, highx)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:639
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().

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 }
DQMStore * dbe_
std::string outputFile_
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
Definition: DQMStore.cc:2424
tuple cout
Definition: gather_cfg.py:121

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().