I have some code that works with Fermilab D0 root version 4.x and I am trying to run it on my laptop (which is gentoo and has root 5.12/00e installed). The first problem I encountered were some problems with forward declerations of TVectorD and TMatrixD which I fixed bu including the TMaxrixDfwd.h and the Vector brother. All the libraries recompiled fine and now when I try to run the execute script I get the following error…
prophecy@prophecylaptop ~/Desktop/SVTCert $ root -b ./test.C
*******************************************
* *
* W E L C O M E to R O O T *
* *
* Version 5.12/00e 6 September 2006 *
* *
* You are welcome to visit our Web site *
* http://root.cern.ch *
* *
*******************************************
Compiled on 22 December 2006 for linux with thread support.
CINT/ROOT C/C++ Interpreter version 5.16.13, June 8, 2006
Type ? for help. Commands must be C++ statements.
Enclose multiple statements between { }.
root [0]
Processing ./test.C...
Error: Can't call vector<float,allocator<float> >::push_back(0.5) in current scope /home/prophecy/Desktop/SVTCert/././test.C:22:
Possible candidates are...
(in vector<float,allocator<float> >)
*** Interpreter error recovered ***
root [1]
The code that I am running (test.C) is the following…
{
#pragma link C++ class vector<int>;
#include "TROOT.h"
gROOT->ProcessLine(".L System8Solver_C.so");
gROOT->ProcessLine(".L system8solve_C.so");
gROOT->ProcessLine(".L d0root_find_file_cpp.so");
gROOT->ProcessLine(".L NN_TRF_cpp.so");
// gROOT->ProcessLine(".L JLIP_TRF_cpp.so");
// gROOT->ProcessLine(".L utilities_cpp.so");
// gROOT->ProcessLine(".L mc_plots_cpp.so");
// gROOT->ProcessLine(".L nt_plots_cpp.so");
// gROOT->ProcessLine(".L s8corr_plots_cpp.so");
// gROOT->ProcessLine(".L fit_info_C.so");
// gROOT->ProcessLine(".L draw_performance_curves_h.so");
// gROOT->ProcessLine(".L histo_functions_C.so");
// gROOT->ProcessLine(".L svt_cert_C.so");
std::vector<float> cuts;
cuts.push_back(0.5);
}
Now the #pragma line came from root topic
http://root.cern.ch/phpBB2/viewtopic.php?t=2683&highlight=error+call+vector+pushback+current+scope
The error only crops up when I include the NN_TRF_cpp.so library (which I have recompiled with this version of root). I am just not sure where the problem is. I have checked to see if the gentoo ebuild that I was using did the “make cintdlls” which it did do. Can anybody give me a tip on what trouble shooting step I should do next? Thanks in advance. The ability to run this code on my laptop will greatly enhance my productivity (I think |-) ).
Justace
BTW: I did try to downgrade to v4 of ROOT on my laptop but the compile failed for some reason.