Giter Club home page Giter Club logo

fairroot's Introduction

FairRoot

license DOI OpenSSF Best Practices fair-software.eu

The FairRoot framework

A simulation, reconstruction and analysis framework that is based on the ROOT system. The user can create simulated data and/or perform analysis with the same framework. Geant3 and Geant4 transport engines are supported, however the user code that creates simulated data do not depend on a particular Monte Carlo engine. The framework delivers base classes which enable the users to construct their detectors and /or analysis tasks in a simple way, it also delivers some general functionality like track visualization. Moreover an interface for reading magnetic field maps is also implemented.

License

FairRoot is distributed under the terms of the GNU Lesser General Public Licence version 3 (LGPLv3).

Release information

Please see : https://github.com/FairRootGroup/FairRoot/releases

Getting started

Please see : fairroot.gsi.de for details.

Using the Project template

FairRoot delivers various project templates that can be used as a starting point for anybody who would like to build simulation and reconstruction with FairRoot. The project Templates are located in the FairRoot/templates directory.

Optional change of output tree name

By default, the name of the tree in output ROOT file is "cbmsim". In case you want to change it for your Project, you need to create "config" folder inside of top source directory of the Project and place there "rootmanager.dat" text file with following single line: "treename=name_you_chose":

cd PROJECT_TOP_DIR
mkdir config
echo 'treename=name_you_chose' > config/rootmanager.dat

It is also possible to set the folder/tree names using corresponding (SetFolderName()/SetTreeName()) methods of the FairRootManager.

Step by Step installation

  1. Install FairSoft

  2. Install FairRoot

    # Set the shell variable SIMPATH to the FairSoft installation directory
    export SIMPATH=~/fair_install/FairSoft/install
    [setenv SIMPATH ~/fair_install/FairSoft/install]
    
    cd ~/fair_install
    git clone -b dev https://github.com/FairRootGroup/FairRoot.git
    cd FairRoot
    mkdir build
    cd build
    cmake -DCMAKE_INSTALL_PREFIX="~/fair_install/FairRoot/install" ..
    make
    make install

    To run the tests do:

    # To run test: make new shell, do not define SIMPATH
    cd ~/fair_install/FairRoot/build
    make test
  3. Install the template:

    you need to copy the project template to you own directory

    # Set the shell variable FAIRROOTPATH to the FairRoot installation directory
    export SIMPATH=~/fair_install/FairSoft/install
    [setenv SIMPATH ~/fair_install/FairSoft/install]
    export FAIRROOTPATH=~/fair_install/FairRoot/install
    [setenv FAIRROOTPATH ~/fair_install/FairRoot/install]
    
    cd ~/fair_install
    cp  -rf  FairRoot/templates/project_root_containers   MyTest
    cd MyTest
    ./rename.sh  MyExperiment MyExp det
    
    # Please call the script with three parameters. The first one is the
    # name of the project. The second one is the prefix in front of
    # the class names. and some directories. So this second parameter
    # shouldn't be to long. The third parameter is the name of the
    # detector you want to implement.
    # As an example the if you want to create a project for the Panda
    # experiment and you want to implement a Straw Tube Tracker (stt)
    # you would call the script in the following way.
    # ./rename.sh Panda Pnd stt
    
    mkdir build
    cd build
    cmake ../MyExperiment
    make
    . ./config.sh    [or source config.csh]

    Now you can for example simulate some events and run the event display:

    root -q ../macro/run_sim.C
    root ../macro/eventDisplay.C
    // Click on "FairEventManager" (in the top-left pane)
    // Click on the "Info" tab (on top of the bottom-left pane)
    // Increase the "Current Event" to >0 to see the events
    root [1] .q

Generating Doxygen documentation

If the flage -DBUILD_DOXYGEN=ON is set when calling cmake, the doxygen documentation will be generated when calling make. The generated html files can then be found in "build/doxygen/doc/html"

Doxygen documantation is also available online here

fairroot's People

Contributors

a2susanna avatar ababai avatar aphecetche avatar barthelemy avatar christiantackegsi avatar danielwielanek avatar davidrohr avatar denisbertini avatar dennisklein avatar evovch avatar fonsrademakers avatar fuhlig1 avatar ihrivnac avatar janmayer avatar karabowi avatar klenze avatar kresan avatar ktf avatar matthiasrichter avatar mkrzewic avatar mohammadalturany avatar nicolaswinckler avatar olantwin avatar paloizeau avatar rbx avatar sawenzel avatar sbinet avatar spflueger avatar tkollegger avatar tobiasstockmanns avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fairroot's Issues

invalid JSON configuration files

hi,

it's probably related to #301.

the following python snippet does not produce the expected configuration:

#!/usr/bin/env python2
import sys
fname = sys.argv[1]
import json
with open(fname) as f:
	d = json.load(f)
        print json.dumps(d, indent=4)

e.g.

$> python2 ./foo.py examples/MQ/6-multiple-channels/ex6-multiple-channels.json
{
    "fairMQOptions": {
        "device": {
            "id": "broadcaster1", 
            "channel": {
                "name": "broadcast", 
                "socket": {
                    "rcvBufSize": "1000", 
                    "method": "bind", 
                    "address": "tcp://*:5005", 
                    "rateLogging": "0", 
                    "type": "pub", 
                    "sndBufSize": "1000"
                }
            }
        }
    }
}

while examples/MQ/6-multiple-channels/ex6-multiple-channels.json looks like:

{
    "fairMQOptions":
    {
        "device":
        {
            "id": "sampler1",
            "channel":
            {
                "name": "data",
                "socket":
                {
                    "type": "push",
                    "method": "bind",
                    "address": "tcp://*:5555",
                    "sndBufSize": "1000",
                    "rcvBufSize": "1000",
                    "rateLogging": "0"
                }
            },
            "channel":
            {
                "name": "broadcast",
                "socket":
                {
                    "type": "sub",
                    "method": "connect",
                    "address": "tcp://localhost:5005",
                    "sndBufSize": "1000",
                    "rcvBufSize": "1000",
                    "rateLogging": "0"
                }
            }
        },

        "device":
        {
            "id": "sink1",
            "channel":
            {
                "name": "data",
                "socket":
                {
                    "type": "pull",
                    "method": "connect",
                    "address": "tcp://localhost:5555",
                    "sndBufSize": "1000",
                    "rcvBufSize": "1000",
                    "rateLogging": "0"
                }
            },
            "channel":
            {
                "name": "broadcast",
                "socket":
                {
                    "type": "sub",
                    "method": "connect",
                    "address": "tcp://localhost:5005",
                    "sndBufSize": "1000",
                    "rcvBufSize": "1000",
                    "rateLogging": "0"
                }
            }
        },

        "device":
        {
            "id": "broadcaster1",
            "channel":
            {
                "name": "broadcast",
                "socket":
                {
                    "type": "pub",
                    "method": "bind",
                    "address": "tcp://*:5005",
                    "sndBufSize": "1000",
                    "rcvBufSize": "1000",
                    "rateLogging": "0"
                }
            }
        }
    }
}

