Page MenuHomeHEPForge

No OneTemporary

diff --git a/FixedOrderGen/t/CMakeLists.txt b/FixedOrderGen/t/CMakeLists.txt
index 325e1a5..8307199 100644
--- a/FixedOrderGen/t/CMakeLists.txt
+++ b/FixedOrderGen/t/CMakeLists.txt
@@ -1,70 +1,72 @@
set(tst_dir "${CMAKE_CURRENT_SOURCE_DIR}")
foreach(tst W_reconstruct_enu W_2j_classify W_nj_classify)
add_executable(test_${tst} ${tst_dir}/${tst}.cc)
target_link_libraries(test_${tst} hejfog_lib)
add_test(NAME ${tst} COMMAND test_${tst} WORKING_DIRECTORY ${tst_dir})
endforeach()
# this only tests if the runcard actually works, not if the result is correct
add_test(
NAME main_2j
COMMAND HEJFOG ${tst_dir}/config_2j.yml
)
add_test(
NAME main_h2j
- COMMAND HEJFOG ${tst_dir}/config_h_2j.yml
+ COMMAND HEJFOG ${tst_dir}/config_h2j.yml
)
add_test(
NAME main_h2j_decay
- COMMAND HEJFOG ${tst_dir}/config_h_2j_decay.yml
+ COMMAND HEJFOG ${tst_dir}/config_h2j_decay.yml
)
add_test(
NAME peakpt
COMMAND HEJFOG ${tst_dir}/config_2j_peak.yml
)
# check that uno emission doesn't change FKL xs
add_executable(FKL_uno FKL_uno.cc)
target_link_libraries(FKL_uno hejfog_lib)
add_test(
NAME FKL_uno
# calculated with HEJ revision 9570e3809613272ac4b8bf3236279ba23cf64d20
- COMMAND FKL_uno ${tst_dir}/config_h_3j_uno.yml 0.0243548 0.000119862
+ COMMAND FKL_uno ${tst_dir}/config_h3j_uno.yml 0.0243548 0.000119862
)
# xs tests
add_executable(xs_gen xs_gen.cc)
target_link_libraries(xs_gen hejfog_lib)
+## Higgs
add_test(
NAME xs_h2j
# calculated with HEJ revision 9570e3809613272ac4b8bf3236279ba23cf64d20
- COMMAND xs_gen ${tst_dir}/config_h_2j.yml 2.04928 0.00956022
+ COMMAND xs_gen ${tst_dir}/config_h2j.yml 2.04928 0.00956022
)
add_test(
NAME xs_h3j
# calculated with HEJ revision bd4388fe55cbc3f5a7b6139096456c551294aa31
- COMMAND xs_gen ${tst_dir}/config_h_3j.yml 1.07807 0.0132409
+ COMMAND xs_gen ${tst_dir}/config_h3j.yml 1.07807 0.0132409
)
add_test(
NAME xs_h5j
# calculated with HEJ revision dbde2ffbb3b383ae6709b2424d8f0f9d5658270b
- COMMAND xs_gen ${tst_dir}/config_h_5j.yml 0.0112504 0.000199633
+ COMMAND xs_gen ${tst_dir}/config_h5j.yml 0.0112504 0.000199633
)
add_test(
NAME xs_h3j_uno
# calculated with HEJ revision 9570e3809613272ac4b8bf3236279ba23cf64d20
- COMMAND xs_gen ${tst_dir}/config_h_3j_uno.yml 0.00347538 3.85875e-05
+ COMMAND xs_gen ${tst_dir}/config_h3j_uno.yml 0.00347538 3.85875e-05
)
add_test(
NAME xs_h2j_decay
# calculated with HEJ revision 9570e3809613272ac4b8bf3236279ba23cf64d20
- COMMAND xs_gen ${tst_dir}/config_h_2j_decay.yml 0.00466994 2.20995e-05
+ COMMAND xs_gen ${tst_dir}/config_h2j_decay.yml 0.00466994 2.20995e-05
)
+## pure jets
add_test(
NAME xs_2j
# calculated with "combined" HEJ svn r3480
COMMAND xs_gen ${tst_dir}/config_2j.yml 86.42031848e06 590570
)
add_test(
NAME xs_4j
# calculated with HEJ revision 13207b5f67a5f40a2141aa7ee515b022bd4efb65
COMMAND xs_gen ${tst_dir}/config_4j.yml 915072 15402.4
)
diff --git a/FixedOrderGen/t/config_h_2j.yml b/FixedOrderGen/t/config_h2j.yml
similarity index 100%
rename from FixedOrderGen/t/config_h_2j.yml
rename to FixedOrderGen/t/config_h2j.yml
diff --git a/FixedOrderGen/t/config_h_2j_decay.yml b/FixedOrderGen/t/config_h2j_decay.yml
similarity index 100%
rename from FixedOrderGen/t/config_h_2j_decay.yml
rename to FixedOrderGen/t/config_h2j_decay.yml
diff --git a/FixedOrderGen/t/config_h_3j.yml b/FixedOrderGen/t/config_h3j.yml
similarity index 100%
rename from FixedOrderGen/t/config_h_3j.yml
rename to FixedOrderGen/t/config_h3j.yml
diff --git a/FixedOrderGen/t/config_h_3j_uno.yml b/FixedOrderGen/t/config_h3j_uno.yml
similarity index 100%
rename from FixedOrderGen/t/config_h_3j_uno.yml
rename to FixedOrderGen/t/config_h3j_uno.yml
diff --git a/FixedOrderGen/t/config_h_5j.yml b/FixedOrderGen/t/config_h5j.yml
similarity index 100%
rename from FixedOrderGen/t/config_h_5j.yml
rename to FixedOrderGen/t/config_h5j.yml
diff --git a/FixedOrderGen/t/xs_gen.cc b/FixedOrderGen/t/xs_gen.cc
index 0e20c77..9a04a0a 100644
--- a/FixedOrderGen/t/xs_gen.cc
+++ b/FixedOrderGen/t/xs_gen.cc
@@ -1,107 +1,107 @@
/**
* \authors The HEJ collaboration (see AUTHORS for details)
* \date 2020
* \copyright GPLv2 or later
*/
#include <algorithm>
#include <cmath>
#include <cstdlib>
#include <iostream>
#include <memory>
#include "HEJ/Event.hh"
#include "HEJ/Mixmax.hh"
#include "HEJ/PDG_codes.hh"
#include "HEJ/ScaleFunction.hh"
#include "HEJ/utility.hh"
#include "config.hh"
#include "EventGenerator.hh"
#include "Status.hh"
//! throw error if condition not fulfilled
#define ASSERT(x) if(!(x)) { \
throw std::logic_error("Assertion '" #x "' failed."); \
}
namespace {
constexpr double invGeV2_to_pb = 389379292.;
}
int main(int argn, char const *argv[]){
using namespace HEJFOG;
if(argn != 4){
std::cerr << "Usage: " << argv[0] << " config.yml xs xs_err";
return EXIT_FAILURE;
}
const double xs_ref = std::stod(argv[2]);
const double err_ref = std::stod(argv[3]);
const auto config = load_config(argv[1]);
std::shared_ptr<HEJ::RNG> ran{std::make_shared<HEJ::Mixmax>()};
HEJFOG::EventGenerator generator{
config.process,
config.beam,
HEJ::ScaleGenerator{
config.scales.base,
config.scales.factors,
config.scales.max_ratio
},
config.jets,
config.pdf_id,
config.subleading_fraction,
config.subleading_channels,
config.particle_decays,
config.Higgs_coupling,
config.ew_parameters,
ran
};
double xs = 0., xs_err = 0.;
for (std::size_t trials = 0; trials < config.events; ++trials){
auto ev = generator.gen_event();
if(generator.status() != good) continue;
ASSERT(ev);
if(config.process.boson){
const auto boson = std::find_if(
begin(ev->outgoing()), end(ev->outgoing()),
[&](HEJ::Particle const & p){ return p.type == *config.process.boson; }
);
ASSERT(boson != end(ev->outgoing()));
if(!config.process.boson_decay.empty()){
ASSERT(ev->decays().size() == 1);
const auto decay = ev->decays().begin();
ASSERT(ev->outgoing().size() > decay->first);
ASSERT(decay->first == static_cast<std::size_t>(
std::distance(ev->outgoing().begin(), boson)));
ASSERT(decay->second.size() == 2);
- auto const & gamma = decay->second;
- ASSERT(gamma[0].type == HEJ::pid::photon);
- ASSERT(gamma[1].type == HEJ::pid::photon);
- ASSERT(HEJ::nearby_ep(gamma[0].p + gamma[1].p, boson->p, 1e-6));
+ auto const & decay_part = decay->second;
+ ASSERT(decay_part[0].type == config.process.boson_decay[0]);
+ ASSERT(decay_part[1].type == config.process.boson_decay[1]);
+ ASSERT(HEJ::nearby_ep(decay_part[0].p + decay_part[1].p, boson->p, 1e-6));
}
}
xs += ev->central().weight;
xs_err += ev->central().weight*ev->central().weight;
}
xs_err = std::sqrt(xs_err);
xs *= invGeV2_to_pb/config.events;
xs_err *= invGeV2_to_pb/config.events;
std::cout << xs_ref << " +- " << err_ref << " (" << err_ref/xs_ref*100. << "%)"
<< " ~ " << xs << " +- " << xs_err
<< " (" << xs_err/xs*100. << "%)" << std::endl;
std::cout << "=> "
<< std::abs(xs - xs_ref)/sqrt(xs_err*xs_err+err_ref*err_ref)
<< " sigma" << std::endl;
ASSERT(std::abs(xs - xs_ref) < 2.*sqrt(xs_err*xs_err+err_ref*err_ref));
ASSERT(std::abs(err_ref - xs_err) < 0.1*xs_err);
ASSERT(xs_err < 0.02*xs);
return EXIT_SUCCESS;
}

File Metadata

Mime Type
text/x-diff
Expires
Tue, Nov 19, 7:03 PM (1 d, 10 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3805746
Default Alt Text
(7 KB)

Event Timeline