43
//SciFiTrackPoint::SciFiTrackPoint(const KalmanState *kalman_site) {
44
// int id = kalman_site->id();
50
// _spill = kalman_site->spill();
51
// _event = kalman_site->event();
54
// _station = ((id-1)/3)+1;
56
// _channel = kalman_site->measurement()(0, 0);
58
// _chi2 = kalman_site->chi2();
60
// TMatrixD state_vector = kalman_site->a(KalmanState::Smoothed);
61
// int dimension = state_vector.GetNrows();
63
// if ( dimension == 4 ) {
64
// _pos.setZ(kalman_site->z());
65
// _mom.setZ(200.0); // MeV/c
66
// _pos.setX(state_vector(0, 0));
67
// _mom.setX(state_vector(1, 0));
68
// _pos.setY(state_vector(2, 0));
69
// _mom.setY(state_vector(3, 0));
70
// } else if ( dimension == 5 ) {
71
// _pos.setX(state_vector(0, 0));
72
// _mom.setX(state_vector(1, 0));
73
// _pos.setY(state_vector(2, 0));
74
// _mom.setY(state_vector(3, 0));
75
// _pos.setZ(kalman_site->z());
76
// _mom.setZ(1./fabs(state_vector(4, 0)));
79
// _pull = kalman_site->residual(KalmanState::Projected)(0, 0);
80
// _residual = kalman_site->residual(KalmanState::Filtered)(0, 0);
81
// _smoothed_residual = kalman_site->residual(KalmanState::Smoothed)(0, 0);
83
// TMatrixD C = kalman_site->covariance_matrix(KalmanState::Smoothed);
84
// int size = C.GetNrows();
85
// int num_elements = size*size;
86
// double* matrix_elements = C.GetMatrixArray();
87
// std::vector<double> covariance(num_elements);
88
// for ( int i = 0; i < num_elements; ++i ) {
89
// covariance[i] = matrix_elements[i];
91
// _covariance = covariance;
92
// std::vector<double> errors(size);
93
// for ( int i = 0; i < size; ++i ) {
94
// errors[i] = std::sqrt(fabs(C(i, i)));
98
// _cluster = new TRef(kalman_site->cluster());
102
//SciFiTrackPoint::SciFiTrackPoint(const Kalman::State& state, const SciFiGeometryHelper* geom) {
103
// int id = state.GetId();
110
//// _spill = state->spill();
111
//// _event = kalman_site->event();
113
// TMatrixD state_vector = state.GetVector();
114
// int dimension = state_vector.GetNrows();
116
// const SciFiGeometryMap& geom_map = geom->GeometryMap();
118
// SciFiGeometryMap::const_iterator it = geom_map.find(id);
120
// ThreeVector reference_pos = geom->GetReferenceFramePosition(_tracker);
121
// HepRotation reference_rot = geom->GetReferenceFrameRotation(_tracker);
124
// _station = ((id-1)/3)+1;
125
// _plane = (id-1)%3;
127
// if ( dimension == 4 ) {
128
// _pos.setZ(state.GetPosition());
129
// _mom.setZ(200.0); // MeV/c
130
// _pos.setX(state_vector(0, 0));
131
// _mom.setX(state_vector(1, 0));
132
// _pos.setY(state_vector(2, 0));
133
// _mom.setY(state_vector(3, 0));
134
// } else if ( dimension == 5 ) {
135
// _pos.setX(state_vector(0, 0));
136
// _mom.setX(state_vector(1, 0));
137
// _pos.setY(state_vector(2, 0));
138
// _mom.setY(state_vector(3, 0));
139
// _pos.setZ(state.GetPosition());
140
// _mom.setZ(1./fabs(state_vector(4, 0)));
142
// _pos *= reference_rot;
143
// _pos += reference_pos;
145
// _mom *= reference_rot;
148
//// _pull = kalman_site->residual(KalmanState::Projected)(0, 0);
149
//// _residual = kalman_site->residual(KalmanState::Filtered)(0, 0);
150
//// _smoothed_residual = kalman_site->residual(KalmanState::Smoothed)(0, 0);
153
// _smoothed_residual = 0.0;
155
// TMatrixD C = state.GetCovariance();
156
// int size = C.GetNrows();
157
// int num_elements = size*size;
158
// double* matrix_elements = C.GetMatrixArray();
159
// std::vector<double> covariance(num_elements);
160
// for ( int i = 0; i < num_elements; ++i ) {
161
// covariance[i] = matrix_elements[i];
163
// _covariance = covariance;
164
// std::vector<double> errors(size);
165
// for ( int i = 0; i < size; ++i ) {
166
// errors[i] = std::sqrt(fabs(C(i, i)));
171
//// _cluster = new TRef(kalman_site->cluster());
172
// _cluster = new TRef();
43
// SciFiTrackPoint::SciFiTrackPoint(const KalmanState *kalman_site) {
44
// int id = kalman_site->id();
50
// _spill = kalman_site->spill();
51
// _event = kalman_site->event();
54
// _station = ((id-1)/3)+1;
56
// _channel = kalman_site->measurement()(0, 0);
58
// _chi2 = kalman_site->chi2();
60
// TMatrixD state_vector = kalman_site->a(KalmanState::Smoothed);
61
// int dimension = state_vector.GetNrows();
63
// if ( dimension == 4 ) {
64
// _pos.setZ(kalman_site->z());
65
// _mom.setZ(200.0); // MeV/c
66
// _pos.setX(state_vector(0, 0));
67
// _mom.setX(state_vector(1, 0));
68
// _pos.setY(state_vector(2, 0));
69
// _mom.setY(state_vector(3, 0));
70
// } else if ( dimension == 5 ) {
71
// _pos.setX(state_vector(0, 0));
72
// _mom.setX(state_vector(1, 0));
73
// _pos.setY(state_vector(2, 0));
74
// _mom.setY(state_vector(3, 0));
75
// _pos.setZ(kalman_site->z());
76
// _mom.setZ(1./fabs(state_vector(4, 0)));
79
// _pull = kalman_site->residual(KalmanState::Projected)(0, 0);
80
// _residual = kalman_site->residual(KalmanState::Filtered)(0, 0);
81
// _smoothed_residual = kalman_site->residual(KalmanState::Smoothed)(0, 0);
83
// TMatrixD C = kalman_site->covariance_matrix(KalmanState::Smoothed);
84
// int size = C.GetNrows();
85
// int num_elements = size*size;
86
// double* matrix_elements = C.GetMatrixArray();
87
// std::vector<double> covariance(num_elements);
88
// for ( int i = 0; i < num_elements; ++i ) {
89
// covariance[i] = matrix_elements[i];
91
// _covariance = covariance;
92
// std::vector<double> errors(size);
93
// for ( int i = 0; i < size; ++i ) {
94
// errors[i] = std::sqrt(fabs(C(i, i)));
98
// _cluster = new TRef(kalman_site->cluster());
102
// SciFiTrackPoint::SciFiTrackPoint(const Kalman::State& state, const SciFiGeometryHelper* geom) {
103
// int id = state.GetId();
110
// // _spill = state->spill();
111
// // _event = kalman_site->event();
113
// TMatrixD state_vector = state.GetVector();
114
// int dimension = state_vector.GetNrows();
116
// const SciFiGeometryMap& geom_map = geom->GeometryMap();
118
// SciFiGeometryMap::const_iterator it = geom_map.find(id);
120
// ThreeVector reference_pos = geom->GetReferenceFramePosition(_tracker);
121
// HepRotation reference_rot = geom->GetReferenceFrameRotation(_tracker);
124
// _station = ((id-1)/3)+1;
125
// _plane = (id-1)%3;
127
// if ( dimension == 4 ) {
128
// _pos.setZ(state.GetPosition());
129
// _mom.setZ(200.0); // MeV/c
130
// _pos.setX(state_vector(0, 0));
131
// _mom.setX(state_vector(1, 0));
132
// _pos.setY(state_vector(2, 0));
133
// _mom.setY(state_vector(3, 0));
134
// } else if ( dimension == 5 ) {
135
// _pos.setX(state_vector(0, 0));
136
// _mom.setX(state_vector(1, 0));
137
// _pos.setY(state_vector(2, 0));
138
// _mom.setY(state_vector(3, 0));
139
// _pos.setZ(state.GetPosition());
140
// _mom.setZ(1./fabs(state_vector(4, 0)));
142
// _pos *= reference_rot;
143
// _pos += reference_pos;
145
// _mom *= reference_rot;
148
// // _pull = kalman_site->residual(KalmanState::Projected)(0, 0);
149
// // _residual = kalman_site->residual(KalmanState::Filtered)(0, 0);
150
// // _smoothed_residual = kalman_site->residual(KalmanState::Smoothed)(0, 0);
153
// _smoothed_residual = 0.0;
155
// TMatrixD C = state.GetCovariance();
156
// int size = C.GetNrows();
157
// int num_elements = size*size;
158
// double* matrix_elements = C.GetMatrixArray();
159
// std::vector<double> covariance(num_elements);
160
// for ( int i = 0; i < num_elements; ++i ) {
161
// covariance[i] = matrix_elements[i];
163
// _covariance = covariance;
164
// std::vector<double> errors(size);
165
// for ( int i = 0; i < size; ++i ) {
166
// errors[i] = std::sqrt(fabs(C(i, i)));
171
// // _cluster = new TRef(kalman_site->cluster());
172
// _cluster = new TRef();
175
175
SciFiTrackPoint::SciFiTrackPoint(const SciFiTrackPoint &point) {
176
176
_spill = point.spill();