|
||||
File indexing completed on 2024-06-26 07:05:01
0001 #ifndef EICAFTERBURNER_AFTERBURNERCONFIG_HH 0002 #define EICAFTERBURNER_AFTERBURNERCONFIG_HH 0003 0004 #include <iostream> 0005 #include "Smearer.hh" 0006 0007 namespace ab { 0008 0009 struct BeamConfig { 0010 0011 //! Beam angle divergence in accelerator beam coordinate. 0012 //! 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 0013 //! 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 0014 double divergence_hor = 0; 0015 double divergence_ver = 0; 0016 0017 //! Central beam angle shift as linear function of longitudinal vertex position, d_shift/dz, 0018 //! which is used to represent leading order effect of crab cavity momentum kick on the beam bunch 0019 //! First element is beamA, in pair of dh/dz, dv/dz. BeamA is aimed to +z direction in the HepMC event generator's coordinate 0020 //! Second element is beamB, in pair of dh/dz, dv/dz. BeamA is aimed to -z direction in the HepMC event generator's coordinate 0021 // double z_shift_ver = 0; 0022 double beta_crab_hor = 0; 0023 0024 double beta_star_hor = 0; 0025 double beta_star_ver = 0; 0026 0027 double rms_emittance_hor = 0; 0028 double rms_emittance_ver = 0; 0029 double rms_bunch_length = 0; 0030 }; 0031 0032 struct AfterburnerConfig { 0033 0034 /** 0035 * Crossing angle in horizontal plane [rad] 0036 */ 0037 double crossing_angle_hor = 25e-3; 0038 0039 /** 0040 * Crossing angle in vertical plane [rad] 0041 */ 0042 double crossing_angle_ver = 100e-6; 0043 0044 unsigned int random_seed = 1; 0045 0046 // Use beam bunch simulation 0047 bool use_beam_bunch_sim = true; 0048 0049 /** Smearing function to use for initial vertex smearing 0050 * (!) These fields relevant only if use_beam_bunch_sim = FALSE 0051 * */ 0052 SmearFuncs vertex_smear_func = SmearFuncs::Gauss; 0053 0054 /** Smearing width (be it Gauss or Flat) 0055 * (!) These fields relevant only if use_beam_bunch_sim = FALSE 0056 * */ 0057 double vertex_smear_width_x = 0; 0058 double vertex_smear_width_y = 0; 0059 double vertex_smear_width_z = 0; 0060 double vertex_smear_width_t = 0; 0061 0062 /** Vertex permanent shift (added in the beginning) */ 0063 double vertex_shift_x = 0; 0064 double vertex_shift_y = 0; 0065 double vertex_shift_z = 0; 0066 double vertex_shift_t = 0; 0067 0068 /// Beam A (one) configuration 0069 BeamConfig hadron_beam; 0070 0071 /// Beam B (two) configuration 0072 BeamConfig lepton_beam; 0073 }; 0074 } 0075 #endif //EICAFTERBURNER_AFTERBURNERCONFIG_HH
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.5 LXR engine. The LXR team |