#include <GeneratorInterface/Herwig6Interface/interface/Herwig6Producer.h>
Public Member Functions | |
void | endRun (Run &r) |
Herwig6Producer (const ParameterSet &) | |
virtual | ~Herwig6Producer () |
Private Member Functions | |
void | clear () |
bool | hwgive (const std::string &iParm) |
virtual void | produce (Event &e, const EventSetup &es) |
bool | setRngSeeds (int) |
Private Attributes | |
double | comenergy |
bool | doMPInteraction_ |
HepMC::GenEvent * | evt |
double | extCrossSect |
double | extFilterEff |
CLHEP::HepRandomEngine * | fRandomEngine |
bool | herwigHepMCVerbosity_ |
int | herwigLhapdfVerbosity_ |
int | herwigVerbosity_ |
double | intCrossSect |
std::string | lhapdfSetPath_ |
int | maxEventsToPrint_ |
unsigned int | numberEvents_ |
int | numTrials_ |
bool | printCards_ |
bool | useJimmy_ |
Definition at line 25 of file Herwig6Producer.h.
Herwig6Producer::Herwig6Producer | ( | const ParameterSet & | pset | ) |
Definition at line 52 of file Herwig6Producer.cc.
References comenergy, edm::errors::Configuration, doMPInteraction_, fRandomEngine, edm::ParameterSet::getParameter(), herwigHepMCVerbosity_, herwigLhapdfVerbosity_, herwigVerbosity_, hwgive(), hwprop, i, int, jimmin, jminit, jmparm, lhapdfSetPath_, maxEventsToPrint_, mysetpdfpath, NULL, pars, printCards_, randomEngine, setherwpdf, setRngSeeds(), and useJimmy_.
00052 : 00053 EDProducer(), evt(0), 00054 herwigVerbosity_ (pset.getUntrackedParameter<int>("herwigVerbosity",0)), 00055 herwigHepMCVerbosity_ (pset.getUntrackedParameter<bool>("herwigHepMCVerbosity",false)), 00056 herwigLhapdfVerbosity_ (pset.getUntrackedParameter<int>("herwigLhapdfVerbosity",0)), 00057 maxEventsToPrint_ (pset.getUntrackedParameter<int>("maxEventsToPrint",0)), 00058 comenergy(pset.getUntrackedParameter<double>("comEnergy",14000.)), 00059 lhapdfSetPath_(pset.getUntrackedParameter<string>("lhapdfSetPath","")), 00060 useJimmy_(pset.getUntrackedParameter<bool>("useJimmy",true)), 00061 doMPInteraction_(pset.getUntrackedParameter<bool>("doMPInteraction",true)), 00062 printCards_(pset.getUntrackedParameter<bool>("printCards",false)), 00063 numTrials_(pset.getUntrackedParameter<int>("numTrialsMPI",100)), 00064 extCrossSect(pset.getUntrackedParameter<double>("crossSection", -1.)), 00065 extFilterEff(pset.getUntrackedParameter<double>("filterEfficiency", -1.)), 00066 numberEvents_(0) 00067 { 00068 00069 std::ostringstream header_str; 00070 00071 header_str << "----------------------------------------------\n"; 00072 header_str << "Initializing Herwig6Producer\n"; 00073 header_str << "----------------------------------------------\n"; 00074 00075 00076 /* herwigVerbosity Level IPRINT 00077 valid argumets are: 0: print title only 00078 1: + print selected input parameters 00079 2: + print table of particle codes and properties 00080 3: + tables of Sudakov form factors 00081 *** NOT IMPLEMENTED *** 00082 LHA vebosity: 0=silent 00083 1=lowkey (default) 00084 2=all 00085 */ 00086 00087 header_str << " Herwig verbosity level = " << herwigVerbosity_ << "\n"; 00088 header_str << " LHAPDF verbosity level = " << herwigLhapdfVerbosity_ << "\n"; 00089 header_str << " HepMC verbosity = " << herwigHepMCVerbosity_ << "\n"; 00090 header_str << " Number of events to be printed = " << maxEventsToPrint_ << "\n"; 00091 00092 00093 if(useJimmy_) { 00094 header_str << " HERWIG will be using JIMMY for UE/MI." << "\n"; 00095 if(doMPInteraction_) 00096 header_str << " JIMMY trying to generate multiple interactions." << "\n"; 00097 } 00098 00099 // setting up lhapdf path name from environment varaible (***) 00100 char* lhaPdfs = NULL; 00101 header_str<<" Trying to find LHAPATH in environment ..."; 00102 lhaPdfs = getenv("LHAPATH"); 00103 if(lhaPdfs != NULL) { 00104 header_str<<" done.\n"; 00105 lhapdfSetPath_=std::string(lhaPdfs); 00106 } 00107 else 00108 header_str<<" failed.\n"; 00109 00110 00111 // Call hwudat to set up HERWIG block data 00112 hwudat(); 00113 00114 00115 // Setting basic parameters ... 00116 hwproc.PBEAM1 = comenergy/2.; 00117 hwproc.PBEAM2 = comenergy/2.; 00118 hwbmch.PART1[0] = 'P'; 00119 hwbmch.PART2[0] = 'P'; 00120 for(int i=1;i<8;++i){ 00121 hwbmch.PART1[i] = ' '; 00122 hwbmch.PART2[i] = ' ';} 00123 //int numEvents = maxEvents(); 00124 int numEvents = 999999999; 00125 if(useJimmy_) jmparm.MSFLAG = 1; 00126 00127 // initialize other common blocks ... 00128 hwigin(); 00129 00130 hwevnt.MAXER = int(numEvents/10); 00131 if(hwevnt.MAXER<100) hwevnt.MAXER = 100; 00132 00133 if(useJimmy_) jimmin(); 00134 00135 // set some 'non-herwig' defaults 00136 hwevnt.MAXPR = maxEventsToPrint_; // no printing out of events 00137 hwpram.IPRINT = herwigVerbosity_; // HERWIG print out mode 00138 hwprop.RMASS[6] = 175.0; 00139 00140 // Set HERWIG parameters in a single ParameterSet 00141 ParameterSet herwig_params = 00142 pset.getParameter<ParameterSet>("HerwigParameters") ; 00143 00144 // The parameter sets to be read (default, min bias, user ...) in the proper order. 00145 vector<string> setNames = 00146 herwig_params.getParameter<vector<string> >("parameterSets"); 00147 00148 // Loop over the sets 00149 for ( unsigned i=0; i<setNames.size(); ++i ) { 00150 string mySet = setNames[i]; 00151 vector<string> pars = 00152 herwig_params.getParameter<vector<string> >(mySet); 00153 00154 header_str << "----------------------------------------------" << "\n"; 00155 header_str << "Read HERWIG parameter set " << mySet << "\n"; 00156 header_str << "----------------------------------------------" << "\n"; 00157 00158 // Loop over all parameters and stop in case of mistake 00159 for( vector<string>::const_iterator 00160 itPar = pars.begin(); itPar != pars.end(); ++itPar ) { 00161 static string sRandomValueSetting1("NRN(1)"); 00162 static string sRandomValueSetting2("NRN(2)"); 00163 if( (0 == itPar->compare(0,sRandomValueSetting1.size(),sRandomValueSetting1) )||(0 == itPar->compare(0,sRandomValueSetting2.size(),sRandomValueSetting2) )) { 00164 throw edm::Exception(edm::errors::Configuration,"HerwigError") 00165 <<" attempted to set random number using pythia command 'NRN(.)'. This is not allowed.\n" 00166 " Please use the RandomNumberGeneratorService to set the random number seed."; 00167 } 00168 00169 if( ! hwgive(*itPar) ) { 00170 throw edm::Exception(edm::errors::Configuration,"HerwigError") 00171 <<" herwig did not accept the following \""<<*itPar<<"\""; 00172 } 00173 else if(printCards_) 00174 header_str << " " << *itPar << "\n"; 00175 } 00176 } 00177 00178 // setting up herwgi RNG seeds NRN(.) 00179 header_str << "----------------------------------------------" << "\n"; 00180 header_str << "Setting Herwig random number generator seeds" << "\n"; 00181 header_str << "----------------------------------------------" << "\n"; 00182 edm::Service<RandomNumberGenerator> rng; 00183 int wwseed = rng->mySeed(); 00184 bool rngok = setRngSeeds(wwseed); 00185 if(!rngok) 00186 throw edm::Exception(edm::errors::Configuration,"HerwigError") 00187 <<" Impossible error in setting 'NRN(.)'."; 00188 header_str << " NRN(1) = "<<hwevnt.NRN[0]<<"\n"; 00189 header_str << " NRN(2) = "<<hwevnt.NRN[1]<<"\n"; 00190 fRandomEngine = &(rng->getEngine()); 00191 randomEngine = fRandomEngine; 00192 00193 // set the LHAPDF grid directory and path 00194 setherwpdf(); 00195 char pdfpath[232]; 00196 int pathlen = lhapdfSetPath_.length(); 00197 for(int i=0; i<pathlen; ++i) 00198 pdfpath[i]=lhapdfSetPath_.at(i); 00199 for(int i=pathlen; i<232; ++i) 00200 pdfpath[i]=' '; 00201 mysetpdfpath(pdfpath); 00202 00203 // HERWIG preparations ... 00204 hwuinc(); 00205 hwusta("PI0 ",1); 00206 hweini(); 00207 if(useJimmy_) jminit(); 00208 00209 produces<HepMCProduct>(); 00210 produces<GenInfoProduct, edm::InRun>(); 00211 00212 header_str << "\n----------------------------------------------" << "\n"; 00213 header_str << "Starting event generation" << "\n"; 00214 header_str << "----------------------------------------------" << "\n"; 00215 00216 edm::LogInfo("")<<header_str.str(); 00217 00218 00219 }
Herwig6Producer::~Herwig6Producer | ( | ) | [virtual] |
Definition at line 222 of file Herwig6Producer.cc.
References clear().
00222 { 00223 00224 std::ostringstream footer_str; 00225 00226 footer_str << "----------------------------------------------" << "\n"; 00227 footer_str << "Event generation done" << "\n"; 00228 footer_str << "----------------------------------------------" << "\n"; 00229 00230 LogInfo("") << footer_str.str(); 00231 00232 clear(); 00233 }
Definition at line 235 of file Herwig6Producer.cc.
References jmefin, and useJimmy_.
Referenced by ~Herwig6Producer().
Definition at line 1098 of file Herwig6Producer.cc.
References extCrossSect, extFilterEff, intCrossSect, and edm::Run::put().
01098 { 01099 01100 auto_ptr<GenInfoProduct> giprod (new GenInfoProduct()); 01101 01102 //----------------------------------------------- 01103 // compute cross-section (internal HERWIG style) 01104 double RNWGT=1./hwevnt.NWGTS; 01105 double AVWGT=hwevnt.WGTSUM*RNWGT; 01106 01107 intCrossSect=1000.*AVWGT; 01108 //----------------------------------------------- 01109 01110 giprod->set_cross_section(intCrossSect); 01111 giprod->set_external_cross_section(extCrossSect); 01112 giprod->set_filter_efficiency(extFilterEff); 01113 r.put(giprod); 01114 01115 }
bool Herwig6Producer::hwgive | ( | const std::string & | iParm | ) | [private] |
Definition at line 319 of file Herwig6Producer.cc.
References Exception, hw6202, hw6203, hw6300, hw6500, hwbosc, hwbrch, hwdist, hwdspn, hwgupr, hwhard, hwminb, hwprop, hwrpar, hwsusy, hwuclu, hwusud, hwuwts, and jmparm.
Referenced by Herwig6Producer().
00319 { 00320 bool accepted = 1; 00321 00322 00323 if(!strncmp(ParameterString.c_str(),"IPROC",5)) { 00324 hwproc.IPROC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00325 if(hwproc.IPROC<0) { 00326 throw cms::Exception("HerwigError") 00327 <<" Attempted to set IPROC to a negative value. This is not allowed.\n Please use the McatnloInterface to cope with negative valued IPROCs."; 00328 } 00329 } 00330 else if(!strncmp(ParameterString.c_str(),"AUTPDF(",7)){ 00331 LogWarning("") <<" WARNING: AUTPDF parameter *not* suported. HERWIG will use LHAPDF."<<"\n"; 00332 } 00333 else if(!strncmp(ParameterString.c_str(),"TAUDEC",6)){ 00334 int tostart=0; 00335 while(ParameterString.c_str()[tostart]!='=') tostart++; 00336 tostart++; 00337 while(ParameterString.c_str()[tostart]==' ') tostart++; 00338 int todo = 0; 00339 while(ParameterString.c_str()[todo+tostart]!='\0') { 00340 hwdspn.TAUDEC[todo]=ParameterString.c_str()[todo+tostart]; 00341 todo++; 00342 } 00343 if(todo != 6) { 00344 throw cms::Exception("HerwigError") 00345 <<" Attempted to set TAUDEC to "<<hwdspn.TAUDEC<<". This is not allowed.\n Options for TAUDEC are HERWIG and TAUOLA."; 00346 } 00347 } 00348 else if(!strncmp(ParameterString.c_str(),"BDECAY",6)){ 00349 LogWarning("")<<" WARNING: BDECAY parameter *not* suported. HERWIG will use default b decay."<<"\n"; 00350 } 00351 else if(!strncmp(ParameterString.c_str(),"QCDLAM",6)) 00352 hwpram.QCDLAM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00353 else if(!strncmp(ParameterString.c_str(),"VQCUT",5)) 00354 hwpram.VQCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00355 else if(!strncmp(ParameterString.c_str(),"VGCUT",5)) 00356 hwpram.VGCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00357 else if(!strncmp(ParameterString.c_str(),"VPCUT",5)) 00358 hwpram.VPCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00359 else if(!strncmp(ParameterString.c_str(),"CLMAX",5)) 00360 hwpram.CLMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00361 else if(!strncmp(ParameterString.c_str(),"CLPOW",5)) 00362 hwpram.CLPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00363 else if(!strncmp(ParameterString.c_str(),"PSPLT(1)",8)) 00364 hwpram.PSPLT[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00365 else if(!strncmp(ParameterString.c_str(),"PSPLT(2)",8)) 00366 hwpram.PSPLT[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00367 else if(!strncmp(ParameterString.c_str(),"QDIQK",5)) 00368 hwpram.QDIQK = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00369 else if(!strncmp(ParameterString.c_str(),"PDIQK",5)) 00370 hwpram.PDIQK = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00371 else if(!strncmp(ParameterString.c_str(),"QSPAC",5)) 00372 hwpram.QSPAC = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00373 else if(!strncmp(ParameterString.c_str(),"PTRMS",5)) 00374 hwpram.PTRMS = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00375 else if(!strncmp(ParameterString.c_str(),"IPRINT",6)) 00376 hwpram.IPRINT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00377 else if(!strncmp(ParameterString.c_str(),"PRVTX",5)) 00378 hwpram.PRVTX = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00379 else if(!strncmp(ParameterString.c_str(),"NPRFMT",6)) 00380 hwpram.NPRFMT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00381 else if(!strncmp(ParameterString.c_str(),"PRNDEC",6)) 00382 hwpram.PRNDEC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00383 else if(!strncmp(ParameterString.c_str(),"PRNDEF",6)) 00384 hwpram.PRNDEF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00385 else if(!strncmp(ParameterString.c_str(),"PRNTEX",6)) 00386 hwpram.PRNTEX = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00387 else if(!strncmp(ParameterString.c_str(),"PRNWEB",6)) 00388 hwpram.PRNWEB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00389 else if(!strncmp(ParameterString.c_str(),"MAXPR",5)) 00390 hwevnt.MAXPR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00391 else if(!strncmp(ParameterString.c_str(),"MAXER",5)) 00392 hwevnt.MAXER = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00393 else if(!strncmp(ParameterString.c_str(),"LWEVT",5)) 00394 hwevnt.LWEVT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00395 else if(!strncmp(ParameterString.c_str(),"LRSUD",5)) 00396 hwpram.LRSUD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00397 else if(!strncmp(ParameterString.c_str(),"LWSUD",5)) 00398 hwpram.LWSUD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00399 else if(!strncmp(ParameterString.c_str(),"NRN(1)",6)) 00400 hwevnt.NRN[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00401 else if(!strncmp(ParameterString.c_str(),"NRN(2)",6)) 00402 hwevnt.NRN[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00403 else if(!strncmp(ParameterString.c_str(),"WGTMAX",6)) 00404 hwevnt.WGTMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00405 else if(!strncmp(ParameterString.c_str(),"NOWGT",5)) 00406 hwevnt.NOWGT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00407 else if(!strncmp(ParameterString.c_str(),"AVWGT",5)) 00408 hwevnt.AVWGT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00409 else if(!strncmp(ParameterString.c_str(),"AZSOFT",6)) 00410 hwpram.AZSOFT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00411 else if(!strncmp(ParameterString.c_str(),"AZSPIN",6)) 00412 hwpram.AZSPIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00413 else if(!strncmp(ParameterString.c_str(),"HARDME",6)) 00414 hwpram.HARDME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00415 else if(!strncmp(ParameterString.c_str(),"SOFTME",6)) 00416 hwpram.SOFTME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00417 else if(!strncmp(ParameterString.c_str(),"GCUTME",6)) 00418 hwpram.GCUTME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00419 else if(!strncmp(ParameterString.c_str(),"NCOLO",5)) 00420 hwpram.NCOLO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00421 else if(!strncmp(ParameterString.c_str(),"NFLAV",5)) 00422 hwpram.NFLAV = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00423 else if(!strncmp(ParameterString.c_str(),"MODPDF(1)",9)) 00424 hwpram.MODPDF[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00425 else if(!strncmp(ParameterString.c_str(),"MODPDF(2)",9)) 00426 hwpram.MODPDF[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00427 else if(!strncmp(ParameterString.c_str(),"NSTRU",5)) 00428 hwpram.NSTRU = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00429 else if(!strncmp(ParameterString.c_str(),"PRSOF",5)) 00430 hwpram.PRSOF = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00431 else if(!strncmp(ParameterString.c_str(),"ENSOF",5)) 00432 hwpram.ENSOF = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00433 else if(!strncmp(ParameterString.c_str(),"IOPREM",6)) 00434 hwpram.IOPREM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00435 else if(!strncmp(ParameterString.c_str(),"BTCLM",5)) 00436 hwpram.BTCLM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00437 else if(!strncmp(ParameterString.c_str(),"ETAMIX",6)) 00438 hwpram.ETAMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00439 else if(!strncmp(ParameterString.c_str(),"PHIMIX",6)) 00440 hwpram.PHIMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00441 else if(!strncmp(ParameterString.c_str(),"H1MIX",5)) 00442 hwpram.H1MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00443 else if(!strncmp(ParameterString.c_str(),"F0MIX",5)) 00444 hwpram.F0MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00445 else if(!strncmp(ParameterString.c_str(),"F1MIX",5)) 00446 hwpram.F1MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00447 else if(!strncmp(ParameterString.c_str(),"F2MIX",5)) 00448 hwpram.F2MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00449 else if(!strncmp(ParameterString.c_str(),"ET2MIX",6)) 00450 hwpram.ET2MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00451 else if(!strncmp(ParameterString.c_str(),"OMHMIX",6)) 00452 hwpram.OMHMIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00453 else if(!strncmp(ParameterString.c_str(),"PH3MIX",6)) 00454 hwpram.PH3MIX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00455 else if(!strncmp(ParameterString.c_str(),"B1LIM",5)) 00456 hwpram.B1LIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00457 else if(!strncmp(ParameterString.c_str(),"CLDIR(1)",8)) 00458 hwpram.CLDIR[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00459 else if(!strncmp(ParameterString.c_str(),"CLDIR(2)",8)) 00460 hwpram.CLDIR[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00461 else if(!strncmp(ParameterString.c_str(),"CLSMR(1)",8)) 00462 hwpram.CLSMR[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00463 else if(!strncmp(ParameterString.c_str(),"CLSMR(2)",8)) 00464 hwpram.CLSMR[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00465 else if(!strncmp(ParameterString.c_str(),"RMASS(1)",8)) 00466 hwprop.RMASS[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00467 else if(!strncmp(ParameterString.c_str(),"RMASS(2)",8)) 00468 hwprop.RMASS[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00469 else if(!strncmp(ParameterString.c_str(),"RMASS(3)",8)) 00470 hwprop.RMASS[3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00471 else if(!strncmp(ParameterString.c_str(),"RMASS(4)",8)) 00472 hwprop.RMASS[4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00473 else if(!strncmp(ParameterString.c_str(),"RMASS(5)",8)) 00474 hwprop.RMASS[5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00475 else if(!strncmp(ParameterString.c_str(),"RMASS(6)",8)) 00476 hwprop.RMASS[6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00477 else if(!strncmp(ParameterString.c_str(),"RMASS(13)",9)) 00478 hwprop.RMASS[13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00479 else if(!strncmp(ParameterString.c_str(),"SUDORD",6)) 00480 hwusud.SUDORD = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00481 else if(!strncmp(ParameterString.c_str(),"INTER",5)) 00482 hwusud.INTER = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00483 else if(!strncmp(ParameterString.c_str(),"NEGWTS",6)) 00484 hw6203.NEGWTS = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00485 else if(!strncmp(ParameterString.c_str(),"PMBN1",5)) 00486 hwminb.PMBN1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00487 else if(!strncmp(ParameterString.c_str(),"PMBN2",5)) 00488 hwminb.PMBN2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00489 else if(!strncmp(ParameterString.c_str(),"PMBN3",5)) 00490 hwminb.PMBN3 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00491 else if(!strncmp(ParameterString.c_str(),"PMBK1",5)) 00492 hwminb.PMBK1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00493 else if(!strncmp(ParameterString.c_str(),"PMBK2",5)) 00494 hwminb.PMBK2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00495 else if(!strncmp(ParameterString.c_str(),"PMBM1",5)) 00496 hwminb.PMBM1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00497 else if(!strncmp(ParameterString.c_str(),"PMBM2",5)) 00498 hwminb.PMBM2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00499 else if(!strncmp(ParameterString.c_str(),"PMBP1",5)) 00500 hwminb.PMBP1 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00501 else if(!strncmp(ParameterString.c_str(),"PMBP2",5)) 00502 hwminb.PMBP2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00503 else if(!strncmp(ParameterString.c_str(),"PMBP3",5)) 00504 hwminb.PMBP3 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00505 else if(!strncmp(ParameterString.c_str(),"VMIN2",5)) 00506 hwdist.VMIN2 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00507 else if(!strncmp(ParameterString.c_str(),"EXAG",4)) 00508 hwdist.EXAG = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00509 else if(!strncmp(ParameterString.c_str(),"PRECO",5)) 00510 hwuclu.PRECO = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00511 else if(!strncmp(ParameterString.c_str(),"CLRECO",6)) 00512 hwuclu.CLRECO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00513 else if(!strncmp(ParameterString.c_str(),"PWT(1)",6)) 00514 hwuwts.PWT[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00515 else if(!strncmp(ParameterString.c_str(),"PWT(2)",6)) 00516 hwuwts.PWT[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00517 else if(!strncmp(ParameterString.c_str(),"PWT(3)",6)) 00518 hwuwts.PWT[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00519 else if(!strncmp(ParameterString.c_str(),"PWT(4)",6)) 00520 hwuwts.PWT[3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00521 else if(!strncmp(ParameterString.c_str(),"PWT(5)",6)) 00522 hwuwts.PWT[4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00523 else if(!strncmp(ParameterString.c_str(),"PWT(6)",6)) 00524 hwuwts.PWT[5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00525 else if(!strncmp(ParameterString.c_str(),"PWT(7)",6)) 00526 hwuwts.PWT[6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00527 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,0)",12)) 00528 hwuwts.REPWT[0][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00529 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,1)",12)) 00530 hwuwts.REPWT[0][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00531 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,2)",12)) 00532 hwuwts.REPWT[0][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00533 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,3)",12)) 00534 hwuwts.REPWT[0][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00535 else if(!strncmp(ParameterString.c_str(),"REPWT(0,0,4)",12)) 00536 hwuwts.REPWT[0][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00537 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,0)",12)) 00538 hwuwts.REPWT[0][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00539 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,1)",12)) 00540 hwuwts.REPWT[0][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00541 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,2)",12)) 00542 hwuwts.REPWT[0][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00543 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,3)",12)) 00544 hwuwts.REPWT[0][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00545 else if(!strncmp(ParameterString.c_str(),"REPWT(0,1,4)",12)) 00546 hwuwts.REPWT[0][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00547 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,0)",12)) 00548 hwuwts.REPWT[0][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00549 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,1)",12)) 00550 hwuwts.REPWT[0][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00551 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,2)",12)) 00552 hwuwts.REPWT[0][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00553 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,3)",12)) 00554 hwuwts.REPWT[0][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00555 else if(!strncmp(ParameterString.c_str(),"REPWT(0,2,4)",12)) 00556 hwuwts.REPWT[0][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00557 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,0)",12)) 00558 hwuwts.REPWT[0][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00559 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,1)",12)) 00560 hwuwts.REPWT[0][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00561 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,2)",12)) 00562 hwuwts.REPWT[0][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00563 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,3)",12)) 00564 hwuwts.REPWT[0][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00565 else if(!strncmp(ParameterString.c_str(),"REPWT(0,3,4)",12)) 00566 hwuwts.REPWT[0][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00567 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,0)",12)) 00568 hwuwts.REPWT[0][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00569 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,1)",12)) 00570 hwuwts.REPWT[0][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00571 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,2)",12)) 00572 hwuwts.REPWT[0][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00573 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,3)",12)) 00574 hwuwts.REPWT[0][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00575 else if(!strncmp(ParameterString.c_str(),"REPWT(0,4,4)",12)) 00576 hwuwts.REPWT[0][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00577 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,0)",12)) 00578 hwuwts.REPWT[1][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00579 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,1)",12)) 00580 hwuwts.REPWT[1][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00581 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,2)",12)) 00582 hwuwts.REPWT[1][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00583 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,3)",12)) 00584 hwuwts.REPWT[1][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00585 else if(!strncmp(ParameterString.c_str(),"REPWT(1,0,4)",12)) 00586 hwuwts.REPWT[1][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00587 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,0)",12)) 00588 hwuwts.REPWT[1][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00589 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,1)",12)) 00590 hwuwts.REPWT[1][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00591 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,2)",12)) 00592 hwuwts.REPWT[1][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00593 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,3)",12)) 00594 hwuwts.REPWT[1][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00595 else if(!strncmp(ParameterString.c_str(),"REPWT(1,1,4)",12)) 00596 hwuwts.REPWT[1][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00597 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,0)",12)) 00598 hwuwts.REPWT[1][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00599 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,1)",12)) 00600 hwuwts.REPWT[1][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00601 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,2)",12)) 00602 hwuwts.REPWT[1][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00603 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,3)",12)) 00604 hwuwts.REPWT[1][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00605 else if(!strncmp(ParameterString.c_str(),"REPWT(1,2,4)",12)) 00606 hwuwts.REPWT[1][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00607 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,0)",12)) 00608 hwuwts.REPWT[1][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00609 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,1)",12)) 00610 hwuwts.REPWT[1][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00611 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,2)",12)) 00612 hwuwts.REPWT[1][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00613 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,3)",12)) 00614 hwuwts.REPWT[1][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00615 else if(!strncmp(ParameterString.c_str(),"REPWT(1,3,4)",12)) 00616 hwuwts.REPWT[1][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00617 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,0)",12)) 00618 hwuwts.REPWT[1][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00619 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,1)",12)) 00620 hwuwts.REPWT[1][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00621 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,2)",12)) 00622 hwuwts.REPWT[1][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00623 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,3)",12)) 00624 hwuwts.REPWT[1][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00625 else if(!strncmp(ParameterString.c_str(),"REPWT(1,4,4)",12)) 00626 hwuwts.REPWT[1][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00627 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,0)",12)) 00628 hwuwts.REPWT[2][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00629 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,1)",12)) 00630 hwuwts.REPWT[2][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00631 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,2)",12)) 00632 hwuwts.REPWT[2][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00633 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,3)",12)) 00634 hwuwts.REPWT[2][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00635 else if(!strncmp(ParameterString.c_str(),"REPWT(2,0,4)",12)) 00636 hwuwts.REPWT[2][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00637 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,0)",12)) 00638 hwuwts.REPWT[2][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00639 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,1)",12)) 00640 hwuwts.REPWT[2][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00641 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,2)",12)) 00642 hwuwts.REPWT[2][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00643 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,3)",12)) 00644 hwuwts.REPWT[2][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00645 else if(!strncmp(ParameterString.c_str(),"REPWT(2,1,4)",12)) 00646 hwuwts.REPWT[2][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00647 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,0)",12)) 00648 hwuwts.REPWT[2][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00649 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,1)",12)) 00650 hwuwts.REPWT[2][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00651 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,2)",12)) 00652 hwuwts.REPWT[2][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00653 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,3)",12)) 00654 hwuwts.REPWT[2][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00655 else if(!strncmp(ParameterString.c_str(),"REPWT(2,2,4)",12)) 00656 hwuwts.REPWT[2][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00657 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,0)",12)) 00658 hwuwts.REPWT[2][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00659 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,1)",12)) 00660 hwuwts.REPWT[2][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00661 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,2)",12)) 00662 hwuwts.REPWT[2][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00663 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,3)",12)) 00664 hwuwts.REPWT[2][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00665 else if(!strncmp(ParameterString.c_str(),"REPWT(2,3,4)",12)) 00666 hwuwts.REPWT[2][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00667 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,0)",12)) 00668 hwuwts.REPWT[2][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00669 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,1)",12)) 00670 hwuwts.REPWT[2][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00671 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,2)",12)) 00672 hwuwts.REPWT[2][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00673 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,3)",12)) 00674 hwuwts.REPWT[2][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00675 else if(!strncmp(ParameterString.c_str(),"REPWT(2,4,4)",12)) 00676 hwuwts.REPWT[2][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00677 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,0)",12)) 00678 hwuwts.REPWT[3][0][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00679 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,1)",12)) 00680 hwuwts.REPWT[3][0][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00681 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,2)",12)) 00682 hwuwts.REPWT[3][0][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00683 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,3)",12)) 00684 hwuwts.REPWT[3][0][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00685 else if(!strncmp(ParameterString.c_str(),"REPWT(3,0,4)",12)) 00686 hwuwts.REPWT[3][0][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00687 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,0)",12)) 00688 hwuwts.REPWT[3][1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00689 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,1)",12)) 00690 hwuwts.REPWT[3][1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00691 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,2)",12)) 00692 hwuwts.REPWT[3][1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00693 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,3)",12)) 00694 hwuwts.REPWT[3][1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00695 else if(!strncmp(ParameterString.c_str(),"REPWT(3,1,4)",12)) 00696 hwuwts.REPWT[3][1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00697 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,0)",12)) 00698 hwuwts.REPWT[3][2][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00699 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,1)",12)) 00700 hwuwts.REPWT[3][2][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00701 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,2)",12)) 00702 hwuwts.REPWT[3][2][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00703 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,3)",12)) 00704 hwuwts.REPWT[3][2][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00705 else if(!strncmp(ParameterString.c_str(),"REPWT(3,2,4)",12)) 00706 hwuwts.REPWT[3][2][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00707 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,0)",12)) 00708 hwuwts.REPWT[3][3][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00709 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,1)",12)) 00710 hwuwts.REPWT[3][3][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00711 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,2)",12)) 00712 hwuwts.REPWT[3][3][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00713 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,3)",12)) 00714 hwuwts.REPWT[3][3][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00715 else if(!strncmp(ParameterString.c_str(),"REPWT(3,3,4)",12)) 00716 hwuwts.REPWT[3][3][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00717 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,0)",12)) 00718 hwuwts.REPWT[3][4][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00719 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,1)",12)) 00720 hwuwts.REPWT[3][4][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00721 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,2)",12)) 00722 hwuwts.REPWT[3][4][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00723 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,3)",12)) 00724 hwuwts.REPWT[3][4][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00725 else if(!strncmp(ParameterString.c_str(),"REPWT(3,4,4)",12)) 00726 hwuwts.REPWT[3][4][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00727 else if(!strncmp(ParameterString.c_str(),"SNGWT",5)) 00728 hwuwts.SNGWT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00729 else if(!strncmp(ParameterString.c_str(),"DECWT",5)) 00730 hwuwts.DECWT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00731 else if(!strncmp(ParameterString.c_str(),"PLTCUT",6)) 00732 hwdist.PLTCUT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00733 else if(!strncmp(ParameterString.c_str(),"VTOCDK(",7)){ 00734 // we find the index ... 00735 int ind = atoi(&ParameterString[7]); 00736 hwprop.VTOCDK[ind] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);} 00737 else if(!strncmp(ParameterString.c_str(),"VTORDK(",7)){ 00738 // we find the index ... 00739 int ind = atoi(&ParameterString[7]); 00740 hwprop.VTORDK[ind] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]);} 00741 else if(!strncmp(ParameterString.c_str(),"PIPSMR",6)) 00742 hwdist.PIPSMR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00743 else if(!strncmp(ParameterString.c_str(),"VIPWID(1)",9)) 00744 hw6202.VIPWID[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00745 else if(!strncmp(ParameterString.c_str(),"VIPWID(2)",9)) 00746 hw6202.VIPWID[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00747 else if(!strncmp(ParameterString.c_str(),"VIPWID(3)",9)) 00748 hw6202.VIPWID[2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00749 else if(!strncmp(ParameterString.c_str(),"MAXDKL",6)) 00750 hwdist.MAXDKL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00751 else if(!strncmp(ParameterString.c_str(),"IOPDKL",6)) 00752 hwdist.IOPDKL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00753 else if(!strncmp(ParameterString.c_str(),"DXRCYL",6)) 00754 hw6202.DXRCYL = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00755 else if(!strncmp(ParameterString.c_str(),"DXZMAX",6)) 00756 hw6202.DXZMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00757 else if(!strncmp(ParameterString.c_str(),"DXRSPH",6)) 00758 hw6202.DXRSPH = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00759 // else if(!strncmp(ParameterString.c_str(),"BDECAY",6)) 00760 // hwprch.BDECAY = ParameterString[strcspn(ParameterString.c_str(),"=")+1]; 00761 else if(!strncmp(ParameterString.c_str(),"MIXING",6)) 00762 hwdist.MIXING = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00763 else if(!strncmp(ParameterString.c_str(),"XMIX(1)",7)) 00764 hwdist.XMIX[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00765 else if(!strncmp(ParameterString.c_str(),"XMIX(2)",7)) 00766 hwdist.XMIX[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00767 else if(!strncmp(ParameterString.c_str(),"YMIX(1)",7)) 00768 hwdist.YMIX[0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00769 else if(!strncmp(ParameterString.c_str(),"YMIX(2)",7)) 00770 hwdist.YMIX[1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00771 else if(!strncmp(ParameterString.c_str(),"RMASS(198)",10)) 00772 hwprop.RMASS[198] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00773 else if(!strncmp(ParameterString.c_str(),"RMASS(199)",10)) 00774 hwprop.RMASS[199] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00775 else if(!strncmp(ParameterString.c_str(),"GAMW",4)) 00776 hwpram.GAMW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00777 else if(!strncmp(ParameterString.c_str(),"GAMZ",4)) 00778 hwpram.GAMZ = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00779 else if(!strncmp(ParameterString.c_str(),"RMASS(200)",10)) 00780 hwprop.RMASS[200] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00781 else if(!strncmp(ParameterString.c_str(),"WZRFR",5)) 00782 hw6202.WZRFR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00783 else if(!strncmp(ParameterString.c_str(),"MODBOS(",7)) { 00784 int ind = atoi(&ParameterString[7]); 00785 hwbosc.MODBOS[ind-1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00786 else if(!strncmp(ParameterString.c_str(),"RMASS(201)",10)) 00787 hwprop.RMASS[201] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00788 else if(!strncmp(ParameterString.c_str(),"IOPHIG",6)) 00789 hwbosc.IOPHIG = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00790 else if(!strncmp(ParameterString.c_str(),"GAMMAX",6)) 00791 hwbosc.GAMMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00792 else if(!strncmp(ParameterString.c_str(),"ENHANC(",7)) { 00793 int ind = atoi(&ParameterString[7]); 00794 hwbosc.ENHANC[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00795 else if(!strncmp(ParameterString.c_str(),"RMASS(209)",10)) 00796 hwprop.RMASS[209] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00797 else if(!strncmp(ParameterString.c_str(),"RMASS(215)",10)) 00798 hwprop.RMASS[215] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00799 else if(!strncmp(ParameterString.c_str(),"ALPHEM",6)) 00800 hwpram.ALPHEM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00801 else if(!strncmp(ParameterString.c_str(),"SWEIN",5)) 00802 hwpram.SWEIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00803 else if(!strncmp(ParameterString.c_str(),"QFCH(",5)){ 00804 int ind = atoi(&ParameterString[5]); 00805 hwpram.QFCH[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00806 else if(!strncmp(ParameterString.c_str(),"AFCH(1,",7)){ 00807 int ind = atoi(&ParameterString[7]); if(ind<1||ind>2) return 0; 00808 hwpram.AFCH[ind-1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00809 else if(!strncmp(ParameterString.c_str(),"AFCH(2,",7)){ 00810 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00811 hwpram.AFCH[ind-1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00812 else if(!strncmp(ParameterString.c_str(),"AFCH(3,",7)){ 00813 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00814 hwpram.AFCH[ind-1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00815 else if(!strncmp(ParameterString.c_str(),"AFCH(4,",7)){ 00816 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00817 hwpram.AFCH[ind-1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00818 else if(!strncmp(ParameterString.c_str(),"AFCH(5,",7)){ 00819 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00820 hwpram.AFCH[ind-1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00821 else if(!strncmp(ParameterString.c_str(),"AFCH(6,",7)){ 00822 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00823 hwpram.AFCH[ind-1][5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00824 else if(!strncmp(ParameterString.c_str(),"AFCH(7,",7)){ 00825 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00826 hwpram.AFCH[ind-1][6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00827 else if(!strncmp(ParameterString.c_str(),"AFCH(8,",7)){ 00828 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00829 hwpram.AFCH[ind-1][7] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00830 else if(!strncmp(ParameterString.c_str(),"AFCH(9,",7)){ 00831 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00832 hwpram.AFCH[ind-1][8] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00833 else if(!strncmp(ParameterString.c_str(),"AFCH(10,",8)){ 00834 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0; 00835 hwpram.AFCH[ind-1][9] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00836 else if(!strncmp(ParameterString.c_str(),"AFCH(11,",8)){ 00837 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0; 00838 hwpram.AFCH[ind-1][10] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00839 else if(!strncmp(ParameterString.c_str(),"AFCH(12,",8)){ 00840 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0; 00841 hwpram.AFCH[ind-1][11] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00842 else if(!strncmp(ParameterString.c_str(),"AFCH(13,",8)){ 00843 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0; 00844 hwpram.AFCH[ind-1][12] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00845 else if(!strncmp(ParameterString.c_str(),"AFCH(14,",8)){ 00846 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0; 00847 hwpram.AFCH[ind-1][13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00848 else if(!strncmp(ParameterString.c_str(),"AFCH(15,",8)){ 00849 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0; 00850 hwpram.AFCH[ind-1][14] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00851 else if(!strncmp(ParameterString.c_str(),"AFCH(16,",8)){ 00852 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0; 00853 hwpram.AFCH[ind-1][15] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00854 else if(!strncmp(ParameterString.c_str(),"VFCH(1,",7)){ 00855 int ind = atoi(&ParameterString[7]); if(ind<1||ind>2) return 0; 00856 hwpram.VFCH[ind-1][0] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00857 else if(!strncmp(ParameterString.c_str(),"VFCH(2,",7)){ 00858 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00859 hwpram.VFCH[ind-1][1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00860 else if(!strncmp(ParameterString.c_str(),"VFCH(3,",7)){ 00861 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00862 hwpram.VFCH[ind-1][2] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00863 else if(!strncmp(ParameterString.c_str(),"VFCH(4,",7)){ 00864 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00865 hwpram.VFCH[ind-1][3] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00866 else if(!strncmp(ParameterString.c_str(),"VFCH(5,",7)){ 00867 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00868 hwpram.VFCH[ind-1][4] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00869 else if(!strncmp(ParameterString.c_str(),"VFCH(6,",7)){ 00870 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00871 hwpram.VFCH[ind-1][5] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00872 else if(!strncmp(ParameterString.c_str(),"VFCH(7,",7)){ 00873 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00874 hwpram.VFCH[ind-1][6] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00875 else if(!strncmp(ParameterString.c_str(),"VFCH(8,",7)){ 00876 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00877 hwpram.VFCH[ind-1][7] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00878 else if(!strncmp(ParameterString.c_str(),"VFCH(9,",7)){ 00879 int ind = atoi(&ParameterString[7]);if(ind<1||ind>2) return 0; 00880 hwpram.VFCH[ind-1][8] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00881 else if(!strncmp(ParameterString.c_str(),"VFCH(10,",8)){ 00882 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0; 00883 hwpram.VFCH[ind-1][9] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00884 else if(!strncmp(ParameterString.c_str(),"VFCH(11,",8)){ 00885 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0; 00886 hwpram.VFCH[ind-1][10] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00887 else if(!strncmp(ParameterString.c_str(),"VFCH(12,",8)){ 00888 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0; 00889 hwpram.VFCH[ind-1][11] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00890 else if(!strncmp(ParameterString.c_str(),"VFCH(13,",8)){ 00891 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0; 00892 hwpram.VFCH[ind-1][12] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00893 else if(!strncmp(ParameterString.c_str(),"VFCH(14,",8)){ 00894 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0; 00895 hwpram.VFCH[ind-1][13] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00896 else if(!strncmp(ParameterString.c_str(),"VFCH(15,",8)){ 00897 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0; 00898 hwpram.VFCH[ind-1][14] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00899 else if(!strncmp(ParameterString.c_str(),"VFCH(16,",8)){ 00900 int ind = atoi(&ParameterString[8]);if(ind<1||ind>2) return 0; 00901 hwpram.VFCH[ind-1][15] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00902 else if(!strncmp(ParameterString.c_str(),"ZPRIME",6)) 00903 hwpram.ZPRIME = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00904 else if(!strncmp(ParameterString.c_str(),"RMASS(202)",10)) 00905 hwprop.RMASS[202] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00906 else if(!strncmp(ParameterString.c_str(),"GAMZP",5)) 00907 hwpram.GAMZP = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00908 else if(!strncmp(ParameterString.c_str(),"VCKM(",5)) { 00909 int ind1 = atoi(&ParameterString[5]); 00910 if(ind1<1||ind1>3) return 0; 00911 int ind2 = atoi(&ParameterString[7]); 00912 if(ind2<1||ind2>3) return 0; 00913 hwpram.VCKM[ind2][ind1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00914 else if(!strncmp(ParameterString.c_str(),"SCABI",5)) 00915 hwpram.SCABI = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00916 else if(!strncmp(ParameterString.c_str(),"EPOLN(",6)) { 00917 int ind = atoi(&ParameterString[6]); 00918 if(ind<1||ind>3) return 0; 00919 hwhard.EPOLN[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00920 else if(!strncmp(ParameterString.c_str(),"PPOLN(",6)) { 00921 int ind = atoi(&ParameterString[6]); 00922 if(ind<1||ind>3) return 0; 00923 hwhard.PPOLN[ind-1] = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); } 00924 else if(!strncmp(ParameterString.c_str(),"QLIM",4)) 00925 hwhard.QLIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00926 else if(!strncmp(ParameterString.c_str(),"THMAX",5)) 00927 hwhard.THMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00928 else if(!strncmp(ParameterString.c_str(),"Y4JT",4)) 00929 hwhard.Y4JT = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00930 else if(!strncmp(ParameterString.c_str(),"DURHAM",6)) 00931 hwhard.DURHAM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00932 else if(!strncmp(ParameterString.c_str(),"IOP4JT(1)",9)) 00933 hwpram.IOP4JT[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00934 else if(!strncmp(ParameterString.c_str(),"IOP4JT(2)",9)) 00935 hwpram.IOP4JT[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00936 else if(!strncmp(ParameterString.c_str(),"BGSHAT",6)) 00937 hwhard.BGSHAT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00938 else if(!strncmp(ParameterString.c_str(),"BREIT",5)) 00939 hwbrch.BREIT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00940 else if(!strncmp(ParameterString.c_str(),"USECMF",6)) 00941 hwbrch.USECMF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00942 else if(!strncmp(ParameterString.c_str(),"NOSPAC",6)) 00943 hwpram.NOSPAC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00944 else if(!strncmp(ParameterString.c_str(),"ISPAC",5)) 00945 hwpram.ISPAC = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00946 else if(!strncmp(ParameterString.c_str(),"TMNISR",6)) 00947 hwhard.TMNISR = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00948 else if(!strncmp(ParameterString.c_str(),"ZMXISR",6)) 00949 hwhard.ZMXISR = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00950 else if(!strncmp(ParameterString.c_str(),"ASFIXD",6)) 00951 hwhard.ASFIXD = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00952 else if(!strncmp(ParameterString.c_str(),"OMEGA0",6)) 00953 hwhard.OMEGA0 = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00954 else if(!strncmp(ParameterString.c_str(),"IAPHIG",6)) 00955 hwhard.IAPHIG = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00956 else if(!strncmp(ParameterString.c_str(),"PHOMAS",6)) 00957 hwhard.PHOMAS = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00958 else if(!strncmp(ParameterString.c_str(),"PRESPL",6)) 00959 hw6500.PRESPL = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00960 else if(!strncmp(ParameterString.c_str(),"PTMIN",5)) 00961 hwhard.PTMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00962 else if(!strncmp(ParameterString.c_str(),"PTMAX",5)) 00963 hwhard.PTMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00964 else if(!strncmp(ParameterString.c_str(),"PTPOW",5)) 00965 hwhard.PTPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00966 else if(!strncmp(ParameterString.c_str(),"YJMIN",5)) 00967 hwhard.YJMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00968 else if(!strncmp(ParameterString.c_str(),"YJMAX",5)) 00969 hwhard.YJMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00970 else if(!strncmp(ParameterString.c_str(),"EMMIN",5)) 00971 hwhard.EMMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00972 else if(!strncmp(ParameterString.c_str(),"EMMAX",5)) 00973 hwhard.EMMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00974 else if(!strncmp(ParameterString.c_str(),"EMPOW",5)) 00975 hwhard.EMPOW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00976 else if(!strncmp(ParameterString.c_str(),"Q2MIN",5)) 00977 hwhard.Q2MIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00978 else if(!strncmp(ParameterString.c_str(),"Q2MAX",5)) 00979 hwhard.Q2MAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00980 else if(!strncmp(ParameterString.c_str(),"Q2POW",5)) 00981 hwhard.Q2POW = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00982 else if(!strncmp(ParameterString.c_str(),"YBMIN",5)) 00983 hwhard.YBMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00984 else if(!strncmp(ParameterString.c_str(),"YBMAX",5)) 00985 hwhard.YBMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00986 else if(!strncmp(ParameterString.c_str(),"WHMIN",5)) 00987 hwhard.WHMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00988 else if(!strncmp(ParameterString.c_str(),"ZJMAX",5)) 00989 hwhard.ZJMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00990 else if(!strncmp(ParameterString.c_str(),"Q2WWMN",6)) 00991 hwhard.Q2WWMN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00992 else if(!strncmp(ParameterString.c_str(),"Q2WWMX",6)) 00993 hwhard.Q2WWMX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00994 else if(!strncmp(ParameterString.c_str(),"YWWMIN",6)) 00995 hwhard.YWWMIN = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00996 else if(!strncmp(ParameterString.c_str(),"YWWMAX",6)) 00997 hwhard.YWWMAX = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 00998 else if(!strncmp(ParameterString.c_str(),"CSPEED",6)) 00999 hwpram.CSPEED = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01000 else if(!strncmp(ParameterString.c_str(),"GEV2NB",6)) 01001 hwpram.GEV2NB = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01002 else if(!strncmp(ParameterString.c_str(),"IBSH",4)) 01003 hwhard.IBSH = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01004 else if(!strncmp(ParameterString.c_str(),"IBRN(1)",7)) 01005 hwhard.IBRN[0] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01006 else if(!strncmp(ParameterString.c_str(),"IBRN(2)",7)) 01007 hwhard.IBRN[1] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01008 else if(!strncmp(ParameterString.c_str(),"NQEV",4)) 01009 hwusud.NQEV = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01010 else if(!strncmp(ParameterString.c_str(),"ZBINM",5)) 01011 hwpram.ZBINM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01012 else if(!strncmp(ParameterString.c_str(),"NZBIN",5)) 01013 hwpram.NZBIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01014 else if(!strncmp(ParameterString.c_str(),"NBTRY",5)) 01015 hwpram.NBTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01016 else if(!strncmp(ParameterString.c_str(),"NCTRY",5)) 01017 hwpram.NCTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01018 else if(!strncmp(ParameterString.c_str(),"NETRY",5)) 01019 hwpram.NETRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01020 else if(!strncmp(ParameterString.c_str(),"NSTRY",5)) 01021 hwpram.NSTRY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01022 else if(!strncmp(ParameterString.c_str(),"ACCUR",5)) 01023 hwusud.ACCUR = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01024 else if(!strncmp(ParameterString.c_str(),"RPARTY",6)) 01025 hwrpar.RPARTY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01026 else if(!strncmp(ParameterString.c_str(),"SUSYIN",6)) 01027 hwsusy.SUSYIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01028 else if(!strncmp(ParameterString.c_str(),"LRSUSY",6)) 01029 hw6202.LRSUSY = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01030 else if(!strncmp(ParameterString.c_str(),"SYSPIN",6)) 01031 hwdspn.SYSPIN = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01032 else if(!strncmp(ParameterString.c_str(),"THREEB",6)) 01033 hwdspn.THREEB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01034 else if(!strncmp(ParameterString.c_str(),"FOURB",5)) 01035 hwdspn.FOURB = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01036 else if(!strncmp(ParameterString.c_str(),"LHSOFT",6)) 01037 hwgupr.LHSOFT = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01038 else if(!strncmp(ParameterString.c_str(),"LHGLSF",6)) 01039 hwgupr.LHGLSF = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01040 else if(!strncmp(ParameterString.c_str(),"OPTM",4)) 01041 hw6300.OPTM = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01042 else if(!strncmp(ParameterString.c_str(),"IOPSTP",6)) 01043 hw6300.IOPSTP = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01044 else if(!strncmp(ParameterString.c_str(),"IOPSH",5)) 01045 hw6300.IOPSH = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01046 else if(!strncmp(ParameterString.c_str(),"JMUEO",5)) 01047 jmparm.JMUEO = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01048 else if(!strncmp(ParameterString.c_str(),"PTJIM",5)) 01049 jmparm.PTJIM = atof(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01050 else if(!strncmp(ParameterString.c_str(),"JMRAD(73)",9)) 01051 jmparm.JMRAD[72] = atoi(&ParameterString[strcspn(ParameterString.c_str(),"=")+1]); 01052 01053 else accepted = 0; 01054 01055 return accepted; 01056 }
void Herwig6Producer::produce | ( | Event & | e, | |
const EventSetup & | es | |||
) | [private, virtual] |
Implements edm::EDProducer.
Definition at line 242 of file Herwig6Producer.cc.
References conv, counter(), doMPInteraction_, edm::errors::EventCorruption, evt, except, Exception, herwigHepMCVerbosity_, hwmsct_dummy, numberEvents_, numTrials_, edm::Event::put(), and useJimmy_.
00242 { 00243 00244 int counter = 0; 00245 double mpiok = 1.0; 00246 00247 while(mpiok > 0.5 && counter < numTrials_) { 00248 00249 // call herwig routines to create HEPEVT 00250 hwuine(); 00251 hwepro(); 00252 hwbgen(); 00253 00254 // call jimmy ... only if event is not killed yet by HERWIG 00255 if(useJimmy_ && doMPInteraction_ && hwevnt.IERROR==0) 00256 mpiok = hwmsct_dummy(1.1); 00257 else mpiok = 0.0; 00258 counter++; 00259 } 00260 00261 // event after numTrials MP is not ok -> skip event 00262 if(mpiok > 0.5) { 00263 LogWarning("") <<" JIMMY could not produce MI in "<<numTrials_<<" trials.\n"<<" Event will be skipped to prevent from deadlock.\n"; 00264 00265 // Throw an exception. Use the EventCorruption exception since it maps onto 00266 // SkipEvent which is what we want to do here. 00267 std::ostringstream sstr; 00268 sstr << "Herwig6Producer: JIMMY failure after " << numTrials_ << " trials\n"; 00269 edm::Exception except(edm::errors::EventCorruption, sstr.str()); 00270 throw except; 00271 } 00272 00273 hwdhob(); 00274 hwcfor(); 00275 hwcdec(); 00276 hwdhad(); 00277 hwdhvy(); 00278 hwmevt(); 00279 hwufne(); 00280 00281 // if event was killed by HERWIG; skip 00282 if(hwevnt.IERROR!=0) { 00283 std::ostringstream sstr; 00284 sstr << "Herwig6Producer: Herwig killed this event " << "\n"; 00285 edm::Exception except(edm::errors::EventCorruption, sstr.str()); 00286 throw except; 00287 } 00288 00289 // ----------------- HepMC converter -------------------- 00290 HepMC::IO_HERWIG conv; 00291 00292 // HEPEVT is ok, create new HepMC event 00293 evt = new HepMC::GenEvent(); 00294 bool ok = conv.fill_next_event( evt ); 00295 ++numberEvents_; 00296 // if conversion failed; throw excpetion and stop processing 00297 if(!ok) throw cms::Exception("HerwigError") 00298 << " Conversion problems in event nr." << numberEvents_ << "."; 00299 00300 // set process id and event number 00301 evt->set_signal_process_id(hwproc.IPROC); 00302 evt->set_event_number(numberEvents_); 00303 00304 if (herwigHepMCVerbosity_) { 00305 LogWarning("") << "Event process = " << evt->signal_process_id() << "\n----------------------\n"; 00306 evt->print(); 00307 } 00308 00309 // dummy if: event MUST be there 00310 if(evt) { 00311 auto_ptr<HepMCProduct> bare_product(new HepMCProduct()); 00312 bare_product->addHepMCData(evt ); 00313 e.put(bare_product); 00314 } 00315 }
Definition at line 1069 of file Herwig6Producer.cc.
Referenced by Herwig6Producer().
01070 { 01071 double temx[5]; 01072 for (int i=0; i<5; i++) { 01073 mseed = mseed * 29943829 - 1; 01074 temx[i] = mseed * (1./(65536.*65536.)); 01075 } 01076 long double c; 01077 c = (long double)2111111111.0 * temx[3] + 01078 1492.0 * (temx[3] = temx[2]) + 01079 1776.0 * (temx[2] = temx[1]) + 01080 5115.0 * (temx[1] = temx[0]) + 01081 temx[4]; 01082 temx[4] = floorl(c); 01083 temx[0] = c - temx[4]; 01084 temx[4] = temx[4] * (1./(65536.*65536.)); 01085 hwevnt.NRN[0]=int(temx[0]*99999); 01086 c = (long double)2111111111.0 * temx[3] + 01087 1492.0 * (temx[3] = temx[2]) + 01088 1776.0 * (temx[2] = temx[1]) + 01089 5115.0 * (temx[1] = temx[0]) + 01090 temx[4]; 01091 temx[4] = floorl(c); 01092 temx[0] = c - temx[4]; 01093 hwevnt.NRN[1]=int(temx[0]*99999); 01094 01095 return true; 01096 }
double edm::Herwig6Producer::comenergy [private] |
bool edm::Herwig6Producer::doMPInteraction_ [private] |
HepMC::GenEvent* edm::Herwig6Producer::evt [private] |
double edm::Herwig6Producer::extCrossSect [private] |
double edm::Herwig6Producer::extFilterEff [private] |
CLHEP::HepRandomEngine* edm::Herwig6Producer::fRandomEngine [private] |
int edm::Herwig6Producer::herwigVerbosity_ [private] |
double edm::Herwig6Producer::intCrossSect [private] |
std::string edm::Herwig6Producer::lhapdfSetPath_ [private] |
int edm::Herwig6Producer::maxEventsToPrint_ [private] |
unsigned int edm::Herwig6Producer::numberEvents_ [private] |
int edm::Herwig6Producer::numTrials_ [private] |
bool edm::Herwig6Producer::printCards_ [private] |
bool edm::Herwig6Producer::useJimmy_ [private] |
Definition at line 49 of file Herwig6Producer.h.
Referenced by clear(), Herwig6Producer(), and produce().