CMS 3D CMS Logo

List of all members | Public Member Functions | Public Attributes
reco::MuonChamberMatch Class Reference

#include <MuonChamberMatch.h>

Public Member Functions

int detector () const
 
float dist () const
 
float distErr () const
 
std::pair< float, float > getDistancePair (float edgeX, float edgeY, float xErr, float yErr) const
 
int station () const
 

Public Attributes

float dXdZ
 
float dXdZErr
 
float dYdZ
 
float dYdZErr
 
float edgeX
 
float edgeY
 
std::vector< reco::MuonSegmentMatchgemMatches
 
DetId id
 
std::vector< reco::MuonSegmentMatchme0Matches
 
std::vector< reco::MuonRPCHitMatchrpcMatches
 
std::vector< reco::MuonSegmentMatchsegmentMatches
 
std::vector< reco::MuonSegmentMatchtruthMatches
 
float x
 
float xErr
 
float y
 
float yErr
 

Detailed Description

Definition at line 10 of file MuonChamberMatch.h.

Member Function Documentation

int reco::MuonChamberMatch::detector ( ) const
inline

Definition at line 29 of file MuonChamberMatch.h.

References getDistancePair(), and station().

Referenced by station().

29 { return id.subdetId(); }
float reco::MuonChamberMatch::dist ( ) const
inline

Definition at line 33 of file MuonChamberMatch.h.

References getDistancePair().

33 { return getDistancePair(edgeX, edgeY, xErr, yErr).first; } // distance to absolute closest edge
std::pair< float, float > getDistancePair(float edgeX, float edgeY, float xErr, float yErr) const
float reco::MuonChamberMatch::distErr ( ) const
inline

Definition at line 34 of file MuonChamberMatch.h.

References getDistancePair().

34 { return getDistancePair(edgeX, edgeY, xErr, yErr).second; } // propagation uncertainty in above distance
std::pair< float, float > getDistancePair(float edgeX, float edgeY, float xErr, float yErr) const
std::pair< float, float > MuonChamberMatch::getDistancePair ( float  edgeX,
float  edgeY,
float  xErr,
float  yErr 
) const

Definition at line 36 of file MuonChamberMatch.cc.

References SoftLeptonByDistance_cfi::distance, edgeX, edgeY, relativeConstraints::error, mathSSE::sqrt(), xErr, and yErr.

Referenced by detector(), dist(), and distErr().

37 {
38  if(edgeX>9E5&&edgeY>9E5&&xErr>9E5&&yErr>9E5) // there is no track
39  return std::make_pair(999999, 999999);
40 
41  float distance = 999999;
42  float error = 999999;
43 
44  if(edgeX<0 && edgeY<0) {
45  if(edgeX<edgeY) { distance = edgeY; error = yErr; }
46  else { distance = edgeX; error = xErr; }
47  }
48  if(edgeX<0 && edgeY>0) { distance = edgeY; error = yErr; }
49  if(edgeX>0 && edgeY<0) { distance = edgeX; error = xErr; }
50  if(edgeX>0 && edgeY>0) { distance = sqrt(edgeX*edgeX+edgeY*edgeY); error = distance ? sqrt(edgeX*edgeX*xErr*xErr+edgeY*edgeY*yErr*yErr)/fabs(distance) : 0; }
51 
52  return std::make_pair(distance, error);
53 }
T sqrt(T t)
Definition: SSEVec.h:18
int MuonChamberMatch::station ( ) const

Definition at line 11 of file MuonChamberMatch.cc.

References MuonSubdetId::CSC, detector(), MuonSubdetId::DT, MuonSubdetId::GEM, MuonSubdetId::ME0, MuonSubdetId::RPC, DTChamberId::station(), GEMDetId::station(), ME0DetId::station(), CSCDetId::station(), and RPCDetId::station().

Referenced by detector(), geometryXMLparser.DTAlignable::index(), and geometryXMLparser.CSCAlignable::index().

11  {
12  if( detector() == MuonSubdetId::DT ) { // DT
13  DTChamberId segId(id.rawId());
14  return segId.station();
15  }
16  if( detector() == MuonSubdetId::CSC ) { // CSC
17  CSCDetId segId(id.rawId());
18  return segId.station();
19  }
20  if( detector() == MuonSubdetId::RPC ) { //RPC
21  RPCDetId segId(id.rawId());
22  return segId.station();
23  }
24  if( detector() == MuonSubdetId::GEM ) { //GEM
25  GEMDetId segId(id.rawId());
26  return segId.station();
27  }
28  if( detector() == MuonSubdetId::ME0 ) { //ME0
29  ME0DetId segId(id.rawId());
30  return segId.station();
31  }
32  return -1; // is this appropriate? fix this
33 }
static const int GEM
Definition: MuonSubdetId.h:15
static const int ME0
Definition: MuonSubdetId.h:16
static const int CSC
Definition: MuonSubdetId.h:13
static const int RPC
Definition: MuonSubdetId.h:14
static const int DT
Definition: MuonSubdetId.h:12

Member Data Documentation

float reco::MuonChamberMatch::dXdZ
float reco::MuonChamberMatch::dXdZErr
float reco::MuonChamberMatch::dYdZ
float reco::MuonChamberMatch::dYdZErr
float reco::MuonChamberMatch::edgeX

Definition at line 17 of file MuonChamberMatch.h.

Referenced by MuonIdProducer::fillMuonId(), and getDistancePair().

float reco::MuonChamberMatch::edgeY

Definition at line 18 of file MuonChamberMatch.h.

Referenced by MuonIdProducer::fillMuonId(), and getDistancePair().

std::vector<reco::MuonSegmentMatch> reco::MuonChamberMatch::gemMatches
DetId reco::MuonChamberMatch::id
std::vector<reco::MuonSegmentMatch> reco::MuonChamberMatch::me0Matches
std::vector<reco::MuonRPCHitMatch> reco::MuonChamberMatch::rpcMatches

Definition at line 16 of file MuonChamberMatch.h.

Referenced by MuonIdProducer::fillMuonId().

std::vector<reco::MuonSegmentMatch> reco::MuonChamberMatch::segmentMatches
std::vector<reco::MuonSegmentMatch> reco::MuonChamberMatch::truthMatches

Definition at line 15 of file MuonChamberMatch.h.

float reco::MuonChamberMatch::x
float reco::MuonChamberMatch::xErr
float reco::MuonChamberMatch::y
float reco::MuonChamberMatch::yErr