<commit_before>// @(#)root/pythia6:$Name$:$Id$
// Author: <NAME>   19/10/99

/*************************************************************************
 * Copyright (C) 1995-2000, <NAME> and <NAME>.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/
#ifndef PYTHIA_TPythia6
#define PYTHIA_TPythia6
////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// TPythia6                                                                   //
//                                                                            //
// TPythia is an interface class to F77 version of Pythia 6.1                 //
// CERNLIB event generators, written by T.Sjostrand.                          //
// For the details about these generators look at Pythia/Jetset manual:       //
//                                                                            //
//******************************************************************************
//**                                                                          **
//**                                                                          **
//**  PPP  Y   Y TTTTT H   H III   A        JJJJ EEEE TTTTT  SSS  EEEE TTTTT  **
//**  P  P  Y Y    T   H   H  I   A A          J E      T   S     E      T    **
//**  PPP    Y     T   HHHHH  I  AAAAA         J EEE    T    SSS  EEE    T    **
//**  P      Y     T   H   H  I  A   A      J  J E      T       S E      T    **
//**  P      Y     T   H   H III A   A       JJ  EEEE   T    SSS  EEEE   T    **
//**                                                                          **
//**                                                                          **
//**              *......*                  Welcome to the Lund Monte Carlo!  **
//**         *:::!!:::::::::::*                                               **
//**      *::::::!!::::::::::::::*            This is PYTHIA version 5.720    **
//**    *::::::::!!::::::::::::::::*        Last date of change: 29 Nov 1995  **
//**   *:::::::::!!:::::::::::::::::*                                         **
//**   *:::::::::!!:::::::::::::::::*         This is JETSET version 7.408    **
//**    *::::::::!!::::::::::::::::*!       Last date of change: 23 Aug 1995  **
//**      *::::::!!::::::::::::::* !!                                         **
//**      !! *:::!!:::::::::::*    !!                 Main author:            **
//**      !!     !* -><- *         !!              <NAME>         **
//**      !!     !!                !!        Dept. of theoretical physics 2   **
//**      !!     !!                !!              University of Lund         **
//**      !!                       !!                Solvegatan 14A           **
//**      !!        ep             !!             S-223 62 Lund, Sweden       **
//**      !!                       !!          phone: +46 - 46 - 222 48 16    **
//**      !!                 pp    !!          E-mail: <EMAIL>    **
//**      !!   e+e-                !!                                         **
//**      !!                       !!         Copyright <NAME>    **
//**      !!                                     and CERN, Geneva 1993        **
//**                                                                          **
//**                                                                          **
//** The latest program versions and documentation is found on WWW address    **
//** http://thep.lu.se/tf2/staff/torbjorn/Welcome.html                        **
//**                                                                          **
//** When you cite these programs, priority should always be given to the     **
//** latest published description. Currently this is                          **
//** <NAME>, Computer Physics Commun. 82 (1994) 74.                     **
//** The most recent long description (unpublished) is                        **
//** <NAME>, LU TP 95-20 and CERN-TH.7112/93 (revised August 1995).     **
//** Also remember that the programs, to a large extent, represent original   **
//** physics research. Other publications of special relevance to your        **
//** studies may therefore deserve separate mention.                          **
//**                                                                          **
//**                                                                          **
//******************************************************************************
//#ifdef __GNUG__
//#pragma interface
//#endif

#ifndef ROOT_TPythia6Calls
#include "TPythia6Calls.h"
#endif

#ifndef ROOT_TGenerator
#include "TGenerator.h"
#endif

#ifndef ROOT_TObjArray
#include "TObjArray.h"
#endif

class TPythia6 : public TGenerator {
protected:
  static  TPythia6* fgInstance;
				// PYTHIA6 common-blocks
  Pyjets_t*  fPyjets;
  Pydat1_t*  fPydat1;
  Pydat2_t*  fPydat2;
  Pydat3_t*  fPydat3;
  Pydat4_t*  fPydat4;
  Pydatr_t*  fPydatr;
  Pysubs_t*  fPysubs;
  Pypars_t*  fPypars;
  Pyint1_t*  fPyint1;
  Pyint2_t*  fPyint2;
  Pyint3_t*  fPyint3;
  Pyint4_t*  fPyint4;
  Pyint5_t*  fPyint5;
  Pyint6_t*  fPyint6;
  Pyint7_t*  fPyint7;
  Pyint8_t*  fPyint8;
  Pyint9_t*  fPyint9;
  Pyuppr_t*  fPyuppr;
  Pymssm_t*  fPymssm;
  Pyssmt_t*  fPyssmt;
  Pyints_t*  fPyints;
  Pybins_t*  fPybins;
				// ****** cleanup stuff (thanks Jim K.)
  class  Cleaner {
  public:
    Cleaner();
    ~Cleaner();
  };
  friend class Cleaner;
//------------------------------------------------------------------------------
//  functions:
//------------------------------------------------------------------------------
public:
				// ****** constructors and destructor
  TPythia6();
  virtual ~TPythia6();

  static TPythia6* Instance();
				// ****** accessors
				// FORTRAN indexing in accessing the arrays,
				// indices start from 1 !!!!!

				// ****** access to PYTHIA6 common-blocks

				// ****** /PYJETS/

  Pyjets_t*   GetPyjets        ()           { return fPyjets; }
  int         GetN             ()           { return fPyjets->N; }
  int         GetNPAD          ()           { return fPyjets->NPAD; }
  int         GetK(int ip, int i)           { return fPyjets->K[i-1][ip-1]; }
  double      GetP(int ip, int i)           { return fPyjets->P[i-1][ip-1]; }
  double      GetV(int ip, int i)           { return fPyjets->V[i-1][ip-1]; }

  void        SetN     (int n)              { fPyjets->N = n;    }
  void        SetNPAD  (int n)              { fPyjets->NPAD = n;    }
  void        SetK(int ip, int i, int k)    { fPyjets->K[i-1][ip-1] = k; }
  void        SetP(int ip, int i, double p) { fPyjets->P[i-1][ip-1] = p;    }
  void        SetV(int ip, int i, double v) { fPyjets->V[i-1][ip-1] = v;    }

				// ****** /PYDAT1/

  Pydat1_t*   GetPydat1   () { return fPydat1; }
  int         GetMSTU(int i) { return fPydat1->MSTU[i-1]; }
  double      GetPARU(int i) { return fPydat1->PARU[i-1]; }
  int         GetMSTJ(int i) { return fPydat1->MSTJ[i-1]; }
  double      GetPARJ(int i) { return fPydat1->PARJ[i-1]; }

  void        SetMSTU(int i, int m   ) { fPydat1->MSTU[i-1] = m; }
  void        SetPARU(int i, double p) { fPydat1->PARU[i-1] = p; }
  void        SetMSTJ(int i, int m   ) { fPydat1->MSTJ[i-1] = m; }
  void        SetPARJ(int i, double p) { fPydat1->PARJ[i-1] = p; }

				// ****** /PYDAT2/

  Pydat2_t*   GetPydat2           () { return fPydat2; }
  int         GetKCHG(int ip, int i) { return fPydat2->KCHG[i-1][ip-1]; }
  double      GetPMAS(int ip, int i) { return fPydat2->PMAS[i-1][ip-1]; }
  double      GetPARF        (int i) { return fPydat2->PARF[i-1]; }
  double      GetVCKM(int i,  int j) { return fPydat2->VCKM[j-1][i-1]; }

  void        SetKCHG(int ip, int i, int k   ) { fPydat2->KCHG[i-1][ip-1] = k; }
  void        SetPMAS(int ip, int i, double m) { fPydat2->PMAS[i-1][ip-1] = m; }
  void        SetPARF        (int i, double p) { fPydat2->PARF[i-1]       = p; }
  void        SetVCKM (int i, int j, double v) { fPydat2->VCKM[j-1][i-1]  = v; }

				// ****** /PYDAT3/

  Pydat3_t*   GetPydat3() { return fPydat3; }
  int         GetMDCY(int i, int j) { return fPydat3->MDCY[j-1][i-1]; }
  int         GetMDME(int i, int j) { return fPydat3->MDME[j-1][i-1]; }
  double      GetBRAT       (int i) { return fPydat3->BRAT[i-1]; }
  int         GetKFDP(int i, int j) { return fPydat3->KFDP[j-1][i-1]; }

  void        SetMDCY(int i, int j, int m) { fPydat3->MDCY[j-1][i-1] = m; }
  void        SetMDME(int i, int j, int m) { fPydat3->MDME[j-1][i-1] = m; }
  void        SetBRAT(int i, double b)     { fPydat3->BRAT[i-1]      = b; }
  void        SetKFDP(int i, int j, int k) { fPydat3->KFDP[j-1][i-1] = k; }

				// ****** /PYDAT4/

  Pydat4_t*   GetPydat4() { return fPydat4; }

				// ****** /PYDATR/ - random number generator info

  Pydatr_t*   GetPydatr   () { return fPydatr; }
  int         GetMRPY(int i) { return fPydatr->MRPY[i-1]; }
  double      GetRRPY(int i) { return fPydatr->RRPY[i-1]; }

  void        SetMRPY(int i, int m)    { fPydatr->MRPY[i-1] = m; }
  void        SetRRPY(int i, double r) { fPydatr->RRPY[i-1] = r; }

				// ****** /PYSABS/

  Pysubs_t*   GetPysubs     () { return fPysubs; }
  int         GetMSEL       () { return fPysubs->MSEL; }
  int         GetMSELPD     () { return fPysubs->MSELPD; }
  int         GetMSUB  (int i) { return fPysubs->MSUB[i-1]; }
  double      GetCKIN  (int i) { return fPysubs->CKIN[i-1]; }

  void        SetMSEL   (int m)           { fPysubs->MSEL      = m; }
  void        SetMSELPD (int m)           { fPysubs->MSELPD    = m; }
  void        SetMSUB   (int i, int m)    { fPysubs->MSUB[i-1] = m; }
  void        SetCKIN   (int i, double c) { fPysubs->CKIN[i-1] = c; }

				// ****** /PYPARS/

  Pypars_t*   GetPypars() { return fPypars; }
  int         GetMSTP(int i) { return fPypars->MSTP[i-1]; }
  double      GetPARP(int i) { return fPypars->PARP[i-1]; }
  int         GetMSTI(int i) { return fPypars->MSTI[i-1]; }
  double      GetPARI(int i) { return fPypars->PARI[i-1]; }

  void        SetMSTP   (int i, int    m) { fPypars->MSTP[i-1] = m; }
  void        SetPARP   (int i, double p) { fPypars->PARP[i-1] = p; }
  void        SetMSTI   (int i, int    m) { fPypars->MSTI[i-1] = m; }
  void        SetPARI   (int i, double p) { fPypars->PARI[i-1] = p; }

				// ****** /PYINT1/

  Pyint1_t*   GetPyint1() { return fPyint1; }
  int         GetMINT(int i) { return fPyint1->MINT[i-1]; }
  double      GetVINT(int i) { return fPyint1->VINT[i-1]; }
<commit_msg>Add functions GetKFIN and SetKFIN. Fix some typos.<commit_after>// @(#)root/pythia6:$Name:  $:$Id: TPythia6.h,v 1.1.1.1 2000/05/16 17:00:48 rdm Exp $
// Author: <NAME>   19/10/99

/*************************************************************************
 * Copyright (C) 1995-2000, <NAME> and <NAME>.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/
#ifndef PYTHIA_TPythia6
#define PYTHIA_TPythia6
////////////////////////////////////////////////////////////////////////////////
//                                                                            //
// TPythia6                                                                   //
//                                                                            //
// TPythia is an interface class to F77 version of Pythia 6.1                 //
// CERNLIB event generators, written by T.Sjostrand.                          //
// For the details about these generators look at Pythia/Jetset manual:       //
//                                                                            //
//******************************************************************************
//**                                                                          **
//**                                                                          **
//**  PPP  Y   Y TTTTT H   H III   A        JJJJ EEEE TTTTT  SSS  EEEE TTTTT  **
//**  P  P  Y Y    T   H   H  I   A A          J E      T   S     E      T    **
//**  PPP    Y     T   HHHHH  I  AAAAA         J EEE    T    SSS  EEE    T    **
//**  P      Y     T   H   H  I  A   A      J  J E      T       S E      T    **
//**  P      Y     T   H   H III A   A       JJ  EEEE   T    SSS  EEEE   T    **
//**                                                                          **
//**                                                                          **
//**              *......*                  Welcome to the Lund Monte Carlo!  **
//**         *:::!!:::::::::::*                                               **
//**      *::::::!!::::::::::::::*            This is PYTHIA version 5.720    **
//**    *::::::::!!::::::::::::::::*        Last date of change: 29 Nov 1995  **
//**   *:::::::::!!:::::::::::::::::*                                         **
//**   *:::::::::!!:::::::::::::::::*         This is JETSET version 7.408    **
//**    *::::::::!!::::::::::::::::*!       Last date of change: 23 Aug 1995  **
//**      *::::::!!::::::::::::::* !!                                         **
//**      !! *:::!!:::::::::::*    !!                 Main author:            **
//**      !!     !* -><- *         !!              <NAME>         **
//**      !!     !!                !!        Dept. of theoretical physics 2   **
//**      !!     !!                !!              University of Lund         **
//**      !!                       !!                Solvegatan 14A           **
//**      !!        ep             !!             S-223 62 Lund, Sweden       **
//**      !!                       !!          phone: +46 - 46 - 222 48 16    **
//**      !!                 pp    !!          E-mail: <EMAIL>    **
//**      !!   e+e-                !!                                         **
//**      !!                       !!         Copyright <NAME>    **
//**      !!                                     and CERN, Geneva 1993        **
//**                                                                          **
//**                                                                          **
//** The latest program versions and documentation is found on WWW address    **
//** http://thep.lu.se/tf2/staff/torbjorn/Welcome.html                        **
//**                                                                          **
//** When you cite these programs, priority should always be given to the     **
//** latest published description. Currently this is                          **
//** <NAME>, Computer Physics Commun. 82 (1994) 74.                     **
//** The most recent long description (unpublished) is                        **
//** T. Sjostrand, LU TP 95-20 and CERN-TH.7112/93 (revised August 1995).     **
//** Also remember that the programs, to a large extent, represent original   **
//** physics research. Other publications of special relevance to your        **
//** studies may therefore deserve separate mention.                          **
//**                                                                          **
//**                                                                          **
//******************************************************************************
//#ifdef __GNUG__
//#pragma interface
//#endif

#ifndef ROOT_TPythia6Calls
#include "TPythia6Calls.h"
#endif

#ifndef ROOT_TGenerator
#include "TGenerator.h"
#endif

#ifndef ROOT_TObjArray
#include "TObjArray.h"
#endif

class TPythia6 : public TGenerator {
protected:
  static  TPythia6* fgInstance;
				// PYTHIA6 common-blocks
  Pyjets_t*  fPyjets;
  Pydat1_t*  fPydat1;
  Pydat2_t*  fPydat2;
  Pydat3_t*  fPydat3;
  Pydat4_t*  fPydat4;
  Pydatr_t*  fPydatr;
  Pysubs_t*  fPysubs;
  Pypars_t*  fPypars;
  Pyint1_t*  fPyint1;
  Pyint2_t*  fPyint2;
  Pyint3_t*  fPyint3;
  Pyint4_t*  fPyint4;
  Pyint5_t*  fPyint5;
  Pyint6_t*  fPyint6;
  Pyint7_t*  fPyint7;
  Pyint8_t*  fPyint8;
  Pyint9_t*  fPyint9;
  Pyuppr_t*  fPyuppr;
  Pymssm_t*  fPymssm;
  Pyssmt_t*  fPyssmt;
  Pyints_t*  fPyints;
  Pybins_t*  fPybins;
				// ****** cleanup stuff (thanks Jim K.)
  class  Cleaner {
  public:
    Cleaner();
    ~Cleaner();
  };
  friend class Cleaner;
//------------------------------------------------------------------------------
//  functions:
//------------------------------------------------------------------------------
public:
				// ****** constructors and destructor
  TPythia6();
  virtual ~TPythia6();

  static TPythia6* Instance();
				// ****** accessors
				// FORTRAN indexing in accessing the arrays,
				// indices start from 1 !!!!!

				// ****** access to PYTHIA6 common-blocks

				// ****** /PYJETS/

  Pyjets_t*   GetPyjets        ()           { return fPyjets; }
  int         GetN             ()           { return fPyjets->N; }
  int         GetNPAD          ()           { return fPyjets->NPAD; }
  int         GetK(int ip, int i)           { return fPyjets->K[i-1][ip-1]; }
  double      GetP(int ip, int i)           { return fPyjets->P[i-1][ip-1]; }
  double      GetV(int ip, int i)           { return fPyjets->V[i-1][ip-1]; }

  void        SetN     (int n)              { fPyjets->N = n;    }
  void        SetNPAD  (int n)              { fPyjets->NPAD = n;    }
  void        SetK(int ip, int i, int k)    { fPyjets->K[i-1][ip-1] = k; }
  void        SetP(int ip, int i, double p) { fPyjets->P[i-1][ip-1] = p;    }
  void        SetV(int ip, int i, double v) { fPyjets->V[i-1][ip-1] = v;    }

				// ****** /PYDAT1/

  Pydat1_t*   GetPydat1   () { return fPydat1; }
  int         GetMSTU(int i) { return fPydat1->MSTU[i-1]; }
  double      GetPARU(int i) { return fPydat1->PARU[i-1]; }
  int         GetMSTJ(int i) { return fPydat1->MSTJ[i-1]; }
  double      GetPARJ(int i) { return fPydat1->PARJ[i-1]; }

  void        SetMSTU(int i, int m   ) { fPydat1->MSTU[i-1] = m; }
  void        SetPARU(int i, double p) { fPydat1->PARU[i-1] = p; }
  void        SetMSTJ(int i, int m   ) { fPydat1->MSTJ[i-1] = m; }
  void        SetPARJ(int i, double p) { fPydat1->PARJ[i-1] = p; }

				// ****** /PYDAT2/

  Pydat2_t*   GetPydat2           () { return fPydat2; }
  int         GetKCHG(int ip, int i) { return fPydat2->KCHG[i-1][ip-1]; }
  double      GetPMAS(int ip, int i) { return fPydat2->PMAS[i-1][ip-1]; }
  double      GetPARF        (int i) { return fPydat2->PARF[i-1]; }
  double      GetVCKM(int i,  int j) { return fPydat2->VCKM[j-1][i-1]; }

  void        SetKCHG(int ip, int i, int k   ) { fPydat2->KCHG[i-1][ip-1] = k; }
  void        SetPMAS(int ip, int i, double m) { fPydat2->PMAS[i-1][ip-1] = m; }
  void        SetPARF        (int i, double p) { fPydat2->PARF[i-1]       = p; }
  void        SetVCKM (int i, int j, double v) { fPydat2->VCKM[j-1][i-1]  = v; }

				// ****** /PYDAT3/

  Pydat3_t*   GetPydat3() { return fPydat3; }
  int         GetMDCY(int i, int j) { return fPydat3->MDCY[j-1][i-1]; }
  int         GetMDME(int i, int j) { return fPydat3->MDME[j-1][i-1]; }
  double      GetBRAT       (int i) { return fPydat3->BRAT[i-1]; }
  int         GetKFDP(int i, int j) { return fPydat3->KFDP[j-1][i-1]; }

  void        SetMDCY(int i, int j, int m) { fPydat3->MDCY[j-1][i-1] = m; }
  void        SetMDME(int i, int j, int m) { fPydat3->MDME[j-1][i-1] = m; }
  void        SetBRAT(int i, double b)     { fPydat3->BRAT[i-1]      = b; }
  void        SetKFDP(int i, int j, int k) { fPydat3->KFDP[j-1][i-1] = k; }

				// ****** /PYDAT4/

  Pydat4_t*   GetPydat4() { return fPydat4; }

				// ****** /PYDATR/ - random number generator info

  Pydatr_t*   GetPydatr   () { return fPydatr; }
  int         GetMRPY(int i) { return fPydatr->MRPY[i-1]; }
  double      GetRRPY(int i) { return fPydatr->RRPY[i-1]; }

  void        SetMRPY(int i, int m)    { fPydatr->MRPY[i-1] = m; }
  void        SetRRPY(int i, double r) { fPydatr->RRPY[i-1] = r; }

				// ****** /PYSUBS/

  Pysubs_t*   GetPysubs     () { return fPysubs; }
  int         GetMSEL       () { return fPysubs->MSEL; }
  int         GetMSELPD     () { return fPysubs->MSELPD; }
  int         GetMSUB  (int i) { return fPysubs->MSUB[i-1]; }
  double      GetCKIN  (int i) { return fPysubs->CKIN[i-1]; }
  Int_t       GetKFIN(int i, int j)  {return fPysubs->KFIN[j-1][i-1]; } 

  void        SetMSEL   (int m)           { fPysubs->MSEL      = m; }
  void        SetMSELPD (int m)           { fPysubs->MSELPD    = m; }
  void        SetMSUB   (int i, int m)    { fPysubs->MSUB[i-1] = m; }
  void        SetCKIN   (int i, double c) { fPysubs->CKIN[i-1] = c; }
  void        SetKFIN(int i, int j, Int_t kfin=1) { fPysubs->KFIN[j-1][i-1] = kfin; }

				// ****** /PYPARS/

  Pypars_t*   GetPypars() { return fPypars; }
  int         GetMSTP(int i) { return fPypars->MSTP[i-1]; }
  double      GetPARP(int i) { return fPypars->PARP[i-1]; }
  int         GetMSTI(int i) { return fPypars->MSTI[i-1]; }
  double      GetPARI(int i) { return fPypars->PARI[i-1]; }

  void        SetMSTP   (int i, int    m) { fPypars->MSTP[i-1] = m; }
  void        SetPARP   (int i, double p) { fPypars->PARP[i-1] = p; }
  void        SetMSTI   (int i, int    m) { fPypars->MSTI[i-1] = m; }
  void        SetPARI   (int i, double p) { fPypars->PARI[i-1] = p; }

				// ****** /PYINT1/

  Pyint1_t*   GetPyint1() { return fPyint1; }
  int         GetMINT(int i) { return fPyint1->MINT[i-1]; }
  double      GetVINT(int i) { return fPyint1->VINT[i-1]; }

{'fraction_non_alphanumeric': 0.1992635024549918, 'fraction_numerical': 0.02254955446444808, 'mean_word_length': 1.2187815210812991, 'pattern_counts': {'":': 0, '<': 20, '<?xml version=': 0, '>': 134, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 1, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 136, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2845620', 'n_tokens_mistral': 7768, 'n_tokens_neox': 7146, 'n_words': 1649}