CMS 3D CMS Logo

edm::PomwigSource Class Reference

#include <GeneratorInterface/PomwigInterface/interface/PomwigSource.h>

Inheritance diagram for edm::PomwigSource:

edm::GeneratedInputSource edm::ConfigurableInputSource edm::InputSource edm::ProductRegistryHelper

List of all members.

Public Member Functions

void endRun (Run &r)
 PomwigSource (const ParameterSet &, const InputSourceDescription &)
virtual ~PomwigSource ()

Private Member Functions

void clear ()
bool hwgive (const std::string &iParm)
virtual bool produce (Event &e)
bool setRngSeeds (int)

Private Attributes

double comenergy
int diffTopology
bool doMPInteraction_
bool enableForcedDecays
HepMC::GenEvent * evt
double extCrossSect
double extFilterEff
bool herwigHepMCVerbosity_
int herwigLhapdfVerbosity_
int herwigVerbosity_
double intCrossSect
std::string lhapdfSetPath_
int maxEventsToPrint_
int numTrials_
bool printCards_
double survivalProbability
bool useJimmy_


Detailed Description

Definition at line 22 of file PomwigSource.h.


Constructor & Destructor Documentation

PomwigSource::PomwigSource ( const ParameterSet pset,
const InputSourceDescription desc 
)

Definition at line 50 of file PomwigSource.cc.

References c2, comenergy, edm::errors::Configuration, GenMuonPlsPt100GeV_cfg::cout, diffTopology, doMPInteraction_, enableForcedDecays, lat::endl(), f2, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), herwigHepMCVerbosity_, herwigLhapdfVerbosity_, herwigVerbosity_, hwgive(), hwmodk, hwprop, i, int, jimmin, jminit, jmparm, lhapdfSetPath_, edm::InputSource::maxEvents(), maxEventsToPrint_, mysetpdfpath, NULL, numTrials_, pars, printCards_, qcd_1994, qcd_2006, randomEngine, setherwpdf, setRngSeeds(), and useJimmy_.

