main466

Back to index.

// main466.cc is a part of the PYTHIA event generator.
// Copyright (C) 2024 Torbjorn Sjostrand.
// PYTHIA is licenced under the GNU GPL v2 or later, see COPYING for details.
// Please respect the MCnet Guidelines, see GUIDELINES for details.

// Authors:
//            Marius Utheim

// Keywords:
//            Hadron widths

// Code to create parameterization tables for hadron widths.
// Useful if resonances are added or particle properties are changed.

#include "Pythia8/Pythia.h"
using namespace Pythia8;

//==========================================================================

int main(int argc, char* argv[]) {

  // Get precision from command line, if provided.
  int precision = (argc == 2) ? atoi(argv[1]) : 50;
  if ((argc != 1 && argc != 2) || precision <= 1) {
    cerr << " Unexpected number of command-line arguments. \n"
         << " You are expected to either provide the precision as an \n"
         << " integer (precision >= 2), or no argument to indicate the \n"
         << " default value (50). \n"
         << " Program stopped! " << endl;
    return 1;
  }

  // Initialize Pythia.
  Pythia pythia;
  pythia.readString("ProcessLevel:all = off");

  if (!pythia.init()) {
    cout << endl << " Pythia failed to initialize. \n"
     " If this happened because hadron widths are unavailable or invalid,\n"
     " particle data should still be loaded. In this case, this code should\n"
     " still be used to generate hadron widths. Therefore, execution will\n"
     " continue." << endl << endl;
  }

  // Perform parameterization.
  HadronWidths& hadronWidths = pythia.hadronWidths;
  hadronWidths.parameterizeAll(precision);
  hadronWidths.save("HadronWidths.dat");

  // Done.
  return 0;

}