test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
FTSFromVertexToPointFactory.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: EgammaElectronAlgos
4 // Class: FTSFromVertexToPointFactory
5 //
13 //
14 // Original Author: Ursula Berthon, Claude Charlot
15 // Created: Mon Mar 27 13:22:06 CEST 2006
16 //
17 //
20 
21 
23  GlobalPoint const & xmeas,
24  GlobalPoint const & xvert,
25  float momentum,
27 {
28  double BInTesla = magField.inTesla(xmeas).z();
29  GlobalVector xdiff = xmeas - xvert;
30  double theta = xdiff.theta();
31  double phi= xdiff.phi();
32  double pt = momentum*sin(theta);
33  double pz = momentum*cos(theta);
34  double pxOld = pt*cos(phi);
35  double pyOld = pt*sin(phi);
36 
37  double RadCurv = 100*pt/(BInTesla*0.29979);
38  double alpha = asin(0.5*xdiff.perp()/RadCurv);
39 
40  float ca = cos(charge*alpha);
41  float sa = sin(charge*alpha);
42  double pxNew = ca*pxOld + sa*pyOld;
43  double pyNew = -sa*pxOld + ca*pyOld;
44  GlobalVector pNew(pxNew, pyNew, pz);
45 
46  GlobalTrajectoryParameters gp(xmeas, pNew, charge, & magField);
47 
50 
51  return VertexToPoint;
52 }
float alpha
Definition: AMPTWrapper.h:95
static FreeTrajectoryState get(MagneticField const &magField, GlobalPoint const &xmeas, GlobalPoint const &xvert, float momentum, TrackCharge charge)
T perp() const
Definition: PV3DBase.h:72
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
Geom::Theta< T > theta() const
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
Geom::Theta< T > theta() const
Definition: PV3DBase.h:75
int TrackCharge
Definition: TrackCharge.h:4
T z() const
Definition: PV3DBase.h:64
Cos< T >::type cos(const T &t)
Definition: Cos.h:22