Belle II Software  release-08-01-10
MplTrackRep.h
1 /* Copyright 2019, Belle II Collaboration
2  Authors: Dmitrii Neverov
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 #include "RKTrackRep.h"
21 
22 namespace genfit {
33  class MplTrackRep : public RKTrackRep {
34 
35  public:
36 
37  MplTrackRep() : m_magCharge(0), m_mass(0) {};
38  MplTrackRep(int pdgCode, float magCharge, char propDir = 0);
39  ~MplTrackRep();
40 
41  // Hopefully this is the only function that is vastly different for monopoles
42  double RKPropagate(M1x7& state7,
43  M7x7* jacobian,
44  M1x3& SA,
45  double S,
46  bool varField = true,
47  bool calcOnlyLastRowOfJ = false) const override;
48 
49  // Returns the magnetic charge instead of electric as in the base class.
50  double getCharge(const StateOnPlane& state) const override;
51 
52  private:
53 
54  const double m_magCharge; // the magnitude of magnetic charge in units of e+
55  const double m_mass; // the mass of the monopole in units of GeV/c^2
56 
57 
58  public:
59 
60  ClassDefOverride(MplTrackRep, 1)
61 
62  };
63 } //end genfit namespace
Monopole track representation.
Definition: MplTrackRep.h:33
double RKPropagate(M1x7 &state7, M7x7 *jacobian, M1x3 &SA, double S, bool varField=true, bool calcOnlyLastRowOfJ=false) const override
The actual Runge Kutta propagation.
Definition: MplTrackRep.cc:61
double getCharge(const StateOnPlane &state) const override
Get the (fitted) charge of a state.
Definition: MplTrackRep.cc:44
AbsTrackRep with 5D track parameterization in plane coordinates: (q/p, u', v', u, v)
Definition: RKTrackRep.h:72
A state with arbitrary dimension defined in a DetPlane.
Definition: StateOnPlane.h:47
Defines for I/O streams used for error and debug printing.