Back to home page

EIC code displayed by LXR

 
 

    


Warning, /firebird/README.md is written in an unsupported language. File is not indexed.

0001 # Electron Ion Collider dynamic visualization
0002 **(aka EIC Event Display)**
0003 
0004 [![Frontend CI Workflow](https://github.com/eic/firebird/actions/workflows/frontend.yaml/badge.svg?branch=main)](https://github.com/eic/firebird/actions/workflows/frontend.yaml)
0005 
0006 - Event display: [seeeic.org](https://seeeic.org)
0007 - Documentation and tutorials: [eic.github.io/firebird](https://eic.github.io/firebird/)
0008 
0009 <a href="https://eic.github.io/firebird/">
0010 <img src="docs/media/eic_dis_animation_v7.gif" alt="An EIC ePIC DIS event in Firebird" title="EIC ePIC DIS event" width="600" />
0011 </a>
0012 
0013 ## Project overview
0014 
0015 **Firebird** is a web-based event display framework for particle physics
0016 experiments, designed for the Electron-Ion Collider (EIC). It shows detector
0017 geometries, detector responses (hits), particle trajectories and physics
0018 processes as they develop in time, for research, debugging and quality
0019 control, and education.
0020 
0021 ## Repository structure
0022 
0023 This is a monorepo with npm workspaces (run `npm install` at the repository
0024 root, never inside a member):
0025 
0026 - **firebird-ng/** - the Firebird application (Angular, zoneless): its
0027   configuration, routes and developer pages, built from the library below
0028 - **packages/firebird-ng/** - `@dexvis/firebird-ng`: the Angular library
0029   (`provideFirebird()` and its features, the display pages and
0030   `<firebird-display>`, the display services, the worker code)
0031 - **packages/firebird-core/** - `@dexvis/firebird-core`: the worker-safe event
0032   model, DEX input and output, and painters
0033 - **packages/epic/** - `@dexvis/firebird-epic`: the ePIC experiment pack,
0034   `withEpic()`, which the Firebird app installs
0035 - **packages/root2dex/** - `@dexvis/root2dex`: EDM4eic/EDM4hep ROOT to DEX
0036   conversion in the browser, the TypeScript twin of `pyrobird convert`
0037 - **packages/firebird-example-extension/** - a template for out-of-tree feature
0038   packs
0039 - **dexvis/** - the generic [dexvis](https://github.com/dexvis) packages
0040   (geometry tree editors, the app shell, the navigation cube, the app feature
0041   machinery), mostly as git submodules
0042 - **pyrobird/** - the Python Flask backend: local file server, ROOT
0043   conversion, batch screenshots
0044 - **dd4hep-plugin/** - the C++ Geant4/DD4hep plugin that records trajectories
0045   during simulation
0046 - **docs/** - the VitePress documentation site, deployed to
0047   [eic.github.io/firebird](https://eic.github.io/firebird/)
0048 - **dex-schema/** - the JSON Schema of the Firebird data exchange format (DEX)
0049 
0050 ## Development
0051 
0052 The supported Node.js major version is in `.nvmrc`.
0053 
0054 ```bash
0055 npm install                                  # at the repository root
0056 cd firebird-ng && npm run serve              # http://localhost:4200
0057 npm run test:headless --workspace=firebird-ng
0058 npm test -w @dexvis/firebird-ng              # the library's suite
0059 python build.py full                         # build, all tests, pyrobird package
0060 ```
0061 
0062 `CLAUDE.md` lists every test suite and the verification steps;
0063 [pyrobird/README.md](pyrobird/README.md) covers the backend.
0064 
0065 ## License
0066 
0067 The Firebird application (`firebird-ng/`), pyrobird and the DD4hep plugin are
0068 licensed under GPL-3.0-or-later ([LICENSE](LICENSE)); the DD4hep-derived
0069 sources of the plugin keep their CERN notices. The libraries in `packages/`
0070 and the dexvis packages are MIT licensed, each with its own `LICENSE` file.