Main Page
Namespaces
Classes
Package Documentation
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Pages
src
TrackingTools
TrajectoryParametrization
src
GlobalTrajectoryParameters.cc
Go to the documentation of this file.
1
#include "
TrackingTools/TrajectoryParametrization/interface/GlobalTrajectoryParameters.h
"
2
#include "
MagneticField/Engine/interface/MagneticField.h
"
3
#include "
FWCore/Utilities/interface/Likely.h
"
4
5
GlobalTrajectoryParameters::GlobalTrajectoryParameters
(
const
GlobalPoint
& aX,
6
const
GlobalVector
& direction,
7
float
transverseCurvature,
int
,
8
const
MagneticField
* fieldProvider) :
9
theField(fieldProvider),
10
theX
(aX)
11
{
12
cachedMagneticField
=
theField
->
inTesla
(
theX
);
13
float
bza = -2.99792458e-3
f
*
cachedMagneticField
.
z
();
14
float
qbpi = bza/(direction.
perp
()*
transverseCurvature
);
15
theP
= direction*
std::abs
(qbpi);
16
theCharge
= qbpi > 0.f ? 1 : -1;
17
}
18
19
GlobalTrajectoryParameters::GlobalTrajectoryParameters
(
const
GlobalPoint
& aX,
20
const
GlobalVector
& aP,
21
TrackCharge
aCharge,
22
const
MagneticField
* fieldProvider) :
23
theField(fieldProvider),
24
theX
(aX), theP(aP),
25
theCharge(aCharge)
26
{
27
cachedMagneticField
=
theField
?
theField
->
inTesla
(
theX
) :
GlobalVector
(0, 0, 0);
28
}
// we must initialize cache to non-NAN to avoid FPE
29
30
GlobalVector
GlobalTrajectoryParameters::magneticFieldInInverseGeV
(
const
GlobalPoint
&
x
)
const
31
{
32
return
2.99792458e-3
f
*
theField
->
inTesla
(x);
33
}
34
35
36
/* the field is different as it is attached to each given volume!!!!
37
// const MagneticField* GlobalTrajectoryParameters::theField=0;
38
#include<iostream>
39
// FIXME debug code mostly
40
void GlobalTrajectoryParameters::setMF(const MagneticField* fieldProvider) {
41
if (0==fieldProvider) return;
42
if (0!=theField && fieldProvider!=theField)
43
std::cout << "GlobalTrajectoryParameters: a different MF???? "
44
<< theField << " " << fieldProvider << std::endl;
45
theField =fieldProvider;
46
}
47
*/
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.
MagneticField
Definition:
MagneticField.h:17
GlobalTrajectoryParameters::GlobalTrajectoryParameters
GlobalTrajectoryParameters()
Definition:
GlobalTrajectoryParameters.h:18
GlobalTrajectoryParameters::theCharge
signed char theCharge
Definition:
GlobalTrajectoryParameters.h:119
MagneticField.h
GlobalTrajectoryParameters::transverseCurvature
float transverseCurvature() const
Definition:
GlobalTrajectoryParameters.h:86
TrackCharge
int TrackCharge
Definition:
TrackCharge.h:4
PV3DBase::z
T z() const
Definition:
PV3DBase.h:64
GlobalTrajectoryParameters::cachedMagneticField
GlobalVector cachedMagneticField
Definition:
GlobalTrajectoryParameters.h:118
funct::abs
Abs< T >::type abs(const T &t)
Definition:
Abs.h:22
GlobalTrajectoryParameters::magneticFieldInInverseGeV
GlobalVector magneticFieldInInverseGeV() const
Definition:
GlobalTrajectoryParameters.h:107
f
double f[11][100]
Definition:
MuScleFitUtils.cc:77
GlobalTrajectoryParameters.h
Point3DBase< float, GlobalTag >
GlobalTrajectoryParameters::theField
const MagneticField * theField
Definition:
GlobalTrajectoryParameters.h:115
theX
T theX
Definition:
Basic3DVectorLD.h:270
x
Definition:
DDAxes.h:10
Likely.h
GlobalTrajectoryParameters::theX
GlobalPoint theX
Definition:
GlobalTrajectoryParameters.h:116
GlobalTrajectoryParameters::theP
GlobalVector theP
Definition:
GlobalTrajectoryParameters.h:117
GlobalVector
Global3DVector GlobalVector
Definition:
GlobalVector.h:10
Generated for CMSSW Reference Manual by
1.8.5