00001
00002
00003
00004
00005
00006
00007
00008 #include "GeneratorInterface/PomwigInterface/interface/PomwigSource.h"
00009 #include "GeneratorInterface/PomwigInterface/interface/Dummies.h"
00010 #include "GeneratorInterface/PomwigInterface/interface/HWRGEN.h"
00011
00012 #include "SimDataFormats/HepMCProduct/interface/HepMCProduct.h"
00013
00014 #include "FWCore/Framework/interface/Event.h"
00015 #include "FWCore/Utilities/interface/RandomNumberGenerator.h"
00016 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00017 #include "SimDataFormats/HepMCProduct/interface/GenInfoProduct.h"
00018 #include "FWCore/Framework/interface/Run.h"
00019
00020 #include <iostream>
00021 #include "time.h"
00022 #include <ctype.h>
00023
00024 using namespace edm;
00025 using namespace std;
00026
00027 #include "HepMC/HerwigWrapper6_4.h"
00028 #include "HepMC/IO_HERWIG.h"
00029
00030
00031 #include "herwig.h"
00032
00033
00034 extern"C" {
00035 void setpdfpath_(char*,int*);
00036 void mysetpdfpath_(char*);
00037 void setlhaparm_(char*);
00038 void setherwpdf_(void);
00039
00040 void cmsending_(int*);
00041 }
00042
00043 #define setpdfpath setpdfpath_
00044 #define mysetpdfpath mysetpdfpath_
00045 #define setlhaparm setlhaparm_
00046 #define setherwpdf setherwpdf_
00047 #define cmsending cmsending_
00048
00049
00050 PomwigSource::PomwigSource( const ParameterSet & pset,
00051 InputSourceDescription const& desc ) :
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
00078
00079
00080
00081
00082
00083
00084
00085
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
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
00116 hwudat();
00117
00118
00119 hwproc.PBEAM1 = comenergy/2.;
00120 hwproc.PBEAM2 = comenergy/2.;
00121
00122 switch (diffTopology){
00123 case 0:
00124 hwbmch.PART1[0] = 'E';
00125 hwbmch.PART1[1] = '-';
00126 hwbmch.PART2[0] = 'E';
00127 hwbmch.PART2[1] = '-';
00128 break;
00129 case 1:
00130 hwbmch.PART1[0] = 'E';
00131 hwbmch.PART1[1] = '-';
00132 hwbmch.PART2[0] = 'P';
00133 hwbmch.PART2[1] = ' ';
00134 break;
00135 case 2:
00136 hwbmch.PART1[0] = 'P';
00137 hwbmch.PART1[1] = ' ';
00138 hwbmch.PART2[0] = 'E';
00139 hwbmch.PART2[1] = '-';
00140 break;
00141 case 3:
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
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
00171 hwevnt.MAXPR = maxEventsToPrint_;
00172 hwpram.IPRINT = herwigVerbosity_;
00173 hwprop.RMASS[6] = 175.0;
00174
00175
00176 ParameterSet herwig_params =
00177 pset.getParameter<ParameterSet>("HerwigParameters") ;
00178
00179
00180 vector<string> setNames =
00181 herwig_params.getParameter<vector<string> >("parameterSets");
00182
00183
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
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
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
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
00237 hwuinc();
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
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
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
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
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
00339
00340
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
00355
00356
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
00371
00372
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
00387
00388
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 }
00421
00422
00423 PomwigSource::~PomwigSource(){
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 }
00435
00436 void PomwigSource::clear() {
00437
00438 hwefin();
00439 if(useJimmy_) jmefin();
00440 }
00441
00442
00443 bool PomwigSource::produce(Event & e) {
00444
00445 int counter = 0;
00446 double mpiok = 1.0;
00447
00448 while(mpiok > 0.5 && counter < numTrials_) {
00449
00450
00451 hwuine();
00452 hwepro();
00453 hwbgen();
00454
00455
00456 if(useJimmy_ && doMPInteraction_ && hwevnt.IERROR==0)
00457 mpiok = hwmsct_dummy(1.1);
00458 else mpiok = 0.0;
00459 counter++;
00460 }
00461
00462
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
00477 if(hwevnt.IERROR!=0) return true;
00478
00479
00480
00481
00482 HepMC::IO_HERWIG conv;
00483
00484
00485 evt = new HepMC::GenEvent();
00486 bool ok = conv.fill_next_event( evt );
00487
00488 if(!ok) throw cms::Exception("HerwigError")
00489 <<" Conversion problems in event nr."<<numberEventsInRun() - remainingEvents() - 1<<".";
00490
00491
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
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 }
00509
00510
00511
00512 bool PomwigSource::hwgive(const std::string& ParameterString) {
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
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
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
00953
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 }
01250
01251 #ifdef NEVER
01252
01253
01254 #define hwaend hwaend_
01255
01256 extern "C" {
01257 void hwaend(){}
01258 }
01259
01260 #endif
01261
01262 bool PomwigSource::setRngSeeds(int mseed)
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 }
01290
01291 void PomwigSource::endRun(Run & r) {
01292
01293 auto_ptr<GenInfoProduct> giprod (new GenInfoProduct());
01294
01295
01296
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 }
01310
01311
01312
01313
01314
01315 #ifdef NEVER
01316 extern "C" {
01317 void cmsending_(int* ecode) {
01318 LogError("")<<" ERROR: Herwig stoped run after recieving error code "<<*ecode<<".\n";
01319 throw cms::Exception("HerwigError") <<" Herwig stoped run with error code "<<*ecode<<".";
01320 }
01321 }
01322 #endif