Warning, /eic.github.io/_posts/2020-06-24-software-news.md is written in an unsupported language. File is not indexed.
0001 ---
0002 title: Software News June
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 allows 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 * [Detector Working Group: Detector Matrix Version 0.1](#dwg)
0025 * [GitHub for the EICUG](#github)
0026 * [Petrel: Worldwide data storage and sharing solution](#petrel)
0027 * [Support us to support you better](#support)
0028 * [Tutorials](#tutorials)
0029 * [Software Update](#update)
0030 * [EicRoot](#eicroot)
0031 * [eic-smear](#eic-smear)
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
0049
0050 ### Detector Working Group: Detector Matrix Version 0.1 {#dwg}
0051
0052 The Detector Working Group has frozen the current version of the
0053 {% include navigation/findlink.md name='eic_handbook_v1.2' title='Detector Requirements and R&D Handbook' %}
0054 as version 0.1. There have been three changes with respect to the
0055 {% include navigation/findlink.md name='detector_matrix' title='Interactive Detector Matrix' %}:
0056
0057 For the Backward Detector the Tracking Resolution column was updated as follows:
0058
0059 * eta =-3.5 - -2.5: σp/p ~ 0.1%×p+2.0% -> σp/p ~ 0.1%⊕0.5%
0060 * eta=-2.5 - -2.0: σp/p ~ 0.1%×p+1.0% -> σp/p ~ 0.1%⊕0.5%
0061 * eta=-2.0 - -1.0: σp/p ~ 0.1%×p+1.0% -> σp/p ~ 0.05%⊕0.5%
0062
0063 The abstract, reference files, and note sections of these fields have been updated accordingly.
0064
0065 Parameterizations based on the Detector Matrix Version 0.1 are [available for usage](https://github.com/eic/eicsmeardetectors). You can select them via `SmearDetectorMatrix_0_1.cxx`. Please see [the section on Official Parameterizations](https://github.com/eic/eicsmeardetectors) for details. The parameterizations will be included in the QA plots macros of the upcoming next release of eic-smear.
0066
0067 ### GitHub for the EICUG {#github}
0068
0069 [https://github.com/eic](https://github.com/eic) is available for the whole EICUG. For membership, please send your GitHub username to [eicug-computing-infrastructure-support@eicug.org](mailto:eicug-computing-infrastructure-support@eicug.org?subject=GitHub%20Account)
0070
0071 We encourage you to share your software and documentation on [https://github.com/eic](https://github.com/eic). Please follow our guidelines in doing so:
0072
0073 * Please use a unique name for your repository so that we can easily identify projects. We will, e.g., have various Geant4 related projects and each of these projects should have a name that is distinguishable from the others (and not Geant4).
0074 * Please [add at least one topic to your repository](https://help.github.com/en/enterprise/2.15/user/articles/classifying-your-repository-with-topics#adding-topics-to-your-repository).
0075 * Please give a clear description of your repository, e.g., ”Mary Johnson (Lab)’s DVCS MC” or “William's Smith (University) DIS analysis”.
0076
0077
0078
0079 ### Petrel: Worldwide data storage and sharing solution {#petrel}
0080
0081 We are happy to announce that we can offer the community
0082 a large new data storage allocation on Petrel
0083 to address the increasing need for an easy-to-access high-performance
0084 storage solution for the Yellow Report Initiative.
0085 Petrel is a Globus-enabled data service for researchers that provides a
0086 simple and intuitive interface for self-managed project-based data
0087 sharing. Our Petrel allocation is 100TB (more can be added if needed).
0088 The existing pre-grenerated Monte-Carlo data from BNL (13TB and growing)
0089 are mirrored in the `BNL-gpfs02-data` directory, and available JLAB data
0090 will be added soon as well. You can find more info on Petrel
0091 {% include navigation/findlink.md name='petrel' title='here'-%}.
0092 Petrel is supported and maintained by ALCF.
0093
0094 Because of the Globus back-end it is easy to move, share and discover
0095 data via a single interface, regardless if you are working with on a HPC
0096 facility, computer farm or your local machine. All major laboratories
0097 and supercomputing facilities, as well as most universities support
0098 Globus. This allows you to use your existing laboratory (ANL, BNL, JLab,
0099 LBNL, etc.) or even university credentials to access the files. To
0100 access the storage space, [log in to globus.org](https://globus.org)
0101 with your existing laboratory or university credentials and access the
0102 `petrel#eic` endpoint. It's as easy as that!
0103
0104 Write-access is available to anyone in the EIC Globus Group.
0105 If you want write-access to the storage space,
0106 or if you encounter any issues,
0107 you can contact [Sylvester Joosten](mailto:sjoosten@anl.gov) or
0108 [Markus Diefenthaler](mailto:mdiefent@jlab.org).
0109
0110 Additional storage options are available on [BNLBox/NextCloud](https://eic.github.io/computing/storage.html).
0111
0112
0113
0114 ### Support us to support you better {#support}
0115 The common simulation tools and workflow environment can only grow
0116 with user input. The EICUG Software Working Group asks interested
0117 users to join our support team to ensure fast response to user
0118 requests. This is an ideal opportunity to learn more about the
0119 software and its development.
0120
0121
0122
0123 ### Tutorials {#tutorials}
0124 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. The dates will be slighlty adjusted due to the new dates for the EIC User Group Meeting (July 15-17).
0125
0126 <img src="{{ '/assets/images/tutorials/SWG-Tutorials.png' | relative_url }}" width="500"/>
0127
0128 ---
0129
0130 ## Software Update {#update}
0131 In the June Software News, updates on EicRoot, eic_smear, ESCalate, and Fun4All are included.
0132
0133 ### EicRoot {#eicroot}
0134
0135 A new version of EicRoot has been prepared for the Yellow Report
0136 initiative: The source code was cleaned up and all of the unnecessary
0137 dependencies on third-party software packages were dropped. The
0138 simulation framework now depends only on ROOT6, Geant4 and G3/G4 VMC
0139 packages. ROOT5 support is discontinued.
0140
0141 The new version is available on
0142 [https://github.com/eic/EicRoot](https://github.com/eic/EicRoot). Instructions
0143 for how to install EicRoot locally or run a EicRoot Docker container
0144 are provided.
0145
0146 EicRoot is used in the Yellow Report initiative for tracking studies
0147 and the simulation of far-forward detectors and will be supported for
0148 Yellow Report initiative and the work on the EIC CDR. The GDML (or
0149 ROOT TGeo) export of pre-configured detector models into ESCalate of
0150 Fun4All will be tested.
0151
0152 ### eic-smear {#eic-smear}
0153
0154 ##### Stand-alone detector repository with versioning
0155
0156 We have separated the detector smearing scripts from the main code. If you have eic-smear installed, use [this repository](https://github.com/eic/eicsmeardetectors) to quickly select and experiment with different versions simply via
0157 ```
0158 $ git clone https://github.com/eic/eicsmeardetectors.git
0159 $ root -l
0160 root[] gSystem->Load("libeicsmear")
0161 root[] .L eicsmeardetectors/SmearHandBook_1_2.cxx
0162 root[] SmearTree(BuildHandBook_1_2(), "in.root", "out.root")
0163 ```
0164 The [README.md](https://github.com/eic/eicsmeardetectors/blob/master/README.md), which nicely displays on the github page, has a table with all available versions and more instructions.
0165 Improvements to eic-smear for comfortable compiling a local detector script and/or using a library of all available ones is in the works.
0166
0167
0168 ##### Advanced usage example
0169
0170 In order to demonstrate some of the more subtle issues of eic-smear output, we created an [example project]((https://github.com/eic/eicsmear-jetexample.git).
0171
0172 The repo just has two cxx files, meant to be self-documenting, and a detailed README. The first example demonstrates how to use just smeared output, the second how to compare to the truth level and/or how to extract some information from the truth level that should be in the smeared level but as of now isn't yet.
0173
0174 It is intentionally meant to be stand-alone, with a very simple Makefile and no cmake complications.
0175 Please note that while the sample analysis is jet-specific, this is purely because that is a natural application to show 4-vector calculations from partial information.
0176
0177 ---
0178
0179 ### ESCalate {#escalate}
0180
0181 <img src="{{ '/assets/images/software/escalate/escalate-logo.png' | relative_url }}" width="150" style="float:left; padding: 10px 20px 10px 20px;"/>
0182
0183 **ESCalate** is a modern framework, which brings together Monte Carlo
0184 event generators, [eic-smear](https://gitlab.com/eic/eic-smear.git)
0185 for fast simulations, [G4E](https://gitlab.com/eic/escalate/g4e.git)
0186 for full detector simulations and
0187 [eJana](https://gitlab.com/eic/escalate/ejana.git) for analysis and
0188 reconstruction. The framework is modular on package and library
0189 levels, provides command line interface, python and Jupyter APIs for
0190 user analysis and ensures data consistency between its loose coupled
0191 parts.
0192
0193 <div style="clear: left;"></div>
0194
0195 ##### To run ESCalate:
0196
0197 * [In docker on your machine (Linux, Mac, Win)](https://eic.gitlab.io/documents/quickstart/#ESCalate)
0198 * [In singularity (on labs or locally)](https://eic.github.io/software/escalate_singularity_1.html)
0199 * [JupyterHub at jupyterhab.jlab.org](https://gitlab.com/eic/escalate/workspace/-/blob/master/RemoteWork.md)
0200 * Now also in Binder: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gl/eic%2Fescalate%2Fworkspace/master) **No installation needed** It might take some time to load - Binder is free, has limited resources, while our image is large because of ROOT, Geant4 and other packages. Even with the limited resources the link can be used as a live examples and demonstration.
0201
0202 ##### MCEG
0203
0204 <img src="{{ '/assets/images/software/escalate/q2_jb.png' | relative_url }}" width="200" style="float:left; padding: 0px 20px 10px 20px;"/>
0205
0206 **MCEG examples**. [Examples](https://gitlab.com/eic/escalate/workspace/-/tree/master/01_fast_sim_tutorial) of using Pythia6 with radiative corrections and Pythia8+Dire to generate DIS events
0207 and process them with fast simulations added. With eJana you can instantly see the resulting DIS plots (see Validation section of eJana below)
0208
0209 <div style="clear: left;"></div>
0210
0211 **HepMC3 and file converter** As [HepMC3](https://gitlab.cern.ch/hepmc/HepMC3) was named "stable" with the 3.2.1 release,
0212 we switched eJana to work with HepMC3 (previously it worked with HepMC2), which can read files of both versions.
0213
0214 We also now provide ```hepmc_writer``` plugin. As eJana can read a number of Lund file formats (BeAGLE, HepEvents, PythiaEIC, etc.) it can be easily used as a converter of BeAGLE and other files to HepMC3 which later can be processed in [python](https://pypi.org/project/HepMC3/) or Delphes.
0215
0216 Example command to convert BeAGLE file to HepMC3:
0217
0218 ```bash
0219 ejana -Pplugins=beagle_reader,hepmc_writer beagle_file.txt
0220 ```
0221
0222 Beagle and other generators provide extended info such as true x, Q2
0223 and other DIS values, one of the advantages of HepMC3 is that it
0224 allows to have custom attributes for events and particles, i.e. allows
0225 to save those values. At this point only basic values are converted,
0226 but we are working to ship them all for BeAGLE and PythiaEIC.
0227
0228 ##### Fast simulations
0229
0230 <img src="https://gitlab.com/eic/escalate/smear/-/raw/master/logo.png" width="150" style="float:left; padding: 10px 20px 10px 20px;"/>
0231
0232 **Fast simulations made simple**. Now it is easy to smear any EIC MCEG supported file as simple as running a console command:
0233
0234 ```bash
0235 smear my_mc_file.txt
0236 ```
0237 See the [documentation](https://gitlab.com/eic/escalate/smear/) for how to easily select a detector, its versions, and various other options
0238
0239 <div style="clear: left;"></div>
0240
0241 Smear tool can use different *smearing engines* under the hood. Eic-Smear C++ API is the main one,
0242 but one can also select detectors from Simple Smear written by Yulia Furletova.
0243 We are now considering integration of Delphes as the third engine.
0244
0245 The ```smear``` command requires installation of ROOT and other packages, so we have instructions for different
0246 scenarios:
0247
0248 1. [Run docker on your local machine](https://gitlab.com/eic/escalate/smear/-/blob/master/simple_instruction_docker.md),
0249 2. [Using singularity (at labs or locally)](https://gitlab.com/eic/escalate/smear/-/blob/master/simple_instruction_singularity.md)
0250 3. [Run directly on IFarm or JLab Jupyterhub](https://gitlab.com/eic/escalate/smear/-/blob/master/simple_instruction_ifarm.md)
0251
0252 ##### Full simulations
0253
0254 G4E has many changes related to forward and far forward region such as new ZDC, virtual tracking for B0 tracking, etc.. Results have been presented at the Pavia meeting and in the workshop on [Meson and Kaon Structure](https://indico.bnl.gov/event/8315/overview)).
0255
0256
0257 <img src="{{ '/assets/images/software/escalate/G4E_with_zdc.png' | relative_url }}" height="250" style="float:left; padding: 10px 20px 10px 20px;"/>
0258
0259 <img src="{{ '/assets/images/software/escalate/g4e_lambda_decay_example.png' | relative_url }}" height="250" style="float:left; padding: 10px 20px 10px 20px;"/>
0260
0261 <div style="clear: left;"></div>
0262
0263 ##### Reconstruction and analysis in eJana
0264
0265 **Standalone plugins** You can always analyze the output of the ESCalate framework with ROOT macros, pyROOT or uproot.
0266 But to integrate your reconstruction algorithm, physics analysis or extend eJana, users can write their own plugins.
0267 Assuming that the most convenient workflow keep users' analysis in their own separate repositories,
0268 we added examples of standalone plugins, which work completely independently of eJana location,
0269 so no modification of the central repository is needed.
0270 The [standalone plugins examples are here](https://gitlab.com/eic/escalate/plugins) (and will be expanding).
0271
0272 It is also possible to use pyjano to generate and/or compile new plugins on fly.
0273 Newly generated plugins instantly work with command line, python or in Jupyter.
0274
0275 **Validation and Analysis**. We added some validation and analysis plugins for ejana, that allows checking fast simulation
0276 results as well as to build DIS plots (x, Q2, t, etc.) with a simple CLI command.
0277
0278 Here is an example of how to read a Beagle file, build DIS plots with new ```dis``` plugin and write a ROOT tree, which you can analyze with ROOT
0279 macros or other tools.
0280
0281 ```bash
0282 ejana -Pplugins=beagle_reader,dis,event_writer beagle_file.txt
0283 ```
0284
0285 **Reconstruction**. Recently, we have been overhauling our reconstruction part. At this moment we do track fitting through Genfit and vertexing through ACTS and working with ACTS developers on implementing full
0286 ACTS tracking+vertexing so one can select and compare both. We also plan to use ACTS wider and put ACTS Fatras (Fast Tracking Simulation) to G4E.
0287
0288 <img src="{{ '/assets/images/software/escalate/tracking_fit_crop.png' | relative_url }}" height="200" style="float:left; padding: 10px 20px 10px 20px;"/>
0289 We try to keep escalate packages easily installable on users machines ([using ejpm](https://gitlab.com/eic/escalate/ejpm)). ACTS requires C++17 and the latest Boost libraries and it might be a problem to build it even
0290 on not too old machines without attaching CVMFS or using non system compilers. So we made ACTS a peer dependency - if one installs it, ejana is built with its reconstruction plugins. Without ACTS ejana it built with only fast simulation and minimal dependencies.
0291
0292 <div style="clear: left;"></div>
0293
0294 ##### Containers
0295
0296 **Containers versioning**. One can now get the [full versions table](https://gitlab.com/eic/containers) of all the software of ESCalate images and [the images change log](https://gitlab.com/eic/containers/-/blob/master/CHANGELOG.rst).
0297
0298 #### Help and support
0299
0300 [Subscribe to our Slack channel](https://join.slack.com/t/eicug/shared_invite/zt-djjvylq9-zmRphsvRLpDBiYb_jJwgCQ) to get help with the software and participate in other channels like Yellow Report analysis.
0301
0302 ---
0303
0304 ### Fun4All {#fun4all}
0305 Fun4All is a well established simulation/reconstruction framework initially developed to reconstruct and analyze data from the PHENIX experiment. In recent years it has provided the simulations to shepherd the sPHENIX experiment from the first drawing on a napkin all the way through CD1. For the EIC it was used to develop a concept for an [EIC detector based on the Babar magnet](https://arxiv.org/pdf/1402.1209.pdf) and [an EIC detector Built around the sPHENIX Solenoid](https://indico.bnl.gov/event/5283/attachments/20546/27556/eic-sphenix-dds-final-2018-10-30.pdf). It can be used interactively (run a few events, have a look, run a few more, look again) as well as running massive productions on large farms (and as of recent also on CORI and on the OSG). For more details (and program flow charts) have a look at the [presentation](https://indico.in2p3.fr/event/18281/contributions/71607/) at the 2019 EIC User Group Meeting.
0306
0307 ##### New developments
0308 All fieldmaps (Babar, Beast and JLeic) are now available. They can be chosen on the ROOT macro level for details have a look at this [tutorial](https://github.com/eic/fun4all_eic_tutorials/tree/master/MagneticField).
0309
0310 <img src="{{ '/assets/images/software/fun4all/fun4all_fieldmaps.png' | relative_url }}" width="800"/>
0311
0312 The magnetic field was verified using charged geantinos (shown here are 0.5, 1, 2, 3 GeV/c) compared to constant solenoidal fields as shown on the right for the Beast magnet.
0313
0314 Importing detectors via gdml files has its quirks but is now well understood and fully supported. It is not possible to do this generically since one has to address the volumes by name but this only needs minor modifications to existing code and is largely cut and paste.
0315
0316 <img src="{{ '/assets/images/software/fun4all/fun4all_gdml.png' | relative_url }}" width="800"/>
0317
0318 Here are the latest additions to our selection of implemented detectors (all of which can be combined in a ROOT macro). We have a detailed model of the [Beast magnet](https://github.com/eic/fun4all_eicdetectors/tree/master/source) (already used in the fieldmap plots) as well as the [*All Silicon Tracker*](https://github.com/eic/g4lblvtx) and the EIC beam pipe.
0319
0320 The ability to combine these (and other detectors) at will is shown here:
0321
0322 <img src="{{ '/assets/images/software/fun4all/fun4all_allsilicon.png' | relative_url }}" width="800"/>
0323
0324 where the *All Silicon Tracker* is put inside the Beast magnet and is being used as central tracker inside the EIC detector based on the Babar magnet.
0325
0326
0327 ##### Verification
0328 Fun4All is also being used to reconstruct test beam data which allows a direct comparison of simulations with data. sPHENIX has performed extensive test beam campaigns for its detectors at energies which are relevant for EIC detectors. The calorimeter test beam results have been [published](https://ieeexplore.ieee.org/document/8519782) recently, the analysis of TPC and Maps detector data is ongoing. A good agreement with previous EICRoot based simulations has been found for the All Silicon Tracker ([slide 8](https://indico.bnl.gov/event/7894/contributions/37609/attachments/28098/43125/200514_AllSi_in_Fun4All_2.pdf))
0329
0330 ##### Help with Fun4All
0331 Help is available via [our support channel in Mattermost](https://chat.sdcc.bnl.gov/eic/channels/fun4all-software-support), non Scientific Data Center Accounts need an invite - contact us.
0332
0333 ---
0334
0335 ### About the Software Working Group
0336
0337 Please see our [website](https://eic.github.io) for more information
0338 about the Software Working Group and engage in the discussion on our
0339 [mailing list](mailto:eicug-software@eicug.org). For software
0340 questions, please see our
0341 [tutorials](https://www.youtube.com/channel/UCXc9WfDKdlLXoZMGrotkf7w),
0342 contact us via
0343 [software-support@eicug.org](mailto:software-support@eicug.org), or
0344 join our [Slack channel](https://eicug.slack.com) (see QR code below).
0345
0346 <img src="{{ '/assets/images/support/EICUG-Slack.png' | relative_url }}" width="200"/>
0347
0348 ---