Process Errors and dictionary warnings

Hi everyone,

Hopefully this problem is straightforward and I’m just silly but I’m running into a few issues while trying the load my file into ROOT (my file is named run_1348.root):

$root -l run_1348.root 

To which I get the following warnings:

_root [0]_ 
**Attaching file run_1348.root as _file0...**
**Warning in <TClass::Init>: no dictionary for class GalileoEvent is available**
**Warning in <TClass::Init>: no dictionary for class EuclidesEvent is available**
**Warning in <TClass::Init>: no dictionary for class AncillaryEvent is available**
**Warning in <TClass::Init>: no dictionary for class anAncillaryData is available**
**Warning in <TClass::Init>: no dictionary for class DetectorPresent is available**


And then I call my selector file to process the run_1348.root file (selector file called GalileoSelector.C and is in the same directory as run_1348.root file) as follows:

$GalileoTree->Process("GalileoSelector.C","beta, beta_compound,A,Z,1348_output", 50000000) 

Where beta is the average doppler correction calculated using the energy of the peaks of the alpha data, and beta_compound is the doppler correction calculated using PACE4 and the compound nucleus information. The 1348_output is the output file created after the process is run which is a root file (i.e. run_1348_output.root) and that 50000000 is the number of events in the run_1348.root file (rounded up mind you).

I have a Makefile that is in the same directory as the other files that creates the needed dictionaries (which is why I don’t understand those warnings above about dictionaries) and then creates the associated libraries which runs fine and does what it’s supposed to.


The errors that I get are:

Error in <TBufferFile::ReadObject>: trying to read an emulated class (DetectorPresent) to store in a compiled pointer (TObject)
IncrementalExecutor::executeFunction: symbol '_ZN24EvapKinematicsCalculator11getCosThetaE8TVector3' unresolved while linking function '_GLOBAL__sub_I_cling_module_82'!

You are probably missing the definition of EvapKinematicsCalculator::getCosTheta(TVector3)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN24EvapKinematicsCalculator15getBetaResidualEv' unresolved while linking function '_GLOBAL__sub_I_cling_module_82'!
You are probably missing the definition of EvapKinematicsCalculator::getBetaResidual()
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN24EvapKinematicsCalculator21addChargedParticleRadEiifff' unresolved while linking function '_GLOBAL__sub_I_cling_module_82'!
You are probably missing the definition of EvapKinematicsCalculator::addChargedParticleRad(int, int, float, float, float)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN24EvapKinematicsCalculator8newEventEv' unresolved while linking function '_GLOBAL__sub_I_cling_module_82'!
You are probably missing the definition of EvapKinematicsCalculator::newEvent()
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol '_ZN24EvapKinematicsCalculatorC1Eiif' unresolved while linking function '_GLOBAL__sub_I_cling_module_82'!
You are probably missing the definition of EvapKinematicsCalculator::EvapKinematicsCalculator(int, int, float)
Maybe you need to load the corresponding shared library?
Starting the GalileoSelector with the compound nucleus 0n
Done
Initialization done
Checking the detectors present in the data: 
**#0  0x00007f282dfac27c in waitpid () from /lib64/libc.so.6**
**#1  0x00007f282df2fc72 in do_system () from /lib64/libc.so.6**
**#2  0x00007f282efad699 in TUnixSystem::StackTrace() () from /home/shawnna/root_v6.08.06/root/lib/libCore.so**
**#3  0x00007f282b587b15 in cling::MultiplexInterpreterCallbacks::PrintStackTrace() () from /home/shawnna/root_v6.08.06/root/lib/libCling.so**
**#4  0x00007f282b587488 in cling_runtime_internal_throwIfInvalidPointer () from /home/shawnna/root_v6.08.06/root/lib/libCling.so**
**#5  0x00007f2815b9b312 in ?? ()**
**#6  0x00000000095a0270 in ?? ()**
**#7  0x00007f28130ea000 in ?? ()**
**#8  0x00007f282ecd1238 in ?? () from /lib64/libstdc++.so.6**
**#9  0x00007f282ecd19b0 in vtable for std::basic_streambuf<char, std::char_traits<char> > () from /lib64/libstdc++.so.6**
**#10 0x00000000095deb19 in ?? ()**
**#11 0x00000000095deb19 in ?? ()**
**#12 0x00000000095deb19 in ?? ()**
**#13 0x00000000095deb18 in ?? ()**
**#14 0x00000000095decdd in ?? ()**
**#15 0x00000000095ded18 in ?? ()**
**#16 0x00007f282eceae00 in ?? () from /lib64/libstdc++.so.6**
**#17 0x0000000000000010 in ?? ()**
**#18 0x00000000095deb18 in ?? ()**
**#19 0x00007f282eccef50 in vtable for std::ios_base () from /lib64/libstdc++.so.6**
**#20 0x0000000000000006 in ?? ()**
**#21 0x0000000000000000 in ?? ()**
Error in <HandleInterpreterException>: Trying to dereference null pointer or trying to call routine taking non-null arguments.
Execution of your code was aborted.
In file included from input_line_46:1:
In file included from /home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.C:25:
**/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.h:333:49: warning: **
**      null passed to a callee that requires a non-null argument [-Wnonnull]**
**  DetectorPresent *det_pres = (DetectorPresent*)lnk->GetObject();**
**                                                ^~~**
_root [2]_ .q


