LArSoft

Logo

Software for Liquid Argon time projection chambers

View My GitHub Profile

Breaking Changes

This is an attempt to track all the “breaking” changes which require associated updates to experiment code.

Changes for larsoft v06_xx_yy and previous

For ease of navigation, older breaking changes have been moved to Breaking Changes prior to v07_00_00

larsoft v09_77_00 - SpacePointSolver has new configurable parameter

See larreco PR 58

Add MinNHits parameter to SpacePointSolver.fcl. The default value of MinNHits is 20. This number was previously hardcoded in larreco/SpacePointSolver/SpacePointSolver_module.cc

larsoft v09_63_00 - remove deprecated code in larcorealg

larsoft v09_52_00 - larpandora built with cetmodules

larsoft v09_50_00 with cetmodules 3.12.00

larsoft v09_48_00 with wirecell v0_18_0

larsoft v09_43_00

mrb 5

When was committed: v09_31_00
Motivation: mrb 5 and cetbuildtools 8 are required when building with art 3.09 and later
Fix: Please see the Comments about mrb 5 and cetbuildtools 8 if you have problems.

Refactor EventWeight interface to GENIE v3

When was committed: v09_21_00
Motivation: Breaking changes were introduced in GENIE v3 which made the previous implementation of GenieWeightCalc incompatible. Slides here
Fix: See the technote

root v6_22_06a typo

When was committed: v09_16_00
Motivation: update larsoft to use art 3.06
Affects: user or experiment code
Failure when not fixed: Compilation errors or warnings.

In file included from /products/root/v6_22_06a/Linux64bit+3.10-2.17-e19-p383b-prof/include/TPaveStats.h:16,
                 from /home/garren/scratch/larsoft/uboone/srcs/ubana/ubana/Calibrations/Lifetime_module.cc:67:
/products/root/v6_22_06a/Linux64bit+3.10-2.17-e19-p383b-prof/include/TVirtualPaveStats.h:33:43: error: extra ‘;’ [-Werror=pedantic]
    virtual TObject *GetParent() const = 0;;
                                           ^
                                           -
cc1plus: all warnings being treated as errors

Fix: remove the -pedantic flag in the affected subdirectory

diff --git a/ubana/Calibrations/CMakeLists.txt b/ubana/Calibrations/CMakeLists.txt
index 9299a7dd..e2bad7c3 100644
--- a/ubana/Calibrations/CMakeLists.txt
+++ b/ubana/Calibrations/CMakeLists.txt
@@ -1,4 +1,6 @@