i.e. there are multiple "device" keys.
the same issue exists with multiple "socket" keys and (possibly) with multiple "channel" keys.

also, the "sndBufSize", "rcvBufSize" and "rateLogging" keys are encoded as strings whereas they should be JSON numbers.

I believe we should either don't pretend these configuration files are JSON, or (my favorite option) fix these un-JSON-y files by using "devices", "channels" and "sockets" keys.
(the sndBufSize and cie issue is a nice-to-have one.)

-s

optimized compilation of external packages result in FairBase test crashes

Fons:

Using:

compiler=Clang
debug=no
optimize=yes
geant4_download_install_data_automatic=yes
geant4_install_data_from_dir=no
make_install=yes
SIMPATH_INSTALL=/Users/rdm/FairRootExt
build_cpp11=false

I get when running "make test" in the build directory:

master [178] make test
Running tests...
Test project /Users/rdm/FairRoot/build
Start 1: run_tutorial1
1/13 Test #1: run_tutorial1 .................... Passed 0.72 sec
Start 2: run_tutorial2
2/13 Test #2: run_tutorial2 ...................._Timeout 30.02 sec
Start 3: create_digis
3/13 Test #3: create_digis .....................
Failed Required regular expression not found.Regex=[Macro finished succesfully
] 2.75 sec
Start 4: read_digis
4/13 Test #4: read_digis .......................
**Failed Required regular expression not found.Regex=[Macro finished succesfully
] 2.33 sec
Start 5: run_sim
^Cmake: *_* [test] Interrupt: 2

The build of the external packages with debug options don't show this problem.

I ask Fons to run "make Experimental", so that we get the output of the failing test.

FairRoot does not compile if GTest is not found.

Looks like GTest is now an hard requirement for FairRoot compilation. I get:

DEBUG:O2:0:   Could NOT find GTest (missing: GTEST_LIBRARY GTEST_INCLUDE_DIR
DEBUG:O2:0:   GTEST_MAIN_LIBRARY)
DEBUG:O2:0: Call Stack (most recent call first):
DEBUG:O2:0:   /opt/boxen/homebrew/Cellar/cmake/3.7.1/share/cmake/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
DEBUG:O2:0:   /opt/boxen/homebrew/Cellar/cmake/3.7.1/share/cmake/Modules/FindGTest.cmake:194 (FIND_PACKAGE_HANDLE_STANDARD_ARGS)
DEBUG:O2:0:   fairmq/test/CMakeLists.txt:9 (find_package)

Is that intended?

Running tutorials from installation directory doesn't work

Fons:

when building FairRoot using an install directory (~/FairRoot) the Tuturial3 does not work:

cd ~/FairRoot
. bin/config.sh
cd share/fairbase/example/Tutorial3
mkdir data
root
root [0] .L run_sim.C
root [1] run_sim(100)
FairRootManager::OpenOutFile("data/testrun.root")
[INFO ] Media file used : /Users/rdm/FairRoot/share/fairbase//geometry/media.geo
[FATAL ] [25.02.2014 11:49:25] [FairModule.cxx::SetGeometryFileName:165] CAVE: geometry file cave.geo not found in standard path
[FATAL ] [25.02.2014 11:49:25] We stop the execution of the process at this point.
[FATAL ] [25.02.2014 11:49:25] For later analysis we write a core dump to core_dump_32535

Running in the build directory seems to work:

cd ~/FairRootSrc
. build/config.sh
cd example/Tutorial3

note data/ already exists and run_sim.C is in macro/

root
root [0] .L macro/run_sim.C
root [1] run_sim(100)
FairRootManager::OpenOutFile("data/testrun.root")
[INFO ] Media file used : /Users/rdm/FairRootSrc/example//geometry/media.geo
[INFO ] ============== FairRunSim: Initialising simulation r

The tutorials should work in any case. Obviously there is a problem with some PATH, or the problem is in the config.sh.

Issues with FindPythia6

There are IMO a few issues with FindPythia6:

if (Pythia6_LIBRARY_DIR)                                                                            
  SET (Pythia6_LIBRARY_DIR Pythia6_LIBRARY_DIR-NOTFOUND)              
endif (Pythia6_LIBRARY_DIR)

