ATLAS Offline Software
Public Member Functions | Public Attributes | List of all members
TrigFTF_ExtendedTrackState Struct Reference

#include <TrigInDetTrackFollowingTool.h>

Collaboration diagram for TrigFTF_ExtendedTrackState:

Public Member Functions

 TrigFTF_ExtendedTrackState ()=delete
 
 ~TrigFTF_ExtendedTrackState ()
 
TrigFTF_ExtendedTrackStateoperator= (const TrigFTF_ExtendedTrackState &)=delete
 
 TrigFTF_ExtendedTrackState (double const *, const Trk::PlaneSurface *)
 
void AddHole ()
 
void AddHit (const Trk::PrepRawData *, double, int)
 
void SwapTheEnds ()
 
void correctAngles ()
 
void report () const
 

Public Attributes

double m_Xk [10]
 
double m_Gk [10][10]
 
double m_chi2
 
double m_ndof
 
const Trk::PlaneSurfacem_pS
 
const Trk::PlaneSurfacem_pO
 
std::list< TrigFTF_HitAssignmentm_track
 
int m_nClusters
 
int m_nHoles
 
bool m_isSwapped
 

Detailed Description

Definition at line 51 of file TrigInDetTrackFollowingTool.h.

Constructor & Destructor Documentation

◆ TrigFTF_ExtendedTrackState() [1/2]

TrigFTF_ExtendedTrackState::TrigFTF_ExtendedTrackState ( )
delete

◆ ~TrigFTF_ExtendedTrackState()

TrigFTF_ExtendedTrackState::~TrigFTF_ExtendedTrackState ( )
inline

Definition at line 54 of file TrigInDetTrackFollowingTool.h.

54 {};

◆ TrigFTF_ExtendedTrackState() [2/2]

TrigFTF_ExtendedTrackState::TrigFTF_ExtendedTrackState ( double const P,
const Trk::PlaneSurface pS 
)

Definition at line 39 of file TrigInDetTrackFollowingTool.cxx.

39  : m_chi2(0), m_ndof(-5), m_pS(pS), m_pO(pS), m_nClusters(0), m_nHoles(0), m_isSwapped(false) {
40 
41  for(int i=0;i<5;i++) m_Xk[i] = m_Xk[i+5] = P[i];//duplicate the lower half of the state vector
42 
43  memset(&m_Gk[0][0],0,sizeof(m_Gk));
44 
45  //covariance block C
46 
47  m_Gk[0][0] = 1.0;
48  m_Gk[1][1] = 1.0;
49  m_Gk[2][2] = 0.0001;
50  m_Gk[3][3] = 0.0001;
51  m_Gk[4][4] = P[5];
52 
53  //triplicate the lower block
54  for(int i=0;i<5;i++) {
55  m_Gk[i+5][i+5] = m_Gk[i][i+5] = m_Gk[i+5][i] = m_Gk[i][i];
56  }
57 
58  m_track.clear();
59 }

Member Function Documentation

◆ AddHit()

void TrigFTF_ExtendedTrackState::AddHit ( const Trk::PrepRawData pPRD,
double  dchi2,
int  ndof 
)

Definition at line 83 of file TrigInDetTrackFollowingTool.cxx.

83  {
84 
85  correctAngles();
86 
87  double cov[15];
88  int idx=0;
89  for(int i=0;i<5;i++)
90  for(int j=0;j<=i;j++)
91  cov[idx++] = m_Gk[i][j];
92 
93  if(m_isSwapped) {
94  m_track.emplace_front(pPRD, m_Xk, &cov[0], dchi2, ndof);
95  }
96  else {
97  m_track.emplace_back(pPRD, m_Xk, &cov[0], dchi2, ndof);
98  }
99 
100  m_chi2 += dchi2;
101  m_ndof += ndof;
102  m_nClusters++;
103  m_nHoles = 0;//reset the counter
104 }

◆ AddHole()

void TrigFTF_ExtendedTrackState::AddHole ( )

