Towards an Utopian contribution to particle physics - the roadmap and how to get started

in #utopian-io6 years ago

Two weeks ago, I sketched a crazy idea detailing how Utopian could consist in a handle on external contributions to state-of-the-art particle physics research. I honestly did not know what to expect, and I was really amazed by the positive reaction of the community.

Thanks a lot to all!!! I am now over-motivated by this project and I really want to see it realized.

For more information, please check this post (and its comment section).


[image credits: Pixabay (CC0)]

In a nutshell, this project fits into what is commonly called the preservation of the results of the LHC experiments.

One here aims to implement, within a public and open-source platform, several LHC analyses that target the discovery of new phenomena.

The main motivation is that theorists are continuously developing new ideas and new theories, and it is crucial to be able to test their viability with respect to LHC data.

In this context, a colleague and I have developed a framework called MadAnalysis 5. This framework can do many things, and reinterpreting the results of the LHC analyses is one of these things.

Although this platform is kind of developer-friendly, we are currently lacking of manpower for implementing new LHC analyses. For some reasons that I could speak about during hours (but I will not), physicists are mainly users and not developers.

This is where the Utopian community could enter into the game In particular, @alexdory, @elguille, @howo, @irelandscape, @jorge-caceres, @mactro, @mcfarhat, @sathyasankar and @roj have shown strong interests in this project. Thanks to all of them (again :p )!

I will be of course glad to add any new name to this list. Just let me know.


IN PRACTICE: THE ROADMAP

For practical purposes, I have decided to factor this project into smaller pieces easier to tackle separately. Moreover, there will be no timeline, as the progress of the participants will dictate the timeline.

I am now listing below the different milestones that I have defined, tagging them either as regular blog posts (on the Steem blockchain) addressing particle physics stuff, or as task requests (on Utopian). Through blog posts, I will provide material to digest the physics, whereas through task requests, we will focus together on the coding part.

  • STEP 0: Getting started (see below).
    Installation of a local copy of the MadAnalysis 5 platform by the participants. This should not take too long.

  • STEP 1: Physics objects and analyses of interest (a blog post to appear next week).
    I will provide information about the physics objects that are reconstructed in an LHC detector. Those are the objects which we will have to deal with within the code, together with their properties.
    I will also present a selection of LHC analyses (at least one per participant to the project) that we could consider, explaining why they are important. Each participant will pick (at least) one.

  • STEP 2: Playing with detector-level objects (a task to appear by the end of next week).
    As a first exercise, one will investigate the structure of a MadAnalysis C++ analysis, create a fresh (blank) analysis and learn how to deal with the physics objects reconstructed in a detector in terms of code. A few exercises will be proposed so that everyone could get used to both the MadAnalysis 5 language and the physics behind it.

  • STEP 3: Definition of the physics objects relevant for the selected analyses (task).
    Each participant will implement a snippet of code selecting the objects relevant for the considered analyses. For instance, we may detect dozens of electrons after one specific collision, but only those satisfying certain criteria are interesting for a given analysis. This selection will be implemented in C++.

  • STEP 4: About LHC analysis strategies for unravelling new phenomena (post/task).
    I will detail how one designs an LHC analysis from scratch, what is a signal region (i.e. a specific analysis strategy) and a cut (a selection of specific collisions exhibiting given properties).
    I will then detail how to implement regions and cuts in the MadAnalysis 5 framework. Each participant will then be welcome to implement the regions and cuts related to his/her own analysis.

  • STEP 5: Simulating LHC collisions (blog post).
    I will detail how one can simulate efficiently millions of LHC collisions on a simple laptop. This will be useful to the next step. I will provide some funny exercises.

  • STEP 6: Validation (task).
    This is the toughest part of the project. Having a running code is not sufficient. One will confront predictions made with it, for a well-defined scenario, to experimental simulations and verify their agreement. This will include the tuning of the detector simulation and the definition of simulated signals of interest. Potential discrepancies may appear and will have to be fixed.

  • STEP 7: Victory! Bonus: a physics project and publication?
    After that the reimplementations will be validated, the codes will be merged to the main branch of the MadAnalysis 5 program. Each analysis code will in addition be assigned a Digital Object Identifier so that it will become citable by physicists in real research work.