I’m not completely fluent with ROOT or C coding in general so I was hoping for some guidance with the errors listed above (like say the dereference null pointer? the warnings dealing with the dictionaries? ). All the files (run_1348.root, GalileoSelector.C, Makefile, dictionaries, libraries, etc. run properly on the computer where they originated from but I’m using a different machine trying to run the same code). That’s why I think it has to deal with the way I’m trying to run it and not the code itself but I’m not sure.


My computer:

ROOT version 6.08.06 
CENT OS 7
gcc 4.8.5
Virtual Machine: VMware - Fusion - 8.5.8 (which is running on a macOS Sierra version 10.12.6) 

The original computer:

gcc 4.8.5 
operating system: Ubuntu 16.04.2 
pretty sure the same ROOT version 


Any help is beyond appreciated, thanks!

-Shawnna M

Hi,

you need to make sure that the libraries containing the dictionaries for the classes the instances of which you persistified are loaded.
You can load the libraries manually via the gSystem->Load routine or, better, make sure you create rootmap files together with the dictionaries and that they sit in the library path.

Cheers,
D

Hi,

I’ll try this first thing tomorrow morning and thank you very much for your
help! I really appreciate it!

Shawnna

Hi Danilo, I did what you recommended the other day with the gSystem method and that error is gone now which is great and thanks again but sadly now I get a whole new set of errors (that I have briefly shown below as if I showed the whole thing, I think it would fill up the page and plus many of the errors are the same just referring to different line numbers in a different .h file)

[shawnna@localhost FullGalileo]$ root
root [0] gSystem->Load("libDetectorPresent.so")
(int) 0
root [1] gSystem->Load("libAncillaryEvent.so")
(int) 0
root [2] gSystem->Load("libGalileoEvent.so")
(int) 0
root [3] gSystem->Load("libEuclidesEvent.so")
(int) 0
root [4] TFile *_file0 = TFile::Open("run_1348.root")
(TFile *) 0x2691580
root [5] GalileoTree->Process("GalileoSelector.C","beta, beta_compound,A,Z,1348_output",45514150)

In file included from DetectorPresentDict dictionary payload:7:
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/DetectorPresent.h:6:7: error: 
      redefinition of 'DetectorPresent'
