Giter Club home page Giter Club logo

vsdnano's Introduction

UNIVERSAL DATA VISUALIZATION

Main Idea

Provide a simple web-based service to read data in a custom format and visualize it using a set of high level objects such as jets, charged and neutral tracks, muons etc using custom detector geometry and a C++ macro to convert custom event representation to a standard format. The custom format is called Visual Summary Data (VSD) format.

High Level Physics Objects

At the moment only Jets, Candiates, Muon, MET, and Vertex are implemented.See VSDBase.h for all implementation details.

  • Jet - a cone with indication of jet energy

    • Momentum vector
    • Jet size - optional
    • EM and HAD fractions - optional
  • Candidate

    • position, eta, phi, pt
    • charge
  • Muon (MIP) - a charged track that propagates through calorimeter

    • Charge
    • Momentum vector
  • Vertex - a global point in 3D

    • 3D position
    • 3x3 matrix error, presented as ellipsoid
  • MET

    • arrow in space
    • length presents energy
Missing ...
  • CaloTower

    • eta, phi, pt presented as energy deposit
  • Hits

    • collection in points
    • what else ???

Detector Geometry and Magnetic Field

Detector geometry is mostly needed as a background for high level objects, but it also contains some important information, such as the boundary of low material region (pixel and tracker volume), the detector boundary including the muon detectors and a simplified magnetic field model to visualize charged tracks properly.

Specific Cylindrical geometry input

  • tracker propagator boundaries
    • r = 139.5 cm
    • z = 290 cm
  • muon propagator boundaries
    • r = 850 cm
    • z = 1100 cm
  • magentic field values are provided with implementation of ROOT::Experimental::REveMagField
    • r < 350 cm, value -3.5 T
    • r => 350 cm, value 2T

Preview

Use existing randomly generated samples in the universal data format service https://fireworks.cern.ch/cmsShowWeb/revetor-uni.cgi

Workflow

Build libraries

The VSD libraries are not yet distributed in ROOT. Currently one needs to build them with the sources in this repository. Setup a ROOT environment and use Makefile to build libraries

git clone https://github.com/alja/VSDNano.git
make libVsdDict.co libFWDict.co

Write TTree with branches with vector of VSD objects

Write a vector of the VSD structures in a plain root tree and relate it the ROOT's tree branch. See the snippet below: See a python script example in UserVsd.py

Vtree = ROOT.TTree("VSD", "Custom plain VSD tree")

pcv = ROOT.std.vector('VsdCandidate')()
candBr = Vtree.Branch("PinkCands", pcv)

# fill the VSDCandidate branch by adding the VSD objects in the std::vector 

for j in 5:
    cnd = ROOT.VsdCandidate(
        ROOT.gRandom.Uniform(0.1, 20),
        ROOT.gRandom.Uniform(-2.5, 2.5),
        ROOT.gRandom.Uniform(-ROOT.TMath.Pi(), ROOT.TMath.Pi()))
    cnd.name = f"Candidate_{j}"
    pcv.push_back(cnd)

Vtree.Fill(;)

candBr.SetTitle(json.dumps(candCfg))

Run event display through web service

Run the event display through the web service with the data sample once it is publicly available on eos location (e.g. /eos/user/a/amraktad/Fireworks-Test/ksmm_background.root)

https://fireworks.cern.ch/cmsShowWeb/revetor-uni.cgi


Developers information

One needs to work with the tip of the ROOT master branch to modify the VSD structures and change their graphic representation. Use -Droot7="ON" cmake flag to activete building of REve module.

Building REve in ROOT

git clone [email protected]:root-project/root.git
mkdir root-build
cd root-build
cmake -Dhttp="ON" -Droot7="ON" ../root
make

Run event display locally

root.exe 'evd.h("UserVsd.root")'

vsdnano's People

Contributors

alja avatar osschar avatar

Watchers

 avatar  avatar  avatar

Forkers

drkovalskyi

vsdnano's Issues

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.