File indexing completed on 2024-06-26 07:05:02
0001 #ifndef EICAFTERBURNER_EICCONFIGURATOR_HH
0002 #define EICAFTERBURNER_EICCONFIGURATOR_HH
0003
0004 #include "AfterburnerConfig.hh"
0005
0006 namespace ab {
0007 enum class EicBeamPresets {
0008 Ip6HighDivergence=1,
0009 Ip6HighAcceptance=2,
0010 Ip6ElectronAurum=3,
0011 Ip8HighDivergence=4,
0012 Ip8HighAcceptance=5,
0013 Ip8ElectronAurum=6
0014 };
0015
0016 enum class EicBeamEnergies {
0017 E5GeV = 5,
0018 E10GeV = 10,
0019 E18GeV = 18,
0020 E41GeV = 41,
0021 E100GeV = 100,
0022 E110GeV = 110,
0023 E275GeV = 275
0024 };
0025
0026 class EicConfigurator {
0027 public:
0028 static AfterburnerConfig preset_ip6_eau_41x5();
0029 static AfterburnerConfig preset_ip6_eau_110x5();
0030 static AfterburnerConfig preset_ip6_eau_110x10();
0031 static AfterburnerConfig preset_ip6_eau_110x18();
0032 static AfterburnerConfig preset_ip6_hiacc_41x5();
0033 static AfterburnerConfig preset_ip6_hiacc_100x5();
0034 static AfterburnerConfig preset_ip6_hiacc_100x10();
0035 static AfterburnerConfig preset_ip6_hiacc_275x10();
0036 static AfterburnerConfig preset_ip6_hiacc_275x18();
0037 static AfterburnerConfig preset_ip6_hidiv_41x5();
0038 static AfterburnerConfig preset_ip6_hidiv_100x5();
0039 static AfterburnerConfig preset_ip6_hidiv_100x10();
0040 static AfterburnerConfig preset_ip6_hidiv_275x10();
0041 static AfterburnerConfig preset_ip6_hidiv_275x18();
0042 static AfterburnerConfig preset_ip8_eau_41x5();
0043 static AfterburnerConfig preset_ip8_eau_110x5();
0044 static AfterburnerConfig preset_ip8_eau_110x10();
0045 static AfterburnerConfig preset_ip8_eau_110x18();
0046 static AfterburnerConfig preset_ip8_hiacc_41x5();
0047 static AfterburnerConfig preset_ip8_hiacc_100x5();
0048 static AfterburnerConfig preset_ip8_hiacc_100x10();
0049 static AfterburnerConfig preset_ip8_hiacc_275x10();
0050 static AfterburnerConfig preset_ip8_hiacc_275x18();
0051 static AfterburnerConfig preset_ip8_hidiv_41x5();
0052 static AfterburnerConfig preset_ip8_hidiv_100x5();
0053 static AfterburnerConfig preset_ip8_hidiv_100x10();
0054 static AfterburnerConfig preset_ip8_hidiv_275x10();
0055 static AfterburnerConfig preset_ip8_hidiv_275x18();
0056 static AfterburnerConfig from_string(const std::string& name);
0057
0058 static AfterburnerConfig config(double hadron_energy, double lepton_energy, EicBeamPresets beam_preset);
0059 static AfterburnerConfig config(EicBeamEnergies hadron, EicBeamEnergies lepton, EicBeamPresets beam_preset);
0060
0061 private:
0062
0063 };
0064 }
0065
0066
0067 #endif