Back to home page

EIC code displayed by LXR

 
 

    


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, // IP8 High Divergence Config - CDR Table 3.3
0009         Ip6HighAcceptance=2, // IP8 High Acceptance Config - CDR Table 3.4
0010         Ip6ElectronAurum=3,  // IP8 eA Config - CDR Table 3.5
0011         Ip8HighDivergence=4, // IP6 (temporary) High Divergence Config - CDR Table 3.3
0012         Ip8HighAcceptance=5, // IP6 (temporary) High Acceptance Config - CDR Table 3.4
0013         Ip8ElectronAurum=6   // IP6 (temporary) eA Config - CDR Table 3.5
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 //EICAFTERBURNER_EICCONFIGURATOR_HH