159 |
|
std::cout << "AMM: Collection " << muonSrc_ << " not available! Exception : " << e.what() << ". " << std::endl; |
160 |
|
} |
161 |
|
|
162 |
< |
HbbMuons(lMuonCollection,event_->muons()); |
162 |
> |
HbbMuons(lMuonCollection,lRecoVertices,event_->muons()); |
163 |
|
|
164 |
|
|
165 |
|
edm::Handle<std::vector<pat::Tau> > lTauCollection; |
382 |
|
|
383 |
|
|
384 |
|
void HbbTreeMaker::HbbMuons(const edm::Handle<std::vector<pat::Muon> > & aCol, |
385 |
< |
std::vector<HbbAnalysis::Muon> & aVec) |
385 |
> |
const edm::Handle<std::vector<reco::Vertex> > & aRecoVertices, |
386 |
> |
std::vector<HbbAnalysis::Muon> & aVec) |
387 |
|
{//HbbMuons |
388 |
|
|
389 |
|
if (aCol.isValid()){ |
436 |
|
lReco.vy = (*iter).vy(); |
437 |
|
lReco.vz = (*iter).vz(); |
438 |
|
|
439 |
+ |
HbbAnalysis::MuTrkVars lTrk; |
440 |
+ |
|
441 |
+ |
reco::TrackRef lTrackerTrk = (*iter).innerTrack(); |
442 |
+ |
if ( lTrackerTrk.isAvailable() && lTrackerTrk.isNonnull() ) { |
443 |
+ |
if ( aRecoVertices->size() >= 1 ) { |
444 |
+ |
const reco::Vertex& thePrimaryEventVertex = (*aRecoVertices->begin()); |
445 |
+ |
lTrk.IPd0 = -lTrackerTrk->dxy(thePrimaryEventVertex.position()); |
446 |
+ |
lTrk.IPdz = lTrackerTrk->dz(thePrimaryEventVertex.position()); |
447 |
+ |
} |
448 |
+ |
else { |
449 |
+ |
lTrk.IPd0 = 0; |
450 |
+ |
lTrk.IPdz = 0; |
451 |
+ |
} |
452 |
+ |
|
453 |
+ |
lTrk.nHits = lTrackerTrk->numberOfValidHits(); |
454 |
+ |
} |
455 |
+ |
else { |
456 |
+ |
lTrk.IPd0 = 0; |
457 |
+ |
lTrk.IPdz = 0; |
458 |
+ |
lTrk.nHits = 0; |
459 |
+ |
} |
460 |
+ |
|
461 |
|
HbbAnalysis::MuIsoVars lIsoR03; |
462 |
|
lIsoR03.sumPt = recoMuon->isolationR03().sumPt; |
463 |
|
lIsoR03.emEt = recoMuon->isolationR03().emEt; |
501 |
|
lID.nMatchesMedium = recoMuon->numberOfMatches(reco::Muon::SegmentArbitration); |
502 |
|
lID.nMatchesTight = recoMuon->numberOfMatches(reco::Muon::SegmentAndTrackArbitration); |
503 |
|
|
504 |
< |
HbbAnalysis::Muon lObj(lGen,lReco,lIsoR03,lIsoR05,lID); |
504 |
> |
HbbAnalysis::Muon lObj(lGen,lReco,lTrk,lIsoR03,lIsoR05,lID); |
505 |
|
aVec.push_back(lObj); |
506 |
|
iEle++; |
507 |
|
} |
511 |
|
}//HbbMuons |
512 |
|
|
513 |
|
void HbbTreeMaker::HbbTaus(const edm::Handle<std::vector<pat::Tau> > & aCol, |
514 |
< |
const edm::Handle<std::vector<reco::Vertex> > & aRecoVertices, |
515 |
< |
std::vector<HbbAnalysis::Tau> & aVec) |
514 |
> |
const edm::Handle<std::vector<reco::Vertex> > & aRecoVertices, |
515 |
> |
std::vector<HbbAnalysis::Tau> & aVec) |
516 |
|
{//HbbTaus |
517 |
|
|
518 |
|
if (aCol.isValid()){ |