unset a variable and leads in my cases to the weird behaviour that Pythia6 is found on the first cmake pass but not on a second. (This happens with the o2.sh recipe in AliceO2).
Why is this done?

  1. It does not look for libraries on the MAC (ending .dylib)

  2. It does not use an environment variable 'PYTHIA6_ROOT' as further hint to find things (as is for example done with PYTHIA8

Problem in FairParSet / FairParGenericSet

Compilation of pandaRoot failed with an error in FairParGenericSet that the copy constructor was implicitly deleted because the default definition would be ill-formed.

Please see attached debug output:

[ 6%] Building CXX object passive/CMakeFiles/Passive.dir/PndCave.cxx.o
In file included from /home/ikp1/stockman/PandaSoftware/pandaroot/pandaroot_dev/passive/PndCave.cxx:17:0:
/home/ikp1/stockman/PandaSoftware/pandaroot/pandaroot_dev/passive/PndGeoPassivePar.h: In copy constructor โ€˜PndGeoPassivePar::PndGeoPassivePar(const PndGeoPassivePar&)โ€™:
/home/ikp1/stockman/PandaSoftware/pandaroot/pandaroot_dev/passive/PndGeoPassivePar.h:23:133: error: use of deleted function โ€˜FairParGenericSet::FairParGenericSet(const FairParGenericSet&)โ€™
PndGeoPassivePar(const PndGeoPassivePar& L) : FairParGenericSet(L), fGeoSensNodes(L.fGeoSensNodes), fGeoPassNodes(L.fGeoPassNodes) {};
^
In file included from /home/ikp1/stockman/PandaSoftware/pandaroot/pandaroot_dev/passive/PndGeoPassivePar.h:4:0,
from /home/ikp1/stockman/PandaSoftware/pandaroot/pandaroot_dev/passive/PndCave.cxx:17:
/home/ikp1/stockman/fairroot/FairRootGit/FairRoot_install/include/FairParGenericSet.h:18:7: note: โ€˜FairParGenericSet::FairParGenericSet(const FairParGenericSet&)โ€™ is implicitly deleted because the default definition would be ill-formed:
class FairParGenericSet : public FairParSet
^
In file included from /home/ikp1/stockman/fairroot/FairRootGit/FairRoot_install/include/FairParGenericSet.h:11:0,
from /home/ikp1/stockman/PandaSoftware/pandaroot/pandaroot_dev/passive/PndGeoPassivePar.h:4,
from /home/ikp1/stockman/PandaSoftware/pandaroot/pandaroot_dev/passive/PndCave.cxx:17:
/home/ikp1/stockman/fairroot/FairRootGit/FairRoot_install/include/FairParSet.h:94:5: error: โ€˜FairParSet::FairParSet(const FairParSet&)โ€™ is private
FairParSet(const FairParSet&);
^
In file included from /home/ikp1/stockman/PandaSoftware/pandaroot/pandaroot_dev/passive/PndGeoPassivePar.h:4:0,
from /home/ikp1/stockman/PandaSoftware/pandaroot/pandaroot_dev/passive/PndCave.cxx:17:
/home/ikp1/stockman/fairroot/FairRootGit/FairRoot_install/include/FairParGenericSet.h:18:7: error: within this context
class FairParGenericSet : public FairParSet
^
make[2]: *** [passive/CMakeFiles/Passive.dir/PndCave.cxx.o] Error 1
make[1]: *** [passive/CMakeFiles/Passive.dir/all] Error 2
make: *** [all] Error 2

EventHeader fMCEntryNo is wrong by +1

The MC entry number in the event header has changed by +1 in contrary to older implementations. This causes problems with FairLinks becaus they now point to wrong event numbers if FairEventHeader::GetEntryNumber() is used to generate the FairLinks.

Missing check_system.csh

I have just installed the latest versions of FairSoft/FairRoot from the git repositories, on a Ubuntu 14.10 box. My shell is csh.
When I do
$ source [path_to_installation]/bin/FairRootConfig.csh
to setup FairRoot, I get the following error:
[path_to_installation]/bin/check_system.csh: No such file or directory.
In fact, check_system.sh is there, it looks as though check_system.csh was forgotten in the installation step.
Cheers

Review of eventdisplay CMake rules

It seems I can only include event display files/headers when Geant3 was found.

It would be nice if I could use event display files even without this requirement. The only file in the eventdisplay folder which uses Geant3 is FairMCStack. The latter is nowhere used within FairRoot and does not seem to be related to displaying events. Can we maybe just remove it completely or move the file somewhere else?

FairDb tutorial5

Hi
Would it be possible to remove the tutorial 5 ( link to FairDB ) from the next FairRoot distribution.
Thanks in advance.
Denis Bertini

Add clean functionality for external packages

Fons:
I want to clean all packages and rebuild in default mode. How do I do that. Now I just rm -rf dec13 and svn co everything again. Would be nice to have "./configure.sh clean" or distclean.

There is already a shell script make_clean.sh which should do the job.

Test if the script is doing the correct thing.

FairRootManager crashes if running without an input file

Hi FairRooters,

to analyze the test beam data of the MVD of PANDA the data is read in via an ifstream using boost::binary_iarchive. It is then analyzed with PandaRoot and stored using the FairRootManager.

This method causes a crash in the new implementation of the FairRootManager in FairRootManager::InitSource() because here a fRootFileSource is required which does not exist.

In the old version of FairRoot it was possible to run it without an input file.

Is it possible to add this functionality again to FairRoot or should the data be readin in a different way?

Cheers,

Tobias

Compiling on Arch Linux fails (c++1y, string_view)

Fairroot correctly figures out that the compiler is capable of c++1y features, but then uses 'fairsoft_config' which adds std=c++11 to the cxx flags. With that configuration the ::std::experimental::basic_string_view cannot properly compile.

A solution is to go back to fair_config and change the value of _cxxflags to ' -std=c++1y'.

examples with non-C++ devices ?

hi,

for fun (TM) I implemented a little Go based device (a sink) dialing some tcp address (over nanomsg) and printing back the message content.

It's here: https://github.com/sbinet-alice/go-ex-sink-mq

would there be interest in having such an example be incorporated into the port-folio of FairRoot examples ?
(I can flesh it out some more and have state-machine checks)

and just to make sure everything is also working in a slightly more complicated setting, I also created:
https://github.com/sbinet-alice/go-ex-processor-mq

Request: store random seed for event generation

Hi,

I'm not sure if this is already available somewhere, if so, please give me a hint where to look. Anyways: I have the case that I want to rerun the simulation chain with different settings (more specifically, disable the FairLinks to see the difference, but this shouldn't affect the feature request).

Ideally, I could use the same random seed for EvtGen to generate the same events. So far, I didn't set this in my simulation macro, therefore I don't have access to the seed used.

My request would be to store the used seed somewhere (simparams.root maybe?) and make it accessible in case one would like to rerun with the same events.

Thanks,
-Andre

Add conditional REQUIRED flag in find_package(GTest) in top level CMakeLists.txt

@dennisklein
I ran into a problem with find_package(GTest) after updating.
After commit 46ce442 the main CMakeLists.txt correctly calls find_package without the REQUIRED flag, while it is called with REQUIRED flag in fairmq/test/CMakeLists.txt, which I suppose is also correct if BUILD_TESTING is set.

I suggest to handle the checks already in the top level CMakeLists.txt accompanied with a descriptive fatal error, e.g. GTest is required for BUILD_TESTING. This can guide much faster to the underlying problem.

CMake macros should not use environment variables

IMHO, it would be good practice to remove any environment variable from CMake related macros / CMakeLists.txt. This is because we do not necessarily want to require the environment set after cmake $BUILDDIR is done.

Issues while using io manipulators to LOG() macro.

I get a:

fairmq/logger/run/testLogger.cxx|29 col 15 error| invalid operands to binary expression ('basic_record_ostream<char_type>' and '__iom_t4<char>')

whenever I have something of the kind:

LOG(INFO) << std::setfill('*')

and similar. This is on a Mac using clang and boost 1.59. Any idea of what might be wrong?

Installation problem

