CMS 3D CMS Logo

MuonChamberMatch.cc
Go to the documentation of this file.
8 #include <cmath>
9 using namespace reco;
10 
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 }
34 
35 std::pair<float, float> MuonChamberMatch::getDistancePair(float edgeX, float edgeY, float xErr, float yErr) const {
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 }
static constexpr int GEM
Definition: MuonSubdetId.h:14
int station() const
Definition: ME0DetId.h:58
T sqrt(T t)
Definition: SSEVec.h:19
int station() const
Definition: GEMDetId.h:173
static constexpr int ME0
Definition: MuonSubdetId.h:15
static constexpr int RPC
Definition: MuonSubdetId.h:13
fixed size matrix
int station() const
Definition: CSCDetId.h:79
static constexpr int DT
Definition: MuonSubdetId.h:11
int station() const
Return the station number.
Definition: DTChamberId.h:42
static constexpr int CSC
Definition: MuonSubdetId.h:12
std::pair< float, float > getDistancePair(float edgeX, float edgeY, float xErr, float yErr) const
int station() const
Definition: RPCDetId.h:78