Implemented JSON test framework for all decay models - closes T108


Implemented JSON test framework for all decay models - closes T108

Added testDecayModel executable, which automatically generates distributions for decays specified in json files.
Each json file must define the parent particle, child particles, decay model(s), parameters, output and reference file names, number of events, and the set of histograms to save.
It compares the results with those in a reference file (if provided) and prints out the chi-squared values for each histogram.

Added gitlab CI script with:

  • build stage that can build under different compilers/settings
  • after_script from one build creates json files that store information on file dependencies
  • test stage that executes script to run tests based on dependency information and the files in the current change-set

Added json files for testing every decay model

Some changes to EvtGenBase and EvtGenModels code:

  • Add const version of getDaug method to EvtParticle
  • Increase EvtTVP max prob from 2 to 2.5
  • Set probMax = 10 for EvtVtoSll model (was unset before).
  • Correct lepton spin loops for B0 mode in EvtbsToLLLL(HyperCP)Amp to avoid zero amplitudes.
  • BTOKPI_CP_ISO: check for only 14 parameters and fix the EvtId of pi-
  • Set no maximum probability for EvtSingleParticle model (EvtDecayIncoherent).
  • Set the max prob in EvtPhiDalitz.
  • Set the max probability for EvtBTo4piCP and EvtBToKpipiCP.
  • Set a default form factor for RareLbToLll (LQCD)
  • Set a non-zero max probability in Lb2Lll (its initProbMax calculation gives zero)
  • Removed verbose amplitude printout messages in EvtSVVHelCPMix.
  • Increase max probability for EvtKKLambdaC to 1e3.
  • Fix issues reported in T198:
    • correct the amplitude pointer used to find the scaling factor in EvtPto3PAmpFactory::processAmp
    • correct resetting the particle id for the second pseudo D meson in EvtBtoKD3P
  • EvtSLBaryonAmp: check for non-zero momentum when calculating cosTheta, otherwise the spin density components have NaN (related to task T175)
  • EvtLambdaB2LambdaV:
    • check division by zero
    • drastically simplify 4-momentum formulae to avoid repeating function calls and excessive use of brackets
    • correct max prob formulae
  • Set max probability (to 1) in EvtMultibody
  • Modify EvtMTree to allow resonance nodes to be created, but overall this model doesn't appear to be working properly; it just seems to generate flat phase space and it's not clear what decay file syntax is needed to create resonances with non-zero spin
  • Improve max prob calculations in EvtSVSCPiso & EvtSSSCPpng (T189)
  • Add functions in EvtSVSCPiso to set the amplitude terms, which can then be reused in both initProbMax() and decay()
  • Increase BTOSLLALI max prob by 25% to try to fix warnings (T161)
  • Set probMax for Bsquark, ISGW, Kstarnunu, Melikhov, SSSCPT & Sll models

Work done by: @fabudine/@abudinen, @jback, @kreps, @tlatham, @jaward
See https://gitlab.cern.ch/evtgen/evtgen/-/merge_requests/1 for further details
Closes #1 and #2


jbackAuthored on Aug 18 2020, 7:00 PM
tlathamCommitted on Sep 8 2022, 10:32 AM
tlathamPushed on Sep 9 2022, 9:04 AM
rEVTGEN806f2feeb908: Improve handling of phase-space generation for cases of decays having e+e- pair…
T108: Add capability for testing decay models within CI pipeline