Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion .github/workflows/CIValidations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,16 @@ jobs:
test: MaCh3CLI --FitterValidations
compilation_flags: -DMaCh3Tutorial_LOW_MEMORY_STRUCTS_ENABLED=ON

- name: NuDock Validations
test: MaCh3CLI --NuDockValidations
compilation_flags: -DMaCh3Tutorial_DEBUG_ENABLED=ON

container:
image: ghcr.io/mach3-software/mach3:alma9v1.3.0

steps:
- uses: actions/checkout@v6


- name: Get MaCh3 Validations
run: |
cd /opt/
Expand Down
4 changes: 4 additions & 0 deletions CIValidations/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -45,4 +45,8 @@ if(MaCh3Tutorial_Benchmark_ENABLED)
add_subdirectory(Benchmark)
endif()

if(MaCh3Tutorial_NUDOCK_ENABLED)
add_subdirectory(NuDock)
endif()

add_subdirectory(SplinePlotting)
15 changes: 15 additions & 0 deletions CIValidations/MaCh3CLI
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ show_help() {
echo -e "\t --ReweightValidations : Checking if reweighting works"
echo -e "\t --CovarianceValidations : Checking if covariances works"
echo -e "\t --NuMCMCToolsValidations : Checking if interface to NuMCMC Tools works"
echo -e "\t --NuDockValidations : Checking if interface to NuDock works"
echo -e "\t --all : Run all checks"
}

Expand Down Expand Up @@ -86,6 +87,15 @@ run_nu_mcmc_tools_validations() {
python3 CIValidations/TestNuMCMC.py
}

run_nudock_validations() {
if [[ -x "${MaCh3Tutorial_ROOT}/CIValidations/NuDock/RunNuDockServer" ]]; then
"${MaCh3Tutorial_ROOT}/CIValidations/NuDock/RunNuDockServer" \
"${MaCh3Tutorial_ROOT}/TutorialConfigs/FitterConfig.yaml"
else
echo "RunNuDockServer not found or not executable, skipping."
fi
}

# Parse command-line arguments
while [[ $# -gt 0 ]]; do
case $1 in
Expand All @@ -105,6 +115,9 @@ while [[ $# -gt 0 ]]; do
--NuMCMCToolsValidations)
RUN_NU_MCMC=true
;;
--NuDockValidations)
RUN_NU_DOCK=true
;;
--all)
RUN_ALL=true
;;
Expand All @@ -128,11 +141,13 @@ if [ "$RUN_ALL" = true ]; then
run_fitter_validations
run_covariance_validations
run_nu_mcmc_tools_validations
run_nudock_validations
else
[ "$RUN_REWEIGHT" = true ] && run_reweight_validations
[ "$RUN_FITTER" = true ] && run_fitter_validations
[ "$RUN_COVARIANCE" = true ] && run_covariance_validations
[ "$RUN_NU_MCMC" = true ] && run_nu_mcmc_tools_validations
[ "$RUN_NU_DOCK" = true ] && run_nudock_validations
fi

echo "Validation process completed!"
10 changes: 10 additions & 0 deletions CIValidations/NuDock/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
add_custom_target(NuDockApps)

foreach(app
RunNuDockServer
)

add_executable(${app} ${app}.cpp)
target_link_libraries(${app} MaCh3Tutorial::SamplesTutorial)
add_dependencies(NuDockApps ${app})
endforeach(app)
58 changes: 58 additions & 0 deletions CIValidations/NuDock/RunNuDockServer.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
// MaCh3 includes
#include "Manager/Manager.h"
#include "Fitters/MaCh3Factory.h"

#include "NuDock/NuDockFactory.h"
#include "NuDock/NuDockServerBase.h"

#include "SamplesTutorial/SampleHandlerTutorial.h"

nlohmann::json ping(nlohmann::json _request)
{
std::cout << "Received request from client: " << _request.dump() << std::endl;
nlohmann::json response;
// response["message"] = "ping";
response="pong";
return response;
};

int main(int argc, char **argv){
auto FitManager = MaCh3ManagerFactory(argc, argv);
FitManager->OverrideSettings("NuDock", "Debug", false);
FitManager->OverrideSettings("NuDock", "Verbose", false);
FitManager->OverrideSettings("NuDock", "AddPriorLLH", false);
FitManager->OverrideSettings("NuDock", "NuDockVerbosity", "INFO");
FitManager->OverrideSettings("NuDock", "CommunicationType", "UNIX_DOMAIN_SOCKET");
FitManager->OverrideSettings("NuDock", "Port", 50051);

// Initialise covariance class reasonable for Systematics
auto xsec = MaCh3CovarianceFactory<ParameterHandlerGeneric>(FitManager.get(), "Xsec");

// Initialise samplePDF
auto SampleConfig = Get<std::vector<std::string>>(FitManager->raw()["General"]["TutorialSamples"], __FILE__ , __LINE__);
auto mySamples = MaCh3SampleHandlerFactory<SampleHandlerTutorial>(SampleConfig, xsec.get());

auto serverObj = std::make_unique<NuDockServerBase>(FitManager.get());
// Add covariance to MCM
serverObj->AddSystObj(xsec.get());
for (size_t i = 0; i < SampleConfig.size(); ++i) {
serverObj->AddSampleHandler(mySamples[i]);
}
serverObj->setup();

MACH3LOG_INFO("Testing log_likelihood calculation...");
MACH3LOG_INFO("Initial log_likelihood: {}", serverObj->getLogLikelihood());

MACH3LOG_INFO("Starting NuDock server...");
std::unique_ptr<NuDock> nudock_ptr = nullptr;
InitialiseNuDockObj(FitManager.get(), nudock_ptr);
nudock_ptr->register_response("/ping", std::bind(ping, std::placeholders::_1));
nudock_ptr->register_response("/log_likelihood", [&serverObj](const nlohmann::json &request) {
return serverObj->getLogLikelihood();
});

for (size_t i = 0; i < SampleConfig.size(); ++i) {
delete mySamples[i];
}
return 0;
}
5 changes: 5 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ include(CIValidations)
option(MaCh3_CPM "Whether MaCh3 was obtained using CPM or find_package" OFF)
option(MaCh3Tutorial_PROFILING_ENABLED "Will run with gperftools" OFF)
option(Use_External_MaCh3 "Use an externally installed MaCh3 instead of CPM" OFF)
option(MaCh3Tutorial_NUDOCK_ENABLED "Whether to enable NuDock support" OFF)
option(MaCh3Tutorial_DEBUG_ENABLED "Use debug options" OFF)
option(MaCh3Tutorial_LOW_MEMORY_STRUCTS_ENABLED "Use floats" OFF)
option(PYTHON_ENABLED "Build python package" OFF)
Expand Down Expand Up @@ -88,6 +89,10 @@ if(NOT MaCh3_FOUND)
list(APPEND MaCh3_OPTIONS "LOG_LEVEL ${LOG_LEVEL}")
endif()

if (MaCh3Tutorial_NUDOCK_ENABLED)
list(APPEND MaCh3_OPTIONS "MaCh3_NUDOCK_ENABLED ON")
endif()

if (MaCh3Tutorial_NATIVE_ENABLED)
list(APPEND MaCh3_OPTIONS "MaCh3_NATIVE_ENABLED ON")
endif()
Expand Down
Empty file modified Tutorial/LLHScanTutorial.cpp
100644 → 100755
Empty file.