00051                                                                  :
00052   GeneratedInputSource(pset, desc), evt(0), 
00053   herwigVerbosity_ (pset.getUntrackedParameter<int>("herwigVerbosity",0)),
00054   herwigHepMCVerbosity_ (pset.getUntrackedParameter<bool>("herwigHepMCVerbosity",false)),
00055   herwigLhapdfVerbosity_ (pset.getUntrackedParameter<int>("herwigLhapdfVerbosity",0)),
00056   maxEventsToPrint_ (pset.getUntrackedParameter<int>("maxEventsToPrint",0)),
00057   comenergy(pset.getUntrackedParameter<double>("comEnergy",14000.)),
00058   lhapdfSetPath_(pset.getUntrackedParameter<string>("lhapdfSetPath","")),
00059   printCards_(pset.getUntrackedParameter<bool>("printCards",false)),
00060   extCrossSect(pset.getUntrackedParameter<double>("crossSection", -1.)),
00061   extFilterEff(pset.getUntrackedParameter<double>("filterEfficiency", -1.)),
00062   survivalProbability(pset.getUntrackedParameter<double>("survivalProbability", 0.05)),
00063   diffTopology(pset.getParameter<int>("diffTopology")),
00064   enableForcedDecays(pset.getUntrackedParameter<bool>("enableForcedDecays",false))
00065 {
00066   useJimmy_ = false;
00067   numTrials_ = 100;
00068   doMPInteraction_ = false;
00069 
00070   std::ostringstream header_str;
00071 
00072   header_str << "----------------------------------------------\n";
00073   header_str << "Initializing PomwigSource\n";
00074   header_str << "----------------------------------------------\n";
00075 
00076   
00077   /* herwigVerbosity Level IPRINT
00078      valid argumets are: 0: print title only
00079                          1: + print selected input parameters
00080                          2: + print table of particle codes and properties
00081                          3: + tables of Sudakov form factors  
00082               *** NOT IMPLEMENTED ***
00083       LHA vebosity:      0=silent 
00084                          1=lowkey (default) 
00085                          2=all 
00086   */
00087 
00088   header_str << "   Herwig verbosity level         = " << herwigVerbosity_ << "\n";
00089   header_str << "   LHAPDF verbosity level         = " << herwigLhapdfVerbosity_ << "\n";
00090   header_str << "   HepMC verbosity                = " << herwigHepMCVerbosity_ << "\n";
00091   header_str << "   Number of events to be printed = " << maxEventsToPrint_ << "\n";
00092 
00093 
00094   if(useJimmy_) {
00095     header_str << "   HERWIG will be using JIMMY for UE/MI." << "\n";
00096     if(doMPInteraction_) 
00097       header_str << "   JIMMY trying to generate multiple interactions." << "\n";
00098   }
00099 
00100   // setting up lhapdf path name from environment varaible (***)
00101   char* lhaPdfs = NULL;
00102   header_str<<"   Trying to find LHAPATH in environment ...";
00103   lhaPdfs = getenv("LHAPATH");
00104   if(lhaPdfs != NULL) {
00105     header_str<<" done.\n";
00106     lhapdfSetPath_=std::string(lhaPdfs);
00107     header_str<<"   Using "<< lhapdfSetPath_ << "\n";   
00108   }
00109   else{
00110     header_str<<" failed.\n";
00111     header_str<<"   Using "<< lhapdfSetPath_ << "\n";
00112   }
00113 
00114 
00115   // Call hwudat to set up HERWIG block data
00116   hwudat();
00117   
00118   // Setting basic parameters ...
00119   hwproc.PBEAM1 = comenergy/2.;
00120   hwproc.PBEAM2 = comenergy/2.;
00121   // Choose beam particles for POMWIG depending on topology
00122   switch (diffTopology){
00123         case 0: //DPE
00124                 hwbmch.PART1[0]  = 'E';
00125                 hwbmch.PART1[1]  = '-';
00126                 hwbmch.PART2[0]  = 'E';
00127                 hwbmch.PART2[1]  = '-';
00128                 break;
00129         case 1: //SD survive PART1
00130                 hwbmch.PART1[0]  = 'E';
00131                 hwbmch.PART1[1]  = '-';
00132                 hwbmch.PART2[0]  = 'P';
00133                 hwbmch.PART2[1]  = ' ';
00134                 break;
00135         case 2: //SD survive PART2
00136                 hwbmch.PART1[0]  = 'P';
00137                 hwbmch.PART1[1]  = ' ';
00138                 hwbmch.PART2[0]  = 'E';
00139                 hwbmch.PART2[1]  = '-';
00140                 break;
00141         case 3: //Non diffractive
00142                 hwbmch.PART1[0]  = 'P';
00143                 hwbmch.PART1[1]  = ' ';
00144                 hwbmch.PART2[0]  = 'P';
00145                 hwbmch.PART2[1]  = ' ';
00146                 break;
00147         default:
00148                 throw edm::Exception(edm::errors::Configuration,"PomwigError")
00149           <<" Invalid Diff. Topology. Must be DPE(diffTopology = 0), SD particle 1 (diffTopology = 1), SD particle 2 (diffTopology = 2) and Non diffractive (diffTopology = 3)";
00150                 break;
00151   }
00152   for(int i=2;i<8;++i){
00153     hwbmch.PART1[i]  = ' ';
00154     hwbmch.PART2[i]  = ' ';}
00155 
00156   int numEvents = maxEvents();  
00157   if(useJimmy_) jmparm.MSFLAG = 1;
00158 
00159   // initialize other common blocks ...
00160   hwigin();
00161 
00162   double fracErrors_ = pset.getUntrackedParameter<double>("fracErrors",0.1);
00163   int maxerrors = int(fracErrors_*numEvents);
00164   hwevnt.MAXER = maxerrors;
00165   if(hwevnt.MAXER<100) hwevnt.MAXER = 100;
00166   header_str << "   MAXER set to " << hwevnt.MAXER << "\n";
00167 
00168   if(useJimmy_) jimmin();
00169   
00170   // set some 'non-herwig' defaults
00171   hwevnt.MAXPR =  maxEventsToPrint_;           // no printing out of events
00172   hwpram.IPRINT = herwigVerbosity_;            // HERWIG print out mode
00173   hwprop.RMASS[6] = 175.0;
00174 
00175   // Set HERWIG parameters in a single ParameterSet
00176   ParameterSet herwig_params = 
00177     pset.getParameter<ParameterSet>("HerwigParameters") ;
00178   
00179   // The parameter sets to be read (default, min bias, user ...) in the proper order.
00180   vector<string> setNames = 
00181     herwig_params.getParameter<vector<string> >("parameterSets");  
00182   
00183   // Loop over the sets
00184   for ( unsigned i=0; i<setNames.size(); ++i ) {    
00185     string mySet = setNames[i];
00186     vector<string> pars = 
00187       herwig_params.getParameter<vector<string> >(mySet);
00188     
00189     header_str << "----------------------------------------------" << "\n";
00190     header_str << "Read HERWIG parameter set " << mySet << "\n";
00191     header_str << "----------------------------------------------" << "\n";
00192     
00193     // Loop over all parameters and stop in case of mistake
00194     for( vector<string>::const_iterator  
00195            itPar = pars.begin(); itPar != pars.end(); ++itPar ) {
00196       static string sRandomValueSetting1("NRN(1)");
00197       static string sRandomValueSetting2("NRN(2)");
00198       if( (0 == itPar->compare(0,sRandomValueSetting1.size(),sRandomValueSetting1) )||(0 == itPar->compare(0,sRandomValueSetting2.size(),sRandomValueSetting2) )) {
00199         throw edm::Exception(edm::errors::Configuration,"HerwigError")
00200           <<" attempted to set random number using pythia command 'NRN(.)'. This is not allowed.\n  Please use the RandomNumberGeneratorService to set the random number seed.";
00201       }
00202       
00203       if( ! hwgive(*itPar) ) {
00204         throw edm::Exception(edm::errors::Configuration,"HerwigError") 
00205           <<" herwig did not accept the following \""<<*itPar<<"\"";
00206       }
00207       else if(printCards_)
00208         header_str << "   " << *itPar << "\n";
00209     }
00210   }
00211 
00212   // setting up herwgi RNG seeds NRN(.)
00213   header_str << "----------------------------------------------" << "\n";
00214   header_str << "Setting Herwig random number generator seeds" << "\n";
00215   header_str << "----------------------------------------------" << "\n";
00216   edm::Service<RandomNumberGenerator> rng;
00217   randomEngine = &(rng->getEngine());
00218   int wwseed = rng->mySeed();
00219   bool rngok = setRngSeeds(wwseed);
00220   if(!rngok)
00221     throw edm::Exception(edm::errors::Configuration,"HerwigError")
00222       <<" Impossible error in setting 'NRN(.)'.";
00223   header_str << "   NRN(1) = "<<hwevnt.NRN[0]<<"\n";
00224   header_str << "   NRN(2) = "<<hwevnt.NRN[1]<<"\n";
00225 
00226   // set the LHAPDF grid directory and path
00227   setherwpdf();
00228   char pdfpath[232];
00229   int pathlen = lhapdfSetPath_.length();
00230   for(int i=0; i<pathlen; ++i) 
00231   pdfpath[i]=lhapdfSetPath_.at(i);
00232   for(int i=pathlen; i<232; ++i) 
00233   pdfpath[i]=' ';
00234   mysetpdfpath(pdfpath);
00235 
00236   // HERWIG preparations ...
00237   hwuinc();
00238 
00239   // Function for force QQ decay is hwmodk
00240 
00241   /*
00242   C-----------------------------------------------------------------------
00243         SUBROUTINE HWMODK(IDKTMP,BRTMP,IMETMP,
00244        & IATMP,IBTMP,ICTMP,IDTMP,IETMP)
00245   C-----------------------------------------------------------------------
00246   C     Takes the decay, IDKTMP -> I-(A+B+C+D+E)-TMP, and simply stores it
00247   C     if internal pointers not set up (.NOT.DKPSET) else if pre-existing
00248   C     mode updates branching ratio BRTMP and matrix element code IMETMP,
00249   C     if -ve leaves as is. If a new mode adds to table and if consistent
00250   C     adjusts pointers,  sets CMMOM (for two-body mode) and resets RSTAB
00251   C     if necessary.  The branching ratios of any other IDKTMP decays are
00252   C     scaled by (1.-BRTMP)/(1.-BR_OLD)
00253   C-----------------------------------------------------------------------
00254   */
00255 
00256   // Initialization
00257 
00258   if(enableForcedDecays){
00259     header_str << "\n----------------------------------------------" << "\n";
00260     header_str << "HWMODK will be called to force decays" << "\n";
00261     header_str << "----------------------------------------------" << "\n";
00262     // Get ParameterSet with settings for forcing decays
00263     ParameterSet fdecays_pset = pset.getParameter<ParameterSet>("ForcedDecaysParameters") ; 
00264     vector<int> defidktmp ;
00265     defidktmp.push_back(0) ;
00266     std::vector<int> idktmp = fdecays_pset.getUntrackedParameter< vector<int> >("Idktmp", defidktmp);
00267     vector<double> defbrtmp ;
00268     defbrtmp.push_back(0) ;
00269     std::vector<double> brtmp = fdecays_pset.getUntrackedParameter< vector<double> >("Brtmp",defbrtmp);
00270     vector<int> defimetmp ;
00271     defimetmp.push_back(0) ;
00272     std::vector<int> imetmp = fdecays_pset.getUntrackedParameter< vector<int> >("Imetmp",defimetmp);
00273     vector<int> defiatmp ;
00274     defiatmp.push_back(0) ;
00275     std::vector<int> iatmp = fdecays_pset.getUntrackedParameter< vector<int> >("Iatmp",defiatmp);
00276     vector<int> defibtmp ;
00277     defibtmp.push_back(0) ;
00278     std::vector<int> ibtmp = fdecays_pset.getUntrackedParameter< vector<int> >("Ibtmp",defibtmp);
00279     vector<int> defictmp ;
00280     defictmp.push_back(0) ;
00281     std::vector<int> ictmp = fdecays_pset.getUntrackedParameter< vector<int> >("Ictmp",defictmp);
00282     vector<int> defidtmp ;
00283     defidtmp.push_back(0) ;
00284     std::vector<int> idtmp = fdecays_pset.getUntrackedParameter< vector<int> >("Idtmp",defidtmp);
00285     vector<int> defietmp ;
00286     defietmp.push_back(0) ;
00287     std::vector<int> ietmp = fdecays_pset.getUntrackedParameter< vector<int> >("Ietmp",defietmp);
00288 
00289     for (unsigned int i = 0; i < idktmp.size(); i++){
00290         int idktmp1 = idktmp[i];
00291         double brtmp1 = brtmp[i];
00292         int imetmp1 = imetmp[i];
00293         int iatmp1 = iatmp[i];
00294         int ibtmp1 = ibtmp[i];
00295         int ictmp1 = ictmp[i];
00296         int idtmp1 = idtmp[i];
00297         int ietmp1 = ietmp[i];
00298         // Call Herwig function HWMODK
00299         header_str << "   Forcing decay " << idktmp1 << "->" << iatmp1 << "+" 
00300                                                              << ibtmp1 << "+" 
00301                                                              << ictmp1 << "+"
00302                                                              << idtmp1 << "+"
00303                                                              << ietmp1 << "  with BR " << brtmp1 << "\n";
00304         hwmodk(idktmp1, brtmp1, imetmp1, iatmp1, ibtmp1, ictmp1, idtmp1, ietmp1);
00305     }
00306   }   
00307 
00308   hwusta("PI0     ",1);
00309 
00310   // Initialize H1 pomeron/reggeon
00311   if(diffTopology != 3){
00312         int nstru = hwpram.NSTRU;
00313         int ifit = pset.getParameter<int>("h1fit");
00314         if(nstru == 9){
00315                 if((ifit <= 0)||(ifit >= 7)){
00316                         throw edm::Exception(edm::errors::Configuration,"PomwigError")
00317                         <<" Attempted to set non existant H1 1997 fit index. Has to be 1...6";
00318                 }
00319                 cout << "   H1 1997 pomeron pdf's" << endl;
00320                 cout << "   IFIT = "<< ifit << endl;
00321                 double xp = 0.1;
00322                 double Q2 = 75.0;
00323                 double xpq[13];
00324                 qcd_1994(xp,Q2,xpq,ifit);
00325         } else if(nstru == 10){
00326                 if((ifit <= 0)||(ifit >= 7)){
00327                         throw edm::Exception(edm::errors::Configuration,"PomwigError")
00328                         <<" Attempted to set non existant H1 1997 fit index. Has to be 1...6";
00329                 }
00330                 cout << "   H1 1997 reggeon pdf's" << endl;
00331                 cout << "   IFIT = "<< ifit << endl;
00332                 double xp = 0.1;
00333                 double Q2 = 75.0;
00334                 double xpq[13];
00335                 qcd_1994(xp,Q2,xpq,ifit);
00336 
00337         } else if(nstru == 12){
00338                 /*if(ifit != 1){
00339                         throw edm::Exception(edm::errors::Configuration,"PomwigError")
00340                         <<" Attempted to set non existant H1 2006 A fit index. Only IFIT=1";
00341                 }*/
00342                 ifit = 1;
00343                 cout << "   H1 2006 A pomeron pdf's" << endl;
00344                 cout << "   IFIT = "<< ifit <<endl;
00345                 double xp = 0.1;
00346                 double Q2 = 75.0;
00347                 double xpq[13];
00348                 double f2[2];
00349                 double fl[2];
00350                 double c2[2];
00351                 double cl[2];
00352                 qcd_2006(xp,Q2,ifit,xpq,f2,fl,c2,cl);
00353         } else if(nstru == 13){
00354                 /*if(ifit != 1){
00355                         throw edm::Exception(edm::errors::Configuration,"PomwigError")
00356                         <<" Attempted to set non existant H1 2006 A fit index. Only IFIT=1";
00357                 }*/
00358                 ifit = 1;
00359                 cout << "   H1 2006 A reggeon pdf's" << endl;
00360                 cout << "   IFIT = "<< ifit <<endl;
00361                 double xp = 0.1;
00362                 double Q2 = 75.0;
00363                 double xpq[13];
00364                 double f2[2];
00365                 double fl[2];
00366                 double c2[2];
00367                 double cl[2];
00368                 qcd_2006(xp,Q2,ifit,xpq,f2,fl,c2,cl);
00369         } else if(nstru == 14){
00370                 /*if(ifit != 2){
00371                         throw edm::Exception(edm::errors::Configuration,"PomwigError")
00372                         <<" Attempted to set non existant H1 2006 B fit index. Only IFIT=2";
00373                 }*/
00374                 ifit = 2;
00375                 cout << "   H1 2006 B pomeron pdf's" << endl;
00376                 cout << "   IFIT = "<< ifit <<endl;
00377                 double xp = 0.1;
00378                 double Q2 = 75.0;
00379                 double xpq[13];
00380                 double f2[2];
00381                 double fl[2];
00382                 double c2[2];
00383                 double cl[2];
00384                 qcd_2006(xp,Q2,ifit,xpq,f2,fl,c2,cl);
00385         } else if(nstru == 15){
00386                 /*if(ifit != 2){
00387                         throw edm::Exception(edm::errors::Configuration,"PomwigError")
00388                         <<" Attempted to set non existant H1 2006 B fit index. Only IFIT=2";
00389                 }*/
00390                 ifit = 2;
00391                 cout << "   H1 2006 B reggeon pdf's" << endl;
00392                 cout << "   IFIT = "<< ifit <<endl;
00393                 double xp = 0.1;
00394                 double Q2 = 75.0;
00395                 double xpq[13];
00396                 double f2[2];
00397                 double fl[2];
00398                 double c2[2];
00399                 double cl[2];
00400                 qcd_2006(xp,Q2,ifit,xpq,f2,fl,c2,cl);
00401         } else{
00402                 throw edm::Exception(edm::errors::Configuration,"PomwigError")
00403                 <<" Only running Pomeron H1 1997 (NSTRU=9), H1 2006 fit A (NSTRU=12) and H1 2006 fit B (NSTRU=14) or Reggeon H1 1997 (NSTRU=10), H1 2006 fit A (NSTRU=13) and H1 2006 fit B (NSTRU=15)";
00404         }
00405   }
00406 
00407   hweini();
00408   if(useJimmy_) jminit();
00409 
00410   produces<HepMCProduct>();
00411   produces<GenInfoProduct, edm::InRun>();
00412 
00413   header_str << "\n----------------------------------------------" << "\n";
00414   header_str << "Starting event generation" << "\n";
00415   header_str << "----------------------------------------------" << "\n";
00416 
00417   edm::LogInfo("")<<header_str.str(); 
00418 
00419 
00420 }

