Warning, /eic.github.io/_posts/2020-07-31-software-news.md is written in an unsupported language. File is not indexed.
0001 ---
0002 title: Software News July
0003 author: Markus Diefenthaler
0004 layout: default
0005 symbol: glyphicon-calendar
0006 until: 2020-12-31
0007 ---
0008 <p/>
0009
0010 {% include images/image.md name='news_banner' width='800' %}
0011
0012 The Software Working Group is working on physics and detector
0013 simulations that enable a quantitative assessment of the measurement
0014 capabilities of the EIC detector(s) and their physics impact for the
0015 Yellow Report Initiative. The common simulation tools and workflow
0016 environment being set up by the working group allow the EICUG to
0017 pursue the Yellow Report studies in a manner that is accessible,
0018 consistent, and reproducible.
0019
0020 ## Table of contents
0021
0022 * [General Update](#swg)
0023 * [Communication](#communication)
0024 * [Expression of Interest on Software](#eoi)
0025 * [GitHub for the EICUG](#github)
0026 * [Support us to support you better](#support)
0027 * [Tutorials](#tutorials)
0028 * [Workshop on “Machine Learning for Particle Physics Experiments"](#workshop)
0029 * [Software Update](#update)
0030 * [Eic-smear](#eicsmear)
0031 * [EicToyModel](#eictoymodel)
0032 * [ESCalate](#escalate)
0033 * [Fun4All](#fun4all)
0034
0035 ---
0036
0037 ## General Update {#swg}
0038
0039 ### Communication {#communication}
0040
0041 The Software Working Group will start to announce software updates,
0042 known bugs, and other software related news on the
0043 [eicug-software@eicug.org](mailto:eicug-software@eicug.org) mailing
0044 list. While summaries will be provided in our
0045 Software News, we encourage all working groups to subscribe to
0046 [eicug-software@eicug.org](mailto:eicug-software@eicug.org).
0047
0048 ### Expression of Interest on Software {#eoi}
0049
0050 The Software Working Group is coordinating an [Expression of
0051 Interest](https://www.bnl.gov/eic/EOI.php) on Software. In the
0052 Expression of Interest, we would like to leverage everyone’s
0053 experience to define requirements for EIC Software and identify common
0054 software projects based on these requirements. Examples for common
0055 software in the community are ACTS, DD4hep, Gaudi, Geant4, JANA2,
0056 Jupyter, or ROOT. Our Expression of Interest on Software will cover
0057 all components of EIC Software: Simulation, reconstruction, physics
0058 analyses, streaming readout, online monitoring, etc., and will include
0059 the emerging technologies of Artificial Intelligence and Quantum
0060 Computing. As a next step, we invite you to a [meeting on Thursday,
0061 September 3](https://indico.bnl.gov/event/9170/).
0062
0063 ### GitHub for the EICUG {#github}
0064
0065 [https://github.com/eic](https://github.com/eic) is available for the
0066 whole EICUG. For membership, please send your GitHub username to
0067 [eicug-computing-infrastructure-support@eicug.org](mailto:eicug-computing-infrastructure-support@eicug.org?subject=GitHub%20Account). We
0068 encourage you to share your software and documentation on
0069 [https://github.com/eic](https://github.com/eic). Please follow
0070 {% include navigation/pagelink.md folder=site.software name='github' tag='our guidelines' %} in doing so.
0071
0072 ### Support us to support you better {#support}
0073 The common simulation tools and workflow environment can only grow
0074 with user input. The Software Working Group asks interested
0075 users to join our support team to ensure fast response to user
0076 requests. This is an ideal opportunity to learn more about the
0077 software and its development.
0078
0079 ### Tutorials {#tutorials}
0080 The tutorials for fast and detector full simulations are available on the [EICUG YouTube channel](https://www.youtube.com/channel/UCXc9WfDKdlLXoZMGrotkf7w). The next tutorials will be on Monte Carlo Event Generators (MCEGs):
0081
0082 * **August 17** Pythia 8 (Stefan Prestel (LUND))
0083 * **August 18** MC-data comparisons with Rivet (Christian Bierlich (LUND))
0084 * **August 19** Herwig 7 (Simon Plaetzer (Vienna))
0085 * **August 20** Sherpa 2 (Stefan Hoeche (FNAL))
0086
0087 Details will be shared on the [Indico site for the MCEG tutorials](https://indico.bnl.gov/event/9153/).
0088
0089 <img src="{{ '/assets/images/tutorials/SWG-Tutorials.png' | relative_url }}" width="500"/>
0090
0091 ### Workshop on “Machine Learning for Particle Physics Experiments” {#workshop}
0092
0093 The first joint GlueX-PANDA-EIC workshop will take place September
0094 21-15 2020. The online meeting on “Machine Learning for Particle
0095 Physics Experiments” will consist of 3 to 4 lectures a day each 45
0096 minutes long. The workshop aims both at beginners in Machine Learning
0097 and more experienced software developers. Longer sessions for
0098 questions and discussions at the beginning and the end of each working
0099 day are foreseen. A tentative agenda can be found at the [Indico page
0100 of the workshop](https://indico.gsi.de/event/10576). Registration is
0101 free and encouraged.
0102
0103 ---
0104
0105 ## Software Update {#update}
0106 In the July Software News, updates on eic-smear, EicToyModel, ESCalate, and Fun4All are included.
0107
0108 ### Eic-smear {#eicsmear}
0109 The [master branch](https://github.com/eic/eic-smear)
0110 is now updated to version 1.1.0 and is rolling out on farms now.
0111
0112 This update introduces major updates and changes:
0113
0114 * If cmake finds a HepMC3 installation or is supplied one with the
0115 ```-DHepMC3``` flag, BuildTree() now supports HepMC2 and HepMC3 input
0116 files, using heuristics to determine the scattered electron and the
0117 virtual boson.
0118 * ```BuildTree()``` now also supports gzipped input files, removing the need
0119 to unzip or the need to keep the six times larger ASCII output from
0120 generators.
0121 * By default, eic-smear now enforces strict consistency. No acceptance
0122 overlaps are allowed, and all smeared particles need theta, phi
0123 information. This behavior can be turned off using
0124 ```detector.SetLegacyMode(true)```, but that should be used only for
0125 backward compatibility.
0126 * Smeared particles now have a collection of flags to test whether a
0127 specific property is smeared.
0128 * With these changes, the previously dysfunctional capability to smear
0129 pT and pz is restored.
0130 * A ROOT wrapper now can load the required libraries and display
0131 version and location information. A translation table allows using a
0132 detector specified with a text string.
0133
0134 #### Eic-smear Detectors
0135 The detector scripts including test and example code are provided in
0136 their own [repository](https://github.com/eic/eicsmeardetectors). This
0137 repository now also creates a separate library to use with compiled
0138 code.
0139
0140 The ```MATRIX``` parameterizations are derived from the [interactive
0141 Detector Matrix](https://physdiv.jlab.org/DetectorMatrix/) and
0142 represent the detector parameterizations by the Detector Working
0143 Group. In the currently available version, only information about the
0144 central detector but not yet the far-forward detectors are
0145 available. By request from various working groups, an interim
0146 parametrization, ```MATRIXFF```, is provided that combines the
0147 ```MATRIX``` parameterizations with first information on the
0148 far-forward detectors (ZDC, B0, and Roman Pots). This information is
0149 available for a few beam energies only. When using the ```MATRIXFF```
0150 parameterizations, the beam energy has to be specified as a second
0151 parameter. An example is given here:
0152
0153 ```
0154 $ eic-smear
0155 eic-smear [0] BuildTree("ep_hiQ2.20x250.small.txt.gz")
0156 eic-smear [1] SmearTree(BuildByName("MATRIXFF",275),"ep_hiQ2.20x250.small.root")
0157 //compared to:
0158 //eic-smear [2] SmearTree(BuildByName("MATRIX"),"ep_hiQ2.20x250.small.root"))
0159 ```
0160 Please see the [README](https://github.com/eic/eicsmeardetectors/blob/master/README.md) for details.
0161
0162 ---
0163
0164 ### EicToyModel {#eictoymodel}
0165
0166 The [EicToyModel software suite](https://github.com/eic/EicToyModel)
0167 was recently added to the EIC Software collection. This compact
0168 ROOT-based C++ library was developed for EIC Central Detector
0169 configuration purposes, with a goal to synchronize the detector layout
0170 description in various Yellow Report related activities, GEANT4
0171 simulations in particular.
0172
0173 The tool allows users to create various EIC detector configuration
0174 templates (namely, the self-consistent collections of 3D sub-detector
0175 integration volumes), visualize and share the models, and ultimately
0176 make use of them in the GEANT4 simulation environment. An extensive
0177 [README](https://github.com/eic/EicToyModel/blob/master/README.md)
0178 with several usage examples is provided. Interfaces to the EIC
0179 simulation frameworks ESCalate and Fun4All still needs to be
0180 finalized.
0181
0182 ---
0183
0184 ### ESCalate {#escalate}
0185
0186 #### ESCalate v1.1.0
0187
0188 ESCalate version 1.1.0 has been released. It includes JANA v2.0.3, eJANA v1.2.3, g4e v1.3.5, and many other software packages as listed in the [software version table](https://gitlab.com/eic/containers).
0189
0190 For the new release, the instructions for getting started with ESCalate have been simplified. You can run ESCalate:
0191
0192 1. [on your local machine using Docker](https://gitlab.com/eic/escalate/smear/-/blob/master/simple_instruction_docker.md)
0193 2. [at the labs (or also locally) using Singularity](https://gitlab.com/eic/escalate/smear/-/blob/master/simple_instruction_singularity.md)
0194 3. [in a native build at Jefferson Lab](https://gitlab.com/eic/escalate/smear/-/blob/master/simple_instruction_ifarm.md)
0195 4. [in your browser using JupyterLab](https://gitlab.com/eic/escalate/workspace/-/blob/master/RemoteWork.md)
0196
0197 You can also try out ESCalate without any installation on [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gl/eic%2Fescalate%2Fworkspace/master).
0198
0199 #### Spack and CVMFS central installation
0200
0201 The Software Working Group has started to test [Spack as a package
0202 manager for the EIC](https://github.com/eic/eic-spack). Spack is
0203 open-source software that [enables and automates the deployment of
0204 multiple versions of a software package to a single
0205 installation](https://www.alcf.anl.gov/support-center/training-assets/software-deployment-spack). In
0206 the Software News of the next months, we will share more details on
0207 Spack for the EIC. For ESCalate, Spack packages are in a beta stage
0208 but already [very convenient to
0209 use](https://github.com/eic/eic-spack). The packages are installed on
0210 ```/cmvfs/eic.opensciencegrid.org/packages/``` and available at the
0211 labs but can be also installed locally.
0212
0213 #### Calorimeter updates in g4e and eJANA
0214
0215 For the calorimeter studies in ESCalate, a new wall standing
0216 calorimeter algorithm has been introduced. The ```Islreco``` reconstruction
0217 algorithm has been used extensively in the Segmented Large X baryon
0218 Spectrometer (SELEX) at Fermilab and the PrimEx-II and PrimEx-D
0219 experiments at Jefferson Lab. In this algorithm, island method
0220 clusterization is combined with common reconstruction algorithms. The
0221 ```Islreco``` algorithm can be used for hybrid calorimeters and has many
0222 helpful features, e.g., the (x,y) coordinates from tracking can be
0223 used for or better cluster separation.
0224
0225 <img src="{{ 'assets/images/software/escalate/2020-08-12-ecal-hit.png' | relative_url }}" style="height:250px; align:center;">
0226
0227 ---
0228
0229 ### Fun4All {#fun4all}
0230
0231 The macros were reorganized to disentangle the various large detector concepts. The macros which set up the subsystems for the [EIC detector based on the Babar magnet](https://github.com/eic/fun4all_macros/tree/master/common) and for other [EIC detector implementations](https://github.com/eic/fun4all_eicmacros/tree/master/common) were moved into separate areas. They are installed during the build and are available via the ROOT_INCLUDE_PATH (just like any other include). The advantage of this setup is that detector systems can now share these subsystems without having to copy those macros locally. Development is done locally - the local macro takes precedence over the installed macro.
0232
0233 Why should you care?
0234
0235 This makes it much easier to set up your own complete eic detector with components of your choosing (but you are responsible that they fit - better run with overlap check for the first time). We have a handful of pre-defined configurations, all using the proper scalable fieldmaps or constant solenoidal field:
0236 * [All Silicon Tracker inside the Babar magnet](https://github.com/eic/fun4all_eicmacros/tree/master/detectors/AllSilicon)
0237 <img src="{{ '/assets/images/software/fun4all/2020-july/allsilicon.png' | relative_url }}" width="200"/>
0238 * [Beast Magnet](https://github.com/eic/fun4all_eicmacros/tree/master/detectors/Beast)
0239 <img src="{{ '/assets/images/software/fun4all/2020-july/beast_template.png' | relative_url }}" width="200"/>
0240 * [Partial JLeic](https://github.com/eic/fun4all_eicmacros/tree/master/detectors/JLeic)
0241 <img src="{{ '/assets/images/software/fun4all/2020-july/jleic.png' | relative_url }}" width="200"/>
0242 * [LANL Barrel+Forward](https://github.com/eic/fun4all_macros/tree/master/detectors/EICDetector)
0243 <img src="{{ '/assets/images/software/fun4all/2020-july/lanl.png' | relative_url }}" width="200"/>
0244 * [EIC detector based on the Babar magnet](https://github.com/eic/fun4all_macros/tree/master/detectors/EICDetector)
0245 <img src="{{ '/assets/images/software/fun4all/2020-july/eicdetector.png' | relative_url }}" width="200"/>
0246
0247 * [sPHENIX](https://github.com/eic/fun4all_macros/tree/master/detectors/sPHENIX)
0248 <img src="{{ '/assets/images/software/fun4all/2020-july/sphenix.png' | relative_url }}" width="200"/>
0249 * [fsPHENIX](https://github.com/eic/fun4all_macros/tree/master/detectors/fsPHENIX)
0250 <img src="{{ '/assets/images/software/fun4all/2020-july/fsphenix.png' | relative_url }}" width="200"/>
0251
0252 You will find a Fun4All_G4_XXX.C and G4Setup_XXX.C macro in those directories. The G4Setup_XXX.C macro set up the magnet and the selection of subsystems which can be used. The Fun4All_G4_XXX.C selects the options what you want to run.
0253
0254 All Fun4All_G4_XXX.C macros can run all our event generators (single particles - gun and distributions, pythia6, pythia8, generators from eic-smear, sartre, hijing, upsilons). The Beast implementation is currently the magnet with the eic beampipe only - lets see if we can fill the empty space. Fast truth based tracking based on genfit is enabled for all eic detectors. sPHENIX and fsPHENIX have actual tracking for the barrel which is under development, if someone is interested to work on eic tracking we have some ideas and some code to start with (caveat: this is an expert operation where some experience is needed). The raw output can be written to root TTrees for inspection.
0255
0256 The macros run out of the box (after sourcing the [/cvmfs/eic.opensciencegrid.org/x8664_sl7/opt/fun4all/core/bin/eic_setup.csh](https://github.com/eic/fun4all_opt_scripts/blob/master/bin/sphenix_setup.csh) script using a single particle generator).
0257
0258 ##### Create Your Own Detector Concepts
0259 If you want to create your own you can start with our newest addition to our [tutorial](https://github.com/eic/fun4all_eic_tutorials/tree/master/detectors). They contain the Fun4All_G4 and G4Setup templates for the available magnets (which differ in size and strength):
0260
0261 * [Babar](https://github.com/eic/fun4all_eic_tutorials/tree/master/detectors/Babar)
0262 <img src="{{ '/assets/images/software/fun4all/2020-july/babar_template.png' | relative_url }}" width="200"/>
0263
0264 * [Beast](https://github.com/eic/fun4all_eic_tutorials/tree/master/detectors/Beast)
0265 <img src="{{ '/assets/images/software/fun4all/2020-july/beast_template.png' | relative_url }}" width="200"/>
0266
0267 * [Cleo](https://github.com/eic/fun4all_eic_tutorials/tree/master/detectors/Cleo)
0268 <img src="{{ '/assets/images/software/fun4all/2020-july/cleo_template.png' | relative_url }}" width="200"/>
0269
0270 By default the respective fieldmaps are used but you can switch to a constant solenoidal field and the eic beam pipe is included. Once you decided on the volume names of your tracking detectors you can run our [fast genfit based track fitting](https://github.com/eic/fun4all_coresoftware/tree/master/simulation/g4simulation/g4trackfastsim). It supports cylinders and planes (barrel detectors and forward/backward disks).
0271
0272 ##### Help with Fun4All
0273 Help is available via [our support channel in Mattermost](https://chat.sdcc.bnl.gov/eic/channels/fun4all-software-support), non BNL Accounts need an invite - contact us.
0274
0275 ---
0276
0277 ### About the Software Working Group
0278
0279 Please see our [website](https://eic.github.io) for more information
0280 about the Software Working Group and engage in the discussion on our
0281 [mailing list](mailto:eicug-software@eicug.org). For software
0282 questions, please see our
0283 [tutorials](https://www.youtube.com/channel/UCXc9WfDKdlLXoZMGrotkf7w),
0284 contact us via
0285 [software-support@eicug.org](mailto:software-support@eicug.org), or
0286 join our [Slack channel](https://eicug.slack.com) (see QR code below).
0287
0288 <img src="{{ '/assets/images/support/EICUG-Slack.png' | relative_url }}" width="200"/>
0289
0290 ---