class DetectorPresent : public TObject{
      ^
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/DetectorPresent.h:6:7: note: 
      previous definition is here
class DetectorPresent : public TObject{
      ^
Error in <TInterpreter::AutoParse>: Error parsing payload code for class DetectorPresent with content:

**#line 1 "DetectorPresentDict dictionary payload"**

**#ifndef G__VECTOR_HAS_CLASS_ITERATOR**
  **#define G__VECTOR_HAS_CLASS_ITERATOR 1**
**#endif**

**#define _BACKWARD_BACKWARD_WARNING_H**
**#include "DetectorPresent.h"**

**#undef  _BACKWARD_BACKWARD_WARNING_H**

/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/DetectorPresent.h:24:29: error: 
      expected parameter declarator
  ClassDef(DetectorPresent, 1);
                            ^
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/DetectorPresent.h:24:29: error: 
      expected ')'
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/DetectorPresent.h:24:11: note: 
      to match this '('
  ClassDef(DetectorPresent, 1);
          ^
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/DetectorPresent.h:24:3: error: 
      C++ requires a type specifier for all declarations
  ClassDef(DetectorPresent, 1);
  ^
Warning in <TInterpreter::TCling::RegisterModule>: Problems in compiling forward declarations for module GalTreeEventDict: '
**#line 1 "GalTreeEventDict dictionary forward declarations' payload"**
**#pragma clang diagnostic ignored "-Wkeyword-compat"**
**#pragma clang diagnostic ignored "-Wignored-attributes"**
**#pragma clang diagnostic ignored "-Wreturn-type-c-linkage"**
extern int __Cling_Autoloading_Map;
class __attribute__((annotate("$clingAutoload$GalTreeEvent.h")))  GalTreeEvent;
namespace std{template <typename _Tp> class __attribute__((annotate("$clingAutoload$bits/allocator.h")))  __attribute__((annotate("$clingAutoload$string")))  allocator;
}
'
In file included from input_line_112:1:
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalTreeEvent.h:55:3: error: 
      unknown type name 'ClassDef'
  ClassDef(GalTreeEvent);
  ^
Error in <TInterpreter::AutoParse>: Error parsing payload code for class GalTreeEvent with content:

**#line 1 "GalTreeEventDict dictionary payload"**

**#ifndef G__VECTOR_HAS_CLASS_ITERATOR**
**  #define G__VECTOR_HAS_CLASS_ITERATOR 1**
**#endif**

**#define _BACKWARD_BACKWARD_WARNING_H**
**#include "GalTreeEvent.h"**

**#undef  _BACKWARD_BACKWARD_WARNING_H**

In file included from input_line_58:1:
In file included from /home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.C:25:
In file included from /home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.h:68:
./GalTreeEvent.h:55:3: error: unknown type name 'ClassDef'
  ClassDef(GalTreeEvent);
  ^
Warning in <TInterpreter::TCling::RegisterModule>: Problems in compiling forward declarations for module EuclTreeEventDict: '
**#line 1 "EuclTreeEventDict dictionary forward declarations' payload"**
**#pragma clang diagnostic ignored "-Wkeyword-compat"**
**#pragma clang diagnostic ignored "-Wignored-attributes"**
**#pragma clang diagnostic ignored "-Wreturn-type-c-linkage"**
extern int __Cling_Autoloading_Map;
class __attribute__((annotate("$clingAutoload$EuclTreeEvent.h")))  EuclTreeEvent;
namespace std{template <typename _Tp> class __attribute__((annotate("$clingAutoload$bits/allocator.h")))  __attribute__((annotate("$clingAutoload$string")))  allocator;
}
'
In file included from input_line_116:1:
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/EuclTreeEvent.h:39:27: error: 
      expected parameter declarator
  ClassDef(EuclTreeEvent, 1);
                          ^
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/EuclTreeEvent.h:39:27: error: 
      expected ')'
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/EuclTreeEvent.h:39:11: note: 
      to match this '('
  ClassDef(EuclTreeEvent, 1);
          ^
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/EuclTreeEvent.h:39:3: error: 
      C++ requires a type specifier for all declarations
  ClassDef(EuclTreeEvent, 1);
  ^
Error in <TInterpreter::AutoParse>: Error parsing payload code for class EuclTreeEvent with content:

**#line 1 "EuclTreeEventDict dictionary payload"**

**#ifndef G__VECTOR_HAS_CLASS_ITERATOR**
**  #define G__VECTOR_HAS_CLASS_ITERATOR 1**
**#endif**

**#define _BACKWARD_BACKWARD_WARNING_H**
**#include "EuclTreeEvent.h"**

**#undef  _BACKWARD_BACKWARD_WARNING_H**

In file included from input_line_58:1:
In file included from /home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.C:25:
In file included from /home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.h:69:
./EuclTreeEvent.h:39:27: error: expected parameter declarator
  ClassDef(EuclTreeEvent, 1);
                          ^
./EuclTreeEvent.h:39:27: error: expected ')'
./EuclTreeEvent.h:39:11: note: to match this '('
  ClassDef(EuclTreeEvent, 1);
          ^
./EuclTreeEvent.h:39:3: error: C++ requires a type specifier for all
      declarations
  ClassDef(EuclTreeEvent, 1);
  ^
Warning in <TInterpreter::TCling::RegisterModule>: Problems in compiling forward declarations for module NWTreeEventDict: '
**#line 1 "NWTreeEventDict dictionary forward declarations' payload"**
**#pragma clang diagnostic ignored "-Wkeyword-compat"**
**#pragma clang diagnostic ignored "-Wignored-attributes"**
**#pragma clang diagnostic ignored "-Wreturn-type-c-linkage"**
extern int __Cling_Autoloading_Map;
class __attribute__((annotate("$clingAutoload$NWTreeEvent.h")))  NWTreeEvent;
namespace std{template <typename _Tp> class __attribute__((annotate("$clingAutoload$bits/allocator.h")))  __attribute__((annotate("$clingAutoload$string")))  allocator;
}
'
In file included from input_line_58:1:
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.C:58:20: error: 
      cannot initialize object parameter of type 'const TSelector' with an
      expression of type 'GalileoSelector'
  TString option = GetOption();
                   ^~~~~~~~~
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.C:163:5: error: 
      cannot initialize object parameter of type 'TSelector' with an
      expression of type 'GalileoSelector'
    Abort(os.str().c_str());
    ^~~~~
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.C:209:5: error: 
      cannot initialize object parameter of type 'TSelector' with an
      expression of type 'GalileoSelector'
    Abort(os.str().c_str());
    ^~~~~
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.C:257:5: error: 
      cannot initialize object parameter of type 'TSelector' with an
      expression of type 'GalileoSelector'
    Abort(os.str().c_str());
    ^~~~~
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.C:339:5: error: 
      cannot initialize object parameter of type 'TSelector' with an
      expression of type 'GalileoSelector'
    Abort(os.str().c_str());
    ^~~~~
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.C:608:20: error: 
      cannot initialize object parameter of type 'const TSelector' with an
      expression of type 'GalileoSelector'
  TString option = GetOption();
                   ^~~~~~~~~
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.C:609:21: error: 
      cannot initialize object parameter of type 'const TSelector' with an
      expression of type 'GalileoSelector'
  TString Options = GetOption();
                    ^~~~~~~~~

/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.C:1399:11: error: 
      no viable overloaded '='
  tmp_ADC = ((*AGAVA_event))->GetVMEData();
  ~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../include/c++/4.8.5/bits/stl_vector.h:427:7: note: 
      candidate function not viable: no known conversion from
      'vector<[...], allocator<...>>' to 'const vector<[...],
      allocator<...>>' for 1st argument
      operator=(const vector& __x);
      ^
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../include/c++/4.8.5/bits/stl_vector.h:439:7: note: 
      candidate function not viable: no known conversion from
      'vector<[...], allocator<...>>' to 'vector<[...], allocator<...>>'
      for 1st argument
      operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
      ^
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../include/c++/4.8.5/bits/stl_vector.h:461:7: note: 
      candidate function not viable: no known conversion from
      'std::vector<anAncillaryData>' to 'initializer_list<value_type>'
      (aka 'initializer_list<anAncillaryData>') for 1st argument
      operator=(initializer_list<value_type> __l)
      ^
In file included from input_line_58:1:
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/GalileoSelector.C:1975:13: error: 
      no viable overloaded '='
    cal_par = LUT_NW[domain]->GetCalibrFactor(subdomain);
    ~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../include/c++/4.8.5/bits/stl_vector.h:427:7: note: 
      candidate function not viable: no known conversion from
      'vector<[...], allocator<...>>' to 'const vector<[...],
      allocator<...>>' for 1st argument
      operator=(const vector& __x);
      ^
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../include/c++/4.8.5/bits/stl_vector.h:439:7: note: 
      candidate function not viable: no known conversion from
      'vector<[...], allocator<...>>' to 'vector<[...], allocator<...>>'
      for 1st argument
      operator=(vector&& __x) noexcept(_Alloc_traits::_S_nothrow_move())
      ^
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/../../../../include/c++/4.8.5/bits/stl_vector.h:461:7: note: 
      candidate function not viable: no known conversion from
      'std::vector<float>' to 'initializer_list<value_type>' (aka
      'initializer_list<float>') for 1st argument
      operator=(initializer_list<value_type> __l)
      ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
Error in <TSelector::GetSelector>: The file GalileoSelector.C does not define a class named GalileoSelector.
(Long64_t) -1
root [6]  .q


I am confused about those ClassDef errors as they have basically the same form as:
https://root.cern.ch/how/how-use-classdef-preprocessor-macro
My setup is slightly different with:

class GalTreeEvent : public TObject {
public :
GalTreeEvent() {;}
~GalTreeEvent() {;}

stuff here, etc, etc, etc

private:
ClassDef(GalTreeEvent, 1);

But the ClassDef looks right to me (maybe it should be protected and not private??), but I get those errors listed above so I’m confused??


I’m also confused about the c++ stl_vector errors. I have been trying the change the code slightly (within the .h files), as well as looking up what these errors all mean without much success. Any help would be greatly appreciated and thanks again for your previous help!

Shawnna M

Hi Shawnna,

the mail contains quite a lot of info. Let’s try to tackle the first problem. It seems that headers are parsed twice: do you have include guards in them?

Cheers,
D

Hi,

I will answer your question with a question… what would that look like?? Like the following maybe?

#ifndef HEADER_H
#define HEADER_H

// Rest of header file contents go here

#endif

Taken from: https://stackoverflow.com/questions/10077025/ifndef-syntax-for-include-guards-in-c

1 Like

yes, that is an include guard.

I appear to have those lines on many of my .h files such GalTreeEvent.h, EuclTreeEvent.h, NWTreeEvent.h, etc but I don’t have it on my DetectorPresent.h file which is maybe why it’s popping up twice?? The only things I’m including for DetectorPresent.h is “TObject.h”, ,, and .

Sorry I used <> there (map, vector, and iostream)

Hi,

I am not sure I understand. Do all headers feature include guards?

Cheers,
D

Hi again,

Sorry that I was unclear, I’ll get my bearings first. Are we trying to address the first error being… (see below) ?

In file included from DetectorPresentDict dictionary payload:7:
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/DetectorPresent.h:6:7: error:
redefinition of 'DetectorPresent’
class DetectorPresent : public TObject{
^
/home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/DetectorPresent.h:6:7: note:
previous definition is here
class DetectorPresent : public TObject{
^
Error in : Error parsing payload code for class DetectorPresent with content:


Which is complaining about the DetectorPresent.h file which does not have an include guard that I can tell. As for my other header files of which there are many, about 37 out of 106 files are .h files, many of them appear to have include guards, but some do not have include guards.

Thank you for your help and patience!

Shawnna

Hi,

please add include guards to solve this issue.

Cheers,
Danilo

Hi,

Well I have added include guards to all the header files without them and I got a new set of errors which I will take as a good sign as there appears to be much less to deal with now (so thank you very much). The new errors are shown below:


IncrementalExecutor::executeFunction: symbol ‘_ZN24EvapKinematicsCalculator11getCosThetaE8TVector3’ unresolved while linking function ‘_GLOBAL__sub_I_cling_module_94’!
You are probably missing the definition of EvapKinematicsCalculator::getCosTheta(TVector3)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol ‘_ZN24EvapKinematicsCalculator15getBetaResidualEv’ unresolved while linking function ‘_GLOBAL__sub_I_cling_module_94’!
You are probably missing the definition of EvapKinematicsCalculator::getBetaResidual()
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol ‘_ZN24EvapKinematicsCalculator21addChargedParticleRadEiifff’ unresolved while linking function ‘_GLOBAL__sub_I_cling_module_94’!
You are probably missing the definition of EvapKinematicsCalculator::addChargedParticleRad(int, int, float, float, float)
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol ‘_ZN24EvapKinematicsCalculator8newEventEv’ unresolved while linking function ‘_GLOBAL__sub_I_cling_module_94’!
You are probably missing the definition of EvapKinematicsCalculator::newEvent()
Maybe you need to load the corresponding shared library?
IncrementalExecutor::executeFunction: symbol ‘_ZN24EvapKinematicsCalculatorC1Eiif’ unresolved while linking function ‘_GLOBAL__sub_I_cling_module_94’!
You are probably missing the definition of EvapKinematicsCalculator::EvapKinematicsCalculator(int, int, float)
Maybe you need to load the corresponding shared library?
Starting the GalileoSelector with the compound nucleus 0n
Done
Initialization done
Checking the detectors present in the data:
7
File first time stamp: 9837186893651
The tree contains data coming from:
GALILEO
Error in TFile::TFile: file cut_EeEw_galileo.root does not exist
Info in GalileoSelector::AbortProcess: Could not open LUT_GALILEO.dat and I need it ;(

Reading GALILEO LookUpTable … done
EUCLIDES
Error in TFile::TFile: file cut_charged_particles.root does not exist
Info in GalileoSelector::AbortProcess: Could not open LUT_EUCLIDES.dat and I need it ;(

Reading Euclides LookUpTable … done
NEUTRON WALL
Error in TFile::TFile: file cut_neutrons.root does not exist
Info in GalileoSelector::AbortProcess: Could not open LUT_NW.dat and I need it ;(

Reading NeutronWall LookUpTable … done
Error opening nw2_list

*** Break *** segmentation violation

===========================================================
There was a crash.
This is the entire stack trace of all threads:

#0 0x00007fc8fc41327c in waitpid () from /lib64/libc.so.6
#1 0x00007fc8fc396c72 in do_system () from /lib64/libc.so.6
#2 0x00007fc8fd414699 in TUnixSystem::StackTrace() () from /home/shawnna/root_v6.08.06/root/lib/libCore.so
#3 0x00007fc8fd416f6c in TUnixSystem::DispatchSignals(ESignals) () from /home/shawnna/root_v6.08.06/root/lib/libCore.so
#4
#5 0x00007fc8fc3bfa84 in fclose

GLIBC_2.2.5 () from /lib64/libc.so.6
#6 0x00007fc8e299bc27 in ?? ()
#7 0x0000000000000000 in ?? ()

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 0x00007fc8fc3bfa84 in fclose

GLIBC_2.2.5 () from /lib64/libc.so.6
#6 0x00007fc8e299bc27 in ?? ()
#7 0x0000000000000000 in ?? ()

The LookUpTable is a folder containing .dat files but apparently the code can’t seem to find them??

Thank you again for your help!!

Shawnna

Hi Danilo!

I don’t want to get too excited but after changing some pathways to the LookUpTable, the code is processing now. I’m not sure it’s going to work perfectly but I have high hopes. Thank you so much for your help and hopefully I’m all out of problems for you to deal with. Thanks a million!!!

Shawnna

Hi @dpiparo,

There’s one thing that’s bothering me about this program, it’s processing the data beautifully (thank you again for your help) but there are a few errors right before it starts processing that are concerning me. Errors shown below in bold (sorry the post looks really long, I swear it’s only 5 errors that are basically the same thing just different names):

[shawnna@localhost FullGalileo]$ root

root [0] gSystem->Load("libDetectorPresent.so")
(int) 0
root [1] gSystem->Load("libAncillaryEvent.so")
(int) 0
root [2] gSystem->Load("libGalileoEvent.so")
(int) 0
root [3] gSystem->Load("libEuclidesEvent.so")
(int) 0
root [4] TFile::Open("run_1348.root")
(TFile *) 0x3dc58b0
root [5] GalileoTree->Process("GalileoSelector.C","beta, beta_compound,A,Z,try_output",50000000)

**IncrementalExecutor::executeFunction: symbol '_ZN24EvapKinematicsCalculator11getCosThetaE8TVector3' unresolved while linking function '_GLOBAL__sub_I_cling_module_95'!**
**You are probably missing the definition of EvapKinematicsCalculator::getCosTheta(TVector3)**
**Maybe you need to load the corresponding shared library?**
**IncrementalExecutor::executeFunction: symbol '_ZN24EvapKinematicsCalculator15getBetaResidualEv' unresolved while linking function '_GLOBAL__sub_I_cling_module_95'!**
**You are probably missing the definition of EvapKinematicsCalculator::getBetaResidual()**
**Maybe you need to load the corresponding shared library?**
**IncrementalExecutor::executeFunction: symbol '_ZN24EvapKinematicsCalculator21addChargedParticleRadEiifff' unresolved while linking function '_GLOBAL__sub_I_cling_module_95'!**
**You are probably missing the definition of EvapKinematicsCalculator::addChargedParticleRad(int, int, float, float, float)**
**Maybe you need to load the corresponding shared library?**
**IncrementalExecutor::executeFunction: symbol '_ZN24EvapKinematicsCalculator8newEventEv' unresolved while linking function '_GLOBAL__sub_I_cling_module_95'!**
**You are probably missing the definition of EvapKinematicsCalculator::newEvent()**
**Maybe you need to load the corresponding shared library?**
**IncrementalExecutor::executeFunction: symbol '_ZN24EvapKinematicsCalculatorC1Eiif' unresolved while linking function '_GLOBAL__sub_I_cling_module_95'!**
**You are probably missing the definition of EvapKinematicsCalculator::EvapKinematicsCalculator(int, int, float)**
**Maybe you need to load the corresponding shared library?**

Starting the GalileoSelector with the compound nucleus 0n
Done
Initialization done
Checking the detectors present in the data: 
7
File first time stamp: 9837186893651
The tree contains data coming from: 
	 GALILEO 
Reading GALILEO LookUpTable ...  done
	 EUCLIDES
Reading Euclides LookUpTable ... done
	 NEUTRON WALL
Reading NeutronWall LookUpTable ... done
Reading nw2_list... 2450 lines read 
NW DTOF limists for combinations... 137 lines read 
Reading TAC LookUpTable ...done
0 / 45541502 ====> 0 %  (0 ev/s, inf:-8 min ETA)Your tree contains 45541502 entries 
100000 / 45541502 ====> 0 %  (5704.51 ev/s, 133:45 min ETA)^Z
**PROCESSING DATA HERE WONDEFULLY**


Those lines that read “Maybe you need to load the corresponding shared library?” are built into the code somewhere (I believe) and got my thinking that if I went and found the library and loaded it into ROOT using the gSystem method, then everything would be good because all those errors listed above are looking and not finding functions located in EvapKinematicsCalculator.cpp (which has the partner header file called EvapKinematicsCalculator.h). But there is no EvapKinematicsCalculator.so file and I thought maybe I could make one using the following method below on the command line:


[shawnna@localhost FullGalileo]$ g++ -shared -o libEvapKinematicsCalculator.so root-config --ldflags -std=c++11 -fPIC -O3 -Iroot-config --incdir EvapKinematicsCalculator.h EvapKinematicsCalculator.cpp

[shawnna@localhost FullGalileo]$ root

root [0] gSystem->Load(“libEvapKinematicsCalculator.so”)

cling::DynamicLibraryManager::loadLibrary(): /home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/libEvapKinematicsCalculator.so: undefined symbol: _ZTV14TLorentzVector
(int) -1

root [1] .q

Note: a file called libEvapKinematicsCalculator.so is actually created and is 19.7 kB but obviously by the errors above, is not good enough. And the reason I don’t want to just leave those errors alone even though the program is running is because I fear those errors will come back and haunt me (or someone else) one day.

Thank you again for everything and hopefully this is something simple that I’m just not seeing.

-Shawnna M

Hi,

what about tackling the two categories of errors separately?

Category one: "you are probably missing the definition of …"
Here you need to load the library which contains the implementation of the methods listed such as “EvapKinematicsCalculator::getCosTheta”.

Category two: "cling::DynamicLibraryManager::loadLibrary(): /home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/libEvapKinematicsCalculator.so: undefined symbol: _ZTV14TLorentzVector"
This means that the library you built is not linked against the library of TLorentzVector, libPhysics . Therefore the compilation line should look like:

g++ -shared -o libEvapKinematicsCalculator.so `root-config --ldflags --cflags --libs` -l Physics -fPIC -O3  EvapKinematicsCalculator.h EvapKinematicsCalculator.cpp

Cheers,
D

Hi,

I tried dealing with category 2 and got the following (using the line you gave me to create the libEvapKinCalc.so file):

[shawnna@localhost FullGalileo]$ root
Loaded the old libraries as listed in the post above here.
root [4] gSystem->Load(“libEvapKinematicsCalculator.so”)
(int) 0
root [5] TFile::Open(“run_1348.root”)
(TFile *) 0x221ba50
root [6] GalileoTree->Process(“GalileoSelector.C”,“beta, beta_compound,A,Z,try_output”,50000000)
Starting the GalileoSelector with the compound nucleus 0n
/home/shawnna/root_v6.08.06/root/bin/root.exe: symbol lookup error: /home/shawnna/RootFiles/SortCodes/GalileoSoftware/rootselectors/FullGalileo/libEvapKinematicsCalculator.so: undefined symbol: _ZN9MassTableC1ESs


The libEvapKinematicsCalculator.so appeared to load correctly (with the int 0) but then I get the error above.

As for dealing with category 1, I have tried loading all the libraries I have at my disposal but got the same error as I listed above in this post (meaning not the original errors I posted 4 hours ago, so that’s something positive I think).

Thanks again for the help!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.

The compiler claims that

MassTable::MassTable(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)

is not implemented. Is this implemented? Is the library containing the implementation loaded?

Cheers,
Philippe.