+cet_remove_compiler_flags(CXX -pedantic)
+
 add_subdirectory(Optical)

 art_make( BASENAME_ONLY

Contact: The Scisoft Team

larrecodnn new directory structure

When was committed: v09_13_00
Motivation: separate tf, keras, and trtis
Affects: user or experiment code (rarely)
Fix: run LArRecodnnNewDirs.sh
Contact: The Scisoft Team

Geometry configuration check

When was committed: v09_12_00
Motivation: nutools EventDisplayBase is now in nuevdb
Affects: user or experiment code
Failure when not fixed: Compilation or linking errors.
Fix: use feature/gp_issue24328
More information: larcore PR 6, #24328, and Geometry configuration check breaking change documentation
Contact: Gianluca Petrillo

larsoft v09_00_00

When was committed: v09_00_00
Contact: The Scisoft Team

Update to nutools v3_05_00 with nuevdb

When was committed: v08_36_00
Motivation: nutools EventDisplayBase is now in nuevdb
Affects: user or experiment code
Failure when not fixed: Compilation or linking errors.
Fix: run UseNuevdb.sh (found in nutools v3_05_00 or later)
Contact: The Scisoft Team

Using boost v1_70_0

When was committed: v08_36_00
Motivation: updated dependency from art
Affects: user or experiment code
Failure when not fixed: cmake and compilation errors
Fix: use cetbuildtools v7_14_00 or later
Contact: The Scisoft Team

Update to art v3_03_01

When was committed: v08_36_00
Motivation: Move from art v3_02 to art v3_03
Affects: user or experiment code
Failure when not fixed: Compilation or linking errors.
Fix: see the art series 3.03 page for art breaking changes
Contact: The Scisoft Team

Lengthen raw::RawDigit fSamples

When was committed: v08_35_01
Motivation: See https://indico.fnal.gov/event/22319/contribution/2/material/slides/0.pdf
Affects: Certain loops that did not use an explicit unsigned int.
Failure when not fixed: Compilation errors.

/home/garren/scratch/larsoft/v08_35_01/srcs/ubcore/ubcore/BurstNoiseMetrics/BurstNoiseMetrics_module.cc: 
In member function ‘virtual void BurstNoiseMetrics::produce(art::Event&)’:
/home/garren/scratch/larsoft/v08_35_01/srcs/ubcore/ubcore/BurstNoiseMetrics/BurstNoiseMetrics_module.cc:162:20: 
error: comparison between signed and unsigned integer expressions 
[-Werror=sign-compare]
    for(int k = 0; k < allrawdigits_vec.at(1).Samples(); k++){ 
//UberWaveform Calculations
                   ~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Fix:

-  for(int k = 0; k < allrawdigits_vec.at(1).Samples(); k++){   //UberWaveform Calculations
+  for(unsigned int k = 0; k < allrawdigits_vec.at(1).Samples(); k++){  //UberWaveform Calculations

Contact: The Scisoft Team

Removal of Calorimetry hard-coded values

When was committed: v08_33_00
Motivation: hard-coded values conflict with ICARUS detector (see issue #23457)
Affects: users of LArSoft Calorimetry module
Failure when not fixed: possible differences in calorimetry of badly reconstructed tracks
Fix: none needed; to restore the old behaviour, add to Calorimetry module configuration: NotOnTrackZcut: -100.0
Contact: Gianluca Petrillo

artdaq_core calls clock_gettime

When was committed: v08_31_00
Motivation: Use artdaq_core 3.05.02
Affects: Any user code that builds with artdaq_core v3_05_00 or later.
Failure when not fixed: Compilation or linking errors.
Fix: link with ${ARTDAQ-CORE_UTILITIES}, which is defined in artdaq_coreConfig.cmake
Contact: The Scisoft Team

macOS missing TGX11

When was committed: v08_31_00
Motivation: new release of root to resolve an I/O rule problem
Affects: user code initializing X11 graphics on macOS.
Failure when not fixed: Compilation or linking errors.


    /Users/macdev/workspace/build-larsoft/BUILDTYPE/debug/QUAL/s91-c2/label1/swarm/label2/OSX-10.14/build/larpandora/v08_07_17-buildFW/src/larpandora/RootGraphics/RootGraphicsEnabler.cxx:24:10: fatal error: 'TGX11.h' file not found
    #include "TGX11.h" // this header currently triggers a compiler error,
             ^~~~~~~~~
    1 error generated.

Fix:
With root v6_18_xx, macOS builds must use the native macOS COCO graphics interface.
Use the root generic graphics initialization instead of explicit X11 initialization.


    @@ -17,7 +17,6 @@
     #include "TApplication.h"
     #include "TRootApplication.h"
     #include "TGClient.h"
    -#include "TGX11.h"
     #include "TRint.h"
     #include "TSystem.h"
     #include "TSysEvtHandler.h"
    @@ -50,9 +49,7 @@ namespace evdb{
         else {
           gROOT->SetBatch(kFALSE);
           if (gClient==0) {
    -       gSystem->Load("libGX11.so");
    -       gVirtualX = new TGX11("X11","X11 session");
    -       new TGClient(getenv("DISPLAY"));
    +        app->InitializeGraphics();
           }
         }

Contact: The Scisoft Team

root IO rules

code cleanup

When was committed: v08_28_01
Motivation: remove unnecessary headers and link time libraries
Affects: user code
Failure when not fixed: Compilation or linking errors.
Fix:
Add appropriate headers to the code. It may also be necessary to add libraries to the cmake link list. If available, use feature/knoepfel_rm_unused_headers.

genie v3_00_06

When was committed: v08_28_00
Motivation: upgrade to genie v3_00_06.
Affects: user code using GENIE.
Failure when not fixed: Compilation or linking errors.
Fix:
Run UseGenie3.sh (found in nugen v1_03_00 and later). This script will update the headers.
There is NO one-to-one mapping from genie v2 libraries to genie v3 libraries. Please use the provided feature branch, feature/team_for_v08_28_00.
The genie_xsec qualifiers have also changed.

nutools v3_02_00

When was committed: v08_27_00
Motivation: separate GEANT4 interface from the rest of nutools.
Affects: user code using G4Base, MagneticField, and ParticleNavigation.
Failure when not fixed: Compilation or linking errors.
Fix:
Run UseNuG4.sh and add find_ups_product(nug4) to the top level CMakeLists.txt file.
The migration assistants is available after a setup of nutools v3_02_00 or later.
Contact: The Scisoft Team

nutools v3_00_00

When was committed: v08_22_00
Motivation: separate GENIE interface from the rest of nutools. Also split NuRandomService into its own package.
Affects: user code calling GENIEHelper and NuRandomService.
Failure when not fixed: Compilation or linking errors.
Fix:
For packages using NuRandomService, run UseNuRandom.sh
For packages using GENIE, run UseNuGen.sh
Both migration assistants are available after a setup of nutools v3_00_00 or later.
Contact: The Scisoft Team

New PhotonVisibilityService features

When was committed: v08_15_00
Motivation: allow exploitation of detector symmetries to reduce the size of the photon visibility libraries.
Affects: user code calling phot::PhotonVisibilityService, plus code using some more hidden LArSoft utility for managing voxelized volumes.
Failure when not fixed: Compilation or linking errors.
Fix: Several different cases are possible. Please see the additional material slides in the presentation of the new feature at LArSoft coordination meeting on April 9, 2019 .
Contact: Gianluca Petrillo

Remove deprecated members and methods from recob::Track

When was committed: v07_12_00

New recob::Track interface introduced in early 2017. This came with the deprecation of several outdated features. In many cases such features were maintained for backwards compatibility: dQ/dx (fdQdx data member, NumberdQdx and DQdxAtPoint methods), NumberFitMomentum method, various methods based on TVector3 or TMatrixD, old constructors. After almost 2 years it’s time to cleanup the interface from the old junk (indeed all those concepts are not actively used anymore, still they are present in a large fraction of the larsoft code)

Failure when not fixed: Compilation error.

Fix:

Several different cases are possible. Please see this presentation for an overview and a list of the most common changes.

Contact: The Scisoft Team