Giter VIP home page Giter VIP logo

dmx's Introduction

dmX

data model eXplorer

Warning: Experimental

Explore your events at dmX.

To generate your .json file use edm4hep2json available in the Key4hep stack. Example usage for the events from FCC winter2023 campaign:

source /cvmfs/sw.hsf.org/key4hep/setup.sh
edm4hep2json -l Particle \
             -n 10 \
             -o p8_ee_WW_ecm240.json \
             /eos/experiment/fcc/ee/generation/DelphesEvents/winter2023/IDEA/p8_ee_WW_ecm240/events_059793334.root

Development

The tool is written in pure JS and draws on HTML Cavas. To run a local version, clone the repo and create simple web server:

python -m http.server

after that visit localhost (http://0.0.0.0:8000/) in your browser.

ToDo

  • Filters:
    • generator status
    • generation
    • ancestor
  • Event switcher
  • Status box
  • Details box

dmx's People

Contributors

brauliorivas avatar kjvbrt avatar tmadlener avatar zehvogel avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

dmx's Issues

particles/antiparticles names

I have a doubt. Every particle ID is associated with a name. So for example, $d$ quark has an ID 1. This is based on the montecarlo scheme. However, as explained in the last meeting, every particle has its antiparticle. So $d$ quark with ID 1, has the antiquark $\bar{d}$ with ID = -1.
I understand this logic but don't know where it comes from. The cited paper shows the particles but not the antiparticles. In dmX, many particles have their equivalent antiparticle definition. I would like to know more about this because many newly incorporated particles lack their antiparticle.

PDG -5122 is not mapped to a particle

This is a minor issue I just stumbled over when looking at the prieview. The PDG code -5122 is not mapped to a particle name
image

This can be reproduced with event 1 in the example file where it appears in row 11.

JSON file with MCParticle tree cannot be opened

This is not the highest priority, but we have encountered an issue with opening some json files, e.g. the following one (which contains a rather large MCParticle tree from a calorimeter shower). I don't think the size of the file is a problem, but I suspect that potentially a slightly newer version of podio or EDM4hep could be one?

test_mc_shower.edm4hep.json

What we get is the following error:
image

If you know where the error is coming from, I can also try to have a look myself to see if I can fix this.

Preview from PRs

It would be very nice to have a preview of the site from a pull request. I am not entirely sure whether it's easily possible to actually do this, but it would make reviewing changes that are mainly visual or that at least have a visual component to their functionality much easier. E.g. new buttons / toggles or interactive filtering, etc...

Filtering on simulation status is not yet working as intended.

In order to not blow up #27 too much, I have pulled this into a separate issue that can then also be fixed by a separate PR.

The sim status filtering is not currently working as intended. If I look here (which I hope is the right place):

buildCondition() {
if (!this.checked) return null;
return (particle) => particle[this.property] === this.value;
}

This checks whether the sim status is exactly the value of the check boxes that appear on the page:
image

However, these are the bits in the sim status that are set if a condition is met:
https://github.com/key4hep/EDM4hep/blob/0784e02caf09ee89a728b4dd17ed74ef082e4d66/edm4hep.yaml#L297-L304

So there are two things that would need to be improved / fixed

  1. The current display should not display the bit numbers, but rather their meaning. E.g. 23 -> Overlay
  2. The actual filtering should be checking the bits of the simulator status, not the actual value

Add possibility to filter MCParticles via generatorStatus

Similar to the simulator status it might be useful to filter on the generator status. This would allow it to filter out all the intermediate states that are present, e.g. during hadronization.

In this case the inputs are not as clear cut as for the simulation status, so we would probably need a list of input values to filter(?). Or potentially even the possibility for a user defined filter condition, based on the status value(?).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.