17 |
|
// |
18 |
|
// |
19 |
|
|
20 |
< |
#include "UHHAnalysis//NtupleWriter/interface/NtupleWriter.h" |
21 |
< |
|
22 |
< |
|
20 |
> |
#include "UHHAnalysis/NtupleWriter/interface/NtupleWriter.h" |
21 |
> |
#include "RecoBTau/JetTagComputer/interface/GenericMVAJetTagComputer.h" |
22 |
> |
#include "RecoBTau/JetTagComputer/interface/GenericMVAJetTagComputerWrapper.h" |
23 |
> |
#include "RecoBTau/JetTagComputer/interface/JetTagComputer.h" |
24 |
> |
#include "RecoBTau/JetTagComputer/interface/JetTagComputerRecord.h" |
25 |
> |
#include "RecoBTag/SecondaryVertex/interface/CombinedSVComputer.h" |
26 |
|
|
27 |
|
// |
28 |
|
// constants, enums and typedefs |
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"); |
60 |
|
doMET = iConfig.getParameter<bool>("doMET"); |
64 |
|
doPV = iConfig.getParameter<bool>("doPV"); |
65 |
|
doTopJets = iConfig.getParameter<bool>("doTopJets"); |
66 |
|
doTrigger = iConfig.getParameter<bool>("doTrigger"); |
67 |
< |
|
67 |
> |
SVComputer_ = iConfig.getUntrackedParameter<edm::InputTag>("svComputer",edm::InputTag("combinedSecondaryVertex")); |
68 |
> |
doTagInfos = iConfig.getUntrackedParameter<bool>("doTagInfos",false); |
69 |
|
// initialization of tree variables |
70 |
|
|
71 |
|
tr->Branch("run",&run); |
72 |
|
tr->Branch("event",&event); |
73 |
|
tr->Branch("luminosityBlock",&luminosityBlock); |
74 |
|
tr->Branch("isRealData",&isRealData); |
75 |
+ |
tr->Branch("rho",&rho); |
76 |
+ |
rho_source = iConfig.getParameter<edm::InputTag>("rho_source"); |
77 |
+ |
|
78 |
|
//tr->Branch("HBHENoiseFilterResult",&HBHENoiseFilterResult); |
79 |
|
if(doLumiInfo){ |
80 |
|
tr->Branch("intgRecLumi",&intgRecLumi); |
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"); |
156 |
|
} |
157 |
|
} |
158 |
|
if(doGenInfo){ |
159 |
+ |
genparticle_source= iConfig.getParameter<edm::InputTag>("genparticle_source"); |
160 |
|
tr->Branch("genInfo","GenInfo",&genInfo); |
161 |
|
tr->Branch("GenParticles","std::vector<GenParticle>", &genps); |
162 |
|
} |
199 |
|
luminosityBlock = iEvent.luminosityBlock(); |
200 |
|
isRealData = iEvent.isRealData(); |
201 |
|
|
202 |
+ |
edm::Handle<double> m_rho; |
203 |
+ |
iEvent.getByLabel(rho_source,m_rho); |
204 |
+ |
rho=*m_rho; |
205 |
+ |
|
206 |
|
// if(isRealData){ |
207 |
|
// edm::Handle<bool> bool_handle; |
208 |
|
// iEvent.getByLabel(edm::InputTag("HBHENoiseFilterResultProducer","HBHENoiseFilterResult"),bool_handle); |
306 |
|
} |
307 |
|
|
308 |
|
edm::Handle<reco::GenParticleCollection> genPartColl; |
309 |
< |
iEvent.getByLabel(edm::InputTag("genParticles"), genPartColl); |
309 |
> |
iEvent.getByLabel(genparticle_source, genPartColl); |
310 |
|
int index=-1; |
311 |
|
for(reco::GenParticleCollection::const_iterator iter = genPartColl->begin(); iter != genPartColl->end(); ++ iter){ |
312 |
|
index++; |
345 |
|
// ------------- electrons ------------- |
346 |
|
if(doElectrons){ |
347 |
|
|
348 |
< |
edm::Handle<reco::ConversionCollection> hConversions; |
349 |
< |
iEvent.getByLabel("allConversions", hConversions); |
348 |
> |
// edm::Handle<reco::ConversionCollection> hConversions; |
349 |
> |
// iEvent.getByLabel("allConversions", hConversions); |
350 |
|
|
351 |
< |
edm::Handle<reco::BeamSpot> beamSpot; |
352 |
< |
iEvent.getByLabel(edm::InputTag("offlineBeamSpot"), beamSpot); |
353 |
< |
const reco::BeamSpot & bsp = *beamSpot; |
351 |
> |
// edm::Handle<reco::BeamSpot> beamSpot; |
352 |
> |
// iEvent.getByLabel(edm::InputTag("offlineBeamSpot"), beamSpot); |
353 |
> |
// const reco::BeamSpot & bsp = *beamSpot; |
354 |
|
|
355 |
|
for(size_t j=0; j< electron_sources.size(); ++j){ |
356 |
|
eles[j].clear(); |
386 |
|
ele.set_gsfTrack_vx( pat_ele.gsfTrack()->vx()); |
387 |
|
ele.set_gsfTrack_vy( pat_ele.gsfTrack()->vy()); |
388 |
|
ele.set_gsfTrack_vz( pat_ele.gsfTrack()->vz()); |
389 |
< |
ele.set_passconversionveto(!ConversionTools::hasMatchedConversion(pat_ele,hConversions,bsp.position())); |
389 |
> |
//ele.set_passconversionveto(!ConversionTools::hasMatchedConversion(pat_ele,hConversions,bsp.position())); |
390 |
> |
ele.set_passconversionveto(pat_ele.passConversionVeto()); |
391 |
|
ele.set_dEtaIn(pat_ele.deltaEtaSuperClusterTrackAtVtx()); |
392 |
|
ele.set_dPhiIn(pat_ele.deltaPhiSuperClusterTrackAtVtx()); |
393 |
|
ele.set_sigmaIEtaIEta(pat_ele.sigmaIetaIeta()); |
395 |
|
ele.set_fbrem(pat_ele.fbrem()); |
396 |
|
ele.set_EoverPIn(pat_ele.eSuperClusterOverP()); |
397 |
|
ele.set_EcalEnergy(pat_ele.ecalEnergy()); |
398 |
< |
//ele.set_mvaTrigV0(pat_ele.electronID("mvaTrigV0")); |
399 |
< |
//ele.set_mvaNonTrigV0(pat_ele.electronID("mvaNonTrigV0")); |
398 |
> |
ele.set_mvaTrigV0(pat_ele.electronID("mvaTrigV0")); |
399 |
> |
ele.set_mvaNonTrigV0(pat_ele.electronID("mvaNonTrigV0")); |
400 |
> |
float AEff03 = 0.00; |
401 |
> |
if(isRealData){ |
402 |
> |
AEff03 = ElectronEffectiveArea::GetElectronEffectiveArea(ElectronEffectiveArea::kEleGammaAndNeutralHadronIso03, pat_ele.superCluster()->eta(), ElectronEffectiveArea::kEleEAData2011); |
403 |
> |
}else{ |
404 |
> |
AEff03 = ElectronEffectiveArea::GetElectronEffectiveArea(ElectronEffectiveArea::kEleGammaAndNeutralHadronIso03, pat_ele.superCluster()->eta(), ElectronEffectiveArea::kEleEAFall11MC); |
405 |
> |
} |
406 |
> |
ele.set_AEff(AEff03); |
407 |
|
|
408 |
|
eles[j].push_back(ele); |
409 |
|
} |
439 |
|
mu.set_photonIso ( pat_mu.photonIso()); |
440 |
|
mu.set_puChargedHadronIso ( pat_mu.puChargedHadronIso()); |
441 |
|
mu.set_isGlobalMuon ( pat_mu.isGlobalMuon()); |
442 |
+ |
mu.set_isPFMuon ( pat_mu.isPFMuon()); |
443 |
|
mu.set_isStandAloneMuon ( pat_mu.isStandAloneMuon()); |
444 |
|
mu.set_isTrackerMuon ( pat_mu.isTrackerMuon()); |
445 |
|
mu.set_numberOfMatchedStations ( pat_mu.numberOfMatchedStations()); |
451 |
|
mu.set_globalTrack_d0Error ( globalTrack->d0Error()); |
452 |
|
mu.set_globalTrack_numberOfValidHits ( globalTrack->numberOfValidHits()); |
453 |
|
mu.set_globalTrack_numberOfLostHits ( globalTrack->numberOfLostHits()); |
454 |
+ |
mu.set_globalTrack_numberOfValidMuonHits(globalTrack->hitPattern().numberOfValidMuonHits() ); |
455 |
|
} |
456 |
|
else{ |
457 |
|
mu.set_globalTrack_chi2 ( 0); |
539 |
|
tau.set_againstMuonMedium ( pat_tau.tauID("againstMuonMedium")>0.5); |
540 |
|
tau.set_againstMuonTight ( pat_tau.tauID("againstMuonTight")>0.5); |
541 |
|
|
542 |
< |
reco::PFCandidateRef leadPFCand = pat_tau.leadPFCand(); |
543 |
< |
if(!leadPFCand.isNull()){ |
544 |
< |
tau.set_leadPFCand_px ( leadPFCand->px()); |
545 |
< |
tau.set_leadPFCand_py ( leadPFCand->py()); |
546 |
< |
tau.set_leadPFCand_pz ( leadPFCand->pz()); |
547 |
< |
} |
548 |
< |
else{ |
549 |
< |
tau.set_leadPFCand_px ( 0); |
550 |
< |
tau.set_leadPFCand_py ( 0); |
551 |
< |
tau.set_leadPFCand_pz ( 0); |
552 |
< |
} |
542 |
> |
// reco::PFCandidateRef leadPFCand = pat_tau.leadPFCand(); |
543 |
> |
// if(!leadPFCand.isNull()){ |
544 |
> |
// tau.set_leadPFCand_px ( leadPFCand->px()); |
545 |
> |
// tau.set_leadPFCand_py ( leadPFCand->py()); |
546 |
> |
// tau.set_leadPFCand_pz ( leadPFCand->pz()); |
547 |
> |
// } |
548 |
> |
// else{ |
549 |
> |
// tau.set_leadPFCand_px ( 0); |
550 |
> |
// tau.set_leadPFCand_py ( 0); |
551 |
> |
// tau.set_leadPFCand_pz ( 0); |
552 |
> |
// } |
553 |
|
taus[j].push_back(tau); |
554 |
|
} |
555 |
|
} |
599 |
|
jet.set_electronMultiplicity (pat_jet.electronMultiplicity()); |
600 |
|
jet.set_photonMultiplicity (pat_jet.photonMultiplicity()); |
601 |
|
} |
602 |
< |
|
603 |
< |
jecUnc->setJetEta(pat_jet.eta()); |
604 |
< |
jecUnc->setJetPt(pat_jet.pt()); |
605 |
< |
jet.set_JEC_uncertainty(jecUnc->getUncertainty(true)); |
602 |
> |
if(doJECUncertainty){ |
603 |
> |
jecUnc->setJetEta(pat_jet.eta()); |
604 |
> |
jecUnc->setJetPt(pat_jet.pt()); |
605 |
> |
jet.set_JEC_uncertainty(jecUnc->getUncertainty(true)); |
606 |
> |
} |
607 |
|
jet.set_JEC_factor_raw(pat_jet.jecFactor("Uncorrected")); |
608 |
< |
|
608 |
> |
|
609 |
|
jet.set_btag_simpleSecondaryVertexHighEff(pat_jet.bDiscriminator("simpleSecondaryVertexHighEffBJetTags")); |
610 |
|
jet.set_btag_simpleSecondaryVertexHighPur(pat_jet.bDiscriminator("simpleSecondaryVertexHighPurBJetTags")); |
611 |
|
jet.set_btag_combinedSecondaryVertex(pat_jet.bDiscriminator("combinedSecondaryVertexBJetTags")); |
613 |
|
jet.set_btag_jetBProbability(pat_jet.bDiscriminator("jetBProbabilityBJetTags")); |
614 |
|
jet.set_btag_jetProbability(pat_jet.bDiscriminator("jetProbabilityBJetTags")); |
615 |
|
|
616 |
+ |
|
617 |
|
const reco::GenJet *genj = pat_jet.genJet(); |
618 |
|
if(genj){ |
619 |
|
jet.set_genjet_pt(genj->pt()); |
633 |
|
if(jet.genparticles_indices().size()!= jetgenps.size()) |
634 |
|
std::cout << "WARNING: Found only " << jet.genparticles_indices().size() << " from " << jetgenps.size() << " gen particles of this jet"<<std::endl; |
635 |
|
} |
636 |
+ |
|
637 |
|
} |
638 |
+ |
|
639 |
|
jets[j].push_back(jet); |
640 |
|
} |
641 |
|
} |
642 |
|
} |
643 |
|
|
644 |
+ |
//-------------- gen jets ------------- |
645 |
+ |
|
646 |
+ |
if(doGenJets){ |
647 |
+ |
for(size_t j=0; j< genjet_sources.size(); ++j){ |
648 |
+ |
|
649 |
+ |
genjets[j].clear(); |
650 |
+ |
|
651 |
+ |
edm::Handle< std::vector<reco::GenJet> > genjet_handle; |
652 |
+ |
iEvent.getByLabel(genjet_sources[j], genjet_handle); |
653 |
+ |
const std::vector<reco::GenJet>& gen_jets = *(genjet_handle.product()); |
654 |
+ |
|
655 |
+ |
for (unsigned int i = 0; i < gen_jets.size(); ++i) { |
656 |
+ |
pat::Jet gen_jet = gen_jets[i]; |
657 |
+ |
if(gen_jet.pt() < genjet_ptmin) continue; |
658 |
+ |
if(fabs(gen_jet.eta()) > genjet_etamax) continue; |
659 |
+ |
|
660 |
+ |
Particle jet; |
661 |
+ |
jet.set_charge(gen_jet.charge()); |
662 |
+ |
jet.set_pt(gen_jet.pt()); |
663 |
+ |
jet.set_eta(gen_jet.eta()); |
664 |
+ |
jet.set_phi(gen_jet.phi()); |
665 |
+ |
jet.set_energy(gen_jet.energy()); |
666 |
+ |
|
667 |
+ |
genjets[j].push_back(jet); |
668 |
+ |
|
669 |
+ |
} |
670 |
+ |
} |
671 |
+ |
} |
672 |
+ |
|
673 |
|
// ------------- top jets ------------- |
674 |
|
if(doTopJets){ |
675 |
|
for(size_t j=0; j< topjet_sources.size(); ++j){ |
708 |
|
// topjet.set_muonMultiplicity(pat_topjet.muonMultiplicity()); |
709 |
|
// topjet.set_electronMultiplicity(pat_topjet.electronMultiplicity()); |
710 |
|
// topjet.set_photonMultiplicity(pat_topjet.photonMultiplicity()); |
711 |
< |
|
712 |
< |
jecUnc->setJetEta(pat_topjet.eta()); |
713 |
< |
jecUnc->setJetPt(pat_topjet.pt()); |
714 |
< |
topjet.set_JEC_uncertainty( jecUnc->getUncertainty(true)); |
711 |
> |
if(doJECUncertainty){ |
712 |
> |
jecUnc->setJetEta(pat_topjet.eta()); |
713 |
> |
jecUnc->setJetPt(pat_topjet.pt()); |
714 |
> |
topjet.set_JEC_uncertainty( jecUnc->getUncertainty(true)); |
715 |
> |
} |
716 |
|
topjet.set_JEC_factor_raw( pat_topjet.jecFactor("Uncorrected")); |
717 |
|
|
718 |
|
topjet.set_btag_simpleSecondaryVertexHighEff(pat_topjet.bDiscriminator("simpleSecondaryVertexHighEffBJetTags")); |
722 |
|
topjet.set_btag_jetBProbability(pat_topjet.bDiscriminator("jetBProbabilityBJetTags")); |
723 |
|
topjet.set_btag_jetProbability(pat_topjet.bDiscriminator("jetProbabilityBJetTags")); |
724 |
|
|
725 |
+ |
/* |
726 |
|
const reco::GenJet *genj = pat_topjet.genJet(); |
727 |
|
if(genj){ |
728 |
|
topjet.set_genjet_pt ( genj->pt()); |
743 |
|
std::cout << "WARNING: Found only " << topjet.genparticles_indices().size() << " from " << jetgenps.size() << " gen particles of this topjet"<<std::endl; |
744 |
|
} |
745 |
|
} |
746 |
+ |
*/ |
747 |
|
|
748 |
|
for (unsigned int k = 0; k < pat_topjet.numberOfDaughters(); k++) { |
749 |
|
Particle subjet_v4; |
750 |
< |
subjet_v4.set_pt(pat_topjet.daughter(k)->p4().pt()); |
751 |
< |
subjet_v4.set_eta(pat_topjet.daughter(k)->p4().eta()); |
752 |
< |
subjet_v4.set_phi(pat_topjet.daughter(k)->p4().phi()); |
753 |
< |
subjet_v4.set_energy(pat_topjet.daughter(k)->p4().E()); |
754 |
< |
topjet.add_subjet(subjet_v4); |
750 |
> |
|
751 |
> |
reco::Candidate const * subjetd = pat_topjet.daughter(k); |
752 |
> |
pat::Jet const * patsubjetd = dynamic_cast<pat::Jet const *>(subjetd); |
753 |
> |
if(patsubjetd) |
754 |
> |
{ |
755 |
> |
subjet_v4.set_pt(patsubjetd->correctedP4(0).pt()); |
756 |
> |
subjet_v4.set_eta(patsubjetd->correctedP4(0).eta()); |
757 |
> |
subjet_v4.set_phi(patsubjetd->correctedP4(0).phi()); |
758 |
> |
subjet_v4.set_energy(patsubjetd->correctedP4(0).E()); |
759 |
> |
topjet.add_subjet(subjet_v4); |
760 |
> |
//btag info |
761 |
> |
topjet.add_subFlavour(patsubjetd->partonFlavour()); |
762 |
> |
topjet.add_subCSV(patsubjetd->bDiscriminator("combinedSecondaryVertexBJetTags")); |
763 |
> |
if (doTagInfos) |
764 |
> |
{ |
765 |
> |
//ip tag info |
766 |
> |
reco::TaggingVariableList tvlIP=patsubjetd->tagInfoTrackIP("impactParameter")->taggingVariables(); |
767 |
> |
topjet.add_subTrackMomentum(tvlIP.getList(reco::btau::trackMomentum,false)); |
768 |
> |
topjet.add_subTrackEta(tvlIP.getList(reco::btau::trackEta,false)); |
769 |
> |
topjet.add_subTrackEtaRel(tvlIP.getList(reco::btau::trackEtaRel,false)); |
770 |
> |
topjet.add_subTrackDeltaR(tvlIP.getList(reco::btau::trackDeltaR,false)); |
771 |
> |
topjet.add_subTrackSip3dVal(tvlIP.getList(reco::btau::trackSip3dVal,false)); |
772 |
> |
topjet.add_subTrackSip3dSig(tvlIP.getList(reco::btau::trackSip3dSig,false)); |
773 |
> |
topjet.add_subTrackSip2dVal(tvlIP.getList(reco::btau::trackSip2dVal,false)); |
774 |
> |
topjet.add_subTrackSip2dSig(tvlIP.getList(reco::btau::trackSip2dSig,false)); |
775 |
> |
topjet.add_subTrackDecayLenVal(tvlIP.getList(reco::btau::trackDecayLenVal,false)); |
776 |
> |
topjet.add_subTrackChi2(tvlIP.getList(reco::btau::trackChi2,false)); |
777 |
> |
topjet.add_subTrackNTotalHits(tvlIP.getList(reco::btau::trackNTotalHits,false)); |
778 |
> |
topjet.add_subTrackNPixelHits(tvlIP.getList(reco::btau::trackNPixelHits,false)); |
779 |
> |
topjet.add_subTrackPtRel(tvlIP.getList(reco::btau::trackPtRel,false)); |
780 |
> |
topjet.add_subTrackPPar(tvlIP.getList(reco::btau::trackPPar,false)); |
781 |
> |
topjet.add_subTrackPtRatio(tvlIP.getList(reco::btau::trackPtRatio,false)); |
782 |
> |
topjet.add_subTrackPParRatio(tvlIP.getList(reco::btau::trackPParRatio,false)); |
783 |
> |
topjet.add_subTrackJetDistVal(tvlIP.getList(reco::btau::trackJetDistVal,false)); |
784 |
> |
topjet.add_subTrackJetDistSig(tvlIP.getList(reco::btau::trackJetDistSig,false)); |
785 |
> |
topjet.add_subTrackGhostTrackDistVal(tvlIP.getList(reco::btau::trackGhostTrackDistVal,false)); |
786 |
> |
topjet.add_subTrackGhostTrackDistSig(tvlIP.getList(reco::btau::trackGhostTrackDistSig,false)); |
787 |
> |
topjet.add_subTrackGhostTrackWeight(tvlIP.getList(reco::btau::trackGhostTrackWeight,false)); |
788 |
> |
//sv tag info |
789 |
> |
reco::TaggingVariableList tvlSV=patsubjetd->tagInfoSecondaryVertex("secondaryVertex")->taggingVariables(); |
790 |
> |
topjet.add_subFlightDistance2dVal(tvlSV.getList(reco::btau::flightDistance2dVal,false)); |
791 |
> |
topjet.add_subFlightDistance2dSig(tvlSV.getList(reco::btau::flightDistance2dSig,false)); |
792 |
> |
topjet.add_subFlightDistance3dVal(tvlSV.getList(reco::btau::flightDistance3dVal,false)); |
793 |
> |
topjet.add_subFlightDistance3dSig(tvlSV.getList(reco::btau::flightDistance3dSig,false)); |
794 |
> |
topjet.add_subVertexJetDeltaR(tvlSV.getList(reco::btau::vertexJetDeltaR,false)); |
795 |
> |
topjet.add_subJetNSecondaryVertices(tvlSV.get(reco::btau::jetNSecondaryVertices,-9999)); |
796 |
> |
topjet.add_subVertexNTracks(tvlSV.get(reco::btau::vertexNTracks,-9999)); |
797 |
> |
std::vector<TLorentzVector> vp4; vp4.clear(); |
798 |
> |
std::vector<float> vchi2; vchi2.clear(); |
799 |
> |
std::vector<float> vndof; vndof.clear(); |
800 |
> |
std::vector<float> vchi2ndof; vchi2ndof.clear(); |
801 |
> |
std::vector<float> vtrsize; vtrsize.clear(); |
802 |
> |
for(unsigned int i=0; i<patsubjetd->tagInfoSecondaryVertex("secondaryVertex")->nVertices(); i++) |
803 |
> |
{ |
804 |
> |
ROOT::Math::LorentzVector<ROOT::Math::PxPyPzE4D<double> > p4 = patsubjetd->tagInfoSecondaryVertex("secondaryVertex")->secondaryVertex(i).p4(); |
805 |
> |
vp4.push_back(TLorentzVector(p4.px(),p4.py(),p4.pz(),p4.e())); |
806 |
> |
vchi2.push_back(patsubjetd->tagInfoSecondaryVertex("secondaryVertex")->secondaryVertex(i).chi2()); |
807 |
> |
vndof.push_back(patsubjetd->tagInfoSecondaryVertex("secondaryVertex")->secondaryVertex(i).ndof()); |
808 |
> |
vchi2ndof.push_back(patsubjetd->tagInfoSecondaryVertex("secondaryVertex")->secondaryVertex(i).normalizedChi2()); |
809 |
> |
vtrsize.push_back(patsubjetd->tagInfoSecondaryVertex("secondaryVertex")->secondaryVertex(i).tracksSize()); |
810 |
> |
} |
811 |
> |
topjet.add_subSecondaryVertex(vp4); |
812 |
> |
topjet.add_subVertexChi2(vchi2); |
813 |
> |
topjet.add_subVertexNdof(vndof); |
814 |
> |
topjet.add_subVertexNormalizedChi2(vchi2ndof); |
815 |
> |
topjet.add_subVertexTracksSize(vtrsize); |
816 |
> |
//try computer |
817 |
> |
edm::ESHandle<JetTagComputer> computerHandle; |
818 |
> |
iSetup.get<JetTagComputerRecord>().get( SVComputer_.label(), computerHandle ); |
819 |
> |
const GenericMVAJetTagComputer *computer = dynamic_cast<const GenericMVAJetTagComputer*>( computerHandle.product() ); |
820 |
> |
if(computer) |
821 |
> |
{ |
822 |
> |
computer->passEventSetup(iSetup); |
823 |
> |
std::vector<const reco::BaseTagInfo*> baseTagInfos; |
824 |
> |
baseTagInfos.push_back(patsubjetd->tagInfoTrackIP("impactParameter") ); |
825 |
> |
baseTagInfos.push_back(patsubjetd->tagInfoSecondaryVertex("secondaryVertex") ); |
826 |
> |
JetTagComputer::TagInfoHelper helper(baseTagInfos); |
827 |
> |
reco::TaggingVariableList vars = computer->taggingVariables(helper); |
828 |
> |
topjet.add_subVertexMassJTC(vars.get(reco::btau::vertexMass,-9999)); |
829 |
> |
topjet.add_subVertexCategoryJTC(vars.get(reco::btau::vertexCategory,-9999)); |
830 |
> |
topjet.add_subVertexEnergyRatioJTC(vars.get(reco::btau::vertexEnergyRatio,-9999)); |
831 |
> |
topjet.add_subTrackSip3dSigAboveCharmJTC(vars.get(reco::btau::trackSip3dSigAboveCharm,-9999)); |
832 |
> |
} |
833 |
> |
} |
834 |
> |
} |
835 |
> |
else |
836 |
> |
{ |
837 |
> |
//filling only standard information in case the subjet has not been pat-tified during the pattuples production |
838 |
> |
subjet_v4.set_pt(pat_topjet.daughter(k)->p4().pt()); |
839 |
> |
subjet_v4.set_eta(pat_topjet.daughter(k)->p4().eta()); |
840 |
> |
subjet_v4.set_phi(pat_topjet.daughter(k)->p4().phi()); |
841 |
> |
subjet_v4.set_energy(pat_topjet.daughter(k)->p4().E()); |
842 |
> |
topjet.add_subjet(subjet_v4); |
843 |
> |
} |
844 |
> |
|
845 |
> |
|
846 |
|
} |
847 |
|
topjets[j].push_back(topjet); |
848 |
|
} |
849 |
|
} |
850 |
|
} |
851 |
< |
|
852 |
< |
|
851 |
> |
|
852 |
> |
|
853 |
|
// ------------- generator top jets ------------- |
854 |
|
if(doGenTopJets){ |
855 |
|
for(size_t j=0; j< gentopjet_sources.size(); ++j){ |
856 |
|
|
857 |
|
gentopjets[j].clear(); |
858 |
< |
|
858 |
> |
|
859 |
|
edm::Handle<reco::BasicJetCollection> reco_gentopjets; |
860 |
|
//edm::Handle<std::vector<reco::Jet> > reco_gentopjets; |
861 |
|
iEvent.getByLabel(gentopjet_sources[j], reco_gentopjets); |
1019 |
|
NtupleWriter::beginRun(edm::Run const& iRun, edm::EventSetup const& iSetup) |
1020 |
|
{ |
1021 |
|
if(doTrigger){ |
1022 |
< |
bool setup_changed = false; |
1023 |
< |
hlt_cfg.init(iRun, iSetup, "HLT", setup_changed); |
1022 |
> |
//bool setup_changed = false; |
1023 |
> |
//hlt_cfg.init(iRun, iSetup, "HLT", setup_changed); |
1024 |
|
newrun=true; |
1025 |
|
} |
1026 |
|
|
1027 |
|
if(doJets || doTopJets){ |
1028 |
< |
edm::ESHandle<JetCorrectorParametersCollection> JetCorParColl; |
1029 |
< |
iSetup.get<JetCorrectionsRecord>().get("AK5PF",JetCorParColl); |
1030 |
< |
JetCorrectorParameters const & JetCorPar = (*JetCorParColl)["Uncertainty"]; |
1031 |
< |
jecUnc = new JetCorrectionUncertainty(JetCorPar); |
1028 |
> |
if(doJECUncertainty){ |
1029 |
> |
edm::ESHandle<JetCorrectorParametersCollection> JetCorParColl; |
1030 |
> |
iSetup.get<JetCorrectionsRecord>().get("AK5PF",JetCorParColl); |
1031 |
> |
JetCorrectorParameters const & JetCorPar = (*JetCorParColl)["Uncertainty"]; |
1032 |
> |
jecUnc = new JetCorrectionUncertainty(JetCorPar); |
1033 |
> |
} |
1034 |
|
} |
1035 |
|
} |
1036 |
|
|