PomwigSource::~PomwigSource (  )  [virtual]

Definition at line 423 of file PomwigSource.cc.

References clear().

00423                            {
00424 
00425   std::ostringstream footer_str;
00426 
00427   footer_str << "----------------------------------------------" << "\n";
00428   footer_str << "Event generation done" << "\n";
00429   footer_str << "----------------------------------------------" << "\n";
00430 
00431   LogInfo("") << footer_str.str();
00432 
00433   clear();
00434 }


Member Function Documentation

void PomwigSource::clear ( void   )  [private]

Definition at line 436 of file PomwigSource.cc.

References jmefin, and useJimmy_.

Referenced by ~PomwigSource().

00436                          {
00437   // teminate elementary process
00438   hwefin();
00439   if(useJimmy_) jmefin();
00440 }

void PomwigSource::endRun ( Run r  )  [virtual]

Reimplemented from edm::ConfigurableInputSource.

Definition at line 1291 of file PomwigSource.cc.

References GenMuonPlsPt100GeV_cfg::cout, lat::endl(), extCrossSect, extFilterEff, intCrossSect, edm::Run::put(), and survivalProbability.

01291                                  {
01292  
01293  auto_ptr<GenInfoProduct> giprod (new GenInfoProduct());
01294 
01295  //-----------------------------------------------
01296  // compute cross-section (internal HERWIG style)
01297  double RNWGT=1./hwevnt.NWGTS;
01298  double AVWGT=hwevnt.WGTSUM*RNWGT;
01299 
01300  intCrossSect=1000.*survivalProbability*AVWGT;
01301  //-----------------------------------------------
01302 
01303  giprod->set_cross_section(intCrossSect);
01304  cout<<">>>>> Cross section = " << intCrossSect << std::endl;
01305  giprod->set_external_cross_section(extCrossSect);
01306  giprod->set_filter_efficiency(extFilterEff);
01307  r.put(giprod);
01308 
01309 }

bool PomwigSource::hwgive ( const std::string &  iParm  )  [private]

Definition at line 512 of file PomwigSource.cc.

References Exception, hw6202, hw6203, hw6300, hw6500, hwbosc, hwbrch, hwdist, hwdspn, hwgupr, hwhard, hwminb, hwprop, hwrpar, hwsusy, hwuclu, hwusud, hwuwts, and jmparm.

Referenced by PomwigSource().

