77# define pydiff pydiff_ 
   78# define pyevnt pyevnt_ 
   79# define pyinit pyinit_ 
   80# define pychge pychge_ 
   81# define pycomp pycomp_ 
   82# define pyedit pyedit_ 
   83# define pyexec pyexec_ 
   84# define pyhepc pyhepc_ 
   85# define pygive pygive_ 
   86# define pylist pylist_ 
   87# define pymass pymass_ 
   88# define pyname pyname_ 
   90# define pyrget pyrget_ 
   91# define pyrset pyrset_ 
   92# define pystat pystat_ 
   93# define pytest pytest_ 
   94# define pytune pytune_ 
   95# define pyupda pyupda_ 
   96# define py1ent py1ent_ 
   97# ifdef PYTHIA6_DOUBLE_UNDERSCORE 
   98#  define tpythia6_open_fortran_file tpythia6_open_fortran_file__ 
   99#  define tpythia6_close_fortran_file tpythia6_close_fortran_file__ 
  100#  define pythia6_common_address pythia6_common_address__ 
  101# elif PYTHIA6_SINGLE_UNDERSCORE 
  102#  define tpythia6_open_fortran_file tpythia6_open_fortran_file_ 
  103#  define tpythia6_close_fortran_file tpythia6_close_fortran_file_ 
  104#  define pythia6_common_address pythia6_common_address 
  106#  define pythia6_common_address pythia6_common_address 
  107#  define tpythia6_open_fortran_file tpythia6_open_fortran_file_ 
  108#  define tpythia6_close_fortran_file tpythia6_close_fortran_file_ 
  112# define pydiff PYDIFF 
  113# define pyevnt PYEVNT 
  114# define pyinit PYINIT 
  115# define pychge PYCHGE 
  116# define pycomp PYCOMP 
  117# define pyedit PYEDIT 
  118# define pyexec PYEXEC 
  119# define pygive PYGIVE 
  120# define pyhepc PYHEPC 
  121# define pylist PYLIST 
  122# define pymass PYMASS 
  123# define pyname PYNAME 
  125# define pyrget PYRGET 
  126# define pyrset PYRSET 
  127# define pystat PYSTAT 
  128# define pytest PYTEST 
  129# define pytune PYTUNE 
  130# define pyupda PYUPDA 
  131# define py1ent PY1ENT 
  132# define tpythia6_open_fortran_file TPYTHIA6_OPEN_FORTRAN_FILE 
  133# define tpythia6_close_fortran_file TPYTHIA6_CLOSE_FORTRAN_FILE 
  134# define type_of_call _stdcall 
  165                                    char *beam,   
