Various ROOT classes

ROOT Homepage

Contents

ROOT Classes proper

I've contributed two classes to :

TPrincipal: Principal Component Analysis.
I wrote a small description of PCA.
TMultiDimFit: Multidimensional Fit.
I wrote a fairly thorough description of this method. Please refer to this document for further references
GNU/Hurd homepage

GNU/Hurd Port

This took very few changes to do this, to the credit of the ROOT and GNU/Hurd developers :-)

Basically, I did:

  • Added hurddeb to config/ARCHS
  • Added hurddeb to config/root-config.in
  • Added R__HURD to base/inc/RConfig.h and protection of various code by this #define. Mostly it coincides with R__LINUX.
  • And some other minor changes
Debian Homepage
Red Hat Homepage

RPMs and DEBs:

I've also made scripts and other files in ROOT to make it easy to Debian and Red Hat Packages.

Here are some Red Hat Linux package, and
Here are some Debian GNU/Linux packages.

ROOT Homepage

Emacs Lisp helper functions

The Emacs Lisp library root-help.el provides a number of useful functions when developing packages based on ROOT.

Note: This Emacs library is now part of ROOT proper, and is installed in <prefix>/share/emacs/site-lisp, so all you need to do after installing ROOT, is to put

	     (require 'root-help)
          

in your .emacs file.

KDevelop homepage

KDevelop Sample Project using ROOT

Download

Introduktion til ROOT (in danish)

Contributed classes

I also made some other classes for various purposes, which you may find useful.
Almost all of these packages uses Autotools as the build system, so after downloading, you unpack the tar-ball, cd to the directory, and do

              ./configure <options>
              make 
	      make check 
	      make install  
          

Framework 0.12:

An example framework using subclasses of ROOT's TTask, as well as TFolder, TTree, and TClonesArray. The framework provides a set of generalised classes for doing various tasks. There's a manager task Framework::Main which manages all subtaks (Framework::Task). Special tasks for I/O is defined.

Simulation 0.10:

An example simulation framework based on Framework using subclasses of ROOT's Virtual Monte Carlo interface (VMC), and optionally TGeo framework. The simulation framework provides an interface for defining detector simulations in terms of tasks, which nicely extends the Framework interface. Using the simulation and Framework class libraries (or something similar) it's possible to provide a collaboration with a very uniform, configurable, and easily extendable framework and interface for all software tasks.

Note: This class library depends on the Framework library you should download, build and install that class library before building and installing this class library

Note: This class library does not include the actual simulation backend. For that you need GEANT3 or 4, or similar.

GEANT3
Get the Fortran sources and ROOT wrapper from GitHub.
GEANT4
You need a number of packages for this.
  1. GEANT4 it self. Check if your distribtion already has packages of this available.
  2. Optionally VGM
  3. GEANT4 VMC ROOT interface.

Offline 0.7:

And example offline project for an experiment. This package shows some advanced usage of the Framework and Simulation frameworks described above.

Note: This class library depends on Framework and Simulation libraries. You should download, build and install those class library before building and installing this class library

VMC GEANT 3.21 1.5:

An VMC interface to the GEANT 3.21 GEometry ANd Tracking code. This version is derived from the one available in the ROOT repository

cvs -d :pserver:cvs@root.cern.ch:/user/cvs co geant3
          

The package available here differs in that it uses Autotools as the build system, adds some additional utilities for linking against the library, and does not require Pythia6.

BRAG 2.0

This is a simulation of the BRAHMS (Broad RAnge Hadron Magnetic Spectrometer) at the RHIC (Relativisitic Heavy Ion Collider) at BNL (Brookhaven National Laboratory), New York, USA.

FMD Test 0.2

I have used this framework to build a test simulation of the ALICE Forward Multiplicity Detector. The code is available as a tar-ball

THijing 1.7:

An interface to the HIJING event generator, based on the ROOT TGenerator interface.

TOption 1.2:

A set of classes for handling commandline options to an ROOT based application.

Note: The class TOption should really be a template (see also Option--):

	    template <typename Type>
	    class TOption : public TObject {
	    private:
	      TString           fLong; 
	      Char_t            fShort; 
	      TString           fHelp; 
	      std::vector<Type> fValues; 
	    public: 
	      TOption(Char_t short, const Char_t* long, 
	              const Char_t* help, Type default); 
	      Type operator[](Int_t i=0) const { 
	        if (i >= fValues.size()) return 0;
		return fValues[i]; }
              ...
            };
          

With some specialisations if needed. Also, the "standard" options for integers, floating points, strings, and booleans, can be instantised:

	    typedef TOption<Int_t>         TIntOption; 
	    typedef TOption<Float_t>       TFloatOption; 
	    typedef TOption<const Char_t*> TStringOption; 
	    typedef TOption<Bool_t>        TBoolOption; 
	  

TStatistics 1.1:

Simple statistics in N dimensions. The tar-ball has it all too. The package also shows how to use Autotools with ROOT.

TException 1.0:

A set of exception classes for ROOT. Note, that exceptions are handled correctly in CINT, and that these classes can be used within CINT.

LogGui:

Example of using TThreads in a Java-like way, and with a GUI

TOscarFile 1.0:

Bi-directional OSCAR <-> ROOT conversion.

daemon:

Class library for creating ROOT daemons, like rootd and proofd. rootd and proofd examples are provided.

dataStealer:

A GUI to read data off images. Features include

  • Read any format supported by AfterImage
  • Direct conversion to ROOT script
  • Can handle logarithmic axis
  • X and Y error bars can be defined independently
  • Small code, and compatible with the AClic compiler
  • Zoom view to help do precise measurements
  • Can handle scanned (rotated) images

This is heavily inspired by G3Data.

Index page   Christian Holm Christensen Valid CSS! Valid HTML 4.01!