Utopian being about realizing his/her dreams, why not moving on with extra analyses or a real physics project to be run on the Steem blockchain, using the work produced so far? Who knows where this will bring us? ;)


GETTING STARTED

In order to start this project, each participant must install locally a version of the MadAnalysis 5 program. Note that I know that the steps below trivially work on Linux and Mac OS. I am more scared by Windows… Any Windows user in the room?

  1. I assume that each participant has a system with a recent version of the gcc compiler installed, as well as with the gmake utility available.

  2. One should first install the latest version of the root framework, to be downloaded from CERN. This is a requirement in order to allow for the simulation of the LHC detectors.

  3. It is then time to download MadAnalysis 5 from launchpad. Please take version 1.6.

  4. Unpack the tarball, and start the code by typing, from the directory in which the tarball has been unpacked,
    ./bin/ma5
    This initializes the MadAnalysis 5 command line interface, checks the presence of all mandatory packages and which of the optional packages are available. After a successful initialization step, the prompt ma5> is shown on the screen and we are ready to go.

  5. If everything is fine at this stage, please type, within the MadAnalysis 5 interpreter,
    install delphes
    This will install a simulator of the LHC detectors within the framework. And this simulator is called Delphes.

  6. Finally, if everything is still fine at this stage, the last necessary step is to type
    install PAD
    This will create a directory named PAD in which all currently existing reimplementations will be downloaded. Everything that will be downloaded is documented on the MadAnalysis5 Public Analysis Database.

Please let me know whether this works. If not, do not hesitate to comment or to grab me on discord (@lemouth#8260).

Sort:  

Installed and ready to run !

I stumbled upon a few issues which were solved by going in to the root folder and running

cd bin
. thisroot.sh

don't forget the dot before thisisroot.sh

and then go back tot he ma5 folder and run it like indicated :)

You shouldn't have more issues as thisisroot.sh will set all the correct binary paths.

Thanks for specifying this. I forgot to mention it, but this is necessary to tell your environment variable where root is :)

Hi, it was nice to read and we are looking forward to seeing more progress of this project as it sounds awesome. There is one small caveat which I believe could be resolve easily.

We currently support projects hosted on GitHub and it would be really great if you could mirror it there. You can read about this requirement the rules page in the section Github Integration and Repositories.

We would like to avoid making exceptions if possible, one reason is that the posts may be reviewed by different people and if they follow our defined requirements, we might face a misunderstanding.

If you do have a GitHub repository, remember to put the link at the top so it can be easily recognized.

Your contribution has been evaluated according to Utopian rules and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

Thanks for comment and providing the review to my post.. Let me answer it in various steps.

For various reasons, I cannot move the entire MadAnalysis project to GitHub. The main of these reasons is that this code is widely used in the particle physics community (the three corresponding articles are gathering several hundreds of citations as a proof) and I don't want to confuse my own community. However, the Utopian-MadAnalysis project has nothing to do with the development of MadAnalysis. Having the main MadAnalysis repository on LaunchPad instead of GitHub is therefore not a blocking point in my opinion. None of the tasks done within this project will impact the core code.

The idea of this project is to work on the Physics Analysis Database of MadAnalysis. This database is a collection of external contributions that are stored on Inspire (again not GitHub) and that allows to associate a DOI to them, so that they could be cited in physics papers. This project is to develop some of these external contributions.

However, what matters is that the finalized code is submitted to Inspire to get the DOI. This does not prevent the development to be done on GitHub and be mirrored to Inspire at the very end. I can even connect the main program to the github repository as well if necessary.

This is what I had in mind actually, and I think that it fits the Utopian rules so that there is no need to make any exception.

Note that I am fine to continue this discussion either here or on discord (I am not planning to post the next episode before next week anyways, or at least before next Friday).

This is really something new for me. But I would like to try it.. I'll try if it works on Windows and I'll tell you friend

Maybe with something like cygwin it could work. But this, you will have to tell me. Another option is to add a linux partition on your system ;)

