CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
const TString p2
Definition: fwPaths.cc:13
static const unsigned int BestInStationByDRSlope
static const unsigned int BelongsToTrackByDXSlope
static const unsigned int BestInStationByDR
SortMuonSegmentMatches(unsigned int flag)
constructor takes arbitration type
T sqrt(T t)
Definition: SSEVec.h:19
static const unsigned int BestInChamberByDX
const TString p1
Definition: fwPaths.cc:12
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
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
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:29