Back to home page

EIC code displayed by LXR

 
 

    


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 ---