00512                                                           {
00513   bool accepted = 1;
00514 
00515  
00516   if(!strncmp(ParameterString.c_str(),"IPROC",5)) {
00517     hwproc.IPROC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00518     if(hwproc.IPROC<0) {
00519       throw cms::Exception("HerwigError")
00520         <<" Attempted to set IPROC to a negative value. This is not allowed.\n Please use the McatnloInterface to cope with negative valued IPROCs.";
00521     }
00522   }
00523   else if(!strncmp(ParameterString.c_str(),"AUTPDF(",7)){
00524     LogWarning("") <<"   WARNING: AUTPDF parameter *not* suported. HERWIG will use LHAPDF."<<"\n";
00525   }
00526   else if(!strncmp(ParameterString.c_str(),"TAUDEC",6)){
00527     int tostart=0;
00528     while(ParameterString.c_str()[tostart]!='=') tostart++;
00529     tostart++;
00530     while(ParameterString.c_str()[tostart]==' ') tostart++;
00531     int todo = 0;
00532     while(ParameterString.c_str()[todo+tostart]!='\0') {
00533       hwdspn.TAUDEC[todo]=ParameterString.c_str()[todo+tostart];
00534       todo++;
00535     }
00536     if(todo != 6) {
00537       throw cms::Exception("HerwigError")
00538         <<" Attempted to set TAUDEC to "<<hwdspn.TAUDEC<<". This is not allowed.\n Options for TAUDEC are HERWIG and TAUOLA.";
00539     }
00540   }
00541   else if(!strncmp(ParameterString.c_str(),"BDECAY",6)){
00542     LogWarning("")<<"   WARNING: BDECAY parameter *not* suported. HERWIG will use default b decay."<<"\n";
00543   }
00544   else if(!strncmp(ParameterString.c_str(),"QCDLAM",6))
00545     hwpram.QCDLAM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00546   else if(!strncmp(ParameterString.c_str(),"VQCUT",5))
00547     hwpram.VQCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00548   else if(!strncmp(ParameterString.c_str(),"VGCUT",5))
00549     hwpram.VGCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00550   else if(!strncmp(ParameterString.c_str(),"VPCUT",5))
00551     hwpram.VPCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00552   else if(!strncmp(ParameterString.c_str(),"CLMAX",5))
00553     hwpram.CLMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00554   else if(!strncmp(ParameterString.c_str(),"CLPOW",5))
00555     hwpram.CLPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00556   else if(!strncmp(ParameterString.c_str(),"PSPLT(1)",8))
00557     hwpram.PSPLT[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00558   else if(!strncmp(ParameterString.c_str(),"PSPLT(2)",8))
00559     hwpram.PSPLT[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00560   else if(!strncmp(ParameterString.c_str(),"QDIQK",5))
00561     hwpram.QDIQK = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00562   else if(!strncmp(ParameterString.c_str(),"PDIQK",5))
00563     hwpram.PDIQK = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00564   else if(!strncmp(ParameterString.c_str(),"QSPAC",5))
00565     hwpram.QSPAC = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00566   else if(!strncmp(ParameterString.c_str(),"PTRMS",5))
00567     hwpram.PTRMS = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00568   else if(!strncmp(ParameterString.c_str(),"IPRINT",6))
00569     hwpram.IPRINT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00570   else if(!strncmp(ParameterString.c_str(),"PRVTX",5))
00571     hwpram.PRVTX = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00572   else if(!strncmp(ParameterString.c_str(),"NPRFMT",6))
00573     hwpram.NPRFMT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00574   else if(!strncmp(ParameterString.c_str(),"PRNDEC",6))
00575     hwpram.PRNDEC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00576   else if(!strncmp(ParameterString.c_str(),"PRNDEF",6))
00577     hwpram.PRNDEF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00578   else if(!strncmp(ParameterString.c_str(),"PRNTEX",6))
00579     hwpram.PRNTEX = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00580   else if(!strncmp(ParameterString.c_str(),"PRNWEB",6))
00581     hwpram.PRNWEB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00582   else if(!strncmp(ParameterString.c_str(),"MAXPR",5))
00583     hwevnt.MAXPR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00584   else if(!strncmp(ParameterString.c_str(),"MAXER",5))
00585     hwevnt.MAXER = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00586   else if(!strncmp(ParameterString.c_str(),"LWEVT",5))
00587     hwevnt.LWEVT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00588   else if(!strncmp(ParameterString.c_str(),"LRSUD",5))
00589     hwpram.LRSUD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00590   else if(!strncmp(ParameterString.c_str(),"LWSUD",5))
00591     hwpram.LWSUD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00592   else if(!strncmp(ParameterString.c_str(),"NRN(1)",6))
00593     hwevnt.NRN[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00594   else if(!strncmp(ParameterString.c_str(),"NRN(2)",6))
00595     hwevnt.NRN[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00596   else if(!strncmp(ParameterString.c_str(),"WGTMAX",6))
00597     hwevnt.WGTMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00598   else if(!strncmp(ParameterString.c_str(),"NOWGT",5))
00599     hwevnt.NOWGT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00600   else if(!strncmp(ParameterString.c_str(),"AVWGT",5))
00601     hwevnt.AVWGT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00602   else if(!strncmp(ParameterString.c_str(),"AZSOFT",6))
00603     hwpram.AZSOFT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00604   else if(!strncmp(ParameterString.c_str(),"AZSPIN",6))
00605     hwpram.AZSPIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00606   else if(!strncmp(ParameterString.c_str(),"HARDME",6))
00607     hwpram.HARDME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00608   else if(!strncmp(ParameterString.c_str(),"SOFTME",6))
00609     hwpram.SOFTME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00610   else if(!strncmp(ParameterString.c_str(),"GCUTME",6))
00611     hwpram.GCUTME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00612   else if(!strncmp(ParameterString.c_str(),"NCOLO",5))
00613     hwpram.NCOLO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00614   else if(!strncmp(ParameterString.c_str(),"NFLAV",5))
00615     hwpram.NFLAV = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00616   else if(!strncmp(ParameterString.c_str(),"MODPDF(1)",9))
00617     hwpram.MODPDF[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00618   else if(!strncmp(ParameterString.c_str(),"MODPDF(2)",9))
00619     hwpram.MODPDF[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00620   else if(!strncmp(ParameterString.c_str(),"NSTRU",5))
00621     hwpram.NSTRU = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00622   else if(!strncmp(ParameterString.c_str(),"PRSOF",5))
00623     hwpram.PRSOF = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00624   else if(!strncmp(ParameterString.c_str(),"ENSOF",5))
00625     hwpram.ENSOF = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00626   else if(!strncmp(ParameterString.c_str(),"IOPREM",6))
00627     hwpram.IOPREM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00628   else if(!strncmp(ParameterString.c_str(),"BTCLM",5))
00629     hwpram.BTCLM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00630   else if(!strncmp(ParameterString.c_str(),"ETAMIX",6))
00631     hwpram.ETAMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00632   else if(!strncmp(ParameterString.c_str(),"PHIMIX",6))
00633     hwpram.PHIMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00634   else if(!strncmp(ParameterString.c_str(),"H1MIX",5))
00635     hwpram.H1MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00636   else if(!strncmp(ParameterString.c_str(),"F0MIX",5))
00637     hwpram.F0MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00638   else if(!strncmp(ParameterString.c_str(),"F1MIX",5))
00639     hwpram.F1MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00640   else if(!strncmp(ParameterString.c_str(),"F2MIX",5))
00641     hwpram.F2MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00642   else if(!strncmp(ParameterString.c_str(),"ET2MIX",6))
00643     hwpram.ET2MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00644   else if(!strncmp(ParameterString.c_str(),"OMHMIX",6))
00645     hwpram.OMHMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00646   else if(!strncmp(ParameterString.c_str(),"PH3MIX",6))
00647     hwpram.PH3MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00648   else if(!strncmp(ParameterString.c_str(),"B1LIM",5))
00649     hwpram.B1LIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00650   else if(!strncmp(ParameterString.c_str(),"CLDIR(1)",8))
00651     hwpram.CLDIR[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00652   else if(!strncmp(ParameterString.c_str(),"CLDIR(2)",8))
00653     hwpram.CLDIR[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);   
00654   else if(!strncmp(ParameterString.c_str(),"CLSMR(1)",8))
00655     hwpram.CLSMR[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00656   else if(!strncmp(ParameterString.c_str(),"CLSMR(2)",8))
00657     hwpram.CLSMR[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00658   else if(!strncmp(ParameterString.c_str(),"RMASS(1)",8))
00659     hwprop.RMASS[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00660   else if(!strncmp(ParameterString.c_str(),"RMASS(2)",8))
00661     hwprop.RMASS[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00662   else if(!strncmp(ParameterString.c_str(),"RMASS(3)",8))
00663     hwprop.RMASS[3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00664   else if(!strncmp(ParameterString.c_str(),"RMASS(4)",8))
00665     hwprop.RMASS[4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00666   else if(!strncmp(ParameterString.c_str(),"RMASS(5)",8))
00667     hwprop.RMASS[5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00668   else if(!strncmp(ParameterString.c_str(),"RMASS(6)",8))
00669     hwprop.RMASS[6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00670   else if(!strncmp(ParameterString.c_str(),"RMASS(13)",9))
00671     hwprop.RMASS[13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00672   else if(!strncmp(ParameterString.c_str(),"SUDORD",6))
00673     hwusud.SUDORD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00674   else if(!strncmp(ParameterString.c_str(),"INTER",5))
00675     hwusud.INTER = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00676   else if(!strncmp(ParameterString.c_str(),"NEGWTS",6))
00677     hw6203.NEGWTS = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00678   else if(!strncmp(ParameterString.c_str(),"PMBN1",5))
00679     hwminb.PMBN1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00680   else if(!strncmp(ParameterString.c_str(),"PMBN2",5))
00681     hwminb.PMBN2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00682   else if(!strncmp(ParameterString.c_str(),"PMBN3",5))
00683     hwminb.PMBN3 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00684   else if(!strncmp(ParameterString.c_str(),"PMBK1",5))
00685     hwminb.PMBK1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00686   else if(!strncmp(ParameterString.c_str(),"PMBK2",5))
00687     hwminb.PMBK2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00688   else if(!strncmp(ParameterString.c_str(),"PMBM1",5))
00689     hwminb.PMBM1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00690   else if(!strncmp(ParameterString.c_str(),"PMBM2",5))
00691     hwminb.PMBM2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00692   else if(!strncmp(ParameterString.c_str(),"PMBP1",5))
00693     hwminb.PMBP1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00694   else if(!strncmp(ParameterString.c_str(),"PMBP2",5))
00695     hwminb.PMBP2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00696   else if(!strncmp(ParameterString.c_str(),"PMBP3",5))
00697     hwminb.PMBP3 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00698   else if(!strncmp(ParameterString.c_str(),"VMIN2",5))
00699     hwdist.VMIN2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00700   else if(!strncmp(ParameterString.c_str(),"EXAG",4))
00701     hwdist.EXAG = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00702   else if(!strncmp(ParameterString.c_str(),"PRECO",5))
00703     hwuclu.PRECO = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00704   else if(!strncmp(ParameterString.c_str(),"CLRECO",6))
00705     hwuclu.CLRECO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00706   else if(!strncmp(ParameterString.c_str(),"PWT(1)",6))
00707     hwuwts.PWT[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00708   else if(!strncmp(ParameterString.c_str(),"PWT(2)",6))
00709     hwuwts.PWT[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00710   else if(!strncmp(ParameterString.c_str(),"PWT(3)",6))
00711     hwuwts.PWT[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00712   else if(!strncmp(ParameterString.c_str(),"PWT(4)",6))
00713     hwuwts.PWT[3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00714   else if(!strncmp(ParameterString.c_str(),"PWT(5)",6))
00715     hwuwts.PWT[4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00716   else if(!strncmp(ParameterString.c_str(),"PWT(6)",6))
00717     hwuwts.PWT[5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00718   else if(!strncmp(ParameterString.c_str(),"PWT(7)",6))
00719     hwuwts.PWT[6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00720   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,0)",12))
00721     hwuwts.REPWT[0][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00722   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,1)",12))
00723     hwuwts.REPWT[0][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00724   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,2)",12))
00725     hwuwts.REPWT[0][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00726   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,3)",12))
00727     hwuwts.REPWT[0][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00728   else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,4)",12))
00729     hwuwts.REPWT[0][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00730   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,0)",12))
00731     hwuwts.REPWT[0][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00732   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,1)",12))
00733     hwuwts.REPWT[0][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00734   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,2)",12))
00735     hwuwts.REPWT[0][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00736   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,3)",12))
00737     hwuwts.REPWT[0][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00738   else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,4)",12))
00739     hwuwts.REPWT[0][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00740   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,0)",12))
00741     hwuwts.REPWT[0][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00742   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,1)",12))
00743     hwuwts.REPWT[0][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00744   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,2)",12))
00745     hwuwts.REPWT[0][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00746   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,3)",12))
00747     hwuwts.REPWT[0][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00748   else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,4)",12))
00749     hwuwts.REPWT[0][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00750   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,0)",12))
00751     hwuwts.REPWT[0][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00752   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,1)",12))
00753     hwuwts.REPWT[0][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00754   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,2)",12))
00755     hwuwts.REPWT[0][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00756   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,3)",12))
00757     hwuwts.REPWT[0][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00758   else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,4)",12))
00759     hwuwts.REPWT[0][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00760   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,0)",12))
00761     hwuwts.REPWT[0][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00762   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,1)",12))
00763     hwuwts.REPWT[0][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00764   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,2)",12))
00765     hwuwts.REPWT[0][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00766   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,3)",12))
00767     hwuwts.REPWT[0][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00768   else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,4)",12))
00769     hwuwts.REPWT[0][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00770   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,0)",12))
00771     hwuwts.REPWT[1][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00772   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,1)",12))
00773     hwuwts.REPWT[1][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00774   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,2)",12))
00775     hwuwts.REPWT[1][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00776   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,3)",12))
00777     hwuwts.REPWT[1][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00778   else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,4)",12))
00779     hwuwts.REPWT[1][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00780   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,0)",12))
00781     hwuwts.REPWT[1][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00782   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,1)",12))
00783     hwuwts.REPWT[1][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00784   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,2)",12))
00785     hwuwts.REPWT[1][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00786   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,3)",12))
00787     hwuwts.REPWT[1][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00788   else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,4)",12))
00789     hwuwts.REPWT[1][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00790   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,0)",12))
00791     hwuwts.REPWT[1][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00792   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,1)",12))
00793     hwuwts.REPWT[1][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00794   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,2)",12))
00795     hwuwts.REPWT[1][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00796   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,3)",12))
00797     hwuwts.REPWT[1][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00798   else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,4)",12))
00799     hwuwts.REPWT[1][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00800   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,0)",12))
00801     hwuwts.REPWT[1][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00802   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,1)",12))
00803     hwuwts.REPWT[1][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00804   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,2)",12))
00805     hwuwts.REPWT[1][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00806   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,3)",12))
00807     hwuwts.REPWT[1][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00808   else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,4)",12))
00809     hwuwts.REPWT[1][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00810   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,0)",12))
00811     hwuwts.REPWT[1][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00812   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,1)",12))
00813     hwuwts.REPWT[1][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00814   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,2)",12))
00815     hwuwts.REPWT[1][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00816   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,3)",12))
00817     hwuwts.REPWT[1][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00818   else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,4)",12))
00819     hwuwts.REPWT[1][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00820   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,0)",12))
00821     hwuwts.REPWT[2][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00822   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,1)",12))
00823     hwuwts.REPWT[2][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00824   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,2)",12))
00825     hwuwts.REPWT[2][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00826   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,3)",12))
00827     hwuwts.REPWT[2][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00828   else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,4)",12))
00829     hwuwts.REPWT[2][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00830   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,0)",12))
00831     hwuwts.REPWT[2][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00832   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,1)",12))
00833     hwuwts.REPWT[2][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00834   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,2)",12))
00835     hwuwts.REPWT[2][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00836   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,3)",12))
00837     hwuwts.REPWT[2][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00838   else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,4)",12))
00839     hwuwts.REPWT[2][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00840   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,0)",12))
00841     hwuwts.REPWT[2][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00842   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,1)",12))
00843     hwuwts.REPWT[2][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00844   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,2)",12))
00845     hwuwts.REPWT[2][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00846   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,3)",12))
00847     hwuwts.REPWT[2][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00848   else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,4)",12))
00849     hwuwts.REPWT[2][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00850   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,0)",12))
00851     hwuwts.REPWT[2][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00852   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,1)",12))
00853     hwuwts.REPWT[2][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00854   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,2)",12))
00855     hwuwts.REPWT[2][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00856   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,3)",12))
00857     hwuwts.REPWT[2][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00858   else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,4)",12))
00859     hwuwts.REPWT[2][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00860   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,0)",12))
00861     hwuwts.REPWT[2][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00862   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,1)",12))
00863     hwuwts.REPWT[2][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00864   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,2)",12))
00865     hwuwts.REPWT[2][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00866   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,3)",12))
00867     hwuwts.REPWT[2][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00868   else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,4)",12))
00869     hwuwts.REPWT[2][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00870   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,0)",12))
00871     hwuwts.REPWT[3][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00872   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,1)",12))
00873     hwuwts.REPWT[3][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00874   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,2)",12))
00875     hwuwts.REPWT[3][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00876   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,3)",12))
00877     hwuwts.REPWT[3][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00878   else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,4)",12))
00879     hwuwts.REPWT[3][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00880   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,0)",12))
00881     hwuwts.REPWT[3][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00882   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,1)",12))
00883     hwuwts.REPWT[3][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00884   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,2)",12))
00885     hwuwts.REPWT[3][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00886   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,3)",12))
00887     hwuwts.REPWT[3][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00888   else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,4)",12))
00889     hwuwts.REPWT[3][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00890   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,0)",12))
00891     hwuwts.REPWT[3][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00892   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,1)",12))
00893     hwuwts.REPWT[3][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00894   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,2)",12))
00895     hwuwts.REPWT[3][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00896   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,3)",12))
00897     hwuwts.REPWT[3][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00898   else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,4)",12))
00899     hwuwts.REPWT[3][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00900   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,0)",12))
00901     hwuwts.REPWT[3][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00902   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,1)",12))
00903     hwuwts.REPWT[3][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00904   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,2)",12))
00905     hwuwts.REPWT[3][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00906   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,3)",12))
00907     hwuwts.REPWT[3][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00908   else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,4)",12))
00909     hwuwts.REPWT[3][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00910   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,0)",12))
00911     hwuwts.REPWT[3][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00912   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,1)",12))
00913     hwuwts.REPWT[3][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00914   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,2)",12))
00915     hwuwts.REPWT[3][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00916   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,3)",12))
00917     hwuwts.REPWT[3][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00918   else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,4)",12))
00919     hwuwts.REPWT[3][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00920   else if(!strncmp(ParameterString.c_str(),"SNGWT",5))
00921     hwuwts.SNGWT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00922   else if(!strncmp(ParameterString.c_str(),"DECWT",5))
00923     hwuwts.DECWT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00924   else if(!strncmp(ParameterString.c_str(),"PLTCUT",6))
00925     hwdist.PLTCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00926   else if(!strncmp(ParameterString.c_str(),"VTOCDK(",7)){
00927     // we find the index ...
00928     int ind = atoi(&ParameterString[7]);  
00929     hwprop.VTOCDK[ind] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);}
00930   else if(!strncmp(ParameterString.c_str(),"VTORDK(",7)){
00931     // we find the index ...
00932     int ind = atoi(&ParameterString[7]);  
00933     hwprop.VTORDK[ind] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);}
00934   else if(!strncmp(ParameterString.c_str(),"PIPSMR",6))
00935     hwdist.PIPSMR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00936   else if(!strncmp(ParameterString.c_str(),"VIPWID(1)",9))
00937     hw6202.VIPWID[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00938   else if(!strncmp(ParameterString.c_str(),"VIPWID(2)",9))
00939     hw6202.VIPWID[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00940   else if(!strncmp(ParameterString.c_str(),"VIPWID(3)",9))
00941     hw6202.VIPWID[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00942   else if(!strncmp(ParameterString.c_str(),"MAXDKL",6))
00943     hwdist.MAXDKL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00944   else if(!strncmp(ParameterString.c_str(),"IOPDKL",6))
00945     hwdist.IOPDKL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00946   else if(!strncmp(ParameterString.c_str(),"DXRCYL",6))
00947     hw6202.DXRCYL = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00948   else if(!strncmp(ParameterString.c_str(),"DXZMAX",6))
00949     hw6202.DXZMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00950   else if(!strncmp(ParameterString.c_str(),"DXRSPH",6))
00951     hw6202.DXRSPH = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00952   //  else if(!strncmp(ParameterString.c_str(),"BDECAY",6))
00953   //    hwprch.BDECAY = ParameterString[strcspn(ParameterString.c_str(),"=")+1];  
00954   else if(!strncmp(ParameterString.c_str(),"MIXING",6))
00955     hwdist.MIXING = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00956   else if(!strncmp(ParameterString.c_str(),"XMIX(1)",7))
00957     hwdist.XMIX[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00958   else if(!strncmp(ParameterString.c_str(),"XMIX(2)",7))
00959     hwdist.XMIX[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00960   else if(!strncmp(ParameterString.c_str(),"YMIX(1)",7))
00961     hwdist.YMIX[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00962   else if(!strncmp(ParameterString.c_str(),"YMIX(2)",7))
00963     hwdist.YMIX[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);  
00964   else if(!strncmp(ParameterString.c_str(),"RMASS(198)",10))
00965     hwprop.RMASS[198] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
00966   else if(!strncmp(ParameterString.c_str(),"RMASS(199)",10))
00967     hwprop.RMASS[199] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
00968   else if(!strncmp(ParameterString.c_str(),"GAMW",4))
00969     hwpram.GAMW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
00970   else if(!strncmp(ParameterString.c_str(),"GAMZ",4))
00971     hwpram.GAMZ = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);      
00972   else if(!strncmp(ParameterString.c_str(),"RMASS(200)",10))
00973     hwprop.RMASS[200] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00974   else if(!strncmp(ParameterString.c_str(),"WZRFR",5))
00975     hw6202.WZRFR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00976   else if(!strncmp(ParameterString.c_str(),"MODBOS(",7)) {
00977     int ind = atoi(&ParameterString[7]);
00978     hwbosc.MODBOS[ind-1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00979   else if(!strncmp(ParameterString.c_str(),"RMASS(201)",10))
00980     hwprop.RMASS[201] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00981   else if(!strncmp(ParameterString.c_str(),"IOPHIG",6))
00982     hwbosc.IOPHIG = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00983   else if(!strncmp(ParameterString.c_str(),"GAMMAX",6))
00984     hwbosc.GAMMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00985   else if(!strncmp(ParameterString.c_str(),"ENHANC(",7)) {
00986     int ind = atoi(&ParameterString[7]);
00987     hwbosc.ENHANC[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00988   else if(!strncmp(ParameterString.c_str(),"RMASS(209)",10))
00989     hwprop.RMASS[209] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00990   else if(!strncmp(ParameterString.c_str(),"RMASS(215)",10))
00991     hwprop.RMASS[215] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00992   else if(!strncmp(ParameterString.c_str(),"ALPHEM",6))
00993     hwpram.ALPHEM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00994   else if(!strncmp(ParameterString.c_str(),"SWEIN",5))
00995     hwpram.SWEIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
00996   else if(!strncmp(ParameterString.c_str(),"QFCH(",5)){
00997     int ind = atoi(&ParameterString[5]);
00998     hwpram.QFCH[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00999   else if(!strncmp(ParameterString.c_str(),"AFCH(1,",7)){
01000     int ind = atoi(&ParameterString[7]); if(ind<1||ind>2) return 0;
01001     hwpram.AFCH[ind-1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01002   else if(!strncmp(ParameterString.c_str(),"AFCH(2,",7)){
01003     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01004     hwpram.AFCH[ind-1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01005   else if(!strncmp(ParameterString.c_str(),"AFCH(3,",7)){
01006     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01007     hwpram.AFCH[ind-1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01008   else if(!strncmp(ParameterString.c_str(),"AFCH(4,",7)){
01009     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01010     hwpram.AFCH[ind-1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01011   else if(!strncmp(ParameterString.c_str(),"AFCH(5,",7)){
01012     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01013     hwpram.AFCH[ind-1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01014   else if(!strncmp(ParameterString.c_str(),"AFCH(6,",7)){
01015     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01016     hwpram.AFCH[ind-1][5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01017   else if(!strncmp(ParameterString.c_str(),"AFCH(7,",7)){
01018     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01019     hwpram.AFCH[ind-1][6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01020   else if(!strncmp(ParameterString.c_str(),"AFCH(8,",7)){
01021     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01022     hwpram.AFCH[ind-1][7] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01023   else if(!strncmp(ParameterString.c_str(),"AFCH(9,",7)){
01024     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01025     hwpram.AFCH[ind-1][8] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01026   else if(!strncmp(ParameterString.c_str(),"AFCH(10,",8)){
01027     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01028     hwpram.AFCH[ind-1][9] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01029   else if(!strncmp(ParameterString.c_str(),"AFCH(11,",8)){
01030     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01031     hwpram.AFCH[ind-1][10] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01032   else if(!strncmp(ParameterString.c_str(),"AFCH(12,",8)){
01033     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01034     hwpram.AFCH[ind-1][11] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01035   else if(!strncmp(ParameterString.c_str(),"AFCH(13,",8)){
01036     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01037     hwpram.AFCH[ind-1][12] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01038   else if(!strncmp(ParameterString.c_str(),"AFCH(14,",8)){
01039     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01040     hwpram.AFCH[ind-1][13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01041   else if(!strncmp(ParameterString.c_str(),"AFCH(15,",8)){
01042     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01043     hwpram.AFCH[ind-1][14] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01044   else if(!strncmp(ParameterString.c_str(),"AFCH(16,",8)){
01045     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01046     hwpram.AFCH[ind-1][15] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01047   else if(!strncmp(ParameterString.c_str(),"VFCH(1,",7)){
01048     int ind = atoi(&ParameterString[7]); if(ind<1||ind>2) return 0;
01049     hwpram.VFCH[ind-1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01050   else if(!strncmp(ParameterString.c_str(),"VFCH(2,",7)){
01051     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01052     hwpram.VFCH[ind-1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01053   else if(!strncmp(ParameterString.c_str(),"VFCH(3,",7)){
01054     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01055     hwpram.VFCH[ind-1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01056   else if(!strncmp(ParameterString.c_str(),"VFCH(4,",7)){
01057     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01058     hwpram.VFCH[ind-1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01059   else if(!strncmp(ParameterString.c_str(),"VFCH(5,",7)){
01060     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01061     hwpram.VFCH[ind-1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01062   else if(!strncmp(ParameterString.c_str(),"VFCH(6,",7)){
01063     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01064     hwpram.VFCH[ind-1][5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01065   else if(!strncmp(ParameterString.c_str(),"VFCH(7,",7)){
01066     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01067     hwpram.VFCH[ind-1][6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01068   else if(!strncmp(ParameterString.c_str(),"VFCH(8,",7)){
01069     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01070     hwpram.VFCH[ind-1][7] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01071   else if(!strncmp(ParameterString.c_str(),"VFCH(9,",7)){
01072     int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01073     hwpram.VFCH[ind-1][8] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01074   else if(!strncmp(ParameterString.c_str(),"VFCH(10,",8)){
01075     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01076     hwpram.VFCH[ind-1][9] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01077   else if(!strncmp(ParameterString.c_str(),"VFCH(11,",8)){
01078     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01079     hwpram.VFCH[ind-1][10] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01080   else if(!strncmp(ParameterString.c_str(),"VFCH(12,",8)){
01081     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01082     hwpram.VFCH[ind-1][11] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01083   else if(!strncmp(ParameterString.c_str(),"VFCH(13,",8)){
01084     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01085     hwpram.VFCH[ind-1][12] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01086   else if(!strncmp(ParameterString.c_str(),"VFCH(14,",8)){
01087     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01088     hwpram.VFCH[ind-1][13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01089   else if(!strncmp(ParameterString.c_str(),"VFCH(15,",8)){
01090     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01091     hwpram.VFCH[ind-1][14] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01092   else if(!strncmp(ParameterString.c_str(),"VFCH(16,",8)){
01093     int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01094     hwpram.VFCH[ind-1][15] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01095   else if(!strncmp(ParameterString.c_str(),"ZPRIME",6))
01096     hwpram.ZPRIME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01097   else if(!strncmp(ParameterString.c_str(),"RMASS(202)",10))
01098     hwprop.RMASS[202] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01099   else if(!strncmp(ParameterString.c_str(),"GAMZP",5))
01100     hwpram.GAMZP = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01101   else if(!strncmp(ParameterString.c_str(),"VCKM(",5)) {
01102     int ind1 = atoi(&ParameterString[5]);
01103     if(ind1<1||ind1>3) return 0;
01104     int ind2 = atoi(&ParameterString[7]);
01105     if(ind2<1||ind2>3) return 0;
01106     hwpram.VCKM[ind2][ind1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01107   else if(!strncmp(ParameterString.c_str(),"SCABI",5))
01108     hwpram.SCABI = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01109   else if(!strncmp(ParameterString.c_str(),"EPOLN(",6)) {
01110     int ind = atoi(&ParameterString[6]);
01111     if(ind<1||ind>3) return 0;
01112     hwhard.EPOLN[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01113   else if(!strncmp(ParameterString.c_str(),"PPOLN(",6)) {
01114     int ind = atoi(&ParameterString[6]);
01115     if(ind<1||ind>3) return 0;
01116     hwhard.PPOLN[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01117   else if(!strncmp(ParameterString.c_str(),"QLIM",4))
01118     hwhard.QLIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01119   else if(!strncmp(ParameterString.c_str(),"THMAX",5))
01120     hwhard.THMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01121   else if(!strncmp(ParameterString.c_str(),"Y4JT",4))
01122     hwhard.Y4JT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01123   else if(!strncmp(ParameterString.c_str(),"DURHAM",6))
01124     hwhard.DURHAM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01125   else if(!strncmp(ParameterString.c_str(),"IOP4JT(1)",9))
01126     hwpram.IOP4JT[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01127   else if(!strncmp(ParameterString.c_str(),"IOP4JT(2)",9))
01128     hwpram.IOP4JT[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01129   else if(!strncmp(ParameterString.c_str(),"BGSHAT",6))
01130     hwhard.BGSHAT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01131   else if(!strncmp(ParameterString.c_str(),"BREIT",5))
01132     hwbrch.BREIT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01133   else if(!strncmp(ParameterString.c_str(),"USECMF",6))
01134     hwbrch.USECMF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01135   else if(!strncmp(ParameterString.c_str(),"NOSPAC",6))
01136     hwpram.NOSPAC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01137   else if(!strncmp(ParameterString.c_str(),"ISPAC",5))
01138     hwpram.ISPAC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01139   else if(!strncmp(ParameterString.c_str(),"TMNISR",6))
01140     hwhard.TMNISR = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01141   else if(!strncmp(ParameterString.c_str(),"ZMXISR",6))
01142     hwhard.ZMXISR = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01143   else if(!strncmp(ParameterString.c_str(),"ASFIXD",6))
01144     hwhard.ASFIXD = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01145   else if(!strncmp(ParameterString.c_str(),"OMEGA0",6))
01146     hwhard.OMEGA0 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01147   else if(!strncmp(ParameterString.c_str(),"IAPHIG",6))
01148     hwhard.IAPHIG = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01149   else if(!strncmp(ParameterString.c_str(),"PHOMAS",6))
01150     hwhard.PHOMAS = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);         
01151   else if(!strncmp(ParameterString.c_str(),"PRESPL",6))
01152     hw6500.PRESPL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);            
01153   else if(!strncmp(ParameterString.c_str(),"PTMIN",5))
01154     hwhard.PTMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01155   else if(!strncmp(ParameterString.c_str(),"PTMAX",5))
01156     hwhard.PTMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01157   else if(!strncmp(ParameterString.c_str(),"PTPOW",5))
01158     hwhard.PTPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01159   else if(!strncmp(ParameterString.c_str(),"YJMIN",5))
01160     hwhard.YJMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01161   else if(!strncmp(ParameterString.c_str(),"YJMAX",5))
01162     hwhard.YJMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01163   else if(!strncmp(ParameterString.c_str(),"EMMIN",5))
01164     hwhard.EMMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01165   else if(!strncmp(ParameterString.c_str(),"EMMAX",5))
01166     hwhard.EMMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01167   else if(!strncmp(ParameterString.c_str(),"EMPOW",5))
01168     hwhard.EMPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01169   else if(!strncmp(ParameterString.c_str(),"Q2MIN",5))
01170     hwhard.Q2MIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01171   else if(!strncmp(ParameterString.c_str(),"Q2MAX",5))
01172     hwhard.Q2MAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01173   else if(!strncmp(ParameterString.c_str(),"Q2POW",5))
01174     hwhard.Q2POW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01175   else if(!strncmp(ParameterString.c_str(),"YBMIN",5))
01176     hwhard.YBMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01177   else if(!strncmp(ParameterString.c_str(),"YBMAX",5))
01178     hwhard.YBMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01179   else if(!strncmp(ParameterString.c_str(),"WHMIN",5))
01180     hwhard.WHMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01181   else if(!strncmp(ParameterString.c_str(),"ZJMAX",5))
01182     hwhard.ZJMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01183   else if(!strncmp(ParameterString.c_str(),"Q2WWMN",6))
01184     hwhard.Q2WWMN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01185   else if(!strncmp(ParameterString.c_str(),"Q2WWMX",6))
01186     hwhard.Q2WWMX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01187   else if(!strncmp(ParameterString.c_str(),"YWWMIN",6))
01188     hwhard.YWWMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01189   else if(!strncmp(ParameterString.c_str(),"YWWMAX",6))
01190     hwhard.YWWMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01191   else if(!strncmp(ParameterString.c_str(),"CSPEED",6))
01192     hwpram.CSPEED = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01193   else if(!strncmp(ParameterString.c_str(),"GEV2NB",6))
01194     hwpram.GEV2NB = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01195   else if(!strncmp(ParameterString.c_str(),"IBSH",4))
01196     hwhard.IBSH = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01197   else if(!strncmp(ParameterString.c_str(),"IBRN(1)",7))
01198     hwhard.IBRN[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01199   else if(!strncmp(ParameterString.c_str(),"IBRN(2)",7))
01200     hwhard.IBRN[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01201   else if(!strncmp(ParameterString.c_str(),"NQEV",4))
01202     hwusud.NQEV = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01203   else if(!strncmp(ParameterString.c_str(),"ZBINM",5))
01204     hwpram.ZBINM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01205   else if(!strncmp(ParameterString.c_str(),"NZBIN",5))
01206     hwpram.NZBIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01207   else if(!strncmp(ParameterString.c_str(),"NBTRY",5))
01208     hwpram.NBTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01209   else if(!strncmp(ParameterString.c_str(),"NCTRY",5))
01210     hwpram.NCTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01211   else if(!strncmp(ParameterString.c_str(),"NETRY",5))
01212     hwpram.NETRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01213   else if(!strncmp(ParameterString.c_str(),"NSTRY",5))
01214     hwpram.NSTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01215   else if(!strncmp(ParameterString.c_str(),"ACCUR",5))
01216     hwusud.ACCUR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01217   else if(!strncmp(ParameterString.c_str(),"RPARTY",6))
01218     hwrpar.RPARTY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01219   else if(!strncmp(ParameterString.c_str(),"SUSYIN",6))
01220     hwsusy.SUSYIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01221   else if(!strncmp(ParameterString.c_str(),"LRSUSY",6))
01222     hw6202.LRSUSY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01223   else if(!strncmp(ParameterString.c_str(),"SYSPIN",6))
01224     hwdspn.SYSPIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01225   else if(!strncmp(ParameterString.c_str(),"THREEB",6))
01226     hwdspn.THREEB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01227   else if(!strncmp(ParameterString.c_str(),"FOURB",5))
01228     hwdspn.FOURB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01229   else if(!strncmp(ParameterString.c_str(),"LHSOFT",6))
01230     hwgupr.LHSOFT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01231   else if(!strncmp(ParameterString.c_str(),"LHGLSF",6))
01232     hwgupr.LHGLSF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01233   else if(!strncmp(ParameterString.c_str(),"OPTM",4))
01234     hw6300.OPTM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01235   else if(!strncmp(ParameterString.c_str(),"IOPSTP",6))
01236     hw6300.IOPSTP = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01237   else if(!strncmp(ParameterString.c_str(),"IOPSH",5))
01238     hw6300.IOPSH = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01239   else if(!strncmp(ParameterString.c_str(),"JMUEO",5))
01240     jmparm.JMUEO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01241   else if(!strncmp(ParameterString.c_str(),"PTJIM",5))
01242     jmparm.PTJIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01243   else if(!strncmp(ParameterString.c_str(),"JMRAD(73)",9))
01244     jmparm.JMRAD[72] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 
01245 
01246   else accepted = 0;
01247 
01248   return accepted;
01249 }

bool PomwigSource::produce ( Event e  )  [private, virtual]

Implements edm::ConfigurableInputSource.

Definition at line 443 of file PomwigSource.cc.

References conv, counter(), doMPInteraction_, evt, Exception, herwigHepMCVerbosity_, hwmsct_dummy, edm::ConfigurableInputSource::numberEventsInRun(), numTrials_, edm::Event::put(), edm::InputSource::remainingEvents(), and useJimmy_.

00443                                     {
00444 
00445   int counter = 0;
00446   double mpiok = 1.0;
00447 
00448   while(mpiok > 0.5 && counter < numTrials_) {
00449 
00450     // call herwig routines to create HEPEVT
00451     hwuine();
00452     hwepro();
00453     hwbgen();  
00454 
00455     // call jimmy ... only if event is not killed yet by HERWIG
00456     if(useJimmy_ && doMPInteraction_ && hwevnt.IERROR==0)
00457       mpiok = hwmsct_dummy(1.1);
00458     else mpiok = 0.0;
00459     counter++;
00460   }
00461   
00462   // event after numTrials MP is not ok -> skip event
00463   if(mpiok > 0.5) {
00464     LogWarning("") <<"   JIMMY could not produce MI in "<<numTrials_<<" trials.\n"<<"   Event will be skipped to prevent from deadlock.\n";
00465     return true;
00466   }  
00467   
00468   hwdhob();
00469   hwcfor();
00470   hwcdec();
00471   hwdhad();
00472   hwdhvy();
00473   hwmevt();
00474   hwufne();
00475   
00476   // if event was killed by HERWIG; skip 
00477   if(hwevnt.IERROR!=0) return true;
00478 
00479   //intCrossSect = 1000.0*survivalProbability*hwevnt.AVWGT;
00480 
00481   // -----------------  HepMC converter --------------------
00482   HepMC::IO_HERWIG conv;
00483 
00484   // HEPEVT is ok, create new HepMC event
00485   evt = new HepMC::GenEvent();
00486   bool ok = conv.fill_next_event( evt );
00487   // if conversion failed; throw excpetion and stop processing
00488   if(!ok) throw cms::Exception("HerwigError")
00489     <<" Conversion problems in event nr."<<numberEventsInRun() - remainingEvents() - 1<<".";  
00490 
00491   // set process id and event number
00492   evt->set_signal_process_id(hwproc.IPROC);  
00493   evt->set_event_number(numberEventsInRun() - remainingEvents() - 1);
00494   
00495   if (herwigHepMCVerbosity_) {
00496     LogWarning("") << "Event process = " << evt->signal_process_id() << "\n----------------------\n";
00497     evt->print();
00498   }
00499   
00500   // dummy if: event MUST be there
00501   if(evt)  {
00502     auto_ptr<HepMCProduct> bare_product(new HepMCProduct());  
00503     bare_product->addHepMCData(evt );
00504     e.put(bare_product);
00505   }
00506   
00507   return true;
00508 }

bool PomwigSource::setRngSeeds ( int  mseed  )  [private]

Definition at line 1262 of file PomwigSource.cc.

References c, i, and int.

Referenced by PomwigSource().

01263 {
01264   double temx[5];
01265   for (int i=0; i<5; i++) {
01266     mseed = mseed * 29943829 - 1;
01267     temx[i] = mseed * (1./(65536.*65536.));
01268   }
01269   long double c;
01270   c = (long double)2111111111.0 * temx[3] +
01271     1492.0 * (temx[3] = temx[2]) +
01272     1776.0 * (temx[2] = temx[1]) +
01273     5115.0 * (temx[1] = temx[0]) +
01274     temx[4];
01275   temx[4] = floorl(c);
01276   temx[0] = c - temx[4];
01277   temx[4] = temx[4] * (1./(65536.*65536.));
01278   hwevnt.NRN[0]=int(temx[0]*99999);
01279   c = (long double)2111111111.0 * temx[3] +
01280     1492.0 * (temx[3] = temx[2]) +
01281     1776.0 * (temx[2] = temx[1]) +
01282     5115.0 * (temx[1] = temx[0]) +
01283     temx[4];
01284   temx[4] = floorl(c);
01285   temx[0] = c - temx[4];
01286   hwevnt.NRN[1]=int(temx[0]*99999);
01287 
01288   return true;
01289 }


Member Data Documentation

double edm::PomwigSource::comenergy [private]

Definition at line 44 of file PomwigSource.h.

Referenced by PomwigSource().

int edm::PomwigSource::diffTopology [private]

Definition at line 56 of file PomwigSource.h.

Referenced by PomwigSource().

bool edm::PomwigSource::doMPInteraction_ [private]

Definition at line 47 of file PomwigSource.h.

Referenced by PomwigSource(), and produce().

bool edm::PomwigSource::enableForcedDecays [private]

Definition at line 57 of file PomwigSource.h.

Referenced by PomwigSource().

HepMC::GenEvent* edm::PomwigSource::evt [private]

Definition at line 39 of file PomwigSource.h.

Referenced by produce().

double edm::PomwigSource::extCrossSect [private]

Definition at line 51 of file PomwigSource.h.

Referenced by endRun().

double edm::PomwigSource::extFilterEff [private]

Definition at line 53 of file PomwigSource.h.

Referenced by endRun().

bool edm::PomwigSource::herwigHepMCVerbosity_ [private]

Definition at line 41 of file PomwigSource.h.

Referenced by PomwigSource(), and produce().

int edm::PomwigSource::herwigLhapdfVerbosity_ [private]

Definition at line 42 of file PomwigSource.h.

Referenced by PomwigSource().

int edm::PomwigSource::herwigVerbosity_ [private]

Definition at line 40 of file PomwigSource.h.

Referenced by PomwigSource().

double edm::PomwigSource::intCrossSect [private]

Definition at line 52 of file PomwigSource.h.

Referenced by endRun().

std::string edm::PomwigSource::lhapdfSetPath_ [private]

Definition at line 45 of file PomwigSource.h.

Referenced by PomwigSource().

int edm::PomwigSource::maxEventsToPrint_ [private]

Definition at line 43 of file PomwigSource.h.

Referenced by PomwigSource().

int edm::PomwigSource::numTrials_ [private]

Definition at line 49 of file PomwigSource.h.

Referenced by PomwigSource(), and produce().

bool edm::PomwigSource::printCards_ [private]

Definition at line 48 of file PomwigSource.h.

Referenced by PomwigSource().

double edm::PomwigSource::survivalProbability [private]

Definition at line 55 of file PomwigSource.h.

Referenced by endRun().

bool edm::PomwigSource::useJimmy_ [private]

Definition at line 46 of file PomwigSource.h.

Referenced by clear(), PomwigSource(), and produce().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:42:59 2009 for CMSSW by  doxygen 1.5.4