Hi everyone,
I am compiling a small code using gcc
"#include “TFile.h”
#include “TString.h”
#include
#include “TMath.h”
#include
#include
#include <stdio.h>
#include
#include “RooGlobalFunc.h”
#include “RooDataSet.h”
#include “RooRealVar.h”
#include “RooAbsPdf.h”
#include “RooFit.h”
#include “RooFitResult.h”
#include “RooEffProd.h”
#include “RooNLLVar.h”
#include “RooWorkspace.h”
#include “RooDataHist.h”
#include “RooHistPdf.h”
double QCDEstimation(TString& file, int jets, double dR, double Electron_pt, double Muon_pt){
std::cout << dR << std::endl;
TFile f(file);
RooWorkspace* w = (RooWorkspace*)f.Get(“w”);
w->var(“njets”)->setVal(jets);
w->var(“dR”)->setVal(dR);
w->var(“e_pt”)->setVal(Electron_pt);
w->var(“m_pt”)->setVal(Muon_pt);
double factor_bin = w->function(“em_qcd_osss_binned”)->getVal();
double factor_uncert = w->function(“em_qcd_extrap_uncert”)->getVal();
double osss = factor_bin * factor_uncert;
//float osss = w->function(“em_qcd_osss_binned”).getVal()*w->funtion(“em_qcd_extrap_uncert”).getVal();
//std::cout << "OSSS Value " << osss << std::endl;
return osss;
f.Close();
}
void Test(){
TString file(“QCD/htt_scalefactors_legacy_2018.root”);
double osss = QCDEstimation(file, 0, 1.0, 100.0, 100.0);
std::cout << osss << std::endl;
}"
I compile it using the following line:
g++ -std=gnu++0x -I${ROOTINCDIR} {fileC} {ROOTLIBS} -lX11 -o ${fileEXE}
in which fileC is my Test.C (the code attached above)
I got the following errors…
Compiling…
/usr/lib/gcc/x86_64-redhat-linux/4.8.5/…/…/…/…/lib64/crt1.o: In function _start': (.text+0x20): undefined reference to
main’
/tmp/lurda/ccSWacp4.o: In function QCDEstimation(TString&, int, double, double, double)': Test.C:(.text+0xb6): undefined reference to
RooWorkspace::var(char const*) const’
Test.C:(.text+0xe1): undefined reference to RooWorkspace::var(char const*) const' Test.C:(.text+0x11c): undefined reference to
RooWorkspace::var(char const*) const’
Test.C:(.text+0x157): undefined reference to RooWorkspace::var(char const*) const' Test.C:(.text+0x192): undefined reference to
RooWorkspace::function(char const*) const’
Test.C:(.text+0x1c3): undefined reference to RooWorkspace::function(char const*) const' /tmp/lurda/ccSWacp4.o: In function
RooAbsReal::getVal(RooArgSet const*) const’:
Test.C:(.text._ZNK10RooAbsReal6getValEPK9RooArgSet[_ZNK10RooAbsReal6getValEPK9RooArgSet]+0x22): undefined reference to `RooAbsArg::_inhibitDirty’
collect2: error: ld returned 1 exit status
Compilation done.
./cmsAnalysisRunLU: line 28: ./Test.exe: No such file or directory
Can anyone help me?..
Thank you so much in advance!