1. 24 Jan, 2019 1 commit
    • Enrico Bothmann's avatar
      Rewrite settings input using YAML · eb96f45c
      Enrico Bothmann authored
      This commit closes #10.
      
      - Replace custom configuration parsing and format with a YAML-based
        solution
      - Improve implementation of settings handling to enable features such
        as:
        - Generally only specify defaults once in the code, not scattered
          throughout with possibly different values
        - Print comprehensive report of values used for each setting at the
          end of a run
        - Warn when a setting is specified that is not used during a run (this
          is foreseen and now possible, but not implemented yet)
      
      NOTE: This is a squashed commit to keep the commit history of master
      simple. The full history of the development branch will be retained as
      10-rewrite-settings-input+commit-history in case it is needed, e.g. to
      find a (small) changeset that introduced a bug using git-bisect.
      
      A good example for new syntax is:
      Examples/V_plus_Jets/LHC_WJets/Sherpa.yaml
      
      The command line can process words using the YAML syntax, but also
      supports the old legacy syntax, at least for scalar settings.
      
      In the code, setting default settings and getting the resolved value
      for a setting can be done e.g. as follows:
      
      ```
      auto hds = Settings::GetMainSettings()["HARD_DECAYS"];
      const auto apply_br
        = hds["Apply_Branching_Ratios"].SetDefault(true).Get<bool>();
      ```
      
      Note also that Sherpa can now process several configuration files:
      `Sherpa "RUNDATA: [1.yaml, 2.yaml, ...]"`, with settings in files to the
      right taking precedence over settings in files to the left. This can be
      useful for specifying base set-ups and then deriving specialisations.
      
      A more detailed discussion of the new settings architecture is given
      in
      https://gitlab.com/sherpa-team/sherpa/wikis/The-new-Settings-implementation
      (accessing this link might require developer access to the repository).
      
      Lastly, note that physics results are guaranteed to stay the same after
      this commit. If you find that to be not true, please contact me. When
      soft physics is used, numerics sometimes causes the statistics not to be
      the same after this commit. However, I've got some patches to mitigate
      this to some degree. So in any case, contact me if you find differences
      between results generated with this commit and the preceding one.
      eb96f45c
  2. 22 Jan, 2019 1 commit
  3. 17 Jan, 2019 2 commits
  4. 06 Jan, 2019 1 commit
    • Enrico Bothmann's avatar
      Fix (limited) Gaussian random number generation · de30ff96
      Enrico Bothmann authored
      ... for the primordial kT determination. The Marsaglia algorithm was
      wrongly implemented (and missed an opportunity for optimisation by not
      storing the second Gaussian random number for later use), and the
      LimitedWeight function did not rescale its hit-or-miss comparison
      function to a maximum of 1, which was extremely inefficient for low
      kTmax, where basically every kT candidate was unnecessarily rejected by
      LimitedWeight.
      
      Other changes
      ===
      
      The Gaussian random number algorithm is now implemented in Random.H and
      supersedes the previous one, which was less efficient. At that
      opportunity, I have also removed superfluous `inline` keyword uses in
      front of member function definitions.
      
      Observations in performance measurements
      ===
      
      - When running 10k events for Examples/CI/LO_Z, this will increase event
        generation speed by ~50% when using -O3. This measurement will vary
        strongly, because events with very low kTmax seem to occur only every
        few thousand events.
      
      - There is however a significant increase in Retried events from
        Hadron_Decays (before 9, after 38).
      
      Further remarks
      ===
      
      - Note that there is a chance that this fix renders previous tuning partly
        invalid.
      
      - Note that the Primordial kT generation using a Gaussian with a fixed
        width and an a-posteriori hit-or-miss Monte-Carlo that can have a
        width that is way smaller might still be very inefficient. The Gaussian
        generates a lot of large numbers before being accepted by the
        LimitedWeight. The Gaussian takes a kTmax argument but does not use it.
        This raises the question if perhaps this is not intended behaviour in
        the first place.
      de30ff96
  5. 08 Nov, 2018 1 commit
  6. 15 Jun, 2018 1 commit
    • Enrico Bothmann's avatar
      Fix clang warnings · 61ac0972
      Enrico Bothmann authored
      This fixes undefined behaviour in CS dipole channels and cleans up the
      read-in of the AMISIC matter overlap form setting
      61ac0972
  7. 12 Jun, 2018 3 commits
    • Enrico Bothmann's avatar
      Add missing assignment to `qg_qgamma::Calc` · 62f34a46
      Enrico Bothmann authored
      This bug was found when fixing clang warnings. Other (non-critical)
      clang warnings are also fixed.
      62f34a46
    • Frank Krauss's avatar
      Re-enable DIS remnant handling · 668ffacf
      Frank Krauss authored
      Fix other small issues:
      - Treatment of absent beam particles in heavy hadron decays
      - Add four-momentum checks on shower blobs
      - Fix bug with transition to parton showers for massive particles
      - Tidy up files
      668ffacf
    • Frank Krauss's avatar
      Implement new AMISIC and remnannt handling · 7c2b1d2b
      Frank Krauss authored
       - Functional for simple LEP- and LHC-type events
       - Minor bug-fixes in AHADIC
       - Minor updates to ATOOLS to allow for better conservation-law checks
         in blobs
       - Pull remnants out of the ISR_Handler in CSS and out of PDF into a new
         remnant handler, adding the logic of colour extraction
       - Move mass mode to allow AMISIC to have access to the Mass_Selector
       - AMISIC and REMNANTS are ready to be tuned
      7c2b1d2b
  8. 27 Apr, 2018 1 commit
    • Frank Siegert's avatar
      Fix AMISIC initialisation · 14c16772
      Frank Siegert authored
      Processes were missing the `m_borncpl` setting upon initialisation (probably necessary since the ewnlo merge).
      14c16772
  9. 26 Mar, 2018 1 commit
  10. 17 Mar, 2018 1 commit
  11. 03 Jul, 2017 1 commit
  12. 07 Mar, 2017 1 commit
  13. 09 Jan, 2017 1 commit
    • Enrico Bothmann's avatar
      svn merge ^/trunk/SHERPA@29448 ^/branches/readin@29448 · 1cb90c9e
      Enrico Bothmann authored
      This reintegrates the readin branch, replacing Data_Reader with its new
      subclass Default_Reader, wherever parameters are read from the run card(s) or
      the command line. This simplifies this use case and and enforces consistency.
      A lot of duplicate code is removed, too. Data_Reader is still used for more
      low-level string parsing.
      1cb90c9e
  14. 04 May, 2016 1 commit
  15. 22 Aug, 2015 2 commits
  16. 14 May, 2015 1 commit
  17. 06 Apr, 2015 2 commits
  18. 04 Apr, 2015 1 commit
  19. 03 Apr, 2015 1 commit
  20. 02 Apr, 2015 1 commit
  21. 30 Mar, 2015 1 commit
  22. 28 Mar, 2015 1 commit
  23. 06 Feb, 2015 1 commit
  24. 15 Jan, 2015 1 commit
  25. 05 Nov, 2014 1 commit
  26. 25 Jun, 2014 1 commit
  27. 02 Jun, 2014 1 commit
  28. 07 Feb, 2014 1 commit
  29. 05 Feb, 2014 1 commit
  30. 28 Jan, 2014 1 commit
  31. 31 Dec, 2013 1 commit
  32. 19 Dec, 2013 1 commit
  33. 12 Dec, 2013 1 commit
  34. 14 Nov, 2013 1 commit
  35. 19 Oct, 2013 1 commit