Dear FairRooters,

I get the following error message when I call make install in my build folder of FairRoot:
CMake Error at fairtools/cmake_install.cmake:56 (FILE):
file INSTALL cannot find
"/home/ikp1/stockman/fairroot/FairRootGit/FairRoot_build/lib/libFairTools.so.0.0.0".
Call Stack (most recent call first):
cmake_install.cmake:60 (INCLUDE)

After make this lib is still there but it vanishes when I call "make install".

I called cmake out of the build directory with the following command:
cmake -DCMAKE_INSTALL_PREFIX=/home/ikp1/stockman/fairroot/FairRootGit/FairRoot_build -G"Eclipse CDT4 - Unix Makefiles" -DCMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT=TRUE ../FairRoot

Does anyone have an idea what is going wrong?

Cheers,

Tobias

Device terminates with segmentation fault

When running a device which registers a single data handler in OnData but does not configure the channel itself, the device correctly shows an error and then waits for commands. When stopping the device with q it does not terminate, subsequent CTRL-C results in a segmentation fault.

[11:16:44][INFO] Use keys to control the state machine:
[11:16:44][INFO] [h] help, [p] pause, [r] run, [s] stop, [t] reset task, [d] reset device, [q] end, [j] init task, [i] init device
[11:16:44][INFO] DEVICE: Running...
[11:16:44][ERROR] At least one of the provided channel keys for poller initialization is invalid
[11:16:44][ERROR] Out of Range error: _Map_base::at

[11:16:44][INFO] Successfully removed shared memory after the device has stopped.
q[11:16:47][INFO] [q] end
[11:16:47][STATE] Entering READY state
[11:16:47][INFO] terminating socket test.device-commands.pub
[11:16:48][DEBUG] FairMQDevice::LogSocketRates() stopping
^CSegmentation fault

Using device https://github.com/matthiasrichter/AliceO2/blob/dev-timeframe/Utilities/DataFlow/src/SubframeBuilderDevice.cxx

And here with debug output:

[11:17:10][INFO] Use keys to control the state machine:
[11:17:10][INFO] [h] help, [p] pause, [r] run, [s] stop, [t] reset task, [d] reset device, [q] end, [j] init task, [i] init device
[11:17:10][INFO] DEVICE: Running...
[New Thread 0x7fff77fff700 (LWP 17995)]
[11:17:10][ERROR] At least one of the provided channel keys for poller initialization is invalid
[11:17:10][ERROR] Out of Range error: _Map_base::at

[11:17:10][INFO] Successfully removed shared memory after the device has stopped.
q[11:17:12][INFO] [q] end
[11:17:12][STATE] Entering READY state
[11:17:12][INFO] terminating socket test.device-commands.pub
[11:17:12][DEBUG] FairMQDevice::LogSocketRates() stopping
[Thread 0x7fff77fff700 (LWP 17995) exited]
^C
Thread 1 "SubframeBuilder" received signal SIGINT, Interrupt.
pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
185	../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: No such file or directory.
(gdb) bt
#0  pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1  0x00007ffff681391c in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2  0x00007ffff6fe6505 in FairMQFSM::FairMQFSM_::StopFct::operator()<FairMQFSM::STOP, boost::msm::back::state_machine<FairMQFSM::FairMQFSM_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>, FairMQFSM::FairMQFSM_::RUNNING_FSM, FairMQFSM::FairMQFSM_::READY_FSM> (fsm=..., this=<optimized out>)
    at /src/src/alisw/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQStateMachine.h:258
#3  boost::msm::front::Row<FairMQFSM::FairMQFSM_::RUNNING_FSM, FairMQFSM::STOP, FairMQFSM::FairMQFSM_::READY_FSM, FairMQFSM::FairMQFSM_::StopFct, boost::msm::front::none>::action_call<FairMQFSM::STOP, boost::msm::back::state_machine<FairMQFSM::FairMQFSM_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>, FairMQFSM::FairMQFSM_::RUNNING_FSM, FairMQFSM::FairMQFSM_::READY_FSM, boost::fusion::set<FairMQFSM::FairMQFSM_::ERROR_FSM, FairMQFSM::FairMQFSM_::EXITING_FSM, FairMQFSM::FairMQFSM_::OK_FSM, FairMQFSM::FairMQFSM_::RESETTING_DEVICE_FSM, FairMQFSM::FairMQFSM_::RESETTING_TASK_FSM, FairMQFSM::FairMQFSM_::PAUSED_FSM, FairMQFSM::FairMQFSM_::RUNNING_FSM, FairMQFSM::FairMQFSM_::READY_FSM, FairMQFSM::FairMQFSM_::INITIALIZING_TASK_FSM, FairMQFSM::FairMQFSM_::DEVICE_READY_FSM, FairMQFSM::FairMQFSM_::INITIALIZING_DEVICE_FSM, FairMQFSM::FairMQFSM_::IDLE_FSM, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_, boost::fusion::void_> > (tgt=..., src=..., evt=..., fsm=...) at /src/src/alisw/sw/ubuntu1604_x86-64/boost/v1.59.0_O2-2/include/boost/msm/front/functor_row.hpp:108
#4  boost::msm::back::state_machine<FairMQFSM::FairMQFSM_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>::a_row_<boost::msm::front::Row<FairMQFSM::FairMQFSM_::RUNNING_FSM, FairMQFSM::STOP, FairMQFSM::FairMQFSM_::READY_FSM, FairMQFSM::FairMQFSM_::StopFct, boost::msm::front::none> >::execute (fsm=..., 
    region_index=<optimized out>, state=<optimized out>, evt=...) at /src/src/alisw/sw/ubuntu1604_x86-64/boost/v1.59.0_O2-2/include/boost/msm/back/state_machine.hpp:606
#5  0x00007ffff6fec9da in boost::msm::back::state_machine<FairMQFSM::FairMQFSM_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>::region_processing_helper<FairMQFSM::FairMQFSM_, void>::In<mpl_::int_<0>, 0>::process<FairMQFSM::STOP> (result_=<synthetic pointer>, self_=0x63b6a0, evt=...)
    at /src/src/alisw/sw/ubuntu1604_x86-64/boost/v1.59.0_O2-2/include/boost/msm/back/state_machine.hpp:1944
#6  boost::msm::back::state_machine<FairMQFSM::FairMQFSM_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>::region_processing_helper<FairMQFSM::FairMQFSM_, void>::process<FairMQFSM::STOP> (evt=..., this=<synthetic pointer>)
    at /src/src/alisw/sw/ubuntu1604_x86-64/boost/v1.59.0_O2-2/include/boost/msm/back/state_machine.hpp:1966
