/* Copyright 2008-2010, Technische Universitaet Muenchen, Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch This file is part of GENFIT. GENFIT is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. GENFIT is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with GENFIT. If not, see . */ /** * @author Christian Höppner (Technische Universität München, original author) * */ /** @addtogroup genfit * @{ */ #ifndef genfit_AbsFinitePlane_h #define genfit_AbsFinitePlane_h #include // for Option_t namespace genfit { /** * @brief Abstract base class for finite detector planes. * * This is most important for avoiding fake intersection points in fitting of curlers. * This should be implemented for silicon detectors most importantly. */ class AbsFinitePlane { public: AbsFinitePlane() {}; virtual ~AbsFinitePlane() {}; //! Returns whether a u,v point is in the active plane or not. Needs to be implemented //! in child class. virtual bool isInActive(double u, double v) const = 0; //! Deep copy ctor for polymorphic class. virtual AbsFinitePlane* clone() const = 0; virtual void Print(const Option_t* = "") const = 0; protected: // protect from calling copy c'tor or assignment operator from outside the class. Use #clone() if you want a copy! AbsFinitePlane(const AbsFinitePlane&) {;} AbsFinitePlane& operator=(const AbsFinitePlane&); ClassDef(AbsFinitePlane, 1); }; } /* End of namespace genfit */ /** @} */ #endif // genfit_AbsFinitePlane_h