Giter VIP home page Giter VIP logo

recast-control-center-prototype's Introduction

RECAST Control Center

Build Status Code Health

Introduction

This is an early prototype for the RECAST control center. This web application is used to launch jobs for different back-ends that perform the reinterpretation requested on the RECAST frtonend currently hosted at the Perimeter Institute. The goal for RECAST is to allow analysis reinterpretation for the community.

It supports CERN SSO authentication which will allow for fine-grained control over which users are able to launch the reinterpretation jobs and/or upload the results to the front-end. This web application provides a plugin model for analyses. Currently, we have a template plugin for Rivet analyses that runs quickly. We are working with CERN IT's analysis preservation product to provide a template plugin for reinterpretation based on the full simulation, reconstruction, and event selection.

For convenience, one can initiate a request directly from the control center, which will be uploaded to the front-end.

Prerequsites

Basic Steps To Lunch Control Center

  1. Install prerequisites
  2. Install recast-control-center
  3. Run server.py

Quick Instructions For People That Think They Know What They Are Doing

wget https://github.com/recast-hep/recast-control-center-prototype/archive/master.zip
unzip master.zip
cd recast-control-center-prototype-master/
sudo pip install --process-dependency-links .

Instructions for RHEL7

Install prerequsites:

sudo yum install redis python-devel gcc
sudo easy_install pip

Get the code:

wget https://github.com/recast-hep/recast-control-center-prototype/archive/master.zip
unzip master.zip
cd recast-control-center-prototype-master/

Install control center

sudo pip install --process-dependency-links .

If this is for a development server you may want to use

sudo pip install --process-dependency-links -e .

to see you edits in real time.

Finally, run the server

python server.py

Special Help For RHEL6

Install python 2.7 out of the box we need to install it. Start with the tools we need to build Python and its modules:

yum install gcc gdbm-devel readline-devel ncurses-devel zlib-devel \
            bzip2-devel sqlite-devel db4-devel openssl-devel tk-devel \
            bluez-libs-devel libxslt libxslt-devel libxml2-devel libxml2

Download and compile Python 2.7.1:

VERSION=2.7.9
mkdir /tmp/src 
cd /tmp/src/
wget http://python.org/ftp/python/$VERSION/Python-$VERSION.tgz
tar xzf Python-$VERSION.tgz
rm Python-$VERSION.tgz
cd Python-$VERSION 
./configure
make
sudo make altinstall

Now we need to install Python setuputils:

cd /tmp/src
wget http://pypi.python.org/packages/2.7/s/setuptools/setuptools-0.6c11-py2.7.egg
sudo sh setuptools-0.6c11-py2.7.egg

Now install pip to install the rest of our dependencies:

sudo easy_install-2.7 pip

Install RECAST Control Center prerequsites:

sudo yum install redis gcc

Get the code:

wget https://github.com/recast-hep/recast-control-center-prototype/archive/master.zip
unzip master.zip
cd recast-control-center-prototype-master/

Install

sudo pip-2.7 install --process-dependency-links .

If this is for a development server you may want to use

sudo pip-2.7 install --process-dependency-links -e .

to see you edits in real time.

Run the server

python27 server.py

recast-control-center-prototype's People

Contributors

lukasheinrich avatar cranmer avatar tiborsimko avatar

Stargazers

Qdigital avatar Ryan Reece avatar

Watchers

Eamonn Maguire avatar  avatar James Cloos avatar  avatar

recast-control-center-prototype's Issues

Support multiple run conditions

The PI frontend analysis schema supports multiple running conditions (eg. 7, 8, 13 TeV).
The request would need to upload an input file for each of these running conditions.
The back end will need to know how to combine them.

similar state transitions for requests as the PI fronted

requests can be
Incomplete (not fully specified)
Complete
Active (meaning "Process" button was hit)
In progress (meaning request was accepted and LHE downloaded)
Completed (meaning response was sent)
Canceled

This is probably for later

Rivet analysis info

indicate if rivet analysis is considered validated
make a link to a simple analysis front page for Rivet
that page and list should have arxiv or inspire link

If analysis doesn't have backend...

If analysis doesn't have backend currently there is an inactive button for +New Recast Request.

In the PI fronted one can add requests even if there is no backend analysis implemented. This demonstrates demand, and once a backed is implemented it can process those requests retroactively.

Would be nice to accept request and give user some message saying that no backend exists yet.

Show Request -> Complete Request

Is it necessary to have the pop up that says "analysis created with UUID" and the button "Show Request"?
Can it just go straight to the request page?

title change

LHC data reinterpreted -> An Analysis Reinterpretation Framework

Change text below Introduction to
This is an early prototype for the RECAST framework. This web application communicates with the RECAST front-end at http://recast.perimeterinstitute.ca and provides a plugin model for analyses.

Please add

Links & Related Projects:

Change request submission work flow.

Instead of having add request on the main page leading to a form with a drop down for all the analyses,
have user choose analysis and then the analysis front page an have the add request form.
(give some indication that parameter points and files will be specified later if it's not all in the same form)

Document the analysis plugin model

Looking at
https://github.com/lukasheinrich/recast-dmhiggs-demo

Seems like basic parts are:

  • (optional) front page
  • (optional) results page to show plots and stuff
  • (optional) extended API
  • required implementation

Not sure how the celery part fits in. If analyses can use a certain approach with tighter integration that's great, but should also support complete black box backend processing based on a thin and static interface similar to the existing Perimeter API.

Separate Rivet/hype/atom/checkmate/madanalysis backends

Not sure what the best navigation is here, may need to experiment.
Different drop downs won't scale well if more services become available.

Also, a single analysis might have multiple backends available.
Maybe start with navigation, but eventually probably want to be able to look at all analyses and filter by which ones have backends satisfying various conditions.

Changes to analysis template

add show/hide for technical analysis details like uuid, run conditions, created_by, etc.

By default, show doi, inspire link, collaboration, description.
(It's also in a narrow col-md-6, might as well use the full width or something closer

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.