#7  boost::msm::back::state_machine<FairMQFSM::FairMQFSM_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>::do_process_event<FairMQFSM::STOP> (is_direct_call=true, evt=..., this=0x63b6a0) at /src/src/alisw/sw/ubuntu1604_x86-64/boost/v1.59.0_O2-2/include/boost/msm/back/state_machine.hpp:2026
#8  boost::msm::back::state_machine<FairMQFSM::FairMQFSM_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>::do_process_helper<FairMQFSM::STOP, FairMQFSM::STOP> (is_direct_call=true, evt=..., this=0x63b6a0)
    at /src/src/alisw/sw/ubuntu1604_x86-64/boost/v1.59.0_O2-2/include/boost/msm/back/state_machine.hpp:1768
#9  boost::msm::back::state_machine<FairMQFSM::FairMQFSM_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>::process_event_internal<FairMQFSM::STOP> (this=0x63b6a0, evt=..., is_direct_call=<optimized out>)
    at /src/src/alisw/sw/ubuntu1604_x86-64/boost/v1.59.0_O2-2/include/boost/msm/back/state_machine.hpp:1998
#10 0x00007ffff6fe3271 in boost::msm::back::state_machine<FairMQFSM::FairMQFSM_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_, boost::parameter::void_>::process_event<FairMQFSM::STOP> (evt=..., this=0x63b6a0) at /src/src/alisw/sw/ubuntu1604_x86-64/boost/v1.59.0_O2-2/include/boost/msm/back/state_machine.hpp:1264
#11 FairMQStateMachine::ChangeState (this=this@entry=0x63b6a0, event=event@entry=6) at /src/src/alisw/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQStateMachine.cxx:96
#12 0x00007ffff6ffc27d in FairMQDevice::InteractiveStateLoop (this=this@entry=0x63b6a0) at /src/src/alisw/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.cxx:975
#13 0x000000000041687e in runStateMachine<FairMQDevice> (device=..., cfg=...) at /src/src/alisw/sw/ubuntu1604_x86-64/FairRoot/dev-4/include/runSimpleMQStateMachine.h:133
#14 0x000000000040ef33 in main (argc=3, argv=0x7fffffffc288) at /src/src/alisw/sw/ubuntu1604_x86-64/FairRoot/dev-4/include/runFairMQDevice.h:55
(gdb) 

Using C++11

Hello.

Is there any plan to use newer version of ROOT, ROOT6?
which means FairSoft has to include gcc 4.8 for linux system.

FairSoft dec13 already isn't considering to use 32bit system.
One simple macro can install gcc 4.8 as an external package I think.

Do you have any plan?

Fix problem in check_system.csh

Fons:

Thomas is one of the few csh users ;-) and there seems there is an error in
build/config.csh:

setenv Linux_Flavour_ "Darwin 13.0.0"
setenv System_ "x86_64"
source /Users/rdm/FairRoot/build/bin/check_system.sh
if [ "$same_system" == "1" ]; then

first the path of check_system.sh is wrong (correct in config.sh), should be:

source /Users/rdm/FairRoot/build/check_system.sh

but more importantly, we would need a check_system.csh version.

Check the script and correct the error.

build fails after rbx/shmem-zmq was merged

Hi, this is on centos7, gcc4.8.5

DEBUG:O2:0: In file included from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.cxx:32:0: DEBUG:O2:0: /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.h: In member function 'FairMQMessagePtr FairMQDevice::NewSimpleMessage(const T&) const': DEBUG:O2:0: /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.h:237:23: error: 'is_trivially_copyable' is not a member of 'std' DEBUG:O2:0: static_assert(std::is_trivially_copyable<T>::value, "The argument type for NewSimpleMessage has to be trivially copyable!"); DEBUG:O2:0: ^ DEBUG:O2:0: /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.h:237:51: error: expected primary-expression before '>' token DEBUG:O2:0: static_assert(std::is_trivially_copyable<T>::value, "The argument type for NewSimpleMessage has to be trivially copyable!"); DEBUG:O2:0: ^ DEBUG:O2:0: /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.h:237:52: error: '::value' has not been declared DEBUG:O2:0: static_assert(std::is_trivially_copyable<T>::value, "The argument type for NewSimpleMessage has to be trivially copyable!"); DEBUG:O2:0: ^ DEBUG:O2:0: /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.h:237:52: note: suggested alternatives: DEBUG:O2:0: In file included from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/bind.hpp:22:0, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/msm/back/state_machine.hpp:44, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQStateMachine.h:32, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.h:31, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.cxx:32: DEBUG:O2:0: /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/bind/bind.hpp:114:25: note: 'boost::_bi::value' DEBUG:O2:0: template<class T> class value DEBUG:O2:0: ^ DEBUG:O2:0: In file included from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/proto/expr.hpp:27:0, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/proto/core.hpp:17, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/msm/msm_grammar.hpp:14, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/msm/back/state_machine.hpp:57, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQStateMachine.h:32, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.h:31, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.cxx:32: DEBUG:O2:0: /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/proto/traits.hpp:1161:5: note: 'boost::proto::value' DEBUG:O2:0: value(Expr const &e) DEBUG:O2:0: ^ DEBUG:O2:0: In file included from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/proto/expr.hpp:27:0, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/proto/core.hpp:17, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/msm/msm_grammar.hpp:14, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/msm/back/state_machine.hpp:57, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQStateMachine.h:32, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.h:31, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.cxx:32: DEBUG:O2:0: /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/proto/traits.hpp:294:16: note: 'boost::proto::result_of::value' DEBUG:O2:0: struct value DEBUG:O2:0: ^ DEBUG:O2:0: In file included from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/proto/expr.hpp:27:0, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/proto/core.hpp:17, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/msm/msm_grammar.hpp:14, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/msm/back/state_machine.hpp:57, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQStateMachine.h:32, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.h:31, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.cxx:32: DEBUG:O2:0: /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/proto/traits.hpp:824:16: note: 'boost::proto::functional::value' DEBUG:O2:0: struct value DEBUG:O2:0: ^ DEBUG:O2:0: In file included from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/phoenix/core/value.hpp:15:0, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/phoenix/scope/local_variable.hpp:15, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/phoenix/operator.hpp:21, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/log/expressions.hpp:32, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/logger/logger.h:33, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQLogger.h:18, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQStateMachine.h:38, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.h:31, DEBUG:O2:0: from /home/mkrzewic/alfa/sw/SOURCES/FairRoot/dev/0/fairmq/FairMQDevice.cxx:32: DEBUG:O2:0: /home/mkrzewic/alfa/sw/slc7_x86-64/boost/v1.59.0_O2-1/include/boost/phoenix/core/is_value.hpp:30:16: note: 'boost::phoenix::expression::value' DEBUG:O2:0: struct value; DEBUG:O2:0: ^ DEBUG:O2:0: [ 33%] Building CXX object trackbase/CMakeFiles/TrkBase.dir/FairGeaneUtil.cxx.o DEBUG:O2:0: [ 33%] Building CXX object trackbase/CMakeFiles/TrkBase.dir/G__TrkBaseDict.cxx.o DEBUG:O2:0: make[2]: *** [fairmq/CMakeFiles/FairMQ.dir/FairMQDevice.cxx.o] Error 1 DEBUG:O2:0: make[1]: *** [fairmq/CMakeFiles/FairMQ.dir/all] Error 2 DEBUG:O2:0: make[1]: *** Waiting for unfinished jobs.... DEBUG:O2:0: [ 34%] Linking CXX shared library ../lib/libTrkBase.so DEBUG:O2:0: [ 34%] Built target TrkBase DEBUG:O2:0: make: *** [all] Error 2 DEBUG:O2:0:

