CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups 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
 
std::vector
< reco::MuonSegmentMatch
gemMatches
 
DetId id
 
std::vector
< reco::MuonSegmentMatch
me0Matches
 
int nDigisInRange
 
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 31 of file MuonChamberMatch.h.

Referenced by MuonShowerDigiFiller::fill(), and station().

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

Definition at line 35 of file MuonChamberMatch.h.

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

35 { 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 36 of file MuonChamberMatch.h.

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

36  {
37  return getDistancePair(edgeX, edgeY, xErr, yErr).second;
38  } // 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 35 of file MuonChamberMatch.cc.

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

Referenced by dist(), and distErr().

35  {
36  if (edgeX > 9E5 && edgeY > 9E5 && xErr > 9E5 && yErr > 9E5) // there is no track
37  return std::make_pair(999999, 999999);
38 
39  float distance = 999999;
40  float error = 999999;
41 
42  if (edgeX < 0 && edgeY < 0) {
43  if (edgeX < edgeY) {
44  distance = edgeY;
45  error = yErr;
46  } else {
47  distance = edgeX;
48  error = xErr;
49  }
50  }
51  if (edgeX < 0 && edgeY > 0) {
52  distance = edgeY;
53  error = yErr;
54  }
55  if (edgeX > 0 && edgeY < 0) {
56  distance = edgeX;
57  error = xErr;
58  }
59  if (edgeX > 0 && edgeY > 0) {
60  distance = sqrt(edgeX * edgeX + edgeY * edgeY);
61  error = distance ? sqrt(edgeX * edgeX * xErr * xErr + edgeY * edgeY * yErr * yErr) / fabs(distance) : 0;
62  }
63 
64  return std::make_pair(distance, error);
65 }
T sqrt(T t)
Definition: SSEVec.h:19
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(), ME0DetId::station(), RPCDetId::station(), CSCDetId::station(), and GEMDetId::station().

Referenced by 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 constexpr int GEM
Definition: MuonSubdetId.h:14
static constexpr int ME0
Definition: MuonSubdetId.h:15
static constexpr int RPC
Definition: MuonSubdetId.h:13
static constexpr int DT
Definition: MuonSubdetId.h:11
static constexpr int CSC
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 dist(), distErr(), MuonIdProducer::fillMuonId(), and getDistancePair().

float reco::MuonChamberMatch::edgeY

Definition at line 18 of file MuonChamberMatch.h.

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

std::vector<reco::MuonSegmentMatch> reco::MuonChamberMatch::gemMatches
DetId reco::MuonChamberMatch::id
std::vector<reco::MuonSegmentMatch> reco::MuonChamberMatch::me0Matches
int reco::MuonChamberMatch::nDigisInRange
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