Long_t l_beam,
 
  210      Fatal(
"TPythia6", 
"There's already an instance of TPythia6");
 
  332   for (
Int_t i = 0; i<numpart; i++) {
 
  366   if (particles == 0) 
return 0;
 
  368   clonesParticles.
Clear();
 
  372      for (
Int_t i = 0; i<numpart; i++) {
 
  398   } 
else if (!strcmp(
option,
"All")) {
 
  399      for (
Int_t i = 0; i<numpart; i++) {
 
  441   strlcpy(cframe,frame,4);
 
  443   strlcpy(cbeam,beam,10);
 
  445   strlcpy(ctarget,
target,10);
 
  450   if ( (!strncmp(frame, 
"CMS"  ,3)) &&
 
  451        (!strncmp(frame, 
"FIXT" ,4)) &&
 
  452        (!strncmp(frame, 
"USER" ,4)) &&
 
  453        (!strncmp(frame, 
"FOUR" ,4)) &&
 
  454        (!strncmp(frame, 
"FIVE" ,4)) &&
 
  455        (!strncmp(frame, 
"3MOM" ,4)) &&
 
  456        (!strncmp(frame, 
"4MOM" ,4)) &&
 
  457        (!strncmp(frame, 
"5MOM" ,4)) &&
 
  458        (!strncmp(frame, 
"NONE" ,4)) ) {
 
  459      printf(
"WARNING! In TPythia6:Initialize():\n");
 
  460      printf(
" specified frame=%s is neither of CMS,FIXT,USER,FOUR,FIVE,NONE,3MOM,4MOM,5MOM\n",frame);
 
  461      printf(
" resetting to \"CMS\" .");
 
  465   if ( (!strncmp(beam, 
"e"       ,1)) &&
 
  466        (!strncmp(beam, 
"nu_e"    ,4)) &&
 
  467        (!strncmp(beam, 
"mu"      ,2)) &&
 
  468        (!strncmp(beam, 
"nu_mu"   ,5)) &&
 
  469        (!strncmp(beam, 
"tau"     ,3)) &&
 
  470        (!strncmp(beam, 
"nu_tau"  ,6)) &&
 
  471        (!strncmp(beam, 
"gamma"   ,5)) &&
 
  472        (!strncmp(beam, 
"pi"      ,2)) &&
 
  473        (!strncmp(beam, 
"n"       ,1)) &&
 
  474        (!strncmp(beam, 
"p"       ,1)) &&
 
  475        (!strncmp(beam, 
"Lambda"  ,6)) &&
 
  476        (!strncmp(beam, 
"Sigma"   ,5)) &&
 
  477        (!strncmp(beam, 
"Xi"      ,2)) &&
 
  478        (!strncmp(beam, 
"Omega"   ,5)) &&
 
  479        (!strncmp(beam, 
"pomeron" ,7)) &&
 
  480        (!strncmp(beam, 
"reggeon" ,7)) ) {
 
  481      printf(
"WARNING! In TPythia6:Initialize():\n");
 
  482      printf(
" specified beam=%s is unrecognized .\n",beam);
 
  483      printf(
" resetting to \"p+\" .");
 
  487   if ( (!strncmp(
target, 
"e"       ,1)) &&
 
  488        (!strncmp(
target, 
"nu_e"    ,4)) &&
 
  489        (!strncmp(
target, 
"mu"      ,2)) &&
 
  490        (!strncmp(
target, 
"nu_mu"   ,5)) &&
 
  491        (!strncmp(
target, 
"tau"     ,3)) &&
 
  492        (!strncmp(
target, 
"nu_tau"  ,6)) &&
 
  493        (!strncmp(
target, 
"gamma"   ,5)) &&
 
  494        (!strncmp(
target, 
"pi"      ,2)) &&
 
  495        (!strncmp(
target, 
"n"       ,1)) &&
 
  496        (!strncmp(
target, 
"p"       ,1)) &&
 
  497        (!strncmp(
target, 
"Lambda"  ,6)) &&
 
  498        (!strncmp(
target, 
"Sigma"   ,5)) &&
 
  499        (!strncmp(
target, 
"Xi"      ,2)) &&
 
  500        (!strncmp(
target, 
"Omega"   ,5)) &&
 
  501        (!strncmp(
target, 
"pomeron" ,7)) &&
 
  502        (!strncmp(
target, 
"reggeon" ,7)) ){
 
  503      printf(
"WARNING! In TPythia6:Initialize():\n");
 
  504      printf(
" specified target=%s is unrecognized.\n",
target);
 
  505      printf(
" resetting to \"p+\" .");
 
  512   snprintf(atitle, 
sizeof(atitle),
" %s-%s at %g GeV", cbeam, ctarget, 
win);
 
  575   Long_t lparam = strlen(param);
 
  666   py1ent(ip, kf, pe, theta, phi);
 
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t target
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t win
#define tpythia6_close_fortran_file
#define pythia6_common_address
#define tpythia6_open_fortran_file
An array of clone (identical) objects.
void Clear(Option_t *option="") override
Clear the clones array.
The interface to various event generators.
TObjArray * fParticles
display neutrons if true
This class serves as a data storage for description of one particle.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
void Clear(Option_t *option="") override
Remove all objects from the array.
void Delete(Option_t *option="") override
Remove all objects from the array AND delete all heap based objects.
friend class TClonesArray
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
Description of the dynamic properties of a particle.
Utility class to manage the TPythia6 instance.
~TPythia6Cleaner()
delete the TPythia6 insntance
TPythia is an interface class to F77 version of Pythia 6.2
void Pyname(int kf, char *name)
Int_t ImportParticles(TClonesArray *particles, Option_t *option="")
Default primary creation method.
static TPythia6 * Instance()
model of automatic memory cleanup suggested by Jim Kowalkovski: destructor for local static variable ...
void SetupTest()
Exemplary setup of Pythia parameters: Switches on processes 102,123,124 (Higgs generation) and switch...
virtual ~TPythia6()
Destroys the object, deletes and disposes all TMCParticles currently on list.
void Pyrset(int lun, int move)
void CloseFortranFile(int lun)
interface with fortran i/o
void Initialize(const char *frame, const char *beam, const char *target, float win)
Calls PyInit with the same parameters after performing some checking, sets correct title.
static TPythia6 * fgInstance
void OpenFortranFile(int lun, char *name)
interface with fortran i/o
void SetCKIN(int i, double c)
void Py1ent(Int_t line, Int_t kf, Double_t pe, Double_t theta, Double_t phi)
Add one entry to the event record, i.e.
void SetPMAS(int ip, int i, double m)
void GenerateEvent()
generate event and copy the information from /HEPEVT/ to fPrimaries
void Pyinit(char *frame, char *beam, char *target, double wint)
void Pyupda(int mupda, int lun)
void Pygive(const char *param)
void SetMSUB(int i, int m)
void SetMSTP(int i, int m)
TPythia6()
TPythia6 constructor: creates a TClonesArray in which it will store all particles.
void Pyrget(int lun, int move)
Pythia6 common block Pybins.
Pythia6 common block Pydat1.
Pythia6 common block Pydat2.
Pythia6 common block Pydat3.
Pythia6 common block Pydat4.
Pythia6 common block Pydatr.
Pythia6 common block Pyint1.
Pythia6 common block Pyint2.
Pythia6 common block Pyint3.
Pythia6 common block Pyint4.
Pythia6 common block Pyint5.
Pythia6 common block Pyint6.
Pythia6 common block Pyint7.
Pythia6 common block Pyint8.
Pythia6 common block Pyint9.
Pythia6 common block Pyints.
Pythia6 common block Pyjets.
Pythia6 common block Pymssm.
Pythia6 common block Pypars.
Pythia6 common block Pyssmt.
Pythia6 common block Pysubs.