CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Attributes
PolyFit2DParametrizedMagneticField Class Referencefinal

#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 (double bVal=3.8114)
 
 PolyFit2DParametrizedMagneticField (const edm::ParameterSet &parameters)
 Constructor. Parameters taken from a PSet. More...
 
 ~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...
 
float inverseBzAtOriginInGeV () const
 The inverse of field z component for this map in GeV. 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
 

Additional Inherited Members

- Protected Member Functions inherited from MagneticField
void setNominalValue ()
 

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::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.

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

15  : theParam(new BFit()) {
16  theParam->SetField(bVal);
18 }
void setNominalValue()
void SetField(double B)
Definition: BFit.cc:152
PolyFit2DParametrizedMagneticField::PolyFit2DParametrizedMagneticField ( const edm::ParameterSet parameters)

Constructor. Parameters taken from a PSet.

Definition at line 20 of file PolyFit2DParametrizedMagneticField.cc.

References edm::ParameterSet::getParameter(), magfieldparam::BFit::SetField(), MagneticField::setNominalValue(), and theParam.

21  : theParam(new BFit()) {
22  theParam->SetField(parameters.getParameter<double>("BValue"));
24 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
void setNominalValue()
void SetField(double B)
Definition: BFit.cc:152
PolyFit2DParametrizedMagneticField::~PolyFit2DParametrizedMagneticField ( )
override

Destructor.

Definition at line 26 of file PolyFit2DParametrizedMagneticField.cc.

References theParam.

26 { delete theParam; }

Member Function Documentation

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

Field value ad specified global point, in Tesla.

Implements MagneticField.

Definition at line 28 of file PolyFit2DParametrizedMagneticField.cc.

References inTeslaUnchecked(), and isDefined().

28  {
29  if (isDefined(gp)) {
30  return inTeslaUnchecked(gp);
31  } else {
32  edm::LogWarning("MagneticField") << " Point " << gp
33  << " is outside the validity region of PolyFit2DParametrizedMagneticField";
34  return GlobalVector();
35  }
36 }
bool isDefined(const GlobalPoint &gp) const override
True if the point is within the region where the concrete field.
GlobalVector inTeslaUnchecked(const GlobalPoint &gp) const override
Log< level::Warning, false > LogWarning
Global3DVector GlobalVector
Definition: GlobalVector.h:10
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 38 of file PolyFit2DParametrizedMagneticField.cc.

References funct::cos(), magfieldparam::BFit::GetField(), PV3DBase< T, PVType, FrameType >::perp(), PV3DBase< T, PVType, FrameType >::phi(), funct::sin(), theParam, and PV3DBase< T, PVType, FrameType >::z().

Referenced by inTesla().

38  {
39  double Br, Bz, Bphi;
40  theParam->GetField(gp.perp() / 100., gp.z() / 100., gp.phi(), Br, Bz, Bphi);
41 
42  double cosphi = cos(gp.phi());
43  double sinphi = sin(gp.phi());
44 
45  return GlobalVector(Br * cosphi - Bphi * sinphi, Br * sinphi + Bphi * cosphi, Bz);
46 }
T perp() const
Definition: PV3DBase.h:69
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
void GetField(double r, double z, double phi, double &Br, double &Bz, double &Bphi) const
Definition: BFit.cc:190
T z() const
Definition: PV3DBase.h:61
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
Global3DVector GlobalVector
Definition: GlobalVector.h:10
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 48 of file PolyFit2DParametrizedMagneticField.cc.

References PV3DBase< T, PVType, FrameType >::perp(), alignCSCRings::r, z, and PV3DBase< T, PVType, FrameType >::z().

Referenced by inTesla().

48  {
49  double z = fabs(gp.z());
50  double r = gp.perp();
51  //"rectangle" |z|<3.5, r<1.9 _except_ the "corners" |z|+2.5*r>6.7, everything in meters
52  if (z > 350. || r > 190 || z + 2.5 * r > 670.)
53  return false;
54  return true;
55 }

Member Data Documentation

magfieldparam::BFit* PolyFit2DParametrizedMagneticField::theParam
private