#include "THerwig6.h"
+#include "HCommon.h"
#include "TClonesArray.h"
#include "TParticle.h"
#include "TObjArray.h"
+#include "Riostream.h"
ClassImp(THerwig6)
extern "C" {
- void* herwig6_common_block_address_(char*, int len);
void herwig6_open_fortran_file_ (int* lun, char* name, int);
void herwig6_close_fortran_file_(int* lun);
}
+THerwig6 *THerwig6::fgInstance = 0;
-THerwig6::THerwig6() : TGenerator("Herwig6","Herwig6"),
- fHepevt((Hepevt_t*) herwig6_common_block_address_((char*)"HEPEVT",6)),
- fHwbeam((Hwbeam_t*) herwig6_common_block_address_((char*)"HWBEAM",6)),
- fHwbmch((Hwbmch_t*) herwig6_common_block_address_((char*)"HWBMCH",6)),
- fHwproc((Hwproc_t*) herwig6_common_block_address_((char*)"HWPROC",6)),
- fHwpram((Hwpram_t*) herwig6_common_block_address_((char*)"HWPRAM",6)),
- fHwprch((Hwprch_t*) herwig6_common_block_address_((char*)"HWPRCH",6)),
- fHwpart((Hwpart_t*) herwig6_common_block_address_((char*)"HWPART",6)),
- fHwparp((Hwparp_t*) herwig6_common_block_address_((char*)"HWPARP",6)),
- fHwbosc((Hwbosc_t*) herwig6_common_block_address_((char*)"HWBOSC",6)),
- fHwparc((Hwparc_t*) herwig6_common_block_address_((char*)"HWPARC",6)),
- fHwbrch((Hwbrch_t*) herwig6_common_block_address_((char*)"HWBRCH",6)),
- fHwevnt((Hwevnt_t*) herwig6_common_block_address_((char*)"HWEVNT",6)),
- fHwhard((Hwhard_t*) herwig6_common_block_address_((char*)"HWHARD",6)),
- fHwprop((Hwprop_t*) herwig6_common_block_address_((char*)"HWPROP",6)),
- fHwunam((Hwunam_t*) herwig6_common_block_address_((char*)"HWUNAM",6)),
- fHwupdt((Hwupdt_t*) herwig6_common_block_address_((char*)"HWUPDT",6)),
- fHwuwts((Hwuwts_t*) herwig6_common_block_address_((char*)"HWUWTS",6)),
- fHwuclu((Hwuclu_t*) herwig6_common_block_address_((char*)"HWUCLU",6)),
- fHwdist((Hwdist_t*) herwig6_common_block_address_((char*)"HWDIST",6)),
- fHwqdks((Hwqdks_t*) herwig6_common_block_address_((char*)"HWQDKS",6)),
- fHwusud((Hwusud_t*) herwig6_common_block_address_((char*)"HWUSUD",6)),
- fHwsusy((Hwsusy_t*) herwig6_common_block_address_((char*)"HWSUSY",6)),
- fHwrpar((Hwrpar_t*) herwig6_common_block_address_((char*)"HWRPAR",6)),
- fHwminb((Hwminb_t*) herwig6_common_block_address_((char*)"HWMINB",6)),
- fHwclus((Hwclus_t*) herwig6_common_block_address_((char*)"HWCLUS",6)),
- fHwgrav((Hwgrav_t*) herwig6_common_block_address_((char*)"HWGRAV",6)),
- fHw6202((Hw6202_t*) herwig6_common_block_address_((char*)"HW6202",6)),
- fHw6203((Hw6203_t*) herwig6_common_block_address_((char*)"HW6203",6)),
- fHw6300((Hw6300_t*) herwig6_common_block_address_((char*)"HW6300",6)),
- fHwpmrs((Hwpmrs_t*) herwig6_common_block_address_((char*)"HWPMRS",6)),
- fHwcirc((Hwcirc_t*) herwig6_common_block_address_((char*)"HWCIRC",6)),
- fHwdspb((Hwdspb_t*) herwig6_common_block_address_((char*)"HWDSPB",6)),
- fHwdsp2((Hwdsp2_t*) herwig6_common_block_address_((char*)"HWDSP2",6)),
- fHwdsp3((Hwdsp3_t*) herwig6_common_block_address_((char*)"HWDSP3",6)),
- fHwdsp4((Hwdsp4_t*) herwig6_common_block_address_((char*)"HWDSP4",6)),
- fHwdspn((Hwdspn_t*) herwig6_common_block_address_((char*)"HWDSPN",6)),
- fHwspin((Hwspin_t*) herwig6_common_block_address_((char*)"HWSPIN",6)),
- fHwstau((Hwstau_t*) herwig6_common_block_address_((char*)"HWSTAU",6)),
- fHwgupr((Hwgupr_t*) herwig6_common_block_address_((char*)"HWGUPR",6)),
- fHw6500((Hw6500_t*) herwig6_common_block_address_((char*)"HW6500",6)),
- fHw6504((Hw6504_t*) herwig6_common_block_address_((char*)"HW6504",6)),
- fHw6506((Hw6506_t*) herwig6_common_block_address_((char*)"HW6506",6))
+THerwig6::THerwig6() : TGenerator("Herwig6","Herwig6")
{
// THerwig6 constructor: creates a TClonesArray in which it will store all
fParticles = new TClonesArray("TParticle",50);
// initialize common-blocks
+
+ if (fgInstance)
+ cout << "WARNING: creating second instance of THerwig6" << endl;
+ fgInstance = this;
}
-THerwig6::THerwig6(const THerwig6 & source): TGenerator(source),
- fHepevt((Hepevt_t*) herwig6_common_block_address_((char*)"HEPEVT",6)),
- fHwbeam((Hwbeam_t*) herwig6_common_block_address_((char*)"HWBEAM",6)),
- fHwbmch((Hwbmch_t*) herwig6_common_block_address_((char*)"HWBMCH",6)),
- fHwproc((Hwproc_t*) herwig6_common_block_address_((char*)"HWPROC",6)),
- fHwpram((Hwpram_t*) herwig6_common_block_address_((char*)"HWPRAM",6)),
- fHwprch((Hwprch_t*) herwig6_common_block_address_((char*)"HWPRCH",6)),
- fHwpart((Hwpart_t*) herwig6_common_block_address_((char*)"HWPART",6)),
- fHwparp((Hwparp_t*) herwig6_common_block_address_((char*)"HWPARP",6)),
- fHwbosc((Hwbosc_t*) herwig6_common_block_address_((char*)"HWBOSC",6)),
- fHwparc((Hwparc_t*) herwig6_common_block_address_((char*)"HWPARC",6)),
- fHwbrch((Hwbrch_t*) herwig6_common_block_address_((char*)"HWBRCH",6)),
- fHwevnt((Hwevnt_t*) herwig6_common_block_address_((char*)"HWEVNT",6)),
- fHwhard((Hwhard_t*) herwig6_common_block_address_((char*)"HWHARD",6)),
- fHwprop((Hwprop_t*) herwig6_common_block_address_((char*)"HWPROP",6)),
- fHwunam((Hwunam_t*) herwig6_common_block_address_((char*)"HWUNAM",6)),
- fHwupdt((Hwupdt_t*) herwig6_common_block_address_((char*)"HWUPDT",6)),
- fHwuwts((Hwuwts_t*) herwig6_common_block_address_((char*)"HWUWTS",6)),
- fHwuclu((Hwuclu_t*) herwig6_common_block_address_((char*)"HWUCLU",6)),
- fHwdist((Hwdist_t*) herwig6_common_block_address_((char*)"HWDIST",6)),
- fHwqdks((Hwqdks_t*) herwig6_common_block_address_((char*)"HWQDKS",6)),
- fHwusud((Hwusud_t*) herwig6_common_block_address_((char*)"HWUSUD",6)),
- fHwsusy((Hwsusy_t*) herwig6_common_block_address_((char*)"HWSUSY",6)),
- fHwrpar((Hwrpar_t*) herwig6_common_block_address_((char*)"HWRPAR",6)),
- fHwminb((Hwminb_t*) herwig6_common_block_address_((char*)"HWMINB",6)),
- fHwclus((Hwclus_t*) herwig6_common_block_address_((char*)"HWCLUS",6)),
- fHwgrav((Hwgrav_t*) herwig6_common_block_address_((char*)"HWGRAV",6)),
- fHw6202((Hw6202_t*) herwig6_common_block_address_((char*)"HW6202",6)),
- fHw6203((Hw6203_t*) herwig6_common_block_address_((char*)"HW6203",6)),
- fHw6300((Hw6300_t*) herwig6_common_block_address_((char*)"HW6300",6)),
- fHwpmrs((Hwpmrs_t*) herwig6_common_block_address_((char*)"HWPMRS",6)),
- fHwcirc((Hwcirc_t*) herwig6_common_block_address_((char*)"HWCIRC",6)),
- fHwdspb((Hwdspb_t*) herwig6_common_block_address_((char*)"HWDSPB",6)),
- fHwdsp2((Hwdsp2_t*) herwig6_common_block_address_((char*)"HWDSP2",6)),
- fHwdsp3((Hwdsp3_t*) herwig6_common_block_address_((char*)"HWDSP3",6)),
- fHwdsp4((Hwdsp4_t*) herwig6_common_block_address_((char*)"HWDSP4",6)),
- fHwdspn((Hwdspn_t*) herwig6_common_block_address_((char*)"HWDSPN",6)),
- fHwspin((Hwspin_t*) herwig6_common_block_address_((char*)"HWSPIN",6)),
- fHwstau((Hwstau_t*) herwig6_common_block_address_((char*)"HWSTAU",6)),
- fHwgupr((Hwgupr_t*) herwig6_common_block_address_((char*)"HWGUPR",6)),
- fHw6500((Hw6500_t*) herwig6_common_block_address_((char*)"HW6500",6)),
- fHw6504((Hw6504_t*) herwig6_common_block_address_((char*)"HW6504",6)),
- fHw6506((Hw6506_t*) herwig6_common_block_address_((char*)"HW6506",6))
+THerwig6::THerwig6(const THerwig6 & source): TGenerator(source)
{
Fatal("THerwig6","Copy constructor not implemented yet");
}
THerwig6::~THerwig6()
{
// Destructor. The data members of TGenerator are delete by itself
+ fgInstance = 0;
}
+//------------------------------------------------------------------------------
+THerwig6 *THerwig6::Instance()
+ {
+ return fgInstance ? fgInstance : new THerwig6;
+ }
//______________________________________________________________________________
void THerwig6::GenerateEvent()
{
// values. If you want to modify any parameter you have to set the new
// value after calling Initialize and before PrepareRun.
- char cbeam[8];
- strncpy(cbeam,beam,8);
- char ctarget[8];
- strncpy(ctarget,target,8);
+ char cbeam[9];
+ strncpy(cbeam,beam, 8);
+ char ctarget[9];
+ strncpy(ctarget,target, 8);
printf("\n Initializing Herwig !! \n");
if ( (!strncmp(beam, "E+" ,2)) &&
(!strncmp(beam, "E-" ,2)) &&
printf("WARNING! In THerwig6:Initialize():\n");
printf(" specified beam=%s is unrecognized .\n",beam);
printf(" resetting to \"P\" .");
- sprintf(cbeam,"P");
+ snprintf(cbeam, 8, "P");
}
if ( (!strncmp(target, "E+" ,2)) &&
printf("WARNING! In THerwig6:Initialize():\n");
printf(" specified target=%s is unrecognized .\n",target);
printf(" resetting to \"P\" .");
- sprintf(ctarget,"P");
+ snprintf(ctarget,8, "P");
}
// initialization:
// type of beams
- strncpy(fHwbmch->PART1,beam,8);
- strncpy(fHwbmch->PART2,target,8);
+ memcpy(HWBMCH.PART1,beam, 8);
+ memcpy(HWBMCH.PART2,target, 8);
// momentum of beams
- fHwproc->PBEAM1=pbeam1;
- fHwproc->PBEAM2=pbeam2;
+ HWPROC.PBEAM1=pbeam1;
+ HWPROC.PBEAM2=pbeam2;
// process to generate
- fHwproc->IPROC=iproc;
+ HWPROC.IPROC=iproc;
// not used in the class definition
- fHwproc->MAXEV=1;
+ HWPROC.MAXEV=1;
// reset all parameters
hwigin_();
// values. If you want to modify any parameter you have to set the new
// value after calling Initialize and before PrepareRun.
- char cbeam[8];
+ char cbeam[9];
strncpy(cbeam,beam,8);
- char ctarget[8];
+ char ctarget[9];
strncpy(ctarget,target,8);
printf("\n Initializing Herwig !! \n");
if ( (!strncmp(beam, "E+" ,2)) &&
printf("WARNING! In THerwig6:Initialize():\n");
printf(" specified beam=%s is unrecognized .\n",beam);
printf(" resetting to \"P\" .");
- sprintf(cbeam,"P");
+ snprintf(cbeam, 8, "P");
}
if ( (!strncmp(target, "E+" ,2)) &&
printf("WARNING! In THerwig6:Initialize():\n");
printf(" specified target=%s is unrecognized .\n",target);
printf(" resetting to \"P\" .");
- sprintf(ctarget,"P");
+ snprintf(ctarget, 8, "P");
}
// initialization:
// type of beams
- strncpy(fHwbmch->PART1,beam,8);
- strncpy(fHwbmch->PART2,target,8);
+ memcpy(HWBMCH.PART1,beam,8);
+ memcpy(HWBMCH.PART2,target,8);
// momentum of beams
- fHwproc->PBEAM1=pbeam1;
- fHwproc->PBEAM2=pbeam2;
+ HWPROC.PBEAM1=pbeam1;
+ HWPROC.PBEAM2=pbeam2;
// process to generate
- fHwproc->IPROC=iproc;
+ HWPROC.IPROC=iproc;
// not used in the class definition
- fHwproc->MAXEV=1;
+ HWPROC.MAXEV=1;
// reset all parameters
hwigin_();
// If the option = "All", all the particles are stored.
//
fParticles->Clear();
- Int_t numpart = fHepevt->NHEP;
+ Int_t numpart = HEPEVT.NHEP;
TClonesArray &a = *((TClonesArray*)fParticles);
if (!strcmp(option,"") || !strcmp(option,"Final")) {
for (Int_t i = 0; i < numpart; i++) {
- if (fHepevt->ISTHEP[i] == 1) {
+ if (HEPEVT.ISTHEP[i] == 1) {
//
// Use the common block values for the TParticle constructor
//
new(a[i]) TParticle(
- fHepevt->IDHEP[i],
- fHepevt->ISTHEP[i],
- fHepevt->JMOHEP[i][0]-1,
- fHepevt->JMOHEP[i][1]-1,
- fHepevt->JDAHEP[i][0]-1,
- fHepevt->JDAHEP[i][1]-1,
-
- fHepevt->PHEP[i][0],
- fHepevt->PHEP[i][1],
- fHepevt->PHEP[i][2],
- fHepevt->PHEP[i][3],
- fHepevt->VHEP[i][0],
- fHepevt->VHEP[i][1],
- fHepevt->VHEP[i][2],
- fHepevt->VHEP[i][3]);
+ HEPEVT.IDHEP[i],
+ HEPEVT.ISTHEP[i],
+ HEPEVT.JMOHEP[i][0]-1,
+ HEPEVT.JMOHEP[i][1]-1,
+ HEPEVT.JDAHEP[i][0]-1,
+ HEPEVT.JDAHEP[i][1]-1,
+
+ HEPEVT.PHEP[i][0],
+ HEPEVT.PHEP[i][1],
+ HEPEVT.PHEP[i][2],
+ HEPEVT.PHEP[i][3],
+ HEPEVT.VHEP[i][0],
+ HEPEVT.VHEP[i][1],
+ HEPEVT.VHEP[i][2],
+ HEPEVT.VHEP[i][3]);
}
}
}
else if (!strcmp(option,"All")) {
for (Int_t i = 0; i < numpart; i++) {
new(a[i]) TParticle(
- fHepevt->IDHEP[i],
- fHepevt->ISTHEP[i],
- fHepevt->JMOHEP[i][0]-1,
- fHepevt->JMOHEP[i][1]-1,
- fHepevt->JDAHEP[i][0]-1,
- fHepevt->JDAHEP[i][1]-1,
-
- fHepevt->PHEP[i][0],
- fHepevt->PHEP[i][1],
- fHepevt->PHEP[i][2],
- fHepevt->PHEP[i][3],
- fHepevt->VHEP[i][0],
- fHepevt->VHEP[i][1],
- fHepevt->VHEP[i][2],
- fHepevt->VHEP[i][3]);
+ HEPEVT.IDHEP[i],
+ HEPEVT.ISTHEP[i],
+ HEPEVT.JMOHEP[i][0]-1,
+ HEPEVT.JMOHEP[i][1]-1,
+ HEPEVT.JDAHEP[i][0]-1,
+ HEPEVT.JDAHEP[i][1]-1,
+
+ HEPEVT.PHEP[i][0],
+ HEPEVT.PHEP[i][1],
+ HEPEVT.PHEP[i][2],
+ HEPEVT.PHEP[i][3],
+ HEPEVT.VHEP[i][0],
+ HEPEVT.VHEP[i][1],
+ HEPEVT.VHEP[i][2],
+ HEPEVT.VHEP[i][3]);
}
}
return fParticles;
if (particles == 0) return 0;
TClonesArray &refParticles = *particles;
refParticles.Clear();
- Int_t numpart = fHepevt->NHEP;
+ Int_t numpart = HEPEVT.NHEP;
if (!strcmp(option,"") || !strcmp(option,"Final")) {
for (Int_t i = 0; i < numpart; i++) {
- if (fHepevt->ISTHEP[i] == 1) {
+ if (HEPEVT.ISTHEP[i] == 1) {
//
// Use the common block values for the TParticle constructor
//
new(refParticles[i]) TParticle(
- fHepevt->IDHEP[i],
- fHepevt->ISTHEP[i],
- fHepevt->JMOHEP[i][0]-1,
- fHepevt->JMOHEP[i][1]-1,
- fHepevt->JDAHEP[i][0]-1,
- fHepevt->JDAHEP[i][1]-1,
-
- fHepevt->PHEP[i][0],
- fHepevt->PHEP[i][1],
- fHepevt->PHEP[i][2],
- fHepevt->PHEP[i][3],
- fHepevt->VHEP[i][0],
- fHepevt->VHEP[i][1],
- fHepevt->VHEP[i][2],
- fHepevt->VHEP[i][3]);
+ HEPEVT.IDHEP[i],
+ HEPEVT.ISTHEP[i],
+ HEPEVT.JMOHEP[i][0]-1,
+ HEPEVT.JMOHEP[i][1]-1,
+ HEPEVT.JDAHEP[i][0]-1,
+ HEPEVT.JDAHEP[i][1]-1,
+
+ HEPEVT.PHEP[i][0],
+ HEPEVT.PHEP[i][1],
+ HEPEVT.PHEP[i][2],
+ HEPEVT.PHEP[i][3],
+ HEPEVT.VHEP[i][0],
+ HEPEVT.VHEP[i][1],
+ HEPEVT.VHEP[i][2],
+ HEPEVT.VHEP[i][3]);
}
}
}
else if (!strcmp(option,"All")) {
for (Int_t i = 0; i< numpart; i++) {
new(refParticles[i]) TParticle(
- fHepevt->IDHEP[i],
- fHepevt->ISTHEP[i],
- fHepevt->JMOHEP[i][0]-1,
- fHepevt->JMOHEP[i][1]-1,
- fHepevt->JDAHEP[i][0]-1,
- fHepevt->JDAHEP[i][1]-1,
-
- fHepevt->PHEP[i][0],
- fHepevt->PHEP[i][1],
- fHepevt->PHEP[i][2],
- fHepevt->PHEP[i][3],
- fHepevt->VHEP[i][0],
- fHepevt->VHEP[i][1],
- fHepevt->VHEP[i][2],
- fHepevt->VHEP[i][3]);
+ HEPEVT.IDHEP[i],
+ HEPEVT.ISTHEP[i],
+ HEPEVT.JMOHEP[i][0]-1,
+ HEPEVT.JMOHEP[i][1]-1,
+ HEPEVT.JDAHEP[i][0]-1,
+ HEPEVT.JDAHEP[i][1]-1,
+
+ HEPEVT.PHEP[i][0],
+ HEPEVT.PHEP[i][1],
+ HEPEVT.PHEP[i][2],
+ HEPEVT.PHEP[i][3],
+ HEPEVT.VHEP[i][0],
+ HEPEVT.VHEP[i][1],
+ HEPEVT.VHEP[i][2],
+ HEPEVT.VHEP[i][3]); //
}
}
return numpart;
jmefin_();
}
+void THerwig6::PrintEvt()
+{
+ hwuepr_();
+
+}
-
-
-
-
+ // acces to hep common block
+int THerwig6::GetNEVHEP () const { return HEPEVT.NEVHEP; }
+int THerwig6::GetNhep () const { return HEPEVT.NHEP; }
+int THerwig6::GetISTHEP (int i)const { return HEPEVT.ISTHEP[i-1]; }
+int THerwig6::GetIDHEP (int i)const { return HEPEVT.IDHEP[i-1]; }
+int THerwig6::GetJMOHEP (int i, int j) const
+{ return HEPEVT.JMOHEP[i-1][j-1]; }
+int THerwig6::GetJDAHEP (int i, int j) const
+{ return HEPEVT.JDAHEP[i-1][j-1]; }
+double THerwig6::GetPHEP (int i, int j) const
+{ return HEPEVT.PHEP[i-1][j-1]; }
+double THerwig6::GetVHEP (int i, int j) const
+{ return HEPEVT.VHEP[i-1][j-1]; }
+
+// access to Herwig6 common-blocks
+// WARNING: Some arrays start in 1, others in 0. Look up the manual!
+
+// /HWBEAM/
+
+int THerwig6::GetIPART1 () const { return HWBEAM.IPART1; }
+int THerwig6::GetIPART2 () const { return HWBEAM.IPART2; }
+
+// /HWBMCH/
+char* THerwig6::GetPART1 () const { return HWBMCH.PART1; }
+char* THerwig6::GetPART2 () const { return HWBMCH.PART2; }
+
+
+// /HWPROC/
+double THerwig6::GetEBEAM1 () const { return HWPROC.EBEAM1; }
+double THerwig6::GetEBEAM2 () const { return HWPROC.EBEAM2; }
+double THerwig6::GetPBEAM1 () const { return HWPROC.PBEAM1; }
+double THerwig6::GetPBEAM2 () const { return HWPROC.PBEAM2; }
+int THerwig6::GetIPROC () const { return HWPROC.IPROC; }
+int THerwig6::GetMAXEV () const { return HWPROC.MAXEV; }
+
+// /HWPRAM/
+double THerwig6::GetQCDLAM () const { return HWPRAM.QCDLAM; }
+void THerwig6::SetQCDLAM (double q) const { HWPRAM.QCDLAM = q; }
+double THerwig6::GetVQCUT () const { return HWPRAM.VQCUT; }
+void THerwig6::SetVQCUT (double v) const { HWPRAM.VQCUT = v; }
+double THerwig6::GetVGCUT () const { return HWPRAM.VGCUT; }
+void THerwig6::SetVGCUT (double v) const { HWPRAM.VGCUT = v; }
+double THerwig6::GetVPCUT () const { return HWPRAM.VPCUT; }
+void THerwig6::SetVPCUT (double v) const { HWPRAM.VPCUT = v; }
+double THerwig6::GetCLMAX () const { return HWPRAM.CLMAX; }
+void THerwig6::SetCLMAX (double c) const { HWPRAM.CLMAX = c; }
+double THerwig6::GetCLPOW () const { return HWPRAM.CLPOW; }
+void THerwig6::SetCLPOW (double c) const { HWPRAM.CLPOW = c; }
+double THerwig6::GetPSPLT (int i) const { return HWPRAM.PSPLT[i-1];}
+void THerwig6::SetPSPLT (int i, double p) const { HWPRAM.PSPLT[i-1] = p;}
+double THerwig6::GetQDIQK () const { return HWPRAM.QDIQK; }
+void THerwig6::SetQDIQK (double q) const { HWPRAM.QDIQK = q; }
+double THerwig6::GetPDIQK () const { return HWPRAM.PDIQK; }
+void THerwig6::SetPDIQK (double p) const { HWPRAM.PDIQK = p; }
+double THerwig6::GetQSPAC () const { return HWPRAM.QSPAC; }
+void THerwig6::SetQSPAC (double q) const { HWPRAM.QSPAC = q; }
+double THerwig6::GetPTRMS () const { return HWPRAM.PTRMS; }
+void THerwig6::SetPTRMS (double p) const { HWPRAM.PTRMS = p; }
+double THerwig6::GetENSOF () const { return HWPRAM.ENSOF; }
+void THerwig6::SetENSOF (double e) const { HWPRAM.ENSOF = e; }
+int THerwig6::GetIPRINT () const { return HWPRAM.IPRINT; }
+void THerwig6::SetIPRINT (int i) const { HWPRAM.IPRINT = i; }
+int THerwig6::GetMODPDF (int i) const { return HWPRAM.MODPDF[i-1];}
+void THerwig6::SetMODPDF (int i, int j) const { HWPRAM.MODPDF[i-1] = j; }
+int THerwig6::GetNSTRU () const { return HWPRAM.NSTRU; }
+void THerwig6::SetNSTRU (int i) const { HWPRAM.NSTRU = i; }
+
+// /HWPRCH/
+char* THerwig6::GetAUTPDF (int i) const { return HWPRCH.AUTPDF[i-1]; }
+void THerwig6::SetAUTPDF(int i,const char* s)const { strncpy(HWPRCH.AUTPDF[i-1], s, 19);}
+char* THerwig6::GetBDECAY () const { return HWPRCH.BDECAY; }
+
+// /HWEVNT/
+double THerwig6::GetAVWGT () const { return HWEVNT.AVWGT; }
+int THerwig6::GetMAXPR () const { return HWEVNT.MAXPR; }
+void THerwig6::SetMAXPR (int i) const { HWEVNT.MAXPR = i; }
+int THerwig6::GetMAXER () const { return HWEVNT.MAXER; }
+void THerwig6::SetMAXER (int i) const { HWEVNT.MAXER = i; }
+int THerwig6::GetNRN (int i) const { return HWEVNT.NRN[i-1]; }
+void THerwig6::SetNRN (int i, int j) const { HWEVNT.NRN[i-1] = j; }
+double THerwig6::GetEVWGT () const { return HWEVNT.EVWGT; }
+
+int THerwig6::GetIDHW (int i) const { return HWEVNT.IDHW[i]; }
+
+int THerwig6::GetIERROR () const { return HWEVNT.IERROR; }
+
+// /HWHARD/
+double THerwig6::GetPTMIN () const { return HWHARD.PTMIN; }
+void THerwig6::SetPTMIN (double d) const { HWHARD.PTMIN = d; }
+double THerwig6::GetPTMAX () const { return HWHARD.PTMAX; }
+void THerwig6::SetPTMAX (double d) const { HWHARD.PTMAX = d; }
+double THerwig6::GetPTPOW () const { return HWHARD.PTPOW; }
+void THerwig6::SetPTPOW (double d) const { HWHARD.PTPOW = d; }
+double THerwig6::GetYJMIN () const { return HWHARD.YJMIN; }
+void THerwig6::SetYJMIN (double d) const { HWHARD.YJMIN = d; }
+double THerwig6::GetYJMAX () const { return HWHARD.YJMAX; }
+void THerwig6::SetYJMAX (double d) const { HWHARD.YJMAX = d; }
+double THerwig6::GetQ2MIN () const { return HWHARD.Q2MIN; }
+void THerwig6::SetQ2MIN (double d) const { HWHARD.Q2MIN = d; }
+double THerwig6::GetQ2MAX () const { return HWHARD.Q2MAX; }
+void THerwig6::SetQ2MAX (double d) const { HWHARD.Q2MAX = d; }
+double THerwig6::GetYBMIN () const { return HWHARD.YBMIN; }
+void THerwig6::SetYBMIN (double d) const { HWHARD.YBMIN = d; }
+double THerwig6::GetYBMAX () const { return HWHARD.YBMAX; }
+void THerwig6::SetYBMAX (double d) const { HWHARD.YBMAX = d; }
+double THerwig6::GetZJMAX () const { return HWHARD.ZJMAX; }
+void THerwig6::SetZJMAX (double d) const { HWHARD.ZJMAX = d; }
+int THerwig6::GetIHPRO () const { return HWHARD.IHPRO; }
+// /HWPROP/
+double THerwig6::GetRMASS (int i) const { return HWPROP.RMASS[i]; }
+void THerwig6::SetRMASS (int i, double r) const { HWPROP.RMASS[i] = r; }
+
+
+void THerwig6::GetRNAME (int i, char a[9]) const { for (int j=0;j<8;j++) a[j] = HWUNAM.RNAME[i][j]; a[8] = '\0';}