CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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 
20 public:
21 
22  // Constructor from a TrackerInteractionGeometry*
24  const TrackerInteractionGeometry* myGeo);
25 
26  const GlobalVector inTesla( const GlobalPoint& ) const;
27  const GlobalVector inKGauss( const GlobalPoint& ) const;
28  const GlobalVector inInverseGeV( const GlobalPoint& ) const;
29  const GlobalVector inTesla(const TrackerLayer& aLayer, double coord, int success) const;
30  double inTeslaZ(const GlobalPoint&) const;
31  double inKGaussZ(const GlobalPoint&) const;
32  double inInverseGeVZ(const GlobalPoint&) const;
33  double inTeslaZ(const TrackerLayer& aLayer, double coord, int success) const;
34 
35  const MagneticField& magneticField() const {return *pMF_;}
36 
37 private:
38 
39  void initialize();
40 
41  const std::vector<double>* theFieldEndcapHisto(unsigned layer) const
42  { return &(fieldEndcapHistos[layer]); }
43 
44  const std::vector<double>* theFieldBarrelHisto(unsigned layer) const
45  { return &(fieldBarrelHistos[layer]); }
46 
49  unsigned bins;
50  std::vector<std::vector<double> > fieldBarrelHistos;
51  std::vector<std::vector<double> > fieldEndcapHistos;
52  std::vector<double> fieldBarrelBinWidth;
53  std::vector<double> fieldBarrelZMin;
54  std::vector<double> fieldEndcapBinWidth;
55  std::vector<double> fieldEndcapRMin;
56 
57 };
58 
59 #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_
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