FairMQDevice segmentation violation

I accidentally specified a channel address for a device with out the protocol, just the port number. This is correctly detected at device start

[ERROR] invalid channel address: "55000" (missing protocol specifier?)

But then there is a segmentation violation in FairMQDevice::LogSocketRates()

Thread 5 (Thread 0x7f643aa2d700 (LWP 19593)):
#0  0x00007f645e96a51b in __GI___waitpid (pid=19598, stat_loc=stat_loc
entry=0x7f643aa2a180, options=options
entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
#1  0x00007f645e8e3fbb in do_system (line=<optimized out>) at ../sysdeps/posix/system.c:148
#2  0x00007f6457cdd204 in TUnixSystem::StackTrace() () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/ROOT/v6-08-02_O2-3/lib/libCore.so.6.08
#3  0x00007f6457cdfb5c in TUnixSystem::DispatchSignals(ESignals) () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/ROOT/v6-08-02_O2-3/lib/libCore.so.6.08
#4  <signal handler called>
#5  0x00007f645f5a8d63 in FairMQDevice::LogSocketRates() () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/FairRoot/5ed20b7-2/lib/libFairMQ.so
#6  0x00007f645f23fc80 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x00007f64602446ba in start_thread (arg=0x7f643aa2d700) at pthread_create.c:333
#8  0x00007f645e9a582d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 4 (Thread 0x7f645cfed700 (LWP 19561)):
#0  0x00007f645e9a5e23 in epoll_wait () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f645e00c01c in zmq::epoll_t::loop() () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/ZeroMQ/v4.1.5-1/lib/libzmq.so.5
#2  0x00007f645e03710a in thread_routine () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/ZeroMQ/v4.1.5-1/lib/libzmq.so.5
#3  0x00007f64602446ba in start_thread (arg=0x7f645cfed700) at pthread_create.c:333
#4  0x00007f645e9a582d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 3 (Thread 0x7f645d7ee700 (LWP 19560)):
#0  0x00007f645e9a5e23 in epoll_wait () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f645e00c01c in zmq::epoll_t::loop() () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/ZeroMQ/v4.1.5-1/lib/libzmq.so.5
#2  0x00007f645e03710a in thread_routine () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/ZeroMQ/v4.1.5-1/lib/libzmq.so.5
#3  0x00007f64602446ba in start_thread (arg=0x7f645d7ee700) at pthread_create.c:333
#4  0x00007f645e9a582d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 2 (Thread 0x7f645dfef700 (LWP 19559)):
#0  0x00007f645e96a51b in __GI___waitpid (pid=19599, stat_loc=stat_loc
entry=0x7f645dfebe00, options=options
entry=0) at ../sysdeps/unix/sysv/linux/waitpid.c:29
#1  0x00007f645e8e3fbb in do_system (line=<optimized out>) at ../sysdeps/posix/system.c:148
#2  0x00007f6457cdd204 in TUnixSystem::StackTrace() () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/ROOT/v6-08-02_O2-3/lib/libCore.so.6.08
#3  0x00007f6457cdfb5c in TUnixSystem::DispatchSignals(ESignals) () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/ROOT/v6-08-02_O2-3/lib/libCore.so.6.08
#4  <signal handler called>
#5  0x00007f645f597bd1 in FairMQChannel::CheckCompatibility(std::vector<std::unique_ptr<FairMQMessage, std::default_delete<FairMQMessage> >, std::allocator<std::unique_ptr<FairMQMessage, std::default_delete<FairMQMessage> > > >&) const () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/FairRoot/5ed20b7-2/lib/libFairMQ.so
#6  0x00007f645f597d71 in FairMQChannel::Send(std::vector<std::unique_ptr<FairMQMessage, std::default_delete<FairMQMessage> >, std::allocator<std::unique_ptr<FairMQMessage, std::default_delete<FairMQMessage> > > >&) const () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/FairRoot/5ed20b7-2/lib/libFairMQ.so
#7  0x00007f645f8ce2ff in ALICE::HLT::WrapperDevice::Run() () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/O2/dev-1/lib/libaliceHLTwrapper.so
#8  0x00007f645f5ac9ee in FairMQDevice::RunWrapper() () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/FairRoot/5ed20b7-2/lib/libFairMQ.so
#9  0x00007f645f5b971f in FairMQFSM::FairMQFSM_::Worker() () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/FairRoot/5ed20b7-2/lib/libFairMQ.so
#10 0x00007f645f23fc80 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#11 0x00007f64602446ba in start_thread (arg=0x7f645dfef700) at pthread_create.c:333
#12 0x00007f645e9a582d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

Thread 1 (Thread 0x7f6460845740 (LWP 19558)):
#0  0x00007f645e999b5d in poll () at ../sysdeps/unix/syscall-template.S:84
#1  0x00007f645f5a692a in FairMQDevice::InteractiveStateLoop() () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/FairRoot/5ed20b7-2/lib/libFairMQ.so
#2  0x000000000040e5be in int runStateMachine<FairMQDevice>(FairMQDevice&, FairMQProgOptions&) ()
#3  0x00000000004085a1 in main ()
===========================================================


