ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/plugins/HbbTreeMaker.cc
(Generate patch)

Comparing UserCode/HbbAnalysis/plugins/HbbTreeMaker.cc (file contents):
Revision 1.2 by amagnan, Fri Oct 2 11:05:53 2009 UTC vs.
Revision 1.3 by amagnan, Tue Oct 13 12:14:05 2009 UTC

# Line 159 | Line 159 | void HbbTreeMaker::analyze(const edm::Ev
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;
# Line 382 | Line 382 | void HbbTreeMaker::HbbElectrons(const ed
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()){
# Line 435 | Line 436 | void HbbTreeMaker::HbbMuons(const edm::H
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;
# Line 478 | Line 501 | void HbbTreeMaker::HbbMuons(const edm::H
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          }
# Line 488 | Line 511 | void HbbTreeMaker::HbbMuons(const edm::H
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()){

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines