CMS 3D CMS Logo

L1MuonPixelTrackFitter.h
Go to the documentation of this file.
1 #ifndef RecoMuon_TrackerSeedGenerator_L1MuonPixelTrackFitter_H
2 #define RecoMuon_TrackerSeedGenerator_L1MuonPixelTrackFitter_H
3 
5 
11 
12 #include <vector>
13 
14 namespace edm {
15  class EventSetup;
16 }
17 namespace reco {
18  class Track;
19 }
20 
21 class TrackingRegion;
22 class TrackingRecHit;
23 class L1MuGMTCand;
24 class PixelRecoLineRZ;
25 class SeedingHitSet;
26 
28 public:
29  class Circle {
30  public:
34  Circle(const GlobalPoint& h1, const GlobalPoint& h2, double curvature) : theCurvature(curvature) {
35  Point p1(h1);
36  Point p2(h2);
37  Vector dp = (p2 - p1) / 2.;
38  int charge = theCurvature > 0 ? 1 : -1;
39  Vector ec = charge * dp.cross(Vector(0, 0, 1)).unit();
40  long double dist_tmp = 1. / theCurvature / theCurvature - dp.perp2();
41  theValid = (dist_tmp > 0.);
42  theCenter = p1 + dp + ec * sqrt(std::abs(dist_tmp));
43  }
44  bool isValid() const { return theValid; }
45  const Point& center() const { return theCenter; }
46  const long double& curvature() const { return theCurvature; }
47 
48  private:
49  bool theValid;
50  long double theCurvature;
52  };
53 
54 public:
56 
58 
59  void setL1Constraint(const L1MuGMTCand& muon);
60  void setPxConstraint(const SeedingHitSet& hits);
61 
62  virtual reco::Track* run(const edm::EventSetup& es,
63  const std::vector<const TrackingRecHit*>& hits,
64  const TrackingRegion& region) const;
65 
66  static double getBending(double invPt, double eta, int charge);
67  static double getBendingError(double invPt, double eta);
68 
69 private:
70  double valInversePt(double phi0, double phiL1, double eta) const;
71  double errInversePt(double invPt, double eta) const;
72 
73  double valPhi(const Circle& c, int charge) const;
74  double errPhi(double invPt, double eta) const;
75 
76  double valCotTheta(const PixelRecoLineRZ& line) const;
77  double errCotTheta(double invPt, double eta) const;
78 
79  double valZip(double curvature, const GlobalPoint& p0, const GlobalPoint& p1) const;
80  double errZip(double invPt, double eta) const;
81 
82  double valTip(const Circle& c, double curvature) const;
83  double errTip(double invPt, double eta) const;
84 
85  double findPt(double phi0, double phiL1, double eta, int charge) const;
86  double deltaPhi(double phi1, double phi2) const;
87  static void param(double eta, double& p1, double& p2, double& p3);
88 
89 private:
91 
92  const double invPtErrorScale;
93  const double phiErrorScale;
94  const double cotThetaErrorScale;
95  const double tipErrorScale;
96  const double zipErrorScale;
97 
98  // L1 constraint
99  double thePhiL1, theEtaL1;
101 
102  // Px constraint
104 
105 private:
106  friend class L1Seeding;
107 };
108 #endif
Vector3DBase
Definition: Vector3DBase.h:8
L1MuonPixelTrackFitter::tipErrorScale
const double tipErrorScale
Definition: L1MuonPixelTrackFitter.h:95
L1MuonPixelTrackFitter::thePhiL1
double thePhiL1
Definition: L1MuonPixelTrackFitter.h:99
L1MuonPixelTrackFitter::Circle::Vector
Vector3DBase< long double, GlobalTag > Vector
Definition: L1MuonPixelTrackFitter.h:31
funct::false
false
Definition: Factorize.h:34
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
muon
Definition: MuonCocktails.h:17
SeedingHitSet
Definition: SeedingHitSet.h:6
L1MuonPixelTrackFitter::invPtErrorScale
const double invPtErrorScale
Definition: L1MuonPixelTrackFitter.h:92
L1MuonPixelTrackFitter::setPxConstraint
void setPxConstraint(const SeedingHitSet &hits)
Definition: L1MuonPixelTrackFitter.cc:34
edm
HLT enums.
Definition: AlignableModifier.h:19
L1MuonPixelTrackFitter::phiErrorScale
const double phiErrorScale
Definition: L1MuonPixelTrackFitter.h:93
L1MuonPixelTrackFitter::Circle::isValid
bool isValid() const
Definition: L1MuonPixelTrackFitter.h:44
L1MuonPixelTrackFitter::errTip
double errTip(double invPt, double eta) const
Definition: L1MuonPixelTrackFitter.cc:344
Point3DBase.h
L1MuonPixelTrackFitter::errInversePt
double errInversePt(double invPt, double eta) const
Definition: L1MuonPixelTrackFitter.cc:616
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
L1MuonPixelTrackFitter::valCotTheta
double valCotTheta(const PixelRecoLineRZ &line) const
Definition: L1MuonPixelTrackFitter.cc:219
L1MuonPixelTrackFitter::theHit2
GlobalPoint theHit2
Definition: L1MuonPixelTrackFitter.h:103
L1MuonPixelTrackFitter::Circle
Definition: L1MuonPixelTrackFitter.h:29
PixelRecoUtilities::curvature
T curvature(T InversePt, const edm::EventSetup &iSetup)
Definition: PixelRecoUtilities.h:42
L1MuonPixelTrackFitter::run
virtual reco::Track * run(const edm::EventSetup &es, const std::vector< const TrackingRecHit * > &hits, const TrackingRegion &region) const
Definition: L1MuonPixelTrackFitter.cc:39
L1MuGMTCand
Definition: L1MuGMTCand.h:39
L1MuonPixelTrackFitter::Circle::theValid
bool theValid
Definition: L1MuonPixelTrackFitter.h:49
L1MuonPixelTrackFitter::L1Seeding
friend class L1Seeding
Definition: L1MuonPixelTrackFitter.h:106
L1MuonPixelTrackFitter::theChargeL1
int theChargeL1
Definition: L1MuonPixelTrackFitter.h:100
L1MuonPixelTrackFitter::errPhi
double errPhi(double invPt, double eta) const
Definition: L1MuonPixelTrackFitter.cc:103
L1MuonPixelTrackFitter::Circle::curvature
const long double & curvature() const
Definition: L1MuonPixelTrackFitter.h:46
Calorimetry_cff.dp
dp
Definition: Calorimetry_cff.py:157
PVValHelper::eta
Definition: PVValidationHelpers.h:69
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
L1MuonPixelTrackFitter::getBending
static double getBending(double invPt, double eta, int charge)
Definition: L1MuonPixelTrackFitter.cc:755
reco::Track
Definition: Track.h:27
p2
double p2[4]
Definition: TauolaWrapper.h:90
L1MuonPixelTrackFitter::Circle::Circle
Circle()
Definition: L1MuonPixelTrackFitter.h:33
Vector3DBase.h
Point3DBase< long double, GlobalTag >
L1MuonPixelTrackFitter::theHit1
GlobalPoint theHit1
Definition: L1MuonPixelTrackFitter.h:103
L1MuonPixelTrackFitter::getBendingError
static double getBendingError(double invPt, double eta)
Definition: L1MuonPixelTrackFitter.cc:761
GlobalTag.h
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
L1MuonPixelTrackFitter::Circle::Circle
Circle(const GlobalPoint &h1, const GlobalPoint &h2, double curvature)
Definition: L1MuonPixelTrackFitter.h:34
edm::ParameterSet
Definition: ParameterSet.h:36
L1MuonPixelTrackFitter::valTip
double valTip(const Circle &c, double curvature) const
Definition: L1MuonPixelTrackFitter.cc:337
L1MuonPixelTrackFitter::~L1MuonPixelTrackFitter
virtual ~L1MuonPixelTrackFitter()
Definition: L1MuonPixelTrackFitter.h:57
L1MuonPixelTrackFitter::param
static void param(double eta, double &p1, double &p2, double &p3)
Definition: L1MuonPixelTrackFitter.cc:874
L1MuonPixelTrackFitter::theConfig
edm::ParameterSet theConfig
Definition: L1MuonPixelTrackFitter.h:90
L1MuonPixelTrackFitter
Definition: L1MuonPixelTrackFitter.h:27
L1MuonPixelTrackFitter::errZip
double errZip(double invPt, double eta) const
Definition: L1MuonPixelTrackFitter.cc:475
L1MuonPixelTrackFitter::zipErrorScale
const double zipErrorScale
Definition: L1MuonPixelTrackFitter.h:96
L1MuonPixelTrackFitter::theEtaL1
double theEtaL1
Definition: L1MuonPixelTrackFitter.h:99
PixelRecoLineRZ
Definition: PixelRecoLineRZ.h:12
L1MuonPixelTrackFitter::errCotTheta
double errCotTheta(double invPt, double eta) const
Definition: L1MuonPixelTrackFitter.cc:221
p1
double p1[4]
Definition: TauolaWrapper.h:89
L1MuonPixelTrackFitter::Circle::theCurvature
long double theCurvature
Definition: L1MuonPixelTrackFitter.h:50
edm::EventSetup
Definition: EventSetup.h:57
L1MuonPixelTrackFitter::Circle::theCenter
Point theCenter
Definition: L1MuonPixelTrackFitter.h:51
L1MuonPixelTrackFitter::setL1Constraint
void setL1Constraint(const L1MuGMTCand &muon)
Definition: L1MuonPixelTrackFitter.cc:28
HltBtagPostValidation_cff.c
c
Definition: HltBtagPostValidation_cff.py:31
looper.cfg
cfg
Definition: looper.py:297
L1MuonPixelTrackFitter::valPhi
double valPhi(const Circle &c, int charge) const
Definition: L1MuonPixelTrackFitter.cc:94
TrackingRecHit
Definition: TrackingRecHit.h:21
L1MuonPixelTrackFitter::deltaPhi
double deltaPhi(double phi1, double phi2) const
Definition: L1MuonPixelTrackFitter.cc:1006
L1MuonPixelTrackFitter::cotThetaErrorScale
const double cotThetaErrorScale
Definition: L1MuonPixelTrackFitter.h:94
HLT_2018_cff.region
region
Definition: HLT_2018_cff.py:81479
GlobalVector.h
p3
double p3[4]
Definition: TauolaWrapper.h:91
L1MuonPixelTrackFitter::Circle::center
const Point & center() const
Definition: L1MuonPixelTrackFitter.h:45
TrackingRegion
Definition: TrackingRegion.h:40
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
L1MuonPixelTrackFitter::findPt
double findPt(double phi0, double phiL1, double eta, int charge) const
Definition: L1MuonPixelTrackFitter.cc:732
EventSetup
ParameterSet.h
L1MuonPixelTrackFitter::L1MuonPixelTrackFitter
L1MuonPixelTrackFitter(const edm::ParameterSet &cfg)
Definition: L1MuonPixelTrackFitter.cc:20
mps_splice.line
line
Definition: mps_splice.py:76
L1MuonPixelTrackFitter::valInversePt
double valInversePt(double phi0, double phiL1, double eta) const
Definition: L1MuonPixelTrackFitter.cc:591
GlobalPoint.h
L1MuonPixelTrackFitter::valZip
double valZip(double curvature, const GlobalPoint &p0, const GlobalPoint &p1) const
Definition: L1MuonPixelTrackFitter.cc:460
L1MuonPixelTrackFitter::Circle::Point
Point3DBase< long double, GlobalTag > Point
Definition: L1MuonPixelTrackFitter.h:32