00001 //-------------------------------------------------------------------------- 00002 // 00003 // Environment: 00004 // This software is part of the EvtGen package developed jointly 00005 // for the BaBar and CLEO collaborations. If you use all or part 00006 // of it, please give an appropriate acknowledgement. 00007 // 00008 // Copyright Information: See EvtGen/COPYRIGHT 00009 // Copyright (C) 1998 Caltech, UCSB 00010 // 00011 // Module: EvtISGW2.cc 00012 // 00013 // Description: Routine to implement semileptonic decays according 00014 // to the model ISGW2 00015 // 00016 // Modification history: 00017 // 00018 // DJL/RYD September 25, 1996 Module created 00019 // 00020 //------------------------------------------------------------------------ 00021 // 00022 #include "EvtGenBase/EvtPatches.hh" 00023 #include <stdlib.h> 00024 #include "EvtGenBase/EvtParticle.hh" 00025 #include "EvtGenBase/EvtGenKine.hh" 00026 #include "EvtGenBase/EvtPDL.hh" 00027 #include "EvtGenBase/EvtReport.hh" 00028 #include "EvtGenModels/EvtISGW2.hh" 00029 #include "EvtGenBase/EvtConst.hh" 00030 #include "EvtGenBase/EvtIdSet.hh" 00031 #include <string> 00032 #include "EvtGenModels/EvtISGW2FF.hh" 00033 #include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh" 00034 #include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh" 00035 #include "EvtGenBase/EvtSemiLeptonicTensorAmp.hh" 00036 00037 EvtISGW2::EvtISGW2(): 00038 isgw2ffmodel(0) 00039 ,calcamp(0) 00040 {} 00041 00042 00043 EvtISGW2::~EvtISGW2() { 00044 delete isgw2ffmodel; 00045 isgw2ffmodel=0; 00046 delete calcamp; 00047 calcamp=0; 00048 } 00049 00050 void EvtISGW2::getName(std::string& model_name){ 00051 00052 model_name="ISGW2"; 00053 00054 } 00055 00056 00057 00058 EvtDecayBase* EvtISGW2::clone(){ 00059 00060 return new EvtISGW2; 00061 00062 } 00063 00064 void EvtISGW2::decay( EvtParticle *p ){ 00065 00066 p->initializePhaseSpace(getNDaug(),getDaugs()); 00067 00068 calcamp->CalcAmp(p,_amp2,isgw2ffmodel); 00069 00070 } 00071 00072 void EvtISGW2::initProbMax() { 00073 00074 //added by Lange Jan4,2000 00075 static EvtId EM=EvtPDL::getId("e-"); 00076 static EvtId EP=EvtPDL::getId("e+"); 00077 static EvtId MUM=EvtPDL::getId("mu-"); 00078 static EvtId MUP=EvtPDL::getId("mu+"); 00079 static EvtId TAUM=EvtPDL::getId("tau-"); 00080 static EvtId TAUP=EvtPDL::getId("tau+"); 00081 00082 static EvtId BP=EvtPDL::getId("B+"); 00083 static EvtId BM=EvtPDL::getId("B-"); 00084 static EvtId B0=EvtPDL::getId("B0"); 00085 static EvtId B0B=EvtPDL::getId("anti-B0"); 00086 static EvtId BS0=EvtPDL::getId("B_s0"); 00087 static EvtId BSB=EvtPDL::getId("anti-B_s0"); 00088 static EvtId BCP=EvtPDL::getId("B_c+"); 00089 static EvtId BCM=EvtPDL::getId("B_c-"); 00090 00091 static EvtId DST0=EvtPDL::getId("D*0"); 00092 static EvtId DSTB=EvtPDL::getId("anti-D*0"); 00093 static EvtId DSTP=EvtPDL::getId("D*+"); 00094 static EvtId DSTM=EvtPDL::getId("D*-"); 00095 static EvtId D0=EvtPDL::getId("D0"); 00096 static EvtId D0B=EvtPDL::getId("anti-D0"); 00097 static EvtId DP=EvtPDL::getId("D+"); 00098 static EvtId DM=EvtPDL::getId("D-"); 00099 00100 static EvtId D1P1P=EvtPDL::getId("D_1+"); 00101 static EvtId D1P1N=EvtPDL::getId("D_1-"); 00102 static EvtId D1P10=EvtPDL::getId("D_10"); 00103 static EvtId D1P1B=EvtPDL::getId("anti-D_10"); 00104 00105 static EvtId D3P2P=EvtPDL::getId("D_2*+"); 00106 static EvtId D3P2N=EvtPDL::getId("D_2*-"); 00107 static EvtId D3P20=EvtPDL::getId("D_2*0"); 00108 static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); 00109 00110 static EvtId D3P1P=EvtPDL::getId("D'_1+"); 00111 static EvtId D3P1N=EvtPDL::getId("D'_1-"); 00112 static EvtId D3P10=EvtPDL::getId("D'_10"); 00113 static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); 00114 00115 static EvtId D3P0P=EvtPDL::getId("D_0*+"); 00116 static EvtId D3P0N=EvtPDL::getId("D_0*-"); 00117 static EvtId D3P00=EvtPDL::getId("D_0*0"); 00118 static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); 00119 00120 static EvtId D21S0P=EvtPDL::getId("D(2S)+"); 00121 static EvtId D21S0N=EvtPDL::getId("D(2S)-"); 00122 static EvtId D21S00=EvtPDL::getId("D(2S)0"); 00123 static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0"); 00124 00125 static EvtId D23S1P=EvtPDL::getId("D*(2S)+"); 00126 static EvtId D23S1N=EvtPDL::getId("D*(2S)-"); 00127 static EvtId D23S10=EvtPDL::getId("D*(2S)0"); 00128 static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0"); 00129 00130 static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); 00131 static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); 00132 static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); 00133 static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); 00134 static EvtId ETA2S=EvtPDL::getId("eta(2S)"); 00135 00136 static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); 00137 static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); 00138 static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); 00139 00140 static EvtId PIP=EvtPDL::getId("pi+"); 00141 static EvtId PIM=EvtPDL::getId("pi-"); 00142 static EvtId PI0=EvtPDL::getId("pi0"); 00143 00144 static EvtId RHOP=EvtPDL::getId("rho+"); 00145 static EvtId RHOM=EvtPDL::getId("rho-"); 00146 static EvtId RHO0=EvtPDL::getId("rho0"); 00147 00148 static EvtId A2P=EvtPDL::getId("a_2+"); 00149 static EvtId A2M=EvtPDL::getId("a_2-"); 00150 static EvtId A20=EvtPDL::getId("a_20"); 00151 00152 static EvtId A1P=EvtPDL::getId("a_1+"); 00153 static EvtId A1M=EvtPDL::getId("a_1-"); 00154 static EvtId A10=EvtPDL::getId("a_10"); 00155 00156 static EvtId A0P=EvtPDL::getId("a_0+"); 00157 static EvtId A0M=EvtPDL::getId("a_0-"); 00158 static EvtId A00=EvtPDL::getId("a_00"); 00159 00160 static EvtId B1P=EvtPDL::getId("b_1+"); 00161 static EvtId B1M=EvtPDL::getId("b_1-"); 00162 static EvtId B10=EvtPDL::getId("b_10"); 00163 00164 static EvtId H1=EvtPDL::getId("h_1"); 00165 static EvtId H1PR=EvtPDL::getId("h'_1"); 00166 00167 static EvtId F1=EvtPDL::getId("f_1"); 00168 static EvtId F1PR=EvtPDL::getId("f'_1"); 00169 static EvtId F0=EvtPDL::getId("f_0"); 00170 static EvtId F0PR=EvtPDL::getId("f'_0"); 00171 static EvtId F2=EvtPDL::getId("f_2"); 00172 static EvtId F2PR=EvtPDL::getId("f'_2"); 00173 00174 static EvtId ETA=EvtPDL::getId("eta"); 00175 static EvtId ETAPR=EvtPDL::getId("eta'"); 00176 static EvtId OMEG=EvtPDL::getId("omega"); 00177 00178 static EvtId KP=EvtPDL::getId("K+"); 00179 static EvtId KM=EvtPDL::getId("K-"); 00180 static EvtId K0=EvtPDL::getId("K0"); 00181 static EvtId KB=EvtPDL::getId("anti-K0"); 00182 static EvtId K0S=EvtPDL::getId("K_S0"); 00183 static EvtId K0L=EvtPDL::getId("K_L0"); 00184 00185 static EvtId KSTP=EvtPDL::getId("K*+"); 00186 static EvtId KSTM=EvtPDL::getId("K*-"); 00187 static EvtId KST0=EvtPDL::getId("K*0"); 00188 static EvtId KSTB=EvtPDL::getId("anti-K*0"); 00189 00190 static EvtId K1P=EvtPDL::getId("K_1+"); 00191 static EvtId K1M=EvtPDL::getId("K_1-"); 00192 static EvtId K10=EvtPDL::getId("K_10"); 00193 static EvtId K1B=EvtPDL::getId("anti-K_10"); 00194 00195 static EvtId K1STP=EvtPDL::getId("K'_1+"); 00196 static EvtId K1STM=EvtPDL::getId("K'_1-"); 00197 static EvtId K1ST0=EvtPDL::getId("K'_10"); 00198 static EvtId K1STB=EvtPDL::getId("anti-K'_10"); 00199 00200 static EvtId K2STP=EvtPDL::getId("K_2*+"); 00201 static EvtId K2STM=EvtPDL::getId("K_2*-"); 00202 static EvtId K2ST0=EvtPDL::getId("K_2*0"); 00203 static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); 00204 00205 static EvtId K0STP=EvtPDL::getId("K_0*+"); 00206 static EvtId K0STM=EvtPDL::getId("K_0*-"); 00207 static EvtId K0ST0=EvtPDL::getId("K_0*0"); 00208 static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); 00209 00210 static EvtId PHI=EvtPDL::getId("phi"); 00211 static EvtId DSP=EvtPDL::getId("D_s+"); 00212 static EvtId DSM=EvtPDL::getId("D_s-"); 00213 00214 static EvtId DSSTP=EvtPDL::getId("D_s*+"); 00215 static EvtId DSSTM=EvtPDL::getId("D_s*-"); 00216 static EvtId DS1P=EvtPDL::getId("D_s1+"); 00217 static EvtId DS1M=EvtPDL::getId("D_s1-"); 00218 static EvtId DS0STP=EvtPDL::getId("D_s0*+"); 00219 static EvtId DS0STM=EvtPDL::getId("D_s0*-"); 00220 static EvtId DPS1P=EvtPDL::getId("D'_s1+"); 00221 static EvtId DPS1M=EvtPDL::getId("D'_s1-"); 00222 static EvtId DS2STP=EvtPDL::getId("D_s2*+"); 00223 static EvtId DS2STM=EvtPDL::getId("D_s2*-"); 00224 00225 EvtId parnum,mesnum,lnum; 00226 00227 parnum = getParentId(); 00228 mesnum = getDaug(0); 00229 lnum = getDaug(1); 00230 00231 00232 if ( parnum==BP||parnum==BM||parnum==B0||parnum==B0B||parnum==BS0||parnum==BSB ) { 00233 00234 00235 if ( mesnum==DST0||mesnum==DSTP||mesnum==DSTB||mesnum==DSTM||mesnum==DSSTP||mesnum==DSSTM) { 00236 00237 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00238 setProbMax(10000.0); 00239 return; 00240 } 00241 if ( lnum==TAUP||lnum==TAUM ) { 00242 setProbMax(7000.0); 00243 return; 00244 } 00245 } 00246 00247 00248 if ( mesnum==D0||mesnum==DP||mesnum==D0B||mesnum==DM||mesnum==DSP||mesnum==DSM) { 00249 00250 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00251 setProbMax(4000.0); 00252 return; 00253 } 00254 if ( lnum==TAUP||lnum==TAUM ) { 00255 setProbMax(3500.0); 00256 return; 00257 } 00258 } 00259 00260 00261 if ( mesnum==D1P1P||mesnum==D1P1N||mesnum==D1P10||mesnum==D1P1B||mesnum==DS1P||mesnum==DS1M) { 00262 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00263 setProbMax(1300.0); 00264 return; 00265 } 00266 if ( lnum==TAUP||lnum==TAUM ) { 00267 setProbMax(480.0); 00268 return; 00269 } 00270 } 00271 00272 if ( mesnum==D3P1P||mesnum==D3P1N||mesnum==D3P10||mesnum==D3P1B||mesnum==DS0STP||mesnum==DS0STM) { 00273 00274 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00275 setProbMax(450.0); 00276 return; 00277 } 00278 if ( lnum==TAUP||lnum==TAUM ) { 00279 setProbMax(73.0);//??? 00280 return; 00281 } 00282 } 00283 00284 if ( mesnum==D3P0P||mesnum==D3P0N||mesnum==D3P00||mesnum==D3P0B||mesnum==DPS1P||mesnum==DPS1M) { 00285 00286 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00287 setProbMax(200.0); 00288 return; 00289 } 00290 if ( lnum==TAUP||lnum==TAUM ) { 00291 setProbMax(90.0); 00292 return; 00293 } 00294 } 00295 if ( mesnum==D3P2P||mesnum==D3P2N||mesnum==D3P20||mesnum==D3P2B||mesnum==DS2STP||mesnum==DS2STM) { 00296 00297 if ( mesnum==DS2STP|| mesnum==DS2STM) { 00298 setProbMax(550.0); 00299 return; 00300 } 00301 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00302 setProbMax(400.0); 00303 return; 00304 } 00305 if ( lnum==TAUP||lnum==TAUM ) { 00306 setProbMax(220.0); 00307 return; 00308 } 00309 } 00310 00311 if ( mesnum==D21S0P||mesnum==D21S0N||mesnum==D21S00||mesnum==D21S0B) { 00312 00313 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00314 setProbMax(16.0); 00315 return; 00316 } 00317 if ( lnum==TAUP||lnum==TAUM ) { 00318 setProbMax(3.0); 00319 return; 00320 } 00321 } 00322 00323 if ( mesnum==D23S1P||mesnum==D23S1N||mesnum==D23S10||mesnum==D23S1B) { 00324 00325 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00326 setProbMax(500.0); 00327 return; 00328 } 00329 if ( lnum==TAUP||lnum==TAUM ) { 00330 setProbMax(250.0); 00331 return; 00332 } 00333 } 00334 00335 if ( mesnum==RHOP||mesnum==RHOM||mesnum==RHO0) { 00336 00337 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00338 setProbMax(6500.0); 00339 return; 00340 } 00341 if ( lnum==TAUP||lnum==TAUM ) { 00342 setProbMax(6000.0); 00343 return; 00344 } 00345 } 00346 00347 if ( mesnum==OMEG) { 00348 00349 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00350 setProbMax(6800.0); 00351 return; 00352 } 00353 if ( lnum==TAUP||lnum==TAUM ) { 00354 setProbMax(6000.0); 00355 return; 00356 } 00357 } 00358 00359 if ( mesnum==PIP||mesnum==PIM||mesnum==PI0) { 00360 00361 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00362 setProbMax(1200.0); 00363 return; 00364 } 00365 if ( lnum==TAUP||lnum==TAUM ) { 00366 setProbMax(1150.0); 00367 return; 00368 } 00369 } 00370 00371 if ( mesnum==ETA) { 00372 00373 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00374 setProbMax(1800.0); 00375 return; 00376 } 00377 if ( lnum==TAUP||lnum==TAUM ) { 00378 setProbMax(1900.0); 00379 return; 00380 } 00381 } 00382 00383 if ( mesnum==ETAPR) { 00384 00385 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00386 setProbMax(3000.0); 00387 return; 00388 } 00389 if ( lnum==TAUP||lnum==TAUM ) { 00390 setProbMax(3000.0); 00391 return; 00392 } 00393 } 00394 00395 00396 if ( mesnum==B1P||mesnum==B1M||mesnum==B10) { 00397 00398 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00399 setProbMax(2500.0); 00400 return; 00401 } 00402 if ( lnum==TAUP||lnum==TAUM ) { 00403 setProbMax(1700.0); 00404 return; 00405 } 00406 } 00407 00408 if ( mesnum==A0P||mesnum==A0M||mesnum==A00) { 00409 00410 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00411 setProbMax(80.0); 00412 return; 00413 } 00414 if ( lnum==TAUP||lnum==TAUM ) { 00415 setProbMax(62.0); 00416 return; 00417 } 00418 } 00419 00420 if ( mesnum==A1P||mesnum==A1M||mesnum==A10) { 00421 00422 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00423 setProbMax(4500.0); 00424 return; 00425 } 00426 if ( lnum==TAUP||lnum==TAUM ) { 00427 setProbMax(3500.0); 00428 return; 00429 } 00430 } 00431 00432 if ( mesnum==A2P||mesnum==A2M||mesnum==A20) { 00433 00434 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00435 setProbMax(1200.0); 00436 return; 00437 } 00438 if ( lnum==TAUP||lnum==TAUM ) { 00439 setProbMax(1000.0); 00440 return; 00441 } 00442 } 00443 00444 if ( mesnum==H1) { 00445 00446 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00447 setProbMax(2600.0); 00448 return; 00449 } 00450 if ( lnum==TAUP||lnum==TAUM ) { 00451 setProbMax(2900.0); 00452 return; 00453 } 00454 } 00455 00456 if ( mesnum==H1PR) { 00457 00458 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00459 setProbMax(1400.0); 00460 return; 00461 } 00462 if ( lnum==TAUP||lnum==TAUM ) { 00463 setProbMax(1500.0); 00464 return; 00465 } 00466 } 00467 00468 if ( mesnum==F2) { 00469 00470 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00471 setProbMax(1100.0); 00472 return; 00473 } 00474 if ( lnum==TAUP||lnum==TAUM ) { 00475 setProbMax(1100.0); 00476 return; 00477 } 00478 } 00479 00480 if ( mesnum==F2PR) { 00481 00482 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00483 setProbMax(804.0); 00484 return; 00485 } 00486 if ( lnum==TAUP||lnum==TAUM ) { 00487 setProbMax(600.0); 00488 return; 00489 } 00490 } 00491 00492 if ( mesnum==F1) { 00493 00494 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00495 setProbMax(2500.0); 00496 return; 00497 } 00498 if ( lnum==TAUP||lnum==TAUM ) { 00499 setProbMax(2000.0) ; 00500 return; 00501 } 00502 } 00503 00504 if ( mesnum==F1PR) { 00505 00506 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00507 setProbMax(2400.0); 00508 return; 00509 } 00510 if ( lnum==TAUP||lnum==TAUM ) { 00511 setProbMax(1700.0); 00512 return; 00513 } 00514 } 00515 00516 if ( mesnum==F0) { 00517 00518 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00519 setProbMax( 80.0); 00520 return; 00521 } 00522 if ( lnum==TAUP||lnum==TAUM ) { 00523 setProbMax(63.0); 00524 return; 00525 } 00526 } 00527 00528 if ( mesnum==F0PR) { 00529 00530 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00531 setProbMax(120.0); 00532 return; 00533 } 00534 if ( lnum==TAUP||lnum==TAUM ) { 00535 setProbMax(120.0); 00536 return; 00537 } 00538 } 00539 00540 00541 if ( mesnum==RHO2SP||mesnum==RHO2SM||mesnum==RHO2S0) { 00542 00543 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00544 setProbMax( 2400.0); 00545 return; 00546 } 00547 if ( lnum==TAUP||lnum==TAUM ) { 00548 setProbMax(2000.0); 00549 return; 00550 } 00551 } 00552 00553 if ( mesnum==OMEG2S) { 00554 00555 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00556 setProbMax(1600.0); 00557 return; 00558 } 00559 if ( lnum==TAUP||lnum==TAUM ) { 00560 setProbMax(1400.0) ; 00561 return; 00562 } 00563 } 00564 00565 if ( mesnum==PI2SP||mesnum==PI2SM||mesnum==PI2S0) { 00566 00567 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00568 setProbMax( 500.0); 00569 return; 00570 } 00571 if ( lnum==TAUP||lnum==TAUM ) { 00572 setProbMax(300.0); 00573 return; 00574 } 00575 } 00576 00577 if ( mesnum==ETA2S) { 00578 00579 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00580 setProbMax(344.0); 00581 return; 00582 } 00583 if ( lnum==TAUP||lnum==TAUM ) { 00584 setProbMax(300.0); 00585 return; 00586 } 00587 } 00588 00589 if ( mesnum==KP||mesnum==KM|| 00590 mesnum==K1P||mesnum==K1M||mesnum==K1STP||mesnum==K1STM) { 00591 00592 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00593 setProbMax(2000.0); 00594 return; 00595 } 00596 if ( lnum==TAUP||lnum==TAUM ) { 00597 setProbMax(1000.0); 00598 return; 00599 } 00600 } 00601 00602 if ( mesnum==KSTP||mesnum==KSTM ) { 00603 00604 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00605 setProbMax(10000.0); 00606 return; 00607 } 00608 if ( lnum==TAUP||lnum==TAUM ) { 00609 setProbMax(7000.0); 00610 return; 00611 } 00612 } 00613 00614 00615 } 00616 00617 if ( parnum==D0||parnum==DP||parnum==DM||parnum==D0B ) { 00618 00619 00620 if ( mesnum==RHOP||mesnum==RHOM||mesnum==RHO0) { 00621 00622 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00623 setProbMax(110.0); 00624 return; 00625 } 00626 } 00627 00628 if ( mesnum==OMEG) { 00629 00630 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00631 setProbMax(75.0); 00632 return; 00633 } 00634 } 00635 00636 if ( mesnum==PIP||mesnum==PIM||mesnum==PI0) { 00637 00638 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00639 setProbMax(40.0); 00640 return; 00641 } 00642 } 00643 00644 if ( mesnum==ETA) { 00645 00646 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00647 setProbMax( 65.0); 00648 return; 00649 } 00650 } 00651 00652 if ( mesnum==ETAPR) { 00653 00654 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00655 setProbMax( 60.0); 00656 return; 00657 } 00658 } 00659 00660 if ( mesnum==KP||mesnum==KM||mesnum==K0|| 00661 mesnum==K0S||mesnum==K0L||mesnum==KB) { 00662 00663 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00664 setProbMax( 70.0); 00665 return; 00666 } 00667 } 00668 00669 if ( mesnum==K1STP||mesnum==K1STM||mesnum==K1ST0||mesnum==K1STB) { 00670 00671 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00672 setProbMax( 3.3); 00673 return; 00674 } 00675 } 00676 00677 if ( mesnum==K1P||mesnum==K1M||mesnum==K10||mesnum==K1B) { 00678 00679 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00680 setProbMax( 100.0); 00681 return; 00682 } 00683 } 00684 00685 if ( mesnum==KSTP||mesnum==KSTM||mesnum==KST0||mesnum==KSTB) { 00686 00687 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00688 setProbMax( 135.0); 00689 return; 00690 } 00691 } 00692 00693 if ( mesnum==K2STP||mesnum==K2STM||mesnum==K2ST0||mesnum==K2STB) { 00694 00695 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00696 //Lange - Oct 26,2001 - increasing from 0.75 to 00697 //accomodate 00698 setProbMax( 9.0); 00699 // setProbMax( 0.75); 00700 return; 00701 } 00702 } 00703 00704 if ( mesnum==F0) { 00705 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00706 setProbMax(1.0); 00707 return; 00708 } 00709 } 00710 00711 } 00712 00713 if ( parnum==DSP||parnum==DSM ) { 00714 00715 00716 if ( mesnum==PHI ) { 00717 00718 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00719 setProbMax( 90.0 ); 00720 return; 00721 } 00722 } 00723 00724 if ( mesnum==ETA ) { 00725 00726 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00727 setProbMax( 75.0 ); 00728 return; 00729 } 00730 } 00731 00732 if ( mesnum==ETAPR ) { 00733 00734 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00735 setProbMax( 80.0) ; 00736 return; 00737 } 00738 } 00739 00740 if ( mesnum==KST0||mesnum==KSTB ) { 00741 00742 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00743 setProbMax( 100.0) ; 00744 return; 00745 } 00746 } 00747 00748 00749 if ( mesnum==K0 || mesnum==KB || mesnum==K0S || mesnum==K0L ) { 00750 00751 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00752 setProbMax( 45.0 ); 00753 return; 00754 } 00755 } 00756 00757 if ( mesnum==F0) { 00758 if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { 00759 setProbMax(1.0); 00760 return; 00761 } 00762 } 00763 00764 00765 } 00766 00767 if ( parnum==BCP||parnum==BCM ) { 00768 setProbMax(1000.0 ); 00769 return; 00770 } 00771 00772 00773 00774 //This is a real cludge.. (ryd) 00775 setProbMax(0.0); 00776 00777 } 00778 00779 void EvtISGW2::init(){ 00780 00781 checkNArg(0); 00782 checkNDaug(3); 00783 00784 //We expect the parent to be a scalar 00785 //and the daughters to be X lepton neutrino 00786 00787 checkSpinParent(EvtSpinType::SCALAR); 00788 checkSpinDaughter(1,EvtSpinType::DIRAC); 00789 checkSpinDaughter(2,EvtSpinType::NEUTRINO); 00790 00791 EvtSpinType::spintype mesontype=EvtPDL::getSpinType(getDaug(0)); 00792 00793 isgw2ffmodel = new EvtISGW2FF; 00794 00795 if ( mesontype==EvtSpinType::SCALAR ) { 00796 calcamp = new EvtSemiLeptonicScalarAmp; 00797 } 00798 if ( mesontype==EvtSpinType::VECTOR ) { 00799 calcamp = new EvtSemiLeptonicVectorAmp; 00800 } 00801 if ( mesontype==EvtSpinType::TENSOR ) { 00802 calcamp = new EvtSemiLeptonicTensorAmp; 00803 } 00804 00805 } 00806 00807 00808 00809 00810 00811 00812