Page MenuHomeHEPForge

No OneTemporary

diff --git a/FixedOrderGen/configFO.yml b/FixedOrderGen/configFO.yml
index 035e524..e2ac05c 100644
--- a/FixedOrderGen/configFO.yml
+++ b/FixedOrderGen/configFO.yml
@@ -1,79 +1,41 @@
-trials : 20000
-min extparton pt: 30 # minimum transverse momentum of extremal partons
+events : 20
-resummation jets: # resummation jet properties
- min pt: 35 # minimum jet transverse momentum
- algorithm: antikt # jet algorithm
- R: 0.4 # jet R parameter
-
-fixed order jets: # properties of input jets
+jets:
min pt: 30
- # by default, algorithm and R are like for resummation jets
+ R: 0.4
+ algorithm: antikt
+ max rapidity: 5
-# treatment of he various event classes
-# the supported settings are: keep, discard
-FKL: keep
-unordered: keep
-non-FKL: discard
+beam:
+ energy: 13000
+ particles: [p, p]
-# scale settings similar to original HEJ
-#
-# Use combinations of max jet pperp, input scales, ht/2,
-# and the jet invariant mass and vary all scales by factors
-# of 1, sqrt(2), and 2. Discard combinations where mur and muf
-# differ by a factor of more than two.
-#
-# The weight entries in the final events are ordered as follows:
-# 0-18: max jet pperp
-# 19-37: input scales
-# 38-56: ht/2
-# 57-75: jet invariant mass
-# In each of these groups, the first entry corresponds to the basic
-# scale choice. In the following entries, mur and muf are varied with
-# the above factors. The entries are ordered lexicographically so that
-# mur1 < mur2 or (mur1 == mur2 and muf1 < muf2).
-#
-# Note that in contrast to HEJ, the central choice for the event is always
-# max jet pperp and cannot be configured (yet).
-#
-# scales: [max jet pperp, input, Ht/2, jet invariant mass]
-# scale factors: [0.5, 0.7071, 1, 1.41421, 2]
-# max scale ratio: 2.0001
+pdf: 230000
-scales: max jet pperp
+process: p p => h 3j
-log correction: false # whether or not to include higher order logs
-unweight: false # TODO: whether or not to unweight events
+unordered: true
-# event output files
-#
-# the supported formats are
-# - Les Houches (suffix .lhe)
-# - HepMC (suffix .hepmc3)
-# TODO: - ROOT ntuples (suffix .root)
-#
-# An output file's format is deduced either automatically from the suffix
-# or from an explicit specification, e.g.
-# - Les Houches: outfile
+scales: max jet pperp
event output:
- RHEJ.lhe
# - RHEJ_events.hepmc3
-analysis:
- # to use a custom analysis
- plugin: /home/andersen/HEJ/PURE/GitReverse/build/analysis-plugins/src/libVBF.so
- min dy12: 2.8
- min m12: 400
- output: HEJFO.root
- # wtwt cut: # optional cut on (event weight)^2
+# analysis:
+# # to use a custom analysis
+# plugin: /home/andersen/HEJ/PURE/GitReverse/build/analysis-plugins/src/libVBF.so
+# min dy12: 2.8
+# min m12: 400
+# output: HEJFO.root
+# # wtwt cut: # optional cut on (event weight)^2
#RanLux init: ranlux.0 # file for initialisation of random number engine
# parameters for Higgs-gluon couplings
# this requires compilation with looptools
# Higgs coupling:
# use impact factors: false
# mt: 174
# include bottom: true
# mb: 4.7
diff --git a/FixedOrderGen/src/main.cc b/FixedOrderGen/src/main.cc
index dc53162..fbfcbe7 100644
--- a/FixedOrderGen/src/main.cc
+++ b/FixedOrderGen/src/main.cc
@@ -1,132 +1,134 @@
/**
* Name: main.cc
* Authors: Jeppe R. Andersen
*/
#include <fstream>
#include <algorithm>
#include <memory>
#include <chrono>
#include <iostream>
#include "yaml-cpp/yaml.h"
+#include "config.hh"
+
#include "LHEF/LHEF.h"
#include "RHEJ/CombinedEventWriter.hh"
#include "RHEJ/get_analysis.hh"
#include "RHEJ/utility.hh"
#include "RHEJ/PDF.hh"
//#include "RHEJ/EventReweighter.hh"
-#include "RHEJ/config.hh"
#include "RHEJ/stream.hh"
#include "RHEJ/MatrixElement.hh"
#include "RHEJ/LesHouchesWriter.hh"
#include "PhaseSpacePoint.hh"
-RHEJ::Config load_config(char const * filename){
+HEJFOG::Config load_config(char const * filename){
try{
- return RHEJ::load_config(filename);
+ return HEJFOG::load_config(filename);
}
catch(std::exception const & exc){
std::cerr << "Error: " << exc.what() << '\n';
std::exit(EXIT_FAILURE);
}
}
std::unique_ptr<RHEJ::Analysis> get_analysis(
YAML::Node const & parameters
){
try{
return RHEJ::get_analysis(parameters);
}
catch(std::exception const & exc){
std::cerr << "Failed to load analysis: " << exc.what() << '\n';
std::exit(EXIT_FAILURE);
}
}
int main(int argn, char** argv) {
std::cout << " __ ___ __ ______ __ __ \n";
std::cout << " / / / (_)___ _/ /_ / ____/___ ___ _________ ___ __ / /__ / /______ \n";
std::cout << " / /_/ / / __ `/ __ \\ / __/ / __ \\/ _ \\/ ___/ __ `/ / / / __ / / _ \\/ __/ ___/ \n";
std::cout << " / __ / / /_/ / / / / / /___/ / / / __/ / / /_/ / /_/ / / /_/ / __/ /_(__ ) \n";
std::cout << " /_/ /_/_/\\__, /_/ /_/ /_____/_/ /_/\\___/_/ \\__, /\\__, / \\____/\\___/\\__/____/ \n";
std::cout << " ____///__/ __ ____ ///__//____/ ______ __ \n";
std::cout << " / ____(_) _____ ____/ / / __ \\_________/ /__ _____ / ____/__ ____ ___ _________ _/ /_____ _____\n";
std::cout << " / /_ / / |/_/ _ \\/ __ / / / / / ___/ __ / _ \\/ ___/ / / __/ _ \\/ __ \\/ _ \\/ ___/ __ `/ __/ __ \\/ ___/\n";
std::cout << " / __/ / /> </ __/ /_/ / / /_/ / / / /_/ / __/ / / /_/ / __/ / / / __/ / / /_/ / /_/ /_/ / / \n";
std::cout << " /_/ /_/_/|_|\\___/\\__,_/ \\____/_/ \\__,_/\\___/_/ \\____/\\___/_/ /_/\\___/_/ \\__,_/\\__/\\____/_/ \n";
using clock = std::chrono::system_clock;
if (argn < 2) {
std::cerr << "\n# Usage:\n.FOgen config_file\n";
return EXIT_FAILURE;
}
const auto start_time = clock::now();
// read configuration
- const RHEJ::Config config = load_config(argv[1]);
+ const auto config = load_config(argv[1]);
+ return EXIT_SUCCESS;
// RHEJ::istream in{argv[2]};
std::unique_ptr<RHEJ::Analysis> analysis = get_analysis(
config.analysis_parameters
);
assert(analysis != nullptr);
// Generate a matrix element:
- RHEJ::MatrixElement ME(config.fixed_order_jets.def,config.fixed_order_jets.min_pt,config.log_correction,config.Higgs_coupling);
+ RHEJ::MatrixElement ME(config.jets.def,config.jets.min_pt,false,config.Higgs_coupling);
RHEJ::PDF pdf{230000,RHEJ::ParticleID::proton,RHEJ::ParticleID::proton};
RHEJ::LesHouchesWriter LHOfile{"HEJ.lh",LHEF::HEPRUP{}};
// Perform N trial generations
int nevent = 0;
- while(nevent< config.trials){
- if (int(10000.*nevent/config.trials) % 100 == 0)
+ while(nevent< config.events){
+ if (int(10000.*nevent/config.events) % 100 == 0)
std::cout << ".";
std::cout.flush();
// Generate phase space point
- HEJFOG::PhaseSpacePoint psp{4,config.fixed_order_jets.def,config.fixed_order_jets.min_pt,5.0,pdf};
+ HEJFOG::PhaseSpacePoint psp{4,config.jets.def,config.jets.min_pt,5.0,pdf};
if (psp.weight()==0) continue;
- RHEJ::Event ev{to_UnclusteredEvent(std::move(psp)), config.fixed_order_jets.def, config.fixed_order_jets.min_pt};
+ RHEJ::Event ev{to_UnclusteredEvent(std::move(psp)), config.jets.def, config.jets.min_pt};
// evaluate matrix element on this point
ev.central().weight *= ME.tree(
- pdf.Halphas(config.fixed_order_jets.min_pt),
- config.fixed_order_jets.min_pt,
+ pdf.Halphas(config.jets.min_pt),
+ config.jets.min_pt,
ev.incoming(), ev.outgoing(), false
)/(shat(ev)*shat(ev));
analysis->fill(ev);
LHOfile.write(ev);
// RHEJ::Event FO_event{
// RHEJ::UnclusteredEvent{reader.hepeup},
- // config.fixed_order_jets.def, config.fixed_order_jets.min_pt,
+ // config.jets.def, config.jets.min_pt,
// };
// auto resummed_events = rhej.reweight(
// FO_event,
- // config.trials, config.scale_gen
+ // config.events, config.scale_gen
// );
// const auto ev_class = rhej.last_event_class();
// ++nevent_class[ev_class];
// if(resummed_events.empty()) ++nfailed_class[ev_class];
// for(auto const & ev: resummed_events){
// analysis->fill(ev);
// writer.write(ev);
// }
nevent++;
} // main event loop
std::cout << std::endl;
std::chrono::duration<double> run_time = (clock::now() - start_time);
std::cout << "\nTask Runtime: " << run_time.count() << " seconds.\n";
return 0;
}

File Metadata

Mime Type
text/x-diff
Expires
Tue, Jan 21, 2:17 AM (1 d, 21 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4243634
Default Alt Text
(8 KB)

Event Timeline