CMS 3D CMS Logo

Classes | Functions

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/RecoMuon/MuonIdentification/plugins/MuonsFromRefitTracksProducer.cc File Reference

#include "FWCore/Framework/interface/Frameworkfwd.h"
#include "FWCore/Framework/interface/EDProducer.h"
#include "FWCore/Framework/interface/Event.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
#include "DataFormats/MuonReco/interface/Muon.h"
#include "DataFormats/MuonReco/interface/MuonFwd.h"
#include "DataFormats/MuonReco/interface/MuonCocktails.h"
#include "DataFormats/TrackReco/interface/Track.h"
#include "DataFormats/TrackReco/interface/TrackFwd.h"
#include "DataFormats/TrackReco/interface/TrackToTrackMap.h"

Go to the source code of this file.

Classes

class  MuonsFromRefitTracksProducer

Functions

 DEFINE_FWK_MODULE (MuonsFromRefitTracksProducer)
reco::TrackRef sigmaSwitch (const reco::Muon &muon, const double nSigma, const double ptThreshold)
reco::TrackRef tevOptimizedTMR (const reco::Muon &muon, const reco::TrackToTrackMap &fmsMap, const double cut)

Function Documentation

DEFINE_FWK_MODULE ( MuonsFromRefitTracksProducer  )
reco::TrackRef sigmaSwitch ( const reco::Muon muon,
const double  nSigma,
const double  ptThreshold 
)

Definition at line 54 of file MuonsFromRefitTracksProducer.cc.

References delta, reco::Muon::globalTrack(), reco::Muon::innerTrack(), and crabWrap::threshold.

Referenced by MuonsFromRefitTracksProducer::produce().

                                                                                              {
  const reco::TrackRef& combinedTrack = muon.globalTrack();
  const reco::TrackRef& trackerTrack  = muon.innerTrack();

  if (combinedTrack->pt() < ptThreshold || trackerTrack->pt() < ptThreshold)
    return trackerTrack;

  double delta = fabs(trackerTrack->qoverp() - combinedTrack->qoverp());
  double threshold = nSigma * trackerTrack->qoverpError();

  return delta > threshold ? trackerTrack : combinedTrack;
}
reco::TrackRef tevOptimizedTMR ( const reco::Muon muon,
const reco::TrackToTrackMap fmsMap,
const double  cut 
)

Definition at line 22 of file MuonsFromRefitTracksProducer.cc.

References edm::AssociationMap< Tag >::end(), edm::AssociationMap< Tag >::find(), reco::Muon::globalTrack(), reco::Muon::innerTrack(), edm::Ref< C, T, F >::isAvailable(), and muon::trackProbability().

Referenced by MuonsFromRefitTracksProducer::produce().

                                           {
  const reco::TrackRef& combinedTrack = muon.globalTrack();
  const reco::TrackRef& trackerTrack  = muon.innerTrack();

  reco::TrackToTrackMap::const_iterator fmsTrack = fmsMap.find(combinedTrack);

  double probTK  = 0;
  double probFMS = 0;

  if (trackerTrack.isAvailable() && trackerTrack->numberOfValidHits())
    probTK = muon::trackProbability(trackerTrack);
  if (fmsTrack != fmsMap.end() && fmsTrack->val->numberOfValidHits())
    probFMS = muon::trackProbability(fmsTrack->val);

  bool TKok  = probTK > 0;
  bool FMSok = probFMS > 0;

  if (TKok && FMSok) {
    if (probFMS - probTK > cut)
      return trackerTrack;
    else
      return fmsTrack->val;
  }
  else if (FMSok)
    return fmsTrack->val;
  else if (TKok)
    return trackerTrack;

  return combinedTrack;
}