HSF / phoenix

"Phoenix", an experiment independent web-based event display for High Energy Physics.
https://hepsoftwarefoundation.org/phoenix/
Apache License 2.0
54 stars 53 forks source link

Animate pileup interactions? #235

Open cohm opened 3 years ago

cohm commented 3 years ago

Hello!

First of all, Phoenix is fantastic - thanks a lot for developing it!

I have an idea for a feature request, and if we can develop a plan for how it can be implemented, I could possibly try to find some person-power to implement it.

At the HL-LHC we'll have precision-timing detectors in ATLAS and CMS that will help to separate the particles produced in up to 200 pp collisions that happen in a single bunch-crossing. It would be really fantastic to be able to animate this, just like the animate function now does. It's really not that much missing:

Does this sound like an interesting feature? And would it be feasible to implement? If there are some pointers to the relevant parts of the code and a brief set of steps the experts foresee are needed, I could try to find a willing student, perhaps :)

Best, Christian

EdwardMoyse commented 3 years ago

Hi @ohm - I think this should definitely be doable! Nice idea. I think if we can get hold of a dataset we could have a think about how best to do it (and a student to work on this would be fantastic as well).

9inpachi commented 3 years ago

Hi @cohm - Looks like a good idea!

Unfortunately, I am not a physics guy so I can't really make out most of the jargon used. If there is a student willing, I can help and pair with them to work this out.

For the code, we have an AnimationsManager that handles everything animation related in the event display. Since it's pretty decoupled - adding a couple of methods should make it possible to make the animation work.

cohm commented 3 years ago

Thanks for the quick and positive replies, @EdwardMoyse and @9inpachi!

A bit of explanation then: we actually circulate bunches of 10^11 protons squeezed into roughly the volume of a human hair - A few 10s of micrometer in x and y but ~10 cm in z. When two such bunches traveling at a speed near that of light cross, we get several collisions during a period of a few hundred picoseconds, simply because the protons in the incoming bunches are spread out in z. At the High-Luminosity LHC we'll get up to 200 collisions between individual proton pairs in a bunch crossing.

In the attached animation you see two charge distributions approaching each other, and where the resulting collisions happen in time and space:

https://user-images.githubusercontent.com/7143813/111668100-ae9abf80-8815-11eb-8d80-748fc659eaf7.mp4

The idea would be to feed in a structure that holds info about several pp interactions, each with a time stamp, and each with a collection of outgoing particles. The graphics seems to be all in place already, but I guess the surrounding code would need to be generalized a bit to handle drawing up several collections of tracks starting from their respective origins at the specified time.

Hope this helps to clarify what I'm after!

Best, Christian

PS. Any chance we can get a Phase-II ATLAS into Phoenix, @EdwardMoyse? Happy to provide a gdml file if that helps ;)