50 |
|
doMuons = iConfig.getParameter<bool>("doMuons"); |
51 |
|
doTaus = iConfig.getParameter<bool>("doTaus"); |
52 |
|
doJets = iConfig.getParameter<bool>("doJets"); |
53 |
+ |
doGenTopJets = iConfig.getParameter<bool>("doGenTopJets"); |
54 |
|
doPhotons = iConfig.getParameter<bool>("doPhotons"); |
55 |
|
doMET = iConfig.getParameter<bool>("doMET"); |
56 |
|
doGenInfo = iConfig.getParameter<bool>("doGenInfo"); |
112 |
|
tr->Branch( topjet_sources[j].c_str(), "std::vector<TopJet>", &topjets[j]); |
113 |
|
} |
114 |
|
} |
115 |
+ |
if(doGenTopJets){ |
116 |
+ |
gentopjet_sources = iConfig.getParameter<std::vector<std::string> >("gentopjet_sources"); |
117 |
+ |
gentopjet_ptmin = iConfig.getParameter<double> ("gentopjet_ptmin"); |
118 |
+ |
gentopjet_etamax = iConfig.getParameter<double> ("gentopjet_etamax"); |
119 |
+ |
for(size_t j=0; j< gentopjet_sources.size(); ++j){ |
120 |
+ |
tr->Branch( gentopjet_sources[j].c_str(), "std::vector<TopJet>", &gentopjets[j]); |
121 |
+ |
} |
122 |
+ |
} |
123 |
|
if(doPhotons){ |
124 |
|
photon_sources = iConfig.getParameter<std::vector<std::string> >("photon_sources"); |
125 |
|
for(size_t j=0; j< photon_sources.size(); ++j){ |
275 |
|
ele.fbrem=pat_ele.fbrem(); |
276 |
|
ele.EoverPIn=pat_ele.eSuperClusterOverP(); |
277 |
|
ele.EcalEnergy=pat_ele.ecalEnergy(); |
278 |
< |
ele.mvaTrigV0=pat_ele.electronID("mvaTrigV0"); |
279 |
< |
ele.mvaNonTrigV0=pat_ele.electronID("mvaNonTrigV0"); |
278 |
> |
//ele.mvaTrigV0=pat_ele.electronID("mvaTrigV0"); |
279 |
> |
//ele.mvaNonTrigV0=pat_ele.electronID("mvaNonTrigV0"); |
280 |
|
|
281 |
|
eles[j].push_back(ele); |
282 |
|
} |
507 |
|
iEvent.getByLabel(topjet_sources[j], pat_topjets); |
508 |
|
|
509 |
|
for (unsigned int i = 0; i < pat_topjets->size(); i++) { |
510 |
+ |
|
511 |
|
const pat::Jet pat_topjet = * dynamic_cast<pat::Jet const *>(&pat_topjets->at(i)); |
512 |
|
if(pat_topjet.pt() < topjet_ptmin) continue; |
513 |
|
if(fabs(pat_topjet.eta()) > topjet_etamax) continue; |
568 |
|
} |
569 |
|
} |
570 |
|
|
571 |
+ |
|
572 |
+ |
// ------------- generator top jets ------------- |
573 |
+ |
if(doGenTopJets){ |
574 |
+ |
for(size_t j=0; j< gentopjet_sources.size(); ++j){ |
575 |
+ |
|
576 |
+ |
gentopjets[j].clear(); |
577 |
+ |
|
578 |
+ |
edm::Handle<reco::BasicJetCollection> reco_gentopjets; |
579 |
+ |
//edm::Handle<std::vector<reco::Jet> > reco_gentopjets; |
580 |
+ |
iEvent.getByLabel(gentopjet_sources[j], reco_gentopjets); |
581 |
+ |
|
582 |
+ |
for (unsigned int i = 0; i < reco_gentopjets->size(); i++) { |
583 |
+ |
|
584 |
+ |
const reco::BasicJet reco_gentopjet = reco_gentopjets->at(i); |
585 |
+ |
if(reco_gentopjet.pt() < gentopjet_ptmin) continue; |
586 |
+ |
if(fabs(reco_gentopjet.eta()) > gentopjet_etamax) continue; |
587 |
+ |
|
588 |
+ |
TopJet gentopjet; |
589 |
+ |
gentopjet.charge = reco_gentopjet.charge(); |
590 |
+ |
gentopjet.pt = reco_gentopjet.pt(); |
591 |
+ |
gentopjet.eta = reco_gentopjet.eta(); |
592 |
+ |
gentopjet.phi = reco_gentopjet.phi(); |
593 |
+ |
gentopjet.energy = reco_gentopjet.energy(); |
594 |
+ |
gentopjet.numberOfDaughters =reco_gentopjet.numberOfDaughters(); |
595 |
+ |
|
596 |
+ |
for (unsigned int k = 0; k < reco_gentopjet.numberOfDaughters(); k++) { |
597 |
+ |
Particle subjet_v4; |
598 |
+ |
subjet_v4.pt = reco_gentopjet.daughter(k)->p4().pt(); |
599 |
+ |
subjet_v4.eta = reco_gentopjet.daughter(k)->p4().eta(); |
600 |
+ |
subjet_v4.phi = reco_gentopjet.daughter(k)->p4().phi(); |
601 |
+ |
subjet_v4.energy = reco_gentopjet.daughter(k)->p4().E(); |
602 |
+ |
gentopjet.subjets.push_back(subjet_v4); |
603 |
+ |
} |
604 |
+ |
gentopjets[j].push_back(gentopjet); |
605 |
+ |
} |
606 |
+ |
} |
607 |
+ |
} |
608 |
+ |
|
609 |
|
// ------------- photons ------------- |
610 |
|
if(doPhotons){ |
611 |
|
for(size_t j=0; j< photon_sources.size(); ++j){ |
787 |
|
|
788 |
|
int nm=iter->numberOfMothers(); |
789 |
|
int nd=iter->numberOfDaughters(); |
790 |
+ |
|
791 |
|
|
792 |
|
if (nm>0) genp.mother1 = iter->motherRef(0).key(); |
793 |
< |
if (nm>1) genp.mother2 = iter->motherRef(nm-1).key(); |
793 |
> |
if (nm>1) genp.mother2 = iter->motherRef(1).key(); |
794 |
|
if (nd>0) genp.daughter1 = iter->daughterRef(0).key(); |
795 |
< |
if (nd>1) genp.daughter2 = iter->daughterRef(nd-1).key(); |
796 |
< |
|
795 |
> |
if (nd>1) genp.daughter2 = iter->daughterRef(1).key(); |
796 |
> |
//std::cout << genp.index <<" pdgId = " << genp.pdgId << " mo1 = " << genp.mother1 << " mo2 = " << genp.mother2 <<" da1 = " << genp.daughter1 << " da2 = " << genp.daughter2 <<std::endl; |
797 |
|
genps.push_back(genp); |
798 |
|
} |
799 |
|
} |