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 }
int i
Definition: DBlmapReader.cc:9
virtual int pdgId() const
PDG identifier.
virtual double energy() const
energy
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
virtual std::vector< const GenParticle * > getGenConstituents() const
get all constituents
Definition: GenJet.cc:58
void PFJetBenchmark::printGenJet ( const reco::GenJet truth)

Definition at line 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 int pdgId() const
PDG identifier.
virtual double p() const
magnitude of momentum vector
virtual float pt() const
transverse momentum
virtual float phi() const
momentum azimuthal angle
virtual float eta() const
momentum pseudorapidity
virtual std::vector< const GenParticle * > getGenConstituents() const
get all constituents
Definition: GenJet.cc:58
virtual double px() const
x coordinate of momentum vector
virtual double pz() const
z coordinate of momentum vector
tuple cout
Definition: gather_cfg.py:121
virtual double py() const
y coordinate of momentum vector
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 }
virtual double p() const
magnitude of momentum vector
float chargedEmEnergy() const
chargedEmEnergy
Definition: PFJet.h:142
virtual float pt() const
transverse momentum
virtual float phi() const
momentum azimuthal angle
int chargedMultiplicity() const
chargedMultiplicity
Definition: PFJet.h:155
float neutralEmEnergy() const
neutralEmEnergy
Definition: PFJet.h:150
virtual float eta() const
momentum pseudorapidity
virtual std::string print() const
Print object in details.
Definition: PFJet.cc:83
int neutralMultiplicity() const
neutralMultiplicity
Definition: PFJet.h:157
virtual double px() const
x coordinate of momentum vector
virtual double pz() const
z coordinate of momentum vector
float neutralHadronEnergy() const
neutralHadronEnergy
Definition: PFJet.h:102
tuple cout
Definition: gather_cfg.py:121
float chargedMuEnergy() const
chargedMuEnergy
Definition: PFJet.h:146
float chargedHadronEnergy() const
chargedHadronEnergy
Definition: PFJet.h:98
virtual double py() const
y coordinate of momentum vector
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_, IterativeDetachedTripletStep_cff::detachedTripletStep, 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, InitialStep_cff::initialStep, edm::Ref< C, T, F >::isNull(), getDQMSummary::iter, j, PFBenchmarkAlgo::matchByDeltaR(), maxEta_cut, IterativeMixedTripletStep_cff::mixedTripletStep, reco::PFJet::neutralEmEnergy(), reco::PFJet::neutralHadronEnergy(), onlyTwoJets_, reco::LeafCandidate::p(), reco::LeafCandidate::phi(), PixelLessStep_cff::pixelLessStep, plotAgainstReco_, printGenJet(), printPFJet(), EnergyCorrector::pt, reco::LeafCandidate::pt(), recPt_cut, resChargedHadEnergyMax_, resNeutralEmEnergyMax_, resNeutralHadEnergyMax_, and resPtMax_.

Referenced by ConfigBuilder.ConfigBuilder::__init__(), ConfigBuilder.ConfigBuilder::addExtraStream(), PFJetBenchmarkAnalyzer::analyze(), ConfigBuilder.ConfigBuilder::anyOf(), ConfigBuilder.ConfigBuilder::completeInputCommand(), ConfigBuilder.ConfigBuilder::doNotInlineEventContent(), ConfigBuilder.ConfigBuilder.PrintAllModules::leave(), ConfigBuilder.ConfigBuilder::prepare(), ConfigBuilder.ConfigBuilder::prepare_ALCA(), ConfigBuilder.ConfigBuilder::prepare_DQM(), ConfigBuilder.ConfigBuilder::prepare_FASTSIM(), ConfigBuilder.ConfigBuilder::prepare_HARVESTING(), 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:
320  iter = 0;
321  break;
322  case TrackBase::lowPtTripletStep:
323  iter = 1;
324  break;
325  case TrackBase::pixelPairStep:
326  iter = 2;
327  break;
329  iter = 3;
330  break;
332  iter = 4;
333  break;
335  iter = 5;
336  break;
337  case TrackBase::tobTecStep:
338  iter = 6;
339  break;
340  case TrackBase::conversionStep:
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
magnitude of momentum vector
virtual float pt() const
transverse momentum
virtual float phi() const
momentum azimuthal angle
int chargedMultiplicity() const
chargedMultiplicity
Definition: PFJet.h:155
Jets made from PFObjects.
Definition: PFJet.h:21
float neutralEmEnergy() const
neutralEmEnergy
Definition: PFJet.h:150
unsigned int entry_
void gettrue(const reco::GenJet *truth, double &true_ChargedHadEnergy, double &true_NeutralHadEnergy, double &true_NeutralEmEnergy)
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
virtual float eta() const
momentum pseudorapidity
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_
bool isNull() const
Checks for null.
Definition: Ref.h:247
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:102
tuple cout
Definition: gather_cfg.py:121
double resNeutralEmEnergyMax_
tuple pfJets
Definition: pfJets_cff.py:8
void printGenJet(const reco::GenJet *)
float chargedHadronEnergy() const
chargedHadronEnergy
Definition: PFJet.h:98
double PFJetBenchmark::resChargedHadEnergyMax ( ) const
inline

Definition at line 54 of file PFJetBenchmark.h.

References resChargedHadEnergyMax_.

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

Definition at line 56 of file PFJetBenchmark.h.

References resNeutralEmEnergyMax_.

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, getDQMSummary::iter, maxEta, maxEta_cut, NULL, onlyTwoJets, onlyTwoJets_, outputFile_, P, cmsHarvester::path, phi, plotAgainstReco, plotAgainstReco_, PT, recPt, recPt_cut, and SETAXES.

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)
tuple path
else: Piece not in the list, fine.
#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)
Definition: DDAxes.h:10
void PFJetBenchmark::write ( void  )

Definition at line 46 of file PFJetBenchmark.cc.

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

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