Skip to content

Releases: ShipSoft/FairShip

26.06

Choose a tag to compare

@olantwin olantwin released this 18 Jun 23:06

Added

  • Add experimental script to import Muons and Matter pkl files
  • Add TTreeGenerator to read events from ROOT TTrees (including the converted M&M ntuples)
  • Add --ttree option to run_simScript.py for ROOT TTree input
  • Add --target_composition option to makeDecay, defaulting to Tungsten and mirroring the makeCascade.py flag
  • Add --validation flag to run_simScript.py and ShipReco.py that prints generator, output, pattern-recognition, and fit counters
  • Add --remote-input flag to run_simScript.py for direct root://… input without local download
  • Add --reproducible mode and explicit, reusable run IDs in run_simScript.py / run_fixedTarget.py, with consistent metadata written into output headers
  • Add pixi environment (pixi.toml) and pixi-based CI build workflow as the new primary build path
  • Add CI sim-chain tasks driven by pixi
  • Add CI workflow to build and publish pixi-based container images on release
  • Add REUSE compliance badge to README
  • Add pixi installation instructions to README

Changed

  • Change A scaling in makeDecay
  • Rewrite README to be pixi-first
  • Derive project version from git tags via git describe instead of hardcoded 0.0.0
  • Migrate CI to shared ShipSoft/.github reusable workflows

