Skip to content
Snippets Groups Projects
Commit de6f3fa7 authored by Dmitry Romanov's avatar Dmitry Romanov
Browse files

Add IP8 configs with the proper explanation

parent 44b80f05
Branches main
No related tags found
No related merge requests found
...@@ -13,7 +13,7 @@ for Electron Ion Collider. ...@@ -13,7 +13,7 @@ for Electron Ion Collider.
**Software:** **Software:**
- Standalone framework independent code - Standalone framework independent code
- Clean C++ API to embed in analysis scripts and/or frameworks - Clean C++ API to embed in analysis scripts and/or frameworks
- Convenient Command Line Interface (CLI) HepMC2/3 converter, that adds crossing_angle and beam effects - Convenient Command Line Interface (CLI) HepMC2/3 converter, that adds crossing_angle_hor and beam effects
- Configurable beam parameters interface (yaml files) - Configurable beam parameters interface (yaml files)
...@@ -92,13 +92,18 @@ converter. ...@@ -92,13 +92,18 @@ converter.
- eAu \[GeV\]: 110x18, 110x10, 110x5, 41x5 - eAu \[GeV\]: 110x18, 110x10, 110x5, 41x5
- One can [the exact beam parameters](https://eicweb.phy.anl.gov/monte_carlo/afterburner/-/blob/main/cpp/afterburner/EicConfigurator.cc) - One can [the exact beam parameters](https://eicweb.phy.anl.gov/monte_carlo/afterburner/-/blob/main/cpp/afterburner/EicConfigurator.cc)
that correspond to EIC CDR tables 3.3, 3.4, 3.5 that correspond to EIC CDR tables 3.3, 3.4, 3.5
- Using `-c/--config` flag one can select a profile: - Using `-p/--preset` flag one can select a profile:
- 0: High Divergence (higher luminosity) - default, - 0: IP6 High Divergence (higher luminosity) - default,
- 1: High Acceptance - 1: IP6 High Acceptance
- 2: eAu - 2: IP6 eAu
- 3: IP8 High Divergence (higher luminosity) - default,
- 4: IP8 High Acceptance
- 5: IP8 eAu
- Crossing angle is given in horizontal and vertical components - Crossing angle is given in horizontal and vertical components
- [Afterburner configuration](https://eicweb.phy.anl.gov/monte_carlo/afterburner/-/blob/main/cpp/afterburner/AfterburnerConfig.hh) - [Afterburner configuration](https://eicweb.phy.anl.gov/monte_carlo/afterburner/-/blob/main/cpp/afterburner/AfterburnerConfig.hh)
> (!) For now IP8 is a copy of IP6 parameters with 35 mrad crossing angle. It will be populated with IP8 own parameters as
> soon as they are officially published.
### Input file requirements ### Input file requirements
...@@ -118,7 +123,7 @@ converter. ...@@ -118,7 +123,7 @@ converter.
| -h,--help | Print this help message and exit| | -h,--help | Print this help message and exit|
| -v,--version | Shows package version number | | -v,--version | Shows package version number |
| -o,--output TEXT | Base name for Output files ((!) no extension)| | -o,--output TEXT | Base name for Output files ((!) no extension)|
| -c,--config TEXT | Beams configuration 0: High divergence\[default\], 1: High acceptance, 2: eAu| | -p,--preset TEXT | Beams configuration 0: IP6 High divergence\[default\], 1: IP6 High acceptance, 2: IP6 eAu|
| -i,--in-format TEXT | Input format: auto \[default\], hepmc2, hepmc3, hpe, lhef, gz, treeroot, root| | -i,--in-format TEXT | Input format: auto \[default\], hepmc2, hepmc3, hpe, lhef, gz, treeroot, root|
| -f,--out-format TEXT | Output format: hepmc3 \[default\], hepmc2, dot, none (no events file is saved)| | -f,--out-format TEXT | Output format: hepmc3 \[default\], hepmc2, dot, none (no events file is saved)|
| -s,--ev-start INT | Start event index (all previous are skipped)| | -s,--ev-start INT | Start event index (all previous are skipped)|
...@@ -135,11 +140,14 @@ converter. ...@@ -135,11 +140,14 @@ converter.
> This method is very coarse as if in a source file the crossing angle is 0 but all beam effects do exist, > This method is very coarse as if in a source file the crossing angle is 0 but all beam effects do exist,
> beam effects will be applied twice > beam effects will be applied twice
-c,--config flag, values [0,1,2] set config and auto determine energy from source file: -p,--preset flag, values \[0,1,2,3,4,5\] set config and auto determine energy from source file:
- "0": IP6, High divergence, auto read energy [default], - "0": IP6, High divergence, auto read energy [default],
- "1": IP6, High acceptance, auto read energy - "1": IP6, High acceptance, auto read energy
- "2": IP6, eAu, auto read energy - "2": IP6, eAu, auto read energy
- "3": IP8, High divergence, auto read energy [default],
- "4": IP8, High acceptance, auto read energy
- "5": IP8, eAu, auto read energy
The other options sets energy settings manually, not checking the source file: The other options sets energy settings manually, not checking the source file:
...@@ -147,14 +155,20 @@ The other options sets energy settings manually, not checking the source file: ...@@ -147,14 +155,20 @@ The other options sets energy settings manually, not checking the source file:
<tr><td>ip6_hidiv_41x5</td><td>ip6_hidiv_100x5</td><td>ip6_hidiv_100x10</td><td>ip6_hidiv_275x10</td><td>ip6_hidiv_275x18</td></tr> <tr><td>ip6_hidiv_41x5</td><td>ip6_hidiv_100x5</td><td>ip6_hidiv_100x10</td><td>ip6_hidiv_275x10</td><td>ip6_hidiv_275x18</td></tr>
<tr><td>ip6_hiacc_41x5</td><td>ip6_hiacc_100x5</td><td>ip6_hiacc_100x10</td><td>ip6_hiacc_275x10</td><td>ip6_hiacc_275x18</td></tr> <tr><td>ip6_hiacc_41x5</td><td>ip6_hiacc_100x5</td><td>ip6_hiacc_100x10</td><td>ip6_hiacc_275x10</td><td>ip6_hiacc_275x18</td></tr>
<tr><td>ip6_eau_41x5 </td><td>ip6_eau_110x5 </td><td>ip6_eau_110x10 </td><td>ip6_eau_110x18 </td><td>-</td></tr> <tr><td>ip6_eau_41x5 </td><td>ip6_eau_110x5 </td><td>ip6_eau_110x10 </td><td>ip6_eau_110x18 </td><td>-</td></tr>
<tr><td>ip8_hidiv_41x5</td><td>ip8_hidiv_100x5</td><td>ip8_hidiv_100x10</td><td>ip8_hidiv_275x10</td><td>ip8_hidiv_275x18</td></tr>
<tr><td>ip8_hiacc_41x5</td><td>ip8_hiacc_100x5</td><td>ip8_hiacc_100x10</td><td>ip8_hiacc_275x10</td><td>ip8_hiacc_275x18</td></tr>
<tr><td>ip8_eau_41x5 </td><td>ip8_eau_110x5 </td><td>ip8_eau_110x10 </td><td>ip8_eau_110x18 </td><td>-</td></tr>
</table> </table>
Example of manual configuration setting: Example of manual configuration setting:
```bash ```bash
abconv -c ip6_hidiv_100x5 source_file.hepmc abconv -p ip6_hidiv_100x5 source_file.hepmc
``` ```
> (!) For now IP8 is a copy of IP6 parameters with 35 mrad crossing angle. It will be populated with IP8 own parameters as
> soon as they are officially published.
>
## Validation ## Validation
......
...@@ -25,7 +25,7 @@ UserArguments ArgumentProcessor::Process(int argc, char **argv) ...@@ -25,7 +25,7 @@ UserArguments ArgumentProcessor::Process(int argc, char **argv)
long ev_end = 0; long ev_end = 0;
app.add_option("-o, --output", output_base_name, "Base name for Output files ((!) no extension)"); app.add_option("-o, --output", output_base_name, "Base name for Output files ((!) no extension)");
app.add_option("-p, --preset", preset, "0: High divergence[default], 1: High acceptance, 2: eAu; More - see below"); app.add_option("-p, --preset", preset, "0: IP6 High divergence[default], 1: IP6 High acceptance, 2: IP6 eAu; 3: IP8 Hight divergence..., More - see below");
app.add_option("-i, --in-format", input_format, "Input format: auto [default], hepmc2, hepmc3, hpe, lhef, gz, treeroot, root"); app.add_option("-i, --in-format", input_format, "Input format: auto [default], hepmc2, hepmc3, hpe, lhef, gz, treeroot, root");
app.add_option("-f, --out-format", output_format, "Output format: hepmc3 [default], hepmc2, dot, none (no events file is saved)"); app.add_option("-f, --out-format", output_format, "Output format: hepmc3 [default], hepmc2, dot, none (no events file is saved)");
...@@ -92,14 +92,20 @@ std::string ArgumentProcessor::get_description() { ...@@ -92,14 +92,20 @@ std::string ArgumentProcessor::get_description() {
} }
std::string ArgumentProcessor::get_footer() { std::string ArgumentProcessor::get_footer() {
return "-c,--config flag, values [0,1,2] set config and auto determine energy from source file: \n" return "-p,--preset flag, values [0,1,2] set config and auto determine energy from source file: \n"
" 0: IP6, High divergence, auto read energy [default], \n" " 0: IP6, High divergence, auto read energy [default], \n"
" 1: IP6, High acceptance, auto read energy\n" " 1: IP6, High acceptance, auto read energy\n"
" 2: IP6, eAu, auto read energy\n" " 2: IP6, eAu, auto read energy\n"
" 3: IP8, High divergence, auto read energy [default], \n"
" 4: IP8, High acceptance, auto read energy\n"
" 5: IP8, eAu, auto read energy\n"
"The other options sets energy settings manually, not checking the source file:\n" "The other options sets energy settings manually, not checking the source file:\n"
" ip6_hidiv_41x5, ip6_hidiv_100x5, ip6_hidiv_100x10, ip6_hidiv_275x10, ip6_hidiv_275x18\n" " ip6_hidiv_41x5, ip6_hidiv_100x5, ip6_hidiv_100x10, ip6_hidiv_275x10, ip6_hidiv_275x18\n"
" ip6_hiacc_41x5, ip6_hiacc_100x5, ip6_hiacc_100x10, ip6_hiacc_275x10, ip6_hiacc_275x18\n" " ip6_hiacc_41x5, ip6_hiacc_100x5, ip6_hiacc_100x10, ip6_hiacc_275x10, ip6_hiacc_275x18\n"
" ip6_eau_41x5, ip6_eau_110x5, ip6_eau_110x10, ip6_eau_110x18\n" " ip6_eau_41x5, ip6_eau_110x5, ip6_eau_110x10, ip6_eau_110x18\n"
" ip8_hidiv_41x5, ip8_hidiv_100x5, ip8_hidiv_100x10, ip8_hidiv_275x10, ip8_hidiv_275x18\n"
" ip8_hiacc_41x5, ip8_hiacc_100x5, ip8_hiacc_100x10, ip8_hiacc_275x10, ip8_hiacc_275x18\n"
" ip8_eau_41x5, ip8_eau_110x5, ip8_eau_110x10, ip8_eau_110x18\n"
"Example of manual configuration setting: \n" "Example of manual configuration setting: \n"
" abconv -c ip6_hidiv_100x5 source_file.hepmc\n"; " abconv -p ip6_hidiv_100x5 source_file.hepmc\n";
} }
...@@ -45,15 +45,27 @@ ab::AfterburnerConfig ab::convert::ConfigProvider::from_user_args(UserArguments ...@@ -45,15 +45,27 @@ ab::AfterburnerConfig ab::convert::ConfigProvider::from_user_args(UserArguments
auto reader = ab::convert::generate_reader(arg.InputFormat, arg.InputFileName); auto reader = ab::convert::generate_reader(arg.InputFormat, arg.InputFileName);
if(arg.preset_name == "0") { if(arg.preset_name == "0") {
return from_hepmc_file(reader, ab::EicBeamPresets::HighDivergence); return from_hepmc_file(reader, ab::EicBeamPresets::Ip6HighDivergence);
} }
if(arg.preset_name == "1") { if(arg.preset_name == "1") {
return from_hepmc_file(reader, ab::EicBeamPresets::HighAcceptance); return from_hepmc_file(reader, ab::EicBeamPresets::Ip6HighAcceptance);
} }
if(arg.preset_name == "2") { if(arg.preset_name == "2") {
return from_hepmc_file(reader, ab::EicBeamPresets::ElectronAurum); return from_hepmc_file(reader, ab::EicBeamPresets::Ip6ElectronAurum);
}
if(arg.preset_name == "3") {
return from_hepmc_file(reader, ab::EicBeamPresets::Ip8HighDivergence);
}
if(arg.preset_name == "4") {
return from_hepmc_file(reader, ab::EicBeamPresets::Ip8HighAcceptance);
}
if(arg.preset_name == "5") {
return from_hepmc_file(reader, ab::EicBeamPresets::Ip8ElectronAurum);
} }
// If it is not 0, 1, or 2, it is a manual config // If it is not 0, 1, or 2, it is a manual config
......
...@@ -201,7 +201,7 @@ HepMC3::ConstGenParticles ab::abconv::Converter::get_beam_particles(const HepMC3 ...@@ -201,7 +201,7 @@ HepMC3::ConstGenParticles ab::abconv::Converter::get_beam_particles(const HepMC3
void ab::abconv::Converter::ab_config_to_run_info(const std::shared_ptr<HepMC3::GenRunInfo>& run_info, ab::AfterburnerConfig cfg) { void ab::abconv::Converter::ab_config_to_run_info(const std::shared_ptr<HepMC3::GenRunInfo>& run_info, ab::AfterburnerConfig cfg) {
using namespace HepMC3; using namespace HepMC3;
run_info->add_attribute("ab_afterburner_is_used", std::make_shared<BoolAttribute>(true)); run_info->add_attribute("ab_afterburner_is_used", std::make_shared<BoolAttribute>(true));
run_info->add_attribute("ab_crossing_angle", std::make_shared<DoubleAttribute>(cfg.crossing_angle)); run_info->add_attribute("ab_crossing_angle", std::make_shared<DoubleAttribute>(cfg.crossing_angle_hor));
run_info->add_attribute("ab_use_beam_bunch_sim", std::make_shared<BoolAttribute>(cfg.use_beam_bunch_sim)); run_info->add_attribute("ab_use_beam_bunch_sim", std::make_shared<BoolAttribute>(cfg.use_beam_bunch_sim));
run_info->add_attribute("ab_hadron_divergence_hor", std::make_shared<DoubleAttribute>(cfg.hadron_beam.divergence_hor)); run_info->add_attribute("ab_hadron_divergence_hor", std::make_shared<DoubleAttribute>(cfg.hadron_beam.divergence_hor));
......
...@@ -58,7 +58,7 @@ ab::BunchInteractionResult ab::Afterburner::generate_vertx_with_bunch_interactio ...@@ -58,7 +58,7 @@ ab::BunchInteractionResult ab::Afterburner::generate_vertx_with_bunch_interactio
// Set particle positions // Set particle positions
double hadron_z = _smear.gauss(_cfg.hadron_beam.rms_bunch_length); double hadron_z = _smear.gauss(_cfg.hadron_beam.rms_bunch_length);
double lepton_z = _smear.gauss(_cfg.lepton_beam.rms_bunch_length); double lepton_z = _smear.gauss(_cfg.lepton_beam.rms_bunch_length);
double crossing_angle = _cfg.crossing_angle; 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_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 had_bunch_rms_ver = sqrt(_cfg.hadron_beam.beta_star_ver * _cfg.hadron_beam.rms_emittance_ver);
...@@ -274,7 +274,7 @@ ab::AfterburnerEventResult ab::Afterburner::process_event(const CLHEP::HepLorent ...@@ -274,7 +274,7 @@ ab::AfterburnerEventResult ab::Afterburner::process_event(const CLHEP::HepLorent
//CLHEP::Hep3Vector ideal_hadron_dir = spherical_to_cartesian(_cfg.hadron_beam.direction_theta, _cfg.hadron_beam.direction_phi); //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 = spherical_to_cartesian(_cfg.lepton_beam.direction_theta, _cfg.lepton_beam.direction_phi);
CLHEP::Hep3Vector ideal_lepton_dir(0, 0, -1); CLHEP::Hep3Vector ideal_lepton_dir(0, 0, -1);
CLHEP::Hep3Vector ideal_hadron_dir = CLHEP::Hep3Vector(z_axis).rotateY(_cfg.crossing_angle).rotateX(_cfg.crossing_angle_ver); CLHEP::Hep3Vector ideal_hadron_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_hadron_dir.unit().dot(-ideal_lepton_dir.unit()));
...@@ -282,7 +282,7 @@ ab::AfterburnerEventResult ab::Afterburner::process_event(const CLHEP::HepLorent ...@@ -282,7 +282,7 @@ ab::AfterburnerEventResult ab::Afterburner::process_event(const CLHEP::HepLorent
cout << __PRETTY_FUNCTION__ << ": " << endl; cout << __PRETTY_FUNCTION__ << ": " << endl;
cout << "ideal_hadron_dir = " << ideal_hadron_dir << endl; cout << "ideal_hadron_dir = " << ideal_hadron_dir << endl;
cout << "ideal_lepton_dir = " << ideal_lepton_dir << endl; cout << "ideal_lepton_dir = " << ideal_lepton_dir << endl;
cout << "crossing_angle_hor = " << _cfg.crossing_angle << endl; cout << "crossing_angle_hor = " << _cfg.crossing_angle_hor << endl;
cout << "crossing_angle_ver = " << _cfg.crossing_angle_ver << endl; cout << "crossing_angle_ver = " << _cfg.crossing_angle_ver << endl;
} }
...@@ -301,10 +301,10 @@ ab::AfterburnerEventResult ab::Afterburner::process_event(const CLHEP::HepLorent ...@@ -301,10 +301,10 @@ ab::AfterburnerEventResult ab::Afterburner::process_event(const CLHEP::HepLorent
} }
// Calculate angular deflection // Calculate angular deflection
double hadron_crab_hor = _cfg.crossing_angle/2.0/sqrt(_cfg.hadron_beam.beta_crab_hor * _cfg.hadron_beam.beta_star_hor); 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 hadron_crab_ver = 0;
double lepton_crab_hor = _cfg.crossing_angle/2.0/sqrt(_cfg.lepton_beam.beta_crab_hor * _cfg.lepton_beam.beta_star_hor); 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 lepton_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_hadron_dir = smear_beam_divergence(ideal_hadron_dir, _cfg.hadron_beam, bunch_one_z, hadron_crab_hor, hadron_crab_ver);
...@@ -450,7 +450,7 @@ void ab::Afterburner::print() const { ...@@ -450,7 +450,7 @@ void ab::Afterburner::print() const {
cout << "AFTERBURNER CONFIGURATION\n"; cout << "AFTERBURNER CONFIGURATION\n";
cout << "=========================\n"; cout << "=========================\n";
cout << "Crossing angle hor: " << _cfg.crossing_angle << endl; cout << "Crossing angle hor: " << _cfg.crossing_angle_hor << endl;
cout << "Crossing angle ver: " << _cfg.crossing_angle_ver << endl; cout << "Crossing angle ver: " << _cfg.crossing_angle_ver << endl;
cout << "Vertex distribution width" cout << "Vertex distribution width"
......
...@@ -34,10 +34,10 @@ namespace ab { ...@@ -34,10 +34,10 @@ namespace ab {
/** /**
* Crossing angle in horizontal plane [rad] * Crossing angle in horizontal plane [rad]
*/ */
double crossing_angle = 25e-3; double crossing_angle_hor = 25e-3;
/** /**
* Crossing angle in vertical plane * Crossing angle in vertical plane [rad]
*/ */
double crossing_angle_ver = 100e-6; double crossing_angle_ver = 100e-6;
......
This diff is collapsed.
...@@ -5,9 +5,12 @@ ...@@ -5,9 +5,12 @@
namespace ab { namespace ab {
enum class EicBeamPresets { enum class EicBeamPresets {
HighDivergence=1, // High Divergence Config - CDR Table 3.3 Ip6HighDivergence=1, // IP8 High Divergence Config - CDR Table 3.3
HighAcceptance=2, // High Acceptance Config - CDR Table 3.4 Ip6HighAcceptance=2, // IP8 High Acceptance Config - CDR Table 3.4
ElectronAurum=3 // eA Config - CDR Table 3.5 Ip6ElectronAurum=3, // IP8 eA Config - CDR Table 3.5
Ip8HighDivergence=4, // IP6 (temporary) High Divergence Config - CDR Table 3.3
Ip8HighAcceptance=5, // IP6 (temporary) High Acceptance Config - CDR Table 3.4
Ip8ElectronAurum=6 // IP6 (temporary) eA Config - CDR Table 3.5
}; };
enum class EicBeamEnergies { enum class EicBeamEnergies {
...@@ -22,20 +25,34 @@ namespace ab { ...@@ -22,20 +25,34 @@ namespace ab {
class EicConfigurator { class EicConfigurator {
public: public:
static AfterburnerConfig config_eau_41x5(); static AfterburnerConfig preset_ip6_eau_41x5();
static AfterburnerConfig config_eau_110x5(); static AfterburnerConfig preset_ip6_eau_110x5();
static AfterburnerConfig config_eau_110x10(); static AfterburnerConfig preset_ip6_eau_110x10();
static AfterburnerConfig config_eau_110x18(); static AfterburnerConfig preset_ip6_eau_110x18();
static AfterburnerConfig config_hiacc_41x5(); static AfterburnerConfig preset_ip6_hiacc_41x5();
static AfterburnerConfig config_hiacc_100x5(); static AfterburnerConfig preset_ip6_hiacc_100x5();
static AfterburnerConfig config_hiacc_100x10(); static AfterburnerConfig preset_ip6_hiacc_100x10();
static AfterburnerConfig config_hiacc_275x10(); static AfterburnerConfig preset_ip6_hiacc_275x10();
static AfterburnerConfig config_hiacc_275x18(); static AfterburnerConfig preset_ip6_hiacc_275x18();
static AfterburnerConfig config_hidiv_41x5(); static AfterburnerConfig preset_ip6_hidiv_41x5();
static AfterburnerConfig config_hidiv_100x5(); static AfterburnerConfig preset_ip6_hidiv_100x5();
static AfterburnerConfig config_hidiv_100x10(); static AfterburnerConfig preset_ip6_hidiv_100x10();
static AfterburnerConfig config_hidiv_275x10(); static AfterburnerConfig preset_ip6_hidiv_275x10();
static AfterburnerConfig config_hidiv_275x18(); static AfterburnerConfig preset_ip6_hidiv_275x18();
static AfterburnerConfig preset_ip8_eau_41x5();
static AfterburnerConfig preset_ip8_eau_110x5();
static AfterburnerConfig preset_ip8_eau_110x10();
static AfterburnerConfig preset_ip8_eau_110x18();
static AfterburnerConfig preset_ip8_hiacc_41x5();
static AfterburnerConfig preset_ip8_hiacc_100x5();
static AfterburnerConfig preset_ip8_hiacc_100x10();
static AfterburnerConfig preset_ip8_hiacc_275x10();
static AfterburnerConfig preset_ip8_hiacc_275x18();
static AfterburnerConfig preset_ip8_hidiv_41x5();
static AfterburnerConfig preset_ip8_hidiv_100x5();
static AfterburnerConfig preset_ip8_hidiv_100x10();
static AfterburnerConfig preset_ip8_hidiv_275x10();
static AfterburnerConfig preset_ip8_hidiv_275x18();
static AfterburnerConfig from_string(const std::string& name); static AfterburnerConfig from_string(const std::string& name);
static AfterburnerConfig config(double hadron_energy, double lepton_energy, EicBeamPresets beam_preset); static AfterburnerConfig config(double hadron_energy, double lepton_energy, EicBeamPresets beam_preset);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment