Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:22:35

0001 #ifndef MagCylinder_H
0002 #define MagCylinder_H
0003 
0004 #include "MagneticField/VolumeGeometry/interface/MagVolume.h"
0005 #include "MagneticField/VolumeGeometry/interface/VolumeSide.h"
0006 
0007 #include <vector>
0008 
0009 //-- FIXME
0010 #include <string>
0011 //--
0012 
0013 template <class T>
0014 class MagneticFieldProvider;
0015 
0016 class MagCylinder final : public MagVolume {
0017 public:
0018   MagCylinder(const PositionType& pos,
0019               const RotationType& rot,
0020               const std::vector<VolumeSide>& faces,
0021               const MagneticFieldProvider<float>* mfp);
0022 
0023   bool inside(const GlobalPoint& gp, double tolerance = 0.) const override;
0024   bool inside(const LocalPoint& lp, double tolerance = 0.) const override;
0025 
0026   /// Access to volume faces
0027   const std::vector<VolumeSide>& faces() const override { return theFaces; }
0028 
0029   //-- FIXME
0030   std::string name;
0031   //--
0032 
0033 private:
0034   std::vector<VolumeSide> theFaces;
0035   Scalar theZmin;
0036   Scalar theZmax;
0037   Scalar theInnerR;
0038   Scalar theOuterR;
0039 };
0040 
0041 #endif