ATLAS Offline Software
Loading...
Searching...
No Matches
TrigFTF_GNNR3_EdgeState Struct Reference

#include <GNNR3_TrackingFilter.h>

Collaboration diagram for TrigFTF_GNNR3_EdgeState:

Classes

struct  Compare

Public Member Functions

 TrigFTF_GNNR3_EdgeState ()
 TrigFTF_GNNR3_EdgeState (bool f)
 ~TrigFTF_GNNR3_EdgeState ()
void initialize (TrigFTF_GNNR3_Edge *)
void clone (const struct TrigFTF_GNNR3_EdgeState &)

Public Attributes

float m_J {}
std::vector< TrigFTF_GNNR3_Edge * > m_vs
float m_X [3] {}
float m_Y [2] {}
float m_Cx [3][3] {}
float m_Cy [2][2] {}
float m_refX {}
float m_refY {}
float m_c {}
float m_s {}
bool m_initialized {false}

Detailed Description

Definition at line 11 of file GNNR3_TrackingFilter.h.

Constructor & Destructor Documentation

◆ TrigFTF_GNNR3_EdgeState() [1/2]

TrigFTF_GNNR3_EdgeState::TrigFTF_GNNR3_EdgeState ( )
inline

Definition at line 22 of file GNNR3_TrackingFilter.h.

22{};

◆ TrigFTF_GNNR3_EdgeState() [2/2]

TrigFTF_GNNR3_EdgeState::TrigFTF_GNNR3_EdgeState ( bool f)
inline

Definition at line 24 of file GNNR3_TrackingFilter.h.

◆ ~TrigFTF_GNNR3_EdgeState()

TrigFTF_GNNR3_EdgeState::~TrigFTF_GNNR3_EdgeState ( )
inline

Definition at line 26 of file GNNR3_TrackingFilter.h.

26{};

Member Function Documentation

◆ clone()

void TrigFTF_GNNR3_EdgeState::clone ( const struct TrigFTF_GNNR3_EdgeState & )

Definition at line 62 of file GNNR3_TrackingFilter.cxx.

62 {
63
64 memcpy(&m_X[0], &st.m_X[0], sizeof(m_X));
65 memcpy(&m_Y[0], &st.m_Y[0], sizeof(m_Y));
66 memcpy(&m_Cx[0][0], &st.m_Cx[0][0], sizeof(m_Cx));
67 memcpy(&m_Cy[0][0], &st.m_Cy[0][0], sizeof(m_Cy));
68 m_refX = st.m_refX;
69 m_refY = st.m_refY;
70 m_c = st.m_c;
71 m_s = st.m_s;
72 m_J = st.m_J;
73 m_vs.clear();
74 m_vs.reserve(st.m_vs.size());
75 std::copy(st.m_vs.begin(), st.m_vs.end(), std::back_inserter(m_vs));
76
77 m_initialized = true;
78}
std::vector< TrigFTF_GNNR3_Edge * > m_vs

◆ initialize()

void TrigFTF_GNNR3_EdgeState::initialize ( TrigFTF_GNNR3_Edge * pS)

Definition at line 15 of file GNNR3_TrackingFilter.cxx.

15 {
16
17 m_initialized = true;
18
19 m_J = 0.0;
20 m_vs.clear();
21
22
23 //n2->n1
24
25 float dx = pS->m_n1->x() - pS->m_n2->x();
26 float dy = pS->m_n1->y() - pS->m_n2->y();
27 float L = std::sqrt(dx*dx + dy*dy);
28
29 m_s = dy/L;
30 m_c = dx/L;
31
32 //transform for extrapolation and update
33 // x' = x*m_c + y*m_s
34 // y' = -x*m_s + y*m_c
35
36 m_refY = pS->m_n2->r();
37 m_refX = pS->m_n2->x()*m_c + pS->m_n2->y()*m_s;
38
39 //X-state: y, dy/dx, d2y/dx2
40
41 m_X[0] = -pS->m_n2->x()*m_s + pS->m_n2->y()*m_c;
42 m_X[1] = 0.0;
43 m_X[2] = 0.0;
44
45 //Y-state: z, dz/dr
46
47 m_Y[0] = pS->m_n2->z();
48 m_Y[1] = (pS->m_n1->z() - pS->m_n2->z())/(pS->m_n1->r() - pS->m_n2->r());
49
50 memset(&m_Cx[0][0], 0, sizeof(m_Cx));
51 memset(&m_Cy[0][0], 0, sizeof(m_Cy));
52
53 m_Cx[0][0] = 0.25;
54 m_Cx[1][1] = 0.001;
55 m_Cx[2][2] = 0.001;
56
57 m_Cy[0][0] = 1.5;
58 m_Cy[1][1] = 0.001;
59
60}
const TrigFTF_GNNR3_Node * m_n2
const TrigFTF_GNNR3_Node * m_n1

Member Data Documentation

◆ m_c

float TrigFTF_GNNR3_EdgeState::m_c {}

Definition at line 36 of file GNNR3_TrackingFilter.h.

36{}, m_refY{}, m_c{}, m_s{};

◆ m_Cx

float TrigFTF_GNNR3_EdgeState::m_Cx[3][3] {}

Definition at line 35 of file GNNR3_TrackingFilter.h.

35{}, m_Y[2]{}, m_Cx[3][3]{}, m_Cy[2][2]{};

◆ m_Cy

float TrigFTF_GNNR3_EdgeState::m_Cy[2][2] {}

Definition at line 35 of file GNNR3_TrackingFilter.h.

35{}, m_Y[2]{}, m_Cx[3][3]{}, m_Cy[2][2]{};

◆ m_initialized

bool TrigFTF_GNNR3_EdgeState::m_initialized {false}

Definition at line 38 of file GNNR3_TrackingFilter.h.

38{false};

◆ m_J

float TrigFTF_GNNR3_EdgeState::m_J {}

Definition at line 31 of file GNNR3_TrackingFilter.h.

31{};

◆ m_refX

float TrigFTF_GNNR3_EdgeState::m_refX {}

Definition at line 36 of file GNNR3_TrackingFilter.h.

36{}, m_refY{}, m_c{}, m_s{};

◆ m_refY

float TrigFTF_GNNR3_EdgeState::m_refY {}

Definition at line 36 of file GNNR3_TrackingFilter.h.

36{}, m_refY{}, m_c{}, m_s{};

◆ m_s

float TrigFTF_GNNR3_EdgeState::m_s {}

Definition at line 36 of file GNNR3_TrackingFilter.h.

36{}, m_refY{}, m_c{}, m_s{};

◆ m_vs

std::vector<TrigFTF_GNNR3_Edge*> TrigFTF_GNNR3_EdgeState::m_vs

Definition at line 33 of file GNNR3_TrackingFilter.h.

◆ m_X

float TrigFTF_GNNR3_EdgeState::m_X[3] {}

Definition at line 35 of file GNNR3_TrackingFilter.h.

35{}, m_Y[2]{}, m_Cx[3][3]{}, m_Cy[2][2]{};

◆ m_Y

float TrigFTF_GNNR3_EdgeState::m_Y[2] {}

Definition at line 35 of file GNNR3_TrackingFilter.h.

35{}, m_Y[2]{}, m_Cx[3][3]{}, m_Cy[2][2]{};

The documentation for this struct was generated from the following files: