GithubHelp home page GithubHelp logo

roounfold's Introduction

RooUnfold

Fork from http://hepunx.rl.ac.uk/~adye/software/unfold/RooUnfold.html

build status

RooUnfold is a framework for unfolding (AKA "deconvolution" or "unsmearing"). It currently implements several methods: iterative (Bayes), singular value decomposition (SVD), unregularised matrix inversion, bin-by-bin (simple correction factors), and an interface to ROOT's TUnfold. It can be used from the ROOT prompt, or linked against the ROOT libraries. RooUnfold requires ROOT 4 or later.

For the latest version and documentation, see here

http://hepunx.rl.ac.uk/~adye/software/unfold/RooUnfold.html

RooUnfold was written by Tim Adye, Kerstin Tackmann, and Fergus Wilson.

Building

Since version 2 RooUnfold is using cmake to find dependencies and create the MakeFile:

cmake CMakeLists.txt
make jobs=2

to build the RooUnfold shared library.

Tests

In order to run the boost tests for RooUnfold simply

make test

If you want to run specific tests you can do this with

# a single test suite
./RooUnfold_test --log_level=message --run_test=TestRooUnfoldSvd
# a single test case
./RooUnfold_test --log_level=message --run_test=TestRooUnfoldSvd/test_get_tau_from_constructor

Running

RooUnfoldExample.cxx makes a simple test of RooUnfold.

% root root [0] .L examples/RooUnfoldExample.cxx root [1] gSystem->Load("libRooUnfold.so"); root [2] RooUnfoldExample()

See the web page (http://hepunx.rl.ac.uk/~adye/software/unfold/RooUnfold.html) for more examples and documentation.

roounfold's People

Contributors

kreczko avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

roounfold's Issues

Root 6 problems

  • rlibmap is no longer provided
  • TUnfold::GetOutput function changed:
RooUnfold/src/RooUnfoldTUnfold.cxx:202:60: error: no matching function for call to ‘TUnfold::GetOutput(const char [5], const char [19], int, int)’
   TH1* reco=_unf->GetOutput("_rec","reconstructed dist",0,0);
                                                            ^

Hreco(RooUnfold::kNoError) returns 0 errors

In its current implementation RooUnfoldSvd::Hreco(RooUnfold::kNoError) returns errors of value 0 for all bins. This is in conflict with the comments in RooUnfold.h:

enum ErrorTreatment {  // Error treatment:
    kNoError,            //   no error treatment: returns sqrt(N)
    kErrors,             //   bin-by-bin errors (diagonal covariance matrix)
    kCovariance,         //   covariance matrix from unfolding
    kCovToy              //   covariance matrix from toy MC
};

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.