CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
MagneticFieldMap.h
Go to the documentation of this file.
1 #ifndef FastSimulation_ParticlePropagator_MagneticFieldMap_H
2 #define FastSimulation_ParticlePropagator_MagneticFieldMap_H
3 
4 // Framework Headers
7 
8 // Famos headers
10 
11 #include <vector>
12 #include <string>
13 
14 class MagneticField;
16 class TH1;
17 
19 public:
20  // Constructor from a TrackerInteractionGeometry*
22 
23  const GlobalVector inTesla(const GlobalPoint&) const;
24  const GlobalVector inKGauss(const GlobalPoint&) const;
25  const GlobalVector inInverseGeV(const GlobalPoint&) const;
26  const GlobalVector inTesla(const TrackerLayer& aLayer, double coord, int success) const;
27  double inTeslaZ(const GlobalPoint&) const;
28  double inKGaussZ(const GlobalPoint&) const;
29  double inInverseGeVZ(const GlobalPoint&) const;
30  double inTeslaZ(const TrackerLayer& aLayer, double coord, int success) const;
31 
32  const MagneticField& magneticField() const { return *pMF_; }
33 
34 private:
35  void initialize();
36 
37  const std::vector<double>* theFieldEndcapHisto(unsigned layer) const { return &(fieldEndcapHistos[layer]); }
38 
39  const std::vector<double>* theFieldBarrelHisto(unsigned layer) const { return &(fieldBarrelHistos[layer]); }
40 
43  unsigned bins;
44  std::vector<std::vector<double> > fieldBarrelHistos;
45  std::vector<std::vector<double> > fieldEndcapHistos;
46  std::vector<double> fieldBarrelBinWidth;
47  std::vector<double> fieldBarrelZMin;
48  std::vector<double> fieldEndcapBinWidth;
49  std::vector<double> fieldEndcapRMin;
50 };
51 
52 #endif // FastSimulation_ParticlePropagator_MagneticFieldMap_H
std::vector< double > fieldEndcapBinWidth
double inTeslaZ(const GlobalPoint &) const
const MagneticField & magneticField() const
double inInverseGeVZ(const GlobalPoint &) const
const GlobalVector inKGauss(const GlobalPoint &) const
double inKGaussZ(const GlobalPoint &) const
const GlobalVector inTesla(const GlobalPoint &) const
const MagneticField * pMF_
constexpr std::array< uint8_t, layerIndexSize > layer
std::vector< double > fieldEndcapRMin
MagneticFieldMap(const MagneticField *pmF, const TrackerInteractionGeometry *myGeo)
const GlobalVector inInverseGeV(const GlobalPoint &) const
const TrackerInteractionGeometry * geometry_
std::vector< std::vector< double > > fieldBarrelHistos
std::vector< double > fieldBarrelBinWidth
const std::vector< double > * theFieldEndcapHisto(unsigned layer) const
std::vector< double > fieldBarrelZMin
std::vector< std::vector< double > > fieldEndcapHistos
const std::vector< double > * theFieldBarrelHisto(unsigned layer) const