Definition at line 61 of file TrigInDetTrackFollowingTool.cxx.

61  {
62  if(m_isSwapped) {
63  m_track.emplace_front(nullptr, nullptr, nullptr, 0, -1);
64  }
65  else {
66  m_track.emplace_back(nullptr, nullptr, nullptr, 0, -1);
67  }
68  m_nHoles++;
69 }

◆ correctAngles()

void TrigFTF_ExtendedTrackState::correctAngles ( )

Definition at line 71 of file TrigInDetTrackFollowingTool.cxx.

71  {
72  if (m_Xk[2] > M_PI) m_Xk[2] -= 2 * M_PI;
73  if (m_Xk[2] < -M_PI) m_Xk[2] += 2 * M_PI;
74  if (m_Xk[3] < 0.0) m_Xk[3] += M_PI;
75  if (m_Xk[3] > M_PI) m_Xk[3] -= M_PI;
76  if (m_Xk[7] > M_PI) m_Xk[7] -= 2 * M_PI;
77  if (m_Xk[7] < -M_PI) m_Xk[7] += 2 * M_PI;
78  if (m_Xk[8] < 0.0) m_Xk[8] += M_PI;
79  if (m_Xk[8] > M_PI) m_Xk[8] -= M_PI;
80 
81 }

◆ operator=()

TrigFTF_ExtendedTrackState& TrigFTF_ExtendedTrackState::operator= ( const TrigFTF_ExtendedTrackState )
delete

◆ report()

void TrigFTF_ExtendedTrackState::report ( ) const

Definition at line 135 of file TrigInDetTrackFollowingTool.cxx.

135  {
136  std::cout<<"L: ";
137  for(int i=0;i<4;i++) std::cout<<m_Xk[i]<<" ";
138  std::cout<<1/m_Xk[4]<<" "<<std::sin(m_Xk[3])/m_Xk[4]<<std::endl;
139 
140 
141  std::cout<<"Covariance at last point:"<<std::endl;
142 
143  for(int i=0;i<5;i++) {
144  for(int j=0;j<5;j++) std::cout<<m_Gk[i][j]<<" ";
145  std::cout<<std::endl;
146  }
147 
148  std::cout<<"F: ";
149  for(int i=0;i<4;i++) std::cout<<m_Xk[i+5]<<" ";
150  std::cout<<1/m_Xk[4+5]<<" "<<std::sin(m_Xk[3+5])/m_Xk[4+5]<<std::endl;
151  std::cout<<std::endl;
152 
153  std::cout<<"Covariance at the first point:"<<std::endl;
154 
155  for(int i=0;i<5;i++) {
156  for(int j=0;j<5;j++) std::cout<<m_Gk[i+5][j+5]<<" ";
157  std::cout<<std::endl;
158  }
159 
160  std::cout<<"chi2="<<m_chi2<<" ndof="<<m_ndof<<" nClusters="<<m_nClusters<<" nHoles="<<m_nHoles<<std::endl;
161 
162 }

◆ SwapTheEnds()

void TrigFTF_ExtendedTrackState::SwapTheEnds ( )

Definition at line 106 of file TrigInDetTrackFollowingTool.cxx.

106  {
107 
109 
110  std::swap(m_pS, m_pO);
111 
112  double tmpX[10];
113  memcpy(&tmpX[0], &m_Xk[0], sizeof(tmpX));
114 
115  for(int i=0;i<5;i++) {
116  m_Xk[i] = tmpX[i+5];
117  m_Xk[i+5] = tmpX[i];
118  }
119 
120  double tmpG[10][10];
121  memcpy(&tmpG[0][0], &m_Gk[0][0], sizeof(tmpG));
122 
123  //covariance blocks are moved around to reflect the state vectors swap done above
124 
125  for(int i=0;i<5;i++) {
126  for(int j=0;j<5;j++) {
127  m_Gk[i+5][j+5] = tmpG[i][j]; //C -> E
128  m_Gk[i][j] = tmpG[i+5][j+5];//E -> C
129  m_Gk[i][j+5] = tmpG[i+5][j]; //D -> B
130  m_Gk[i+5][j] = tmpG[i][j+5]; //B -> D
131  }
132  }
133 }

