CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MagneticField.h
Go to the documentation of this file.
1 #ifndef MagneticField_MagneticField_h
2 #define MagneticField_MagneticField_h
3 
15 #include <atomic>
16 
18 {
19  public:
20  MagneticField();
21  MagneticField(const MagneticField& orig);
22  virtual ~MagneticField();
23 
26  virtual MagneticField* clone() const {
27  return 0;
28  }
29 
31  virtual GlobalVector inTesla (const GlobalPoint& gp) const = 0;
32 
34  GlobalVector inKGauss(const GlobalPoint& gp) const {
35  return inTesla(gp) * 10.F;
36  }
37 
40  return inTesla(gp) * 2.99792458e-3F;
41  }
42 
44  // engine is defined.
45  virtual bool isDefined(const GlobalPoint& gp) const {
46  return true;
47  }
48 
51  virtual GlobalVector inTeslaUnchecked (const GlobalPoint& gp) const {
52  return inTesla(gp); // default dummy implementation
53  }
54 
56  int nominalValue() const;
57 
58 private:
59  //nominal field value
60  virtual int computeNominalValue() const;
61  mutable std::atomic<char> nominalValueCompiuted;
62  mutable int theNominalValue;
64 };
65 
66 #endif
virtual GlobalVector inTeslaUnchecked(const GlobalPoint &gp) const
Definition: MagneticField.h:51
virtual bool isDefined(const GlobalPoint &gp) const
True if the point is within the region where the concrete field.
Definition: MagneticField.h:45
int nominalValue() const
The nominal field value for this map in kGauss.
virtual ~MagneticField()
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
std::atomic< char > nominalValueCompiuted
Definition: MagneticField.h:61
GlobalVector inInverseGeV(const GlobalPoint &gp) const
Field value ad specified global point, in 1/Gev.
Definition: MagneticField.h:39
virtual int computeNominalValue() const
GlobalVector inKGauss(const GlobalPoint &gp) const
Field value ad specified global point, in KGauss.
Definition: MagneticField.h:34
static uInt32 F(BLOWFISH_CTX *ctx, uInt32 x)
Definition: blowfish.cc:281
virtual MagneticField * clone() const
Definition: MagneticField.h:26