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,
double
*,
double
*,
double
*,
24
double
*,
double
*,
double
*);
25
26
class
VKTrack
;
27
class
VKalVrtControlBase
;
28
29
//
30
// Base class for concrete implementation of propagator (e.g. Athena one) to be
31
// called by vkalPropagator
32
//
33
class
basePropagator
{
34
public
:
35
basePropagator
();
36
virtual
~basePropagator
();
37
//
38
// Propagator from RefStart point to RefEnd point
39
// ParOld[5] - track perigee parameters with respect to RefStart point
40
// ParNew[5] - track perigee parameters with respect to RefEnd point
41
virtual
void
Propagate
(
long
int
TrkID,
long
int
Charge,
double
*ParOld,
42
double
*CovOld,
double
*RefStart,
double
*RefEnd,
43
double
*ParNew,
double
*CovNew,
44
IVKalState
&istate)
const
= 0;
45
virtual
bool
checkTarget
(
double
*RefEnd,
const
IVKalState
&istate)
const
= 0;
46
//
47
};
48
49
//
50
// Main propagator in VKalVrtCore package.
51
// Depending on VKalVrtControlBase object it either calls external propagator
52
// or uses default implementations
53
//
54
class
vkalPropagator
{
55
public
:
56
vkalPropagator
();
57
~vkalPropagator
() =
default
;
58
59
static
void
Propagate
(
long
int
TrkID,
long
int
Charge,
double
*ParOld,
60
double
*CovOld,
double
*RefStart,
double
*RefEnd,
61
double
*ParNew,
double
*CovNew,
62
VKalVrtControlBase
*FitControl = 0);
63
static
bool
checkTarget
(
double
*RefEnd);
64
static
void
Propagate
(
VKTrack
*trk,
double
*RefStart,
double
*RefEnd,
65
double
*ParNew,
double
*CovNew,
66
VKalVrtControlBase
*FitControl = 0);
67
};
68
69
}
// namespace Trk
70
#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, double *ParOld, double *CovOld, double *RefStart, 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::checkTarget
static bool checkTarget(double *RefEnd)
Definition
Propagator.cxx:108
Trk::vkalPropagator::Propagate
static void Propagate(long int TrkID, long int Charge, double *ParOld, double *CovOld, double *RefStart, double *RefEnd, double *ParNew, double *CovNew, VKalVrtControlBase *FitControl=0)
Definition
Propagator.cxx:127
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition
FakeTrackBuilder.h:9
Trk::addrPropagator
void(* addrPropagator)(long int, long int, double *, double *, double *, double *, double *, double *)
Definition
Propagator.h:23
Generated on
for ATLAS Offline Software by
1.17.0