12 #include "TLorentzVector.h" 65 jetSrc_ (params.getParameter<
edm::InputTag>(
"jetSrc")),
66 pfJetSrc_ (params.getParameter<
edm::InputTag>(
"pfJetSrc"))
70 push_back(
"Calo Cuts");
71 push_back(
"Calo Kin Cuts");
72 push_back(
"Calo Delta Phi");
73 push_back(
"Calo Jet ID");
75 push_back(
"PF Kin Cuts");
76 push_back(
"PF Delta Phi");
77 push_back(
"PF Jet ID");
89 caloCuts_ = index_type(&bits_,
std::string(
"Calo Cuts") );
90 caloKin_ = index_type(&bits_,
std::string(
"Calo Kin Cuts"));
91 caloDeltaPhi_ = index_type(&bits_,
std::string(
"Calo Delta Phi"));
92 caloJetID_ = index_type(&bits_,
std::string(
"Calo Jet ID"));
93 pfCuts_ = index_type(&bits_,
std::string(
"PF Cuts"));
94 pfKin_ = index_type(&bits_,
std::string(
"PF Kin Cuts"));
95 pfDeltaPhi_ = index_type(&bits_,
std::string(
"PF Delta Phi"));
96 pfJetID_ = index_type(&bits_,
std::string(
"PF Jet ID"));
108 if ( considerCut(caloCuts_) ) {
109 passCut(ret, caloCuts_);
110 event.getByLabel( jetSrc_, h_jets_ );
112 if ( h_jets_->size() >= 2 || ignoreCut(caloKin_) ) {
113 passCut(ret, caloKin_);
114 pat::Jet const & jet0 = h_jets_->at(0);
115 pat::Jet const & jet1 = h_jets_->at(1);
116 double dphi = fabs(deltaPhi<double>( jet0.
phi(),
119 if ( fabs(dphi -
TMath::Pi()) < 1.0 || ignoreCut(caloDeltaPhi_) ) {
120 passCut(ret, caloDeltaPhi_);
123 retCaloJet.
set(
false);
124 bool pass0 = (*jetSel_)( jet0, retCaloJet );
125 retCaloJet.
set(
false);
126 bool pass1 = (*jetSel_)( jet1, retCaloJet );
127 if ( (pass0 && pass1) || ignoreCut(caloJetID_) ) {
128 passCut(ret, caloJetID_);
139 if ( considerCut(pfCuts_) ) {
141 passCut(ret, pfCuts_);
142 event.getByLabel( pfJetSrc_, h_pfjets_ );
144 if ( h_pfjets_->size() >= 2 || ignoreCut(pfKin_) ) {
145 passCut( ret, pfKin_);
146 pat::Jet const & jet0 = h_pfjets_->at(0);
147 pat::Jet const & jet1 = h_pfjets_->at(1);
148 double dphi = fabs(deltaPhi<double>( jet0.
phi(),
151 if ( fabs(dphi -
TMath::Pi()) < 1.0 || ignoreCut(pfDeltaPhi_) ) {
152 passCut(ret, pfDeltaPhi_);
156 bool pass0 = (*pfJetSel_)( jet0, retPFJet );
158 bool pass1 = (*pfJetSel_)( jet1, retPFJet );
159 if ( (pass0 && pass1) || ignoreCut(pfJetID_) ) {
160 passCut(ret, pfJetID_);
176 std::shared_ptr<JetIDSelectionFunctor>
const &
jetSel()
const {
return jetSel_;}
177 std::shared_ptr<PFJetIDSelectionFunctor>
const &
pfJetSel()
const {
return pfJetSel_;}
179 vector<pat::Jet>
const &
allCaloJets ()
const {
return *h_jets_; }
180 vector<pat::Jet>
const &
allPFJets ()
const {
return *h_pfjets_; }
190 index_type
const &
caloCuts()
const {
return caloCuts_;}
191 index_type
const &
caloKin()
const {
return caloKin_;}
193 index_type
const &
caloJetID()
const {
return caloJetID_;}
194 index_type
const &
pfCuts()
const {
return pfCuts_;}
195 index_type
const &
pfKin()
const {
return pfKin_;}
197 index_type
const &
pfJetID()
const {
return pfJetID_;}
201 std::shared_ptr<JetIDSelectionFunctor>
jetSel_;
238 std::cout <<
"Usage : " << argv[0] <<
" [parameters.py]" << std::endl;
242 cout <<
"Hello from " << argv[0] <<
"!" << endl;
246 gSystem->Load(
"libFWCoreFWLite" );
250 cout <<
"Getting parameters" << endl;
253 std::shared_ptr<edm::ProcessDesc>
b = builder.
processDesc();
254 std::shared_ptr<edm::ParameterSet>
parameters = b->getProcessPSet();
255 parameters->registerIt();
265 cout <<
"Making RunLumiSelector" << endl;
268 cout <<
"setting up TFileService" << endl;
273 cout <<
"Setting up chain event" << endl;
279 cout <<
"Booking histograms" << endl;
282 std::map<std::string, TH1*>
hists;
284 hists[
"hist_nJet" ] = theDir.
make<TH1D>(
"hist_nJet" ,
"Number of Calo Jets", 10, 0, 10 ) ;
285 hists[
"hist_nPFJet" ] = theDir.
make<TH1D>(
"hist_nPFJet" ,
"Number of PF Jets", 10, 0, 10 ) ;
287 hists[
"hist_jetPt" ] = theDir.
make<TH1D>(
"hist_jetPt" ,
"Jet p_{T}", 400, 0, 400 ) ;
288 hists[
"hist_jetEtaVsPhi" ] = theDir.
make<TH2D>(
"hist_jetEtaVsPhi" ,
"Jet #phi versus #eta;#eta;#phi", 50, -5.0, 5.0, 50, -
TMath::Pi(),
TMath::Pi() ) ;
289 hists[
"hist_jetNTracks" ] = theDir.
make<TH1D>(
"hist_jetNTracks" ,
"Jet N_{TRACKS}", 20, 0, 20 ) ;
290 hists[
"hist_jetNTracksVsPt" ] = theDir.
make<TH2D>(
"hist_jetNTracksVsPt" ,
"Number of Tracks versus Jet p_{T};Jet p_{T}(GeV/c) ;N_{Tracks}",20, 0, 200, 20, 0, 20 ) ;
291 hists[
"hist_jetEMF" ] = theDir.
make<TH1D>(
"hist_jetEMF" ,
"Jet EMF", 200, 0, 1) ;
292 hists[
"hist_jetPdgID" ] = theDir.
make<TH1D>(
"hist_jetPdgID" ,
"PDG Id of Jet Constituents", 10000, 0, 10000 ) ;
293 hists[
"hist_jetGenEmE" ] = theDir.
make<TH1D>(
"hist_jetGenEmE" ,
"Gen Jet EM Energy", 200, 0, 200 ) ;
294 hists[
"hist_jetGenHadE" ] = theDir.
make<TH1D>(
"hist_jetGenHadE" ,
"Gen Jet HAD Energy", 200, 0, 200 ) ;
295 hists[
"hist_jetGenEMF" ] = theDir.
make<TH1D>(
"hist_jetGenEMF" ,
"Gen Jet EMF", 200, 0, 1) ;
296 hists[
"hist_jetEoverGenE" ] = theDir.
make<TH1D>(
"hist_jetEoverGenE" ,
"Energy of reco Jet / Energy of gen Jet", 200, 0, 2.0) ;
297 hists[
"hist_jetCorr" ] = theDir.
make<TH1D>(
"hist_jetCorr" ,
"Jet Correction Factor", 200, 0, 1.0 ) ;
298 hists[
"hist_n90Hits" ] = theDir.
make<TH1D>(
"hist_n90Hits" ,
"Jet n90Hits", 20, 0, 20) ;
299 hists[
"hist_fHPD" ] = theDir.
make<TH1D>(
"hist_fHPD" ,
"Jet fHPD", 200, 0, 1) ;
300 hists[
"hist_nConstituents" ] = theDir.
make<TH1D>(
"hist_nConstituents" ,
"Jet nConstituents", 20, 0, 20 ) ;
301 hists[
"hist_jetCHF" ] = theDir.
make<TH1D>(
"hist_jetCHF" ,
"Jet Charged Hadron Fraction", 200, 0, 1.0) ;
303 hists[
"hist_good_jetPt" ] = theDir.
make<TH1D>(
"hist_good_jetPt" ,
"Jet p_{T}", 400, 0, 400 ) ;
304 hists[
"hist_good_jetEtaVsPhi" ] = theDir.
make<TH2D>(
"hist_good_jetEtaVsPhi" ,
"Jet #phi versus #eta;#eta;#phi", 50, -5.0, 5.0, 50, -
TMath::Pi(),
TMath::Pi() ) ;
305 hists[
"hist_good_jetNTracks" ] = theDir.
make<TH1D>(
"hist_good_jetNTracks" ,
"Jet N_{TRACKS}", 20, 0, 20 ) ;
306 hists[
"hist_good_jetNTracksVsPt" ] = theDir.
make<TH2D>(
"hist_good_jetNTracksVsPt" ,
"Number of Tracks versus Jet p_{T};Jet p_{T}(GeV/c) ;N_{Tracks}",20, 0, 200, 20, 0, 20 ) ;
307 hists[
"hist_good_jetEMF" ] = theDir.
make<TH1D>(
"hist_good_jetEMF" ,
"Jet EMF", 200, 0, 1) ;
308 hists[
"hist_good_jetPdgID" ] = theDir.
make<TH1D>(
"hist_good_jetPdgID" ,
"PDG Id of Jet Constituents", 10000, 0, 10000 ) ;
309 hists[
"hist_good_jetGenEmE" ] = theDir.
make<TH1D>(
"hist_good_jetGenEmE" ,
"Gen Jet EM Energy", 200, 0, 200 ) ;
310 hists[
"hist_good_jetGenHadE" ] = theDir.
make<TH1D>(
"hist_good_jetGenHadE" ,
"Gen Jet HAD Energy", 200, 0, 200 ) ;
311 hists[
"hist_good_jetGenEMF" ] = theDir.
make<TH1D>(
"hist_good_jetGenEMF" ,
"Gen Jet EMF", 200, 0, 1) ;
312 hists[
"hist_good_jetEoverGenE" ] = theDir.
make<TH1D>(
"hist_good_jetEoverGenE" ,
"Energy of reco Jet / Energy of gen Jet", 200, 0, 2.0) ;
313 hists[
"hist_good_jetCorr" ] = theDir.
make<TH1D>(
"hist_good_jetCorr" ,
"Jet Correction Factor", 200, 0, 1.0 ) ;
314 hists[
"hist_good_n90Hits" ] = theDir.
make<TH1D>(
"hist_good_n90Hits" ,
"Jet n90Hits", 20, 0, 20) ;
315 hists[
"hist_good_fHPD" ] = theDir.
make<TH1D>(
"hist_good_fHPD" ,
"Jet fHPD", 200, 0, 1) ;
316 hists[
"hist_good_nConstituents" ] = theDir.
make<TH1D>(
"hist_good_nConstituents" ,
"Jet nConstituents", 20, 0, 20 ) ;
317 hists[
"hist_good_jetCHF" ] = theDir.
make<TH1D>(
"hist_good_jetCHF" ,
"Jet Charged Hadron Fraction", 200, 0, 1.0) ;
320 hists[
"hist_pf_jetPt" ] = theDir.
make<TH1D>(
"hist_pf_jetPt" ,
"PFJet p_{T}", 400, 0, 400 ) ;
321 hists[
"hist_pf_jetEtaVsPhi" ] = theDir.
make<TH2D>(
"hist_pf_jetEtaVsPhi" ,
"PFJet #phi versus #eta;#eta;#phi", 50, -5.0, 5.0, 50, -
TMath::Pi(),
TMath::Pi() ) ;
322 hists[
"hist_pf_jetNTracks" ] = theDir.
make<TH1D>(
"hist_pf_jetNTracks" ,
"PFJet N_{TRACKS}", 20, 0, 20 ) ;
323 hists[
"hist_pf_jetNTracksVsPt" ] = theDir.
make<TH2D>(
"hist_pf_jetNTracksVsPt" ,
"Number of Tracks versus Jet p_{T};Jet p_{T}(GeV/c) ;N_{Tracks}",20, 0, 200, 20, 0, 20 ) ;
324 hists[
"hist_pf_jetEMF" ] = theDir.
make<TH1D>(
"hist_pf_jetEMF" ,
"PFJet EMF", 200, 0, 1) ;
325 hists[
"hist_pf_jetCHF" ] = theDir.
make<TH1D>(
"hist_pf_jetCHF" ,
"PFJet CHF", 200, 0, 1) ;
326 hists[
"hist_pf_jetNHF" ] = theDir.
make<TH1D>(
"hist_pf_jetNHF" ,
"PFJet NHF", 200, 0, 1) ;
327 hists[
"hist_pf_jetCEF" ] = theDir.
make<TH1D>(
"hist_pf_jetCEF" ,
"PFJet CEF", 200, 0, 1) ;
328 hists[
"hist_pf_jetNEF" ] = theDir.
make<TH1D>(
"hist_pf_jetNEF" ,
"PFJet NEF", 200, 0, 1) ;
329 hists[
"hist_pf_jetPdgID" ] = theDir.
make<TH1D>(
"hist_pf_jetPdgID" ,
"PDG Id of Jet Constituents", 10000, 0, 10000 ) ;
330 hists[
"hist_pf_jetGenEmE" ] = theDir.
make<TH1D>(
"hist_pf_jetGenEmE" ,
"Gen Jet EM Energy", 200, 0, 200 ) ;
331 hists[
"hist_pf_jetGenHadE" ] = theDir.
make<TH1D>(
"hist_pf_jetGenHadE" ,
"Gen Jet HAD Energy", 200, 0, 200 ) ;
332 hists[
"hist_pf_jetGenEMF" ] = theDir.
make<TH1D>(
"hist_pf_jetGenEMF" ,
"Gen Jet EMF", 200, 0, 1) ;
333 hists[
"hist_pf_jetEoverGenE" ] = theDir.
make<TH1D>(
"hist_pf_jetEoverGenE" ,
"Energy of reco Jet / Energy of gen Jet", 200, 0, 2.0) ;
334 hists[
"hist_pf_jetCorr" ] = theDir.
make<TH1D>(
"hist_pf_jetCorr" ,
"PFJet Correction Factor", 200, 0, 1.0 ) ;
335 hists[
"hist_pf_nConstituents" ] = theDir.
make<TH1D>(
"hist_pf_nConstituents" ,
"PFJet nConstituents", 20, 0, 20 ) ;
337 hists[
"hist_pf_good_jetPt" ] = theDir.
make<TH1D>(
"hist_pf_good_jetPt" ,
"PFJet p_{T}", 400, 0, 400 ) ;
338 hists[
"hist_pf_good_jetEtaVsPhi" ] = theDir.
make<TH2D>(
"hist_pf_good_jetEtaVsPhi" ,
"PFJet #phi versus #eta;#eta;#phi", 50, -5.0, 5.0, 50, -
TMath::Pi(),
TMath::Pi() ) ;
339 hists[
"hist_pf_good_jetNTracks" ] = theDir.
make<TH1D>(
"hist_pf_good_jetNTracks" ,
"PFJet N_{TRACKS}", 20, 0, 20 ) ;
340 hists[
"hist_pf_good_jetNTracksVsPt" ] = theDir.
make<TH2D>(
"hist_pf_good_jetNTracksVsPt",
"Number of Tracks versus Jet p_{T};Jet p_{T}(GeV/c) ;N_{Tracks}",20, 0, 200, 20, 0, 20 ) ;
341 hists[
"hist_pf_good_jetEMF" ] = theDir.
make<TH1D>(
"hist_pf_good_jetEMF" ,
"PFJet EMF", 200, 0, 1) ;
342 hists[
"hist_pf_good_jetCHF" ] = theDir.
make<TH1D>(
"hist_pf_good_jetCHF" ,
"PFJet CHF", 200, 0, 1) ;
343 hists[
"hist_pf_good_jetNHF" ] = theDir.
make<TH1D>(
"hist_pf_good_jetNHF" ,
"PFJet NHF", 200, 0, 1) ;
344 hists[
"hist_pf_good_jetCEF" ] = theDir.
make<TH1D>(
"hist_pf_good_jetCEF" ,
"PFJet CEF", 200, 0, 1) ;
345 hists[
"hist_pf_good_jetNEF" ] = theDir.
make<TH1D>(
"hist_pf_good_jetNEF" ,
"PFJet NEF", 200, 0, 1) ;
346 hists[
"hist_pf_good_jetPdgID" ] = theDir.
make<TH1D>(
"hist_pf_good_jetPdgID" ,
"PDG Id of Jet Constituents", 10000, 0, 10000 ) ;
347 hists[
"hist_pf_good_jetGenEmE" ] = theDir.
make<TH1D>(
"hist_pf_good_jetGenEmE" ,
"Gen Jet EM Energy", 200, 0, 200 ) ;
348 hists[
"hist_pf_good_jetGenHadE" ] = theDir.
make<TH1D>(
"hist_pf_good_jetGenHadE" ,
"Gen Jet HAD Energy", 200, 0, 200 ) ;
349 hists[
"hist_pf_good_jetGenEMF" ] = theDir.
make<TH1D>(
"hist_pf_good_jetGenEMF" ,
"Gen Jet EMF", 200, 0, 1) ;
350 hists[
"hist_pf_good_jetEoverGenE" ] = theDir.
make<TH1D>(
"hist_pf_good_jetEoverGenE" ,
"Energy of reco Jet / Energy of gen Jet", 200, 0, 2.0) ;
351 hists[
"hist_pf_good_jetCorr" ] = theDir.
make<TH1D>(
"hist_pf_good_jetCorr" ,
"PFJet Correction Factor", 200, 0, 1.0 ) ;
352 hists[
"hist_pf_good_nConstituents" ] = theDir.
make<TH1D>(
"hist_pf_good_nConstituents" ,
"PFJet nConstituents", 20, 0, 20 ) ;
354 hists[
"hist_mjj" ] = theDir.
make<TH1D>(
"hist_mjj" ,
"Dijet mass", 300, 0, 300 ) ;
355 hists[
"hist_dR_jj" ] = theDir.
make<TH1D>(
"hist_dR_jj" ,
"#Delta R_{JJ}", 200, 0,
TMath::TwoPi() ) ;
356 hists[
"hist_imbalance_jj" ] = theDir.
make<TH1D>(
"hist_imbalance_jj" ,
"Dijet imbalance", 200, -1.0, 1.0 ) ;
358 hists[
"hist_pf_mjj" ] = theDir.
make<TH1D>(
"hist_pf_mjj" ,
"Dijet mass", 300, 0, 300 ) ;
359 hists[
"hist_pf_dR_jj" ] = theDir.
make<TH1D>(
"hist_pf_dR_jj" ,
"#Delta R_{JJ}", 200, 0,
TMath::TwoPi() ) ;
360 hists[
"hist_pf_imbalance_jj" ] = theDir.
make<TH1D>(
"hist_pf_imbalance_jj" ,
"Dijet imbalance", 200, -1.0, 1.0 ) ;
364 cout <<
"Making functors" << endl;
371 pfJetStudiesParams );
373 bool doTracks = plotParameters.getParameter<
bool>(
"doTracks");
374 bool useMC = plotParameters.getParameter<
bool>(
"useMC");
376 cout <<
"About to begin looping" << endl;
385 if ( runLumiSel(ev) ==
false )
continue;
387 if ( nev % 100 == 0 )
cout <<
"Processing run " <<
event.id().run() <<
", lumi " <<
event.id().luminosityBlock() <<
", event " <<
event.id().event() << endl;
393 caloSelector(
event, retCalo );
397 pfSelector(
event, retPF );
404 vector<pat::Jet>
const & allCaloJets = caloSelector.
allCaloJets();
406 for ( std::vector<pat::Jet>::const_iterator jetBegin = allCaloJets.begin(),
407 jetEnd = jetBegin + 2, ijet = jetBegin;
408 ijet != jetEnd; ++ijet ) {
412 double pt = jet.
pt();
416 hists[
"hist_jetPt"]->Fill( pt );
417 hists[
"hist_jetEtaVsPhi"]->Fill( jet.
eta(), jet.
phi() );
418 hists[
"hist_jetNTracks"]->Fill( jetTracks.
size() );
419 hists[
"hist_jetNTracksVsPt"]->Fill( pt, jetTracks.
size() );
421 hists[
"hist_jetCorr"]->Fill( jet.
jecFactor(
"Uncorrected") );
422 hists[
"hist_n90Hits"]->Fill( static_cast<int>(jet.
jetID().
n90Hits) );
423 hists[
"hist_fHPD"]->Fill( jet.
jetID().
fHPD );
426 if ( useMC && jet.
genJet() != 0 ) {
433 TLorentzVector p4_tracks(0,0,0,0);
435 itrkEnd = jetTracks.
end();
436 itrk != itrkEnd; ++itrk ) {
437 TLorentzVector p4_trk;
438 double M_PION = 0.140;
439 p4_trk.SetPtEtaPhiM( (*itrk)->pt(), (*itrk)->eta(), (*itrk)->phi(), M_PION );
442 hists[
"hist_jetCHF"]->Fill( p4_tracks.Energy() / jet.
energy() );
454 TLorentzVector p4_j0( jet0.
px(), jet0.
py(), jet0.
pz(), jet0.
energy() );
455 TLorentzVector p4_j1( jet1.
px(), jet1.
py(), jet1.
pz(), jet1.
energy() );
457 TLorentzVector p4_jj = p4_j0 + p4_j1;
459 hists[
"hist_mjj"]->Fill( p4_jj.M() );
460 hists[
"hist_dR_jj"]->Fill( p4_j0.DeltaR( p4_j1 ) );
461 hists[
"hist_imbalance_jj"]->Fill( (p4_j0.Perp() - p4_j1.Perp() ) /
462 (p4_j0.Perp() + p4_j1.Perp() ) );
464 hists[
"hist_good_jetPt"]->Fill( jet0.
pt() );
465 hists[
"hist_good_jetEtaVsPhi"]->Fill( jet0.
eta(), jet0.
phi() );
469 hists[
"hist_good_jetCorr"]->Fill( jet0.
jecFactor(
"Uncorrected") );
470 hists[
"hist_good_n90Hits"]->Fill( static_cast<int>(jet0.
jetID().
n90Hits) );
471 hists[
"hist_good_fHPD"]->Fill( jet0.
jetID().
fHPD );
472 hists[
"hist_good_nConstituents"]->Fill( jet0.
nConstituents() );
475 hists[
"hist_good_jetPt"]->Fill( jet1.
pt() );
476 hists[
"hist_good_jetEtaVsPhi"]->Fill( jet1.
eta(), jet1.
phi() );
480 hists[
"hist_good_jetCorr"]->Fill( jet1.
jecFactor(
"Uncorrected") );
481 hists[
"hist_good_n90Hits"]->Fill( static_cast<int>(jet1.
jetID().
n90Hits) );
482 hists[
"hist_good_fHPD"]->Fill( jet1.
jetID().
fHPD );
483 hists[
"hist_good_nConstituents"]->Fill( jet1.
nConstituents() );
495 vector<pat::Jet>
const & allPFJets = pfSelector.
allPFJets();
497 for ( std::vector<pat::Jet>::const_iterator jetBegin = allPFJets.begin(),
498 jetEnd = jetBegin + 2, ijet = jetBegin;
499 ijet != jetEnd; ++ijet ) {
503 double pt = jet.
pt();
505 hists[
"hist_pf_jetPt"]->Fill( pt );
506 hists[
"hist_pf_jetEtaVsPhi"]->Fill( jet.
eta(), jet.
phi() );
514 if ( useMC && jet.
genJet() != 0 ) {
530 TLorentzVector p4_j0( jet0.
px(), jet0.
py(), jet0.
pz(), jet0.
energy() );
531 TLorentzVector p4_j1( jet1.
px(), jet1.
py(), jet1.
pz(), jet1.
energy() );
533 TLorentzVector p4_jj = p4_j0 + p4_j1;
535 hists[
"hist_pf_mjj"]->Fill( p4_jj.M() );
536 hists[
"hist_pf_dR_jj"]->Fill( p4_j0.DeltaR( p4_j1 ) );
537 hists[
"hist_pf_imbalance_jj"]->Fill( (p4_j0.Perp() - p4_j1.Perp() ) /
538 (p4_j0.Perp() + p4_j1.Perp() ) );
540 hists[
"hist_pf_good_jetPt"]->Fill( jet0.
pt() );
541 hists[
"hist_pf_good_jetEtaVsPhi"]->Fill( jet0.
eta(), jet0.
phi() );
542 hists[
"hist_pf_good_nConstituents"]->Fill( jet0.
nConstituents() );
549 hists[
"hist_pf_good_jetPt"]->Fill( jet1.
pt() );
550 hists[
"hist_pf_good_jetEtaVsPhi"]->Fill( jet1.
eta(), jet1.
phi() );
551 hists[
"hist_pf_good_nConstituents"]->Fill( jet1.
nConstituents() );
563 cout <<
"Calo jet selection" << endl;
565 cout <<
"PF jet selection" << endl;
ChainEvent const & toBegin() override
T getParameter(std::string const &) const
virtual double pt() const final
transverse momentum
float neutralHadronEnergyFraction() const
neutralHadronEnergyFraction (relative to uncorrected jet energy)
index_type const & pfKin() const
pat::Jet const & pfJet0() const
virtual double eta() const final
momentum pseudorapidity
float chargedHadronEnergyFraction() const
chargedHadronEnergyFraction (relative to uncorrected jet energy)
index_type const & pfDeltaPhi() const
const reco::TrackRefVector & associatedTracks() const
method to return a vector of refs to the tracks associated to this jet
float chargedEmEnergyFraction() const
chargedEmEnergyFraction (relative to uncorrected jet energy)
pat::Jet const & caloJet0() const
int main(int argc, char *argv[])
const_iterator end() const
Termination of iteration.
virtual ~JetIDStudiesSelector()
const_iterator begin() const
Initialize an iterator over the RefVector.
virtual double phi() const final
momentum azimuthal angle
virtual double px() const final
x coordinate of momentum vector
virtual double energy() const final
energy
static void enable()
enable automatic library loading
std::shared_ptr< JetIDSelectionFunctor > const & jetSel() const
pat::Jet const & pfJet1() const
pat::Jet const & caloJet1() const
index_type const & caloJetID() const
virtual bool atEnd() const override
T * make(const Args &...args) const
make new ROOT object
PF Jet selector for pat::Jets.
float emEnergyFraction() const
returns the jet electromagnetic energy fraction
edm::Ptr< pat::Jet > pfJet0_
edm::Handle< vector< pat::Jet > > h_jets_
virtual double pz() const final
z coordinate of momentum vector
index_type const & caloDeltaPhi() const
Jet selector for pat::Jets and for CaloJets.
std::shared_ptr< JetIDSelectionFunctor > jetSel_
reco::JetID const & jetID() const
accessing Jet ID information
vector< pat::Jet > const & allPFJets() const
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
strbitset & set(bool val=true)
set method of all bits
std::shared_ptr< PFJetIDSelectionFunctor > const & pfJetSel() const
Analysis-level calorimeter jet class.
std::shared_ptr< PFJetIDSelectionFunctor > pfJetSel_
bool test(std::string s) const
test
vector< pat::Jet > const & allCaloJets() const
index_type const & caloCuts() const
virtual int nConstituents() const
of constituents
const reco::GenJet * genJet() const
return the matched generated jet
edm::Handle< vector< pat::Jet > > h_pfjets_
size_type size() const
Size of the RefVector.
edm::Ptr< pat::Jet > pfJet1_
index_type const & pfJetID() const
virtual bool operator()(edm::EventBase const &event, pat::strbitset &ret) override
float jecFactor(const std::string &level, const std::string &flavor="none", const std::string &set="") const
float neutralEmEnergyFraction() const
neutralEmEnergyFraction (relative to uncorrected jet energy)
edm::Ptr< pat::Jet > caloJet1_
JetIDStudiesSelector(edm::ParameterSet const &caloJetIdParams, edm::ParameterSet const &pfJetIdParams, edm::ParameterSet const ¶ms)
edm::Ptr< pat::Jet > caloJet0_
std::shared_ptr< edm::ProcessDesc > processDesc() const
index_type const & caloKin() const
virtual double py() const final
y coordinate of momentum vector
index_type const & pfCuts() const