CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
PolyFit2DParametrizedMagneticField Class Reference

#include <PolyFit2DParametrizedMagneticField.h>

Inheritance diagram for PolyFit2DParametrizedMagneticField:
MagneticField

Public Member Functions

GlobalVector inTesla (const GlobalPoint &gp) const override
 Field value ad specified global point, in Tesla. More...
 
GlobalVector inTeslaUnchecked (const GlobalPoint &gp) const override
 
bool isDefined (const GlobalPoint &gp) const override
 True if the point is within the region where the concrete field. More...
 
 PolyFit2DParametrizedMagneticField (const edm::ParameterSet &parameters)
 Constructor. Parameters taken from a PSet. More...
 
 PolyFit2DParametrizedMagneticField (double bVal=3.8114)
 
 ~PolyFit2DParametrizedMagneticField () override
 Destructor. More...
 
- Public Member Functions inherited from MagneticField
virtual MagneticFieldclone () const
 
GlobalVector inInverseGeV (const GlobalPoint &gp) const
 Field value ad specified global point, in 1/Gev. More...
 
GlobalVector inKGauss (const GlobalPoint &gp) const
 Field value ad specified global point, in KGauss. More...
 
 MagneticField ()
 
 MagneticField (const MagneticField &orig)
 
int nominalValue () const
 The nominal field value for this map in kGauss. More...
 
virtual ~MagneticField ()
 

Private Attributes

magfieldparam::BFittheParam
 

Detailed Description

Magnetic Field engine wrapper for V. Maroussov's 2D parametrization of the MT data.

Author
N. Amapane

Definition at line 21 of file PolyFit2DParametrizedMagneticField.h.

Constructor & Destructor Documentation

◆ PolyFit2DParametrizedMagneticField() [1/2]

PolyFit2DParametrizedMagneticField::PolyFit2DParametrizedMagneticField ( double  bVal = 3.8114)

Constructor. Fitted bVal for the nominal currents are: 2.0216; 3.5162; 3.8114; 4.01242188708911

Definition at line 15 of file PolyFit2DParametrizedMagneticField.cc.

15  : theParam(new BFit()) {
16  theParam->SetField(bVal);
17 }

References magfieldparam::BFit::SetField(), and theParam.

◆ PolyFit2DParametrizedMagneticField() [2/2]

PolyFit2DParametrizedMagneticField::PolyFit2DParametrizedMagneticField ( const edm::ParameterSet parameters)

Constructor. Parameters taken from a PSet.

Definition at line 19 of file PolyFit2DParametrizedMagneticField.cc.

20  : theParam(new BFit()) {
21  theParam->SetField(parameters.getParameter<double>("BValue"));
22 }

References magfieldparam::BFit::SetField(), and theParam.

◆ ~PolyFit2DParametrizedMagneticField()

PolyFit2DParametrizedMagneticField::~PolyFit2DParametrizedMagneticField ( )
override

Destructor.

Definition at line 24 of file PolyFit2DParametrizedMagneticField.cc.

24 { delete theParam; }

References theParam.

Member Function Documentation

◆ inTesla()

GlobalVector PolyFit2DParametrizedMagneticField::inTesla ( const GlobalPoint gp) const
overridevirtual

Field value ad specified global point, in Tesla.

Implements MagneticField.

Definition at line 26 of file PolyFit2DParametrizedMagneticField.cc.

26  {
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 }

References runTauDisplay::gp, inTeslaUnchecked(), and isDefined().

◆ inTeslaUnchecked()

GlobalVector PolyFit2DParametrizedMagneticField::inTeslaUnchecked ( const GlobalPoint gp) const
overridevirtual

Optional implementation that derived classes can implement to provide faster query by skipping the check to isDefined.

Reimplemented from MagneticField.

Definition at line 36 of file PolyFit2DParametrizedMagneticField.cc.

36  {
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 }

References funct::cos(), magfieldparam::BFit::GetField(), runTauDisplay::gp, funct::sin(), and theParam.

Referenced by inTesla().

◆ isDefined()

bool PolyFit2DParametrizedMagneticField::isDefined ( const GlobalPoint ) const
overridevirtual

True if the point is within the region where the concrete field.

Reimplemented from MagneticField.

Definition at line 46 of file PolyFit2DParametrizedMagneticField.cc.

46  {
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 }

References runTauDisplay::gp, alignCSCRings::r, and z.

Referenced by inTesla().

Member Data Documentation

◆ theParam

magfieldparam::BFit* PolyFit2DParametrizedMagneticField::theParam
private
PolyFit2DParametrizedMagneticField::theParam
magfieldparam::BFit * theParam
Definition: PolyFit2DParametrizedMagneticField.h:40
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
edm::LogWarning
Definition: MessageLogger.h:141
runTauDisplay.gp
gp
Definition: runTauDisplay.py:431
magfieldparam::BFit::SetField
void SetField(double B)
Definition: BFit.cc:152
alignCSCRings.r
r
Definition: alignCSCRings.py:93