Uboonecode Subpackages

Here are the uboonecode subpackages, listed in approximate dependency order (low to high).


The following packages that existed before splitting uboonecode are also part of the "uboone suite."


Each of the above packages will have the following attributes.

  • Redmine project.
  • Git repository.
  • Ups product.

Uboonecode remains the top level ups product, in the sense that setting up uboonecode will set up all of the others. The above thirteen packages constitute the "uboone suite."

Where is code moving?

The following table shows which packages various pieces of the unsplit uboonecode are moving to.

Original Split package
Art data products ubobj
uboonecode/ubooneobj ubobj
uboonecode/uboone/AnalysisTree ubana
uboonecode/uboone/BeamAna ubraw
uboonecode/uboone/BeamDAQ ubraw
uboonecode/uboone/BeamData ubraw
uboonecode/uboone/BurstNoiseMetrics ubcore
uboonecode/uboone/CalData ubevt
uboonecode/uboone/Calibrations ubana
uboonecode/uboone/ChargedTrackMultiplicity ubana
uboonecode/uboone/CosmicTagging ubana
uboonecode/uboone/CRT ubcrt
uboonecode/uboone/Database ubevt
uboonecode/uboone/DataOverlay ubevt
uboonecode/uboone/DetSim ubsim
uboonecode/uboone/DLFilters ubcore
uboonecode/uboone/DQMTools ubcore
uboonecode/uboone/EventGenerator ubcore
uboonecode/uboone/EventWeight ubsim
uboonecode/uboone/Geometry ubcore
uboonecode/uboone/LArCVImageMaker ubcv
uboonecode/uboone/LArG4 ubsim
uboonecode/uboone/LiteMaker ublite
uboonecode/uboone/LEEPhotonAnalysis ubana
uboonecode/uboone/LLApp ubana
uboonecode/uboone/LLBasicTool ubcore
uboonecode/uboone/LLSelectionTool ubana
uboonecode/uboone/MichelReco ubreco
uboonecode/uboone/MicroBooNEPandora ubreco
uboonecode/uboone/MicroBooNEWireCell ubana
uboonecode/uboone/MuCS ubreco
uboonecode/uboone/OpticalDetectorAna ubana
uboonecode/uboone/OpticalDetectorSim ubsim
uboonecode/uboone/PatternFilter ubana
uboonecode/uboone/PhotonPropagation ubsim
uboonecode/uboone/QuietEventFilter ubcore
uboonecode/uboone/RawData ubraw
uboonecode/uboone/Simulation ubsim
uboonecode/uboone/SNStreamSim ubsim
uboonecode/uboone/SpaceCharge ubevt
uboonecode/uboone/SpaceChargeServices ubevt
uboonecode/uboone/T0Reco ubreco
uboonecode/uboone/TriggerSim ubcore
uboonecode/uboone/TPCNeutrinoIDFilter ubana
uboonecode/uboone/UBFlashFinder ubreco
uboonecode/uboone/UBXSec ubana
uboonecode/uboone/Utilities ubevt

Uboone Suite

The subpackages listed in the above table, plus uboonecode, ubutil, and uboonedata, (total thirteen packages) constitute the "uboone suite" of packages. You can check out all thirteen packages at once using mrb by checking out pseudo-package "uboone_suite."

mrb g uboone_suite [-b branch] [-t tag]

When the uboone suite of packages are built for a release, in addition to the standard tags, each uboone suite package will receive a suite tag of the form "UBOONE_SUITE_vxx_yy_zz," where "vxx_yy_zz" is the uboonecode version. If you specify a tag option when checking out uboone_suite, mrb will convert the specified tag to the suite tag by adding the string "UBOONE_SUITE_" in front.

Building/installing uboonecode releases using buildFW

This section intended for release managers, and people who may want to install a full release at non-Fermilab institutions. Note that it is still possible to build uboone suite packages using mrb.

Here are instructions for how to biuld and/or install uboonecode releases (including all required subpackages and dependent ups products) using "buildFW."

First download a copy of the buildFW script from scisoft. Make it executable and install it on your execution path.

To build or install a release for which a build configuration is available on scisoft, run the following command in a new shell (do not set up the MicroBooNE environment or ups).

$ buildFW -b <basequal> -s <setqual> <products-dir> <build-type> <bundle-spec>

The arguments are as follows:

  • <basequal> - Base qualifier (the "e" qualifier, e.g. e15).
  • <setqual> - Set qualifier (the larsoft "s" qualifier, e.g. s68).
  • <products-dir> - The directory where built products should be installed (ups products area).
  • <build-type> - debug or prof.
  • <bundle-spec> - uboone-vxx_yy_zz (e.g. uboone-v06_81_00).

If you want to build a version of uboonecode for which there is no preinstalled build configuration on scisoft, the above command can still be used. Put your hand-crafted build configuration in <products-dir>. A build configuration is a single text file with a name like uboone-cfg-xx.yy.zz (e.g. uboone-cfg-06.81.00).

Information about available versions, base qualifiers, and set qualifiers is available on the scisoft distribution directories for larsoft and MicroBooNE.

Merging Branches from Uboonecode

Branches from the unsplit version uboonecode can be merged into subpackages of uboonecode. This type of merging process may result in oddities compared to a standard merge. There may be more conflicts than normal. Added files may appear in the wrong place. Removed files may show up as having been added again. Nevertheless, merging from the old uboonecode is possible. Here are some tips.

First, add a remote pointing to the uboonecode repository. Use a name other than "origin."

$ git remote add unsplit ssh://
$ git fetch unsplit

It is recommended to use option "--no-commit" with "git merge."

$ git merge --no-commit unsplit/<branch>

Carefully review updates produced by the merge. Resolve any conflicts. Finish with "git commit."

$ git commit

It is also possible to cherry pick individual commits or ranges of commits in the usual way from the unsplit uboonecode repository (after adding it as a remote).

$ git cherry-pick <revision>
$ git cherry-pick <revision1>..<revision2>