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 // $Id: FTSFromVertexToPointFactory.cc,v 1.6 2011/03/21 17:10:32 innocent Exp $
17 //
18 //
21 
22 
24  const GlobalPoint& 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 }
53 
54 
55 
56 
57 
58 
float alpha
Definition: AMPTWrapper.h:95
T perp() const
Definition: PV3DBase.h:72
FreeTrajectoryState operator()(const MagneticField *magField, const GlobalPoint &xmeas, const GlobalPoint &xvert, float momentum, TrackCharge charge)
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
double charge(const std::vector< uint8_t > &Ampls)
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
Definition: DDAxes.h:10