Or simply run it on virtual machine, i.e. VirtualBox is pretty simple to use.

True. I didn't think about it but yes, this would work too (and is possibly a better option).

Downloaded, installed, works! (I think) What you could add is some final verification step that would show everything works correctly. Maybe plot something,?

There are so many things to do with the code and I don't like asking people to do things without understanding (there are many particle physics concepts to explain). However, you can maybe try some tutorials.

As you said, it is never too late to learn anything. But I have failed to satisfy one basic criteria. As of now I have no computer with me and I'm using steemit through my mobile phone. Let me see what I can do to arrange a laptop to be a part of this great initiative if you think my participation can be of any help!

Meanwhile I would like to hear from @dexterdev who is fond of python and many other computer programming languages. I think he can be of a great help in accomplishing this concept!

@sathyasankar : I am more of a Jack of all trades, master of none. I have very basic knowledge of C++. Even I am not expert in python. :)

Many physicists are like you... so ;)

You can brush up your knowledge then!

If you don't have any computer, I am afraid there is nothing I can do for you. Sorry about that.

Meanwhile I would like to hear from @dexterdev who is fond of python and many other computer programming languages. I think he can be of a great help in accomplishing this concept!

This project focuses more on the c++ part of the platform than on its pythonic side. But I will always be happy to read comments about it ^^

Yes I know. I have already taken steps to arrange a laptop and it is not going to be that big a deal for me. I hadn't felt the need to use it before this. Thanks you have provided the timeline of 1 week before your next blog would appear! I'm already aware of the fact that as this platform is build upon blockchain technology and decentralised in nature, we can extract loads of data from here and use them appropriately.

This project focuses more on the c++ part of the platform than on its pythonic side.

We have internet. Nothing is impossible if one has the desire to learn.

Of course :)

This is very awesome man. I wish I could help (in grad school for physics with undergrad research in particle physics), but I have qualifying exams in 2 months. After that, I would love to dedicate some time to help.

Well, although there is a timeline here, it will never be too late to join after your exams. I am pretty sure we won't be done by then. Also, all the information will be stored on the blockchain so that this could continue in the future without any time limit.

In short: you are welcome to join at any time!

Oh wow, this looks like a really interesting intersection of the blockchain and real life. Please do keep us updated.

I'm running a bunch of *nix software under the WSL Bash shell, I'll try to make some time to see how your code plays with that environment.

I didn't know the existence of the WSL bash shell. Thanks for bringing this to my attention, and please keep me updated. This may give an alternative to our windows users. I always have 2-3 students running on windows when I am lecturing this at international schools... ;)

I'm hoping to give an install a try later this week, I'll report back.

We always have a few students running Macs, which screws us up since a lot of the software we use in the courses is Win based. Our uni has a virtual computing lab and they've really been helpful for this problem. We spend a little time creating an os image with the software fully installed, and students can remote in to a virtual machine. It completely eliminates our old problems of spending 90% of the demo time getting people up and running.

Ahah! Linux should actually be used.... it is free software. All the codes involved in this project runs nicely on linux (and therefore on mac os) :)

Whao ,@lemouth I see this to be a great project which can be a point of reference in years to come. I know about C++ a bit but , application in physics is super high for me. Though am really much interested to follow how it progress. Are we going to have have access to read about it on your blog?, I mean are we going to have access to read about the program as it progresses?. This blog is steering something up within me .÷) don't know yet 😁

Thanks!

Yes, everything will be fully transparent. Progresses, successes, failures, etc... and of course physics! :)

Am looking forward

Thanks for the guidance, @lemouth. I will install the software in the next days and post about it. The project looks very nice. I will have a chance to probe my very basic knowledge about particle physics and learn much more.

Just let me know if you have issues. I am here to help :)

Hey @lemouth
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Contributing on Utopian
Learn how to contribute on our website or by watching this tutorial on Youtube.

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

The pleasure is for me ^^

Coin Marketplace

STEEM 0.30
TRX 0.11
JST 0.033
BTC 64320.07
ETH 3154.23
USDT 1.00
SBD 4.34