LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
GFAbsFinitePlane.h
Go to the documentation of this file.
1 /* Copyright 2008-2010, Technische Universitaet Muenchen,
2  Authors: Christian Hoeppner & Sebastian Neubert
3 
4  This file is part of GENFIT.
5 
6  GENFIT is free software: you can redistribute it and/or modify
7  it under the terms of the GNU Lesser General Public License as published
8  by the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  GENFIT is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU Lesser General Public License for more details.
15 
16  You should have received a copy of the GNU Lesser General Public License
17  along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
18 */
28 #ifndef GFABSFINITEPLANE_H
29 #define GFABSFINITEPLANE_H
30 
31 #include <iostream>
32 #include <stdexcept> // std::logic_error
33 #include <string>
34 
35 #include "TObject.h"
36 
44 namespace genf {
45 
46  class GFAbsFinitePlane : public TObject {
47  public:
50  virtual bool inActive(const double& u, const double& v) const = 0;
51  virtual void Print(std::ostream& out = std::cout) const = 0;
53  virtual GFAbsFinitePlane* clone() const = 0;
54  virtual ~GFAbsFinitePlane();
55 
56  private:
57  virtual void Print(Option_t*) const
58  {
59  throw std::logic_error(std::string(__func__) + "::Print(Option_t*) not available");
60  }
61 
62  // ClassDef(GFAbsFinitePlane,1)
63  };
64 
65 } // namespace genf
66 
67 #endif
68 
Generic Interface to magnetic fields in GENFIT.
Definition: GFAbsBField.h:34
virtual void Print(std::ostream &out=std::cout) const =0
virtual bool inActive(const double &u, const double &v) const =0
virtual void Print(Option_t *) const
virtual GFAbsFinitePlane * clone() const =0
Deep copy ctor for polymorphic class.