ATLAS Offline Software
Loading...
Searching...
No Matches
GeoXPEngine.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5//---------------------------------------------------------------------------//
6// //
7// class GeoXPEngine //
8// //
9// This class does a Runge-Kutta integration of a particle in a magnetic //
10// field, without any slowing due to interactions with matter. //
11// --------------------------------------------------------------------------//
12
13#ifndef LARG4VALIDATION_GEOXPENGINE_H
14#define LARG4VALIDATION_GEOXPENGINE_H
15#include <CLHEP/Geometry/Point3D.h>
16#include <CLHEP/Vector/LorentzVector.h>
17#include <memory>
18
19namespace Genfun {
20 class AbsFunction;
21}
22
24
25 public:
26
27 // Constructor:
28 GeoXPEngine( const Genfun::AbsFunction & Bx,
29 const Genfun::AbsFunction & By,
30 const Genfun::AbsFunction & Bz,
31 const HepGeom::Point3D<double> & x0,
32 const CLHEP::HepLorentzVector & p0,
33 double q);
34
35 // Destructor:
37
38 // Get the parameterized paths through the phase space. The
39 // parameter of the path is: time (in standard units). When any
40 // one of these is accessed, the path through the phase space is
41 // integrated up to the specified time; then, if another one is
42 // is accessed at or before that time, the calculation is not repeated
43 // but either accessed (if times are equal) or interpolated (if time
44 // is inferior to maximimum integration time).
45
46 const Genfun::AbsFunction & x() const;
47 const Genfun::AbsFunction & y() const;
48 const Genfun::AbsFunction & z() const;
49 const Genfun::AbsFunction & px() const;
50 const Genfun::AbsFunction & py() const;
51 const Genfun::AbsFunction & pz() const;
52
53 private:
54
55 // Outputs:
56 std::unique_ptr<const Genfun::AbsFunction> m_x;
57 std::unique_ptr<const Genfun::AbsFunction> m_y;
58 std::unique_ptr<const Genfun::AbsFunction> m_z;
59 std::unique_ptr<const Genfun::AbsFunction> m_px;
60 std::unique_ptr<const Genfun::AbsFunction> m_py;
61 std::unique_ptr<const Genfun::AbsFunction> m_pz;
62
63};
64
65#endif
66
GeoXPEngine(const Genfun::AbsFunction &Bx, const Genfun::AbsFunction &By, const Genfun::AbsFunction &Bz, const HepGeom::Point3D< double > &x0, const CLHEP::HepLorentzVector &p0, double q)
const Genfun::AbsFunction & px() const
std::unique_ptr< const Genfun::AbsFunction > m_py
Definition GeoXPEngine.h:60
const Genfun::AbsFunction & py() const
const Genfun::AbsFunction & pz() const
const Genfun::AbsFunction & y() const
std::unique_ptr< const Genfun::AbsFunction > m_x
Definition GeoXPEngine.h:56
std::unique_ptr< const Genfun::AbsFunction > m_z
Definition GeoXPEngine.h:58
std::unique_ptr< const Genfun::AbsFunction > m_pz
Definition GeoXPEngine.h:61
const Genfun::AbsFunction & z() const
std::unique_ptr< const Genfun::AbsFunction > m_y
Definition GeoXPEngine.h:57
std::unique_ptr< const Genfun::AbsFunction > m_px
Definition GeoXPEngine.h:59
const Genfun::AbsFunction & x() const