Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
src
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
RecoTauCleanerPlugins.pt
tuple pt
Definition:
RecoTauCleanerPlugins.py:53
PV3DBase::z
T z() const
Definition:
PV3DBase.h:64
funct::cos
Cos< T >::type cos(const T &t)
Definition:
Cos.h:22
FTSFromVertexToPointFactory.h
Point3DBase< float, GlobalTag >
CurvilinearTrajectoryError
Definition:
CurvilinearTrajectoryError.h:27
phi
Definition:
DDAxes.h:10
Generated for CMSSW Reference Manual by
1.8.5