Skip to content

Commit

Permalink
Merge pull request #4902 from jhgoh/RPCMuonFix
Browse files Browse the repository at this point in the history
RPCMuon bugfix in MuonIdProducer
  • Loading branch information
ktf committed Aug 21, 2014
2 parents 517a798 + 4060bf0 commit 977d587
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 8 deletions.
2 changes: 1 addition & 1 deletion DQMOffline/Muon/src/MuonEnergyDepositAnalyzer.cc
Expand Up @@ -186,7 +186,7 @@ void MuonEnergyDepositAnalyzer::analyze(const edm::Event& iEvent, const edm::Eve

if(recoMu->isGlobalMuon())
TransTrack = theB->build(recoMu->globalTrack());
if(recoMu->isTrackerMuon() && !(recoMu->isGlobalMuon()))
if((recoMu->isTrackerMuon() || recoMu->isRPCMuon()) && !(recoMu->isGlobalMuon()))
TransTrack = theB->build(recoMu->innerTrack());
if(recoMu->isStandAloneMuon() && !(recoMu->isGlobalMuon()))
TransTrack = theB->build(recoMu->outerTrack());
Expand Down
4 changes: 2 additions & 2 deletions RecoMET/METAlgorithms/src/MuonMETAlgo.cc
Expand Up @@ -128,7 +128,7 @@ void MuonMETAlgo::GetMuDepDeltas(const reco::Muon* inputMuon,
TrackRef mu_track;
if(inputMuon->isGlobalMuon()) {
mu_track = inputMuon->globalTrack();
} else if(inputMuon->isTrackerMuon()) {
} else if(inputMuon->isTrackerMuon() || inputMuon->isRPCMuon()) {
mu_track = inputMuon->innerTrack();
} else
mu_track = inputMuon->outerTrack();
Expand Down Expand Up @@ -174,7 +174,7 @@ void MuonMETAlgo::GetMuDepDeltas(const reco::Muon* inputMuon,
mup4 = LorentzVector(inputMuon->globalTrack()->px(), inputMuon->globalTrack()->py(),
inputMuon->globalTrack()->pz(), inputMuon->globalTrack()->p());
}
} else if(inputMuon->isTrackerMuon()) {
} else if(inputMuon->isTrackerMuon() || inputMuon->isRPCMuon()) {
mup4 = LorentzVector(inputMuon->innerTrack()->px(), inputMuon->innerTrack()->py(),
inputMuon->innerTrack()->pz(), inputMuon->innerTrack()->p());
} else
Expand Down
3 changes: 2 additions & 1 deletion RecoMET/METProducers/src/MuonMETValueMapProducer.cc
Expand Up @@ -124,7 +124,7 @@ void MuonMETValueMapProducer::determine_deltax_deltay(double& deltax, double& de
{
reco::TrackRef mu_track;
if(muon.isGlobalMuon()) mu_track = muon.globalTrack();
else if(muon.isTrackerMuon()) mu_track = muon.innerTrack();
else if(muon.isTrackerMuon()||muon.isRPCMuon()) mu_track = muon.innerTrack();
else mu_track = muon.outerTrack();

TrackDetMatchInfo info = trackAssociator_.associate(iEvent, iSetup,
Expand Down Expand Up @@ -155,6 +155,7 @@ bool MuonMETValueMapProducer::should_type_MuonCandidateValuesUsed(const reco::Mu
if(!muon.isTrackerMuon() && isAlsoTkMu_) return false;
reco::TrackRef globTk = muon.globalTrack();
reco::TrackRef siTk = muon.innerTrack();

if(muon.pt() < minPt_ || fabs(muon.eta()) > maxEta_) return false;
if(globTk->chi2()/globTk->ndof() > maxNormChi2_) return false;
if(fabs(globTk->dxy(beamSpotPosition)) > fabs(maxd0_)) return false;
Expand Down
5 changes: 3 additions & 2 deletions RecoMuon/MuonIdentification/plugins/MuonIdProducer.cc
Expand Up @@ -587,7 +587,6 @@ void MuonIdProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup)
{
// make muon
reco::Muon trackerMuon( makeMuon(iEvent, iSetup, reco::TrackRef( innerTrackCollectionHandle_, i ), reco::Muon::InnerTrack ) );
trackerMuon.setType( reco::Muon::TrackerMuon | reco::Muon::RPCMuon );
fillMuonId(iEvent, iSetup, trackerMuon, *direction);

if ( debugWithTruthMatching_ ) {
Expand All @@ -602,6 +601,8 @@ void MuonIdProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup)
bool newMuon = true;
bool goodTrackerMuon = isGoodTrackerMuon( trackerMuon );
bool goodRPCMuon = isGoodRPCMuon( trackerMuon );
if ( goodTrackerMuon ) trackerMuon.setType( trackerMuon.type() | reco::Muon::TrackerMuon );
if ( goodRPCMuon ) trackerMuon.setType( trackerMuon.type() | reco::Muon::RPCMuon );
for ( reco::MuonCollection::iterator muon = outputMuons->begin();
muon != outputMuons->end(); ++muon )
{
Expand All @@ -620,7 +621,7 @@ void MuonIdProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup)
}
}
if ( newMuon ) {
if ( goodTrackerMuon ){
if ( goodTrackerMuon || goodRPCMuon ){
outputMuons->push_back( trackerMuon );
} else {
LogTrace("MuonIdentification") << "track failed minimal number of muon matches requirement";
Expand Down
Expand Up @@ -229,7 +229,7 @@ MuonCosmicCompatibilityFiller::backToBack2LegCosmic(const edm::Event& iEvent, co
reco::TrackRef track;
if ( muon.isGlobalMuon() ) track = muon.innerTrack();
else if ( muon.isTrackerMuon() ) track = muon.track();
else if ( muon.isStandAloneMuon() ) return false;
else if ( muon.isStandAloneMuon() || muon.isRPCMuon() ) return false;

for (unsigned int iColl = 0; iColl<trackTokens_.size(); ++iColl){
edm::Handle<reco::TrackCollection> trackHandle;
Expand Down Expand Up @@ -405,7 +405,7 @@ MuonCosmicCompatibilityFiller::pvMatches(const edm::Event& iEvent, const reco::M

reco::TrackRef track;
if ( muon.isGlobalMuon() ) track = muon.innerTrack();
else if ( muon.isTrackerMuon() ) track = muon.track();
else if ( muon.isTrackerMuon() || muon.isRPCMuon() ) track = muon.track();
else if ( muon.isStandAloneMuon()) track = muon.standAloneMuon();

bool multipleMu = false;
Expand Down

0 comments on commit 977d587

Please sign in to comment.