The lines below might hint at the cause of the crash.
You may get help by asking at the ROOT forum http://root.cern.ch/forum.
Only if you are really convinced it is a bug in ROOT then please submit a
report at http://root.cern.ch/bugs. Please post the ENTIRE stack trace
from above as an attachment in addition to anything else
that might help us fixing this issue.
===========================================================
#5  0x00007f645f5a8d63 in FairMQDevice::LogSocketRates() () from /home/richter/src/alisw/sw/ubuntu1604_x86-64/FairRoot/5ed20b7-2/lib/libFairMQ.so
#6  0x00007f645f23fc80 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7  0x00007f64602446ba in start_thread (arg=0x7f643aa2d700) at pthread_create.c:333
#8  0x00007f645e9a582d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:109

===========================================================

libfairmq_logger missing in action

Looks like the refactoring of the CMakeLists.txt also got rid of libfair_logger, thus breaking the AliceO2 compilation. Is there any recommended way on how to fix this for both the tagged (v-17-3) and the dev version?

Problem with libFairMQDDSConfigPlugin ?

Hi,

Trying to use the DDS control and config plugins (like in 3-dds example), I get a crash of my device

terminate called without an active exception
./mch-digit-fake-generator.sh: line 6:  1924 Aborted                 (core dumped) alienv -w /home/dds/alicesw/run3/sw setenv O2/latest -c mch-digit-fake-generator --id mch-digit-fake-generator --control libFairMQDDSControlPlugin.so --config libFairMQDDSConfigPlugin.so --mq-config /o2control/mch-digit.json

I've narrowed it down to the initialisation of the config plugin in tools/runSimpleMQStateMachine.h, as far as I can tell. Looks like the fairmqControlPluginptr is null, but the dlerror is not.

