00001
00002
00003
00004
00005
00006
00007 #include "PomwigProducer.h"
00008 #include "Dummies.h"
00009 #include "HWRGEN.h"
00010
00011 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
00012 #include "SimDataFormats/GeneratorProducts/interface/GenRunInfoProduct.h"
00013 #include "SimDataFormats/GeneratorProducts/interface/GenEventInfoProduct.h"
00014
00015 #include "FWCore/Framework/interface/Event.h"
00016 #include "FWCore/ServiceRegistry/interface/Service.h"
00017 #include "FWCore/Utilities/interface/RandomNumberGenerator.h"
00018 #include "CLHEP/Random/JamesRandom.h"
00019 #include "CLHEP/Random/RandFlat.h"
00020 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00021 #include "FWCore/Framework/interface/Run.h"
00022
00023 #include "FWCore/Framework/interface/MakerMacros.h"
00024
00025 #include <iostream>
00026 #include "time.h"
00027 #include <ctype.h>
00028
00029 using namespace edm;
00030 using namespace std;
00031
00032 #include "HepMC/HerwigWrapper.h"
00033 #include "HepMC/IO_HERWIG.h"
00034 #include "HepMC/HEPEVT_Wrapper.h"
00035
00036
00037 #include "herwig.h"
00038
00039 extern"C" {
00040 void setpdfpath_(char*,int*);
00041 void mysetpdfpath_(char*);
00042 void setlhaparm_(char*);
00043 void setherwpdf_(void);
00044
00045 void cmsending_(int*);
00046 }
00047
00048 #define setpdfpath setpdfpath_
00049 #define mysetpdfpath mysetpdfpath_
00050 #define setlhaparm setlhaparm_
00051 #define setherwpdf setherwpdf_
00052 #define cmsending cmsending_
00053
00054
00055 PomwigProducer::PomwigProducer( const ParameterSet & pset) :
00056 EDProducer(), evt(0),
00057 herwigVerbosity_ (pset.getUntrackedParameter<int>("herwigVerbosity",0)),
00058 herwigHepMCVerbosity_ (pset.getUntrackedParameter<bool>("herwigHepMCVerbosity",false)),
00059 herwigLhapdfVerbosity_ (pset.getUntrackedParameter<int>("herwigLhapdfVerbosity",0)),
00060 maxEventsToPrint_ (pset.getUntrackedParameter<int>("maxEventsToPrint",0)),
00061 comEnergy_(pset.getParameter<double>("comEnergy")),
00062 printCards_(pset.getUntrackedParameter<bool>("printCards",false)),
00063 extCrossSect_(pset.getUntrackedParameter<double>("crossSection", -1.)),
00064 extFilterEff_(pset.getUntrackedParameter<double>("filterEfficiency", -1.)),
00065 survivalProbability_(pset.getParameter<double>("survivalProbability")),
00066 diffTopology_(pset.getParameter<int>("diffTopology")),
00067 h1fit_(pset.getParameter<int>("h1fit")),
00068 enableForcedDecays_(pset.getUntrackedParameter<bool>("enableForcedDecays",false)),
00069 eventNumber_(0)
00070 {
00071 useJimmy_ = false;
00072 numTrials_ = 100;
00073 doMPInteraction_ = false;
00074
00075 std::ostringstream header_str;
00076
00077 header_str << "----------------------------------------------\n";
00078 header_str << "Initializing PomwigProducer\n";
00079 header_str << "----------------------------------------------\n";
00080
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093 header_str << " Herwig verbosity level = " << herwigVerbosity_ << "\n";
00094 header_str << " LHAPDF verbosity level = " << herwigLhapdfVerbosity_ << "\n";
00095 header_str << " HepMC verbosity = " << herwigHepMCVerbosity_ << "\n";
00096 header_str << " Number of events to be printed = " << maxEventsToPrint_ << "\n";
00097
00098
00099 if(useJimmy_) {
00100 header_str << " HERWIG will be using JIMMY for UE/MI." << "\n";
00101 if(doMPInteraction_)
00102 header_str << " JIMMY trying to generate multiple interactions." << "\n";
00103 }
00104
00105
00106 char* lhaPdfs = NULL;
00107 header_str <<" Trying to find LHAPATH in environment ...";
00108 lhaPdfs = getenv("LHAPATH");
00109 std::string lhapdfSetPath = std::string(lhaPdfs);
00110 if(lhaPdfs != NULL) {
00111 header_str << " done.\n";
00112 header_str << " Using "<< lhapdfSetPath << "\n";
00113 }
00114 else{
00115 throw edm::Exception(edm::errors::Configuration,"PomwigError")
00116 << " Could not find LHAPATH";
00117 }
00118
00119
00120 hwudat();
00121
00122
00123 hwproc.PBEAM1 = comEnergy_/2.;
00124 hwproc.PBEAM2 = comEnergy_/2.;
00125
00126 switch (diffTopology_){
00127 case 0:
00128 hwbmch.PART1[0] = 'E';
00129 hwbmch.PART1[1] = '-';
00130 hwbmch.PART2[0] = 'E';
00131 hwbmch.PART2[1] = '-';
00132 break;
00133 case 1:
00134 hwbmch.PART1[0] = 'E';
00135 hwbmch.PART1[1] = '-';
00136 hwbmch.PART2[0] = 'P';
00137 hwbmch.PART2[1] = ' ';
00138 break;
00139 case 2:
00140 hwbmch.PART1[0] = 'P';
00141 hwbmch.PART1[1] = ' ';
00142 hwbmch.PART2[0] = 'E';
00143 hwbmch.PART2[1] = '-';
00144 break;
00145 case 3:
00146 hwbmch.PART1[0] = 'P';
00147 hwbmch.PART1[1] = ' ';
00148 hwbmch.PART2[0] = 'P';
00149 hwbmch.PART2[1] = ' ';
00150 break;
00151 default:
00152 throw edm::Exception(edm::errors::Configuration,"PomwigError")
00153 <<" Invalid Diff. Topology. Must be DPE(diffTopology = 0), SD particle 1 (diffTopology = 1), SD particle 2 (diffTopology = 2) and Non diffractive (diffTopology = 3)";
00154 break;
00155 }
00156 for(int i=2;i<8;++i){
00157 hwbmch.PART1[i] = ' ';
00158 hwbmch.PART2[i] = ' ';}
00159
00160 if(useJimmy_) jmparm.MSFLAG = 1;
00161
00162
00163 hwigin();
00164
00165 hwevnt.MAXER = 100000000;
00166 hwpram.LWSUD = 0;
00167 hwdspn.LWDEC = 0;
00168
00169
00170 header_str << " MAXER set to " << hwevnt.MAXER << "\n";
00171
00172 if(useJimmy_) jimmin();
00173
00174
00175 hwevnt.MAXPR = maxEventsToPrint_;
00176 hwpram.IPRINT = herwigVerbosity_;
00177
00178
00179 ParameterSet herwig_params =
00180 pset.getParameter<ParameterSet>("HerwigParameters") ;
00181
00182
00183 vector<string> setNames =
00184 herwig_params.getParameter<vector<string> >("parameterSets");
00185
00186
00187 for ( unsigned i=0; i<setNames.size(); ++i ) {
00188 string mySet = setNames[i];
00189 vector<string> pars =
00190 herwig_params.getParameter<vector<string> >(mySet);
00191
00192 header_str << "----------------------------------------------" << "\n";
00193 header_str << "Read HERWIG parameter set " << mySet << "\n";
00194 header_str << "----------------------------------------------" << "\n";
00195
00196
00197 for(const std::string &par : pars) {
00198 constexpr char const *sRandomValueSetting1 = "NRN(1)";
00199 constexpr char const *sRandomValueSetting2 = "NRN(2)";
00200 if( (0 == strcmp(par.c_str(), sRandomValueSetting1) )||(0 == strcmp(par.c_str(), sRandomValueSetting2))) {
00201 throw edm::Exception(edm::errors::Configuration,"HerwigError")
00202 <<" attempted to set random number using pythia command 'NRN(.)'. This is not allowed.\n Please use the RandomNumberGeneratorService to set the random number seed.";
00203 }
00204
00205 if( ! hwgive(par) ) {
00206 throw edm::Exception(edm::errors::Configuration,"HerwigError")
00207 <<" herwig did not accept the following \""<< par <<"\"";
00208 }
00209 else if(printCards_)
00210 header_str << " " << par << "\n";
00211 }
00212 }
00213
00214
00215 header_str << "----------------------------------------------" << "\n";
00216 header_str << "Setting Herwig random number generator seeds" << "\n";
00217 header_str << "----------------------------------------------" << "\n";
00218 edm::Service<RandomNumberGenerator> rng;
00219 int wwseed = rng->mySeed();
00220 randomEngine = fRandomEngine = &(rng->getEngine());
00221 bool rngok = setRngSeeds(wwseed);
00222 if(!rngok)
00223 throw edm::Exception(edm::errors::Configuration,"HerwigError")
00224 <<" Impossible error in setting 'NRN(.)'.";
00225 header_str << " NRN(1) = " << hwevnt.NRN[0] << "\n";
00226 header_str << " NRN(2) = " << hwevnt.NRN[1] << "\n";
00227
00228
00229 setherwpdf();
00230 char pdfpath[232];
00231 int pathlen = lhapdfSetPath.length();
00232 for(int i=0; i<pathlen; ++i)
00233 pdfpath[i]=lhapdfSetPath.at(i);
00234 for(int i=pathlen; i<232; ++i)
00235 pdfpath[i]=' ';
00236 mysetpdfpath(pdfpath);
00237
00238
00239 hwuinc();
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260 if(enableForcedDecays_){
00261 header_str << "\n----------------------------------------------" << "\n";
00262 header_str << "HWMODK will be called to force decays" << "\n";
00263 header_str << "----------------------------------------------" << "\n";
00264
00265 ParameterSet fdecays_pset = pset.getParameter<ParameterSet>("ForcedDecaysParameters") ;
00266 vector<int> defidktmp ;
00267 defidktmp.push_back(0) ;
00268 std::vector<int> idktmp = fdecays_pset.getUntrackedParameter< vector<int> >("Idktmp", defidktmp);
00269 vector<double> defbrtmp ;
00270 defbrtmp.push_back(0) ;
00271 std::vector<double> brtmp = fdecays_pset.getUntrackedParameter< vector<double> >("Brtmp",defbrtmp);
00272 vector<int> defimetmp ;
00273 defimetmp.push_back(0) ;
00274 std::vector<int> imetmp = fdecays_pset.getUntrackedParameter< vector<int> >("Imetmp",defimetmp);
00275 vector<int> defiatmp ;
00276 defiatmp.push_back(0) ;
00277 std::vector<int> iatmp = fdecays_pset.getUntrackedParameter< vector<int> >("Iatmp",defiatmp);
00278 vector<int> defibtmp ;
00279 defibtmp.push_back(0) ;
00280 std::vector<int> ibtmp = fdecays_pset.getUntrackedParameter< vector<int> >("Ibtmp",defibtmp);
00281 vector<int> defictmp ;
00282 defictmp.push_back(0) ;
00283 std::vector<int> ictmp = fdecays_pset.getUntrackedParameter< vector<int> >("Ictmp",defictmp);
00284 vector<int> defidtmp ;
00285 defidtmp.push_back(0) ;
00286 std::vector<int> idtmp = fdecays_pset.getUntrackedParameter< vector<int> >("Idtmp",defidtmp);
00287 vector<int> defietmp ;
00288 defietmp.push_back(0) ;
00289 std::vector<int> ietmp = fdecays_pset.getUntrackedParameter< vector<int> >("Ietmp",defietmp);
00290
00291 for (unsigned int i = 0; i < idktmp.size(); i++){
00292 int idktmp1 = idktmp[i];
00293 double brtmp1 = brtmp[i];
00294 int imetmp1 = imetmp[i];
00295 int iatmp1 = iatmp[i];
00296 int ibtmp1 = ibtmp[i];
00297 int ictmp1 = ictmp[i];
00298 int idtmp1 = idtmp[i];
00299 int ietmp1 = ietmp[i];
00300
00301 header_str << " Forcing decay " << idktmp1 << "->" << iatmp1 << "+"
00302 << ibtmp1 << "+"
00303 << ictmp1 << "+"
00304 << idtmp1 << "+"
00305 << ietmp1 << " with BR " << brtmp1 << "\n";
00306 hwmodk(idktmp1, brtmp1, imetmp1, iatmp1, ibtmp1, ictmp1, idtmp1, ietmp1);
00307 }
00308 }
00309
00310 hwusta("PI0 ",1);
00311
00312
00313 if(diffTopology_ != 3){
00314 int nstru = hwpram.NSTRU;
00315 int ifit = h1fit_;
00316 if(nstru == 9){
00317 if((ifit <= 0)||(ifit >= 7)){
00318 throw edm::Exception(edm::errors::Configuration,"PomwigError")
00319 <<" Attempted to set non existant H1 1997 fit index. Has to be 1...6";
00320 }
00321 cout << " H1 1997 pomeron pdf's" << endl;
00322 cout << " IFIT = "<< ifit << endl;
00323 double xp = 0.1;
00324 double Q2 = 75.0;
00325 double xpq[13];
00326 qcd_1994(xp,Q2,xpq,ifit);
00327 } else if(nstru == 10){
00328 if((ifit <= 0)||(ifit >= 7)){
00329 throw edm::Exception(edm::errors::Configuration,"PomwigError")
00330 <<" Attempted to set non existant H1 1997 fit index. Has to be 1...6";
00331 }
00332 cout << " H1 1997 reggeon pdf's" << endl;
00333 cout << " IFIT = "<< ifit << endl;
00334 double xp = 0.1;
00335 double Q2 = 75.0;
00336 double xpq[13];
00337 qcd_1994(xp,Q2,xpq,ifit);
00338
00339 } else if(nstru == 12){
00340
00341
00342
00343
00344 ifit = 1;
00345 cout << " H1 2006 A pomeron pdf's" << endl;
00346 cout << " IFIT = "<< ifit <<endl;
00347 double xp = 0.1;
00348 double Q2 = 75.0;
00349 double xpq[13];
00350 double f2[2];
00351 double fl[2];
00352 double c2[2];
00353 double cl[2];
00354 qcd_2006(xp,Q2,ifit,xpq,f2,fl,c2,cl);
00355 } else if(nstru == 13){
00356
00357
00358
00359
00360 ifit = 1;
00361 cout << " H1 2006 A reggeon pdf's" << endl;
00362 cout << " IFIT = "<< ifit <<endl;
00363 double xp = 0.1;
00364 double Q2 = 75.0;
00365 double xpq[13];
00366 double f2[2];
00367 double fl[2];
00368 double c2[2];
00369 double cl[2];
00370 qcd_2006(xp,Q2,ifit,xpq,f2,fl,c2,cl);
00371 } else if(nstru == 14){
00372
00373
00374
00375
00376 ifit = 2;
00377 cout << " H1 2006 B pomeron pdf's" << endl;
00378 cout << " IFIT = "<< ifit <<endl;
00379 double xp = 0.1;
00380 double Q2 = 75.0;
00381 double xpq[13];
00382 double f2[2];
00383 double fl[2];
00384 double c2[2];
00385 double cl[2];
00386 qcd_2006(xp,Q2,ifit,xpq,f2,fl,c2,cl);
00387 } else if(nstru == 15){
00388
00389
00390
00391
00392 ifit = 2;
00393 cout << " H1 2006 B reggeon pdf's" << endl;
00394 cout << " IFIT = "<< ifit <<endl;
00395 double xp = 0.1;
00396 double Q2 = 75.0;
00397 double xpq[13];
00398 double f2[2];
00399 double fl[2];
00400 double c2[2];
00401 double cl[2];
00402 qcd_2006(xp,Q2,ifit,xpq,f2,fl,c2,cl);
00403 } else{
00404 throw edm::Exception(edm::errors::Configuration,"PomwigError")
00405 <<" 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)";
00406 }
00407 }
00408
00409 hweini();
00410 if(useJimmy_) jminit();
00411
00412 produces<HepMCProduct>();
00413 produces<GenEventInfoProduct>();
00414 produces<GenRunInfoProduct, edm::InRun>();
00415
00416 header_str << "\n----------------------------------------------" << "\n";
00417 header_str << "Starting event generation" << "\n";
00418 header_str << "----------------------------------------------" << "\n";
00419
00420 edm::LogInfo("")<<header_str.str();
00421
00422
00423 }
00424
00425
00426 PomwigProducer::~PomwigProducer(){
00427
00428 std::ostringstream footer_str;
00429
00430 footer_str << "----------------------------------------------" << "\n";
00431 footer_str << "Event generation done" << "\n";
00432 footer_str << "----------------------------------------------" << "\n";
00433
00434 LogInfo("") << footer_str.str();
00435
00436 clear();
00437 }
00438
00439 void PomwigProducer::clear() {
00440
00441 hwefin();
00442 if(useJimmy_) jmefin();
00443 }
00444
00445
00446 void PomwigProducer::produce(Event & e, const EventSetup& es) {
00447
00448 int counter = 0;
00449 double mpiok = 1.0;
00450
00451 while(mpiok > 0.5 && counter < numTrials_) {
00452
00453
00454 hwuine();
00455 hwepro();
00456 hwbgen();
00457
00458
00459 if(useJimmy_ && doMPInteraction_ && hwevnt.IERROR==0)
00460 mpiok = hwmsct_dummy(1.1);
00461 else mpiok = 0.0;
00462 counter++;
00463 }
00464
00465
00466 if(mpiok > 0.5) {
00467 LogWarning("") <<" JIMMY could not produce MI in "<<numTrials_<<" trials.\n"<<" Event will be skipped to prevent from deadlock.\n";
00468
00469
00470
00471
00472 std::ostringstream sstr;
00473 sstr << "PomwigProducer: JIMMY could not produce MI in " << numTrials_ << " trials.\n";
00474 edm::Exception except(edm::errors::EventCorruption, sstr.str());
00475 throw except;
00476 }
00477
00478 hwdhob();
00479 hwcfor();
00480 hwcdec();
00481 hwdhad();
00482 hwdhvy();
00483 hwmevt();
00484 hwufne();
00485
00486
00487 if(hwevnt.IERROR!=0) {
00488 std::ostringstream sstr;
00489 sstr << "PomwigProducer: HERWIG indicates a failure. Abandon the event.\n";
00490 edm::Exception except(edm::errors::EventCorruption, sstr.str());
00491 throw except;
00492 }
00493
00494
00495
00496
00497
00498 evt = new HepMC::GenEvent();
00499 bool ok = conv.fill_next_event( evt );
00500
00501 if(!ok) throw cms::Exception("HerwigError")
00502 <<" Conversion problems in event nr."<< eventNumber_ << ".";
00503
00504
00505 evt->set_signal_process_id(hwproc.IPROC);
00506 evt->set_event_number(eventNumber_);
00507
00508 if (herwigHepMCVerbosity_) {
00509 LogWarning("") << "Event process = " << evt->signal_process_id() << "\n----------------------\n";
00510 evt->print();
00511 }
00512
00513
00514 if(evt) {
00515 auto_ptr<HepMCProduct> bare_product(new HepMCProduct());
00516 bare_product->addHepMCData(evt );
00517 e.put(bare_product);
00518 }
00519
00520 std::auto_ptr<GenEventInfoProduct> genEventInfo(new GenEventInfoProduct(evt));
00521 e.put(genEventInfo);
00522
00523 return;
00524 }
00525
00526
00527
00528 bool PomwigProducer::hwgive(const std::string& ParameterString) {
00529 bool accepted = 1;
00530
00531 if(!strncmp(ParameterString.c_str(),"IPROC",5)) {
00532 hwproc.IPROC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00533 if(hwproc.IPROC<0) {
00534 throw cms::Exception("HerwigError")
00535 <<" Attempted to set IPROC to a negative value. This is not allowed.\n Please use the McatnloProducer to cope with negative valued IPROCs.";
00536 }
00537 }
00538 else if(!strncmp(ParameterString.c_str(),"AUTPDF(",7)){
00539 LogWarning("") <<" WARNING: AUTPDF parameter *not* suported. HERWIG will use LHAPDF."<<"\n";
00540 }
00541 else if(!strncmp(ParameterString.c_str(),"TAUDEC",6)){
00542 int tostart=0;
00543 while(ParameterString.c_str()[tostart]!='=') tostart++;
00544 tostart++;
00545 while(ParameterString.c_str()[tostart]==' ') tostart++;
00546 int todo = 0;
00547 while(ParameterString.c_str()[todo+tostart]!='\0') {
00548 hwdspn.TAUDEC[todo]=ParameterString.c_str()[todo+tostart];
00549 todo++;
00550 }
00551 if(todo != 6) {
00552 throw cms::Exception("HerwigError")
00553 <<" Attempted to set TAUDEC to "<<hwdspn.TAUDEC<<". This is not allowed.\n Options for TAUDEC are HERWIG and TAUOLA.";
00554 }
00555 }
00556 else if(!strncmp(ParameterString.c_str(),"BDECAY",6)){
00557 LogWarning("")<<" WARNING: BDECAY parameter *not* suported. HERWIG will use default b decay."<<"\n";
00558 }
00559 else if(!strncmp(ParameterString.c_str(),"QCDLAM",6))
00560 hwpram.QCDLAM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00561 else if(!strncmp(ParameterString.c_str(),"VQCUT",5))
00562 hwpram.VQCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00563 else if(!strncmp(ParameterString.c_str(),"VGCUT",5))
00564 hwpram.VGCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00565 else if(!strncmp(ParameterString.c_str(),"VPCUT",5))
00566 hwpram.VPCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00567 else if(!strncmp(ParameterString.c_str(),"CLMAX",5))
00568 hwpram.CLMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00569 else if(!strncmp(ParameterString.c_str(),"CLPOW",5))
00570 hwpram.CLPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00571 else if(!strncmp(ParameterString.c_str(),"PSPLT(1)",8))
00572 hwpram.PSPLT[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00573 else if(!strncmp(ParameterString.c_str(),"PSPLT(2)",8))
00574 hwpram.PSPLT[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00575 else if(!strncmp(ParameterString.c_str(),"QDIQK",5))
00576 hwpram.QDIQK = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00577 else if(!strncmp(ParameterString.c_str(),"PDIQK",5))
00578 hwpram.PDIQK = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00579 else if(!strncmp(ParameterString.c_str(),"QSPAC",5))
00580 hwpram.QSPAC = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00581 else if(!strncmp(ParameterString.c_str(),"PTRMS",5))
00582 hwpram.PTRMS = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00583 else if(!strncmp(ParameterString.c_str(),"IPRINT",6))
00584 hwpram.IPRINT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00585 else if(!strncmp(ParameterString.c_str(),"PRVTX",5))
00586 hwpram.PRVTX = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00587 else if(!strncmp(ParameterString.c_str(),"NPRFMT",6))
00588 hwpram.NPRFMT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00589 else if(!strncmp(ParameterString.c_str(),"PRNDEC",6))
00590 hwpram.PRNDEC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00591 else if(!strncmp(ParameterString.c_str(),"PRNDEF",6))
00592 hwpram.PRNDEF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00593 else if(!strncmp(ParameterString.c_str(),"PRNTEX",6))
00594 hwpram.PRNTEX = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00595 else if(!strncmp(ParameterString.c_str(),"PRNWEB",6))
00596 hwpram.PRNWEB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00597 else if(!strncmp(ParameterString.c_str(),"MAXPR",5))
00598 hwevnt.MAXPR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00599 else if(!strncmp(ParameterString.c_str(),"MAXER",5))
00600 hwevnt.MAXER = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00601 else if(!strncmp(ParameterString.c_str(),"LWEVT",5))
00602 hwevnt.LWEVT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00603 else if(!strncmp(ParameterString.c_str(),"LRSUD",5))
00604 hwpram.LRSUD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00605 else if(!strncmp(ParameterString.c_str(),"LWSUD",5))
00606 hwpram.LWSUD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00607 else if(!strncmp(ParameterString.c_str(),"NRN(1)",6))
00608 hwevnt.NRN[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00609 else if(!strncmp(ParameterString.c_str(),"NRN(2)",6))
00610 hwevnt.NRN[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00611 else if(!strncmp(ParameterString.c_str(),"WGTMAX",6))
00612 hwevnt.WGTMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00613 else if(!strncmp(ParameterString.c_str(),"NOWGT",5))
00614 hwevnt.NOWGT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00615 else if(!strncmp(ParameterString.c_str(),"AVWGT",5))
00616 hwevnt.AVWGT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00617 else if(!strncmp(ParameterString.c_str(),"AZSOFT",6))
00618 hwpram.AZSOFT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00619 else if(!strncmp(ParameterString.c_str(),"AZSPIN",6))
00620 hwpram.AZSPIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00621 else if(!strncmp(ParameterString.c_str(),"HARDME",6))
00622 hwpram.HARDME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00623 else if(!strncmp(ParameterString.c_str(),"SOFTME",6))
00624 hwpram.SOFTME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00625 else if(!strncmp(ParameterString.c_str(),"GCUTME",6))
00626 hwpram.GCUTME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00627 else if(!strncmp(ParameterString.c_str(),"NCOLO",5))
00628 hwpram.NCOLO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00629 else if(!strncmp(ParameterString.c_str(),"NFLAV",5))
00630 hwpram.NFLAV = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00631 else if(!strncmp(ParameterString.c_str(),"MODPDF(1)",9))
00632 hwpram.MODPDF[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00633 else if(!strncmp(ParameterString.c_str(),"MODPDF(2)",9))
00634 hwpram.MODPDF[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00635 else if(!strncmp(ParameterString.c_str(),"NSTRU",5))
00636 hwpram.NSTRU = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00637 else if(!strncmp(ParameterString.c_str(),"PRSOF",5))
00638 hwpram.PRSOF = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00639 else if(!strncmp(ParameterString.c_str(),"ENSOF",5))
00640 hwpram.ENSOF = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00641 else if(!strncmp(ParameterString.c_str(),"IOPREM",6))
00642 hwpram.IOPREM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00643 else if(!strncmp(ParameterString.c_str(),"BTCLM",5))
00644 hwpram.BTCLM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00645 else if(!strncmp(ParameterString.c_str(),"ETAMIX",6))
00646 hwpram.ETAMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00647 else if(!strncmp(ParameterString.c_str(),"PHIMIX",6))
00648 hwpram.PHIMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00649 else if(!strncmp(ParameterString.c_str(),"H1MIX",5))
00650 hwpram.H1MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00651 else if(!strncmp(ParameterString.c_str(),"F0MIX",5))
00652 hwpram.F0MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00653 else if(!strncmp(ParameterString.c_str(),"F1MIX",5))
00654 hwpram.F1MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00655 else if(!strncmp(ParameterString.c_str(),"F2MIX",5))
00656 hwpram.F2MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00657 else if(!strncmp(ParameterString.c_str(),"ET2MIX",6))
00658 hwpram.ET2MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00659 else if(!strncmp(ParameterString.c_str(),"OMHMIX",6))
00660 hwpram.OMHMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00661 else if(!strncmp(ParameterString.c_str(),"PH3MIX",6))
00662 hwpram.PH3MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00663 else if(!strncmp(ParameterString.c_str(),"B1LIM",5))
00664 hwpram.B1LIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00665 else if(!strncmp(ParameterString.c_str(),"CLDIR(1)",8))
00666 hwpram.CLDIR[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00667 else if(!strncmp(ParameterString.c_str(),"CLDIR(2)",8))
00668 hwpram.CLDIR[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00669 else if(!strncmp(ParameterString.c_str(),"CLSMR(1)",8))
00670 hwpram.CLSMR[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00671 else if(!strncmp(ParameterString.c_str(),"CLSMR(2)",8))
00672 hwpram.CLSMR[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00673 else if(!strncmp(ParameterString.c_str(),"RMASS(1)",8))
00674 hwprop.RMASS[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00675 else if(!strncmp(ParameterString.c_str(),"RMASS(2)",8))
00676 hwprop.RMASS[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00677 else if(!strncmp(ParameterString.c_str(),"RMASS(3)",8))
00678 hwprop.RMASS[3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00679 else if(!strncmp(ParameterString.c_str(),"RMASS(4)",8))
00680 hwprop.RMASS[4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00681 else if(!strncmp(ParameterString.c_str(),"RMASS(5)",8))
00682 hwprop.RMASS[5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00683 else if(!strncmp(ParameterString.c_str(),"RMASS(6)",8))
00684 hwprop.RMASS[6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00685 else if(!strncmp(ParameterString.c_str(),"RMASS(13)",9))
00686 hwprop.RMASS[13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00687 else if(!strncmp(ParameterString.c_str(),"SUDORD",6))
00688 hwusud.SUDORD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00689 else if(!strncmp(ParameterString.c_str(),"INTER",5))
00690 hwusud.INTER = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00691 else if(!strncmp(ParameterString.c_str(),"NEGWTS",6))
00692 hw6203.NEGWTS = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00693 else if(!strncmp(ParameterString.c_str(),"PMBN1",5))
00694 hwminb.PMBN1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00695 else if(!strncmp(ParameterString.c_str(),"PMBN2",5))
00696 hwminb.PMBN2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00697 else if(!strncmp(ParameterString.c_str(),"PMBN3",5))
00698 hwminb.PMBN3 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00699 else if(!strncmp(ParameterString.c_str(),"PMBK1",5))
00700 hwminb.PMBK1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00701 else if(!strncmp(ParameterString.c_str(),"PMBK2",5))
00702 hwminb.PMBK2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00703 else if(!strncmp(ParameterString.c_str(),"PMBM1",5))
00704 hwminb.PMBM1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00705 else if(!strncmp(ParameterString.c_str(),"PMBM2",5))
00706 hwminb.PMBM2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00707 else if(!strncmp(ParameterString.c_str(),"PMBP1",5))
00708 hwminb.PMBP1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00709 else if(!strncmp(ParameterString.c_str(),"PMBP2",5))
00710 hwminb.PMBP2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00711 else if(!strncmp(ParameterString.c_str(),"PMBP3",5))
00712 hwminb.PMBP3 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00713 else if(!strncmp(ParameterString.c_str(),"VMIN2",5))
00714 hwdist.VMIN2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00715 else if(!strncmp(ParameterString.c_str(),"EXAG",4))
00716 hwdist.EXAG = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00717 else if(!strncmp(ParameterString.c_str(),"PRECO",5))
00718 hwuclu.PRECO = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00719 else if(!strncmp(ParameterString.c_str(),"CLRECO",6))
00720 hwuclu.CLRECO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00721 else if(!strncmp(ParameterString.c_str(),"PWT(1)",6))
00722 hwuwts.PWT[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00723 else if(!strncmp(ParameterString.c_str(),"PWT(2)",6))
00724 hwuwts.PWT[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00725 else if(!strncmp(ParameterString.c_str(),"PWT(3)",6))
00726 hwuwts.PWT[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00727 else if(!strncmp(ParameterString.c_str(),"PWT(4)",6))
00728 hwuwts.PWT[3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00729 else if(!strncmp(ParameterString.c_str(),"PWT(5)",6))
00730 hwuwts.PWT[4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00731 else if(!strncmp(ParameterString.c_str(),"PWT(6)",6))
00732 hwuwts.PWT[5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00733 else if(!strncmp(ParameterString.c_str(),"PWT(7)",6))
00734 hwuwts.PWT[6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00735 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,0)",12))
00736 hwuwts.REPWT[0][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00737 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,1)",12))
00738 hwuwts.REPWT[1][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00739 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,2)",12))
00740 hwuwts.REPWT[2][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00741 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,3)",12))
00742 hwuwts.REPWT[3][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00743 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,4)",12))
00744 hwuwts.REPWT[4][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00745 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,0)",12))
00746 hwuwts.REPWT[0][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00747 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,1)",12))
00748 hwuwts.REPWT[1][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00749 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,2)",12))
00750 hwuwts.REPWT[2][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00751 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,3)",12))
00752 hwuwts.REPWT[3][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00753 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,4)",12))
00754 hwuwts.REPWT[4][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00755 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,0)",12))
00756 hwuwts.REPWT[0][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00757 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,1)",12))
00758 hwuwts.REPWT[1][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00759 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,2)",12))
00760 hwuwts.REPWT[2][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00761 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,3)",12))
00762 hwuwts.REPWT[3][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00763 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,4)",12))
00764 hwuwts.REPWT[4][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00765 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,0)",12))
00766 hwuwts.REPWT[0][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00767 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,1)",12))
00768 hwuwts.REPWT[1][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00769 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,2)",12))
00770 hwuwts.REPWT[2][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00771 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,3)",12))
00772 hwuwts.REPWT[3][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00773 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,4)",12))
00774 hwuwts.REPWT[4][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00775 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,0)",12))
00776 hwuwts.REPWT[0][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00777 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,1)",12))
00778 hwuwts.REPWT[1][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00779 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,2)",12))
00780 hwuwts.REPWT[2][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00781 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,3)",12))
00782 hwuwts.REPWT[3][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00783 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,4)",12))
00784 hwuwts.REPWT[4][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00785 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,0)",12))
00786 hwuwts.REPWT[0][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00787 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,1)",12))
00788 hwuwts.REPWT[1][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00789 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,2)",12))
00790 hwuwts.REPWT[2][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00791 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,3)",12))
00792 hwuwts.REPWT[3][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00793 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,4)",12))
00794 hwuwts.REPWT[4][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00795 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,0)",12))
00796 hwuwts.REPWT[0][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00797 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,1)",12))
00798 hwuwts.REPWT[1][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00799 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,2)",12))
00800 hwuwts.REPWT[2][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00801 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,3)",12))
00802 hwuwts.REPWT[3][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00803 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,4)",12))
00804 hwuwts.REPWT[4][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00805 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,0)",12))
00806 hwuwts.REPWT[0][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00807 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,1)",12))
00808 hwuwts.REPWT[1][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00809 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,2)",12))
00810 hwuwts.REPWT[2][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00811 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,3)",12))
00812 hwuwts.REPWT[3][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00813 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,4)",12))
00814 hwuwts.REPWT[4][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00815 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,0)",12))
00816 hwuwts.REPWT[0][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00817 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,1)",12))
00818 hwuwts.REPWT[1][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00819 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,2)",12))
00820 hwuwts.REPWT[2][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00821 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,3)",12))
00822 hwuwts.REPWT[3][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00823 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,4)",12))
00824 hwuwts.REPWT[4][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00825 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,0)",12))
00826 hwuwts.REPWT[0][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00827 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,1)",12))
00828 hwuwts.REPWT[1][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00829 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,2)",12))
00830 hwuwts.REPWT[2][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00831 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,3)",12))
00832 hwuwts.REPWT[3][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00833 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,4)",12))
00834 hwuwts.REPWT[4][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00835 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,0)",12))
00836 hwuwts.REPWT[0][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00837 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,1)",12))
00838 hwuwts.REPWT[1][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00839 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,2)",12))
00840 hwuwts.REPWT[2][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00841 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,3)",12))
00842 hwuwts.REPWT[3][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00843 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,4)",12))
00844 hwuwts.REPWT[4][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00845 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,0)",12))
00846 hwuwts.REPWT[0][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00847 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,1)",12))
00848 hwuwts.REPWT[1][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00849 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,2)",12))
00850 hwuwts.REPWT[2][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00851 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,3)",12))
00852 hwuwts.REPWT[3][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00853 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,4)",12))
00854 hwuwts.REPWT[4][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00855 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,0)",12))
00856 hwuwts.REPWT[0][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00857 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,1)",12))
00858 hwuwts.REPWT[1][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00859 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,2)",12))
00860 hwuwts.REPWT[2][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00861 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,3)",12))
00862 hwuwts.REPWT[3][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00863 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,4)",12))
00864 hwuwts.REPWT[4][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00865 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,0)",12))
00866 hwuwts.REPWT[0][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00867 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,1)",12))
00868 hwuwts.REPWT[1][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00869 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,2)",12))
00870 hwuwts.REPWT[2][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00871 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,3)",12))
00872 hwuwts.REPWT[3][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00873 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,4)",12))
00874 hwuwts.REPWT[4][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00875 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,0)",12))
00876 hwuwts.REPWT[0][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00877 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,1)",12))
00878 hwuwts.REPWT[1][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00879 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,2)",12))
00880 hwuwts.REPWT[2][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00881 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,3)",12))
00882 hwuwts.REPWT[3][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00883 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,4)",12))
00884 hwuwts.REPWT[4][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00885 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,0)",12))
00886 hwuwts.REPWT[0][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00887 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,1)",12))
00888 hwuwts.REPWT[1][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00889 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,2)",12))
00890 hwuwts.REPWT[2][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00891 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,3)",12))
00892 hwuwts.REPWT[3][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00893 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,4)",12))
00894 hwuwts.REPWT[4][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00895 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,0)",12))
00896 hwuwts.REPWT[0][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00897 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,1)",12))
00898 hwuwts.REPWT[1][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00899 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,2)",12))
00900 hwuwts.REPWT[2][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00901 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,3)",12))
00902 hwuwts.REPWT[3][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00903 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,4)",12))
00904 hwuwts.REPWT[4][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00905 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,0)",12))
00906 hwuwts.REPWT[0][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00907 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,1)",12))
00908 hwuwts.REPWT[1][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00909 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,2)",12))
00910 hwuwts.REPWT[2][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00911 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,3)",12))
00912 hwuwts.REPWT[3][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00913 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,4)",12))
00914 hwuwts.REPWT[4][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00915 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,0)",12))
00916 hwuwts.REPWT[0][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00917 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,1)",12))
00918 hwuwts.REPWT[1][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00919 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,2)",12))
00920 hwuwts.REPWT[2][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00921 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,3)",12))
00922 hwuwts.REPWT[3][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00923 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,4)",12))
00924 hwuwts.REPWT[4][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00925 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,0)",12))
00926 hwuwts.REPWT[0][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00927 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,1)",12))
00928 hwuwts.REPWT[1][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00929 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,2)",12))
00930 hwuwts.REPWT[2][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00931 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,3)",12))
00932 hwuwts.REPWT[3][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00933 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,4)",12))
00934 hwuwts.REPWT[4][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00935 else if(!strncmp(ParameterString.c_str(),"SNGWT",5))
00936 hwuwts.SNGWT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00937 else if(!strncmp(ParameterString.c_str(),"DECWT",5))
00938 hwuwts.DECWT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00939 else if(!strncmp(ParameterString.c_str(),"PLTCUT",6))
00940 hwdist.PLTCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00941 else if(!strncmp(ParameterString.c_str(),"VTOCDK(",7)){
00942
00943 int ind = atoi(&ParameterString[7]);
00944 hwprop.VTOCDK[ind] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);}
00945 else if(!strncmp(ParameterString.c_str(),"VTORDK(",7)){
00946
00947 int ind = atoi(&ParameterString[7]);
00948 hwprop.VTORDK[ind] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);}
00949 else if(!strncmp(ParameterString.c_str(),"PIPSMR",6))
00950 hwdist.PIPSMR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00951 else if(!strncmp(ParameterString.c_str(),"VIPWID(1)",9))
00952 hw6202.VIPWID[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00953 else if(!strncmp(ParameterString.c_str(),"VIPWID(2)",9))
00954 hw6202.VIPWID[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00955 else if(!strncmp(ParameterString.c_str(),"VIPWID(3)",9))
00956 hw6202.VIPWID[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00957 else if(!strncmp(ParameterString.c_str(),"MAXDKL",6))
00958 hwdist.MAXDKL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00959 else if(!strncmp(ParameterString.c_str(),"IOPDKL",6))
00960 hwdist.IOPDKL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00961 else if(!strncmp(ParameterString.c_str(),"DXRCYL",6))
00962 hw6202.DXRCYL = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00963 else if(!strncmp(ParameterString.c_str(),"DXZMAX",6))
00964 hw6202.DXZMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00965 else if(!strncmp(ParameterString.c_str(),"DXRSPH",6))
00966 hw6202.DXRSPH = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00967
00968
00969 else if(!strncmp(ParameterString.c_str(),"MIXING",6))
00970 hwdist.MIXING = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00971 else if(!strncmp(ParameterString.c_str(),"XMIX(1)",7))
00972 hwdist.XMIX[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00973 else if(!strncmp(ParameterString.c_str(),"XMIX(2)",7))
00974 hwdist.XMIX[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00975 else if(!strncmp(ParameterString.c_str(),"YMIX(1)",7))
00976 hwdist.YMIX[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00977 else if(!strncmp(ParameterString.c_str(),"YMIX(2)",7))
00978 hwdist.YMIX[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00979 else if(!strncmp(ParameterString.c_str(),"RMASS(198)",10))
00980 hwprop.RMASS[198] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00981 else if(!strncmp(ParameterString.c_str(),"RMASS(199)",10))
00982 hwprop.RMASS[199] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00983 else if(!strncmp(ParameterString.c_str(),"GAMW",4))
00984 hwpram.GAMW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00985 else if(!strncmp(ParameterString.c_str(),"GAMZ",4))
00986 hwpram.GAMZ = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00987 else if(!strncmp(ParameterString.c_str(),"RMASS(200)",10))
00988 hwprop.RMASS[200] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00989 else if(!strncmp(ParameterString.c_str(),"WZRFR",5))
00990 hw6202.WZRFR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00991 else if(!strncmp(ParameterString.c_str(),"MODBOS(",7)) {
00992 int ind = atoi(&ParameterString[7]);
00993 hwbosc.MODBOS[ind-1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
00994 else if(!strncmp(ParameterString.c_str(),"RMASS(201)",10))
00995 hwprop.RMASS[201] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00996 else if(!strncmp(ParameterString.c_str(),"IOPHIG",6))
00997 hwbosc.IOPHIG = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
00998 else if(!strncmp(ParameterString.c_str(),"GAMMAX",6))
00999 hwbosc.GAMMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01000 else if(!strncmp(ParameterString.c_str(),"ENHANC(",7)) {
01001 int ind = atoi(&ParameterString[7]);
01002 hwbosc.ENHANC[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01003 else if(!strncmp(ParameterString.c_str(),"RMASS(209)",10))
01004 hwprop.RMASS[209] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01005 else if(!strncmp(ParameterString.c_str(),"RMASS(215)",10))
01006 hwprop.RMASS[215] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01007 else if(!strncmp(ParameterString.c_str(),"ALPHEM",6))
01008 hwpram.ALPHEM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01009 else if(!strncmp(ParameterString.c_str(),"SWEIN",5))
01010 hwpram.SWEIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01011 else if(!strncmp(ParameterString.c_str(),"QFCH(",5)){
01012 int ind = atoi(&ParameterString[5]);
01013 hwpram.QFCH[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01014 else if(!strncmp(ParameterString.c_str(),"AFCH(1,",7)){
01015 int ind = atoi(&ParameterString[7]); if(ind<1||ind>2) return 0;
01016 hwpram.AFCH[ind-1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01017 else if(!strncmp(ParameterString.c_str(),"AFCH(2,",7)){
01018 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01019 hwpram.AFCH[ind-1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01020 else if(!strncmp(ParameterString.c_str(),"AFCH(3,",7)){
01021 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01022 hwpram.AFCH[ind-1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01023 else if(!strncmp(ParameterString.c_str(),"AFCH(4,",7)){
01024 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01025 hwpram.AFCH[ind-1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01026 else if(!strncmp(ParameterString.c_str(),"AFCH(5,",7)){
01027 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01028 hwpram.AFCH[ind-1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01029 else if(!strncmp(ParameterString.c_str(),"AFCH(6,",7)){
01030 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01031 hwpram.AFCH[ind-1][5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01032 else if(!strncmp(ParameterString.c_str(),"AFCH(7,",7)){
01033 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01034 hwpram.AFCH[ind-1][6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01035 else if(!strncmp(ParameterString.c_str(),"AFCH(8,",7)){
01036 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01037 hwpram.AFCH[ind-1][7] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01038 else if(!strncmp(ParameterString.c_str(),"AFCH(9,",7)){
01039 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01040 hwpram.AFCH[ind-1][8] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01041 else if(!strncmp(ParameterString.c_str(),"AFCH(10,",8)){
01042 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01043 hwpram.AFCH[ind-1][9] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01044 else if(!strncmp(ParameterString.c_str(),"AFCH(11,",8)){
01045 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01046 hwpram.AFCH[ind-1][10] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01047 else if(!strncmp(ParameterString.c_str(),"AFCH(12,",8)){
01048 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01049 hwpram.AFCH[ind-1][11] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01050 else if(!strncmp(ParameterString.c_str(),"AFCH(13,",8)){
01051 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01052 hwpram.AFCH[ind-1][12] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01053 else if(!strncmp(ParameterString.c_str(),"AFCH(14,",8)){
01054 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01055 hwpram.AFCH[ind-1][13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01056 else if(!strncmp(ParameterString.c_str(),"AFCH(15,",8)){
01057 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01058 hwpram.AFCH[ind-1][14] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01059 else if(!strncmp(ParameterString.c_str(),"AFCH(16,",8)){
01060 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01061 hwpram.AFCH[ind-1][15] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01062 else if(!strncmp(ParameterString.c_str(),"VFCH(1,",7)){
01063 int ind = atoi(&ParameterString[7]); if(ind<1||ind>2) return 0;
01064 hwpram.VFCH[ind-1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01065 else if(!strncmp(ParameterString.c_str(),"VFCH(2,",7)){
01066 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01067 hwpram.VFCH[ind-1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01068 else if(!strncmp(ParameterString.c_str(),"VFCH(3,",7)){
01069 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01070 hwpram.VFCH[ind-1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01071 else if(!strncmp(ParameterString.c_str(),"VFCH(4,",7)){
01072 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01073 hwpram.VFCH[ind-1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01074 else if(!strncmp(ParameterString.c_str(),"VFCH(5,",7)){
01075 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01076 hwpram.VFCH[ind-1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01077 else if(!strncmp(ParameterString.c_str(),"VFCH(6,",7)){
01078 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01079 hwpram.VFCH[ind-1][5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01080 else if(!strncmp(ParameterString.c_str(),"VFCH(7,",7)){
01081 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01082 hwpram.VFCH[ind-1][6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01083 else if(!strncmp(ParameterString.c_str(),"VFCH(8,",7)){
01084 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01085 hwpram.VFCH[ind-1][7] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01086 else if(!strncmp(ParameterString.c_str(),"VFCH(9,",7)){
01087 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0;
01088 hwpram.VFCH[ind-1][8] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01089 else if(!strncmp(ParameterString.c_str(),"VFCH(10,",8)){
01090 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01091 hwpram.VFCH[ind-1][9] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01092 else if(!strncmp(ParameterString.c_str(),"VFCH(11,",8)){
01093 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01094 hwpram.VFCH[ind-1][10] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01095 else if(!strncmp(ParameterString.c_str(),"VFCH(12,",8)){
01096 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01097 hwpram.VFCH[ind-1][11] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01098 else if(!strncmp(ParameterString.c_str(),"VFCH(13,",8)){
01099 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01100 hwpram.VFCH[ind-1][12] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01101 else if(!strncmp(ParameterString.c_str(),"VFCH(14,",8)){
01102 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01103 hwpram.VFCH[ind-1][13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01104 else if(!strncmp(ParameterString.c_str(),"VFCH(15,",8)){
01105 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01106 hwpram.VFCH[ind-1][14] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01107 else if(!strncmp(ParameterString.c_str(),"VFCH(16,",8)){
01108 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0;
01109 hwpram.VFCH[ind-1][15] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01110 else if(!strncmp(ParameterString.c_str(),"ZPRIME",6))
01111 hwpram.ZPRIME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01112 else if(!strncmp(ParameterString.c_str(),"RMASS(202)",10))
01113 hwprop.RMASS[202] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01114 else if(!strncmp(ParameterString.c_str(),"GAMZP",5))
01115 hwpram.GAMZP = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01116 else if(!strncmp(ParameterString.c_str(),"VCKM(",5)) {
01117 int ind1 = atoi(&ParameterString[5]);
01118 if(ind1<1||ind1>3) return 0;
01119 int ind2 = atoi(&ParameterString[7]);
01120 if(ind2<1||ind2>3) return 0;
01121 hwpram.VCKM[ind2][ind1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01122 else if(!strncmp(ParameterString.c_str(),"SCABI",5))
01123 hwpram.SCABI = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01124 else if(!strncmp(ParameterString.c_str(),"EPOLN(",6)) {
01125 int ind = atoi(&ParameterString[6]);
01126 if(ind<1||ind>3) return 0;
01127 hwhard.EPOLN[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01128 else if(!strncmp(ParameterString.c_str(),"PPOLN(",6)) {
01129 int ind = atoi(&ParameterString[6]);
01130 if(ind<1||ind>3) return 0;
01131 hwhard.PPOLN[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); }
01132 else if(!strncmp(ParameterString.c_str(),"QLIM",4))
01133 hwhard.QLIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01134 else if(!strncmp(ParameterString.c_str(),"THMAX",5))
01135 hwhard.THMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01136 else if(!strncmp(ParameterString.c_str(),"Y4JT",4))
01137 hwhard.Y4JT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01138 else if(!strncmp(ParameterString.c_str(),"DURHAM",6))
01139 hwhard.DURHAM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01140 else if(!strncmp(ParameterString.c_str(),"IOP4JT(1)",9))
01141 hwpram.IOP4JT[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01142 else if(!strncmp(ParameterString.c_str(),"IOP4JT(2)",9))
01143 hwpram.IOP4JT[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01144 else if(!strncmp(ParameterString.c_str(),"BGSHAT",6))
01145 hwhard.BGSHAT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01146 else if(!strncmp(ParameterString.c_str(),"BREIT",5))
01147 hwbrch.BREIT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01148 else if(!strncmp(ParameterString.c_str(),"USECMF",6))
01149 hwbrch.USECMF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01150 else if(!strncmp(ParameterString.c_str(),"NOSPAC",6))
01151 hwpram.NOSPAC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01152 else if(!strncmp(ParameterString.c_str(),"ISPAC",5))
01153 hwpram.ISPAC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01154 else if(!strncmp(ParameterString.c_str(),"TMNISR",6))
01155 hwhard.TMNISR = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01156 else if(!strncmp(ParameterString.c_str(),"ZMXISR",6))
01157 hwhard.ZMXISR = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01158 else if(!strncmp(ParameterString.c_str(),"ASFIXD",6))
01159 hwhard.ASFIXD = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01160 else if(!strncmp(ParameterString.c_str(),"OMEGA0",6))
01161 hwhard.OMEGA0 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01162 else if(!strncmp(ParameterString.c_str(),"IAPHIG",6))
01163 hwhard.IAPHIG = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01164 else if(!strncmp(ParameterString.c_str(),"PHOMAS",6))
01165 hwhard.PHOMAS = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01166 else if(!strncmp(ParameterString.c_str(),"PRESPL",6))
01167 hw6500.PRESPL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01168 else if(!strncmp(ParameterString.c_str(),"PTMIN",5))
01169 hwhard.PTMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01170 else if(!strncmp(ParameterString.c_str(),"PTMAX",5))
01171 hwhard.PTMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01172 else if(!strncmp(ParameterString.c_str(),"PTPOW",5))
01173 hwhard.PTPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01174 else if(!strncmp(ParameterString.c_str(),"YJMIN",5))
01175 hwhard.YJMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01176 else if(!strncmp(ParameterString.c_str(),"YJMAX",5))
01177 hwhard.YJMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01178 else if(!strncmp(ParameterString.c_str(),"EMMIN",5))
01179 hwhard.EMMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01180 else if(!strncmp(ParameterString.c_str(),"EMMAX",5))
01181 hwhard.EMMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01182 else if(!strncmp(ParameterString.c_str(),"EMPOW",5))
01183 hwhard.EMPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01184 else if(!strncmp(ParameterString.c_str(),"Q2MIN",5))
01185 hwhard.Q2MIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01186 else if(!strncmp(ParameterString.c_str(),"Q2MAX",5))
01187 hwhard.Q2MAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01188 else if(!strncmp(ParameterString.c_str(),"Q2POW",5))
01189 hwhard.Q2POW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01190 else if(!strncmp(ParameterString.c_str(),"YBMIN",5))
01191 hwhard.YBMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01192 else if(!strncmp(ParameterString.c_str(),"YBMAX",5))
01193 hwhard.YBMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01194 else if(!strncmp(ParameterString.c_str(),"WHMIN",5))
01195 hwhard.WHMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01196 else if(!strncmp(ParameterString.c_str(),"ZJMAX",5))
01197 hwhard.ZJMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01198 else if(!strncmp(ParameterString.c_str(),"Q2WWMN",6))
01199 hwhard.Q2WWMN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01200 else if(!strncmp(ParameterString.c_str(),"Q2WWMX",6))
01201 hwhard.Q2WWMX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01202 else if(!strncmp(ParameterString.c_str(),"YWWMIN",6))
01203 hwhard.YWWMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01204 else if(!strncmp(ParameterString.c_str(),"YWWMAX",6))
01205 hwhard.YWWMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01206 else if(!strncmp(ParameterString.c_str(),"CSPEED",6))
01207 hwpram.CSPEED = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01208 else if(!strncmp(ParameterString.c_str(),"GEV2NB",6))
01209 hwpram.GEV2NB = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01210 else if(!strncmp(ParameterString.c_str(),"IBSH",4))
01211 hwhard.IBSH = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01212 else if(!strncmp(ParameterString.c_str(),"IBRN(1)",7))
01213 hwhard.IBRN[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01214 else if(!strncmp(ParameterString.c_str(),"IBRN(2)",7))
01215 hwhard.IBRN[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01216 else if(!strncmp(ParameterString.c_str(),"NQEV",4))
01217 hwusud.NQEV = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01218 else if(!strncmp(ParameterString.c_str(),"ZBINM",5))
01219 hwpram.ZBINM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01220 else if(!strncmp(ParameterString.c_str(),"NZBIN",5))
01221 hwpram.NZBIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01222 else if(!strncmp(ParameterString.c_str(),"NBTRY",5))
01223 hwpram.NBTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01224 else if(!strncmp(ParameterString.c_str(),"NCTRY",5))
01225 hwpram.NCTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01226 else if(!strncmp(ParameterString.c_str(),"NETRY",5))
01227 hwpram.NETRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01228 else if(!strncmp(ParameterString.c_str(),"NSTRY",5))
01229 hwpram.NSTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01230 else if(!strncmp(ParameterString.c_str(),"ACCUR",5))
01231 hwusud.ACCUR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01232 else if(!strncmp(ParameterString.c_str(),"RPARTY",6))
01233 hwrpar.RPARTY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01234 else if(!strncmp(ParameterString.c_str(),"SUSYIN",6))
01235 hwsusy.SUSYIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01236 else if(!strncmp(ParameterString.c_str(),"LRSUSY",6))
01237 hw6202.LRSUSY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01238 else if(!strncmp(ParameterString.c_str(),"SYSPIN",6))
01239 hwdspn.SYSPIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01240 else if(!strncmp(ParameterString.c_str(),"THREEB",6))
01241 hwdspn.THREEB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01242 else if(!strncmp(ParameterString.c_str(),"FOURB",5))
01243 hwdspn.FOURB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01244 else if(!strncmp(ParameterString.c_str(),"LHSOFT",6))
01245 hwgupr.LHSOFT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01246 else if(!strncmp(ParameterString.c_str(),"LHGLSF",6))
01247 hwgupr.LHGLSF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01248 else if(!strncmp(ParameterString.c_str(),"OPTM",4))
01249 hw6300.OPTM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01250 else if(!strncmp(ParameterString.c_str(),"IOPSTP",6))
01251 hw6300.IOPSTP = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01252 else if(!strncmp(ParameterString.c_str(),"IOPSH",5))
01253 hw6300.IOPSH = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01254 else if(!strncmp(ParameterString.c_str(),"JMUEO",5))
01255 jmparm.JMUEO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01256 else if(!strncmp(ParameterString.c_str(),"PTJIM",5))
01257 jmparm.PTJIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01258 else if(!strncmp(ParameterString.c_str(),"JMRAD(73)",9))
01259 jmparm.JMRAD[72] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);
01260
01261 else accepted = 0;
01262
01263 return accepted;
01264 }
01265
01266
01267 #ifdef NEVER
01268
01269
01270 #define hwaend hwaend_
01271
01272 extern "C" {
01273 void hwaend(){}
01274 }
01275
01276 #endif
01277
01278 bool PomwigProducer::setRngSeeds(int mseed)
01279 {
01280 double temx[5];
01281 for (int i=0; i<5; i++) {
01282 mseed = mseed * 29943829 - 1;
01283 temx[i] = mseed * (1./(65536.*65536.));
01284 }
01285 long double c;
01286 c = (long double)2111111111.0 * temx[3] +
01287 1492.0 * temx[2] +
01288 1776.0 * temx[1] +
01289 5115.0 * temx[0] +
01290 temx[4];
01291 temx[3] = temx[2];
01292 temx[2] = temx[1];
01293 temx[1] = temx[0];
01294 temx[4] = floorl(c);
01295 temx[0] = c - temx[4];
01296 temx[4] = temx[4] * (1./(65536.*65536.));
01297 hwevnt.NRN[0]=int(temx[0]*99999);
01298 c = (long double)2111111111.0 * temx[3] +
01299 1492.0 * temx[2] +
01300 1776.0 * temx[1] +
01301 5115.0 * temx[0] +
01302 temx[4];
01303 temx[3] = temx[2];
01304 temx[2] = temx[1];
01305 temx[1] = temx[0];
01306 temx[4] = floorl(c);
01307 temx[0] = c - temx[4];
01308 hwevnt.NRN[1]=int(temx[0]*99999);
01309
01310 return true;
01311 }
01312
01313 void PomwigProducer::endRun(Run & run) {
01314
01315 double intCrossSect = 1000.0*survivalProbability_*hwevnt.AVWGT;
01316
01317 auto_ptr<GenRunInfoProduct> genRunInfoProd (new GenRunInfoProduct());
01318 genRunInfoProd->setInternalXSec(intCrossSect);
01319 genRunInfoProd->setFilterEfficiency(extFilterEff_);
01320 genRunInfoProd->setExternalXSecLO(extCrossSect_);
01321 genRunInfoProd->setExternalXSecNLO(-1.);
01322
01323 run.put(genRunInfoProd);
01324 }
01325
01326 #ifdef NEVER
01327 extern "C" {
01328 void cmsending_(int* ecode) {
01329 LogError("")<<" ERROR: Herwig stoped run after recieving error code "<<*ecode<<".\n";
01330 throw cms::Exception("HerwigError") <<" Herwig stoped run with error code "<<*ecode<<".";
01331 }
01332 }
01333 #endif
01334
01335 DEFINE_FWK_MODULE(PomwigProducer);