Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef MFGridFactory_h
0002 #define MFGridFactory_h
0003 
0004 /** \class MFGridFactory
0005  *
0006  *  Factory for field interpolators using binary files.
0007  *
0008  *  \author T. Todorov
0009  */
0010 
0011 #include <string>
0012 class MFGrid;
0013 template <class T>
0014 class GloballyPositioned;
0015 
0016 namespace magneticfield::interpolation {
0017   class binary_ifstream;
0018 }
0019 
0020 class MFGridFactory {
0021 public:
0022   using binary_ifstream = magneticfield::interpolation::binary_ifstream;
0023 
0024   /// Build interpolator for a binary grid file
0025   static MFGrid* build(const std::string& name, const GloballyPositioned<float>& vol);
0026   static MFGrid* build(binary_ifstream& name, const GloballyPositioned<float>& vol);
0027 
0028   /// Build a 2pi phi-symmetric interpolator for a binary grid file
0029   static MFGrid* build(const std::string& name, const GloballyPositioned<float>& vol, double phiMin, double phiMax);
0030 };
0031 
0032 #endif