CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

MuonGmtPair Class Reference

#include <L1TEfficiencyMuons_Offline.h>

List of all members.

Public Member Functions

double dR ()
double eta () const
double gmtPt () const
 MuonGmtPair (const MuonGmtPair &muonGmtPair)
 MuonGmtPair (const reco::Muon *muon, const L1MuGMTExtendedCand *gmt)
double phi () const
void propagate (edm::ESHandle< MagneticField > bField, edm::ESHandle< Propagator > propagatorAlong, edm::ESHandle< Propagator > propagatorOpposite)
double pt () const
 ~MuonGmtPair ()

Private Member Functions

TrajectoryStateOnSurface cylExtrapTrkSam (reco::TrackRef track, double rho)
FreeTrajectoryState freeTrajStateMuon (reco::TrackRef track)
TrajectoryStateOnSurface surfExtrapTrkSam (reco::TrackRef track, double z)

Private Attributes

edm::ESHandle< MagneticFieldm_BField
double m_eta
const L1MuGMTExtendedCandm_gmt
const reco::Muonm_muon
double m_phi_bar
double m_phi_end
edm::ESHandle< Propagatorm_propagatorAlong
edm::ESHandle< Propagatorm_propagatorOpposite

Detailed Description

Definition at line 73 of file L1TEfficiencyMuons_Offline.h.


Constructor & Destructor Documentation

MuonGmtPair::MuonGmtPair ( const reco::Muon muon,
const L1MuGMTExtendedCand gmt 
) [inline]

Definition at line 77 of file L1TEfficiencyMuons_Offline.h.

                                                                    : 
    m_muon(muon), m_gmt(gmt), m_eta(999.), m_phi_bar(999.), m_phi_end(999.) { };
MuonGmtPair::MuonGmtPair ( const MuonGmtPair muonGmtPair)

Definition at line 31 of file L1TEfficiencyMuons_Offline.cc.

References m_eta, m_gmt, m_muon, m_phi_bar, and m_phi_end.

                                                       {

  m_muon    = muonGmtPair.m_muon;
  m_gmt     = muonGmtPair.m_gmt;
  m_eta     = muonGmtPair.m_eta;
  m_phi_bar = muonGmtPair.m_phi_bar;
  m_phi_end = muonGmtPair.m_phi_end;

}
MuonGmtPair::~MuonGmtPair ( ) [inline]

Definition at line 82 of file L1TEfficiencyMuons_Offline.h.

{ };

Member Function Documentation

TrajectoryStateOnSurface MuonGmtPair::cylExtrapTrkSam ( reco::TrackRef  track,
double  rho 
) [private]

Definition at line 86 of file L1TEfficiencyMuons_Offline.cc.

References newFWLiteAna::build, TrajectoryStateOnSurface::isValid(), pos, and makeMuonMisalignmentScenario::rot.

{

  Cylinder::PositionType pos(0, 0, 0);
  Cylinder::RotationType rot;
  Cylinder::CylinderPointer myCylinder = Cylinder::build(pos, rot, rho);
  
  FreeTrajectoryState recoStart = freeTrajStateMuon(track);
  TrajectoryStateOnSurface recoProp;
  recoProp = m_propagatorAlong->propagate(recoStart, *myCylinder);
  if (!recoProp.isValid()) {
    recoProp = m_propagatorOpposite->propagate(recoStart, *myCylinder);
  }
  return recoProp;

}
double MuonGmtPair::dR ( )

Definition at line 42 of file L1TEfficiencyMuons_Offline.cc.

References dPhi(), eta(), phi, and mathSSE::sqrt().

Referenced by L1TEfficiencyMuons_Offline::getMuonGmtPairs().

                       {
  
  float dEta = m_gmt ? (m_gmt->etaValue() - eta()) : 999.;
  float dPhi = m_gmt ? (m_gmt->phiValue() - phi()) : 999.;
    
  float dr = sqrt(dEta*dEta + dPhi*dPhi);

  return dr;

}
double MuonGmtPair::eta ( ) const [inline]

Definition at line 86 of file L1TEfficiencyMuons_Offline.h.

References m_eta.

{ return m_eta; };
FreeTrajectoryState MuonGmtPair::freeTrajStateMuon ( reco::TrackRef  track) [private]

Definition at line 121 of file L1TEfficiencyMuons_Offline.cc.

{
 
  GlobalPoint  innerPoint(track->innerPosition().x(), track->innerPosition().y(),  track->innerPosition().z());
  GlobalVector innerVec  (track->innerMomentum().x(),  track->innerMomentum().y(),  track->innerMomentum().z());  
    
  FreeTrajectoryState recoStart(innerPoint, innerVec, track->charge(), &*m_BField);
    
  return recoStart;

}
double MuonGmtPair::gmtPt ( ) const [inline]