Fixed

  • Validate -A choice for --DarkPhoton runs; previously silently misconfigured (#1166)
  • Always allocate validation_stats dict and fix GetHitID typo in shipDigiReco
  • Harden generator input handling: fail-fast on missing files, trees, branches, and out-of-range start events, and switch to TFile::Open for remote-input compatibility
  • Prevent MuonBack post-processing double-free of output TFile at interpreter shutdown (#1226)
  • Null-init MuonBackGenerator pointers and drop dead CloseFile path
  • Keep BranchList TObjStrings alive under ROOT 6.40 PyROOT ownership changes
  • Load libEGPythia6 in shipRoot_conf
  • Remove unnecessary libG4clhep loads
  • Chain Initialize through immediate parent in exitHadronAbsorber
  • Address real bugs surfaced by pyrefly static type-checking
  • Remove throwing static initializers
  • Initialise variables before conditional branches
  • Replace atof/atoi with std::stod/std::stoi for proper error handling
  • Replace floating-point loop counters with integers
  • Use size_t for ShipMuonShield corner-index loop
  • Use git rev-parse in retrieveGitTags for Python 3 compatibility
  • Correct DOI badge link in README
  • Fix help-message text in makeDecay

Removed

  • Drop unused HepMC dependency
  • Retire aliBuild-driven build-run.yml; replaced by pixi-build.yml

New Contributors

Full Changelog: 26.05...26.06

26.05

Choose a tag to compare

@olantwin olantwin released this 25 May 10:44

Added

  • Added ParticleGunGenerator #1183
  • Add time window event overlay script (macro/make_time_window.py) for constructing realistic pileup from MC truth events
  • Add SetStartT and GetEventID accessors to ShipMCTrack
  • Add beam smearing and painting support to DPPythia8Generator

Changed

  • Update default spectrometer field map to 2025 MgB2 map (2025_02_12_SHiP_SpectrometerField_ECN3_MgB2.root)
  • Replace incorrectly oriented spectrometer field maps with corrected versions (2026_05_07)

Fixed

  • Import EGPythia6 library from basiclibs in makeMuonDIS
  • Remove deprecated attribute syntax in the GST TTree copy within GENIE run_simScript option
  • Keep FixedTargetGenerator retrying if Pythia fails to generate an event, until a max number of retries is reached
  • Recompute the two-track DOCA at the chi^2-optimal vertex (HNLPosFit) instead of the iterative geometric one. The geometric DOCA was evaluated with tangent-line linearisations at the geometric iteration's converged z and overestimated the line-to-line distance wherever Migrad shifted the vertex; re-extrapolating the genfit states the small residual dz to HNLPosFit.Z() recovers a substantial fraction of signal at the standard DOCA preselection cut on HNL signal MC.
  • Anchor Chamber1.z to the decay vessel geometry so the HNL minimum decay length and the muon-DIS start position track the upstream end of the decay vessel; the legacy formula in geometry_config.py left both ~1.8 m too far downstream after the March 2025 coordinate-system change, reducing HNL generation acceptance by about 3.6 % of the decay vessel volume.
  • Work around ROOT 6.40 GIL bug that crashes on TH1::Fit() warnings by guarding with GetEntries() > 0
  • Prevent double-delete segfaults with ROOT 6.40 PyROOT ownership changes by transferring ownership to C++ for objects managed by FairRoot, genfit, and Geant4
  • Guard meson-production chain export for proton-bremsstrahlung mode in DPPythia8Generator, fixing duplicated dark photon and spurious Pythia system entry
  • Support both old (2018) and new MuonBack production files by detecting PlaneHAPoint branch and setting correct z-offset (#1181)
  • Guard vertex fit against unconverged Migrad and failed HESSE to prevent unreliable vertex positions
  • Restore chi2 assignment in vertex fit TMinuit callback (f.value instead of local rebind)
  • Keep ROOT streamers (+ LinkDef flag) for MTCDetector and strawtubes, needed for dynamic downcasting via run.GetListOfModules()
  • Remove unused ROOT streamers from other detector classes
  • Check if inputfile is a list or single string in run_simScript.py
  • Show full path format in --field_map help text
  • Make sumw cache unique per file and fail fast on unknown Point class in time window overlay script

Removed

  • Remove duplicate makeMuonDIS.py from muonShieldOptimization/ (canonical version is in muonDIS/)
  • Remove incorrectly oriented field maps added in 26.04

New Contributors

Full Changelog: 26.04...26.05

26.04

Choose a tag to compare

@olantwin olantwin released this 30 Apr 14:53

Added

  • Add angular acceptance cut in HNL and DP generators to skip events outside the decay vessel
  • Add FileSummary to run_fixedTarget.py to save all the options for reference (#1140)
  • Add new 2026_04_01_SHiP_MainSpectrometerField_V13.root fieldmap
  • Add GenFit unbiased hit residuals and pulls to tracking benchmark
  • Add type stubs for ROOT, XRootD, acts, and genfit
  • Add CI workflow to publish plots to GitHub Pages and embed in PR comments

Changed

  • Make artificial retina the baseline option for pattern recognition
  • nrOfRetries() in HNL and DP generators now counts only production failures; geometric acceptance rejections are tracked separately via nrOfGeoRejections()
  • Read vessel end dimensions from veto YAML config instead of hardcoding in geometry_config.py
  • Replace uproot with PyROOT in compare_histograms

Fixed

  • Fix vertex finding for upstream vertices by using stepwise extrapolation
  • Derive track fit seed from pattern recognition and first hit position instead of hard-coded coordinate (#763)
  • Replace obsolete elliptical acceptance cut with rectangular acceptance in track pattern recognition
  • Fix CI build warnings: add missing override specifiers, fix Print() and Init() virtual hiding, remove unused FairShipFields LinkDef entry
  • Remove no-effect statements (unused object creation, bare index accesses) from Python scripts
  • Determine track charge from pattern recognition slope bending and fit both charge hypotheses
  • Skip inconsistent track hypothesis after fit
  • Improve track fitting loop robustness and add convergence check
  • Replace from ROOT import with namespace-qualified access
  • Update references to removed muon shield configurations

Removed

  • Remove fake pattern recognition fallback

Full Changelog: 26.03...26.04

26.03

Choose a tag to compare

@olantwin olantwin released this 31 Mar 13:02

Added

  • Tracking performance benchmark for straw tube spectrometer (python/tracking_benchmark.py, macro/run_tracking_benchmark.py): measures efficiency, clone rate, ghost rate, and momentum/position/angular resolution using particle gun events with template matching pattern recognition
  • Add Findgenfit2.cmake module to support both upstream GenFit and the fork
  • New warm MS option TRY_2025 (Stellatryon v.2) and its field map
  • Add GENIE configs for Pythia8 instead of Pythia6 (#1054)
  • Add SHiP::DetectorPoint base class with EventID for all detector points (#1059, #1075)
  • Add file glob and nEvents=-1 support to run_simScript.py input files (#1041)
  • Store coordinates of MTC hits (#1026)

Changed

  • Implement SHiP::Detector base class; veto detector now uses doubles (#1079)
  • Migrate SND detectors (MTCDetector, SiliconTarget, Target, TargetTracker) and exitHadronAbsorber to SHiP::Detector base class
  • Rename ShipHit to SHiP::DetectorHit and clean up subclass hierarchy
  • Extract duplicated InitMedium into ShipGeo::InitMedium free function
  • Make SHiP::Generator base class for all generators (#1047); change const char* to optional<string> (#1053)
  • Input file reading uses TChain; run_simScript.py accepts list of files (#1027)
  • Make MTC scintillating tile size configurable; change default field (-1.2 T to -1.7 T) and tile size (1 cm to 5 cm) (#1091)
  • Remove setting of FairMC links (#1109)
  • Change passive SiliconTarget material from tungstenalloySND to pure tungsten
  • Change naming convention for simulation files to {sim,geo,params}_{uuid4}.root, with optional --tag parameter
  • Change ShipMuonShield to accept new magnet configuration: no fixed number of magnets and variable z-gap between them
  • Disable magnetic field in the MS and remove field map upload in run_fixedTarget.py
  • Update run_fixedTarget to save tracks for hits in post-target sensitive plane
  • Change function SND in shipDet_conf.py
  • UseGeneralProcess only set to false when cross-sections need changing
  • makeGenieEvents: automatically set GXMLPATH to genie_config folder; remove --nudet option
  • Only get evtNo in ShipStack if there are tracks (#1051)
  • Turn warning to debug in MuonBackGenerator (#1036)
  • Bump minimum ROOT to 6.36, CMake to 3.20, C++ standard to C++20
  • Remove outdated dependency version gates for Pythia8 < 8.300, ROOT < 6.32, and old Geant4VMC
  • Modernise C++: use C++20 features (map::contains, ranges, structured bindings), std::span, nullptr, override, = delete
  • Expand ruff lint rules and fix Python code quality issues; replace bare except: with specific exception types

Fixed

  • Fix pattern recognition producing far fewer tracks than expected after geometry change from 2 planes to 1 plane per view (#580)
  • Fix StrawDecode Python indexing: change return type from std::tuple to std::array so cppyy maps operator[] to __getitem__
  • Fix EventDisplay "Branch not found" errors for MC point branches after std::vector migration (#1126)
  • Fix EventDisplay errors for nonexistent MC point branches (#900)
  • Fix EventDisplay initialisation order for FairRunAna/FairEventManager
  • Fix EventDisplay handling of reco files using native AddFriend
  • Fix GenFit 02-03-00 compatibility: replace removed genfit::BellField with ShipBellField; explicitly parse genfit2 headers for 26.03 stack
  • Fix generator Python bindings by removing //! directives from public method declarations
  • Fix MuonBackGenerator off-by-one at last event; gracefully stop via gMC->StopRun() instead of FairRoot's exit(0)
  • Fix MuonBackGenerator to support both TClonesArray and std::vector input formats
  • Fix duplicate SHiP::Detector<vetoPoint> rootmap entry warning
  • Fix TStreamerInfo warnings for SHiP::Detector instantiations, generators, and ISTLPointContainer
  • Fix uninitialised fDetPoints pointer in SHiP::Detector base class
  • Fix NaN mass/energy for photons in ShipMCTrack due to floating-point rounding (#384)
  • Move TimeDetHit v_drift and par[] to static constexpr, saving 40 bytes per serialised hit (#685)
  • Fix digitisation crash when optional detector branches are missing (#738)
  • Fix splitcalHit dropping MC point arrival time in digitisation (#925)
  • Fix argparse -f/subparser conflict in run_simScript.py (#1044)
  • Fix duplicated events in digitisation output (#1028)
  • Fix file-filtering logic to support STL branches
  • Fix SetPhiRandom to SetPhiRandomize in run_simScript.py
  • Clamp random seed to PYTHIA8's maximum allowed value (900000000)
  • Set correct trackIDs for exitHadronAbsorber class
  • Disable multi-threading explicitly, as it is not supported in FairShip
  • Fix pickle serialisation file modes in ShipGeoConfig (text to binary)
  • Fix type annotations for physics quantities from int to float
  • Fix null dereferences in ShipFieldMaker, FairShipFields, and FixedTargetGenerator
  • Fix uninitialised members in vetoHit, strawtubesHit, ShipMuonShield; change flag from Float_t to Bool_t
  • Fix off-by-one in FixedTargetGenerator target node access
  • Fix errorSummary/reportError logging issues in rootUtils
  • Fix closure variable binding bug in event display toggle callbacks
  • Fix unclosed file handles in readDecayTable, pythia8_conf, and pythia8darkphoton_conf
  • Fix mutable default arguments in rootUtils.readHists() and geomGeant4.printWeightsandFields()

Removed

  • Remove g4Ex scripts
  • Remove old (CDR) target configuration; Jun25 is now the only supported target
  • Remove unused ShipStyle, run_simEcal.py, and flux_map.py
  • Remove unused functions and dead code from rootUtils
  • Remove unused rootUtils imports from dumpEvent.py and extractMuonsAndUpdateWeight.py
  • Remove TDirectory pythonisation backport (now provided by ROOT >= 6.32)
  • Remove unused legacy ShipGeo.py and create_field_perturbation.py
  • Remove SND@LHC leftover code from event display (#900)
  • New_HA_Design and warm_opt muon shield configurations no longer supported

Full Changelog: 25.12...26.03

25.12

Choose a tag to compare

@olantwin olantwin released this 22 Dec 16:32

Added

Physics and Simulation

  • Add EvtGenDecayer for decaying J/psi (and other particles in future) when specifying the --EvtGenDecayer option
  • Corrections in MuonDIS simulation
    The DIS interactions are now time-shifted to be consistent with the original incoming muon. Additionally, tracks from soft interactions of the original muon along with the muon's veto response are preserved (in muonDis.root) and included up to the DIS interaction point. To be noted that the muon veto points are manually added using add_muonresponse.py, which modifies the simulation file. This replaces the old method of "backward-travelling muon" to generate the incoming muon's veto response. All MuonDIS simulation scripts have been updated and consolidated within FairShip/muonDIS, ensuring consistency for new productions.
  • Added a custom CrossSection branch to the simulation file to save the DIS cross sections from muonDIS.
  • Unified beam smearing implementation across all generators
    • Updated HNLPythia8Generator to use consistent Gaussian beam smearing and circular beam painting, replacing the previous uniform square implementation
    • Added beam smearing and painting support to FixedTargetGenerator
    • All generators (MuonBackGenerator, HNLPythia8Generator, FixedTargetGenerator) now use the same beam smearing algorithm: Gaussian smearing with --SmearBeam parameter and uniform circular painting with --PaintRadius parameter
    • The --SmearBeam and --PaintBeam command-line options in run_simScript.py now apply to all generators, not just muon background simulation
    • Implemented shared BeamSmearingUtils utility using modern C++17 features (std::pair return and structured bindings) to eliminate code duplication
  • Big update of genie generation scripts macro/makeGenieEvents.py and python/genie_interface.py:
    • Universal choice of neutrino flavor to simulate
    • Handy way to enable/disable charm and tau decays of the products
    • Rewriting the code with modern pythonic style preserving backward compatibility
  • Adding new keys specifically for genie regime in macro/run_simScript.py and copying gst TTree from the genie input file to the output file of the macro/run_simScript.py:
    • Adjust the z range where to simulate the neutrino interactions via --z_start_nu and --z_end_nu keys
    • Replacing the --Genie key with Genie as a subparser
    • Copying gst TTree is similar to sndsw
  • Add support for Pythia 8.3xx. 8.2xx is still supported via preprocessor macros for the time being.
  • Support using TPythia6 provided by ROOTEGPythia6 for ROOT ≥ 6.32

SND Detector System

  • Folder SND is added for new versions of SND integrated to the Muon Shield
  • First version of MTC (SND/MTC) is introduced. Scint part is fully implemented, the Sci-Fi part is implemented in simplified version. Geometrical parameters of MTC are stored in geometry/MTC_config.yaml file
  • Added fibre structure for MTC and digitization. Fibre <-> SiPM mapping is done in SND/MTC/MTCDetector.cxx, can be extracted and tested in python/SciFiMapping.py, that is subsequently used in python/shipDigiReco.py
  • Add visualization methods to SciFiMapping.py to visualize Sci-Fi in MTC, including draw_channel(), draw_channel_XY(), and draw_combined_scifi_views()
  • First version of SND/SiliconTarget, this layout for this iteration consists of 120 3.5mm W planes with pairs of silicon planes placed 1mm from the surface of the tungsten. As a temporary solution, the detector is placed within the second last magnet of the muon shield. Configuration of detector in simScript is coupled to the SND_design == 2 along with the MTC.
  • SND/EmulsionTarget folder, with the Target and TargetTracker classes from nutaudet
  • New key for macro/run_simScript.py for choosing SND options is added: --SND_design
  • Support for multiple SND designs in simulation setup
    • The --SND_design option in macro/run_simScript.py now accepts multiple values and an 'all' option to enable all available SND designs.
    • The geometry configuration and detector setup (geometry/geometry_config.py, python/shipDet_conf.py) have been updated to instantiate all requested SND detectors.
    • This enables running with multiple SND subdetectors simultaneously and is future-proof for additional SND designs.
  • Added the hole for SND in the Muon Shield, that is created automatically if SND key is enabled (works so far for SND_design == 2)

Geometry and Target Station

  • Add June 2025 target configuration
  • Geometry: Make the tungsten target the default (Jun25 config)
  • Definition of Pressured Helium for the target, two version 200 Celsius degree and 90 Celsius degree.
  • Implement vacuum in target facility
  • Implement target helium vessel
  • Enclose target in steel (316L) cylinder
  • Add option for an additional sensitive plane around the target in run_fixedTarget
  • Implement proximity shielding design from 26/06/2025 by G. Humphreys
  • Added new warm muon shield warm_opt in geometry_config
  • Added new parameters to muon shield to support configurations from current optimisation campaign
  • Geometry_config.py: Added MS design New_HA_Design based on the MS warm_opt with new version of HA
  • Add (optional) MgB2 field map

Data Classes and I/O

  • Data classes now support ROOT RNtuple I/O
    All FairShip data classes (Hits, Points, Tracks, Particles) have been refactored for ROOT RNtuple compatibility. Changes include: public copy constructors, const-correct getter methods, replacement of TVector3 storage with std::array, and complete refactoring of ShipParticle to remove TParticle inheritance. Comprehensive RNtuple I/O tests verify all 20 data classes can be written to and read from RNtuple format.
  • Add RNtuple conversion and inspection utilities (macro/convertTreeToRNTuple.py, macro/inspect_tree_branches.py) for testing and validation. Note that FairRoot I/O currently uses TClonesArray which is not supported by RNtuple.
  • Add EventId and TrackID for MCTrack and HAPoint #944
  • Add ISTLPointContainer interface for STL-based detector track index updating
    Introduces ISTLPointContainer interface enabling polymorphic track index updating for detectors using std::vector storage. ShipStack now automatically detects and handles both STL-based and TClonesArray-based detectors, ensuring MC points maintain correct track references after track filtering. Also adds missing parameterised constructors to simpleTarget and exitHadronAbsorber.

Tools and Utilities

  • Add dedicated --print-fields and --check-overlaps flags to run_simScript.py to use these debug tools.
  • Add experimental script to compare histograms
  • Add experimental script to check overlaps quickly
  • Add CI job to run fixed target simulation (run_fixedTarget.py)
  • Added event_inspector class to experimental analysis_toolkit to streamline usage of helper functions; Added dump_event() as a start.
  • ShipBFieldMap: Added LOG info and fatal
  • Add backport for new TFile/TDirectory __get_item__ pythonisation

Detector Improvements

  • Add access to decoded numbers (stations, views etc.) of strawtubes hits
  • Add enough straws to cover aperture entirely
  • Add SST frame option (4 = aluminium, 10 = steel [default])
  • Add z-offset to FixedTargetGenerator
  • Add missing --FixedTarget option to run_simScript.py

Reconstruction

  • Added initial implementation for ACTS based track reconstruction. This iteration includes independent tracking geometries for SiliconTarget, MTC, and Strawtubes.

Changed

Data Structure Modernization

  • Migrate detector MC point storage from TClonesArray to std::vector
    Ten detector classes now use std::vector<PointType> instead of TClonesArray for storing MC simulation points. This modernises the codebase with standard C++ containers, improves type safety, and leverages FairRootManager::RegisterAny() for ROOT I/O. Affected detectors: TimeDet, UpstreamTagger, strawtubes, splitcal, veto, Target, TargetTracker, SiliconTarget, MTCDetector, and simpleTarget.
  • Migrate ShipStack MC track storage from TClonesArray to std::vector
    ShipStack now uses std::vector<ShipMCTrack> instead of TClonesArray for storing MC tracks written to output. This completes the migration of MC data storage to modern C++ containers and enables RegisterAny() for MCTrack I/O. Includes bounds checking in ShipAna.py for all MCTrack vector accesses to handle the stricter indexing behaviour of std::vector compared to TClonesArray.
  • Migrate Tracklet container in shipDigiReco from TClonesArray to std::vector
  • Complete migration from TClonesArrays to STL vectors for all detectors (timeDetector, muonDetector, vetoHitOnTrack, strawtubes, splitcal)
  • Modernise data classes by removing obsolete BOOST serialisation (Tracklet, vetoHitOnTrack, ShipHit, TrackInfo)
    • Replace BOOST serialisation with native ROOT 6 serialisation
    • Modernise Tracklet constructor to accept std::vector<unsigned int> indices
    • Update vetoHitOnTrack to use parameterised constructor in Python code
    • Add const correctness to TrackInfo accessor methods
    • Update Python code in shipDigiReco.py to use modern constructors
    • Bump ClassDef versions to 2 for schema evolution
    • Add TrackInfo to RNTuple I/O test suite

Physics and Simulation

  • Change GEANT4 Physics list from QGSP_BERT_HP_PEN to FTFP_BERT_HP_EMZ following GEANT4 team recommendation and studies by Hanae Tilquin presented at Nov. 2025 collaboration meeting and following software meetings.
  • J/psi are no longer decayed using Geant4 when using the --EvtGenDecayer option

Target Station Geometry

  • Target station geometry updated with nested volume approach
    Implemented tantalum cladding (1.5mm) around tungsten target layers using nested volumes instead of s...
Read more

25.01

Choose a tag to compare

@olantwin olantwin released this 30 Jan 15:06

Added

  • New analysis toolkit prototype added as part of the 'experimental' package.
  • Simple analysis example script now available in 'examples/'

Fixed

  • Use ConstructedAt + std::swap to replace removed pythonization for TCA
  • Octant symmetry was incorrect for B_z when using field maps (reported and fixed by M. Ferro-Luzzi)
  • Tof calculation corrected in GenieGenerator.cxx, wrong units previously used.
  • Genfit measurements now give the correct detector ID
  • Fix TEvePointSetPrintOut
  • Event Display: Fix drawing of MC and Geo tracks

Changed

Removed

  • Remove Millepede
  • Remove outdated example shipEvent_ex.py
  • Remove ALPACA generator

New Contributors

Full Changelog: 24.11...25.01

24.11

Choose a tag to compare

@olantwin olantwin released this 04 Nov 11:06

Release after first round of breaking changes. Requires CVMFS release ≥ 24.10.
Tagged for launch of background simulations.

Added

  • EventCalc LLP event generator
    This modification introduces a first implementation of the EventCalc decay
    event sampler in FairShip for inclusive final states. For further details,
    consult the dedicated presentation at the 30th SHiP CM
    here. See also #528.
  • Add a conversion script FairShip/macro/convertEvtCalc.py to convert the
    EventCalc output sampled kinematics (.dat) as input to the simulation script
    (.root). Remark: This will eventually become unnecessary when this
    conversion is implemented within the EventCalc tool itself.

Fixed

  • Fix missing includes in ecalMatch and ecalReco
  • Fix compilation warnings due to unused or uninitiliazed variables #481

Changed

  • shipStrawTracking: Move to argparse
  • CMake: Use external genfit2
  • shipStrawTracking, shipDigiReco, shipVertex: Make compatible with current genfit

Removed

  • Remove obsolete renaming scripts
  • Remove online, please see charmdet and muflux branches for respective versions
  • Remove charmdet, please see charmdet branch for latest version
  • Remove preshower and CaloDesign 1 (TP+Preshower)
  • Remove bundled genfit
  • Remove conditions DB, will almost certainly look different, copy in git
    history for reference

Full Changelog: 24.10...24.11

24.10 - Freiburg

Choose a tag to compare

@olantwin olantwin released this 03 Oct 22:38

Tag release to prepare for breaking changes. Last release to include charm
cross-section measurement code, and obsolete detector configurations.

Added

  • Add option for helium-filled decay volume
  • Add pre-commit config: This will be phased in to improve code quality and
    spot issues as early as possible. Status visible in README and CI enabled for
    new pull requests.
  • Add CHANGELOG.md
  • Add .git-blame-ignore-revs to allow automatic reformatting etc. without
    polluting git blame
  • Automatically built documentation using Doxygen
  • Add CODEOWNERS file to automatically trigger reviews by the relevant experts
  • Add different configuration files for vacuum /helium for the Decay Vessel
  • Add option to enable/disable SND

Fixed

  • Remove trailing whitespace and fix line endings
  • Fix compilation warnings due to deprecations #469
  • Fix issue with SST parameters #489
  • Cleaned up Veto Implementation
  • Fix crash of event display, PID when no entrance lid present
  • Close ShipReco.py output file
  • Remove unused (silently ignored!) argument for MuDISGenerator::SetPositions

Changed

  • Update getGeoInformation command line interface
  • Update SST geometry constants #483
  • Housekeeping: Use same clang-format and clang-tidy config as FairRoot
  • Decay Vessel configuration now imported from a yaml file
  • Geometry of Decay Vessel updated to new design
  • Housekeeping: Bump minimum CMake version to 3.12
  • Housekeeping: Use FairRoot's find_package2 to find ROOT, VMC, fmt
  • Housekeeping: Bump minimum ROOT version to 6.26
  • Housekeeping: Use find_package to find BOOST
  • Housekeeping: Set FairLogger dep instead of manual includes

Removed

  • Remove obsolete files related to old ways of installing or testing FairShip
  • Remove uses of future and past modules #473
  • Remove Geant3 dependency
  • Remove unimplemented event display functions (see #497)
  • Disable SND by default
  • Housekeeping: Don't use CMake commands no longer provided by FairRoot 19
  • Housekeeping: Remove old CMake for ROOT 5
  • Remove old, outdated tracking script

Pull requests predating CHANGELOG

New Contributors

Full Changelog: ECN3_2023...24.10

ECN3 2023

Choose a tag to compare

@olantwin olantwin released this 26 Jun 09:07

ECN3 geometry with 2023 updates, ready for new background productions for the proposal.

What's Changed

Full Changelog: ECN3_2022...ECN3_2023

ECN3 2022

Choose a tag to compare

@olantwin olantwin released this 25 Apr 09:03
482b813

Final ECN3 2022 version. Tagging so that we can work towards 2023 release.

Release notes (automatically generated by GitHub) very long since we haven't tagged a release in a few years.

What's Changed

Read more