PandaRoot
AbsMaterialInterface.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 /* Copyright 2008-2009, Technische Universitaet Muenchen,
14  Authors: Christian Hoeppner & Sebastian Neubert & Johannes Rauch
15 
16  This file is part of GENFIT.
17 
18  GENFIT is free software: you can redistribute it and/or modify
19  it under the terms of the GNU Lesser General Public License as published
20  by the Free Software Foundation, either version 3 of the License, or
21  (at your option) any later version.
22 
23  GENFIT is distributed in the hope that it will be useful,
24  but WITHOUT ANY WARRANTY; without even the implied warranty of
25  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
26  GNU Lesser General Public License for more details.
27 
28  You should have received a copy of the GNU Lesser General Public License
29  along with GENFIT. If not, see <http://www.gnu.org/licenses/>.
30 */
31 
36 #ifndef genfit_AbsMaterialInterface_h
37 #define genfit_AbsMaterialInterface_h
38 
39 #include "RKTrackRep.h"
40 #include "MaterialProperties.h"
41 
42 #include <TObject.h>
43 #include <TVector3.h>
44 
45 namespace genfit {
46 
50 class AbsMaterialInterface : public TObject {
51 
52  public:
54  virtual ~AbsMaterialInterface() { ; };
55 
58  virtual bool initTrack(double posX, double posY, double posZ, double dirX, double dirY, double dirZ) = 0;
59 
62  virtual void getMaterialParameters(double &density, double &Z, double &A, double &radiationLength, double &mEE) = 0;
63 
64  virtual void getMaterialParameters(MaterialProperties &parameters) = 0;
65 
72  virtual double findNextBoundary(const RKTrackRep *rep, const M1x7 &state7, double sMax, bool varField = true) = 0;
73 
74  virtual void setDebugLvl(unsigned int lvl = 1) { debugLvl_ = lvl; }
75 
76  protected:
77  unsigned int debugLvl_;
78 
79  // ClassDef(AbsMaterialInterface, 1);
80 };
81 
82 } /* End of namespace genfit */
85 #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:48
AbsTrackRep with 5D track parameterization in plane coordinates: (q/p, u&#39;, v&#39;, u, v) ...
Matrix inversion tools.
Definition: AbsBField.h:40
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...