Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:18:20

0001 /* Copyright 2008-2010, Technische Universitaet Muenchen,
0002    Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
0003 
0004    This file is part of GENFIT.
0005 
0006    GENFIT is free software: you can redistribute it and/or modify
0007    it under the terms of the GNU Lesser General Public License as published
0008    by the Free Software Foundation, either version 3 of the License, or
0009    (at your option) any later version.
0010 
0011    GENFIT is distributed in the hope that it will be useful,
0012    but WITHOUT ANY WARRANTY; without even the implied warranty of
0013    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
0014    GNU Lesser General Public License for more details.
0015 
0016    You should have received a copy of the GNU Lesser General Public License
0017    along with GENFIT.  If not, see <http://www.gnu.org/licenses/>.
0018 */
0019 /** @addtogroup genfit
0020  * @{
0021  */
0022 
0023 #ifndef genfit_AbsBField_h
0024 #define genfit_AbsBField_h
0025 
0026 #include <TVector3.h>
0027 
0028 
0029 namespace genfit {
0030 
0031 /** @brief Abstract Interface to magnetic fields in GENFIT
0032  *
0033  *  @author Christian H&ouml;ppner (Technische Universit&auml;t M&uuml;nchen, original author)
0034  *  @author Sebastian Neubert  (Technische Universit&auml;t M&uuml;nchen, original author)
0035  */
0036 class AbsBField {
0037 public:
0038 
0039   AbsBField(){;}
0040   virtual ~AbsBField(){;}
0041 
0042   /**
0043    * @brief Get the magneticField [kGauss] at position.
0044    *
0045    * Override this in your concrete implementation.
0046    * Provided for compatibility with old genfit.  Use the other interface to avoid
0047    * unnecessary TVector3 instantiations.
0048    */
0049   virtual TVector3 get(const TVector3& position) const = 0;
0050 
0051   /**
0052    * @brief Get the magneticField [kGauss] at position.
0053    *
0054    * Override this in your concrete implementation.
0055    */
0056   virtual void get(const double& posX, const double& posY, const double& posZ, double& Bx, double& By, double& Bz) const { const TVector3& B(this->get(TVector3(posX, posY, posZ))); Bx = B.X(); By = B.Y(); Bz = B.Z(); }
0057  
0058 };
0059 
0060 } /* End of namespace genfit */
0061 /** @} */
0062 
0063 #endif // genfit_AbsBField_h