Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
RecoEgamma
EgammaElectronAlgos
src
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
//
18
#include "
RecoEgamma/EgammaElectronAlgos/interface/FTSFromVertexToPointFactory.h
"
19
#include "
MagneticField/Engine/interface/MagneticField.h
"
20
21
22
FreeTrajectoryState
FTSFromVertexToPointFactory::get
(
MagneticField
const
& magField,
23
GlobalPoint
const
& xmeas,
24
GlobalPoint
const
& xvert,
25
float
momentum,
26
TrackCharge
charge )
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
48
AlgebraicSymMatrix55
C
=
AlgebraicMatrixID
();
49
FreeTrajectoryState
VertexToPoint(gp,
CurvilinearTrajectoryError
(C));
50
51
return
VertexToPoint;
52
}
alpha
float alpha
Definition:
AMPTWrapper.h:95
FTSFromVertexToPointFactory::get
static FreeTrajectoryState get(MagneticField const &magField, GlobalPoint const &xmeas, GlobalPoint const &xvert, float momentum, TrackCharge charge)
Definition:
FTSFromVertexToPointFactory.cc:22
PV3DBase::perp
T perp() const
Definition:
PV3DBase.h:72
Vector3DBase< float, GlobalTag >
MagneticField::inTesla
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
AlgebraicMatrixID
ROOT::Math::SMatrixIdentity AlgebraicMatrixID
Definition:
AlgebraicROOTObjects.h:80
funct::sin
Sin< T >::type sin(const T &t)
Definition:
Sin.h:22
GlobalTrajectoryParameters
Definition:
GlobalTrajectoryParameters.h:15
PV3DBase::phi
Geom::Phi< T > phi() const
Definition:
PV3DBase.h:69
theta
Geom::Theta< T > theta() const
Definition:
Basic3DVectorLD.h:170
MagneticField
Definition:
MagneticField.h:17
AlgebraicSymMatrix55
ROOT::Math::SMatrix< double, 5, 5, ROOT::Math::MatRepSym< double, 5 > > AlgebraicSymMatrix55
Definition:
AlgebraicROOTObjects.h:31
funct::C
C
Definition:
Factorize.h:141
PV3DBase::theta
Geom::Theta< T > theta() const
Definition:
PV3DBase.h:75
MagneticField.h
TrackCharge
int TrackCharge
Definition:
TrackCharge.h:4
FreeTrajectoryState
Definition:
FreeTrajectoryState.h:29
PV3DBase::z
T z() const
Definition:
PV3DBase.h:64
funct::cos
Cos< T >::type cos(const T &t)
Definition:
Cos.h:22
FTSFromVertexToPointFactory.h
EnergyCorrector.pt
int pt
Definition:
EnergyCorrector.py:45
Point3DBase< float, GlobalTag >
CurvilinearTrajectoryError
Definition:
CurvilinearTrajectoryError.h:27
phi
Definition:
DDAxes.h:10
Generated for CMSSW Reference Manual by
1.8.5