-
Notifications
You must be signed in to change notification settings - Fork 0
/
GEANEArtRecord.tex
134 lines (88 loc) · 8.4 KB
/
GEANEArtRecord.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
\begin{longtable}{|p{16cm}|}
% \scriptsize
\caption{GEANEArtRecord.hh active variables. This is subject to change. GEANEArtRecord contains vectors of variables on planes, as well as larger objects containing information about the whole track. Note that Eigen matrix objects cannot be stored into art data products. For this reason, and for minimal code changes, it was decided to add a data object for each Eigen member, made up of vectors with the word ``Data'' tagged at the end. The data objects are saved when creating GEANEArtRecords using the GeaneEigenStorageUtils class. In analyzers accessing the GEANEArtRecords, these data objects are then swapped into the Eigen objects using the same utils class.}
\label{tab:artRecord}
% \begin{tabular}{|p{16cm}|}
\\ \hline
enum GeaneHitSide \\
\textit{An enum for which side of the wire the track hit is guessed or calculated to have passed. Options are gLeft, gRight, gCenter, gNA\_side, and gUnknown. The first three are self explanatory, gNA\_side simply means there wasn't a hit, and gUnknown is used within the LR sequence checking part of the fitting code where any hits with said value are looped over to try and find the best choice.}
\\ \hline
art::Ptr \textless{} gm2strawtracker::TrackCandidateArtRecord \textgreater{} candidate \\
\textit{One track corresponding to one candidate corresponding to one GEANEArtRecord for the whole track.} \\ \hline
std::vector\textless{} art::Ptr\textless{} gm2truth::GhostDetectorArtRecord \textgreater{} \textgreater{} dummyPlaneHits \\
\textit{Associated dummy plane hits on planes aligned with straw wires, vector consists of hit dummy planes corresponding to hit wire planes (if a straw plane was skipped but that dummy plane was hit, it is not included in this vector. Vector has size N = num hits in straws that form the track +1 for the 0 plane.)} \\ \hline
int failureMode \\
\textit{Different failure modes for failed track reconstruction, 0 means it passed.} \\ \hline
double chi2 \\
\textit{Chi2 for whole track.} \\ \hline
std::vector\textless{}double\textgreater{} chi2Planes \\
\textit{Individual chi2s on each plane, vector consists of hit planes with size N. The sum of the chi2s on the planes do not add up to the total chi2, since they don't include the correlations, but get close and can still be used as a measure of goodness of fit at that plane.} \\ \hline
int numIterations \\
\textit{Number of iterations to converge.} \\ \hline
unsigned int dof \\
\textit{DoF of track = number of hit planes - 5 track parameters.} \\ \hline
double chi2DoF \\
\textit{chi2/dof} \\ \hline
double pValue \\
\textit{Fit pValue for whole track.} \\ \hline
std::vector\textless{}double\textgreater{} startingTrackParameters \\
\textit{Starting parameters for track: size 6, 3 position then 3 momentum, x y z px py pz, best starting parameters updated after each iteration, starting parameters x position defined before first hit.} \\ \hline
int trackNumPlanesHit \\
\textit{Total number of planes hit.} \\ \hline
int trackFirstPlaneHit \\ \hline
int trackLastPlaneHit \\ \hline
std::vector\textless{}int\textgreater{} trackPlanesHitList \\
\textit{List of hit planes, with missed planes excluded from the vector. Ex. 1 2 4 5 8 9} \\ \hline
std::vector\textless{}std::vector\textless{}double\textgreater{} \textgreater{} wireUVPositions \\
\textit{Wire center U and V postions, first vector is track param vector size 5 (0 1 2 unfilled, 3 is U, 4 is V), second vector is planenumber from 0 - 32 (formatted this way to align with other similar vectors - can probably be reduced.)} \\ \hline
std::vector\textless{}double\textgreater{} measuredDCAs \\
\textit{Vector of measured DCAs for hit planes, with size 33. Mainly to hold on to smearing values for now.} \\ \hline
std::vector\textless{}double\textgreater{} uncorrErrors \\
\textit{Size 33, errors filled with digit errors or straw diameter errors - uncorrected.} \\ \hline
std::vector\textless{}double\textgreater{} UVerrors \\
\textit{Size 33, errors corrected each iteration with angular correction from dca/straw error to UV error - errors that are used in the fit.} \\ \hline
std::vector\textless{}gm2strawtracker::GeaneHitSide\textgreater{} inputHitSides \\
\textit{Size 33, LR sides coming from from upstream of the fitting code - and modified within the fitting code depending on the fit mode.} \\ \hline
std::vector\textless{}double\textgreater{} dcaErrors \\
\textit{Size 33, dca errors directly copied from straw digit art record.} \\ \hline
std::vector\textless{}double\textgreater{} strawDiamErrors \\
\textit{Size 33, vector of straw diameter errors = strawdiameter/$\sqrt{12}$.} \\ \hline
std::vector\textless{}double\textgreater{} planeXPositions \\
\textit{Vector of X postions of hit wire planes with size 33 (0 - 32), 0 plane being in front of the first module that was hit.} \\ \hline
std::vector\textless{}std::vector\textless{}double\textgreater{} \textgreater{} geaneMeasuredParameters \\
\textit{Measured GEANE parameters, first vector is param num 0 - 4, second vector is plane number 0 - 32, units are MeV mm. 1/P, Pu/Pz, Pv/Pz, U, V - only U or V is filled at the start of the GEANE fitting module.} \\ \hline
std::vector\textless{}std::vector\textless{}double\textgreater{} \textgreater{} geanePredictedParameters \\
\textit{Predicted GEANE parameters, first vector is param num 0 - 4, second vector is plane number 0 - 32, units are MeV mm. 1/P, Py/Px, Pz/Px, Y, Z - all params filled in tracing stage of GEANE fitting module - coord system has to be orthogonal - converted to UV locally in the fitting module.} \\ \hline
std::vector\textless{}GeaneHitSide\textgreater{} geaneHitSides \\
\textit{Vector of GeaneHitSide enums with size 33 describing the sides of the wires that each hit of the track passed.} \\ \hline
std::vector\textless{}Eigen::MatrixXd\textgreater{} geaneTransportMatrices \\
std::vector\textless{}std::vector\textless{}double\textgreater{} \textgreater{} geaneTransportMatricesData \\
\textit{Units of GeV cm - transport matrices between planes tracked to in GEANE fitting module, 5x5 objects. Vector has size 33.} \\ \hline
std::vector\textless{}Eigen::MatrixXd\textgreater{} geaneErrorMatrices \\
std::vector\textless{}std::vector\textless{}double\textgreater{} \textgreater{} geaneErrorMatricesData \\
\textit{Error matrices on tracked to planes, units GeV cm, size 33.} \\ \hline
Eigen::MatrixXd covarianceTotalInverse \\
std::vector\textless{}double\textgreater{} covarianceTotalInverseData \\
\textit{5x5 inverse of total covariance matrix for track. Diagonals represent errors in 5 track paramaters on plane 0.} \\ \hline
std::vector\textless{}Eigen::VectorXd\textgreater{} paramPredictedInUVEigen \\
std::vector\textless{}std::vector\textless{}double\textgreater{} \textgreater{} paramPredictedInUVEigenData \\
\textit{Predicted parameters in UV space as an eigen object (converted from geanePredictedParameters above) for calculation convenience and some LR information storage. Order of vectors is switched here, first is planenum, second is paramnum, units are MeV mm.} \\ \hline
\textit{Objects below here are full track objects with larger sizes, held on to for fast sequence checking. Units GeV cm.} \\ \hline
std::vector\textless{}Eigen::MatrixXd\textgreater{} extendedTransportMatrixBegToEnd \\
std::vector\textless{}std::vector\textless{}double\textgreater{} \textgreater{} extendedTransportMatrixBegToEndData \\
\textit{Accumulated/combined transport matrices from starting plane to all following planes.} \\ \hline
Eigen::MatrixXd extendedCombinedTransportMatricesTranspose \\
std::vector\textless{}double\textgreater{} extendedCombinedTransportMatricesTransposeData \\
\textit{Transpose of larger eigen object composed of above begtoend transport matrices.} \\ \hline
Eigen::MatrixXd extendedReducedMatrix \\
std::vector\textless{}double\textgreater{} extendedReducedMatrixData \\
\textit{Total error correlation matrix, reduced to size NxN (N = num planes hit).} \\ \hline
Eigen::MatrixXd extendedReducedMatrixInverse \\
std::vector\textless{}double\textgreater{} extendedReducedMatrixInverseData \\
\textit{Inverse of above saved once for LR checking.} \\ \hline
Eigen::MatrixXd extendedModifiedReducedMatrix \\
std::vector\textless{}double\textgreater{} extendedModifiedReducedMatrixData \\
\textit{Reduced matrix from above that's going to be modified into a hybrid error matrix separately for U and V fits but that needs to be held onto for all sequences.} \\ \hline
\hline
% \end{tabular}
\end{longtable}