Skip to content

gbarrand/osc_vis_for_LHCb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

  This package is the version of the OpenScientist osc_vis used
 by the LHCb/Panoramix event display. Below are instructions to
 build on a local Linux or macOS machine, but also to build on
 lxplus by using the gcc, Qt and Python packages used by LHCb, which are
 now under:
    /cvmfs/lhcb.cern.ch/lib/lcg/releases/[gcc,Python,qt]

 ///////////////////////////////////////////////////////////////
 //// build osc_vis : //////////////////////////////////////////
 ///////////////////////////////////////////////////////////////
   <source setup the desired compiler>

   cd osc/osc_vis/mgr
   
 To build code over C lib, STL and OpenGL only :    
   ./build

 To build [gtk,Qt,OpenMotif,Python] related code, you may have to customize :  
   ../../../inexlib/exlib/mgr/use_[gtk,Qt,Xt,Python]
 and then :
   ./build -[gtk,Qt,Xt,Python]

 For Qt and Python, on lxplus for a build for LHCb, see the special note below.

 To build the release :
   ./build_release

 It produces the zip distribution binary file :
   ./bin_[gnu,clang]/distrib/osc_vis-<version>-<platform>-<compiler>.zip

 To have a trace of what happens (what is compiled, linked), you can type :
   ./build -v

 and to be fully verbose :
   ./build -x

 To remove the per package bin_<config> directories with binaries :
   ./build -clean_all

 ///////////////////////////////////////////////////////////////
 //// install //////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////
  To install a binary kit, for example under you home directory,
 in an existing writable "local" directory :
   cd ~/local
   <get a zip binary kit>
   unzip -q osc_vis-<version>-<platform>-<compiler>.zip
   cd osc_vis/<version>
   ./install

  The ./install script enforces the installation path in the
 [aida-]setup.[csh,sh] scripts. You have to execute it once.

 ///////////////////////////////////////////////////////////////
 //// use //////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////
  After installation, to use the kit you have to "source setup" it
 by sourcing, according your shell, or the setup.sh or the setup.csh
 script. If you have a sh flavoured shell :
   sh> . <installation_path>/osc_vis/<version>/setup.sh
   sh> osc-plot
  (sh> osc-plot -gtk)
  (sh> osc-plot -Xt)

  If you have a csh flavoured shell :
   csh> source <installation_path>/osc_vis/<version>/setup.csh
   csh> osc-plot

  If using Qt, you may have to source setup it :
   sh> . ./Qt-setup.sh  # to find the Qt shared libs of the
                        # Qt installation used at build time.
 (csh> source Qt-setup.csh)
   sh> osc-plot -Qt

 ///////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////
  To test the graphics with osc-plot :
  - Choose the Viewer3D tab to have the Inventor decorations.
  - Help => Examples => Examples/AIDA/DLD => Histogram2D/lego plot
  - Play with the thumb wheels.

 ///////////////////////////////////////////////////////////////
 ///////////////////////////////////////////////////////////////
 If using Python, you may have to source setup it :
   sh> . ./py-setup.sh   # to find the python program of the
                         # Python installation used at build time.
 (csh> source py-setup.csh)
   sh> . ./Python-setup.sh   # to set PYTHONPATH to find osc_vis plugins.
 (csh> source Python-setup.csh)
   sh> cd Resources/AIDA/examples/Python
   sh> python aida_0.py
   sh> OSC_GUI_TOOLKIT=Qt;export OSC_GUI_TOOLKIT
 (csh> setenv OSC_GUI_TOOLKIT Qt)
   sh> python aida_1.py

 WARNING : the python program must be the one coming from the Python installation
           used to build the plugins ([Coin,HEPVis,OnX,OnXLab]_SWIG_Python.so).
           You must be aware that multiple python programs may exist on your machine.

 ///////////////////////////////////////////////////////////////
 //// Qt, Python on lxplus /////////////////////////////////////
 ///////////////////////////////////////////////////////////////
  The exlib/mgr/use_Qt, use_Python are tuned to find Qt
 and Python on the "lcg area" under :
   /cvmfs/lhcb.cern.ch/lib/lcg/releases/[Python,qt]

  If "being on lxplus" is detected (by using `uname -n`), then
 the version of Python, Qt used is choosen from a BUILD_CONFIG
 variable that you have to define before launching the build
 for Python, Qt. For example :
   sh> export BUILD_CONFIG=x86_64-centos7-gcc62-opt

  Obviously you must take care to be on the correct kind of machine,
 then here a 64 bits machine under centos7, and be sure to use the   
 right compiler. Here typing :
   sh> g++ --version

 should return you a 6.2.x version. Various version of g++ can
 be found under :
   /cvmfs/sft.cern.ch/lcg/contrib/gcc

  For example to setup a 6.2 one under a csh shell, type :
   csh source /cvmfs/lhcb.cern.ch/lib/lcg/releases/gcc/6.2.0/x86_64-centos7/setup.csh

  Under the configs directory some scripts can be found to
 setup both the compiler and BUILD_CONFIG for the configs
 already known by exlib/mgr/use_[Qt,Python].

  Note that on lxplus, someone can build the Qt driver (./build -Qt),
 but also the gtk2 (./build -gtk) and the OpenMotif (./build -Xt) ones since
 gtk2 and OpenMotif are installed on the system. (And put all together,
 if displaying on a remote machine, OpenMotif is still the most effective!)