CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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
 
DetId id
 
std::vector
< reco::MuonRPCHitMatch
rpcMatches
 
std::vector
< reco::MuonSegmentMatch
segmentMatches
 
std::vector
< reco::MuonSegmentMatch
truthMatches
 
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 27 of file MuonChamberMatch.h.

Referenced by station().

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

Definition at line 31 of file MuonChamberMatch.h.

References edgeX, edgeY, getDistancePair(), xErr, and yErr.

31 { 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 32 of file MuonChamberMatch.h.

References edgeX, edgeY, getDistancePair(), xErr, and yErr.

32 { 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 26 of file MuonChamberMatch.cc.

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

Referenced by dist(), and distErr().

27 {
28  if(edgeX>9E5&&edgeY>9E5&&xErr>9E5&&yErr>9E5) // there is no track
29  return std::make_pair(999999, 999999);
30 
31  float distance = 999999;
32  float error = 999999;
33 
34  if(edgeX<0 && edgeY<0) {
35  if(edgeX<edgeY) { distance = edgeY; error = yErr; }
36  else { distance = edgeX; error = xErr; }
37  }
38  if(edgeX<0 && edgeY>0) { distance = edgeY; error = yErr; }
39  if(edgeX>0 && edgeY<0) { distance = edgeX; error = xErr; }
40  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; }
41 
42  return std::make_pair(distance, error);
43 }
T sqrt(T t)
Definition: SSEVec.h:48
int MuonChamberMatch::station ( ) const

Definition at line 9 of file MuonChamberMatch.cc.

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

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

9  {
10  if( detector() == MuonSubdetId::DT ) { // DT
11  DTChamberId segId(id.rawId());
12  return segId.station();
13  }
14  if( detector() == MuonSubdetId::CSC ) { // CSC
15  CSCDetId segId(id.rawId());
16  return segId.station();
17  }
18  if( detector() == MuonSubdetId::RPC ) { //RPC
19  RPCDetId segId(id.rawId());
20  return segId.station();
21  }
22  return -1; // is this appropriate? fix this
23 }
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 15 of file MuonChamberMatch.h.

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

float reco::MuonChamberMatch::edgeY

Definition at line 16 of file MuonChamberMatch.h.

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

DetId reco::MuonChamberMatch::id
std::vector<reco::MuonRPCHitMatch> reco::MuonChamberMatch::rpcMatches

Definition at line 14 of file MuonChamberMatch.h.

Referenced by MuonIdProducer::fillMuonId().

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

Definition at line 12 of file MuonChamberMatch.h.

Referenced by MuonIdProducer::fillMuonId().

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

Definition at line 13 of file MuonChamberMatch.h.

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