All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GFAbsGeoMatManager.h
Go to the documentation of this file.
1 /* Copyright 2008-2009, 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 */
19 
20 /** @addtogroup RKTrackRep
21  * @{
22  */
23 
24 #ifndef GFABSGEOMATMANAGER_H
25 #define GFABSGEOMATMANAGER_H
26 
27 #include"TObject.h"
28 
29 
30 /** @brief Base class for material and geometry interface
31  *
32  * @author Christian H&ouml;ppner (Technische Universit&auml;t M&uuml;nchen, original author)
33  * @author Sebastian Neubert (Technische Universit&auml;t M&uuml;nchen, original author)
34  * @author Johannes Rauch (Technische Universit&auml;t M&uuml;nchen, author)
35  *
36  *
37  *
38  *
39  *
40  */
41 
42 namespace genf {
43 
44 class GFAbsGeoMatManager : public TObject{
45  public:
46  virtual ~GFAbsGeoMatManager(){}
47  //! Gets material parameters (density, Z, A, radiation length, mean excitation energy)
48  /**
49  */
50  virtual void getMaterialParameters(double& matDensity,
51  double& matZ,
52  double& matA,
53  double& radiationLength,
54  double& mEE) = 0;
55 
56  //! Initializes the track
57  /**
58  */
59  virtual void initTrack(const double& posx,
60  const double& posy,
61  const double& posz,
62  const double& dirx,
63  const double& diry,
64  const double& dirz) = 0;
65 
66  //! Makes a step, limited to next material boundary
67  /** Tries to make a step with length maxDist along the track. If there is a material boundary,
68  * the step is made to that boundary and the distance to that boundary is returned.
69  * Otherwise the step is made with maxDist.
70  *
71  */
72  virtual double stepOrNextBoundary(const double& maxDist) = 0;
73 
74  // public:
75  //ClassDef(GFAbsGeoMatManager,1)
76 
77 };
78 
79 } // namespace genf
80 #endif
81 
82 /** @} */
83 
84 
virtual void initTrack(const double &posx, const double &posy, const double &posz, const double &dirx, const double &diry, const double &dirz)=0
Initializes the track.
virtual double stepOrNextBoundary(const double &maxDist)=0
Makes a step, limited to next material boundary.
virtual void getMaterialParameters(double &matDensity, double &matZ, double &matA, double &radiationLength, double &mEE)=0
Gets material parameters (density, Z, A, radiation length, mean excitation energy) ...