53 |
|
doMuons = iConfig.getParameter<bool>("doMuons"); |
54 |
|
doTaus = iConfig.getParameter<bool>("doTaus"); |
55 |
|
doJets = iConfig.getParameter<bool>("doJets"); |
56 |
+ |
doGenJets = iConfig.getParameter<bool>("doGenJets"); |
57 |
|
doJECUncertainty = iConfig.getParameter<bool>("doJECUncertainty"); |
58 |
|
doGenTopJets = iConfig.getParameter<bool>("doGenTopJets"); |
59 |
|
doPhotons = iConfig.getParameter<bool>("doPhotons"); |
113 |
|
tr->Branch( jet_sources[j].c_str(), "std::vector<Jet>", &jets[j]); |
114 |
|
} |
115 |
|
} |
116 |
+ |
if(doGenJets){ |
117 |
+ |
genjet_sources = iConfig.getParameter<std::vector<std::string> >("genjet_sources"); |
118 |
+ |
genjet_ptmin = iConfig.getParameter<double> ("genjet_ptmin"); |
119 |
+ |
genjet_etamax = iConfig.getParameter<double> ("genjet_etamax"); |
120 |
+ |
for(size_t j=0; j< genjet_sources.size(); ++j){ |
121 |
+ |
tr->Branch( genjet_sources[j].c_str(), "std::vector<Particle>", &genjets[j]); |
122 |
+ |
} |
123 |
+ |
} |
124 |
|
if(doTopJets){ |
125 |
|
topjet_sources = iConfig.getParameter<std::vector<std::string> >("topjet_sources"); |
126 |
|
topjet_ptmin = iConfig.getParameter<double> ("topjet_ptmin"); |
311 |
|
for(reco::GenParticleCollection::const_iterator iter = genPartColl->begin(); iter != genPartColl->end(); ++ iter){ |
312 |
|
index++; |
313 |
|
|
314 |
< |
//write out only top quarks and status 3 particles (works fine only for MadGraph) |
315 |
< |
if(abs(iter->pdgId())==6 || iter->status()==3 || doAllGenParticles){ |
314 |
> |
//write out only top quarks,final state leptons and status 3 particles (works fine only for MadGraph) |
315 |
> |
bool islepton = iter->status()==1 && abs(iter->pdgId())>=11 && abs(iter->pdgId())<=16 ; |
316 |
> |
if(abs(iter->pdgId())==6 || iter->status()==3 || islepton || doAllGenParticles){ |
317 |
|
GenParticle genp; |
318 |
|
genp.set_charge(iter->charge()); |
319 |
|
genp.set_pt(iter->p4().pt()); |
528 |
|
tau.set_phi( pat_tau.phi()); |
529 |
|
tau.set_energy( pat_tau.energy()); |
530 |
|
tau.set_decayModeFinding ( pat_tau.tauID("decayModeFinding")>0.5); |
531 |
< |
tau.set_byVLooseCombinedIsolationDeltaBetaCorr ( pat_tau.tauID("byVLooseCombinedIsolationDeltaBetaCorr")>0.5); |
531 |
> |
//tau.set_byVLooseCombinedIsolationDeltaBetaCorr ( pat_tau.tauID("byVLooseCombinedIsolationDeltaBetaCorr")>0.5); |
532 |
|
tau.set_byLooseCombinedIsolationDeltaBetaCorr ( pat_tau.tauID("byLooseCombinedIsolationDeltaBetaCorr")>0.5); |
533 |
|
tau.set_byMediumCombinedIsolationDeltaBetaCorr ( pat_tau.tauID("byMediumCombinedIsolationDeltaBetaCorr")>0.5); |
534 |
|
tau.set_byTightCombinedIsolationDeltaBetaCorr ( pat_tau.tauID("byTightCombinedIsolationDeltaBetaCorr")>0.5); |
535 |
< |
tau.set_againstElectronLoose ( pat_tau.tauID("againstElectronLoose")>0.5); |
536 |
< |
tau.set_againstElectronMedium ( pat_tau.tauID("againstElectronMedium")>0.5); |
537 |
< |
tau.set_againstElectronTight ( pat_tau.tauID("againstElectronTight")>0.5); |
538 |
< |
tau.set_againstElectronMVA ( pat_tau.tauID("againstElectronMVA")>0.5); |
539 |
< |
tau.set_againstMuonLoose ( pat_tau.tauID("againstMuonLoose")>0.5); |
540 |
< |
tau.set_againstMuonMedium ( pat_tau.tauID("againstMuonMedium")>0.5); |
541 |
< |
tau.set_againstMuonTight ( pat_tau.tauID("againstMuonTight")>0.5); |
535 |
> |
tau.set_byLooseIsolationMVA( pat_tau.tauID("byLooseIsolationMVA")>0.5); |
536 |
> |
tau.set_byMediumIsolationMVA( pat_tau.tauID("byMediumIsolationMVA")>0.5); |
537 |
> |
tau.set_byTightIsolationMVA( pat_tau.tauID("byTightIsolationMVA")>0.5); |
538 |
> |
tau.set_byLooseIsolationMVA2( pat_tau.tauID("byLooseIsolationMVA2")>0.5); |
539 |
> |
tau.set_byMediumIsolationMVA2( pat_tau.tauID("byMediumIsolationMVA2")>0.5); |
540 |
> |
tau.set_byTightIsolationMVA2( pat_tau.tauID("byTightIsolationMVA2")>0.5); |
541 |
> |
tau.set_byLooseCombinedIsolationDeltaBetaCorr3Hits( pat_tau.tauID("byLooseCombinedIsolationDeltaBetaCorr3Hits")>0.5); |
542 |
> |
tau.set_byMediumCombinedIsolationDeltaBetaCorr3Hits ( pat_tau.tauID("byMediumCombinedIsolationDeltaBetaCorr3Hits")>0.5); |
543 |
> |
tau.set_byTightCombinedIsolationDeltaBetaCorr3Hits ( pat_tau.tauID("byTightCombinedIsolationDeltaBetaCorr3Hits")>0.5); |
544 |
> |
tau.set_againstElectronLooseMVA3 ( pat_tau.tauID("againstElectronLooseMVA3")>0.5); |
545 |
> |
tau.set_againstElectronMediumMVA3 ( pat_tau.tauID("againstElectronMediumMVA3")>0.5); |
546 |
> |
tau.set_againstElectronTightMVA3 ( pat_tau.tauID("againstElectronTightMVA3")>0.5); |
547 |
> |
tau.set_againstElectronVTightMVA3 ( pat_tau.tauID("againstElectronVTightMVA3")>0.5); |
548 |
> |
tau.set_againstMuonLoose2 ( pat_tau.tauID("againstMuonLoose2")>0.5); |
549 |
> |
tau.set_againstMuonMedium2 ( pat_tau.tauID("againstMuonMedium2")>0.5); |
550 |
> |
tau.set_againstMuonTight2 ( pat_tau.tauID("againstMuonTight2")>0.5); |
551 |
> |
tau.set_byIsolationMVAraw( pat_tau.tauID("byIsolationMVAraw")); |
552 |
> |
tau.set_byIsolationMVA2raw( pat_tau.tauID("byIsolationMVA2raw")); |
553 |
> |
tau.set_decayMode( pat_tau.decayMode() ); |
554 |
> |
tau.set_byCombinedIsolationDeltaBetaCorrRaw( pat_tau.tauID("byCombinedIsolationDeltaBetaCorrRaw")); |
555 |
> |
tau.set_byCombinedIsolationDeltaBetaCorrRaw3Hits( pat_tau.tauID("byCombinedIsolationDeltaBetaCorrRaw3Hits")); |
556 |
|
|
557 |
+ |
// std::cout << pat_tau.tauID("byCombinedIsolationDeltaBetaCorrRaw3Hits") << std::endl; |
558 |
+ |
|
559 |
|
// reco::PFCandidateRef leadPFCand = pat_tau.leadPFCand(); |
560 |
|
// if(!leadPFCand.isNull()){ |
561 |
|
// tau.set_leadPFCand_px ( leadPFCand->px()); |
572 |
|
} |
573 |
|
} |
574 |
|
|
575 |
+ |
//-------------- gen jets ------------- |
576 |
+ |
|
577 |
+ |
if(doGenJets){ |
578 |
+ |
for(size_t j=0; j< genjet_sources.size(); ++j){ |
579 |
+ |
|
580 |
+ |
genjets[j].clear(); |
581 |
+ |
|
582 |
+ |
edm::Handle< std::vector<reco::GenJet> > genjet_handle; |
583 |
+ |
iEvent.getByLabel(genjet_sources[j], genjet_handle); |
584 |
+ |
const std::vector<reco::GenJet>& gen_jets = *(genjet_handle.product()); |
585 |
+ |
|
586 |
+ |
for (unsigned int i = 0; i < gen_jets.size(); ++i) { |
587 |
+ |
const reco::GenJet* gen_jet = &gen_jets[i]; |
588 |
+ |
if(gen_jet->pt() < genjet_ptmin) continue; |
589 |
+ |
if(fabs(gen_jet->eta()) > genjet_etamax) continue; |
590 |
+ |
|
591 |
+ |
Particle jet; |
592 |
+ |
jet.set_charge(gen_jet->charge()); |
593 |
+ |
jet.set_pt(gen_jet->pt()); |
594 |
+ |
jet.set_eta(gen_jet->eta()); |
595 |
+ |
jet.set_phi(gen_jet->phi()); |
596 |
+ |
jet.set_energy(gen_jet->energy()); |
597 |
+ |
|
598 |
+ |
genjets[j].push_back(jet); |
599 |
+ |
|
600 |
+ |
} |
601 |
+ |
} |
602 |
+ |
} |
603 |
+ |
|
604 |
|
// ------------- jets ------------- |
605 |
|
if(doJets){ |
606 |
|
for(size_t j=0; j< jet_sources.size(); ++j){ |
662 |
|
|
663 |
|
const reco::GenJet *genj = pat_jet.genJet(); |
664 |
|
if(genj){ |
665 |
< |
jet.set_genjet_pt(genj->pt()); |
666 |
< |
jet.set_genjet_eta(genj->eta()); |
667 |
< |
jet.set_genjet_phi(genj->phi()); |
668 |
< |
jet.set_genjet_energy(genj->energy()); |
665 |
> |
|
666 |
> |
for(unsigned int k=0; k<genjets->size(); ++k){ |
667 |
> |
if(genj->pt()==genjets->at(k).pt() && genj->eta()==genjets->at(k).eta()) |
668 |
> |
jet.set_genjet_index(k); |
669 |
> |
} |
670 |
> |
// if( jet.genjet_index()<0){ |
671 |
> |
// std::cout<< "genjet not found for " << genj->pt() << " " << genj->eta() << std::endl; |
672 |
> |
// } |
673 |
> |
|
674 |
|
if(doAllGenParticles){ |
675 |
|
std::vector<const reco::GenParticle * > jetgenps = genj->getGenConstituents(); |
676 |
|
for(unsigned int l = 0; l<jetgenps.size(); ++l){ |
692 |
|
} |
693 |
|
} |
694 |
|
|
695 |
+ |
|
696 |
+ |
|
697 |
|
// ------------- top jets ------------- |
698 |
|
if(doTopJets){ |
699 |
|
for(size_t j=0; j< topjet_sources.size(); ++j){ |