Member Data Documentation

◆ m_chi2

double TrigFTF_ExtendedTrackState::m_chi2

Definition at line 67 of file TrigInDetTrackFollowingTool.h.

◆ m_Gk

double TrigFTF_ExtendedTrackState::m_Gk[10][10]

Definition at line 66 of file TrigInDetTrackFollowingTool.h.

◆ m_isSwapped

bool TrigFTF_ExtendedTrackState::m_isSwapped

Definition at line 78 of file TrigInDetTrackFollowingTool.h.

◆ m_nClusters

int TrigFTF_ExtendedTrackState::m_nClusters

Definition at line 75 of file TrigInDetTrackFollowingTool.h.

◆ m_ndof

double TrigFTF_ExtendedTrackState::m_ndof

Definition at line 68 of file TrigInDetTrackFollowingTool.h.

◆ m_nHoles

int TrigFTF_ExtendedTrackState::m_nHoles

Definition at line 76 of file TrigInDetTrackFollowingTool.h.

◆ m_pO

const Trk::PlaneSurface* TrigFTF_ExtendedTrackState::m_pO

Definition at line 71 of file TrigInDetTrackFollowingTool.h.

◆ m_pS

const Trk::PlaneSurface* TrigFTF_ExtendedTrackState::m_pS

Definition at line 70 of file TrigInDetTrackFollowingTool.h.

◆ m_track

std::list<TrigFTF_HitAssignment> TrigFTF_ExtendedTrackState::m_track

Definition at line 73 of file TrigInDetTrackFollowingTool.h.

◆ m_Xk

double TrigFTF_ExtendedTrackState::m_Xk[10]

Definition at line 65 of file TrigInDetTrackFollowingTool.h.


The documentation for this struct was generated from the following files:
IDTPM::ndof
float ndof(const U &p)
Definition: TrackParametersHelper.h:142
TrigFTF_ExtendedTrackState::m_pS
const Trk::PlaneSurface * m_pS
Definition: TrigInDetTrackFollowingTool.h:70
TrigFTF_ExtendedTrackState::m_nClusters
int m_nClusters
Definition: TrigInDetTrackFollowingTool.h:75
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:201
M_PI
#define M_PI
Definition: ActiveFraction.h:11
TrigFTF_ExtendedTrackState::m_isSwapped
bool m_isSwapped
Definition: TrigInDetTrackFollowingTool.h:78
TrigFTF_ExtendedTrackState::m_Xk
double m_Xk[10]
Definition: TrigInDetTrackFollowingTool.h:65
lumiFormat.i
int i
Definition: lumiFormat.py:92
TrigFTF_ExtendedTrackState::m_ndof
double m_ndof
Definition: TrigInDetTrackFollowingTool.h:68
TrigFTF_ExtendedTrackState::m_pO
const Trk::PlaneSurface * m_pO
Definition: TrigInDetTrackFollowingTool.h:71
TrigFTF_ExtendedTrackState::m_Gk
double m_Gk[10][10]
Definition: TrigInDetTrackFollowingTool.h:66
WriteCalibToCool.swap
swap
Definition: WriteCalibToCool.py:94
TrigFTF_ExtendedTrackState::correctAngles
void correctAngles()
Definition: TrigInDetTrackFollowingTool.cxx:71
TrigFTF_ExtendedTrackState::m_chi2
double m_chi2
Definition: TrigInDetTrackFollowingTool.h:67
TrigFTF_ExtendedTrackState::m_track
std::list< TrigFTF_HitAssignment > m_track
Definition: TrigInDetTrackFollowingTool.h:73
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
TrigFTF_ExtendedTrackState::m_nHoles
int m_nHoles
Definition: TrigInDetTrackFollowingTool.h:76
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36