Fit implementation.
1164 {
1165
1166
1167
1169 << " input measurements");
1171
1175 }
1176
1179
1181
1184
1187
1188
1189
1190
1191
1196
1197
1198
1199
1201
1202
1203
1205
1206
1207
1209
1211
1214
1215
1216
1217
1221
1222
1224
1225
1226
1229 }
1230
1238 }
1243
1245
1249 ACTS_DEBUG(
"Propagation initialization failed: "
1252 }
1253
1257
1258
1259
1261
1262
1264
1268
1272 }
1273
1274
1275
1280
1283
1284
1285
1286
1288 ACTS_INFO(
"Did not find any measurements in nUpdate "
1291 }
1292
1294 track.linkForward();
1295
1296
1297
1299
1300
1301
1302
1303
1305
1309
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1325 ACTS_INFO(
"Not enough measurements. Require "
1329 }
1330
1333
1336 << "bVector:\n"
1338 << "deltaParamsExtended:\n"
1342
1346 ACTS_DEBUG(
"Abort with relChi2changeCutOff after "
1348 << " iterations.");
1350 break;
1351 }
1352
1355 }
1356
1357
1358
1360
1361
1362
1363
1364
1367 << " updates.");
1369 }
1370
1372 break;
1373 }
1374
1377
1379 }
1382 ACTS_VERBOSE(
"Final scattering angles and energy loss:");
1384 if (!
value.materialIsValid()) {
1385 continue;
1386 }
1388 <<
"|" <<
value.lostEnergy() <<
" )");
1389 }
1391
1396
1397
1399
1400
1401
1404 }
1405
1416
1418
1422 ACTS_DEBUG(
"Propagation initialization failed: "
1425 }
1426
1430
1431
1432
1434
1435
1437
1441
1445 }
1446
1447
1448
1454
1455
1456
1457
1459 ACTS_INFO(
"Did not find any measurements in material fit.");
1461 }
1462
1464 track.linkForward();
1465
1466
1467
1469
1470
1471
1472
1473
1475
1479
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1492 ACTS_INFO(
"Not enough measurements. Require "
1496 }
1497
1500
1503 << "bVector:\n"
1505 << "deltaParamsExtended:\n"
1509
1511
1514
1516
1519 <<
params.parameters().transpose());
1522
1523 ACTS_VERBOSE(
"Final scattering angles and energy loss:");
1525 if (!
value.materialIsValid()) {
1526 continue;
1527 }
1529 <<
"|" <<
value.lostEnergy() <<
" )");
1530 }
1531 }
1533
1534
1535
1536
1537
1538
1541
1543
1544
1554
1556
1560 ACTS_DEBUG(
"Propagation initialization failed: "
1563 }
1564
1568
1569
1571
1575
1579 }
1580
1584
1586 ACTS_INFO(
"Final fit used unreachable measurements.");
1588
1589
1590
1592 ACTS_INFO(
"Did not find any measurements in final propagation.");
1595 }
1596 }
1597 }
1598
1602 }
1603
1604
1609 track.setReferenceSurface(
params.referenceSurface().getSharedPtr());
1610
1616 }
1617
1618
1620
1621
1622
1624
1625 track.linkForward();
1626
1627
1629 }
Gx2FitterResult< traj_t > result_type
Broadcast the result_type.
std::unique_ptr< const Logger > m_actorLogger
std::unique_ptr< const Logger > m_addToSumLogger
static constexpr auto kInvalid
void updateGx2fParams(BoundTrackParameters ¶ms, const Eigen::VectorXd &deltaParamsExtended, std::unordered_map< GeometryIdentifier, Gx2fMaterialProperties > &materialMap, const std::vector< GeometryIdentifier > &geoIdVector)
Update parameters (and scattering angles if applicable).
Eigen::VectorXd computeGx2fDeltaParams(const Gx2fSystem &extendedSystem)
Solve the gx2f system to get the delta parameters for the update.
void updateGx2fCovarianceParams(BoundMatrix &fullCovariancePredicted, Gx2fSystem &extendedSystem)
Calculate and update the covariance of the fitted parameters.
void fillGx2fSystem(const track_proxy_t track, Gx2fSystem &extendedSystem, const std::unordered_map< GeometryIdentifier, Gx2fMaterialProperties > &materialMap, const std::vector< std::size_t > &materialParamIndices, std::vector< GeometryIdentifier > &geoIdVector, const Logger &logger)
Fill the GX2F system with data from a track.
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)