Back to home page

EIC code displayed by LXR

 
 

    


Warning, /jana2/docs/Download.md is written in an unsupported language. File is not indexed.

0001 # Download
0002 
0003 ### Latest master (unstable)
0004 
0005 - `git clone https://github.com/JeffersonLab/JANA2/`
0006 
0007 ### Latest release
0008 
0009 - `git clone --branch latest_release https://github.com/JeffersonLab/JANA2`
0010 - [See release on GitHub](https://github.com/JeffersonLab/JANA2/tree/latest_release)
0011 - [See online documentation](https://jeffersonlab.github.io/JANA2/)
0012 - [See online doxygen documentation](https://jeffersonlab.github.io/JANA2/refcpp/)
0013 
0014 ### 2026.01.00
0015 
0016 This release brings a couple of exciting new features along with some important bugfixes. The big JFactory/JDatabundle refactoring is
0017 finally complete, and the bugs that it introduced in v2.4.3 are fixed. We are hoping that this release will be sufficient for merging 
0018 EICrecon's timeframe splitter. This release is also notable for being our first release that uses calendar versioning, which hopefully 
0019 matches our workflow better.
0020 
0021 #### Bugfixes
0022 
0023 - Fix problems with `Input` and `Output` tags introduced in v2.4.3 (PR #464)
0024 - Use of deprecated `operator->()` on podio collections (PR #477)
0025 - Template instantation error with podio LinkCollections (PR #462)
0026 - Stringify array and vector parameters consistently with primitives (PR #457)
0027 
0028 #### Features
0029 
0030 - Extend support for external wiring to include non-JFactory components (PR #476, #473)
0031 - Add support for preserving the original event ordering with multithreading enabled (PR #472)
0032 - Add support for multilevel event sources (PR #467)
0033 
0034 #### Refactoring
0035 
0036 - Podio-collection-producing factories no longer inherit from JFactoryT (PR #460, #479)
0037 - Removed obsolete `Streaming/` code (PR #468)
0038 
0039 #### Examples
0040 
0041 - Example: Hit reconstruction (PR #470)
0042 - Example: Protoclustering (PR #469)
0043 
0044 ### 2.4.3
0045 
0046 #### Behavior changes
0047 
0048 - JHasOutputs represents variadic output names as `std::vector<std::vector<std::string>>`, which now allows for multiple variadic outputs with arbitrary lengths (Pull request #458)
0049 
0050 - Removed the never-used JEventProcessorSequential and JEventProcessorSequentialRoot. All their functionality has been backported to JEventProcessor. (Pull request #456)
0051 
0052 - JInspector is now launched using the parameter `jana:inspect=true` instead of the command-line argument `--interactive`, which works regardless of which executable runs JANA. (Pull request 459)
0053 
0054 #### Bugfixes
0055 
0056 - Relax JFactory::Create cycle detector for the sake of JEventSourceEVIOpp (Pull request #461)
0057 
0058 - Fix JFactoryPodioT template error when using Podio LinkCollections (Pull request #462)
0059 
0060 - JEventUnfolder erroneously inserted outputs even though KeepChildNextParent was returned (Pull request #458)
0061 
0062 - JEventUnfolder supports parent events with zero children (Pull request #456)
0063 
0064 - JTopologyBuilder creates a chain of TapArrows so that independent JEventProcessors can be pipelined, allowing new-style JEventProcessors to have comparable performance to the old-style ones. (Pull request 456)
0065 
0066 #### Features
0067 
0068 - Variadic inputs now support an EmptyInputPolicy, which allows components to optionally retrieve all databundles/collections for a given type and EventLevel, analogous to JEvent::GetFactoryAll(). (Pull request #454)
0069 
0070 #### Usability improvements and refactoring
0071 
0072 - Improve the JANA tutorial and examples by creating a new paradigm, in which a toy reconstruction codebase is systematically built up piece-by-piece. Two versions exist, one using a lightweight (GlueX-style) datamodel, and the other using a Podio datamodel. Apart from the datamodel choice, the two versions are functionally identical. (Pull request #453)
0073 
0074 - Improve debugging by having the JANA1-style JEvent::GetSingle directly throw a JException instead of a size_t, thereby producing a full stack trace (Pull request #461)
0075 
0076 - Renamed JEventProcessor::Process(const JEvent&) to ProcessSequential to reduce user confusion (Note that this feature was experimental and unused up until now) (Pull request #456)
0077 
0078 - JTopologyBuilder::connect() wires arrows using port id instead of port index, reducing confusion while manually configuring topologies. (Pull request #456)
0079 
0080 - JFactoryT uses JDatabundle under the hood, as part of a deeper long-term refactoring. (Pull request #458, Issues #254, #276)
0081 
0082 ### 2.4.2
0083 
0084 #### Behavior changes
0085 - `jana:max_inflight_events` now defaults `nthreads` regardless of whether `nthreads` was explicitly set. Previously it defaulted to 4 when `nthreads` was unset, and otherwise defaulted to `nthreads`. (Issue #443)
0086 - `JEventSource::GetEventCount()` is deprecated and replaced by `GetSkippedCount()`, `GetEmittedEventCount()`, and `GetProcessedEventCount()`. These behave intuitively when `nskip` is used. (Issue #428)
0087 
0088 #### Features
0089 - Added `jana:output_processed_event_numbers` parameter to assist with debugging (Issue #425)
0090 - Ported `janaroot` plugin from JANA1
0091 - JFactory detects and excepts on cycles (Issue #423)
0092 - Improved scale test visualizations, including plotting multiple scaling tests on the same plot and supporting log scaled axes.
0093 
0094 #### Bugfixes
0095 - Missing template argument in VariadicPodioOutput
0096 - JEvent was being marked as warmed up prematurely
0097 - JAutoactivator was being called last instead of first (Issue #440)
0098 - If the user attempted to run without providing a JEventSource, processing would crash with an ArithmeticException instead of a helpful error message (Issue #437)
0099 - `JEventSource::FinishEvent()` was being called spuriously (Issue #424)
0100 
0101 #### Refactoring
0102 - Preliminary support for random-access JEventSources is provided via `JEventSource::Skip()`. This feature should be considered experimental for now because it doesn't work with barrier events yet. (Issue #422)
0103 
0104 ### 2.4.1
0105 
0106 This release enables CCDB caching, significantly improving performance and reducing memory usage for applications that frequently access calibration constants.
0107 
0108 ### 2.4.0
0109 
0110 #### Features
0111 
0112 - Externally wired factories using `JWiredFactoryGenerator` (#399, #400)
0113 
0114 #### Bugfixes
0115 
0116 - Fix parameter strictness check (#394)
0117 - Fix Podio deprecation warnings (#389)
0118 - Fix ODR violation (#396)
0119 - Fix `JFactory::Create()` logic (#383)
0120 - Fix `JEventProcessor` deletion order (#391)
0121 - Fix double-free in `JLockService` destructor (#388)
0122 
0123 #### Refactoring
0124 
0125 - Migrate `JStreamLog` uses to `JLogger` (#390, #395, #398)
0126 - Reorganize and deprecate `Compatibility/` headers (#392, #397)
0127 - Refactor arrow execution machinery (#385, #387, #393)
0128 
0129 ### 2.3.3
0130 
0131 #### Bugfixes
0132 * Fix problem with user-defined factory generators (#366)
0133 * JEventProcessor::Process() called before BeginRun() (#367)
0134 * Lock overwrite in RootFillLock() (#369)
0135 * JFactory::Finish() is called (#377)
0136 
0137 #### Features
0138 * JTopologyBuilder supports topologies with arbitrarily nested levels (#346)
0139 * Barrier events are back (#371)
0140 
0141 #### Refactoring
0142 * Improved log output (#368)
0143 * JTest uses new-style component interfaces (#374)
0144 * JArrows now fire on individual events (#375, #378)
0145 
0146 - [See release on GitHub](https://github.com/JeffersonLab/JANA2/releases/tag/v2.3.3)
0147 
0148 ### 2.3.2
0149 This release includes the following:
0150 
0151 #### Features
0152 - Added a simple `JWiringService` which can be used to wire `JOmniFactories` via a TOML file. (#353, #363)
0153 - Added `add_jana_plugin`, `add_jana_library`, and `add_jana_test` CMake macros (#364)
0154 
0155 #### Bugfixes
0156 - A multithreading bug in `JEventProcessor` has been fixed.
0157 - `JFactory::Create` now checks `JEventSource::GetObjects` (#361)
0158 - `JPluginLoader` no longer loads plugins twice in certain cases (#343)
0159 - `JParameterManager::FilterParameters` marks parameters as 'used', thereby avoiding spurious 'unused parameter' warnings. (#331)
0160 - `JTypeInfo::to_string_with_si_prefix` generates the correct SI prefix in certain cases (#348)
0161 
0162 #### Refactoring
0163 - Plugins and their headers are now installed to a directory that doesn't conflict with a system install (#330)
0164 - `JPluginLoader` has been extensively rewritten (#339)
0165 - `JCsvWriter` has been moved into `examples` (#350)
0166 - JANA's internal performance testing RNG has been refactored to be more reproducible, and to avoid ASAN violations. (#315)
0167 - `JPodioExample` has been split into several reusable examples. (#352)
0168 - Code was moved from `Omni` and `Status` into `Components`, making the layered architecture clearer (#351)
0169 - Documentation has been overhauled, including adding an extensive JANA1-to-JANA2 migration guide (#334, #336, #342, #354, #357, #359)
0170 - CI testing has been extended (#332, #341)
0171 
0172 #### Behavior changes:
0173 - JANA now has one internal logger, configurable via the `jana:loglevel` parameter. External loggers are now configurable via the `jana:global_loglevel` parameter.
0174 - Log output has been streamlined: oversized tables are now YAML, and essential information is now logged at `WARN` level. (#362)
0175 - `JPluginLoader` now stops when a plugin fails to load, rather than continuing searching for another plugin with the same name.
0176 - `JPluginLoader` no longer accepts paths as part of a valid plugin name
0177 - `JFactorySet` is no longer silent when the user attempts to include duplicates of the same factory (#343)
0178 - `JMetadata` is deprecated, to be replaced with `JMultifactory`. (#345)
0179 - All `JFactories` now call `JEventSource::GetObjects`, not just `JGetObjectsFactory`. (#361)
0180 
0181 - [See release on GitHub](https://github.com/JeffersonLab/JANA2/releases/tag/v2.3.2)
0182 - [See online doxygen documentation](http://www.jlab.org/JANA/jana_doc_2.3.1/index.html)
0183 - [Download doxygen documentation](http://www.jlab.org/JANA/jana_doc_2.3.1.tar.gz)
0184 
0185 ### 2.3.1
0186 This release fixes a bug which caused the `janadot` plugin to stop producing output. It also drops support for Podio <= 00-17 by replacing the user-provided `PodioTypeMap` with the built-in `PodioT::collection_type`. 
0187 
0188 - [See release on GitHub](https://github.com/JeffersonLab/JANA2/releases/tag/v2.3.1)
0189 - [See online doxygen documentation](http://www.jlab.org/JANA/jana_doc_2.3.1/index.html)
0190 - [Download doxygen documentation](http://www.jlab.org/JANA/jana_doc_2.3.1.tar.gz)
0191 
0192 ### 2.3.0 
0193 - [See release on GitHub](https://github.com/JeffersonLab/JANA2/releases/tag/v2.3.0)
0194 - [See online doxygen documentation](http://www.jlab.org/JANA/jana_doc_2.3.0/index.html)
0195 - [Download doxygen documentation](http://www.jlab.org/JANA/jana_doc_2.3.0.tar.gz)
0196 
0197 ### JANA 1
0198 
0199 - JANA 1 is deprecated but still in use with projects such as GlueX.
0200 - [JANA 1 homepage](https://www.jlab.org/JANA/)
0201 - [JANA 1 repo](https://github.com/JeffersonLab/JANA)
0202 
0203