Is there already a unit test or something alike to check just the loading/init of the plugin(s) ? If not, how one should go to contribute such a test (yes, I'm willing to give it a try ;-) ) ? Are there some docs on how to contribute some tests to fairmq (or FairRoot in general) ?

I'm working on CentOS7 (docker container).

Thanks,

f_ut_utime problem

I have a problem compiling after #67.

Linking CXX executable ../../bin/fileSinkBin
../../lib/libMbsAPI.so.0.0.0: undefined reference to `f_ut_utime'
collect2: error: ld returned 1 exit status
make[2]: *** [bin/fileSinkBin] Error 1
make[1]: *** [example/Tutorial3/CMakeFiles/fileSinkBin.dir/all] Error 2
make: *** [all] Error 2

Not sure why that fails when linking fileSinkBin, since I don't seem to use the f_ut_utime, at least not directly, maybe something from the sink (fair)root code? The only place I find it used in fairbase is in MbsAPI/f_evt.c.

To make it work I had to add the source file for f_ut_utime in MbsAPI/CMakeLists.txt. I took source and header from the master branch and it worked.

PandaRoot has a "boost symbol not found error" after upgrading to latest FairRoot dev

After rebasing to latest dev I cannot run PandaRoot simulation any longer.
Here is the error message:

dlopen error: dlopen(/Users/Stockmanns/PandaSoftware/pandaRoot/build_pandaRoot_ActualTrunk/lib/libMvd.so, 9): Symbol not found: __ZN5boost7archive17archive_exceptionD1Ev
Referenced from: /Users/Stockmanns/PandaSoftware/pandaRoot/build_pandaRoot_ActualTrunk/lib/libMvd.so
Expected in: flat namespace
in /Users/Stockmanns/PandaSoftware/pandaRoot/build_pandaRoot_ActualTrunk/lib/libMvd.so
Load Error: Failed to load Dynamic link library /Users/Stockmanns/PandaSoftware/pandaRoot/build_pandaRoot_ActualTrunk/lib/libMvd.so
Error in TCint::AutoLoad: failure loading library Mvd for class PndMvdDetector
Warning in TClass::TClass: no dictionary for class PndMvdDetector is available

Pointer to the release information

I have been browsing through the FairRoot web page and came to the release information page on github. I then tried to reach it from the FairRoot home page on github, but I did not find any button or pointer. I suggest to include a link to README.md

Cheers
Matthias

ROOT 6.06.06 crashes whenever I tried to load classes

Hi.

I already posted in ROOT forum as in the link below,
https://root.cern.ch/phpBB3/viewtopic.php?f=3&t=22057&p=96516#p96516

I know ROOT 6.06.06 is not officially supported in FairRoot now, but i leave it here for future use.

I don't know what causes the problem is, but somehow ROOT 6.06.06 crashes if I load any classes (let's say A) derived from FairRoot without loading any one of FairRoot classes (B) prior to A.

That is, Just loading B crashes. It should be A -> B.

Do you have any idea?

Thank you in advance.
Geine

issues with FindGo

building with 7d66a66 (via AliBuild) I get:

DEBUG:FairRoot:7d66a66f: CMake Warning at CMakeLists.txt:146 (find_package):
DEBUG:FairRoot:7d66a66f:   By not providing "Findgo.cmake" in CMAKE_MODULE_PATH this project has asked
DEBUG:FairRoot:7d66a66f:   CMake to find a package configuration file provided by "go", but CMake did
DEBUG:FairRoot:7d66a66f:   not find one.
DEBUG:FairRoot:7d66a66f: 
DEBUG:FairRoot:7d66a66f:   Could not find a package configuration file provided by "go" with any of
DEBUG:FairRoot:7d66a66f:   the following names:
DEBUG:FairRoot:7d66a66f: 
DEBUG:FairRoot:7d66a66f:     goConfig.cmake
DEBUG:FairRoot:7d66a66f:     go-config.cmake

applying the following diff:

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b01e973..d02fe22 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -143,7 +143,7 @@ find_package(Protobuf)
 find_package(Msgpack)
 find_package(FlatBuffers)
 find_package(DDS)
-find_package(go)
+find_package(Go)

 If(WITH_DBASE)
   find_package(MYSQL)

got me:

DEBUG:FairRoot:7d66a66f: -- Looking for Go...
DEBUG:FairRoot:7d66a66f: -- Looking for Go... found GO 1.6.2
DEBUG:FairRoot:7d66a66f: -- Found Go: /usr/local/go/bin/go (found version "1.6.2") 

also, the way the examples/advanced/GoTutorial/CMakeLists.txt file is written, it will build the binaries go-sink and go-processor during cmake configure instead of during make.

my cmake-fu is still very weak.
how would one create a proper target for these binaries ?

Reduce size of FairLink

Review the member structur of FairLink. Try to optimize the memory footprint.
Probably a few fields can be encoded in smaller types, packed into one single int, or using bitsets.

eth0 should not be the default network-interface for FairMQProgOptions

As a user I would expect that I do not have to know about the network interface where I want to run. Right now fairmq/options/FairMQProgOptions.cxx uses eth0 which is only valid on a limited set of linux distributions but not on Mac or in general. A better behaviour is probably to select the interface of the default route.

FairMQParts STL iterator API

It would be a nice to have a stl iterator API for FairMQParts, so that one can do:

for (auto && part : parts) {
  char * data = part->GetData();
  ...
}

fairmq: design question about FairMQDevice

(I couldn't find the answer to this question anywhere in the fairmq tree...)

why does the FairMQDevice class have a field:

class FairMQDevice : public FairMQStateMachine, public FairMQConfigurable {
public:
std::unordered_map<std::string, std::vector<FairMQChannel>> fChannels; ///< Device channels
};

more explicitly:

  • why is it public?
  • why is it a map of strings to a vector channels? (and not just a map of strings to channels?)

thx.

Missing lib path in config.sh

I use FairRoot v-14.11 with external packages jul14p3.
In the build directory of jul14p3 are (in my case) two lib directories "lib" and "lib64".
The config.sh of fairroot v-14.11 adds just "lib" to the $LD_LIBRARY_PATH and not the "lib64".
Due to this my software crashes because i need the libprotobuf from the "lib64" directory.

Is this suppose to be like that or is the directory missing?

Go example does not compile

Fails with:

CMake Error at examples/advanced/GoTutorial/cmake_install.cmake:31 (file):
  file INSTALL cannot find
  "/Users/ktf/work/active/sw/SOURCES/FairRoot/dev/0/examples/advanced/GoTutorial//bin/go-sink".
Call Stack (most recent call first):
  examples/cmake_install.cmake:50 (include)
  cmake_install.cmake:80 (include)

Notice I do have go on my system and GOPATH is set correctly.

BranchList incomplete

After the change of the FairRootManager the BranchList only contains the branch names of the branches registered in this run (e.g. all digi branches) but not any longer the branch names of the input file (e.g. sim branches).
This causes massive problems with the usage of FairLinks because the method FairRootManager::GetBranchId(BranchName) returns in most cases -1 which breaks the links.

ZeroMQ can only be picked up from the system

I have:

DEBUG:FairRoot:0: -- Looking for ZeroMQ - Found /opt/boxen/homebrew/opt/zeromq/include
DEBUG:FairRoot:0: -- Looking for ZeroMQ - Found version 4.2.2
....
DEBUG:FairRoot:0: In file included from /Users/ktf/work/active/sw/SOURCES/FairRoot/dev/0/fairmq/zeromq/FairMQTransportFactoryZMQ.h:23:
DEBUG:FairRoot:0: /Users/ktf/work/active/sw/SOURCES/FairRoot/dev/0/fairmq/zeromq/FairMQMessageZMQ.h:21:10: fatal error: 'zmq.h' file not found
DEBUG:FairRoot:0: #include <zmq.h>

I cannot actually find where zeromq is now added to the include path...

terminate called after throwing an instance of 'std::length_error'

Hi.

I'm writing a software using the latest FairRoot.
I tried to narrow the range of energy loss of proton.
So, after run -> Init() command of FairRunSim object, I added

((TGeant4 *) gMC) -> ProcessGeantMacro("post.in");

Inside the post.in file is

/process/eLoss/minKinEnergy 10 MeV
/process/eLoss/maxKinEnergy 400 MeV

Then, the simulation codes gives an error as below.

terminate called after throwing an instance of 'std::length_error'

Is this VMC problem? I tried the same thing with the extended example of GEANT4, TestEm5, and all worked fine with it.

Thank you in advance.
Genie

event display doesn't work with XQuartz 2.7.7 or above on Mac

Hi.

After I updated xquartz to 2.7.7 and 2.7.8 beta 1, I see the error below when I open the event display window on Mac.
All the source codes are on Linux and I'm only using GUI with x forwarding.

Error in <RootX11ErrorHandler>: GLXBadContextTag (TGLWidget XID: 6292620, XREQ: 150)
TGLWidget: 6292620
TGVerticalFrame: 6292120
TGLSAFrame: 6292109
TGCompositeFrame: 6292108
TEveCompositeFrameInTab: 6292101
TGCompositeFrame: 6292100
TGTab: 6291588
TGHorizontalFrame: 6291579
TGVerticalFrame: 6291578
TGHorizontalFrame: 6291576
TGVerticalFrame: 6291565
TEveBrowser: 6291564
Error in <TGLLockable::TakeLock>: 'TGLViewerBase' unable to take DrawLock, already DrawLock
Error in <TGLLockable::TakeLock>: 'TGLViewerBase' unable to take DrawLock, already DrawLock
Error in <TGLLockable::TakeLock>: 'TGLViewerBase' unable to take DrawLock, already DrawLock
Error in <TGLLockable::TakeLock>: 'TGLViewerBase' unable to take DrawLock, already DrawLock
Error in <TGLLockable::TakeLock>: 'TGLViewerBase' unable to take DrawLock, already DrawLock

All goes well with XQuartz 2.7.6 version, so I think this problem is caused by something in the new version of XQuartz.
So, I opened a ticket on xquartz page.
http://xquartz.macosforge.org/trac/ticket/2056#comment:4

If you have any comment or clue for solving this problem, please share it.

missing header file in fairmq/logger

The installation of the dev branch fails on machines with older boost versions (< 1.56) because of a missing header file. Here is the cmake output:

CMake Error at fairmq/logger/cmake_install.cmake:39 (file):
file INSTALL cannot find
"/Users/Stockmanns/PandaSoftware/FairRoot/fairmq/logger/logger_oldboost_version.h".
Call Stack (most recent call first):
fairmq/cmake_install.cmake:269 (include)
cmake_install.cmake:78 (include)

Filename missmatch in tutorial3

The files which are created by default by Tutorial3/macro/run_sim.C and run_digi.C
are called
testparams_TGeant3.root and
testdigi_TGeant3.root

but the startAll.sh script expects files named

testparams.root
testdigi.root

Due to this is the example with startAll.sh not working without editing the file.

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.