FairRoot/PandaRoot
AbsMaterialInterface.h
Go to the documentation of this file.
1 /* Copyright 2008-2009, Technische Universitaet Muenchen,
2  Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
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 
24 #ifndef genfit_AbsMaterialInterface_h
25 #define genfit_AbsMaterialInterface_h
26 
27 #include "RKTrackRep.h"
28 #include "MaterialProperties.h"
29 
30 #include <TObject.h>
31 #include <TVector3.h>
32 
33 
34 namespace genfit {
35 
39 class AbsMaterialInterface : public TObject {
40 
41  public:
42 
44  virtual ~AbsMaterialInterface(){;};
45 
48  virtual bool initTrack(double posX, double posY, double posZ,
49  double dirX, double dirY, double dirZ) = 0;
50 
53  virtual void getMaterialParameters(double& density,
54  double& Z,
55  double& A,
56  double& radiationLength,
57  double& mEE) = 0;
58 
59  virtual void getMaterialParameters(MaterialProperties& parameters) = 0;
60 
67  virtual double findNextBoundary(const RKTrackRep* rep,
68  const M1x7& state7,
69  double sMax,
70  bool varField = true) = 0;
71 
72  virtual void setDebugLvl(unsigned int lvl = 1) {debugLvl_ = lvl;}
73 
74  protected:
75  unsigned int debugLvl_;
76 
77  //ClassDef(AbsMaterialInterface, 1);
78 
79 };
80 
81 } /* End of namespace genfit */
84 #endif // genfit_AbsMaterialInterface_h
Abstract base class for geometry interfacing.
virtual void getMaterialParameters(double &density, double &Z, double &A, double &radiationLength, double &mEE)=0
Get material parameters in current material.
Material properties needed e.g. for material effects calculation.
virtual void setDebugLvl(unsigned int lvl=1)
virtual double findNextBoundary(const RKTrackRep *rep, const M1x7 &state7, double sMax, bool varField=true)=0
Make a step until maxStep or the next boundary is reached.
double M1x7[1 *7]
Definition: RKTools.h:36
double Z
Definition: anaLmdDigi.C:68
AbsTrackRep with 5D track parameterization in plane coordinates: (q/p, u&#39;, v&#39;, u, v) ...
virtual bool initTrack(double posX, double posY, double posZ, double dirX, double dirY, double dirZ)=0
Initialize the navigator at given position and with given direction. Return true if volume changed...