ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkVertexFitter
TrkVKalVrtCore
TrkVKalVrtCore
Propagator.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
/* General track propagation implementation */
5
/* If external propagator is provided as */
6
/* either an object inherited from the basePropagator class*/
7
/* or a function addrPropagator - the vkalPropagator class */
8
/* will use it, otherwise the vkalPropagor uses simple */
9
/* propagatiob in constant magnetic field. */
10
/* */
11
/* Thread-safe implementation */
12
/*---------------------------------------------------------*/
13
#ifndef TRKVKALVRTCORE_PROPAGATOR_H
14
#define TRKVKALVRTCORE_PROPAGATOR_H
15
16
namespace
Trk
{
17
18
#define vkalUseRKMPropagator 0
19
20
class
VKalVrtControl;
21
class
IVKalState;
22
23
typedef
void (*
addrPropagator
)(
long
int,
long
int,
24
const
double
*,
// ParOld
25
const
double
*,
// CovOld
26
const
double
*,
// RefStart
27
const
double
*,
// RefEnd
28
double
*,
// ParNew
29
double
*);
// CovNew
30
31
class
VKTrack
;
32
class
VKalVrtControlBase
;
33
34
//
35
// Base class for concrete implementation of propagator (e.g. Athena one) to be
36
// called by vkalPropagator
37
//
38
class
basePropagator
{
39
public
:
40
basePropagator
();
41
virtual
~basePropagator
();
42
//
43
// Propagator from RefStart point to RefEnd point
44
// ParOld[5] - track perigee parameters with respect to RefStart point
45
// ParNew[5] - track perigee parameters with respect to RefEnd point
46
virtual
void
Propagate
(
long
int
TrkID,
long
int
Charge,
const
double
*ParOld,
47
const
double
*CovOld,
const
double
*RefStart,
const
double
*RefEnd,
48
double
*ParNew,
double
*CovNew,
49
IVKalState
&istate)
const
= 0;
50
virtual
bool
checkTarget
(
double
*RefEnd,
const
IVKalState
&istate)
const
= 0;
51
//
52
};
53
54
//
55
// Main propagator in VKalVrtCore package.
56
// Depending on VKalVrtControlBase object it either calls external propagator
57
// or uses default implementations
58
//
59
class
vkalPropagator
{
60
public
:
61
vkalPropagator
();
62
~vkalPropagator
() =
default
;
63
64
static
void
Propagate
(
long
int
TrkID,
long
int
Charge,
const
double
*ParOld,
65
const
double
*CovOld,
const
double
*RefOld,
double
*RefNew,
66
double
*ParNew,
double
*CovNew,
67
VKalVrtControlBase
*FitControl = 0);
68
static
bool
checkTarget
(
const
double
*RefEnd);
69
static
void
Propagate
(
VKTrack
*trk,
const
double
*RefStart,
const
double
*RefEnd,
70
double
*ParNew,
double
*CovNew,
71
VKalVrtControlBase
*FitControl = 0);
72
};
73
74
}
// namespace Trk
75
#endif
Trk::IVKalState
Definition
IVKalState.h:21
Trk::VKTrack
Definition
TrkVKalVrtCoreBase.h:63
Trk::VKalVrtControlBase
Definition
TrkVKalVrtCore.h:26
Trk::basePropagator::Propagate
virtual void Propagate(long int TrkID, long int Charge, const double *ParOld, const double *CovOld, const double *RefStart, const double *RefEnd, double *ParNew, double *CovNew, IVKalState &istate) const =0
Trk::basePropagator::checkTarget
virtual bool checkTarget(double *RefEnd, const IVKalState &istate) const =0
Trk::basePropagator::~basePropagator
virtual ~basePropagator()
Trk::basePropagator::basePropagator
basePropagator()
Trk::vkalPropagator::vkalPropagator
vkalPropagator()
Trk::vkalPropagator::~vkalPropagator
~vkalPropagator()=default
Trk::vkalPropagator::Propagate
static void Propagate(long int TrkID, long int Charge, const double *ParOld, const double *CovOld, const double *RefOld, double *RefNew, double *ParNew, double *CovNew, VKalVrtControlBase *FitControl=0)
Definition
Propagator.cxx:131
Trk::vkalPropagator::checkTarget
static bool checkTarget(const double *RefEnd)
Definition
Propagator.cxx:112
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::addrPropagator
void(* addrPropagator)(long int, long int, const double *, const double *, const double *, const double *, double *, double *)
Definition
Propagator.h:23
Generated on
for ATLAS Offline Software by
1.17.0