#ifndef customPdfs_h #define customPdfs_h //#include //#include #include #include #include #include size_t WriteCallback(void *contents, size_t size, size_t nmemb, std::string *output) { size_t totalSize = size * nmemb; output->append((char*)contents, totalSize); return totalSize; } //inline double evaluateNLL(double ctw, double citw, double cptb, double cbw, double cibw, double cqq, double f1, double f2, double f2) //{ //gInterpreter->ProcessLine(".I"); //void *p_libraryHandle = dlopen("cppfit/libcppfit.so", RTLD_LAZY | RTLD_GLOBAL); //if (!p_libraryHandle) std::cout << dlerror() << std::endl; //void* p_createFunction = reinterpret_cast (dlsym(p_libraryHandle, "N2LL")); //void *f = dlsym(p_libraryHandle, "createN2LL"); //if (!f) std::cerr << dlerror() << std::endl; //typedef void * (*CreationMethod) (); //CreationMethod F = (CreationMethod) f; //N2LL* n2ll = new N2LL(); //N2LL * n2ll = (N2LL*) F(); //n2ll->initialize("/eos/atlas/atlascerngroupdisk/phys-top/singletop/fourAngleDatabases/v34v7v1/json/asimov.json", true); //double values[] = {a, b, c, d, e, g}; //Eigen::VectorXd pars = Eigen::Map(values, 6); //return n2ll->operator()(pars); //return -1; //} //inline double evaluateNLL(double ctw, double citw, double cptb, double cbw, double cibw, double cqq, double f1, double f2, double f3) { inline double evaluateNLL(double a, double b, double c, double d, double e, double f, double f1, double f2, double f3, double var0, double var1, double var2, double var3, double var4, double var5, double var6, double var7, double var8, double var9, double var10, double var11, double var12, double var13, double var14, double var15, double var16, double var17, double var18, double var19, double var20, double var21, double var22, double var23, double var24, double var25, double var26, double var27, double var28, double var29, double var30, double var31, double var32, double var33, double var34, double var35, double var36, double var37, double var38, double var39, double var40, double var41, double var42, double var43, double var44, double var45, double var46, double var47, double var48, double var49, double var50, double var51, double var52, double var53, double var54, double var55, double var56, double var57, double var58, double var59, double var60, double var61, double var62, double var63, double var64, double var65, double var66, double var67, double var68, double var69, double var70, double var71, double var72, double var73, double var74, double var75, double var76, double var77, double var78, double var79, double var80, double var81, double var82, double var83, double var84, double var85, double var86, double var87, double var88, double var89, double var90, double var91, double var92, double var93, double var94, double var95, double var96, double var97, double var98, double var99, double var100, double var101, double var102, double var103, double var104, double var105, double var106, double var107, double var108, double var109, double var110, double var111, double var112, double var113, double var114, double var115, double var116, double var117, double var118, double var119, double var120, double var121, double var122, double var123, double var124, double var125, double var126, double var127, double var128, double var129, double var130, double var131, double var132, double var133, double var134, double var135, double var136, double var137, double var138, double var139, double var140, double var141, double var142, double var143, double var144, double var145, double var146, double var147, double var148, double var149, double var150, double var151, double var152, double var153, double var154, double var155, double var156, double var157, double var158, double var159, double var160, double var161, double var162, double var163, double var164, double var165, double var166, double var167, double var168, double var169, double var170, double var171, double var172, double var173, double var174, double var175, double var176, double var177, double var178, double var179, double var180, double var181, double var182, double var183, double var184, double var185, double var186, double var187, double var188, double var189, double var190, double var191, double var192, double var193) { //inline double evaluateNLL(const std::vector& parameters) { std::string url = "http://pc-emf-hls-01:17676"; // std::string postFields = std::to_string(ctw) + "," + std::to_string(citw) + "," + std::to_string(cptb) + "," + // std::to_string(cbw) + "," + std::to_string(cibw) + "," + std::to_string(cqq) + "," + // std::to_string(f1) + "," + std::to_string(f2) + "," + std::to_string(f3); std::string postFields = std::to_string(a) + "," + std::to_string(b) + "," + std::to_string(c) + "," + std::to_string(d) + "," + std::to_string(e) + "," + std::to_string(f) + "," + std::to_string(f1) + "," + std::to_string(f2) + "," + std::to_string(f3) + "," + std::to_string(var0) + "," + std::to_string(var1) + "," + std::to_string(var2) + "," + std::to_string(var3) + "," + std::to_string(var4) + "," + std::to_string(var5) + "," + std::to_string(var6) + "," + std::to_string(var7) + "," + std::to_string(var8) + "," + std::to_string(var9) + "," + std::to_string(var10) + "," + std::to_string(var11) + "," + std::to_string(var12) + "," + std::to_string(var13) + "," + std::to_string(var14) + "," + std::to_string(var15) + "," + std::to_string(var16) + "," + std::to_string(var17) + "," + std::to_string(var18) + "," + std::to_string(var19) + "," + std::to_string(var20) + "," + std::to_string(var21) + "," + std::to_string(var22) + "," + std::to_string(var23) + "," + std::to_string(var24) + "," + std::to_string(var25) + "," + std::to_string(var26) + "," + std::to_string(var27) + "," + std::to_string(var28) + "," + std::to_string(var29) + "," + std::to_string(var30) + "," + std::to_string(var31) + "," + std::to_string(var32) + "," + std::to_string(var33) + "," + std::to_string(var34) + "," + std::to_string(var35) + "," + std::to_string(var36) + "," + std::to_string(var37) + "," + std::to_string(var38) + "," + std::to_string(var39) + "," + std::to_string(var40) + "," + std::to_string(var41) + "," + std::to_string(var42) + "," + std::to_string(var43) + "," + std::to_string(var44) + "," + std::to_string(var45) + "," + std::to_string(var46) + "," + std::to_string(var47) + "," + std::to_string(var48) + "," + std::to_string(var49) + "," + std::to_string(var50) + "," + std::to_string(var51) + "," + std::to_string(var52) + "," + std::to_string(var53) + "," + std::to_string(var54) + "," + std::to_string(var55) + "," + std::to_string(var56) + "," + std::to_string(var57) + "," + std::to_string(var58) + "," + std::to_string(var59) + "," + std::to_string(var60) + "," + std::to_string(var61) + "," + std::to_string(var62) + "," + std::to_string(var63) + "," + std::to_string(var64) + "," + std::to_string(var65) + "," + std::to_string(var66) + "," + std::to_string(var67) + "," + std::to_string(var68) + "," + std::to_string(var69) + "," + std::to_string(var70) + "," + std::to_string(var71) + "," + std::to_string(var72) + "," + std::to_string(var73) + "," + std::to_string(var74) + "," + std::to_string(var75) + "," + std::to_string(var76) + "," + std::to_string(var77) + "," + std::to_string(var78) + "," + std::to_string(var79) + "," + std::to_string(var80) + "," + std::to_string(var81) + "," + std::to_string(var82) + "," + std::to_string(var83) + "," + std::to_string(var84) + "," + std::to_string(var85) + "," + std::to_string(var86) + "," + std::to_string(var87) + "," + std::to_string(var88) + "," + std::to_string(var89) + "," + std::to_string(var90) + "," + std::to_string(var91) + "," + std::to_string(var92) + "," + std::to_string(var93) + "," + std::to_string(var94) + "," + std::to_string(var95) + "," + std::to_string(var96) + "," + std::to_string(var97) + "," + std::to_string(var98) + "," + std::to_string(var99) + "," + std::to_string(var100) + "," + std::to_string(var101) + "," + std::to_string(var102) + "," + std::to_string(var103) + "," + std::to_string(var104) + "," + std::to_string(var105) + "," + std::to_string(var106) + "," + std::to_string(var107) + "," + std::to_string(var108) + "," + std::to_string(var109) + "," + std::to_string(var110) + "," + std::to_string(var111) + "," + std::to_string(var112) + "," + std::to_string(var113) + "," + std::to_string(var114) + "," + std::to_string(var115) + "," + std::to_string(var116) + "," + std::to_string(var117) + "," + std::to_string(var118) + "," + std::to_string(var119) + "," + std::to_string(var120) + "," + std::to_string(var121) + "," + std::to_string(var122) + "," + std::to_string(var123) + "," + std::to_string(var124) + "," + std::to_string(var125) + "," + std::to_string(var126) + "," + std::to_string(var127) + "," + std::to_string(var128) + "," + std::to_string(var129) + "," + std::to_string(var130) + "," + std::to_string(var131) + "," + std::to_string(var132) + "," + std::to_string(var133) + "," + std::to_string(var134) + "," + std::to_string(var135) + "," + std::to_string(var136) + "," + std::to_string(var137) + "," + std::to_string(var138) + "," + std::to_string(var139) + "," + std::to_string(var140) + "," + std::to_string(var141) + "," + std::to_string(var142) + "," + std::to_string(var143) + "," + std::to_string(var144) + "," + std::to_string(var145) + "," + std::to_string(var146) + "," + std::to_string(var147) + "," + std::to_string(var148) + "," + std::to_string(var149) + "," + std::to_string(var150) + "," + std::to_string(var151) + "," + std::to_string(var152) + "," + std::to_string(var153) + "," + std::to_string(var154) + "," + std::to_string(var155) + "," + std::to_string(var156) + "," + std::to_string(var157) + "," + std::to_string(var158) + "," + std::to_string(var159) + "," + std::to_string(var160) + "," + std::to_string(var161) + "," + std::to_string(var162) + "," + std::to_string(var163) + "," + std::to_string(var164) + "," + std::to_string(var165) + "," + std::to_string(var166) + "," + std::to_string(var167) + "," + std::to_string(var168) + "," + std::to_string(var169) + "," + std::to_string(var170) + "," + std::to_string(var171) + "," + std::to_string(var172) + "," + std::to_string(var173) + "," + std::to_string(var174) + "," + std::to_string(var175) + "," + std::to_string(var176) + "," + std::to_string(var177) + "," + std::to_string(var178) + "," + std::to_string(var179) + "," + std::to_string(var180) + "," + std::to_string(var181) + "," + std::to_string(var182) + "," + std::to_string(var183) + "," + std::to_string(var184) + "," + std::to_string(var185) + "," + std::to_string(var186) + "," + std::to_string(var187) + "," + std::to_string(var188) + "," + std::to_string(var189) + "," + std::to_string(var190) + "," + std::to_string(var191) + "," + std::to_string(var192) + "," + std::to_string(var193); //std::cout << "postFields = " << postFields << std::endl; //std::string postFields; //for (size_t i = 0; i < parameters.size(); ++i) { // postFields += std::to_string(parameters[i]); // if (i != parameters.size() - 1) // postFields += ","; //} CURL *curl; CURLcode res; std::string response; curl = curl_easy_init(); if (curl) { // Set the URL curl_easy_setopt(curl, CURLOPT_URL, url.c_str()); // Set HTTP POST data curl_easy_setopt(curl, CURLOPT_POSTFIELDS, postFields.c_str()); // Specify HTTP 0.9 curl_easy_setopt(curl, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); //curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); // Set CURLOPT_HEADER to 0 to disable header processing curl_easy_setopt(curl, CURLOPT_HEADER, 0L); // Set response handler function curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback); curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response); // Perform the request res = curl_easy_perform(curl); // Check for errors if (res != CURLE_OK) { curl_easy_cleanup(curl); throw std::runtime_error("curl_easy_perform() failed: " + std::string(curl_easy_strerror(res))); } // Cleanup curl_easy_cleanup(curl); } else { throw std::runtime_error("Failed to initialize libcurl"); } // Convert response to double double result = std::stod(response); return result; } #endif // customPdfs_h