MagneticField
ParametrizedEngine
src
PolyFit2DParametrizedMagneticField.cc
Go to the documentation of this file.
1
6
#include "
PolyFit2DParametrizedMagneticField.h
"
7
#include <
FWCore/ParameterSet/interface/ParameterSet.h
>
8
#include <
FWCore/MessageLogger/interface/MessageLogger.h
>
9
10
#include "
BFit.h
"
11
12
using namespace
std
;
13
using namespace
magfieldparam
;
14
15
PolyFit2DParametrizedMagneticField::PolyFit2DParametrizedMagneticField
(
double
bVal) : theParam(new
BFit
()) {
16
theParam
->
SetField
(bVal);
17
}
18
19
PolyFit2DParametrizedMagneticField::PolyFit2DParametrizedMagneticField
(
const
edm::ParameterSet
&
parameters
)
20
: theParam(new
BFit
()) {
21
theParam
->
SetField
(
parameters
.getParameter<
double
>(
"BValue"
));
22
}
23
24
PolyFit2DParametrizedMagneticField::~PolyFit2DParametrizedMagneticField
() {
delete
theParam
; }
25
26
GlobalVector
PolyFit2DParametrizedMagneticField::inTesla
(
const
GlobalPoint
&
gp
)
const
{
27
if
(
isDefined
(
gp
)) {
28
return
inTeslaUnchecked
(
gp
);
29
}
else
{
30
edm::LogWarning
(
"MagneticField"
) <<
" Point "
<<
gp
31
<<
" is outside the validity region of PolyFit2DParametrizedMagneticField"
;
32
return
GlobalVector
();
33
}
34
}
35
36
GlobalVector
PolyFit2DParametrizedMagneticField::inTeslaUnchecked
(
const
GlobalPoint
&
gp
)
const
{
37
double
Br, Bz, Bphi;
38
theParam
->
GetField
(
gp
.perp() / 100.,
gp
.z() / 100.,
gp
.phi(), Br, Bz, Bphi);
39
40
double
cosphi =
cos
(
gp
.phi());
41
double
sinphi =
sin
(
gp
.phi());
42
43
return
GlobalVector
(Br * cosphi - Bphi * sinphi, Br * sinphi + Bphi * cosphi, Bz);
44
}
45
46
bool
PolyFit2DParametrizedMagneticField::isDefined
(
const
GlobalPoint
&
gp
)
const
{
47
double
z
= fabs(
gp
.z());
48
double
r
=
gp
.perp();
49
//"rectangle" |z|<3.5, r<1.9 _except_ the "corners" |z|+2.5*r>6.7, everything in meters
50
if
(
z
> 350. ||
r
> 190 ||
z
+ 2.5 *
r
> 670.)
51
return
false
;
52
return
true
;
53
}
Vector3DBase
Definition:
Vector3DBase.h:8
BFit.h
PolyFit2DParametrizedMagneticField::theParam
magfieldparam::BFit * theParam
Definition:
PolyFit2DParametrizedMagneticField.h:40
MessageLogger.h
magfieldparam::BFit
Definition:
BFit.h:15
magfieldparam::BFit::GetField
void GetField(double r, double z, double phi, double &Br, double &Bz, double &Bphi) const
Definition:
BFit.cc:190
PolyFit2DParametrizedMagneticField::inTeslaUnchecked
GlobalVector inTeslaUnchecked(const GlobalPoint &gp) const override
Definition:
PolyFit2DParametrizedMagneticField.cc:36
PolyFit2DParametrizedMagneticField::isDefined
bool isDefined(const GlobalPoint &gp) const override
True if the point is within the region where the concrete field.
Definition:
PolyFit2DParametrizedMagneticField.cc:46
GlobalVector
Global3DVector GlobalVector
Definition:
GlobalVector.h:10
parameters
parameters
Definition:
BeamSpot_PayloadInspector.cc:14
funct::sin
Sin< T >::type sin(const T &t)
Definition:
Sin.h:22
funct::cos
Cos< T >::type cos(const T &t)
Definition:
Cos.h:22
DDAxes::z
Point3DBase< float, GlobalTag >
magfieldparam
Definition:
BCyl.h:23
edm::LogWarning
Definition:
MessageLogger.h:141
runTauDisplay.gp
gp
Definition:
runTauDisplay.py:431
edm::ParameterSet
Definition:
ParameterSet.h:36
PolyFit2DParametrizedMagneticField::PolyFit2DParametrizedMagneticField
PolyFit2DParametrizedMagneticField(double bVal=3.8114)
Definition:
PolyFit2DParametrizedMagneticField.cc:15
magfieldparam::BFit::SetField
void SetField(double B)
Definition:
BFit.cc:152
alignCSCRings.r
r
Definition:
alignCSCRings.py:93
std
Definition:
JetResolutionObject.h:76
PolyFit2DParametrizedMagneticField.h
PolyFit2DParametrizedMagneticField::inTesla
GlobalVector inTesla(const GlobalPoint &gp) const override
Field value ad specified global point, in Tesla.
Definition:
PolyFit2DParametrizedMagneticField.cc:26
ParameterSet.h
PolyFit2DParametrizedMagneticField::~PolyFit2DParametrizedMagneticField
~PolyFit2DParametrizedMagneticField() override
Destructor.
Definition:
PolyFit2DParametrizedMagneticField.cc:24
Generated for CMSSW Reference Manual by
1.8.16