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; |
298 |
|
|
299 |
|
|
300 |
|
void HbbTreeMaker::HbbElectrons(const edm::Handle<std::vector<pat::Electron> > & aCol, |
301 |
< |
std::vector<HbbAnalysis::Electron> & aVec) |
301 |
> |
std::vector<HbbAnalysis::Electron> & aVec) |
302 |
|
{//HbbElectrons |
303 |
|
|
304 |
|
if (aCol.isValid()){ |
314 |
|
HbbAnalysis::GenVars lGen; |
315 |
|
if ((*iter).genLepton()){ |
316 |
|
lGen.valid = true; |
317 |
+ |
lGen.E = (*iter).genLepton()->energy(); |
318 |
|
lGen.pT = (*iter).genLepton()->pt(); |
319 |
|
lGen.eta = (*iter).genLepton()->eta(); |
320 |
|
lGen.phi = (*iter).genLepton()->phi(); |
328 |
|
} |
329 |
|
else { |
330 |
|
lGen.valid = false; |
331 |
+ |
lGen.E = 0; |
332 |
|
lGen.pT = 0; |
333 |
|
lGen.eta = 0; |
334 |
|
lGen.phi = 0; |
342 |
|
} |
343 |
|
|
344 |
|
HbbAnalysis::BaseVars lReco; |
345 |
+ |
lReco.E = (*iter).energy(); |
346 |
|
lReco.pT = (*iter).pt(); |
347 |
|
lReco.eta = (*iter).eta(); |
348 |
|
lReco.phi = (*iter).phi(); |
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()){ |
399 |
|
HbbAnalysis::GenVars lGen; |
400 |
|
if ((*iter).genLepton()){ |
401 |
|
lGen.valid = true; |
402 |
+ |
lGen.E = (*iter).genLepton()->energy(); |
403 |
|
lGen.pT = (*iter).genLepton()->pt(); |
404 |
|
lGen.eta = (*iter).genLepton()->eta(); |
405 |
|
lGen.phi = (*iter).genLepton()->phi(); |
413 |
|
} |
414 |
|
else { |
415 |
|
lGen.valid = false; |
416 |
+ |
lGen.E = 0; |
417 |
|
lGen.pT = 0; |
418 |
|
lGen.eta = 0; |
419 |
|
lGen.phi = 0; |
427 |
|
} |
428 |
|
|
429 |
|
HbbAnalysis::BaseVars lReco; |
430 |
+ |
lReco.E = (*iter).energy(); |
431 |
|
lReco.pT = (*iter).pt(); |
432 |
|
lReco.eta = (*iter).eta(); |
433 |
|
lReco.phi = (*iter).phi(); |
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()){ |
528 |
|
HbbAnalysis::GenVars lGen; |
529 |
|
if ((*iter).genLepton()){ |
530 |
|
lGen.valid = true; |
531 |
+ |
lGen.E = (*iter).genLepton()->energy(); |
532 |
|
lGen.pT = (*iter).genLepton()->pt(); |
533 |
|
lGen.eta = (*iter).genLepton()->eta(); |
534 |
|
lGen.phi = (*iter).genLepton()->phi(); |
542 |
|
} |
543 |
|
else { |
544 |
|
lGen.valid = false; |
545 |
+ |
lGen.E = 0; |
546 |
|
lGen.pT = 0; |
547 |
|
lGen.eta = 0; |
548 |
|
lGen.phi = 0; |
585 |
|
} |
586 |
|
|
587 |
|
HbbAnalysis::BaseVars lReco; |
588 |
+ |
lReco.E = (*iter).energy(); |
589 |
|
lReco.pT = (*iter).pt(); |
590 |
|
lReco.eta = (*iter).eta(); |
591 |
|
lReco.phi = (*iter).phi(); |
807 |
|
HbbAnalysis::GenVars lGen; |
808 |
|
if ((*iter).genParton()){ |
809 |
|
lGen.valid = true; |
810 |
+ |
lGen.E = (*iter).genParton()->energy(); |
811 |
|
lGen.pT = (*iter).genParton()->pt(); |
812 |
|
lGen.eta = (*iter).genParton()->eta(); |
813 |
|
lGen.phi = (*iter).genParton()->phi(); |
821 |
|
} |
822 |
|
else { |
823 |
|
lGen.valid = false; |
824 |
+ |
lGen.E = 0; |
825 |
|
lGen.pT = 0; |
826 |
|
lGen.eta = 0; |
827 |
|
lGen.phi = 0; |
864 |
|
} |
865 |
|
|
866 |
|
HbbAnalysis::BaseVars lReco; |
867 |
+ |
lReco.E = (*iter).energy(); |
868 |
|
lReco.pT = (*iter).pt(); |
869 |
|
lReco.eta = (*iter).eta(); |
870 |
|
lReco.phi = (*iter).phi(); |
1034 |
|
|
1035 |
|
HbbAnalysis::MCVars lMC; |
1036 |
|
lMC.index = mccount; |
1037 |
+ |
lMC.E = p.energy(); |
1038 |
|
lMC.pT = p.pt(); |
1039 |
|
lMC.eta = p.eta(); |
1040 |
|
lMC.phi = p.phi(); |