Skip to content

Releases: acts-project/acts

v14.0.0

11 Oct 08:08
Compare
Choose a tag to compare

Breaking

-template <typename calibrator_t, typename outlier_finder_t>
+template <typename calibrator_t, typename outlier_finder_t, typename reverse_filtering_logic_t>
 struct KalmanFitterOptions {

Feature

Ci

Refactor

Fix

Documentation

Chore

New Contributors

Full Changelog: v13.0.0...v14.0.0

v13.0.0

21 Sep 12:46
Compare
Choose a tag to compare

Breaking

  • Single geant4 simulation algorithm (ActsExamples 1/X) (#962) (1b8f372):
    The MaterialInteraction and its derivatives are removed from the Propgator/MaterialInteractor.hpp into a separate file Material/MaterialInteraction.hpp to wich the former file and the other clients point to

Feature

  • Introduce json configuration for tgeo (#884) (4443cae)
  • Implement a k-d tree data structure (#987) (c0db8a7)
  • Implement a k-dimensional range class (#986) (d9c04a6)
  • Implement a one-dimensional interval class (#985) (956e3fb)
  • Rework Geant4 simulation (2/X) (#977) (7172909)
  • Single geant4 simulation algorithm (ActsExamples 1/X) (#962) (1b8f372)
  • Add KF-based alignment algorithm (#896) (da66a5b)
  • Computation of shared measurement in CKF (#898) (8f1f47b)

Fix

  • Assign the vertex and direction at first step (#981) (2189de2)
  • Update EventRecording to remove disconnected vertices and particles (#912) (43c4f42)
  • KF return and CKF logging (#996) (ebe6b0e)
  • Set target surface to null for forward filtering in CKF (#997) (54a942c)
  • Allow layer search in original volume after fast initialization (#995) (e11d1c4)

Documentation

  • Recommend recursive git clone for ODD compatibility (#972) (6e25ee0)

Ci

v12.0.1

30 Aug 14:10
Compare
Choose a tag to compare

Refactor

  • Context in bin adjustment and trapezoid surface bin adjustment (#966) (8236d1f)
  • Define interface for generators (#919) (b87b53c)

Documentation

  • Update material mapping howto for submodule ODD (#967) (ae9d83c)

Fix

  • Collision region should be in millimeters (#965) (863364a)

Chore

  • Add pybind11 as a thirdparty component (#964) (30ebed9)

Build

v12.0.0

26 Aug 12:49
Compare
Choose a tag to compare

Breaking

  • Use common units for seed finding (#941) (c020c92)
    The seeding configuration structs SpacePointGridConfig, SeedFilterConfig and SeedFinderConfig change to now use ACTS units.

Chore

  • Update .zenodo.json file to try to fix automatic upload (f64c38a)
  • Update ODD in thirdparty (#940) (e038f14)
  • Update readme with new Zenodo DOI (#908) (7ae0c8e)

Refactor

  • Use context in Json surface writing (#958) (a78f220)
  • Untemplate RootBField writer (#920) (0123060)
  • Use interface to define copyable G4 factory (#918) (a80f03b)
  • Seeding config simplification (#945) (0093d56)
  • Make Detectors constructible without boost po (#923) (f159cce)
  • Make the DigitizationConfigurator usable (#921) (6521c13)
  • Use common units for seed finding (#941) (c020c92)
  • Move TGeoDetector into ActsExamples namespace (#947) (c5bee96)
  • RootVertexPerformanceWriter only writes input time if configured (#929) (72dcfa8)
  • Always create bound state (#936) (cb728a4)

Ci

Documentation

Fix

  • Use material before the first measurement in smoothing (#956) (72eecda)
  • Use width/sqrt(12) in smearing digi config file for generic detector (#957) (7c4a4d1)
  • GeometryView3D default output directory doesn't work. (#954) (4452021)
  • Static initialization of vector of strings (#951) (8ee64d6)
  • Linking issue with public symbol sortDetElementsByID (#930) (effda20)
  • Update jacToGlobal after KF filtering (#935) (b47fe06)
  • SEGFAULT in NuclearInteractionParametrisation (#931) (0321083)

Feature

  • Write out residual pull (#950) (3d67ee8)
  • Add another script executable, add program options (#943) (60c824c)
  • GeometryView3D can write to specified outputDir (#917) (971c537)
  • Add tele digi file (#937) (e8a46d7)
  • Sequencer gets configurable iteration callback (#928) (e506c6c)
  • Add num-vertex option to PG, error check (#939) (42a362c)
  • Add path length branch to RootTrajectoryStatesWriter (#932) (e98107c)
  • Add truth impact parameters to RootTrajectorySummaryWriter (#938) (af0ab90)

Performance

  • Remove extraneous copies in seedfinder (#953) (d04706b)
  • Use map to accelerate parameter estimator (#952) (d74d411)

Build

v11.0.0

10 Aug 14:59
Compare
Choose a tag to compare

Breaking

  • The interface of a number of methods changes: (fb99e3e)
    • SeedFilter::filterSeeds_2SpFixed (takes an output iterator, is now void)
    • SeedFilter::filterSeeds_1SpFixed (takes an output iterator, is now void)
    • Seedfinder::createSeedsForGroup (takes an output iterator, is now void, takes a state object as a reference)
    • Grid::collect (returns boost::container::small_vector<size_t, N> where N = 3^DIM of the grid)

Chore

Performance

Refactor

  • Simplify / unify material writers (#916) (59c0021)
  • CsvMeasurementWriter only creates cluster file if configured (#927) (54b1a6c)
  • Fitting and Finding algorithm function interface (#922) (6523cba)
  • Rename HepMC3 targets for consistency (#924) (cc52918)

Feature

  • Harmonization of algorithm, reader and writer interfaces (#915) (b4bf719)

Fix

  • Make smearers used in digitization thread-safe (#902) (51af202)
  • DetermineEventFilesRange is VERBOSE by default (#903) (2f24328)
  • HepMC3 G4 event action correctly builds even record (#911) (07a4508)
  • GCC10 warning about uninitialized value (#907) (e5454ab)

v10.0.0

28 Jul 09:25
Compare
Choose a tag to compare

Breaking

  • PR #846 (803bd93)
    Navigator-type State structs are expected to have a reset method with this signature:
    void reset(const GeometryContext& geoContext, const Vector3& pos,
                   const Vector3& dir, NavigationDirection navDir,
                   const Surface* ssurface, const Surface* tsurface);

Build

  • Add option to automatically build the required boost and eigen libraries (#871) (a2f0a63)

Fix

Feature

  • Update OpenDataDetector, refine DD4hep material handling (#895) (0e83c06)
  • Flag material if found (#893) (bb4ba16)
  • Update OpenDataDetector to tip (#889) (9109be1)
  • Introduce TGeoDetectorElementSplitter & splitted detector element constructors (#873) (b14a419)
  • EventRecordingExample did not set up input (#878) (6e94ec0)
  • Make Grid bin count accessible with and without over/underflow bins (#872) (e47dc58)

Documentation

Refactor

Ci

  • Use CVMFS based CI using AIDASoft's GitHub actions (#866) (96f3a3f)

v9.2.0

08 Jul 11:54
Compare
Choose a tag to compare

Build

Feature

  • Update open data detector with synchronized endcap modules (#867) (d39cc52)
  • Volume material with root writer (#849) (05b655e)
  • Add digitization config and example for dd4hep and generic detector (#856) (d911434)
  • Decouple propagator instance from propagation algorithm (#844) (4c6c00a)
  • Add polymorphic value like container (#855) (a837633)

Documentation

Fix

  • AnnulusBoundsTests uses deprecated boost header (#861) (7c17307)
  • Replace deprecated tbb.h include (#862) (2d196d4)
  • Add missing include in PolymorphicValueTest.cpp (#859) (ed152ac)

Refactor

v9.1.0

24 Jun 12:32
Compare
Choose a tag to compare

Fix

  • DiscBounds binningValue incorrect for binPhi (#852) (c7ad7e8)
  • Solenoid B field benchmark goes out of bounds (#853) (7ff587b)
  • Howto material without spread (#848) (54dcb61)
  • GdmlGeantinoRecording does not need DD4hep (#843) (d20e23c)

Performance

  • Add track summary root writer and standalone script for reco performance plots (#841) (902c169)

Feature

Ci

v9.0.1

14 Jun 07:26
Compare
Choose a tag to compare

Fix

  • Fix search of last measurement index (#840) (56f63b2)
  • TrackAverage when surface has zero binning (#839) (af36fb1)

v9.0.0

10 Jun 13:39
Compare
Choose a tag to compare

⚠️ BREAKING CHANGES

  • Refactor of the template for the input measurements in the CKF findTracks invocation. (b00d3dd, #830)
    It implements a source link accessor concept which has:

    • type members including Container, Key, Value, Iterator
    • lookup methods including count, range and at to help access the source link container

    The CKF findTracks is changed to be templated on the source link accessor. In this way, the input measurements can be directly used by the CKF Actor without further internal converting as long as proper accessor is provided.

  • The constructor and public members of Acts::Navigator change (641e00c, #826)
    When before it could be created like

    Acts::Navigator nav{tGeometry};
    nav.resolveSensitive = true;
    nav.resolveMaterial = true;
    nav.resolvePassive = true;

    it must now be created like

    Acts::Navigator::Config cfg;
    cfg.trackingGeometry = tGeometry;
    nav.resolveSensitive = true;
    nav.resolveMaterial = true;
    nav.resolvePassive = true;
    Acts::Navigator nav{cfg};

    Since trackingGeometry is the first member of Acts::Navigator::Config, if you don't want to change the resolve* values, you can also write

    Acts::Navigator nav{{tGeometry}};
  • The instantiation of an interpolated B field changes. (ba385e3, #828)
    Old:

    using Grid_t = detail::Grid<Vector3, detail::EquidistantAxis, detail::EquidistantAxis>;
    using Mapper_t = InterpolatedBFieldMapper<Grid_t>;
    using BField_t = InterpolatedBFieldMap<Mapper_t>;
    
    Grid_t g(std::make_tuple(std::move(r), std::move(z)));
    Mapper_t mapper(transformPos, transformBField, std::move(g));
    BField_t::Config config(std::move(mapper));
    config.scale = 1.;
    
    BField_t b(std::move(config));

    New:

    using Grid_t = detail::Grid<Vector3, detail::EquidistantAxis, detail::EquidistantAxis>;
    using BField_t = InterpolatedBFieldMap<Grid_t>;
    
    Grid_t g(std::make_tuple(std::move(r), std::move(z)));
    BField_t::Config cfg;
    cfg.transformPos = transformPos;
    cfg.transformBField = transformBField;
    cfg.grid = std::move(g);
    cfg.scale = 1.;
    BField_t b{std::move(cfg)};
  • B field access returns Result (b6371e2, #825)

    • The signature of field query methods in MagneticFieldProvider changes from
      virtual Vector3 getField(const Vector3& position, Cache& cache) const = 0;
      virtual Vector3 getFieldGradient(const Vector3& position, ActsMatrix<3, 3>& derivative, Cache& cache) const = 0;
      to
      virtual Result<Vector3> getField(const Vector3& position, Cache& cache) const = 0;
      virtual Result<Vector3> getFieldGradient(const Vector3& position, ActsMatrix<3, 3>& derivative, Cache& cache) const = 0;
    • InterpolatedBFieldMap::getMin and InterpolatedBFieldMap::getMax now return the extent of the valid interpolation domain, rather than the raw grid extent.
  • Acts::MagneticFieldProvider loses two pure virtual overloads (815bb72, #819)

    virtual Vector3 getField(const Vector3& position) const = 0; 
    virtual Vector3 getFieldGradient(const Vector3& position, ActsMatrix<3, 3>& derivative) const = 0;

    Clients of generic magnetic field providers need to be adapted.

Refactor

  • Make intersection verbose logging a lot more verbose (#827) (3776c00)
  • CKF input measurements (#830) (b00d3dd)
  • Make Navigator use a config struct (#826) (641e00c)
  • Material surface handling in CKF (#811) (0d06592)
  • Remove interpolated magnetic field mapper (#828) (ba385e3)
  • B field access returns Result (#825) (b6371e2)
  • Remove overloads of B field retrieval without cache (#819) (815bb72)

Fix

  • Root readers ensure event ordering is consistent (#837) (521063b)
  • Remove Geant4 data archive after extraction (#835) (8eff52d)
  • Make examples sequencer compatible with modern TBB (#834) (3156583)
  • Check that rmin is not less than zero. (#820) (201ce3c)
  • Added missing extent (#829) (d930e7e)

Feature

Build

Documentation

Chore