Definition at line 90 of file L1TEfficiencyMuons_Offline.h.

References m_gmt, and L1MuGMTCand::ptValue().

Referenced by L1TEfficiencyMuons_Offline::getMuonGmtPairs().

{ return m_gmt ? m_gmt->ptValue() : -1.; };
double MuonGmtPair::phi ( void  ) const [inline]

Definition at line 87 of file L1TEfficiencyMuons_Offline.h.

References m_eta, m_phi_bar, and m_phi_end.

{ return fabs(m_eta)< 1.04 ? m_phi_bar : m_phi_end; };
void MuonGmtPair::propagate ( edm::ESHandle< MagneticField bField,
edm::ESHandle< Propagator propagatorAlong,
edm::ESHandle< Propagator propagatorOpposite 
)

Definition at line 54 of file L1TEfficiencyMuons_Offline.cc.

References ecalTB2006H4_GenSimDigiReco_cfg::bField, PV3DBase< T, PVType, FrameType >::eta(), TrajectoryStateOnSurface::globalPosition(), TrajectoryStateOnSurface::isValid(), and PV3DBase< T, PVType, FrameType >::phi().

Referenced by L1TEfficiencyMuons_Offline::getMuonGmtPairs().

                                                                     {

  m_BField = bField;
  m_propagatorAlong = propagatorAlong;
  m_propagatorOpposite = propagatorOpposite;

  TrackRef standaloneMuon = m_muon->outerTrack();  
    
  TrajectoryStateOnSurface trajectory;
  trajectory = cylExtrapTrkSam(standaloneMuon, 500);  // track at MB2 radius - extrapolation
  if (trajectory.isValid()) {
    m_eta     = trajectory.globalPosition().eta();
    m_phi_bar = trajectory.globalPosition().phi();
  }
  
  trajectory = surfExtrapTrkSam(standaloneMuon, 790);   // track at ME2+ plane - extrapolation
  if (trajectory.isValid()) {
    m_eta     = trajectory.globalPosition().eta();      
    m_phi_end = trajectory.globalPosition().phi();
  }
  
  trajectory = surfExtrapTrkSam(standaloneMuon, -790); // track at ME2- disk - extrapolation
  if (trajectory.isValid()) {
    m_eta     = trajectory.globalPosition().eta();      
    m_phi_end = trajectory.globalPosition().phi();
  }
    
}
double MuonGmtPair::pt ( ) const [inline]

Definition at line 88 of file L1TEfficiencyMuons_Offline.h.

References reco::Muon::globalTrack(), reco::Muon::isGlobalMuon(), and m_muon.

{ return m_muon->isGlobalMuon() ? m_muon->globalTrack()->pt() : -1; };
TrajectoryStateOnSurface MuonGmtPair::surfExtrapTrkSam ( reco::TrackRef  track,
double  z 
) [private]

Definition at line 104 of file L1TEfficiencyMuons_Offline.cc.

References newFWLiteAna::build, TrajectoryStateOnSurface::isValid(), pos, and makeMuonMisalignmentScenario::rot.

{
  
  Plane::PositionType pos(0, 0, z);
  Plane::RotationType rot;
  Plane::PlanePointer myPlane = Plane::build(pos, rot);
    
  FreeTrajectoryState recoStart = freeTrajStateMuon(track);
  TrajectoryStateOnSurface recoProp;
  recoProp = m_propagatorAlong->propagate(recoStart, *myPlane);
  if (!recoProp.isValid()) {
    recoProp = m_propagatorOpposite->propagate(recoStart, *myPlane);
  }
  return recoProp;
}

Member Data Documentation

Definition at line 108 of file L1TEfficiencyMuons_Offline.h.

double MuonGmtPair::m_eta [private]

Definition at line 112 of file L1TEfficiencyMuons_Offline.h.

Referenced by eta(), MuonGmtPair(), and phi().

Definition at line 106 of file L1TEfficiencyMuons_Offline.h.

Referenced by gmtPt(), and MuonGmtPair().

const reco::Muon* MuonGmtPair::m_muon [private]

Definition at line 105 of file L1TEfficiencyMuons_Offline.h.

Referenced by MuonGmtPair(), and pt().

double MuonGmtPair::m_phi_bar [private]

Definition at line 113 of file L1TEfficiencyMuons_Offline.h.

Referenced by MuonGmtPair(), and phi().

double MuonGmtPair::m_phi_end [private]

Definition at line 114 of file L1TEfficiencyMuons_Offline.h.

Referenced by MuonGmtPair(), and phi().

Definition at line 109 of file L1TEfficiencyMuons_Offline.h.

Definition at line 110 of file L1TEfficiencyMuons_Offline.h.