CMS 3D CMS Logo

MuonArbitrationMethods.h
Go to the documentation of this file.
1 #ifndef MuonIdentification_MuonArbitrationMethods_h
2 #define MuonIdentification_MuonArbitrationMethods_h
3 
6 
7 #include <utility>
8 
9 // Author: Jake Ribnik (UCSB)
10 
14  SortMuonSegmentMatches(unsigned int flag) { flag_ = flag; }
16  bool operator()(std::pair<reco::MuonChamberMatch*, reco::MuonSegmentMatch*> p1,
17  std::pair<reco::MuonChamberMatch*, reco::MuonSegmentMatch*> p2) {
18  reco::MuonChamberMatch* cm1 = p1.first;
19  reco::MuonSegmentMatch* sm1 = p1.second;
20  reco::MuonChamberMatch* cm2 = p2.first;
21  reco::MuonSegmentMatch* sm2 = p2.second;
22 
25  return fabs(sm1->x - cm1->x) < fabs(sm2->x - cm2->x);
28  if ((!sm1->hasZed()) || (!sm2->hasZed())) // no y information so return dx
29  return fabs(sm1->x - cm1->x) < fabs(sm2->x - cm2->x);
30  return sqrt(pow(sm1->x - cm1->x, 2) + pow(sm1->y - cm1->y, 2)) <
31  sqrt(pow(sm2->x - cm2->x, 2) + pow(sm2->y - cm2->y, 2));
32  }
36  return fabs(sm1->dXdZ - cm1->dXdZ) < fabs(sm2->dXdZ - cm2->dXdZ);
40  if ((!sm1->hasZed()) || (!sm2->hasZed())) // no y information so return dx
41  return fabs(sm1->dXdZ - cm1->dXdZ) < fabs(sm2->dXdZ - cm2->dXdZ);
42  return sqrt(pow(sm1->dXdZ - cm1->dXdZ, 2) + pow(sm1->dYdZ - cm1->dYdZ, 2)) <
43  sqrt(pow(sm2->dXdZ - cm2->dXdZ, 2) + pow(sm2->dYdZ - cm2->dYdZ, 2));
44  }
45 
46  return false; // is this appropriate? fix this
47  }
48 
49  unsigned int flag_;
50 };
51 
52 #endif
constexpr int pow(int x)
Definition: conifer.h:24
static const unsigned int BestInStationByDRSlope
static const unsigned int BelongsToTrackByDXSlope
static const unsigned int BestInStationByDR
bool operator()(std::pair< reco::MuonChamberMatch *, reco::MuonSegmentMatch *> p1, std::pair< reco::MuonChamberMatch *, reco::MuonSegmentMatch *> p2)
sorts vector of pairs of chamber and segment pointers
SortMuonSegmentMatches(unsigned int flag)
constructor takes arbitration type
T sqrt(T t)
Definition: SSEVec.h:19
static const unsigned int BestInChamberByDX
static const unsigned int BestInChamberByDR
static const unsigned int BestInStationByDXSlope
static const unsigned int BestInChamberByDXSlope
static const unsigned int BelongsToTrackByDRSlope
static const unsigned int BelongsToTrackByDR
static const unsigned int BelongsToTrackByDX
functor predicate for standard library sort algorithm
static const unsigned int BestInStationByDX
static const unsigned int BestInChamberByDRSlope