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 /**
0020  *  @author Christian H&ouml;ppner (Technische Universit&auml;t M&uuml;nchen, original author)
0021  *
0022  */
0023 
0024 
0025 /** @addtogroup genfit
0026  * @{
0027  */
0028 
0029 #ifndef genfit_AbsFinitePlane_h
0030 #define genfit_AbsFinitePlane_h
0031 
0032 #include <Rtypes.h> // for Option_t
0033 
0034 
0035 namespace genfit {
0036 
0037 /**
0038  * @brief Abstract base class for finite detector planes.
0039  *
0040  * This is most important for avoiding fake intersection points in fitting of curlers.
0041  * This should be implemented for silicon detectors most importantly.
0042  */
0043 class AbsFinitePlane {
0044 
0045  public:
0046 
0047   AbsFinitePlane() {};
0048   virtual ~AbsFinitePlane() {};
0049 
0050   //! Returns whether a u,v point is in the active plane or not. Needs to be implemented
0051   //! in child class.
0052   virtual bool isInActive(double u, double v) const = 0;
0053 
0054   //! Deep copy ctor for polymorphic class.
0055   virtual AbsFinitePlane* clone() const = 0;
0056 
0057   virtual void Print(const Option_t* = "") const = 0;
0058 
0059 
0060  protected:
0061 
0062   // protect from calling copy c'tor or assignment operator from outside the class. Use #clone() if you want a copy!
0063   AbsFinitePlane(const AbsFinitePlane&) {;}
0064   AbsFinitePlane& operator=(const AbsFinitePlane&);
0065 
0066   ClassDef(AbsFinitePlane, 1);
0067 };
0068 
0069 } /* End of namespace genfit */
0070 /** @} */
0071 
0072 #endif // genfit_AbsFinitePlane_h