75 # define pydiff pydiff_ 76 # define pyevnt pyevnt_ 77 # define pyinit pyinit_ 78 # define pychge pychge_ 79 # define pycomp pycomp_ 80 # define pyedit pyedit_ 81 # define pyexec pyexec_ 82 # define pyhepc pyhepc_ 83 # define pygive pygive_ 84 # define pylist pylist_ 85 # define pymass pymass_ 86 # define pyname pyname_ 88 # define pyrget pyrget_ 89 # define pyrset pyrset_ 90 # define pystat pystat_ 91 # define pytest pytest_ 92 # define pytune pytune_ 93 # define pyupda pyupda_ 94 # define py1ent py1ent_ 95 # ifdef PYTHIA6_DOUBLE_UNDERSCORE 96 # define tpythia6_open_fortran_file tpythia6_open_fortran_file__ 97 # define tpythia6_close_fortran_file tpythia6_close_fortran_file__ 98 # define pythia6_common_address pythia6_common_address__ 99 # elif PYTHIA6_SINGLE_UNDERSCORE 100 # define tpythia6_open_fortran_file tpythia6_open_fortran_file_ 101 # define tpythia6_close_fortran_file tpythia6_close_fortran_file_ 102 # define pythia6_common_address pythia6_common_address 104 # define pythia6_common_address pythia6_common_address 105 # define tpythia6_open_fortran_file tpythia6_open_fortran_file_ 106 # define tpythia6_close_fortran_file tpythia6_close_fortran_file_ 108 # define type_of_call 110 # define pydiff PYDIFF 111 # define pyevnt PYEVNT 112 # define pyinit PYINIT 113 # define pychge PYCHGE 114 # define pycomp PYCOMP 115 # define pyedit PYEDIT 116 # define pyexec PYEXEC 117 # define pygive PYGIVE 118 # define pyhepc PYHEPC 119 # define pylist PYLIST 120 # define pymass PYMASS 121 # define pyname PYNAME 123 # define pyrget PYRGET 124 # define pyrset PYRSET 125 # define pystat PYSTAT 126 # define pytest PYTEST 127 # define pytune PYTUNE 128 # define pyupda PYUPDA 129 # define py1ent PY1ENT 130 # define tpythia6_open_fortran_file TPYTHIA6_OPEN_FORTRAN_FILE 131 # define tpythia6_close_fortran_file TPYTHIA6_CLOSE_FORTRAN_FILE 132 # define type_of_call _stdcall 163 char *beam,
Long_t l_beam,
164 char *target,
Long_t l_target,
190 if (TPythia6::fgInstance) {
192 TPythia6::fgInstance = 0;
208 Fatal(
"TPythia6",
"There's already an instance of TPythia6");
330 for (
Int_t i = 0; i<numpart; i++) {
364 if (particles == 0)
return 0;
366 clonesParticles.
Clear();
369 if (!strcmp(option,
"") || !strcmp(option,
"Final")) {
370 for (
Int_t i = 0; i<numpart; i++) {
396 }
else if (!strcmp(option,
"All")) {
397 for (
Int_t i = 0; i<numpart; i++) {
439 strlcpy(cframe,frame,4);
441 strlcpy(cbeam,beam,10);
443 strlcpy(ctarget,target,10);
448 if ( (!strncmp(frame,
"CMS" ,3)) &&
449 (!strncmp(frame,
"FIXT" ,4)) &&
450 (!strncmp(frame,
"USER" ,4)) &&
451 (!strncmp(frame,
"FOUR" ,4)) &&
452 (!strncmp(frame,
"FIVE" ,4)) &&
453 (!strncmp(frame,
"3MOM" ,4)) &&
454 (!strncmp(frame,
"4MOM" ,4)) &&
455 (!strncmp(frame,
"5MOM" ,4)) &&
456 (!strncmp(frame,
"NONE" ,4)) ) {
457 printf(
"WARNING! In TPythia6:Initialize():\n");
458 printf(
" specified frame=%s is neither of CMS,FIXT,USER,FOUR,FIVE,NONE,3MOM,4MOM,5MOM\n",frame);
459 printf(
" resetting to \"CMS\" .");
463 if ( (!strncmp(beam,
"e" ,1)) &&
464 (!strncmp(beam,
"nu_e" ,4)) &&
465 (!strncmp(beam,
"mu" ,2)) &&
466 (!strncmp(beam,
"nu_mu" ,5)) &&
467 (!strncmp(beam,
"tau" ,3)) &&
468 (!strncmp(beam,
"nu_tau" ,6)) &&
469 (!strncmp(beam,
"gamma" ,5)) &&
470 (!strncmp(beam,
"pi" ,2)) &&
471 (!strncmp(beam,
"n" ,1)) &&
472 (!strncmp(beam,
"p" ,1)) &&
473 (!strncmp(beam,
"Lambda" ,6)) &&
474 (!strncmp(beam,
"Sigma" ,5)) &&
475 (!strncmp(beam,
"Xi" ,2)) &&
476 (!strncmp(beam,
"Omega" ,5)) &&
477 (!strncmp(beam,
"pomeron" ,7)) &&
478 (!strncmp(beam,
"reggeon" ,7)) ) {
479 printf(
"WARNING! In TPythia6:Initialize():\n");
480 printf(
" specified beam=%s is unrecognized .\n",beam);
481 printf(
" resetting to \"p+\" .");
485 if ( (!strncmp(target,
"e" ,1)) &&
486 (!strncmp(target,
"nu_e" ,4)) &&
487 (!strncmp(target,
"mu" ,2)) &&
488 (!strncmp(target,
"nu_mu" ,5)) &&
489 (!strncmp(target,
"tau" ,3)) &&
490 (!strncmp(target,
"nu_tau" ,6)) &&
491 (!strncmp(target,
"gamma" ,5)) &&
492 (!strncmp(target,
"pi" ,2)) &&
493 (!strncmp(target,
"n" ,1)) &&
494 (!strncmp(target,
"p" ,1)) &&
495 (!strncmp(target,
"Lambda" ,6)) &&
496 (!strncmp(target,
"Sigma" ,5)) &&
497 (!strncmp(target,
"Xi" ,2)) &&
498 (!strncmp(target,
"Omega" ,5)) &&
499 (!strncmp(target,
"pomeron" ,7)) &&
500 (!strncmp(target,
"reggeon" ,7)) ){
501 printf(
"WARNING! In TPythia6:Initialize():\n");
502 printf(
" specified target=%s is unrecognized.\n",target);
503 printf(
" resetting to \"p+\" .");
507 Pyinit(cframe, cbeam ,ctarget, win);
510 snprintf(atitle,32,
" %s-%s at %g GeV",cbeam,ctarget,win);
534 Long_t s1 = strlen(frame);
536 Long_t s3 = strlen(target);
538 pyinit(frame,beam,target,&lwin,s1,s2,s3);
540 pyinit(frame, s1, beam , s2, target, s3, &lwin);
573 Long_t lparam = strlen(param);
664 py1ent(ip, kf, pe, theta, phi);
Pythia6 common block Pyints.
void Pygive(const char *param)
void SetCKIN(int i, double c)
#define pythia6_common_address
Pythia6 common block Pyint9.
Pythia6 common block Pyint6.
void Pyrset(int lun, int move)
void SetMSUB(int i, int m)
Pythia6 common block Pyint3.
virtual void Clear(Option_t *option="")
Remove all objects from the array.
Pythia6 common block Pyint8.
virtual void Delete(Option_t *option="")
Remove all objects from the array AND delete all heap based objects.
The interface to various event generators.
Pythia6 common block Pyint5.
Description of the dynamic properties of a particle.
Pythia6 common block Pypars.
Pythia6 common block Pydat3.
void SetupTest()
Exemplary setup of Pythia parameters: Switches on processes 102,123,124 (Higgs generation) and switch...
void GenerateEvent()
generate event and copy the information from /HEPEVT/ to fPrimaries
#define tpythia6_close_fortran_file
TPythia is an interface class to F77 version of Pythia 6.2.
This class serves as a data storage for description of one particle.
friend class TClonesArray
void Pyinit(char *frame, char *beam, char *target, double wint)
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...
void SetMSTP(int i, int m)
void CloseFortranFile(int lun)
interface with fortran i/o
static TPythia6 * fgInstance
void SetPMAS(int ip, int i, double m)
virtual void Clear(Option_t *option="")
Clear the clones array.
Pythia6 common block Pymssm.
Utility class to manage the TPythia6 instance.
Pythia6 common block Pybins.
void OpenFortranFile(int lun, char *name)
interface with fortran i/o
Pythia6 common block Pyssmt.
virtual ~TPythia6()
Destroys the object, deletes and disposes all TMCParticles currently on list.
Pythia6 common block Pyjets.
~TPythia6Cleaner()
delete the TPythia6 insntance
TObjArray * fParticles
display neutrons if true
static RooMathCoreReg dummy
Pythia6 common block Pyint2.
Pythia6 common block Pysubs.
Pythia6 common block Pydatr.
TPythia6()
TPythia6 constructor: creates a TClonesArray in which it will store all particles.
Pythia6 common block Pyint4.
An array of clone (identical) objects.
void Pyname(int kf, char *name)
Pythia6 common block Pyint1.
static TPythia6 * Instance()
model of automatic memory cleanup suggested by Jim Kowalkovski: destructor for local static variable ...
Pythia6 common block Pydat2.
virtual void Fatal(const char *method, const char *msgfmt,...) const
Issue fatal error message.
Int_t ImportParticles(TClonesArray *particles, Option_t *option="")
Default primary creation method.
Pythia6 common block Pydat4.
virtual void SetTitle(const char *title="")
Set the title of the TNamed.
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.
Pythia6 common block Pydat1.
#define tpythia6_open_fortran_file
void Pyrget(int lun, int move)
Pythia6 common block Pyint7.
void Pyupda(int mupda, int lun)