From 7d690ca9f6e19cc93662a2eae6fee5d15e752017 Mon Sep 17 00:00:00 2001 From: simonge Date: Thu, 25 May 2023 13:42:38 +0100 Subject: [PATCH 1/9] Added beam settings to hepmc run info --- cpp/abconv/Converter.cc | 13 +- cpp/afterburner/AfterburnerConfig.hh | 9 + cpp/afterburner/EicConfigurator.cc | 336 +++++++++++++++++++++++++++ 3 files changed, 357 insertions(+), 1 deletion(-) diff --git a/cpp/abconv/Converter.cc b/cpp/abconv/Converter.cc index 2e38ed9..3db57c3 100644 --- a/cpp/abconv/Converter.cc +++ b/cpp/abconv/Converter.cc @@ -199,8 +199,19 @@ HepMC3::ConstGenParticles ab::abconv::Converter::get_beam_particles(const HepMC3 } void ab::abconv::Converter::ab_config_to_run_info(const std::shared_ptr& run_info, ab::AfterburnerConfig cfg) { - using namespace HepMC3; + using namespace HepMC3; + run_info->add_attribute("ab_afterburner_is_used", std::make_shared(true)); + + run_info->add_attribute("hadron_beam_energy", std::make_shared(cfg.hadron_beam.energy)); + run_info->add_attribute("lepton_beam_energy", std::make_shared(cfg.lepton_beam.energy)); + + run_info->add_attribute("hadron_beam_charge", std::make_shared(cfg.hadron_beam.charge)); + run_info->add_attribute("lepton_beam_charge", std::make_shared(cfg.lepton_beam.charge)); + + run_info->add_attribute("hadron_beam_mass", std::make_shared(cfg.hadron_beam.mass)); + run_info->add_attribute("lepton_beam_mass", std::make_shared(cfg.lepton_beam.mass)); + run_info->add_attribute("ab_crossing_angle", std::make_shared(cfg.crossing_angle_hor)); run_info->add_attribute("ab_use_beam_bunch_sim", std::make_shared(cfg.use_beam_bunch_sim)); diff --git a/cpp/afterburner/AfterburnerConfig.hh b/cpp/afterburner/AfterburnerConfig.hh index 9a969c6..a56b905 100644 --- a/cpp/afterburner/AfterburnerConfig.hh +++ b/cpp/afterburner/AfterburnerConfig.hh @@ -8,6 +8,15 @@ namespace ab { struct BeamConfig { + //! Beam energy setting + double energy = 18; + + //! Charge of beam specimen + double charge = -1; + + //! Mass of beam specimen [GeV/c2] + double mass = 0.000511; + //! Beam angle divergence in accelerator beam coordinate. //! First element is beamA, in pair of Gaussian Sigma_H Sigma_V. BeamA is aimed to +z direction in the HepMC event generator's coordinate //! Second element is beamB, in pair of Gaussian Sigma_H Sigma_V. BeamA is aimed to -z direction in the HepMC event generator's coordinate diff --git a/cpp/afterburner/EicConfigurator.cc b/cpp/afterburner/EicConfigurator.cc index d42d48f..3021902 100644 --- a/cpp/afterburner/EicConfigurator.cc +++ b/cpp/afterburner/EicConfigurator.cc @@ -11,6 +11,18 @@ using namespace CLHEP; ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x18() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 110; + cfg.lepton_beam.energy = 18; + + // Beam charge + cfg.hadron_beam.charge = 79; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 197; //fix + cfg.lepton_beam.mass = 0.000511; + // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -47,6 +59,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x18() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x10() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 110; + cfg.lepton_beam.energy = 10; + + // Beam charge + cfg.hadron_beam.charge = 79; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 197; //fix + cfg.lepton_beam.mass = 0.000511; + // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -83,6 +107,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x5() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 110; + cfg.lepton_beam.energy = 5; + + // Beam charge + cfg.hadron_beam.charge = 79; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 197; //fix + cfg.lepton_beam.mass = 0.000511; + // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -119,6 +155,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_41x5() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 41; + cfg.lepton_beam.energy = 5; + + // Beam charge + cfg.hadron_beam.charge = 79; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 197; //fix + cfg.lepton_beam.mass = 0.000511; + // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -155,6 +203,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_41x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_41x5() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 41; + cfg.lepton_beam.energy = 5; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -190,6 +250,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_41x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_100x5() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 100; + cfg.lepton_beam.energy = 5; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -225,6 +297,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_100x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_100x10() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 100; + cfg.lepton_beam.energy = 10; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -260,6 +344,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_100x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_275x10() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 275; + cfg.lepton_beam.energy = 10; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -295,6 +391,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_275x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_275x18() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 275; + cfg.lepton_beam.energy = 18; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -331,6 +439,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_275x18() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_41x5() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 41; + cfg.lepton_beam.energy = 5; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -366,6 +486,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_41x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_100x5() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 100; + cfg.lepton_beam.energy = 5; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -401,6 +533,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_100x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_100x10() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 100; + cfg.lepton_beam.energy = 10; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -436,6 +580,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_100x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_275x10() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 275; + cfg.lepton_beam.energy = 10; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -471,6 +627,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_275x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_275x18() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 275; + cfg.lepton_beam.energy = 18; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -509,6 +677,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_275x18() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x18() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 110; + cfg.lepton_beam.energy = 18; + + // Beam charge + cfg.hadron_beam.charge = 79; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 197; //fix + cfg.lepton_beam.mass = 0.000511; + cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -544,6 +724,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x18() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x10() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 110; + cfg.lepton_beam.energy = 10; + + // Beam charge + cfg.hadron_beam.charge = 79; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 197; //fix + cfg.lepton_beam.mass = 0.000511; + cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -579,6 +771,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x5() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 110; + cfg.lepton_beam.energy = 5; + + // Beam charge + cfg.hadron_beam.charge = 79; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 197; //fix + cfg.lepton_beam.mass = 0.000511; + cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -614,6 +818,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_41x5() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 45; + cfg.lepton_beam.energy = 5; + + // Beam charge + cfg.hadron_beam.charge = 79; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 197; //fix + cfg.lepton_beam.mass = 0.000511; + cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -650,6 +866,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_41x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_41x5() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 41; + cfg.lepton_beam.energy = 5; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -684,6 +912,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_41x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_100x5() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 100; + cfg.lepton_beam.energy = 5; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -718,6 +958,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_100x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_100x10() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 100; + cfg.lepton_beam.energy = 10; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -752,6 +1004,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_100x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_275x10() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 275; + cfg.lepton_beam.energy = 10; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -786,6 +1050,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_275x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_275x18() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 275; + cfg.lepton_beam.energy = 18; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -821,6 +1097,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_275x18() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_41x5() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 41; + cfg.lepton_beam.energy = 5; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -855,6 +1143,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_41x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_100x5() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 100; + cfg.lepton_beam.energy = 5; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -889,6 +1189,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_100x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_100x10() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 100; + cfg.lepton_beam.energy = 10; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -923,6 +1235,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_100x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_275x10() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 275; + cfg.lepton_beam.energy = 10; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -957,6 +1281,18 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_275x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_275x18() { ab::AfterburnerConfig cfg; + // Beam energy + cfg.hadron_beam.energy = 275; + cfg.lepton_beam.energy = 18; + + // Beam charge + cfg.hadron_beam.charge = 1; + cfg.lepton_beam.charge = -1; + + // Beam mass + cfg.hadron_beam.mass = 0.938; + cfg.lepton_beam.mass = 0.000511; + cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] From c011936baa67431ca0a6e157bf24b595ecfa0d9c Mon Sep 17 00:00:00 2001 From: simonge Date: Thu, 25 May 2023 13:56:57 +0100 Subject: [PATCH 2/9] changed Au mass from N to GeV probably still wrong --- .gitignore | 4 ++++ cpp/afterburner/EicConfigurator.cc | 16 ++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 6e4b002..3f5f588 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,7 @@ cpp/cmake-build-debug/ python/.ipynb_checkpoints/ *.log + +*~ + +build/ \ No newline at end of file diff --git a/cpp/afterburner/EicConfigurator.cc b/cpp/afterburner/EicConfigurator.cc index 3021902..0bdc828 100644 --- a/cpp/afterburner/EicConfigurator.cc +++ b/cpp/afterburner/EicConfigurator.cc @@ -20,7 +20,7 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x18() { cfg.lepton_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 197; //fix + cfg.hadron_beam.mass = 184.009; //fix? cfg.lepton_beam.mass = 0.000511; // Crossing angle @@ -68,7 +68,7 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x10() { cfg.lepton_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 197; //fix + cfg.hadron_beam.mass = 184.009; //fix? cfg.lepton_beam.mass = 0.000511; // Crossing angle @@ -116,7 +116,7 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x5() { cfg.lepton_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 197; //fix + cfg.hadron_beam.mass = 184.009; //fix? cfg.lepton_beam.mass = 0.000511; // Crossing angle @@ -164,7 +164,7 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_41x5() { cfg.lepton_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 197; //fix + cfg.hadron_beam.mass = 184.009; //fix? cfg.lepton_beam.mass = 0.000511; // Crossing angle @@ -686,7 +686,7 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x18() { cfg.lepton_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 197; //fix + cfg.hadron_beam.mass = 184.009; //fix? cfg.lepton_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] @@ -733,7 +733,7 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x10() { cfg.lepton_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 197; //fix + cfg.hadron_beam.mass = 184.009; //fix? cfg.lepton_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] @@ -780,7 +780,7 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x5() { cfg.lepton_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 197; //fix + cfg.hadron_beam.mass = 184.009; //fix? cfg.lepton_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] @@ -827,7 +827,7 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_41x5() { cfg.lepton_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 197; //fix + cfg.hadron_beam.mass = 184.009; //fix? cfg.lepton_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] From 25eed13d80bcda5af95a694e829ffc677894fa28 Mon Sep 17 00:00:00 2001 From: simonge Date: Mon, 29 May 2023 15:40:49 +0100 Subject: [PATCH 3/9] Swapped lepton and hadron for electron and ion --- cpp/abconv/ConfigProvider.cc | 14 +- cpp/abconv/Converter.cc | 46 +- cpp/afterburner/Afterburner.cc | 120 +-- cpp/afterburner/AfterburnerConfig.hh | 4 +- cpp/afterburner/EicConfigurator.cc | 1330 +++++++++++++------------- cpp/afterburner/EicConfigurator.hh | 4 +- 6 files changed, 759 insertions(+), 759 deletions(-) diff --git a/cpp/abconv/ConfigProvider.cc b/cpp/abconv/ConfigProvider.cc index fea3fc9..dc37713 100644 --- a/cpp/abconv/ConfigProvider.cc +++ b/cpp/abconv/ConfigProvider.cc @@ -23,18 +23,18 @@ ab::convert::ConfigProvider::from_hepmc_file(const std::shared_ptrmomentum().e() > beam_particles[1]->momentum().e()) { - hadron = beam_particles[0]; - lepton = beam_particles[1]; + ion = beam_particles[0]; + electron = beam_particles[1]; } else { - hadron = beam_particles[1]; - lepton = beam_particles[0]; + ion = beam_particles[1]; + electron = beam_particles[0]; } - return ab::EicConfigurator::config(hadron->momentum().e(), lepton->momentum().e(), beam_config); + return ab::EicConfigurator::config(ion->momentum().e(), electron->momentum().e(), beam_config); } ab::AfterburnerConfig ab::convert::ConfigProvider::from_preset_name(const string &name) { diff --git a/cpp/abconv/Converter.cc b/cpp/abconv/Converter.cc index 3db57c3..7f5ddec 100644 --- a/cpp/abconv/Converter.cc +++ b/cpp/abconv/Converter.cc @@ -203,34 +203,34 @@ void ab::abconv::Converter::ab_config_to_run_info(const std::shared_ptradd_attribute("ab_afterburner_is_used", std::make_shared(true)); - run_info->add_attribute("hadron_beam_energy", std::make_shared(cfg.hadron_beam.energy)); - run_info->add_attribute("lepton_beam_energy", std::make_shared(cfg.lepton_beam.energy)); + run_info->add_attribute("ion_beam_energy", std::make_shared(cfg.ion_beam.energy)); + run_info->add_attribute("electron_beam_energy", std::make_shared(cfg.electron_beam.energy)); - run_info->add_attribute("hadron_beam_charge", std::make_shared(cfg.hadron_beam.charge)); - run_info->add_attribute("lepton_beam_charge", std::make_shared(cfg.lepton_beam.charge)); + run_info->add_attribute("ion_beam_charge", std::make_shared(cfg.ion_beam.charge)); + run_info->add_attribute("electron_beam_charge", std::make_shared(cfg.electron_beam.charge)); - run_info->add_attribute("hadron_beam_mass", std::make_shared(cfg.hadron_beam.mass)); - run_info->add_attribute("lepton_beam_mass", std::make_shared(cfg.lepton_beam.mass)); + run_info->add_attribute("ion_beam_mass", std::make_shared(cfg.ion_beam.mass)); + run_info->add_attribute("electron_beam_mass", std::make_shared(cfg.electron_beam.mass)); run_info->add_attribute("ab_crossing_angle", std::make_shared(cfg.crossing_angle_hor)); run_info->add_attribute("ab_use_beam_bunch_sim", std::make_shared(cfg.use_beam_bunch_sim)); - run_info->add_attribute("ab_hadron_divergence_hor", std::make_shared(cfg.hadron_beam.divergence_hor)); - run_info->add_attribute("ab_hadron_divergence_ver", std::make_shared(cfg.hadron_beam.divergence_ver)); - run_info->add_attribute("ab_hadron_beta_crab_hor", std::make_shared(cfg.hadron_beam.beta_crab_hor)); - run_info->add_attribute("ab_hadron_beta_star_hor", std::make_shared(cfg.hadron_beam.beta_star_hor)); - run_info->add_attribute("ab_hadron_beta_star_ver", std::make_shared(cfg.hadron_beam.beta_star_ver)); - run_info->add_attribute("ab_hadron_rms_emittance_hor", std::make_shared(cfg.hadron_beam.rms_emittance_hor)); - run_info->add_attribute("ab_hadron_rms_emittance_ver", std::make_shared(cfg.hadron_beam.rms_emittance_ver)); - run_info->add_attribute("ab_hadron_rms_bunch_length", std::make_shared(cfg.hadron_beam.rms_bunch_length)); - - run_info->add_attribute("ab_lepton_divergence_hor", std::make_shared(cfg.lepton_beam.divergence_hor)); - run_info->add_attribute("ab_lepton_divergence_ver", std::make_shared(cfg.lepton_beam.divergence_ver)); - run_info->add_attribute("ab_lepton_beta_crab_hor", std::make_shared(cfg.lepton_beam.beta_crab_hor)); - run_info->add_attribute("ab_lepton_beta_star_hor", std::make_shared(cfg.lepton_beam.beta_star_hor)); - run_info->add_attribute("ab_lepton_beta_star_ver", std::make_shared(cfg.lepton_beam.beta_star_ver)); - run_info->add_attribute("ab_lepton_rms_emittance_hor", std::make_shared(cfg.lepton_beam.rms_emittance_hor)); - run_info->add_attribute("ab_lepton_rms_emittance_ver", std::make_shared(cfg.lepton_beam.rms_emittance_ver)); - run_info->add_attribute("ab_lepton_rms_bunch_length", std::make_shared(cfg.lepton_beam.rms_bunch_length)); + run_info->add_attribute("ab_ion_divergence_hor", std::make_shared(cfg.ion_beam.divergence_hor)); + run_info->add_attribute("ab_ion_divergence_ver", std::make_shared(cfg.ion_beam.divergence_ver)); + run_info->add_attribute("ab_ion_beta_crab_hor", std::make_shared(cfg.ion_beam.beta_crab_hor)); + run_info->add_attribute("ab_ion_beta_star_hor", std::make_shared(cfg.ion_beam.beta_star_hor)); + run_info->add_attribute("ab_ion_beta_star_ver", std::make_shared(cfg.ion_beam.beta_star_ver)); + run_info->add_attribute("ab_ion_rms_emittance_hor", std::make_shared(cfg.ion_beam.rms_emittance_hor)); + run_info->add_attribute("ab_ion_rms_emittance_ver", std::make_shared(cfg.ion_beam.rms_emittance_ver)); + run_info->add_attribute("ab_ion_rms_bunch_length", std::make_shared(cfg.ion_beam.rms_bunch_length)); + + run_info->add_attribute("ab_electron_divergence_hor", std::make_shared(cfg.electron_beam.divergence_hor)); + run_info->add_attribute("ab_electron_divergence_ver", std::make_shared(cfg.electron_beam.divergence_ver)); + run_info->add_attribute("ab_electron_beta_crab_hor", std::make_shared(cfg.electron_beam.beta_crab_hor)); + run_info->add_attribute("ab_electron_beta_star_hor", std::make_shared(cfg.electron_beam.beta_star_hor)); + run_info->add_attribute("ab_electron_beta_star_ver", std::make_shared(cfg.electron_beam.beta_star_ver)); + run_info->add_attribute("ab_electron_rms_emittance_hor", std::make_shared(cfg.electron_beam.rms_emittance_hor)); + run_info->add_attribute("ab_electron_rms_emittance_ver", std::make_shared(cfg.electron_beam.rms_emittance_ver)); + run_info->add_attribute("ab_electron_rms_bunch_length", std::make_shared(cfg.electron_beam.rms_bunch_length)); } diff --git a/cpp/afterburner/Afterburner.cc b/cpp/afterburner/Afterburner.cc index 51e4a69..5d511ee 100644 --- a/cpp/afterburner/Afterburner.cc +++ b/cpp/afterburner/Afterburner.cc @@ -56,24 +56,24 @@ ab::BunchInteractionResult ab::Afterburner::generate_vertx_with_bunch_interactio using namespace std; // Set particle positions - double hadron_z = _smear.gauss(_cfg.hadron_beam.rms_bunch_length); - double lepton_z = _smear.gauss(_cfg.lepton_beam.rms_bunch_length); + double ion_z = _smear.gauss(_cfg.ion_beam.rms_bunch_length); + double electron_z = _smear.gauss(_cfg.electron_beam.rms_bunch_length); double crossing_angle = _cfg.crossing_angle_hor; - double had_bunch_rms_hor = sqrt(_cfg.hadron_beam.beta_star_hor * _cfg.hadron_beam.rms_emittance_hor); - double had_bunch_rms_ver = sqrt(_cfg.hadron_beam.beta_star_ver * _cfg.hadron_beam.rms_emittance_ver); - double lep_bunch_rms_hor = sqrt(_cfg.lepton_beam.beta_star_hor * _cfg.lepton_beam.rms_emittance_hor); - double lep_bunch_rms_ver = sqrt(_cfg.lepton_beam.beta_star_ver * _cfg.lepton_beam.rms_emittance_ver); + double had_bunch_rms_hor = sqrt(_cfg.ion_beam.beta_star_hor * _cfg.ion_beam.rms_emittance_hor); + double had_bunch_rms_ver = sqrt(_cfg.ion_beam.beta_star_ver * _cfg.ion_beam.rms_emittance_ver); + double lep_bunch_rms_hor = sqrt(_cfg.electron_beam.beta_star_hor * _cfg.electron_beam.rms_emittance_hor); + double lep_bunch_rms_ver = sqrt(_cfg.electron_beam.beta_star_ver * _cfg.electron_beam.rms_emittance_ver); double sigma_hor = get_collision_width(had_bunch_rms_hor, lep_bunch_rms_hor); double sigma_ver = get_collision_width(had_bunch_rms_ver, lep_bunch_rms_ver); - // Find Collision time, z position of collision, z position of center of hadron bunch at collision time and x position of collision + // Find Collision time, z position of collision, z position of center of ion bunch at collision time and x position of collision // Quantities are found via a system of parametric equations - // Z position of colliding hadron as a function of time: Z_h = Cos(0.5*theta_c)*t + Z_h_offset (Z_h_offset = distance from center of bunch) - // Z position of colliding lepton as a function of time: Z_l = -Cos(0.5*theta_c)*t + Z_l_offset + // Z position of colliding ion as a function of time: Z_h = Cos(0.5*theta_c)*t + Z_h_offset (Z_h_offset = distance from center of bunch) + // Z position of colliding electron as a function of time: Z_l = -Cos(0.5*theta_c)*t + Z_l_offset // Collision time when Z_h = Z_l -> t_int = (Z_l_offset - Z_h_offset)/(2*Cos(0.5*theta_c)) // Z position of collision: Z_int = (Z_l_offset + Z_h_offset)/2 - // Z position of center of hadron bunch a collision time - this gives x position of collision via relation x = z*Tan(0.5*theta_c) + // Z position of center of ion bunch a collision time - this gives x position of collision via relation x = z*Tan(0.5*theta_c) // Z_bunch_int = Cos(0.5*theta_c)*t_int // X_int = Z_bunch_int * Tan(0.5*theta_c) @@ -81,8 +81,8 @@ ab::BunchInteractionResult ab::Afterburner::generate_vertx_with_bunch_interactio double s_c = sin(crossing_angle/2.0); double t_c = tan(crossing_angle/2.0); - double t_int = (lepton_z - hadron_z)/(2.0*c_c); - double z_int = (lepton_z + hadron_z)/2.0; + double t_int = (electron_z - ion_z)/(2.0*c_c); + double z_int = (electron_z + ion_z)/2.0; double z_bunch_int = c_c*t_int; double x_int = z_bunch_int*t_c; @@ -109,8 +109,8 @@ ab::BunchInteractionResult ab::Afterburner::generate_vertx_with_bunch_interactio CLHEP::Hep3Vector collision_center(tmpVtxX, tmpVtxY, tmpVtxZ); ab::BunchInteractionResult result; result.vertex.set(collision_center, t_int); - result.bunch_one_z = hadron_z; - result.bunch_two_z = lepton_z; + result.bunch_one_z = ion_z; + result.bunch_two_z = electron_z; // // // const static CLHEP::Hep3Vector z_axis(0, 0, 1); @@ -123,8 +123,8 @@ ab::BunchInteractionResult ab::Afterburner::generate_vertx_with_bunch_interactio // // CLHEP::Hep3Vector vec_crossing = beamA_center - 0.5 * (beamA_center - beamB_center); // -// CLHEP::Hep3Vector vec_longitudinal_collision = beamCenterDiffAxis * (hadron_z + lepton_z) / 2.; -// double ct_collision = 0.5 * (-hadron_z + lepton_z) / beamCenterDiffAxis.dot(beamA_center); +// CLHEP::Hep3Vector vec_longitudinal_collision = beamCenterDiffAxis * (ion_z + electron_z) / 2.; +// double ct_collision = 0.5 * (-ion_z + electron_z) / beamCenterDiffAxis.dot(beamA_center); // double t_collision = ct_collision ;//* CLHEP::mm / CLHEP::c_light / CLHEP::ns; // CLHEP::Hep3Vector vec_crossing_collision = ct_collision * vec_crossing; // shift of collision to crossing direction // @@ -152,8 +152,8 @@ ab::BunchInteractionResult ab::Afterburner::generate_vertx_with_bunch_interactio // // ab::BunchInteractionResult result; // result.vertex.set(vec_collision_vertex, t_collision); -// result.bunch_one_z = hadron_z; -// result.bunch_two_z = lepton_z; +// result.bunch_one_z = ion_z; +// result.bunch_two_z = electron_z; // // // if (m_verbosity) @@ -206,12 +206,12 @@ CLHEP::Hep3Vector ab::Afterburner::smear_beam_divergence(const CLHEP::Hep3Vector // Vertical /* // Calculate angular deflection - double crabAngHad = ((mXAngle/2.0)*hadronPartPos)/(TMath::Sqrt(betaCrabHad*betaStarHad)); - double crabAngLep = ((mXAngle/2.0)*leptonPartPos)/(TMath::Sqrt(betaCrabLep*betaStarLep)); + double crabAngHad = ((mXAngle/2.0)*ionPartPos)/(TMath::Sqrt(betaCrabHad*betaStarHad)); + double crabAngLep = ((mXAngle/2.0)*electronPartPos)/(TMath::Sqrt(betaCrabLep*betaStarLep)); // Calculate Magnitude of Px kick double crabKickHad = (mIonBeamEnergy + tmpPzA)*TMath::Sin(crabAngHad); - double crabKickLep = (-1.0)*(mLeptonBeamEnergy + tmpPzB)*TMath::Sin(crabAngLep); // + double crabKickLep = (-1.0)*(mElectronBeamEnergy + tmpPzB)*TMath::Sin(crabAngLep); // // Rotate Momentum Kick into Detector Frame double tmpVertPxA, tmpVertPyA, tmpVertPzA; @@ -271,56 +271,56 @@ ab::AfterburnerEventResult ab::Afterburner::process_event(const CLHEP::HepLorent const static CLHEP::Hep3Vector z_axis(0, 0, 1); const static CLHEP::Hep3Vector y_axis(0, 1, 0); - //CLHEP::Hep3Vector ideal_hadron_dir = spherical_to_cartesian(_cfg.hadron_beam.direction_theta, _cfg.hadron_beam.direction_phi); - //CLHEP::Hep3Vector ideal_lepton_dir = spherical_to_cartesian(_cfg.lepton_beam.direction_theta, _cfg.lepton_beam.direction_phi); - CLHEP::Hep3Vector ideal_lepton_dir(0, 0, -1); - CLHEP::Hep3Vector ideal_hadron_dir = CLHEP::Hep3Vector(z_axis).rotateY(_cfg.crossing_angle_hor).rotateX(_cfg.crossing_angle_ver); + //CLHEP::Hep3Vector ideal_ion_dir = spherical_to_cartesian(_cfg.ion_beam.direction_theta, _cfg.ion_beam.direction_phi); + //CLHEP::Hep3Vector ideal_electron_dir = spherical_to_cartesian(_cfg.electron_beam.direction_theta, _cfg.electron_beam.direction_phi); + CLHEP::Hep3Vector ideal_electron_dir(0, 0, -1); + CLHEP::Hep3Vector ideal_ion_dir = CLHEP::Hep3Vector(z_axis).rotateY(_cfg.crossing_angle_hor).rotateX(_cfg.crossing_angle_ver); - //double crossing_angle = acos(ideal_hadron_dir.unit().dot(-ideal_lepton_dir.unit())); + //double crossing_angle = acos(ideal_ion_dir.unit().dot(-ideal_electron_dir.unit())); if (m_verbosity) { cout << __PRETTY_FUNCTION__ << ": " << endl; - cout << "ideal_hadron_dir = " << ideal_hadron_dir << endl; - cout << "ideal_lepton_dir = " << ideal_lepton_dir << endl; + cout << "ideal_ion_dir = " << ideal_ion_dir << endl; + cout << "ideal_electron_dir = " << ideal_electron_dir << endl; cout << "crossing_angle_hor = " << _cfg.crossing_angle_hor << endl; cout << "crossing_angle_ver = " << _cfg.crossing_angle_ver << endl; } - assert(fabs(ideal_hadron_dir.mag2() - 1) < CLHEP::Hep3Vector::getTolerance()); - assert(fabs(ideal_lepton_dir.mag2() - 1) < CLHEP::Hep3Vector::getTolerance()); + assert(fabs(ideal_ion_dir.mag2() - 1) < CLHEP::Hep3Vector::getTolerance()); + assert(fabs(ideal_electron_dir.mag2() - 1) < CLHEP::Hep3Vector::getTolerance()); - if (ideal_hadron_dir.dot(ideal_lepton_dir) > -0.5) { + if (ideal_ion_dir.dot(ideal_electron_dir) > -0.5) { cout << "PHHepMCGenHelper::process_event - WARNING -" << "Beam A and Beam B are not near back to back. " << "Please double check beam direction setting at set_beam_direction_theta_phi()." - << "beamA_center = " << ideal_hadron_dir << "," - << "beamB_center = " << ideal_lepton_dir << "," + << "beamA_center = " << ideal_ion_dir << "," + << "beamB_center = " << ideal_electron_dir << "," << " Current setting:"; print(); } // Calculate angular deflection - double hadron_crab_hor = _cfg.crossing_angle_hor / 2.0 / sqrt(_cfg.hadron_beam.beta_crab_hor * _cfg.hadron_beam.beta_star_hor); - double hadron_crab_ver = 0; + double ion_crab_hor = _cfg.crossing_angle_hor / 2.0 / sqrt(_cfg.ion_beam.beta_crab_hor * _cfg.ion_beam.beta_star_hor); + double ion_crab_ver = 0; - double lepton_crab_hor = _cfg.crossing_angle_hor / 2.0 / sqrt(_cfg.lepton_beam.beta_crab_hor * _cfg.lepton_beam.beta_star_hor); - double lepton_crab_ver = 0; + double electron_crab_hor = _cfg.crossing_angle_hor / 2.0 / sqrt(_cfg.electron_beam.beta_crab_hor * _cfg.electron_beam.beta_star_hor); + double electron_crab_ver = 0; - CLHEP::Hep3Vector real_hadron_dir = smear_beam_divergence(ideal_hadron_dir, _cfg.hadron_beam, bunch_one_z, hadron_crab_hor, hadron_crab_ver); - CLHEP::Hep3Vector real_lepton_dir = smear_beam_divergence(ideal_lepton_dir, _cfg.lepton_beam, bunch_two_z, lepton_crab_hor, lepton_crab_ver); + CLHEP::Hep3Vector real_ion_dir = smear_beam_divergence(ideal_ion_dir, _cfg.ion_beam, bunch_one_z, ion_crab_hor, ion_crab_ver); + CLHEP::Hep3Vector real_electron_dir = smear_beam_divergence(ideal_electron_dir, _cfg.electron_beam, bunch_two_z, electron_crab_hor, electron_crab_ver); if (m_verbosity) { cout << __PRETTY_FUNCTION__ << ": " << endl; - cout << "beamA_vec = " << real_hadron_dir << endl; - cout << "beamB_vec = " << real_lepton_dir << endl; + cout << "beamA_vec = " << real_ion_dir << endl; + cout << "beamB_vec = " << real_electron_dir << endl; } - assert(fabs(real_hadron_dir.mag2() - 1) < CLHEP::Hep3Vector::getTolerance()); - assert(fabs(real_lepton_dir.mag2() - 1) < CLHEP::Hep3Vector::getTolerance()); + assert(fabs(real_ion_dir.mag2() - 1) < CLHEP::Hep3Vector::getTolerance()); + assert(fabs(real_electron_dir.mag2() - 1) < CLHEP::Hep3Vector::getTolerance()); // apply minimal beam energy shift rotation and boost - CLHEP::Hep3Vector boost_axis = real_hadron_dir + real_lepton_dir; + CLHEP::Hep3Vector boost_axis = real_ion_dir + real_electron_dir; if (boost_axis.mag2() > CLHEP::Hep3Vector::getTolerance()) { //non-zero boost @@ -339,13 +339,13 @@ ab::AfterburnerEventResult ab::Afterburner::process_event(const CLHEP::HepLorent } //rotation to collision to along z-axis with beamA pointing to +z - CLHEP::Hep3Vector beamDiffAxis = (real_hadron_dir - real_lepton_dir); + CLHEP::Hep3Vector beamDiffAxis = (real_ion_dir - real_electron_dir); if (beamDiffAxis.mag2() < CLHEP::Hep3Vector::getTolerance()) { cout << "PHHepMCGenHelper::process_event - Fatal error -" << "Beam A and Beam B are too close to each other in direction " << "Please double check beam direction and divergence setting. " - << "real_hadron_dir = " << real_hadron_dir << "," - << "real_lepton_dir = " << real_lepton_dir << "," + << "real_ion_dir = " << real_ion_dir << "," + << "real_electron_dir = " << real_electron_dir << "," << " Current setting:"; print(); @@ -376,7 +376,7 @@ ab::AfterburnerEventResult ab::Afterburner::process_event(const CLHEP::HepLorent } } else { // need a rotation - CLHEP::Hep3Vector rotation_axis = (real_hadron_dir - real_lepton_dir).cross(z_axis); + CLHEP::Hep3Vector rotation_axis = (real_ion_dir - real_electron_dir).cross(z_axis); const double rotation_angle_to_z = acos(cos_rotation_angle_to_z); // TODO back to -acos? result.rotation = CLHEP::HepRotation(rotation_axis, rotation_angle_to_z); @@ -389,7 +389,7 @@ ab::AfterburnerEventResult ab::Afterburner::process_event(const CLHEP::HepLorent // rotate the collision vertex z direction to middle of the beam angles // the final longitudinal vertex smear axis - CLHEP::Hep3Vector beamCenterDiffAxis = (ideal_hadron_dir - ideal_lepton_dir); + CLHEP::Hep3Vector beamCenterDiffAxis = (ideal_ion_dir - ideal_electron_dir); beamCenterDiffAxis = beamCenterDiffAxis / beamCenterDiffAxis.mag(); double cos_rotation_center_angle_to_z = beamCenterDiffAxis.dot(z_axis); @@ -462,17 +462,17 @@ void ab::Afterburner::print() const { cout << "Vertex distribution function: " << smear_func_to_str(_cfg.vertex_smear_func) << endl; cout << "Vertex simulation is: " << (_cfg.use_beam_bunch_sim ? string("on") : std::string("off")) << endl; - cout << "Hadron beam:\n"; - cout << " rms emittance : hor = " << _cfg.hadron_beam.rms_emittance_hor << ", ver = " << _cfg.hadron_beam.rms_emittance_ver << endl; - cout << " beta star : hor = " << _cfg.hadron_beam.beta_star_hor << ", ver = " << _cfg.hadron_beam.beta_star_ver << endl; - cout << " beta crab : hor = " << _cfg.hadron_beam.beta_crab_hor << endl; - cout << " rms bunch length: " << _cfg.hadron_beam.rms_bunch_length << endl; - - cout << "Lepton beam:\n"; - cout << " rms emittance : hor = " << _cfg.lepton_beam.rms_emittance_hor << ", ver = " << _cfg.lepton_beam.rms_emittance_ver << endl; - cout << " beta star : hor = " << _cfg.lepton_beam.beta_star_hor << ", ver = " << _cfg.lepton_beam.beta_star_ver << endl; - cout << " beta crab : hor = " << _cfg.lepton_beam.beta_crab_hor << endl; - cout << " rms bunch length: " << _cfg.lepton_beam.rms_bunch_length << endl; + cout << "Ion beam:\n"; + cout << " rms emittance : hor = " << _cfg.ion_beam.rms_emittance_hor << ", ver = " << _cfg.ion_beam.rms_emittance_ver << endl; + cout << " beta star : hor = " << _cfg.ion_beam.beta_star_hor << ", ver = " << _cfg.ion_beam.beta_star_ver << endl; + cout << " beta crab : hor = " << _cfg.ion_beam.beta_crab_hor << endl; + cout << " rms bunch length: " << _cfg.ion_beam.rms_bunch_length << endl; + + cout << "Electron beam:\n"; + cout << " rms emittance : hor = " << _cfg.electron_beam.rms_emittance_hor << ", ver = " << _cfg.electron_beam.rms_emittance_ver << endl; + cout << " beta star : hor = " << _cfg.electron_beam.beta_star_hor << ", ver = " << _cfg.electron_beam.beta_star_ver << endl; + cout << " beta crab : hor = " << _cfg.electron_beam.beta_crab_hor << endl; + cout << " rms bunch length: " << _cfg.electron_beam.rms_bunch_length << endl; cout << "=========================\n"; } diff --git a/cpp/afterburner/AfterburnerConfig.hh b/cpp/afterburner/AfterburnerConfig.hh index a56b905..13f19f0 100644 --- a/cpp/afterburner/AfterburnerConfig.hh +++ b/cpp/afterburner/AfterburnerConfig.hh @@ -75,10 +75,10 @@ namespace ab { double vertex_shift_t = 0; /// Beam A (one) configuration - BeamConfig hadron_beam; + BeamConfig ion_beam; /// Beam B (two) configuration - BeamConfig lepton_beam; + BeamConfig electron_beam; }; } #endif //EICAFTERBURNER_AFTERBURNERCONFIG_HH diff --git a/cpp/afterburner/EicConfigurator.cc b/cpp/afterburner/EicConfigurator.cc index 0bdc828..1838d56 100644 --- a/cpp/afterburner/EicConfigurator.cc +++ b/cpp/afterburner/EicConfigurator.cc @@ -12,45 +12,45 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x18() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 110; - cfg.lepton_beam.energy = 18; + cfg.ion_beam.energy = 110; + cfg.electron_beam.energy = 18; // Beam charge - cfg.hadron_beam.charge = 79; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 79; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 184.009; //fix? - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 184.009; //fix? + cfg.electron_beam.mass = 0.000511; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 500000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 500000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 218e-6; - cfg.hadron_beam.divergence_ver = 379e-6; - cfg.lepton_beam.divergence_hor = 101e-6; - cfg.lepton_beam.divergence_ver = 37e-6; + cfg.ion_beam.divergence_hor = 218e-6; + cfg.ion_beam.divergence_ver = 379e-6; + cfg.electron_beam.divergence_hor = 101e-6; + cfg.electron_beam.divergence_ver = 37e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 910; - cfg.hadron_beam.beta_star_ver = 40; - cfg.lepton_beam.beta_star_hor = 1960; - cfg.lepton_beam.beta_star_ver = 410; + cfg.ion_beam.beta_star_hor = 910; + cfg.ion_beam.beta_star_ver = 40; + cfg.electron_beam.beta_star_hor = 1960; + cfg.electron_beam.beta_star_ver = 410; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 43.2 * nm; - cfg.hadron_beam.rms_emittance_ver = 5.8 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 0.6 * nm; + cfg.ion_beam.rms_emittance_hor = 43.2 * nm; + cfg.ion_beam.rms_emittance_ver = 5.8 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 0.6 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7 * cm; - cfg.lepton_beam.rms_bunch_length = 0.9 * cm; + cfg.ion_beam.rms_bunch_length = 7 * cm; + cfg.electron_beam.rms_bunch_length = 0.9 * cm; return cfg; } @@ -60,45 +60,45 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x10() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 110; - cfg.lepton_beam.energy = 10; + cfg.ion_beam.energy = 110; + cfg.electron_beam.energy = 10; // Beam charge - cfg.hadron_beam.charge = 79; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 79; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 184.009; //fix? - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 184.009; //fix? + cfg.electron_beam.mass = 0.000511; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 500000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 500000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 216e-6; - cfg.hadron_beam.divergence_ver = 274e-6; - cfg.lepton_beam.divergence_hor = 102e-6; - cfg.lepton_beam.divergence_ver = 92e-6; + cfg.ion_beam.divergence_hor = 216e-6; + cfg.ion_beam.divergence_ver = 274e-6; + cfg.electron_beam.divergence_hor = 102e-6; + cfg.electron_beam.divergence_ver = 92e-6; // Beam beta star [mm] [mm] - cfg.hadron_beam.beta_star_hor = 910; - cfg.hadron_beam.beta_star_ver = 40; - cfg.lepton_beam.beta_star_hor = 1930; - cfg.lepton_beam.beta_star_ver = 120; + cfg.ion_beam.beta_star_hor = 910; + cfg.ion_beam.beta_star_ver = 40; + cfg.electron_beam.beta_star_hor = 1930; + cfg.electron_beam.beta_star_ver = 120; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 42.3 * nm; - cfg.hadron_beam.rms_emittance_ver = 3 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 1 * nm; + cfg.ion_beam.rms_emittance_hor = 42.3 * nm; + cfg.ion_beam.rms_emittance_ver = 3 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 1 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -108,45 +108,45 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x5() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 110; - cfg.lepton_beam.energy = 5; + cfg.ion_beam.energy = 110; + cfg.electron_beam.energy = 5; // Beam charge - cfg.hadron_beam.charge = 79; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 79; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 184.009; //fix? - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 184.009; //fix? + cfg.electron_beam.mass = 0.000511; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 500000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 500000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 215e-6; - cfg.hadron_beam.divergence_ver = 275e-6; - cfg.lepton_beam.divergence_hor = 102e-6; - cfg.lepton_beam.divergence_ver = 185e-6; + cfg.ion_beam.divergence_hor = 215e-6; + cfg.ion_beam.divergence_ver = 275e-6; + cfg.electron_beam.divergence_hor = 102e-6; + cfg.electron_beam.divergence_ver = 185e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 910; - cfg.hadron_beam.beta_star_ver = 40; - cfg.lepton_beam.beta_star_hor = 1930; - cfg.lepton_beam.beta_star_ver = 60; + cfg.ion_beam.beta_star_hor = 910; + cfg.ion_beam.beta_star_ver = 40; + cfg.electron_beam.beta_star_hor = 1930; + cfg.electron_beam.beta_star_ver = 60; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 42.3 * nm; - cfg.hadron_beam.rms_emittance_ver = 3 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 2 * nm; + cfg.ion_beam.rms_emittance_hor = 42.3 * nm; + cfg.ion_beam.rms_emittance_ver = 3 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 2 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -156,46 +156,46 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_41x5() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 41; - cfg.lepton_beam.energy = 5; + cfg.ion_beam.energy = 41; + cfg.electron_beam.energy = 5; // Beam charge - cfg.hadron_beam.charge = 79; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 79; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 184.009; //fix? - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 184.009; //fix? + cfg.electron_beam.mass = 0.000511; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] //βcrabm1300/500/200beta function at crab cavity, - cfg.hadron_beam.beta_crab_hor = 200000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 200000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 275e-6; - cfg.hadron_beam.divergence_ver = 377e-6; - cfg.lepton_beam.divergence_hor = 81e-6; - cfg.lepton_beam.divergence_ver = 136e-6; + cfg.ion_beam.divergence_hor = 275e-6; + cfg.ion_beam.divergence_ver = 377e-6; + cfg.electron_beam.divergence_hor = 81e-6; + cfg.electron_beam.divergence_ver = 136e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 900; - cfg.hadron_beam.beta_star_ver = 40; - cfg.lepton_beam.beta_star_hor = 3070; - cfg.lepton_beam.beta_star_ver = 110; + cfg.ion_beam.beta_star_hor = 900; + cfg.ion_beam.beta_star_ver = 40; + cfg.electron_beam.beta_star_hor = 3070; + cfg.electron_beam.beta_star_ver = 110; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 68.1 * nm; - cfg.hadron_beam.rms_emittance_ver = 5.7 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 2 * nm; + cfg.ion_beam.rms_emittance_hor = 68.1 * nm; + cfg.ion_beam.rms_emittance_ver = 5.7 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 2 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 11.6 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 11.6 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -204,45 +204,45 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_41x5() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 41; - cfg.lepton_beam.energy = 5; + cfg.ion_beam.energy = 41; + cfg.electron_beam.energy = 5; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 200000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 200000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 220e-6; - cfg.hadron_beam.divergence_ver = 380e-6; - cfg.lepton_beam.divergence_hor = 101e-6; - cfg.lepton_beam.divergence_ver = 129e-6; + cfg.ion_beam.divergence_hor = 220e-6; + cfg.ion_beam.divergence_ver = 380e-6; + cfg.electron_beam.divergence_hor = 101e-6; + cfg.electron_beam.divergence_ver = 129e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 900; - cfg.hadron_beam.beta_star_ver = 71; - cfg.lepton_beam.beta_star_hor = 1960; - cfg.lepton_beam.beta_star_ver = 210; + cfg.ion_beam.beta_star_hor = 900; + cfg.ion_beam.beta_star_ver = 71; + cfg.electron_beam.beta_star_hor = 1960; + cfg.electron_beam.beta_star_ver = 210; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 44 * nm; - cfg.hadron_beam.rms_emittance_ver = 10 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 3.5 * nm; + cfg.ion_beam.rms_emittance_hor = 44 * nm; + cfg.ion_beam.rms_emittance_ver = 10 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 3.5 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7.5 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7.5 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -251,45 +251,45 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_100x5() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 100; - cfg.lepton_beam.energy = 5; + cfg.ion_beam.energy = 100; + cfg.electron_beam.energy = 5; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 500000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 500000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 180e-6; - cfg.hadron_beam.divergence_ver = 180e-6; - cfg.lepton_beam.divergence_hor = 140e-6; - cfg.lepton_beam.divergence_ver = 140e-6; + cfg.ion_beam.divergence_hor = 180e-6; + cfg.ion_beam.divergence_ver = 180e-6; + cfg.electron_beam.divergence_hor = 140e-6; + cfg.electron_beam.divergence_ver = 140e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 800; - cfg.hadron_beam.beta_star_ver = 72; - cfg.lepton_beam.beta_star_hor = 1030; - cfg.lepton_beam.beta_star_ver = 92; + cfg.ion_beam.beta_star_hor = 800; + cfg.ion_beam.beta_star_ver = 72; + cfg.electron_beam.beta_star_hor = 1030; + cfg.electron_beam.beta_star_ver = 92; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 26 * nm; - cfg.hadron_beam.rms_emittance_ver = 2.3 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 1.8 * nm; + cfg.ion_beam.rms_emittance_hor = 26 * nm; + cfg.ion_beam.rms_emittance_ver = 2.3 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 1.8 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -298,45 +298,45 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_100x10() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 100; - cfg.lepton_beam.energy = 10; + cfg.ion_beam.energy = 100; + cfg.electron_beam.energy = 10; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 500000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 500000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 180e-6; - cfg.hadron_beam.divergence_ver = 180e-6; - cfg.lepton_beam.divergence_hor = 118e-6; - cfg.lepton_beam.divergence_ver = 86e-6; + cfg.ion_beam.divergence_hor = 180e-6; + cfg.ion_beam.divergence_ver = 180e-6; + cfg.electron_beam.divergence_hor = 118e-6; + cfg.electron_beam.divergence_ver = 86e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 940; - cfg.hadron_beam.beta_star_ver = 85; - cfg.lepton_beam.beta_star_hor = 1430; - cfg.lepton_beam.beta_star_ver = 180; + cfg.ion_beam.beta_star_hor = 940; + cfg.ion_beam.beta_star_ver = 85; + cfg.electron_beam.beta_star_hor = 1430; + cfg.electron_beam.beta_star_ver = 180; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 30 * nm; - cfg.hadron_beam.rms_emittance_ver = 2.7 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 1.3 * nm; + cfg.ion_beam.rms_emittance_hor = 30 * nm; + cfg.ion_beam.rms_emittance_ver = 2.7 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 1.3 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -345,45 +345,45 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_275x10() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 275; - cfg.lepton_beam.energy = 10; + cfg.ion_beam.energy = 275; + cfg.electron_beam.energy = 10; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 1300000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 1300000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 65e-6; - cfg.hadron_beam.divergence_ver = 65e-6; - cfg.lepton_beam.divergence_hor = 116e-6; - cfg.lepton_beam.divergence_ver = 84e-6; + cfg.ion_beam.divergence_hor = 65e-6; + cfg.ion_beam.divergence_ver = 65e-6; + cfg.electron_beam.divergence_hor = 116e-6; + cfg.electron_beam.divergence_ver = 84e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 2650; - cfg.hadron_beam.beta_star_ver = 240; - cfg.lepton_beam.beta_star_hor = 1490; - cfg.lepton_beam.beta_star_ver = 190; + cfg.ion_beam.beta_star_hor = 2650; + cfg.ion_beam.beta_star_ver = 240; + cfg.electron_beam.beta_star_hor = 1490; + cfg.electron_beam.beta_star_ver = 190; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 11 * nm; - cfg.hadron_beam.rms_emittance_ver = 1 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 1.3 * nm; + cfg.ion_beam.rms_emittance_hor = 11 * nm; + cfg.ion_beam.rms_emittance_ver = 1 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 1.3 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 6 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 6 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -392,45 +392,45 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_275x18() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 275; - cfg.lepton_beam.energy = 18; + cfg.ion_beam.energy = 275; + cfg.electron_beam.energy = 18; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 1300000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 1300000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 65e-6; - cfg.hadron_beam.divergence_ver = 65e-6; - cfg.lepton_beam.divergence_hor = 89e-6; - cfg.lepton_beam.divergence_ver = 82e-6; + cfg.ion_beam.divergence_hor = 65e-6; + cfg.ion_beam.divergence_ver = 65e-6; + cfg.electron_beam.divergence_hor = 89e-6; + cfg.electron_beam.divergence_ver = 82e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 4170; - cfg.hadron_beam.beta_star_ver = 380; - cfg.lepton_beam.beta_star_hor = 3060; - cfg.lepton_beam.beta_star_ver = 300; + cfg.ion_beam.beta_star_hor = 4170; + cfg.ion_beam.beta_star_ver = 380; + cfg.electron_beam.beta_star_hor = 3060; + cfg.electron_beam.beta_star_ver = 300; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 17.6 * nm; - cfg.hadron_beam.rms_emittance_ver = 1.6 * nm; - cfg.lepton_beam.rms_emittance_hor = 24 * nm; - cfg.lepton_beam.rms_emittance_ver = 2 * nm; + cfg.ion_beam.rms_emittance_hor = 17.6 * nm; + cfg.ion_beam.rms_emittance_ver = 1.6 * nm; + cfg.electron_beam.rms_emittance_hor = 24 * nm; + cfg.electron_beam.rms_emittance_ver = 2 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 6 * cm; - cfg.lepton_beam.rms_bunch_length = 0.9 * cm; + cfg.ion_beam.rms_bunch_length = 6 * cm; + cfg.electron_beam.rms_bunch_length = 0.9 * cm; return cfg; } @@ -440,45 +440,45 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_41x5() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 41; - cfg.lepton_beam.energy = 5; + cfg.ion_beam.energy = 41; + cfg.electron_beam.energy = 5; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 200000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 200000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 220e-6; - cfg.hadron_beam.divergence_ver = 380e-6; - cfg.lepton_beam.divergence_hor = 101e-6; - cfg.lepton_beam.divergence_ver = 129e-6; + cfg.ion_beam.divergence_hor = 220e-6; + cfg.ion_beam.divergence_ver = 380e-6; + cfg.electron_beam.divergence_hor = 101e-6; + cfg.electron_beam.divergence_ver = 129e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 900; - cfg.hadron_beam.beta_star_ver = 71; - cfg.lepton_beam.beta_star_hor = 1960; - cfg.lepton_beam.beta_star_ver = 210; + cfg.ion_beam.beta_star_hor = 900; + cfg.ion_beam.beta_star_ver = 71; + cfg.electron_beam.beta_star_hor = 1960; + cfg.electron_beam.beta_star_ver = 210; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 44 * nm; - cfg.hadron_beam.rms_emittance_ver = 10 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 3.5 * nm; + cfg.ion_beam.rms_emittance_hor = 44 * nm; + cfg.ion_beam.rms_emittance_ver = 10 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 3.5 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7.5 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7.5 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -487,45 +487,45 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_100x5() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 100; - cfg.lepton_beam.energy = 5; + cfg.ion_beam.energy = 100; + cfg.electron_beam.energy = 5; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 500000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 500000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 206e-6; - cfg.hadron_beam.divergence_ver = 206e-6; - cfg.lepton_beam.divergence_hor = 160e-6; - cfg.lepton_beam.divergence_ver = 160e-6; + cfg.ion_beam.divergence_hor = 206e-6; + cfg.ion_beam.divergence_ver = 206e-6; + cfg.electron_beam.divergence_hor = 160e-6; + cfg.electron_beam.divergence_ver = 160e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 610; - cfg.hadron_beam.beta_star_ver = 55; - cfg.lepton_beam.beta_star_hor = 780; - cfg.lepton_beam.beta_star_ver = 71; + cfg.ion_beam.beta_star_hor = 610; + cfg.ion_beam.beta_star_ver = 55; + cfg.electron_beam.beta_star_hor = 780; + cfg.electron_beam.beta_star_ver = 71; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 26 * nm; - cfg.hadron_beam.rms_emittance_ver = 2.3 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 1.8 * nm; + cfg.ion_beam.rms_emittance_hor = 26 * nm; + cfg.ion_beam.rms_emittance_ver = 2.3 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 1.8 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -534,45 +534,45 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_100x10() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 100; - cfg.lepton_beam.energy = 10; + cfg.ion_beam.energy = 100; + cfg.electron_beam.energy = 10; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 500000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 500000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 220e-6; - cfg.hadron_beam.divergence_ver = 220e-6; - cfg.lepton_beam.divergence_hor = 145e-6; - cfg.lepton_beam.divergence_ver = 105e-6; + cfg.ion_beam.divergence_hor = 220e-6; + cfg.ion_beam.divergence_ver = 220e-6; + cfg.electron_beam.divergence_hor = 145e-6; + cfg.electron_beam.divergence_ver = 105e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 630; - cfg.hadron_beam.beta_star_ver = 57; - cfg.lepton_beam.beta_star_hor = 960; - cfg.lepton_beam.beta_star_ver = 120; + cfg.ion_beam.beta_star_hor = 630; + cfg.ion_beam.beta_star_ver = 57; + cfg.electron_beam.beta_star_hor = 960; + cfg.electron_beam.beta_star_ver = 120; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 30 * nm; - cfg.hadron_beam.rms_emittance_ver = 2.7 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 1.3 * nm; + cfg.ion_beam.rms_emittance_hor = 30 * nm; + cfg.ion_beam.rms_emittance_ver = 2.7 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 1.3 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -581,45 +581,45 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_275x10() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 275; - cfg.lepton_beam.energy = 10; + cfg.ion_beam.energy = 275; + cfg.electron_beam.energy = 10; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 1300000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 1300000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 119e-6; - cfg.hadron_beam.divergence_ver = 119e-6; - cfg.lepton_beam.divergence_hor = 211e-6; - cfg.lepton_beam.divergence_ver = 152e-6; + cfg.ion_beam.divergence_hor = 119e-6; + cfg.ion_beam.divergence_ver = 119e-6; + cfg.electron_beam.divergence_hor = 211e-6; + cfg.electron_beam.divergence_ver = 152e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 800; - cfg.hadron_beam.beta_star_ver = 72; - cfg.lepton_beam.beta_star_hor = 450; - cfg.lepton_beam.beta_star_ver = 56; + cfg.ion_beam.beta_star_hor = 800; + cfg.ion_beam.beta_star_ver = 72; + cfg.electron_beam.beta_star_hor = 450; + cfg.electron_beam.beta_star_ver = 56; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 11.3 * nm; - cfg.hadron_beam.rms_emittance_ver = 1 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 1.3 * nm; + cfg.ion_beam.rms_emittance_hor = 11.3 * nm; + cfg.ion_beam.rms_emittance_ver = 1 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 1.3 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 6 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 6 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -628,45 +628,45 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_275x18() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 275; - cfg.lepton_beam.energy = 18; + cfg.ion_beam.energy = 275; + cfg.electron_beam.energy = 18; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 1300000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 1300000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 150e-6; - cfg.hadron_beam.divergence_ver = 150e-6; - cfg.lepton_beam.divergence_hor = 202e-6; - cfg.lepton_beam.divergence_ver = 187e-6; + cfg.ion_beam.divergence_hor = 150e-6; + cfg.ion_beam.divergence_ver = 150e-6; + cfg.electron_beam.divergence_hor = 202e-6; + cfg.electron_beam.divergence_ver = 187e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 800; - cfg.hadron_beam.beta_star_ver = 71; - cfg.lepton_beam.beta_star_hor = 590; - cfg.lepton_beam.beta_star_ver = 57; + cfg.ion_beam.beta_star_hor = 800; + cfg.ion_beam.beta_star_ver = 71; + cfg.electron_beam.beta_star_hor = 590; + cfg.electron_beam.beta_star_ver = 57; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 18e-6; - cfg.hadron_beam.rms_emittance_ver = 1.6e-6; - cfg.lepton_beam.rms_emittance_hor = 24e-6; - cfg.lepton_beam.rms_emittance_ver = 2e-6; + cfg.ion_beam.rms_emittance_hor = 18e-6; + cfg.ion_beam.rms_emittance_ver = 1.6e-6; + cfg.electron_beam.rms_emittance_hor = 24e-6; + cfg.electron_beam.rms_emittance_ver = 2e-6; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 6 * cm; - cfg.lepton_beam.rms_bunch_length = 0.9 * cm; + cfg.ion_beam.rms_bunch_length = 6 * cm; + cfg.electron_beam.rms_bunch_length = 0.9 * cm; return cfg; } @@ -678,44 +678,44 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x18() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 110; - cfg.lepton_beam.energy = 18; + cfg.ion_beam.energy = 110; + cfg.electron_beam.energy = 18; // Beam charge - cfg.hadron_beam.charge = 79; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 79; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 184.009; //fix? - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 184.009; //fix? + cfg.electron_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 500000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 500000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 218e-6; - cfg.hadron_beam.divergence_ver = 379e-6; - cfg.lepton_beam.divergence_hor = 101e-6; - cfg.lepton_beam.divergence_ver = 37e-6; + cfg.ion_beam.divergence_hor = 218e-6; + cfg.ion_beam.divergence_ver = 379e-6; + cfg.electron_beam.divergence_hor = 101e-6; + cfg.electron_beam.divergence_ver = 37e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 910; - cfg.hadron_beam.beta_star_ver = 40; - cfg.lepton_beam.beta_star_hor = 1960; - cfg.lepton_beam.beta_star_ver = 410; + cfg.ion_beam.beta_star_hor = 910; + cfg.ion_beam.beta_star_ver = 40; + cfg.electron_beam.beta_star_hor = 1960; + cfg.electron_beam.beta_star_ver = 410; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 43.2 * nm; - cfg.hadron_beam.rms_emittance_ver = 5.8 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 0.6 * nm; + cfg.ion_beam.rms_emittance_hor = 43.2 * nm; + cfg.ion_beam.rms_emittance_ver = 5.8 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 0.6 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7 * cm; - cfg.lepton_beam.rms_bunch_length = 0.9 * cm; + cfg.ion_beam.rms_bunch_length = 7 * cm; + cfg.electron_beam.rms_bunch_length = 0.9 * cm; return cfg; } @@ -725,44 +725,44 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x10() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 110; - cfg.lepton_beam.energy = 10; + cfg.ion_beam.energy = 110; + cfg.electron_beam.energy = 10; // Beam charge - cfg.hadron_beam.charge = 79; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 79; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 184.009; //fix? - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 184.009; //fix? + cfg.electron_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 500000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 500000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 216e-6; - cfg.hadron_beam.divergence_ver = 274e-6; - cfg.lepton_beam.divergence_hor = 102e-6; - cfg.lepton_beam.divergence_ver = 92e-6; + cfg.ion_beam.divergence_hor = 216e-6; + cfg.ion_beam.divergence_ver = 274e-6; + cfg.electron_beam.divergence_hor = 102e-6; + cfg.electron_beam.divergence_ver = 92e-6; // Beam beta star [mm] [mm] - cfg.hadron_beam.beta_star_hor = 910; - cfg.hadron_beam.beta_star_ver = 40; - cfg.lepton_beam.beta_star_hor = 1930; - cfg.lepton_beam.beta_star_ver = 120; + cfg.ion_beam.beta_star_hor = 910; + cfg.ion_beam.beta_star_ver = 40; + cfg.electron_beam.beta_star_hor = 1930; + cfg.electron_beam.beta_star_ver = 120; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 42.3 * nm; - cfg.hadron_beam.rms_emittance_ver = 3 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 1 * nm; + cfg.ion_beam.rms_emittance_hor = 42.3 * nm; + cfg.ion_beam.rms_emittance_ver = 3 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 1 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -772,44 +772,44 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x5() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 110; - cfg.lepton_beam.energy = 5; + cfg.ion_beam.energy = 110; + cfg.electron_beam.energy = 5; // Beam charge - cfg.hadron_beam.charge = 79; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 79; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 184.009; //fix? - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 184.009; //fix? + cfg.electron_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 500000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 500000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 215e-6; - cfg.hadron_beam.divergence_ver = 275e-6; - cfg.lepton_beam.divergence_hor = 102e-6; - cfg.lepton_beam.divergence_ver = 185e-6; + cfg.ion_beam.divergence_hor = 215e-6; + cfg.ion_beam.divergence_ver = 275e-6; + cfg.electron_beam.divergence_hor = 102e-6; + cfg.electron_beam.divergence_ver = 185e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 910; - cfg.hadron_beam.beta_star_ver = 40; - cfg.lepton_beam.beta_star_hor = 1930; - cfg.lepton_beam.beta_star_ver = 60; + cfg.ion_beam.beta_star_hor = 910; + cfg.ion_beam.beta_star_ver = 40; + cfg.electron_beam.beta_star_hor = 1930; + cfg.electron_beam.beta_star_ver = 60; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 42.3 * nm; - cfg.hadron_beam.rms_emittance_ver = 3 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 2 * nm; + cfg.ion_beam.rms_emittance_hor = 42.3 * nm; + cfg.ion_beam.rms_emittance_ver = 3 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 2 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -819,46 +819,46 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_41x5() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 45; - cfg.lepton_beam.energy = 5; + cfg.ion_beam.energy = 45; + cfg.electron_beam.energy = 5; // Beam charge - cfg.hadron_beam.charge = 79; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 79; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 184.009; //fix? - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 184.009; //fix? + cfg.electron_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] //βcrabm1300/500/200beta function at crab cavity, - cfg.hadron_beam.beta_crab_hor = 200000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 200000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 275e-6; - cfg.hadron_beam.divergence_ver = 377e-6; - cfg.lepton_beam.divergence_hor = 81e-6; - cfg.lepton_beam.divergence_ver = 136e-6; + cfg.ion_beam.divergence_hor = 275e-6; + cfg.ion_beam.divergence_ver = 377e-6; + cfg.electron_beam.divergence_hor = 81e-6; + cfg.electron_beam.divergence_ver = 136e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 900; - cfg.hadron_beam.beta_star_ver = 40; - cfg.lepton_beam.beta_star_hor = 3070; - cfg.lepton_beam.beta_star_ver = 110; + cfg.ion_beam.beta_star_hor = 900; + cfg.ion_beam.beta_star_ver = 40; + cfg.electron_beam.beta_star_hor = 3070; + cfg.electron_beam.beta_star_ver = 110; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 68.1 * nm; - cfg.hadron_beam.rms_emittance_ver = 5.7 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 2 * nm; + cfg.ion_beam.rms_emittance_hor = 68.1 * nm; + cfg.ion_beam.rms_emittance_ver = 5.7 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 2 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 11.6 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 11.6 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -867,44 +867,44 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_41x5() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 41; - cfg.lepton_beam.energy = 5; + cfg.ion_beam.energy = 41; + cfg.electron_beam.energy = 5; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 200000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 200000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 220e-6; - cfg.hadron_beam.divergence_ver = 380e-6; - cfg.lepton_beam.divergence_hor = 101e-6; - cfg.lepton_beam.divergence_ver = 129e-6; + cfg.ion_beam.divergence_hor = 220e-6; + cfg.ion_beam.divergence_ver = 380e-6; + cfg.electron_beam.divergence_hor = 101e-6; + cfg.electron_beam.divergence_ver = 129e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 900; - cfg.hadron_beam.beta_star_ver = 71; - cfg.lepton_beam.beta_star_hor = 1960; - cfg.lepton_beam.beta_star_ver = 210; + cfg.ion_beam.beta_star_hor = 900; + cfg.ion_beam.beta_star_ver = 71; + cfg.electron_beam.beta_star_hor = 1960; + cfg.electron_beam.beta_star_ver = 210; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 44 * nm; - cfg.hadron_beam.rms_emittance_ver = 10 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 3.5 * nm; + cfg.ion_beam.rms_emittance_hor = 44 * nm; + cfg.ion_beam.rms_emittance_ver = 10 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 3.5 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7.5 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7.5 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -913,44 +913,44 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_100x5() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 100; - cfg.lepton_beam.energy = 5; + cfg.ion_beam.energy = 100; + cfg.electron_beam.energy = 5; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 500000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 500000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 180e-6; - cfg.hadron_beam.divergence_ver = 180e-6; - cfg.lepton_beam.divergence_hor = 140e-6; - cfg.lepton_beam.divergence_ver = 140e-6; + cfg.ion_beam.divergence_hor = 180e-6; + cfg.ion_beam.divergence_ver = 180e-6; + cfg.electron_beam.divergence_hor = 140e-6; + cfg.electron_beam.divergence_ver = 140e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 800; - cfg.hadron_beam.beta_star_ver = 72; - cfg.lepton_beam.beta_star_hor = 1030; - cfg.lepton_beam.beta_star_ver = 92; + cfg.ion_beam.beta_star_hor = 800; + cfg.ion_beam.beta_star_ver = 72; + cfg.electron_beam.beta_star_hor = 1030; + cfg.electron_beam.beta_star_ver = 92; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 26 * nm; - cfg.hadron_beam.rms_emittance_ver = 2.3 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 1.8 * nm; + cfg.ion_beam.rms_emittance_hor = 26 * nm; + cfg.ion_beam.rms_emittance_ver = 2.3 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 1.8 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -959,44 +959,44 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_100x10() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 100; - cfg.lepton_beam.energy = 10; + cfg.ion_beam.energy = 100; + cfg.electron_beam.energy = 10; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 500000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 500000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 180e-6; - cfg.hadron_beam.divergence_ver = 180e-6; - cfg.lepton_beam.divergence_hor = 118e-6; - cfg.lepton_beam.divergence_ver = 86e-6; + cfg.ion_beam.divergence_hor = 180e-6; + cfg.ion_beam.divergence_ver = 180e-6; + cfg.electron_beam.divergence_hor = 118e-6; + cfg.electron_beam.divergence_ver = 86e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 940; - cfg.hadron_beam.beta_star_ver = 85; - cfg.lepton_beam.beta_star_hor = 1430; - cfg.lepton_beam.beta_star_ver = 180; + cfg.ion_beam.beta_star_hor = 940; + cfg.ion_beam.beta_star_ver = 85; + cfg.electron_beam.beta_star_hor = 1430; + cfg.electron_beam.beta_star_ver = 180; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 30 * nm; - cfg.hadron_beam.rms_emittance_ver = 2.7 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 1.3 * nm; + cfg.ion_beam.rms_emittance_hor = 30 * nm; + cfg.ion_beam.rms_emittance_ver = 2.7 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 1.3 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -1005,44 +1005,44 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_275x10() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 275; - cfg.lepton_beam.energy = 10; + cfg.ion_beam.energy = 275; + cfg.electron_beam.energy = 10; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 1300000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 1300000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 65e-6; - cfg.hadron_beam.divergence_ver = 65e-6; - cfg.lepton_beam.divergence_hor = 116e-6; - cfg.lepton_beam.divergence_ver = 84e-6; + cfg.ion_beam.divergence_hor = 65e-6; + cfg.ion_beam.divergence_ver = 65e-6; + cfg.electron_beam.divergence_hor = 116e-6; + cfg.electron_beam.divergence_ver = 84e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 2650; - cfg.hadron_beam.beta_star_ver = 240; - cfg.lepton_beam.beta_star_hor = 1490; - cfg.lepton_beam.beta_star_ver = 190; + cfg.ion_beam.beta_star_hor = 2650; + cfg.ion_beam.beta_star_ver = 240; + cfg.electron_beam.beta_star_hor = 1490; + cfg.electron_beam.beta_star_ver = 190; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 11 * nm; - cfg.hadron_beam.rms_emittance_ver = 1 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 1.3 * nm; + cfg.ion_beam.rms_emittance_hor = 11 * nm; + cfg.ion_beam.rms_emittance_ver = 1 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 1.3 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 6 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 6 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -1051,44 +1051,44 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_275x18() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 275; - cfg.lepton_beam.energy = 18; + cfg.ion_beam.energy = 275; + cfg.electron_beam.energy = 18; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 1300000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 1300000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 65e-6; - cfg.hadron_beam.divergence_ver = 65e-6; - cfg.lepton_beam.divergence_hor = 89e-6; - cfg.lepton_beam.divergence_ver = 82e-6; + cfg.ion_beam.divergence_hor = 65e-6; + cfg.ion_beam.divergence_ver = 65e-6; + cfg.electron_beam.divergence_hor = 89e-6; + cfg.electron_beam.divergence_ver = 82e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 4170; - cfg.hadron_beam.beta_star_ver = 380; - cfg.lepton_beam.beta_star_hor = 3060; - cfg.lepton_beam.beta_star_ver = 300; + cfg.ion_beam.beta_star_hor = 4170; + cfg.ion_beam.beta_star_ver = 380; + cfg.electron_beam.beta_star_hor = 3060; + cfg.electron_beam.beta_star_ver = 300; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 17.6 * nm; - cfg.hadron_beam.rms_emittance_ver = 1.6 * nm; - cfg.lepton_beam.rms_emittance_hor = 24 * nm; - cfg.lepton_beam.rms_emittance_ver = 2 * nm; + cfg.ion_beam.rms_emittance_hor = 17.6 * nm; + cfg.ion_beam.rms_emittance_ver = 1.6 * nm; + cfg.electron_beam.rms_emittance_hor = 24 * nm; + cfg.electron_beam.rms_emittance_ver = 2 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 6 * cm; - cfg.lepton_beam.rms_bunch_length = 0.9 * cm; + cfg.ion_beam.rms_bunch_length = 6 * cm; + cfg.electron_beam.rms_bunch_length = 0.9 * cm; return cfg; } @@ -1098,44 +1098,44 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_41x5() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 41; - cfg.lepton_beam.energy = 5; + cfg.ion_beam.energy = 41; + cfg.electron_beam.energy = 5; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 200000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 200000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 220e-6; - cfg.hadron_beam.divergence_ver = 380e-6; - cfg.lepton_beam.divergence_hor = 101e-6; - cfg.lepton_beam.divergence_ver = 129e-6; + cfg.ion_beam.divergence_hor = 220e-6; + cfg.ion_beam.divergence_ver = 380e-6; + cfg.electron_beam.divergence_hor = 101e-6; + cfg.electron_beam.divergence_ver = 129e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 900; - cfg.hadron_beam.beta_star_ver = 71; - cfg.lepton_beam.beta_star_hor = 1960; - cfg.lepton_beam.beta_star_ver = 210; + cfg.ion_beam.beta_star_hor = 900; + cfg.ion_beam.beta_star_ver = 71; + cfg.electron_beam.beta_star_hor = 1960; + cfg.electron_beam.beta_star_ver = 210; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 44 * nm; - cfg.hadron_beam.rms_emittance_ver = 10 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 3.5 * nm; + cfg.ion_beam.rms_emittance_hor = 44 * nm; + cfg.ion_beam.rms_emittance_ver = 10 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 3.5 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7.5 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7.5 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -1144,44 +1144,44 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_100x5() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 100; - cfg.lepton_beam.energy = 5; + cfg.ion_beam.energy = 100; + cfg.electron_beam.energy = 5; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 500000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 500000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 206e-6; - cfg.hadron_beam.divergence_ver = 206e-6; - cfg.lepton_beam.divergence_hor = 160e-6; - cfg.lepton_beam.divergence_ver = 160e-6; + cfg.ion_beam.divergence_hor = 206e-6; + cfg.ion_beam.divergence_ver = 206e-6; + cfg.electron_beam.divergence_hor = 160e-6; + cfg.electron_beam.divergence_ver = 160e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 610; - cfg.hadron_beam.beta_star_ver = 55; - cfg.lepton_beam.beta_star_hor = 780; - cfg.lepton_beam.beta_star_ver = 71; + cfg.ion_beam.beta_star_hor = 610; + cfg.ion_beam.beta_star_ver = 55; + cfg.electron_beam.beta_star_hor = 780; + cfg.electron_beam.beta_star_ver = 71; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 26 * nm; - cfg.hadron_beam.rms_emittance_ver = 2.3 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 1.8 * nm; + cfg.ion_beam.rms_emittance_hor = 26 * nm; + cfg.ion_beam.rms_emittance_ver = 2.3 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 1.8 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -1190,44 +1190,44 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_100x10() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 100; - cfg.lepton_beam.energy = 10; + cfg.ion_beam.energy = 100; + cfg.electron_beam.energy = 10; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 500000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 500000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 220e-6; - cfg.hadron_beam.divergence_ver = 220e-6; - cfg.lepton_beam.divergence_hor = 145e-6; - cfg.lepton_beam.divergence_ver = 105e-6; + cfg.ion_beam.divergence_hor = 220e-6; + cfg.ion_beam.divergence_ver = 220e-6; + cfg.electron_beam.divergence_hor = 145e-6; + cfg.electron_beam.divergence_ver = 105e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 630; - cfg.hadron_beam.beta_star_ver = 57; - cfg.lepton_beam.beta_star_hor = 960; - cfg.lepton_beam.beta_star_ver = 120; + cfg.ion_beam.beta_star_hor = 630; + cfg.ion_beam.beta_star_ver = 57; + cfg.electron_beam.beta_star_hor = 960; + cfg.electron_beam.beta_star_ver = 120; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 30 * nm; - cfg.hadron_beam.rms_emittance_ver = 2.7 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 1.3 * nm; + cfg.ion_beam.rms_emittance_hor = 30 * nm; + cfg.ion_beam.rms_emittance_ver = 2.7 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 1.3 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 7 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 7 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -1236,44 +1236,44 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_275x10() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 275; - cfg.lepton_beam.energy = 10; + cfg.ion_beam.energy = 275; + cfg.electron_beam.energy = 10; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 1300000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 1300000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 119e-6; - cfg.hadron_beam.divergence_ver = 119e-6; - cfg.lepton_beam.divergence_hor = 211e-6; - cfg.lepton_beam.divergence_ver = 152e-6; + cfg.ion_beam.divergence_hor = 119e-6; + cfg.ion_beam.divergence_ver = 119e-6; + cfg.electron_beam.divergence_hor = 211e-6; + cfg.electron_beam.divergence_ver = 152e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 800; - cfg.hadron_beam.beta_star_ver = 72; - cfg.lepton_beam.beta_star_hor = 450; - cfg.lepton_beam.beta_star_ver = 56; + cfg.ion_beam.beta_star_hor = 800; + cfg.ion_beam.beta_star_ver = 72; + cfg.electron_beam.beta_star_hor = 450; + cfg.electron_beam.beta_star_ver = 56; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 11.3 * nm; - cfg.hadron_beam.rms_emittance_ver = 1 * nm; - cfg.lepton_beam.rms_emittance_hor = 20 * nm; - cfg.lepton_beam.rms_emittance_ver = 1.3 * nm; + cfg.ion_beam.rms_emittance_hor = 11.3 * nm; + cfg.ion_beam.rms_emittance_ver = 1 * nm; + cfg.electron_beam.rms_emittance_hor = 20 * nm; + cfg.electron_beam.rms_emittance_ver = 1.3 * nm; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 6 * cm; - cfg.lepton_beam.rms_bunch_length = 0.7 * cm; + cfg.ion_beam.rms_bunch_length = 6 * cm; + cfg.electron_beam.rms_bunch_length = 0.7 * cm; return cfg; } @@ -1282,147 +1282,147 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_275x18() { ab::AfterburnerConfig cfg; // Beam energy - cfg.hadron_beam.energy = 275; - cfg.lepton_beam.energy = 18; + cfg.ion_beam.energy = 275; + cfg.electron_beam.energy = 18; // Beam charge - cfg.hadron_beam.charge = 1; - cfg.lepton_beam.charge = -1; + cfg.ion_beam.charge = 1; + cfg.electron_beam.charge = -1; // Beam mass - cfg.hadron_beam.mass = 0.938; - cfg.lepton_beam.mass = 0.000511; + cfg.ion_beam.mass = 0.938; + cfg.electron_beam.mass = 0.000511; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] - cfg.hadron_beam.beta_crab_hor = 1300000.0; - cfg.lepton_beam.beta_crab_hor = 150000.0; + cfg.ion_beam.beta_crab_hor = 1300000.0; + cfg.electron_beam.beta_crab_hor = 150000.0; // Beam divergence - cfg.hadron_beam.divergence_hor = 150e-6; - cfg.hadron_beam.divergence_ver = 150e-6; - cfg.lepton_beam.divergence_hor = 202e-6; - cfg.lepton_beam.divergence_ver = 187e-6; + cfg.ion_beam.divergence_hor = 150e-6; + cfg.ion_beam.divergence_ver = 150e-6; + cfg.electron_beam.divergence_hor = 202e-6; + cfg.electron_beam.divergence_ver = 187e-6; // Beam beta star [mm] - cfg.hadron_beam.beta_star_hor = 800; - cfg.hadron_beam.beta_star_ver = 71; - cfg.lepton_beam.beta_star_hor = 590; - cfg.lepton_beam.beta_star_ver = 57; + cfg.ion_beam.beta_star_hor = 800; + cfg.ion_beam.beta_star_ver = 71; + cfg.electron_beam.beta_star_hor = 590; + cfg.electron_beam.beta_star_ver = 57; // RMS emittance - cfg.hadron_beam.rms_emittance_hor = 18e-6; - cfg.hadron_beam.rms_emittance_ver = 1.6e-6; - cfg.lepton_beam.rms_emittance_hor = 24e-6; - cfg.lepton_beam.rms_emittance_ver = 2e-6; + cfg.ion_beam.rms_emittance_hor = 18e-6; + cfg.ion_beam.rms_emittance_ver = 1.6e-6; + cfg.electron_beam.rms_emittance_hor = 24e-6; + cfg.electron_beam.rms_emittance_ver = 2e-6; // RMS bunch length - cfg.hadron_beam.rms_bunch_length = 6 * cm; - cfg.lepton_beam.rms_bunch_length = 0.9 * cm; + cfg.ion_beam.rms_bunch_length = 6 * cm; + cfg.electron_beam.rms_bunch_length = 0.9 * cm; return cfg; } -ab::AfterburnerConfig ab::EicConfigurator::config(double hadron_energy, double lepton_energy, ab::EicBeamPresets beam_preset) { +ab::AfterburnerConfig ab::EicConfigurator::config(double ion_energy, double electron_energy, ab::EicBeamPresets beam_preset) { using namespace std; - int had_e = (int)round(hadron_energy); - int lep_e = (int)round(lepton_energy); + int had_e = (int)round(ion_energy); + int lep_e = (int)round(electron_energy); // Approximate energies so it tolerate some spread - if(hadron_energy > 270 && hadron_energy < 280) had_e = 275; - if(hadron_energy > 105 && hadron_energy < 115) had_e = 110; - if(hadron_energy > 95 && hadron_energy < 105) had_e = 100; - if(hadron_energy > 37 && hadron_energy < 44) had_e = 41; + if(ion_energy > 270 && ion_energy < 280) had_e = 275; + if(ion_energy > 105 && ion_energy < 115) had_e = 110; + if(ion_energy > 95 && ion_energy < 105) had_e = 100; + if(ion_energy > 37 && ion_energy < 44) had_e = 41; - if(lepton_energy > 15 && lepton_energy < 21) lep_e = 18; - if(lepton_energy > 7 && lepton_energy < 13) lep_e = 10; - if(lepton_energy > 3 && lepton_energy < 7) lep_e = 5; + if(electron_energy > 15 && electron_energy < 21) lep_e = 18; + if(electron_energy > 7 && electron_energy < 13) lep_e = 10; + if(electron_energy > 3 && electron_energy < 7) lep_e = 5; if(had_e != 275 && had_e!= 110 && had_e != 100 && had_e!=41) { - cerr << (int)had_e << " is not a valid Hadron Beam Energy!!" << endl; + cerr << (int)had_e << " is not a valid Ion Beam Energy!!" << endl; cerr << "Valid Energies are 275, 110, 100, and 41" << endl; throw std::invalid_argument("Ion energy setting is incorrect"); } if(lep_e != 18 && lep_e != 10 && lep_e!=5) { - cout << (int) lep_e << " is not a valid Lepton Beam Energy!!" << endl; + cout << (int) lep_e << " is not a valid Electron Beam Energy!!" << endl; cout << "Valid Energies are 18, 10, and 5" << endl; - throw std::invalid_argument("Lepton energy setting is incorrect"); + throw std::invalid_argument("Electron energy setting is incorrect"); } return config(static_cast(had_e), static_cast(lep_e), beam_preset); } -ab::AfterburnerConfig ab::EicConfigurator::config(ab::EicBeamEnergies hadron, ab::EicBeamEnergies lepton, ab::EicBeamPresets beam_preset) { +ab::AfterburnerConfig ab::EicConfigurator::config(ab::EicBeamEnergies ion, ab::EicBeamEnergies electron, ab::EicBeamPresets beam_preset) { using namespace std; // Ensure Beam Energies Correspond to Those Presented in CDR - if(hadron != EicBeamEnergies::E275GeV && hadron != EicBeamEnergies::E110GeV && hadron != EicBeamEnergies::E100GeV && hadron != EicBeamEnergies::E41GeV) { - cerr << (int)hadron << " is not a valid Hadron Beam Energy!!" << endl; + if(ion != EicBeamEnergies::E275GeV && ion != EicBeamEnergies::E110GeV && ion != EicBeamEnergies::E100GeV && ion != EicBeamEnergies::E41GeV) { + cerr << (int)ion << " is not a valid Ion Beam Energy!!" << endl; cerr << "Valid Energies are 275, 110, 100, and 41" << endl; - throw std::invalid_argument("Hadron energy setting is incorrect"); + throw std::invalid_argument("Ion energy setting is incorrect"); } - if(lepton != EicBeamEnergies::E18GeV && lepton != EicBeamEnergies::E10GeV && lepton != EicBeamEnergies::E5GeV) { - cout << (int) lepton << " is not a valid Lepton Beam Energy!!" << endl; + if(electron != EicBeamEnergies::E18GeV && electron != EicBeamEnergies::E10GeV && electron != EicBeamEnergies::E5GeV) { + cout << (int) electron << " is not a valid Electron Beam Energy!!" << endl; cout << "Valid Energies are 18, 10, and 5" << endl; - throw std::invalid_argument("Lepton energy setting is incorrect"); + throw std::invalid_argument("Electron energy setting is incorrect"); } // High Divergence setting if(beam_preset == EicBeamPresets::Ip6HighDivergence) { - if(hadron == EicBeamEnergies::E275GeV && lepton == EicBeamEnergies::E18GeV) return preset_ip6_hidiv_275x18(); - if(hadron == EicBeamEnergies::E275GeV && lepton == EicBeamEnergies::E10GeV) return preset_ip6_hidiv_275x10(); - if(hadron == EicBeamEnergies::E100GeV && lepton == EicBeamEnergies::E10GeV) return preset_ip6_hidiv_100x10(); - if(hadron == EicBeamEnergies::E100GeV && lepton == EicBeamEnergies::E5GeV) return preset_ip6_hidiv_100x5(); - if(hadron == EicBeamEnergies::E41GeV && lepton == EicBeamEnergies::E5GeV) return preset_ip6_hidiv_41x5(); + if(ion == EicBeamEnergies::E275GeV && electron == EicBeamEnergies::E18GeV) return preset_ip6_hidiv_275x18(); + if(ion == EicBeamEnergies::E275GeV && electron == EicBeamEnergies::E10GeV) return preset_ip6_hidiv_275x10(); + if(ion == EicBeamEnergies::E100GeV && electron == EicBeamEnergies::E10GeV) return preset_ip6_hidiv_100x10(); + if(ion == EicBeamEnergies::E100GeV && electron == EicBeamEnergies::E5GeV) return preset_ip6_hidiv_100x5(); + if(ion == EicBeamEnergies::E41GeV && electron == EicBeamEnergies::E5GeV) return preset_ip6_hidiv_41x5(); } // High acceptance settings if(beam_preset == EicBeamPresets::Ip6HighAcceptance) { - if(hadron == EicBeamEnergies::E275GeV && lepton == EicBeamEnergies::E18GeV) return preset_ip6_hiacc_275x18(); - if(hadron == EicBeamEnergies::E275GeV && lepton == EicBeamEnergies::E10GeV) return preset_ip6_hiacc_275x10(); - if(hadron == EicBeamEnergies::E100GeV && lepton == EicBeamEnergies::E10GeV) return preset_ip6_hiacc_100x10(); - if(hadron == EicBeamEnergies::E100GeV && lepton == EicBeamEnergies::E5GeV) return preset_ip6_hiacc_100x5(); - if(hadron == EicBeamEnergies::E41GeV && lepton == EicBeamEnergies::E5GeV) return preset_ip6_hiacc_41x5(); + if(ion == EicBeamEnergies::E275GeV && electron == EicBeamEnergies::E18GeV) return preset_ip6_hiacc_275x18(); + if(ion == EicBeamEnergies::E275GeV && electron == EicBeamEnergies::E10GeV) return preset_ip6_hiacc_275x10(); + if(ion == EicBeamEnergies::E100GeV && electron == EicBeamEnergies::E10GeV) return preset_ip6_hiacc_100x10(); + if(ion == EicBeamEnergies::E100GeV && electron == EicBeamEnergies::E5GeV) return preset_ip6_hiacc_100x5(); + if(ion == EicBeamEnergies::E41GeV && electron == EicBeamEnergies::E5GeV) return preset_ip6_hiacc_41x5(); } if(beam_preset == EicBeamPresets::Ip6ElectronAurum) { - if(hadron == EicBeamEnergies::E110GeV && lepton == EicBeamEnergies::E18GeV) return preset_ip6_eau_110x18(); - if(hadron == EicBeamEnergies::E110GeV && lepton == EicBeamEnergies::E10GeV) return preset_ip6_eau_110x10(); - if(hadron == EicBeamEnergies::E110GeV && lepton == EicBeamEnergies::E5GeV) return preset_ip6_eau_110x5(); - if(hadron == EicBeamEnergies::E41GeV && lepton == EicBeamEnergies::E5GeV) return preset_ip6_eau_41x5(); + if(ion == EicBeamEnergies::E110GeV && electron == EicBeamEnergies::E18GeV) return preset_ip6_eau_110x18(); + if(ion == EicBeamEnergies::E110GeV && electron == EicBeamEnergies::E10GeV) return preset_ip6_eau_110x10(); + if(ion == EicBeamEnergies::E110GeV && electron == EicBeamEnergies::E5GeV) return preset_ip6_eau_110x5(); + if(ion == EicBeamEnergies::E41GeV && electron == EicBeamEnergies::E5GeV) return preset_ip6_eau_41x5(); } // High Divergence setting if(beam_preset == EicBeamPresets::Ip8HighDivergence) { - if(hadron == EicBeamEnergies::E275GeV && lepton == EicBeamEnergies::E18GeV) return preset_ip8_hidiv_275x18(); - if(hadron == EicBeamEnergies::E275GeV && lepton == EicBeamEnergies::E10GeV) return preset_ip8_hidiv_275x10(); - if(hadron == EicBeamEnergies::E100GeV && lepton == EicBeamEnergies::E10GeV) return preset_ip8_hidiv_100x10(); - if(hadron == EicBeamEnergies::E100GeV && lepton == EicBeamEnergies::E5GeV) return preset_ip8_hidiv_100x5(); - if(hadron == EicBeamEnergies::E41GeV && lepton == EicBeamEnergies::E5GeV) return preset_ip8_hidiv_41x5(); + if(ion == EicBeamEnergies::E275GeV && electron == EicBeamEnergies::E18GeV) return preset_ip8_hidiv_275x18(); + if(ion == EicBeamEnergies::E275GeV && electron == EicBeamEnergies::E10GeV) return preset_ip8_hidiv_275x10(); + if(ion == EicBeamEnergies::E100GeV && electron == EicBeamEnergies::E10GeV) return preset_ip8_hidiv_100x10(); + if(ion == EicBeamEnergies::E100GeV && electron == EicBeamEnergies::E5GeV) return preset_ip8_hidiv_100x5(); + if(ion == EicBeamEnergies::E41GeV && electron == EicBeamEnergies::E5GeV) return preset_ip8_hidiv_41x5(); } // High acceptance settings if(beam_preset == EicBeamPresets::Ip8HighAcceptance) { - if(hadron == EicBeamEnergies::E275GeV && lepton == EicBeamEnergies::E18GeV) return preset_ip8_hiacc_275x18(); - if(hadron == EicBeamEnergies::E275GeV && lepton == EicBeamEnergies::E10GeV) return preset_ip8_hiacc_275x10(); - if(hadron == EicBeamEnergies::E100GeV && lepton == EicBeamEnergies::E10GeV) return preset_ip8_hiacc_100x10(); - if(hadron == EicBeamEnergies::E100GeV && lepton == EicBeamEnergies::E5GeV) return preset_ip8_hiacc_100x5(); - if(hadron == EicBeamEnergies::E41GeV && lepton == EicBeamEnergies::E5GeV) return preset_ip8_hiacc_41x5(); + if(ion == EicBeamEnergies::E275GeV && electron == EicBeamEnergies::E18GeV) return preset_ip8_hiacc_275x18(); + if(ion == EicBeamEnergies::E275GeV && electron == EicBeamEnergies::E10GeV) return preset_ip8_hiacc_275x10(); + if(ion == EicBeamEnergies::E100GeV && electron == EicBeamEnergies::E10GeV) return preset_ip8_hiacc_100x10(); + if(ion == EicBeamEnergies::E100GeV && electron == EicBeamEnergies::E5GeV) return preset_ip8_hiacc_100x5(); + if(ion == EicBeamEnergies::E41GeV && electron == EicBeamEnergies::E5GeV) return preset_ip8_hiacc_41x5(); } if(beam_preset == EicBeamPresets::Ip8ElectronAurum) { - if(hadron == EicBeamEnergies::E110GeV && lepton == EicBeamEnergies::E18GeV) return preset_ip8_eau_110x18(); - if(hadron == EicBeamEnergies::E110GeV && lepton == EicBeamEnergies::E10GeV) return preset_ip8_eau_110x10(); - if(hadron == EicBeamEnergies::E110GeV && lepton == EicBeamEnergies::E5GeV) return preset_ip8_eau_110x5(); - if(hadron == EicBeamEnergies::E41GeV && lepton == EicBeamEnergies::E5GeV) return preset_ip8_eau_41x5(); + if(ion == EicBeamEnergies::E110GeV && electron == EicBeamEnergies::E18GeV) return preset_ip8_eau_110x18(); + if(ion == EicBeamEnergies::E110GeV && electron == EicBeamEnergies::E10GeV) return preset_ip8_eau_110x10(); + if(ion == EicBeamEnergies::E110GeV && electron == EicBeamEnergies::E5GeV) return preset_ip8_eau_110x5(); + if(ion == EicBeamEnergies::E41GeV && electron == EicBeamEnergies::E5GeV) return preset_ip8_eau_41x5(); } - cout << (int)lepton << "x" << (int)hadron << " is not a valid energy combination!!" << endl; + cout << (int)electron << "x" << (int)ion << " is not a valid energy combination!!" << endl; cout << "Valid (ep) Combinations are 18x275, 10x275, 10x100, 5x100, and 5x41" << endl; cout << "Valid (eA) Combinations are 18x110, 10x110, 5x110, and 5x41" << endl; throw std::invalid_argument("Ion beams energy combination "); diff --git a/cpp/afterburner/EicConfigurator.hh b/cpp/afterburner/EicConfigurator.hh index 9b4e13b..e706b93 100644 --- a/cpp/afterburner/EicConfigurator.hh +++ b/cpp/afterburner/EicConfigurator.hh @@ -55,8 +55,8 @@ namespace ab { static AfterburnerConfig preset_ip8_hidiv_275x18(); static AfterburnerConfig from_string(const std::string& name); - static AfterburnerConfig config(double hadron_energy, double lepton_energy, EicBeamPresets beam_preset); - static AfterburnerConfig config(EicBeamEnergies hadron, EicBeamEnergies lepton, EicBeamPresets beam_preset); + static AfterburnerConfig config(double ion_energy, double electron_energy, EicBeamPresets beam_preset); + static AfterburnerConfig config(EicBeamEnergies ion, EicBeamEnergies electron, EicBeamPresets beam_preset); private: From 285d7786045b3e9ea59e9088294e54017e67130f Mon Sep 17 00:00:00 2001 From: simonge Date: Tue, 13 Jun 2023 15:50:31 +0100 Subject: [PATCH 4/9] changed selection criteria to pdg and renamed some hadron and leptron to ion and electron --- cpp/abconv/ConfigProvider.cc | 16 ++++++++++++---- cpp/afterburner/EicConfigurator.cc | 28 ++++++++++++++-------------- 2 files changed, 26 insertions(+), 18 deletions(-) diff --git a/cpp/abconv/ConfigProvider.cc b/cpp/abconv/ConfigProvider.cc index dc37713..4bbe900 100644 --- a/cpp/abconv/ConfigProvider.cc +++ b/cpp/abconv/ConfigProvider.cc @@ -23,18 +23,26 @@ ab::convert::ConfigProvider::from_hepmc_file(const std::shared_ptrmomentum().e() > beam_particles[1]->momentum().e()) { - ion = beam_particles[0]; + + if(beam_particles[0]->pid()==11) { + electron = beam_particles[0]; + ion = beam_particles[1]; + } + else if(beam_particles[1]->pid()==11) { electron = beam_particles[1]; + ion = beam_particles[0]; } else { - ion = beam_particles[1]; - electron = beam_particles[0]; + std::cerr << "No electron found in the two beam particles" << std::endl; + throw std::invalid_argument("No electron found"); } + return ab::EicConfigurator::config(ion->momentum().e(), electron->momentum().e(), beam_config); + //return ab::EicConfigurator::config(ion, electron, beam_config); } ab::AfterburnerConfig ab::convert::ConfigProvider::from_preset_name(const string &name) { diff --git a/cpp/afterburner/EicConfigurator.cc b/cpp/afterburner/EicConfigurator.cc index 1838d56..df382ed 100644 --- a/cpp/afterburner/EicConfigurator.cc +++ b/cpp/afterburner/EicConfigurator.cc @@ -1327,32 +1327,32 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_275x18() { ab::AfterburnerConfig ab::EicConfigurator::config(double ion_energy, double electron_energy, ab::EicBeamPresets beam_preset) { using namespace std; - int had_e = (int)round(ion_energy); - int lep_e = (int)round(electron_energy); + int ion_e = 0; + int electron_e = 0; // Approximate energies so it tolerate some spread - if(ion_energy > 270 && ion_energy < 280) had_e = 275; - if(ion_energy > 105 && ion_energy < 115) had_e = 110; - if(ion_energy > 95 && ion_energy < 105) had_e = 100; - if(ion_energy > 37 && ion_energy < 44) had_e = 41; + if(ion_energy > 270 && ion_energy < 280) ion_e = 275; + if(ion_energy > 105 && ion_energy < 115) ion_e = 110; + if(ion_energy > 95 && ion_energy < 105) ion_e = 100; + if(ion_energy > 37 && ion_energy < 44) ion_e = 41; - if(electron_energy > 15 && electron_energy < 21) lep_e = 18; - if(electron_energy > 7 && electron_energy < 13) lep_e = 10; - if(electron_energy > 3 && electron_energy < 7) lep_e = 5; + if(electron_energy > 15 && electron_energy < 21) electron_e = 18; + if(electron_energy > 7 && electron_energy < 13) electron_e = 10; + if(electron_energy > 3 && electron_energy < 7) electron_e = 5; - if(had_e != 275 && had_e!= 110 && had_e != 100 && had_e!=41) { - cerr << (int)had_e << " is not a valid Ion Beam Energy!!" << endl; + if(ion_e != 275 && ion_e!= 110 && ion_e != 100 && ion_e!=41) { + cerr << (int)ion_e << " is not a valid Ion Beam Energy!!" << endl; cerr << "Valid Energies are 275, 110, 100, and 41" << endl; throw std::invalid_argument("Ion energy setting is incorrect"); } - if(lep_e != 18 && lep_e != 10 && lep_e!=5) { - cout << (int) lep_e << " is not a valid Electron Beam Energy!!" << endl; + if(electron_e != 18 && electron_e != 10 && electron_e!=5) { + cout << (int) electron_e << " is not a valid Electron Beam Energy!!" << endl; cout << "Valid Energies are 18, 10, and 5" << endl; throw std::invalid_argument("Electron energy setting is incorrect"); } - return config(static_cast(had_e), static_cast(lep_e), beam_preset); + return config(static_cast(ion_e), static_cast(electron_e), beam_preset); } From 9eae3439cac77857963f3e56e01344b3569f561f Mon Sep 17 00:00:00 2001 From: simonge Date: Tue, 13 Jun 2023 16:01:13 +0100 Subject: [PATCH 5/9] Replaced mass and charge with beam pdg (Not correct for gold currently) --- cpp/abconv/Converter.cc | 7 +- cpp/afterburner/AfterburnerConfig.hh | 5 +- cpp/afterburner/EicConfigurator.cc | 280 ++++++++------------------- 3 files changed, 87 insertions(+), 205 deletions(-) diff --git a/cpp/abconv/Converter.cc b/cpp/abconv/Converter.cc index 7f5ddec..ddfb892 100644 --- a/cpp/abconv/Converter.cc +++ b/cpp/abconv/Converter.cc @@ -206,11 +206,8 @@ void ab::abconv::Converter::ab_config_to_run_info(const std::shared_ptradd_attribute("ion_beam_energy", std::make_shared(cfg.ion_beam.energy)); run_info->add_attribute("electron_beam_energy", std::make_shared(cfg.electron_beam.energy)); - run_info->add_attribute("ion_beam_charge", std::make_shared(cfg.ion_beam.charge)); - run_info->add_attribute("electron_beam_charge", std::make_shared(cfg.electron_beam.charge)); - - run_info->add_attribute("ion_beam_mass", std::make_shared(cfg.ion_beam.mass)); - run_info->add_attribute("electron_beam_mass", std::make_shared(cfg.electron_beam.mass)); + run_info->add_attribute("ion_beam_pdg", std::make_shared(cfg.ion_beam.pdg)); + run_info->add_attribute("electron_beam_pdg", std::make_shared(cfg.electron_beam.pdg)); run_info->add_attribute("ab_crossing_angle", std::make_shared(cfg.crossing_angle_hor)); run_info->add_attribute("ab_use_beam_bunch_sim", std::make_shared(cfg.use_beam_bunch_sim)); diff --git a/cpp/afterburner/AfterburnerConfig.hh b/cpp/afterburner/AfterburnerConfig.hh index 13f19f0..2e0d080 100644 --- a/cpp/afterburner/AfterburnerConfig.hh +++ b/cpp/afterburner/AfterburnerConfig.hh @@ -12,10 +12,7 @@ namespace ab { double energy = 18; //! Charge of beam specimen - double charge = -1; - - //! Mass of beam specimen [GeV/c2] - double mass = 0.000511; + int pdg = 11; //! Beam angle divergence in accelerator beam coordinate. //! First element is beamA, in pair of Gaussian Sigma_H Sigma_V. BeamA is aimed to +z direction in the HepMC event generator's coordinate diff --git a/cpp/afterburner/EicConfigurator.cc b/cpp/afterburner/EicConfigurator.cc index df382ed..c971036 100644 --- a/cpp/afterburner/EicConfigurator.cc +++ b/cpp/afterburner/EicConfigurator.cc @@ -15,13 +15,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x18() { cfg.ion_beam.energy = 110; cfg.electron_beam.energy = 18; - // Beam charge - cfg.ion_beam.charge = 79; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 184.009; //fix? - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] @@ -63,13 +59,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x10() { cfg.ion_beam.energy = 110; cfg.electron_beam.energy = 10; - // Beam charge - cfg.ion_beam.charge = 79; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 184.009; //fix? - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] @@ -111,13 +103,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x5() { cfg.ion_beam.energy = 110; cfg.electron_beam.energy = 5; - // Beam charge - cfg.ion_beam.charge = 79; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 184.009; //fix? - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] @@ -159,13 +147,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_41x5() { cfg.ion_beam.energy = 41; cfg.electron_beam.energy = 5; - // Beam charge - cfg.ion_beam.charge = 79; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 184.009; //fix? - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] @@ -207,13 +191,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_41x5() { cfg.ion_beam.energy = 41; cfg.electron_beam.energy = 5; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] @@ -254,13 +234,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_100x5() { cfg.ion_beam.energy = 100; cfg.electron_beam.energy = 5; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] @@ -301,13 +277,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_100x10() { cfg.ion_beam.energy = 100; cfg.electron_beam.energy = 10; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] @@ -348,13 +320,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_275x10() { cfg.ion_beam.energy = 275; cfg.electron_beam.energy = 10; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] @@ -395,13 +363,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_275x18() { cfg.ion_beam.energy = 275; cfg.electron_beam.energy = 18; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] @@ -443,13 +407,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_41x5() { cfg.ion_beam.energy = 41; cfg.electron_beam.energy = 5; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] @@ -490,13 +450,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_100x5() { cfg.ion_beam.energy = 100; cfg.electron_beam.energy = 5; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] @@ -537,13 +493,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_100x10() { cfg.ion_beam.energy = 100; cfg.electron_beam.energy = 10; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] @@ -584,13 +536,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_275x10() { cfg.ion_beam.energy = 275; cfg.electron_beam.energy = 10; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] @@ -631,13 +579,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_275x18() { cfg.ion_beam.energy = 275; cfg.electron_beam.energy = 18; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] @@ -681,13 +625,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x18() { cfg.ion_beam.energy = 110; cfg.electron_beam.energy = 18; - // Beam charge - cfg.ion_beam.charge = 79; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 184.009; //fix? - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -728,13 +668,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x10() { cfg.ion_beam.energy = 110; cfg.electron_beam.energy = 10; - // Beam charge - cfg.ion_beam.charge = 79; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 184.009; //fix? - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -775,13 +711,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x5() { cfg.ion_beam.energy = 110; cfg.electron_beam.energy = 5; - // Beam charge - cfg.ion_beam.charge = 79; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 184.009; //fix? - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -822,13 +754,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_41x5() { cfg.ion_beam.energy = 45; cfg.electron_beam.energy = 5; - // Beam charge - cfg.ion_beam.charge = 79; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 184.009; //fix? - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -870,13 +798,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_41x5() { cfg.ion_beam.energy = 41; cfg.electron_beam.energy = 5; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -916,13 +840,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_100x5() { cfg.ion_beam.energy = 100; cfg.electron_beam.energy = 5; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -962,13 +882,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_100x10() { cfg.ion_beam.energy = 100; cfg.electron_beam.energy = 10; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -1008,13 +924,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_275x10() { cfg.ion_beam.energy = 275; cfg.electron_beam.energy = 10; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -1054,13 +966,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_275x18() { cfg.ion_beam.energy = 275; cfg.electron_beam.energy = 18; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -1101,13 +1009,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_41x5() { cfg.ion_beam.energy = 41; cfg.electron_beam.energy = 5; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -1147,13 +1051,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_100x5() { cfg.ion_beam.energy = 100; cfg.electron_beam.energy = 5; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -1193,13 +1093,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_100x10() { cfg.ion_beam.energy = 100; cfg.electron_beam.energy = 10; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -1239,13 +1135,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_275x10() { cfg.ion_beam.energy = 275; cfg.electron_beam.energy = 10; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -1285,13 +1177,9 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_275x18() { cfg.ion_beam.energy = 275; cfg.electron_beam.energy = 18; - // Beam charge - cfg.ion_beam.charge = 1; - cfg.electron_beam.charge = -1; - - // Beam mass - cfg.ion_beam.mass = 0.938; - cfg.electron_beam.mass = 0.000511; + // Beam species + cfg.ion_beam.pdg = 2212; + cfg.electron_beam.pdg = 11; cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] From 52e0b9a6474482ae5fd40754244f493f4a5edc83 Mon Sep 17 00:00:00 2001 From: simonge Date: Tue, 13 Jun 2023 16:11:32 +0100 Subject: [PATCH 6/9] Added name attribute to configuration, not yet set --- cpp/abconv/Converter.cc | 15 ++++++++------- cpp/afterburner/AfterburnerConfig.hh | 3 +++ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/cpp/abconv/Converter.cc b/cpp/abconv/Converter.cc index ddfb892..7e342f6 100644 --- a/cpp/abconv/Converter.cc +++ b/cpp/abconv/Converter.cc @@ -201,16 +201,17 @@ HepMC3::ConstGenParticles ab::abconv::Converter::get_beam_particles(const HepMC3 void ab::abconv::Converter::ab_config_to_run_info(const std::shared_ptr& run_info, ab::AfterburnerConfig cfg) { using namespace HepMC3; - run_info->add_attribute("ab_afterburner_is_used", std::make_shared(true)); + run_info->add_attribute("ab_afterburner_is_used", std::make_shared(true)); + run_info->add_attribute("afterburner_config_name", std::make_shared(cfg.name)); - run_info->add_attribute("ion_beam_energy", std::make_shared(cfg.ion_beam.energy)); - run_info->add_attribute("electron_beam_energy", std::make_shared(cfg.electron_beam.energy)); + run_info->add_attribute("ion_beam_energy", std::make_shared(cfg.ion_beam.energy)); + run_info->add_attribute("electron_beam_energy", std::make_shared(cfg.electron_beam.energy)); - run_info->add_attribute("ion_beam_pdg", std::make_shared(cfg.ion_beam.pdg)); - run_info->add_attribute("electron_beam_pdg", std::make_shared(cfg.electron_beam.pdg)); + run_info->add_attribute("ion_beam_pdg", std::make_shared(cfg.ion_beam.pdg)); + run_info->add_attribute("electron_beam_pdg", std::make_shared(cfg.electron_beam.pdg)); - run_info->add_attribute("ab_crossing_angle", std::make_shared(cfg.crossing_angle_hor)); - run_info->add_attribute("ab_use_beam_bunch_sim", std::make_shared(cfg.use_beam_bunch_sim)); + run_info->add_attribute("ab_crossing_angle", std::make_shared(cfg.crossing_angle_hor)); + run_info->add_attribute("ab_use_beam_bunch_sim", std::make_shared(cfg.use_beam_bunch_sim)); run_info->add_attribute("ab_ion_divergence_hor", std::make_shared(cfg.ion_beam.divergence_hor)); run_info->add_attribute("ab_ion_divergence_ver", std::make_shared(cfg.ion_beam.divergence_ver)); diff --git a/cpp/afterburner/AfterburnerConfig.hh b/cpp/afterburner/AfterburnerConfig.hh index 2e0d080..4c9ae39 100644 --- a/cpp/afterburner/AfterburnerConfig.hh +++ b/cpp/afterburner/AfterburnerConfig.hh @@ -37,6 +37,9 @@ namespace ab { struct AfterburnerConfig { + // Name of the afterburner config used + std::string name = "none"; + /** * Crossing angle in horizontal plane [rad] */ From 3cd214ba3caa9dd935617e349258a00c1f285c2e Mon Sep 17 00:00:00 2001 From: simonge Date: Tue, 13 Jun 2023 16:51:48 +0100 Subject: [PATCH 7/9] Passed particle rather than just energy to configuration --- cpp/abconv/ConfigProvider.cc | 4 +--- cpp/afterburner/EicConfigurator.cc | 7 +++++-- cpp/afterburner/EicConfigurator.hh | 3 ++- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/cpp/abconv/ConfigProvider.cc b/cpp/abconv/ConfigProvider.cc index 4bbe900..65f153e 100644 --- a/cpp/abconv/ConfigProvider.cc +++ b/cpp/abconv/ConfigProvider.cc @@ -40,9 +40,7 @@ ab::convert::ConfigProvider::from_hepmc_file(const std::shared_ptrmomentum().e(), electron->momentum().e(), beam_config); - //return ab::EicConfigurator::config(ion, electron, beam_config); + return ab::EicConfigurator::config(ion, electron, beam_config); } ab::AfterburnerConfig ab::convert::ConfigProvider::from_preset_name(const string &name) { diff --git a/cpp/afterburner/EicConfigurator.cc b/cpp/afterburner/EicConfigurator.cc index c971036..0a90b18 100644 --- a/cpp/afterburner/EicConfigurator.cc +++ b/cpp/afterburner/EicConfigurator.cc @@ -1212,9 +1212,12 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_275x18() { } -ab::AfterburnerConfig ab::EicConfigurator::config(double ion_energy, double electron_energy, ab::EicBeamPresets beam_preset) { +ab::AfterburnerConfig ab::EicConfigurator::config(HepMC3::ConstGenParticlePtr ion, HepMC3::ConstGenParticlePtr electron, ab::EicBeamPresets beam_preset) { using namespace std; + float ion_energy = ion->momentum().e(); + float electron_energy = electron->momentum().e(); + int ion_e = 0; int electron_e = 0; @@ -1226,7 +1229,7 @@ ab::AfterburnerConfig ab::EicConfigurator::config(double ion_energy, double elec if(electron_energy > 15 && electron_energy < 21) electron_e = 18; if(electron_energy > 7 && electron_energy < 13) electron_e = 10; - if(electron_energy > 3 && electron_energy < 7) electron_e = 5; + if(electron_energy > 3 && electron_energy < 7) electron_e = 5; if(ion_e != 275 && ion_e!= 110 && ion_e != 100 && ion_e!=41) { cerr << (int)ion_e << " is not a valid Ion Beam Energy!!" << endl; diff --git a/cpp/afterburner/EicConfigurator.hh b/cpp/afterburner/EicConfigurator.hh index e706b93..7e94dd2 100644 --- a/cpp/afterburner/EicConfigurator.hh +++ b/cpp/afterburner/EicConfigurator.hh @@ -2,6 +2,7 @@ #define EICAFTERBURNER_EICCONFIGURATOR_HH #include "AfterburnerConfig.hh" +#include namespace ab { enum class EicBeamPresets { @@ -55,7 +56,7 @@ namespace ab { static AfterburnerConfig preset_ip8_hidiv_275x18(); static AfterburnerConfig from_string(const std::string& name); - static AfterburnerConfig config(double ion_energy, double electron_energy, EicBeamPresets beam_preset); + static AfterburnerConfig config(HepMC3::ConstGenParticlePtr ion, HepMC3::ConstGenParticlePtr electron, EicBeamPresets beam_preset); static AfterburnerConfig config(EicBeamEnergies ion, EicBeamEnergies electron, EicBeamPresets beam_preset); private: From a74050a57727390de19ef5c1f1966cc9e6ab1390 Mon Sep 17 00:00:00 2001 From: simonge Date: Sat, 26 Aug 2023 22:57:01 +0100 Subject: [PATCH 8/9] passed pid directly from first beam particles and renamed none to auto --- cpp/afterburner/AfterburnerConfig.hh | 2 +- cpp/afterburner/EicConfigurator.cc | 233 +-------------------------- 2 files changed, 9 insertions(+), 226 deletions(-) diff --git a/cpp/afterburner/AfterburnerConfig.hh b/cpp/afterburner/AfterburnerConfig.hh index 4c9ae39..500d78d 100644 --- a/cpp/afterburner/AfterburnerConfig.hh +++ b/cpp/afterburner/AfterburnerConfig.hh @@ -38,7 +38,7 @@ namespace ab { struct AfterburnerConfig { // Name of the afterburner config used - std::string name = "none"; + std::string name = "auto"; /** * Crossing angle in horizontal plane [rad] diff --git a/cpp/afterburner/EicConfigurator.cc b/cpp/afterburner/EicConfigurator.cc index 0a90b18..b7e8132 100644 --- a/cpp/afterburner/EicConfigurator.cc +++ b/cpp/afterburner/EicConfigurator.cc @@ -11,14 +11,6 @@ using namespace CLHEP; ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x18() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 110; - cfg.electron_beam.energy = 18; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -55,14 +47,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x18() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x10() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 110; - cfg.electron_beam.energy = 10; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -99,14 +83,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x5() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 110; - cfg.electron_beam.energy = 5; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -143,14 +119,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_110x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_41x5() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 41; - cfg.electron_beam.energy = 5; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -187,14 +155,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_eau_41x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_41x5() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 41; - cfg.electron_beam.energy = 5; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -230,14 +190,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_41x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_100x5() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 100; - cfg.electron_beam.energy = 5; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -273,14 +225,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_100x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_100x10() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 100; - cfg.electron_beam.energy = 10; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -316,14 +260,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_100x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_275x10() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 275; - cfg.electron_beam.energy = 10; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -359,14 +295,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_275x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_275x18() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 275; - cfg.electron_beam.energy = 18; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -403,14 +331,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hiacc_275x18() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_41x5() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 41; - cfg.electron_beam.energy = 5; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -446,14 +366,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_41x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_100x5() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 100; - cfg.electron_beam.energy = 5; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -489,14 +401,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_100x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_100x10() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 100; - cfg.electron_beam.energy = 10; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -532,14 +436,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_100x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_275x10() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 275; - cfg.electron_beam.energy = 10; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -575,14 +471,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_275x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_275x18() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 275; - cfg.electron_beam.energy = 18; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - // Crossing angle cfg.crossing_angle_hor = 25e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 100e-6; // Crossing angle in vertical plane [rad] @@ -621,14 +509,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip6_hidiv_275x18() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x18() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 110; - cfg.electron_beam.energy = 18; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -664,14 +544,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x18() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x10() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 110; - cfg.electron_beam.energy = 10; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -707,14 +579,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x5() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 110; - cfg.electron_beam.energy = 5; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -750,14 +614,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_110x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_41x5() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 45; - cfg.electron_beam.energy = 5; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -794,14 +650,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_eau_41x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_41x5() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 41; - cfg.electron_beam.energy = 5; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -836,14 +684,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_41x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_100x5() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 100; - cfg.electron_beam.energy = 5; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -878,14 +718,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_100x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_100x10() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 100; - cfg.electron_beam.energy = 10; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -920,14 +752,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_100x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_275x10() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 275; - cfg.electron_beam.energy = 10; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -962,14 +786,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_275x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_275x18() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 275; - cfg.electron_beam.energy = 18; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -1005,14 +821,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hiacc_275x18() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_41x5() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 41; - cfg.electron_beam.energy = 5; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -1047,14 +855,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_41x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_100x5() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 100; - cfg.electron_beam.energy = 5; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -1089,14 +889,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_100x5() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_100x10() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 100; - cfg.electron_beam.energy = 10; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -1131,14 +923,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_100x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_275x10() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 275; - cfg.electron_beam.energy = 10; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -1173,14 +957,6 @@ ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_275x10() { ab::AfterburnerConfig ab::EicConfigurator::preset_ip8_hidiv_275x18() { ab::AfterburnerConfig cfg; - // Beam energy - cfg.ion_beam.energy = 275; - cfg.electron_beam.energy = 18; - - // Beam species - cfg.ion_beam.pdg = 2212; - cfg.electron_beam.pdg = 11; - cfg.crossing_angle_hor = -35e-3; // Crossing angle in horizontal plane [rad] cfg.crossing_angle_ver = 0; // Crossing angle in vertical plane [rad] @@ -1243,7 +1019,14 @@ ab::AfterburnerConfig ab::EicConfigurator::config(HepMC3::ConstGenParticlePtr io throw std::invalid_argument("Electron energy setting is incorrect"); } - return config(static_cast(ion_e), static_cast(electron_e), beam_preset); + ab::AfterburnerConfig cfg = config(static_cast(ion_e), static_cast(electron_e), beam_preset); + cfg.ion_beam.energy = ion_e; + cfg.electron_beam.energy = electron_e; + + cfg.ion_beam.pdg = ion->pid(); + cfg.electron_beam.pdg = electron->pid(); + + return cfg; } From 0ce6d7a2d82dadcc7c784f014d439bab739f0a47 Mon Sep 17 00:00:00 2001 From: simonge Date: Sat, 26 Aug 2023 23:13:32 +0100 Subject: [PATCH 9/9] Stopped all events being read even if limit specified by changing continue to break --- cpp/abconv/Converter.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cpp/abconv/Converter.cc b/cpp/abconv/Converter.cc index 7e342f6..3f9799f 100644 --- a/cpp/abconv/Converter.cc +++ b/cpp/abconv/Converter.cc @@ -35,7 +35,7 @@ void ab::abconv::Converter::convert() { } if (evt.event_number() < _first_event_number) continue; - if (_last_event_number && evt.event_number() > _last_event_number) continue; + if (_last_event_number && evt.event_number() > _last_event_number) break; if(0 == events_processed) { // The first event, determine beams configuration