From da0e9ce3d2bdd6eac58dbb3f065bfc07938b9afe Mon Sep 17 00:00:00 2001 From: morsch Date: Wed, 20 Jan 2010 16:03:41 +0000 Subject: [PATCH] AliDecayer realisation for the EvtGen code and EvtGen itself. (Fiorella Fionda) --- TEvtGen/AliDecayerEvtGen.cxx | 286 + TEvtGen/AliDecayerEvtGen.h | 60 + TEvtGen/AliGenEvtGen.cxx | 241 + TEvtGen/AliGenEvtGen.h | 58 + TEvtGen/EvtGen/DECAY.DEC | 10239 ++++++++++ TEvtGen/EvtGen/DecayTable/BTOELE.DEC | 326 + TEvtGen/EvtGen/DecayTable/BTOELEold.DEC | 329 + TEvtGen/EvtGen/DecayTable/BTOJPSI.DEC | 199 + TEvtGen/EvtGen/DecayTable/BTOJPSITOELE.DEC | 203 + TEvtGen/EvtGen/DecayTable/BTOJPSITOMU.DEC | 203 + TEvtGen/EvtGen/EvtCheckDecays.cxx | 383 + TEvtGen/EvtGen/EvtCheckDecays.hh | 34 + TEvtGen/EvtGen/EvtGen.cxx | 317 + TEvtGen/EvtGen/EvtGen.hh | 84 + TEvtGen/EvtGen/EvtGenLinkDef.h | 10 + TEvtGen/EvtGen/Makefile | 327 + TEvtGen/EvtGen/config.mk | 11 + TEvtGen/EvtGen/decay.evt | 1349 ++ TEvtGen/EvtGen/evt.pdl | 673 + TEvtGen/EvtGenBase/Evt3Rank3C.cxx | 278 + TEvtGen/EvtGenBase/Evt3Rank3C.hh | 126 + TEvtGen/EvtGenBase/EvtAbsBinning.hh | 46 + TEvtGen/EvtGenBase/EvtAbsLineShape.cxx | 169 + TEvtGen/EvtGenBase/EvtAbsLineShape.hh | 99 + TEvtGen/EvtGenBase/EvtAbsRadCorr.hh | 40 + TEvtGen/EvtGenBase/EvtAmp.cxx | 551 + TEvtGen/EvtGenBase/EvtAmp.hh | 119 + TEvtGen/EvtGenBase/EvtAmpAmpPdf.hh | 64 + TEvtGen/EvtGenBase/EvtAmpFactory.hh | 140 + TEvtGen/EvtGenBase/EvtAmpIndex.cxx | 90 + TEvtGen/EvtGenBase/EvtAmpIndex.hh | 51 + TEvtGen/EvtGenBase/EvtAmpPdf.hh | 41 + TEvtGen/EvtGenBase/EvtAmpSubIndex.cxx | 69 + TEvtGen/EvtGenBase/EvtAmpSubIndex.hh | 48 + TEvtGen/EvtGenBase/EvtAmplitude.hh | 47 + TEvtGen/EvtGenBase/EvtAmplitudeSum.hh | 108 + TEvtGen/EvtGenBase/EvtBlattWeisskopf.cxx | 87 + TEvtGen/EvtGenBase/EvtBlattWeisskopf.hh | 40 + TEvtGen/EvtGenBase/EvtBreitWignerPdf.cxx | 83 + TEvtGen/EvtGenBase/EvtBreitWignerPdf.hh | 48 + TEvtGen/EvtGenBase/EvtCGCoefSingle.cxx | 149 + TEvtGen/EvtGenBase/EvtCGCoefSingle.hh | 54 + TEvtGen/EvtGenBase/EvtCPUtil.cxx | 414 + TEvtGen/EvtGenBase/EvtCPUtil.hh | 56 + TEvtGen/EvtGenBase/EvtComplex.cxx | 63 + TEvtGen/EvtGenBase/EvtComplex.hh | 267 + TEvtGen/EvtGenBase/EvtConst.cxx | 29 + TEvtGen/EvtGenBase/EvtConst.hh | 38 + TEvtGen/EvtGenBase/EvtCyclic3.cxx | 331 + TEvtGen/EvtGenBase/EvtCyclic3.hh | 81 + TEvtGen/EvtGenBase/EvtDalitzCoord.cxx | 58 + TEvtGen/EvtGenBase/EvtDalitzCoord.hh | 63 + TEvtGen/EvtGenBase/EvtDalitzFlatPdf.cxx | 67 + TEvtGen/EvtGenBase/EvtDalitzFlatPdf.hh | 40 + TEvtGen/EvtGenBase/EvtDalitzPlot.cxx | 353 + TEvtGen/EvtGenBase/EvtDalitzPlot.hh | 121 + TEvtGen/EvtGenBase/EvtDalitzPoint.cxx | 188 + TEvtGen/EvtGenBase/EvtDalitzPoint.hh | 76 + TEvtGen/EvtGenBase/EvtDalitzResPdf.cxx | 105 + TEvtGen/EvtGenBase/EvtDalitzResPdf.hh | 59 + TEvtGen/EvtGenBase/EvtDalitzReso.cxx | 839 + TEvtGen/EvtGenBase/EvtDalitzReso.hh | 151 + TEvtGen/EvtGenBase/EvtDecayAmp.cxx | 241 + TEvtGen/EvtGenBase/EvtDecayAmp.hh | 85 + TEvtGen/EvtGenBase/EvtDecayBase.cxx | 623 + TEvtGen/EvtGenBase/EvtDecayBase.hh | 151 + TEvtGen/EvtGenBase/EvtDecayIncoherent.cxx | 87 + TEvtGen/EvtGenBase/EvtDecayIncoherent.hh | 57 + TEvtGen/EvtGenBase/EvtDecayMode.cxx | 179 + TEvtGen/EvtGenBase/EvtDecayMode.hh | 59 + TEvtGen/EvtGenBase/EvtDecayParm.cxx | 73 + TEvtGen/EvtGenBase/EvtDecayParm.hh | 62 + TEvtGen/EvtGenBase/EvtDecayProb.cxx | 94 + TEvtGen/EvtGenBase/EvtDecayProb.hh | 54 + TEvtGen/EvtGenBase/EvtDecayTable.cxx | 850 + TEvtGen/EvtGenBase/EvtDecayTable.hh | 67 + TEvtGen/EvtGenBase/EvtDiLog.cxx | 65 + TEvtGen/EvtGenBase/EvtDiLog.hh | 45 + TEvtGen/EvtGenBase/EvtDiracParticle.cxx | 183 + TEvtGen/EvtGenBase/EvtDiracParticle.hh | 57 + TEvtGen/EvtGenBase/EvtDiracSpinor.cxx | 367 + TEvtGen/EvtGenBase/EvtDiracSpinor.hh | 155 + TEvtGen/EvtGenBase/EvtEvalHelAmp.cxx | 490 + TEvtGen/EvtGenBase/EvtEvalHelAmp.hh | 81 + TEvtGen/EvtGenBase/EvtFlatAmp.hh | 29 + TEvtGen/EvtGenBase/EvtFlatLineShape.cxx | 110 + TEvtGen/EvtGenBase/EvtFlatLineShape.hh | 51 + TEvtGen/EvtGenBase/EvtFlatte.cxx | 101 + TEvtGen/EvtGenBase/EvtFlatte.hh | 101 + TEvtGen/EvtGenBase/EvtGammaMatrix.cxx | 704 + TEvtGen/EvtGenBase/EvtGammaMatrix.hh | 107 + TEvtGen/EvtGenBase/EvtGenBaseLinkDef.h | 8 + TEvtGen/EvtGenBase/EvtGenBaseLinkDefOLD.h | 117 + TEvtGen/EvtGenBase/EvtGenKine.cxx | 348 + TEvtGen/EvtGenBase/EvtGenKine.hh | 39 + TEvtGen/EvtGenBase/EvtHighSpinParticle.cxx | 98 + TEvtGen/EvtGenBase/EvtHighSpinParticle.hh | 55 + TEvtGen/EvtGenBase/EvtId.cxx | 41 + TEvtGen/EvtGenBase/EvtId.hh | 61 + TEvtGen/EvtGenBase/EvtIdSet.cxx | 581 + TEvtGen/EvtGenBase/EvtIdSet.hh | 234 + TEvtGen/EvtGenBase/EvtIntegPdf1D.cxx | 46 + TEvtGen/EvtGenBase/EvtIntegPdf1D.hh | 43 + TEvtGen/EvtGenBase/EvtIntervalFlatPdf.cxx | 47 + TEvtGen/EvtGenBase/EvtIntervalFlatPdf.hh | 40 + TEvtGen/EvtGenBase/EvtKine.cxx | 141 + TEvtGen/EvtGenBase/EvtKine.hh | 76 + TEvtGen/EvtGenBase/EvtLASSAmp.cxx | 112 + TEvtGen/EvtGenBase/EvtLASSAmp.hh | 62 + TEvtGen/EvtGenBase/EvtMBreitWigner.cxx | 35 + TEvtGen/EvtGenBase/EvtMBreitWigner.hh | 22 + TEvtGen/EvtGenBase/EvtMHelAmp.cxx | 128 + TEvtGen/EvtGenBase/EvtMHelAmp.hh | 24 + TEvtGen/EvtGenBase/EvtMNode.cxx | 16 + TEvtGen/EvtGenBase/EvtMNode.hh | 72 + TEvtGen/EvtGenBase/EvtMParticle.cxx | 26 + TEvtGen/EvtGenBase/EvtMParticle.hh | 21 + TEvtGen/EvtGenBase/EvtMRes.cxx | 8 + TEvtGen/EvtGenBase/EvtMRes.hh | 48 + TEvtGen/EvtGenBase/EvtMTree.cxx | 437 + TEvtGen/EvtGenBase/EvtMTree.hh | 64 + TEvtGen/EvtGenBase/EvtMTrivialLS.cxx | 16 + TEvtGen/EvtGenBase/EvtMTrivialLS.hh | 18 + TEvtGen/EvtGenBase/EvtMacros.hh | 17 + .../EvtGenBase/EvtManyDeltaFuncLineShape.cxx | 113 + .../EvtGenBase/EvtManyDeltaFuncLineShape.hh | 51 + TEvtGen/EvtGenBase/EvtMassAmp.cxx | 98 + TEvtGen/EvtGenBase/EvtMassAmp.hh | 64 + TEvtGen/EvtGenBase/EvtMatrix.hh | 196 + TEvtGen/EvtGenBase/EvtModel.cxx | 111 + TEvtGen/EvtGenBase/EvtModel.hh | 72 + TEvtGen/EvtGenBase/EvtModelAlias.cxx | 57 + TEvtGen/EvtGenBase/EvtModelAlias.hh | 48 + TEvtGen/EvtGenBase/EvtMultiChannelParser.cxx | 278 + TEvtGen/EvtGenBase/EvtMultiChannelParser.hh | 86 + TEvtGen/EvtGenBase/EvtNeutrinoParticle.cxx | 154 + TEvtGen/EvtGenBase/EvtNeutrinoParticle.hh | 53 + TEvtGen/EvtGenBase/EvtNonresonantAmp.cxx | 102 + TEvtGen/EvtGenBase/EvtNonresonantAmp.hh | 64 + TEvtGen/EvtGenBase/EvtOrthogVector.cxx | 128 + TEvtGen/EvtGenBase/EvtOrthogVector.hh | 54 + TEvtGen/EvtGenBase/EvtPDL.cxx | 423 + TEvtGen/EvtGenBase/EvtPDL.hh | 100 + TEvtGen/EvtGenBase/EvtParser.cxx | 172 + TEvtGen/EvtGenBase/EvtParser.hh | 48 + TEvtGen/EvtGenBase/EvtPartProp.cxx | 163 + TEvtGen/EvtGenBase/EvtPartProp.hh | 112 + TEvtGen/EvtGenBase/EvtParticle.cxx | 1161 ++ TEvtGen/EvtGenBase/EvtParticle.hh | 457 + TEvtGen/EvtGenBase/EvtParticleDecay.cxx | 77 + TEvtGen/EvtGenBase/EvtParticleDecay.hh | 64 + TEvtGen/EvtGenBase/EvtParticleDecayList.cxx | 453 + TEvtGen/EvtGenBase/EvtParticleDecayList.hh | 85 + TEvtGen/EvtGenBase/EvtParticleFactory.cxx | 216 + TEvtGen/EvtGenBase/EvtParticleFactory.hh | 48 + TEvtGen/EvtGenBase/EvtPatches.hh | 6 + TEvtGen/EvtGenBase/EvtPdf.hh | 315 + TEvtGen/EvtGenBase/EvtPdfMax.hh | 52 + TEvtGen/EvtGenBase/EvtPdfSum.hh | 138 + TEvtGen/EvtGenBase/EvtPhotonParticle.cxx | 170 + TEvtGen/EvtGenBase/EvtPhotonParticle.hh | 61 + TEvtGen/EvtGenBase/EvtPoint1D.cxx | 36 + TEvtGen/EvtGenBase/EvtPoint1D.hh | 46 + TEvtGen/EvtGenBase/EvtPointPred.hh | 31 + TEvtGen/EvtGenBase/EvtPredGen.hh | 77 + TEvtGen/EvtGenBase/EvtPropBreitWigner.cxx | 41 + TEvtGen/EvtGenBase/EvtPropBreitWigner.hh | 35 + TEvtGen/EvtGenBase/EvtPropBreitWignerRel.cxx | 39 + TEvtGen/EvtGenBase/EvtPropBreitWignerRel.hh | 33 + TEvtGen/EvtGenBase/EvtPropFlatte.cxx | 97 + TEvtGen/EvtGenBase/EvtPropFlatte.hh | 43 + TEvtGen/EvtGenBase/EvtPropGounarisSakurai.cxx | 112 + TEvtGen/EvtGenBase/EvtPropGounarisSakurai.hh | 51 + TEvtGen/EvtGenBase/EvtPropagator.hh | 53 + TEvtGen/EvtGenBase/EvtPto3PAmp.cxx | 225 + TEvtGen/EvtGenBase/EvtPto3PAmp.hh | 99 + TEvtGen/EvtGenBase/EvtPto3PAmpFactory.cxx | 352 + TEvtGen/EvtGenBase/EvtPto3PAmpFactory.hh | 64 + .../EvtGenBase/EvtPto3PAmpSmpResolution.cxx | 65 + .../EvtGenBase/EvtPto3PAmpSmpResolution.hh | 58 + TEvtGen/EvtGenBase/EvtRadCorr.cxx | 77 + TEvtGen/EvtGenBase/EvtRadCorr.hh | 54 + TEvtGen/EvtGenBase/EvtRanFor.cxx | 43 + TEvtGen/EvtGenBase/EvtRandom.cxx | 90 + TEvtGen/EvtGenBase/EvtRandom.hh | 52 + TEvtGen/EvtGenBase/EvtRandomEngine.hh | 70 + TEvtGen/EvtGenBase/EvtRanf.cxx | 29 + TEvtGen/EvtGenBase/EvtRaritaSchwinger.cxx | 281 + TEvtGen/EvtGenBase/EvtRaritaSchwinger.hh | 136 + .../EvtGenBase/EvtRaritaSchwingerParticle.cxx | 228 + .../EvtGenBase/EvtRaritaSchwingerParticle.hh | 59 + .../EvtRelBreitWignerBarrierFact.cxx | 292 + .../EvtRelBreitWignerBarrierFact.hh | 56 + TEvtGen/EvtGenBase/EvtReport.cxx | 58 + TEvtGen/EvtGenBase/EvtReport.hh | 63 + TEvtGen/EvtGenBase/EvtResonance.cxx | 150 + TEvtGen/EvtGenBase/EvtResonance.hh | 81 + TEvtGen/EvtGenBase/EvtResonance2.cxx | 151 + TEvtGen/EvtGenBase/EvtResonance2.hh | 84 + TEvtGen/EvtGenBase/EvtScalarParticle.cxx | 76 + TEvtGen/EvtGenBase/EvtScalarParticle.hh | 51 + TEvtGen/EvtGenBase/EvtSecondary.cxx | 100 + TEvtGen/EvtGenBase/EvtSecondary.hh | 60 + TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.cxx | 211 + TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.hh | 45 + .../EvtGenBase/EvtSemiLeptonicBaryonAmp.cxx | 163 + .../EvtGenBase/EvtSemiLeptonicBaryonAmp.hh | 43 + TEvtGen/EvtGenBase/EvtSemiLeptonicFF.hh | 52 + .../EvtGenBase/EvtSemiLeptonicScalarAmp.cxx | 107 + .../EvtGenBase/EvtSemiLeptonicScalarAmp.hh | 40 + .../EvtGenBase/EvtSemiLeptonicTensorAmp.cxx | 209 + .../EvtGenBase/EvtSemiLeptonicTensorAmp.hh | 44 + .../EvtGenBase/EvtSemiLeptonicVectorAmp.cxx | 145 + .../EvtGenBase/EvtSemiLeptonicVectorAmp.hh | 43 + TEvtGen/EvtGenBase/EvtSimpleRandomEngine.cxx | 41 + TEvtGen/EvtGenBase/EvtSimpleRandomEngine.hh | 48 + TEvtGen/EvtGenBase/EvtSpinAmp.cxx | 498 + TEvtGen/EvtGenBase/EvtSpinAmp.hh | 93 + TEvtGen/EvtGenBase/EvtSpinDensity.cxx | 206 + TEvtGen/EvtGenBase/EvtSpinDensity.hh | 53 + TEvtGen/EvtGenBase/EvtSpinType.cxx | 84 + TEvtGen/EvtGenBase/EvtSpinType.hh | 51 + TEvtGen/EvtGenBase/EvtStatus.hh | 49 + TEvtGen/EvtGenBase/EvtStdHep.cxx | 147 + TEvtGen/EvtGenBase/EvtStdHep.hh | 72 + TEvtGen/EvtGenBase/EvtStdlibRandomEngine.hh | 38 + TEvtGen/EvtGenBase/EvtStreamAdapter.hh | 93 + TEvtGen/EvtGenBase/EvtStreamInputIterator.hh | 111 + TEvtGen/EvtGenBase/EvtStringHash.hh | 165 + TEvtGen/EvtGenBase/EvtStringParticle.cxx | 124 + TEvtGen/EvtGenBase/EvtStringParticle.hh | 56 + TEvtGen/EvtGenBase/EvtSymTable.cxx | 64 + TEvtGen/EvtGenBase/EvtSymTable.hh | 51 + TEvtGen/EvtGenBase/EvtTensor3C.cxx | 405 + TEvtGen/EvtGenBase/EvtTensor3C.hh | 130 + TEvtGen/EvtGenBase/EvtTensor4C.cxx | 576 + TEvtGen/EvtGenBase/EvtTensor4C.hh | 121 + TEvtGen/EvtGenBase/EvtTensorParticle.cxx | 194 + TEvtGen/EvtGenBase/EvtTensorParticle.hh | 59 + TEvtGen/EvtGenBase/EvtTwoBodyKine.cxx | 105 + TEvtGen/EvtGenBase/EvtTwoBodyKine.hh | 55 + TEvtGen/EvtGenBase/EvtTwoBodyVertex.cxx | 103 + TEvtGen/EvtGenBase/EvtTwoBodyVertex.hh | 54 + TEvtGen/EvtGenBase/EvtValError.cxx | 160 + TEvtGen/EvtGenBase/EvtValError.hh | 78 + TEvtGen/EvtGenBase/EvtVector3C.cxx | 102 + TEvtGen/EvtGenBase/EvtVector3C.hh | 177 + TEvtGen/EvtGenBase/EvtVector3R.cxx | 120 + TEvtGen/EvtGenBase/EvtVector3R.hh | 141 + TEvtGen/EvtGenBase/EvtVector4C.cxx | 163 + TEvtGen/EvtGenBase/EvtVector4C.hh | 212 + TEvtGen/EvtGenBase/EvtVector4R.cxx | 252 + TEvtGen/EvtGenBase/EvtVector4R.hh | 196 + TEvtGen/EvtGenBase/EvtVectorParticle.cxx | 127 + TEvtGen/EvtGenBase/EvtVectorParticle.hh | 58 + TEvtGen/EvtGenBase/EvtdFunction.cxx | 65 + TEvtGen/EvtGenBase/EvtdFunction.hh | 33 + TEvtGen/EvtGenBase/EvtdFunctionSingle.cxx | 110 + TEvtGen/EvtGenBase/EvtdFunctionSingle.hh | 52 + TEvtGen/EvtGenBase/cambiaNome.C | 7 + TEvtGen/EvtGenModels/EvtBBScalar.cxx | 459 + TEvtGen/EvtGenModels/EvtBBScalar.hh | 143 + TEvtGen/EvtGenModels/EvtBHadronic.cxx | 283 + TEvtGen/EvtGenModels/EvtBHadronic.hh | 42 + TEvtGen/EvtGenModels/EvtBTo3pi.F | 1301 ++ TEvtGen/EvtGenModels/EvtBTo3pi.inc | 24 + TEvtGen/EvtGenModels/EvtBTo3piCP.cxx | 166 + TEvtGen/EvtGenModels/EvtBTo3piCP.hh | 47 + TEvtGen/EvtGenModels/EvtBTo3piMPP.F | 561 + TEvtGen/EvtGenModels/EvtBTo3piP00.F | 577 + TEvtGen/EvtGenModels/EvtBTo4piCP.cxx | 259 + TEvtGen/EvtGenModels/EvtBTo4piCP.hh | 43 + TEvtGen/EvtGenModels/EvtBToKpipi.F | 727 + TEvtGen/EvtGenModels/EvtBToKpipiCP.cxx | 158 + TEvtGen/EvtGenModels/EvtBToKpipiCP.hh | 43 + TEvtGen/EvtGenModels/EvtBToPlnuBK.cxx | 111 + TEvtGen/EvtGenModels/EvtBToPlnuBK.hh | 54 + TEvtGen/EvtGenModels/EvtBToPlnuBKFF.cxx | 88 + TEvtGen/EvtGenModels/EvtBToPlnuBKFF.hh | 52 + TEvtGen/EvtGenModels/EvtBToVlnuBall.cxx | 110 + TEvtGen/EvtGenModels/EvtBToVlnuBall.hh | 50 + TEvtGen/EvtGenModels/EvtBToVlnuBallFF.cxx | 121 + TEvtGen/EvtGenModels/EvtBToVlnuBallFF.hh | 69 + TEvtGen/EvtGenModels/EvtBsquark.cxx | 218 + TEvtGen/EvtGenModels/EvtBsquark.hh | 48 + TEvtGen/EvtGenModels/EvtBto2piCPiso.cxx | 189 + TEvtGen/EvtGenModels/EvtBto2piCPiso.hh | 44 + TEvtGen/EvtGenModels/EvtBtoKD3P.cxx | 222 + TEvtGen/EvtGenModels/EvtBtoKD3P.hh | 87 + TEvtGen/EvtGenModels/EvtBtoKpiCPiso.cxx | 187 + TEvtGen/EvtGenModels/EvtBtoKpiCPiso.hh | 45 + TEvtGen/EvtGenModels/EvtBtoXsEtap.cxx | 171 + TEvtGen/EvtGenModels/EvtBtoXsEtap.hh | 49 + TEvtGen/EvtGenModels/EvtBtoXsgamma.cxx | 143 + TEvtGen/EvtGenModels/EvtBtoXsgamma.hh | 56 + .../EvtGenModels/EvtBtoXsgammaAbsModel.cxx | 36 + TEvtGen/EvtGenModels/EvtBtoXsgammaAbsModel.hh | 43 + .../EvtGenModels/EvtBtoXsgammaAliGreub.cxx | 147 + TEvtGen/EvtGenModels/EvtBtoXsgammaAliGreub.hh | 45 + .../EvtGenModels/EvtBtoXsgammaFermiUtil.cxx | 210 + .../EvtGenModels/EvtBtoXsgammaFermiUtil.hh | 59 + .../EvtGenModels/EvtBtoXsgammaFixedMass.cxx | 54 + .../EvtGenModels/EvtBtoXsgammaFixedMass.hh | 47 + .../EvtGenModels/EvtBtoXsgammaFlatEnergy.cxx | 70 + .../EvtGenModels/EvtBtoXsgammaFlatEnergy.hh | 51 + TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.cxx | 777 + TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.hh | 131 + .../EvtGenModels/EvtBtoXsgammaRootFinder.cxx | 206 + .../EvtGenModels/EvtBtoXsgammaRootFinder.hh | 65 + TEvtGen/EvtGenModels/EvtBtoXsll.cxx | 404 + TEvtGen/EvtGenModels/EvtBtoXsll.hh | 58 + TEvtGen/EvtGenModels/EvtBtoXsllUtil.cxx | 625 + TEvtGen/EvtGenModels/EvtBtoXsllUtil.hh | 53 + TEvtGen/EvtGenModels/EvtCBTo3piMPP.cxx | 152 + TEvtGen/EvtGenModels/EvtCBTo3piMPP.hh | 45 + TEvtGen/EvtGenModels/EvtCBTo3piP00.cxx | 159 + TEvtGen/EvtGenModels/EvtCBTo3piP00.hh | 45 + TEvtGen/EvtGenModels/EvtD0mixDalitz.cxx | 367 + TEvtGen/EvtGenModels/EvtD0mixDalitz.hh | 119 + TEvtGen/EvtGenModels/EvtDDalitz.cxx | 605 + TEvtGen/EvtGenModels/EvtDDalitz.hh | 58 + TEvtGen/EvtGenModels/EvtDMix.cxx | 99 + TEvtGen/EvtGenModels/EvtDMix.hh | 55 + TEvtGen/EvtGenModels/EvtEtaDalitz.cxx | 89 + TEvtGen/EvtGenModels/EvtEtaDalitz.hh | 45 + TEvtGen/EvtGenModels/EvtFlatQ2.cxx | 89 + TEvtGen/EvtGenModels/EvtFlatQ2.hh | 45 + TEvtGen/EvtGenModels/EvtGenModelsLinkDef.h | 7 + TEvtGen/EvtGenModels/EvtGenModelsLinkDefOLD.h | 146 + TEvtGen/EvtGenModels/EvtGoityRoberts.cxx | 431 + TEvtGen/EvtGenModels/EvtGoityRoberts.hh | 55 + TEvtGen/EvtGenModels/EvtHQET.cxx | 121 + TEvtGen/EvtGenModels/EvtHQET.hh | 49 + TEvtGen/EvtGenModels/EvtHQET2.cxx | 125 + TEvtGen/EvtGenModels/EvtHQET2.hh | 44 + TEvtGen/EvtGenModels/EvtHQET2FF.cxx | 112 + TEvtGen/EvtGenModels/EvtHQET2FF.hh | 56 + TEvtGen/EvtGenModels/EvtHQETFF.cxx | 110 + TEvtGen/EvtGenModels/EvtHQETFF.hh | 55 + TEvtGen/EvtGenModels/EvtHelAmp.cxx | 223 + TEvtGen/EvtGenModels/EvtHelAmp.hh | 61 + TEvtGen/EvtGenModels/EvtHypNonLepton.cxx | 151 + TEvtGen/EvtGenModels/EvtHypNonLepton.hh | 45 + TEvtGen/EvtGenModels/EvtISGW.cxx | 90 + TEvtGen/EvtGenModels/EvtISGW.hh | 52 + TEvtGen/EvtGenModels/EvtISGW2.cxx | 814 + TEvtGen/EvtGenModels/EvtISGW2.hh | 55 + TEvtGen/EvtGenModels/EvtISGW2FF.cxx | 3145 +++ TEvtGen/EvtGenModels/EvtISGW2FF.hh | 83 + TEvtGen/EvtGenModels/EvtISGWFF.cxx | 2300 +++ TEvtGen/EvtGenModels/EvtISGWFF.hh | 75 + TEvtGen/EvtGenModels/EvtIntervalDecayAmp.hh | 201 + TEvtGen/EvtGenModels/EvtItgAbsFunction.cxx | 56 + TEvtGen/EvtGenModels/EvtItgAbsFunction.hh | 72 + TEvtGen/EvtGenModels/EvtItgAbsIntegrator.cxx | 105 + TEvtGen/EvtGenModels/EvtItgAbsIntegrator.hh | 65 + TEvtGen/EvtGenModels/EvtItgFourCoeffFcn.cxx | 64 + TEvtGen/EvtGenModels/EvtItgFourCoeffFcn.hh | 60 + TEvtGen/EvtGenModels/EvtItgFunction.cxx | 54 + TEvtGen/EvtGenModels/EvtItgFunction.hh | 65 + TEvtGen/EvtGenModels/EvtItgPtrFunction.cxx | 66 + TEvtGen/EvtGenModels/EvtItgPtrFunction.hh | 59 + .../EvtGenModels/EvtItgSimpsonIntegrator.cxx | 99 + .../EvtGenModels/EvtItgSimpsonIntegrator.hh | 60 + TEvtGen/EvtGenModels/EvtItgThreeCoeffFcn.cxx | 64 + TEvtGen/EvtGenModels/EvtItgThreeCoeffFcn.hh | 66 + TEvtGen/EvtGenModels/EvtItgTwoCoeffFcn.cxx | 60 + TEvtGen/EvtGenModels/EvtItgTwoCoeffFcn.hh | 67 + TEvtGen/EvtGenModels/EvtJetSet.cxx | 840 + TEvtGen/EvtGenModels/EvtJetSet.hh | 81 + TEvtGen/EvtGenModels/EvtJetSetCDF.cxx | 841 + TEvtGen/EvtGenModels/EvtJetSetCDF.hh | 81 + TEvtGen/EvtGenModels/EvtJetSetCDFInit.F | 45 + TEvtGen/EvtGenModels/EvtJetSetInit.F | 44 + TEvtGen/EvtGenModels/EvtJscont.cxx | 150 + TEvtGen/EvtGenModels/EvtJscont.hh | 45 + TEvtGen/EvtGenModels/EvtJscontCDF.cxx | 149 + TEvtGen/EvtGenModels/EvtJscontCDF.hh | 45 + TEvtGen/EvtGenModels/EvtKKLambdaC.cxx | 90 + TEvtGen/EvtGenModels/EvtKKLambdaC.hh | 50 + TEvtGen/EvtGenModels/EvtKKLambdaCFF.cxx | 76 + TEvtGen/EvtGenModels/EvtKKLambdaCFF.hh | 55 + TEvtGen/EvtGenModels/EvtKstarnunu.cxx | 149 + TEvtGen/EvtGenModels/EvtKstarnunu.hh | 44 + TEvtGen/EvtGenModels/EvtKstarstargamma.cxx | 187 + TEvtGen/EvtGenModels/EvtKstarstargamma.hh | 44 + TEvtGen/EvtGenModels/EvtLNuGamma.cxx | 173 + TEvtGen/EvtGenModels/EvtLNuGamma.hh | 49 + TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.cxx | 136 + TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.hh | 77 + TEvtGen/EvtGenModels/EvtLb2Lll.cxx | 630 + TEvtGen/EvtGenModels/EvtLb2Lll.hh | 60 + TEvtGen/EvtGenModels/EvtLi2Spence.F | 92 + TEvtGen/EvtGenModels/EvtMelikhov.cxx | 73 + TEvtGen/EvtGenModels/EvtMelikhov.hh | 53 + TEvtGen/EvtGenModels/EvtMelikhovFF.cxx | 134 + TEvtGen/EvtGenModels/EvtMelikhovFF.hh | 52 + TEvtGen/EvtGenModels/EvtModelReg.cxx | 300 + TEvtGen/EvtGenModels/EvtModelReg.hh | 41 + TEvtGen/EvtGenModels/EvtMultibody.cxx | 75 + TEvtGen/EvtGenModels/EvtMultibody.hh | 27 + TEvtGen/EvtGenModels/EvtOmegaDalitz.cxx | 100 + TEvtGen/EvtGenModels/EvtOmegaDalitz.hh | 45 + TEvtGen/EvtGenModels/EvtPFermi.cxx | 100 + TEvtGen/EvtGenModels/EvtPFermi.hh | 71 + TEvtGen/EvtGenModels/EvtPHOTOS.cxx | 232 + TEvtGen/EvtGenModels/EvtPHOTOS.hh | 46 + TEvtGen/EvtGenModels/EvtPartWave.cxx | 297 + TEvtGen/EvtGenModels/EvtPartWave.hh | 61 + TEvtGen/EvtGenModels/EvtPhiDalitz.cxx | 144 + TEvtGen/EvtGenModels/EvtPhiDalitz.hh | 36 + TEvtGen/EvtGenModels/EvtPhsp.cxx | 73 + TEvtGen/EvtGenModels/EvtPhsp.hh | 50 + TEvtGen/EvtGenModels/EvtPi0Dalitz.cxx | 116 + TEvtGen/EvtGenModels/EvtPi0Dalitz.hh | 44 + TEvtGen/EvtGenModels/EvtPropSLPole.cxx | 547 + TEvtGen/EvtGenModels/EvtPropSLPole.hh | 69 + TEvtGen/EvtGenModels/EvtPto3P.cxx | 116 + TEvtGen/EvtGenModels/EvtPto3P.hh | 44 + TEvtGen/EvtGenModels/EvtPyGaGa.cxx | 123 + TEvtGen/EvtGenModels/EvtPyGaGa.hh | 44 + TEvtGen/EvtGenModels/EvtPycont.cxx | 151 + TEvtGen/EvtGenModels/EvtPycont.hh | 45 + TEvtGen/EvtGenModels/EvtPythia.cxx | 1095 ++ TEvtGen/EvtGenModels/EvtPythia.hh | 84 + TEvtGen/EvtGenModels/EvtSLBKPole.cxx | 100 + TEvtGen/EvtGenModels/EvtSLBKPole.hh | 51 + TEvtGen/EvtGenModels/EvtSLBKPoleFF.cxx | 232 + TEvtGen/EvtGenModels/EvtSLBKPoleFF.hh | 55 + TEvtGen/EvtGenModels/EvtSLN.cxx | 107 + TEvtGen/EvtGenModels/EvtSLN.hh | 47 + TEvtGen/EvtGenModels/EvtSLPole.cxx | 103 + TEvtGen/EvtGenModels/EvtSLPole.hh | 53 + TEvtGen/EvtGenModels/EvtSLPoleFF.cxx | 170 + TEvtGen/EvtGenModels/EvtSLPoleFF.hh | 53 + TEvtGen/EvtGenModels/EvtSSDCP.cxx | 313 + TEvtGen/EvtGenModels/EvtSSDCP.hh | 74 + TEvtGen/EvtGenModels/EvtSSSCP.cxx | 104 + TEvtGen/EvtGenModels/EvtSSSCP.hh | 46 + TEvtGen/EvtGenModels/EvtSSSCPT.cxx | 99 + TEvtGen/EvtGenModels/EvtSSSCPT.hh | 43 + TEvtGen/EvtGenModels/EvtSSSCPpng.cxx | 158 + TEvtGen/EvtGenModels/EvtSSSCPpng.hh | 45 + TEvtGen/EvtGenModels/EvtSTS.cxx | 93 + TEvtGen/EvtGenModels/EvtSTS.hh | 45 + TEvtGen/EvtGenModels/EvtSTSCP.cxx | 126 + TEvtGen/EvtGenModels/EvtSTSCP.hh | 44 + TEvtGen/EvtGenModels/EvtSVPCP.cxx | 163 + TEvtGen/EvtGenModels/EvtSVPCP.hh | 54 + TEvtGen/EvtGenModels/EvtSVPHelAmp.cxx | 130 + TEvtGen/EvtGenModels/EvtSVPHelAmp.hh | 51 + TEvtGen/EvtGenModels/EvtSVS.cxx | 88 + TEvtGen/EvtGenModels/EvtSVS.hh | 47 + TEvtGen/EvtGenModels/EvtSVSCP.cxx | 121 + TEvtGen/EvtGenModels/EvtSVSCP.hh | 44 + TEvtGen/EvtGenModels/EvtSVSCPLH.cxx | 145 + TEvtGen/EvtGenModels/EvtSVSCPLH.hh | 62 + TEvtGen/EvtGenModels/EvtSVSCPiso.cxx | 311 + TEvtGen/EvtGenModels/EvtSVSCPiso.hh | 45 + TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.cxx | 147 + TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.hh | 56 + TEvtGen/EvtGenModels/EvtSVVCP.cxx | 118 + TEvtGen/EvtGenModels/EvtSVVCP.hh | 45 + TEvtGen/EvtGenModels/EvtSVVCPLH.cxx | 133 + TEvtGen/EvtGenModels/EvtSVVCPLH.hh | 45 + TEvtGen/EvtGenModels/EvtSVVHelAmp.cxx | 142 + TEvtGen/EvtGenModels/EvtSVVHelAmp.hh | 56 + TEvtGen/EvtGenModels/EvtSVVHelCPMix.cxx | 234 + TEvtGen/EvtGenModels/EvtSVVHelCPMix.hh | 65 + TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.cxx | 197 + TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.hh | 48 + TEvtGen/EvtGenModels/EvtSingleParticle.cxx | 152 + TEvtGen/EvtGenModels/EvtSingleParticle.hh | 53 + TEvtGen/EvtGenModels/EvtSll.cxx | 89 + TEvtGen/EvtGenModels/EvtSll.hh | 46 + TEvtGen/EvtGenModels/EvtTSS.cxx | 84 + TEvtGen/EvtGenModels/EvtTSS.hh | 47 + TEvtGen/EvtGenModels/EvtTVSPwave.cxx | 131 + TEvtGen/EvtGenModels/EvtTVSPwave.hh | 49 + TEvtGen/EvtGenModels/EvtTauHadnu.cxx | 265 + TEvtGen/EvtGenModels/EvtTauHadnu.hh | 57 + TEvtGen/EvtGenModels/EvtTauScalarnu.cxx | 94 + TEvtGen/EvtGenModels/EvtTauScalarnu.hh | 44 + TEvtGen/EvtGenModels/EvtTauVectornu.cxx | 99 + TEvtGen/EvtGenModels/EvtTauVectornu.hh | 44 + TEvtGen/EvtGenModels/EvtTaulnunu.cxx | 105 + TEvtGen/EvtGenModels/EvtTaulnunu.hh | 44 + TEvtGen/EvtGenModels/EvtVPHOtoV.cxx | 87 + TEvtGen/EvtGenModels/EvtVPHOtoV.hh | 44 + TEvtGen/EvtGenModels/EvtVPHOtoVISR.cxx | 194 + TEvtGen/EvtGenModels/EvtVPHOtoVISR.hh | 44 + TEvtGen/EvtGenModels/EvtVPHOtoVISRHi.cxx | 325 + TEvtGen/EvtGenModels/EvtVPHOtoVISRHi.hh | 45 + TEvtGen/EvtGenModels/EvtVSPPwave.cxx | 104 + TEvtGen/EvtGenModels/EvtVSPPwave.hh | 46 + TEvtGen/EvtGenModels/EvtVSS.cxx | 79 + TEvtGen/EvtGenModels/EvtVSS.hh | 44 + TEvtGen/EvtGenModels/EvtVSSBMixCPT.cxx | 309 + TEvtGen/EvtGenModels/EvtVSSBMixCPT.hh | 61 + TEvtGen/EvtGenModels/EvtVSSMix.cxx | 110 + TEvtGen/EvtGenModels/EvtVSSMix.hh | 44 + TEvtGen/EvtGenModels/EvtVVP.cxx | 103 + TEvtGen/EvtGenModels/EvtVVP.hh | 44 + TEvtGen/EvtGenModels/EvtVVPIPI_WEIGHTED.cxx | 135 + TEvtGen/EvtGenModels/EvtVVPIPI_WEIGHTED.hh | 46 + TEvtGen/EvtGenModels/EvtVVSPwave.cxx | 114 + TEvtGen/EvtGenModels/EvtVVSPwave.hh | 44 + TEvtGen/EvtGenModels/EvtVVpipi.cxx | 120 + TEvtGen/EvtGenModels/EvtVVpipi.hh | 46 + TEvtGen/EvtGenModels/EvtVectorIsr.cxx | 427 + TEvtGen/EvtGenModels/EvtVectorIsr.hh | 75 + TEvtGen/EvtGenModels/EvtVll.cxx | 124 + TEvtGen/EvtGenModels/EvtVll.hh | 44 + TEvtGen/EvtGenModels/EvtVtoSll.cxx | 134 + TEvtGen/EvtGenModels/EvtVtoSll.hh | 44 + TEvtGen/EvtGenModels/EvtVub.cxx | 399 + TEvtGen/EvtGenModels/EvtVub.hh | 67 + TEvtGen/EvtGenModels/EvtVubAC.cxx | 8848 +++++++++ TEvtGen/EvtGenModels/EvtVubAC.hh | 74 + TEvtGen/EvtGenModels/EvtVubBLNP.cxx | 925 + TEvtGen/EvtGenModels/EvtVubBLNP.hh | 142 + TEvtGen/EvtGenModels/EvtVubBLNPHybrid.cxx | 1069 ++ TEvtGen/EvtGenModels/EvtVubBLNPHybrid.hh | 171 + TEvtGen/EvtGenModels/EvtVubHybrid.cxx | 477 + TEvtGen/EvtGenModels/EvtVubHybrid.hh | 91 + TEvtGen/EvtGenModels/EvtVubNLO.cxx | 654 + TEvtGen/EvtGenModels/EvtVubNLO.hh | 164 + TEvtGen/EvtGenModels/EvtVubdGamma.cxx | 267 + TEvtGen/EvtGenModels/EvtVubdGamma.hh | 95 + TEvtGen/EvtGenModels/EvtWilsonCoeficients.cxx | 387 + TEvtGen/EvtGenModels/EvtWilsonCoeficients.hh | 140 + .../EvtGenModels/EvtY3SToY1SpipiMoxhay.cxx | 151 + TEvtGen/EvtGenModels/EvtY3SToY1SpipiMoxhay.hh | 63 + TEvtGen/EvtGenModels/EvtYmSToYnSpipiCLEO.cxx | 283 + TEvtGen/EvtGenModels/EvtYmSToYnSpipiCLEO.hh | 67 + TEvtGen/EvtGenModels/EvtbTosllAli.cxx | 115 + TEvtGen/EvtGenModels/EvtbTosllAli.hh | 52 + TEvtGen/EvtGenModels/EvtbTosllAliFF.cxx | 71 + TEvtGen/EvtGenModels/EvtbTosllAliFF.hh | 48 + TEvtGen/EvtGenModels/EvtbTosllAmp.cxx | 696 + TEvtGen/EvtGenModels/EvtbTosllAmp.hh | 59 + TEvtGen/EvtGenModels/EvtbTosllBall.cxx | 143 + TEvtGen/EvtGenModels/EvtbTosllBall.hh | 52 + TEvtGen/EvtGenModels/EvtbTosllBallFF.cxx | 381 + TEvtGen/EvtGenModels/EvtbTosllBallFF.hh | 48 + TEvtGen/EvtGenModels/EvtbTosllFF.hh | 39 + TEvtGen/EvtGenModels/EvtbTosllScalarAmp.cxx | 183 + TEvtGen/EvtGenModels/EvtbTosllScalarAmp.hh | 46 + TEvtGen/EvtGenModels/EvtbTosllVectorAmp.cxx | 224 + TEvtGen/EvtGenModels/EvtbTosllVectorAmp.hh | 48 + TEvtGen/EvtGenModels/Makefile | 15839 ++++++++++++++++ TEvtGen/EvtGenModels/Pythia.F | 351 + TEvtGen/EvtGenModels/begevtgenget.F | 55 + TEvtGen/EvtGenModels/begevtgengetx.F | 76 + TEvtGen/EvtGenModels/begevtgenstore.F | 134 + TEvtGen/EvtGenModels/begevtgenstorex.F | 76 + TEvtGen/EvtGenModels/continuum.F | 123 + TEvtGen/EvtGenModels/continuumCDF.F | 123 + TEvtGen/EvtGenModels/jetset1.F | 138 + TEvtGen/EvtGenModels/jetset7410CDF.F | 11712 ++++++++++++ TEvtGen/EvtGenModels/jetsetCDF.F | 138 + TEvtGen/EvtGenModels/jetsetcont.F | 69 + TEvtGen/EvtGenModels/pykcut.F | 80 + TEvtGen/EvtGenModels/pytime.F | 76 + TEvtGen/EvtGenModels/rly.cxx | 13 + TEvtGen/EvtGenModels/stdhep.inc | 39 + TEvtGen/PHOTOS/CMakeLists.txt | 25 + TEvtGen/PHOTOS/CMake_libPHOTOS.txt | 59 + TEvtGen/PHOTOS/module.mk | 545 + TEvtGen/PHOTOS/phcork.F | 199 + TEvtGen/PHOTOS/phint.F | 103 + TEvtGen/PHOTOS/phint1.F | 67 + TEvtGen/PHOTOS/phlupa.F | 59 + TEvtGen/PHOTOS/phoan1.F | 29 + TEvtGen/PHOTOS/phoan2.F | 28 + TEvtGen/PHOTOS/phobo3.F | 25 + TEvtGen/PHOTOS/phobos.F | 79 + TEvtGen/PHOTOS/phocha.F | 61 + TEvtGen/PHOTOS/phochk.F | 106 + TEvtGen/PHOTOS/phocin.F | 91 + TEvtGen/PHOTOS/phocor.F | 65 + TEvtGen/PHOTOS/phodo.F | 181 + TEvtGen/PHOTOS/phoene.F | 85 + TEvtGen/PHOTOS/phoerr.F | 116 + TEvtGen/PHOTOS/phofac.F | 53 + TEvtGen/PHOTOS/phoin.F | 123 + TEvtGen/PHOTOS/phoinf.F | 98 + TEvtGen/PHOTOS/phoini.F | 128 + TEvtGen/PHOTOS/phomak.F | 58 + TEvtGen/PHOTOS/phooma.F | 49 + TEvtGen/PHOTOS/phoout.F | 79 + TEvtGen/PHOTOS/phopre.F | 173 + TEvtGen/PHOTOS/phoran.F | 41 + TEvtGen/PHOTOS/phorep.F | 56 + TEvtGen/PHOTOS/phorin.F | 59 + TEvtGen/PHOTOS/phoro2.F | 25 + TEvtGen/PHOTOS/phoro3.F | 25 + TEvtGen/PHOTOS/phospi.F | 42 + TEvtGen/PHOTOS/photos.F | 22 + TEvtGen/PHOTOS/photos_get.F | 62 + TEvtGen/PHOTOS/photos_make.F | 166 + TEvtGen/PHOTOS/photos_set.F | 63 + TEvtGen/PHOTOS/photri.F | 28 + TEvtGen/PHOTOS/photwo.F | 59 + TEvtGen/PHOTOS/phtype.F | 56 + TEvtGen/PHOTOS/tgt_linux/phcork.d | 1 + TEvtGen/PHOTOS/tgt_linux/phint.d | 1 + TEvtGen/PHOTOS/tgt_linux/phint1.d | 1 + TEvtGen/PHOTOS/tgt_linux/phlupa.d | 1 + TEvtGen/PHOTOS/tgt_linux/phoan1.d | 1 + TEvtGen/PHOTOS/tgt_linux/phoan2.d | 1 + TEvtGen/PHOTOS/tgt_linux/phobo3.d | 1 + TEvtGen/PHOTOS/tgt_linux/phobos.d | 1 + TEvtGen/PHOTOS/tgt_linux/phocha.d | 1 + TEvtGen/PHOTOS/tgt_linux/phochk.d | 1 + TEvtGen/PHOTOS/tgt_linux/phocin.d | 1 + TEvtGen/PHOTOS/tgt_linux/phocor.d | 1 + TEvtGen/PHOTOS/tgt_linux/phodo.d | 1 + TEvtGen/PHOTOS/tgt_linux/phoene.d | 1 + TEvtGen/PHOTOS/tgt_linux/phoerr.d | 1 + TEvtGen/PHOTOS/tgt_linux/phofac.d | 1 + TEvtGen/PHOTOS/tgt_linux/phoin.d | 1 + TEvtGen/PHOTOS/tgt_linux/phoinf.d | 1 + TEvtGen/PHOTOS/tgt_linux/phoini.d | 1 + TEvtGen/PHOTOS/tgt_linux/phomak.d | 1 + TEvtGen/PHOTOS/tgt_linux/phooma.d | 1 + TEvtGen/PHOTOS/tgt_linux/phoout.d | 1 + TEvtGen/PHOTOS/tgt_linux/phopre.d | 1 + TEvtGen/PHOTOS/tgt_linux/phoran.d | 1 + TEvtGen/PHOTOS/tgt_linux/phorep.d | 1 + TEvtGen/PHOTOS/tgt_linux/phorin.d | 1 + TEvtGen/PHOTOS/tgt_linux/phoro2.d | 1 + TEvtGen/PHOTOS/tgt_linux/phoro3.d | 1 + TEvtGen/PHOTOS/tgt_linux/phospi.d | 1 + TEvtGen/PHOTOS/tgt_linux/photos.d | 1 + TEvtGen/PHOTOS/tgt_linux/photos_get.d | 1 + TEvtGen/PHOTOS/tgt_linux/photos_make.d | 1 + TEvtGen/PHOTOS/tgt_linux/photos_set.d | 1 + TEvtGen/PHOTOS/tgt_linux/photri.d | 1 + TEvtGen/PHOTOS/tgt_linux/photwo.d | 1 + TEvtGen/PHOTOS/tgt_linux/phtype.d | 1 + TEvtGen/README.txt | 55 + TEvtGen/TEvtGenLinkDef.h | 11 + TEvtGen/libEvtGen.pkg | 20 + TEvtGen/libEvtGenBase.pkg | 256 + TEvtGen/libEvtGenModels.pkg | 306 + TEvtGen/libTEvtGen.pkg | 16 + TEvtGen/libphotos.pkg | 51 + 648 files changed, 136132 insertions(+) create mode 100644 TEvtGen/AliDecayerEvtGen.cxx create mode 100644 TEvtGen/AliDecayerEvtGen.h create mode 100644 TEvtGen/AliGenEvtGen.cxx create mode 100644 TEvtGen/AliGenEvtGen.h create mode 100644 TEvtGen/EvtGen/DECAY.DEC create mode 100644 TEvtGen/EvtGen/DecayTable/BTOELE.DEC create mode 100644 TEvtGen/EvtGen/DecayTable/BTOELEold.DEC create mode 100644 TEvtGen/EvtGen/DecayTable/BTOJPSI.DEC create mode 100644 TEvtGen/EvtGen/DecayTable/BTOJPSITOELE.DEC create mode 100644 TEvtGen/EvtGen/DecayTable/BTOJPSITOMU.DEC create mode 100644 TEvtGen/EvtGen/EvtCheckDecays.cxx create mode 100644 TEvtGen/EvtGen/EvtCheckDecays.hh create mode 100644 TEvtGen/EvtGen/EvtGen.cxx create mode 100644 TEvtGen/EvtGen/EvtGen.hh create mode 100644 TEvtGen/EvtGen/EvtGenLinkDef.h create mode 100644 TEvtGen/EvtGen/Makefile create mode 100644 TEvtGen/EvtGen/config.mk create mode 100644 TEvtGen/EvtGen/decay.evt create mode 100644 TEvtGen/EvtGen/evt.pdl create mode 100644 TEvtGen/EvtGenBase/Evt3Rank3C.cxx create mode 100644 TEvtGen/EvtGenBase/Evt3Rank3C.hh create mode 100644 TEvtGen/EvtGenBase/EvtAbsBinning.hh create mode 100644 TEvtGen/EvtGenBase/EvtAbsLineShape.cxx create mode 100644 TEvtGen/EvtGenBase/EvtAbsLineShape.hh create mode 100644 TEvtGen/EvtGenBase/EvtAbsRadCorr.hh create mode 100644 TEvtGen/EvtGenBase/EvtAmp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtAmpAmpPdf.hh create mode 100644 TEvtGen/EvtGenBase/EvtAmpFactory.hh create mode 100644 TEvtGen/EvtGenBase/EvtAmpIndex.cxx create mode 100644 TEvtGen/EvtGenBase/EvtAmpIndex.hh create mode 100644 TEvtGen/EvtGenBase/EvtAmpPdf.hh create mode 100644 TEvtGen/EvtGenBase/EvtAmpSubIndex.cxx create mode 100644 TEvtGen/EvtGenBase/EvtAmpSubIndex.hh create mode 100644 TEvtGen/EvtGenBase/EvtAmplitude.hh create mode 100644 TEvtGen/EvtGenBase/EvtAmplitudeSum.hh create mode 100644 TEvtGen/EvtGenBase/EvtBlattWeisskopf.cxx create mode 100644 TEvtGen/EvtGenBase/EvtBlattWeisskopf.hh create mode 100644 TEvtGen/EvtGenBase/EvtBreitWignerPdf.cxx create mode 100644 TEvtGen/EvtGenBase/EvtBreitWignerPdf.hh create mode 100644 TEvtGen/EvtGenBase/EvtCGCoefSingle.cxx create mode 100644 TEvtGen/EvtGenBase/EvtCGCoefSingle.hh create mode 100644 TEvtGen/EvtGenBase/EvtCPUtil.cxx create mode 100644 TEvtGen/EvtGenBase/EvtCPUtil.hh create mode 100644 TEvtGen/EvtGenBase/EvtComplex.cxx create mode 100644 TEvtGen/EvtGenBase/EvtComplex.hh create mode 100644 TEvtGen/EvtGenBase/EvtConst.cxx create mode 100644 TEvtGen/EvtGenBase/EvtConst.hh create mode 100644 TEvtGen/EvtGenBase/EvtCyclic3.cxx create mode 100644 TEvtGen/EvtGenBase/EvtCyclic3.hh create mode 100644 TEvtGen/EvtGenBase/EvtDalitzCoord.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDalitzCoord.hh create mode 100644 TEvtGen/EvtGenBase/EvtDalitzFlatPdf.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDalitzFlatPdf.hh create mode 100644 TEvtGen/EvtGenBase/EvtDalitzPlot.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDalitzPlot.hh create mode 100644 TEvtGen/EvtGenBase/EvtDalitzPoint.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDalitzPoint.hh create mode 100644 TEvtGen/EvtGenBase/EvtDalitzResPdf.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDalitzResPdf.hh create mode 100644 TEvtGen/EvtGenBase/EvtDalitzReso.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDalitzReso.hh create mode 100644 TEvtGen/EvtGenBase/EvtDecayAmp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDecayAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtDecayBase.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDecayBase.hh create mode 100644 TEvtGen/EvtGenBase/EvtDecayIncoherent.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDecayIncoherent.hh create mode 100644 TEvtGen/EvtGenBase/EvtDecayMode.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDecayMode.hh create mode 100644 TEvtGen/EvtGenBase/EvtDecayParm.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDecayParm.hh create mode 100644 TEvtGen/EvtGenBase/EvtDecayProb.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDecayProb.hh create mode 100644 TEvtGen/EvtGenBase/EvtDecayTable.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDecayTable.hh create mode 100644 TEvtGen/EvtGenBase/EvtDiLog.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDiLog.hh create mode 100644 TEvtGen/EvtGenBase/EvtDiracParticle.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDiracParticle.hh create mode 100644 TEvtGen/EvtGenBase/EvtDiracSpinor.cxx create mode 100644 TEvtGen/EvtGenBase/EvtDiracSpinor.hh create mode 100644 TEvtGen/EvtGenBase/EvtEvalHelAmp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtEvalHelAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtFlatAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtFlatLineShape.cxx create mode 100644 TEvtGen/EvtGenBase/EvtFlatLineShape.hh create mode 100644 TEvtGen/EvtGenBase/EvtFlatte.cxx create mode 100644 TEvtGen/EvtGenBase/EvtFlatte.hh create mode 100644 TEvtGen/EvtGenBase/EvtGammaMatrix.cxx create mode 100644 TEvtGen/EvtGenBase/EvtGammaMatrix.hh create mode 100644 TEvtGen/EvtGenBase/EvtGenBaseLinkDef.h create mode 100644 TEvtGen/EvtGenBase/EvtGenBaseLinkDefOLD.h create mode 100644 TEvtGen/EvtGenBase/EvtGenKine.cxx create mode 100644 TEvtGen/EvtGenBase/EvtGenKine.hh create mode 100644 TEvtGen/EvtGenBase/EvtHighSpinParticle.cxx create mode 100644 TEvtGen/EvtGenBase/EvtHighSpinParticle.hh create mode 100644 TEvtGen/EvtGenBase/EvtId.cxx create mode 100644 TEvtGen/EvtGenBase/EvtId.hh create mode 100644 TEvtGen/EvtGenBase/EvtIdSet.cxx create mode 100644 TEvtGen/EvtGenBase/EvtIdSet.hh create mode 100644 TEvtGen/EvtGenBase/EvtIntegPdf1D.cxx create mode 100644 TEvtGen/EvtGenBase/EvtIntegPdf1D.hh create mode 100644 TEvtGen/EvtGenBase/EvtIntervalFlatPdf.cxx create mode 100644 TEvtGen/EvtGenBase/EvtIntervalFlatPdf.hh create mode 100644 TEvtGen/EvtGenBase/EvtKine.cxx create mode 100644 TEvtGen/EvtGenBase/EvtKine.hh create mode 100644 TEvtGen/EvtGenBase/EvtLASSAmp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtLASSAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtMBreitWigner.cxx create mode 100644 TEvtGen/EvtGenBase/EvtMBreitWigner.hh create mode 100644 TEvtGen/EvtGenBase/EvtMHelAmp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtMHelAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtMNode.cxx create mode 100644 TEvtGen/EvtGenBase/EvtMNode.hh create mode 100644 TEvtGen/EvtGenBase/EvtMParticle.cxx create mode 100644 TEvtGen/EvtGenBase/EvtMParticle.hh create mode 100644 TEvtGen/EvtGenBase/EvtMRes.cxx create mode 100644 TEvtGen/EvtGenBase/EvtMRes.hh create mode 100644 TEvtGen/EvtGenBase/EvtMTree.cxx create mode 100644 TEvtGen/EvtGenBase/EvtMTree.hh create mode 100644 TEvtGen/EvtGenBase/EvtMTrivialLS.cxx create mode 100644 TEvtGen/EvtGenBase/EvtMTrivialLS.hh create mode 100644 TEvtGen/EvtGenBase/EvtMacros.hh create mode 100644 TEvtGen/EvtGenBase/EvtManyDeltaFuncLineShape.cxx create mode 100644 TEvtGen/EvtGenBase/EvtManyDeltaFuncLineShape.hh create mode 100644 TEvtGen/EvtGenBase/EvtMassAmp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtMassAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtMatrix.hh create mode 100644 TEvtGen/EvtGenBase/EvtModel.cxx create mode 100644 TEvtGen/EvtGenBase/EvtModel.hh create mode 100644 TEvtGen/EvtGenBase/EvtModelAlias.cxx create mode 100644 TEvtGen/EvtGenBase/EvtModelAlias.hh create mode 100644 TEvtGen/EvtGenBase/EvtMultiChannelParser.cxx create mode 100644 TEvtGen/EvtGenBase/EvtMultiChannelParser.hh create mode 100644 TEvtGen/EvtGenBase/EvtNeutrinoParticle.cxx create mode 100644 TEvtGen/EvtGenBase/EvtNeutrinoParticle.hh create mode 100644 TEvtGen/EvtGenBase/EvtNonresonantAmp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtNonresonantAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtOrthogVector.cxx create mode 100644 TEvtGen/EvtGenBase/EvtOrthogVector.hh create mode 100644 TEvtGen/EvtGenBase/EvtPDL.cxx create mode 100644 TEvtGen/EvtGenBase/EvtPDL.hh create mode 100644 TEvtGen/EvtGenBase/EvtParser.cxx create mode 100644 TEvtGen/EvtGenBase/EvtParser.hh create mode 100644 TEvtGen/EvtGenBase/EvtPartProp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtPartProp.hh create mode 100644 TEvtGen/EvtGenBase/EvtParticle.cxx create mode 100644 TEvtGen/EvtGenBase/EvtParticle.hh create mode 100644 TEvtGen/EvtGenBase/EvtParticleDecay.cxx create mode 100644 TEvtGen/EvtGenBase/EvtParticleDecay.hh create mode 100644 TEvtGen/EvtGenBase/EvtParticleDecayList.cxx create mode 100644 TEvtGen/EvtGenBase/EvtParticleDecayList.hh create mode 100644 TEvtGen/EvtGenBase/EvtParticleFactory.cxx create mode 100644 TEvtGen/EvtGenBase/EvtParticleFactory.hh create mode 100644 TEvtGen/EvtGenBase/EvtPatches.hh create mode 100644 TEvtGen/EvtGenBase/EvtPdf.hh create mode 100644 TEvtGen/EvtGenBase/EvtPdfMax.hh create mode 100644 TEvtGen/EvtGenBase/EvtPdfSum.hh create mode 100644 TEvtGen/EvtGenBase/EvtPhotonParticle.cxx create mode 100644 TEvtGen/EvtGenBase/EvtPhotonParticle.hh create mode 100644 TEvtGen/EvtGenBase/EvtPoint1D.cxx create mode 100644 TEvtGen/EvtGenBase/EvtPoint1D.hh create mode 100644 TEvtGen/EvtGenBase/EvtPointPred.hh create mode 100644 TEvtGen/EvtGenBase/EvtPredGen.hh create mode 100644 TEvtGen/EvtGenBase/EvtPropBreitWigner.cxx create mode 100644 TEvtGen/EvtGenBase/EvtPropBreitWigner.hh create mode 100644 TEvtGen/EvtGenBase/EvtPropBreitWignerRel.cxx create mode 100644 TEvtGen/EvtGenBase/EvtPropBreitWignerRel.hh create mode 100644 TEvtGen/EvtGenBase/EvtPropFlatte.cxx create mode 100644 TEvtGen/EvtGenBase/EvtPropFlatte.hh create mode 100644 TEvtGen/EvtGenBase/EvtPropGounarisSakurai.cxx create mode 100644 TEvtGen/EvtGenBase/EvtPropGounarisSakurai.hh create mode 100644 TEvtGen/EvtGenBase/EvtPropagator.hh create mode 100644 TEvtGen/EvtGenBase/EvtPto3PAmp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtPto3PAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtPto3PAmpFactory.cxx create mode 100644 TEvtGen/EvtGenBase/EvtPto3PAmpFactory.hh create mode 100644 TEvtGen/EvtGenBase/EvtPto3PAmpSmpResolution.cxx create mode 100644 TEvtGen/EvtGenBase/EvtPto3PAmpSmpResolution.hh create mode 100644 TEvtGen/EvtGenBase/EvtRadCorr.cxx create mode 100644 TEvtGen/EvtGenBase/EvtRadCorr.hh create mode 100644 TEvtGen/EvtGenBase/EvtRanFor.cxx create mode 100644 TEvtGen/EvtGenBase/EvtRandom.cxx create mode 100644 TEvtGen/EvtGenBase/EvtRandom.hh create mode 100644 TEvtGen/EvtGenBase/EvtRandomEngine.hh create mode 100644 TEvtGen/EvtGenBase/EvtRanf.cxx create mode 100644 TEvtGen/EvtGenBase/EvtRaritaSchwinger.cxx create mode 100644 TEvtGen/EvtGenBase/EvtRaritaSchwinger.hh create mode 100644 TEvtGen/EvtGenBase/EvtRaritaSchwingerParticle.cxx create mode 100644 TEvtGen/EvtGenBase/EvtRaritaSchwingerParticle.hh create mode 100644 TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.cxx create mode 100644 TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.hh create mode 100644 TEvtGen/EvtGenBase/EvtReport.cxx create mode 100644 TEvtGen/EvtGenBase/EvtReport.hh create mode 100644 TEvtGen/EvtGenBase/EvtResonance.cxx create mode 100644 TEvtGen/EvtGenBase/EvtResonance.hh create mode 100644 TEvtGen/EvtGenBase/EvtResonance2.cxx create mode 100644 TEvtGen/EvtGenBase/EvtResonance2.hh create mode 100644 TEvtGen/EvtGenBase/EvtScalarParticle.cxx create mode 100644 TEvtGen/EvtGenBase/EvtScalarParticle.hh create mode 100644 TEvtGen/EvtGenBase/EvtSecondary.cxx create mode 100644 TEvtGen/EvtGenBase/EvtSecondary.hh create mode 100644 TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtSemiLeptonicBaryonAmp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtSemiLeptonicBaryonAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtSemiLeptonicFF.hh create mode 100644 TEvtGen/EvtGenBase/EvtSemiLeptonicScalarAmp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtSemiLeptonicScalarAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtSemiLeptonicTensorAmp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtSemiLeptonicTensorAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtSemiLeptonicVectorAmp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtSemiLeptonicVectorAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtSimpleRandomEngine.cxx create mode 100644 TEvtGen/EvtGenBase/EvtSimpleRandomEngine.hh create mode 100644 TEvtGen/EvtGenBase/EvtSpinAmp.cxx create mode 100644 TEvtGen/EvtGenBase/EvtSpinAmp.hh create mode 100644 TEvtGen/EvtGenBase/EvtSpinDensity.cxx create mode 100644 TEvtGen/EvtGenBase/EvtSpinDensity.hh create mode 100644 TEvtGen/EvtGenBase/EvtSpinType.cxx create mode 100644 TEvtGen/EvtGenBase/EvtSpinType.hh create mode 100644 TEvtGen/EvtGenBase/EvtStatus.hh create mode 100644 TEvtGen/EvtGenBase/EvtStdHep.cxx create mode 100644 TEvtGen/EvtGenBase/EvtStdHep.hh create mode 100644 TEvtGen/EvtGenBase/EvtStdlibRandomEngine.hh create mode 100644 TEvtGen/EvtGenBase/EvtStreamAdapter.hh create mode 100644 TEvtGen/EvtGenBase/EvtStreamInputIterator.hh create mode 100644 TEvtGen/EvtGenBase/EvtStringHash.hh create mode 100644 TEvtGen/EvtGenBase/EvtStringParticle.cxx create mode 100644 TEvtGen/EvtGenBase/EvtStringParticle.hh create mode 100644 TEvtGen/EvtGenBase/EvtSymTable.cxx create mode 100644 TEvtGen/EvtGenBase/EvtSymTable.hh create mode 100644 TEvtGen/EvtGenBase/EvtTensor3C.cxx create mode 100644 TEvtGen/EvtGenBase/EvtTensor3C.hh create mode 100644 TEvtGen/EvtGenBase/EvtTensor4C.cxx create mode 100644 TEvtGen/EvtGenBase/EvtTensor4C.hh create mode 100644 TEvtGen/EvtGenBase/EvtTensorParticle.cxx create mode 100644 TEvtGen/EvtGenBase/EvtTensorParticle.hh create mode 100644 TEvtGen/EvtGenBase/EvtTwoBodyKine.cxx create mode 100644 TEvtGen/EvtGenBase/EvtTwoBodyKine.hh create mode 100644 TEvtGen/EvtGenBase/EvtTwoBodyVertex.cxx create mode 100644 TEvtGen/EvtGenBase/EvtTwoBodyVertex.hh create mode 100644 TEvtGen/EvtGenBase/EvtValError.cxx create mode 100644 TEvtGen/EvtGenBase/EvtValError.hh create mode 100644 TEvtGen/EvtGenBase/EvtVector3C.cxx create mode 100644 TEvtGen/EvtGenBase/EvtVector3C.hh create mode 100644 TEvtGen/EvtGenBase/EvtVector3R.cxx create mode 100644 TEvtGen/EvtGenBase/EvtVector3R.hh create mode 100644 TEvtGen/EvtGenBase/EvtVector4C.cxx create mode 100644 TEvtGen/EvtGenBase/EvtVector4C.hh create mode 100644 TEvtGen/EvtGenBase/EvtVector4R.cxx create mode 100644 TEvtGen/EvtGenBase/EvtVector4R.hh create mode 100644 TEvtGen/EvtGenBase/EvtVectorParticle.cxx create mode 100644 TEvtGen/EvtGenBase/EvtVectorParticle.hh create mode 100644 TEvtGen/EvtGenBase/EvtdFunction.cxx create mode 100644 TEvtGen/EvtGenBase/EvtdFunction.hh create mode 100644 TEvtGen/EvtGenBase/EvtdFunctionSingle.cxx create mode 100644 TEvtGen/EvtGenBase/EvtdFunctionSingle.hh create mode 100644 TEvtGen/EvtGenBase/cambiaNome.C create mode 100644 TEvtGen/EvtGenModels/EvtBBScalar.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBBScalar.hh create mode 100644 TEvtGen/EvtGenModels/EvtBHadronic.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBHadronic.hh create mode 100644 TEvtGen/EvtGenModels/EvtBTo3pi.F create mode 100644 TEvtGen/EvtGenModels/EvtBTo3pi.inc create mode 100644 TEvtGen/EvtGenModels/EvtBTo3piCP.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBTo3piCP.hh create mode 100644 TEvtGen/EvtGenModels/EvtBTo3piMPP.F create mode 100644 TEvtGen/EvtGenModels/EvtBTo3piP00.F create mode 100644 TEvtGen/EvtGenModels/EvtBTo4piCP.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBTo4piCP.hh create mode 100644 TEvtGen/EvtGenModels/EvtBToKpipi.F create mode 100644 TEvtGen/EvtGenModels/EvtBToKpipiCP.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBToKpipiCP.hh create mode 100644 TEvtGen/EvtGenModels/EvtBToPlnuBK.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBToPlnuBK.hh create mode 100644 TEvtGen/EvtGenModels/EvtBToPlnuBKFF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBToPlnuBKFF.hh create mode 100644 TEvtGen/EvtGenModels/EvtBToVlnuBall.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBToVlnuBall.hh create mode 100644 TEvtGen/EvtGenModels/EvtBToVlnuBallFF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBToVlnuBallFF.hh create mode 100644 TEvtGen/EvtGenModels/EvtBsquark.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBsquark.hh create mode 100644 TEvtGen/EvtGenModels/EvtBto2piCPiso.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBto2piCPiso.hh create mode 100644 TEvtGen/EvtGenModels/EvtBtoKD3P.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBtoKD3P.hh create mode 100644 TEvtGen/EvtGenModels/EvtBtoKpiCPiso.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBtoKpiCPiso.hh create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsEtap.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsEtap.hh create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgamma.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgamma.hh create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgammaAbsModel.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgammaAbsModel.hh create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgammaAliGreub.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgammaAliGreub.hh create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgammaFermiUtil.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgammaFermiUtil.hh create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgammaFixedMass.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgammaFixedMass.hh create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgammaFlatEnergy.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgammaFlatEnergy.hh create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.hh create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgammaRootFinder.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsgammaRootFinder.hh create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsll.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsll.hh create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsllUtil.cxx create mode 100644 TEvtGen/EvtGenModels/EvtBtoXsllUtil.hh create mode 100644 TEvtGen/EvtGenModels/EvtCBTo3piMPP.cxx create mode 100644 TEvtGen/EvtGenModels/EvtCBTo3piMPP.hh create mode 100644 TEvtGen/EvtGenModels/EvtCBTo3piP00.cxx create mode 100644 TEvtGen/EvtGenModels/EvtCBTo3piP00.hh create mode 100644 TEvtGen/EvtGenModels/EvtD0mixDalitz.cxx create mode 100644 TEvtGen/EvtGenModels/EvtD0mixDalitz.hh create mode 100644 TEvtGen/EvtGenModels/EvtDDalitz.cxx create mode 100644 TEvtGen/EvtGenModels/EvtDDalitz.hh create mode 100644 TEvtGen/EvtGenModels/EvtDMix.cxx create mode 100644 TEvtGen/EvtGenModels/EvtDMix.hh create mode 100644 TEvtGen/EvtGenModels/EvtEtaDalitz.cxx create mode 100644 TEvtGen/EvtGenModels/EvtEtaDalitz.hh create mode 100644 TEvtGen/EvtGenModels/EvtFlatQ2.cxx create mode 100644 TEvtGen/EvtGenModels/EvtFlatQ2.hh create mode 100644 TEvtGen/EvtGenModels/EvtGenModelsLinkDef.h create mode 100644 TEvtGen/EvtGenModels/EvtGenModelsLinkDefOLD.h create mode 100644 TEvtGen/EvtGenModels/EvtGoityRoberts.cxx create mode 100644 TEvtGen/EvtGenModels/EvtGoityRoberts.hh create mode 100644 TEvtGen/EvtGenModels/EvtHQET.cxx create mode 100644 TEvtGen/EvtGenModels/EvtHQET.hh create mode 100644 TEvtGen/EvtGenModels/EvtHQET2.cxx create mode 100644 TEvtGen/EvtGenModels/EvtHQET2.hh create mode 100644 TEvtGen/EvtGenModels/EvtHQET2FF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtHQET2FF.hh create mode 100644 TEvtGen/EvtGenModels/EvtHQETFF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtHQETFF.hh create mode 100644 TEvtGen/EvtGenModels/EvtHelAmp.cxx create mode 100644 TEvtGen/EvtGenModels/EvtHelAmp.hh create mode 100644 TEvtGen/EvtGenModels/EvtHypNonLepton.cxx create mode 100644 TEvtGen/EvtGenModels/EvtHypNonLepton.hh create mode 100644 TEvtGen/EvtGenModels/EvtISGW.cxx create mode 100644 TEvtGen/EvtGenModels/EvtISGW.hh create mode 100644 TEvtGen/EvtGenModels/EvtISGW2.cxx create mode 100644 TEvtGen/EvtGenModels/EvtISGW2.hh create mode 100644 TEvtGen/EvtGenModels/EvtISGW2FF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtISGW2FF.hh create mode 100644 TEvtGen/EvtGenModels/EvtISGWFF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtISGWFF.hh create mode 100644 TEvtGen/EvtGenModels/EvtIntervalDecayAmp.hh create mode 100644 TEvtGen/EvtGenModels/EvtItgAbsFunction.cxx create mode 100644 TEvtGen/EvtGenModels/EvtItgAbsFunction.hh create mode 100644 TEvtGen/EvtGenModels/EvtItgAbsIntegrator.cxx create mode 100644 TEvtGen/EvtGenModels/EvtItgAbsIntegrator.hh create mode 100644 TEvtGen/EvtGenModels/EvtItgFourCoeffFcn.cxx create mode 100644 TEvtGen/EvtGenModels/EvtItgFourCoeffFcn.hh create mode 100644 TEvtGen/EvtGenModels/EvtItgFunction.cxx create mode 100644 TEvtGen/EvtGenModels/EvtItgFunction.hh create mode 100644 TEvtGen/EvtGenModels/EvtItgPtrFunction.cxx create mode 100644 TEvtGen/EvtGenModels/EvtItgPtrFunction.hh create mode 100644 TEvtGen/EvtGenModels/EvtItgSimpsonIntegrator.cxx create mode 100644 TEvtGen/EvtGenModels/EvtItgSimpsonIntegrator.hh create mode 100644 TEvtGen/EvtGenModels/EvtItgThreeCoeffFcn.cxx create mode 100644 TEvtGen/EvtGenModels/EvtItgThreeCoeffFcn.hh create mode 100644 TEvtGen/EvtGenModels/EvtItgTwoCoeffFcn.cxx create mode 100644 TEvtGen/EvtGenModels/EvtItgTwoCoeffFcn.hh create mode 100644 TEvtGen/EvtGenModels/EvtJetSet.cxx create mode 100644 TEvtGen/EvtGenModels/EvtJetSet.hh create mode 100644 TEvtGen/EvtGenModels/EvtJetSetCDF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtJetSetCDF.hh create mode 100644 TEvtGen/EvtGenModels/EvtJetSetCDFInit.F create mode 100644 TEvtGen/EvtGenModels/EvtJetSetInit.F create mode 100644 TEvtGen/EvtGenModels/EvtJscont.cxx create mode 100644 TEvtGen/EvtGenModels/EvtJscont.hh create mode 100644 TEvtGen/EvtGenModels/EvtJscontCDF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtJscontCDF.hh create mode 100644 TEvtGen/EvtGenModels/EvtKKLambdaC.cxx create mode 100644 TEvtGen/EvtGenModels/EvtKKLambdaC.hh create mode 100644 TEvtGen/EvtGenModels/EvtKKLambdaCFF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtKKLambdaCFF.hh create mode 100644 TEvtGen/EvtGenModels/EvtKstarnunu.cxx create mode 100644 TEvtGen/EvtGenModels/EvtKstarnunu.hh create mode 100644 TEvtGen/EvtGenModels/EvtKstarstargamma.cxx create mode 100644 TEvtGen/EvtGenModels/EvtKstarstargamma.hh create mode 100644 TEvtGen/EvtGenModels/EvtLNuGamma.cxx create mode 100644 TEvtGen/EvtGenModels/EvtLNuGamma.hh create mode 100644 TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.cxx create mode 100644 TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.hh create mode 100644 TEvtGen/EvtGenModels/EvtLb2Lll.cxx create mode 100644 TEvtGen/EvtGenModels/EvtLb2Lll.hh create mode 100644 TEvtGen/EvtGenModels/EvtLi2Spence.F create mode 100644 TEvtGen/EvtGenModels/EvtMelikhov.cxx create mode 100644 TEvtGen/EvtGenModels/EvtMelikhov.hh create mode 100644 TEvtGen/EvtGenModels/EvtMelikhovFF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtMelikhovFF.hh create mode 100644 TEvtGen/EvtGenModels/EvtModelReg.cxx create mode 100644 TEvtGen/EvtGenModels/EvtModelReg.hh create mode 100644 TEvtGen/EvtGenModels/EvtMultibody.cxx create mode 100644 TEvtGen/EvtGenModels/EvtMultibody.hh create mode 100644 TEvtGen/EvtGenModels/EvtOmegaDalitz.cxx create mode 100644 TEvtGen/EvtGenModels/EvtOmegaDalitz.hh create mode 100644 TEvtGen/EvtGenModels/EvtPFermi.cxx create mode 100644 TEvtGen/EvtGenModels/EvtPFermi.hh create mode 100644 TEvtGen/EvtGenModels/EvtPHOTOS.cxx create mode 100644 TEvtGen/EvtGenModels/EvtPHOTOS.hh create mode 100644 TEvtGen/EvtGenModels/EvtPartWave.cxx create mode 100644 TEvtGen/EvtGenModels/EvtPartWave.hh create mode 100644 TEvtGen/EvtGenModels/EvtPhiDalitz.cxx create mode 100644 TEvtGen/EvtGenModels/EvtPhiDalitz.hh create mode 100644 TEvtGen/EvtGenModels/EvtPhsp.cxx create mode 100644 TEvtGen/EvtGenModels/EvtPhsp.hh create mode 100644 TEvtGen/EvtGenModels/EvtPi0Dalitz.cxx create mode 100644 TEvtGen/EvtGenModels/EvtPi0Dalitz.hh create mode 100644 TEvtGen/EvtGenModels/EvtPropSLPole.cxx create mode 100644 TEvtGen/EvtGenModels/EvtPropSLPole.hh create mode 100644 TEvtGen/EvtGenModels/EvtPto3P.cxx create mode 100644 TEvtGen/EvtGenModels/EvtPto3P.hh create mode 100644 TEvtGen/EvtGenModels/EvtPyGaGa.cxx create mode 100644 TEvtGen/EvtGenModels/EvtPyGaGa.hh create mode 100644 TEvtGen/EvtGenModels/EvtPycont.cxx create mode 100644 TEvtGen/EvtGenModels/EvtPycont.hh create mode 100644 TEvtGen/EvtGenModels/EvtPythia.cxx create mode 100644 TEvtGen/EvtGenModels/EvtPythia.hh create mode 100644 TEvtGen/EvtGenModels/EvtSLBKPole.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSLBKPole.hh create mode 100644 TEvtGen/EvtGenModels/EvtSLBKPoleFF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSLBKPoleFF.hh create mode 100644 TEvtGen/EvtGenModels/EvtSLN.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSLN.hh create mode 100644 TEvtGen/EvtGenModels/EvtSLPole.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSLPole.hh create mode 100644 TEvtGen/EvtGenModels/EvtSLPoleFF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSLPoleFF.hh create mode 100644 TEvtGen/EvtGenModels/EvtSSDCP.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSSDCP.hh create mode 100644 TEvtGen/EvtGenModels/EvtSSSCP.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSSSCP.hh create mode 100644 TEvtGen/EvtGenModels/EvtSSSCPT.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSSSCPT.hh create mode 100644 TEvtGen/EvtGenModels/EvtSSSCPpng.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSSSCPpng.hh create mode 100644 TEvtGen/EvtGenModels/EvtSTS.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSTS.hh create mode 100644 TEvtGen/EvtGenModels/EvtSTSCP.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSTSCP.hh create mode 100644 TEvtGen/EvtGenModels/EvtSVPCP.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSVPCP.hh create mode 100644 TEvtGen/EvtGenModels/EvtSVPHelAmp.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSVPHelAmp.hh create mode 100644 TEvtGen/EvtGenModels/EvtSVS.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSVS.hh create mode 100644 TEvtGen/EvtGenModels/EvtSVSCP.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSVSCP.hh create mode 100644 TEvtGen/EvtGenModels/EvtSVSCPLH.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSVSCPLH.hh create mode 100644 TEvtGen/EvtGenModels/EvtSVSCPiso.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSVSCPiso.hh create mode 100644 TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.hh create mode 100644 TEvtGen/EvtGenModels/EvtSVVCP.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSVVCP.hh create mode 100644 TEvtGen/EvtGenModels/EvtSVVCPLH.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSVVCPLH.hh create mode 100644 TEvtGen/EvtGenModels/EvtSVVHelAmp.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSVVHelAmp.hh create mode 100644 TEvtGen/EvtGenModels/EvtSVVHelCPMix.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSVVHelCPMix.hh create mode 100644 TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.hh create mode 100644 TEvtGen/EvtGenModels/EvtSingleParticle.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSingleParticle.hh create mode 100644 TEvtGen/EvtGenModels/EvtSll.cxx create mode 100644 TEvtGen/EvtGenModels/EvtSll.hh create mode 100644 TEvtGen/EvtGenModels/EvtTSS.cxx create mode 100644 TEvtGen/EvtGenModels/EvtTSS.hh create mode 100644 TEvtGen/EvtGenModels/EvtTVSPwave.cxx create mode 100644 TEvtGen/EvtGenModels/EvtTVSPwave.hh create mode 100644 TEvtGen/EvtGenModels/EvtTauHadnu.cxx create mode 100644 TEvtGen/EvtGenModels/EvtTauHadnu.hh create mode 100644 TEvtGen/EvtGenModels/EvtTauScalarnu.cxx create mode 100644 TEvtGen/EvtGenModels/EvtTauScalarnu.hh create mode 100644 TEvtGen/EvtGenModels/EvtTauVectornu.cxx create mode 100644 TEvtGen/EvtGenModels/EvtTauVectornu.hh create mode 100644 TEvtGen/EvtGenModels/EvtTaulnunu.cxx create mode 100644 TEvtGen/EvtGenModels/EvtTaulnunu.hh create mode 100644 TEvtGen/EvtGenModels/EvtVPHOtoV.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVPHOtoV.hh create mode 100644 TEvtGen/EvtGenModels/EvtVPHOtoVISR.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVPHOtoVISR.hh create mode 100644 TEvtGen/EvtGenModels/EvtVPHOtoVISRHi.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVPHOtoVISRHi.hh create mode 100644 TEvtGen/EvtGenModels/EvtVSPPwave.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVSPPwave.hh create mode 100644 TEvtGen/EvtGenModels/EvtVSS.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVSS.hh create mode 100644 TEvtGen/EvtGenModels/EvtVSSBMixCPT.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVSSBMixCPT.hh create mode 100644 TEvtGen/EvtGenModels/EvtVSSMix.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVSSMix.hh create mode 100644 TEvtGen/EvtGenModels/EvtVVP.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVVP.hh create mode 100644 TEvtGen/EvtGenModels/EvtVVPIPI_WEIGHTED.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVVPIPI_WEIGHTED.hh create mode 100644 TEvtGen/EvtGenModels/EvtVVSPwave.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVVSPwave.hh create mode 100644 TEvtGen/EvtGenModels/EvtVVpipi.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVVpipi.hh create mode 100644 TEvtGen/EvtGenModels/EvtVectorIsr.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVectorIsr.hh create mode 100644 TEvtGen/EvtGenModels/EvtVll.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVll.hh create mode 100644 TEvtGen/EvtGenModels/EvtVtoSll.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVtoSll.hh create mode 100644 TEvtGen/EvtGenModels/EvtVub.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVub.hh create mode 100644 TEvtGen/EvtGenModels/EvtVubAC.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVubAC.hh create mode 100644 TEvtGen/EvtGenModels/EvtVubBLNP.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVubBLNP.hh create mode 100644 TEvtGen/EvtGenModels/EvtVubBLNPHybrid.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVubBLNPHybrid.hh create mode 100644 TEvtGen/EvtGenModels/EvtVubHybrid.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVubHybrid.hh create mode 100644 TEvtGen/EvtGenModels/EvtVubNLO.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVubNLO.hh create mode 100644 TEvtGen/EvtGenModels/EvtVubdGamma.cxx create mode 100644 TEvtGen/EvtGenModels/EvtVubdGamma.hh create mode 100644 TEvtGen/EvtGenModels/EvtWilsonCoeficients.cxx create mode 100644 TEvtGen/EvtGenModels/EvtWilsonCoeficients.hh create mode 100644 TEvtGen/EvtGenModels/EvtY3SToY1SpipiMoxhay.cxx create mode 100644 TEvtGen/EvtGenModels/EvtY3SToY1SpipiMoxhay.hh create mode 100644 TEvtGen/EvtGenModels/EvtYmSToYnSpipiCLEO.cxx create mode 100644 TEvtGen/EvtGenModels/EvtYmSToYnSpipiCLEO.hh create mode 100644 TEvtGen/EvtGenModels/EvtbTosllAli.cxx create mode 100644 TEvtGen/EvtGenModels/EvtbTosllAli.hh create mode 100644 TEvtGen/EvtGenModels/EvtbTosllAliFF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtbTosllAliFF.hh create mode 100644 TEvtGen/EvtGenModels/EvtbTosllAmp.cxx create mode 100644 TEvtGen/EvtGenModels/EvtbTosllAmp.hh create mode 100644 TEvtGen/EvtGenModels/EvtbTosllBall.cxx create mode 100644 TEvtGen/EvtGenModels/EvtbTosllBall.hh create mode 100644 TEvtGen/EvtGenModels/EvtbTosllBallFF.cxx create mode 100644 TEvtGen/EvtGenModels/EvtbTosllBallFF.hh create mode 100644 TEvtGen/EvtGenModels/EvtbTosllFF.hh create mode 100644 TEvtGen/EvtGenModels/EvtbTosllScalarAmp.cxx create mode 100644 TEvtGen/EvtGenModels/EvtbTosllScalarAmp.hh create mode 100644 TEvtGen/EvtGenModels/EvtbTosllVectorAmp.cxx create mode 100644 TEvtGen/EvtGenModels/EvtbTosllVectorAmp.hh create mode 100644 TEvtGen/EvtGenModels/Makefile create mode 100644 TEvtGen/EvtGenModels/Pythia.F create mode 100644 TEvtGen/EvtGenModels/begevtgenget.F create mode 100644 TEvtGen/EvtGenModels/begevtgengetx.F create mode 100644 TEvtGen/EvtGenModels/begevtgenstore.F create mode 100644 TEvtGen/EvtGenModels/begevtgenstorex.F create mode 100644 TEvtGen/EvtGenModels/continuum.F create mode 100644 TEvtGen/EvtGenModels/continuumCDF.F create mode 100644 TEvtGen/EvtGenModels/jetset1.F create mode 100644 TEvtGen/EvtGenModels/jetset7410CDF.F create mode 100644 TEvtGen/EvtGenModels/jetsetCDF.F create mode 100644 TEvtGen/EvtGenModels/jetsetcont.F create mode 100644 TEvtGen/EvtGenModels/pykcut.F create mode 100644 TEvtGen/EvtGenModels/pytime.F create mode 100644 TEvtGen/EvtGenModels/rly.cxx create mode 100644 TEvtGen/EvtGenModels/stdhep.inc create mode 100644 TEvtGen/PHOTOS/CMakeLists.txt create mode 100644 TEvtGen/PHOTOS/CMake_libPHOTOS.txt create mode 100644 TEvtGen/PHOTOS/module.mk create mode 100644 TEvtGen/PHOTOS/phcork.F create mode 100644 TEvtGen/PHOTOS/phint.F create mode 100644 TEvtGen/PHOTOS/phint1.F create mode 100644 TEvtGen/PHOTOS/phlupa.F create mode 100644 TEvtGen/PHOTOS/phoan1.F create mode 100644 TEvtGen/PHOTOS/phoan2.F create mode 100644 TEvtGen/PHOTOS/phobo3.F create mode 100644 TEvtGen/PHOTOS/phobos.F create mode 100644 TEvtGen/PHOTOS/phocha.F create mode 100644 TEvtGen/PHOTOS/phochk.F create mode 100644 TEvtGen/PHOTOS/phocin.F create mode 100644 TEvtGen/PHOTOS/phocor.F create mode 100644 TEvtGen/PHOTOS/phodo.F create mode 100644 TEvtGen/PHOTOS/phoene.F create mode 100644 TEvtGen/PHOTOS/phoerr.F create mode 100644 TEvtGen/PHOTOS/phofac.F create mode 100644 TEvtGen/PHOTOS/phoin.F create mode 100644 TEvtGen/PHOTOS/phoinf.F create mode 100644 TEvtGen/PHOTOS/phoini.F create mode 100644 TEvtGen/PHOTOS/phomak.F create mode 100644 TEvtGen/PHOTOS/phooma.F create mode 100644 TEvtGen/PHOTOS/phoout.F create mode 100644 TEvtGen/PHOTOS/phopre.F create mode 100644 TEvtGen/PHOTOS/phoran.F create mode 100644 TEvtGen/PHOTOS/phorep.F create mode 100644 TEvtGen/PHOTOS/phorin.F create mode 100644 TEvtGen/PHOTOS/phoro2.F create mode 100644 TEvtGen/PHOTOS/phoro3.F create mode 100644 TEvtGen/PHOTOS/phospi.F create mode 100644 TEvtGen/PHOTOS/photos.F create mode 100644 TEvtGen/PHOTOS/photos_get.F create mode 100644 TEvtGen/PHOTOS/photos_make.F create mode 100644 TEvtGen/PHOTOS/photos_set.F create mode 100644 TEvtGen/PHOTOS/photri.F create mode 100644 TEvtGen/PHOTOS/photwo.F create mode 100644 TEvtGen/PHOTOS/phtype.F create mode 100644 TEvtGen/PHOTOS/tgt_linux/phcork.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phint.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phint1.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phlupa.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phoan1.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phoan2.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phobo3.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phobos.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phocha.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phochk.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phocin.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phocor.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phodo.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phoene.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phoerr.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phofac.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phoin.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phoinf.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phoini.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phomak.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phooma.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phoout.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phopre.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phoran.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phorep.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phorin.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phoro2.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phoro3.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phospi.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/photos.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/photos_get.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/photos_make.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/photos_set.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/photri.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/photwo.d create mode 100644 TEvtGen/PHOTOS/tgt_linux/phtype.d create mode 100644 TEvtGen/README.txt create mode 100644 TEvtGen/TEvtGenLinkDef.h create mode 100644 TEvtGen/libEvtGen.pkg create mode 100644 TEvtGen/libEvtGenBase.pkg create mode 100644 TEvtGen/libEvtGenModels.pkg create mode 100644 TEvtGen/libTEvtGen.pkg create mode 100644 TEvtGen/libphotos.pkg diff --git a/TEvtGen/AliDecayerEvtGen.cxx b/TEvtGen/AliDecayerEvtGen.cxx new file mode 100644 index 00000000000..efd158f77a8 --- /dev/null +++ b/TEvtGen/AliDecayerEvtGen.cxx @@ -0,0 +1,286 @@ +/************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * + **************************************************************************/ +/////////////////////////////////////////////////////////////////////////// +// Implementation of AliDecayer using EvtGen package. // +// // +// Giuseppe E. Bruno & Fiorella Fionda // +// (Giuseppe.Bruno@ba.infn.it) (Fiorella.Fionda@ba.infn.it) // +/////////////////////////////////////////////////////////////////////////// + +#include +#include +#include +#include +#include + +#include "EvtGenBase/EvtStdHep.hh" +#include "EvtGenBase/EvtRandomEngine.hh" +#include "EvtGen/EvtGen.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtParticleFactory.hh" +#include "AliDecayerEvtGen.h" +#include "AliLog.h" + +ClassImp(AliDecayerEvtGen) +//____________________________________________________________ +AliDecayerEvtGen::AliDecayerEvtGen(): + fRandomEngine(0x0), + fGenerator(0x0), + fEvtstdhep(0x0), + fDecayTablePath(0x0), + fParticleTablePath(0x0), + fDecay(kAll) + { + // Default constructor + fEvtstdhep = new EvtStdHep(); + fDecayTablePath = gSystem->ExpandPathName("$ALICE_ROOT/TEvtGen/EvtGen/DECAY.DEC"); //default decay table + fParticleTablePath = gSystem->ExpandPathName("$ALICE_ROOT/TEvtGen/EvtGen/evt.pdl"); //particle table + } +//_________________________________________________________________ +AliDecayerEvtGen::AliDecayerEvtGen(const AliDecayerEvtGen &decayer): + AliDecayer(decayer), + fRandomEngine(decayer.fRandomEngine), + fGenerator(decayer.fGenerator), + fEvtstdhep(decayer.fEvtstdhep), + fDecayTablePath(decayer.fDecayTablePath), + fParticleTablePath(decayer.fParticleTablePath), + fDecay(decayer.fDecay) + { + // Copy Constructor + decayer.Copy(*this); + } +//____________________________________________________________ +AliDecayerEvtGen::~AliDecayerEvtGen() + { + // Destructor + if(fRandomEngine) {delete fRandomEngine;} + fRandomEngine = 0; + if(fGenerator) {delete fGenerator;} + fGenerator = 0; + if(fEvtstdhep) {delete fEvtstdhep;} + fEvtstdhep = 0; + if(fDecayTablePath) {delete fDecayTablePath;} + fDecayTablePath = 0; + if(fParticleTablePath) {delete fParticleTablePath;} + fParticleTablePath = 0; + } + +//___________________________________________________________ +void AliDecayerEvtGen::Init() + { + //Standard AliDecayerEvtGen initializer: + //initialize EvtGen with default decay table (DECAY.DEC), particle table (evt.pdl) + //and fRandomEngine for generation of random numbers + // + if(fGenerator){ + AliWarning(" AliDecayerEvtGen already initialized!!!!\n"); + return; + } + fRandomEngine=new EvtNUMRandomEngine(); + fGenerator=new EvtGen(fDecayTablePath,fParticleTablePath,fRandomEngine); + } +//____________________________________________________________ +void AliDecayerEvtGen::Decay(Int_t ipart, TLorentzVector *p) + { + // + //Decay a particle + //input: pdg code and momentum of the particle to be decayed + //all informations about decay products are stored in fEvtstdhep + // + EvtId IPART=EvtPDL::evtIdFromStdHep(ipart); + EvtVector4R p_init=EvtVector4R::EvtVector4R(p->E(),p->Px(),p->Py(),p->Pz()); + EvtParticle *froot_part=EvtParticleFactory::particleFactory(IPART,p_init); + fGenerator->generateDecay(froot_part); + fEvtstdhep->init(); + froot_part->makeStdHep(*fEvtstdhep); + //froot_part->printTree(); //to print the decay chain + froot_part->deleteTree(); + } + +//____________________________________________________________ +Int_t AliDecayerEvtGen::ImportParticles(TClonesArray *particles) + { + // + //Input: pointer to a TClonesArray - Output(Int_t): number of decay products + //Put all the informations about the decay products in the + //TClonesArray particles + // + if (particles == 0) return 0; + TClonesArray &clonesParticles = *particles; + clonesParticles.Clear(); + + int j; + int istat; + int partnum; + double px,py,pz,e; + double x,y,z,t; + EvtVector4R p4,x4; + + Int_t npart=fEvtstdhep->getNPart(); + for(int i=0;igetNPart();i++){ + j=i+1; + int jmotherfirst=fEvtstdhep->getFirstMother(i)+1; + int jmotherlast=fEvtstdhep->getLastMother(i)+1; + int jdaugfirst=fEvtstdhep->getFirstDaughter(i)+1; + int jdauglast=fEvtstdhep->getLastDaughter(i)+1; + + partnum=fEvtstdhep->getStdHepID(i); + + //verify if all particles of decay chain are in the TDatabasePDG + TParticlePDG *partPDG = TDatabasePDG::Instance()->GetParticle(partnum); + if(!partPDG) + { + AliWarning("Particle code non known in TDatabasePDG - set pdg = 89"); + partnum=89; //internal use for unspecified resonance data + } + + istat=fEvtstdhep->getIStat(i); + + if(istat!=1 && istat!=2) Info("ImportParticles","Attention: unknown status code!"); + if(istat == 2) istat = 11; //status decayed + + p4=fEvtstdhep->getP4(i); + x4=fEvtstdhep->getX4(i); + px=p4.get(1); + py=p4.get(2); + pz=p4.get(3); + e=p4.get(0); + + x=x4.get(1);//[mm] + y=x4.get(2);//[mm] + z=x4.get(3);//[mm] + t=x4.get(0);//[mm] + + AliDebug(1,Form("partnum = %d istat = %d primaMadre = %d ultimaMadre = %d primaF = %d ultimaF=%d x=%f y=%f z=%f t=%f e=%f px=%f \n",partnum,istat,jmotherfirst,jmotherlast,jdaugfirst,jdauglast,x,y,z,t,e,px)); + + new(clonesParticles[i]) TParticle(partnum,istat,jmotherfirst,-1,jdaugfirst,jdauglast,px,py,pz,e,x,y,z,t); + + //set polarization!!! + } + + return npart; + + } + +void AliDecayerEvtGen::Copy(TObject &) const + { + // + // Copy *this onto AliDecayerEvtGen -- not implemented + // + Fatal("Copy","Not implemented!\n"); + } + +void AliDecayerEvtGen::ForceDecay() + { + // + // Intupt: none - Output: none + // Set the decay mode to decay particles: for each case is read a + // different decay table. case kAll read the default decay table only + // + Decay_t decay = fDecay; + switch(decay) + { + case kAll: + break; + case kBJpsiDiElectron: + SetDecayTablePath(gSystem->ExpandPathName("$ALICE_ROOT/TEvtGen/EvtGen/DecayTable/BTOJPSITOELE.DEC")); + break; + case kBJpsi: + SetDecayTablePath(gSystem->ExpandPathName("$ALICE_ROOT/TEvtGen/EvtGen/DecayTable/BTOJPSI.DEC")); + break; + case kBJpsiDiMuon: + SetDecayTablePath(gSystem->ExpandPathName("$ALICE_ROOT/TEvtGen/EvtGen/DecayTable/BTOJPSITOMU.DEC")); + break; + case kBSemiElectronic: + SetDecayTablePath(gSystem->ExpandPathName("$ALICE_ROOT/TEvtGen/EvtGen/DecayTable/BTOELE.DEC")); + break; + case kHardMuons: + case kChiToJpsiGammaToMuonMuon: + case kChiToJpsiGammaToElectronElectron: + case kBSemiMuonic: + case kSemiMuonic: + case kDiMuon: + case kSemiElectronic: + case kDiElectron: + case kBPsiPrimeDiMuon: + case kPiToMu: + case kKaToMu: + case kAllMuonic: + case kWToMuon: + case kWToCharm: + case kWToCharmToMuon: + case kZDiMuon: + case kZDiElectron: + case kHadronicD: + case kHadronicDWithout4Bodies: + case kPhiKK: + case kOmega: + case kLambda: + case kNoDecay: + case kNoDecayHeavy: + case kNeutralPion: + case kBPsiPrimeDiElectron: + AliWarning(Form("Warning: case %s not implemented for this class!",(Char_t)decay)); + break; + } + ReadDecayTable(); + } + +Float_t AliDecayerEvtGen::GetPartialBranchingRatio(Int_t) + { + // This method is dummy + return 1.; + } + +Float_t AliDecayerEvtGen::GetLifetime(Int_t kf) + { + // + //Input: pdg code of a particle + //return lifetime in sec for a particle with particle code kf + // + EvtId IdPart=EvtPDL::evtIdFromStdHep(kf); + Double_t lifetime = EvtPDL::getctau(IdPart); //c*tau (mm) + AliDebug(1,Form("lifetime is %f (mum) , particle id= %d",lifetime*1000,kf)); + return lifetime*kconv; //tau (sec) + } + +void AliDecayerEvtGen::ReadDecayTable() + { + //Input none - Output none + //Read the decay table that correspond to the path + //fDecayTablePath + // + TString temp = fDecayTablePath; + if(!temp.EndsWith("DECAY.DEC")) + fGenerator->readUDecay(fDecayTablePath); + } +//////////////////////////////////////////////////////////// +Bool_t AliDecayerEvtGen::SetDecayTablePath(Char_t *path) + { + // + //Set the path of the decay table read to force particle decays + // + if(gSystem->AccessPathName(path)) + { + AliWarning("Attention: This path not exist!\n"); + return kFALSE; + } + fDecayTablePath = path; + return kTRUE; + } + + + diff --git a/TEvtGen/AliDecayerEvtGen.h b/TEvtGen/AliDecayerEvtGen.h new file mode 100644 index 00000000000..c0c61fb9f1f --- /dev/null +++ b/TEvtGen/AliDecayerEvtGen.h @@ -0,0 +1,60 @@ +#ifndef ALIDECAYEREVTGEN_H +#define ALIDECAYEREVTGEN_H +/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ +/////////////////////////////////////////////////////////////////////////// +// Implementation of AliDecayer using EvtGen package. It inherits // +// from AliDecayer. // +// // +// Contact: Giuseppe.Bruno@ba.infn.it & Fiorella.Fionda@ba.infn.it // +/////////////////////////////////////////////////////////////////////////// + + +#include "AliDecayer.h" + +class EvtGen; +class EvtRandomEngine; +class EvtStdHep; +class TLorentzVector; +class TClonesArray; + +class AliDecayerEvtGen : public AliDecayer +{ + public: + AliDecayerEvtGen(); + AliDecayerEvtGen(const AliDecayerEvtGen &decayer); + virtual ~AliDecayerEvtGen(); + virtual void Init(); + virtual void Decay(Int_t ipart, TLorentzVector *p); + virtual Int_t ImportParticles(TClonesArray *particles); + virtual void SetForceDecay(Decay_t decay) {fDecay=decay;} + virtual void SetForceDecay(Int_t decay){SetForceDecay((Decay_t) decay);} + virtual void ForceDecay(); + virtual Float_t GetPartialBranchingRatio(Int_t ipart); + virtual Float_t GetLifetime(Int_t kf); + Char_t* GetDecayTablePath() {return fDecayTablePath;} + virtual void ReadDecayTable(); + Bool_t SetDecayTablePath(Char_t *path); + + private: + void Copy(TObject &decayer) const; + AliDecayerEvtGen &operator=(const AliDecayerEvtGen &decayer) + {decayer.Copy(*this);return(*this);} + + protected: + EvtRandomEngine *fRandomEngine; //!pointer to EvtRandomEngine to generate random number + EvtGen *fGenerator; //!pointer to EvtGen class interface + EvtStdHep *fEvtstdhep; //!pointer to EvtGen common block + Char_t *fDecayTablePath; //!pointer to decay table path + Char_t *fParticleTablePath; //!pointer to particle table path + Decay_t fDecay; // Forced decay case + + ClassDef(AliDecayerEvtGen,0) //AliDecayer implementation using EvtGen +}; + +//converts from mm/c to s +const Double_t kconv=0.001/2.999792458e8; + +#endif + + diff --git a/TEvtGen/AliGenEvtGen.cxx b/TEvtGen/AliGenEvtGen.cxx new file mode 100644 index 00000000000..08d2c58c963 --- /dev/null +++ b/TEvtGen/AliGenEvtGen.cxx @@ -0,0 +1,241 @@ +/************************************************************************** + * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * + * * + * Author: The ALICE Off-line Project. * + * Contributors are mentioned in the code where appropriate. * + * * + * Permission to use, copy, modify and distribute this software and its * + * documentation strictly for non-commercial purposes is hereby granted * + * without fee, provided that the above copyright notice appears in all * + * copies and that both the copyright notice and this permission notice * + * appear in the supporting documentation. The authors make no claims * + * about the suitability of this software for any purpose. It is * + * provided "as is" without express or implied warranty. * +***************************************************************************/ +/////////////////////////////////////////////////////////////////////////// +// Class to generate decays of particles generated by a // +// previous generator. It works as a generator, but pratically it // +// performs only decays. It works with this scheme: first loops over // +// particles on the stack, selects those to be decayed, decays them // +// and then pushes the decay products on the stack. // +// // +// Giuseppe E. Bruno & Fiorella Fionda // +// (Giuseppe.Bruno@ba.infn.it) (Fiorella.Fionda@ba.infn.it) // +/////////////////////////////////////////////////////////////////////////// + +#include "AliStack.h" +#include "AliGenEvtGen.h" +#include "AliRun.h" +#include + +ClassImp(AliGenEvtGen) +/////////////////////////////////////////////////////////////////////////// +AliGenEvtGen::AliGenEvtGen(): + fStack(0x0), + fDecayer(0x0), + fForceDecay(kAll), + fSwitchOff(kBeautyPart), + fUserDecay(kFALSE), + fUserDecayTablePath(0x0) + { + // + // Default Construction + // + } +/////////////////////////////////////////////////////////////////////////////////////////// +AliGenEvtGen::~AliGenEvtGen() + { + // + // Standard Destructor + // + if(fStack) {delete fStack;} + fStack = 0; + if(fDecayer) {delete fDecayer;} + fDecayer = 0; + if(fUserDecayTablePath) {delete fUserDecayTablePath;} + fUserDecayTablePath = 0; + } +/////////////////////////////////////////////////////////////////////////////////////////// + +void AliGenEvtGen::Init() + { + // + // Standard AliGenerator Initializer - no input + // 1) initialize EvtGen with default decay and particle table + // 2) set the decay mode to force particle + // 3) set a user decay table if defined + // + if(fDecayer) + { + AliWarning("AliGenEvtGen already initialized!!!"); + return; + } + fDecayer = new AliDecayerEvtGen(); + fDecayer->Init(); //read the default decay table DECAY.DEC and particle table + + //if is set a decay mode: default decay mode is kAll + fDecayer->SetForceDecay(fForceDecay); + fDecayer->ForceDecay(); + + //if is defined a user decay table + if(fUserDecay) + { + fDecayer->SetDecayTablePath(fUserDecayTablePath); + fDecayer->ReadDecayTable(); + } + } + +///////////////////////////////////////////////////////////////////////////////////////////// +void AliGenEvtGen::Generate() + { + // + //Generate method - Input none - Output none + //For each event: + //1)return the stack of the previous generator and select particles to be decayed by EvtGen + //2)decay particles selected and put the decay products on the stack + // + // + Float_t polar[3]= {0,0,0}; // Polarisation of daughter particles + Float_t origin0[3]; // Origin of the parent particle + Float_t pc[3], och[3]; // Momentum and origin of the children particles from EvtGen + Int_t nt; + Float_t tof; + Int_t nPrimsPythia; + TLorentzVector *mom=new TLorentzVector(); + static TClonesArray *particles; + if(!particles) particles = new TClonesArray("TParticle",1000); + fStack = AliRunLoader::Instance()->Stack(); + if(!fStack) {Info("Generate","Error: No stack found!"); return;} + nPrimsPythia = fStack->GetNprimary(); + AliDebug(1,Form("nPrimsPythia = %d \n",nPrimsPythia)); + for (Int_t iTrack = 0; iTrack < nPrimsPythia; ++iTrack) { + TParticle *part = fStack->Particle(iTrack); + Int_t pdg=part->GetPdgCode(); + + AliDebug(1,Form("GetFlavour = %d e pdg = %d \n",GetFlavour(pdg),pdg)); + + switch(fSwitchOff) + { + case kAllPart: + break; + case kBeautyPart: + if(GetFlavour(pdg)!=5) continue; + break; + case kCharmPart: + if(GetFlavour(pdg)!=4) continue; + break; + } + + //check if particle is already decayed by Pythia + if(part->GetStatusCode() != 1 || part->GetNDaughters()>0) + { + Info("AliGenEvtGen","Attention: particle %d is already decayed by Pythia!",pdg); + continue; + } + + part->SetStatusCode(11); //Set particle as decayed : change the status code + + mom->SetPxPyPzE(part->Px(),part->Py(),part->Pz(),part->Energy()); + Int_t np; + + do{ + fDecayer->Decay(part->GetPdgCode(),mom); + np = fDecayer->ImportParticles(particles); + }while(np<0); + + Int_t* trackIt = new Int_t[np]; + Int_t* pParent = new Int_t[np]; + AliDebug(1,Form("np = %d \n",np)); + + for (int i = 0; i < np; i++) { + pParent[i] = -1; + trackIt[i] = 0; + } + //select trackable particle + if (np >1) { + TParticle* iparticle = (TParticle *) particles->At(0);//parent particle + for (int i = 1; iAt(i); + Int_t ks = iparticle->GetStatusCode(); + + //track last decay products + if(ks==1) trackIt[i]=1; + + }//decay particles loop + + }// if decay products + + origin0[0]=part->Vx(); //[cm] + origin0[1]=part->Vy(); //[cm] + origin0[2]=part->Vz(); //[cm] + // + // Put decay products on the stack + // + for (int i = 1; i < np; i++) { + TParticle* iparticle = (TParticle *) particles->At(i); + Int_t kf = iparticle->GetPdgCode(); + Int_t ksc = iparticle->GetStatusCode(); + Int_t jpa = iparticle->GetFirstMother()-1; //jpa = 0 for daughters of beauty particles + Int_t iparent = (jpa > 0) ? pParent[jpa] : iTrack; + + och[0] = origin0[0]+iparticle->Vx()/10; //[cm] + och[1] = origin0[1]+iparticle->Vy()/10; //[cm] + och[2] = origin0[2]+iparticle->Vz()/10; //[cm] + pc[0] = iparticle->Px(); //[GeV/c] + pc[1] = iparticle->Py(); //[GeV/c] + pc[2] = iparticle->Pz(); //[GeV/c] + tof = part->T()+kconv*iparticle->T(); + + AliDebug(1,Form("FirstMother = %d e indicePart = %d e pdg = %d \n",jpa,i,kf)); + + PushTrack(trackIt[i], iparent, kf, pc, och, polar,tof, kPDecay, nt, 1., ksc); + if(trackIt[i]==1) AliDebug(1,Form("Trackable particles: %d e pdg %d \n",i,kf)); + pParent[i] = nt; + KeepTrack(nt); + SetHighWaterMark(nt); + }// Particle loop + particles->Clear(); + if (trackIt) delete[] trackIt; + if (pParent) delete[] pParent; + } + Info("Generate","AliGenEvtGen DONE"); + } + +////////////////////////////////////////////////////////////////////////////////////////// +Int_t AliGenEvtGen::GetFlavour(Int_t pdgCode) + { + // + // return the flavour of a particle + // input: pdg code of the particle + // output: Int_t + // 3 in case of strange (open and hidden) + // 4 in case of charm (") + // 5 in case of beauty (") + // + Int_t pdg = TMath::Abs(pdgCode); + //Resonance + if (pdg > 100000) pdg %= 100000; + if(pdg > 10000) pdg %= 10000; + // meson ? + if(pdg > 10) pdg/=100; + // baryon ? + if(pdg > 10) pdg/=10; + return pdg; + } + +///////////////////////////////////////////////////////////////////////////////////////// +Bool_t AliGenEvtGen::SetUserDecayTable(Char_t *path) + { + // + //Set the path of user decay table if it is defined + // + //put a comment to control if path exists + if(gSystem->AccessPathName(path)) + { + AliWarning("Attention: This path not exist!\n"); + return kFALSE; + } + fUserDecayTablePath = path; + fUserDecay = kTRUE; + return kTRUE; + } diff --git a/TEvtGen/AliGenEvtGen.h b/TEvtGen/AliGenEvtGen.h new file mode 100644 index 00000000000..a3d1e7cd78b --- /dev/null +++ b/TEvtGen/AliGenEvtGen.h @@ -0,0 +1,58 @@ +#ifndef ALIGENEVTGEN_H +#define ALIGENEVTGEN_H + +/* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. * + * See cxx source for full Copyright notice */ +/////////////////////////////////////////////////////////////////////////// +// // +// AliGenEvtGen class to performs decays of particles generated by a // +// previous generator. It inherits from AliGenerator. // +// // +// Origin: Giuseppe.Bruno@ba.infn.it & Fiorella.Fionda@ba.infn.it // +/////////////////////////////////////////////////////////////////////////// + +#include "AliGenerator.h" +#include "AliDecayerEvtGen.h" + +class TParticle; + +class AliGenEvtGen : public AliGenerator { + + public: + + typedef enum {kAllPart, kBeautyPart, kCharmPart} DecayOff_t; + + AliGenEvtGen(); + + ~AliGenEvtGen(); + + virtual void Init(); + virtual void Generate(); + AliDecayer* GetDecayer() {return fDecayer;} + void SetForceDecay(Decay_t decay = kAll) {fForceDecay = decay;} //set a decay mode + Bool_t SetUserDecayTable(Char_t *path); + void SetParticleSwitchedOff(DecayOff_t decay) {fSwitchOff = decay;} //set particles to be decayed by EvtGen + + protected: + Int_t GetFlavour(Int_t pdgCode); + + + private: + AliStack *fStack; //!pointer to AliStack + AliDecayerEvtGen *fDecayer; //!pointer to AliDecayerEvtGen + Decay_t fForceDecay; //!decay case + DecayOff_t fSwitchOff; //!particle decay + Bool_t fUserDecay; //!TRUE if a user decay table is set + Char_t *fUserDecayTablePath; //!pointer to path of user decay table + + AliGenEvtGen(const AliGenEvtGen &EvtGen); + AliGenEvtGen & operator=(const AliGenEvtGen & rhs); + + + + ClassDef(AliGenEvtGen,0) //AliGenerator interface to EvtGen +}; + +//////////////////////////////////////////////////////////////////////////////////////////////// + +#endif diff --git a/TEvtGen/EvtGen/DECAY.DEC b/TEvtGen/EvtGen/DECAY.DEC new file mode 100644 index 00000000000..4c851137479 --- /dev/null +++ b/TEvtGen/EvtGen/DECAY.DEC @@ -0,0 +1,10239 @@ +# $Id: DECAY.DEC,v 1.271 2009/02/15 18:43:38 ryd Exp $ +# +#Define the B0B0bar mass difference +Define dm 0.489e12 +Define dgamma 0 +Define qoverp 1 +Define phaseqoverp 0 +# define the values of the CKM angles (alpha=70, beta=40) +Define alpha 1.365 +Define beta 0.39 +Define gamma 1.387 +Define twoBetaPlusGamma 2.167 +Define betaPlusHalfGamma 1.0835 +Define minusGamma -1.387 +Define minusTwoBeta -0.78 + +# New definitions for psiKstar modes (Lange, July 26, 2000) +Define PKHplus 0.159 +Define PKHzero 0.775 +Define PKHminus 0.612 +Define PKphHplus 1.563 +Define PKphHzero 0.0 +Define PKphHminus 2.712 + +Define Aplus 0.490 +Define Azero 1.10 +Define Aminus 0.4 +# +Define phAplus 2.5 +Define phAzero 0.0 +Define phAminus -0.17 + +### These are for incoherent B_s and B_d mixing +Define qoverp_incohMix_B_s0 1.0 +Define dm_incohMix_B_s0 17.1e12 +Define qoverp_incohMix_B0 1.0 +Define dm_incohMix_B0 0.489e12 +Define qoverp_incohMix_D0 1.0 +Define dm_incohMix_D0 0.0 + +# +# These particle aliases are used in for CP violating decays +# in which the decay distributions depends on how the K* decayed. +# +# +Alias K*L K*0 +Alias K*S K*0 +Alias K*BL anti-K*0 +Alias K*BS anti-K*0 +Alias K*0T K*0 +Alias anti-K*0T anti-K*0 +Alias K*BR anti-K*0 +Alias K*0R K*0 +Alias anti-K_0*0N anti-K_0*0 +Alias K_0*0N K_0*0 +# +ChargeConj K*L K*BL +ChargeConj K*S K*BS +ChargeConj K*0T anti-K*0T +ChargeConj K_0*0N anti-K_0*0N +ChargeConj K*0R K*BR +# +#JetSet parameter modifications +# +# O.Long : March 30, 2000 +# Change from using Peterson fragmentation to Lund fragmentation +# with the default parameters (A=0.30, B=0.58) +# +#(Very important that there are no blank spaces in the parameter string!) +# Number of flavor produced. 5 = udscb production +JetSetPar MSTJ(104)=5 +# turn on initial state radiation (was off before) + #JetSetPar MSTJ(107)=1 +#use Lund fragmentation with default parameters +JetSetPar MSTJ(11)=4 +# Lund symmetric fragmentation function parameter a +JetSetPar PARJ(41)=.30 +# Lund symmetric fragmentation function parameter b +JetSetPar PARJ(42)=.58 +# Lund symmetric fragmentation function parameter a +JetSetPar PARJ(43)=.50 +# Lund symmetric fragmentation function parameter b +JetSetPar PARJ(44)=.90 +#eps_c from CLEO 8/97 + #JetSetPar PARJ(54)=-.040 +# eps_b + #JetSetPar PARJ(55)=-.004 +#Turn of B0-B0B mixing in JetSet: + #JetSetPar MSTJ(26)=0 +# D* production - Lange July 19, 2002 +#050214 JetSetPar PARJ(13)=0.45 + #JetSetPar PARJ(13)=0.4 +# eta' +# lange - change eta' production to agree better with udsc results +# from charmless group +#050214 JetSetPar PARJ(26)=0.15 + #JetSetPar PARJ(26)=0.1 +# lange - change eta production to agree better with udsc results +# from charmless group +#050214 JetSetPar PARJ(25)=1.0 + #JetSetPar PARJ(25)=0.6 +# P(ssbar)/P(uubar) - has a big effect on phis. Turn down to +# reduce phi production in continuum. +#050214 was no change + #JetSetPar PARJ(2)=0.26 +#050214JetSetPar PARJ(12)=0.2 + #JetSetPar PARJ(12)=0.55 + #JetSetPar PARJ(11)=0.4 +#lange/Petersen Nov 14, 2004 baryon production turned down for sp8 + #JetSetPar PARJ(1)=0.065 +# control of L=1 mesons (in order: J1S0 J0S1 J1S1 J2S1 + #JetSetPar PARJ(14)=0.05 + #JetSetPar PARJ(15)=0.05 + #JetSetPar PARJ(16)=0.05 + #JetSetPar PARJ(17)=0.05 +#cut-off parameter used to stop fragmentation process (was .4, CLEO uses.3) + #JetSetPar PARJ(33)=0.3 +# +### Parameters below are a new tuning of the continuum +### fragmentation that softens the pion spectrum +### but commented out untill verified to be physically +### sound. ryd 00-02-10 +### Lund symmetric fragmentation function parameter a +##JetSetPar PARJ(41)=.40 +### Lund symmetric fragmentation function parameter b +##JetSetPar PARJ(42)=.29 +### Lund symmetric fragmentation function parameter a +##JetSetPar PARJ(43)=.60 +### Lund symmetric fragmentation function parameter b +##JetSetPar PARJ(44)=.45 +###eps_c from CLEO 8/97 +##JetSetPar PARJ(54)=-.040 +##JetSetPar PARJ(46)=0.0 +##JetSetPar PARJ(33)=0.2 +###End of new continuum tuning +# +#pythia stuff for standalone generation +# no isr + #JetSetPar MSTP(11)=0 +# take the qqbar energy from EvtGen + #JetSetPar MSTP(171)=1 + #JetSetPar MSTP(172)=1 + + +# Turn on PHOTOS for all decays +# Lange Aug19,2002 +yesPhotos +# + +ModelAlias VubHybridB0 VUBHYBRID 4.62 2.27 0.22 8 8 8 + 0.28 1.40 1.60 1.80 2.00 2.50 3.00 3.50 + 0.00 2.50 5.00 7.50 10.00 12.50 15.00 20.00 + 0.00 0.50 1.00 1.25 1.50 1.75 2.00 2.25 + 0.00000 1.2059 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.09098 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.47335 1.21021 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.52695 1.21011 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.6304 1.21096 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.33327 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.54178 1.20886 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.59143 1.20802 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.69332 1.20698 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.66811 1.20755 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.34624 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.23645 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.53769 1.21089 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.63768 1.20843 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.71713 1.20869 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.75566 1.20778 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.74831 1.20916 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.21312 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.62594 1.20926 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.5902 1.20516 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.68809 1.20016 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.78229 1.20459 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.82156 1.20561 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.72422 1.20485 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.00423 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.55708 1.20977 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.61225 1.20629 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.66904 1.20049 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.72567 1.20029 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.78501 1.19808 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.83037 1.19609 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.59537 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.00000 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.45962 1.20645 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.53276 1.20083 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.57906 1.19669 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.68263 1.19458 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.74222 1.19771 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 + 0.78307 1.19479 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.58714 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.19489 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.24451 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.14704 1.20472 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.42163 1.19849 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 + 0.37319 1.18877 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 + 0.38655 1.1995 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.34297 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.31299 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.57067 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.57067 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995; + +# Hybrid weights for charged B -> Xu l nu decays +ModelAlias VubHybridBp VUBHYBRID 4.62 2.27 0.22 8 8 8 + 0.28 1.40 1.60 1.80 2.00 2.50 3.00 3.50 + 0.00 2.50 5.00 7.50 10.00 12.50 15.00 20.00 + 0.00 0.50 1.00 1.25 1.50 1.75 2.00 2.25 + 0.00000 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.00000 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.11287 1.26974 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.10819 1.26929 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.27133 1.26671 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.17256 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.18216 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.32091 1.26953 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.52924 1.26988 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.51586 1.26755 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.26794 1.27029 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.21166 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.29627 1.26757 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.52168 1.26788 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.5675 1.26647 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.62174 1.26467 1.27029 1.27029 0.9986 0.9986 0.9986 0.9986 + 0.00536 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.38235 1.2678 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.44511 1.26686 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.54476 1.26672 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.66852 1.26707 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.64859 1.26542 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.53664 1.2536 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.00000 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.22558 1.26822 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.38409 1.26531 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.52891 1.26284 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.65141 1.26648 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.70896 1.26227 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.79827 1.26101 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.4274 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.08636 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.28546 1.26121 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.40621 1.26584 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.58209 1.26637 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.61119 1.26424 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.70714 1.26297 1.27029 1.27029 0.9986 0.9986 0.9986 0.9986 + 0.73926 1.25781 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.53898 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.52061 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.00000 1.26726 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.16996 1.2649 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.23334 1.2534 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.25078 1.26036 1.27029 1.27029 0.9986 0.9986 0.9986 0.9986 + 0.27805 1.25917 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.27337 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.18235 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.84654 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.84654 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986; + +# + + +# Define model alias for the D -> K*lnu decays +# This should correspond to MV=2.1 GeV, MA1=MA2=2.5 GeV, +# R2=0.85 and RV=1.5 +# +ModelAlias SLPOLE_DtoKstarlnu SLPOLE 1.00 -0.558 0.0 1.0 + 0.85 -0.558 0.0 1.0 + 1.50 -0.790 0.0 1.0 + 0.00 -0.558 0.0 1.0; +# +# Model alias for the D -> rho l nu +# MV=2.0 GeV and MA1=MA2=2.4 GeV, R2=0.6, RV=1.5 +# +ModelAlias SLPOLE_Dtorholnu SLPOLE 1.00 -0.605 0.0 1.0 + 0.60 -0.605 0.0 1.0 + 1.50 -0.871 0.0 1.0 + 0.00 -0.605 0.0 1.0; +# +# Model alias for the D -> omega l nu +# MV=2.0 GeV and MA1=MA2=2.4 GeV, R2=0.6, RV=1.5 +# +ModelAlias SLPOLE_Dtoomegalnu SLPOLE 1.00 -0.605 0.0 1.0 + 0.60 -0.605 0.0 1.0 + 1.50 -0.871 0.0 1.0 + 0.00 -0.605 0.0 1.0; +# +# Model aliases for D -> Klnu, pilenu, etalnu, eta'lnu +# +ModelAlias SLBKPOLE_DtoKlnu SLBKPOLE 1.0 0.25 1.0 2.112; +ModelAlias SLBKPOLE_Dtopilnu SLBKPOLE 1.0 0.25 1.0 2.010; +ModelAlias SLBKPOLE_Dtoetalnu SLBKPOLE 1.0 0.25 1.0 2.010; +ModelAlias SLBKPOLE_Dtoetaplnu SLBKPOLE 1.0 0.25 1.0 2.010; + + +#Decay vpho +#1.000 PYCONT; +#Enddecay +# +# use new VSS_BMIX mixing decay model (DK,28-Oct-1999) +Decay Upsilon(4S) +0.508200 B+ B- VSS; +0.490000 B0 anti-B0 VSS_BMIX dm; +0.000016 e+ e- PHOTOS VLL; +0.000016 mu+ mu- PHOTOS VLL; +0.000016 tau+ tau- PHOTOS VLL; +0.000090 Upsilon(2S) pi+ pi- VVPIPI; +0.000045 Upsilon(2S) pi0 pi0 VVPIPI; +0.000090 Upsilon pi+ pi- VVPIPI; +0.000045 Upsilon pi0 pi0 VVPIPI; +0.000200 Upsilon eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; + +# BF ~ (2J+1)E^3_gamma; see PRL 94, 032001 +# V-> gamma S Partial wave (L,S)=(0,0) +0.000094 gamma chi_b0(3P) HELAMP 1. 0. 1. 0.; +# V-> gamma V Partial wave (L,S)=(0,1) +0.000141 gamma chi_b1(3P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; +# V-> gamma T Partial wave (L,S)=(0,1) +0.000131 gamma chi_b2(3P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. + 1. 0. 1.7320508 0. 2.4494897 0.; +# V-> gamma S Partial wave (L,S)=(0,0) +0.000003 gamma chi_b0(2P) HELAMP 1. 0. 1. 0.; +# V-> gamma V Partial wave (L,S)=(0,1) +0.000008 gamma chi_b1(2P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; +# V-> gamma T Partial wave (L,S)=(0,1) +0.000012 gamma chi_b2(2P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. + 1. 0. 1.7320508 0. 2.4494897 0.; +0.000850 g g g PYTHIA 4; +0.000040 gamma g g PYTHIA 4; +Enddecay +# +# +# +Decay anti-B0 +# b -> c semileptonic +# +0.0529 D*+ e- anti-nu_e PHOTOS HQET 0.77 1.33 0.92; +0.0208 D+ e- anti-nu_e PHOTOS ISGW2; +0.0052 D_1+ e- anti-nu_e PHOTOS ISGW2; +0.0045 D_0*+ e- anti-nu_e PHOTOS ISGW2; +0.0083 D'_1+ e- anti-nu_e PHOTOS ISGW2; +0.0023 D_2*+ e- anti-nu_e PHOTOS ISGW2; +0.0003 D*+ pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0065 D*0 pi+ e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0010 D+ pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0032 D0 pi+ e- anti-nu_e PHOTOS GOITY_ROBERTS; + +0.0529 D*+ mu- anti-nu_mu PHOTOS HQET 0.77 1.33 0.92; +0.0208 D+ mu- anti-nu_mu PHOTOS ISGW2; +0.0052 D_1+ mu- anti-nu_mu PHOTOS ISGW2; +0.0045 D_0*+ mu- anti-nu_mu PHOTOS ISGW2; +0.0083 D'_1+ mu- anti-nu_mu PHOTOS ISGW2; +0.0023 D_2*+ mu- anti-nu_mu PHOTOS ISGW2; +0.0003 D*+ pi0 mu- anti-nu_mu PHOTOS GOITY_ROBERTS; +0.0065 D*0 pi+ mu- anti-nu_mu PHOTOS GOITY_ROBERTS; +0.0010 D+ pi0 mu- anti-nu_mu PHOTOS GOITY_ROBERTS; +0.0032 D0 pi+ mu- anti-nu_mu PHOTOS GOITY_ROBERTS; +# +# b -> c tau nu +# +0.0202 D*+ tau- anti-nu_tau ISGW2; +0.0088 D+ tau- anti-nu_tau ISGW2; +0.0013 D_1+ tau- anti-nu_tau ISGW2; +0.0013 D_0*+ tau- anti-nu_tau ISGW2; +0.0020 D'_1+ tau- anti-nu_tau ISGW2; +0.0020 D_2*+ tau- anti-nu_tau ISGW2; +# +# b -> u l nu +# +# 03/28/01 S.Menke included inclusive B -> X_u l nu decays for m(X_u) > 1.26 GeV. +# with some thresholds to gradually switch from excl. to incl. +# modeling without big jumps keeping the better known excl. +# Brs at their actual values and constrain the incl. Br and +# weights in a way that ~40% of the total BR belongs to +# the mass region > 1.5 GeV +# October 20, 2004 - Lange - update using sl awg input +# March 30, 2005 J. Dingfelder: Updated B -> X_u l nu hybrid model +# (supersedes older version by S. Menke). Inclusive +# decays are reweighted in three kinematic +# variables mX, q2, and El (=> 512 weights total). +# The list of weights is included as ModelAlias +# once per B charge state. +# NOTE: - The specified parameters for model VUBHYBRID are: +# mb, a, alpha_s, nbins_mX, nbins_q2, nbins_El, +# list of threshold values for mX, q2, El in ascending order. +# +# *** DO NOT CHANGE ANY OF THESE PARAMETERS! *** +# Otherwise a new set of weights would be needed, since they were +# generated for a certain set of values for mb, a, excl. BFs, non-res BF. +# +# - If no binning (nbins or thresholds) are specified after the first +# three parameters (mb,a,alpha_s) no hybrid weighting is performed. + +# --- Hybrid weights for neutral B -> Xu l nu decays +# NOTE: Do NOT CHANGE any BFs without using the corresponding set of +# hybrid weights (and vice versa). + +0.000136 pi+ e- anti-nu_e PHOTOS ISGW2; +0.000220 rho+ e- anti-nu_e PHOTOS ISGW2; +0.000000 D(2S)+ e- anti-nu_e PHOTOS ISGW2; +0.000000 D*(2S)+ e- anti-nu_e PHOTOS ISGW2; +0.001892 Xu+ e- anti-nu_e PHOTOS VubHybridB0; +# +0.000136 pi+ mu- anti-nu_mu PHOTOS ISGW2; +0.000220 rho+ mu- anti-nu_mu PHOTOS ISGW2; +0.000000 D(2S)+ mu- anti-nu_mu PHOTOS ISGW2; +0.000000 D*(2S)+ mu- anti-nu_mu PHOTOS ISGW2; +0.001892 Xu+ mu- anti-nu_mu PHOTOS VubHybridB0; +# +0.000060 pi+ tau- anti-nu_tau ISGW2; +0.000083 rho+ tau- anti-nu_tau ISGW2; +0.000090 a_1+ tau- anti-nu_tau ISGW2; +0.000008 b_1+ tau- anti-nu_tau ISGW2; +0.000008 a_0+ tau- anti-nu_tau ISGW2; +0.000008 a_2+ tau- anti-nu_tau ISGW2; +0.000000 rho(2S)+ tau- anti-nu_tau ISGW2; +0.000000 D(2S)+ tau- anti-nu_tau ISGW2; +0.000000 D*(2S)+ tau- anti-nu_tau ISGW2; +# + +# +# b->u hadronic +# Ref. [B1]: +# Lange Nov 14, 2004 (flip D_s K -- is opposite of D_s pi) +0.000015 D_s- pi+ PHSP; +0.000028 D_s+ K- PHSP; +0.000029 D_s*- pi+ SVS; +0.000022 D_s*+ K- SVS; +# +0.000016 rho+ D_s- SVS; +0.000016 K*- D_s+ SVS; +0.000016 D_s*- rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.000016 D_s*+ K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; + + +# +# b -> s gamma +# +0.0000401 anti-K*0 gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000135 anti-K_10 gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000065 anti-K'_10 gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000128 anti-K'*0 gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000166 anti-K_2*0 gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000017 anti-K''*0 gamma HELAMP 1.0 0.0 1.0 0.0; +0.0003139 anti-Xsd gamma BTOXSGAMMA 2; +# +0.000000134 anti-K0 e+ e- PHOTOS BTOSLLBALL; +0.000001045 anti-K*0 e+ e- PHOTOS BTOSLLBALL; +0.000004994 anti-Xsd e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.000000574 anti-K0 mu+ mu- PHOTOS BTOSLLBALL; +0.000001100 anti-K*0 mu+ mu- PHOTOS BTOSLLBALL; +0.000002506 anti-Xsd mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.000000130 anti-K0 tau+ tau- PHOTOS BTOSLLBALL; +0.000000190 anti-K*0 tau+ tau- PHOTOS BTOSLLBALL; +0.000000200 anti-Xsd tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +# +#------------------------------------------------------------------------------ +# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# B0 -> CP eigenstates (some exclusive b -> u) sum=0.00036 +# +0.0000049 pi+ pi- SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.0000015 pi0 pi0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 pi0 eta SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.0000015 pi0 eta' SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 pi0 a_00 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 pi0 f_0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +# pi0 rho0 is with the 3-body modes +0.000001 pi0 omega SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 pi0 a_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 pi0 b_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 eta eta SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta eta' SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta a_00 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 eta f_0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 eta rho0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta omega SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta a_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta b_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 eta' eta' SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta' a_00 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 eta' f_0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 eta' rho0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta' omega SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta' a_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta' b_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 a_00 a_00 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 a_00 f_0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 a_00 rho0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 a_00 omega SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 a_00 a_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 a_00 b_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.0000003 f_0 f_0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 f_0 rho0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 f_0 omega SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 f_0 a_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 f_0 b_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; + +# Penguin dominated modes are sin2beta, not sin2alpha +0.0000043 phi K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.0000043 phi K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000001 eta K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.000001 eta K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000032 eta' K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.000032 eta' K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.0000023 omega K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.0000023 omega K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +#don't allow jetset to simulate the same decay but to a K0 or anti-K0 +#Lange 1/30/2003 + +0.0 phi anti-K0 PHSP; +0.0 phi K0 PHSP; + +0.0 eta anti-K0 PHSP; +0.0 eta K0 PHSP; + +0.0 eta' anti-K0 PHSP; +0.0 eta' K0 PHSP; + +0.0 omega anti-K0 PHSP; +0.0 omega K0 PHSP; +# phipi0 has no simple Pengun or tree so who knows - ditto phieta/eta'? +0.00000005 phi pi0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00000003 phi eta SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00000003 phi eta' SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +# +0.0000163 anti-K*0 eta SVS; +0.0000038 anti-K*0 eta' SVS; +0.000001 anti-K*0 omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000001 phi omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000001 omega omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000001 omega rho0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +# +# +#2-body modes from Jim Olsen +0.0000188 K- pi+ PHSP; +0.0000001 K+ K- PHSP; +# K_S0 K_L0 is 0 +# see http://babar-hn.slac.stanford.edu:5090/HyperNews/get/pubboard14/156.html +0.0000006 K_S0 K_S0 PHSP; +0.0000000 K_S0 K_L0 PHSP; +0.0000006 K_L0 K_L0 PHSP; +0.0000115 anti-K0 pi0 PHSP; +# Put in with 0 BR to keep PYTHIA from generating it +0.0000000 K0 anti-K0 PHSP; +# +# 3-body by John Back (jback@slac.stanford.edu) - Oct 15, 2002 +# JGS intersperses modes with pi0->eta,eta' +# anti-B0 modes +# Model generates rho(770), rho(1450) and rho(1700) resonances +# with interference (uses CKM angle alpha) +0.000024 pi- pi+ pi0 BTO3PI_CP dm alpha; +# Put in with 0 BR to keep PYTHIA from generating these (see BTO3PI_CP above) +0.000000 pi0 rho0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000000 rho- pi+ SVS; +0.000000 rho+ pi- SVS; +0.000000 rho(2S)- pi+ SVS; +0.000000 rho(2S)+ pi- SVS; +0.000000 rho(3S)- pi+ SVS; +0.000000 rho(3S)+ pi- SVS; +# +# rho0 3-body modes +0.0000022 rho0 K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.0000022 rho0 K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +# +# rho+ 3-body modes +0.0000085 rho+ K- SVS; +# +# rho(1450) 3-body modes +0.0000005 rho(2S)0 K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.0000005 rho(2S)0 K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +# +# +# f0,a0(980) 3-body modes +0.0000055 f_0 anti-K0 PHSP; +0.000001 a_00 anti-K0 PHSP; +0.000001 a_0+ K- PHSP; + +0.000001 a_0- pi+ PHSP; +0.000003 a_0+ pi- PHSP; +# +# K*0(892) 3-body modes +0.0000017 anti-K*0 pi0 SVS; +0.000003 anti-K*0 K0 SVS; +# +# K*0(1430) 3-body modes +0.000001 anti-K_0*0 pi0 PHSP; +0.000003 anti-K_0*0 K0 PHSP; +# +# K*0(1680) 3-body modes +0.000001 anti-K''*0 pi0 SVS; +0.000001 anti-K''*0 K0 SVS; + +# +# K*-(892) 3-body modes +0.0000085 K*- pi+ SVS; +0.0000002 K*- K+ SVS; +# +# K*-1(430) 3-body modes +0.000033 K_0*- pi+ PHSP; +0.0000002 K_0*- K+ PHSP; +# +# K*0(1680) 3-body modes +0.000001 K''*- pi+ SVS; +0.0000001 K''*- K+ SVS; +# +# +# Non-resonant 3-body left-overs +# Most modes are set at 1e-6 +# +# pi-pi+pi0: high mass + f0(400-1200) = (1+1)e-6 +####0402270.000002 pi- pi+ pi0 PHSP; +0.000017 pi- pi+ eta PHSP; +0.000001 pi- pi+ eta' PHSP; +# +# pi- pi+ anti-K0: +0.000013 pi- pi+ anti-K0 PHSP; +# +# K- pi+ pi0 +0.000002 K- pi+ pi0 PHSP; +0.000020 K- pi+ eta PHSP; +0.000001 K- pi+ eta' PHSP; +# +# pi- K+ K0. +# Both B0 and B0bar can decay to these => 0.5e-6 each +0.0000005 pi- K+ anti-K0 PHSP; +0.0000005 pi+ K- K0 PHSP; +# +# K- K+ anti-K0: total - phiKs = 25 - +0.0000205 K- K+ anti-K0 PHSP; +# +# K- K+ pi0 +0.000001 K- K+ pi0 PHSP; +0.000001 K- K+ eta PHSP; +0.000001 K- K+ eta' PHSP; +# +# pi0 anti-K0 K0 +0.000002 anti-K0 K0 pi0 PHSP; +0.000001 anti-K0 K0 eta PHSP; +0.000001 anti-K0 K0 eta' PHSP; +# +# pi0 pi0 anti-K0 +0.000002 anti-K0 pi0 pi0 PHSP; +0.000001 anti-K0 pi0 eta PHSP; +0.000001 anti-K0 pi0 eta' PHSP; +0.000001 anti-K0 eta eta PHSP; +0.000001 anti-K0 eta eta' PHSP; +0.000001 anti-K0 eta' eta' PHSP; +# +# anti-K0 K0 anti-K0: 8*BF(KsKsKs)~=48 (8 is a guess) +0.000048 anti-K0 K0 anti-K0 PHSP; +# +# pi0 pi0 pi0 +0.000001 pi0 pi0 pi0 PHSP; +0.000001 pi0 pi0 eta PHSP; +0.000001 pi0 pi0 eta' PHSP; +0.000001 pi0 eta eta PHSP; +0.000001 pi0 eta eta' PHSP; +# +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC +#--------------------------------------------------------------------------- +# +#4-body modes from Andrei Gritsan +#--- 4-body rho-rho, rho-pi-pi, pi-pi-pi-pi -------------------------- +0.0000011 rho0 rho0 SVV_CP alpha dm 1 1.0 0.0 1.7 0.0 1.0 0.0; +0.000025 rho+ rho- SVV_CP alpha dm 1 1.0 0.0 1.7 0.0 1.0 0.0; +0.000005 rho0 pi+ pi- PHSP; +0.000003 omega pi+ pi- PHSP; +0.000001 rho0 pi0 pi0 PHSP; +0.000001 omega pi0 pi0 PHSP; +0.0000005 rho0 pi0 eta PHSP; +0.0000002 rho0 eta eta PHSP; +0.0000002 rho0 pi0 eta' PHSP; +0.0000001 rho0 eta eta' PHSP; +0.0000005 omega pi0 eta PHSP; +0.0000002 omega eta eta PHSP; +0.0000002 omega pi0 eta' PHSP; +0.0000001 omega eta eta' PHSP; + +0.000010 rho- pi+ pi0 PHSP; +0.000005 rho- pi+ eta PHSP; +0.000010 rho+ pi- pi0 PHSP; +0.000005 rho+ pi- eta PHSP; +0.000010 pi+ pi- pi+ pi- PHSP; +0.000010 pi+ pi- pi0 pi0 PHSP; +0.000005 pi+ pi- eta pi0 PHSP; +0.000002 pi+ pi- eta eta PHSP; +0.000002 pi+ pi- eta' pi0 PHSP; +0.000001 pi+ pi- eta' eta PHSP; +0.0000165 a_1- pi+ SVS; +0.0000165 a_1+ pi- SVS; +0.000000 b_1- pi+ SVS; +0.000010 b_1+ pi- SVS; +0.000002 rho+ a_0- SVS; +0.000010 rho- a_0+ SVS; + +0.000001 f_0 pi+ pi- PHSP; +0.000001 f_0 pi0 pi0 PHSP; +0.000001 a_0- pi+ pi0 PHSP; +0.000001 a_00 pi0 pi0 PHSP; +0.000001 a_0+ pi- pi0 PHSP; +#--- 4-body rho-K*, rho-pi-K, K*-pi-pi, pi-pi-pi-K ------------------- +0.0000056 rho0 anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000010 rho+ K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000010 pi- pi+ anti-K*0 PHSP; +0.000010 pi+ pi0 K*- PHSP; +0.000005 pi+ eta K*- PHSP; +0.000002 pi+ eta' K*- PHSP; +0.000010 rho+ K- pi0 PHSP; +0.000005 rho+ K- eta PHSP; +0.000002 rho+ K- eta' PHSP; +0.000010 rho+ anti-K0 pi- PHSP; +0.000010 rho- anti-K0 pi+ PHSP; +0.000005 rho0 anti-K0 pi0 PHSP; +0.000002 rho0 anti-K0 eta PHSP; +0.000001 rho0 anti-K0 eta' PHSP; +0.000010 rho0 K- pi+ PHSP; +0.000005 omega anti-K0 pi0 PHSP; +0.000002 omega anti-K0 eta PHSP; +0.000001 omega anti-K0 eta' PHSP; +0.000005 omega K- pi+ PHSP; +0.000010 pi+ pi0 pi- anti-K0 PHSP; +0.000005 pi+ eta pi- anti-K0 PHSP; +0.000010 pi0 pi0 pi0 anti-K0 PHSP; +0.000005 pi0 pi0 eta anti-K0 PHSP; +0.000002 pi0 eta eta anti-K0 PHSP; +0.000002 pi0 pi0 eta' anti-K0 PHSP; +0.000001 pi0 eta eta' anti-K0 PHSP; +0.000010 pi+ pi- pi+ K- PHSP; +0.000010 pi0 pi0 pi+ K- PHSP; +0.000005 pi0 eta pi+ K- PHSP; +0.000002 eta eta pi+ K- PHSP; +0.000002 pi0 eta' pi+ K- PHSP; +0.000001 eta eta' pi+ K- PHSP; +0.000010 rho0 anti-K_0*0 PHSP; +0.000020 rho+ K_0*- PHSP; +0.000010 pi- pi+ anti-K_0*0 PHSP; +0.000010 pi0 pi0 anti-K_0*0 PHSP; +0.000010 pi+ pi0 K_0*- PHSP; +0.000002 anti-K*0 f_0 SVS; +0.000010 a_10 anti-K0 SVS; +0.000010 a_1+ K- SVS; +0.0000066 b_10 anti-K0 SVS; +0.000010 b_1+ K- SVS; +0.000005 anti-K*0 a_00 SVS; +0.000005 K*- a_0+ SVS; +#--- 4-body K*-K*, rho-K-K, K*-K-pi, phi-pi-pi, pi-pi-K-K ------------ +0.00000105 K*0 anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000001 K*+ K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.0000001 phi rho0 SVV_CP alpha dm 1 1.0 0.0 1.7 0.0 1.0 0.0; +0.0000001 phi pi- pi+ PHSP; +0.000001 K+ K- rho0 PHSP; +0.000001 K0 anti-K0 rho0 PHSP; +0.000001 K+ K- omega PHSP; +0.000001 K0 anti-K0 omega PHSP; +0.000001 K+ anti-K0 rho- PHSP; +0.000001 K- K0 rho+ PHSP; +0.000001 K+ K- pi- pi+ PHSP; +0.000001 K+ K- pi0 pi0 PHSP; +0.0000005 K+ K- pi0 eta PHSP; +0.0000002 K+ K- eta eta PHSP; +0.0000002 K+ K- pi0 eta' PHSP; +0.0000001 K+ K- eta eta' PHSP; +0.000001 K0 anti-K0 pi- pi+ PHSP; +0.000001 K0 anti-K0 pi0 pi0 PHSP; +0.0000005 K0 anti-K0 pi0 eta PHSP; +0.0000002 K0 anti-K0 eta eta PHSP; +0.0000002 K0 anti-K0 pi0 eta' PHSP; +0.0000001 K0 anti-K0 eta eta' PHSP; +0.000001 K*- K+ pi0 PHSP; +0.000001 K*+ K- pi0 PHSP; +0.000001 K0 anti-K*0 pi0 PHSP; +0.000001 K*0 anti-K0 pi0 PHSP; +0.000001 K- K*0 pi+ PHSP; +0.000001 K*- K0 pi+ PHSP; +0.000001 K+ anti-K*0 pi- PHSP; +0.000001 K*+ anti-K0 pi- PHSP; + +#--- 4-body phi-K*, phi-K-pi, K-K-K*, pi-K-K-K ----------------------- +0.0000095 phi anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000010 phi K- pi+ PHSP; +0.000010 phi anti-K0 pi0 PHSP; +0.000007 phi anti-K0 eta PHSP; +0.000010 K- K+ anti-K*0 PHSP; +0.000010 K- K*+ anti-K0 PHSP; +0.000010 K*- K+ anti-K0 PHSP; +0.000010 K+ K- K- pi+ PHSP; +0.000010 K+ K- anti-K0 pi0 PHSP; +0.000005 K+ K- anti-K0 eta PHSP; +0.000010 K0 anti-K0 anti-K0 pi0 PHSP; +0.000005 K0 anti-K0 anti-K0 eta PHSP; +0.0000046 phi anti-K_0*0 PHSP; +0.000010 K- K+ anti-K_0*0 PHSP; +0.000010 K- K_0*+ anti-K0 PHSP; +0.000010 K_0*- K+ anti-K0 PHSP; +0.000002 phi anti-K'_10 PHSP; +0.000002 K- K+ anti-K'_10 PHSP; +#--- 4-body phi-phi, phi-K-K, K-K-K-K -------------------------------- +0.0000001 phi phi SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.0000001 phi K+ K- PHSP; +0.0000001 phi K0 anti-K0 PHSP; +0.0000001 K+ K- K+ K- PHSP; +0.0000001 K0 anti-K0 K+ K- PHSP; +0.0000001 K0 anti-K0 K0 anti-K0 PHSP; +#5-body modes from Jim Smith - 1/30/05 +#--- 5-body rho-rho-pi, rho-pi-pi-pi, pi-pi-pi-pi-pi ------------------- +0.000010 rho0 rho0 pi0 PHSP; +0.000005 rho0 rho0 eta PHSP; +0.000002 rho0 rho0 eta' PHSP; +0.000010 omega rho0 pi0 PHSP; +0.000005 omega rho0 eta PHSP; +0.000002 omega rho0 eta' PHSP; +0.000010 rho+ rho- pi0 PHSP; +0.000005 rho+ rho- eta PHSP; +0.000002 rho+ rho- eta' PHSP; +0.000010 rho0 rho- pi+ PHSP; +0.0000066 rho0 rho+ pi- PHSP; +0.000010 omega rho- pi+ PHSP; +0.0000066 omega rho+ pi- PHSP; +0.000002 rho0 pi+ pi- pi0 PHSP; +0.000001 rho0 pi+ pi- eta PHSP; +0.000001 rho0 pi+ pi- eta' PHSP; +0.000002 rho0 pi0 pi0 pi0 PHSP; +0.000001 rho0 pi0 eta pi0 PHSP; +0.000001 rho0 pi0 eta' pi0 PHSP; +0.000002 omega pi+ pi- pi0 PHSP; +0.000001 omega pi+ pi- eta PHSP; +0.000001 omega pi+ pi- eta' PHSP; +0.000002 omega pi0 pi0 pi0 PHSP; +0.000001 omega pi0 eta pi0 PHSP; +0.000001 omega pi0 eta' pi0 PHSP; + +0.000002 rho- pi+ pi+ pi- PHSP; +0.000002 rho- pi+ pi0 pi0 PHSP; +0.000001 rho- pi+ pi0 eta PHSP; +0.000001 rho- pi+ pi0 eta' PHSP; +0.000002 rho+ pi- pi+ pi- PHSP; +0.000002 rho+ pi- pi0 pi0 PHSP; +0.000001 rho+ pi- pi0 eta PHSP; +0.000001 rho+ pi- pi0 eta' PHSP; +0.000001 pi+ pi- pi+ pi- pi0 PHSP; +0.0000005 pi+ pi- pi+ pi- eta PHSP; +0.0000002 pi+ pi- pi+ pi- eta' PHSP; +0.000001 pi+ pi- pi0 pi0 pi0 PHSP; +0.0000005 pi+ pi- pi0 pi0 eta PHSP; +0.0000002 pi+ pi- pi0 pi0 eta' PHSP; +0.0000005 pi0 pi0 pi0 pi0 pi0 PHSP; +0.0000002 pi0 pi0 pi0 pi0 eta PHSP; +0.0000001 pi0 pi0 pi0 pi0 eta' PHSP; + +0.000010 a_1- rho+ PHSP; +0.000010 a_1+ rho- PHSP; +0.000010 a_10 rho0 PHSP; +0.000010 a_10 omega PHSP; +0.000010 a_1- pi+ pi0 PHSP; +0.000005 a_1- pi+ eta PHSP; +0.000002 a_1- pi+ eta' PHSP; +0.000010 a_10 pi+ pi- PHSP; +0.000010 a_10 pi0 pi0 PHSP; +0.000005 a_10 pi0 eta PHSP; +0.000002 a_10 pi0 eta' PHSP; +0.000010 a_1+ pi- pi0 PHSP; +0.000005 a_1+ pi- eta PHSP; +0.000002 a_1+ pi- eta' PHSP; + +0.000010 rho- f_0 pi+ PHSP; +0.000010 rho+ f_0 pi- PHSP; +0.000010 rho0 f_0 pi0 PHSP; +0.000005 rho0 f_0 eta PHSP; +0.000002 rho0 f_0 eta' PHSP; +0.000010 omega f_0 pi0 PHSP; + +0.000010 rho- a_00 pi+ PHSP; +0.000010 rho- a_0+ pi0 PHSP; +0.000005 rho- a_0+ eta PHSP; +0.000002 rho- a_0+ eta' PHSP; + +0.000010 rho0 a_0- pi+ PHSP; +0.000010 rho0 a_0+ pi- PHSP; +0.000010 rho0 a_00 pi0 PHSP; +0.000005 rho0 a_00 eta PHSP; +0.000002 rho0 a_00 eta' PHSP; +0.000010 rho+ a_00 pi- PHSP; +0.000010 rho+ a_0- pi0 PHSP; +0.000005 rho+ a_0- eta PHSP; +0.000002 rho+ a_0- eta' PHSP; +0.000002 f_0 pi+ pi- pi0 PHSP; +0.000001 f_0 pi+ pi- eta PHSP; +0.000001 f_0 pi+ pi- eta' PHSP; +0.000002 f_0 pi0 pi0 pi0 PHSP; +0.000001 f_0 pi0 pi0 eta PHSP; +0.000001 f_0 pi0 pi0 eta' PHSP; +0.000001 a_00 pi+ pi- pi0 PHSP; +0.000001 a_00 pi0 pi0 pi0 PHSP; + +0.000001 a_0- pi+ pi+ pi- PHSP; +0.000001 a_0- pi+ pi0 pi0 PHSP; +0.000001 a_0+ pi- pi+ pi- PHSP; +0.000001 a_0+ pi- pi0 pi0 PHSP; +#--- 5-body rho-K*pi, rho-2pi-K, K*-3pi, 4pi-K ------------------- +0.000010 rho0 K*- pi+ PHSP; +0.000010 rho+ K*- pi0 PHSP; +0.000005 rho+ K*- eta PHSP; +0.000002 rho+ K*- eta' PHSP; +0.000010 rho0 anti-K*0 pi0 PHSP; +0.000005 rho0 anti-K*0 eta PHSP; +0.000002 rho0 anti-K*0 eta' PHSP; + +0.000010 rho+ anti-K*0 pi- PHSP; +0.000010 rho- anti-K*0 pi+ PHSP; +0.000010 omega K*- pi+ PHSP; +0.000010 omega anti-K*0 pi0 PHSP; +0.000005 omega anti-K*0 eta PHSP; +0.000002 omega anti-K*0 eta' PHSP; +0.000010 pi+ pi- K*- pi+ PHSP; +0.000010 pi+ pi0 K*- pi0 PHSP; +0.000005 pi+ pi0 K*- eta PHSP; +0.000002 pi+ pi0 K*- eta' PHSP; +0.000010 pi+ pi- anti-K*0 pi0 PHSP; +0.000005 pi+ pi- anti-K*0 eta PHSP; +0.000002 pi+ pi- anti-K*0 eta' PHSP; +0.000010 pi0 pi0 anti-K*0 pi0 PHSP; +0.000005 pi0 pi0 anti-K*0 eta PHSP; +0.000002 pi0 pi0 anti-K*0 eta' PHSP; +0.000010 rho- K- pi+ pi+ PHSP; +0.000010 rho0 K- pi+ pi0 PHSP; +0.000005 rho0 K- pi+ eta PHSP; +0.000002 rho0 K- pi+ eta' PHSP; +0.000010 rho+ K- pi+ pi- PHSP; +0.000010 rho+ K- pi0 pi0 PHSP; +0.000005 rho+ K- pi0 eta PHSP; +0.000002 rho+ K- pi0 eta' PHSP; + +0.000010 rho0 anti-K0 pi+ pi- PHSP; +0.000010 rho0 anti-K0 pi0 pi0 PHSP; +0.000005 rho0 anti-K0 pi0 eta PHSP; +0.000002 rho0 anti-K0 pi0 eta' PHSP; +0.000010 rho- anti-K0 pi+ pi0 PHSP; +0.000005 rho- anti-K0 pi+ eta PHSP; +0.000002 rho- anti-K0 pi+ eta' PHSP; +0.000010 rho+ anti-K0 pi- pi0 PHSP; +0.000005 rho+ anti-K0 pi- eta PHSP; +0.000002 rho+ anti-K0 pi- eta' PHSP; +0.000010 omega K- pi+ pi0 PHSP; +0.000005 omega K- pi+ eta PHSP; +0.000002 omega K- pi+ eta' PHSP; +0.000010 omega anti-K0 pi+ pi- PHSP; +0.000010 omega anti-K0 pi0 pi0 PHSP; +0.000005 omega anti-K0 pi0 eta PHSP; +0.000002 omega anti-K0 pi0 eta' PHSP; +0.000002 pi+ pi- pi+ K- pi0 PHSP; +0.000001 pi+ pi- pi+ K- eta PHSP; +0.000001 pi+ pi- pi+ K- eta' PHSP; +0.000002 pi0 pi0 pi+ K- pi0 PHSP; +0.000001 pi0 pi0 pi+ K- eta PHSP; +0.000001 pi0 pi0 pi+ K- eta' PHSP; +0.000002 pi+ pi- pi+ anti-K0 pi- PHSP; +0.000002 pi+ pi- pi0 anti-K0 pi0 PHSP; +0.000001 pi+ pi- pi0 anti-K0 eta PHSP; +0.000001 pi+ pi- pi0 anti-K0 eta' PHSP; +0.000002 pi0 pi0 pi0 anti-K0 pi0 PHSP; +0.000001 pi0 pi0 pi0 anti-K0 eta PHSP; +0.000001 pi0 pi0 pi0 anti-K0 eta' PHSP; + +0.000010 rho- anti-K_0*0 pi+ PHSP; +0.000010 rho0 anti-K_0*0 pi0 PHSP; +0.000005 rho0 anti-K_0*0 eta PHSP; +0.000002 rho0 anti-K_0*0 eta' PHSP; +0.000010 rho+ anti-K_0*0 pi- PHSP; +0.000010 rho+ K_0*- pi0 PHSP; +0.000005 rho+ K_0*- eta PHSP; +0.000002 rho+ K_0*- eta' PHSP; +0.000010 rho0 K_0*- pi+ PHSP; +0.000010 pi+ pi- K_0*- pi+ PHSP; +0.000010 pi+ pi0 K_0*- pi0 PHSP; +0.000005 pi+ pi0 K_0*- eta PHSP; +0.000002 pi+ pi0 K_0*- eta' PHSP; +0.000010 pi+ pi- anti-K_0*0 pi0 PHSP; +0.000005 pi+ pi- anti-K_0*0 eta PHSP; +0.000002 pi+ pi- anti-K_0*0 eta' PHSP; +0.000010 pi0 pi0 anti-K_0*0 pi0 PHSP; +0.000005 pi0 pi0 anti-K_0*0 eta PHSP; +0.000005 pi0 pi0 anti-K_0*0 eta' PHSP; +0.000010 K*- f_0 pi+ PHSP; +0.000010 anti-K*0 f_0 pi0 PHSP; +0.000005 anti-K*0 f_0 eta PHSP; +0.000002 anti-K*0 f_0 eta' PHSP; +0.000010 a_1- anti-K0 pi+ PHSP; +0.000020 a_10 anti-K*0 PHSP; +0.000010 a_10 K- pi+ PHSP; +0.000010 a_10 anti-K0 pi0 PHSP; +0.000020 a_1+ K*- PHSP; +0.000010 a_1+ K- pi0 PHSP; +0.000010 a_1+ anti-K0 pi- PHSP; +0.000005 K*- a_00 pi+ PHSP; +0.000005 K*- a_0+ pi0 PHSP; +0.000002 K*- a_0+ eta PHSP; +0.000001 K*- a_0+ eta' PHSP; +0.000005 anti-K*0 a_0+ pi- PHSP; +0.000005 anti-K*0 a_0- pi+ PHSP; +0.000005 anti-K*0 a_00 pi0 PHSP; +0.000002 anti-K*0 a_00 eta PHSP; +0.000001 anti-K*0 a_00 eta' PHSP; +#--- 5-body K*-K*pi,rho-K-Kpi, K*-K-2pi, phi-3pi, 3pi-K-K ------------ +0.000001 K*+ anti-K*0 pi- PHSP; +0.000001 K*- K*0 pi+ PHSP; + +0.000001 K*- K*+ pi0 PHSP; +0.0000005 K*- K*+ eta PHSP; +0.0000002 K*- K*+ eta' PHSP; +0.000001 K*0 anti-K*0 pi0 PHSP; +0.0000005 K*0 anti-K*0 eta PHSP; +0.0000002 K*0 anti-K*0 eta' PHSP; + +0.000001 phi rho- pi+ PHSP; +0.000001 phi rho+ pi- PHSP; +0.000001 phi rho0 pi0 PHSP; +0.0000005 phi rho0 eta PHSP; +0.0000002 phi rho0 eta' PHSP; +0.000001 phi omega pi0 PHSP; +0.000001 phi f_0 pi0 PHSP; +0.000001 phi pi+ pi- pi0 PHSP; +0.0000005 phi pi+ pi- eta PHSP; +0.0000002 phi pi+ pi- eta' PHSP; +0.000001 phi pi0 pi0 pi0 PHSP; +0.0000005 phi pi0 pi0 eta PHSP; +0.0000002 phi pi0 pi0 eta' PHSP; +0.000001 K0 K- rho0 pi+ PHSP; +0.000001 K0 K- rho+ pi0 PHSP; +0.0000005 K0 K- rho+ eta PHSP; +0.0000002 K0 K- rho+ eta' PHSP; +0.000001 K0 K- omega pi+ PHSP; +0.000001 K0 K- f_0 pi+ PHSP; +0.000001 K+ K- rho+ pi- PHSP; +0.000001 K+ K- rho- pi+ PHSP; +0.000001 K+ K- rho0 pi0 PHSP; +0.0000005 K+ K- rho0 eta PHSP; +0.0000002 K+ K- rho0 eta' PHSP; +0.000001 K+ K- omega pi0 PHSP; +0.0000005 K+ K- omega eta PHSP; +0.0000002 K+ K- omega eta' PHSP; +0.000001 K+ K- f_0 pi0 PHSP; +0.000001 K0 anti-K0 rho+ pi- PHSP; +0.000001 K0 anti-K0 rho- pi+ PHSP; +0.000001 K0 anti-K0 rho0 pi0 PHSP; +0.0000005 K0 anti-K0 rho0 eta PHSP; +0.0000002 K0 anti-K0 rho0 eta' PHSP; +0.000001 K0 anti-K0 omega pi0 PHSP; +0.000001 K0 anti-K0 f_0 pi0 PHSP; +0.000001 anti-K0 K+ rho0 pi- PHSP; +0.000001 anti-K0 K+ rho- pi0 PHSP; +0.0000005 anti-K0 K+ rho- eta PHSP; +0.0000002 anti-K0 K+ rho- eta' PHSP; +0.000001 anti-K0 K+ omega pi- PHSP; +0.000001 anti-K0 K+ f_0 pi- PHSP; +0.0000002 anti-K0 K+ pi- pi+ pi- PHSP; +0.0000002 anti-K0 K+ pi- pi0 pi0 PHSP; +0.0000001 anti-K0 K+ pi- pi0 eta PHSP; +0.0000001 anti-K0 K+ pi- pi0 eta' PHSP; + +0.0000002 K+ K- pi+ pi- pi0 PHSP; +0.0000001 K+ K- pi+ pi- eta PHSP; +0.0000001 K+ K- pi+ pi- eta' PHSP; +0.0000002 K+ K- pi0 pi0 pi0 PHSP; +0.0000001 K+ K- pi0 pi0 eta PHSP; +0.0000001 K+ K- pi0 pi0 eta' PHSP; +0.0000002 K0 anti-K0 pi+ pi- pi0 PHSP; +0.0000001 K0 anti-K0 pi+ pi- eta PHSP; +0.0000001 K0 anti-K0 pi+ pi- eta' PHSP; +0.0000002 K0 anti-K0 pi0 pi0 pi0 PHSP; +0.0000001 K0 anti-K0 pi0 pi0 eta PHSP; +0.0000001 K0 anti-K0 pi0 pi0 eta' PHSP; +0.0000002 K0 K- pi+ pi+ pi- PHSP; +0.0000002 K0 K- pi+ pi0 pi0 PHSP; +0.0000001 K0 K- pi+ pi0 eta PHSP; +0.0000001 K0 K- pi+ pi0 eta' PHSP; + +0.000001 K+ anti-K*0 pi- pi0 PHSP; +0.0000005 K+ anti-K*0 pi- eta PHSP; +0.0000002 K+ anti-K*0 pi- eta' PHSP; +0.000001 K*+ anti-K0 pi- pi0 PHSP; +0.0000005 K*+ anti-K0 pi- eta PHSP; +0.0000002 K*+ anti-K0 pi- eta' PHSP; +0.000001 K*- K+ pi+ pi- PHSP; +0.000001 K*- K+ pi0 pi0 PHSP; +0.0000005 K*- K+ pi0 eta PHSP; +0.0000002 K*- K+ pi0 eta' PHSP; +0.000001 K*+ K- pi+ pi- PHSP; +0.000001 K*+ K- pi0 pi0 PHSP; +0.0000005 K*+ K- pi0 eta PHSP; +0.0000002 K*+ K- pi0 eta' PHSP; + +0.000001 K0 anti-K*0 pi+ pi- PHSP; +0.000001 K0 anti-K*0 pi0 pi0 PHSP; +0.0000005 K0 anti-K*0 pi0 eta PHSP; +0.0000002 K0 anti-K*0 pi0 eta' PHSP; +0.000001 K*0 anti-K0 pi+ pi- PHSP; +0.000001 K*0 anti-K0 pi0 pi0 PHSP; +0.0000005 K*0 anti-K0 pi0 eta PHSP; +0.0000002 K*0 anti-K0 pi0 eta' PHSP; +0.000001 K*0 K- pi+ pi0 PHSP; +0.0000005 K*0 K- pi+ eta PHSP; +0.0000002 K*0 K- pi+ eta' PHSP; +0.000001 K*- K0 pi+ pi0 PHSP; +0.0000005 K*- K0 pi+ eta PHSP; +0.0000002 K*- K0 pi+ eta' PHSP; + +#--- 5-body phi-K*-pi, phi-K-2pi, K-K-K*-pi, 2pi-K-K-K -------------------- +0.000010 phi K*- pi+ PHSP; +0.000010 phi anti-K*0 pi0 PHSP; +0.000005 phi anti-K*0 eta PHSP; +0.000002 phi anti-K*0 eta' PHSP; +0.000010 phi K- rho+ PHSP; +0.000010 phi anti-K0 rho0 PHSP; +0.000010 phi anti-K0 omega PHSP; +0.000010 phi anti-K0 f_0 PHSP; +0.000010 phi anti-K0 pi+ pi- PHSP; +0.000010 phi anti-K0 pi0 pi0 PHSP; +0.000005 phi anti-K0 pi0 eta PHSP; +0.000002 phi anti-K0 pi0 eta' PHSP; +0.000010 phi K- pi+ pi0 PHSP; +0.000005 phi K- pi+ eta PHSP; +0.000002 phi K- pi+ eta' PHSP; +0.000010 K+ K- K*- pi+ PHSP; +0.000010 K- K*+ K- pi+ PHSP; + +0.000010 K- K0 anti-K*0 pi+ PHSP; +0.000010 K- K*0 anti-K0 pi+ PHSP; +0.000010 K0 K*- anti-K0 pi+ PHSP; +0.000010 K- K+ K- rho+ PHSP; +0.000010 K- K+ anti-K0 rho0 PHSP; +0.000010 K- K+ anti-K0 omega PHSP; +0.000010 K- K+ anti-K0 f_0 PHSP; +0.000010 K+ K- K- pi+ pi0 PHSP; +0.000005 K+ K- K- pi+ eta PHSP; +0.000002 K+ K- K- pi+ eta' PHSP; +0.000010 K+ K- anti-K0 pi+ pi- PHSP; +0.000010 K+ K- anti-K0 pi0 pi0 PHSP; +0.000005 K+ K- anti-K0 pi0 eta PHSP; +0.000005 K+ K- anti-K0 pi0 eta' PHSP; +0.000010 K0 anti-K0 K- pi+ pi0 PHSP; +0.000005 K0 anti-K0 K- pi+ eta PHSP; +0.000002 K0 anti-K0 K- pi+ eta' PHSP; +0.000010 K0 anti-K0 anti-K0 pi+ pi- PHSP; +0.000010 K0 anti-K0 anti-K0 pi0 pi0 PHSP; +0.000005 K0 anti-K0 anti-K0 pi0 eta PHSP; +0.000002 K0 anti-K0 anti-K0 pi0 eta' PHSP; +0.000010 phi K_0*- pi+ PHSP; +0.000010 phi anti-K_0*0 pi0 PHSP; +0.000010 K+ K- K_0*- pi+ PHSP; +0.000010 K+ K- anti-K_0*0 pi0 PHSP; +0.000005 K+ K- anti-K_0*0 eta PHSP; +0.000002 K+ K- anti-K_0*0 eta' PHSP; +0.000010 K- K- K_0*+ pi+ PHSP; +0.000010 K- anti-K_0*0 K0 pi+ PHSP; +0.000010 K- K_0*0 anti-K0 pi+ PHSP; +0.000010 K0 anti-K0 K_0*- pi+ PHSP; +0.000010 K0 anti-K0 anti-K_0*0 pi0 PHSP; +0.000005 K0 anti-K0 anti-K_0*0 eta PHSP; +0.000002 K0 anti-K0 anti-K_0*0 eta' PHSP; +0.000010 anti-K0 anti-K0 K_0*0 pi0 PHSP; +0.000005 anti-K0 anti-K0 K_0*0 eta PHSP; +0.000002 anti-K0 anti-K0 K_0*0 eta' PHSP; +0.000002 phi K'_1- pi+ PHSP; +0.000002 phi anti-K'_10 pi0 PHSP; +0.000001 phi anti-K'_10 eta PHSP; +0.000001 phi anti-K'_10 eta' PHSP; +0.000002 K- K+ K'_1- pi+ PHSP; +0.000002 K- K+ anti-K'_10 pi0 PHSP; +0.000001 K- K+ anti-K'_10 eta PHSP; +0.000001 K- K+ anti-K'_10 eta' PHSP; +0.000002 K- K- K'_1+ pi+ PHSP; +0.000002 K0 anti-K0 anti-K'_10 pi0 PHSP; +0.000001 K0 anti-K0 anti-K'_10 eta PHSP; +0.000001 K0 anti-K0 anti-K'_10 eta' PHSP; +0.000002 anti-K0 anti-K0 K'_10 pi0 PHSP; +0.000001 anti-K0 anti-K0 K'_10 eta PHSP; +0.000001 anti-K0 anti-K0 K'_10 eta' PHSP; +#--- 5-body phi-phi-K, phi-phi-pi, phi-3K, phi-K-K-pi, 5K, 4K-pi ------------ +0.0000041 phi phi anti-K0 PHSP; +0.0000001 phi phi pi0 PHSP; +0.000001 phi K+ K- anti-K0 PHSP; +0.000001 phi K0 anti-K0 anti-K0 PHSP; +0.0000001 phi K+ K- pi0 PHSP; +0.0000001 phi K0 anti-K0 pi0 PHSP; +0.0000001 phi anti-K0 K+ pi- PHSP; +0.0000001 phi K0 K- pi+ PHSP; +0.0000001 K+ K- K+ K- anti-K0 PHSP; +0.0000001 K0 anti-K0 K+ K- anti-K0 PHSP; +0.0000001 K+ K- K+ K- pi0 PHSP; +0.0000001 K+ K- K0 anti-K0 pi0 PHSP; +0.0000001 K+ K- K+ anti-K0 pi- PHSP; +0.0000001 K+ K- K0 K- pi+ PHSP; +0.0000001 K0 anti-K0 K0 anti-K0 pi0 PHSP; +0.0000001 K0 anti-K0 anti-K0 K+ pi- PHSP; +0.0000001 K0 anti-K0 K0 K- pi+ PHSP; +#--- 6-body phi-phi-K*, phi-3Kpi, phi-K-K-2pi ------------ +0.000003 phi phi anti-K*0 PHSP; +0.000001 phi K+ K- anti-K*0 PHSP; +0.000001 phi K0 anti-K0 anti-K*0 PHSP; +0.000001 phi anti-K0 K- K*+ PHSP; +0.000001 phi anti-K0 anti-K0 K*0 PHSP; +0.0000001 phi K+ K- K- pi+ PHSP; +0.0000001 phi K+ K- anti-K0 pi0 PHSP; +0.0000001 phi K0 anti-K0 K- pi+ PHSP; +0.0000001 phi K0 anti-K0 anti-K0 pi0 PHSP; +#--- 6-body a1a1 ------------ +0.000050 a_10 a_10 PHSP; +0.000050 a_1+ a_1- PHSP; +# +# B -> cc= s +# +# Charmonium states - updated from Lange's recommendations (august 23,2000) +# Based on new BABAR results I'm making the following changes (Lange, March 13, 2001 +# J/psi K0 was 10, now 9 x 10^-4 +# J/psi pi0 was 2.5, now 2.0 x 10^-4 +# J/psi Kstar was 15, now 13 +# Fix chic1 KS CP eigenstate +# adding J/psi rho and omega - for lack of better thing will use the Kstar helicity amplitudes. +# Psi2sKs 30 ->31 +# chic1 Kstar: 12 ->6 + + +0.000436 J/psi K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.000436 J/psi K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.0002215 J/psi K*S SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.0002215 J/psi K*L SVV_CP beta dm -1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000886 J/psi anti-K*0T SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.0000205 J/psi pi0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000016 J/psi rho0 SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000030 J/psi omega SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; + +0.0012 J/psi K- pi+ PHSP; +0.0001 J/psi anti-K0 pi0 PHSP; +#rl0.0007 J/psi anti-K0 pi+ pi- PHSP; +#rl0.00035 J/psi anti-K0 pi0 pi0 PHSP; +#rl0.00035 J/psi K- pi+ pi0 PHSP; +0.0013 J/psi anti-K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi anti-K'_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi anti-K_2*0 PHSP; +0.000094 J/psi phi anti-K0 PHSP; +# +0.00031 psi(2S) K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.00031 psi(2S) K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00012 psi(2S) K*S SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.00012 psi(2S) K*L SVV_CP beta dm -1 Aplus phAplus Azero phAzero Aminus phAminus; +0.00048 psi(2S) anti-K*0T SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; + +0.0004 psi(2S) K- pi+ PHSP; +0.0002 psi(2S) anti-K0 pi0 PHSP; +0.0002 psi(2S) anti-K0 pi+ pi- PHSP; +0.0001 psi(2S) anti-K0 pi0 pi0 PHSP; +0.0001 psi(2S) K- pi+ pi0 PHSP; +0.0004 psi(2S) anti-K_10 PHSP; + +# +0.0005 eta_c K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.0005 eta_c K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00027 K*S eta_c SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.00027 K*L eta_c SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00108 anti-K*0T eta_c SVS; +0.0002 eta_c K- pi+ PHSP; +0.0001 eta_c anti-K0 pi0 PHSP; +0.0002 eta_c anti-K0 pi+ pi- PHSP; +0.0001 eta_c anti-K0 pi0 pi0 PHSP; +0.0001 eta_c K- pi+ pi0 PHSP; +# +0.00024 eta_c(2S) K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.00024 eta_c(2S) K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00011 K*S eta_c(2S) SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.00011 K*L eta_c(2S) SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00044 anti-K*0T eta_c(2S) SVS; +0.00008 eta_c(2S) K- pi+ PHSP; +0.00005 eta_c(2S) anti-K0 pi0 PHSP; +0.00008 eta_c(2S) anti-K0 pi+ pi- PHSP; +0.00005 eta_c(2S) anti-K0 pi0 pi0 PHSP; +0.00005 eta_c(2S) K- pi+ pi0 PHSP; +# +0.00005 chi_c0 K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00005 chi_c0 K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.00005 K*S chi_c0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00005 K*L chi_c0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.0002 anti-K*0T chi_c0 SVS; +0.0002 chi_c0 K- pi+ PHSP; +0.0001 chi_c0 anti-K0 pi0 PHSP; +0.0002 chi_c0 anti-K0 pi+ pi- PHSP; +0.0001 chi_c0 anti-K0 pi0 pi0 PHSP; +0.0001 chi_c0 K- pi+ pi0 PHSP; +# +0.00020 chi_c1 K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.00020 chi_c1 K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000053 K*S chi_c1 SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000053 K*L chi_c1 SVV_CP beta dm -1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000213 chi_c1 anti-K*0T SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.0004 chi_c1 K- pi+ PHSP; +0.0002 chi_c1 anti-K0 pi0 PHSP; +0.0004 chi_c1 anti-K0 pi+ pi- PHSP; +0.0002 chi_c1 anti-K0 pi0 pi0 PHSP; +0.0002 chi_c1 K- pi+ pi0 PHSP; +# +0.00001 chi_c2 K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00001 chi_c2 K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.000005 K*S chi_c2 PHSP; +0.000005 K*L chi_c2 PHSP; +0.00002 chi_c2 anti-K*0T PHSP; +0.0002 chi_c2 K- pi+ PHSP; +0.0001 chi_c2 anti-K0 pi0 PHSP; +0.0002 chi_c2 anti-K0 pi+ pi- PHSP; +0.0001 chi_c2 anti-K0 pi0 pi0 PHSP; +0.0001 chi_c2 K- pi+ pi0 PHSP; +# +0.00024 psi(3770) K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.00024 psi(3770) K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00008 psi(3770) K*S SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.00008 psi(3770) K*L SVV_CP beta dm -1 Aplus phAplus Azero phAzero Aminus phAminus; +0.00032 psi(3770) anti-K*0T SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.00014 psi(3770) K- pi+ PHSP; +0.00014 psi(3770) anti-K0 pi0 PHSP; +0.00014 psi(3770) anti-K0 pi+ pi- PHSP; +0.00007 psi(3770) anti-K0 pi0 pi0 PHSP; +0.00007 psi(3770) K- pi+ pi0 PHSP; +0.00029 psi(3770) anti-K_10 PHSP; +# + + + +# b-> c (dc=) +# +0.00023 D- D+ SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +# See Ref [B1] for the next 3: +0.000610 D*+ D- SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000610 D*- D+ SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00082 D*+ D*- SVV_CP beta dm 1 0.56 0.0 0.96 0.0 0.47 0.0; + +# +# b -> c (sc=) --> D Ds X Sum = 10% +# +0.0065 D+ D_s- PHSP; +0.0080 D*+ D_s- SVS; +0.0074 D_s*- D+ SVS; +0.0177 D*+ D_s*- SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; +0.0006 D'_1+ D_s- SVS; +0.0012 D'_1+ D_s*- SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; +0.0012 D_1+ D_s- SVS; +0.0024 D_1+ D_s*- SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; +0.0042 D_2*+ D_s- STS; +0.0040 D_2*+ D_s*- PHSP; +# +0.0018 D_s- D+ pi0 PHSP; +0.0037 D_s- D0 pi+ PHSP; +0.0018 D_s*- D+ pi0 PHSP; +0.0037 D_s*- D0 pi+ PHSP; +0.0030 D_s- D+ pi+ pi- PHSP; +0.0022 D_s- D+ pi0 pi0 PHSP; +0.0022 D_s- D0 pi+ pi0 PHSP; +0.0030 D_s*- D+ pi+ pi- PHSP; +0.0022 D_s*- D+ pi0 pi0 PHSP; +0.0022 D_s*- D0 pi+ pi0 PHSP; +# +# b -> c (sc=) --> D D= K X Sum = 8% +# Update: Ref. [B1] +# +# External W-emission amplitude +0.0017 D+ anti-D0 K- PHSP; +0.0046 D+ anti-D*0 K- PHSP; +0.0031 D*+ anti-D0 K- PHSP; +0.0118 D*+ anti-D*0 K- PHSP; +# External+internal W-emission amplitude +0.0015 D+ D- anti-K0 PHSP; +0.0018 D*+ D- anti-K0 PHSP; +0.0047 D+ D*- anti-K0 PHSP; +0.0088 D*+ D*- anti-K0 PHSP; +# Internal W-emission amplitude (color suppressed modes) +0.0005 D0 anti-D0 anti-K0 PHSP; + +0.0005 D0 anti-D*0 anti-K0 PHSP; +0.0005 D*0 anti-D0 anti-K0 PHSP; +0.0005 D*0 anti-D*0 anti-K0 PHSP; + +0.0025 D+ anti-D0 K*- PHSP; +0.0025 D*+ anti-D0 K*- PHSP; +0.0025 D+ anti-D*0 K*- PHSP; +0.0050 D*+ anti-D*0 K*- PHSP; +# +0.0025 D+ D- anti-K*0 PHSP; +0.0025 D*+ D- anti-K*0 PHSP; +0.0025 D+ D*- anti-K*0 PHSP; +0.0050 D*+ D*- anti-K*0 PHSP; +# +0.0005 anti-D0 D0 anti-K*0 PHSP; +0.0005 anti-D0 D*0 anti-K*0 PHSP; +0.0005 anti-D*0 D0 anti-K*0 PHSP; +0.0010 anti-D*0 D*0 anti-K*0 PHSP; +# +# +# B -> D(*) X Exclusive modes +# +0.00276 D*+ pi- SVS; +0.00268 D+ pi- PHSP; +0.0075 rho- D+ SVS; +# +# D* rho HELAMP parameters taken from ICHEP 98-852. +0.0068 rho- D*+ SVV_HELAMP 0.152 1.47 0.936 0 0.317 0.19; +0.0005 D+ pi- pi0 PHSP; +0.0082 D*+ pi- pi0 PHSP; +0.0005 D0 pi+ pi- PHSP; +0.00062 D*0 pi+ pi- PHSP; +0.0005 D*0 pi0 pi0 PHSP; +# +# D a1 updated Ref. [B1] +0.00834 a_1- D+ SVS; +0.0011 D+ rho0 pi- PHSP; +0.0011 D+ rho- pi0 PHSP; +0.0039 D+ pi+ pi- pi- PHSP; +0.0010 D+ pi0 pi- pi0 PHSP; +0.0010 D0 pi+ pi- pi0 PHSP; +0.0001 D0 pi0 pi0 pi0 PHSP; +# +# SVV_HELAMP for D* a1 taken from factorization. Recommandation +# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: +# updated Ref. [B1] +# October 26, 2004 Lange update +0.0120 D*+ a_1- SVV_HELAMP 0.200 0.0 0.866 0.0 0.458 0.0; +# +0.0025 D*+ rho0 pi- PHSP; +0.0010 D*+ rho- pi0 PHSP; +0.0000 D*+ pi+ pi- pi- PHSP; +0.0010 D*+ pi0 pi- pi0 PHSP; +0.0010 D*0 pi+ pi- pi0 PHSP; +0.0001 D*0 pi0 pi0 pi0 PHSP; +# +# B->D** pi and D** rho, recommendation +# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html +#further updates October 26, 2004 - Lange +# October 26, 2004 Lange update +# +0.0006 D_1+ pi- SVS; +0.0001 D'_1+ pi- SVS; +0.0002 D_0*+ pi- PHSP; +0.0009 D_2*+ pi- STS; +0.0004 D_1+ rho- PHSP; +0.0013 D'_1+ rho- PHSP; +0.0022 D_2*+ rho- PHSP; +# +# +# B->DK, recommendation +# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html: +# update: Ref. [B1]: +# +0.00021 D*+ K- SVS; +0.00020 D+ K- PHSP; +0.00033 D*+ K*- SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; +0.00045 K*- D+ SVS; +#more DK modes - October 26, 2004 -Lange +0.00004 D*0 K0 SVS; +0.00004 D0 K0 PHSP; +0.000042 anti-K*0 D0 SVS; +0.00001 anti-K*0 anti-D0 SVS; +0.00004 D*0 anti-K*0 SVV_HELAMP 1. 0. 1. 0. 1. 0.; +0.00001 anti-D*0 anti-K*0 SVV_HELAMP 1. 0. 1. 0. 1. 0.; +# +# +# Color-suppressed modes. Br's are expectations from +# Phys. Rev. D57 (1998), 5363-5369, except for the eta' modes, which are set +# equal to the eta modes. SVV_HELAMP parameters are the same as in D*0 rho-, +# with phases set to 0. Recommendation http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/169.html: +# update: See Ref [B1]: +# further update October 26, 2004 Lange +# +0.000261 D0 pi0 PHSP; +0.00017 D*0 pi0 SVS; +# +0.00029 rho0 D0 SVS; +0.00029 D*0 rho0 SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; +# +0.000202 D0 eta PHSP; +0.00018 D*0 eta SVS; +# +0.000125 D0 eta' PHSP; +0.000123 D*0 eta' SVS; +# +0.000259 omega D0 SVS; +0.00027 D*0 omega SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; +# +# +#October 26, 2004 - Lange +0.00097 D_s0*- D+ PHSP; +0.00097 D*+ D_s0*- SVS; +0.0015 D_s1- D+ SVS; +0.0093 D*+ D_s1- SVV_HELAMP 0.4904 0. 0.7204 0. 0.4904 0.; +# + 0.0066 cd_0 anti-ud_0 PYTHIA 22; + 0.0134 cd_1 anti-ud_1 PYTHIA 22; + 0.004 cd_0 anti-ud_0 PYTHIA 23; + 0.008 cd_1 anti-ud_1 PYTHIA 23; + 0.001 cs_0 anti-ud_0 PYTHIA 23; + 0.002 cs_1 anti-ud_1 PYTHIA 23; + 0.005 cs_0 anti-cd_0 PYTHIA 22; + 0.010 cs_1 anti-cd_1 PYTHIA 22; + 0.001 cs_0 anti-cd_0 PYTHIA 23; + 0.002 cs_1 anti-cd_1 PYTHIA 23; + +0.25885 anti-u d c anti-d PYTHIA 48; +0.04600 anti-u d c anti-d PYTHIA 13; +0.02100 anti-u s c anti-d PYTHIA 13; +0.01800 anti-u c d anti-d PYTHIA 48; +0.00090 anti-u c s anti-d PYTHIA 48; +#lange - try to crank up the psi production.... +0.07400 anti-c s c anti-d PYTHIA 13; +0.00600 anti-c d c anti-d PYTHIA 13; +0.00300 anti-u d u anti-d PYTHIA 48; +0.00400 anti-c s u anti-d PYTHIA 48; +# JGS 11/5/02 This and similar a few lines above have been divided by two +# to solve a double-counting problem for this channel +0.00205 anti-u u d anti-d PYTHIA 48; +0.00007 anti-d d d anti-d PYTHIA 48; +0.00009 anti-s s d anti-d PYTHIA 48; +0.00220 anti-u u s anti-d PYTHIA 48; +0.00180 anti-d d s anti-d PYTHIA 48; +0.00150 anti-s s s anti-d PYTHIA 48; +0.00500 s g anti-d PYTHIA 33; +Enddecay +# +# + +Decay B0 +# b -> c semileptonic +# =10.4% total non-D and D* = 3.4% (changing to 2.7) +0.0529 D*- e+ nu_e PHOTOS HQET 0.77 1.33 0.92; +0.0208 D- e+ nu_e PHOTOS ISGW2; +0.0052 D_1- e+ nu_e PHOTOS ISGW2; +0.0045 D_0*- e+ nu_e PHOTOS ISGW2; +0.0083 D'_1- e+ nu_e PHOTOS ISGW2; +0.0023 D_2*- e+ nu_e PHOTOS ISGW2; +0.0003 D*- pi0 e+ nu_e PHOTOS GOITY_ROBERTS; +0.0065 anti-D*0 pi- e+ nu_e PHOTOS GOITY_ROBERTS; +0.0010 D- pi0 e+ nu_e PHOTOS GOITY_ROBERTS; +0.0032 anti-D0 pi- e+ nu_e PHOTOS GOITY_ROBERTS; +0.0529 D*- mu+ nu_mu PHOTOS HQET 0.77 1.33 0.92; +0.0208 D- mu+ nu_mu PHOTOS ISGW2; +0.0052 D_1- mu+ nu_mu PHOTOS ISGW2; +0.0045 D_0*- mu+ nu_mu PHOTOS ISGW2; +0.0083 D'_1- mu+ nu_mu PHOTOS ISGW2; +0.0023 D_2*- mu+ nu_mu PHOTOS ISGW2; +0.0003 D*- pi0 mu+ nu_mu PHOTOS GOITY_ROBERTS; +0.0065 anti-D*0 pi- mu+ nu_mu PHOTOS GOITY_ROBERTS; +0.0010 D- pi0 mu+ nu_mu PHOTOS GOITY_ROBERTS; +0.0032 anti-D0 pi- mu+ nu_mu PHOTOS GOITY_ROBERTS; +# +# b -> c tau nu +# +0.0202 D*- tau+ nu_tau ISGW2; # taken from Belle- Phys. Rev. Lett. 99, 191807 (2007) +0.0088 D- tau+ nu_tau ISGW2; +0.0013 D_1- tau+ nu_tau ISGW2; +0.0013 D_0*- tau+ nu_tau ISGW2; +0.0020 D'_1- tau+ nu_tau ISGW2; +0.0020 D_2*- tau+ nu_tau ISGW2; +# +# b -> u l nu +# +0.000136 pi- e+ nu_e PHOTOS ISGW2; +0.000220 rho- e+ nu_e PHOTOS ISGW2; +0.000000 D(2S)- e+ nu_e PHOTOS ISGW2; +0.000000 D*(2S)- e+ nu_e PHOTOS ISGW2; +0.001892 Xu- e+ nu_e PHOTOS VubHybridB0; +# +0.000136 pi- mu+ nu_mu PHOTOS ISGW2; +0.000220 rho- mu+ nu_mu PHOTOS ISGW2; +0.000000 D(2S)- mu+ nu_mu PHOTOS ISGW2; +0.000000 D*(2S)- mu+ nu_mu PHOTOS ISGW2; +0.001892 Xu- mu+ nu_mu PHOTOS VubHybridB0; +# +0.000060 pi- tau+ nu_tau ISGW2; +0.000083 rho- tau+ nu_tau ISGW2; +0.000090 a_1- tau+ nu_tau ISGW2; +0.000008 b_1- tau+ nu_tau ISGW2; +0.000008 a_0- tau+ nu_tau ISGW2; +0.000008 a_2- tau+ nu_tau ISGW2; +0.000000 rho(2S)- tau+ nu_tau ISGW2; +0.000000 D(2S)- tau+ nu_tau ISGW2; +0.000000 D*(2S)- tau+ nu_tau ISGW2; +# + +# +# b->u hadronic +# Ref. [B1]: +# Lange Nov14,2004 (flip D_s K --opposite of D_s pi) +0.000015 D_s+ pi- PHSP; +0.000028 D_s- K+ PHSP; +0.000029 D_s*+ pi- SVS; +0.000022 D_s*- K+ SVS; +# +0.000016 rho- D_s+ SVS; +0.000016 K*+ D_s- SVS; +0.000016 D_s*+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.000016 D_s*- K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; + + +# +# b -> s gamma +# +0.0000401 K*0 gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000135 K_10 gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000065 K'_10 gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000128 K'*0 gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000166 K_2*0 gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000017 K''*0 gamma HELAMP 1.0 0.0 1.0 0.0; +0.0003139 Xsd gamma BTOXSGAMMA 2; +# +0.000000134 K0 e+ e- PHOTOS BTOSLLBALL; +0.000001045 K*0 e+ e- PHOTOS BTOSLLBALL; +0.000004994 Xsd e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.000000574 K0 mu+ mu- PHOTOS BTOSLLBALL; +0.000001100 K*0 mu+ mu- PHOTOS BTOSLLBALL; +0.000002506 Xsd mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.000000130 K0 tau+ tau- PHOTOS BTOSLLBALL; +0.000000190 K*0 tau+ tau- PHOTOS BTOSLLBALL; +0.000000200 Xsd tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +# +#------------------------------------------------------------------------------ +# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# +# B0 -> CP eigenstates (some exclusive b -> u) sum=0.00036 +# +0.0000049 pi+ pi- SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.0000015 pi0 pi0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 pi0 eta SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.0000015 pi0 eta' SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 pi0 a_00 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 pi0 f_0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +# pi0 rho0 is with the 3-body modes +0.000001 pi0 omega SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 pi0 a_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 pi0 b_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 eta eta SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta eta' SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta a_00 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 eta f_0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 eta rho0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta omega SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta a_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta b_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 eta' eta' SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta' a_00 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 eta' f_0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 eta' rho0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta' omega SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta' a_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 eta' b_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 a_00 a_00 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 a_00 f_0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 a_00 rho0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 a_00 omega SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 a_00 a_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 a_00 b_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.0000003 f_0 f_0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +0.000001 f_0 rho0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 f_0 omega SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 f_0 a_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000001 f_0 b_10 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; + +# Penguin dominated modes are sin2beta, not sin2alpha + +0.0000043 phi K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.0000043 phi K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000001 eta K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.000001 eta K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000032 eta' K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.000032 eta' K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.0000023 omega K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.0000023 omega K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +#don't allow jetset to simulate the same decay but to a K0 or anti-K0 +#Lange 1/30/2003 +0.0 phi K0 PHSP; +0.0 phi anti-K0 PHSP; +0.0 eta K0 PHSP; +0.0 eta anti-K0 PHSP; +0.0 eta' K0 PHSP; +0.0 eta' anti-K0 PHSP; +0.0 omega K0 PHSP; +0.0 omega anti-K0 PHSP; +# phipi0 has no simple Pengiun or tree so who knows - ditto phieta/eta'? + +0.00000005 phi pi0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00000003 phi eta SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; #upper bound in PDG 6*10^-7 +0.00000003 phi eta' SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; #bound 10^-6 +# +0.0000163 K*0 eta SVS; +0.0000038 K*0 eta' SVS; + +0.000001 K*0 omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000001 phi omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000001 omega omega SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000001 omega rho0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +# +#2-body modes from Jim Olsen +0.0000188 K+ pi- PHSP; +0.0000001 K+ K- PHSP;# upper bound 3.7 10^-7 +0.0000006 K_S0 K_S0 PHSP; +0.0000000 K_S0 K_L0 PHSP; +0.0000006 K_L0 K_L0 PHSP; +0.0000115 K0 pi0 PHSP; +# Put in with 0 BR to keep PYTHIA from generating it +0.0000000 K0 anti-K0 PHSP; +# +# 3-body John Back (jback@slac.stanford.edu) - Oct 15, 2002 +# JGS intersperses modes with pi0->eta,eta' +# B0 modes +# Model generates rho(770), rho(1450) and rho(1700) resonances +# with interference (uses CKM angle alpha) + +0.000024 pi- pi+ pi0 BTO3PI_CP dm alpha; +# Put in with 0 BR to keep PYTHIA from generating these (see BTO3PI_CP above) +0.000000 rho0 pi0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.000000 rho+ pi- SVS; +0.000000 rho- pi+ SVS; +0.000000 rho(2S)+ pi- SVS; +0.000000 rho(2S)- pi+ SVS; +0.000000 rho(3S)+ pi- SVS; +0.000000 rho(3S)- pi+ SVS; +# +# rho0 3-body modes +0.0000022 rho0 K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.0000022 rho0 K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +# +# rho- 3-body modes +0.0000085 rho- K+ SVS; +# +# rho(1450) 3-body modes +0.0000005 rho(2S)0 K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma -1.0 minusGamma; +0.0000005 rho(2S)0 K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 gamma 1.0 minusGamma; +# +# +# f0,a0(980) 3-body modes +0.0000055 f_0 K0 PHSP; +0.000001 a_00 K0 PHSP; +0.000001 a_0- K+ PHSP; +0.000001 a_0+ pi- PHSP; +0.000003 a_0- pi+ PHSP; +# +# K*0(892) 3-body modes +0.0000017 K*0 pi0 SVS; +0.000003 K*0 anti-K0 SVS; +# +# K*0(1430) 3-body modes +0.000001 K_0*0 pi0 PHSP; +0.000003 K_0*0 anti-K0 PHSP; +# +# K*0(1680) 3-body modes +0.000001 K''*0 pi0 SVS; +0.000001 K''*0 anti-K0 SVS; + +# +# K*+(892) 3-body modes +0.0000085 K*+ pi- SVS; +0.0000002 K*+ K- SVS; +# +# K*+(1430) 3-body modes +0.000033 K_0*+ pi- PHSP; #rescalled by 2/3 the Belle result PhysRevD 75 012006 +0.0000002 K_0*+ K- PHSP; +# +# K*0(1680) 3-body modes +0.000001 K''*+ pi- SVS; +0.0000001 K''*+ K- SVS; +# +# +# Non-resonant 3-body left-overs +# Most modes are set at 1e-6 +# +# pi+pi-pi0: high mass + f0(400-1200) = (1+1)e-6 +#0402270.000002 pi+ pi- pi0 PHSP; +0.000017 pi+ pi- eta PHSP; +0.000001 pi+ pi- eta' PHSP; +# +# pi+ pi- K0: +0.000013 pi+ pi- K0 PHSP; + +# +# K+ pi- pi0 +0.000002 K+ pi- pi0 PHSP; +0.000020 K+ pi- eta PHSP; +0.000001 K+ pi- eta' PHSP; +# +# pi+ K- K0. +# Both B0 and B0bar can decay to these => 0.5e-6 each +0.0000005 pi+ K- K0 PHSP; +0.0000005 pi- K+ anti-K0 PHSP; + +# K+ K- K0: total-phiK = 24.7-4.2 +0.0000205 K+ K- K0 PHSP; +# +# K+ K- pi0 +0.000001 K+ K- pi0 PHSP; +0.000001 K+ K- eta PHSP; +0.000001 K+ K- eta' PHSP; +# +# pi0 K0 anti-K0 +0.000002 K0 anti-K0 pi0 PHSP; +0.000001 K0 anti-K0 eta PHSP; +0.000001 K0 anti-K0 eta' PHSP; +# +# pi0 pi0 K0 +0.000002 K0 pi0 pi0 PHSP; +0.000001 K0 pi0 eta PHSP; +0.000001 K0 pi0 eta' PHSP; +0.000001 K0 eta eta PHSP; +0.000001 K0 eta eta' PHSP; +0.000001 K0 eta' eta' PHSP; +# +# K0 anti-K0 K0: 8*BF(KsKsKs)~=48 (8 is a guess) +0.000048 K0 anti-K0 K0 PHSP; +# +# pi0 pi0 pi0 +0.000001 pi0 pi0 pi0 PHSP; +0.000001 pi0 pi0 eta PHSP; +0.000001 pi0 pi0 eta' PHSP; +0.000001 pi0 eta eta PHSP; +0.000001 pi0 eta eta' PHSP; +# +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC +#--------------------------------------------------------------------------- +# +#4-body modes from Andrei Gritsan +#--- 4-body rho-rho, rho-pi-pi, pi-pi-pi-pi -------------------------- +0.0000011 rho0 rho0 SVV_CP alpha dm 1 1.0 0.0 1.7 0.0 1.0 0.0; +0.000025 rho+ rho- SVV_CP alpha dm 1 1.0 0.0 1.7 0.0 1.0 0.0; +0.000005 rho0 pi+ pi- PHSP; +0.000003 omega pi+ pi- PHSP; +0.000001 rho0 pi0 pi0 PHSP; +0.000001 omega pi0 pi0 PHSP; +0.0000005 rho0 pi0 eta PHSP; +0.0000002 rho0 eta eta PHSP; +0.0000002 rho0 pi0 eta' PHSP; +0.0000001 rho0 eta eta' PHSP; +0.0000005 omega pi0 eta PHSP; +0.0000002 omega eta eta PHSP; +0.0000002 omega pi0 eta' PHSP; +0.0000001 omega eta eta' PHSP; +0.000010 rho+ pi- pi0 PHSP; +0.000005 rho+ pi- eta PHSP; +0.000010 rho- pi+ pi0 PHSP; +0.000005 rho- pi+ eta PHSP; +0.000010 pi+ pi- pi+ pi- PHSP; +0.000010 pi+ pi- pi0 pi0 PHSP; +0.000005 pi+ pi- eta pi0 PHSP; +0.000002 pi+ pi- eta eta PHSP; +0.000002 pi+ pi- eta' pi0 PHSP; +0.000001 pi+ pi- eta' eta PHSP; +0.0000165 a_1+ pi- SVS; +0.0000165 a_1- pi+ SVS; +0.000000 b_1+ pi- SVS; +0.000010 b_1- pi+ SVS; +0.000002 rho- a_0+ SVS; +0.000010 rho+ a_0- SVS; +0.000001 f_0 pi+ pi- PHSP; +0.000001 f_0 pi0 pi0 PHSP; +0.000001 a_0+ pi- pi0 PHSP; +0.000001 a_00 pi0 pi0 PHSP; +0.000001 a_0- pi+ pi0 PHSP; +#--- 4-body rho-K*, rho-pi-K, K*-pi-pi, pi-pi-pi-K ------------------- +0.0000056 rho0 K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000010 rho- K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000010 pi- pi+ K*0 PHSP; +0.000010 pi- pi0 K*+ PHSP; +0.000005 pi- eta K*+ PHSP; +0.000002 pi- eta' K*+ PHSP; +0.000010 rho- K+ pi0 PHSP; +0.000005 rho- K+ eta PHSP; +0.000002 rho- K+ eta' PHSP; +0.000010 rho- K0 pi+ PHSP; +0.000010 rho+ K0 pi- PHSP; +0.000005 rho0 K0 pi0 PHSP; +0.000002 rho0 K0 eta PHSP; +0.000001 rho0 K0 eta' PHSP; +0.000010 rho0 K+ pi- PHSP; +0.000005 omega K0 pi0 PHSP; +0.000002 omega K0 eta PHSP; +0.000001 omega K0 eta' PHSP; +0.000005 omega K+ pi- PHSP; +0.000010 pi+ pi0 pi- K0 PHSP; +0.000005 pi+ eta pi- K0 PHSP; +0.000010 pi0 pi0 pi0 K0 PHSP; +0.000005 pi0 pi0 eta K0 PHSP; +0.000002 pi0 eta eta K0 PHSP; +0.000002 pi0 pi0 eta' K0 PHSP; +0.000001 pi0 eta eta' K0 PHSP; +0.000010 pi+ pi- pi- K+ PHSP; +0.000010 pi0 pi0 pi- K+ PHSP; +0.000005 pi0 eta pi- K+ PHSP; +0.000002 eta eta pi- K+ PHSP; +0.000002 pi0 eta' pi- K+ PHSP; +0.000001 eta eta' pi- K+ PHSP; +0.000010 rho0 K_0*0 PHSP; +0.000020 rho- K_0*+ PHSP; +0.000010 pi- pi+ K_0*0 PHSP; +0.000010 pi0 pi0 K_0*0 PHSP; +0.000010 pi- pi0 K_0*+ PHSP; +0.000002 K*0 f_0 SVS; +0.000010 a_10 K0 SVS; +0.000010 a_1- K+ SVS; +0.0000066 b_10 K0 SVS; +0.000010 b_1- K+ SVS; +0.000005 K*0 a_00 SVS; +0.000005 K*+ a_0- SVS; +#--- 4-body K*-K*, rho-K-K, K*-K-pi, phi-pi-pi, pi-pi-K-K ------------ +0.00000105 K*0 anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000001 K*+ K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.0000001 phi rho0 SVV_CP alpha dm 1 1.0 0.0 1.7 0.0 1.0 0.0; +0.0000001 phi pi- pi+ PHSP; +0.000001 K+ K- rho0 PHSP; +0.000001 K0 anti-K0 rho0 PHSP; +0.000001 K+ K- omega PHSP; +0.000001 K0 anti-K0 omega PHSP; + +0.000001 K- K0 rho+ PHSP; +0.000001 K+ anti-K0 rho- PHSP; +0.000001 K+ K- pi- pi+ PHSP; +0.000001 K+ K- pi0 pi0 PHSP; +0.0000005 K+ K- pi0 eta PHSP; +0.0000002 K+ K- eta eta PHSP; +0.0000002 K+ K- pi0 eta' PHSP; +0.0000001 K+ K- eta eta' PHSP; +0.000001 K0 anti-K0 pi- pi+ PHSP; +0.000001 K0 anti-K0 pi0 pi0 PHSP; +0.0000005 K0 anti-K0 pi0 eta PHSP; +0.0000002 K0 anti-K0 eta eta PHSP; +0.0000002 K0 anti-K0 pi0 eta' PHSP; +0.0000001 K0 anti-K0 eta eta' PHSP; +0.000001 K*+ K- pi0 PHSP; +0.000001 K*- K+ pi0 PHSP; +0.000001 K*0 anti-K0 pi0 PHSP; +0.000001 K0 anti-K*0 pi0 PHSP; +0.000001 K+ anti-K*0 pi- PHSP; +0.000001 K*+ anti-K0 pi- PHSP; +0.000001 K- K*0 pi+ PHSP; +0.000001 K*- K0 pi+ PHSP; +#--- 4-body phi-K*, phi-K-pi, K-K-K*, pi-K-K-K ----------------------- +0.0000095 phi K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000010 phi K+ pi- PHSP; +0.000010 phi K0 pi0 PHSP; +0.000007 phi K0 eta PHSP; +0.000010 K- K+ K*0 PHSP; +0.000010 K*- K+ K0 PHSP; +0.000010 K- K*+ K0 PHSP; + +0.000010 K+ K- K+ pi- PHSP; +0.000010 K+ K- K0 pi0 PHSP; +0.000005 K+ K- K0 eta PHSP; +0.000010 K0 anti-K0 K0 pi0 PHSP; +0.000005 K0 anti-K0 K0 eta PHSP; +0.0000046 phi K_0*0 PHSP; +0.000010 K- K+ K_0*0 PHSP; +0.000010 K_0*- K+ K0 PHSP; +0.000010 K- K_0*+ K0 PHSP; + +0.000002 phi K'_10 PHSP; +0.000002 K- K+ K'_10 PHSP; +#--- 4-body phi-phi, phi-K-K, K-K-K-K -------------------------------- +0.0000001 phi phi SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.0000001 phi K+ K- PHSP; +0.0000001 phi K0 anti-K0 PHSP; +0.0000001 K+ K- K+ K- PHSP; +0.0000001 K0 anti-K0 K+ K- PHSP; +0.0000001 K0 anti-K0 K0 anti-K0 PHSP; +#5-body modes from Jim Smith - 1/30/05 +#--- 5-body rho-rho-pi, rho-pi-pi-pi, pi-pi-pi-pi-pi ------------------- +0.000010 rho0 rho0 pi0 PHSP; +0.000005 rho0 rho0 eta PHSP; +0.000002 rho0 rho0 eta' PHSP; +0.000010 omega rho0 pi0 PHSP; +0.000005 omega rho0 eta PHSP; +0.000002 omega rho0 eta' PHSP; +0.000010 rho+ rho- pi0 PHSP; +0.000005 rho+ rho- eta PHSP; +0.000002 rho+ rho- eta' PHSP; +0.000010 rho0 rho+ pi- PHSP; +0.0000066 rho0 rho- pi+ PHSP; +0.000010 omega rho+ pi- PHSP; +0.0000066 omega rho- pi+ PHSP; +0.000002 rho0 pi+ pi- pi0 PHSP; +0.000001 rho0 pi+ pi- eta PHSP; +0.000001 rho0 pi+ pi- eta' PHSP; +0.000002 rho0 pi0 pi0 pi0 PHSP; +0.000001 rho0 pi0 eta pi0 PHSP; +0.000001 rho0 pi0 eta' pi0 PHSP; +0.000002 omega pi+ pi- pi0 PHSP; +0.000001 omega pi+ pi- eta PHSP; +0.000001 omega pi+ pi- eta' PHSP; +0.000002 omega pi0 pi0 pi0 PHSP; +0.000001 omega pi0 eta pi0 PHSP; +0.000001 omega pi0 eta' pi0 PHSP; +0.000002 rho+ pi- pi+ pi- PHSP; +0.000002 rho+ pi- pi0 pi0 PHSP; +0.000001 rho+ pi- pi0 eta PHSP; +0.000001 rho+ pi- pi0 eta' PHSP; +0.000002 rho- pi+ pi+ pi- PHSP; +0.000002 rho- pi+ pi0 pi0 PHSP; +0.000001 rho- pi+ pi0 eta PHSP; +0.000001 rho- pi+ pi0 eta' PHSP; +0.000001 pi+ pi- pi+ pi- pi0 PHSP; +0.0000005 pi+ pi- pi+ pi- eta PHSP; +0.0000002 pi+ pi- pi+ pi- eta' PHSP; +0.000001 pi+ pi- pi0 pi0 pi0 PHSP; +0.0000005 pi+ pi- pi0 pi0 eta PHSP; +0.0000002 pi+ pi- pi0 pi0 eta' PHSP; +0.0000005 pi0 pi0 pi0 pi0 pi0 PHSP; +0.0000002 pi0 pi0 pi0 pi0 eta PHSP; +0.0000001 pi0 pi0 pi0 pi0 eta' PHSP; +0.000010 a_1+ rho- PHSP; +0.000010 a_1- rho+ PHSP; +0.000010 a_10 rho0 PHSP; +0.000010 a_10 omega PHSP; +0.000010 a_1+ pi- pi0 PHSP; +0.000005 a_1+ pi- eta PHSP; +0.000002 a_1+ pi- eta' PHSP; +0.000010 a_10 pi+ pi- PHSP; +0.000010 a_10 pi0 pi0 PHSP; +0.000005 a_10 pi0 eta PHSP; +0.000002 a_10 pi0 eta' PHSP; +0.000010 a_1- pi+ pi0 PHSP; +0.000005 a_1- pi+ eta PHSP; +0.000002 a_1- pi+ eta' PHSP; +0.000010 rho+ f_0 pi- PHSP; +0.000010 rho- f_0 pi+ PHSP; +0.000010 rho0 f_0 pi0 PHSP; +0.000005 rho0 f_0 eta PHSP; +0.000002 rho0 f_0 eta' PHSP; +0.000010 omega f_0 pi0 PHSP; +0.000010 rho+ a_00 pi- PHSP; +0.000010 rho+ a_0- pi0 PHSP; +0.000005 rho+ a_0- eta PHSP; +0.000002 rho+ a_0- eta' PHSP; +0.000010 rho0 a_0+ pi- PHSP; +0.000010 rho0 a_0- pi+ PHSP; +0.000010 rho0 a_00 pi0 PHSP; +0.000005 rho0 a_00 eta PHSP; +0.000002 rho0 a_00 eta' PHSP; +0.000010 rho- a_00 pi+ PHSP; +0.000010 rho- a_0+ pi0 PHSP; +0.000005 rho- a_0+ eta PHSP; +0.000002 rho- a_0+ eta' PHSP; +0.000002 f_0 pi+ pi- pi0 PHSP; +0.000001 f_0 pi+ pi- eta PHSP; +0.000001 f_0 pi+ pi- eta' PHSP; +0.000002 f_0 pi0 pi0 pi0 PHSP; +0.000001 f_0 pi0 pi0 eta PHSP; +0.000001 f_0 pi0 pi0 eta' PHSP; +0.000001 a_00 pi+ pi- pi0 PHSP; +0.000001 a_00 pi0 pi0 pi0 PHSP; +0.000001 a_0+ pi- pi+ pi- PHSP; +0.000001 a_0+ pi- pi0 pi0 PHSP; +0.000001 a_0- pi+ pi+ pi- PHSP; +0.000001 a_0- pi+ pi0 pi0 PHSP; +#--- 5-body rho-K*pi, rho-2pi-K, K*-3pi, 4pi-K ------------------- +0.000010 rho0 K*+ pi- PHSP; +0.000010 rho- K*+ pi0 PHSP; +0.000005 rho- K*+ eta PHSP; +0.000002 rho- K*+ eta' PHSP; +0.000010 rho0 K*0 pi0 PHSP; +0.000005 rho0 K*0 eta PHSP; +0.000002 rho0 K*0 eta' PHSP; +0.000010 rho- K*0 pi+ PHSP; +0.000010 rho+ K*0 pi- PHSP; +0.000010 omega K*+ pi- PHSP; +0.000010 omega K*0 pi0 PHSP; +0.000005 omega K*0 eta PHSP; +0.000002 omega K*0 eta' PHSP; +0.000010 pi+ pi- K*+ pi- PHSP; +0.000010 pi- pi0 K*+ pi0 PHSP; +0.000005 pi- pi0 K*+ eta PHSP; +0.000002 pi- pi0 K*+ eta' PHSP; +0.000010 pi+ pi- K*0 pi0 PHSP; +0.000005 pi+ pi- K*0 eta PHSP; +0.000002 pi+ pi- K*0 eta' PHSP; +0.000010 pi0 pi0 K*0 pi0 PHSP; +0.000005 pi0 pi0 K*0 eta PHSP; +0.000002 pi0 pi0 K*0 eta' PHSP; +0.000010 rho+ K+ pi- pi- PHSP; +0.000010 rho0 K+ pi- pi0 PHSP; +0.000005 rho0 K+ pi- eta PHSP; +0.000002 rho0 K+ pi- eta' PHSP; +0.000010 rho- K+ pi+ pi- PHSP; +0.000010 rho- K+ pi0 pi0 PHSP; +0.000005 rho- K+ pi0 eta PHSP; +0.000002 rho- K+ pi0 eta' PHSP; +0.000010 rho0 K0 pi+ pi- PHSP; +0.000010 rho0 K0 pi0 pi0 PHSP; +0.000005 rho0 K0 pi0 eta PHSP; +0.000002 rho0 K0 pi0 eta' PHSP; +0.000010 rho+ K0 pi- pi0 PHSP; +0.000005 rho+ K0 pi- eta PHSP; +0.000002 rho+ K0 pi- eta' PHSP; +0.000010 rho- K0 pi+ pi0 PHSP; +0.000005 rho- K0 pi+ eta PHSP; +0.000002 rho- K0 pi+ eta' PHSP; +0.000010 omega K+ pi- pi0 PHSP; +0.000005 omega K+ pi- eta PHSP; +0.000002 omega K+ pi- eta' PHSP; +0.000010 omega K0 pi+ pi- PHSP; +0.000010 omega K0 pi0 pi0 PHSP; +0.000005 omega K0 pi0 eta PHSP; +0.000002 omega K0 pi0 eta' PHSP; +0.000002 pi+ pi- pi- K+ pi0 PHSP; +0.000001 pi+ pi- pi- K+ eta PHSP; +0.000001 pi+ pi- pi- K+ eta' PHSP; +0.000002 pi0 pi0 pi- K+ pi0 PHSP; +0.000001 pi0 pi0 pi- K+ eta PHSP; +0.000001 pi0 pi0 pi- K+ eta' PHSP; +0.000002 pi+ pi- pi+ K0 pi- PHSP; +0.000002 pi+ pi- pi0 K0 pi0 PHSP; +0.000001 pi+ pi- pi0 K0 eta PHSP; +0.000001 pi+ pi- pi0 K0 eta' PHSP; +0.000002 pi0 pi0 pi0 K0 pi0 PHSP; +0.000001 pi0 pi0 pi0 K0 eta PHSP; +0.000001 pi0 pi0 pi0 K0 eta' PHSP; +0.000010 rho+ K_0*0 pi- PHSP; +0.000010 rho0 K_0*0 pi0 PHSP; +0.000005 rho0 K_0*0 eta PHSP; +0.000002 rho0 K_0*0 eta' PHSP; +0.000010 rho- K_0*0 pi+ PHSP; +0.000010 rho- K_0*+ pi0 PHSP; +0.000005 rho- K_0*+ eta PHSP; +0.000002 rho- K_0*+ eta' PHSP; +0.000010 rho0 K_0*+ pi- PHSP; +0.000010 pi+ pi- K_0*+ pi- PHSP; +0.000010 pi- pi0 K_0*+ pi0 PHSP; +0.000005 pi- pi0 K_0*+ eta PHSP; +0.000002 pi- pi0 K_0*+ eta' PHSP; +0.000010 pi+ pi- K_0*0 pi0 PHSP; +0.000005 pi+ pi- K_0*0 eta PHSP; +0.000002 pi+ pi- K_0*0 eta' PHSP; +0.000010 pi0 pi0 K_0*0 pi0 PHSP; +0.000005 pi0 pi0 K_0*0 eta PHSP; +0.000005 pi0 pi0 K_0*0 eta' PHSP; +0.000010 K*+ f_0 pi- PHSP; +0.000010 K*0 f_0 pi0 PHSP; +0.000005 K*0 f_0 eta PHSP; +0.000002 K*0 f_0 eta' PHSP; +0.000010 a_1+ K0 pi- PHSP; +0.000020 a_10 K*0 PHSP; +0.000010 a_10 K+ pi- PHSP; +0.000010 a_10 K0 pi0 PHSP; +0.000020 a_1- K*+ PHSP; +0.000010 a_1- K+ pi0 PHSP; +0.000010 a_1- K0 pi+ PHSP; +0.000005 K*+ a_00 pi- PHSP; +0.000005 K*+ a_0- pi0 PHSP; +0.000002 K*+ a_0- eta PHSP; +0.000001 K*+ a_0- eta' PHSP; +0.000005 K*0 a_0- pi+ PHSP; +0.000005 K*0 a_0+ pi- PHSP; +0.000005 K*0 a_00 pi0 PHSP; +0.000002 K*0 a_00 eta PHSP; +0.000001 K*0 a_00 eta' PHSP; +#--- 5-body K*-K*pi,rho-K-Kpi, K*-K-2pi, phi-3pi, 3pi-K-K ------------ +0.000001 K*- K*0 pi+ PHSP; +0.000001 K*+ anti-K*0 pi- PHSP; +0.000001 K*- K*+ pi0 PHSP; +0.0000005 K*- K*+ eta PHSP; +0.0000002 K*- K*+ eta' PHSP; +0.000001 K*0 anti-K*0 pi0 PHSP; +0.0000005 K*0 anti-K*0 eta PHSP; +0.0000002 K*0 anti-K*0 eta' PHSP; +0.000001 phi rho+ pi- PHSP; +0.000001 phi rho- pi+ PHSP; +0.000001 phi rho0 pi0 PHSP; +0.0000005 phi rho0 eta PHSP; +0.0000002 phi rho0 eta' PHSP; +0.000001 phi omega pi0 PHSP; +0.000001 phi f_0 pi0 PHSP; +0.000001 phi pi+ pi- pi0 PHSP; +0.0000005 phi pi+ pi- eta PHSP; +0.0000002 phi pi+ pi- eta' PHSP; +0.000001 phi pi0 pi0 pi0 PHSP; +0.0000005 phi pi0 pi0 eta PHSP; +0.0000002 phi pi0 pi0 eta' PHSP; +0.000001 anti-K0 K+ rho0 pi- PHSP; +0.000001 anti-K0 K+ rho- pi0 PHSP; +0.0000005 anti-K0 K+ rho- eta PHSP; +0.0000002 anti-K0 K+ rho- eta' PHSP; +0.000001 anti-K0 K+ omega pi- PHSP; +0.000001 anti-K0 K+ f_0 pi- PHSP; + + +0.000001 K+ K- rho- pi+ PHSP; +0.000001 K+ K- rho+ pi- PHSP; +0.000001 K+ K- rho0 pi0 PHSP; +0.0000005 K+ K- rho0 eta PHSP; +0.0000002 K+ K- rho0 eta' PHSP; +0.000001 K+ K- omega pi0 PHSP; +0.0000005 K+ K- omega eta PHSP; +0.0000002 K+ K- omega eta' PHSP; +0.000001 K+ K- f_0 pi0 PHSP; +0.000001 K0 anti-K0 rho- pi+ PHSP; +0.000001 K0 anti-K0 rho+ pi- PHSP; +0.000001 K0 anti-K0 rho0 pi0 PHSP; +0.0000005 K0 anti-K0 rho0 eta PHSP; +0.0000002 K0 anti-K0 rho0 eta' PHSP; +0.000001 K0 anti-K0 omega pi0 PHSP; +0.000001 K0 anti-K0 f_0 pi0 PHSP; +0.000001 K0 K- rho0 pi+ PHSP; +0.000001 K0 K- rho+ pi0 PHSP; +0.0000005 K0 K- rho+ eta PHSP; +0.0000002 K0 K- rho+ eta' PHSP; +0.000001 K0 K- omega pi+ PHSP; +0.000001 K0 K- f_0 pi+ PHSP; +0.0000002 K0 K- pi+ pi+ pi- PHSP; +0.0000002 K0 K- pi+ pi0 pi0 PHSP; +0.0000001 K0 K- pi+ pi0 eta PHSP; +0.0000001 K0 K- pi+ pi0 eta' PHSP; +0.0000002 K+ K- pi+ pi- pi0 PHSP; +0.0000001 K+ K- pi+ pi- eta PHSP; +0.0000001 K+ K- pi+ pi- eta' PHSP; +0.0000002 K+ K- pi0 pi0 pi0 PHSP; +0.0000001 K+ K- pi0 pi0 eta PHSP; +0.0000001 K+ K- pi0 pi0 eta' PHSP; +0.0000002 K0 anti-K0 pi+ pi- pi0 PHSP; +0.0000001 K0 anti-K0 pi+ pi- eta PHSP; +0.0000001 K0 anti-K0 pi+ pi- eta' PHSP; +0.0000002 K0 anti-K0 pi0 pi0 pi0 PHSP; +0.0000001 K0 anti-K0 pi0 pi0 eta PHSP; +0.0000001 K0 anti-K0 pi0 pi0 eta' PHSP; +0.0000002 anti-K0 K+ pi- pi+ pi- PHSP; +0.0000002 anti-K0 K+ pi- pi0 pi0 PHSP; +0.0000001 anti-K0 K+ pi- pi0 eta PHSP; +0.0000001 anti-K0 K+ pi- pi0 eta' PHSP; +0.000001 K*0 K- pi+ pi0 PHSP; +0.0000005 K*0 K- pi+ eta PHSP; +0.0000002 K*0 K- pi+ eta' PHSP; +0.000001 K*- K0 pi+ pi0 PHSP; +0.0000005 K*- K0 pi+ eta PHSP; +0.0000002 K*- K0 pi+ eta' PHSP; +0.000001 K*+ K- pi+ pi- PHSP; +0.000001 K*+ K- pi0 pi0 PHSP; +0.0000005 K*+ K- pi0 eta PHSP; +0.0000002 K*+ K- pi0 eta' PHSP; +0.000001 K*- K+ pi+ pi- PHSP; +0.000001 K*- K+ pi0 pi0 PHSP; +0.0000005 K*- K+ pi0 eta PHSP; +0.0000002 K*- K+ pi0 eta' PHSP; +0.000001 K*0 anti-K0 pi+ pi- PHSP; +0.000001 K*0 anti-K0 pi0 pi0 PHSP; +0.0000005 K*0 anti-K0 pi0 eta PHSP; +0.0000002 K*0 anti-K0 pi0 eta' PHSP; +0.000001 K0 anti-K*0 pi+ pi- PHSP; +0.000001 K0 anti-K*0 pi0 pi0 PHSP; +0.0000005 K0 anti-K*0 pi0 eta PHSP; +0.0000002 K0 anti-K*0 pi0 eta' PHSP; +0.000001 K+ anti-K*0 pi- pi0 PHSP; +0.0000005 K+ anti-K*0 pi- eta PHSP; +0.0000002 K+ anti-K*0 pi- eta' PHSP; +0.000001 K*+ anti-K0 pi- pi0 PHSP; +0.0000005 K*+ anti-K0 pi- eta PHSP; +0.0000002 K*+ anti-K0 pi- eta' PHSP; +#--- 5-body phi-K*-pi, phi-K-2pi, K-K-K*-pi, 2pi-K-K-K -------------------- +0.000010 phi K*+ pi- PHSP; +0.000010 phi K*0 pi0 PHSP; +0.000005 phi K*0 eta PHSP; +0.000002 phi K*0 eta' PHSP; +0.000010 phi K+ rho- PHSP; +0.000010 phi K0 rho0 PHSP; +0.000010 phi K0 omega PHSP; +0.000010 phi K0 f_0 PHSP; +0.000010 phi K0 pi+ pi- PHSP; +0.000010 phi K0 pi0 pi0 PHSP; +0.000005 phi K0 pi0 eta PHSP; +0.000002 phi K0 pi0 eta' PHSP; +0.000010 phi K+ pi- pi0 PHSP; +0.000005 phi K+ pi- eta PHSP; +0.000002 phi K+ pi- eta' PHSP; +0.000010 K- K+ K*+ pi- PHSP; +0.000010 K+ K*- K+ pi- PHSP; +0.000010 K+ K*0 anti-K0 pi- PHSP; +0.000010 K+ K0 anti-K*0 pi- PHSP; +0.000010 K0 K*+ anti-K0 pi- PHSP; +0.000010 K- K+ K+ rho- PHSP; +0.000010 K- K+ K0 rho0 PHSP; +0.000010 K- K+ K0 omega PHSP; +0.000010 K- K+ K0 f_0 PHSP; +0.000010 K+ K- K+ pi- pi0 PHSP; +0.000005 K+ K- K+ pi- eta PHSP; +0.000002 K+ K- K+ pi- eta' PHSP; +0.000010 K+ K- K0 pi+ pi- PHSP; +0.000010 K+ K- K0 pi0 pi0 PHSP; +0.000005 K+ K- K0 pi0 eta PHSP; +0.000005 K+ K- K0 pi0 eta' PHSP; +0.000010 K0 anti-K0 K+ pi- pi0 PHSP; +0.000005 K0 anti-K0 K+ pi- eta PHSP; +0.000002 K0 anti-K0 K+ pi- eta' PHSP; +0.000010 K0 anti-K0 K0 pi+ pi- PHSP; +0.000010 K0 anti-K0 K0 pi0 pi0 PHSP; +0.000005 K0 anti-K0 K0 pi0 eta PHSP; +0.000002 K0 anti-K0 K0 pi0 eta' PHSP; +0.000010 phi K_0*+ pi- PHSP; +0.000010 phi K_0*0 pi0 PHSP; +0.000010 K+ K- K_0*+ pi- PHSP; +0.000010 K+ K- K_0*0 pi0 PHSP; +0.000005 K+ K- K_0*0 eta PHSP; +0.000002 K+ K- K_0*0 eta' PHSP; +0.000010 K+ K+ K_0*- pi- PHSP; + +0.000010 K+ K_0*0 anti-K0 pi- PHSP; +0.000010 K+ anti-K_0*0 K0 pi- PHSP; +0.000010 K0 anti-K0 K_0*+ pi- PHSP; +0.000010 K0 anti-K0 K_0*0 pi0 PHSP; +0.000005 K0 anti-K0 K_0*0 eta PHSP; +0.000002 K0 anti-K0 K_0*0 eta' PHSP; +0.000010 K0 K0 anti-K_0*0 pi0 PHSP; +0.000005 K0 K0 anti-K_0*0 eta PHSP; +0.000002 K0 K0 anti-K_0*0 eta' PHSP; +0.000002 phi K'_1+ pi- PHSP; +0.000002 phi K'_10 pi0 PHSP; +0.000001 phi K'_10 eta PHSP; +0.000001 phi K'_10 eta' PHSP; +0.000002 K- K+ K'_1+ pi- PHSP; +0.000002 K- K+ K'_10 pi0 PHSP; +0.000001 K- K+ K'_10 eta PHSP; +0.000001 K- K+ K'_10 eta' PHSP; +0.000002 K+ K+ K'_1- pi- PHSP; +0.000002 K0 anti-K0 K'_10 pi0 PHSP; +0.000001 K0 anti-K0 K'_10 eta PHSP; +0.000001 K0 anti-K0 K'_10 eta' PHSP; +0.000002 K0 K0 anti-K'_10 pi0 PHSP; +0.000001 K0 K0 anti-K'_10 eta PHSP; +0.000001 K0 K0 anti-K'_10 eta' PHSP; +#--- 5-body phi-phi-K, phi-phi-pi, phi-3K, phi-K-K-pi, 5K, 4K-pi ------------ +0.0000041 phi phi K0 PHSP; +0.0000001 phi phi pi0 PHSP; +0.000001 phi K+ K- K0 PHSP; +0.000001 phi K0 anti-K0 K0 PHSP; +0.0000001 phi K+ K- pi0 PHSP; +0.0000001 phi K0 anti-K0 pi0 PHSP; +0.0000001 phi K0 K- pi+ PHSP; +0.0000001 phi anti-K0 K+ pi- PHSP; + +0.0000001 K+ K- K+ K- K0 PHSP; +0.0000001 K0 anti-K0 K+ K- K0 PHSP; +0.0000001 K+ K- K+ K- pi0 PHSP; +0.0000001 K+ K- K0 anti-K0 pi0 PHSP; +0.0000001 K+ K- K0 K- pi+ PHSP; +0.0000001 K+ K- K+ anti-K0 pi- PHSP; + +0.0000001 K0 anti-K0 K0 anti-K0 pi0 PHSP; +0.0000001 K0 anti-K0 K0 K- pi+ PHSP; +0.0000001 K0 anti-K0 anti-K0 K+ pi- PHSP; + +#--- 6-body phi-phi-K*, phi-3Kpi, phi-K-K-2pi ------------ not in PDG +0.000003 phi phi K*0 PHSP; +0.000001 phi K+ K- K*0 PHSP; +0.000001 phi K0 anti-K0 K*0 PHSP; +0.000001 phi K0 K+ K*- PHSP; +0.000001 phi K0 K0 anti-K*0 PHSP; +0.0000001 phi K+ K- K+ pi- PHSP; +0.0000001 phi K+ K- K0 pi0 PHSP; +0.0000001 phi K0 anti-K0 K+ pi- PHSP; +0.0000001 phi K0 anti-K0 K0 pi0 PHSP; +#--- 6-body a1a1 ------------ +0.000050 a_10 a_10 PHSP; +0.000050 a_1+ a_1- PHSP; +# +# B -> cc= s +0.000436 J/psi K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.000436 J/psi K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.0002215 J/psi K*S SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.0002215 J/psi K*L SVV_CP beta dm -1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000886 J/psi K*0T SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.0000205 J/psi pi0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000016 J/psi rho0 SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.00003 J/psi omega SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.0012 J/psi K+ pi- PHSP; +0.0001 J/psi K0 pi0 PHSP; +#rl0.0007 J/psi K0 pi- pi+ PHSP; +#rl0.00035 J/psi K0 pi0 pi0 PHSP; +#rl0.00035 J/psi K+ pi- pi0 PHSP; +0.0013 J/psi K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi K'_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi K_2*0 PHSP; +0.000094 J/psi phi K0 PHSP; +# +0.00031 psi(2S) K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.00031 psi(2S) K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00012 psi(2S) K*S SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.00012 psi(2S) K*L SVV_CP beta dm -1 Aplus phAplus Azero phAzero Aminus phAminus; +0.00048 psi(2S) K*0T SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; + +0.0004 psi(2S) K+ pi- PHSP; +0.0002 psi(2S) K0 pi0 PHSP; +0.0002 psi(2S) K0 pi- pi+ PHSP; +0.0001 psi(2S) K0 pi0 pi0 PHSP; +0.0001 psi(2S) K+ pi- pi0 PHSP; +0.0004 psi(2S) K_10 PHSP; +# +0.0005 eta_c K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.0005 eta_c K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00027 K*S eta_c SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.00027 K*L eta_c SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00108 K*0T eta_c SVS; +0.0002 eta_c K+ pi- PHSP; +0.0001 eta_c K0 pi0 PHSP; +0.0002 eta_c K0 pi- pi+ PHSP; +0.0001 eta_c K0 pi0 pi0 PHSP; +0.0001 eta_c K+ pi- pi0 PHSP; +# +0.00024 eta_c(2S) K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.00024 eta_c(2S) K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00011 K*S eta_c(2S) SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.00011 K*L eta_c(2S) SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00044 K*0T eta_c(2S) SVS; +0.00008 eta_c(2S) K+ pi- PHSP; +0.00005 eta_c(2S) K0 pi0 PHSP; +0.00008 eta_c(2S) K0 pi- pi+ PHSP; +0.00005 eta_c(2S) K0 pi0 pi0 PHSP; +0.00005 eta_c(2S) K+ pi- pi0 PHSP; +# +0.00005 chi_c0 K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00005 chi_c0 K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.00005 K*S chi_c0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00005 K*L chi_c0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.0002 K*0T chi_c0 SVS; +0.0002 chi_c0 K+ pi- PHSP; +0.0001 chi_c0 K0 pi0 PHSP; +0.0002 chi_c0 K0 pi- pi+ PHSP; +0.0001 chi_c0 K0 pi0 pi0 PHSP; +0.0001 chi_c0 K+ pi- pi0 PHSP; +# +0.00020 chi_c1 K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.00020 chi_c1 K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000053 K*S chi_c1 SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000053 K*L chi_c1 SVV_CP beta dm -1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000213 chi_c1 K*0T SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.0004 chi_c1 K+ pi- PHSP; +0.0002 chi_c1 K0 pi0 PHSP; +0.0004 chi_c1 K0 pi- pi+ PHSP; +0.0002 chi_c1 K0 pi0 pi0 PHSP; +0.0002 chi_c1 K+ pi- pi0 PHSP; +# +0.00001 chi_c2 K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00001 chi_c2 K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.000005 K*S chi_c2 PHSP; +0.000005 K*L chi_c2 PHSP; +0.00002 chi_c2 K*0T PHSP; +0.0002 chi_c2 K+ pi- PHSP; +0.0001 chi_c2 K0 pi0 PHSP; +0.0002 chi_c2 K0 pi- pi+ PHSP; +0.0001 chi_c2 K0 pi0 pi0 PHSP; +0.0001 chi_c2 K+ pi- pi0 PHSP; + +0.00024 psi(3770) K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.00024 psi(3770) K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00008 psi(3770) K*S SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.00008 psi(3770) K*L SVV_CP beta dm -1 Aplus phAplus Azero phAzero Aminus phAminus; +0.00032 psi(3770) K*0T SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.00014 psi(3770) K+ pi- PHSP; +0.00014 psi(3770) K0 pi0 PHSP; +0.00014 psi(3770) K0 pi- pi+ PHSP; +0.00007 psi(3770) K0 pi0 pi0 PHSP; +0.00007 psi(3770) K+ pi- pi0 PHSP; +0.00029 psi(3770) K_10 PHSP; +# + + + +# +# b-> c (dc=) +# +0.00023 D- D+ SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +# See Ref [B1] for the next 3: +0.000610 D*- D+ SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00061 D*+ D- SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.00082 D*- D*+ SVV_CP beta dm 1 0.56 0.0 0.96 0.0 0.47 0.0; +# +# b -> c (sc=) --> D Ds X Sum = 10% +# +0.0065 D- D_s+ PHSP; +0.0080 D*- D_s+ SVS; +0.0074 D_s*+ D- SVS; +0.0177 D_s*+ D*- SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; +0.0006 D'_1- D_s+ SVS; +0.0012 D'_1- D_s*+ SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; +0.0012 D_1- D_s+ SVS; +0.0024 D_1- D_s*+ SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; +0.0042 D_2*- D_s+ STS; +0.0040 D_2*- D_s*+ PHSP; +# +0.0018 D_s+ D- pi0 PHSP; +0.0037 D_s+ anti-D0 pi- PHSP; +0.0018 D_s*+ D- pi0 PHSP; +0.0037 D_s*+ anti-D0 pi- PHSP; +0.0030 D_s+ D- pi- pi+ PHSP; +0.0022 D_s+ D- pi0 pi0 PHSP; +0.0022 D_s+ anti-D0 pi- pi0 PHSP; +0.0030 D_s*+ D- pi- pi+ PHSP; +0.0022 D_s*+ D- pi0 pi0 PHSP; +0.0022 D_s*+ anti-D0 pi- pi0 PHSP; +# +# b -> c (sc=) --> D D= K X Sum = 8% +# Update: Ref. [B1] +# October 26, 2004 Lange -per breco awg +# External W-emission amplitude +0.0017 D- D0 K+ PHSP; +0.0046 D- D*0 K+ PHSP; +0.0031 D*- D0 K+ PHSP; +0.0118 D*- D*0 K+ PHSP; +# External+internal W-emission amplitude +0.0015 D- D+ K0 PHSP; +0.0018 D*- D+ K0 PHSP; +0.0047 D- D*+ K0 PHSP; +0.0088 D*- D*+ K0 PHSP; +# Internal W-emission amplitude (color suppressed modes) +0.0005 D0 anti-D0 K0 PHSP; +0.0005 D*0 anti-D0 K0 PHSP; +0.0005 D0 anti-D*0 K0 PHSP; +0.0005 D*0 anti-D*0 K0 PHSP; +########## +# K* modes +########### +0.0025 D- D0 K*+ PHSP; +0.0025 D*- D0 K*+ PHSP; +0.0025 D- D*0 K*+ PHSP; +0.0050 D*- D*0 K*+ PHSP; +# +0.0025 D- D+ K*0 PHSP; +0.0025 D*- D+ K*0 PHSP; +0.0025 D- D*+ K*0 PHSP; +0.0050 D*- D*+ K*0 PHSP; +# +0.0005 D0 anti-D0 K*0 PHSP; +0.0005 D0 anti-D*0 K*0 PHSP; +0.0005 D*0 anti-D0 K*0 PHSP; +0.0010 D*0 anti-D*0 K*0 PHSP; +# +# B -> D(*) X Exclusive modes +# +0.00276 D*- pi+ SVS; +0.00268 D- pi+ PHSP; +0.0075 rho+ D- SVS; +# +# D* rho HELAMP parameters taken from ICHEP 98-852. +0.0068 rho+ D*- SVV_HELAMP 0.317 0.19 0.936 0.0 0.152 1.47; +0.0005 D- pi+ pi0 PHSP; +0.0082 D*- pi+ pi0 PHSP; +0.0005 anti-D0 pi- pi+ PHSP; +0.00062 anti-D*0 pi- pi+ PHSP; +0.0005 anti-D*0 pi0 pi0 PHSP; +# +# D a1 updated Ref. [B1] +0.00834 a_1+ D- SVS; +0.0011 D- rho0 pi+ PHSP; +0.0011 D- rho+ pi0 PHSP; +0.0039 D- pi- pi+ pi+ PHSP; +0.0010 D- pi0 pi+ pi0 PHSP; +0.0010 anti-D0 pi- pi+ pi0 PHSP; +0.0001 anti-D0 pi0 pi0 pi0 PHSP; +# +# SVV_HELAMP for D* a1 taken from factorization. Recommandation +# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: +# updated Ref. [B1] +# October 26, 2004 Lange update +# +0.0120 D*- a_1+ SVV_HELAMP 0.458 0.0 0.866 0.0 0.458 0.0; +# +0.0025 D*- rho0 pi+ PHSP; +0.0010 D*- rho+ pi0 PHSP; +0.0000 D*- pi- pi+ pi+ PHSP; +0.0010 D*- pi0 pi+ pi0 PHSP; +0.0010 anti-D*0 pi- pi+ pi0 PHSP; +0.0001 anti-D*0 pi0 pi0 pi0 PHSP; +# +# B->D** pi and D** rho, recommendation +# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html +# +0.0006 D_1- pi+ SVS; +0.0001 D'_1- pi+ SVS; +0.0002 D_0*- pi+ PHSP; +0.0009 D_2*- pi+ STS; +0.0004 D_1- rho+ PHSP; +0.0013 D'_1- rho+ PHSP; +0.0022 D_2*- rho+ PHSP; +# +# +# B->DK, recommendation +# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html: +# update: Ref. [B1]: +# +0.00021 D*- K+ SVS; +0.00020 D- K+ PHSP; +0.00033 D*- K*+ SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; +0.00045 K*+ D- SVS; +#more DK modes - October 26, 2004 -Lange +0.00004 anti-D*0 anti-K0 SVS; +0.00004 anti-D0 anti-K0 PHSP; +0.000042 K*0 anti-D0 SVS; +0.00001 K*0 D0 SVS; +0.00004 anti-D*0 K*0 SVV_HELAMP 1. 0. 1. 0. 1. 0.; +0.00001 D*0 K*0 SVV_HELAMP 1. 0. 1. 0. 1. 0.; +# +# +# Color-suppressed modes. Br's are expectations from +# Phys. Rev. D57 (1998), 5363-5369, except for the eta' modes, which are set +# equal to the eta modes. SVV_HELAMP parameters are the same as in D*0 rho-, +# with phases set to 0. Recommendation http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/169.html: +# update: See Ref [B1]: +# further update October 26, 2004 Lange +# +0.000261 anti-D0 pi0 PHSP; +0.00017 anti-D*0 pi0 SVS; +# +0.00029 rho0 anti-D0 SVS; +0.00029 anti-D*0 rho0 SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; +# +0.000202 anti-D0 eta PHSP; +0.00018 anti-D*0 eta SVS; +# +0.000125 anti-D0 eta' PHSP; +0.000123 anti-D*0 eta' SVS; +# +0.000259 omega anti-D0 SVS; +0.00027 anti-D*0 omega SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; +# + #October 26, 2004 - Lange +0.00097 D_s0*+ D- PHSP; +0.00097 D*- D_s0*+ SVS; +0.0015 D_s1+ D- SVS; +0.0093 D*- D_s1+ SVV_HELAMP 0.4904 0. 0.7204 0. 0.4904 0.; +# +0.0066 anti-cd_0 ud_0 PYTHIA 22; +0.0134 anti-cd_1 ud_1 PYTHIA 22; +0.004 anti-cd_0 ud_0 PYTHIA 23; +0.008 anti-cd_1 ud_1 PYTHIA 23; +0.001 anti-cs_0 ud_0 PYTHIA 23; +0.002 anti-cs_1 ud_1 PYTHIA 23; +0.005 anti-cs_0 cd_0 PYTHIA 22; +0.010 anti-cs_1 cd_1 PYTHIA 22; +0.001 anti-cs_0 cd_0 PYTHIA 23; +0.002 anti-cs_1 cd_1 PYTHIA 23; +# +# +0.25885 u anti-d anti-c d PYTHIA 48; +0.04600 u anti-d anti-c d PYTHIA 13; +0.02100 u anti-s anti-c d PYTHIA 13; +0.01800 u anti-c anti-d d PYTHIA 48; +0.00090 u anti-c anti-s d PYTHIA 48; +#lange - try to crank up the psi production.... +0.07400 c anti-s anti-c d PYTHIA 13; +0.00600 c anti-d anti-c d PYTHIA 13; +0.00300 u anti-d anti-u d PYTHIA 48; +0.00400 c anti-s anti-u d PYTHIA 48; +# JGS 11/5/02 This and similar a few lines above have been divided by two +# to solve a double-counting problem for this channel +0.00205 u anti-u anti-d d PYTHIA 48; +0.00007 d anti-d anti-d d PYTHIA 48; +0.00009 s anti-s anti-d d PYTHIA 48; +0.00220 u anti-u anti-s d PYTHIA 48; +0.00180 d anti-d anti-s d PYTHIA 48; +0.00150 s anti-s anti-s d PYTHIA 48; +0.00500 anti-s g d PYTHIA 33; +Enddecay +# +# +# +Decay B- +# +# b -> c semileptonic +# +0.0650 D*0 e- anti-nu_e PHOTOS HQET 0.77 1.33 0.92; +0.0215 D0 e- anti-nu_e PHOTOS ISGW2; +0.0056 D_10 e- anti-nu_e PHOTOS ISGW2; +0.0049 D_0*0 e- anti-nu_e PHOTOS ISGW2; +0.009 D'_10 e- anti-nu_e PHOTOS ISGW2; +0.003 D_2*0 e- anti-nu_e PHOTOS ISGW2; +0.0063 D*+ pi- e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0003 D*0 pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0052 D+ pi- e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0010 D0 pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; +# +0.0650 D*0 mu- anti-nu_mu PHOTOS HQET 0.77 1.33 0.92; +0.0215 D0 mu- anti-nu_mu PHOTOS ISGW2; +0.0056 D_10 mu- anti-nu_mu PHOTOS ISGW2; +0.0049 D_0*0 mu- anti-nu_mu PHOTOS ISGW2; +0.009 D'_10 mu- anti-nu_mu PHOTOS ISGW2; +0.003 D_2*0 mu- anti-nu_mu PHOTOS ISGW2; +0.0063 D*+ pi- mu- anti-nu_mu PHOTOS GOITY_ROBERTS; +0.0003 D*0 pi0 mu- anti-nu_mu PHOTOS GOITY_ROBERTS; +0.0052 D+ pi- mu- anti-nu_mu PHOTOS GOITY_ROBERTS; +0.0010 D0 pi0 mu- anti-nu_mu PHOTOS GOITY_ROBERTS; +# +# b -> c tau nu +# +0.0208 D*0 tau- anti-nu_tau ISGW2;# equel to B0-> D*- tau+ nu +0.0088 D0 tau- anti-nu_tau ISGW2; +0.0013 D_10 tau- anti-nu_tau ISGW2; +0.0013 D_0*0 tau- anti-nu_tau ISGW2; +0.0020 D'_10 tau- anti-nu_tau ISGW2; +0.0020 D_2*0 tau- anti-nu_tau ISGW2; +# +# b -> u l nu +# +# NOTE: Do NOT CHANGE any BFs without using the corresponding set of +# hybrid weights (and vice versa). + +0.000077 pi0 e- anti-nu_e PHOTOS ISGW2; +0.000080 eta e- anti-nu_e PHOTOS ISGW2; +0.000128 rho0 e- anti-nu_e PHOTOS ISGW2; +0.000130 omega e- anti-nu_e PHOTOS ISGW2; +0.000084 eta' e- anti-nu_e PHOTOS ISGW2; +0.000000 D(2S)0 e- anti-nu_e PHOTOS ISGW2; +0.000000 D*(2S)0 e- anti-nu_e PHOTOS ISGW2; +0.001948 Xu0 e- anti-nu_e PHOTOS VubHybridBp; +# +0.000077 pi0 mu- anti-nu_mu PHOTOS ISGW2; +0.000080 eta mu- anti-nu_mu PHOTOS ISGW2; +0.000128 rho0 mu- anti-nu_mu PHOTOS ISGW2; +0.000130 omega mu- anti-nu_mu PHOTOS ISGW2; +0.000084 eta' mu- anti-nu_mu PHOTOS ISGW2; +0.000000 D(2S)0 mu- anti-nu_mu PHOTOS ISGW2; +0.000000 D*(2S)0 mu- anti-nu_mu PHOTOS ISGW2; +0.001948 Xu0 mu- anti-nu_mu PHOTOS VubHybridBp; +# +0.000030 pi0 tau- anti-nu_tau ISGW2; +0.000012 eta tau- anti-nu_tau ISGW2; +0.000042 rho0 tau- anti-nu_tau ISGW2; +0.000042 omega tau- anti-nu_tau ISGW2; +0.000018 eta' tau- anti-nu_tau ISGW2; +0.000046 a_10 tau- anti-nu_tau ISGW2; +0.000027 b_10 tau- anti-nu_tau ISGW2; +0.000004 a_00 tau- anti-nu_tau ISGW2; +0.000002 f_0 tau- anti-nu_tau ISGW2; +0.000002 f'_0 tau- anti-nu_tau ISGW2; +0.000023 f_1 tau- anti-nu_tau ISGW2; +0.000023 f'_1 tau- anti-nu_tau ISGW2; +0.000013 h_1 tau- anti-nu_tau ISGW2; +0.000013 h'_1 tau- anti-nu_tau ISGW2; +0.000020 f_2 tau- anti-nu_tau ISGW2; +0.000020 f'_2 tau- anti-nu_tau ISGW2; +0.000000 D(2S)0 tau- anti-nu_tau ISGW2; +0.000000 D*(2S)0 tau- anti-nu_tau ISGW2; +# +# b -> l nu +# +0.000180 tau- anti-nu_tau SLN; +0.000000 mu- anti-nu_mu PHOTOS SLN; +0.000000 e- anti-nu_e PHOTOS SLN; +# +# +# +# b->u hadronic +# Ref. [B1]: +# +0.000016 D_s- pi0 PHSP; +0.000020 D_s*- pi0 SVS; +# +0.000028 rho0 D_s- SVS; +0.000028 D_s*- rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; + +# +# b-> s gamma +# +0.0000403 K*- gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000135 K_1- gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000065 K'_1- gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000128 K'*- gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000166 K_2*- gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000017 K''*- gamma HELAMP 1.0 0.0 1.0 0.0; +0.0003137 anti-Xsu gamma BTOXSGAMMA 2; +# +0.00000049 K- e+ e- PHOTOS BTOSLLBALL; +0.000000700 K*- e+ e- PHOTOS BTOSLLBALL; +0.000004994 anti-Xsu e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.00000039 K- mu+ mu- PHOTOS BTOSLLBALL; +0.000000700 K*- mu+ mu- PHOTOS BTOSLLBALL; +0.000002506 anti-Xsu mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.000000130 K- tau+ tau- PHOTOS BTOSLLBALL; +0.000000190 K*- tau+ tau- PHOTOS BTOSLLBALL; +0.000000200 anti-Xsu tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +# +# +#------------------------------------------------------------------------------ +# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# Exclusive hadronic b->u +# +0.000026 pi- pi0 pi0 CB3PI-P00 alpha; +0.0000121 pi- pi- pi+ CB3PI-MPP alpha; +#### +0.0000049 eta pi- PHSP; +0.0000026 eta K- PHSP; +0.0000193 K*- eta SVS; +0.0000084 rho- eta SVS; +0.0000026 eta' pi- PHSP; +0.0000697 eta' K- PHSP; +0.0000049 K*- eta' SVS; +0.0000087 rho- eta' SVS; +0.0000067 omega pi- SVS; +0.0000068 omega K- SVS; +0.000001 omega K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.0000106 omega rho- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.0000001 phi pi- SVS; +0.0000083 phi K- SVS; +0.000023 anti-K0 pi- PHSP; +0.00000128 K0 K- PHSP; +0.0000055 pi- pi0 PHSP; +0.0000121 K- pi0 PHSP; +# +# 3-body John Back (jback@slac.stanford.edu) - Oct 15, 2002 +# JGS intersperses modes with pi0->eta,eta' +# B- modes +# +# rho0 3-body modes +### AJR zeroed rho0pi- in favor of the CB3PI-P00 decay above +0.0000000 rho0 pi- SVS; +0.0000042 rho0 K- SVS; +# +# rho- 3-body modes +### AJR zeroed rho-pi0 in favor of the CB3PI-MPP decay above +0.000000 rho- pi0 SVS; +0.000001 rho- anti-K0 SVS; + + +# +# rho(1450) 3-body modes +0.0000022 rho(2S)0 pi- SVS; +0.000001 rho(2S)0 K- SVS; +# +# f0,a0(980) 3-body modes +0.000001 f_0 pi- PHSP; +0.0000177 f_0 K- PHSP; +0.000001 a_0- anti-K0 PHSP; +0.000001 a_00 K- PHSP; +0.000001 a_00 pi- PHSP; +0.000001 a_0- pi0 PHSP; + +0.0000082 f_2 pi- PHSP; + +# +# K*(1430) 3-body modes +0.000047 anti-K_0*0 pi- PHSP; +0.000002 K_0*0 K- PHSP; +0.000047 K_0*- pi0 PHSP; +0.000002 K_0*- K0 PHSP; +# +# K* (892) 3-body modes +0.0000109 anti-K*0 pi- SVS; +0.0000069 K*- pi0 SVS; +0.000003 K*- K0 SVS; +# +# +# +# Non-resonant 3-body left-overs +# Most modes are set at 1e-6 +# +# pi-pi+pi-: high mass + f0(400-1200) = (1+1)e-6 +#0402270.000002 pi- pi+ pi- PHSP; +# +# K- pi+ pi-: high mass + f0(400-1200) = (5+5)e-6 +0.0000100 K- pi+ pi- PHSP; +# +# K- K+ pi-: just non-resonant +0.000001 K- K+ pi- PHSP; +# +# K- K+ K-: high mass structure near 1500 + non-res: total - phiK +0.0000296 K- K+ K- PHSP; +# +# +# K-K-pi+: suppressed mode (1e-7) +0.0000001 K- K- pi+ PHSP; +# K+pi-pi-: suppressed mode (1e-7) +0.0000001 K+ pi- pi- PHSP; +# +# +# K- K0 pi0 +0.000001 K- K0 pi0 PHSP; +0.000001 K- K0 eta PHSP; +0.000001 K- K0 eta' PHSP; +# +# pi- anti-K0 pi0 +0.000001 pi- anti-K0 pi0 PHSP; +0.000001 pi- anti-K0 eta PHSP; +0.000001 pi- anti-K0 eta' PHSP; +# +# pi- pi0 pi0 +#0402270.000001 pi- pi0 pi0 PHSP; +0.000001 pi- pi0 eta PHSP; +0.000001 pi- pi0 eta' PHSP; +0.000001 pi- eta eta PHSP; +0.000001 pi- eta eta' PHSP; +# +# K- pi0 pi0 +0.000001 K- pi0 pi0 PHSP; +0.000001 K- pi0 eta PHSP; +0.000001 K- pi0 eta' PHSP; +0.000001 K- eta eta PHSP; +0.000001 K- eta eta' PHSP; +0.000001 K- eta' eta' PHSP; +# +# K- anti-K0 K0: 4*BF(K+KsKs) (4 is a guess) +0.000046 K- anti-K0 K0 PHSP; +# +# pi- anti-K0 K0 +0.000001 pi- anti-K0 K0 PHSP; +# +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC +#--------------------------------------------------------------------------- +# +#4-body modes from Andrei Gritsan +#--- 4-body rho-rho, rho-pi-pi, pi-pi-pi-pi -------------------------- +0.000018 rho- rho0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000010 rho0 pi- pi0 PHSP; +0.000005 rho0 pi- eta PHSP; +0.000002 rho0 pi- eta' PHSP; +0.000010 omega pi- pi0 PHSP; +0.000005 omega pi- eta PHSP; +0.000002 omega pi- eta' PHSP; +0.000010 rho- pi- pi+ PHSP; +0.000010 rho- pi0 pi0 PHSP; +0.000005 rho- pi0 eta PHSP; +0.000002 rho- eta eta PHSP; +0.000002 rho- pi0 eta' PHSP; +0.000010 pi+ pi- pi- pi0 PHSP; +0.000005 pi+ pi- pi- eta PHSP; +0.000002 pi+ pi- pi- eta' PHSP; +0.000010 pi- pi0 pi0 pi0 PHSP; +0.000005 pi- eta pi0 pi0 PHSP; +0.000002 pi- eta eta pi0 PHSP; +0.000002 pi- eta' pi0 pi0 PHSP; +0.000001 pi- eta' eta pi0 PHSP; +0.0000204 a_10 pi- SVS; +0.0000264 a_1- pi0 SVS; +0.0000067 b_10 pi- SVS; +0.000001 b_1- pi0 SVS; +0.000002 rho- f_0 SVS; +0.000010 rho- a_00 SVS; +0.000002 rho0 a_0- SVS; +0.000010 f_0 pi- pi0 PHSP; +0.000001 a_00 pi- pi0 PHSP; +0.000001 a_0- pi0 pi0 PHSP; +0.000001 a_0+ pi- pi- PHSP; +#--- 4-body rho-K*, rho-pi-K, K*-pi-pi, pi-pi-pi-K ------------------- +0.0000092 rho- anti-K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000005 rho0 K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000010 pi- pi0 anti-K*0 PHSP; +0.000005 pi- eta anti-K*0 PHSP; +0.000067 pi+ pi- K*- PHSP; +0.000010 pi0 pi0 K*- PHSP; +0.000005 pi0 eta K*- PHSP; +0.000002 eta eta K*- PHSP; +0.000002 pi0 eta' K*- PHSP; +0.000001 eta eta' K*- PHSP; +0.000010 rho- anti-K0 pi0 PHSP; +0.000005 rho- anti-K0 eta PHSP; +0.000002 rho- anti-K0 eta' PHSP; +0.000010 rho- K- pi+ PHSP; +0.000010 rho+ K- pi- PHSP; +0.000005 rho0 anti-K0 pi- PHSP; +0.000005 rho0 K- pi0 PHSP; +0.000002 rho0 K- eta PHSP; +0.000001 rho0 K- eta' PHSP; +0.000005 omega anti-K0 pi- PHSP; +0.000005 omega K- pi0 PHSP; +0.000002 omega K- eta PHSP; +0.000001 omega K- eta' PHSP; +0.000010 pi+ pi- pi- anti-K0 PHSP; +0.000010 pi- pi0 pi0 anti-K0 PHSP; +0.000005 pi- eta pi0 anti-K0 PHSP; +0.000002 pi- eta eta anti-K0 PHSP; +0.000010 pi+ pi- pi0 K- PHSP; +0.000005 pi+ pi- eta K- PHSP; +0.000010 pi0 pi0 pi0 K- PHSP; +0.000005 pi0 pi0 eta K- PHSP; +0.000002 pi0 eta eta K- PHSP; +0.000002 pi0 pi0 eta' K- PHSP; +0.000001 pi0 eta eta' K- PHSP; +0.000010 rho- anti-K_0*0 PHSP; +0.000010 rho0 K_0*- PHSP; +0.000010 pi- pi0 anti-K_0*0 PHSP; +0.000010 pi0 pi0 K_0*- PHSP; +0.0000052 K*- f_0 SVS; +0.000010 a_10 K- SVS; +0.0000349 a_1- anti-K0 SVS; +0.0000091 b_10 K- SVS; +0.000013 b_1- anti-K0 SVS; +0.000005 K*- a_00 SVS; +0.000005 anti-K*0 a_0- SVS; +#--- 4-body K*-K*, rho-K-K, K*-K-pi, phi-pi-pi, pi-pi-K-K ------------ +0.000001 K*0 K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000001 phi rho- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000001 phi pi- pi0 PHSP; +0.0000005 phi pi- eta PHSP; +0.0000002 phi pi- eta' PHSP; +0.000001 K+ K- rho- PHSP; +0.000001 K0 anti-K0 rho- PHSP; +0.000001 K0 K- rho0 PHSP; +0.000001 K0 K- omega PHSP; +0.000001 K+ K- pi- pi0 PHSP; +0.0000005 K+ K- pi- eta PHSP; +0.0000002 K+ K- pi- eta' PHSP; +0.000001 K0 anti-K0 pi- pi0 PHSP; +0.0000005 K0 anti-K0 pi- eta PHSP; +0.0000002 K0 anti-K0 pi- eta' PHSP; +0.000001 anti-K0 K+ pi- pi- PHSP;#2007 added +0.000001 K0 K- pi+ pi- PHSP; +0.00000025 K0 K- pi0 pi0 PHSP; +0.0000005 K0 K- pi0 eta PHSP; +0.00000025 K0 K- eta eta PHSP;#missing from B+ +0.0000002 K0 K- pi0 eta' PHSP; +0.0000001 K0 K- eta eta' PHSP; +0.000001 K*- K+ pi- PHSP; +0.000001 K*+ K- pi- PHSP; + +0.000001 K0 anti-K*0 pi- PHSP; +0.000001 K*0 anti-K0 pi- PHSP; +0.000001 K- K*0 pi0 PHSP; +0.0000005 K- K*0 eta PHSP; +0.0000002 K- K*0 eta' PHSP; +0.000001 K*- K0 pi0 PHSP; +0.0000005 K*- K0 eta PHSP; +0.0000002 K*- K0 eta' PHSP; +#--- 4-body phi-K*, phi-K-pi, K-K-K*, pi-K-K-K ----------------------- +0.0000096 phi K*- SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000010 phi anti-K0 pi- PHSP; +0.000010 phi K- pi0 PHSP; +0.000005 phi K- eta PHSP; +0.000002 phi K- eta' PHSP; +0.000031 K- K+ K*- PHSP;#total -phiK* +0.000010 K- K*+ K- PHSP; + +0.000010 K- K0 anti-K*0 PHSP; +0.000010 K- K*0 anti-K0 PHSP; +0.000010 K0 K*- anti-K0 PHSP; +0.000010 K+ K- K- pi0 PHSP; +0.000005 K+ K- K- eta PHSP; +0.000002 K+ K- K- eta' PHSP; +0.000010 K+ K- anti-K0 pi- PHSP; +0.000010 K0 anti-K0 K- pi0 PHSP; +0.000005 K0 anti-K0 K- eta PHSP; +0.000002 K0 anti-K0 K- eta' PHSP; +0.000010 K0 anti-K0 anti-K0 pi- PHSP; +0.000010 phi K_0*- PHSP; +0.000010 K- K+ K_0*- PHSP; +0.000010 K- K- K_0*+ PHSP; +0.000010 K- anti-K_0*0 K0 PHSP; +0.000010 K- K_0*0 anti-K0 PHSP; +0.000002 phi K'_1- PHSP; +0.000002 K- K+ K'_1- PHSP; +#--- 4-body phi-phi, phi-K-K, K-K-K-K -------------------------------- +0.000001 phi K0 K- PHSP; +0.000001 K+ K- K- K0 PHSP; +0.000001 K0 anti-K0 K0 K- PHSP; +#5-body modes from Jim Smith - 1/30/05 +#--- 5-body rho-rho-pi, rho-pi-pi-pi, pi-pi-pi-pi-pi ------------------- +0.000010 rho0 rho0 pi- PHSP; +0.000010 rho- rho0 pi0 PHSP; +0.000005 rho- rho0 eta PHSP; +0.000002 rho- rho0 eta' PHSP; +0.000010 rho+ rho- pi- PHSP; +0.000010 omega rho0 pi- PHSP; +0.000010 omega rho- pi0 PHSP; +0.000005 omega rho- eta PHSP; +0.000002 omega rho- eta' PHSP; +0.000002 rho0 pi+ pi- pi- PHSP; +0.000002 rho0 pi- pi0 pi0 PHSP; +0.000001 rho0 pi- eta pi0 PHSP; +0.000001 rho0 pi- eta' pi0 PHSP; +0.000002 omega pi- pi0 pi0 PHSP; +0.000001 omega pi- eta pi0 PHSP; +0.000001 omega pi- eta' pi0 PHSP; +0.000002 rho+ pi- pi- pi0 PHSP; +0.000001 rho+ pi- pi- eta PHSP; +0.000001 rho+ pi- pi- eta' PHSP; +0.000002 rho- pi+ pi- pi0 PHSP; +0.000001 rho- pi+ pi- eta PHSP; +0.000001 rho- pi+ pi- eta' PHSP; +0.000002 rho- pi0 pi0 pi0 PHSP; +0.000001 rho- pi0 eta pi0 PHSP; +0.000001 rho- eta eta pi0 PHSP; +0.000001 rho- pi0 eta' pi0 PHSP; +0.000001 pi+ pi- pi- pi0 pi0 PHSP; +0.000001 pi+ pi- pi- eta pi0 PHSP; +0.000001 pi+ pi- pi- eta' pi0 PHSP; +0.000001 pi- pi0 pi0 pi0 pi0 PHSP; +0.000001 pi- eta pi0 pi0 pi0 PHSP; +0.000001 pi- eta' pi0 pi0 pi0 PHSP; +0.000010 a_1- rho0 PHSP; +0.000010 a_1- omega PHSP; +0.000010 a_1- f_0 PHSP; +0.000010 a_10 pi- pi0 PHSP; +0.000005 a_10 pi- eta PHSP; +0.000002 a_10 pi- eta' PHSP; +0.000010 a_1+ pi- pi- PHSP; +0.000010 a_1- pi+ pi- PHSP; +0.000010 a_1- pi0 pi0 PHSP; +0.000005 a_1- pi0 eta PHSP; +0.000002 a_1- pi0 eta' PHSP; +0.000010 rho- f_0 pi0 PHSP; +0.000005 rho- f_0 eta PHSP; +0.000002 rho- f_0 eta' PHSP; +0.000010 rho0 f_0 pi- PHSP; +0.000010 omega f_0 pi- PHSP; +0.000010 rho- a_00 pi0 PHSP; +0.000005 rho- a_00 eta PHSP; +0.000002 rho- a_00 eta' PHSP; +0.000010 rho+ a_0- pi- PHSP; +0.000010 rho0 a_0- pi0 PHSP; +0.000005 rho0 a_0- eta PHSP; +0.000002 rho0 a_0- eta' PHSP; +0.000002 f_0 pi+ pi- pi- PHSP; +0.000002 f_0 pi- pi0 pi0 PHSP; +0.000001 f_0 pi- pi0 eta PHSP; +0.000001 f_0 pi- pi0 eta' PHSP; +0.000001 a_00 pi- pi0 pi0 PHSP; +0.000001 a_0- pi0 pi0 pi0 PHSP; +0.000001 a_0+ pi- pi- pi0 PHSP; +#--- 5-body rho-K*pi, rho-2pi-K, K*-3pi, 4pi-K ------------------- +0.000010 rho- K*- pi+ PHSP; +0.000010 rho+ K*- pi- PHSP; +0.000010 rho- anti-K*0 pi0 PHSP; +0.000005 rho- anti-K*0 eta PHSP; +0.000002 rho- anti-K*0 eta' PHSP; +0.000010 rho0 anti-K*0 pi- PHSP; +0.000010 rho0 K*- pi0 PHSP; +0.000005 rho0 K*- eta PHSP; +0.000002 rho0 K*- eta' PHSP; +0.000010 omega anti-K*0 pi- PHSP; +0.000010 omega K*- pi0 PHSP; +0.000005 omega K*- eta PHSP; +0.000002 omega K*- eta' PHSP; +0.000010 pi+ pi- anti-K*0 pi- PHSP; +0.000010 pi- pi0 anti-K*0 pi0 PHSP; +0.000005 pi- eta anti-K*0 pi0 PHSP; +0.000002 pi- eta' anti-K*0 pi0 PHSP; +0.000010 pi- pi+ K*- pi0 PHSP; +0.000005 pi- pi+ K*- eta PHSP; +0.000002 pi- pi+ K*- eta' PHSP; +0.000010 pi0 pi0 K*- pi0 PHSP; +0.000005 pi0 eta K*- pi0 PHSP; +0.000002 eta eta K*- pi0 PHSP; +0.000002 pi0 eta' K*- pi0 PHSP; +0.000001 eta eta' K*- pi0 PHSP; +0.000010 rho- anti-K0 pi+ pi- PHSP; +0.000010 rho- anti-K0 pi0 pi0 PHSP; +0.000005 rho- anti-K0 eta pi0 PHSP; +0.000002 rho- anti-K0 eta' pi0 PHSP; +0.000010 rho- K- pi+ pi0 PHSP; +0.000010 rho+ K- pi- pi0 PHSP; +0.000010 rho+ anti-K0 pi- pi- PHSP; +0.000010 rho0 anti-K0 pi- pi0 PHSP; +0.000010 rho0 K- pi0 pi0 PHSP; +0.000005 rho0 K- eta pi0 PHSP; +0.000002 rho0 K- eta' pi0 PHSP; +0.000010 omega anti-K0 pi- pi0 PHSP; +0.000010 omega K- pi0 pi0 PHSP; +0.000005 omega K- eta pi0 PHSP; +0.000002 omega K- eta' pi0 PHSP; +0.000002 pi- pi- pi+ anti-K0 pi0 PHSP; +0.000001 pi- pi- pi+ anti-K0 eta PHSP; +0.000001 pi- pi- pi+ anti-K0 eta' PHSP; +0.000002 pi- pi0 pi0 anti-K0 pi0 PHSP; +0.000001 pi- eta pi0 anti-K0 pi0 PHSP; +0.000001 pi- eta eta anti-K0 pi0 PHSP; +0.000002 pi+ pi- pi+ K- pi- PHSP; +0.000002 pi+ pi- pi0 K- pi0 PHSP; +0.000001 pi+ pi- eta K- pi0 PHSP; +0.000001 pi+ pi- eta' K- pi0 PHSP; +0.000002 pi0 pi0 pi0 K- pi0 PHSP; +0.000001 pi0 pi0 eta K- pi0 PHSP; +0.000001 pi0 eta eta K- pi0 PHSP; +0.000001 pi0 pi0 eta' K- pi0 PHSP; +0.000001 pi0 eta eta' K- pi0 PHSP; +0.000010 rho0 anti-K_0*0 pi- PHSP; +0.000010 rho- anti-K_0*0 pi0 PHSP; +0.000005 rho- anti-K_0*0 eta PHSP; +0.000002 rho- anti-K_0*0 eta' PHSP; +0.000010 rho- K_0*- pi+ PHSP; +0.000010 rho0 K_0*- pi0 PHSP; +0.000005 rho0 K_0*- eta PHSP; +0.000002 rho0 K_0*- eta' PHSP; +0.000010 rho+ K_0*- pi- PHSP;#added 2007 not in PDG exist in B+ +0.000010 pi- pi- anti-K_0*0 pi+ PHSP; +0.000010 pi- pi0 anti-K_0*0 pi0 PHSP; +0.000005 pi- pi0 anti-K_0*0 eta PHSP; +0.000002 pi- pi0 anti-K_0*0 eta' PHSP; +0.000010 pi0 pi0 K_0*- pi0 PHSP; +0.000005 pi0 pi0 K_0*- eta PHSP; +0.000002 pi0 pi0 K_0*- eta' PHSP; +0.000010 anti-K*0 f_0 pi- PHSP; +0.000010 K*- f_0 pi0 PHSP; +0.000005 K*- f_0 eta PHSP; +0.000002 K*- f_0 eta' PHSP; +0.000020 a_10 K*- PHSP; +0.000010 a_10 K- pi0 PHSP; +0.000010 a_10 anti-K0 pi- PHSP; +0.000020 a_1- anti-K*0 PHSP; +0.000010 a_1- K- pi+ PHSP; +0.000010 a_1- anti-K0 pi0 PHSP; +0.000005 K*- a_00 pi0 PHSP; +0.000005 anti-K*0 a_0- pi0 PHSP; +#--- 5-body K*-K*pi,rho-K-Kpi, K*-K-2pi, phi-3pi, 3pi-K-K ------------ +0.000001 K*0 anti-K*0 pi- PHSP; +0.000001 K*0 K*- pi0 PHSP; +0.0000005 K*0 K*- eta PHSP; +0.0000002 K*0 K*- eta' PHSP; +0.000001 phi rho0 pi- PHSP; +0.000001 phi omega pi- PHSP; +0.000001 phi f_0 pi- PHSP; +0.000001 phi rho- pi0 PHSP; +0.0000005 phi rho- eta PHSP; +0.0000002 phi rho- eta' PHSP; +0.000001 phi pi+ pi- pi- PHSP; +0.000001 phi pi- pi0 pi0 PHSP; +0.0000005 phi pi- eta pi0 PHSP; +0.0000002 phi pi- eta' pi0 PHSP; +0.000001 K0 K- rho+ pi- PHSP; +0.000001 K0 K- rho- pi+ PHSP; +0.000001 K0 K- rho0 pi0 PHSP; +0.0000005 K0 K- rho0 eta PHSP; +0.0000002 K0 K- rho0 eta' PHSP; +0.000001 K0 K- omega pi0 PHSP; +0.000001 K0 K- f_0 pi0 PHSP; +0.000001 K+ K- rho0 pi- PHSP; +0.000001 K+ K- rho- pi0 PHSP; +0.0000005 K+ K- rho- eta PHSP; +0.0000002 K+ K- rho- eta' PHSP; +0.000001 K+ K- omega pi- PHSP; +0.000001 K0 anti-K0 rho0 pi- PHSP; +0.000001 K0 anti-K0 omega pi- PHSP; +0.000001 K0 anti-K0 f_0 pi- PHSP; +0.000001 K0 anti-K0 rho- pi0 PHSP; +0.0000005 K0 anti-K0 rho- eta PHSP; +0.0000002 K0 anti-K0 rho- eta' PHSP; +0.000001 anti-K0 K+ rho- pi- PHSP; +0.0000002 anti-K0 K+ pi- pi- pi0 PHSP; +0.0000001 anti-K0 K+ pi- pi- eta PHSP; +0.0000001 anti-K0 K+ pi- pi- eta' PHSP; +0.0000002 K+ K- pi+ pi- pi- PHSP; +0.0000002 K+ K- pi- pi0 pi0 PHSP; +0.0000001 K+ K- pi- eta pi0 PHSP; +0.0000001 K+ K- pi- eta' pi0 PHSP; +0.0000002 K0 anti-K0 pi+ pi- pi- PHSP; +0.0000002 K0 anti-K0 pi- pi0 pi0 PHSP; +0.0000001 K0 anti-K0 pi- eta pi0 PHSP; +0.0000001 K0 anti-K0 pi- eta' pi0 PHSP; +0.0000002 K0 K- pi+ pi- pi0 PHSP; +0.0000001 K0 K- pi+ pi- eta PHSP; +0.0000001 K0 K- pi+ pi- eta' PHSP; +0.0000002 K0 K- pi0 pi0 pi0 PHSP; +0.0000001 K0 K- pi0 eta pi0 PHSP; +0.0000001 K0 K- pi0 eta' pi0 PHSP; +0.000001 anti-K*0 K+ pi- pi- PHSP; +0.000001 K*+ anti-K0 pi- pi- PHSP; +0.000001 K*- K+ pi- pi0 PHSP; +0.000001 K*+ K- pi- pi0 PHSP; +0.000001 K*0 anti-K0 pi- pi0 PHSP; +0.000001 K0 anti-K*0 pi- pi0 PHSP; +0.000001 K- K*0 pi0 pi0 PHSP; +0.0000005 K- K*0 eta pi0 PHSP; +0.0000002 K- K*0 eta' pi0 PHSP; +0.000001 K*- K0 pi0 pi0 PHSP; +0.0000005 K*- K0 eta pi0 PHSP; +0.0000002 K*- K0 eta' pi0 PHSP; +#--- 5-body phi-K*-pi, phi-K-2pi, K-K-K*-pi, 2pi-K-K-K -------------------- +0.000010 phi K*- pi0 PHSP; +0.000010 phi K- rho0 PHSP; +0.000010 phi K- omega PHSP; +0.000010 phi K- f_0 PHSP; +0.000010 phi anti-K0 rho- PHSP; +0.000010 phi anti-K0 pi- pi0 PHSP; +0.000010 phi K- pi+ pi- PHSP; +0.000010 phi K- pi0 pi0 PHSP; +0.000005 phi K- eta pi0 PHSP; +0.000002 phi K- eta' pi0 PHSP; +0.000010 K+ K- K*- pi0 PHSP; +0.000010 K- K*+ K- pi0 PHSP; +0.000010 K- K0 anti-K*0 pi0 PHSP; +0.000010 K- K*0 anti-K0 pi0 PHSP; + +0.000010 K0 K*- anti-K0 pi0 PHSP; +0.000010 K+ K- K- rho0 PHSP; +0.000010 K+ K- K- omega PHSP; +0.000010 K+ K- K- f_0 PHSP; +0.000010 K- K+ anti-K0 rho- PHSP; +0.000010 K- K- K+ pi0 pi0 PHSP; +0.000005 K- K- K+ eta pi0 PHSP; +0.000002 K- K- K+ eta' pi0 PHSP; +0.000010 K+ K- anti-K0 pi- pi0 PHSP; +0.000010 K0 anti-K0 K- pi0 pi0 PHSP; +0.000005 K0 anti-K0 K- eta pi0 PHSP; +0.000002 K0 anti-K0 K- eta' pi0 PHSP; +0.000010 K0 anti-K0 anti-K0 pi- pi0 PHSP; +0.000010 phi anti-K_0*0 pi- PHSP; +0.000010 phi K_0*- pi0 PHSP; +0.000005 phi K_0*- eta PHSP; +0.000002 phi K_0*- eta' PHSP; +0.000010 K- K+ K_0*- pi0 PHSP; +0.000005 K- K+ K_0*- eta PHSP; +0.000002 K- K+ K_0*- eta' PHSP; +0.000010 K- K- K_0*+ pi0 PHSP; +0.000005 K- K- K_0*+ eta PHSP; +0.000002 K- K- K_0*+ eta' PHSP; +0.000010 K- K+ anti-K_0*0 pi- PHSP; +0.000010 K- K- K_0*0 pi+ PHSP; +0.000010 anti-K0 anti-K0 K_0*0 pi- PHSP; +0.000010 K- anti-K_0*0 K0 pi0 PHSP; +0.000005 K- anti-K_0*0 K0 eta PHSP; +0.000002 K- anti-K_0*0 K0 eta' PHSP; +0.000010 K- K_0*0 anti-K0 pi0 PHSP; +0.000005 K- K_0*0 anti-K0 eta PHSP; +0.000002 K- K_0*0 anti-K0 eta' PHSP; +0.000002 phi anti-K'_10 pi- PHSP; +0.000002 phi K'_1- pi0 PHSP; +0.000001 phi K'_1- eta PHSP; +0.000001 phi K'_1- eta' PHSP; +0.000002 K- K+ anti-K'_10 pi- PHSP; +0.000002 K- K+ K'_1- pi0 PHSP; +0.000001 K- K+ K'_1- eta PHSP; +0.000001 K- K+ K'_1- eta' PHSP; +0.000002 K- K- K'_1+ pi0 PHSP; +0.000002 K- K- K'_10 pi+ PHSP; #2007 changed anti-K'_10 to K'_10 +0.000002 K0 anti-K0 anti-K'_10 pi- PHSP; +0.000002 K0 anti-K0 K'_1- pi0 PHSP; +0.000001 K0 anti-K0 K'_1- eta PHSP; +0.000001 K0 anti-K0 K'_1- eta' PHSP; +0.000002 anti-K0 anti-K0 K'_10 pi- PHSP; +0.000002 K0 K0 K'_1- pi0 PHSP; +0.000001 K0 K0 K'_1- eta PHSP; +0.000001 K0 K0 K'_1- eta' PHSP; + +0.000010 K- K'_10 anti-K0 pi0 PHSP; +0.000005 K- K'_10 anti-K0 eta PHSP; +0.000002 K- K'_10 anti-K0 eta' PHSP; +0.000010 K- K0 anti-K'_10 pi0 PHSP; +0.000005 K- K0 anti-K'_10 eta PHSP; +0.000002 K- K0 anti-K'_10 eta' PHSP; +#--- 5-body phi-phi-K, phi-phi-pi, phi-3K, phi-K-K-pi, 5K, 4K-pi ------------ +0.0000049 phi phi K- PHSP; +0.000001 phi phi pi- PHSP; +0.000001 phi K+ K- K- PHSP; +0.000001 phi K0 anti-K0 K- PHSP; +0.000001 phi K0 anti-K0 pi- PHSP; +0.000001 phi K0 K- pi0 PHSP; +0.000001 K+ K- K+ K- pi- PHSP; +0.000001 K+ K- K0 anti-K0 pi- PHSP; +0.000001 K+ K- K- K0 pi0 PHSP; +0.000001 K0 anti-K0 K0 K- pi0 PHSP; +#--- 6-body phi-phi-K*, phi-3Kpi, phi-K-K-2pi ------------ +0.000003 phi phi K*- PHSP; +0.000001 phi K+ K- K*- PHSP; +0.000001 phi K0 anti-K0 K*- PHSP; +0.000001 phi K0 K- anti-K*0 PHSP; ## 2007 changed K*0 to anti-K*0 +0.000001 phi K+ K- K- pi0 PHSP; +0.000001 phi K+ K- anti-K0 pi- PHSP; +0.000001 phi K0 anti-K0 K- pi0 PHSP; +0.000001 phi K0 anti-K0 anti-K0 pi- PHSP; +0.000001 phi K0 K- K- pi+ PHSP; +#--- 6-body a1a1 ------------ +0.000050 a_1- a_10 PHSP; +# +# B -> cc= s sum = 1.92% +# +0.001007 J/psi K- SVS; +0.00141 J/psi K*- SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.000049 J/psi pi- SVS; +0.00006 J/psi rho- SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.0002 J/psi anti-K0 pi- PHSP; +0.0001 J/psi K- pi0 PHSP; +#rl0.0007 J/psi K- pi+ pi- PHSP; +#rl0.00035 J/psi K- pi0 pi0 PHSP; +#rl0.00035 J/psi anti-K0 pi- pi0 PHSP; +0.0018 J/psi K_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi K'_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi K_2*- PHSP; + +0.000052 J/psi phi K- PHSP; +# +0.000648 psi(2S) K- SVS; +0.00067 psi(2S) K*- SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.0004 psi(2S) anti-K0 pi- PHSP; +0.0002 psi(2S) K- pi0 PHSP; +0.0019 psi(2S) K- pi+ pi- PHSP; +0.0001 psi(2S) K- pi0 pi0 PHSP; +0.0001 psi(2S) anti-K0 pi- pi0 PHSP; +0.0004 psi(2S) K_1- PHSP; +# +0.00091 eta_c K- PHSP; +0.0012 K*- eta_c SVS; +0.0002 eta_c anti-K0 pi- PHSP; +0.0001 eta_c K- pi0 PHSP; +0.0002 eta_c K- pi+ pi- PHSP; +0.0001 eta_c K- pi0 pi0 PHSP; +0.0001 eta_c anti-K0 pi- pi0 PHSP; +# +0.00034 eta_c(2S) K- PHSP; +0.00048 K*- eta_c(2S) SVS; +0.00008 eta_c(2S) anti-K0 pi- PHSP; +0.00005 eta_c(2S) K- pi0 PHSP; +0.00008 eta_c(2S) K- pi+ pi- PHSP; +0.00005 eta_c(2S) K- pi0 pi0 PHSP; +0.00005 eta_c(2S) anti-K0 pi- pi0 PHSP; +# +0.00014 chi_c0 K- PHSP; +0.0004 K*- chi_c0 SVS; +0.0002 chi_c0 anti-K0 pi- PHSP; +0.0001 chi_c0 K- pi0 PHSP; +0.0002 chi_c0 K- pi+ pi- PHSP; +0.0001 chi_c0 K- pi0 pi0 PHSP; +0.0001 chi_c0 anti-K0 pi- pi0 PHSP; +# +0.00049 chi_c1 K- SVS; +0.00036 chi_c1 K*- SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.0004 chi_c1 anti-K0 pi- PHSP; +0.0002 chi_c1 K- pi0 PHSP; +0.0004 chi_c1 K- pi+ pi- PHSP; +0.0002 chi_c1 K- pi0 pi0 PHSP; +0.0002 chi_c1 anti-K0 pi- pi0 PHSP; +# +0.00002 chi_c2 K- STS; +0.00001 chi_c2 K*- PHSP; +0.0002 chi_c2 anti-K0 pi- PHSP; +0.0001 chi_c2 K- pi0 PHSP; +0.0002 chi_c2 K- pi+ pi- PHSP; +0.0001 chi_c2 K- pi0 pi0 PHSP; +0.0001 chi_c2 anti-K0 pi- pi0 PHSP; +# +0.00049 psi(3770) K- SVS; +0.0005 psi(3770) K*- PHSP; +0.0003 psi(3770) anti-K0 pi- PHSP; +0.0002 psi(3770) K- pi0 PHSP; +0.0002 psi(3770) K- pi+ pi- PHSP; +0.0001 psi(3770) K- pi0 pi0 PHSP; +0.0001 psi(3770) anti-K0 pi- pi0 PHSP; +0.0003 psi(3770) K_1- PHSP; +# +# b -> c (sc=) -> D Ds X Sum = 10% +# +0.0100 D0 D_s- PHSP; +0.0082 D*0 D_s- SVS; +0.0076 D_s*- D0 SVS; +0.0171 D_s*- D*0 SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; +0.0006 D'_10 D_s- SVS; +0.0012 D'_10 D_s*- SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; +0.0012 D_10 D_s- SVS; +0.0024 D_10 D_s*- SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; +0.0042 D_2*0 D_s- STS; +0.0040 D_2*0 D_s*- PHSP; +# +# +# SVV_HELAMP from factorization, recommendation +# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: +# +0.0036 D_s- D+ pi- PHSP; +0.0018 D_s- D0 pi0 PHSP; +0.0037 D_s*- D+ pi- PHSP; +0.0018 D_s*- D0 pi0 PHSP; +0.0033 D_s- D+ pi- pi0 PHSP; +0.0033 D_s- D0 pi- pi+ PHSP; +0.0008 D_s- D0 pi0 pi0 PHSP; +0.0033 D_s*- D+ pi- pi0 PHSP; +0.0033 D_s*- D0 pi- pi+ PHSP; +0.0008 D_s*- D0 pi0 pi0 PHSP; +# +# b -> c (sc=) -> D D= K X Sum = 8% +# update: Ref. [B1]: +# +0.0017 D0 D- anti-K0 PHSP; +0.0052 D0 D*- anti-K0 PHSP; +0.0031 D*0 D- anti-K0 PHSP; +0.0078 D*0 D*- anti-K0 PHSP; +# External+internal W-emission amplitude +0.00137 D0 anti-D0 K- PHSP; +0.0018 D*0 anti-D0 K- PHSP; +0.0047 D0 anti-D*0 K- PHSP; +0.0053 D*0 anti-D*0 K- PHSP; +# Internal W-emission amplitude (color suppressed modes) +0.0003 D- D+ K- PHSP; +0.0005 D*- D+ K- PHSP; +0.0015 D- D*+ K- PHSP; +0.0015 D*- D*+ K- PHSP; +# +0.0025 D0 D- anti-K*0 PHSP; +0.0025 D*0 D- anti-K*0 PHSP; +0.0025 D0 D*- anti-K*0 PHSP; +0.0050 D*0 D*- anti-K*0 PHSP; +# +0.0025 D0 anti-D0 K*- PHSP; +0.0025 D*0 anti-D0 K*- PHSP; +0.0025 D0 anti-D*0 K*- PHSP; +0.0050 D*0 anti-D*0 K*- PHSP; +# +0.0005 D- D+ K*- PHSP; +0.0005 D*- D+ K*- PHSP; +0.0005 D- D*+ K*- PHSP; +0.0010 D*- D*+ K*- PHSP; +# +# B->D(*)D(*). See Ref [B1]: +# +0.00042 D- D0 PHSP; +0.00039 D*- D0 SVS; +0.00063 D*0 D- SVS; +0.00081 D*0 D*- SVV_HELAMP 0.47 0.0 0.96 0.0 0.56 0.0; + +# +# B -> D(*) X Exclusive Modes +# +0.00519 D*0 pi- SVS; +0.00484 D0 pi- PHSP; +0.0134 rho- D0 SVS; +# D* rho HELAMP parameters taken from ICHEP 98-852. +0.0098 D*0 rho- SVV_HELAMP 0.228 0.95 0.932 0.0 0.283 1.13; +# +0.0005 D0 pi0 pi- PHSP; +0.0005 D*0 pi0 pi- PHSP; +0.00102 D+ pi- pi- PHSP; +0.00125 D*+ pi- pi- PHSP; +# +# D a1 updated Ref. [B1]: +0.00887 a_1- D0 SVS; +0.0021 D0 rho0 pi- PHSP; +0.0050 D0 pi+ pi- pi- PHSP; +# +# SVV_HELAMP from factorization, recommendation +# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: +# updated Ref. [B1]: +# +0.01900 D*0 a_1- SVV_HELAMP 0.200 0.0 0.866 0.0 0.458 0.0; +# +0.0005 D*0 rho0 pi- PHSP; +0.00045 D*0 pi+ pi- pi- PHSP; +# +0.0020 D+ rho- pi- PHSP; +0.0020 D+ pi0 pi- pi- PHSP; +0.0020 D*+ rho- pi- PHSP; +0.0150 D*+ pi0 pi- pi- PHSP; +0.0005 D*0 rho- pi0 PHSP; +0.0005 D*0 pi- pi0 pi0 PHSP; +# +# B->D** pi and D** rho, recommendation +# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html +# further update October 26, 2004 Lange +# +0.0013 D_10 pi- SVS; +0.00075 D'_10 pi- SVS; +0.00086 D_2*0 pi- STS; +0.00091 D_0*0 pi- PHSP; +0.0007 D_10 rho- PHSP; +0.0022 D'_10 rho- PHSP; +0.0038 D_2*0 rho- PHSP; + +# +# +# B->DK, recommendation +# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html: +# update: Ref [B1]: +# +0.000402 D0 K- PHSP; +0.000416 D*0 K- SVS; +0.00053 K*- D0 SVS; +0.00081 D*0 K*- SVV_HELAMP 0.228 0.0 0.932 0.0 0.283 0.0; +#October 26, 2004 Lange +0.00000054 D- pi0 PHSP; +0.00000054 D*- pi0 SVS; +0.0000004 D- anti-K0 PHSP;#2007 changed BR +0.0000006 D*- anti-K0 SVS;#2007 changed BR +# +#October 26, 2004 - Lange +0.00073 D0 D_s0*- PHSP; +0.0009 D*0 D_s0*- SVS; +0.0031 D_s1- D0 SVS; +0.012 D*0 D_s1- SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; +# +0.020 cd_1 anti-uu_1 PYTHIA 22; +0.012 cd_1 anti-uu_1 PYTHIA 23; +0.003 cs_1 anti-uu_1 PYTHIA 23; +0.005 cs_0 anti-cu_0 PYTHIA 22; +0.010 cs_1 anti-cu_1 PYTHIA 22; +0.001 cs_0 anti-cu_0 PYTHIA 23; +0.002 cs_1 anti-cu_1 PYTHIA 23; +# +0.214266 anti-u d c anti-u PYTHIA 48; +0.04300 anti-u d c anti-u PYTHIA 13; +0.02250 anti-u s c anti-u PYTHIA 13; +#lange - try to crank up the psi production.... +0.07400 anti-c s c anti-u PYTHIA 13; +0.00400 anti-c d c anti-u PYTHIA 13; +0.00300 anti-u d u anti-u PYTHIA 48; +0.00400 anti-c s u anti-u PYTHIA 48; +# JGS 11/5/02 This and similar a few lines above have been divided by two +# to solve a double-counting problem for this channel +0.00205 anti-u u d anti-u PYTHIA 48; +0.00007 anti-d d d anti-u PYTHIA 48; +0.00009 anti-s s d anti-u PYTHIA 48; +0.00220 anti-u u s anti-u PYTHIA 48; +0.00180 anti-d d s anti-u PYTHIA 48; +0.00150 anti-s s s anti-u PYTHIA 48; +0.00500 s g anti-u PYTHIA 33; +# +#### + +Enddecay +# + +Decay B+ +# +# b -> c semileptonic +0.0650 anti-D*0 e+ nu_e PHOTOS HQET 0.77 1.33 0.92; +0.0215 anti-D0 e+ nu_e PHOTOS ISGW2; +0.0056 anti-D_10 e+ nu_e PHOTOS ISGW2; +0.0049 anti-D_0*0 e+ nu_e PHOTOS ISGW2; +0.009 anti-D'_10 e+ nu_e PHOTOS ISGW2; +0.003 anti-D_2*0 e+ nu_e PHOTOS ISGW2; +0.0063 D*- pi+ e+ nu_e PHOTOS GOITY_ROBERTS; +0.0003 anti-D*0 pi0 e+ nu_e PHOTOS GOITY_ROBERTS; +0.0052 D- pi+ e+ nu_e PHOTOS GOITY_ROBERTS; +0.0010 anti-D0 pi0 e+ nu_e PHOTOS GOITY_ROBERTS; + +0.0650 anti-D*0 mu+ nu_mu PHOTOS HQET 0.77 1.33 0.92; +0.0215 anti-D0 mu+ nu_mu PHOTOS ISGW2; +0.0056 anti-D_10 mu+ nu_mu PHOTOS ISGW2; +0.0049 anti-D_0*0 mu+ nu_mu PHOTOS ISGW2; +0.009 anti-D'_10 mu+ nu_mu PHOTOS ISGW2; +0.003 anti-D_2*0 mu+ nu_mu PHOTOS ISGW2; +0.0063 D*- pi+ mu+ nu_mu PHOTOS GOITY_ROBERTS; +0.0003 anti-D*0 pi0 mu+ nu_mu PHOTOS GOITY_ROBERTS; +0.0052 D- pi+ mu+ nu_mu PHOTOS GOITY_ROBERTS; +0.0010 anti-D0 pi0 mu+ nu_mu PHOTOS GOITY_ROBERTS; +# +# b -> c tau nu +# +0.0208 anti-D*0 tau+ nu_tau ISGW2; +0.0088 anti-D0 tau+ nu_tau ISGW2; +0.0013 anti-D_10 tau+ nu_tau ISGW2; +0.0013 anti-D_0*0 tau+ nu_tau ISGW2; +0.0020 anti-D'_10 tau+ nu_tau ISGW2; +0.0020 anti-D_2*0 tau+ nu_tau ISGW2; +# +# b -> u l nu +# +0.000077 pi0 e+ nu_e PHOTOS ISGW2; +0.000080 eta e+ nu_e PHOTOS ISGW2; +0.000128 rho0 e+ nu_e PHOTOS ISGW2; +0.000130 omega e+ nu_e PHOTOS ISGW2; +0.000084 eta' e+ nu_e PHOTOS ISGW2; +0.000000 anti-D(2S)0 e+ nu_e PHOTOS ISGW2; +0.000000 anti-D*(2S)0 e+ nu_e PHOTOS ISGW2; +0.001948 Xu0 e+ nu_e PHOTOS VubHybridBp; +# +0.000077 pi0 mu+ nu_mu PHOTOS ISGW2; +0.000080 eta mu+ nu_mu PHOTOS ISGW2; +0.000128 rho0 mu+ nu_mu PHOTOS ISGW2; +0.000130 omega mu+ nu_mu PHOTOS ISGW2; +0.000084 eta' mu+ nu_mu PHOTOS ISGW2; +0.000000 anti-D(2S)0 mu+ nu_mu PHOTOS ISGW2; +0.000000 anti-D*(2S)0 mu+ nu_mu PHOTOS ISGW2; +0.001948 Xu0 mu+ nu_mu PHOTOS VubHybridBp; +# +0.000030 pi0 tau+ nu_tau ISGW2; +0.000012 eta tau+ nu_tau ISGW2; +0.000042 rho0 tau+ nu_tau ISGW2; +0.000042 omega tau+ nu_tau ISGW2; +0.000018 eta' tau+ nu_tau ISGW2; +0.000046 a_10 tau+ nu_tau ISGW2; +0.000027 b_10 tau+ nu_tau ISGW2; +0.000004 a_00 tau+ nu_tau ISGW2; +0.000002 f_0 tau+ nu_tau ISGW2; +0.000002 f'_0 tau+ nu_tau ISGW2; +0.000023 f_1 tau+ nu_tau ISGW2; +0.000023 f'_1 tau+ nu_tau ISGW2; +0.000013 h_1 tau+ nu_tau ISGW2; +0.000013 h'_1 tau+ nu_tau ISGW2; +0.000020 f_2 tau+ nu_tau ISGW2; +0.000020 f'_2 tau+ nu_tau ISGW2; +0.000000 anti-D(2S)0 tau+ nu_tau ISGW2; +0.000000 anti-D*(2S)0 tau+ nu_tau ISGW2; +# +# +# b -> l nu +# +0.000180 tau+ nu_tau SLN; +0.000000 mu+ nu_mu PHOTOS SLN; +0.000000 e+ nu_e PHOTOS SLN; + +# +# b->u hadronic +# Ref. [B1]: +# +0.000016 D_s+ pi0 PHSP; +0.000020 D_s*+ pi0 SVS; +# +0.000028 rho0 D_s+ SVS; +0.000028 D_s*+ rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; + +# +# b-> s gamma +# +0.0000403 K*+ gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000135 K_1+ gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000065 K'_1+ gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000128 K'*+ gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000166 K_2*+ gamma HELAMP 1.0 0.0 1.0 0.0; +#0.0000017 K''*+ gamma HELAMP 1.0 0.0 1.0 0.0; +0.0003137 Xsu gamma BTOXSGAMMA 2; +# +0.00000049 K+ e+ e- PHOTOS BTOSLLBALL; +0.000000700 K*+ e+ e- PHOTOS BTOSLLBALL; +0.000004994 Xsu e+ e- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.00000039 K+ mu+ mu- PHOTOS BTOSLLBALL; +0.000000700 K*+ mu+ mu- PHOTOS BTOSLLBALL; +0.000002506 Xsu mu+ mu- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +0.000000130 K+ tau+ tau- PHOTOS BTOSLLBALL; +0.000000190 K*+ tau+ tau- PHOTOS BTOSLLBALL; +0.000000200 Xsu tau+ tau- PHOTOS BTOXSLL 4.8 0.2 0.0 0.41; +# +#------------------------------------------------------------------------------ +# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC +#vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv +# +# Exclusive hadronic b->u +# +0.000026 pi+ pi0 pi0 CB3PI-P00 alpha; +0.0000121 pi+ pi+ pi- CB3PI-MPP alpha; +#### +0.0000049 eta pi+ PHSP; +0.0000026 eta K+ PHSP; +0.0000193 K*+ eta SVS; +0.0000084 rho+ eta SVS; +0.0000026 eta' pi+ PHSP; +0.0000697 eta' K+ PHSP; +0.0000049 K*+ eta' SVS; +0.0000087 rho+ eta' SVS; +0.0000067 omega pi+ SVS; +0.0000068 omega K+ SVS; +0.000001 omega K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.0000106 omega rho+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.0000001 phi pi+ SVS; +0.0000083 phi K+ SVS; +0.000023 K0 pi+ PHSP; +0.00000128 anti-K0 K+ PHSP; +0.0000055 pi+ pi0 PHSP; +0.0000121 K+ pi0 PHSP; +# +# 3-body John Back (jback@slac.stanford.edu) - Oct 15, 2002 +# JGS intersperses modes with pi0->eta,eta' +# B+ modes +# +# rho0 3-body modes +### AJR zeroed rho0pi- in favor of the CB3PI-P00 decay above +0.0000000 rho0 pi+ SVS; +0.0000042 rho0 K+ SVS; +# +# rho+ 3-body modes +### AJR zeroed rho-pi0 in favor of the CB3PI-MPP decay above +0.0000000 rho+ pi0 SVS; +0.000001 rho+ K0 SVS; +# +# rho(1450) 3-body modes +0.0000022 rho(2S)0 pi+ SVS; +0.000001 rho(2S)0 K+ SVS; +# +# f0(980) 3-body modes +0.000001 f_0 pi+ PHSP; +0.0000177 f_0 K+ PHSP; +0.000001 a_0+ K0 PHSP; +0.000001 a_00 K+ PHSP; +0.000001 a_00 pi+ PHSP; +0.000001 a_0+ pi0 PHSP; + +0.0000082 f_2 pi+ PHSP; + +# +# K*0(1430) 3-body modes +0.000047 K_0*0 pi+ PHSP; +0.000002 anti-K_0*0 K+ PHSP; +0.000047 K_0*+ pi0 PHSP; +0.000002 K_0*+ anti-K0 PHSP; +# +# K*(892) 3-body modes +0.0000109 K*0 pi+ SVS; +0.0000069 K*+ pi0 SVS; +0.000003 K*+ anti-K0 SVS; + +# +# +# Non-resonant 3-body left-overs +# Most modes are set at 1e-6 +# +# pi+pi-pi+: high mass + f0(400-1200) = (1+1)e-6 +#0402270.000002 pi+ pi- pi+ PHSP; +# +# K+ pi- pi+:total-K*pi +0.0000100 K+ pi- pi+ PHSP; +# +# K+ K- pi+: just non resonant +0.000001 K+ K- pi+ PHSP; +# +# K+K-K+: high mass structure near 1500 + non-res: total - phiK = +0.0000296 K+ K- K+ PHSP; +# +# +# K+K+pi-: suppressed mode (1e-7) +0.0000001 K+ K+ pi- PHSP; +# K-pi+pi+: suppressed mode (1e-7) +0.0000001 K- pi+ pi+ PHSP; +# +# +# K+ anti-K0 pi0 +0.000001 K+ anti-K0 pi0 PHSP; +0.000001 K+ anti-K0 eta PHSP; +0.000001 K+ anti-K0 eta' PHSP; +# +# pi+ K0 pi0 +0.000001 pi+ K0 pi0 PHSP; +0.000001 pi+ K0 eta PHSP; +0.000001 pi+ K0 eta' PHSP; +# +# pi+ pi0 pi0 +#0402270.000001 pi+ pi0 pi0 PHSP; +0.000001 pi+ pi0 eta PHSP; +0.000001 pi+ pi0 eta' PHSP; +0.000001 pi+ eta eta PHSP; +0.000001 pi+ eta eta' PHSP; +# +# K+ pi0 pi0 +0.000001 K+ pi0 pi0 PHSP; +0.000001 K+ pi0 eta PHSP; +0.000001 K+ pi0 eta' PHSP; +0.000001 K+ eta eta PHSP; +0.000001 K+ eta eta' PHSP; +0.000001 K+ eta' eta' PHSP; +# +# +# K+ K0 anti-K0: 4*BF(K+KsKs) (4 is a guess) +0.000046 K+ K0 anti-K0 PHSP; +# +# pi+ K0 anti-K0 +0.000001 pi+ K0 anti-K0 PHSP; +# +#^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +# 2- and 3-body modes revised Feb.2005 Markus Cristinziani, SLAC +#--------------------------------------------------------------------------- +# +#4-body modes from Andrei Gritsan +#--- 4-body rho-rho, a1-pi, rho-pi-pi, pi-pi-pi-pi -------------------------- +0.000018 rho+ rho0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000010 rho0 pi+ pi0 PHSP; +0.000005 rho0 pi+ eta PHSP; +0.000002 rho0 pi+ eta' PHSP; +0.000010 omega pi+ pi0 PHSP; +0.000005 omega pi+ eta PHSP; +0.000002 omega pi+ eta' PHSP; +0.000010 rho+ pi+ pi- PHSP; +0.000010 rho+ pi0 pi0 PHSP; +0.000005 rho+ pi0 eta PHSP; +0.000002 rho+ eta eta PHSP; +0.000002 rho+ pi0 eta' PHSP; +0.000010 pi- pi+ pi+ pi0 PHSP; +0.000005 pi- pi+ pi+ eta PHSP; +0.000002 pi- pi+ pi+ eta' PHSP; +0.000010 pi+ pi0 pi0 pi0 PHSP; +0.000005 pi+ eta pi0 pi0 PHSP; +0.000002 pi+ eta eta pi0 PHSP; +0.000002 pi+ eta' pi0 pi0 PHSP; +0.000001 pi+ eta' eta pi0 PHSP; +0.0000204 a_10 pi+ SVS; +0.0000264 a_1+ pi0 SVS; +0.0000067 b_10 pi+ SVS; +0.000001 b_1+ pi0 SVS; +0.0000020 rho+ f_0 SVS; +0.000010 rho+ a_00 SVS; +0.000002 rho0 a_0+ SVS; +0.000010 f_0 pi+ pi0 PHSP; +0.000001 a_00 pi+ pi0 PHSP; +0.000001 a_0+ pi0 pi0 PHSP; +0.000001 a_0- pi+ pi+ PHSP; +#--- 4-body rho-K*, a1-K, rho-pi-K, K*-pi-pi, pi-pi-pi-K ------------------- +0.0000092 rho+ K*0 SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000005 rho0 K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000010 pi+ pi0 K*0 PHSP; +0.000005 pi+ eta K*0 PHSP; +0.000067 pi- pi+ K*+ PHSP; +0.000010 pi0 pi0 K*+ PHSP; +0.000005 pi0 eta K*+ PHSP; +0.000002 eta eta K*+ PHSP; +0.000002 pi0 eta' K*+ PHSP; +0.000001 eta eta' K*+ PHSP; +0.000010 rho+ K0 pi0 PHSP; +0.000005 rho+ K0 eta PHSP; +0.000002 rho+ K0 eta' PHSP; +0.000010 rho+ K+ pi- PHSP; +0.000010 rho- K+ pi+ PHSP; +0.000005 rho0 K0 pi+ PHSP; +0.000005 rho0 K+ pi0 PHSP; +0.000002 rho0 K+ eta PHSP; +0.000001 rho0 K+ eta' PHSP; +0.000005 omega K0 pi+ PHSP; +0.000005 omega K+ pi0 PHSP; +0.000002 omega K+ eta PHSP; +0.000001 omega K+ eta' PHSP; +0.000010 pi+ pi+ pi- K0 PHSP; +0.000010 pi+ pi0 pi0 K0 PHSP; +0.000005 pi+ eta pi0 K0 PHSP; +0.000002 pi+ eta eta K0 PHSP; +0.000010 pi+ pi- pi0 K+ PHSP; +0.000005 pi+ pi- eta K+ PHSP; +0.000010 pi0 pi0 pi0 K+ PHSP; +0.000005 pi0 pi0 eta K+ PHSP; +0.000002 pi0 eta eta K+ PHSP; +0.000002 pi0 pi0 eta' K+ PHSP; +0.000001 pi0 eta eta' K+ PHSP; +0.000010 rho+ K_0*0 PHSP; +0.000010 rho0 K_0*+ PHSP; +0.000010 pi+ pi0 K_0*0 PHSP; +0.000010 pi0 pi0 K_0*+ PHSP; +0.0000052 K*+ f_0 SVS; +0.000010 a_10 K+ SVS; +0.0000349 a_1+ K0 SVS; +0.0000091 b_10 K+ SVS; +0.000013 b_1+ K0 SVS; +0.000005 K*+ a_00 SVS; +0.000005 K*0 a_0+ SVS; +#--- 4-body K*-K*, rho-K-K, K*-K-pi, phi-pi-pi, pi-pi-K-K ------------ +0.000001 anti-K*0 K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000001 phi rho+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000001 phi pi+ pi0 PHSP; +0.0000005 phi pi+ eta PHSP; +0.0000002 phi pi+ eta' PHSP; +0.000001 K+ K- rho+ PHSP; +0.000001 K0 anti-K0 rho+ PHSP; +0.000001 anti-K0 K+ rho0 PHSP; +0.000001 anti-K0 K+ omega PHSP; +0.000001 K+ K- pi+ pi0 PHSP; +0.0000005 K+ K- pi+ eta PHSP; +0.0000002 K+ K- pi+ eta' PHSP; +0.000001 K0 anti-K0 pi+ pi0 PHSP; +0.0000005 K0 anti-K0 pi+ eta PHSP; +0.0000002 K0 anti-K0 pi+ eta' PHSP; +0.000001 K0 K- pi+ pi+ PHSP;# 2007 added the CC to B- +0.000001 anti-K0 K+ pi+ pi- PHSP; +0.00000025 anti-K0 K+ pi0 pi0 PHSP; +0.0000005 anti-K0 K+ pi0 eta PHSP; +0.00000025 anti-K0 K+ eta eta PHSP;#added 2007 +0.0000002 anti-K0 K+ pi0 eta' PHSP; +0.0000001 anti-K0 K+ eta eta' PHSP; +0.000001 K*+ K- pi+ PHSP; +0.000001 K*- K+ pi+ PHSP; +0.000001 K*0 anti-K0 pi+ PHSP; +0.000001 K0 anti-K*0 pi+ PHSP; +0.000001 K+ anti-K*0 pi0 PHSP; +0.0000005 K+ anti-K*0 eta PHSP; +0.0000002 K+ anti-K*0 eta' PHSP; +0.000001 K*+ anti-K0 pi0 PHSP; +0.0000005 K*+ anti-K0 eta PHSP; +0.0000002 K*+ anti-K0 eta' PHSP; +#--- 4-body phi-K*, phi-K-pi, K-K-K*, pi-K-K-K ----------------------- +0.0000096 phi K*+ SVV_HELAMP 1.0 0.0 1.7 0.0 1.0 0.0; +0.000010 phi K0 pi+ PHSP; +0.000010 phi K+ pi0 PHSP; +0.000005 phi K+ eta PHSP; +0.000002 phi K+ eta' PHSP; +0.000031 K- K+ K*+ PHSP; #total -phiK* +0.000010 K+ K*- K+ PHSP; +0.000010 K+ K*0 anti-K0 PHSP; +0.000010 K+ K0 anti-K*0 PHSP; +0.000010 K0 K*+ anti-K0 PHSP; +0.000010 K+ K- K+ pi0 PHSP; +0.000005 K+ K- K+ eta PHSP; +0.000002 K+ K- K+ eta' PHSP; +0.000010 K+ K- K0 pi+ PHSP; +0.000010 K0 anti-K0 K+ pi0 PHSP; +0.000005 K0 anti-K0 K+ eta PHSP; +0.000002 K0 anti-K0 K+ eta' PHSP; +0.000010 K0 anti-K0 K0 pi+ PHSP; +0.000010 phi K_0*+ PHSP; +0.000010 K- K+ K_0*+ PHSP; +0.000010 K+ K+ K_0*- PHSP; + +0.000010 K+ K_0*0 anti-K0 PHSP; +0.000010 K+ anti-K_0*0 K0 PHSP; +0.000002 phi K'_1+ PHSP; +0.000002 K- K+ K'_1+ PHSP; +#--- 4-body phi-phi, phi-K-K, K-K-K-K -------------------------------- +0.000001 phi anti-K0 K+ PHSP; +0.000001 K+ K- K+ anti-K0 PHSP; +0.000001 K0 anti-K0 anti-K0 K+ PHSP; +# +#5-body modes from Jim Smith - 1/30/05 +#--- 5-body rho-rho-pi, rho-pi-pi-pi, pi-pi-pi-pi-pi ------------------- +0.000010 rho0 rho0 pi+ PHSP; +0.000010 rho+ rho0 pi0 PHSP; +0.000005 rho+ rho0 eta PHSP; +0.000002 rho+ rho0 eta' PHSP; +0.000010 rho+ rho- pi+ PHSP; +0.000010 omega rho0 pi+ PHSP; +0.000010 omega rho+ pi0 PHSP; +0.000005 omega rho+ eta PHSP; +0.000002 omega rho+ eta' PHSP; +0.000002 rho0 pi+ pi- pi+ PHSP; +0.000002 rho0 pi+ pi0 pi0 PHSP; +0.000001 rho0 pi+ eta pi0 PHSP; +0.000001 rho0 pi+ eta' pi0 PHSP; +0.000002 omega pi+ pi0 pi0 PHSP; +0.000001 omega pi+ eta pi0 PHSP; +0.000001 omega pi+ eta' pi0 PHSP; +0.000002 rho- pi+ pi+ pi0 PHSP; +0.000001 rho- pi+ pi+ eta PHSP; +0.000001 rho- pi+ pi+ eta' PHSP; +0.000002 rho+ pi+ pi- pi0 PHSP; +0.000001 rho+ pi+ pi- eta PHSP; +0.000001 rho+ pi+ pi- eta' PHSP; +0.000002 rho+ pi0 pi0 pi0 PHSP; +0.000001 rho+ pi0 eta pi0 PHSP; +0.000001 rho+ eta eta pi0 PHSP; +0.000001 rho+ pi0 eta' pi0 PHSP; +0.000001 pi- pi+ pi+ pi0 pi0 PHSP; +0.000001 pi- pi+ pi+ eta pi0 PHSP; +0.000001 pi- pi+ pi+ eta' pi0 PHSP; +0.000001 pi+ pi0 pi0 pi0 pi0 PHSP; +0.000001 pi+ eta pi0 pi0 pi0 PHSP; +0.000001 pi+ eta' pi0 pi0 pi0 PHSP; +0.000010 a_1+ rho0 PHSP; +0.000010 a_1+ omega PHSP; +0.000010 a_1+ f_0 PHSP; +0.000010 a_10 pi+ pi0 PHSP; +0.000005 a_10 pi+ eta PHSP; +0.000002 a_10 pi+ eta' PHSP; +0.000010 a_1- pi+ pi+ PHSP; +0.000010 a_1+ pi+ pi- PHSP; +0.000010 a_1+ pi0 pi0 PHSP; +0.000005 a_1+ pi0 eta PHSP; +0.000002 a_1+ pi0 eta' PHSP; +0.000010 rho+ f_0 pi0 PHSP; +0.000005 rho+ f_0 eta PHSP; +0.000002 rho+ f_0 eta' PHSP; +0.000010 rho0 f_0 pi+ PHSP; +0.000010 omega f_0 pi+ PHSP; +0.000010 rho+ a_00 pi0 PHSP; +0.000005 rho+ a_00 eta PHSP; +0.000002 rho+ a_00 eta' PHSP; +0.000010 rho- a_0+ pi+ PHSP; +0.000010 rho0 a_0+ pi0 PHSP; +0.000005 rho0 a_0+ eta PHSP; +0.000002 rho0 a_0+ eta' PHSP; +0.000002 f_0 pi+ pi- pi+ PHSP; +0.000002 f_0 pi+ pi0 pi0 PHSP; +0.000001 f_0 pi+ pi0 eta PHSP; +0.000001 f_0 pi+ pi0 eta' PHSP; +0.000001 a_00 pi+ pi0 pi0 PHSP; +0.000001 a_0+ pi0 pi0 pi0 PHSP; +0.000001 a_0- pi+ pi+ pi0 PHSP; +#--- 5-body rho-K*pi, rho-2pi-K, K*-3pi, 4pi-K ------------------- +0.000010 rho+ K*+ pi- PHSP; +0.000010 rho- K*+ pi+ PHSP; +0.000010 rho+ K*0 pi0 PHSP; +0.000005 rho+ K*0 eta PHSP; +0.000002 rho+ K*0 eta' PHSP; +0.000010 rho0 K*0 pi+ PHSP; +0.000010 rho0 K*+ pi0 PHSP; +0.000005 rho0 K*+ eta PHSP; +0.000002 rho0 K*+ eta' PHSP; +0.000010 omega K*0 pi+ PHSP; +0.000010 omega K*+ pi0 PHSP; +0.000005 omega K*+ eta PHSP; +0.000002 omega K*+ eta' PHSP; +0.000010 pi+ pi- K*0 pi+ PHSP; +0.000010 pi+ pi0 K*0 pi0 PHSP; +0.000005 pi+ eta K*0 pi0 PHSP; +0.000002 pi+ eta' K*0 pi0 PHSP; +0.000010 pi- pi+ K*+ pi0 PHSP; +0.000005 pi- pi+ K*+ eta PHSP; +0.000002 pi- pi+ K*+ eta' PHSP; +0.000010 pi0 pi0 K*+ pi0 PHSP; +0.000005 pi0 eta K*+ pi0 PHSP; +0.000002 eta eta K*+ pi0 PHSP; +0.000002 pi0 eta' K*+ pi0 PHSP; +0.000001 eta eta' K*+ pi0 PHSP; +0.000010 rho+ K0 pi+ pi- PHSP; +0.000010 rho+ K0 pi0 pi0 PHSP; +0.000005 rho+ K0 eta pi0 PHSP; +0.000002 rho+ K0 eta' pi0 PHSP; +0.000010 rho+ K+ pi- pi0 PHSP; +0.000010 rho- K+ pi+ pi0 PHSP; +0.000010 rho- K0 pi+ pi+ PHSP; +0.000010 rho0 K0 pi+ pi0 PHSP; +0.000010 rho0 K+ pi0 pi0 PHSP; +0.000005 rho0 K+ eta pi0 PHSP; +0.000002 rho0 K+ eta' pi0 PHSP; +0.000010 omega K0 pi+ pi0 PHSP; +0.000010 omega K+ pi0 pi0 PHSP; +0.000005 omega K+ eta pi0 PHSP; +0.000002 omega K+ eta' pi0 PHSP; +0.000002 pi+ pi+ pi- K0 pi0 PHSP; +0.000001 pi+ pi+ pi- K0 eta PHSP; +0.000001 pi+ pi+ pi- K0 eta' PHSP; +0.000002 pi+ pi0 pi0 K0 pi0 PHSP; +0.000001 pi+ eta pi0 K0 pi0 PHSP; +0.000001 pi+ eta eta K0 pi0 PHSP; +0.000002 pi+ pi- pi+ K+ pi- PHSP; +0.000002 pi+ pi- pi0 K+ pi0 PHSP; +0.000001 pi+ pi- eta K+ pi0 PHSP; +0.000001 pi+ pi- eta' K+ pi0 PHSP; +0.000002 pi0 pi0 pi0 K+ pi0 PHSP; +0.000001 pi0 pi0 eta K+ pi0 PHSP; +0.000001 pi0 eta eta K+ pi0 PHSP; +0.000001 pi0 pi0 eta' K+ pi0 PHSP; +0.000001 pi0 eta eta' K+ pi0 PHSP; +0.000010 rho0 K_0*0 pi+ PHSP; +0.000010 rho+ K_0*0 pi0 PHSP; +0.000005 rho+ K_0*0 eta PHSP; +0.000002 rho+ K_0*0 eta' PHSP; +0.000010 rho+ K_0*+ pi- PHSP; +0.000010 rho0 K_0*+ pi0 PHSP; +0.000005 rho0 K_0*+ eta PHSP; +0.000002 rho0 K_0*+ eta' PHSP; +0.000010 rho- K_0*+ pi+ PHSP; #2007 added the CC to B- +0.000010 pi+ pi+ K_0*0 pi- PHSP; +0.000010 pi+ pi0 K_0*0 pi0 PHSP; +0.000005 pi+ pi0 K_0*0 eta PHSP; +0.000002 pi+ pi0 K_0*0 eta' PHSP; +0.000010 pi0 pi0 K_0*+ pi0 PHSP; +0.000005 pi0 pi0 K_0*+ eta PHSP; +0.000002 pi0 pi0 K_0*+ eta' PHSP; +0.000010 K*0 f_0 pi+ PHSP; +0.000010 K*+ f_0 pi0 PHSP; +0.000005 K*+ f_0 eta PHSP; +0.000002 K*+ f_0 eta' PHSP; +0.000020 a_10 K*+ PHSP; +0.000010 a_10 K+ pi0 PHSP; +0.000010 a_10 K0 pi+ PHSP; +0.000020 a_1+ K*0 PHSP; +0.000010 a_1+ K+ pi- PHSP; +0.000010 a_1+ K0 pi0 PHSP; +0.000005 K*+ a_00 pi0 PHSP; +0.000005 K*0 a_0+ pi0 PHSP; +#--- 5-body K*-K*pi,rho-K-Kpi, K*-K-2pi, phi-3pi, 3pi-K-K ------------ +0.000001 K*0 anti-K*0 pi+ PHSP; +0.000001 anti-K*0 K*+ pi0 PHSP; +0.0000005 anti-K*0 K*+ eta PHSP; +0.0000002 anti-K*0 K*+ eta' PHSP; +0.000001 phi rho0 pi+ PHSP; +0.000001 phi omega pi+ PHSP; +0.000001 phi f_0 pi+ PHSP; +0.000001 phi rho+ pi0 PHSP; +0.0000005 phi rho+ eta PHSP; +0.0000002 phi rho+ eta' PHSP; +0.000001 phi pi+ pi- pi+ PHSP; +0.000001 phi pi+ pi0 pi0 PHSP; +0.0000005 phi pi+ eta pi0 PHSP; +0.0000002 phi pi+ eta' pi0 PHSP; + +0.000001 anti-K0 K+ rho- pi+ PHSP; +0.000001 anti-K0 K+ rho+ pi- PHSP; +0.000001 anti-K0 K+ rho0 pi0 PHSP; +0.0000005 anti-K0 K+ rho0 eta PHSP; +0.0000002 anti-K0 K+ rho0 eta' PHSP; +0.000001 anti-K0 K+ omega pi0 PHSP; +0.000001 anti-K0 K+ f_0 pi0 PHSP; +0.000001 K+ K- rho0 pi+ PHSP; +0.000001 K+ K- rho+ pi0 PHSP; +0.0000005 K+ K- rho+ eta PHSP; +0.0000002 K+ K- rho+ eta' PHSP; +0.000001 K+ K- omega pi+ PHSP; +0.000001 K0 anti-K0 rho0 pi+ PHSP; +0.000001 K0 anti-K0 omega pi+ PHSP; +0.000001 K0 anti-K0 f_0 pi+ PHSP; +0.000001 K0 anti-K0 rho+ pi0 PHSP; +0.0000005 K0 anti-K0 rho+ eta PHSP; +0.0000002 K0 anti-K0 rho+ eta' PHSP; +0.000001 K0 K- rho+ pi+ PHSP; + +0.0000002 K0 K- pi+ pi+ pi0 PHSP; +0.0000001 K0 K- pi+ pi+ eta PHSP; +0.0000001 K0 K- pi+ pi+ eta' PHSP; +0.0000002 K+ K- pi+ pi- pi+ PHSP; +0.0000002 K+ K- pi+ pi0 pi0 PHSP; +0.0000001 K+ K- pi+ eta pi0 PHSP; +0.0000001 K+ K- pi+ eta' pi0 PHSP; +0.0000002 K0 anti-K0 pi+ pi- pi+ PHSP; +0.0000002 K0 anti-K0 pi+ pi0 pi0 PHSP; +0.0000001 K0 anti-K0 pi+ eta pi0 PHSP; +0.0000001 K0 anti-K0 pi+ eta' pi0 PHSP; +0.0000002 anti-K0 K+ pi+ pi- pi0 PHSP; +0.0000001 anti-K0 K+ pi+ pi- eta PHSP; +0.0000001 anti-K0 K+ pi+ pi- eta' PHSP; +0.0000002 anti-K0 K+ pi0 pi0 pi0 PHSP; +0.0000001 anti-K0 K+ pi0 eta pi0 PHSP; +0.0000001 anti-K0 K+ pi0 eta' pi0 PHSP; +0.000001 K*0 K- pi+ pi+ PHSP; +0.000001 K*- K0 pi+ pi+ PHSP; +0.000001 K*+ K- pi+ pi0 PHSP; +0.000001 K*- K+ pi+ pi0 PHSP; +0.000001 K0 anti-K*0 pi+ pi0 PHSP; +0.000001 K*0 anti-K0 pi+ pi0 PHSP; + +0.000001 K+ anti-K*0 pi0 pi0 PHSP; +0.0000005 K+ anti-K*0 eta pi0 PHSP; +0.0000002 K+ anti-K*0 eta' pi0 PHSP; +0.000001 K*+ anti-K0 pi0 pi0 PHSP; +0.0000005 K*+ anti-K0 eta pi0 PHSP; +0.0000002 K*+ anti-K0 eta' pi0 PHSP; +#--- 5-body phi-K*-pi, phi-K-2pi, K-K-K*-pi, 2pi-K-K-K -------------------- +0.000010 phi K*+ pi0 PHSP; +0.000010 phi K+ rho0 PHSP; +0.000010 phi K+ omega PHSP; +0.000010 phi K+ f_0 PHSP; +0.000010 phi K0 rho+ PHSP; +0.000010 phi K0 pi+ pi0 PHSP; +0.000010 phi K+ pi+ pi- PHSP; +0.000010 phi K+ pi0 pi0 PHSP; +0.000005 phi K+ eta pi0 PHSP; +0.000002 phi K+ eta' pi0 PHSP; +0.000010 K- K+ K*+ pi0 PHSP; +0.000010 K+ K*- K+ pi0 PHSP; +0.000010 K+ K*0 anti-K0 pi0 PHSP; +0.000010 K+ K0 anti-K*0 pi0 PHSP; +0.000010 K0 K*+ anti-K0 pi0 PHSP; +0.000010 K- K+ K+ rho0 PHSP; +0.000010 K- K+ K+ omega PHSP; +0.000010 K- K+ K+ f_0 PHSP; +0.000010 K- K+ K0 rho+ PHSP; +0.000010 K+ K- K+ pi0 pi0 PHSP; +0.000005 K+ K- K+ eta pi0 PHSP; +0.000002 K+ K- K+ eta' pi0 PHSP; +0.000010 K+ K- K0 pi+ pi0 PHSP; +0.000010 K0 anti-K0 K+ pi0 pi0 PHSP; +0.000005 K0 anti-K0 K+ eta pi0 PHSP; +0.000002 K0 anti-K0 K+ eta' pi0 PHSP; +0.000010 K0 anti-K0 K0 pi+ pi0 PHSP; +0.000010 phi K_0*0 pi+ PHSP; +0.000010 phi K_0*+ pi0 PHSP; +0.000005 phi K_0*+ eta PHSP; +0.000002 phi K_0*+ eta' PHSP; +0.000010 K- K+ K_0*+ pi0 PHSP; +0.000005 K- K+ K_0*+ eta PHSP; +0.000002 K- K+ K_0*+ eta' PHSP; +0.000010 K+ K+ K_0*- pi0 PHSP; +0.000005 K+ K+ K_0*- eta PHSP; +0.000002 K+ K+ K_0*- eta' PHSP; +0.000010 K- K+ K_0*0 pi+ PHSP; +0.000010 K+ K+ anti-K_0*0 pi- PHSP; +0.000010 K0 K0 anti-K_0*0 pi+ PHSP; + +0.000010 K+ K_0*0 anti-K0 pi0 PHSP; +0.000005 K+ K_0*0 anti-K0 eta PHSP; +0.000002 K+ K_0*0 anti-K0 eta' PHSP; +0.000010 K+ anti-K_0*0 K0 pi0 PHSP; +0.000005 K+ anti-K_0*0 K0 eta PHSP; +0.000002 K+ anti-K_0*0 K0 eta' PHSP; +0.000002 phi K'_10 pi+ PHSP; +0.000002 phi K'_1+ pi0 PHSP; +0.000001 phi K'_1+ eta PHSP; +0.000001 phi K'_1+ eta' PHSP; +0.000002 K- K+ K'_10 pi+ PHSP; +0.000002 K- K+ K'_1+ pi0 PHSP; +0.000001 K- K+ K'_1+ eta PHSP; +0.000001 K- K+ K'_1+ eta' PHSP; +0.000002 K+ K+ K'_1- pi0 PHSP; +0.000002 K+ K+ anti-K'_10 pi- PHSP;# check CC +0.000002 K0 anti-K0 K'_10 pi+ PHSP; +0.000002 K0 anti-K0 K'_1+ pi0 PHSP; +0.000001 K0 anti-K0 K'_1+ eta PHSP; +0.000001 K0 anti-K0 K'_1+ eta' PHSP; +0.000002 K0 K0 anti-K'_10 pi+ PHSP; +0.000002 anti-K0 anti-K0 K'_1+ pi0 PHSP; +0.000001 anti-K0 anti-K0 K'_1+ eta PHSP; +0.000001 anti-K0 anti-K0 K'_1+ eta' PHSP; +0.000010 K+ K0 anti-K'_10 pi0 PHSP; +0.000005 K+ K0 anti-K'_10 eta PHSP; +0.000002 K+ K0 anti-K'_10 eta' PHSP; +0.000010 K+ K'_10 anti-K0 pi0 PHSP; +0.000005 K+ K'_10 anti-K0 eta PHSP; +0.000002 K+ K'_10 anti-K0 eta' PHSP; +#--- 5-body phi-phi-K, phi-phi-pi, phi-3K, phi-K-K-pi, 5K, 4K-pi ------------ +0.0000049 phi phi K+ PHSP; +0.000001 phi phi pi+ PHSP; +0.000001 phi K+ K- K+ PHSP; +0.000001 phi K0 anti-K0 K+ PHSP; +0.000001 phi K0 anti-K0 pi+ PHSP; +0.000001 phi anti-K0 K+ pi0 PHSP; +0.000001 K+ K- K+ K- pi+ PHSP; +0.000001 K+ K- K0 anti-K0 pi+ PHSP; +0.000001 K+ K- K+ anti-K0 pi0 PHSP; +0.000001 K0 anti-K0 anti-K0 K+ pi0 PHSP; +#--- 6-body phi-phi-K*, phi-3Kpi, phi-K-K-2pi ------------ +0.000003 phi phi K*+ PHSP; +0.000001 phi K+ K- K*+ PHSP; +0.000001 phi K0 anti-K0 K*+ PHSP; +0.000001 phi anti-K0 K+ K*0 PHSP; +0.000001 phi K+ K- K+ pi0 PHSP; +0.000001 phi K+ K- K0 pi+ PHSP; +0.000001 phi K0 anti-K0 K+ pi0 PHSP; +0.000001 phi K0 anti-K0 K0 pi+ PHSP; +0.000001 phi anti-K0 K+ K+ pi- PHSP; +#--- 6-body a1a1 ------------ +0.000050 a_1+ a_10 PHSP; +# +# B -> cc= s sum = 1.92% done +# +0.001007 J/psi K+ SVS; +0.00141 J/psi K*+ SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.000049 J/psi pi+ SVS; +0.00006 J/psi rho+ SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.0002 J/psi K0 pi+ PHSP; +0.0001 J/psi K+ pi0 PHSP; +#rl0.0007 J/psi K+ pi- pi+ PHSP; +#rl0.00035 J/psi K+ pi0 pi0 PHSP; +#rl0.00035 J/psi K0 pi+ pi0 PHSP; +0.0018 J/psi K_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi K'_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi K_2*+ PHSP; +0.000052 J/psi phi K+ PHSP; +# +0.000648 psi(2S) K+ SVS; +0.00067 psi(2S) K*+ SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.0004 psi(2S) K0 pi+ PHSP; +0.0002 psi(2S) K+ pi0 PHSP; +0.0019 psi(2S) K+ pi- pi+ PHSP; +0.0001 psi(2S) K+ pi0 pi0 PHSP; +0.0001 psi(2S) K0 pi+ pi0 PHSP; +0.0004 psi(2S) K_1+ PHSP; +# +0.00091 eta_c K+ PHSP; +0.0012 K*+ eta_c SVS; +0.0002 eta_c K0 pi+ PHSP; +0.0001 eta_c K+ pi0 PHSP; +0.0002 eta_c K+ pi- pi+ PHSP; +0.0001 eta_c K+ pi0 pi0 PHSP; +0.0001 eta_c K0 pi+ pi0 PHSP; +# +0.00034 eta_c(2S) K+ PHSP; +0.00048 K*+ eta_c(2S) SVS; +0.00008 eta_c(2S) K0 pi+ PHSP; +0.00005 eta_c(2S) K+ pi0 PHSP; +0.00008 eta_c(2S) K+ pi- pi+ PHSP; +0.00005 eta_c(2S) K+ pi0 pi0 PHSP; +0.00005 eta_c(2S) K0 pi+ pi0 PHSP; +# +0.00014 chi_c0 K+ PHSP; +0.0004 K*+ chi_c0 SVS; +0.0002 chi_c0 K0 pi+ PHSP; +0.0001 chi_c0 K+ pi0 PHSP; +0.0002 chi_c0 K+ pi- pi+ PHSP; +0.0001 chi_c0 K+ pi0 pi0 PHSP; +0.0001 chi_c0 K0 pi+ pi0 PHSP; +# +0.00049 chi_c1 K+ SVS; +0.00036 chi_c1 K*+ SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.0004 chi_c1 K0 pi+ PHSP; +0.0002 chi_c1 K+ pi0 PHSP; +0.0004 chi_c1 K+ pi- pi+ PHSP; +0.0002 chi_c1 K+ pi0 pi0 PHSP; +0.0002 chi_c1 K0 pi+ pi0 PHSP; +# +0.00002 chi_c2 K+ STS; +0.00001 chi_c2 K*+ PHSP; +0.0002 chi_c2 K0 pi+ PHSP; +0.0001 chi_c2 K+ pi0 PHSP; +0.0002 chi_c2 K+ pi- pi+ PHSP; +0.0001 chi_c2 K+ pi0 pi0 PHSP; +0.0001 chi_c2 K0 pi+ pi0 PHSP; +# +0.00049 psi(3770) K+ SVS; +0.0005 psi(3770) K*+ PHSP; +0.0003 psi(3770) K0 pi+ PHSP; +0.0002 psi(3770) K+ pi0 PHSP; +0.0002 psi(3770) K+ pi- pi+ PHSP; +0.0001 psi(3770) K+ pi0 pi0 PHSP; +0.0001 psi(3770) K0 pi+ pi0 PHSP; +0.0003 psi(3770) K_1+ PHSP; +# +# b -> c (sc=) -> D Ds X +# +0.0100 anti-D0 D_s+ PHSP; +0.0082 anti-D*0 D_s+ SVS; +0.0076 D_s*+ anti-D0 SVS; +0.0171 D_s*+ anti-D*0 SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; +0.0006 anti-D'_10 D_s+ SVS; +0.0012 anti-D'_10 D_s*+ SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; +0.0012 anti-D_10 D_s+ SVS; +0.0024 anti-D_10 D_s*+ SVV_HELAMP 0.48 0.0 0.734 0.0 0.48 0.0; +0.0042 anti-D_2*0 D_s+ STS; +0.0040 anti-D_2*0 D_s*+ PHSP; +# +# +0.0036 D_s+ D- pi+ PHSP; +0.0018 D_s+ anti-D0 pi0 PHSP; +0.0037 D_s*+ D- pi+ PHSP; +0.0018 D_s*+ anti-D0 pi0 PHSP; +0.0033 D_s+ D- pi+ pi0 PHSP; +0.0033 D_s+ anti-D0 pi+ pi- PHSP; +0.0008 D_s+ anti-D0 pi0 pi0 PHSP; +0.0033 D_s*+ D- pi+ pi0 PHSP; +0.0033 D_s*+ anti-D0 pi+ pi- PHSP; +0.0008 D_s*+ anti-D0 pi0 pi0 PHSP; +# +# b -> c (sc=) -> D D= K X Sum = 8% +# update: Ref. [B1]: +# update October 26, 2004 +# External W-emission amplitude +0.0017 anti-D0 D+ K0 PHSP; +0.0052 anti-D0 D*+ K0 PHSP; +0.0031 anti-D*0 D+ K0 PHSP; +0.0078 anti-D*0 D*+ K0 PHSP; +# External+internal W-emission amplitude +0.00137 anti-D0 D0 K+ PHSP; +0.0018 anti-D*0 D0 K+ PHSP; +0.0047 anti-D0 D*0 K+ PHSP; +0.0053 anti-D*0 D*0 K+ PHSP; +# Internal W-emission amplitude (color suppressed modes) +0.0003 D+ D- K+ PHSP; +0.0005 D*+ D- K+ PHSP; +0.0015 D+ D*- K+ PHSP; +0.0015 D*+ D*- K+ PHSP; +0.0025 anti-D0 D+ K*0 PHSP; +0.0025 anti-D*0 D+ K*0 PHSP; +0.0025 anti-D0 D*+ K*0 PHSP; +0.0050 anti-D*0 D*+ K*0 PHSP; +# +0.0025 anti-D0 D0 K*+ PHSP; +0.0025 anti-D*0 D0 K*+ PHSP; +0.0025 anti-D0 D*0 K*+ PHSP; +0.0050 anti-D*0 D*0 K*+ PHSP; +# +0.0005 D+ D- K*+ PHSP; +0.0005 D*+ D- K*+ PHSP; +0.0005 D+ D*- K*+ PHSP; +0.0010 D*+ D*- K*+ PHSP; + +# +# B->D(*)D(*). See Ref [B1]: +# +0.00042 D+ anti-D0 PHSP; +0.00039 D*+ anti-D0 SVS; +0.00063 anti-D*0 D+ SVS; +0.00081 anti-D*0 D*+ SVV_HELAMP 0.56 0.0 0.96 0.0 0.47 0.0; + +# +# B -> D(*) X Exclusive Modes +# October 26, 2004 Lange update +0.00519 anti-D*0 pi+ SVS; +0.00484 anti-D0 pi+ PHSP; +0.0134 rho+ anti-D0 SVS; +# D* rho HELAMP parameters taken from ICHEP 98-852. +0.0098 anti-D*0 rho+ SVV_HELAMP 0.283 1.13 0.932 0.0 0.228 0.95; +# +0.0005 anti-D0 pi0 pi+ PHSP; +0.0005 anti-D*0 pi0 pi+ PHSP; +0.00102 D- pi+ pi+ PHSP; +0.00125 D*- pi+ pi+ PHSP; +# +# D a1 updated Ref. [B1]: +0.00887 a_1+ anti-D0 SVS;#old result in PDG (4+4)*10^-3 +0.0021 anti-D0 rho0 pi+ PHSP;#old result in PDG (4.2+3)*10^-3 +0.0050 anti-D0 pi- pi+ pi+ PHSP; +# +# SVV_HELAMP from factorization, recommendation +# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/168.html: +# updated Ref. [B1]: +# October 26, 2004 Lange update +# +0.01900 anti-D*0 a_1+ SVV_HELAMP 0.458 0.0 0.866 0.0 0.200 0.0; +# +0.0005 anti-D*0 rho0 pi+ PHSP; #unmeasured in PDG stil used to calculate next decay +0.00045 anti-D*0 pi- pi+ pi+ PHSP;#total- antiD*0a_1- antiD* rho pi +# +0.0020 D- rho+ pi+ PHSP; +0.0020 D- pi0 pi+ pi+ PHSP; +0.0020 D*- rho+ pi+ PHSP; +0.0150 D*- pi0 pi+ pi+ PHSP; +0.0005 anti-D*0 rho+ pi0 PHSP; +0.0005 anti-D*0 pi+ pi0 pi0 PHSP; +# +# B->D** pi and D** rho, recommendation +# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html +# +0.0013 anti-D_10 pi+ SVS; +0.00075 anti-D'_10 pi+ SVS; +0.00086 anti-D_2*0 pi+ STS; +0.00091 anti-D_0*0 pi+ PHSP; +0.0007 anti-D_10 rho+ PHSP; +0.0022 anti-D'_10 rho+ PHSP; +0.0038 anti-D_2*0 rho+ PHSP; +# +# +# B->DK, recommendation +# http://babar-hn.slac.stanford.edu:5090/HyperNews/get/event_gen/151.html: +# update: Ref [B1]: +# +0.000402 anti-D0 K+ PHSP; +0.000416 anti-D*0 K+ SVS; +0.00053 K*+ anti-D0 SVS; +0.00081 anti-D*0 K*+ SVV_HELAMP 0.283 0.0 0.932 0.0 0.228 0.0; +#October 26, 2004 Lange +0.00000054 D+ pi0 PHSP; +0.00000054 D*+ pi0 SVS; +0.0000004 D+ K0 PHSP; #2007 changed anti- KO to K0 +0.0000006 D*+ K0 SVS;#2007 changed anti- KO to K0 +# +#October 26, 2004 - Lange +#changed 2007 +0.00073 anti-D0 D_s0*+ PHSP; +0.0009 anti-D*0 D_s0*+ SVS; +0.0031 D_s1+ anti-D0 SVS; +0.012 anti-D*0 D_s1+ SVV_HELAMP 0.4904 0.0 0.7204 0.0 0.4904 0.0; +# +0.020 anti-cd_1 uu_1 PYTHIA 22; +0.012 anti-cd_1 uu_1 PYTHIA 23; +0.003 anti-cs_1 uu_1 PYTHIA 23; +0.005 anti-cs_0 cu_0 PYTHIA 22; +0.010 anti-cs_1 cu_1 PYTHIA 22; +0.001 anti-cs_0 cu_0 PYTHIA 23; +0.002 anti-cs_1 cu_1 PYTHIA 23; +# +0.214266 u anti-d anti-c u PYTHIA 48; +0.04300 u anti-d anti-c u PYTHIA 13; +0.02250 u anti-s anti-c u PYTHIA 13; +#lange - try to crank up the psi production.... +0.07400 c anti-s anti-c u PYTHIA 13; +0.00400 c anti-d anti-c u PYTHIA 13; +0.00300 u anti-d anti-u u PYTHIA 48; +0.00400 c anti-s anti-u u PYTHIA 48; +# JGS 11/5/02 This and similar a few lines above have been divided by two +# to solve a double-counting problem for this channel +0.00205 u anti-u anti-d u PYTHIA 48; +0.00007 d anti-d anti-d u PYTHIA 48; +0.00009 s anti-s anti-d u PYTHIA 48; +0.00220 u anti-u anti-s u PYTHIA 48; +0.00180 d anti-d anti-s u PYTHIA 48; +0.00150 s anti-s anti-s u PYTHIA 48; +0.00500 anti-s g u PYTHIA 33; +#### +Enddecay + +#----------------------------------------------------------------- +# B references: +# +# [B1]: http://www.slac.stanford.edu/BFROOT/www/Physics/Tools/generators/dec-update/2002/Breco-recommendations.html +# +#----------------------------------------------------------------- + + +# +# +# B* mesons +# +Decay B*+ +1.0000 B+ gamma VSP_PWAVE; +Enddecay +Decay B*- +1.0000 B- gamma VSP_PWAVE; +Enddecay +Decay B*0 +1.0000 B0 gamma VSP_PWAVE; +Enddecay +Decay anti-B*0 +1.0000 anti-B0 gamma VSP_PWAVE; +Enddecay + +# 12-May-2004 RJT +# ---------------------------------------------------------------- +# Add B** decays assuming isospin invariance for B** with masses +# > 1 pion mass above B*. +# ---------------------------------------------------------------- +Decay B_0*0 +0.3333 B*0 pi0 PHSP; +0.6667 B*+ pi- PHSP; +Enddecay + +Decay anti-B_0*0 +0.3333 anti-B*0 pi0 PHSP; +0.6667 B*- pi+ PHSP; +Enddecay + +Decay B_0*+ +0.3333 B*+ pi0 PHSP; +0.6667 B*0 pi+ PHSP; +Enddecay + +Decay B_0*- +0.3333 B*- pi0 PHSP; +0.6667 anti-B*0 pi- PHSP; +Enddecay + +Decay B_10 +0.3333 B*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.6667 B*+ pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +Enddecay + +Decay anti-B_10 +0.3333 anti-B*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.6667 B*- pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +Enddecay + +Decay B_1+ +0.3333 B*+ pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.6667 B*0 pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +Enddecay + +Decay B_1- +0.3333 B*- pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.6667 anti-B*0 pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +Enddecay + +Decay B'_10 +0.3333 B*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.6667 B*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay + +Decay anti-B'_10 +0.3333 anti-B*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.6667 B*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay + +Decay B'_1+ +0.3333 B*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.6667 B*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay + +Decay B'_1- +0.3333 B*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.6667 anti-B*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay + +Decay B_2*0 +0.3333 B*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.6667 B*+ pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +Enddecay + +Decay anti-B_2*0 +0.3333 anti-B*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.6667 B*- pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +Enddecay + +Decay B_2*+ +0.3333 B*+ pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.6667 B*0 pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +Enddecay + +Decay B_2*- +0.3333 B*- pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.6667 anti-B*0 pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +Enddecay + +# +# B_s decays. +# +# +# To count up the BR for this decay: +# awk ' /^0./{ sum = sum + 1 ;print sum } ' junk.dec +# +# anti-B_s decays. +# ------------------------------------------------------- +# whb&fkw 3/28/01 Taken from fkw's QQ tables. +# most dubious part are the B to baryons. +# fkw 4/28/00 made the Bs parallel to the Bd as best as I could +# ------------------------------------------------------- +# +# Lange - Nov14 - NOT adjusted for D_s->phipi change +# +Decay anti-B_s0 +# b --> c (l nu) +# Sum = 24.5% +0.0210 D_s+ e- anti-nu_e PHOTOS ISGW2; +0.0490 D_s*+ e- anti-nu_e PHOTOS ISGW2; +0.0040 D_s1+ e- anti-nu_e PHOTOS ISGW2; +0.0040 D_s0*+ e- anti-nu_e PHOTOS ISGW2; +0.0070 D'_s1+ e- anti-nu_e PHOTOS ISGW2; +0.0070 D_s2*+ e- anti-nu_e PHOTOS ISGW2; +# +0.0210 D_s+ mu- anti-nu_mu PHOTOS ISGW2; +0.0490 D_s*+ mu- anti-nu_mu PHOTOS ISGW2; +0.0040 D_s1+ mu- anti-nu_mu PHOTOS ISGW2; +0.0040 D_s0*+ mu- anti-nu_mu PHOTOS ISGW2; +0.0070 D'_s1+ mu- anti-nu_mu PHOTOS ISGW2; +0.0070 D_s2*+ mu- anti-nu_mu PHOTOS ISGW2; +# +#0.0070 D_s+ tau- anti-nu_tau ISGW2; +#0.0150 D_s*+ tau- anti-nu_tau ISGW2; +#0.0013 D_s1+ tau- anti-nu_tau ISGW2; +#0.0013 D_s0*+ tau- anti-nu_tau ISGW2; +#0.0023 D'_s1+ tau- anti-nu_tau ISGW2; +#0.0023 D_s2*+ tau- anti-nu_tau ISGW2; +# fkw 5/04/01 changed the above to account for the non-res part that I +# had to take out. +0.0080 D_s+ tau- anti-nu_tau ISGW2; +0.0160 D_s*+ tau- anti-nu_tau ISGW2; +0.0018 D_s1+ tau- anti-nu_tau ISGW2; +0.0018 D_s0*+ tau- anti-nu_tau ISGW2; +0.0028 D'_s1+ tau- anti-nu_tau ISGW2; +0.0028 D_s2*+ tau- anti-nu_tau ISGW2; +# +# fkw 4/28/00 the next few are decays where a u\bar u or d\bar d is popped +# between the charm quark and the spectator. I can thus not +# just replace a D by a Ds as above when going from Bd to Bs. +# fkw 5/04/01 Had to take these out because they crash EvtGen. +# Will have to fix this eventually !!! +#0.0010 D*0 K+ tau- anti-nu_tau GOITY_ROBERTS; +#0.0010 D*+ K0 tau- anti-nu_tau GOITY_ROBERTS; +#0.0010 D0 K+ tau- anti-nu_tau GOITY_ROBERTS; +#0.0010 D+ K0 tau- anti-nu_tau GOITY_ROBERTS; +# fkw 4/28/00 B0B -> TAU D PI0 = 1/2 of TAU D PI+ because of pi0 wave function +# However, the same factor of 1/2 doesn't apply to BSB !!! +# +# fkw 3/28/01 There seem to be no semi-leptonic B to baryon decays in nature. +# I don't pretend to understand why. PDG 2000 has a limit of +# < 3.2e-3 where one might naively expect +# 10% * BR(B->/\c) = 0.1 * (6.4+-1.1)% +#0.0050 anti-nu_e e- ??? Baryon +#0.0050 anti-nu_mu mu- ??? Baryon +# +# b --> c (s c=) +# Sum = 11.44% +# 2-body = 4.72% +# more-body = 6.72% +0.0086 D_s- D_s+ PHSP; +0.0090 D_s*- D_s+ SVS;#2007 changed BR +0.0090 D_s*+ D_s- SVS; + +0.0197 D_s*- D_s*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +# fkw 4/28/00 more states with popped q\bar q. +# The one's here involve only popped and spectator. +# Popping stuff in the cs from the W comes further below. +# The same isospin comment applies here as above in the +# semi-leptonic decays with tau and popped q\bar q. +0.0096 D_s- D+ K0 PHSP; +0.0096 D_s- anti-D0 K+ PHSP; +0.0096 D_s*- D+ K0 PHSP; +0.0096 D_s*- D0 K+ PHSP; +# +0.0024 D_s- D+ pi0 K0 PHSP; +0.0048 D_s- D0 pi+ K0 PHSP; +0.0048 D_s- D+ pi- K+ PHSP; +0.0024 D_s- D0 pi0 K+ PHSP; +# +0.0024 D_s*- D+ pi0 K0 PHSP; +0.0048 D_s*- D0 pi+ K0 PHSP; +0.0048 D_s*- D+ pi- K+ PHSP; +0.0024 D_s*- D0 pi0 K+ PHSP; +# +# +# b --> (c ) (c ) (s ) +# Sum = 8.0% +# DDK amplitudes R.A.Briere 10/97 +# fkw 4/28/00 these are q\bar q popping that don't involve the spectator +# Bd->Bs just involves switching the c\bar d to c\bar s. +# +0.0150 D_s*+ anti-D*0 K- PHSP; +0.0150 D_s*+ D*- anti-K0 PHSP; +# +0.0050 D_s*+ anti-D0 K- PHSP; +0.0050 D_s*+ D- anti-K0 PHSP; +# +0.0050 D_s+ anti-D*0 K- PHSP; +0.0050 D_s+ D*- anti-K0 PHSP; +# +0.0020 D_s+ anti-D0 K- PHSP; +0.0020 D_s+ D- anti-K0 PHSP; +# +0.0030 D_s*+ anti-D*0 K*- PHSP; +0.0030 D_s*+ D*- anti-K*0 PHSP; +# +0.0050 D_s*+ anti-D0 K*- PHSP; +0.0050 D_s*+ D- anti-K*0 PHSP; +# +0.0025 D_s+ anti-D*0 K*- PHSP; +0.0025 D_s+ D*- anti-K*0 PHSP; +# +0.0025 D_s+ anti-D0 K*- PHSP; +0.0025 D_s+ D- anti-K*0 PHSP; +# +# +# b --> c (d c=) +# Sum = 1.0% +0.0017 D_s- D+ PHSP; +0.0017 D*+ D_s- SVS; +0.0017 D_s*- D+ SVS; +0.0017 D_s*- D*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +# fkw 4/38/00 more popping at the lower vertex +# but with upper vertex cabbibo suppressed. +0.0007 D- D+ K0 PHSP; +0.0007 D- anti-D0 K+ PHSP; +0.0007 D*- D+ K0 PHSP; +0.0007 D*- D0 K+ PHSP; +# +0.0003 D- D+ pi0 K0 PHSP; +0.0007 D- D0 pi+ K0 PHSP; +0.0003 D- D+ pi- K+ PHSP; +0.0007 D- D0 pi0 K+ PHSP; +# +0.0003 D*- D+ pi0 K0 PHSP; +0.0007 D*- D0 pi+ K0 PHSP; +0.0003 D*- D+ pi- K+ PHSP; +0.0007 D*- D0 pi0 K+ PHSP; +# +# b --> c (s u=) +# exclusive +# Sum = 0.09% +0.00015 D_s*+ K- SVS; +0.00015 D_s+ K- PHSP; +0.00030 D_s*+ K*- SVV_HELAMP 0.228 0.0 0.932 0.0 0.0283 0.0; +0.00030 K*- D_s+ SVS; +# +# fkw 4/28/00 Strategy for charmonium modes: +# Take Bd BR's, replace spectator, +# assume etaprime = 2/3 ss +# and eta = 1/3 ss +# +# Note: Just for kicks I gave the c\bar c decays a small piece that is +# self tagging. See if you can find it. This is already in +# the B0 decays in cleo's version of decay.dec . +# +# B --> (c c=) (s s=) +# 2.65% +# should be: psi = 0.80% CLNS 94/1315 but isn't quite right. +0.00064 J/psi eta' SVS; +0.00032 J/psi eta SVS; +0.00135 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00008 J/psi K0 SVS; +0.00070 J/psi K- K+ PHSP; +0.00070 J/psi anti-K0 K0 PHSP; +0.00070 J/psi anti-K0 K+ pi- PHSP; +0.00070 J/psi anti-K0 K0 pi0 PHSP; +0.00070 J/psi K- K+ pi0 PHSP; +# +# psi' = 0.34% CLNS 94/1315 +# +0.000465 psi(2S) eta' SVS; +0.000235 psi(2S) eta SVS; +0.0012 psi(2S) phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0003 psi(2S) K- K+ PHSP; +0.0003 psi(2S) anti-K0 K0 PHSP; +0.0003 psi(2S) anti-K0 K+ pi- PHSP; +0.0003 psi(2S) anti-K0 K0 pi0 PHSP; +0.0003 psi(2S) K- K+ pi0 PHSP; +# +# chic0 = 0.05% (20% of chic2) +# Bodwin et.al. Phys Rev D46 1992 +0.00010 chi_c0 eta' PHSP; +0.00005 chi_c0 eta PHSP; +0.00020 phi chi_c0 SVS; +0.00003 chi_c0 K- K+ PHSP; +0.00003 chi_c0 anti-K0 K0 PHSP; +0.00003 chi_c0 anti-K0 K+ pi- PHSP; +0.00003 chi_c0 anti-K0 K0 pi0 PHSP; +0.00003 chi_c0 K- K+ pi0 PHSP; +# +# +# chic1 = 0.37% CLNS 94/1315 +0.0007 chi_c1 eta' SVS; +0.0003 chi_c1 eta SVS; +0.0014 chi_c1 phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00026 chi_c1 K- K+ PHSP; +0.00026 chi_c1 anti-K0 K0 PHSP; +0.00026 chi_c1 anti-K0 K+ pi- PHSP; +0.00026 chi_c1 anti-K0 K0 pi0 PHSP; +0.00026 chi_c1 K- K+ pi0 PHSP; +# +# +# chic2 = 0.25% CLNS 94/1315 +0.000465 chi_c2 eta' STS; +0.000235 chi_c2 eta STS; +#0.0010 chi_c2 phi STV; whb: model doesn't exist! +0.00016 chi_c2 K- K+ PHSP; +0.00016 chi_c2 anti-K0 K0 PHSP; +0.00016 chi_c2 anti-K0 K+ pi- PHSP; +0.00016 chi_c2 anti-K0 K0 pi0 PHSP; +0.00016 chi_c2 K- K+ pi0 PHSP; +# +# +# etac(1s) = 0.41% Guess: CBX 97-65 +# +0.0008 eta_c eta' PHSP; +0.0004 eta_c eta PHSP; +0.0015 phi eta_c SVS; +0.00028 eta_c K- K+ PHSP; +0.00028 eta_c anti-K0 K0 PHSP; +0.00028 eta_c anti-K0 K+ pi- PHSP; +0.00028 eta_c anti-K0 K0 pi0 PHSP; +0.00028 eta_c K- K+ pi0 PHSP; +# +# +# etac(2s) = 0.18% Guess: CBX 97-65 +0.0004 eta_c(2S) eta' PHSP; +0.0002 eta_c(2S) eta PHSP; +0.0006 phi eta_c(2S) SVS; +0.00012 eta_c(2S) K- K+ PHSP; +0.00012 eta_c(2S) anti-K0 K0 PHSP; +0.00012 eta_c(2S) anti-K0 K+ pi- PHSP; +0.00012 eta_c(2S) anti-K0 K0 pi0 PHSP; +0.00012 eta_c(2S) K- K+ pi0 PHSP; +# +# +# hc = 0.25% (100% of chic2) +# Bodwin et.al. Phys Rev D46 1992 +# +0.000465 h_c eta' SVS; +0.000235 h_c eta SVS; +0.0010 h_c phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00016 h_c K- K+ PHSP; +0.00016 h_c anti-K0 K0 PHSP; +0.00016 h_c anti-K0 K+ pi- PHSP; +0.00016 h_c anti-K0 K0 pi0 PHSP; +0.00016 h_c K- K+ pi0 PHSP; +# +# +# b --> c (d u=) +# Exclusive Channels = 6.33% +# fkw 4/28/00 I rearanged this a bit after copying it from +# B0B decay list. +# +# first come the external W-emission decays: +# +0.0008 D_s1+ pi- SVS; +0.0021 D_s1+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0013 D_s2*+ pi- STS; +#0.0037 D_s2*+ rho- STV; # whb: model doesn't exist +# +0.0027 D_s*+ pi- SVS; +0.0026 D_s+ pi- PHSP; +0.0073 rho- D_s+ SVS; +0.0070 D_s*+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +0.0085 a_1- D_s+ SVS; +0.0009 D_s+ rho0 pi- PHSP; +0.0009 D_s+ rho- pi0 PHSP; +0.0009 D_s+ pi+ pi- pi- PHSP; +0.0009 D_s+ pi0 pi- pi0 PHSP; +# +0.0122 D_s*+ a_1- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0010 D_s*+ rho0 pi- PHSP; +0.0010 D_s*+ rho- pi0 PHSP; +0.0077 D_s*+ pi+ pi- pi- PHSP; +0.0010 D_s*+ pi0 pi- pi0 PHSP; +# +# then the color suppressed decays: +# +# fkw 4/28/00 color suppressed modes bumped up by factor 2 from isospin +# i.e. Bs doesn't have the factor 2 suppression Bd has. +0.0002 D*0 K0 SVS; +0.0002 D0 K0 PHSP; +0.0002 K*0 D0 SVS; +0.0002 D*0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +# fkw 4/28/00 ignore the internal W emission decays with additional +# q\bar q popping. +# +# Here come the various types of "inclusive unknown" decays: +# +# Start with B to baryons: +# fkw 3/28/01 I don't know what I'm doing here!!! This needs to be checked!!! +0.0200 cs_0 anti-ud_0 PYTHIA 23; +0.0400 cs_1 anti-ud_1 PYTHIA 23; +# +# Next come external W-emission: +0.3138 anti-u d c anti-s PYTHIA 48; +0.05000 anti-u d c anti-s PYTHIA 25; +# Now the internal W-emission: +0.02000 anti-u c d anti-s PYTHIA 48; +# Then some b->u external W-emission with upper vertex charm +0.00400 anti-c s u anti-s PYTHIA 48; +# and finally some cabibbo suppressed external and internal W-emission +0.0150 anti-u s c anti-s PYTHIA 48; +0.00220 anti-u s c anti-s PYTHIA 25; +0.00090 anti-u c s anti-s PYTHIA 48; +# and some c cbar d stuff as well as c cbar s +0.00600 anti-c d c anti-s PYTHIA 13; +0.00200 anti-c d c anti-s PYTHIA 13; +# and some miscellaneous charmless stuff +0.00410 anti-u u d anti-s PYTHIA 48; +0.00007 anti-d d d anti-s PYTHIA 48; +0.00009 anti-s s d anti-s PYTHIA 48; +0.00220 anti-u u s anti-s PYTHIA 48; +0.00180 anti-d d s anti-s PYTHIA 48; +0.00150 anti-s s s anti-s PYTHIA 48; +0.00500 s g anti-s PYTHIA 33; + +# fkw 5/10/00 the b->ulnu decays are loosely modelled according to B0 in EvtGen +0.000200 K+ e- anti-nu_e PHOTOS ISGW2; +0.000300 K*+ e- anti-nu_e PHOTOS ISGW2; +0.000300 K_1+ e- anti-nu_e PHOTOS ISGW2; +0.000200 K'_1+ e- anti-nu_e PHOTOS ISGW2; +# +# +0.000200 K+ mu- anti-nu_mu PHOTOS ISGW2; +0.000300 K*+ mu- anti-nu_mu PHOTOS ISGW2; +0.000300 K_1+ mu- anti-nu_mu PHOTOS ISGW2; +0.000200 K'_1+ mu- anti-nu_mu PHOTOS ISGW2; +# ------------- +# 2e-3 for charmless semi-leptonic + +#*********************************************************** +# +# fkw 5/10/00 +# +# ideas behind these (largely) made up Br's for charmless +# hadronic B decays: +# (1) any PP and PV modes that are used or calculated +# in globfit code by Hou,Smith,Wuerthwein are taken from +# the latest fit i.e. May2000 +# (2) anything else is from Ali,Kramer,Lue +# +# None of this should be taken too serious! +# +#*********************************************************** +0.0000193 K- K+ PHSP; +0.0000079 anti-K0 K0 PHSP; +0.0000043 pi- K+ PHSP; +0.0000002 pi0 K0 PHSP; +# +0.0000012 omega eta SVS; +0.0000025 omega eta' SVS; +0.00000008 omega anti-K0 SVS; +0.000000002 phi anti-K0 SVS; +# +#next is just twice PI- RHO0 +0.0000250 K*+ pi- SVS; +0.0000120 rho- K+ SVS; +0.00000002 rho0 K0 SVS; +0.00000002 K*0 pi0 SVS; +# +0.0000046 K*- K+ SVS; +0.0000005 anti-K*0 K0 SVS; +0.0000082 K*+ K- SVS; +0.0000066 K*0 anti-K0 SVS; +# +0.0000580 eta' eta' PHSP; +0.0000250 eta' eta PHSP; +0.0000040 eta eta PHSP; +0.0000200 phi eta SVS; +0.0000100 phi eta' SVS; +# +#next comes stuff from Ali,Kramer,Lue PRD58, 094009 FOR NC=3 +0.00000007 K0 eta' PHSP; +0.00000023 K0 eta PHSP; +0.000000021 K*0 eta' SVS; +0.00000007 K*0 eta SVS; +# +#next comes stuff from Ali,Kramer,Lue PRD58, 094009 FOR NC=3 +# for vector-vector final states +0.000020 rho- K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0000008 rho0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.000000005 omega K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +0.000006 K*- K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.000005 anti-K*0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.000008 phi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +# decays that go via b->d penguins +0.0000004 phi K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +#-------------- +# 257.122e-6 for all the charmless hadronic +# +Enddecay +# +# B_s decays. +# ------------------------------------------------------- +# whb&fkw 3/28/01 Taken from fkw's QQ tables. +# most dubious part are the B to baryons. +# fkw 4/28/00 made the Bs parallel to the Bd as best as I could +# ------------------------------------------------------- +Decay B_s0 +0.0210 D_s- e+ nu_e PHOTOS ISGW2; +0.0490 D_s*- e+ nu_e PHOTOS ISGW2; +0.0040 D_s1- e+ nu_e PHOTOS ISGW2; +0.0040 D_s0*- e+ nu_e PHOTOS ISGW2; +0.0070 D'_s1- e+ nu_e PHOTOS ISGW2; +0.0070 D_s2*- e+ nu_e PHOTOS ISGW2; +0.0210 D_s- mu+ nu_mu PHOTOS ISGW2; +0.0490 D_s*- mu+ nu_mu PHOTOS ISGW2; +0.0040 D_s1- mu+ nu_mu PHOTOS ISGW2; +0.0040 D_s0*- mu+ nu_mu PHOTOS ISGW2; +0.0070 D'_s1- mu+ nu_mu PHOTOS ISGW2; +0.0070 D_s2*- mu+ nu_mu PHOTOS ISGW2; +#fkw 5/04/01 changed these to account for taking out non-res +#0.0070 D_s- tau+ nu_tau ISGW2; +#0.0150 D_s*- tau+ nu_tau ISGW2; +#0.0013 D_s1- tau+ nu_tau ISGW2; +#0.0013 D_s0*- tau+ nu_tau ISGW2; +#0.0023 D'_s1- tau+ nu_tau ISGW2; +#0.0023 D_s2*- tau+ nu_tau ISGW2; +0.0080 D_s- tau+ nu_tau ISGW2; +0.0160 D_s*- tau+ nu_tau ISGW2; +0.0018 D_s1- tau+ nu_tau ISGW2; +0.0018 D_s0*- tau+ nu_tau ISGW2; +0.0028 D'_s1- tau+ nu_tau ISGW2; +0.0028 D_s2*- tau+ nu_tau ISGW2; +# +# fkw 4/28/00 the next few are decays where a u\bar u or d\bar d is popped +# between the charm quark and the spectator. I can thus not +# just replace a D by a Ds as above when going from Bd to Bs. +# +# fkw 5/04/01 Had to take non-res out because it crashed EvtGen. +#0.0010 anti-D*0 K- tau+ nu_tau GOITY_ROBERTS; +#0.0010 D*- anti-K0 tau+ nu_tau GOITY_ROBERTS; +#0.0010 anti-D0 K- tau+ nu_tau GOITY_ROBERTS; +#0.0010 D- anti-K0 tau+ nu_tau GOITY_ROBERTS; +# fkw 4/28/00 B0 -> TAU D PI0 = 1/2 of TAU D PI- because of pi0 wave function +# However, the same factor of 1/2 doesn't apply to BS0 !!! +# fkw 3/28/01 There seem to be no semi-leptonic B to baryon decays in nature. +# I don't pretend to understand why. PDG 2000 has a limit of +# < 3.2e-3 where one might naively expect +# 10% * BR(B->/\c) = 0.1 * (6.4+-1.1)% +#0.0050 nu_e e+ B-Baryon +#0.0050 nu_mu mu+ B-Baryon +# +# b --> c (s c=) +# Sum = 11.44% +# 2-body = 4.72% +# more-body = 6.72% +0.0086 D_s- D_s+ PHSP; +0.0090 D_s*+ D_s- SVS; +0.0090 D_s*- D_s+ SVS;#2007 changed BR +0.0197 D_s*- D_s*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +# fkw 4/28/00 more states with popped q\bar q. +# The one's here involve only popped and spectator. +# Popping stuff in the cs from the W comes further below. +# The same isospin comment applies here as above in the +# semi-leptonic decays with tau and popped q\bar q. +0.0096 D_s+ D- anti-K0 PHSP; +0.0096 D_s+ D0 K- PHSP; +0.0096 D_s*+ D- anti-K0 PHSP; +0.0096 D_s*+ anti-D0 K- PHSP; +# +0.0024 D_s+ D- pi0 anti-K0 PHSP; +0.0048 D_s+ anti-D0 pi- anti-K0 PHSP; +0.0048 D_s+ D- pi+ K- PHSP; +0.0024 D_s+ anti-D0 pi0 K- PHSP; +# +0.0024 D_s*+ D- pi0 anti-K0 PHSP; +0.0048 D_s*+ anti-D0 pi- anti-K0 PHSP; +0.0048 D_s*+ D- pi+ K- PHSP; +0.0024 D_s*+ anti-D0 pi0 K- PHSP; +# +# +# b --> (c ) (c ) (s ) +# Sum = 8.0% +# DDK amplitudes R.A.Briere 10/97 +# fkw 4/28/00 these are q\bar q popping that don't involve the spectator +# Bd->Bs just involves switching the c\bar d to c\bar s. +# +0.0150 D_s*- D*0 K+ PHSP; +0.0150 D_s*- D*+ K0 PHSP; +0.0050 D_s*- D0 K+ PHSP; +0.0050 D_s*- D+ K0 PHSP; +0.0050 D_s- D*0 K+ PHSP; +0.0050 D_s- D*+ K0 PHSP; +0.0020 D_s- D0 K+ PHSP; +0.0020 D_s- D+ K0 PHSP; +0.0030 D_s*- D*0 K*+ PHSP; +0.0030 D_s*- D*+ K*0 PHSP; +0.0050 D_s*- D0 K*+ PHSP; +0.0050 D_s*- D+ K*0 PHSP; +0.0025 D_s- D*0 K*+ PHSP; +0.0025 D_s- D*+ K*0 PHSP; +0.0025 D_s- D0 K*+ PHSP; +0.0025 D_s- D+ K*0 PHSP; +# +# +# b --> c (d c=) +# Sum = 1.36% +0.0017 D_s+ D- PHSP; +0.0017 D*- D_s+ SVS; +0.0017 D_s*+ D- SVS; +0.0017 D_s*+ D*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +# fkw 4/38/00 more popping at the lower vertex +# but with upper vertex cabbibo suppressed. +0.0007 D+ D- anti-K0 PHSP; +0.0007 D+ D0 K- PHSP; +0.0007 D*+ D- anti-K0 PHSP; +0.0007 D*+ anti-D0 K- PHSP; +# +0.0003 D+ D- pi0 anti-K0 PHSP; +0.0007 D+ anti-D0 pi- anti-K0 PHSP; +0.0003 D+ D- pi+ K- PHSP; +0.0007 D+ anti-D0 pi0 K- PHSP; +# +0.0003 D*+ D- pi0 anti-K0 PHSP; +0.0007 D*+ anti-D0 pi- anti-K0 PHSP; +0.0003 D*+ D- pi+ K- PHSP; +0.0007 D*+ anti-D0 pi0 K- PHSP; +# +# b --> c (u s=) +# exclusive +# Sum = 0.9% +0.00015 D_s*- K+ SVS; +0.00015 D_s- K+ PHSP; +0.00030 D_s*- K*+ SVV_HELAMP 0.0283 0.0 0.932 0.0 0.228 0.0; +0.00030 K*+ D_s- SVS; +# +# fkw 4/28/00 Strategy for charmonium modes: +# Take Bd BR's, replace spectator, +# assume etaprime = 2/3 ss +# and eta = 1/3 ss +# +# Note: Just for kicks I gave the c\bar c decays a small piece that is +# self tagging. See if you can find it. This is already in +# the B0 decays in cleo's version of decay.dec . +# +# B --> (c c=) (s s=) +# 2.65% +# should be: psi = 0.80% CLNS 94/1315 but isn't quite right. +0.00064 J/psi eta' SVS; +0.00032 J/psi eta SVS; +0.00135 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00008 J/psi anti-K0 SVS; +0.00070 J/psi K- K+ PHSP; +0.00070 J/psi anti-K0 K0 PHSP; +0.00070 J/psi K0 K- pi+ PHSP; +0.00070 J/psi anti-K0 K0 pi0 PHSP; +0.00070 J/psi K- K+ pi0 PHSP; +# psi' = 0.34% CLNS 94/1315 +0.000465 psi(2S) eta' SVS; +0.000235 psi(2S) eta SVS; +0.0012 psi(2S) phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0003 psi(2S) K- K+ PHSP; +0.0003 psi(2S) anti-K0 K0 PHSP; +0.0003 psi(2S) K0 K- pi+ PHSP; +0.0003 psi(2S) anti-K0 K0 pi0 PHSP; +0.0003 psi(2S) K- K+ pi0 PHSP; +# +# chic0 = 0.05% (20% of chic2) +# Bodwin et.al. Phys Rev D46 1992 +0.00010 chi_c0 eta' PHSP; +0.00005 chi_c0 eta PHSP; +0.00020 phi chi_c0 SVS; +0.00003 chi_c0 K- K+ PHSP; +0.00003 chi_c0 anti-K0 K0 PHSP; +0.00003 chi_c0 K0 K- pi+ PHSP; +0.00003 chi_c0 anti-K0 K0 pi0 PHSP; +0.00003 chi_c0 K- K+ pi0 PHSP; +# +# +# chic1 = 0.37% CLNS 94/1315 +0.0007 chi_c1 eta' SVS; +0.0003 chi_c1 eta SVS; +0.0014 chi_c1 phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00026 chi_c1 K- K+ PHSP; +0.00026 chi_c1 anti-K0 K0 PHSP; +0.00026 chi_c1 K0 K- pi+ PHSP; +0.00026 chi_c1 anti-K0 K0 pi0 PHSP; +0.00026 chi_c1 K- K+ pi0 PHSP; +# +# +# chic2 = 0.25% CLNS 94/1315 +0.000465 chi_c2 eta' STS; +0.000235 chi_c2 eta STS; +#0.0010 chi_c2 phi STV; whb: doesn't exist +0.00016 chi_c2 K- K+ PHSP; +0.00016 chi_c2 anti-K0 K0 PHSP; +0.00016 chi_c2 K0 K- pi+ PHSP; +0.00016 chi_c2 anti-K0 K0 pi0 PHSP; +0.00016 chi_c2 K- K+ pi0 PHSP; +# +# +# etac(1s) = 0.41% Guess: CBX 97-65 +0.0008 eta_c eta' PHSP; +0.0004 eta_c eta PHSP; +0.0015 phi eta_c SVS; +0.00028 eta_c K- K+ PHSP; +0.00028 eta_c K0 anti-K0 PHSP; +0.00028 eta_c K0 K- pi+ PHSP; +0.00028 eta_c K0 anti-K0 pi0 PHSP; +0.00028 eta_c K- K+ pi0 PHSP; +# +# +# etac(2s) = 0.18% Guess: CBX 97-65 +0.0004 eta_c(2S) eta' PHSP; +0.0002 eta_c(2S) eta PHSP; +0.0006 phi eta_c(2S) SVS; +0.00012 eta_c(2S) K- K+ PHSP; +0.00012 eta_c(2S) anti-K0 K0 PHSP; +0.00012 eta_c(2S) K0 K- pi+ PHSP; +0.00012 eta_c(2S) anti-K0 K0 pi0 PHSP; +0.00012 eta_c(2S) K- K+ pi0 PHSP; +# +# +# hc = 0.25% (100% of chic2) +# Bodwin et.al. Phys Rev D46 1992 +0.000465 h_c eta' SVS; +0.000235 h_c eta SVS; +0.0010 h_c phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00016 h_c K- K+ PHSP; +0.00016 h_c anti-K0 K0 PHSP; +0.00016 h_c K0 K- pi+ PHSP; +0.00016 h_c anti-K0 K0 pi0 PHSP; +0.00016 h_c K- K+ pi0 PHSP; +# +# +# b --> c (d u=) +# Exclusive Channels = 6.33% +# fkw 4/28/00 I rearanged this a bit after copying it from +# B0B decay list. +# +# first come the external W-emission decays: +# +0.0008 D_s1- pi+ SVS; +0.0021 D_s1- rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0013 D_s2*- pi+ STS; +#0.0037 D_s2*- rho+ STV; #whb: STV does not exist yet +# +0.0027 D_s*- pi+ SVS; +0.0026 D_s- pi+ PHSP; +0.0073 rho+ D_s- SVS; +0.0070 D_s*- rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +0.0085 a_1+ D_s- SVS; +0.0009 D_s- rho0 pi+ PHSP; +0.0009 D_s- rho+ pi0 PHSP; +0.0009 D_s- pi- pi+ pi+ PHSP; +0.0009 D_s- pi0 pi+ pi0 PHSP; +# +0.0122 D_s*- a_1+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0010 D_s*- rho0 pi+ PHSP; +0.0010 D_s*- rho+ pi0 PHSP; +0.0077 D_s*- pi- pi+ pi+ PHSP; +0.0010 D_s*- pi0 pi+ pi0 PHSP; +# +# then the color suppressed decays: +# +# fkw 4/28/00 color suppressed modes bumped up by factor 2 from isospin +# i.e. Bs doesn't have the factor 2 suppression Bd has. +0.0002 anti-D*0 anti-K0 SVS; +0.0002 anti-D0 anti-K0 PHSP; +0.0002 anti-K*0 anti-D0 SVS; +0.0002 anti-D*0 anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +# fkw 4/28/00 ignore the internal W emission decays with additional +# q\bar q popping. +# +# Here come the various types of "inclusive unknown" decays: +# +# Start with B to baryons: +# fkw 3/28/01 I don't know what I'm doing here!!! This needs to be checked!!! +0.0200 anti-cs_0 ud_0 PYTHIA 23; +0.0400 anti-cs_1 ud_1 PYTHIA 23; +# +# Next come external W-emission: +0.3138 u anti-d anti-c s PYTHIA 48; +0.05000 u anti-d anti-c s PYTHIA 25; +# Now the internal W-emission: +0.02000 u anti-c anti-d s PYTHIA 48; +# Then some b->u external W-emission with upper vertex charm +0.00400 c anti-s anti-u s PYTHIA 48; +# and finally some cabibbo suppressed external and internal W-emission +0.0150 u anti-s anti-c s PYTHIA 48; +0.00220 u anti-s anti-c s PYTHIA 25; +0.00090 u anti-c anti-s s PYTHIA 48; +# and some c cbar d stuff as well as c cbar s +0.00600 c anti-d anti-c s PYTHIA 13; +0.00200 c anti-d anti-c s PYTHIA 13; +# and some miscellaneous charmless stuff +0.00410 u anti-u anti-d s PYTHIA 48; +0.00007 d anti-d anti-d s PYTHIA 48; +0.00009 s anti-s anti-d s PYTHIA 48; +0.00220 u anti-u anti-s s PYTHIA 48; +0.00180 d anti-d anti-s s PYTHIA 48; +0.00150 s anti-s anti-s s PYTHIA 48; +0.00500 anti-s g s PYTHIA 33; + +# fkw 5/10/00 the b->ulnu decays are loosely modelled according to B0 in EvtGen +0.000200 K- e+ nu_e PHOTOS ISGW2; +0.000300 K*- e+ nu_e PHOTOS ISGW2; +0.000300 K_1- e+ nu_e PHOTOS ISGW2; +0.000200 K'_1- e+ nu_e PHOTOS ISGW2; +# +# +0.000200 K- mu+ nu_mu PHOTOS ISGW2; +0.000300 K*- mu+ nu_mu PHOTOS ISGW2; +0.000300 K_1- mu+ nu_mu PHOTOS ISGW2; +0.000200 K'_1- mu+ nu_mu PHOTOS ISGW2; +# ------------- +# 2e-3 for charmless semi-leptonic + +#*********************************************************** +# +# fkw 5/10/00 +# +# ideas behind these (largely) made up Br's for charmless +# hadronic B decays: +# (1) any PP and PV modes that are used or calculated +# in globfit code by Hou,Smith,Wuerthwein are taken from +# the latest fit i.e. May2000 +# (2) anything else is from Ali,Kramer,Lue +# +# None of this should be taken too serious! +# +#*********************************************************** +0.0000193 K- K+ PHSP; +0.0000079 anti-K0 K0 PHSP; +0.0000043 pi+ K- PHSP; +0.0000002 pi0 anti-K0 PHSP; +# +0.0000012 omega eta SVS; +0.0000025 omega eta' SVS; +0.00000008 omega K0 SVS; +0.000000002 phi K0 SVS; +# +0.0000250 K*- pi+ SVS; +0.0000120 rho+ K- SVS; +0.00000002 rho0 anti-K0 SVS; +0.00000002 anti-K*0 pi0 SVS; +# +0.0000046 K*+ K- SVS; +0.0000005 K*0 anti-K0 SVS; +0.0000082 K*- K+ SVS; +0.0000066 anti-K*0 K0 SVS; +# +0.0000580 eta' eta' PHSP; +0.0000250 eta' eta PHSP; +0.0000040 eta eta PHSP; +0.0000200 phi eta SVS; +0.0000100 phi eta' SVS; +# +#next comes stuff from Ali,Kramer,Lue PRD58, 094009 FOR NC=3 +0.00000007 anti-K0 eta' PHSP; +0.00000023 anti-K0 eta PHSP; +0.000000021 anti-K*0 eta' SVS; +0.00000007 anti-K*0 eta SVS; +# +#next comes stuff from Ali,Kramer,Lue PRD58, 094009 FOR NC=3 +# for vector-vector final states +0.000020 rho+ K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0000008 rho0 anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.000000005 omega anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +0.000006 K*- K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.000005 anti-K*0 K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.000008 phi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +# decays that go via b->d penguins +0.0000004 phi anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +#-------------- +# 257.122e-6 for all the charmless hadronic +# +Enddecay + +Decay B_s*0 +1.0000 B_s0 gamma VSP_PWAVE; +Enddecay + +Decay anti-B_s*0 +1.0000 anti-B_s0 gamma VSP_PWAVE; +Enddecay + + +# whb: QQ B_c included. Needs more work! +#Decay B_c- +#CHANNEL 0 0.0700 TAU- NUTB +#CHANNEL 1 0.1100 NUEB E- *CC* +#CHANNEL 1 0.1100 NUMB MU- *CC* +#CHANNEL 1 0.0300 NUTB TAU- *CC* +#CHANNEL 0 0.3400 *DU* *CC* +#CHANNEL 0 0.0700 *SC* *CC* +#CHANNEL 0 0.2700 *SC* +#0.0700 tau- anti-nu_tau PHSP; +#0.1100 anti-nu_e e- *CC* Simpleleptonic; +#0.1100 anti-nu_mu mu- *CC* Simple leptonic; +#0.0300 anti-nu_tau tau- *CC* Simple leptonic; +#0.3400 *DU* *CC* PHSP; +#0.0700 *SC* *CC* PHSP; +#0.2700 *SC* PHSP; +#Enddecay +# +#Decay B_c+ +#CHANNEL 0 0.0700 TAU+ NUT +#CHANNEL 1 0.1100 NUE E+ *CC* +#CHANNEL 1 0.1100 NUM MU+ *CC* +#CHANNEL 1 0.0300 NUT TAU+ *CC* +#CHANNEL 0 0.3400 *UD* *CC* +#CHANNEL 0 0.0700 *CS* *CC* +#CHANNEL 0 0.2700 *CS* +#0.0700 tau+ nu_tau PHSP; +#0.1100 nu_e E+ *CC* Simple leptonic; +#0.1100 nu_mu mu+ *CC* Simple leptonic; +#0.0300 nu_tau tau+ *CC* Simple leptonic; +#0.3400 *UD* *CC* PHSP; +#0.0700 *CS* *CC* PHSP; +#0.2700 *CS* PHSP; +#Enddecay + +# +# The tau branching fractions needs to be looked over! +# +Decay tau- +0.1778 e- anti-nu_e nu_tau PHOTOS TAULNUNU; +0.1731 mu- anti-nu_mu nu_tau PHOTOS TAULNUNU; +0.1095 pi- nu_tau TAUSCALARNU; +0.2531 pi- pi0 nu_tau TAUHADNU -0.108 0.775 0.149 1.364 0.400; +0.09234 pi- pi- pi+ nu_tau TAUHADNU -0.108 0.775 0.149 1.364 0.400 1.23 0.4; +0.0910 pi0 pi0 pi- nu_tau TAUHADNU -0.108 0.775 0.149 1.364 0.400 1.23 0.4; +#0.2515 rho- nu_tau TAUVECTORNU; +#0.1790 a_1- nu_tau TAUVECTORNU; +0.00686 K- nu_tau TAUSCALARNU; +0.0134 K*- nu_tau TAUVECTORNU; +0.0450 nu_tau pi- pi+ pi- pi0 PYTHIA 41; +0.0100 nu_tau pi- pi0 pi0 pi0 PYTHIA 41; +0.0015 nu_tau K- pi- K+ PYTHIA 41; +0.0015 nu_tau K0 pi- anti-K0 PYTHIA 41; +0.0015 nu_tau K- pi0 K0 PYTHIA 41; +0.0005 nu_tau K- pi0 pi0 PYTHIA 41; +0.0050 nu_tau K- pi+ pi- PYTHIA 41; +0.0055 nu_tau pi- anti-K0 pi0 PYTHIA 41; +0.0017 nu_tau eta pi- pi0 PYTHIA 41; +0.0013 nu_tau gamma pi- pi0 PYTHIA 41; +0.0009 nu_tau pi- pi- pi+ pi0 pi0 PHSP; +0.0008 nu_tau pi- pi- pi- pi+ pi+ PHSP; +0.0003 nu_tau pi- pi- pi- pi+ pi+ pi0 PHSP; +0.0005 nu_tau pi- pi- pi+ pi0 pi0 pi0 PHSP; +0.0010 nu_tau pi- pi0 pi0 pi0 pi0 PHSP; +0.0039 nu_tau pi- omega pi0 PYTHIA 41; +0.0010 nu_tau K- K0 PYTHIA 41; +0.0010 nu_tau K- omega PYTHIA 41; +Enddecay +# +CDecay tau+ +# +# Vector Mesons +# +Decay D*+ +0.6830 D0 pi+ VSS; +0.3060 D+ pi0 VSS; +0.0110 D+ gamma VSP_PWAVE; +Enddecay +Decay D*- +0.6830 anti-D0 pi- VSS; +0.3060 D- pi0 VSS; +0.0110 D- gamma VSP_PWAVE; +Enddecay +Decay D*0 +0.6190 D0 pi0 VSS; +0.3810 D0 gamma VSP_PWAVE; +Enddecay +Decay anti-D*0 +0.6190 anti-D0 pi0 VSS; +0.3810 anti-D0 gamma VSP_PWAVE; +Enddecay +# +Decay D_s*+ +0.942 D_s+ gamma VSP_PWAVE; +0.058 D_s+ pi0 VSS; +Enddecay +Decay D_s*- +0.942 D_s- gamma VSP_PWAVE; +0.058 D_s- pi0 VSS; +Enddecay +# +# +# D+ Meson +# +# Define model alias for the D -> K*lnu decays +# This should correspond to MV=2.1 GeV, MA1=MA2=2.5 GeV, +# R2=0.85 and RV=1.5 +# +ModelAlias SLPOLE_DtoKstarlnu SLPOLE 1.00 -0.558 0.0 1.0 + 0.85 -0.558 0.0 1.0 + 1.50 -0.790 0.0 1.0 + 0.00 -0.558 0.0 1.0; +# +# Model alias for the D -> rho l nu +# MV=2.0 GeV and MA1=MA2=2.4 GeV, R2=0.6, RV=1.5 +# +ModelAlias SLPOLE_Dtorholnu SLPOLE 1.00 -0.605 0.0 1.0 + 0.60 -0.605 0.0 1.0 + 1.50 -0.871 0.0 1.0 + 0.00 -0.605 0.0 1.0; +# +# Model alias for the D -> omega l nu +# MV=2.0 GeV and MA1=MA2=2.4 GeV, R2=0.6, RV=1.5 +# +ModelAlias SLPOLE_Dtoomegalnu SLPOLE 1.00 -0.605 0.0 1.0 + 0.60 -0.605 0.0 1.0 + 1.50 -0.871 0.0 1.0 + 0.00 -0.605 0.0 1.0; +# +# Model aliases for D -> Klnu, pilenu, etalnu, eta'lnu +# +ModelAlias SLBKPOLE_DtoKlnu SLBKPOLE 1.0 0.25 1.0 2.112; +ModelAlias SLBKPOLE_Dtopilnu SLBKPOLE 1.0 0.25 1.0 2.010; +ModelAlias SLBKPOLE_Dtoetalnu SLBKPOLE 1.0 0.25 1.0 2.010; +ModelAlias SLBKPOLE_Dtoetaplnu SLBKPOLE 1.0 0.25 1.0 2.010; +# +Decay D+ +# +#===================Semileptonic Decays========================= +# +0.0556 anti-K*0 e+ nu_e PHOTOS SLPOLE_DtoKstarlnu; +0.0876 anti-K0 e+ nu_e PHOTOS SLBKPOLE_DtoKlnu; +0.0033 anti-K_10 e+ nu_e PHOTOS ISGW2; +0.0033 anti-K_2*0 e+ nu_e PHOTOS ISGW2; +0.0018 K- pi+ e+ nu_e PHOTOS PHSP; +0.0039 pi0 e+ nu_e PHOTOS SLBKPOLE_Dtopilnu; +0.0013 eta e+ nu_e PHOTOS SLBKPOLE_Dtoetalnu; +0.0002 eta' e+ nu_e PHOTOS SLBKPOLE_Dtoetaplnu; +0.0023 rho0 e+ nu_e PHOTOS SLPOLE_Dtorholnu; +0.0015 omega e+ nu_e PHOTOS SLPOLE_Dtoomegalnu; +# +# Sum of exclusive semi-electronic BFs = 16.08% +# +0.0545 anti-K*0 mu+ nu_mu PHOTOS SLPOLE_DtoKstarlnu; +0.0858 anti-K0 mu+ nu_mu PHOTOS SLBKPOLE_DtoKlnu; +0.0032 anti-K_10 mu+ nu_mu PHOTOS ISGW2; +0.0032 anti-K_2*0 mu+ nu_mu PHOTOS ISGW2; +0.0018 K- pi+ mu+ nu_mu PHOTOS PHSP; +0.0038 pi0 mu+ nu_mu PHOTOS SLBKPOLE_Dtopilnu; +0.0013 eta mu+ nu_mu PHOTOS SLBKPOLE_Dtoetalnu; +0.0002 eta' mu+ nu_mu PHOTOS SLBKPOLE_Dtoetaplnu; +0.0023 rho0 mu+ nu_mu PHOTOS SLPOLE_Dtorholnu; +0.0015 omega mu+ nu_mu PHOTOS SLPOLE_Dtoomegalnu; +# +# Sum of exclusive semi-muonic BFs = 15.76% +# +0.00044 mu+ nu_mu PHOTOS SLN; +0.00116 tau+ nu_tau SLN; +# +0.0147 K_S0 pi+ PHSP; +0.0146 K_L0 pi+ PHSP; +0.0720 a_1+ anti-K0 SVS; +0.0540 anti-K'_10 pi+ SVS; +0.0094 a_1+ anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0200 anti-K*0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# the Dalitz mode below includes K*bar(892)0 pi+, +# K*bar(1430)0 pi+, and K*bar(1680)0 pi+ resonances. +0.0951 K- pi+ pi+ D_DALITZ; +# the Dalitz mode below includes K0bar rho+, +# and K*bar(892)0 pi+ resonances +0.1400 anti-K0 pi+ pi0 D_DALITZ; +0.0238 anti-K0 eta pi+ PHSP; +0.0050 anti-K0 eta' pi+ PHSP; +0.0012 anti-K0 rho0 pi+ PHSP; +0.0040 anti-K0 omega pi+ PHSP; +0.0101 K- rho+ pi+ PHSP; +0.0195 anti-K*0 pi0 pi+ PHSP; +0.0091 anti-K*0 eta pi+ PHSP; +0.0035 anti-K*0 rho0 pi+ PHSP; +0.0021 anti-K*0 omega pi+ PHSP; +0.0003 K- rho0 pi+ pi+ PHSP; +0.0042 K*- rho+ pi+ PHSP; +0.0014 anti-K0 pi+ pi+ pi- PHSP; +0.0134 anti-K0 pi+ pi0 pi0 PHSP; +0.0004 K- pi+ pi+ pi+ pi- PHSP; +0.0038 K- pi+ pi+ pi0 pi0 PHSP; +0.0089 anti-K0 pi+ pi+ pi- pi0 PHSP; +0.0006 anti-K0 pi+ pi0 pi0 pi0 PHSP; +# +0.01013 anti-K0 anti-K0 K+ PHSP; +0.0005 K+ K- anti-K0 pi+ PHSP; +0.00008 K+ K+ K- PHSP; +# +0.0065 phi pi+ SVS; +0.0038 phi rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0059 anti-K0 K+ PHSP; +0.0045 anti-K*0 K+ SVS; +0.0055 anti-K_0*0 K+ PHSP; +0.0320 K*+ anti-K0 SVS; +0.0107 anti-K*0 K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0001 K+ K- pi+ PHSP; +0.0034 anti-K0 K0 pi+ PHSP; +0.0044 anti-K0 K0 pi+ pi0 PHSP; +0.0035 K+ anti-K0 pi+ pi- PHSP; +0.0002 K+ K- pi+ pi+ pi- PHSP; +# +0.0013 pi0 pi+ PHSP; +0.0011 rho0 pi+ SVS; +0.0008 f_2 pi+ STS; +0.0004 f_0 pi+ PHSP; +0.00155 pi+ pi+ pi- PHSP; +0.0038 rho+ pi0 SVS; +0.00067 pi+ pi0 pi0 PHSP; +0.00295 rho0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00295 rho0 pi+ pi0 PHSP; +0.00295 rho+ pi+ pi- PHSP; +0.00116 pi+ pi+ pi- pi0 PHSP; +0.0041 pi+ pi0 pi0 pi0 PHSP; +0.0121 pi+ pi+ pi- pi0 pi0 PHSP; +0.0013 pi+ pi+ pi+ pi- pi- pi0 PHSP; +0.0035 eta pi+ PHSP; +0.0014 eta pi+ pi0 PHSP; +0.0032 eta pi+ pi+ pi- PHSP; +0.0037 eta pi+ pi0 pi0 PHSP; +0.0044 eta' pi+ PHSP; +0.0016 eta' pi+ pi0 PHSP; +0.0011 rho0 rho0 pi+ PHSP; +0.0006 rho0 pi+ pi+ pi- PHSP; +# +0.00024 K+ pi0 PHSP; +0.00025 rho0 K+ SVS; +0.00030 K*0T pi+ SVS; +0.00011 K+ f_0 PHSP; +0.00016 K_2*0 pi+ STS; +Enddecay +# +# +# +Decay D- +# +#===================Semileptonic Decays========================= +# +0.0556 K*0 e- anti-nu_e PHOTOS SLPOLE_DtoKstarlnu; +0.0876 K0 e- anti-nu_e PHOTOS SLBKPOLE_DtoKlnu; +0.0033 K_10 e- anti-nu_e PHOTOS ISGW2; +0.0033 K_2*0 e- anti-nu_e PHOTOS ISGW2; +0.0018 K+ pi- e- anti-nu_e PHOTOS PHSP; +0.0039 pi0 e- anti-nu_e PHOTOS SLBKPOLE_Dtopilnu; +0.0013 eta e- anti-nu_e PHOTOS SLBKPOLE_Dtoetalnu; +0.0002 eta' e- anti-nu_e PHOTOS SLBKPOLE_Dtoetaplnu; +0.0023 rho0 e- anti-nu_e PHOTOS SLPOLE_Dtorholnu; +0.0015 omega e- anti-nu_e PHOTOS SLPOLE_Dtoomegalnu; +# +# Sum of exclusive semi-electronic BFs = 16.08% +# +0.0545 K*0 mu- anti-nu_mu PHOTOS SLPOLE_DtoKstarlnu; +0.0858 K0 mu- anti-nu_mu PHOTOS SLBKPOLE_DtoKlnu; +0.0032 K_10 mu- anti-nu_mu PHOTOS ISGW2; +0.0032 K_2*0 mu- anti-nu_mu PHOTOS ISGW2; +0.0018 K+ pi- mu- anti-nu_mu PHOTOS PHSP; +0.0038 pi0 mu- anti-nu_mu PHOTOS SLBKPOLE_Dtopilnu; +0.0013 eta mu- anti-nu_mu PHOTOS SLBKPOLE_Dtoetalnu; +0.0002 eta' mu- anti-nu_mu PHOTOS SLBKPOLE_Dtoetaplnu; +0.0023 rho0 mu- anti-nu_mu PHOTOS SLPOLE_Dtorholnu; +0.0015 omega mu- anti-nu_mu PHOTOS SLPOLE_Dtoomegalnu; +# +# Sum of exclusive semi-muonic BFs = 15.76% +# +# +0.00044 mu- anti-nu_mu PHOTOS SLN; +0.00116 tau- anti-nu_tau SLN; +# +0.0147 K_S0 pi- PHSP; +0.0146 K_L0 pi- PHSP; +0.0720 a_1- K0 SVS; +0.0540 K'_10 pi- SVS; +0.0094 a_1- K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0200 K*0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +# the Dalitz mode below includes K*(892)0 pi-, K*(1430)0 pi-, and K*(1680)0 pi- resonances. +0.0951 K+ pi- pi- D_DALITZ; +# the Dalitz mode below includes K0 rho-, and K*(892)0 pi- resonances. +0.1400 K0 pi- pi0 D_DALITZ; +0.0238 K0 eta pi- PHSP; +0.0050 K0 eta' pi- PHSP; +0.0012 K0 rho0 pi- PHSP; +0.0040 K0 omega pi- PHSP; +0.0101 K+ rho- pi- PHSP; +0.0195 K*0 pi0 pi- PHSP; +0.0091 K*0 eta pi- PHSP; +0.0035 K*0 rho0 pi- PHSP; +0.0021 K*0 omega pi- PHSP; +0.0003 K+ rho0 pi- pi- PHSP; +0.0042 K*+ rho- pi- PHSP; +0.0014 K0 pi- pi- pi+ PHSP; +0.0134 K0 pi- pi0 pi0 PHSP; +0.0004 K+ pi- pi- pi- pi+ PHSP; +0.0038 K+ pi- pi- pi0 pi0 PHSP; +0.0089 K0 pi- pi- pi+ pi0 PHSP; +0.0006 K0 pi- pi0 pi0 pi0 PHSP; +# +0.01013 K0 K0 K- PHSP; +0.0005 K- K+ K0 pi- PHSP; +0.00008 K- K- K+ PHSP; +# +0.0065 phi pi- SVS; +0.0038 phi rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0059 K0 K- PHSP; +0.0045 K*0 K- SVS; +0.0055 K_0*0 K- PHSP; +0.0320 K*- K0 SVS; +0.0107 K*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0001 K- K+ pi- PHSP; +0.0034 K0 anti-K0 pi- PHSP; +0.0044 K0 anti-K0 pi- pi0 PHSP; +0.0035 K- K0 pi- pi+ PHSP; +0.0002 K- K+ pi- pi- pi+ PHSP; +# +0.0013 pi0 pi- PHSP; +0.0011 rho0 pi- SVS; +0.0008 f_2 pi- STS; +0.0004 f_0 pi- PHSP; +0.00155 pi- pi- pi+ PHSP; +0.0038 rho- pi0 SVS; +0.00067 pi- pi0 pi0 PHSP; +0.00295 rho0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00295 rho0 pi- pi0 PHSP; +0.00295 rho- pi- pi+ PHSP; +0.00116 pi- pi- pi+ pi0 PHSP; +0.0041 pi- pi0 pi0 pi0 PHSP; +0.0121 pi- pi- pi+ pi0 pi0 PHSP; +0.0013 pi- pi- pi- pi+ pi+ pi0 PHSP; +0.0035 eta pi- PHSP; +0.0014 eta pi- pi0 PHSP; +0.0032 eta pi- pi- pi+ PHSP; +0.0037 eta pi- pi0 pi0 PHSP; +0.0044 eta' pi- PHSP; +0.0016 eta' pi- pi0 PHSP; +0.0011 rho0 rho0 pi- PHSP; +0.0006 rho0 pi- pi- pi+ PHSP; +# +0.00024 K- pi0 PHSP; +0.00025 rho0 K- SVS; +0.00030 anti-K*0T pi- SVS; +0.00011 K- f_0 PHSP; +0.00016 anti-K_2*0 pi- STS; +Enddecay +# +Decay K*BR +1.0000 anti-K0 pi0 VSS; +Enddecay +# +# +# +#Special omega that does not decay to pi+ pi-; needed for Dalitz compensation +#in D decays +Alias omega_A omega +# +Decay omega_A +0.9081 pi- pi+ pi0 OMEGA_DALITZ; +0.0869 pi0 gamma VSP_PWAVE; +0.0008 eta gamma VSP_PWAVE; +0.0006 pi0 e+ e- PHOTOS PHSP; +0.0001 pi0 mu+ mu- PHOTOS PHSP; +0.0021 pi+ pi- gamma PHSP; +0.0004 pi0 pi0 gamma PHSP; +0.0010 pi+ pi- pi+ pi- PHSP; +Enddecay +# +Decay D0 +# +#=================Semileptonic decays======================== +# +0.0216 K*- e+ nu_e PHOTOS SLPOLE_DtoKstarlnu; +0.0356 K- e+ nu_e PHOTOS SLBKPOLE_DtoKlnu; +0.0010 K_1- e+ nu_e PHOTOS ISGW2; +0.0010 K_2*- e+ nu_e PHOTOS ISGW2; +0.0004 K- pi0 e+ nu_e PHSP; +0.0007 anti-K0 pi- e+ nu_e PHSP; +0.0031 pi- e+ nu_e PHOTOS SLBKPOLE_Dtopilnu; +0.0016 rho- e+ nu_e PHOTOS SLPOLE_Dtorholnu; +# +# Sum of exclusive semi-electronic BFs = 6.50% +# +0.0212 K*- mu+ nu_mu PHOTOS SLPOLE_DtoKstarlnu; +0.0349 K- mu+ nu_mu PHOTOS SLBKPOLE_DtoKlnu; +0.0010 K_1- mu+ nu_mu PHOTOS ISGW2; +0.0010 K_2*- mu+ nu_mu PHOTOS ISGW2; +0.0004 K- pi0 mu+ nu_mu PHSP; +0.0007 anti-K0 pi- mu+ nu_mu PHSP; +0.0030 pi- mu+ nu_mu PHOTOS SLBKPOLE_Dtopilnu; +0.0016 rho- mu+ nu_mu PHOTOS SLPOLE_Dtorholnu; +# +# Sum of exclusive semi-muonic BFs = 6.38% +# +# +0.0382 K- pi+ PHSP; +0.0122 K_S0 pi0 PHSP; +0.0100 K_L0 pi0 PHSP; +0.0076 anti-K0 eta PHSP; +0.0182 anti-K0 eta' PHSP; +# Excludes contribution to anti-K0 pi+ pi- +0.0213 omega_A anti-K0 SVS; +0.0053 anti-K*0 eta SVS; +0.0007 anti-K*0 eta' SVS; +0.0750 a_1+ K- SVS; +0.0640 K*- rho+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0150 anti-K*0 rho0 SVV_HELAMP 1.0 0.0 0.0 0.0 1.0 0.0; +0.0110 anti-K*0 omega SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# the Dalitz mode below includes K*bar(892)0 pi0, +# K*(892)- pi+, and K- rho(770)+ resonances +0.1350 K- pi+ pi0 D_DALITZ; +0.0124 K*BR pi0 SVS; +0.0111 K_1- pi+ SVS; +0.0056 anti-K_10 pi0 SVS; +# +# the Dalitz mode below includes a number of resonances including K*(892)- pi+ and Kbar0 rho(770)0 +0.0576 anti-K0 pi+ pi- D_DALITZ; +0.0158 anti-K0 pi0 pi0 PHSP; +0.0062 anti-K*0 pi+ pi- PHSP; +0.0091 anti-K*0 pi0 pi0 PHSP; +0.0062 K*- pi+ pi0 PHSP; +0.0008 K- rho+ pi0 PHSP; +0.0159 K- pi+ rho0 PHSP; +0.0227 K- pi+ omega PHSP; +0.0031 K- pi+ eta PHSP; +0.0072 K- pi+ eta' PHSP; +0.0015 anti-K0 pi0 eta PHSP; +0.0027 anti-K0 pi+ pi- eta PHSP; +0.02469 anti-K0 pi0 pi0 eta PHSP; +0.0055 K- pi+ pi+ pi- PHSP; +0.0225 anti-K0 pi+ pi- pi0 PHSP; +0.0036 K- pi+ pi0 pi0 PHSP; +0.0102 anti-K0 pi0 pi0 pi0 PHSP; +0.00154 K- pi+ pi+ pi- pi0 PHSP; +0.0015 K- pi+ pi0 pi0 pi0 PHSP; +0.0298 anti-K0 pi+ pi- pi0 pi0 PHSP; +0.0118 anti-K0 pi+ pi- pi0 pi0 pi0 PHSP; +0.0080 anti-K0 a_00 PHSP; +0.0122 K- a_0+ PHSP; +0.0022 anti-K0 rho0 pi+ pi- PHSP; +0.0048 K*- rho0 pi+ PHSP; +0.0001 K*- pi+ pi+ pi- PHSP; +0.0002 K- pi+ pi+ pi+ pi- pi- PHSP; +# +0.00008 K- pi+ phi PHSP; +0.0085 phi anti-K0 SVS; +0.00031 phi anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0033 anti-K0 K+ K- PHSP; +0.0008 K_S0 K_S0 K_S0 PHSP; +0.0008 K_L0 K_L0 K_L0 PHSP; +0.0003 K_L0 K_L0 K+ pi- PHSP; +0.0003 K_L0 K_L0 K- pi+ PHSP; +0.0003 K_S0 K_S0 K- pi+ PHSP; +0.0003 K_S0 K_S0 K+ pi- PHSP; +0.00006 K+ K- anti-K*0 PHSP; +0.00003 K+ K- K- pi+ PHSP; +0.00030 phi K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +0.0039 K+ K- PHSP; +0.00015 K_S0 K_S0 PHSP; +0.00015 K_L0 K_L0 PHSP; +0.0004 K*0 anti-K0 SVS; +0.0008 anti-K*0 K0 SVS; +0.0012 K*- K+ SVS; +0.0044 K*+ K- SVS; +0.0010 K+ K- pi0 PHSP; +0.00075 phi pi0 SVS; +0.00005 phi pi+ pi- PHSP; +0.0014 phi rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0025 K+ K- pi0 pi0 PHSP; +0.0043 anti-K0 K0 pi+ pi- PHSP; +0.0022 anti-K0 K0 pi0 pi0 PHSP; +0.0034 K0 K- pi+ PHSP; +0.0042 anti-K0 K+ pi- PHSP; +0.0042 anti-K0 K+ pi- pi0 PHSP; +0.0042 K0 K- pi+ pi0 PHSP; +0.0001 K*0 K- pi+ PHSP; +0.0001 anti-K*0 K+ pi- PHSP; +0.0010 K_1+ K- SVS; +0.0010 K_1- K+ SVS; +0.0006 K'_1+ K- SVS; +0.0006 K'_1- K+ SVS; +0.0029 K+ K- pi+ pi- pi0 PHSP; +0.00014 phi eta SVS; +# +0.0014 pi+ pi- PHSP; +0.0008 pi0 pi0 PHSP; +0.00061 eta pi0 PHSP; +0.00081 eta' pi0 PHSP; +0.0040 eta pi+ pi- pi0 PHSP; +0.0017 eta eta PHSP; +0.0013 eta eta' PHSP; +0.0080 rho+ pi- SVS; +0.0036 rho- pi+ SVS; +0.0025 rho0 pi0 SVS; +0.0032 f_0 pi+ pi- PHSP; +0.0016 f_0 pi0 pi0 PHSP; +0.0002 pi0 pi0 pi0 PHSP; +0.0037 rho0 rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00193 pi+ pi+ pi- pi- PHSP; +0.0259 pi+ pi+ pi- pi- pi0 pi0 PHSP; +0.0076 rho+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00034 pi+ pi- pi0 pi0 PHSP; +0.0016 omega pi+ pi- PHSP; +0.0017 rho0 pi+ pi- pi0 PHSP; +0.0005 rho0 rho0 pi0 PHSP; +0.0042 pi+ pi- pi0 pi0 pi0 PHSP; +0.0004 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.0011 pi+ pi- eta PHSP; +0.00045 pi+ pi- eta' PHSP; +# +# Doubly Cabibbo suppressed decays: +0.00014 pi- K+ PHSP; +0.00030 pi- K+ pi0 PHSP; +0.00025 pi- K+ pi- pi+ PHSP; +# Radiative decays +0.00002 phi gamma HELAMP 1.0 0.0 1.0 0.0; +0.0003 anti-K*0 gamma HELAMP 1.0 0.0 1.0 0.0; +Enddecay +# +# +Decay K*0R +1.0000 K0 pi0 VSS; +Enddecay +# +# +Decay anti-D0 +# +#=================Semileptonic decays======================== +# +0.0216 K*+ e- anti-nu_e PHOTOS SLPOLE_DtoKstarlnu; +0.0356 K+ e- anti-nu_e PHOTOS SLBKPOLE_DtoKlnu; +0.0010 K_1+ e- anti-nu_e PHOTOS ISGW2; +0.0010 K_2*+ e- anti-nu_e PHOTOS ISGW2; +0.0004 K+ pi0 e- anti-nu_e PHSP; +0.0007 K0 pi+ e- anti-nu_e PHSP; +0.0031 pi+ e- anti-nu_e PHOTOS SLBKPOLE_Dtopilnu; +0.0016 rho+ e- anti-nu_e PHOTOS SLPOLE_Dtorholnu; +# +# Sum of exclusive semi-electronic BFs = 6.50% +# +0.0212 K*+ mu- anti-nu_mu PHOTOS SLPOLE_DtoKstarlnu; +0.0349 K+ mu- anti-nu_mu PHOTOS SLBKPOLE_DtoKlnu; +0.0010 K_1+ mu- anti-nu_mu PHOTOS ISGW2; +0.0010 K_2*+ mu- anti-nu_mu PHOTOS ISGW2; +0.0004 K+ pi0 mu- anti-nu_mu PHSP; +0.0007 K0 pi+ mu- anti-nu_mu PHSP; +0.0030 pi+ mu- anti-nu_mu PHOTOS SLBKPOLE_Dtopilnu; +0.0016 rho+ mu- anti-nu_mu PHOTOS SLPOLE_Dtorholnu; +# +# Sum of exclusive semi-muonic BFs = 6.38% +# +# +0.0382 K+ pi- PHSP; +0.0122 K_S0 pi0 PHSP; +0.0100 K_L0 pi0 PHSP; +0.0076 K0 eta PHSP; +0.0182 K0 eta' PHSP; +# Excludes contribution to K0 pi- pi+ +0.0213 omega_A K0 SVS; +0.0053 K*0 eta SVS; +0.0007 K*0 eta' SVS; +0.0750 a_1- K+ SVS; +0.0640 K*+ rho- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0150 K*0 rho0 SVV_HELAMP 1.0 0.0 0.0 0.0 1.0 0.0; +0.0110 K*0 omega SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# the Dalitz mode below includes K*(892)0 pi0, K*(892)+ pi-, and K+ rho(770)- resonances +0.1350 K+ pi- pi0 D_DALITZ; +0.0124 K*0R pi0 SVS; +0.0111 K_1+ pi- SVS; +0.0056 K_10 pi0 SVS; +# the Dalitz mode below includes K*(892)+ pi- and K0 rho(770)0 resonances +0.0576 K0 pi+ pi- D_DALITZ; +0.0158 K0 pi0 pi0 PHSP; +0.0062 K*0 pi- pi+ PHSP; +0.0091 K*0 pi0 pi0 PHSP; +0.0062 K*+ pi- pi0 PHSP; +0.0008 K+ rho- pi0 PHSP; +0.0159 K+ pi- rho0 PHSP; +0.0227 K+ pi- omega PHSP; +0.0031 K+ pi- eta PHSP; +0.0072 K+ pi- eta' PHSP; +0.0015 K0 pi0 eta PHSP; +0.0027 K0 pi- pi+ eta PHSP; +0.02469 K0 pi0 pi0 eta PHSP; +0.0055 K+ pi- pi- pi+ PHSP; +0.0225 K0 pi- pi+ pi0 PHSP; +0.0036 K+ pi- pi0 pi0 PHSP; +0.0102 K0 pi0 pi0 pi0 PHSP; +0.00154 K+ pi- pi- pi+ pi0 PHSP; +0.0015 K+ pi- pi0 pi0 pi0 PHSP; +0.0298 K0 pi- pi+ pi0 pi0 PHSP; +0.0118 K0 pi- pi+ pi0 pi0 pi0 PHSP; +0.0080 K0 a_00 PHSP; +0.0122 K+ a_0- PHSP; +0.0022 K0 rho0 pi- pi+ PHSP; +0.0048 K*+ rho0 pi- PHSP; +0.0001 K*+ pi- pi- pi+ PHSP; +0.0002 K+ pi- pi- pi- pi+ pi+ PHSP; +# +0.00008 K+ pi- phi PHSP; +0.0085 phi K0 SVS; +0.00031 phi K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0033 K0 K- K+ PHSP; +0.0008 K_S0 K_S0 K_S0 PHSP; +0.0008 K_L0 K_L0 K_L0 PHSP; +0.0003 K_L0 K_L0 K- pi+ PHSP; +0.0003 K_L0 K_L0 K+ pi- PHSP; +0.0003 K_S0 K_S0 K+ pi- PHSP; +0.0003 K_S0 K_S0 K- pi+ PHSP; +0.00006 K- K+ K*0 PHSP; +0.00003 K- K+ K+ pi- PHSP; +0.00030 phi anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +0.0039 K- K+ PHSP; +0.00015 K_S0 K_S0 PHSP; +0.00015 K_L0 K_L0 PHSP; +0.0004 anti-K*0 K0 SVS; +0.0008 K*0 anti-K0 SVS; +0.0012 K*+ K- SVS; +0.0044 K*- K+ SVS; +0.0010 K- K+ pi0 PHSP; +0.00075 phi pi0 SVS; +0.00005 phi pi- pi+ PHSP; +0.0014 phi rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0025 K- K+ pi0 pi0 PHSP; +0.0043 K0 anti-K0 pi- pi+ PHSP; +0.0022 K0 anti-K0 pi0 pi0 PHSP; +0.0034 anti-K0 K+ pi- PHSP; +0.0042 K0 K- pi+ PHSP; +0.0042 K0 K- pi+ pi0 PHSP; +0.0042 anti-K0 K+ pi- pi0 PHSP; +0.0001 anti-K*0 K- pi+ PHSP; +0.0001 K*0 K- pi+ PHSP; +0.0010 K_1- K+ SVS; +0.0010 K_1+ K- SVS; +0.0006 K'_1- K+ SVS; +0.0006 K'_1+ K- SVS; +0.0029 K- K+ pi- pi+ pi0 PHSP; +0.00014 phi eta SVS; +# +0.0014 pi+ pi- PHSP; +0.0008 pi0 pi0 PHSP; +0.00061 eta pi0 PHSP; +0.00081 eta' pi0 PHSP; +0.0040 eta pi- pi+ pi0 PHSP; +0.0017 eta eta PHSP; +0.0013 eta eta' PHSP; +0.0080 rho- pi+ SVS; +0.0036 rho+ pi- SVS; +0.0025 rho0 pi0 SVS; +0.0032 f_0 pi- pi+ PHSP; +0.0016 f_0 pi0 pi0 PHSP; +0.0002 pi0 pi0 pi0 PHSP; +0.0037 rho0 rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00193 pi- pi- pi+ pi+ PHSP; +0.0259 pi- pi- pi+ pi+ pi0 pi0 PHSP; +0.0076 rho- rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00034 pi- pi+ pi0 pi0 PHSP; +0.0016 omega pi- pi+ PHSP; +0.0017 rho0 pi- pi+ pi0 PHSP; +0.0005 rho0 rho0 pi0 PHSP; +0.0042 pi- pi+ pi0 pi0 pi0 PHSP; +0.0004 pi- pi- pi- pi+ pi+ pi+ PHSP; +0.0011 pi- pi+ eta PHSP; +0.00045 pi- pi+ eta' PHSP; +# +# Doubly Cabibbo suppressed decays: +0.00014 pi+ K- PHSP; +0.00030 pi+ K- pi0 PHSP; +0.00025 pi+ K- pi+ pi- PHSP; +# Radiative decays +0.00002 phi gamma HELAMP 1.0 0.0 1.0 0.0; +0.0003 K*0 gamma HELAMP 1.0 0.0 1.0 0.0; +Enddecay +# +# These will all be redefined at the end after Decay definitions +Alias phi_A phi +Alias f_0_A f_0 +Alias f'_0_A f'_0 +Alias f_2_A f_2 +# +Decay D_s+ +0.0217 phi e+ nu_e PHOTOS ISGW2; +0.0248 eta e+ nu_e PHOTOS ISGW2; +0.0086 eta' e+ nu_e PHOTOS ISGW2; +0.0018 K0 e+ nu_e PHOTOS ISGW2; +0.0019 K*0 e+ nu_e PHOTOS ISGW2; +0.0031 f_0 e+ nu_e PHOTOS ISGW2; +0.0206 phi mu+ nu_mu PHOTOS ISGW2; +0.0235 eta mu+ nu_mu PHOTOS ISGW2; +0.0082 eta' mu+ nu_mu PHOTOS ISGW2; +0.0017 K0 mu+ nu_mu PHOTOS ISGW2; +0.0018 K*0 mu+ nu_mu PHOTOS ISGW2; +0.0029 f_0 mu+ nu_mu PHOTOS ISGW2; +0.0061 mu+ nu_mu PHOTOS SLN; +0.0599 tau+ nu_tau SLN; +0.0537 K- K+ pi+ D_DALITZ; +0.0206 phi_A pi+ SVS; +0.0154 eta pi+ PHSP; +0.0367 eta' pi+ PHSP; +0.0025 omega pi+ SVS; +0.0103 f_0_A pi+ PHSP; +0.0062 f'_0_A pi+ PHSP; +0.0018 f_2_A pi+ STS; +0.0735 phi rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0020 K+ anti-K_0*0N PHSP; +0.0017 K_L0 K_L0 pi+ pi+ pi- PHSP; +0.0017 K_S0 K_S0 pi+ pi+ pi- PHSP; +0.0005 K_L0 K_L0 pi+ pi0 pi0 PHSP; +0.0005 K_S0 K_S0 pi+ pi0 pi0 PHSP; +0.0236 phi a_1+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0758 rho+ eta SVS; +0.0387 rho+ eta' SVS; +0.0056 pi+ pi0 pi0 PHSP; +0.0237 eta pi+ pi- pi+ PHSP; +0.0325 eta pi+ pi0 pi0 PHSP; +0.0293 anti-K0 K+ PHSP; +0.0124 K*BR K+ SVS; +0.0377 K*+ anti-K0 SVS; +0.0741 anti-K*0 K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0048 anti-K*0 K*+ pi0 PHSP; +0.0048 anti-K*0 K*0 pi+ PHSP; +0.0199 anti-K0 K+ pi+ pi- PHSP; +0.0085 anti-K0 K+ pi0 pi0 PHSP; +0.0019 K+ K- pi+ pi0 pi0 PHSP; +0.0070 K+ anti-K0 pi0 pi0 pi0 PHSP; +0.0014 eta K+ PHSP; +0.0015 eta' K+ PHSP; +0.0005 K+ K- K+ PHSP; +0.0005 K0 anti-K0 K+ PHSP; +0.0016 rho(2S)0 pi+ SVS; +0.0015 rho(2S)+ pi0 SVS; +0.0067 pi+ pi+ pi+ pi- pi- PHSP; +0.0107 pi+ pi+ pi- pi0 PHSP; +0.0288 pi+ pi+ pi- pi0 pi0 PHSP; +0.0455 pi+ pi+ pi- pi0 pi0 pi0 PHSP; +0.0177 pi+ pi+ pi+ pi- pi- pi0 PHSP; +0.0085 pi+ pi0 pi0 pi0 pi0 PHSP; +0.0007 K+ pi0 PHSP; +0.0024 K0 pi+ PHSP; +0.0026 rho0 K+ SVS; +0.0050 rho+ K0 SVS; +0.0022 K*0 pi+ SVS; +0.0010 K*+ pi0 SVS; +0.0046 K*0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0023 K*+ rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0018 rho(2S)0 K+ SVS; +0.0251 K'*0 pi+ SVS; +0.0008 K_0*0 pi+ PHSP; +0.0003 K+ pi+ pi- PHSP; +0.0035 rho(2S)+ K0 SVS; +0.0067 K'*+ pi0 SVS; +0.0004 K_0*+ pi0 PHSP; +0.0003 K+ K+ pi- PHSP; +0.0014 p+ anti-n0 PHSP; +Enddecay +# +Decay D_s- +0.0217 phi e- anti-nu_e PHOTOS ISGW2; +0.0248 eta e- anti-nu_e PHOTOS ISGW2; +0.0086 eta' e- anti-nu_e PHOTOS ISGW2; +0.0018 anti-K0 e- anti-nu_e PHOTOS ISGW2; +0.0019 anti-K*0 e- anti-nu_e PHOTOS ISGW2; +0.0031 f_0 e- anti-nu_e PHOTOS ISGW2; +0.0206 phi mu- anti-nu_mu PHOTOS ISGW2; +0.0235 eta mu- anti-nu_mu PHOTOS ISGW2; +0.0082 eta' mu- anti-nu_mu PHOTOS ISGW2; +0.0017 anti-K0 mu- anti-nu_mu PHOTOS ISGW2; +0.0018 anti-K*0 mu- anti-nu_mu PHOTOS ISGW2; +0.0029 f_0 mu- anti-nu_mu PHOTOS ISGW2; +0.0061 mu- anti-nu_mu PHOTOS SLN; +0.0599 tau- anti-nu_tau SLN; +0.0537 K+ K- pi- D_DALITZ; +0.0206 phi_A pi- SVS; +0.0154 eta pi- PHSP; +0.0367 eta' pi- PHSP; +0.0025 omega pi- SVS; +0.0103 f_0_A pi- PHSP; +0.0062 f'_0_A pi- PHSP; +0.0018 f_2_A pi- STS; +0.0735 phi rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0020 K- K_0*0N PHSP; +0.0017 K_L0 K_L0 pi- pi- pi+ PHSP; +0.0017 K_S0 K_S0 pi- pi- pi+ PHSP; +0.0005 K_L0 K_L0 pi- pi0 pi0 PHSP; +0.0005 K_S0 K_S0 pi- pi0 pi0 PHSP; +0.0236 phi a_1- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0758 rho- eta SVS; +0.0387 rho- eta' SVS; +0.0056 pi- pi0 pi0 PHSP; +0.0237 eta pi- pi+ pi- PHSP; +0.0325 eta pi- pi0 pi0 PHSP; +0.0293 K0 K- PHSP; +0.0124 K*0R K- SVS; +0.0377 K*- K0 SVS; +0.0741 K*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0048 K*0 K*- pi0 PHSP; +0.0048 K*0 anti-K*0 pi- PHSP; +0.0199 K0 K- pi- pi+ PHSP; +0.0085 K0 K- pi0 pi0 PHSP; +0.0019 K- K+ pi- pi0 pi0 PHSP; +0.0070 K- K0 pi0 pi0 pi0 PHSP; +0.0014 eta K- PHSP; +0.0015 eta' K- PHSP; +0.0005 K- K- K+ PHSP; +0.0005 anti-K0 K0 K- PHSP; +0.0016 rho(2S)0 pi- SVS; +0.0015 rho(2S)- pi0 SVS; +0.0067 pi- pi- pi- pi+ pi+ PHSP; +0.0107 pi- pi- pi+ pi0 PHSP; +0.0288 pi- pi- pi+ pi0 pi0 PHSP; +0.0455 pi- pi- pi+ pi0 pi0 pi0 PHSP; +0.0177 pi- pi- pi- pi+ pi+ pi0 PHSP; +0.0085 pi- pi0 pi0 pi0 pi0 PHSP; +0.0007 K- pi0 PHSP; +0.0024 anti-K0 pi- PHSP; +0.0026 rho0 K- SVS; +0.0050 rho- anti-K0 SVS; +0.0022 anti-K*0 pi- SVS; +0.0010 K*- pi0 SVS; +0.0046 anti-K*0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0023 K*- rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0018 rho(2S)0 K- SVS; +0.0251 anti-K'*0 pi- SVS; +0.0008 anti-K_0*0 pi- PHSP; +0.0003 K- pi- pi+ PHSP; +0.0035 rho(2S)- anti-K0 SVS; +0.0067 K'*- pi0 SVS; +0.0004 K_0*- pi0 PHSP; +0.0003 K- K- pi+ PHSP; +0.0014 anti-p- n0 PHSP; +Enddecay +# +# D** +# +Decay D_0*+ +0.3333 D+ pi0 PHSP; +0.6667 D0 pi+ PHSP; +Enddecay +Decay D_0*- +0.3333 D- pi0 PHSP; +0.6667 anti-D0 pi- PHSP; +Enddecay +Decay D_0*0 +0.3333 D0 pi0 PHSP; +0.6667 D+ pi- PHSP; +Enddecay +Decay anti-D_0*0 +0.3333 anti-D0 pi0 PHSP; +0.6667 D- pi+ PHSP; +Enddecay +# + +SetLineshapePW D_1+ D*+ pi0 2 +SetLineshapePW D_1+ D*0 pi+ 2 +SetLineshapePW D_1- D*- pi0 2 +SetLineshapePW D_1- anti-D*0 pi- 2 +SetLineshapePW D_10 D*0 pi0 2 +SetLineshapePW D_10 D*+ pi- 2 +SetLineshapePW anti-D_10 anti-D*0 pi0 2 +SetLineshapePW anti-D_10 D*- pi+ 2 + +Decay D_1+ +0.26 D*+ pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.53 D*0 pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.14 D+ pi+ pi- PHSP; +0.07 D+ pi0 pi0 PHSP; +Enddecay +Decay D_1- +0.26 D*- pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.53 anti-D*0 pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.14 D- pi+ pi- PHSP; +0.07 D- pi0 pi0 PHSP; +Enddecay +Decay D_10 +0.26 D*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.53 D*+ pi- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.14 D0 pi+ pi- PHSP; +0.07 D0 pi0 pi0 PHSP; +Enddecay +Decay anti-D_10 +0.26 anti-D*0 pi0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.53 D*- pi+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.14 anti-D0 pi+ pi- PHSP; +0.07 anti-D0 pi0 pi0 PHSP; +Enddecay +# +Decay D'_1+ +0.3333 D*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.6667 D*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +Decay D'_1- +0.3333 D*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.6667 anti-D*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +Decay D'_10 +0.6667 D*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.3333 D*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +Decay anti-D'_10 +0.6667 D*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.3333 anti-D*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; + +Enddecay +# + +SetLineshapePW D_2*+ D*+ pi0 2 +SetLineshapePW D_2*+ D*0 pi+ 2 +SetLineshapePW D_2*- D*- pi0 2 +SetLineshapePW D_2*- anti-D*0 pi- 2 +SetLineshapePW D_2*0 D*0 pi0 2 +SetLineshapePW D_2*0 D*+ pi- 2 +SetLineshapePW anti-D_2*0 anti-D*0 pi0 2 +SetLineshapePW anti-D_2*0 D*- pi+ 2 + +Decay D_2*+ +0.1030 D*+ pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.2090 D*0 pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.2290 D+ pi0 TSS; +0.4590 D0 pi+ TSS; +Enddecay +Decay D_2*- +0.1030 D*- pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.2090 anti-D*0 pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.2290 D- pi0 TSS; +0.4590 anti-D0 pi- TSS; +Enddecay +Decay D_2*0 +0.2090 D*+ pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.1030 D*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.2290 D0 pi0 TSS; +0.4590 D+ pi- TSS; +Enddecay +Decay anti-D_2*0 +0.2090 D*- pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.1030 anti-D*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; + +0.2290 anti-D0 pi0 TSS; +0.4590 D- pi+ TSS; +Enddecay +# +# D_s ** +# +Decay D_s0*+ +# 0.5000 D+ K0 PHSP; +# 0.5000 D0 K+ PHSP; +1.000 D_s+ pi0 PHSP; +Enddecay +Decay D_s0*- +# 0.5000 D- anti-K0 PHSP; +# 0.5000 anti-D0 K- PHSP; +1.000 D_s- pi0 PHSP; +Enddecay +Decay D'_s1+ +0.5000 D*+ K0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.5000 D*0 K+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.0000 gamma D_s*+ PHSP; +0.0000 gamma D_s+ PHSP; +Enddecay +Decay D'_s1- +0.5000 D*- anti-K0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.5000 anti-D*0 K- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0; +0.0000 gamma D_s*- PHSP; +0.0000 gamma D_s- PHSP; +Enddecay +Decay D_s1+ +0.80000 D_s*+ pi0 PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.20000 D_s+ gamma VSP_PWAVE; +Enddecay +Decay D_s1- +0.80000 D_s*- pi0 PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.20000 D_s- gamma VSP_PWAVE; +Enddecay +Decay D_s2*+ +0.0500 D*+ K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0500 D*0 K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.4300 D+ K0 TSS; +0.4700 D0 K+ TSS; +Enddecay +Decay D_s2*- +0.0500 D*- anti-K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0500 anti-D*0 K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.4300 D- anti-K0 TSS; +0.4700 anti-D0 K- TSS; +Enddecay +# +# +# Charm Mesons: Radially Excited States +# +Decay D(2S)0 +0.6667 D*+ pi- SVS; +0.3333 D*0 pi0 SVS; +Enddecay +Decay anti-D(2S)0 +0.6667 D*- pi+ SVS; +0.3333 anti-D*0 pi0 SVS; + +Enddecay +Decay D(2S)+ +0.3333 D*+ pi0 SVS; +0.6667 D*0 pi+ SVS; +Enddecay +Decay D(2S)- +0.3333 D*- pi0 SVS; +0.6667 anti-D*0 pi- SVS; +Enddecay +Decay D*(2S)0 +0.3333 D*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1667 D*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1667 D0 pi0 VSS; +0.3333 D+ pi- VSS; +Enddecay +Decay anti-D*(2S)0 +0.3333 D*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1667 anti-D*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; + +0.1667 anti-D0 pi0 VSS; +0.3333 D- pi+ VSS; +Enddecay +Decay D*(2S)+ +0.1667 D*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.3333 D*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1667 D+ pi0 VSS; +0.3333 D0 pi+ VSS; +Enddecay +Decay D*(2S)- +0.1667 D*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.3333 anti-D*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1667 D- pi0 VSS; +0.3333 anti-D0 pi- VSS; +Enddecay +# +# +# Strange Mesons +# +# +Decay K_S0 +0.6861 pi+ pi- PHSP; +0.3139 pi0 pi0 PHSP; +Enddecay +# +# K_L0 is decayed in GEANT +# +Decay K0 +0.500 K_L0 PHSP; +0.500 K_S0 PHSP; +Enddecay +Decay anti-K0 +0.500 K_L0 PHSP; +0.500 K_S0 PHSP; +Enddecay +# +Decay K*0 +0.6657 K+ pi- VSS; +0.3323 K0 pi0 VSS; +0.0020 K0 gamma VSP_PWAVE; +Enddecay +Decay anti-K*0 +0.6657 K- pi+ VSS; +0.3323 anti-K0 pi0 VSS; +0.0020 anti-K0 gamma VSP_PWAVE; +Enddecay +Decay K*+ +0.6660 K0 pi+ VSS; +0.3330 K+ pi0 VSS; +0.0010 K+ gamma VSP_PWAVE; +Enddecay +Decay K*- +0.6660 anti-K0 pi- VSS; +0.3330 K- pi0 VSS; +0.0010 K- gamma VSP_PWAVE; +Enddecay +# +# The decays below are for particle aliases and used when +# generating CP violating decays that depends on the decay +# of the neutral K* +# +Decay K*L +1.0000 pi0 K_L0 VSS; +Enddecay +Decay K*S +1.0000 pi0 K_S0 VSS; +Enddecay +Decay K*BL +1.0000 pi0 K_L0 VSS; +Enddecay +Decay K*BS +1.0000 pi0 K_S0 VSS; +Enddecay +Decay K*0T +1.0000 pi- K+ VSS; +Enddecay +Decay anti-K*0T +1.0000 pi+ K- VSS; +Enddecay +# +# +Decay K_0*+ +0.6667 K0 pi+ PHSP; +0.3333 K+ pi0 PHSP; +Enddecay +# +Decay K_0*- +0.6667 anti-K0 pi- PHSP; +0.3333 K- pi0 PHSP; +Enddecay +# +Decay K_0*0 +0.6667 K+ pi- PHSP; +0.3333 K0 pi0 PHSP; +Enddecay +# +Decay K_0*0N +1.0000 K0 pi0 PHSP; +Enddecay +# +Decay anti-K_0*0 +0.6667 K- pi+ PHSP; +0.3333 anti-K0 pi0 PHSP; +Enddecay +# +Decay anti-K_0*0N +1.0000 anti-K0 pi0 PHSP; +Enddecay +# +Decay K_10 +0.2800 rho- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1400 rho0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1067 K*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0533 K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +#To large masses can cause infinit loops +0.1100 omega K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1444 K0 pi+ pi- PHSP; +0.1244 K+ pi- pi0 PHSP; +0.0412 K0 pi0 pi0 PHSP; +Enddecay +Decay anti-K_10 +0.2800 rho+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1400 rho0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1067 K*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0533 anti-K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +#To large masses can cause infinit loops +0.1100 omega anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1444 anti-K0 pi+ pi- PHSP; +0.1244 K- pi+ pi0 PHSP; +0.0412 anti-K0 pi0 pi0 PHSP; +Enddecay +# +Decay K_1+ +0.2800 rho+ K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1400 rho0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1067 K*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0533 K*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +#To large masses can cause infinit loops +0.1100 omega K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1444 K+ pi+ pi- PHSP; +0.1244 K0 pi+ pi0 PHSP; +0.0412 K+ pi0 pi0 PHSP; +Enddecay +Decay K_1- +0.2800 rho- anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1400 rho0 K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1067 anti-K*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0533 K*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +#To large masses can cause infinit loops +0.1100 omega K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1444 K- pi+ pi- PHSP; +0.1244 anti-K0 pi- pi0 PHSP; +0.0412 K- pi0 pi0 PHSP; +Enddecay +# +Decay K'_1+ +0.6300 K*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.3100 K*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0200 rho+ K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0100 rho0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0100 omega K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0133 K+ pi+ pi- PHSP; +0.0067 K+ pi0 pi0 PHSP; +Enddecay +Decay K'_1- +0.6300 anti-K*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.3100 K*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0200 rho- anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0100 rho0 K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0100 omega K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0133 K- pi+ pi- PHSP; +0.0067 K- pi0 pi0 PHSP; +Enddecay +Decay K'_10 +0.6300 K*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.3100 K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0200 rho- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0100 rho0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0100 omega K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0133 K0 pi+ pi- PHSP; +0.0067 K0 pi0 pi0 PHSP; +Enddecay +Decay anti-K'_10 +0.6300 K*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.3100 anti-K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0200 rho+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0100 rho0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0100 omega anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0133 anti-K0 pi+ pi- PHSP; +0.0067 anti-K0 pi0 pi0 PHSP; +Enddecay +# +Decay K_2*+ +0.3310 K0 pi+ TSS; +0.1660 K+ pi0 TSS; +0.1680 K*0 pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0840 K*+ pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0540 K*0 pi+ pi0 PHSP; +0.0540 K*+ pi+ pi- PHSP; +0.0540 K*+ pi0 pi0 PHSP; +0.0590 rho+ K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0300 rho0 K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +Enddecay +Decay K_2*- +0.3310 anti-K0 pi- TSS; +0.1660 K- pi0 TSS; +0.1680 anti-K*0 pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0840 K*- pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0540 anti-K*0 pi- pi0 PHSP; +0.0540 K*- pi+ pi- PHSP; +0.0540 K*- pi0 pi0 PHSP; +0.0590 rho- anti-K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0300 rho0 K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +Enddecay +Decay K_2*0 +0.3310 K+ pi- TSS; +0.1660 K0 pi0 TSS; +0.1680 K*+ pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0840 K*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0540 K*0 pi+ pi- PHSP; +0.0540 K*0 pi0 pi0 PHSP; +0.0540 K*+ pi- pi0 PHSP; +0.0590 rho- K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0300 rho0 K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +Enddecay +Decay anti-K_2*0 +0.3310 K- pi+ TSS; +0.1660 anti-K0 pi0 TSS; +0.1680 K*- pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0840 anti-K*0 pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0540 anti-K*0 pi+ pi- PHSP; +0.0540 anti-K*0 pi0 pi0 PHSP; +0.0540 K*- pi+ pi0 PHSP; +0.0590 rho+ K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0300 rho0 anti-K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +Enddecay + + + + +# Decay K*(1410) +Decay K'*0 +0.0467 K+ pi- VSS; +0.0233 K0 pi0 VSS; +0.5760 K*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.2880 K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0440 rho- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0220 rho0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +# +Decay anti-K'*0 +0.0467 K- pi+ VSS; +0.0233 anti-K0 pi0 VSS; +0.5760 K*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.2880 anti-K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0440 rho+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0220 rho0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +# +Decay K'*+ +0.0467 K0 pi+ VSS; +0.0233 K+ pi0 VSS; +0.5760 K*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.2880 K*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0440 rho+ K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0220 rho0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +# +Decay K'*- +0.0467 anti-K0 pi- VSS; +0.0233 K- pi0 VSS; +0.5760 anti-K*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.2880 K*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0440 rho- anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0220 rho0 K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +# + + +# Decay K*(1680) +Decay K''*0 +0.2580 K+ pi- VSS; +0.1290 K0 pi0 VSS; +0.2093 K*+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1047 K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1993 rho- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0997 rho0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +# +Decay anti-K''*0 +0.2580 K- pi+ VSS; +0.1290 anti-K0 pi0 VSS; +0.2093 K*- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1047 anti-K*0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1993 rho+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0997 rho0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +# +Decay K''*+ +0.2580 K0 pi+ VSS; +0.1290 K+ pi0 VSS; +0.2093 K*0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1047 K*+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1993 rho+ K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0997 rho0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +# +Decay K''*- +0.2580 anti-K0 pi- VSS; +0.1290 K- pi0 VSS; +0.2093 anti-K*0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1047 K*- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1993 rho- anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0997 rho0 K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay + +Decay Xsd +1.00000 d anti-s PYTHIA 11; +Enddecay + +Decay anti-Xsd +1.00000 anti-d s PYTHIA 11; +Enddecay + +Decay Xsu +1.00000 u anti-s PYTHIA 11; +Enddecay + +Decay anti-Xsu +1.00000 anti-u s PYTHIA 11; +Enddecay + +Decay Xdd +1.00000 d anti-d PYTHIA 11; +Enddecay + +Decay anti-Xdd +1.00000 anti-d d PYTHIA 11; +Enddecay + +Decay Xdu +1.00000 u anti-d PYTHIA 11; +Enddecay + +Decay anti-Xdu +1.00000 anti-u d PYTHIA 11; +Enddecay +# Xss decays can be uncommented when Jst74/lucomp.F recognizes Xss +Decay Xss +1.00000 s anti-s PYTHIA 11; +Enddecay + +Decay anti-Xss +1.00000 anti-s s PYTHIA 11; +Enddecay + +# +# Light Mesons +# +Decay pi0 +0.9880 gamma gamma PHSP; +0.0120 e+ e- gamma PI0_DALITZ; +Enddecay +# +Decay eta +0.39466 gamma gamma PHSP; +0.3251 pi0 pi0 pi0 PHSP; +0.2260 pi- pi+ pi0 ETA_DALITZ; +0.0468 gamma pi- pi+ PHSP; +0.0060 gamma e+ e- PHSP; +0.00031 gamma mu+ mu- PHSP; +0.00072 gamma gamma pi0 PHSP; +0.00040 pi+ pi- e+ e- PHSP; +Enddecay +# +Decay eta(1405) +0.3283 rho+ rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.1642 rho0 rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.1000 K- K+ pi0 PHSP; +0.1000 K0 anti-K0 pi0 PHSP; +0.1000 K- K0 pi+ PHSP; +0.1000 K+ anti-K0 pi- PHSP; +0.0337 eta pi+ pi- PHSP; +0.0168 eta pi0 pi0 PHSP; +0.0150 a_00 pi0 PHSP; +0.0150 a_0+ pi- PHSP; +0.0150 a_0- pi+ PHSP; +0.0120 rho0 gamma SVP_HELAMP 1.0 0.0 1.0 0.0; +Enddecay +# +Decay eta(1475) +0.2500 K*0 anti-K0 PHSP; +0.2500 anti-K*0 K0 PHSP; +0.2500 K*+ K- PHSP; +0.2500 K*- K+ PHSP; +Enddecay +# +Decay f_0(1710) +0.2130 K+ K- PHSP; +0.1070 K_S0 K_S0 PHSP; +0.1070 K_L0 K_L0 PHSP; +0.2160 eta eta PHSP; +0.1340 pi+ pi- PHSP; +0.0670 pi0 pi0 PHSP; +0.1560 omega omega PHSP; +Enddecay +# +Decay f_2(1950) +0.3750 K*0 anti-K*0 PHSP; +0.3750 K*+ K*- PHSP; +0.0970 K+ K- PHSP; +0.0480 K_S0 K_S0 PHSP; +0.0480 K_L0 K_L0 PHSP; +0.0500 pi+ pi- PHSP; +0.0070 eta eta PHSP; +Enddecay +# +Decay f_4(2050) +0.5810 omega omega PHSP; +0.2580 pi+ pi- PHSP; +0.1290 pi0 pi0 PHSP; +0.0078 K+ K- PHSP; +0.0039 K_S0 K_S0 PHSP; +0.0039 K_L0 K_L0 PHSP; +0.0047 eta eta PHSP; +0.0039 a_2+ pi- PHSP; +0.0039 a_2- pi+ PHSP; +0.0039 a_20 pi0 PHSP; +Enddecay +# +Decay rho0 +1.000 pi+ pi- VSS; +Enddecay +Decay rho+ +1.000 pi+ pi0 VSS; +Enddecay +Decay rho- +1.000 pi- pi0 VSS; +Enddecay +# +Decay omega +0.8880 pi- pi+ pi0 OMEGA_DALITZ; +0.0850 pi0 gamma VSP_PWAVE; +0.0221 pi- pi+ VSS; +0.0008 eta gamma VSP_PWAVE; +0.0006 pi0 e+ e- PHOTOS PHSP; +0.0001 pi0 mu+ mu- PHOTOS PHSP; +0.0020 pi+ pi- gamma PHSP; +0.0004 pi0 pi0 gamma PHSP; +0.0010 pi+ pi- pi+ pi- PHSP; +Enddecay +# +Decay eta' +0.4370 pi+ pi- eta PHSP; +0.2080 pi0 pi0 eta PHSP; +0.3020 rho0 gamma SVP_HELAMP 1.0 0.0 1.0 0.0; +0.0302 omega gamma SVP_HELAMP 1.0 0.0 1.0 0.0; +0.0212 gamma gamma PHSP; +0.0015 pi0 pi0 pi0 PHSP; +0.0001 gamma mu- mu+ PHOTOS PHSP; +Enddecay +# +Decay phi +0.4910 K+ K- VSS; +0.3410 K_L0 K_S0 VSS; +0.0430 rho+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0430 rho0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0430 rho- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0250 pi+ pi- pi0 PHSP; +0.0121 eta gamma VSP_PWAVE; +0.0013 pi0 gamma VSP_PWAVE; +0.0003 e+ e- PHOTOS VLL; +0.0003 mu+ mu- PHOTOS VLL; +Enddecay +# +Decay a_1+ +0.4920 rho0 pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.5080 rho+ pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +Decay a_10 +0.5000 rho- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.5000 rho+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +Decay a_1- +0.4920 rho0 pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.5080 rho- pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +# +Decay a_2+ +0.3500 rho0 pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.3500 rho+ pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.1440 eta pi+ TSS; +0.1050 omega pi+ pi0 PHSP; +0.0480 anti-K0 K+ TSS; +0.0030 pi+ gamma PHSP; +Enddecay +Decay a_2- +0.3500 rho0 pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.3500 rho- pi0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.1440 eta pi- TSS; +0.1050 omega pi- pi0 PHSP; +0.0480 K0 K- TSS; +0.0030 pi- gamma PHSP; +Enddecay +Decay a_20 +0.3500 rho+ pi- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.3500 rho- pi+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.1440 eta pi0 TSS; +0.1050 omega pi+ pi- PHSP; +0.0240 K+ K- TSS; +0.0120 K_L0 K_L0 TSS; +0.0120 K_S0 K_S0 TSS; +0.0030 pi0 gamma PHSP; +Enddecay +# +Decay b_1+ +0.9984 omega pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0016 pi+ gamma VSP_PWAVE; +Enddecay +Decay b_1- +0.9984 omega pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0016 pi- gamma VSP_PWAVE; +Enddecay +Decay b_10 +0.9984 omega pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0016 pi0 gamma VSP_PWAVE; +Enddecay +# +Decay a_00 +0.9000 eta pi0 PHSP; +0.0500 K+ K- PHSP; +0.0250 K_S0 K_S0 PHSP; +0.0250 K_L0 K_L0 PHSP; +Enddecay +Decay a_0+ +0.9000 eta pi+ PHSP; +0.1000 anti-K0 K+ PHSP; +Enddecay +Decay a_0- +0.9000 eta pi- PHSP; +0.1000 K0 K- PHSP; +Enddecay +# +Decay f_0 +0.5200 pi+ pi- PHSP; +0.2600 pi0 pi0 PHSP; +0.1100 K+ K- PHSP; +0.0550 K_S0 K_S0 PHSP; +0.0550 K_L0 K_L0 PHSP; +Enddecay +# +Decay f'_0 +0.5200 pi+ pi- PHSP; +0.2600 pi0 pi0 PHSP; +0.0750 pi+ pi+ pi- pi- PHSP; +0.0750 pi+ pi- pi0 pi0 PHSP; +0.0350 K+ K- PHSP; +0.0175 K_S0 K_S0 PHSP; +0.0175 K_L0 K_L0 PHSP; +Enddecay +# +Decay f_1 +0.1500 rho0 pi+ pi- PHSP; +0.0500 rho0 pi0 pi0 PHSP; +0.0500 rho+ pi- pi0 PHSP; +0.0500 rho- pi+ pi0 PHSP; +0.1400 a_00 pi0 VSS; +0.1400 a_0+ pi- VSS; +0.1400 a_0- pi+ VSS; +0.0700 eta pi+ pi- PHSP; +0.0300 eta pi0 pi0 PHSP; +0.0300 K+ K- pi0 PHSP; +0.0200 K0 anti-K0 pi0 PHSP; +0.0300 anti-K0 K+ pi- PHSP; +0.0300 K0 K- pi+ PHSP; +0.0700 gamma rho0 PHSP; +Enddecay +# +Decay f'_1 +0.2500 K+ K- pi0 PHSP; +0.2500 K0 anti-K0 pi0 PHSP; +0.2500 anti-K0 K+ pi- PHSP; +0.2500 K0 K- pi+ PHSP; +Enddecay +# +Decay f_2 +0.5650 pi+ pi- TSS; +0.2820 pi0 pi0 TSS; +0.0280 pi+ pi- pi+ pi- PHSP; +0.0720 pi+ pi- pi0 pi0 PHSP; +0.0030 pi0 pi0 pi0 pi0 PHSP; +0.0230 K+ K- TSS; +0.0115 K_S0 K_S0 TSS; +0.0115 K_L0 K_L0 TSS; +0.0040 eta eta TSS; +Enddecay +# +Decay f_0(1500) +0.0500 eta eta' PHSP; +0.1500 eta eta PHSP; +0.1000 pi0 pi0 pi0 pi0 PHSP; +0.2500 pi+ pi- pi+ pi- PHSP; +0.1000 pi+ pi- PHSP; +0.0500 pi0 pi0 PHSP; +0.1000 K+ K- PHSP; +0.1000 K_S0 K_S0 PHSP; +0.1000 K_L0 K_L0 PHSP; +Enddecay +# +Decay f'_2 +0.4444 K+ K- TSS; +0.2222 K_S0 K_S0 TSS; +0.2222 K_L0 K_L0 TSS; +0.1030 eta eta TSS; +0.0055 pi+ pi- TSS; +0.0027 pi0 pi0 TSS; +Enddecay +# +Decay h_1 +0.3333 rho+ pi- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.3333 rho- pi+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.3334 rho0 pi0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +# +Decay h'_1 +0.2500 K*+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.2500 K*- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.2500 anti-K*0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.2500 K*0 anti-K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +Enddecay +# +Decay rho(2S)+ +0.4000 pi+ pi0 PHSP; +0.4000 pi+ pi+ pi- pi0 PHSP; +0.2000 pi+ pi0 pi0 pi0 PHSP; +Enddecay +Decay rho(2S)- +0.4000 pi- pi0 PHSP; +0.4000 pi- pi+ pi- pi0 PHSP; +0.2000 pi- pi0 pi0 pi0 PHSP; +Enddecay +Decay rho(2S)0 +0.4000 pi+ pi- PHSP; +0.3500 pi+ pi- pi+ pi- PHSP; +0.1500 pi+ pi- pi0 pi0 PHSP; +0.1000 pi0 pi0 pi0 pi0 PHSP; +Enddecay +Decay rho(3S)0 +0.08 pi+ pi- PHSP; +0.05 pi+ pi+ pi- pi- PHSP; +0.10 pi0 pi+ pi- PHSP; +0.10 pi0 pi+ pi+ pi- pi- PHSP; +0.12 pi0 pi0 pi+ pi- PHSP; +0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.05 pi0 pi0 pi0 pi+ pi- PHSP; +0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.04 K+ K- pi+ pi- PHSP; +0.02 K0 K- pi+ PHSP; +0.02 anti-K0 K+ pi- PHSP; +0.02 K0 K- pi+ pi+ pi- PHSP; +0.02 anti-K0 K+ pi- pi- pi+ PHSP; +0.02 K0 K- pi0 pi+ PHSP; +0.02 anti-K0 K+ pi0 pi- PHSP; +0.02 eta pi0 pi+ pi- PHSP; +0.01 eta rho- pi0 pi+ PHSP; +0.01 eta rho+ pi0 pi- PHSP; +Enddecay +Decay omega(1650) +0.08 pi+ pi- PHSP; +0.05 pi+ pi+ pi- pi- PHSP; +0.10 pi0 pi+ pi- PHSP; +0.10 pi0 pi+ pi+ pi- pi- PHSP; +0.12 pi0 pi0 pi+ pi- PHSP; +0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.05 pi0 pi0 pi0 pi+ pi- PHSP; +0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.04 K+ K- pi+ pi- PHSP; +0.02 K0 K- pi+ PHSP; +0.02 anti-K0 K+ pi- PHSP; +0.02 K0 K- pi+ pi+ pi- PHSP; +0.02 anti-K0 K+ pi- pi- pi+ PHSP; +0.02 K0 K- pi0 pi+ PHSP; +0.02 anti-K0 K+ pi0 pi- PHSP; +0.02 eta pi0 pi+ pi- PHSP; +0.01 eta rho- pi0 pi+ PHSP; +0.01 eta rho+ pi0 pi- PHSP; +Enddecay +Decay rho(1900) +0.08 pi+ pi- PHSP; +0.05 pi+ pi+ pi- pi- PHSP; +0.10 pi0 pi+ pi- PHSP; +0.10 pi0 pi+ pi+ pi- pi- PHSP; +0.12 pi0 pi0 pi+ pi- PHSP; +0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.05 pi0 pi0 pi0 pi+ pi- PHSP; +0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.04 K+ K- pi+ pi- PHSP; +0.02 K0 K- pi+ PHSP; +0.02 anti-K0 K+ pi- PHSP; +0.02 K0 K- pi+ pi+ pi- PHSP; +0.02 anti-K0 K+ pi- pi- pi+ PHSP; +0.02 K0 K- pi0 pi+ PHSP; +0.02 anti-K0 K+ pi0 pi- PHSP; +0.02 eta pi0 pi+ pi- PHSP; +0.01 eta rho- pi0 pi+ PHSP; +0.01 eta rho+ pi0 pi- PHSP; +Enddecay +Decay omega(2S) +0.08 pi+ pi- PHSP; +0.05 pi+ pi+ pi- pi- PHSP; +0.10 pi0 pi+ pi- PHSP; +0.10 pi0 pi+ pi+ pi- pi- PHSP; +0.12 pi0 pi0 pi+ pi- PHSP; +0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.05 pi0 pi0 pi0 pi+ pi- PHSP; +0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.04 K+ K- pi+ pi- PHSP; +0.02 K0 K- pi+ PHSP; +0.02 anti-K0 K+ pi- PHSP; +0.02 K0 K- pi+ pi+ pi- PHSP; +0.02 anti-K0 K+ pi- pi- pi+ PHSP; +0.02 K0 K- pi0 pi+ PHSP; +0.02 anti-K0 K+ pi0 pi- PHSP; +0.02 eta pi0 pi+ pi- PHSP; +0.01 eta rho- pi0 pi+ PHSP; +0.01 eta rho+ pi0 pi- PHSP; +Enddecay +Decay rho(2150) +0.08 pi+ pi- PHSP; +0.05 pi+ pi+ pi- pi- PHSP; +0.10 pi0 pi+ pi- PHSP; +0.10 pi0 pi+ pi+ pi- pi- PHSP; +0.12 pi0 pi0 pi+ pi- PHSP; +0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.05 pi0 pi0 pi0 pi+ pi- PHSP; +0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.04 K+ K- pi+ pi- PHSP; +0.02 K0 K- pi+ PHSP; +0.02 anti-K0 K+ pi- PHSP; +0.02 K0 K- pi+ pi+ pi- PHSP; +0.02 anti-K0 K+ pi- pi- pi+ PHSP; +0.02 K0 K- pi0 pi+ PHSP; +0.02 anti-K0 K+ pi0 pi- PHSP; +0.02 eta pi0 pi+ pi- PHSP; +0.01 eta rho- pi0 pi+ PHSP; +0.01 eta rho+ pi0 pi- PHSP; +Enddecay +Decay omega(1960) +0.08 pi+ pi- PHSP; +0.05 pi+ pi+ pi- pi- PHSP; +0.10 pi0 pi+ pi- PHSP; +0.10 pi0 pi+ pi+ pi- pi- PHSP; +0.12 pi0 pi0 pi+ pi- PHSP; +0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.05 pi0 pi0 pi0 pi+ pi- PHSP; +0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.04 K+ K- pi+ pi- PHSP; +0.02 K0 K- pi+ PHSP; +0.02 anti-K0 K+ pi- PHSP; +0.02 K0 K- pi+ pi+ pi- PHSP; +0.02 anti-K0 K+ pi- pi- pi+ PHSP; +0.02 K0 K- pi0 pi+ PHSP; +0.02 anti-K0 K+ pi0 pi- PHSP; +0.02 eta pi0 pi+ pi- PHSP; +0.01 eta rho- pi0 pi+ PHSP; +0.01 eta rho+ pi0 pi- PHSP; +Enddecay +Decay rho(1965) +0.08 pi+ pi- PHSP; +0.05 pi+ pi+ pi- pi- PHSP; +0.10 pi0 pi+ pi- PHSP; +0.10 pi0 pi+ pi+ pi- pi- PHSP; +0.12 pi0 pi0 pi+ pi- PHSP; +0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.05 pi0 pi0 pi0 pi+ pi- PHSP; +0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.04 K+ K- pi+ pi- PHSP; +0.02 K0 K- pi+ PHSP; +0.02 anti-K0 K+ pi- PHSP; +0.02 K0 K- pi+ pi+ pi- PHSP; +0.02 anti-K0 K+ pi- pi- pi+ PHSP; +0.02 K0 K- pi0 pi+ PHSP; +0.02 anti-K0 K+ pi0 pi- PHSP; +0.02 eta pi0 pi+ pi- PHSP; +0.01 eta rho- pi0 pi+ PHSP; +0.01 eta rho+ pi0 pi- PHSP; +Enddecay +Decay rho(2000) +0.08 pi+ pi- PHSP; +0.05 pi+ pi+ pi- pi- PHSP; +0.10 pi0 pi+ pi- PHSP; +0.10 pi0 pi+ pi+ pi- pi- PHSP; +0.12 pi0 pi0 pi+ pi- PHSP; +0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.05 pi0 pi0 pi0 pi+ pi- PHSP; +0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.04 K+ K- pi+ pi- PHSP; +0.02 K0 K- pi+ PHSP; +0.02 anti-K0 K+ pi- PHSP; +0.02 K0 K- pi+ pi+ pi- PHSP; +0.02 anti-K0 K+ pi- pi- pi+ PHSP; +0.02 K0 K- pi0 pi+ PHSP; +0.02 anti-K0 K+ pi0 pi- PHSP; +0.02 eta pi0 pi+ pi- PHSP; +0.01 eta rho- pi0 pi+ PHSP; +0.01 eta rho+ pi0 pi- PHSP; +Enddecay +Decay omega(2145) +0.08 pi+ pi- PHSP; +0.05 pi+ pi+ pi- pi- PHSP; +0.10 pi0 pi+ pi- PHSP; +0.10 pi0 pi+ pi+ pi- pi- PHSP; +0.12 pi0 pi0 pi+ pi- PHSP; +0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.05 pi0 pi0 pi0 pi+ pi- PHSP; +0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.04 K+ K- pi+ pi- PHSP; +0.02 K0 K- pi+ PHSP; +0.02 anti-K0 K+ pi- PHSP; +0.02 K0 K- pi+ pi+ pi- PHSP; +0.02 anti-K0 K+ pi- pi- pi+ PHSP; +0.02 K0 K- pi0 pi+ PHSP; +0.02 anti-K0 K+ pi0 pi- PHSP; +0.02 eta pi0 pi+ pi- PHSP; +0.01 eta rho- pi0 pi+ PHSP; +0.01 eta rho+ pi0 pi- PHSP; +Enddecay +Decay omega(2205) +0.08 pi+ pi- PHSP; +0.05 pi+ pi+ pi- pi- PHSP; +0.10 pi0 pi+ pi- PHSP; +0.10 pi0 pi+ pi+ pi- pi- PHSP; +0.12 pi0 pi0 pi+ pi- PHSP; +0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.05 pi0 pi0 pi0 pi+ pi- PHSP; +0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.04 K+ K- pi+ pi- PHSP; +0.02 K0 K- pi+ PHSP; +0.02 anti-K0 K+ pi- PHSP; +0.02 K0 K- pi+ pi+ pi- PHSP; +0.02 anti-K0 K+ pi- pi- pi+ PHSP; +0.02 K0 K- pi0 pi+ PHSP; +0.02 anti-K0 K+ pi0 pi- PHSP; +0.02 eta pi0 pi+ pi- PHSP; +0.01 eta rho- pi0 pi+ PHSP; +0.01 eta rho+ pi0 pi- PHSP; +Enddecay +Decay rho(2265) +0.08 pi+ pi- PHSP; +0.05 pi+ pi+ pi- pi- PHSP; +0.10 pi0 pi+ pi- PHSP; +0.10 pi0 pi+ pi+ pi- pi- PHSP; +0.12 pi0 pi0 pi+ pi- PHSP; +0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.05 pi0 pi0 pi0 pi+ pi- PHSP; +0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.04 K+ K- pi+ pi- PHSP; +0.02 K0 K- pi+ PHSP; +0.02 anti-K0 K+ pi- PHSP; +0.02 K0 K- pi+ pi+ pi- PHSP; +0.02 anti-K0 K+ pi- pi- pi+ PHSP; +0.02 K0 K- pi0 pi+ PHSP; +0.02 anti-K0 K+ pi0 pi- PHSP; +0.02 eta pi0 pi+ pi- PHSP; +0.01 eta rho- pi0 pi+ PHSP; +0.01 eta rho+ pi0 pi- PHSP; +Enddecay +Decay rho(2280) +0.08 pi+ pi- PHSP; +0.05 pi+ pi+ pi- pi- PHSP; +0.10 pi0 pi+ pi- PHSP; +0.10 pi0 pi+ pi+ pi- pi- PHSP; +0.12 pi0 pi0 pi+ pi- PHSP; +0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.05 pi0 pi0 pi0 pi+ pi- PHSP; +0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.04 K+ K- pi+ pi- PHSP; +0.02 K0 K- pi+ PHSP; +0.02 anti-K0 K+ pi- PHSP; +0.02 K0 K- pi+ pi+ pi- PHSP; +0.02 anti-K0 K+ pi- pi- pi+ PHSP; +0.02 K0 K- pi0 pi+ PHSP; +0.02 anti-K0 K+ pi0 pi- PHSP; +0.02 eta pi0 pi+ pi- PHSP; +0.01 eta rho- pi0 pi+ PHSP; +0.01 eta rho+ pi0 pi- PHSP; +Enddecay +Decay omega(2330) +0.08 pi+ pi- PHSP; +0.05 pi+ pi+ pi- pi- PHSP; +0.10 pi0 pi+ pi- PHSP; +0.10 pi0 pi+ pi+ pi- pi- PHSP; +0.12 pi0 pi0 pi+ pi- PHSP; +0.04 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.14 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.05 pi0 pi0 pi0 pi+ pi- PHSP; +0.06 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi+ pi+ pi+ pi- pi- pi- PHSP; +0.03 pi0 pi0 pi0 pi0 pi+ pi+ pi- pi- PHSP; +0.04 K+ K- pi+ pi- PHSP; +0.02 K0 K- pi+ PHSP; +0.02 anti-K0 K+ pi- PHSP; +0.02 K0 K- pi+ pi+ pi- PHSP; +0.02 anti-K0 K+ pi- pi- pi+ PHSP; +0.02 K0 K- pi0 pi+ PHSP; +0.02 anti-K0 K+ pi0 pi- PHSP; +0.02 eta pi0 pi+ pi- PHSP; +0.01 eta rho- pi0 pi+ PHSP; +0.01 eta rho+ pi0 pi- PHSP; +Enddecay +# +# +# cc= mesons +# +Decay eta_c +# mainly based on PDG2005 --------------------------------------------------- +# updated by Zaza Metreveli April, 2006 +# PDG2006 update, by Ryan Mitchell, November 2006 --------------------------- +# Then updated by Daowen Hu June 2008 based on some preliminary results +# (see below). +# +0.0273 eta' pi+ pi- PHSP; +0.0137 eta' pi0 pi0 PHSP; +# +0.0067 rho0 rho0 SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0; +0.0133 rho+ rho- SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0; +# +0.0046 K*+ K*- SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0; +0.0046 K*0 anti-K*0 SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0 ; +# +0.0150 K*0 anti-K*0 pi+ pi- PHSP; +# +0.00025 phi K+ K- PHSP; +0.0027 phi phi SVV_HELAMP 1.0 0.0 0.0 0.0 -1.0 0.0; +0.0100 f_2 f_2 PHSP; +# Used 18 modes from Tomaradze Feb 08 PTA talk +0.009957 K+ K- pi0 PHSP; +0.0029 K_S0 K_S0 pi0 PHSP; +0.0029 K_L0 K_L0 pi0 PHSP; +0.0058 K_S0 K_L0 pi0 PHSP; +0.0089335 K+ K_S0 pi- PHSP; +0.0089335 K+ K_L0 pi- PHSP; +0.0089335 K- K_S0 pi+ PHSP; +0.0089335 K- K_L0 pi+ PHSP; +0.015984 eta pi+ pi- PHSP; +0.007992 eta pi0 pi0 PHSP; +0.005211 K+ K- eta PHSP; +0.001396 p+ anti-p- pi0 PHSP; +0.021496 pi+ pi- pi0 pi0 PHSP; +0.004560 p+ anti-p- pi+ pi- PHSP; +0.028475 pi+ pi- pi+ pi- eta PHSP; +0.026800 K+ K- pi+ pi- pi0 PHSP; +0.005304 K+ K- pi+ pi- eta PHSP; +0.007072 K_S0 K+ pi+ pi- pi- PHSP; +0.007072 K_S0 K- pi- pi+ pi+ PHSP; +0.007072 K_L0 K+ pi+ pi- pi- PHSP; +0.007072 K_L0 K- pi- pi+ pi+ PHSP; +0.104222 pi+ pi- pi+ pi- pi0 pi0 PHSP; +0.000623 p+ anti-p- PHSP; +# +#Inclusive modes updated by Daowen Hu June 2008 based on PDG2008 --------- +# Inclusive rates after subtracting exclusive ones by Daowen Hu 2008 +# No Subtracted: ///K*0 anti-K*0 from 0.01 +0.01 anti-K*0 K+ pi- PHSP; +# No Subtracted: ///K*0 anti-K*0 from 0.01 +0.01 K*0 K- pi+ PHSP; +# subtracted: rho0 rho0, f_2 f_2 from 0.010701 +0.00080875 pi+ pi- pi+ pi- PHSP; +# subtracted: f_2 f_2 from 0.014796 +0.0144796 pi+ pi- pi+ pi- pi+ pi- PHSP; +# subtracted: phi K+ K-, phi phi, f_2 f_2 from 0.001396 +0.000617041 K+ K- K+ K- PHSP; +# subtracted K*0 K- pi+, anti-K*0 K+ pi-, f_2 f_2 from 0.005583 +# set it zero since it is -0.00595534 +0.0000 K+ K- pi+ pi- PHSP; +# subtracted: K*0 anti-K*0 pi+ pi-, f_2 f_2 from 0.007072 +0.000411772 K+ K- pi+ pi- pi+ pi- PHSP; + +# ccbar modes to suppress added on 06042008 +0.0000 rho0 pi0 PHSP; +0.0000 omega pi0 PHSP; +0.0000 phi pi0 PHSP; +0.0000 gamma pi0 PHSP; +0.0000 rho0 eta PHSP; +0.0000 omega eta PHSP; +0.0000 phi eta PHSP; +0.0000 gamma eta PHSP; +0.0000 rho0 eta' PHSP; +0.0000 omega eta' PHSP; +0.0000 phi eta' PHSP; +0.0000 gamma eta' PHSP; +# +0.0003 gamma gamma PHSP; +.557590837 rndmflav anti-rndmflav PYTHIA 12; +Enddecay +# +Decay eta_c(2S) +#PDG2006 update, by Ryan Mitchell, November 2006 ---------------------------- +# numbers are copied from eta_c +#0.0117 K+ K- pi0 PHSP; +#0.0117 K0 anti-K0 pi0 PHSP; +#0.0233 K+ anti-K0 pi- PHSP; +#0.0233 K- K0 pi+ PHSP; +0.0117 K+ K- pi0 PHSP; +0.0029 K_S0 K_S0 pi0 PHSP; +0.0029 K_L0 K_L0 pi0 PHSP; +0.0058 K_S0 K_L0 pi0 PHSP; +0.0117 K+ K_S0 pi- PHSP; +0.0117 K+ K_L0 pi- PHSP; +0.0117 K- K_S0 pi+ PHSP; +0.0117 K- K_L0 pi+ PHSP; +# +# ccbar modes to suppress added on 06042008 +0.0000 rho0 pi0 PHSP; +0.0000 omega pi0 PHSP; +0.0000 phi pi0 PHSP; +0.0000 gamma pi0 PHSP; +0.0000 rho0 eta PHSP; +0.0000 omega eta PHSP; +0.0000 phi eta PHSP; +0.0000 gamma eta PHSP; +0.0000 rho0 eta' PHSP; +0.0000 omega eta' PHSP; +0.0000 phi eta' PHSP; +0.0000 gamma eta' PHSP; +# +0.9299 rndmflav anti-rndmflav PYTHIA 12; +Enddecay +# +# +# J/psi decays were updated by Istvan Danko June, 2006 +# +#PDG2006 update, by Ryan Mitchell, November 2006 +# +Decay J/psi +#CLNS 08/2027---------------------------------------------------------------- +0.000012 gamma gamma gamma PHSP; +#CLNS 08/2021---------------------------------------------------------------- +0.0198 gamma eta_c HELAMP 1. 0. -1. 0. ; +#PDG2008--------------------------------------------------------------------- +0.0594 e+ e- PHOTOS VLL; +0.0593 mu+ mu- PHOTOS VLL; +0.00563 rho0 pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.00563 rho+ pi- PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.00563 rho- pi+ PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.00363 a_20 rho0 PHSP; +0.00363 a_2+ rho- PHSP; +0.00363 a_2- rho+ PHSP; +0.0043 omega f_2 PHSP; +0.0030 K*0 anti-K_2*0 PHSP; +0.0030 anti-K*0 K_2*0 PHSP; +0.000146 K_S0 K_L0 VSS; +0.0004 omega K_S0 K_L0 PHSP; +0.000237 K+ K- VSS; +0.000147 pi+ pi- VSS; +0.00076 omega K*0 K_S0 PHSP; +0.00076 omega K*0 K_L0 PHSP; +0.00076 omega anti-K*0 K_S0 PHSP; +0.00076 omega anti-K*0 K_L0 PHSP; +0.00153 omega K*+ K- PHSP; +0.00153 omega K*- K+ PHSP; +0.00256 K*+ K- PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.00256 K*- K+ PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0010975 K*0 K_S0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0010975 K*0 K_L0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0010975 anti-K*0 K_S0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0010975 anti-K*0 K_L0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +#We just changed the names from K_1+(and K_1-) to K'_1+ (and K'_1-). +0.0019 K'_1+ K- PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0019 K'_1- K+ PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +# +0.0015 b_1+ pi- PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0015 b_1- pi+ PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.00170 omega pi- K+ K_S0 PHSP; +0.00170 omega pi+ K- K_S0 PHSP; +0.0023 b_10 pi0 PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0011 eta K+ K_S0 pi- PHSP; +0.0011 eta K- K_S0 pi+ PHSP; +0.00027 phi K*0 K_S0 PHSP; +0.00027 phi K*0 K_L0 PHSP; +0.00027 phi anti-K*0 K_S0 PHSP; +0.00027 phi anti-K*0 K_L0 PHSP; +0.00055 phi K*+ K- PHSP; +0.00055 phi K*- K+ PHSP; +0.0008 Delta++ anti-p- pi- PHSP; +0.0008 anti-Delta-- p+ pi+ PHSP; +0.0011 omega p+ anti-p- PHSP; +0.0011 Delta++ anti-Delta-- PHSP; +0.00052 Sigma- anti-Sigma+ PHSP; +0.00052 Sigma+ anti-Sigma- PHSP; +0.0009 p+ anti-p- eta' PHSP; +0.0008 phi f'_2 PHSP; +0.00094 phi pi+ pi- PHSP; +0.00056 phi pi0 pi0 PHSP; +0.00036 phi K+ K_S0 pi- PHSP; +0.00036 phi K- K_S0 pi+ PHSP; +0.00068 omega f_1 PHSP; +0.00174 omega eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.00074 phi eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.00045 omega pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.00040 phi eta' PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.000193 rho0 eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.000105 rho0 eta' PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.00075 Xi*- anti-Xi*+ PHSP; +0.00051 p+ K- anti-Sigma*0 PHSP; +0.00032 phi f_0 PHSP; +0.000155 Sigma*- anti-Sigma*+ PHSP; +0.000155 Sigma*+ anti-Sigma*- PHSP; +0.00026 phi f_1 PHSP; +0.000182 omega eta' PHSP; +0.00014 omega f_0 PHSP; +0.000045 p+ anti-p- phi PHSP; +0.00023 K*0 anti-K*0 PHSP; +0.00072 phi f_2 PHSP; +0.004 n0 anti-n0 pi+ pi- PHSP; +0.00129 Sigma0 anti-Sigma0 PHSP; +0.00217 p+ anti-p- PHSP; +0.00209 p+ anti-p- eta PHSP; +0.00212 p+ anti-n0 pi- PHSP; +0.0022 n0 anti-n0 PHSP; +0.0009 Xi0 anti-Xi0 PHSP; +0.0009 Xi- anti-Xi+ PHSP; +0.00161 Lambda0 anti-Lambda0 PHSP; +0.00109 p+ anti-p- pi0 PHSP; +0.000415 Lambda0 anti-Sigma- pi+ PHSP; +0.000415 anti-Lambda0 Sigma+ pi- PHSP; +0.00089 p+ K- anti-Lambda0 PHSP; +0.00026 Lambda0 anti-Lambda0 eta PHSP; +0.000325 anti-Lambda0 n0 K_S0 PHSP; +0.000325 Lambda0 anti-n0 K_S0 PHSP; +0.00029 p+ K- anti-Sigma0 PHSP; +0.000064 Lambda0 anti-Lambda0 pi0 PHSP; +0.000615 eta phi f_0 PHSP; +# +0.00203 gamma eta pi0 pi0 PHSP; +0.0030 gamma rho+ rho- PHSP; +0.0015 gamma rho0 rho0 PHSP; +0.00471 gamma eta' HELAMP 1. 0. -1. 0. ; +0.0055 gamma eta(1405) HELAMP 1. 0. -1. 0. ; +0.00145 gamma eta(1475) HELAMP 1. 0. -1. 0. ; +0.00098 gamma eta HELAMP 1. 0. -1. 0. ; +0.00177 gamma f_2 f_2 PHSP; +0.0027 gamma f_4(2050) PHSP; +0.00161 gamma omega omega PHSP; +0.00143 gamma f_2 PHSP; +0.00199 gamma f_0(1710) PHSP; +0.00194 gamma K*0 anti-K*0 PHSP; +0.00079 gamma f'_1 PHSP; +0.00061 gamma f_1 PHSP; +0.00045 gamma f'_2 PHSP; +0.00093 gamma f_2(1950) PHSP; +0.0004 gamma K*+ K*- PHSP; +0.0004 gamma phi phi PHSP; +0.00038 gamma p+ anti-p- PHSP; +0.00018 gamma K- K+ pi0 PHSP; +0.00018 gamma K0 anti-K0 pi0 PHSP; +0.00018 gamma K- K0 pi+ PHSP; +0.00018 gamma K+ anti-K0 pi- PHSP; +0.000033 gamma pi0 PHSP; +0.0088 gamma e+ e- PHSP; +#Inclusive modes updated by Daowen Hu June 2008 based on PDG2008 --------- +# subtracted: a_20 rho0, omega f_2, omega f_1 from 0.0085 +0.00789645 omega pi+ pi- pi+ pi- PHSP; +# subtracted: omega eta from 0.004 +0.00360676 omega pi+ pi- pi0 PHSP; +# subtracted: omega eta from 0.0086 +0.00820676 omega pi+ pi- PHSP; +# subtracted: omega f_2, b_10 pi0, omega f_0 from 0.0034 +# set it zero since it is -0.00014532 +0.0000 omega pi0 pi0 PHSP; +# subtracted: omega f_2, omega f_0 from 0.0002 +0.00014285 omega K_S0 K_S0 PHSP; +# subtracted: omega f_2, omega f_0 from 0.0002 +0.00014285 omega K_L0 K_L0 PHSP; +# subtracted: K'_1+ K-, K'_1- K+, omega f_0 omega phi from 0.0008 +0.0006477 omega K+ K- PHSP; +# subtracted: omega phi from 0.00166 +0.0016 phi pi+ pi- pi+ pi- PHSP; +# subtracted: phi f_2, phi f'_2, phi f_0 from 0.00023 +0.000026 phi K_S0 K_S0 PHSP; +# subtracted: phi f_2, phi f'_2, phi f_0 from 0.00023 +0.000026 phi K_L0 K_L0 PHSP; +# subtracted: No subtraction +0.00046 phi K_S0 K_L0 PHSP; +# subtracted: phi f_2, phi f'_2, phi f_0 from 0.00091 +0.00005 phi K+ K- PHSP; +# subtracted: omega eta, rho0 eta from 0.0004 +0.000168546 eta pi+ pi- PHSP; +# subtracted: a_20 rho0, a_2+ rho-, a_2- rho+, omega f_2, b_1+ pi- +# b_1- pi+, phi f_2, omega eta, phi f'_2, phi pi+ pi-, omega pi0 +# phi f_0, omega f_0, rho0 eta, omega pi+ pi- pi0, omega pi+ pi- pi0 +# eta pi+ pi- from 0.041 +0.0303809 pi+ pi- pi+ pi- pi0 PHSP; +# subtracted: a_20 rho0, omega f_2, phi f_2, omega eta, omega f_1 +# phi f_1, omega eta', rho0 eta', eta pi+ pi- pi+ pi-, omega pi+ pi- pi+ pi- +# omega pi+ pi- pi0, phi pi+ pi- pi+ pi- from 0.029 +0.0201089 pi+ pi- pi+ pi- pi+ pi- pi0 PHSP; +# subtracted: omega f_1, omega eta', eta pi+ pi- pi+ pi- pi+ pi- from 0.009 +0.00883721 pi+ pi- pi+ pi- pi+ pi- pi+ pi- pi0 PHSP; +# subtracted: from rho0 pi0, rho+ pi-, rho- pi+, omega pi0 from 0.0207 +0.0038 pi+ pi- pi0 PHSP; +# subtracted: omega f_2, K*0 anti-K_2*0, K*0 anti-K_2*0, anti-K*0 K_2*0 +# omega K*+ K-, omega K*- K+, K'_1+ K-, K'_1- K+, phi f_2, phi f'_2 +# omega f_1, phi eta, phi f_0, omega f_0, omega K+ K-, phi K+ K- +# from 0.0179 +0.015975 pi+ pi- pi0 K+ K- PHSP; +# subtracted: a_20 rho0, omega f_2, K*0 anti-K_2*0, anti-K*0 K_2*0, K'_1+ K- +# K'_1- K+, K*0 anti-K*0, phi f_2, phi f'_2, phi pi+ pi-, phi f_0, omega f_0 +# omega K+ K- from 0.0066 +0.00263825 pi+ pi- K+ K- PHSP; +# subtracted: phi eta', phi f_1, eta phi f_0 from 0.00184 +0.00155604 pi+ pi- K+ K- eta PHSP; +# subtracted: K'_1+ K-, K'_1- K+, phi f_2, phi f'_2, phi pi0 pi0, phi f_0 +# from 0.00245 +0.0016157 pi0 pi0 K+ K- PHSP; +# subtracted: omega f_2, b_1+ pi-, b_1- pi+, omega f_0 from 0.00355 +0.00342851 pi+ pi- pi+ pi- PHSP; +# subtracted: a_20 rho0, omega f_2, b_1+ pi-, b_1- pi+, omega f_1 +# omega f_0, omega pi+ pi- pi+ pi- from 0.0043 +0.00410665 pi+ pi- pi+ pi- pi+ pi- PHSP; +# subtracted: a_20 rho0, a_2+ rho-, a_2- rho+, omega f_2, b_10 pi0, +# omega eta, omega f_1, phi eta, omega f_0, omega pi+ pi- pi0 from 0.0162 +0.00495075 pi+ pi- pi0 pi+ pi- pi0 PHSP; +# subtracted: omega eta, omega f_1, rho0 eta', omega eta' from 0.00229 +0.00223578 eta pi+ pi- pi+ pi- PHSP; +# subtracted: omega f_1, omega eta' from 0.00072 +0.000719702 eta pi+ pi- pi+ pi- pi+ pi- PHSP; +# subtracted: Delta++ anti-p- pi-, anti-Delta-- p+ pi+, +# omega p+ anti-p-, Delta++ anti-Delta--, Lambda0 anti-Lambda0 from 0.006 +0.00261829 p+ anti-p- pi+ pi- PHSP; +# subtracted: omega f_2, K*0 anti-K_2*0, K'_1+ K-, K'_1- K+, phi f_2, +# phi f_1, omega f_0, omega K+ K-, phi pi+ pi- pi+ pi- from 0.0047 +0.00374086 pi+ pi- pi+ pi- K+ K- PHSP; +# subtracted: p+ anti-p- phi, omega p+ anti-p-, p+ anti-p- eta +# Lambda0 anti-Sigma- pi+, anti-Lambda0 Sigma+ pi-, Lambda0 anti-Lambda0 pi0 +# from 0.0023 +0.000544286 p+ anti-p- pi+ pi- pi0 PHSP; +# subtracted: phi f_2, phi f'_2, phi f_0, phi K+ K- from 0.00076 +0.000535476 K+ K- K+ K- PHSP; +# subtracted: omega f_2, b_1+ pi-, b_1- pi+, phi f_2, omega eta, phi f'_2 +# phi pi+ pi-, phi f_0, omega f_0, gamma eta(1405), gamma f_4(2050) +# gamma f_1 from 0.00407 +0.0011357 gamma eta pi+ pi- PHSP; +# subtracted: omega f_2, b_1+ pi-, b_1- pi+, omega eta, omega f_1 +# rho0 eta, omega eta', omega f_0, rho0 eta', gamma eta_c, gamma rho0 rho0 +# gamma eta(1405), gamma f_2 f_2, gamma f_4(2050), gamma omega omega, +# gamma f_2, gamma f_0(1710), gamma f_1, eta pi+ pi- from 0.0028 +# set it zero since it is -0.000584387 +0.0000 gamma pi+ pi- pi+ pi- PHSP; +# subtracted: omega f_2, K*0 anti-K_2*0, anti-K*0 K_2*0, omega K*+ K-, +# omega K*- K+, K'_1+ K-, K'_1- K+, phi eta, phi eta', phi f_1, +# omega f_0, gamma eta_c, gamma f_2 f_2, gamma K*0 anti-K*0, gamma f_2(1950) +# omega K+ K- from 0.0021 +0.000723321 gamma K+ K- pi+ pi- PHSP; +# subtracted: phi eta, omega pi0, omega f_0, gamma eta_c, gamma rho+ rho-, +# gamma eta(1405), gamma f_2 f_2, gamma f_4(2050), gamma f_1, +# omega pi+ pi- pi0, omega f_2, b_1+ pi-, b_1- pi+, b_10 pi0, +# omega eta from 0.0083 +0.0009219 gamma pi+ pi- pi0 pi0 PHSP; +# +# the PDG inclusive KKpi values are eaten up by the K*K BF's defined above +0.0000 K+ K- pi0 PHSP; +0.0000 K_S0 K_S0 pi0 PHSP; +0.0000 K_L0 K_L0 pi0 PHSP; +0.0000 K_S0 K_L0 pi0 PHSP; +0.0000 K- K_S0 pi+ PHSP; +0.0000 K- K_L0 pi+ PHSP; +0.0000 K+ K_S0 pi- PHSP; +0.0000 K+ K_L0 pi- PHSP; +# ccbar modes to suppress added on 06042008 +0.0000 rho0 rho0 PHSP; +0.0000 rho0 omega PHSP; +0.0000 rho0 phi PHSP; +0.0000 rho0 gamma PHSP; +0.0000 omega omega PHSP; +0.0000 omega phi PHSP; +0.0000 omega gamma PHSP; +0.0000 phi phi PHSP; +0.0000 phi gamma PHSP; +0.0000 gamma gamma PHSP; +0.0000 pi0 pi0 PHSP; +0.0000 pi0 eta PHSP; +0.0000 pi0 eta' PHSP; +0.0000 eta eta PHSP; +0.0000 eta eta' PHSP; +0.0000 eta' eta' PHSP; +# +0.0000 gamma rho0 pi0 PHSP; +0.0000 gamma omega pi0 PHSP; +0.0000 gamma phi pi0 PHSP; +0.0000 gamma rho0 eta PHSP; +0.0000 gamma omega eta PHSP; +0.0000 gamma phi eta PHSP; +0.0000 gamma rho0 eta' PHSP; +0.0000 gamma omega eta' PHSP; +0.0000 gamma phi eta' PHSP; +# +# Based on R = 2.28, taken from 9 data points in 2GeV<=sqrt(s)<=3GeV of +# (BESII) PRL88, 101802 (2002), combined with the above B(J/psi->mu+mu-). +0.135204 rndmflav anti-rndmflav PYTHIA 12; +# +# sum of non-ggg/gg gamma = 56.13% +# CLNS 08/2026------------------------------------------------------------ +# B(gamma gg)/B(ggg) = 13.7%% +0.385753 g g g PYTHIA 4; +0.052848 gamma g g PYTHIA 4; +0.0 K0 anti-K0 PHSP; +0.0 K_S0 K_S0 PHSP; +0.0 K_L0 K_L0 PHSP; +# +Enddecay +# +# +# psi(2S) updates, by Ryan Mitchell, November 2006 +# fixed double-counting in inclusive modes +# +# Further updates were made by Daowen Hu, June 2008 +# based on newly available measurements (CLEO's, PDG2008). +# +Decay psi(2S) +# CLNS 08/2025------------------------------------------------------------ +# New VVPIPI mode, implemented by James Hunt +0.3504 J/psi pi+ pi- VVPIPI_WEIGHTED; +0.1769 J/psi pi0 pi0 VVPIPI_WEIGHTED; +0.0343 J/psi eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.00133 J/psi pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +#CLNS 08/2021------------------------------------------------------------- +0.00432 gamma eta_c HELAMP 1. 0. -1. 0. ; +# CLNS 08/2023------------------------------------------------------------ +# Assuming B(hc -> gamma etac) = 0.377 : Phys.Rev. D66 (2002) 014012 +0.001111 h_c pi0 PHSP; +#PDG2008------------------------------------------------------------------ +0.00752 e+ e- PHOTOS VLL; +0.0075 mu+ mu- PHOTOS VLL; +0.0030 tau+ tau- PHOTOS VLL; +# +0.0000867 a_20 rho0 PHSP; +0.0000867 a_2+ rho- PHSP; +0.0000867 a_2- rho+ PHSP; +0.000124 p+ anti-n0 pi- PHSP; +0.000124 anti-p- n0 pi+ PHSP; +0.0012 pi+ pi- pi+ pi- eta PHSP; +0.00022 omega f_2 PHSP; +0.0013 K+ K- pi+ pi- eta PHSP; +0.00013 phi f_0 PHSP; +0.000044 phi f'_2 PHSP; +0.000027 p+ anti-p- K+ K- PHSP; +0.0000425 anti-Lambda0 n0 K_S0 PHSP; +0.0000425 Lambda0 anti-n0 K_S0 PHSP; +0.000059 omega f_0(1710) PHSP; +0.000305 K*0 K- rho+ PHSP; +0.000305 anti-K*0 K+ rho- PHSP; +0.000365 K*+ K- rho0 PHSP; +0.000365 K*- K+ rho0 PHSP; +0.00048 K*+ K- pi+ pi- PHSP; +0.00048 K*- K+ pi+ pi- PHSP; +0.00043 anti-K*0 K+ pi- pi0 PHSP; +0.00043 K*0 K- pi+ pi0 PHSP; +0.00007 phi K- K+ PHSP; +0.000008 rho+ pi- PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.000008 rho- pi+ PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.000008 rho0 pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.000021 omega pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.000001 phi pi0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.000028 phi eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.000022 rho0 eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.000001 omega eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0000545 K*0 anti-K0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0000545 anti-K*0 K0 PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0000085 K*+ K- PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.0000085 K*- K+ PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.00040 b_1+ pi- PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.00040 b_1- pi+ PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.00024 b_10 pi0 PARTWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.000031 phi eta' PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.000032 omega eta' PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.000019 rho0 eta' PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +0.00022 rho0 pi+ pi- PHSP; +0.00045 eta' pi+ pi- pi0 PHSP; +0.00011 K+ K- K+ K- pi0 PHSP; +0.00005 rho0 p+ anti-p- PHSP; +0.00006 eta p+ anti-p- PHSP; +0.000069 omega p+ anti-p- PHSP; +0.00010 Lambda0 anti-p- K+ PHSP; +0.00018 Lambda0 anti-p- K+ pi+ pi- PHSP; +# +0.00008 pi+ pi- VSS; +0.000054 K_S0 K_L0 VSS; +0.000063 K+ K- VSS; +0.000133 p+ anti-p- pi0 PHSP; +0.0010 K_1+ K- PHSP; +0.0010 K_1- K+ PHSP; +0.000128 Delta++ anti-Delta-- PHSP; +# +0.000274 p+ anti-p- PHSP; +0.000280 Lambda0 anti-Lambda0 PHSP; +0.000110 Sigma*+ anti-Sigma*- PHSP; +0.000220 Sigma0 anti-Sigma0 PHSP; +0.000180 Xi- anti-Xi+ PHSP; +0.000280 Xi0 anti-Xi0 PHSP; +# +# Phys. Rev. D 70, 112002 (2004) ----------------------------------------- +# V-> gamma S Partial wave (L,S)=(0,1) +0.0922 gamma chi_c0 HELAMP 1. 0. 1. 0.; +# V-> gamma V Partial wave (L,S)=(0,1) +0.0907 gamma chi_c1 HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; +# V-> gamma T Partial wave (L,S)=(0,1) +0.0933 gamma chi_c2 HELAMP 2.4494897 0. 1.7320508 0. 1. 0. + 1. 0. 1.7320508 0. 2.4494897 0.; +0.00087 gamma eta pi+ pi- PHSP; +0.000185 gamma K*0 K+ pi- PHSP; +0.000185 gamma anti-K*0 K- pi+ PHSP; +0.00024 gamma K*0 anti-K*0 PHSP; +0.00013 gamma K_S0 K+ pi- PHSP; +0.00013 gamma K_S0 K- pi+ PHSP; +0.000029 gamma p+ anti-p- PHSP; +0.000028 gamma pi+ pi- p+ anti-p- PHSP; +0.000136 gamma eta' HELAMP 1. 0. -1. 0.; +0.00021 gamma f_2 PHSP; +0.00014 gamma f_0(1710) PHSP; +#Inclusive modes updated by Daowen Hu June 2008 based on PDG2008 --------- +# subtracted: rho0 p+ anti-p-, omega p+ anti-p-, Delta++ anti-Delta-, +# Lambda0 anti-Lambda0 from 0.0006 +0.000306145 p+ anti-p- pi+ pi- PHSP; +# subtracted: Lambda0 anti-Lambda0 from 0.00032 +0.000255947 p+ anti-n0 pi- pi0 PHSP; +# subtracted: b_1+ pi-, b_1- pi+, omega f_2, omega f_0(1710) from 0.00073 +# set it zero since it is -0.000200926 +0.00000 omega pi+ pi- PHSP; +# subtracted: omega pi0, rho0 eta, omega eta, b_1+ pi-, b_1- pi+, +# phi pi- pi+, omega f_2, phi f'_2, omega f_0(1710), +# phi f_0, omega pi+ pi-, a_20 rho0, a_2+ rho-, a_2- rho+ from 0.0029 +0.00192894 pi+ pi- pi+ pi- pi0 PHSP; +# subtracted: Sigma*+ anti-Sigma*-, Xi- anti-Xi+ from 0.00028 +0.000014816 Lambda0 anti-Lambda0 pi+ pi- PHSP; +# subtracted: phi eta, omega eta, pi0 eta', a_20 rho0, a_2+ rho- +# a_2- rho+ from 0.00095 +0.000907346 eta pi+ pi- pi0 PHSP; +# subtracted: b_1+ pi-, b_1- pi+, rho0 pi+ pi-, omega f_0(1710) +# omega f_2, omega pi+ pi- from 0.00024 +# set it zero since it is -5.73462e-07 +0.00000 pi+ pi- pi+ pi- PHSP; +# subtracted: rho+ pi-, rho- pi+, rho0 pi0, omega pi0 from 0.000168 +0.000143536 pi+ pi- pi0 PHSP; +# subtracted: phi f_0, phi f'_2 from 0.000117 +0.000049158 phi pi- pi+ PHSP; +# subtracted: phi f_0, phi f'_2 from 0.00006 +0.000009 K+ K- K+ K- PHSP; +# subtracted: K_1+ K-, K_1- K+, omega f_2, omega f_0(1710) from 0.000185 +# set it zero since it is -0.000053 +0.0000 omega K+ K- PHSP; +# subtracted: phi eta, K_1+ K-, K_1- K+, omega f_2, phi f_0, phi f'_2 +# omega f_0(1710), K*0 K- rho+, anti-K*0 K+ rho-, K*+ K- rho0, K*- K+ rho0 +# phi K- K+, K*0 K- pi+ pi0, anti-K*0 K+ pi- pi0, K*- K+ pi+ pi-, +# K*+ K- pi+ pi- from 0.00126 +# set it zero since it is -0.000511462 +0.00000 K+ K- pi+ pi- pi0 PHSP; +# subtracted: eta p+ anti-p-, omega p+ anti-p- from 0.00073 +0.000655 p+ anti-p- pi+ pi- pi0 PHSP; +# subtracted: omega eta, omega eta', rho0 eta', a_20 rho0, +# pi+ pi- pi+ pi- eta, omega f_2, omega f_0(1710) from 0.0035 +0.00321329 pi+ pi- pi+ pi- pi+ pi- pi0 PHSP; +# subtracted: b_1+ pi-, b_1- pi+, a_20 rho0, omega f_2, omega f_0(1710), +# omega pi+ pi- from 0.00015 +0.000148732 pi+ pi- pi+ pi- pi+ pi- PHSP; +# subtracted: phi eta', K+ K- pi+ pi- eta from 0.001 +0.0007 K+ K- pi+ pi- pi+ pi- pi0 PHSP; +# subtracted: K_1+ K-, K_1- K+, a_20 rho0, omega f_2, phi f_0, phi f'_2 +# omega f_0(1710), phi pi- pi+, omega K+ K- from 0.00075 +# set it zero since it is -2.56397e-05 +0.0000 K+ K- pi+ pi- PHSP; +# subtracted: K_1+ K-, K_1- K+, omega f_2, omega f_0(1710), omega K+ K- +# from 0.0018 +0.00179976 K+ K- pi+ pi- pi+ pi- PHSP; +# subtracted: a_20 rho0, omega f_2, omega f_0(1710) from 0.00022 +0.000218764 pi+ pi- K_S0 K_S0 PHSP; +# subtracted: gamma chi_c0, gamma chi_c1, gamma chi_c2, gamma eta_c, +# gamma K*0 anti-K*0, phi eta, phi eta', K_1+ K-, K_1- K+, omega phi +# omega f_2, omega f_0(1710), K*+ K- rho0, K*- K+ rho0 +# K*+ K- pi+ pi-, K*- K+ pi+ pi-, omega K+ K- etc from 0.00019 +# -0.00283242 +0.00000 gamma K+ K- pi+ pi- PHSP; +# subtracted: gamma chi_c0, gamma chi_c1, gamma chi_c2, gamma eta_c +# omega eta, rho0 eta, b_1+ pi-, b_1- pi+, omega eta', rho0 eta' +# gamma f_2, gamma f_0(1710), omega f_2, omega f_0(1710), omega pi+ pi- +# from 0.0004 +# set it zero since it is -0.00338959 +0.00000 gamma pi+ pi- pi+ pi- PHSP; +# subtracted: K_1+ K-, K_1- K+, rho0 phi, a_20 rho0 from 0.00022 +0.00000 rho0 K+ K- PHSP; +# +# PRD72, 051108 (2005) -------------------------------------------------- +0.000072 Xi*0 anti-Xi*0 PHSP; +0.000070 Omega- anti-Omega+ PHSP; +# +0.0 K0 anti-K0 PHSP; +0.0 K_S0 K_S0 PHSP; +0.0 K_L0 K_L0 PHSP; +# +# ccbar modes to suppress added on 06042008 +0.0000 rho0 rho0 PHSP; +0.0000 rho0 omega PHSP; +0.0000 rho0 phi PHSP; +0.0000 rho0 gamma PHSP; +0.0000 omega omega PHSP; +0.0000 omega phi PHSP; +0.0000 omega gamma PHSP; +0.0000 phi phi PHSP; +0.0000 phi gamma PHSP; +0.0000 gamma gamma PHSP; +0.0000 pi0 pi0 PHSP; +0.0000 pi0 eta PHSP; +0.0000 pi0 eta' PHSP; +0.0000 eta eta PHSP; +0.0000 eta eta' PHSP; +0.0000 eta' eta' PHSP; +# +0.0000 gamma rho0 pi0 PHSP; +0.0000 gamma omega pi0 PHSP; +0.0000 gamma phi pi0 PHSP; +0.0000 gamma rho0 eta PHSP; +0.0000 gamma omega eta PHSP; +0.0000 gamma phi eta PHSP; +0.0000 gamma rho0 eta' PHSP; +0.0000 gamma omega eta' PHSP; +0.0000 gamma phi eta' PHSP; +# +# Based on R = 2.28, taken from 9 data points in 2GeV<=sqrt(s)<=3GeV of +# (BESII) PRL88, 101802 (2002), combined with the above B(psi(2S)->mu+mu-). +0.01710 rndmflav anti-rndmflav PYTHIA 12; +# +# g g g / g g gammg ratio (preliminary/private communication) +# messured by David Besson: 4% which is MUCH smaller than +# the previously used value, 7.1%. We use "4%" now. +# +0.090726 g g g PYTHIA 4; +0.003628 gamma g g PYTHIA 4; +Enddecay +# +Decay psi(4040) +0.000014 e+ e- PHOTOS VLL; +0.000014 mu+ mu- PHOTOS VLL; +0.000005 tau+ tau- VLL; +0.0021 D0 anti-D0 VSS; +0.0009 D+ D- VSS; +0.1679 D*0 anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1679 anti-D*0 D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1815 D*+ D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1815 D*- D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.1597 D*0 anti-D*0 PHSP; +0.0982 D*+ D*- PHSP; +0.0000 D0 anti-D0 pi0 PHSP; +0.0000 D+ D- pi0 PHSP; +0.0000 D0 D- pi+ PHSP; +0.0000 anti-D0 D+ pi- PHSP; +0.0000 D*+ D- pi0 PHSP; +0.0000 D*- D+ pi0 PHSP; +0.0000 D*+ anti-D0 pi- PHSP; +0.0000 D*- D0 pi+ PHSP; +0.0000 D+ anti-D*0 pi- PHSP; +0.0000 D- D*0 pi+ PHSP; +0.0403 D_s+ D_s- VSS; +Enddecay +# +Decay psi(4160) +0.00001 e+ e- PHOTOS VLL; +0.00001 mu+ mu- PHOTOS VLL; +0.000006 tau+ tau- VLL; +0.0397 D0 anti-D0 VSS; +0.0387 D+ D- VSS; +0.0520 D*0 anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0520 anti-D*0 D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0515 D*+ D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0515 D*- D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.29863 D*0 anti-D*0 PHSP; +0.3082 D*+ D*- PHSP; +0.0000 D0 anti-D0 pi0 PHSP; +0.0000 D+ D- pi0 PHSP; +0.0000 D0 D- pi+ PHSP; +0.0000 anti-D0 D+ pi- PHSP; +0.0000 D*+ D- pi0 PHSP; +0.0000 D*- D+ pi0 PHSP; +0.0000 D*+ anti-D0 pi- PHSP; +0.0000 D*- D0 pi+ PHSP; +0.0000 D+ anti-D*0 pi- PHSP; +0.0000 D- D*0 pi+ PHSP; +0.0100 D_s+ D_s- VSS; +0.0489 D_s*+ D_s- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0489 D_s*- D_s+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0000 D_s+ D_s- pi0 PHSP; +Enddecay +# +Decay psi(4415) +0.000011 e+ e- PHOTOS VLL; +0.000011 mu+ mu- PHOTOS VLL; +0.000007 tau+ tau- VLL; +0.0244 D0 anti-D0 VSS; +0.0219 D+ D- VSS; +0.0320 D*0 anti-D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0320 anti-D*0 D0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0343 D*+ D- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0343 D*- D+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.3451 D*0 anti-D*0 PHSP; +0.3539 D*+ D*- PHSP; +0.0000 D0 anti-D0 pi0 PHSP; +0.0000 D+ D- pi0 PHSP; +0.0000 D0 D- pi+ PHSP; +0.0000 anti-D0 D+ pi- PHSP; +0.0000 D*+ D- pi0 PHSP; +0.0000 D*- D+ pi0 PHSP; +0.0000 D*+ anti-D0 pi- PHSP; +0.0000 D*- D0 pi+ PHSP; +0.0000 D+ anti-D*0 pi- PHSP; +0.0000 D- D*0 pi+ PHSP; +0.0118 D_s+ D_s- VSS; +0.0420 D_s*+ D_s- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0420 D_s*- D_s+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0; +0.0263 D_s*+ D_s*- PHSP; +0.0000 D_s+ D_s- pi0 PHSP; +0.0000 D_s*+ D_s- pi0 PHSP; +0.0000 D_s+ D_s*- pi0 PHSP; +0.0000 D_s+ D- anti-K0 PHSP; +0.0000 D_s- D+ anti-K0 PHSP; +0.0000 D0 D_s- K+ PHSP; +0.0000 anti-D0 D_s+ K- PHSP; +Enddecay +# +# +# chi_cJ (J=0,1,2) decays were updated by Rukshana Patel June, 2006 +# +Decay chi_c0 +#CLNS 08/2025------------------------------------------------------------- +# S-> gamma V Partial wave (L,S)=(0,0) +0.0136 gamma J/psi HELAMP 1. 0. 1. 0.; +#CLNS 08/2019------------------------------------------------------------- +0.000241 gamma gamma PHSP; +#CPDRAFT2008 ------------------------------------------------------------- +0.000257 p+ anti-p- PHSP; +0.000338 Lambda0 anti-Lambda0 PHSP; +0.000441 Sigma0 anti-Sigma0 PHSP; +0.000325 Sigma+ anti-Sigma- PHSP; +0.000514 Xi- anti-Xi+ PHSP; +0.000334 Xi0 anti-Xi0 PHSP; +#CLNS 07/2007------------------------------------------------------------- +0.0152 rho0 pi+ pi- PHSP; +0.0152 rho+ pi- pi0 PHSP; +0.0152 rho- pi+ pi0 PHSP; +0.0059 K+ K- pi0 pi0 PHSP; +0.0011 pi0 pi0 p+ anti-p- PHSP; +0.0032 K+ K- eta pi0 PHSP; +0.0028 K*0 anti-K0 pi0 PHSP; +0.0028 anti-K*0 K0 pi0 PHSP; +0.0037 K*+ K- pi0 PHSP; +0.0037 K*- K+ pi0 PHSP; +0.0048 K*+ pi- anti-K0 PHSP; +0.0048 K*- pi+ anti-K0 PHSP; +0.0132 K+ pi- anti-K0 pi0 PHSP; +0.0132 K- pi+ K0 pi0 PHSP; +0.0354 pi+ pi- pi0 pi0 PHSP; +#CBX07-28 ---------------------------------------------------------------- +0.00637 pi+ pi- PHSP; +0.00294 pi0 pi0 PHSP; +0.00647 K+ K- PHSP; +0.00349 K_S0 K_S0 PHSP; +0.00349 K_L0 K_L0 PHSP; +#CBX07-29 ---------------------------------------------------------------- +0.00318 eta eta PHSP; +0.00212 eta' eta' PHSP; +#PDG2008 updates --------------------------------------------------------- +0.00029 f_0 f_0 PHSP; +0.0063 f'_0 f_0(1710) PHSP; +0.0036 anti-K*0 K+ pi- PHSP; +0.0036 K*0 K- pi+ PHSP; +0.0083 K_1+ K- PHSP; +0.0083 K_1- K+ PHSP; +0.0023 omega omega PHSP; +0.00101 K+ K- phi PHSP; +0.00093 phi phi PHSP; +0.00058 p+ anti-p- pi0 PHSP; +0.00038 p+ anti-p- eta PHSP; +0.0018 anti-K*0 K*0 PHSP; +0.00117 p+ anti-n0 pi- PHSP; +0.000525 K+ anti-p- Lambda0 PHSP; +0.000525 K- p+ anti-Lambda0 PHSP; +0.00230 K_0*0 anti-K_0*0 PHSP; +0.00187 K_0*0 anti-K_2*0 PHSP; +0.00187 anti-K_0*0 K_2*0 PHSP; +#Inclusive modes updated by Daowen Hu June 2008 based on PDG2008 --------- +# subtracted: rho0 pi+ pi-, f_0 f_0, omega omega from 0.0223 +0.00702992 pi+ pi- pi+ pi- PHSP; +# subtracted: anti-K*0 K*0, anti-K*0 K+ pi-, K*0 K- pi+, f_0 f_0, K_1+ K- +# K_1- K+, K_0*0 anti-K_0*0, anti-K_0*0 K_2*0 from 0.0179 +0.00449195 pi+ pi- K+ K- PHSP; +# subtracted: omega omega from 0.0120 +0.0119999 pi+ pi- pi+ pi- pi+ pi- PHSP; +# subtracted: f_0 f_0 from 0.0015 +0.00149691 K+ K- K_S0 K_S0 PHSP; +# subtracted: K+ K- phi, f_0 f_0, phi phi from 0.00281 +0.0020868 K+ K- K+ K- PHSP; +# subtracted: f_0 f_0, K*+ K_S0 pi-, K*- K_S0 pi+, K*+ pi- anti-K0 +# K*- pi+ anti-K0 from 0.0059 +0.00228901 pi+ pi- K_S0 K_S0 PHSP; +# subtracted: Lambda0 anti-Lambda0 from 0.0021 +0.00196199 pi+ pi- p+ anti-p- PHSP; +# +#assume to be the same as K*0 K- pi+ +0.0036 K*+ K_S0 pi- PHSP; +0.0036 K*+ K_L0 pi- PHSP; +0.0036 K*- K_S0 pi+ PHSP; +0.0036 K*- K_L0 pi+ PHSP; +#BES,PLB630(2005),21-30 -------------------------------------------------- +0.0 K_S0 K_L0 PHSP; +0.0 K0 anti-K0 PHSP; +# ccbar modes to suppress added on 06042008 +0.0000 rho0 pi0 PHSP; +0.0000 omega pi0 PHSP; +0.0000 phi pi0 PHSP; +0.0000 gamma pi0 PHSP; +0.0000 rho0 eta PHSP; +0.0000 omega eta PHSP; +0.0000 phi eta PHSP; +0.0000 gamma eta PHSP; +0.0000 rho0 eta' PHSP; +0.0000 omega eta' PHSP; +0.0000 phi eta' PHSP; +0.0000 gamma eta' PHSP; +# +0.72428 rndmflav anti-rndmflav PYTHIA 12; +Enddecay +# +Decay chi_c1 +#CLNS 08/2025------------------------------------------------------------- +# V-> gamma V Partial wave (L,S)=(0,1) +0.393 gamma J/psi HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; +#CPDRAFT2008-011---------------------------------------------------------- +0.000090 p+ anti-p- PHSP; +0.00024 Lambda0 anti-Lambda0 PHSP; +0.000086 Xi- anti-Xi+ PHSP; +#CLNS 07/2007------------------------------------------------------------- +0.0078 rho0 pi+ pi- PHSP; +0.0078 rho+ pi- pi0 PHSP; +0.0078 rho- pi+ pi0 PHSP; +0.0012 K+ K- pi0 pi0 PHSP; +0.0012 K+ K- eta pi0 PHSP; +0.0019 K*0 anti-K0 pi0 PHSP; +0.0019 anti-K*0 K0 pi0 PHSP; +0.0046 K+ pi- anti-K0 pi0 PHSP; +0.0046 K- pi+ K0 pi0 PHSP; +#PDG2008------------------------------------------------------------------ +0.0058 pi+ pi- pi+ pi- pi+ pi- PHSP; +0.0025 pi+ pi- eta' PHSP; +0.00035 K+ K- eta PHSP; +0.00385 K0 K+ pi- PHSP; +0.00385 anti-K0 K- pi+ PHSP; +0.0011 a_0+ pi- PHSP; +0.0011 a_0- pi+ PHSP; +0.003 f_2 eta PHSP; +0.0016 anti-K*0 K+ pi- PHSP; +0.0016 K*0 K- pi+ PHSP; +0.0016 anti-K*0 K*0 PHSP; +0.00055 K*0 anti-K0 PHSP; +0.00055 anti-K*0 K0 PHSP; +0.00385 pi+ K- K0 PHSP; +0.00385 pi- K+ anti-K0 PHSP; +0.0008 K*+ K- PHSP; +0.0008 K*- K+ PHSP; +0.00058 K+ K- K+ K- PHSP; +0.00045 K+ K- phi PHSP; +0.00012 p+ anti-p- pi0 PHSP; +0.00034 K+ anti-p- Lambda0 PHSP; +0.00034 K- p+ anti-Lambda0 PHSP; +#Inclusive modes updated by Daowen Hu June 2008 based on PDG2008 --------- +# subtracted: rho0 pi+ pi- from 0.0076, set it zero since it is -0.0002 +0.0000 pi+ pi- pi+ pi- PHSP; +# subtracted: anti-K*0 K*0, K_2*+ K-, K_2*- K+, anti-K*0 K+ pi-, K*0 K- pi+ +# from 0.0045 +0.00146781 pi+ pi- K+ K- PHSP; +# subtracted: a_0+ pi-, a_0- pi+, f_2 eta from 0.0058 +0.002125 pi+ pi- eta PHSP; +# subtracted: K*+ K-, K*- K+, K_0*+ K-, K_0*- K+, K_2*+ K-, K_2*- K+ +# phi pi0 from 0.00201 +0.000658166 K+ K- pi0 PHSP; +# subtracted: K*+ K_S0 pi-, K*- K_S0 pi+, anti-K_2*0 K0, K_2*0 anti-K0 +# from 0.00076 +0.000178958 pi+ pi- K_S0 K_S0 PHSP; +## inclusive = 0.00049 +# subtracted: Lambda0 anti-Lambda0 from 0.0005 +0.000402003 pi+ pi- p+ anti-p- PHSP; +# +#assume to be the same as K*0 K- pi+ +0.0008 K*+ K_S0 pi- PHSP; +0.0008 K*+ K_L0 pi- PHSP; +0.0008 K*- K_S0 pi+ PHSP; +0.0008 K*- K_L0 pi+ PHSP; +# +0.0012 K+ K_S0 pi- PHSP; +0.0012 K- K_S0 pi+ PHSP; +# +0.0 K0 anti-K0 PHSP; +0.0 K_S0 K_L0 PHSP; +# force it so that PYTHIA won't generate this +0.00000 pi+ pi- PHSP; +# +# 0.00195 * 30.4% / 2 / 0.3333 +0.00089 K_0*+ K- PHSP; +0.00089 K_0*- K+ PHSP; +0.00089 anti-K_0*0 K0 PHSP; +0.00089 K_0*0 anti-K0 PHSP; +# 0.00195 * 23.1% / 2 / 0.331 +0.00068 K_2*+ K- PHSP; +0.00068 K_2*- K+ PHSP; +0.00068 anti-K_2*0 K0 PHSP; +0.00068 K_2*0 anti-K0 PHSP; +# ccbar modes to suppress added on 06042008 +0.0000 rho0 pi0 PHSP; +0.0000 omega pi0 PHSP; +0.0000 phi pi0 PHSP; +0.0000 gamma pi0 PHSP; +0.0000 rho0 eta PHSP; +0.0000 omega eta PHSP; +0.0000 phi eta PHSP; +0.0000 gamma eta PHSP; +0.0000 rho0 eta' PHSP; +0.0000 omega eta' PHSP; +0.0000 phi eta' PHSP; +0.0000 gamma eta' PHSP; +# +0.512492 rndmflav anti-rndmflav PYTHIA 12; +Enddecay +# +Decay chi_c2 +#CLNS 08/2025------------------------------------------------------------- +# T-> gamma V Partial wave (L,S)=(0,2) +0.209 gamma J/psi HELAMP 1. 0. 1.7320508 0. 2.4494897 + 0. 2.4494897 0. 1.7320508 0. 1. 0.; +#CLNS 08.2019------------------------------------------------------------- +0.000289 gamma gamma PHSP; +#CPDRAFT2008-011---------------------------------------------------------- +0.000077 p+ anti-p- PHSP; +0.00017 Lambda0 anti-Lambda0 PHSP; +0.000145 Xi- anti-Xi+ PHSP; +#CLNS 07/2007------------------------------------------------------------- +0.01115 rho0 pi+ pi- PHSP; +0.01115 rho+ pi- pi0 PHSP; +0.01115 rho- pi+ pi0 PHSP; +0.0021 K+ K- pi0 pi0 PHSP; +0.008 pi0 pi0 p+ anti-p- PHSP; +0.0013 K+ K- eta pi0 PHSP; +0.00295 K*0 anti-K0 pi0 PHSP; +0.00295 anti-K*0 K0 pi0 PHSP; +0.0045 K*0 K- pi+ PHSP; +0.0045 anti-K*0 K+ pi- PHSP; +0.00285 K*+ K- pi0 PHSP; +0.00285 K*- K+ pi0 PHSP; +0.0045 K*+ anti-K0 pi- PHSP; +0.0045 K*- K0 pi+ PHSP; +0.00705 K+ pi- anti-K0 pi0 PHSP; +0.00705 K- pi+ K0 pi0 PHSP; +#CBX07-28----------------------------------------------------------------- +0.00159 pi+ pi- TSS; +0.00068 pi0 pi0 TSS; +0.00113 K+ K- TSS; +0.00053 K_S0 K_S0 TSS; +0.00051 eta eta TSS; +0.00006 eta' eta' TSS; +#PDG2008------------------------------------------------------------------ +0.0026 anti-K*0 K*0 PHSP; +0.00154 phi phi PHSP; +0.002 omega omega PHSP; +0.00055 pi+ pi- eta PHSP; +0.00057 pi+ pi- eta' PHSP; +0.00070 K0 K- pi+ PHSP; +0.00070 anti-K0 K+ pi- PHSP; +0.00035 K+ K- pi0 PHSP; +0.00163 K+ K- phi PHSP; +0.00049 p+ anti-p- pi0 PHSP; +0.00021 p+ anti-p- eta PHSP; +0.00120 p+ anti-n0 pi- PHSP; +0.00048 K+ anti-p- Lambda0 PHSP; +0.00048 K- p+ anti-Lambda0 PHSP; +#Inclusive modes updated by Daowen Hu June 2008 based on PDG2008 --------- +# subtracted: rho0 pi+ pi-, omega omega from 0.0114 +0.000249024 pi+ pi- pi+ pi- PHSP; +# subtracted: anti-K*0 K+ pi-, K*0 K- pi+, anti-K*0 K*0 from 0.0094 +0.00225649 pi+ pi- K+ K- PHSP; +# subtracted: omega omega from 0.0086 +0.00859991 pi+ pi- pi+ pi- pi+ pi- PHSP; +# subtracted: K*+ K_S0 pi-, K*- K_S0 pi+, K*+ anti-K0 pi-, K*- K0 pi+ +# from 0.0025 +0.0002023 pi+ pi- K_S0 K_S0 PHSP; +# subtracted: phi phi, K+ K- phi from 0.00184 +0.000668405 K+ K- K+ K- PHSP; +# subtracted: Lambda0 anti-Lambda0 from 0.00132 +0.00120975 pi+ pi- p+ anti-p- PHSP; +# +#BES,PLB630(2005),21-30 -------------------------------------------------- +0.00089 K_L0 K_L0 TSS; +#PDG2006 ---------------------------------------------------------------- +0.0012 K*+ K_S0 pi- PHSP; +0.0012 K*+ K_L0 pi- PHSP; +0.0012 K*- K_S0 pi+ PHSP; +0.0012 K*- K_L0 pi+ PHSP; +0.0 K0 anti-K0 PHSP; +0.0 K_S0 K_L0 PHSP; +# ccbar modes to suppress added on 06042008 +0.0000 rho0 pi0 PHSP; +0.0000 omega pi0 PHSP; +0.0000 phi pi0 PHSP; +0.0000 gamma pi0 PHSP; +0.0000 rho0 eta PHSP; +0.0000 omega eta PHSP; +0.0000 phi eta PHSP; +0.0000 gamma eta PHSP; +0.0000 rho0 eta' PHSP; +0.0000 omega eta' PHSP; +0.0000 phi eta' PHSP; +0.0000 gamma eta' PHSP; +# sum of other = 0.352158 +# +0.664893 rndmflav anti-rndmflav PYTHIA 12; +Enddecay +# +# +Decay psi(3770) +0.4243 D+ D- VSS; +0.5723 D0 anti-D0 VSS; +0.0034 J/psi pi+ pi- PHSP; +Enddecay +# +# +# bb= Mesons +# +##################### ETA_b ######################### +# no changes to original DECAY.DEC +Decay eta_b +1.000 g g PYTHIA 32; +Enddecay + +##################### ETA_b(3S) ######################### +# not in original DECAY.DEC. No information +Decay eta_b(2S) +1.000 g g PYTHIA 32; +Enddecay + +##################### H_b ######################### +Decay h_b +# radiative decay Godfrey J.Phys.Conf.Ser.9:123-126,2005 +0.414 gamma eta_b PHSP; +0.586 g g PYTHIA 32; +Enddecay + +##################### H_b(2P) ######################### +Decay h_b(2P) +# no information +0.4 gamma eta_b(2S) PHSP; +0.6 g g PYTHIA 32; +Enddecay + +##################### H_b(3P) ######################### +Decay h_b(3P) +# no information +0.4 gamma eta_b(3S) PHSP; +0.6 g g PYTHIA 32; +Enddecay + +##################### UPSILON_1(1D) ######################### +Decay Upsilon_1(1D) +#see Kwong and Rosner, PRD 38,279 (1988) +# added leptonic decays +0.00004 e+ e- PHOTOS VLL; +0.00004 mu+ mu- PHOTOS VLL; +0.00004 tau+ tau- VLL; + +0.00140 Upsilon pi+ pi- PHSP; +0.00070 Upsilon pi0 pi0 PHSP; +# V-> gamma S Partial wave (L,S)=(0,1) +0.60200 gamma chi_b0 HELAMP 1. 0. +1. 0.; +# V-> gamma V Partial wave (L,S)=(0,1) +0.31800 gamma chi_b1 HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; +# V-> gamma T Partial wave (L,S)=(0,1) +0.02600 gamma chi_b2 HELAMP 2.4494897 0. 1.7320508 0. 1. 0. + 1. 0. 1.7320508 0. 2.4494897 0.; +0.05178 g g g PYTHIA 4; +Enddecay + +##################### UPSILON_2(1D) ######################### +Decay Upsilon_2(1D) +#see Kwong and Rosner, PRD 38,279 (1988) +0.00140 Upsilon pi+ pi- PHSP; +0.00070 Upsilon pi0 pi0 PHSP; +# T-> gamma T Partial wave (L,S)=(0,2) +0.20300 gamma chi_b2 PHSP; +#0.20300 gamma chi_b2 HELAMP -1. 0. -1.2247449 0. +# -1.2247449 0. -1. 0. +# 1. 0. 1.2247449 0. +# 1.2247449 0. 1. 0.; +# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. +0.78500 gamma chi_b1 PHSP; +#0.78500 gamma chi_b1 HELAMP 1. 0. 1.7320508 0. 2.4494897 0. +# 2.4494897 0. 1.7320508 0. 1. 0.; +0.00990 g g g PYTHIA 4; +Enddecay + +##################### UPSILON_3(1D) ######################### +Decay Upsilon_3(1D) +#see Kwong and Rosner, PRD 38,279 (1988) +0.00200 Upsilon pi+ pi- PHSP; +0.00100 Upsilon pi0 pi0 PHSP; +0.95400 chi_b2 gamma PHSP; +0.04300 g g g PYTHIA 4; +Enddecay + +##################### UPSILON_1(2D) ######################### +Decay Upsilon_1(2D) +#see Kwong and Rosner, PRD 38,279 (1988) +# added leptonic decays +0.0001 e+ e- PHOTOS VLL; +0.0001 mu+ mu- PHOTOS VLL; +0.0001 tau+ tau- VLL; + +0.00000 Upsilon pi+ pi- PHSP; +0.00000 Upsilon pi0 pi0 PHSP; +0.00000 Upsilon(2S) pi+ pi- PHSP; +0.00000 Upsilon(2S) pi0 pi0 PHSP; +# V-> gamma S Partial wave (L,S)=(0,1) +0.51000 gamma chi_b0(2P) HELAMP 1. 0. +1. 0.; +# V-> gamma V Partial wave (L,S)=(0,1) +0.26000 gamma chi_b1(2P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; +# V-> gamma T Partial wave (L,S)=(0,1) +0.01400 gamma chi_b2(2P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. + 1. 0. 1.7320508 0. 2.4494897 0.; +0.21570 g g g PYTHIA 4; +Enddecay + +##################### UPSILON_2(2D) ######################### +Decay Upsilon_2(2D) +#see Kwong and Rosner, PRD 38,279 (1988) +0.00000 Upsilon pi+ pi- PHSP; +0.00000 Upsilon pi0 pi0 PHSP; +0.00000 Upsilon(2S) pi+ pi- PHSP; +0.00000 Upsilon(2S) pi0 pi0 PHSP; +# T-> gamma T Partial wave (L,S)=(0,2) +0.04000 gamma chi_b2(2P) PHSP; +#0.04000 gamma chi_b2(2P) HELAMP -1. 0. -1.2247449 0. +# -1.2247449 0. -1. 0. +# 1. 0. 1.2247449 0. +# 1.2247449 0. 1. 0.; +# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. +0.13000 gamma chi_b1(2P) PHSP; +#0.13000 gamma chi_b1(2P) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. +# 2.4494897 0. 1.7320508 0. 1. 0.; +0.83000 g g g PYTHIA 4; +Enddecay + +##################### UPSILON_3(2D) ######################### +Decay Upsilon_3(2D) +#see Kwong and Rosner, PRD 38,279 (1988) +0.00000 Upsilon pi+ pi- PHSP; +0.00000 Upsilon pi0 pi0 PHSP; +0.00000 Upsilon(2S) pi+ pi- PHSP; +0.00000 Upsilon(2S) pi0 pi0 PHSP; +0.72000 chi_b2(2P) gamma PHSP; +0.28000 g g g PYTHIA 4; +Enddecay + +##################### ETA_b2(1D) ######################### +# no information +Decay eta_b2(1D) +1.000 rndmflav anti-rndmflav PYTHIA 12; +Enddecay + +##################### ETA_b2(2D) ######################### +# No information +Decay eta_b2(2D) +1.000 rndmflav anti-rndmflav PYTHIA 12; +Enddecay + +##################### UPSILON(1S) ######################### +Decay Upsilon + +# slight adjustment of ll BF assuming lepton universality +0.0249 e+ e- PHOTOS VLL; +0.0249 mu+ mu- PHOTOS VLL; +0.0249 tau+ tau- VLL; + +# eta_b gamma Godfrey/Rosner PRD64 074011 table 1 LNR99 +0.00036 gamma eta_b PHSP; + +# original values; g g g adjust to give total BF = 1 +0.01500 d anti-d PYTHIA 32; +0.04500 u anti-u PYTHIA 32; +0.01500 s anti-s PYTHIA 32; +0.04500 c anti-c PYTHIA 32; +0.77594 g g g PYTHIA 4; +0.02900 gamma g g PYTHIA 4; +Enddecay + +##################### UPSILON(2S) ######################### +Decay Upsilon(2S) + +# assume lepton universality +0.0194 e+ e- PHOTOS VLL; +0.0194 mu+ mu- PHOTOS VLL; +0.0194 tau+ tau- VLL; +0.1870 Upsilon pi+ pi- YMSTOYNSPIPICLEO -0.753 0.000; +0.0935 Upsilon pi0 pi0 YMSTOYNSPIPICLEO -0.753 0.000; +# Upsilon eta from Godfrey hep-ph/0701208 +0.0008 Upsilon eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +# eta_b gamma and eta_b(2S) PRD64 074011 table 1 & 3 LNR99 +0.000005 gamma eta_b PHSP; +0.000063 gamma eta_b(2S) PHSP; +# update to PDG2007 +# V-> gamma S Partial wave (L,S)=(0,1) +0.0380 gamma chi_b0 HELAMP 1. 0. +1. 0.; +# V-> gamma V Partial wave (L,S)=(0,1) +0.0690 gamma chi_b1 HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; +# V-> gamma T Partial wave (L,S)=(0,1) +0.0660 gamma chi_b2 HELAMP 2.4494897 0. 1.7320508 0. 1. 0. + 1. 0. 1.7320508 0. 2.4494897 0.; +# original DECAY.DEC; adjust ggg +0.00500 d anti-d PYTHIA 32; +0.02000 u anti-u PYTHIA 32; +0.00500 s anti-s PYTHIA 32; +0.02000 c anti-c PYTHIA 32; +0.4215 g g g PYTHIA 4; +0.01600 gamma g g PYTHIA 4; +Enddecay + +##################### UPSILON(3S) ######################### +Decay Upsilon(3S) +# remove Ups(2S)gamma gamma (double counted with rad decays to chi_b) + +# assume lepton universality +0.022 e+ e- PHOTOS VLL; +0.022 mu+ mu- PHOTOS VLL; +0.022 tau+ tau- VLL; + +# rationalize experimental results; +# phase space factor = 1.36 to Upsilon(2S), 1.02 to 1S ++0.0442 Upsilon pi+ pi- YMSTOYNSPIPICLEO -2.523 1.189; ++0.0226 Upsilon pi0 pi0 YMSTOYNSPIPICLEO -2.523 1.189; ++0.0290 Upsilon(2S) pi+ pi- YMSTOYNSPIPICLEO -0.395 0.001; ++0.0200 Upsilon(2S) pi0 pi0 YMSTOYNSPIPICLEO -0.395 0.001; +# Upsilon eta Eichten et al hep-ph/0701208 +0.00067 Upsilon eta PARTWAVE 0.0 0.0 1.0 0.0 0.0 0.0; +# decays to h_b Godfrey J.Phys.Conf.Ser.9:123-126,2005; pi pi is a guess +0.001 h_b pi0 PHSP; +0.001 h_b pi+ pi- PHSP; +0.0006 h_b pi0 pi0 PHSP; +# eta_b gamma Godfrey/Rosner PRD64 074011 table 1&3 LNR99 +0.000005 gamma eta_b PHSP; +0.000040 gamma eta_b(2S) PHSP; +0.000050 gamma eta_b(3S) PHSP; +# adjust to PDG2007 +# V-> gamma S Partial wave (L,S)=(0,1) +0.0590 gamma chi_b0(2P) HELAMP 1. 0. 1. 0.; +# V-> gamma V Partial wave (L,S)=(0,1) +0.1260 gamma chi_b1(2P) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; +# V-> gamma T Partial wave (L,S)=(0,1) +0.1310 gamma chi_b2(2P) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. + 1. 0. 1.7320508 0. 2.4494897 0.; + +# chi_b1 and chi_b2 scaled from chi_b0; B ~ (2J+1)E_gamma^3 +# V-> gamma S Partial wave (L,S)=(0,1) +0.0030 gamma chi_b0 HELAMP 1. 0. 1. 0.; +# V-> gamma V Partial wave (L,S)=(0,1) +0.0073 gamma chi_b1 HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; +# V-> gamma T Partial wave (L,S)=(0,1) +0.0108 gamma chi_b2 HELAMP 2.4494897 0. 1.7320508 0. 1. 0. + 1. 0. 1.7320508 0. 2.4494897 0.; + +# original DECAY.DEC; adjust g g g +0.00700 d anti-d PYTHIA 32; +0.02800 u anti-u PYTHIA 32; +0.00700 s anti-s PYTHIA 32; +0.02800 c anti-c PYTHIA 32; +0.39274 g g g PYTHIA 4; +0.01500 gamma g g PYTHIA 4; +Enddecay + + +##################### CHI_B0 ######################### +Decay chi_b0 +# No measurements; no changes to original DECAY.DEC +# S-> gamma V Partial wave (L,S)=(0,0) +0.0500 gamma Upsilon HELAMP 1. 0. 1. 0.; +0.9500 g g PYTHIA 12; +Enddecay +# + +##################### CHI_B1 ######################### +Decay chi_b1 +# gamma Ups is measured. No changes +# V-> gamma V Partial wave (L,S)=(0,1) +0.3500 gamma Upsilon HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; +0.1625 d anti-d PYTHIA 32; +0.1625 u anti-u PYTHIA 32; +0.1625 s anti-s PYTHIA 32; +0.1625 c anti-c PYTHIA 32; +Enddecay +# + +##################### CHI_B2 ######################### +Decay chi_b2 +# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. +0.2200 gamma Upsilon PHSP; +#0.2200 gamma Upsilon HELAMP 1. 0. 1.7320508 0. 2.4494897 0. +# 2.4494897 0. 1.7320508 0. 1. 0.; +0.7800 g g PYTHIA 32; +Enddecay + +##################### CHI_B0(2P) ######################### +Decay chi_b0(2P) + +# S-> gamma V Partial wave (L,S)=(0,0) +# experimental values +0.0090 gamma Upsilon HELAMP 1. 0. 1. 0.; +0.0460 gamma Upsilon(2S) HELAMP 1. 0. 1. 0.; + +# S-> gamma V Partial wave (L,S)=(0,0) +# Kwong & Rosner PRD 38 279 +0.00150 gamma Upsilon_1(1D) HELAMP 1. 0. 1. 0.; + +# pi pi chi_b0 estimated from Kuang & Yan PRD 24 2874 +0.0005 chi_b0 pi+ pi- PHSP; +0.00025 chi_b0 pi0 pi0 PHSP; + +# Voloshin Mod Phy Lett A 19, 2895 +0.0015 eta eta_b PHSP; + +0.94125 g g PYTHIA 32; +Enddecay + +##################### CHI_B1(2P) ######################### +Decay chi_b1(2P) + +# V-> gamma V Partial wave (L,S)=(0,1) +# experimental +0.0850 gamma Upsilon HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; +0.2100 gamma Upsilon(2S) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; + +# V-> gamma V Partial wave (L,S)=(0,1) +# Kwong & Rosner PRD 38 279 for gamma Ups(1D) +0.0097 gamma Upsilon_1(1D) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; + +# V-> gamma T Partial wave (L,S)=(0,1) +0.0236 gamma Upsilon_2(1D) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. + 1. 0. 1.7320508 0. 2.4494897 0.; + +# Hadronic decays omega and pi pi PDG2007. Note that pi pi is +# defined to be 1.5x pi+pi- & 3x pi0 pi0; see CLEO PRD 73 012003 +0.0163 Upsilon omega PHSP; +0.0057 chi_b1 pi+ pi- PHSP; +0.0029 chi_b1 pi0 pi0 PHSP; +0.1617 d anti-d PYTHIA 32; +0.1617 u anti-u PYTHIA 32; +0.1617 s anti-s PYTHIA 32; +0.1617 c anti-c PYTHIA 32; +Enddecay + +##################### CHI_B2(2P) ######################### +Decay chi_b2(2P) + +# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. +0.0710 gamma Upsilon PHSP; +#0.0710 gamma Upsilon HELAMP 1. 0. 1.7320508 0. 2.4494897 0. +# 2.4494897 0. 1.7320508 0. 1. 0.; +0.1620 gamma Upsilon(2S) PHSP; +#0.1620 gamma Upsilon(2S) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. +# 2.4494897 0. 1.7320508 0. 1. 0.; +# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. +0.00023 gamma Upsilon_1(1D) PHSP; +#0.00023 gamma Upsilon_1(1D) HELAMP 1. 0. 1.7320508 0. 2.4494897 0. +# 2.4494897 0. 1.7320508 0. 1. 0.; +# T -> gamma T Partial wave (L,S)=(0,2) +0.00290 gamma Upsilon_2(1D) PHSP; +#0.00290 gamma Upsilon_2(1D) HELAMP -1. 0. -1.2247449 0. +# -1.2247449 0. -1. 0. +# 1. 0. 1.2247449 0. +# 1.2247449 0. 1. 0.; +# spin 3 not yet in HELAMP. +0.01420 gamma Upsilon_3(1D) PYTHIA 0; +# T-> gamma 3 Partial wave (L,S)=(0,2) +#0.01420 gamma Upsilon_3(1D) HELAMP 3.8729833 0. 3.1622777 0. +# 2.4494897 0. 1.7320508. 0. 1. 0. +# 1. 0. 1.7320508 0. 2.4494897 0. +# 3.1622777 0. 3.8729833 0.; + +# Upsilon omega and pi pi chi_b2 PDG2007. Note that pi pi is +# defined to be 1.5x pi+pi- & 3x pi0 pi0; see CLEO PRD 73 012003. +# pi pi chi_b1 estimated from Kuang & Yan PRD 24 2874 +0.011 Upsilon omega PHSP; +0.0040 chi_b2 pi+ pi- PHSP; +0.0020 chi_b2 pi0 pi0 PHSP; +0.0002 chi_b1 pi+ pi- PHSP; +0.0001 chi_b1 pi0 pi0 PHSP; + +0.73237 g g PYTHIA 32; +Enddecay + +##################### CHI_B0(3P) ######################### +Decay chi_b0(3P) +# Kwong & Rosner PRD 38 279 calculate E1 partial widths +# but not total width. Assume 10% greater than (2P). +# No estimate for hadronic transitions; ignore + +# S-> gamma V Partial wave (L,S)=(0,0) +0.0036 gamma Upsilon HELAMP 1. 0. 1. 0.; +0.0033 gamma Upsilon(2S) HELAMP 1. 0. 1. 0.; +0.0076 gamma Upsilon(3S) HELAMP 1. 0. 1. 0.; + +# S-> gamma V Partial wave (L,S)=(0,0) +# decays to (1D) are negligible +0.0019 gamma Upsilon_1(2D) HELAMP 1. 0. 1. 0.; + +0.9835 g g PYTHIA 32; +Enddecay + +##################### CHI_B1(3P) ######################### +Decay chi_b1(3P) +#see Kwong and Rosner, PRD 38,279 (1988) +# V-> gamma V Partial wave (L,S)=(0,1) +0.15000 gamma Upsilon(3S) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; +# V-> gamma T Partial wave (L,S)=(0,1) +0.03100 gamma Upsilon_2(2D) HELAMP 2.4494897 0. 1.7320508 0. 1. 0. + 1. 0. 1.7320508 0. 2.4494897 0.; +# V-> gamma V Partial wave (L,S)=(0,1) +0.01300 gamma Upsilon_1(2D) HELAMP 1. 0. 1. 0. -1. 0. -1. 0.; + +0.20150 d anti-d PYTHIA 32; +0.20150 u anti-u PYTHIA 32; +0.20150 s anti-s PYTHIA 32; +0.20150 c anti-c PYTHIA 32; +Enddecay + +##################### CHI_B2(3P) ######################### +Decay chi_b2(3P) +# Kwong & Rosner PRD 38 279 calculate E1 partial widths +# but not total width. Assume 10% greater than (2P). +# No estimate for hadronic transitions; ignore + +# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. +0.019 gamma Upsilon PHSP; +0.019 gamma Upsilon(2S) PHSP; +0.060 gamma Upsilon(3S) PHSP; + +# decays to (1D) are negligible +# T-> gamma V Partial wave (L,S)=(0,2) Use PHSP. +0.00025 gamma Upsilon_1(2D) PHSP; + +# T -> gamma T Partial wave (L,S)=(0,2) +0.0030 gamma Upsilon_2(2D) PHSP; + +# spin 3 not yet in HELAMP. +0.015 gamma Upsilon_3(1D) PYTHIA 0; + +0.88375 g g PYTHIA 32; +Enddecay +# +# Charm Baryons +# +Decay Lambda_c+ +0.01800 e+ nu_e Lambda0 PYTHIA 42; +0.00500 e+ nu_e Sigma0 PYTHIA 42; +0.00500 e+ nu_e Sigma*0 PYTHIA 42; +0.00300 e+ nu_e n0 PYTHIA 42; +0.00200 e+ nu_e Delta0 PYTHIA 42; +0.00600 e+ nu_e p+ pi- PYTHIA 42; +0.00600 e+ nu_e n0 pi0 PYTHIA 42; +0.01800 mu+ nu_mu Lambda0 PYTHIA 42; +0.00500 mu+ nu_mu Sigma0 PYTHIA 42; +0.00500 mu+ nu_mu Sigma*0 PYTHIA 42; +0.00300 mu+ nu_mu n0 PYTHIA 42; +0.00200 mu+ nu_mu Delta0 PYTHIA 42; +0.00600 mu+ nu_mu p+ pi- PYTHIA 42; +0.00600 mu+ nu_mu n0 pi0 PYTHIA 42; +0.00660 Delta++ K- PYTHIA 0; +0.02500 Delta++ K*- PYTHIA 0; +0.02300 p+ anti-K0 PYTHIA 0; +0.04000 p+ anti-K*0 PYTHIA 0; +0.00500 Delta+ anti-K0 PYTHIA 0; +0.00500 Delta+ anti-K*0 PYTHIA 0; +0.00580 Lambda0 pi+ PYTHIA 0; +0.00500 Lambda0 rho+ PYTHIA 0; +0.00550 Sigma0 pi+ PYTHIA 0; +0.00400 Sigma0 rho+ PYTHIA 0; +0.00400 Sigma*0 pi+ PYTHIA 0; +0.00400 Sigma*0 rho+ PYTHIA 0; +0.00400 Sigma+ pi0 PYTHIA 0; +0.00200 Sigma+ eta PYTHIA 0; +0.00200 Sigma+ eta' PYTHIA 0; +0.00400 Sigma+ rho0 PYTHIA 0; +0.00400 Sigma+ omega PYTHIA 0; +0.00300 Sigma*+ pi0 PYTHIA 0; +0.00200 Sigma*+ eta PYTHIA 0; +0.00300 Sigma*+ rho0 PYTHIA 0; +0.00300 Sigma*+ omega PYTHIA 0; +0.00200 Xi0 K+ PYTHIA 0; +0.00200 Xi0 K*+ PYTHIA 0; +0.00200 Xi*0 K+ PYTHIA 0; +0.00100 Delta++ pi- PYTHIA 0; +0.00100 Delta++ rho- PYTHIA 0; +0.00200 p+ pi0 PYTHIA 0; +0.00100 p+ eta PYTHIA 0; +0.00100 p+ eta' PYTHIA 0; +0.00200 p+ rho0 PYTHIA 0; +0.00200 p+ omega PYTHIA 0; +0.00130 p+ phi PYTHIA 0; +0.00180 p+ f_0 PYTHIA 0; +0.00100 Delta+ pi0 PYTHIA 0; +0.00100 Delta+ eta PYTHIA 0; +0.00100 Delta+ eta' PYTHIA 0; +0.00100 Delta+ rho0 PYTHIA 0; +0.00100 Delta+ omega PYTHIA 0; +0.00300 n0 pi+ PYTHIA 0; +0.00300 n0 rho+ PYTHIA 0; +0.00300 Delta0 pi+ PYTHIA 0; +0.00300 Delta0 rho+ PYTHIA 0; +0.00500 Lambda0 K+ PYTHIA 0; +0.00500 Lambda0 K*+ PYTHIA 0; +0.00200 Sigma0 K+ PYTHIA 0; +0.00200 Sigma0 K*+ PYTHIA 0; +0.00100 Sigma*0 K+ PYTHIA 0; +0.00100 Sigma*0 K*+ PYTHIA 0; +0.00200 Sigma+ K0 PYTHIA 0; +0.00200 Sigma+ K*0 PYTHIA 0; +0.00100 Sigma*+ K0 PYTHIA 0; +0.00100 Sigma*+ K*0 PYTHIA 0; +0.13000 u anti-d d su_0 PYTHIA 13; +0.05700 u anti-d d su_1 PYTHIA 13; +0.03500 u anti-s d su_0 PYTHIA 13; +0.03500 u anti-d d ud_0 PYTHIA 13; +0.09500 s uu_1 PYTHIA 13; +0.14000 u su_0 PYTHIA 13; +0.14000 u su_1 PYTHIA 13; +0.03000 d uu_1 PYTHIA 13; +0.01500 u ud_0 PYTHIA 13; +0.01500 u ud_1 PYTHIA 13; +Enddecay +CDecay anti-Lambda_c- +# +Decay Xi_c0 +1.000 PYTHIA 84; +Enddecay +Decay anti-Xi_c0 +1.000 PYTHIA 84; +Enddecay +# +Decay c-hadron +0.08000 e+ nu_e s specflav PYTHIA 42; +0.08000 mu+ nu_mu s specflav PYTHIA 42; +0.76000 u anti-d s specflav PYTHIA 11; +0.08000 u anti-s s specflav PYTHIA 11; +Enddecay +CDecay anti-c-hadron +# +Decay Sigma_c0 +1.0000 Lambda_c+ pi- PHSP; +Enddecay +Decay anti-Sigma_c0 +1.0000 anti-Lambda_c- pi+ PHSP; +Enddecay +# +Decay Sigma_c+ +1.0000 Lambda_c+ pi0 PHSP; +Enddecay +Decay anti-Sigma_c- +1.0000 anti-Lambda_c- pi0 PHSP; +Enddecay +# +Decay Xi_c+ +0.98 PYTHIA 84; +0.02 Xi- pi+ pi+ PHSP; +Enddecay + +Decay anti-Xi_c- +0.98 PYTHIA 84; +0.02 anti-Xi+ pi- pi- PHSP; +Enddecay +# +Decay Sigma_c++ +1.0000 Lambda_c+ pi+ PHSP; +Enddecay +Decay anti-Sigma_c-- +1.0000 anti-Lambda_c- pi- PHSP; +Enddecay +# +Decay Xi'_c+ +1.0 gamma Xi_c+ PHSP; +Enddecay +Decay anti-Xi'_c- +1.0 gamma anti-Xi_c- PHSP; +Enddecay +# +Decay Xi'_c0 +1.0000 gamma Xi_c0 PHSP; +Enddecay +Decay anti-Xi'_c0 +1.0000 gamma anti-Xi_c0 PHSP; +Enddecay +# +# Light Baryons +# +Decay Lambda0 +0.6390 p+ pi- PHSP; +0.3580 n0 pi0 PHSP; +0.0018 n0 gamma PHSP; +0.0005 p+ pi- gamma PHSP; +0.0006 p+ e- anti-nu_e PHOTOS PHSP; +0.0001 p+ mu- anti-nu_mu PHOTOS PHSP; +Enddecay +Decay anti-Lambda0 +0.6390 anti-p- pi+ PHSP; +0.3580 anti-n0 pi0 PHSP; +0.0018 anti-n0 gamma PHSP; +0.0005 anti-p- pi+ gamma PHSP; +0.0006 anti-p- e+ nu_e PHOTOS PHSP; +0.0001 anti-p- mu+ nu_mu PHOTOS PHSP; +Enddecay +# +Decay Lambda(1405)0 + +0.3333 Sigma- pi+ PHSP; +0.3333 Sigma+ pi- PHSP; +0.3333 Sigma0 pi0 PHSP; +Enddecay +# +Decay anti-Lambda(1405)0 + + +0.3333 anti-Sigma+ pi- PHSP; +0.3333 anti-Sigma- pi+ PHSP; +0.3333 anti-Sigma0 pi0 PHSP; +Enddecay +# +Decay Lambda(1520)0 +0.23 p+ K- PHSP; +0.23 n0 anti-K0 PHSP; + +0.14 Sigma- pi+ PHSP; +0.14 Sigma+ pi- PHSP; +0.14 Sigma0 pi0 PHSP; +0.0333 Lambda0 pi0 pi0 PHSP; +0.0667 Lambda0 pi+ pi- PHSP; +0.003 Sigma+ pi- pi0 PHSP; +0.003 Sigma- pi+ pi0 PHSP; +0.001 Sigma0 pi0 pi0 PHSP; +0.002 Sigma0 pi+ pi- PHSP; +0.011 Lambda0 gamma PHSP; +Enddecay +# +Decay anti-Lambda(1520)0 +0.23 anti-p- K+ PHSP; +0.23 anti-n0 K0 PHSP; + +0.14 anti-Sigma+ pi- PHSP; +0.14 anti-Sigma- pi+ PHSP; +0.14 anti-Sigma0 pi0 PHSP; +0.0333 anti-Lambda0 pi0 pi0 PHSP; +0.0667 anti-Lambda0 pi+ pi- PHSP; + +0.003 anti-Sigma- pi+ pi0 PHSP; +0.003 anti-Sigma+ pi- pi0 PHSP; +0.001 anti-Sigma0 pi0 pi0 PHSP; +0.002 anti-Sigma0 pi+ pi- PHSP; +0.011 anti-Lambda0 gamma PHSP; +Enddecay +# +Decay Lambda(1600)0 +0.176 p+ K- PHSP; +0.176 n0 anti-K0 PHSP; + +0.216 Sigma- pi+ PHSP; +0.216 Sigma+ pi- PHSP; +0.216 Sigma0 pi0 PHSP; +Enddecay +# +Decay anti-Lambda(1600)0 +0.176 anti-p- K+ PHSP; +0.176 anti-n0 K0 PHSP; +0.216 anti-Sigma+ pi- PHSP; +0.216 anti-Sigma- pi+ PHSP; +0.216 anti-Sigma0 pi0 PHSP; +Enddecay +# +Decay Lambda(1670)0 +0.10 p+ K- PHSP; +0.10 n0 anti-K0 PHSP; + +0.16 Sigma- pi+ PHSP; +0.16 Sigma+ pi- PHSP; +0.16 Sigma0 pi0 PHSP; +0.32 Lambda0 eta PHSP; +Enddecay +# +Decay anti-Lambda(1670)0 +0.10 anti-p- K+ PHSP; +0.10 anti-n0 K0 PHSP; +0.16 anti-Sigma+ pi- PHSP; +0.16 anti-Sigma- pi+ PHSP; +0.16 anti-Sigma0 pi0 PHSP; +0.32 anti-Lambda0 eta PHSP; +Enddecay +# +Decay Lambda(1690)0 +0.125 p+ K- PHSP; +0.125 n0 anti-K0 PHSP; +0.10 Sigma+ pi- PHSP; +0.10 Sigma- pi+ PHSP; +0.10 Sigma0 pi0 PHSP; +0.0833 Lambda0 pi0 pi0 PHSP; +0.1667 Lambda0 pi+ pi- PHSP; +0.067 Sigma+ pi- pi0 PHSP; +0.067 Sigma- pi+ pi0 PHSP; +0.022 Sigma0 pi0 pi0 PHSP; +0.044 Sigma0 pi+ pi- PHSP; +Enddecay +# +Decay anti-Lambda(1690)0 +0.125 anti-p- K+ PHSP; +0.125 anti-n0 K0 PHSP; +0.10 anti-Sigma- pi+ PHSP; +0.10 anti-Sigma+ pi- PHSP; + +0.10 anti-Sigma0 pi0 PHSP; +0.0833 anti-Lambda0 pi0 pi0 PHSP; +0.1667 anti-Lambda0 pi+ pi- PHSP; + +0.067 anti-Sigma- pi+ pi0 PHSP; +0.067 anti-Sigma+ pi- pi0 PHSP; +0.022 anti-Sigma0 pi0 pi0 PHSP; +0.044 anti-Sigma0 pi+ pi- PHSP; +Enddecay +# +Decay Lambda(1800)0 +0.165 p+ K- PHSP; +0.165 n0 anti-K0 PHSP; + +0.08 Sigma- pi+ PHSP; +0.08 Sigma+ pi- PHSP; +0.08 Sigma0 pi0 PHSP; + +0.003 Sigma*- pi+ PHSP; +0.003 Sigma*+ pi- PHSP; +0.004 Sigma*0 pi0 PHSP; +0.21 p+ K*- PHSP; +0.21 n0 anti-K*0 PHSP; +Enddecay +# +Decay anti-Lambda(1800)0 +0.165 anti-p- K+ PHSP; +0.165 anti-n0 K0 PHSP; +0.08 anti-Sigma+ pi- PHSP; +0.08 anti-Sigma- pi+ PHSP; +0.08 anti-Sigma0 pi0 PHSP; +0.003 anti-Sigma*+ pi- PHSP; +0.003 anti-Sigma*- pi+ PHSP; +0.004 anti-Sigma*0 pi0 PHSP; +0.21 anti-p- K*+ PHSP; +0.21 anti-n0 K*0 PHSP; +Enddecay +# +Decay Lambda(1810)0 +0.165 p+ K- PHSP; +0.165 n0 anti-K0 PHSP; +0.08 Sigma- pi+ PHSP; +0.08 Sigma+ pi- PHSP; + +0.08 Sigma0 pi0 PHSP; +0.003 Sigma*- pi+ PHSP; +0.003 Sigma*+ pi- PHSP; + +0.004 Sigma*0 pi0 PHSP; +0.21 p+ K*- PHSP; +0.21 n0 anti-K*0 PHSP; +Enddecay +# +Decay anti-Lambda(1810)0 +0.165 anti-p- K+ PHSP; +0.165 anti-n0 K0 PHSP; +0.08 anti-Sigma+ pi- PHSP; +0.08 anti-Sigma- pi+ PHSP; +0.08 anti-Sigma0 pi0 PHSP; +0.003 anti-Sigma*+ pi- PHSP; +0.003 anti-Sigma*- pi+ PHSP; +0.004 anti-Sigma*0 pi0 PHSP; +0.21 anti-p- K*+ PHSP; +0.21 anti-n0 K*0 PHSP; +Enddecay +# +Decay Lambda(1820)0 +0.34 p+ K- PHSP; +0.34 n0 anti-K0 PHSP; + +0.06 Sigma- pi+ PHSP; +0.06 Sigma+ pi- PHSP; +0.06 Sigma0 pi0 PHSP; +0.04 Sigma*- pi+ PHSP; +0.04 Sigma*+ pi- PHSP; + +0.04 Sigma*0 pi0 PHSP; +0.01 Lambda0 eta PHSP; +0.003 Sigma+ pi- pi0 PHSP; +0.004 Sigma- pi+ pi0 PHSP; +0.001 Sigma0 pi0 pi0 PHSP; +0.002 Sigma0 pi+ pi- PHSP; +Enddecay +# +Decay anti-Lambda(1820)0 +0.34 anti-p- K+ PHSP; +0.34 anti-n0 K0 PHSP; +0.06 anti-Sigma+ pi- PHSP; +0.06 anti-Sigma- pi+ PHSP; +0.06 anti-Sigma0 pi0 PHSP; +0.04 anti-Sigma*+ pi- PHSP; +0.04 anti-Sigma*- pi+ PHSP; +0.04 anti-Sigma*0 pi0 PHSP; +0.01 anti-Lambda0 eta PHSP; +0.003 anti-Sigma- pi+ pi0 PHSP; +0.004 anti-Sigma+ pi- pi0 PHSP; + +0.001 anti-Sigma0 pi0 pi0 PHSP; +0.002 anti-Sigma0 pi+ pi- PHSP; +Enddecay +# +Decay Lambda(1830)0 +0.05 p+ K- PHSP; +0.05 n0 anti-K0 PHSP; + +0.24 Sigma- pi+ PHSP; +0.24 Sigma+ pi- PHSP; +0.24 Sigma0 pi0 PHSP; + +0.06 Sigma*- pi+ PHSP; +0.06 Sigma*+ pi- PHSP; +0.06 Sigma*0 pi0 PHSP; +Enddecay +# +Decay anti-Lambda(1830)0 +0.05 anti-p- K+ PHSP; +0.05 anti-n0 K0 PHSP; +0.24 anti-Sigma+ pi- PHSP; +0.24 anti-Sigma- pi+ PHSP; +0.24 anti-Sigma0 pi0 PHSP; +0.06 anti-Sigma*+ pi- PHSP; +0.06 anti-Sigma*- pi+ PHSP; +0.06 anti-Sigma*0 pi0 PHSP; +Enddecay +# +# +Decay Sigma(1660)0 +0.07 p+ K- PHSP; +0.07 n0 anti-K0 PHSP; +0.16 Lambda0 pi0 PHSP; + +0.35 Sigma- pi+ PHSP; +0.35 Sigma+ pi- PHSP; +Enddecay +# +Decay anti-Sigma(1660)0 +0.07 anti-p- K+ PHSP; +0.07 anti-n0 K0 PHSP; +0.16 anti-Lambda0 pi0 PHSP; +0.35 anti-Sigma+ pi- PHSP; +0.35 anti-Sigma- pi+ PHSP; +Enddecay +# +Decay Sigma(1670)0 +0.07 p+ K- PHSP; +0.07 n0 anti-K0 PHSP; +0.16 Lambda0 pi0 PHSP; + +0.35 Sigma- pi+ PHSP; +0.35 Sigma+ pi- PHSP; +Enddecay +# +Decay anti-Sigma(1670)0 +0.07 anti-p- K+ PHSP; +0.07 anti-n0 K0 PHSP; +0.16 anti-Lambda0 pi0 PHSP; +0.35 anti-Sigma+ pi- PHSP; +0.35 anti-Sigma- pi+ PHSP; +Enddecay +# +Decay Sigma(1775)0 +0.215 p+ K- PHSP; +0.215 n0 anti-K0 PHSP; +0.20 Lambda0 pi0 PHSP; + +0.02 Sigma- pi+ PHSP; +0.02 Sigma+ pi- PHSP; + +0.055 Sigma*- pi+ PHSP; +0.055 Sigma*+ pi- PHSP; +0.22 Lambda(1520)0 pi0 PHSP; +Enddecay +# +Decay anti-Sigma(1775)0 +0.215 anti-p- K+ PHSP; +0.215 anti-n0 K0 PHSP; +0.20 anti-Lambda0 pi0 PHSP; +0.02 anti-Sigma+ pi- PHSP; +0.02 anti-Sigma- pi+ PHSP; +0.055 anti-Sigma*+ pi- PHSP; +0.055 anti-Sigma*- pi+ PHSP; +0.22 anti-Lambda(1520)0 pi0 PHSP; +Enddecay +Decay Sigma+ +0.5157 p+ pi0 PHSP; +0.4831 n0 pi+ PHSP; +0.0012 p+ gamma PHSP; +Enddecay +Decay anti-Sigma- +0.5157 anti-p- pi0 PHSP; +0.4831 anti-n0 pi- PHSP; +0.0012 anti-p- gamma PHSP; +Enddecay +# +Decay Delta+ +0.6630 p+ pi0 PHSP; +0.3310 n0 pi+ PHSP; +0.0060 p+ gamma PHSP; +Enddecay +Decay anti-Delta- +0.6630 anti-p- pi0 PHSP; +0.3310 anti-n0 pi- PHSP; +0.0060 anti-p- gamma PHSP; +Enddecay +# +Decay Delta++ +1.0000 p+ pi+ PHSP; +Enddecay +Decay anti-Delta-- +1.0000 anti-p- pi- PHSP; +Enddecay +# +Decay Xi*0 +0.3330 Xi0 pi0 PHSP; +0.6670 Xi- pi+ PHSP; +Enddecay +Decay anti-Xi*0 +0.3330 anti-Xi0 pi0 PHSP; +0.6670 anti-Xi+ pi- PHSP; +Enddecay +# +Decay Delta0 +0.3310 p+ pi- PHSP; +0.6630 n0 pi0 PHSP; +0.0060 n0 gamma PHSP; +Enddecay +Decay anti-Delta0 +0.3310 anti-p- pi+ PHSP; +0.6630 anti-n0 pi0 PHSP; +0.0060 anti-n0 gamma PHSP; +Enddecay +# +Decay Delta- +1.0000 n0 pi- PHSP; +Enddecay +Decay anti-Delta+ +1.0000 anti-n0 pi+ PHSP; +Enddecay +# +Decay Sigma- +1.0000 n0 pi- PHSP; +Enddecay +Decay anti-Sigma+ +1.0000 anti-n0 pi+ PHSP; +Enddecay +# +Decay Sigma0 +1.0000 gamma Lambda0 PHSP; +Enddecay +Decay anti-Sigma0 +1.0000 gamma anti-Lambda0 PHSP; +Enddecay +# +Decay Sigma*- +0.8800 Lambda0 pi- PHSP; +0.0600 Sigma0 pi- PHSP; +0.0600 Sigma- pi0 PHSP; +Enddecay +Decay anti-Sigma*+ +0.8800 anti-Lambda0 pi+ PHSP; +0.0600 anti-Sigma0 pi+ PHSP; +0.0600 anti-Sigma+ pi0 PHSP; +Enddecay +# +Decay Sigma*+ +0.8800 Lambda0 pi+ PHSP; +0.0600 Sigma+ pi0 PHSP; +0.0600 Sigma0 pi+ PHSP; +Enddecay +Decay anti-Sigma*- +0.8800 anti-Lambda0 pi- PHSP; +0.0600 anti-Sigma- pi0 PHSP; +0.0600 anti-Sigma0 pi- PHSP; +Enddecay +# +Decay Sigma*0 +0.8800 Lambda0 pi0 PHSP; +0.0600 Sigma+ pi- PHSP; +0.0600 Sigma- pi+ PHSP; +Enddecay +Decay anti-Sigma*0 +0.8800 anti-Lambda0 pi0 PHSP; +0.0600 anti-Sigma- pi+ PHSP; +0.0600 anti-Sigma+ pi- PHSP; +Enddecay +# +Decay Xi0 +1.0000 Lambda0 pi0 PHSP; +Enddecay +Decay anti-Xi0 +1.0000 anti-Lambda0 pi0 PHSP; +Enddecay +# +Decay Xi- +1.0000 Lambda0 pi- PHSP; +Enddecay +Decay anti-Xi+ +1.0000 anti-Lambda0 pi+ PHSP; +Enddecay +# +Decay Xi*- +0.6670 Xi0 pi- PHSP; +0.3330 Xi- pi0 PHSP; +Enddecay +Decay anti-Xi*+ +0.6670 anti-Xi0 pi+ PHSP; +0.3330 anti-Xi+ pi0 PHSP; +Enddecay +# +Decay Omega- +0.6780 Lambda0 K- PHSP; +0.2360 Xi0 pi- PHSP; +0.0860 Xi- pi0 PHSP; +Enddecay +Decay anti-Omega+ +0.6780 anti-Lambda0 K+ PHSP; +0.2360 anti-Xi0 pi+ PHSP; +0.0860 anti-Xi+ pi0 PHSP; +Enddecay +# +# +Decay Sigma_c*0 +1.0000 Lambda_c+ pi- PHSP; +Enddecay +CDecay anti-Sigma_c*0 +# +Decay Sigma_c*+ +1.0000 Lambda_c+ pi0 PHSP; +Enddecay +CDecay anti-Sigma_c*- +# +Decay Sigma_c*++ +1.0000 Lambda_c+ pi+ PHSP; +Enddecay +CDecay anti-Sigma_c*-- +# +Decay Xi_c*0 +0.33 Xi_c0 pi0 PHSP; +0.67 Xi_c+ pi- PHSP; +Enddecay +CDecay anti-Xi_c*0 +# +Decay Xi_c*+ +0.33 Xi_c+ pi0 PHSP; +0.67 Xi_c0 pi+ PHSP; +Enddecay +CDecay anti-Xi_c*- +# +Decay Omega_c0 +1.00000 PYTHIA 84; +Enddecay +# +CDecay anti-Omega_c0 +# +Decay Omega_c*0 +1.0000 Omega_c0 gamma PHSP; +Enddecay +# +CDecay anti-Omega_c*0 +# +Decay Xu0 +# X_u^0 -> u anti-u +# +1.0 u anti-u PYTHIA 11; +Enddecay +Decay Xu+ +# X_u^+ -> u anti-d +# +1.0 u anti-d PYTHIA 11; +Enddecay +CDecay Xu- + +#lange - PYTHIA is making h_c mesons - better add a decay +# channel for them. +Decay h_c +# PRD37, 1210 (1988)------------------------------------------------------ +# Gamma(h_c->J/psi+pi0)/Gamma(psi'->J/psi+pi0)=9.3. +# And assuming Gamma(h_c)_total = 1MeV. +0.00335 J/psi pi0 PHSP; +# +# ccbar modes to suppress added on 06042008 +0.0000 rho0 rho0 PHSP; +0.0000 rho0 omega PHSP; +0.0000 rho0 phi PHSP; +0.0000 rho0 gamma PHSP; +0.0000 omega omega PHSP; +0.0000 omega phi PHSP; +0.0000 omega gamma PHSP; +0.0000 phi phi PHSP; +0.0000 phi gamma PHSP; +0.0000 gamma gamma PHSP; +0.0000 pi0 pi0 PHSP; +0.0000 pi0 eta PHSP; +0.0000 pi0 eta' PHSP; +0.0000 eta eta PHSP; +0.0000 eta eta' PHSP; +0.0000 eta' eta' PHSP; +# +#hep-ph/0205255 ---------------------------------------------------------- +0.377 eta_c gamma HELAMP 1. 0. 1. 0. ; +0.61965 rndmflav anti-rndmflav PYTHIA 12; +Enddecay + +# 12/08/03 RJT Update b-baryon decays... +Decay Lambda_b0 +# SemiLeptonic Decays (inclusive BR = 7.7 +/- 1.8%) + 0.05460 Lambda_c+ e- anti-nu_e PHSP; + 0.01280 Lambda_c(2593)+ e- anti-nu_e PHSP; + 0.00960 Lambda_c(2625)+ e- anti-nu_e PHSP; + 0.00000 Sigma_c0 pi+ e- anti-nu_e PHSP; + 0.00000 Sigma_c+ pi0 e- anti-nu_e PHSP; + 0.00000 Sigma_c++ pi- e- anti-nu_e PHSP; + 0.00000 Sigma_c*0 pi+ e- anti-nu_e PHSP; + 0.00000 Sigma_c*+ pi0 e- anti-nu_e PHSP; + 0.00000 Sigma_c*++ pi- e- anti-nu_e PHSP; +# + 0.05460 Lambda_c+ mu- anti-nu_mu PHSP; + 0.01280 Lambda_c(2593)+ mu- anti-nu_mu PHSP; + 0.00960 Lambda_c(2625)+ mu- anti-nu_mu PHSP; + 0.00000 Sigma_c0 pi+ mu- anti-nu_mu PHSP; + 0.00000 Sigma_c+ pi0 mu- anti-nu_mu PHSP; + 0.00000 Sigma_c++ pi- mu- anti-nu_mu PHSP; + 0.00000 Sigma_c*0 pi+ mu- anti-nu_mu PHSP; + 0.00000 Sigma_c*+ pi0 mu- anti-nu_mu PHSP; + 0.00000 Sigma_c*++ pi- mu- anti-nu_mu PHSP; +# + 0.01720 Lambda_c+ tau- anti-nu_tau PHSP; + 0.00430 Lambda_c(2593)+ tau- anti-nu_tau PHSP; + 0.00320 Lambda_c(2625)+ tau- anti-nu_tau PHSP; + 0.00000 Sigma_c0 pi+ tau- anti-nu_tau PHSP; + 0.00000 Sigma_c+ pi0 tau- anti-nu_tau PHSP; + 0.00000 Sigma_c++ pi- tau- anti-nu_tau PHSP; + 0.00000 Sigma_c*0 pi+ tau- anti-nu_tau PHSP; + 0.00000 Sigma_c*+ pi0 tau- anti-nu_tau PHSP; + 0.00000 Sigma_c*++ pi- tau- anti-nu_tau PHSP; +# Hadronic Decays with Lambda_c+ + 0.00600 Lambda_c+ pi- PHSP; + 0.02200 Lambda_c+ pi- pi+ pi- PHSP; + 0.00055 Lambda_c+ K- PHSP; + 0.02200 Lambda_c+ D_s- PHSP; +# + 0.00047 Lambda0 J/psi PHSP; + 0.00038 Lambda0 psi(2S) PHSP; + 0.00080 n0 D0 PHSP; +# +# Additional decays from hep-ph/9709372 scaled to the Lambda_c0 pi rate + 0.00060 Sigma_c+ pi- PHSP; + 0.00060 Sigma_c0 pi0 PHSP; + 0.00040 Sigma_c0 eta PHSP; + 0.00050 Sigma_c0 eta' PHSP; + 0.00030 Xi_c0 K0 PHSP; + 0.00050 Xi'_c0 K0 PHSP; +# aaa 10/19/05 Do not if this is correct but filling out with inclusives +0.12584 d anti-u d cu_0 PYTHIA 13; +0.05518 d anti-u d cu_1 PYTHIA 13; +0.02057 s anti-u d cu_0 PYTHIA 13; +0.01532 d anti-u s cu_0 PYTHIA 13; +0.01092 d anti-u s cu_1 PYTHIA 13; +0.01996 s anti-c d cu_0 PYTHIA 13; +0.01042 s anti-u d cc_1 PYTHIA 13; +0.00639 d anti-u s cc_1 PYTHIA 13; +0.00838 d anti-u d uu_1 PYTHIA 13; +0.00500 s anti-c d uu_1 PYTHIA 13; +0.09196 c dd_1 PYTHIA 13; +0.13552 d cd_0 PYTHIA 13; +0.13552 d cd_1 PYTHIA 13; +0.02104 s cd_1 PYTHIA 13; +0.02104 s cd_0 PYTHIA 13; +0.02104 d cs_1 PYTHIA 13; +0.01839 s ud_1 PYTHIA 13; +0.01839 d su_0 PYTHIA 13; +0.01839 s ud_1 PYTHIA 13; +0.00357 u dd_1 PYTHIA 13; +0.00168 d ud_0 PYTHIA 13; +0.00168 d ud_1 PYTHIA 13; +Enddecay + +Decay anti-Lambda_b0 +# SemiLeptonic Decays (inclusive BR = 7.7 +/- 1.8%) + 0.05460 anti-Lambda_c- e+ nu_e PHSP; + 0.01280 anti-Lambda_c(2593)- e+ nu_e PHSP; + 0.00960 anti-Lambda_c(2625)- e+ nu_e PHSP; + 0.00000 anti-Sigma_c0 pi- e+ nu_e PHSP; + 0.00000 anti-Sigma_c- pi0 e+ nu_e PHSP; + 0.00000 anti-Sigma_c-- pi+ e+ nu_e PHSP; + 0.00000 anti-Sigma_c*0 pi- e+ nu_e PHSP; + 0.00000 anti-Sigma_c*- pi0 e+ nu_e PHSP; + 0.00000 anti-Sigma_c*-- pi+ e+ nu_e PHSP; +# + 0.05460 anti-Lambda_c- mu+ nu_mu PHSP; + 0.01280 anti-Lambda_c(2593)- mu+ nu_mu PHSP; + 0.00960 anti-Lambda_c(2625)- mu+ nu_mu PHSP; + 0.00000 anti-Sigma_c0 pi- mu+ nu_mu PHSP; + 0.00000 anti-Sigma_c- pi0 mu+ nu_mu PHSP; + 0.00000 anti-Sigma_c-- pi+ mu+ nu_mu PHSP; + 0.00000 anti-Sigma_c*0 pi- mu+ nu_mu PHSP; + 0.00000 anti-Sigma_c*- pi0 mu+ nu_mu PHSP; + 0.00000 anti-Sigma_c*-- pi+ mu+ nu_mu PHSP; +# + 0.01720 anti-Lambda_c- tau+ nu_tau PHSP; + 0.00430 anti-Lambda_c(2593)- tau+ nu_tau PHSP; + 0.00320 anti-Lambda_c(2625)- tau+ nu_tau PHSP; + 0.00000 anti-Sigma_c0 pi- tau+ nu_tau PHSP; + 0.00000 anti-Sigma_c- pi0 tau+ nu_tau PHSP; + 0.00000 anti-Sigma_c-- pi+ tau+ nu_tau PHSP; + 0.00000 anti-Sigma_c*0 pi- tau+ nu_tau PHSP; + 0.00000 anti-Sigma_c*- pi0 tau+ nu_tau PHSP; + 0.00000 anti-Sigma_c*-- pi+ tau+ nu_tau PHSP; +# Hadronic Decays with anti-Lambda_c- + 0.00600 anti-Lambda_c- pi+ PHSP; + 0.02200 anti-Lambda_c- pi+ pi+ pi- PHSP; + 0.00055 anti-Lambda_c- K+ PHSP; + 0.02200 anti-Lambda_c- D_s+ PHSP; +# + 0.00047 anti-Lambda0 J/psi PHSP; + 0.00038 anti-Lambda0 psi(2S) PHSP; + 0.00080 anti-n0 anti-D0 PHSP; +# +# Additional decays from hep-ph/9709372 scaled to the Lambda_c0 pi rate + 0.00060 anti-Sigma_c- pi+ PHSP; + 0.00060 anti-Sigma_c0 pi0 PHSP; + 0.00040 anti-Sigma_c0 eta PHSP; + 0.00050 anti-Sigma_c0 eta' PHSP; + 0.00030 anti-Xi_c0 anti-K0 PHSP; + 0.00050 anti-Xi'_c0 anti-K0 PHSP; +0.12584 u anti-d anti-d anti-cu_0 PYTHIA 13; +0.05518 u anti-d anti-d anti-cu_1 PYTHIA 13; +0.02057 u anti-s anti-d anti-cu_0 PYTHIA 13; +0.01532 u anti-d anti-s anti-cu_0 PYTHIA 13;#2007 changed to fit Lambda_b decy +0.01092 u anti-d anti-s anti-cu_1 PYTHIA 13; +0.01996 c anti-s anti-d anti-cu_0 PYTHIA 13; +0.01042 u anti-s anti-d anti-cc_1 PYTHIA 13; +0.00639 u anti-d anti-s anti-cc_1 PYTHIA 13; +0.00838 u anti-d anti-d anti-uu_1 PYTHIA 13; +0.00500 c anti-s anti-d anti-uu_1 PYTHIA 13; +0.09196 anti-c anti-dd_1 PYTHIA 13; +0.13552 anti-d anti-cd_0 PYTHIA 13; +0.13552 anti-d anti-cd_1 PYTHIA 13; +0.02104 anti-s anti-cd_1 PYTHIA 13; +0.02104 anti-s anti-cd_0 PYTHIA 13; +0.02104 anti-d anti-cs_1 PYTHIA 13; +0.01839 anti-s anti-ud_1 PYTHIA 13; +0.01839 anti-d anti-su_0 PYTHIA 13; +0.01839 anti-s anti-ud_1 PYTHIA 13; +0.00357 anti-u anti-dd_1 PYTHIA 13; +0.00168 anti-d anti-ud_0 PYTHIA 13; +0.00168 anti-d anti-ud_1 PYTHIA 13; +Enddecay + +Decay Xi_b- +# SemiLeptonic Decays + 0.05460 Xi_c0 e- anti-nu_e PHSP; + 0.05460 Xi_c0 mu- anti-nu_mu PHSP; + 0.02000 Xi_c0 tau- anti-nu_tau PHSP; +# Hadronic Decays with Xi_c0 + 0.00600 Xi_c0 pi- PHSP; + 0.02200 Xi_c0 pi- pi+ pi- PHSP; + 0.00055 Xi_c0 K- PHSP; + 0.02200 Xi_c0 D_s- PHSP; + 0.00047 Xi- J/psi PHSP; +# added by D.Litvintsev 12/8/03: + 0.00038 Xi- psi(2S) PHSP; + 0.00018 D0 Lambda0 pi- PHSP; + 0.00020 Sigma_c0 K- PHSP; + 0.00020 Omega_c0 K- PHSP; +# +# aaa 10/19/05 Do not if this is correct but filling out with inclusives +0.38757 d anti-u d cs_0 PYTHIA 13; +0.16995 d anti-u d cs_1 PYTHIA 13; +0.06335 s anti-u d cs_0 PYTHIA 13; +0.00568 d anti-u s cs_1 PYTHIA 13; +0.00797 d anti-u s cs_0 PYTHIA 13; +0.06148 s anti-c d cs_0 PYTHIA 13; +0.06918 d anti-u d cd_0 PYTHIA 13; +0.03999 s anti-c d cd_0 PYTHIA 13; +0.00865 d anti-u d su_0 PYTHIA 13; +0.00500 s anti-c d su_0 PYTHIA 13; +Enddecay + +Decay anti-Xi_b+ +# SemiLeptonic Decays + 0.05460 anti-Xi_c0 e+ nu_e PHSP; + 0.05460 anti-Xi_c0 mu+ nu_mu PHSP; + 0.02000 anti-Xi_c0 tau+ nu_tau PHSP; +# Hadronic Decays with anti-Xi_c0 + 0.00600 anti-Xi_c0 pi+ PHSP; + 0.02200 anti-Xi_c0 pi+ pi+ pi- PHSP; + 0.00055 anti-Xi_c0 K+ PHSP; + 0.02200 anti-Xi_c0 D_s+ PHSP; + 0.00047 anti-Xi+ J/psi PHSP; +# added by D.Litvintsev 12/8/03: + 0.00038 anti-Xi+ psi(2S) PHSP; + 0.00018 anti-D0 anti-Lambda0 pi+ PHSP; + 0.00020 anti-Sigma_c0 K+ PHSP; + 0.00020 anti-Omega_c0 K+ PHSP; +# aaa 10/19/05 Do not if this is correct but filling out with inclusives +0.38757 u anti-d anti-d anti-cs_0 PYTHIA 13; +0.16995 u anti-d anti-d anti-cs_1 PYTHIA 13; +0.06335 u anti-s anti-d anti-cs_0 PYTHIA 13; +0.00568 u anti-d anti-s anti-cs_1 PYTHIA 13; +0.00797 u anti-d anti-s anti-cs_0 PYTHIA 13; +0.06148 c anti-s anti-d anti-cs_0 PYTHIA 13; +0.06918 u anti-d anti-d anti-cd_0 PYTHIA 13; +0.03999 c anti-s anti-d anti-cd_0 PYTHIA 13; +0.00865 u anti-d anti-d anti-su_0 PYTHIA 13; +0.00500 c anti-s anti-d anti-su_0 PYTHIA 13; +Enddecay + +Decay Xi_b0 +# SemiLeptonic Decays + 0.05460 Xi_c+ e- anti-nu_e PHSP; + 0.05460 Xi_c+ mu- anti-nu_mu PHSP; + 0.02000 Xi_c+ tau- anti-nu_tau PHSP; +# Hadronic Decays with Xi_c+ + 0.00600 Xi_c+ pi- PHSP; + 0.02200 Xi_c+ pi- pi+ pi- PHSP; + 0.00055 Xi_c+ K- PHSP; + 0.02200 Xi_c+ D_s- PHSP; + 0.00047 Xi0 J/psi PHSP; +# added by D.Litvintsev 12/8/03: + 0.00020 D0 Lambda0 PHSP; + 0.00010 Lambda_c+ K- PHSP; + 0.00020 Sigma_c0 anti-K0 PHSP; + 0.00020 Omega_c0 K0 PHSP; +# +# Additional decays from hep-ph/9709372 scaled to the Lambda_c0 pi rate + 0.00020 Xi'_c+ pi- PHSP; + 0.00003 Xi_c0 pi0 PHSP; + 0.00015 Xi_c0 eta PHSP; + 0.00004 Xi_c0 eta' PHSP; + 0.00020 Xi'_c0 pi0 PHSP; + 0.00020 Xi'_c0 eta PHSP; + 0.00030 Xi'_c0 eta' PHSP; + 0.00040 Sigma_c+ K- PHSP; +# aaa 10/19/05 Do not if this is correct but filling out with inclusives +0.58591 d anti-u s cu_0 PYTHIA 13; +0.01363 s anti-u s cu_1 PYTHIA 13; +0.09539 s anti-u s cc_1 PYTHIA 13; +0.10900 s anti-u d cu_1 PYTHIA 13; +0.01363 d anti-u d uu_1 PYTHIA 13; +Enddecay + +Decay anti-Xi_b0 + 0.05460 anti-Xi_c- e+ nu_e PHSP; + 0.05460 anti-Xi_c- mu+ nu_mu PHSP; + 0.02000 anti-Xi_c- tau+ nu_tau PHSP; +# Hadronic Decays with anti-Xi_c- + 0.00600 anti-Xi_c- pi+ PHSP; + 0.02200 anti-Xi_c- pi+ pi+ pi- PHSP; + 0.00055 anti-Xi_c- K+ PHSP; + 0.02200 anti-Xi_c- D_s+ PHSP; + 0.00047 anti-Xi0 J/psi PHSP; +# added by D.Litvintsev 12/8/03: + 0.00020 anti-D0 anti-Lambda0 PHSP; + 0.00010 anti-Lambda_c- K+ PHSP; + 0.00020 anti-Sigma_c0 K0 PHSP; + 0.00020 anti-Omega_c0 anti-K0 PHSP; +# +# Additional decays from hep-ph/9709372 scaled to the Lambda_c0 pi rate + 0.00020 anti-Xi'_c- pi+ PHSP; + 0.00003 anti-Xi_c0 pi0 PHSP; + 0.00015 anti-Xi_c0 eta PHSP; + 0.00004 anti-Xi_c0 eta' PHSP; + 0.00020 anti-Xi'_c0 pi0 PHSP; + 0.00020 anti-Xi'_c0 eta PHSP; + 0.00030 anti-Xi'_c0 eta' PHSP; + 0.00040 anti-Sigma_c- K+ PHSP; +# aaa 10/19/05 Do not if this is correct but filling out with inclusives +0.58591 u anti-d anti-s anti-cu_0 PYTHIA 13; +0.01363 u anti-s anti-s anti-cu_1 PYTHIA 13; +0.09539 u anti-s anti-s anti-cc_1 PYTHIA 13; +0.10900 u anti-s anti-d anti-cu_1 PYTHIA 13; +0.01363 u anti-d anti-d anti-uu_1 PYTHIA 13; +Enddecay + +# added by D.Litvintsev 12/8/03: +Decay Omega_b- +# SemiLeptonic Decays + 0.05460 Omega_c0 e- anti-nu_e PHSP; + 0.05460 Omega_c0 mu- anti-nu_mu PHSP; + 0.02000 Omega_c0 tau- anti-nu_tau PHSP; +# Hadronic Decays with Xi_c+ + 0.00600 Omega_c0 pi- PHSP; + 0.02200 Omega_c0 pi- pi+ pi- PHSP; + 0.00055 Omega_c0 K- PHSP; + 0.02200 Omega_c0 D_s- PHSP; + 0.0011 D0 Xi- PHSP; +# + 0.00047 Omega- J/psi PHSP; + 0.00038 Omega- psi(2S) PHSP; +# aaa 10/19/05 Do not if this is correct but filling out with inclusives +0.68192 d anti-u s cs_0 PYTHIA 13; +0.10910 d anti-u d cs_0 PYTHIA 13; +0.02728 d anti-u s su_0 PYTHIA 13; +Enddecay + +Decay anti-Omega_b+ +# SemiLeptonic Decays + 0.05460 anti-Omega_c0 e+ nu_e PHSP; + 0.05460 anti-Omega_c0 mu+ nu_mu PHSP; + 0.02000 anti-Omega_c0 tau+ nu_tau PHSP; +# Hadronic Decays with Xi_c+ + 0.00600 anti-Omega_c0 pi+ PHSP; + 0.02200 anti-Omega_c0 pi+ pi+ pi- PHSP; + 0.00055 anti-Omega_c0 K+ PHSP; + 0.02200 anti-Omega_c0 D_s+ PHSP; + 0.0011 anti-D0 anti-Xi+ PHSP; +# + 0.00047 anti-Omega+ J/psi PHSP; + 0.00038 anti-Omega+ psi(2S) PHSP; +# aaa 10/19/05 Do not if this is correct but filling out with inclusives +0.68192 u anti-d anti-s anti-cs_0 PYTHIA 13; +0.10910 u anti-d anti-d anti-cs_0 PYTHIA 13; +0.02728 u anti-d anti-s anti-su_0 PYTHIA 13; +Enddecay + + +Decay Sigma_b+ + 1.00000 Lambda_b0 pi+ PHSP; +Enddecay +Decay anti-Sigma_b- + 1.00000 anti-Lambda_b0 pi- PHSP; +Enddecay + +Decay Sigma_b- + 1.00000 Lambda_b0 pi- PHSP; +Enddecay +Decay anti-Sigma_b+ + 1.00000 anti-Lambda_b0 pi+ PHSP; +Enddecay + +Decay Sigma_b0 + 1.00000 Lambda_b0 gamma PHOTOS PHSP; +Enddecay +Decay anti-Sigma_b0 + 1.00000 anti-Lambda_b0 gamma PHOTOS PHSP; +Enddecay + +Decay Sigma_b*0 +1.00000 Lambda_b0 pi0 PHSP; +Enddecay + +Decay anti-Sigma_b*0 +1.00000 anti-Lambda_b0 pi0 PHSP; +Enddecay + +Decay Sigma_b*+ +1.00000 Lambda_b0 pi+ PHSP; +Enddecay + +Decay anti-Sigma_b*- +1.00000 anti-Lambda_b0 pi- PHSP; +Enddecay + +Decay Sigma_b*- +1.00000 Lambda_b0 pi- PHSP; +Enddecay + +Decay anti-Sigma_b*+ +1.00000 anti-Lambda_b0 pi+ PHSP; +Enddecay + +Decay Xi_b*- +1.00000 Xi_b- gamma PHOTOS PHSP; +Enddecay + +Decay anti-Xi_b*+ +1.00000 anti-Xi_b+ gamma PHOTOS PHSP; +Enddecay + +Decay Xi_b*0 +1.00000 Xi_b0 gamma PHOTOS PHSP; +Enddecay + +Decay anti-Xi_b*0 +1.00000 anti-Xi_b0 gamma PHOTOS PHSP; +Enddecay + +Decay Xi'_b0 +1.00000 Xi_b0 gamma PHOTOS PHSP; +Enddecay + +Decay anti-Xi'_b0 +1.00000 anti-Xi_b0 gamma PHOTOS PHSP; +Enddecay + +Decay Xi'_b- +1.00000 Xi_b- gamma PHOTOS PHSP; +Enddecay + +Decay anti-Xi'_b+ +1.00000 anti-Xi_b+ gamma PHOTOS PHSP; +Enddecay + +Decay anti-Omega_b*+ +1.00000 anti-Omega_b+ gamma PHOTOS PHSP; +Enddecay + +Decay Omega_b*- +1.00000 Omega_b- gamma PHOTOS PHSP; +Enddecay + + +# +# B_c Mesons +# + +Decay B_c- +0.01600 tau- anti-nu_tau SLN; +# +# SemiLeptonic Decays +0.01900 J/psi e- anti-nu_e PHOTOS PHSP; +0.00094 psi(2S) e- anti-nu_e PHOTOS PHSP; +0.00750 eta_c e- anti-nu_e PHOTOS PHSP; +0.00020 eta_c(2S) e- anti-nu_e PHOTOS PHSP; +0.00004 anti-D0 e- anti-nu_e PHOTOS PHSP; +0.00018 anti-D*0 e- anti-nu_e PHOTOS PHSP; +0.04030 anti-B_s0 e- anti-nu_e PHOTOS PHSP; +0.05060 anti-B_s*0 e- anti-nu_e PHOTOS PHSP; +0.00340 anti-B0 e- anti-nu_e PHOTOS PHSP; +0.00580 anti-B*0 e- anti-nu_e PHOTOS PHSP; +# +0.01900 J/psi mu- anti-nu_mu PHOTOS PHSP; +0.00094 psi(2S) mu- anti-nu_mu PHOTOS PHSP; +0.00750 eta_c mu- anti-nu_mu PHOTOS PHSP; +0.00020 eta_c(2S) mu- anti-nu_mu PHOTOS PHSP; +0.00004 anti-D0 mu- anti-nu_mu PHOTOS PHSP; +0.00018 anti-D*0 mu- anti-nu_mu PHOTOS PHSP; +0.04030 anti-B_s0 mu- anti-nu_mu PHOTOS PHSP; +0.05060 anti-B_s*0 mu- anti-nu_mu PHOTOS PHSP; +0.00340 anti-B0 mu- anti-nu_mu PHOTOS PHSP; +0.00580 anti-B*0 mu- anti-nu_mu PHOTOS PHSP; +# +0.00480 J/psi tau- anti-nu_tau PHSP; +0.00008 psi(2S) tau- anti-nu_tau PHSP; +0.00230 eta_c tau- anti-nu_tau PHSP; +0.000016 eta_c(2S) tau- anti-nu_tau PHSP; +0.00002 anti-D0 tau- anti-nu_tau PHSP; +0.00008 anti-D*0 tau- anti-nu_tau PHSP; +# +# +# Hadronic Decays +0.00200 eta_c pi- PHSP; +0.00420 rho- eta_c SVS; +0.00013 eta_c K- PHSP; +0.00020 K*- eta_c SVS; +0.00130 J/psi pi- SVS; +0.00400 J/psi rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00011 J/psi K- SVS; +0.00022 J/psi K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +0.000053 D- D0 PHSP; +0.000075 D*0 D- SVS; +0.000049 D*- D0 SVS; +0.00033 D*- D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0000048 D_s- D0 PHSP; +0.0000071 D*0 D_s- SVS; +0.0000045 D_s*- D0 SVS; +0.000026 D_s*- D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +0.0000003 D- anti-D0 PHSP; +0.0000003 anti-D*0 D- SVS; +0.0000004 D*- anti-D0 SVS; +0.0000016 anti-D*0 D*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0000066 D_s- anti-D0 PHSP; +0.0000063 anti-D*0 D_s- SVS; +0.0000085 D_s*- anti-D0 SVS; +0.0000404 D_s*- anti-D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +0.00280 eta_c D_s- PHSP; +0.00270 D_s*- eta_c SVS; +0.00015 eta_c D- PHSP; +0.00010 D*- eta_c SVS; +0.00170 J/psi D_s- SVS; +0.00670 J/psi D_s*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00009 J/psi D- SVS; +0.00028 J/psi D*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +0.16400 anti-B_s0 pi- PHSP; +0.07200 rho- anti-B_s0 SVS; +0.01060 anti-B_s0 K- PHSP; +0.00000 K*- anti-B_s0 SVS; +0.06500 anti-B_s*0 pi- SVS; +0.20200 anti-B_s*0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00370 anti-B_s*0 K- SVS; +0.00000 anti-B_s*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.01060 anti-B0 pi- PHSP; +0.00960 rho- anti-B0 SVS; +0.00070 anti-B0 K- PHSP; +0.00015 K*- anti-B0 SVS; +0.00950 anti-B*0 pi- SVS; +0.02570 anti-B*0 rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00055 anti-B*0 K- SVS; +0.00058 anti-B*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00037 B- pi0 PHSP; +0.00034 rho0 B- SVS; +0.01980 B- K0 PHSP; +0.00430 K*0 B- SVS; +0.00033 B*- pi0 SVS; +0.00090 B*- rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.01600 B*- K0 SVS; +0.01670 B*- K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +# ash 10/27/03 Do not if this is correct but filling out with unknown cs +0.0200230 cs_0 anti-uu_1 PYTHIA 23; +0.0400470 cs_1 anti-uu_1 PYTHIA 23; +# +Enddecay + +# 09/15/03 A. Sanchez: Using BR's from hep-ph/0308214 +# +# Total Br = 0.939865 + .06135 cs +Decay B_c+ +0.01600 tau+ nu_tau SLN; +# +# SemiLeptonic Decays +0.01900 J/psi e+ nu_e PHOTOS PHSP; +0.00094 psi(2S) e+ nu_e PHOTOS PHSP; +0.00750 eta_c e+ nu_e PHOTOS PHSP; +0.00020 eta_c(2S) e+ nu_e PHOTOS PHSP; +0.00004 D0 e+ nu_e PHOTOS PHSP; +0.00018 D*0 e+ nu_e PHOTOS PHSP; +0.04030 B_s0 e+ nu_e PHOTOS PHSP; +0.05060 B_s*0 e+ nu_e PHOTOS PHSP; +0.00340 B0 e+ nu_e PHOTOS PHSP; +0.00580 B*0 e+ nu_e PHOTOS PHSP; +# +0.01900 J/psi mu+ nu_mu PHOTOS PHSP; +0.00094 psi(2S) mu+ nu_mu PHOTOS PHSP; +0.00750 eta_c mu+ nu_mu PHOTOS PHSP; +0.00020 eta_c(2S) mu+ nu_mu PHOTOS PHSP; +0.00004 D0 mu+ nu_mu PHOTOS PHSP; +0.00018 D*0 mu+ nu_mu PHOTOS PHSP; +0.04030 B_s0 mu+ nu_mu PHOTOS PHSP; +0.05060 B_s*0 mu+ nu_mu PHOTOS PHSP; +0.00340 B0 mu+ nu_mu PHOTOS PHSP; +0.00580 B*0 mu+ nu_mu PHOTOS PHSP; +# +0.00480 J/psi tau+ nu_tau PHSP; +0.00008 psi(2S) tau+ nu_tau PHSP; +0.00230 eta_c tau+ nu_tau PHSP; +0.000016 eta_c(2S) tau+ nu_tau PHSP; +0.00002 D0 tau+ nu_tau PHSP; +0.00008 D*0 tau+ nu_tau PHSP; +# +# Hadronic Decays +0.00200 eta_c pi+ PHSP; +0.00420 rho+ eta_c SVS; +0.00013 eta_c K+ PHSP; +0.00020 K*+ eta_c SVS; +0.00130 J/psi pi+ SVS; +0.00400 J/psi rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00011 J/psi K+ SVS; +0.00022 J/psi K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +0.000053 D+ anti-D0 PHSP; +0.000075 anti-D*0 D+ SVS; +0.000049 D*+ anti-D0 SVS; +0.00033 D*+ anti-D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0000048 D_s+ anti-D0 PHSP; +0.0000071 anti-D*0 D_s+ SVS; +0.0000045 D_s*+ anti-D0 SVS; +0.000026 D_s*+ anti-D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +0.0000003 D+ D0 PHSP; +0.0000003 D*0 D+ SVS; +0.0000004 D*+ D0 SVS; +0.0000016 D*0 D*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.0000066 D_s+ D0 PHSP; +0.0000063 D*0 D_s+ SVS; +0.0000085 D_s*+ D0 SVS; +0.0000404 D_s*+ D*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +0.00280 eta_c D_s+ PHSP; +0.00270 D_s*+ eta_c SVS; +0.00015 eta_c D+ PHSP; +0.00010 D*+ eta_c SVS; +0.00170 J/psi D_s+ SVS; +0.00670 J/psi D_s*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00009 J/psi D+ SVS; +0.00028 J/psi D*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +0.16400 B_s0 pi+ PHSP; +0.07200 rho+ B_s0 SVS; +0.01060 B_s0 K+ PHSP; +0.00000 K*+ B_s0 SVS; +0.06500 B_s*0 pi+ SVS; +0.20200 B_s*0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00370 B_s*0 K+ SVS; +0.00000 B_s*0 K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.01060 B0 pi+ PHSP; +0.00960 rho+ B0 SVS; +0.00070 B0 K+ PHSP; +0.00015 K*+ B0 SVS; +0.00950 B*0 pi+ SVS; +0.02570 B*0 rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00055 B*0 K+ SVS; +0.00058 B*0 K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00037 B+ pi0 PHSP; +0.00034 rho0 B+ SVS; +0.01980 B+ anti-K0 PHSP; +0.00430 anti-K*0 B+ SVS; +0.00033 B*+ pi0 SVS; +0.00090 B*+ rho0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.01600 B*+ anti-K0 SVS; +0.01670 B*+ anti-K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +# +# ash 10/27/03 Do not if this is correct but filling out with unknown cs +0.020023 anti-cs_0 uu_1 PYTHIA 23; +0.0400470 anti-cs_1 uu_1 PYTHIA 23; +# +Enddecay + + +# Add excited Lambda_c decays (R.J. Tesarek 12/09/03) +# Just a guess for the last three BR [Lambda_c(2593)+]. +Decay Lambda_c(2593)+ + 0.24000 Sigma_c++ pi- PHSP; + 0.24000 Sigma_c0 pi+ PHSP; + 0.18000 Lambda_c+ pi+ pi- PHSP; + 0.24000 Sigma_c+ pi0 PHSP; + 0.09000 Lambda_c+ pi0 pi0 PHSP; + 0.01000 Lambda_c+ gamma PHSP; +Enddecay +Decay anti-Lambda_c(2593)- + 0.24000 anti-Sigma_c-- pi+ PHSP; + 0.24000 anti-Sigma_c0 pi- PHSP; + 0.18000 anti-Lambda_c- pi- pi+ PHSP; + 0.24000 anti-Sigma_c- pi0 PHSP; + 0.09000 anti-Lambda_c- pi0 pi0 PHSP; + 0.01000 anti-Lambda_c- gamma PHSP; +Enddecay +# +Decay Lambda_c(2625)+ + 0.66000 Lambda_c+ pi+ pi- PHSP; + 0.33000 Lambda_c+ pi0 pi0 PHSP; + 0.01000 Lambda_c+ gamma PHSP; +Enddecay +Decay anti-Lambda_c(2625)- + 0.66000 anti-Lambda_c- pi- pi+ PHSP; + 0.33000 anti-Lambda_c- pi0 pi0 PHSP; + 0.01000 anti-Lambda_c- gamma PHSP; +Enddecay + +Decay gammaFSR +1.0000 gamma PHSP; +Enddecay + +CopyDecay phi_A phi +CopyDecay f_0_A f_0 +CopyDecay f'_0_A f'_0 +CopyDecay f_2_A f_2 + +RemoveDecay phi_A +K+ K-; +Enddecay +RemoveDecay f_0_A +K+ K-; +Enddecay +RemoveDecay f'_0_A +K+ K-; +Enddecay +RemoveDecay f_2_A +K+ K-; +Enddecay + + +End + + + + diff --git a/TEvtGen/EvtGen/DecayTable/BTOELE.DEC b/TEvtGen/EvtGen/DecayTable/BTOELE.DEC new file mode 100644 index 00000000000..e1fc60f7166 --- /dev/null +++ b/TEvtGen/EvtGen/DecayTable/BTOELE.DEC @@ -0,0 +1,326 @@ +## +Define dm_incohMix_B_s0 0.0 +Define dm_incohMix_B0 0.0 +Define dm_incohMix_Lambda_b0 0.0 +Define dm_incohMix_B- 0.0 +Define dm_incohMix_B_c- 0.0 +Define dm_incohMix_Xi_b0 0.0 +Define dm_incohMix_Xi_b- 0.0 +Define dm_incohMix_Omega_b- 0.0 + +# +ModelAlias VubHybridB0 VUBHYBRID 4.62 2.27 0.22 8 8 8 + 0.28 1.40 1.60 1.80 2.00 2.50 3.00 3.50 + 0.00 2.50 5.00 7.50 10.00 12.50 15.00 20.00 + 0.00 0.50 1.00 1.25 1.50 1.75 2.00 2.25 + 0.00000 1.2059 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.09098 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.47335 1.21021 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.52695 1.21011 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.6304 1.21096 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.33327 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.54178 1.20886 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.59143 1.20802 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.69332 1.20698 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.66811 1.20755 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.34624 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.23645 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.53769 1.21089 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.63768 1.20843 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.71713 1.20869 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.75566 1.20778 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.74831 1.20916 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.21312 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.62594 1.20926 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.5902 1.20516 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.68809 1.20016 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.78229 1.20459 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.82156 1.20561 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.72422 1.20485 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.00423 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.55708 1.20977 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.61225 1.20629 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.66904 1.20049 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.72567 1.20029 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.78501 1.19808 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.83037 1.19609 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.59537 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.00000 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.45962 1.20645 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.53276 1.20083 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.57906 1.19669 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.68263 1.19458 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.74222 1.19771 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 + 0.78307 1.19479 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.58714 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.19489 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.24451 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.14704 1.20472 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.42163 1.19849 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 + 0.37319 1.18877 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 + 0.38655 1.1995 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.34297 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.31299 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.57067 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.57067 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995; + +# Hybrid weights for charged B -> Xu l nu decays +ModelAlias VubHybridBp VUBHYBRID 4.62 2.27 0.22 8 8 8 + 0.28 1.40 1.60 1.80 2.00 2.50 3.00 3.50 + 0.00 2.50 5.00 7.50 10.00 12.50 15.00 20.00 + 0.00 0.50 1.00 1.25 1.50 1.75 2.00 2.25 + 0.00000 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.00000 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.11287 1.26974 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.10819 1.26929 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.27133 1.26671 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.17256 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.18216 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.32091 1.26953 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.52924 1.26988 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.51586 1.26755 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.26794 1.27029 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.21166 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.29627 1.26757 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.52168 1.26788 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.5675 1.26647 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.62174 1.26467 1.27029 1.27029 0.9986 0.9986 0.9986 0.9986 + 0.00536 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.38235 1.2678 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.44511 1.26686 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.54476 1.26672 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.66852 1.26707 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.64859 1.26542 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.53664 1.2536 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.00000 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.22558 1.26822 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.38409 1.26531 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.52891 1.26284 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.65141 1.26648 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.70896 1.26227 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.79827 1.26101 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.4274 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.08636 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.28546 1.26121 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.40621 1.26584 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.58209 1.26637 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.61119 1.26424 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.70714 1.26297 1.27029 1.27029 0.9986 0.9986 0.9986 0.9986 + 0.73926 1.25781 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.53898 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.52061 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.00000 1.26726 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.16996 1.2649 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.23334 1.2534 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.25078 1.26036 1.27029 1.27029 0.9986 0.9986 0.9986 0.9986 + 0.27805 1.25917 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.27337 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.18235 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.84654 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.84654 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986; + +# +Decay B0 +0.0560 D*- e+ nu_e PHOTOS HQET 0.92 1.18 0.72; +0.0210 D- e+ nu_e PHOTOS ISGW2; +0.0056 D_1- e+ nu_e PHOTOS ISGW2; +0.0020 D_0*- e+ nu_e PHOTOS ISGW2; +0.0037 D'_1- e+ nu_e PHOTOS ISGW2; +0.0037 D_2*- e+ nu_e PHOTOS ISGW2; +0.0010 D*- pi0 e+ nu_e PHOTOS GOITY_ROBERTS; +0.0020 anti-D*0 pi- e+ nu_e PHOTOS GOITY_ROBERTS; +0.0030 D- pi0 e+ nu_e PHOTOS GOITY_ROBERTS; +0.0060 anti-D0 pi- e+ nu_e PHOTOS GOITY_ROBERTS; + +0.000180 pi- e+ nu_e PHOTOS ISGW2; +0.000260 rho- e+ nu_e PHOTOS ISGW2; +0.000165 a_1- e+ nu_e PHOTOS ISGW2; +0.000102 b_1- e+ nu_e PHOTOS ISGW2; +0.000014 a_0- e+ nu_e PHOTOS ISGW2; +0.000014 a_2- e+ nu_e PHOTOS ISGW2; + + +#0.001892 Xu- e+ nu_e PHOTOS VubHybridB0; +Enddecay + +Decay anti-B0 +0.0560 D*+ e- anti-nu_e PHOTOS HQET 0.92 1.18 0.72; +0.0210 D+ e- anti-nu_e PHOTOS ISGW2; +0.0056 D_1+ e- anti-nu_e PHOTOS ISGW2; +0.0020 D_0*+ e- anti-nu_e PHOTOS ISGW2; +0.0037 D'_1+ e- anti-nu_e PHOTOS ISGW2; +0.0037 D_2*+ e- anti-nu_e PHOTOS ISGW2; +0.0010 D*+ pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0020 D*0 pi+ e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0030 D+ pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0060 D0 pi+ e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.000180 pi+ e- anti-nu_e PHOTOS ISGW2; +0.000260 rho+ e- anti-nu_e PHOTOS ISGW2; +0.000165 a_1+ e- anti-nu_e PHOTOS ISGW2; +0.000102 b_1+ e- anti-nu_e PHOTOS ISGW2; +0.000014 a_0+ e- anti-nu_e PHOTOS ISGW2; +0.000014 a_2+ e- anti-nu_e PHOTOS ISGW2; + +#0.001892 Xu+ e- anti-nu_e PHOTOS VubHybridB0; +Enddecay + +Decay B+ +0.0560 anti-D*0 e+ nu_e PHOTOS HQET 0.92 1.18 0.72; +0.0210 anti-D0 e+ nu_e PHOTOS ISGW2; +0.0056 anti-D_10 e+ nu_e PHOTOS ISGW2; +0.0020 anti-D_0*0 e+ nu_e PHOTOS ISGW2; +0.0037 anti-D'_10 e+ nu_e PHOTOS ISGW2; +0.0037 anti-D_2*0 e+ nu_e PHOTOS ISGW2; +0.0020 D*- pi+ e+ nu_e PHOTOS GOITY_ROBERTS; +0.0010 anti-D*0 pi0 e+ nu_e PHOTOS GOITY_ROBERTS; +0.0060 D- pi+ e+ nu_e PHOTOS GOITY_ROBERTS; +0.0030 anti-D0 pi0 e+ nu_e PHOTOS GOITY_ROBERTS; + +0.000090 pi0 e+ nu_e PHOTOS ISGW2; +0.000030 eta e+ nu_e PHOTOS ISGW2; +0.000130 rho0 e+ nu_e PHOTOS ISGW2; +0.000130 omega e+ nu_e PHOTOS ISGW2; +0.000060 eta' e+ nu_e PHOTOS ISGW2; +0.000082 a_10 e+ nu_e PHOTOS ISGW2; +0.000007 a_20 e+ nu_e PHOTOS ISGW2; +0.000048 b_10 e+ nu_e PHOTOS ISGW2; +0.000007 a_00 e+ nu_e PHOTOS ISGW2; +0.000004 f_0 e+ nu_e PHOTOS ISGW2; +0.000004 f'_0 e+ nu_e PHOTOS ISGW2; +0.000041 f_1 e+ nu_e PHOTOS ISGW2; +0.000041 f'_1 e+ nu_e PHOTOS ISGW2; +0.000024 h_1 e+ nu_e PHOTOS ISGW2; +0.000024 h'_1 e+ nu_e PHOTOS ISGW2; +0.000004 f_2 e+ nu_e PHOTOS ISGW2; +0.000004 f'_2 e+ nu_e PHOTOS ISGW2; +#0.001948 Xu0 e+ nu_e PHOTOS VubHybridBp; +Enddecay + +Decay B- +# +# b -> c semileptonic +# +0.0560 D*0 e- anti-nu_e PHOTOS HQET 0.92 1.18 0.72; +0.0210 D0 e- anti-nu_e PHOTOS ISGW2; +0.0056 D_10 e- anti-nu_e PHOTOS ISGW2; +0.0020 D_0*0 e- anti-nu_e PHOTOS ISGW2; +0.0037 D'_10 e- anti-nu_e PHOTOS ISGW2; +0.0037 D_2*0 e- anti-nu_e PHOTOS ISGW2; +0.0020 D*+ pi- e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0010 D*0 pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0060 D+ pi- e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0030 D0 pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; + +0.000090 pi0 e- anti-nu_e PHOTOS ISGW2; +0.000030 eta e- anti-nu_e PHOTOS ISGW2; +0.000130 rho0 e- anti-nu_e PHOTOS ISGW2; +0.000130 omega e- anti-nu_e PHOTOS ISGW2; +0.000060 eta' e- anti-nu_e PHOTOS ISGW2; +0.000082 a_10 e- anti-nu_e PHOTOS ISGW2; +0.000007 a_20 e- anti-nu_e PHOTOS ISGW2; +0.000048 b_10 e- anti-nu_e PHOTOS ISGW2; +0.000007 a_00 e- anti-nu_e PHOTOS ISGW2; +0.000004 f_0 e- anti-nu_e PHOTOS ISGW2; +0.000004 f'_0 e- anti-nu_e PHOTOS ISGW2; +0.000041 f_1 e- anti-nu_e PHOTOS ISGW2; +0.000041 f'_1 e- anti-nu_e PHOTOS ISGW2; +0.000024 h_1 e- anti-nu_e PHOTOS ISGW2; +0.000024 h'_1 e- anti-nu_e PHOTOS ISGW2; +0.000004 f_2 e- anti-nu_e PHOTOS ISGW2; +0.000004 f'_2 e- anti-nu_e PHOTOS ISGW2; + +#0.001948 Xu0 e- anti-nu_e PHOTOS VubHybridBp; +Enddecay + +Decay B_s0 +0.0210 D_s- e+ nu_e PHOTOS ISGW2; +0.0490 D_s*- e+ nu_e PHOTOS ISGW2; +0.0040 D_s1- e+ nu_e PHOTOS ISGW2; +0.0040 D_s0*- e+ nu_e PHOTOS ISGW2; +0.0070 D'_s1- e+ nu_e PHOTOS ISGW2; +0.0070 D_s2*- e+ nu_e PHOTOS ISGW2; +Enddecay + +Decay anti-B_s0 +# b --> c (l nu) +# Sum = 24.5% +0.0210 D_s+ e- anti-nu_e PHOTOS ISGW2; +0.0490 D_s*+ e- anti-nu_e PHOTOS ISGW2; +0.0040 D_s1+ e- anti-nu_e PHOTOS ISGW2; +0.0040 D_s0*+ e- anti-nu_e PHOTOS ISGW2; +0.0070 D'_s1+ e- anti-nu_e PHOTOS ISGW2; +0.0070 D_s2*+ e- anti-nu_e PHOTOS ISGW2; +Enddecay + +Decay Lambda_b0 +0.05460 Lambda_c+ e- anti-nu_e PHSP; +Enddecay + +Decay anti-Lambda_b0 +# SemiLeptonic Decays (inclusive BR = 7.7 +/- 1.8%) + 0.05460 anti-Lambda_c- e+ nu_e PHSP; +Enddecay + +Decay Xi_b- +# SemiLeptonic Decays + 0.05460 Xi_c0 e- anti-nu_e PHSP; +Enddecay + + +Decay anti-Xi_b+ +# SemiLeptonic Decays + 0.05460 anti-Xi_c0 e+ nu_e PHSP; +Enddecay + +Decay Xi_b0 +# SemiLeptonic Decays + 0.05460 Xi_c+ e- anti-nu_e PHSP; +Enddecay + +Decay anti-Xi_b0 + 0.05460 anti-Xi_c- e+ nu_e PHSP; +Enddecay + +Decay Omega_b- +# SemiLeptonic Decays + 0.05460 Omega_c0 e- anti-nu_e PHSP; +Enddecay + +Decay anti-Omega_b+ +# SemiLeptonic Decays + 0.05460 anti-Omega_c0 e+ nu_e PHSP; +Enddecay + +End + diff --git a/TEvtGen/EvtGen/DecayTable/BTOELEold.DEC b/TEvtGen/EvtGen/DecayTable/BTOELEold.DEC new file mode 100644 index 00000000000..2e02702707a --- /dev/null +++ b/TEvtGen/EvtGen/DecayTable/BTOELEold.DEC @@ -0,0 +1,329 @@ +## +Define dm_incohMix_B_s0 0.0 +Define dm_incohMix_B0 0.0 +Define dm_incohMix_Lambda_b0 0.0 +Define dm_incohMix_B- 0.0 +Define dm_incohMix_B_c- 0.0 +Define dm_incohMix_Xi_b0 0.0 +Define dm_incohMix_Xi_b- 0.0 +Define dm_incohMix_Omega_b- 0.0 + +# +ModelAlias VubHybridB0 VUBHYBRID 4.62 2.27 0.22 8 8 8 + 0.28 1.40 1.60 1.80 2.00 2.50 3.00 3.50 + 0.00 2.50 5.00 7.50 10.00 12.50 15.00 20.00 + 0.00 0.50 1.00 1.25 1.50 1.75 2.00 2.25 + 0.00000 1.2059 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.09098 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.47335 1.21021 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.52695 1.21011 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.6304 1.21096 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.33327 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.54178 1.20886 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.59143 1.20802 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.69332 1.20698 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.66811 1.20755 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.34624 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.23645 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.53769 1.21089 1.21241 1.21241 1.21241 1.21241 1.21241 1.21241 + 0.63768 1.20843 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.71713 1.20869 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.75566 1.20778 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.74831 1.20916 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.21312 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.62594 1.20926 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.5902 1.20516 1.21241 1.21241 1.21241 1.21241 1.21241 0.99995 + 0.68809 1.20016 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.78229 1.20459 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.82156 1.20561 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.72422 1.20485 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.00423 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.55708 1.20977 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.61225 1.20629 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.66904 1.20049 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.72567 1.20029 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.78501 1.19808 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.83037 1.19609 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.59537 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.00000 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.45962 1.20645 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.53276 1.20083 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 + 0.57906 1.19669 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.68263 1.19458 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.74222 1.19771 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 + 0.78307 1.19479 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.58714 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.19489 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.24451 1.21241 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.14704 1.20472 1.21241 1.21241 1.21241 0.99995 0.99995 0.99995 + 0.42163 1.19849 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 + 0.37319 1.18877 1.21241 1.21241 0.99995 0.99995 0.99995 0.99995 + 0.38655 1.1995 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.34297 1.21241 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.31299 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.57067 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 + 0.57067 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995 0.99995; + +# Hybrid weights for charged B -> Xu l nu decays +ModelAlias VubHybridBp VUBHYBRID 4.62 2.27 0.22 8 8 8 + 0.28 1.40 1.60 1.80 2.00 2.50 3.00 3.50 + 0.00 2.50 5.00 7.50 10.00 12.50 15.00 20.00 + 0.00 0.50 1.00 1.25 1.50 1.75 2.00 2.25 + 0.00000 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.00000 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.11287 1.26974 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.10819 1.26929 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.27133 1.26671 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.17256 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.18216 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.32091 1.26953 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.52924 1.26988 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.51586 1.26755 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.26794 1.27029 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.21166 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 1.27029 + 0.29627 1.26757 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.52168 1.26788 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.5675 1.26647 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.62174 1.26467 1.27029 1.27029 0.9986 0.9986 0.9986 0.9986 + 0.00536 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.38235 1.2678 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.44511 1.26686 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.54476 1.26672 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.66852 1.26707 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.64859 1.26542 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.53664 1.2536 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.00000 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.22558 1.26822 1.27029 1.27029 1.27029 1.27029 1.27029 0.9986 + 0.38409 1.26531 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.52891 1.26284 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.65141 1.26648 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.70896 1.26227 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.79827 1.26101 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.4274 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.08636 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.28546 1.26121 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.40621 1.26584 1.27029 1.27029 1.27029 1.27029 0.9986 0.9986 + 0.58209 1.26637 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.61119 1.26424 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.70714 1.26297 1.27029 1.27029 0.9986 0.9986 0.9986 0.9986 + 0.73926 1.25781 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.53898 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.52061 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.00000 1.26726 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.16996 1.2649 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.23334 1.2534 1.27029 1.27029 1.27029 0.9986 0.9986 0.9986 + 0.25078 1.26036 1.27029 1.27029 0.9986 0.9986 0.9986 0.9986 + 0.27805 1.25917 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.27337 1.27029 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.18235 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.84654 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 + 0.84654 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986 0.9986; + +# +Decay B0 +0.0560 D*- e+ nu_e PHOTOS HQET 0.92 1.18 0.72; +0.0210 D- e+ nu_e PHOTOS ISGW2; +0.0056 D_1- e+ nu_e PHOTOS ISGW2; +0.0020 D_0*- e+ nu_e PHOTOS ISGW2; +0.0037 D'_1- e+ nu_e PHOTOS ISGW2; +0.0037 D_2*- e+ nu_e PHOTOS ISGW2; +0.0010 D*- pi0 e+ nu_e PHOTOS GOITY_ROBERTS; +0.0020 anti-D*0 pi- e+ nu_e PHOTOS GOITY_ROBERTS; +0.0030 D- pi0 e+ nu_e PHOTOS GOITY_ROBERTS; +0.0060 anti-D0 pi- e+ nu_e PHOTOS GOITY_ROBERTS; + +0.000180 pi- e+ nu_e PHOTOS ISGW2; +0.000260 rho- e+ nu_e PHOTOS ISGW2; +0.000165 a_1- e+ nu_e PHOTOS ISGW2; +0.000102 b_1- e+ nu_e PHOTOS ISGW2; +0.000014 a_0- e+ nu_e PHOTOS ISGW2; +0.000014 a_2- e+ nu_e PHOTOS ISGW2; + + +#0.001892 Xu- e+ nu_e PHOTOS VubHybridB0; +Enddecay + +Decay anti-B0 +0.0560 D*+ e- anti-nu_e PHOTOS HQET 0.92 1.18 0.72; +0.0210 D+ e- anti-nu_e PHOTOS ISGW2; +0.0056 D_1+ e- anti-nu_e PHOTOS ISGW2; +0.0020 D_0*+ e- anti-nu_e PHOTOS ISGW2; +0.0037 D'_1+ e- anti-nu_e PHOTOS ISGW2; +0.0037 D_2*+ e- anti-nu_e PHOTOS ISGW2; +0.0010 D*+ pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0020 D*0 pi+ e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0030 D+ pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0060 D0 pi+ e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.000180 pi+ e- anti-nu_e PHOTOS ISGW2; +0.000260 rho+ e- anti-nu_e PHOTOS ISGW2; +0.000165 a_1+ e- anti-nu_e PHOTOS ISGW2; +0.000102 b_1+ e- anti-nu_e PHOTOS ISGW2; +0.000014 a_0+ e- anti-nu_e PHOTOS ISGW2; +0.000014 a_2+ e- anti-nu_e PHOTOS ISGW2; + +#0.001892 Xu+ e- anti-nu_e PHOTOS VubHybridB0; +Enddecay + +Decay B+ +0.0560 anti-D*0 e+ nu_e PHOTOS HQET 0.92 1.18 0.72; +0.0210 anti-D0 e+ nu_e PHOTOS ISGW2; +0.0056 anti-D_10 e+ nu_e PHOTOS ISGW2; +0.0020 anti-D_0*0 e+ nu_e PHOTOS ISGW2; +0.0037 anti-D'_10 e+ nu_e PHOTOS ISGW2; +0.0037 anti-D_2*0 e+ nu_e PHOTOS ISGW2; +0.0020 D*- pi+ e+ nu_e PHOTOS GOITY_ROBERTS; +0.0010 anti-D*0 pi0 e+ nu_e PHOTOS GOITY_ROBERTS; +0.0060 D- pi+ e+ nu_e PHOTOS GOITY_ROBERTS; +0.0030 anti-D0 pi0 e+ nu_e PHOTOS GOITY_ROBERTS; + +0.000090 pi0 e+ nu_e PHOTOS ISGW2; +0.000030 eta e+ nu_e PHOTOS ISGW2; +0.000130 rho0 e+ nu_e PHOTOS ISGW2; +0.000130 omega e+ nu_e PHOTOS ISGW2; +0.000060 eta' e+ nu_e PHOTOS ISGW2; +0.000082 a_10 e+ nu_e PHOTOS ISGW2; +0.000007 a_20 e+ nu_e PHOTOS ISGW2; +0.000048 b_10 e+ nu_e PHOTOS ISGW2; +0.000007 a_00 e+ nu_e PHOTOS ISGW2; +0.000004 f_0 e+ nu_e PHOTOS ISGW2; +0.000004 f'_0 e+ nu_e PHOTOS ISGW2; +0.000041 f_1 e+ nu_e PHOTOS ISGW2; +0.000041 f'_1 e+ nu_e PHOTOS ISGW2; +0.000024 h_1 e+ nu_e PHOTOS ISGW2; +0.000024 h'_1 e+ nu_e PHOTOS ISGW2; +0.000004 f_2 e+ nu_e PHOTOS ISGW2; +0.000004 f'_2 e+ nu_e PHOTOS ISGW2; +#0.001948 Xu0 e+ nu_e PHOTOS VubHybridBp; +Enddecay + +Decay B- +# +# b -> c semileptonic +# +0.0560 D*0 e- anti-nu_e PHOTOS HQET 0.92 1.18 0.72; +0.0210 D0 e- anti-nu_e PHOTOS ISGW2; +0.0056 D_10 e- anti-nu_e PHOTOS ISGW2; +0.0020 D_0*0 e- anti-nu_e PHOTOS ISGW2; +0.0037 D'_10 e- anti-nu_e PHOTOS ISGW2; +0.0037 D_2*0 e- anti-nu_e PHOTOS ISGW2; +0.0020 D*+ pi- e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0010 D*0 pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0060 D+ pi- e- anti-nu_e PHOTOS GOITY_ROBERTS; +0.0030 D0 pi0 e- anti-nu_e PHOTOS GOITY_ROBERTS; + +0.000090 pi0 e- anti-nu_e PHOTOS ISGW2; +0.000030 eta e- anti-nu_e PHOTOS ISGW2; +0.000130 rho0 e- anti-nu_e PHOTOS ISGW2; +0.000130 omega e- anti-nu_e PHOTOS ISGW2; +0.000060 eta' e- anti-nu_e PHOTOS ISGW2; +0.000082 a_10 e- anti-nu_e PHOTOS ISGW2; +0.000007 a_20 e- anti-nu_e PHOTOS ISGW2; +0.000048 b_10 e- anti-nu_e PHOTOS ISGW2; +0.000007 a_00 e- anti-nu_e PHOTOS ISGW2; +0.000004 f_0 e- anti-nu_e PHOTOS ISGW2; +0.000004 f'_0 e- anti-nu_e PHOTOS ISGW2; +0.000041 f_1 e- anti-nu_e PHOTOS ISGW2; +0.000041 f'_1 e- anti-nu_e PHOTOS ISGW2; +0.000024 h_1 e- anti-nu_e PHOTOS ISGW2; +0.000024 h'_1 e- anti-nu_e PHOTOS ISGW2; +0.000004 f_2 e- anti-nu_e PHOTOS ISGW2; +0.000004 f'_2 e- anti-nu_e PHOTOS ISGW2; + +#0.001948 Xu0 e- anti-nu_e PHOTOS VubHybridBp; +Enddecay + +Decay B_s0 +0.0210 D_s- e+ nu_e PHOTOS ISGW2; +0.0490 D_s*- e+ nu_e PHOTOS ISGW2; +0.0040 D_s1- e+ nu_e PHOTOS ISGW2; +0.0040 D_s0*- e+ nu_e PHOTOS ISGW2; +0.0070 D'_s1- e+ nu_e PHOTOS ISGW2; +0.0070 D_s2*- e+ nu_e PHOTOS ISGW2; +Enddecay + +Decay anti-B_s0 +# b --> c (l nu) +# Sum = 24.5% +0.0210 D_s+ e- anti-nu_e PHOTOS ISGW2; +0.0490 D_s*+ e- anti-nu_e PHOTOS ISGW2; +0.0040 D_s1+ e- anti-nu_e PHOTOS ISGW2; +0.0040 D_s0*+ e- anti-nu_e PHOTOS ISGW2; +0.0070 D'_s1+ e- anti-nu_e PHOTOS ISGW2; +0.0070 D_s2*+ e- anti-nu_e PHOTOS ISGW2; +Enddecay + +Decay Lambda_b0 +0.05460 Lambda_c+ e- anti-nu_e PHSP; +Enddecay + +Decay anti-Lambda_b0 +# SemiLeptonic Decays (inclusive BR = 7.7 +/- 1.8%) + 0.05460 anti-Lambda_c- e+ nu_e PHSP; +Enddecay + +Decay Xi_b- +# SemiLeptonic Decays + 0.05460 Xi_c0 e- anti-nu_e PHSP; +Enddecay + + +Decay anti-Xi_b+ +# SemiLeptonic Decays + 0.05460 anti-Xi_c0 e+ nu_e PHSP; +Enddecay + +Decay Xi_b0 +# SemiLeptonic Decays + 0.05460 Xi_c+ e- anti-nu_e PHSP; +Enddecay + +Decay anti-Xi_b0 + 0.05460 anti-Xi_c- e+ nu_e PHSP; +Enddecay + +Decay Omega_b- +# SemiLeptonic Decays + 0.05460 Omega_c0 e- anti-nu_e PHSP; +Enddecay + +Decay anti-Omega_b+ +# SemiLeptonic Decays + 0.05460 anti-Omega_c0 e+ nu_e PHSP; +Enddecay + +Decay pi0 +Enddecay + +End + diff --git a/TEvtGen/EvtGen/DecayTable/BTOJPSI.DEC b/TEvtGen/EvtGen/DecayTable/BTOJPSI.DEC new file mode 100644 index 00000000000..93ec72f0eb7 --- /dev/null +++ b/TEvtGen/EvtGen/DecayTable/BTOJPSI.DEC @@ -0,0 +1,199 @@ +## +Define dm_incohMix_B_s0 0.0 +Define dm_incohMix_B0 0.0 +Define dm_incohMix_Lambda_b0 0.0 +Define dm_incohMix_B- 0.0 +Define dm_incohMix_B_c- 0.0 +Define dm_incohMix_Xi_b0 0.0 +Define dm_incohMix_Xi_b- 0.0 +Define dm_incohMix_Omega_b- 0.0 + +#Alias MyJPSI J/psi + #Define the B0B0bar mass difference +#Define dm 0.489e12 + # define the values of the CKM angles (alpha=70, beta=40) +#Define beta 0.39 + # New definitions for psiKstar modes (Lange, July 26, 2000) +#Define PKHplus 0.159 +#Define PKHzero 0.775 +#Define PKHminus 0.612 +#Define PKphHplus 1.563 +#Define PKphHzero 0.0 +#Define PKphHminus 2.712 + +#Define Aplus 0.490 +#Define Azero 1.10 +#Define Aminus 0.4 +# +#Define phAplus 2.5 +#Define phAzero 0.0 +#Define phAminus -0.17 +#Define minusTwoBeta -0.78 + # These particle aliases are used in for CP violating decays + # in which the decay distributions depends on how the K* decayed. + # + # +#Alias K*L K*0 +#Alias K*S K*0 +#Alias K*0T K*0 +#Alias anti-K*0T anti-K*0 + # +#ChargeConj K*0T anti-K*0T +# +Decay B0 +0.000436 J/psi K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.000436 J/psi K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.0002215 J/psi K*S SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.0002215 J/psi K*L SVV_CP beta dm -1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000886 J/psi K*0T SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.0000205 J/psi pi0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000016 J/psi rho0 SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.00003 J/psi omega SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.0012 J/psi K+ pi- PHSP; +0.0001 J/psi K0 pi0 PHSP; +#rl0.0007 J/psi K0 pi- pi+ PHSP; +#rl0.00035 J/psi K0 pi0 pi0 PHSP; +#rl0.00035 J/psi K+ pi- pi0 PHSP; +0.0013 J/psi K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi K'_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi K_2*0 PHSP; +0.000094 J/psi phi K0 PHSP; +Enddecay +Decay anti-B0 +0.000436 J/psi K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.000436 J/psi K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.0002215 J/psi K*S SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.0002215 J/psi K*L SVV_CP beta dm -1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000886 J/psi anti-K*0T SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.0000205 J/psi pi0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000016 J/psi rho0 SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000030 J/psi omega SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; + +0.0012 J/psi K- pi+ PHSP; +0.0001 J/psi anti-K0 pi0 PHSP; +#rl0.0007 J/psi anti-K0 pi+ pi- PHSP; +#rl0.00035 J/psi anti-K0 pi0 pi0 PHSP; +#rl0.00035 J/psi K- pi+ pi0 PHSP; +0.0013 J/psi anti-K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi anti-K'_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi anti-K_2*0 PHSP; +0.000094 J/psi phi anti-K0 PHSP; +Enddecay + +Decay B+ +0.001007 J/psi K+ SVS; +0.00141 J/psi K*+ SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.000049 J/psi pi+ SVS; +0.00006 J/psi rho+ SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.0002 J/psi K0 pi+ PHSP; +0.0001 J/psi K+ pi0 PHSP; +#rl0.0007 J/psi K+ pi- pi+ PHSP; +#rl0.00035 J/psi K+ pi0 pi0 PHSP; +#rl0.00035 J/psi K0 pi+ pi0 PHSP; +0.0018 J/psi K_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi K'_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi K_2*+ PHSP; +0.000052 J/psi phi K+ PHSP; +Enddecay +Decay B- +0.001007 J/psi K- SVS; +0.00141 J/psi K*- SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.000049 J/psi pi- SVS; +0.00006 J/psi rho- SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.0002 J/psi anti-K0 pi- PHSP; +0.0001 J/psi K- pi0 PHSP; +#rl0.0007 J/psi K- pi+ pi- PHSP; +#rl0.00035 J/psi K- pi0 pi0 PHSP; +#rl0.00035 J/psi anti-K0 pi- pi0 PHSP; +0.0018 J/psi K_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi K'_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi K_2*- PHSP; + +0.000052 J/psi phi K- PHSP; +Enddecay + +Decay B_s0 +0.00064 J/psi eta' SVS; +0.00032 J/psi eta SVS; +0.00135 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00008 J/psi anti-K0 SVS; +0.00070 J/psi K- K+ PHSP; +0.00070 J/psi anti-K0 K0 PHSP; +0.00070 J/psi K0 K- pi+ PHSP; +0.00070 J/psi anti-K0 K0 pi0 PHSP; +0.00070 J/psi K- K+ pi0 PHSP; +Enddecay + +Decay anti-B_s0 +0.00064 J/psi eta' SVS; +0.00032 J/psi eta SVS; +0.00135 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00008 J/psi K0 SVS; +0.00070 J/psi K- K+ PHSP; +0.00070 J/psi anti-K0 K0 PHSP; +0.00070 J/psi anti-K0 K+ pi- PHSP; +0.00070 J/psi anti-K0 K0 pi0 PHSP; +0.00070 J/psi K- K+ pi0 PHSP; +Enddecay + +Decay Lambda_b0 +0.00047 Lambda0 J/psi PHSP; +Enddecay + +Decay anti-Lambda_b0 +0.00047 anti-Lambda0 J/psi PHSP; +Enddecay + +Decay B_c+ +0.01900 J/psi e+ nu_e PHOTOS PHSP; +0.01900 J/psi mu+ nu_mu PHOTOS PHSP; +0.00480 J/psi tau+ nu_tau PHSP; +0.00130 J/psi pi+ SVS; +0.00400 J/psi rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00011 J/psi K+ SVS; +0.00022 J/psi K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00170 J/psi D_s+ SVS; +0.00670 J/psi D_s*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00009 J/psi D+ SVS; +0.00028 J/psi D*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +Enddecay + +Decay B_c- +0.01900 J/psi e- anti-nu_e PHOTOS PHSP; +0.01900 J/psi mu- anti-nu_mu PHOTOS PHSP; +0.00480 J/psi tau- anti-nu_tau PHSP; +0.00130 J/psi pi- SVS; +0.00400 J/psi rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00011 J/psi K- SVS; +0.00022 J/psi K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00170 J/psi D_s- SVS; +0.00670 J/psi D_s*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00009 J/psi D- SVS; +0.00028 J/psi D*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +Enddecay + +Decay Xi_b0 +0.00047 Xi0 J/psi PHSP; +Enddecay + +Decay anti-Xi_b0 +0.00047 anti-Xi0 J/psi PHSP; +Enddecay + +Decay Xi_b- +0.00047 Xi- J/psi PHSP; +Enddecay + +Decay anti-Xi_b+ +0.00047 anti-Xi+ J/psi PHSP; +Enddecay + +Decay Omega_b- +0.00047 Omega- J/psi PHSP; +Enddecay + +Decay anti-Omega_b+ +0.00047 anti-Omega+ J/psi PHSP; +Enddecay + +End diff --git a/TEvtGen/EvtGen/DecayTable/BTOJPSITOELE.DEC b/TEvtGen/EvtGen/DecayTable/BTOJPSITOELE.DEC new file mode 100644 index 00000000000..51983db5008 --- /dev/null +++ b/TEvtGen/EvtGen/DecayTable/BTOJPSITOELE.DEC @@ -0,0 +1,203 @@ +## +Define dm_incohMix_B_s0 0.0 +Define dm_incohMix_B0 0.0 +Define dm_incohMix_Lambda_b0 0.0 +Define dm_incohMix_B- 0.0 +Define dm_incohMix_B_c- 0.0 +Define dm_incohMix_Xi_b0 0.0 +Define dm_incohMix_Xi_b- 0.0 +Define dm_incohMix_Omega_b- 0.0 + +#Alias MyJPSI J/psi + #Define the B0B0bar mass difference +#Define dm 0.489e12 + # define the values of the CKM angles (alpha=70, beta=40) +#Define beta 0.39 + # New definitions for psiKstar modes (Lange, July 26, 2000) +#Define PKHplus 0.159 +#Define PKHzero 0.775 +#Define PKHminus 0.612 +#Define PKphHplus 1.563 +#Define PKphHzero 0.0 +#Define PKphHminus 2.712 + +#Define Aplus 0.490 +#Define Azero 1.10 +#Define Aminus 0.4 +# +#Define phAplus 2.5 +#Define phAzero 0.0 +#Define phAminus -0.17 +#Define minusTwoBeta -0.78 + # These particle aliases are used in for CP violating decays + # in which the decay distributions depends on how the K* decayed. + # + # +#Alias K*L K*0 +#Alias K*S K*0 +#Alias K*0T K*0 +#Alias anti-K*0T anti-K*0 + # +#ChargeConj K*0T anti-K*0T +# +Decay B0 +0.000436 J/psi K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.000436 J/psi K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.0002215 J/psi K*S SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.0002215 J/psi K*L SVV_CP beta dm -1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000886 J/psi K*0T SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.0000205 J/psi pi0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000016 J/psi rho0 SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.00003 J/psi omega SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.0012 J/psi K+ pi- PHSP; +0.0001 J/psi K0 pi0 PHSP; +#rl0.0007 J/psi K0 pi- pi+ PHSP; +#rl0.00035 J/psi K0 pi0 pi0 PHSP; +#rl0.00035 J/psi K+ pi- pi0 PHSP; +0.0013 J/psi K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi K'_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi K_2*0 PHSP; +0.000094 J/psi phi K0 PHSP; +Enddecay +Decay anti-B0 +0.000436 J/psi K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.000436 J/psi K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.0002215 J/psi K*S SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.0002215 J/psi K*L SVV_CP beta dm -1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000886 J/psi anti-K*0T SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.0000205 J/psi pi0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000016 J/psi rho0 SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000030 J/psi omega SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; + +0.0012 J/psi K- pi+ PHSP; +0.0001 J/psi anti-K0 pi0 PHSP; +#rl0.0007 J/psi anti-K0 pi+ pi- PHSP; +#rl0.00035 J/psi anti-K0 pi0 pi0 PHSP; +#rl0.00035 J/psi K- pi+ pi0 PHSP; +0.0013 J/psi anti-K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi anti-K'_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi anti-K_2*0 PHSP; +0.000094 J/psi phi anti-K0 PHSP; +Enddecay + +Decay B+ +0.001007 J/psi K+ SVS; +0.00141 J/psi K*+ SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.000049 J/psi pi+ SVS; +0.00006 J/psi rho+ SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.0002 J/psi K0 pi+ PHSP; +0.0001 J/psi K+ pi0 PHSP; +#rl0.0007 J/psi K+ pi- pi+ PHSP; +#rl0.00035 J/psi K+ pi0 pi0 PHSP; +#rl0.00035 J/psi K0 pi+ pi0 PHSP; +0.0018 J/psi K_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi K'_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi K_2*+ PHSP; +0.000052 J/psi phi K+ PHSP; +Enddecay +Decay B- +0.001007 J/psi K- SVS; +0.00141 J/psi K*- SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.000049 J/psi pi- SVS; +0.00006 J/psi rho- SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.0002 J/psi anti-K0 pi- PHSP; +0.0001 J/psi K- pi0 PHSP; +#rl0.0007 J/psi K- pi+ pi- PHSP; +#rl0.00035 J/psi K- pi0 pi0 PHSP; +#rl0.00035 J/psi anti-K0 pi- pi0 PHSP; +0.0018 J/psi K_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi K'_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi K_2*- PHSP; + +0.000052 J/psi phi K- PHSP; +Enddecay + +Decay B_s0 +0.00064 J/psi eta' SVS; +0.00032 J/psi eta SVS; +0.00135 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00008 J/psi anti-K0 SVS; +0.00070 J/psi K- K+ PHSP; +0.00070 J/psi anti-K0 K0 PHSP; +0.00070 J/psi K0 K- pi+ PHSP; +0.00070 J/psi anti-K0 K0 pi0 PHSP; +0.00070 J/psi K- K+ pi0 PHSP; +Enddecay + +Decay anti-B_s0 +0.00064 J/psi eta' SVS; +0.00032 J/psi eta SVS; +0.00135 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00008 J/psi K0 SVS; +0.00070 J/psi K- K+ PHSP; +0.00070 J/psi anti-K0 K0 PHSP; +0.00070 J/psi anti-K0 K+ pi- PHSP; +0.00070 J/psi anti-K0 K0 pi0 PHSP; +0.00070 J/psi K- K+ pi0 PHSP; +Enddecay + +Decay Lambda_b0 +0.00047 Lambda0 J/psi PHSP; +Enddecay + +Decay anti-Lambda_b0 +0.00047 anti-Lambda0 J/psi PHSP; +Enddecay + +Decay B_c+ +0.01900 J/psi e+ nu_e PHOTOS PHSP; +0.01900 J/psi mu+ nu_mu PHOTOS PHSP; +0.00480 J/psi tau+ nu_tau PHSP; +0.00130 J/psi pi+ SVS; +0.00400 J/psi rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00011 J/psi K+ SVS; +0.00022 J/psi K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00170 J/psi D_s+ SVS; +0.00670 J/psi D_s*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00009 J/psi D+ SVS; +0.00028 J/psi D*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +Enddecay + +Decay B_c- +0.01900 J/psi e- anti-nu_e PHOTOS PHSP; +0.01900 J/psi mu- anti-nu_mu PHOTOS PHSP; +0.00480 J/psi tau- anti-nu_tau PHSP; +0.00130 J/psi pi- SVS; +0.00400 J/psi rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00011 J/psi K- SVS; +0.00022 J/psi K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00170 J/psi D_s- SVS; +0.00670 J/psi D_s*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00009 J/psi D- SVS; +0.00028 J/psi D*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +Enddecay + +Decay Xi_b0 +0.00047 Xi0 J/psi PHSP; +Enddecay + +Decay anti-Xi_b0 +0.00047 anti-Xi0 J/psi PHSP; +Enddecay + +Decay Xi_b- +0.00047 Xi- J/psi PHSP; +Enddecay + +Decay anti-Xi_b+ +0.00047 anti-Xi+ J/psi PHSP; +Enddecay + +Decay Omega_b- +0.00047 Omega- J/psi PHSP; +Enddecay + +Decay anti-Omega_b+ +0.00047 anti-Omega+ J/psi PHSP; +Enddecay + +Decay J/psi +1.000 e+ e- PHOTOS VLL; +Enddecay + +End diff --git a/TEvtGen/EvtGen/DecayTable/BTOJPSITOMU.DEC b/TEvtGen/EvtGen/DecayTable/BTOJPSITOMU.DEC new file mode 100644 index 00000000000..89212da3b23 --- /dev/null +++ b/TEvtGen/EvtGen/DecayTable/BTOJPSITOMU.DEC @@ -0,0 +1,203 @@ +## +Define dm_incohMix_B_s0 0.0 +Define dm_incohMix_B0 0.0 +Define dm_incohMix_Lambda_b0 0.0 +Define dm_incohMix_B- 0.0 +Define dm_incohMix_B_c- 0.0 +Define dm_incohMix_Xi_b0 0.0 +Define dm_incohMix_Xi_b- 0.0 +Define dm_incohMix_Omega_b- 0.0 + +#Alias MyJPSI J/psi + #Define the B0B0bar mass difference +#Define dm 0.489e12 + # define the values of the CKM angles (alpha=70, beta=40) +#Define beta 0.39 + # New definitions for psiKstar modes (Lange, July 26, 2000) +#Define PKHplus 0.159 +#Define PKHzero 0.775 +#Define PKHminus 0.612 +#Define PKphHplus 1.563 +#Define PKphHzero 0.0 +#Define PKphHminus 2.712 + +#Define Aplus 0.490 +#Define Azero 1.10 +#Define Aminus 0.4 +# +#Define phAplus 2.5 +#Define phAzero 0.0 +#Define phAminus -0.17 +#Define minusTwoBeta -0.78 + # These particle aliases are used in for CP violating decays + # in which the decay distributions depends on how the K* decayed. + # + # +#Alias K*L K*0 +#Alias K*S K*0 +#Alias K*0T K*0 +#Alias anti-K*0T anti-K*0 + # +#ChargeConj K*0T anti-K*0T +# +Decay B0 +0.000436 J/psi K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.000436 J/psi K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.0002215 J/psi K*S SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.0002215 J/psi K*L SVV_CP beta dm -1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000886 J/psi K*0T SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.0000205 J/psi pi0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000016 J/psi rho0 SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.00003 J/psi omega SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.0012 J/psi K+ pi- PHSP; +0.0001 J/psi K0 pi0 PHSP; +#rl0.0007 J/psi K0 pi- pi+ PHSP; +#rl0.00035 J/psi K0 pi0 pi0 PHSP; +#rl0.00035 J/psi K+ pi- pi0 PHSP; +0.0013 J/psi K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi K'_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi K_2*0 PHSP; +0.000094 J/psi phi K0 PHSP; +Enddecay +Decay anti-B0 +0.000436 J/psi K_S0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 -1.0 0.0; +0.000436 J/psi K_L0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.0002215 J/psi K*S SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.0002215 J/psi K*L SVV_CP beta dm -1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000886 J/psi anti-K*0T SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.0000205 J/psi pi0 SSD_CP dm 0.0 1.0 minusTwoBeta 1.0 0.0 1.0 0.0; +0.000016 J/psi rho0 SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; +0.000030 J/psi omega SVV_CP beta dm 1 Aplus phAplus Azero phAzero Aminus phAminus; + +0.0012 J/psi K- pi+ PHSP; +0.0001 J/psi anti-K0 pi0 PHSP; +#rl0.0007 J/psi anti-K0 pi+ pi- PHSP; +#rl0.00035 J/psi anti-K0 pi0 pi0 PHSP; +#rl0.00035 J/psi K- pi+ pi0 PHSP; +0.0013 J/psi anti-K_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi anti-K'_10 SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi anti-K_2*0 PHSP; +0.000094 J/psi phi anti-K0 PHSP; +Enddecay + +Decay B+ +0.001007 J/psi K+ SVS; +0.00141 J/psi K*+ SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.000049 J/psi pi+ SVS; +0.00006 J/psi rho+ SVV_HELAMP PKHminus PKphHminus PKHzero PKphHzero PKHplus PKphHplus; +0.0002 J/psi K0 pi+ PHSP; +0.0001 J/psi K+ pi0 PHSP; +#rl0.0007 J/psi K+ pi- pi+ PHSP; +#rl0.00035 J/psi K+ pi0 pi0 PHSP; +#rl0.00035 J/psi K0 pi+ pi0 PHSP; +0.0018 J/psi K_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi K'_1+ SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi K_2*+ PHSP; +0.000052 J/psi phi K+ PHSP; +Enddecay +Decay B- +0.001007 J/psi K- SVS; +0.00141 J/psi K*- SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.000049 J/psi pi- SVS; +0.00006 J/psi rho- SVV_HELAMP PKHplus PKphHplus PKHzero PKphHzero PKHminus PKphHminus; +0.0002 J/psi anti-K0 pi- PHSP; +0.0001 J/psi K- pi0 PHSP; +#rl0.0007 J/psi K- pi+ pi- PHSP; +#rl0.00035 J/psi K- pi0 pi0 PHSP; +#rl0.00035 J/psi anti-K0 pi- pi0 PHSP; +0.0018 J/psi K_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0001 J/psi K'_1- SVV_HELAMP 0.5 0.0 1.0 0.0 0.5 0.0; +0.0005 J/psi K_2*- PHSP; + +0.000052 J/psi phi K- PHSP; +Enddecay + +Decay B_s0 +0.00064 J/psi eta' SVS; +0.00032 J/psi eta SVS; +0.00135 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00008 J/psi anti-K0 SVS; +0.00070 J/psi K- K+ PHSP; +0.00070 J/psi anti-K0 K0 PHSP; +0.00070 J/psi K0 K- pi+ PHSP; +0.00070 J/psi anti-K0 K0 pi0 PHSP; +0.00070 J/psi K- K+ pi0 PHSP; +Enddecay + +Decay anti-B_s0 +0.00064 J/psi eta' SVS; +0.00032 J/psi eta SVS; +0.00135 J/psi phi SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00008 J/psi K0 SVS; +0.00070 J/psi K- K+ PHSP; +0.00070 J/psi anti-K0 K0 PHSP; +0.00070 J/psi anti-K0 K+ pi- PHSP; +0.00070 J/psi anti-K0 K0 pi0 PHSP; +0.00070 J/psi K- K+ pi0 PHSP; +Enddecay + +Decay Lambda_b0 +0.00047 Lambda0 J/psi PHSP; +Enddecay + +Decay anti-Lambda_b0 +0.00047 anti-Lambda0 J/psi PHSP; +Enddecay + +Decay B_c+ +0.01900 J/psi e+ nu_e PHOTOS PHSP; +0.01900 J/psi mu+ nu_mu PHOTOS PHSP; +0.00480 J/psi tau+ nu_tau PHSP; +0.00130 J/psi pi+ SVS; +0.00400 J/psi rho+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00011 J/psi K+ SVS; +0.00022 J/psi K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00170 J/psi D_s+ SVS; +0.00670 J/psi D_s*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00009 J/psi D+ SVS; +0.00028 J/psi D*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +Enddecay + +Decay B_c- +0.01900 J/psi e- anti-nu_e PHOTOS PHSP; +0.01900 J/psi mu- anti-nu_mu PHOTOS PHSP; +0.00480 J/psi tau- anti-nu_tau PHSP; +0.00130 J/psi pi- SVS; +0.00400 J/psi rho- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00011 J/psi K- SVS; +0.00022 J/psi K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00170 J/psi D_s- SVS; +0.00670 J/psi D_s*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +0.00009 J/psi D- SVS; +0.00028 J/psi D*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0; +Enddecay + +Decay Xi_b0 +0.00047 Xi0 J/psi PHSP; +Enddecay + +Decay anti-Xi_b0 +0.00047 anti-Xi0 J/psi PHSP; +Enddecay + +Decay Xi_b- +0.00047 Xi- J/psi PHSP; +Enddecay + +Decay anti-Xi_b+ +0.00047 anti-Xi+ J/psi PHSP; +Enddecay + +Decay Omega_b- +0.00047 Omega- J/psi PHSP; +Enddecay + +Decay anti-Omega_b+ +0.00047 anti-Omega+ J/psi PHSP; +Enddecay + +Decay J/psi +1.000 mu+ mu- PHOTOS VLL; +Enddecay + +End diff --git a/TEvtGen/EvtGen/EvtCheckDecays.cxx b/TEvtGen/EvtGen/EvtCheckDecays.cxx new file mode 100644 index 00000000000..ba6e52b466f --- /dev/null +++ b/TEvtGen/EvtGen/EvtCheckDecays.cxx @@ -0,0 +1,383 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed +// for the BaBar collaboration. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtCheckDecays +// +// Description: Holds code to conduct various checks on the +// EvtDecayTable::decaytable() +// +// Modification history: +// Abi Soffer Nov 29, 2007, created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGen/EvtCheckDecays.hh" + +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include +#include +using namespace std; + + + +void EvtCheckDecays::checkConj(bool compareArguments) { + std::ostream & str = report(INFO, "EvtGen: checkConj") + << "Checking CP-conjugation of all decays:" << endl; + + const std::vector & decaytable + = EvtDecayTable::decaytable(); + + vector skipEntries; + + // Loop over the entris (=particles) in the decay table: + for(size_t e = 0; e < decaytable.size(); ++e){ + bool diffFound = false; + + // Skip entries that were already found to be conjugates of other + // particles: + bool skipThis = false; + for (size_t s = 0; s < skipEntries.size(); ++s) { + if (skipEntries[s] == e) { + skipThis = true; + break; + } + } + if (skipThis) { + continue; + } + + // Start working with this particle's decays list: + const EvtParticleDecayList & decList = decaytable[e]; + + if (decList.getNMode() == 0) { // an undecaying entry in the table. ignore: + continue; + } + + // Get the decaying particle's ID (somewhat non-intuitively, this + // is available from the individual decays, but not the decay list): + const EvtId parentId = decList.getDecayModel(0)->getParentId(); + + if (selfConj(parentId)) { // ignore self-conjugate particles: + continue; + } + + // Find the charge conjugate particle by looping over decaytable again: + const EvtParticleDecayList * decList2 = 0; + bool conjFound = false; + + // Need to create parentId2 out of the loop in which it gets filled witn + // meaningful information. Since EVtId has no argumentless constructor, + // initialize it to parentId. This won't cause logic problems, since + // the variable conjFound is used to determine if parentId2 is meaningful: + EvtId parentId2 = parentId; + + // the loop starts at e + 1, so as not to double count: + for(size_t e2 = e + 1; e2 < EvtPDL::entries(); ++e2){ + decList2 = &(decaytable[e2]); + + if (decList2->getNMode() == 0) { // an undecaying entry. ignore: + continue; + } + + parentId2 = decList2->getDecayModel(0)->getParentId(); + if (parentId2.isConjugate(parentId)) { + conjFound = true; + skipEntries.push_back(e2); + break; // found the conjugate. decList2 is the conj of decList + } + } + + // Check if conjugate was found: + if (false == conjFound) { + report(INFO, "EvtGen: checkConj") + << "No conjugate particle decays found for " << EvtPDL::name(parentId) + << endl; + } + else { // conjugate found. + const std::string name = EvtPDL::name(parentId); + const std::string name2 = EvtPDL::name(parentId2); + + // Analyze the two decays and compare them: + // First, compare the number of decay modes: + if (decList.getNMode() != decList2->getNMode()) { + report(INFO, "EvtGen: checkConj") + << "*** Unequal numbers of decays: " + << decList.getNMode() << " for " << name + << " and " << decList2->getNMode() << " for " << name2 + << "." << endl; + + // Find the particle with the more decays: + const EvtParticleDecayList * decListLonger = &decList; + string nameLonger = name; + string nameShorter = name2; + if (decList.getNMode() < decList2->getNMode()) { + decListLonger = decList2; + nameLonger = name2; + nameShorter = name; + } + + const int ndiff = abs(decList.getNMode() - decList2->getNMode()); + str << " The last " << ndiff << " " << nameLonger + << " decays (the ones missing from " << nameShorter + << ", assuming" << endl + << " there are no other problems) are " << endl; + + for (int m = decListLonger->getNMode() - ndiff; + m < decListLonger->getNMode(); + ++m) { + const EvtDecayBase * dec = decListLonger->getDecayModel(m); + str << " "; + dec->printInfo(); + } + + diffFound = true; + } + + // Compare each decay mode. Expect them to be entered in the same order: + for (int m=0; m < decList.getNMode() && m < decList2->getNMode(); ++m) { + const EvtDecayBase * dec = decList.getDecayModel(m); + const EvtDecayBase * dec2 = decList2->getDecayModel(m); + + // Compare BRs: + if (dec->getBranchingFraction() != dec2->getBranchingFraction()) { + report(INFO, "EvtGen: checkConj") + << "*** Unequal BRs: " << endl << " " + << dec->getBranchingFraction() << " for decay "; + dec->printInfo(); + str << "O and " << endl << " " + << dec2->getBranchingFraction() << " for decay "; + dec2->printInfo(); + str << endl; + diffFound = true; + } + + // Compare number of daughters: + if (dec->getNDaug() != dec2->getNDaug()) { + report(INFO, "EvtGen: checkConj") + << "*** Unequal #'s of daughters: " << endl << " " + << dec->getNDaug() << " for decay "; + dec->printInfo(); + str << " and " << endl << " " + << dec2->getNDaug() << " for decay "; + dec2->printInfo(); + str << endl; + diffFound = true; + } + + + // Compare daughter ID's. Here we allow for the daughter order + // not to match, since it's a common practice to write DECAY.DEC + // without much regard to carefully conjugating the daughter order: + + vector usedDtrIndices; // to avoid double-considering a dtr2 + for (int d = 0; d < dec->getNDaug(); ++d) { // loop on dtrs of dec + const EvtId dtr = dec->getDaug(d); + const bool sConj = selfConj(dtr); + + bool dtrMatchFound = false; + + for (int d2 = 0; d2 < dec2->getNDaug(); ++d2) { // on dtrs of dec2 + // Skip if this index has been already found for this decay: + bool skipDtr = false; + for (size_t s = 0; s < usedDtrIndices.size(); ++s) { + if (usedDtrIndices[s] == d2) { + skipDtr = true; + break; + } + if (skipDtr) { + continue; // to next value of d2 + } + } // end loop on s + + const EvtId dtr2 = dec2->getDaug(d2); + // See if there is a matching daughter: Either dtr is + // self-conjugate and we find an identical particle among + // dec2's daughters, or it is no self-conjugate and we + // find its conjugate: + if (dtr.isConjugate(dtr2) && !sConj || + dec->getDaug(d) == dec2->getDaug(d2) && sConj) { + dtrMatchFound = true; + usedDtrIndices.push_back(d2); // don't consider this d2 again + break; // out of d2 loop + } + } // end d2 loop + + if (false == dtrMatchFound) { + // Couldn't find a match for dtr among the daughters of dec2, so: + report(INFO, "EvtGen: checkConj") + << "*** Daughter #" << d << " in decay" + << endl << " "; + dec->printInfo(); + str << " has no conjugate in decay " << endl << " "; + dec2->printInfo(); + str << endl; + diffFound = true; + } + } + + // Compare models: + if (dec->getModelName() != dec2->getModelName()) { + report(INFO, "EvtGen: checkConj") + << "*** Unequal model names in decays: " << endl << " "; + dec->printInfo(); + str << " and " << endl << " "; + dec2->printInfo(); + str << endl; + diffFound = true; + } + + // Compare numbers of arguments: + if (dec->getNArg() != dec2->getNArg()) { + report(INFO, "EvtGen: checkConj") + << "*** Unequal numbers of arguments: " << endl << " " + << dec->getNArg() << " in decay "; + dec->printInfo(); + str << " and " << endl << " " + << dec2->getNArg() << " in decay "; + dec2->printInfo(); + str << endl; + diffFound = true; + } + + // Argument value comparison may not always be desired, since + // the argument values aren't always stored by EvtDecayBase, causing + // many printouts: + if (compareArguments) { + // Compare argument values. First, check if we can tell + // the numbers of arguments correctly: + if ( dec->getNArg() != dec->getNStoredArg() || + dec2->getNArg() != dec2->getNStoredArg()) { + report(INFO, "EvtGen: checkConj") + << "=== Not sure about number of arguments in decay" + << endl << " "; + dec->printInfo(); + str << " and " << endl << " "; + dec2->printInfo(); + str << " Argument value comparison may not be complete." << endl; + } + + // Now do the actual argument values comparison: + for (int a = 0; a < dec->getNArg() && a < dec2->getNArg() + && a < dec->getNStoredArg() && a < dec2->getNStoredArg(); + ++a) { + if (dec->getStoredArg(a) != dec2->getStoredArg(a)) { + report(INFO, "EvtGen: checkConj") + << "*** Unequal arguments #: " << a << ":" + << endl << " " + << dec->getStoredArg(a) << " for decay "; + dec->printInfo(); + str << " and " << endl << " " + << dec2->getStoredArg(a) << " for decay "; + dec2->printInfo(); + str << endl; + diffFound = true; + } // end if arguments unequal + } // end loop on arguments + } // end if to compare arguments + } // end loop on decays + } // end if conjugate found + + if (diffFound) { // mark diff between particle decays + report(INFO, "EvtGen: checkConj") + << "-------------------------------------------------------" << endl; + } + + } // end loop on particle entries +} + + + +bool EvtCheckDecays::selfConj(const EvtId & id) { + string name = EvtPDL::name(id); + if (name == "vpho" || + name == "gamma" || + name == "g" || + name == "specflav" || + name == "phasespa" || + name == "pi0" || + name == "pi(2S)0" || + name == "eta" || + name == "eta(2S)" || + name == "eta(1405)" || + name == "eta(1475)" || + name == "phi(1680)" || + name == "eta'" || + name == "rho0" || + name == "rho(2S)0" || + name == "rho(3S)0" || + name == "omega" || + name == "phi" || + name == "a_00" || + name == "f_0" || + name == "f'_0" || + name == "b_10" || + name == "h_1" || + name == "h'_1" || + name == "a_10" || + name == "f_1" || + name == "f'_1" || + name == "a_10" || + name == "a_20" || + name == "f_2" || + name == "f_0(1500)" || + name == "f'_2" || + name == "K_S0" || + name == "K_L0" || + name == "eta_c" || + name == "eta_c(2S)" || + name == "J/psi" || + name == "psi(2S)" || + name == "psi(3770)" || + name == "psi(4040)" || + name == "psi(4160)" || + name == "psi(4415)" || + name == "h_c" || + name == "chi_c0" || + name == "chi_c1" || + name == "chi_c2" || + name == "eta_b" || + name == "eta_b(2S)" || + name == "eta_b(3S)" || + name == "Upsilon" || + name == "Upsilon(2S)" || + name == "Upsilon(3S)" || + name == "Upsilon(4S)" || + name == "Upsilon(5S)" || + name == "h_b" || + name == "h_b(2P)" || + name == "h_b(3P)" || + name == "chi_b0" || + name == "chi_b1" || + name == "chi_b2" || + name == "chi_b0(2P)" || + name == "chi_b1(2P)" || + name == "chi_b2(2P)" || + name == "chi_b0(3P)" || + name == "chi_b1(3P)" || + name == "chi_b2(3P)" || + name == "eta_b2(1D)" || + name == "eta_b2(2D)" || + name == "Upsilon_1(1D)" || + name == "Upsilon_2(1D)" || + name == "Upsilon_3(1D)" || + name == "Upsilon_1(2D)" || + name == "Upsilon_2(2D)" || + name == "Upsilon_3(2D)" || + name == "Xu0" || + name == "sigma_0") { + return true; + } + + return false; +} diff --git a/TEvtGen/EvtGen/EvtCheckDecays.hh b/TEvtGen/EvtGen/EvtCheckDecays.hh new file mode 100644 index 00000000000..b6c851a26fe --- /dev/null +++ b/TEvtGen/EvtGen/EvtCheckDecays.hh @@ -0,0 +1,34 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed +// for the BaBar collaboration. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtCheckDecays +// +// Description: Holds code to conduct various checks on the +// EvtDecayTable::decaytable() +// +// Modification history: +// Abi Soffer Nov 29, 2007, created +// +//------------------------------------------------------------------------ + +#ifndef EVTCHECKDECAYS +#define EVTCHECKDECAYS + +class EvtId; + +class EvtCheckDecays { +public: +// check CP conservation in the decay BRs, daughters, and models: + static void checkConj(bool compareArguments = false); + + // Used by checkConj() to identify self-conjugate particles: + static bool selfConj(const EvtId & id); + +private: +}; + +#endif diff --git a/TEvtGen/EvtGen/EvtGen.cxx b/TEvtGen/EvtGen/EvtGen.cxx new file mode 100644 index 00000000000..f2e7102b88d --- /dev/null +++ b/TEvtGen/EvtGen/EvtGen.cxx @@ -0,0 +1,317 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen.cc +// +// Description: Main class to provide user interface to EvtGen. +// +// Modification history: +// +// RYD March 24, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include +#include "EvtGen/EvtGen.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtVectorParticle.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtScalarParticle.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtStdHep.hh" +#include "EvtGenBase/EvtSecondary.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtRandomEngine.hh" +#include "EvtGenBase/EvtSimpleRandomEngine.hh" +#include "EvtGenBase/EvtParticleFactory.hh" +//#include "CLHEP/Vector/LorentzVector.h" +#include "TLorentzVector.h" +#include "EvtGenModels/EvtModelReg.hh" +#include "EvtGenBase/EvtStatus.hh" +#include "EvtGenBase/EvtAbsRadCorr.hh" +#include "EvtGenBase/EvtRadCorr.hh" +#include "EvtGenModels/EvtPHOTOS.hh" +using std::endl; +using std::fstream; +using std::ifstream; + + +extern "C" void begevtgenstore_(int *,int *,int *,int *, + int *,int *,int *,int *,int *, + double *,double *,double *, + double *,double *,double *, + double *,double *,double *); + +extern "C" { +extern void evtgen_(float svertex[3],float *e_cms,float *beta_zs, + int *mode); +} + +EvtGen::~EvtGen(){ + + //This is a bit uggly, should not do anything + //in a destructor. This will fail if EvtGen is made a static + //because then this destructor might be called _after_ + //the destructoin of objects that it depends on, e.g., EvtPDL. + + if (getenv("EVTINFO")){ + EvtDecayTable::printSummary(); + } + +} + +EvtGen::EvtGen(const char* const decayName, + const char* const pdtTableName, + EvtRandomEngine* randomEngine, + EvtAbsRadCorr* isrEngine, + const std::list* extraModels){ + + + report(INFO,"EvtGen") << "Initializing EvtGen"<Decay(); + + evtStdHep->init(); + + p->makeStdHep(*evtStdHep); + + evtStdHep->translate(D); + + p->deleteTree(); + + +} + +void EvtGen::generateDecay(EvtParticle *p){ + + int times=0; + do{ + times+=1; + EvtStatus::initRejectFlag(); + + p->decay(); + //ok then finish. + if ( EvtStatus::getRejectFlag()==0 ) { + times=0; + } + else{ + for (size_t ii=0;iigetNDaug();ii++){ + EvtParticle *temp=p->getDaug(ii); + temp->deleteTree(); + } + p->resetFirstOrNot(); + p->resetNDaug(); + + } + + if ( times==10000) { + report(ERROR,"EvtGen") << "Your event has been rejected 10000 times!"<init(EvtPDL::evtIdFromStdHep(stdhepid),p_init); + + root_part=(EvtParticle *)vector_part; + + root_part->setVectorSpinDensity(); + + generateEvent(root_part,D); + + root_part->deleteTree(); + +} + +//void EvtGen::generateEvent(EvtParticle *root_part,CLHEP::HepLorentzVector D){ +void EvtGen::generateEvent(EvtParticle *root_part,TLorentzVector D){ + int i; + + static int nevent=0; + + nevent++; + + static EvtStdHep evtstdhep; + // static EvtSecondary evtsecondary; + + int j; + int istat; + int partnum; + double px,py,pz,e,m; + double x,y,z,t; + + EvtVector4R p4,x4; + + generateDecay(root_part); + // root_part->Decay(); + + int npart=0; + + EvtId list_of_stable[10]; + EvtParticle* stable_parent[10]; + + + list_of_stable[0]=EvtId(-1,-1); + stable_parent[0]=0; + + evtstdhep.init(); + // evtsecondary.init(); + // root_part->makeStdHep(evtstdhep,evtsecondary,list_of_stable); + root_part->makeStdHep(evtstdhep); + + //report(INFO,"EvtGen") << evtstdhep; + //report(INFO,"EvtGen") << evtsecondary; + + npart=evtstdhep.getNPart(); + + for(i=0;i + +class EvtParticle; +class EvtRandomEngine; +//class EvtVector4R; +class EvtStdHep; +class EvtSpinDensity; +class EvtAbsRadCorr; +class EvtDecayBase; + +//#ifdef NOCLHEPNAMESPACE +//namespace CLHEP { +//typedef HepLorentzVector HepLorentzVector ; +//} +//#endif + +class EvtGen{ + +public: + + EvtGen(const char* const decayName,const char* const pdtTableName, + EvtRandomEngine* randomEngine=0, EvtAbsRadCorr *isrEngine=0, + const std::list* extraModels=0); + + ~EvtGen(); + + void readUDecay(const char* const udecay_name); + + void generateDecay(int stdhepid, EvtVector4R P, EvtVector4R D, + EvtStdHep *evtStdHep,EvtSpinDensity *spinDensity=0); + + void generateDecay(EvtParticle *p); + + //These two methods are obsolete + //void generateEvent(int stdhepid, CLHEP::HepLorentzVector P, CLHEP::HepLorentzVector D); + void generateEvent(int stdhepid, TLorentzVector P, TLorentzVector D); + //void generateEvent(EvtParticle *p, CLHEP::HepLorentzVector D); + void generateEvent(EvtParticle *p, TLorentzVector D); + +private: + + EvtPDL _pdl; + +}; + + + +#endif + diff --git a/TEvtGen/EvtGen/EvtGenLinkDef.h b/TEvtGen/EvtGen/EvtGenLinkDef.h new file mode 100644 index 00000000000..a3503c7d5d1 --- /dev/null +++ b/TEvtGen/EvtGen/EvtGenLinkDef.h @@ -0,0 +1,10 @@ +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +//#pragma link C++ class EvtCheckDecays+; +//#pragma link C++ class EvtGen+; + +#endif diff --git a/TEvtGen/EvtGen/Makefile b/TEvtGen/EvtGen/Makefile new file mode 100644 index 00000000000..2913de9d7ec --- /dev/null +++ b/TEvtGen/EvtGen/Makefile @@ -0,0 +1,327 @@ +#New EvtGen makefile October 5, 1998 +#Authors David Lange and Anders Ryd + + +include $(ROOTSYS)/test/Makefile.arch + +SRCSC= $(wildcard *.cc) +SRCSF= $(wildcard *.F) + +OBJSC = $(SRCSC:%.cc=%.o) +OBJSF = $(SRCSF:%.F=%.o) + +OBJS = $(OBJSC) +OBJS += $(OBJSF) + +LIBOBJS=$(filter-out top.o testEvtGen.o ,$(OBJS)) + +include config.mk + +lib: depend comp ar baselib modelslib shar +#lib: comp ar baselib modelslib + +comp:$(OBJS) + +clean: + rm -f *.o libEvtGen.a libEvtGenBase.a libEvtGenModels.a ../Evt*/*.o testEvtGen libEvtGen.so ../EvtGenBase/libEvtGenBase.so ../EvtGenModels/libEvtGenModels.so + + +depend: + @echo "Checking makedepend in EvtGen" + @makedepend -- $(EVTDEPINC) -- -Y $(SRCSC) $(SRCSF) + + +#.cc.o: +# $(EVTCXX) $(EVTCXXFLAGS) -c $< + +.cc.o: + $(CXX) $(CXXFLAGS) $(EVTCXXFLAGS) -c $< + + +.F.o: + $(EVTF77) $(EVTF77FLAGS) -c $< + +ar: + @if (test -f libEvtGen.a ) then (rm libEvtGen.a) fi + @ar rv libEvtGen.a $(LIBOBJS) >& /dev/null + @echo "Done making libEvtGen.a" + +shar: + @$(CXX) $(CXXFLAGS) $(SOFLAGS) -o libEvtGen.so $(LIBOBJS) + @echo "Done making libEvtGen.so" +baselib: + @cd ../EvtGenBase; gmake lib; cd ../EvtGen + +modelslib: + @cd ../EvtGenModels; gmake lib; cd ../EvtGen + +# DO NOT DELETE THIS LINE -- make depend depends on it. + +EvtCheckDecays.o: ../EvtGenBase/EvtPatches.hh ../EvtGen/EvtCheckDecays.hh +EvtCheckDecays.o: ../EvtGenBase/EvtDecayTable.hh +EvtCheckDecays.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtId.hh +EvtCheckDecays.o: /usr/include/c++/3.4.6/iostream +EvtCheckDecays.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtCheckDecays.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtCheckDecays.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtCheckDecays.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtCheckDecays.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/cstring +EvtCheckDecays.o: /usr/include/c++/3.4.6/cstddef +EvtCheckDecays.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtCheckDecays.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtCheckDecays.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtCheckDecays.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtCheckDecays.o: /usr/include/libio.h /usr/include/_G_config.h +EvtCheckDecays.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtCheckDecays.o: /usr/include/gconv.h +EvtCheckDecays.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtCheckDecays.o: /usr/include/bits/stdio_lim.h +EvtCheckDecays.o: /usr/include/bits/sys_errlist.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtCheckDecays.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtCheckDecays.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtCheckDecays.o: /usr/include/libintl.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtCheckDecays.o: /usr/include/pthread.h /usr/include/sched.h +EvtCheckDecays.o: /usr/include/time.h /usr/include/bits/sched.h +EvtCheckDecays.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtCheckDecays.o: /usr/include/bits/pthreadtypes.h +EvtCheckDecays.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtCheckDecays.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtCheckDecays.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtCheckDecays.o: /usr/include/ctype.h /usr/include/endian.h +EvtCheckDecays.o: /usr/include/bits/endian.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtCheckDecays.o: /usr/include/stdint.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/exception_defines.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/exception +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/climits +EvtCheckDecays.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtCheckDecays.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtCheckDecays.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtCheckDecays.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/debug/debug.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/limits +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/algorithm +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtCheckDecays.o: /usr/include/c++/3.4.6/streambuf +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtCheckDecays.o: /usr/include/c++/3.4.6/locale +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtCheckDecays.o: /usr/include/c++/3.4.6/typeinfo +EvtCheckDecays.o: /usr/include/c++/3.4.6/istream +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtCheckDecays.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtCheckDecays.o: /usr/include/c++/3.4.6/vector +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtCheckDecays.o: ../EvtGenBase/EvtParticleDecayList.hh +EvtCheckDecays.o: ../EvtGenBase/EvtParticleDecay.hh ../EvtGenBase/EvtPDL.hh +EvtCheckDecays.o: ../EvtGenBase/EvtPartProp.hh +EvtCheckDecays.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtCheckDecays.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtCheckDecays.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtGen.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdio.h +EvtGen.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtGen.o: /usr/include/gnu/stubs.h +EvtGen.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtGen.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtGen.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtGen.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtGen.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtGen.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtGen.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtGen.o: /usr/include/c++/3.4.6/fstream /usr/include/c++/3.4.6/istream +EvtGen.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtGen.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtGen.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtGen.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtGen.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtGen.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtGen.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtGen.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtGen.o: /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h +EvtGen.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtGen.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtGen.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtGen.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtGen.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtGen.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtGen.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtGen.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtGen.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtGen.o: /usr/include/ctype.h /usr/include/endian.h +EvtGen.o: /usr/include/bits/endian.h /usr/include/c++/3.4.6/bits/stringfwd.h +EvtGen.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtGen.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtGen.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtGen.o: /usr/include/c++/3.4.6/exception_defines.h +EvtGen.o: /usr/include/c++/3.4.6/exception +EvtGen.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtGen.o: /usr/include/c++/3.4.6/climits +EvtGen.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtGen.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtGen.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtGen.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtGen.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtGen.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtGen.o: /usr/include/c++/3.4.6/debug/debug.h /usr/include/c++/3.4.6/cassert +EvtGen.o: /usr/include/assert.h /usr/include/c++/3.4.6/bits/localefwd.h +EvtGen.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtGen.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtGen.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtGen.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtGen.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtGen.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtGen.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtGen.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtGen.o: /usr/include/c++/3.4.6/limits +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtGen.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtGen.o: /usr/include/c++/3.4.6/algorithm +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtGen.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtGen.o: /usr/include/c++/3.4.6/streambuf +EvtGen.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtGen.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtGen.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtGen.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtGen.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtGen.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtGen.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtGen.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtGen.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtGen.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtGen.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtGen.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtGen.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtGen.o: /usr/include/c++/3.4.6/locale +EvtGen.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtGen.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/ostream +EvtGen.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtGen.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/basic_file.h +EvtGen.o: /usr/include/c++/3.4.6/bits/fstream.tcc /usr/include/math.h +EvtGen.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtGen.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtComplex.hh +EvtGen.o: /usr/include/c++/3.4.6/iostream ../EvtGenBase/EvtConst.hh +EvtGen.o: ../EvtGen/EvtGen.hh ../EvtGenBase/EvtPDL.hh +EvtGen.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtSpinType.hh +EvtGen.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtId.hh +EvtGen.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtGen.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtGen.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtGen.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtGen.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TLorentzVector.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TMath.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/Rtypes.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/RConfig.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/RVersion.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/DllImport.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/Rtypeinfo.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TGenericClassInfo.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TSchemaHelper.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TMathBase.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TError.h +EvtGen.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/float.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TVector3.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TVector2.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TObject.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TStorage.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TVersionCheck.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/Riosfwd.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TBuffer.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TMatrix.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TMatrixF.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TMatrixT.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TMatrixTBase.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TNamed.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TString.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TRefCnt.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TMatrixFBasefwd.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TMatrixDBasefwd.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TVectorFfwd.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TVectorDfwd.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TMatrixTUtils.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TMatrixFfwd.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TMatrixFUtils.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TMatrixFUtilsfwd.h +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TRotation.h +EvtGen.o: /usr/include/c++/3.4.6/list /usr/include/c++/3.4.6/bits/stl_list.h +EvtGen.o: /usr/include/c++/3.4.6/bits/list.tcc ../EvtGenBase/EvtVector4R.hh +EvtGen.o: ../EvtGenBase/EvtVectorParticle.hh ../EvtGenBase/EvtVector4C.hh +EvtGen.o: ../EvtGenBase/EvtVector3C.hh ../EvtGenBase/EvtVector3R.hh +EvtGen.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtSpinDensity.hh +EvtGen.o: ../EvtGenBase/EvtScalarParticle.hh ../EvtGenBase/EvtDecayTable.hh +EvtGen.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtParticleDecayList.hh +EvtGen.o: ../EvtGenBase/EvtParticleDecay.hh ../EvtGenBase/EvtStdHep.hh +EvtGen.o: ../EvtGenBase/EvtSecondary.hh ../EvtGenBase/EvtRandom.hh +EvtGen.o: ../EvtGenBase/EvtRandomEngine.hh +EvtGen.o: /home/fionda/cern/root/v5-23-04/include/TRandom.h +EvtGen.o: ../EvtGenBase/EvtSimpleRandomEngine.hh +EvtGen.o: ../EvtGenBase/EvtParticleFactory.hh ../EvtGenModels/EvtModelReg.hh +EvtGen.o: ../EvtGenBase/EvtStatus.hh ../EvtGenBase/EvtAbsRadCorr.hh +EvtGen.o: ../EvtGenBase/EvtRadCorr.hh ../EvtGenModels/EvtPHOTOS.hh diff --git a/TEvtGen/EvtGen/config.mk b/TEvtGen/EvtGen/config.mk new file mode 100644 index 00000000000..fdfae6d8756 --- /dev/null +++ b/TEvtGen/EvtGen/config.mk @@ -0,0 +1,11 @@ +EVTCXX=gcc +EVTF77=g77 +EVTCXXFLAGS=-I. -DEVTSTANDALONE -I/home/fionda/cern/root/v5-23-04/include -I/home/fionda/cern/alice/v4-16-Rev-13_G3v1-10_Rv5-23-04/include -I../ +EVTDEPINC=-I. -DEVTSTANDALONE -I/home/fionda/cern/root/v5-23-04/include -I/home/fionda/cern/alice/v4-16-Rev-13_G3v1-10_Rv5-23-04/include -I../ -Iignoring -Inonexistent -Idirectory -I"/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../i386-redhat-linux/include" -I/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6 -I/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/i386-redhat-linux -I/usr/lib/gcc/i386-redhat-linux/3.4.6/../../../../include/c++/3.4.6/backward -I/usr/local/include -I/usr/lib/gcc/i386-redhat-linux/3.4.6/include -I/usr/include +EVTF77FLAGS= -I/home/fionda/cern/root/v5-23-04/include -I../ -I/cern/pro/lib +EVTLINK=-L. -L/cern/pro/lib -L/cern/pro/lib -z muldefs +EVTLINKOPT= +EVTSYSLIB=-lg2c -lnsl +EVTPYLIB=pythia6205 +EVTPHLIB=photos202 +EVTROOTLIBS=-L/home/fionda/cern/root/v5-23-04/lib -lCore -lCint -lRIO -lNet -lHist -lGraf -lGraf3d -lGpad -lTree -lRint -lPostscript -lMatrix -lPhysics -lMathCore -lThread -pthread -lm -ldl -rdynamic diff --git a/TEvtGen/EvtGen/decay.evt b/TEvtGen/EvtGen/decay.evt new file mode 100644 index 00000000000..0e47e3e4c23 --- /dev/null +++ b/TEvtGen/EvtGen/decay.evt @@ -0,0 +1,1349 @@ +Define dm 0.51e12 +Define alpha 1.3416 +Define beta 0.4 +Define gamma 1.4 +Decay UPS4 +0.500 2 B+ B- VSS +0.420 2 B0 B0B VSS_MIX +Enddecay +Decay B0B +0.0490 3 D*+ E- NUEB HQET3S1 1.0 1.53 0.57 +0.0180 3 D+ E- NUEB ISGW2 +0.0020 3 1P1P E- NUEB ISGW2 +0.0020 3 3P0P E- NUEB ISGW2 +0.0070 3 3P1P E- NUEB ISGW2 +0.0070 3 3P2P E- NUEB ISGW2 +0.0010 4 D*+ PI0 E- NUEB GOITY_ROBERTS +0.0020 4 D*0 PI+ E- NUEB GOITY_ROBERTS +0.0030 4 D+ PI0 E- NUEB GOITY_ROBERTS +0.0060 4 D0 PI+ E- NUEB GOITY_ROBERTS +0.0490 3 D*+ MU- NUMB HQET3S1 1.0 1.53 0.57 +0.0180 3 D+ MU- NUMB ISGW2 +0.0020 3 1P1P MU- NUMB ISGW2 +0.0020 3 3P0P MU- NUMB ISGW2 +0.0070 3 3P1P MU- NUMB ISGW2 +0.0070 3 3P2P MU- NUMB ISGW2 +0.0010 4 D*+ PI0 MU- NUMB GOITY_ROBERTS +0.0020 4 D*0 PI+ MU- NUMB GOITY_ROBERTS +0.0030 4 D+ PI0 MU- NUMB GOITY_ROBERTS +0.0060 4 D0 PI+ MU- NUMB GOITY_ROBERTS +0.0160 3 D*+ TAU- NUTB ISGW2 +0.0090 3 D+ TAU- NUTB ISGW2 +0.0007 3 1P1P TAU- NUTB ISGW2 +0.0007 3 3P0P TAU- NUTB ISGW2 +0.0020 3 3P1P TAU- NUTB ISGW2 +0.0020 3 3P2P TAU- NUTB ISGW2 +0.000064 3 PI+ E- NUEB ISGW2 +0.000250 3 RHO+ E- NUEB ISGW2 +0.000274 3 A1+ E- NUEB ISGW2 +0.000170 3 B1+ E- NUEB ISGW2 +0.000024 3 A0+ E- NUEB ISGW2 +0.000024 3 A2+ E- NUEB ISGW2 +0.000000 3 D21S0P E- NUEB ISGW2 +0.000000 3 D23S1P E- NUEB ISGW2 +0.000064 3 PI+ MU- NUMB ISGW2 +0.000250 3 RHO+ MU- NUMB ISGW2 +0.000274 3 A1+ MU- NUMB ISGW2 +0.000170 3 B1+ MU- NUMB ISGW2 +0.000024 3 A0+ MU- NUMB ISGW2 +0.000024 3 A2+ MU- NUMB ISGW2 +0.000000 3 D21S0P MU- NUMB ISGW2 +0.000000 3 D23S1P MU- NUMB ISGW2 +0.000021 3 PI+ TAU- NUTB ISGW2 +0.000083 3 RHO+ TAU- NUTB ISGW2 +0.000090 3 A1+ TAU- NUTB ISGW2 +0.000008 3 B1+ TAU- NUTB ISGW2 +0.000008 3 A0+ TAU- NUTB ISGW2 +0.000008 3 A2+ TAU- NUTB ISGW2 +0.000000 3 D21S0P TAU- NUTB ISGW2 +0.000000 3 D23S1P TAU- NUTB ISGW2 +0.77375 0 JETSET +Enddecay +Decay B0 +0.0490 3 D*- E+ NUE HQET3S1 1.0 1.53 0.57 +0.0180 3 D- E+ NUE ISGW2 +0.0020 3 1P1N E+ NUE ISGW2 +0.0020 3 3P0N E+ NUE ISGW2 +0.0070 3 3P1N E+ NUE ISGW2 +0.0070 3 3P2N E+ NUE ISGW2 +0.0010 4 D*- PI0 E+ NUE GOITY_ROBERTS +0.0020 4 D*B PI- E+ NUE GOITY_ROBERTS +0.0030 4 D- PI0 E+ NUE GOITY_ROBERTS +0.0060 4 D0B PI- E+ NUE GOITY_ROBERTS +0.0490 3 D*- MU+ NUM HQET3S1 1.0 1.53 0.57 +0.0180 3 D- MU+ NUM ISGW2 +0.0020 3 1P1N MU+ NUM ISGW2 +0.0020 3 3P0N MU+ NUM ISGW2 +0.0070 3 3P1N MU+ NUM ISGW2 +0.0070 3 3P2N MU+ NUM ISGW2 +0.0010 4 D*- PI0 MU+ NUM GOITY_ROBERTS +0.0020 4 D*B PI- MU+ NUM GOITY_ROBERTS +0.0030 4 D- PI0 MU+ NUM GOITY_ROBERTS +0.0060 4 D0B PI- MU+ NUM GOITY_ROBERTS +0.0160 3 D*- TAU+ NUT ISGW2 +0.0090 3 D- TAU+ NUT ISGW2 +0.0007 3 1P1N TAU+ NUT ISGW2 +0.0007 3 3P0N TAU+ NUT ISGW2 +0.0020 3 3P1N TAU+ NUT ISGW2 +0.0020 3 3P2N TAU+ NUT ISGW2 +0.000064 3 PI- E+ NUE ISGW2 +0.000250 3 RHO- E+ NUE ISGW2 +0.000274 3 A1- E+ NUE ISGW2 +0.000170 3 B1- E+ NUE ISGW2 +0.000024 3 A0- E+ NUE ISGW2 +0.000024 3 A2- E+ NUE ISGW2 +0.000000 3 D21S0N E+ NUE ISGW2 +0.000000 3 D23S1N E+ NUE ISGW2 +0.000064 3 PI- MU+ NUM ISGW2 +0.000250 3 RHO- MU+ NUM ISGW2 +0.000274 3 A1- MU+ NUM ISGW2 +0.000170 3 B1- MU+ NUM ISGW2 +0.000024 3 A0- MU+ NUM ISGW2 +0.000024 3 A2- MU+ NUM ISGW2 +0.000000 3 D21S0N MU+ NUM ISGW2 +0.000000 3 D23S1N MU+ NUM ISGW2 +0.000021 3 PI- TAU+ NUT ISGW2 +0.000083 3 RHO- TAU+ NUT ISGW2 +0.000090 3 A1- TAU+ NUT ISGW2 +0.000008 3 B1- TAU+ NUT ISGW2 +0.000008 3 A0- TAU+ NUT ISGW2 +0.000008 3 A2- TAU+ NUT ISGW2 +0.000000 3 D21S0N TAU+ NUT ISGW2 +0.000000 3 D23S1N TAU+ NUT ISGW2 +0.77377 0 JETSET +Enddecay +Decay B- +0.0490 3 D*0 E- NUEB HQET3S1 1.0 1.53 0.57 +0.0180 3 D0 E- NUEB ISGW2 +0.0020 3 1P10 E- NUEB ISGW2 +0.0020 3 3P00 E- NUEB ISGW2 +0.0070 3 3P10 E- NUEB ISGW2 +0.0070 3 3P20 E- NUEB ISGW2 +0.0020 4 D*+ PI- E- NUEB GOITY_ROBERTS +0.0010 4 D*0 PI0 E- NUEB GOITY_ROBERTS +0.0060 4 D+ PI- E- NUEB GOITY_ROBERTS +0.0030 4 D0 PI0 E- NUEB GOITY_ROBERTS +0.0490 3 D*0 MU- NUMB HQET3S1 1.0 1.53 0.57 +0.0180 3 D0 MU- NUMB ISGW2 +0.0020 3 1P10 MU- NUMB ISGW2 +0.0020 3 3P00 MU- NUMB ISGW2 +0.0070 3 3P10 MU- NUMB ISGW2 +0.0070 3 3P20 MU- NUMB ISGW2 +0.0020 4 D*+ PI- MU- NUMB GOITY_ROBERTS +0.0010 4 D*0 PI0 MU- NUMB GOITY_ROBERTS +0.0060 4 D+ PI- MU- NUMB GOITY_ROBERTS +0.0030 4 D0 PI0 MU- NUMB GOITY_ROBERTS +0.0160 3 D*0 TAU- NUTB ISGW2 +0.0090 3 D0 TAU- NUTB ISGW2 +0.0007 3 1P10 TAU- NUTB ISGW2 +0.0007 3 3P00 TAU- NUTB ISGW2 +0.0020 3 3P10 TAU- NUTB ISGW2 +0.0020 3 3P20 TAU- NUTB ISGW2 +0.000032 3 PI0 E- NUEB ISGW2 +0.000012 3 ETA E- NUEB ISGW2 +0.000125 3 RHO0 E- NUEB ISGW2 +0.000125 3 OMEG E- NUEB ISGW2 +0.000020 3 ETA' E- NUEB ISGW2 +0.000137 3 A10 E- NUEB ISGW2 +0.000060 3 A20 E- NUEB ISGW2 +0.000080 3 B10 E- NUEB ISGW2 +0.000012 3 A00 E- NUEB ISGW2 +0.000006 3 F0 E- NUEB ISGW2 +0.000006 3 F0' E- NUEB ISGW2 +0.000068 3 F1 E- NUEB ISGW2 +0.000068 3 F1' E- NUEB ISGW2 +0.000040 3 H1 E- NUEB ISGW2 +0.000040 3 H1' E- NUEB ISGW2 +0.000060 3 F2 E- NUEB ISGW2 +0.000060 3 F2' E- NUEB ISGW2 +0.000000 3 D21S00 E- NUEB ISGW2 +0.000000 3 D23S10 E- NUEB ISGW2 +0.000032 3 PI0 MU- NUMB ISGW2 +0.000012 3 ETA MU- NUMB ISGW2 +0.000125 3 RHO0 MU- NUMB ISGW2 +0.000125 3 OMEG MU- NUMB ISGW2 +0.000020 3 ETA' MU- NUMB ISGW2 +0.000137 3 A10 MU- NUMB ISGW2 +0.000060 3 A20 MU- NUMB ISGW2 +0.000080 3 B10 MU- NUMB ISGW2 +0.000012 3 A00 MU- NUMB ISGW2 +0.000006 3 F0 MU- NUMB ISGW2 +0.000006 3 F0' MU- NUMB ISGW2 +0.000068 3 F1 MU- NUMB ISGW2 +0.000068 3 F1' MU- NUMB ISGW2 +0.000040 3 H1 MU- NUMB ISGW2 +0.000040 3 H1' MU- NUMB ISGW2 +0.000060 3 F2 MU- NUMB ISGW2 +0.000060 3 F2' MU- NUMB ISGW2 +0.000000 3 D21S00 MU- NUMB ISGW2 +0.000000 3 D23S10 MU- NUMB ISGW2 +0.000010 3 PI0 TAU- NUTB ISGW2 +0.000004 3 ETA TAU- NUTB ISGW2 +0.000042 3 RHO0 TAU- NUTB ISGW2 +0.000060 3 A20 TAU- NUTB ISGW2 +0.000042 3 OMEG TAU- NUTB ISGW2 +0.000007 3 ETA' TAU- NUTB ISGW2 +0.000046 3 A10 TAU- NUTB ISGW2 +0.000027 3 B10 TAU- NUTB ISGW2 +0.000004 3 A00 TAU- NUTB ISGW2 +0.000002 3 F0 TAU- NUTB ISGW2 +0.000002 3 F0' TAU- NUTB ISGW2 +0.000023 3 F1 TAU- NUTB ISGW2 +0.000023 3 F1' TAU- NUTB ISGW2 +0.000013 3 H1 TAU- NUTB ISGW2 +0.000013 3 H1' TAU- NUTB ISGW2 +0.000020 3 F2 TAU- NUTB ISGW2 +0.000020 3 F2' TAU- NUTB ISGW2 +0.000000 3 D21S00 TAU- NUTB ISGW2 +0.000000 3 D23S10 TAU- NUTB ISGW2 +0.000020 2 TAU- NUTB SLN +0.000020 2 E- NUEB SLN +0.000020 2 MU- NUMB SLN +0.77352 0 JETSET +Enddecay +Decay B+ +0.0490 3 D*B E+ NUE HQET3S1 1.0 1.53 0.57 +0.0180 3 D0B E+ NUE ISGW2 +0.0020 3 1P1B E+ NUE ISGW2 +0.0020 3 3P0B E+ NUE ISGW2 +0.0070 3 3P1B E+ NUE ISGW2 +0.0070 3 3P2B E+ NUE ISGW2 +0.0020 4 D*- PI+ E+ NUE GOITY_ROBERTS +0.0010 4 D*B PI0 E+ NUE GOITY_ROBERTS +0.0060 4 D- PI+ E+ NUE GOITY_ROBERTS +0.0030 4 D0B PI0 E+ NUE GOITY_ROBERTS +0.0490 3 D*B MU+ NUM HQET3S1 1.0 1.53 0.57 +0.0180 3 D0B MU+ NUM ISGW2 +0.0020 3 1P1B MU+ NUM ISGW2 +0.0020 3 3P0B MU+ NUM ISGW2 +0.0070 3 3P1B MU+ NUM ISGW2 +0.0070 3 3P2B MU+ NUM ISGW2 +0.0020 4 D*- PI+ MU+ NUM GOITY_ROBERTS +0.0010 4 D*B PI0 MU+ NUM GOITY_ROBERTS +0.0060 4 D- PI+ MU+ NUM GOITY_ROBERTS +0.0030 4 D0B PI0 MU+ NUM GOITY_ROBERTS +0.0160 3 D*B TAU+ NUT ISGW2 +0.0090 3 D0B TAU+ NUT ISGW2 +0.0007 3 1P1B TAU+ NUT ISGW2 +0.0007 3 3P0B TAU+ NUT ISGW2 +0.0020 3 3P1B TAU+ NUT ISGW2 +0.0020 3 3P2B TAU+ NUT ISGW2 +0.000032 3 PI0 E+ NUE ISGW2 +0.000012 3 ETA E+ NUE ISGW2 +0.000125 3 RHO0 E+ NUE ISGW2 +0.000125 3 OMEG E+ NUE ISGW2 +0.000020 3 ETA' E+ NUE ISGW2 +0.000137 3 A10 E+ NUE ISGW2 +0.000060 3 A20 E+ NUE ISGW2 +0.000080 3 B10 E+ NUE ISGW2 +0.000012 3 A00 E+ NUE ISGW2 +0.000006 3 F0 E+ NUE ISGW2 +0.000006 3 F0' E+ NUE ISGW2 +0.000068 3 F1 E+ NUE ISGW2 +0.000068 3 F1' E+ NUE ISGW2 +0.000040 3 H1 E+ NUE ISGW2 +0.000040 3 H1' E+ NUE ISGW2 +0.000060 3 F2 E+ NUE ISGW2 +0.000060 3 F2' E+ NUE ISGW2 +0.000000 3 D21S0B E+ NUE ISGW2 +0.000000 3 D23S1B E+ NUE ISGW2 +0.000032 3 PI0 MU+ NUM ISGW2 +0.000012 3 ETA MU+ NUM ISGW2 +0.000125 3 RHO0 MU+ NUM ISGW2 +0.000125 3 OMEG MU+ NUM ISGW2 +0.000020 3 ETA' MU+ NUM ISGW2 +0.000137 3 A10 MU+ NUM ISGW2 +0.000080 3 B10 MU+ NUM ISGW2 +0.000012 3 A00 MU+ NUM ISGW2 +0.000006 3 A20 MU+ NUM ISGW2 +0.000006 3 F0 MU+ NUM ISGW2 +0.000006 3 F0' MU+ NUM ISGW2 +0.000068 3 F1 MU+ NUM ISGW2 +0.000068 3 F1' MU+ NUM ISGW2 +0.000040 3 H1 MU+ NUM ISGW2 +0.000040 3 H1' MU+ NUM ISGW2 +0.000060 3 F2 MU+ NUM ISGW2 +0.000060 3 F2' MU+ NUM ISGW2 +0.000000 3 D21S0B MU+ NUM ISGW2 +0.000000 3 D23S1B MU+ NUM ISGW2 +0.000010 3 PI0 TAU+ NUT ISGW2 +0.000004 3 ETA TAU+ NUT ISGW2 +0.000042 3 RHO0 TAU+ NUT ISGW2 +0.000042 3 OMEG TAU+ NUT ISGW2 +0.000007 3 ETA' TAU+ NUT ISGW2 +0.000046 3 A10 TAU+ NUT ISGW2 +0.000027 3 B10 TAU+ NUT ISGW2 +0.000006 3 A20 TAU+ NUT ISGW2 +0.000004 3 A00 TAU+ NUT ISGW2 +0.000002 3 F0 TAU+ NUT ISGW2 +0.000002 3 F0' TAU+ NUT ISGW2 +0.000023 3 F1 TAU+ NUT ISGW2 +0.000023 3 F1' TAU+ NUT ISGW2 +0.000013 3 H1 TAU+ NUT ISGW2 +0.000013 3 H1' TAU+ NUT ISGW2 +0.000020 3 F2 TAU+ NUT ISGW2 +0.000020 3 F2' TAU+ NUT ISGW2 +0.000000 3 D21S0B TAU+ NUT ISGW2 +0.000000 3 D23S1B TAU+ NUT ISGW2 +0.000020 2 TAU+ NUT SLN +0.000020 2 E+ NUE SLN +0.000020 2 MU+ NUM SLN +0.77352 0 JETSET +Enddecay +Decay TAU- +1.000 0 JETSET +Enddecay +Decay TAU+ +1.000 0 JETSET +Enddecay +Decay DS+ +0.0200 3 PHI E+ NUE ISGW2 +0.0388 3 ETA E+ NUE ISGW2 +0.0168 3 ETA' E+ NUE ISGW2 +0.0027 3 KB E+ NUE ISGW2 +0.0010 3 K*B E+ NUE ISGW2 +0.0200 3 PHI MU+ NUM ISGW2 +0.0388 3 ETA MU+ NUM ISGW2 +0.0168 3 ETA' MU+ NUM ISGW2 +0.0027 3 KB MU+ NUM ISGW2 +0.0010 3 K*B MU+ NUM ISGW2 +0.0091 2 NUM MU+ PHSP +0.0910 2 NUT TAU+ PHSP +0.0370 2 PHI PI+ SVS +0.0200 2 ETA PI+ PHSP2 +0.0518 2 ETA' PI+ PHSP2 +0.0010 2 OMEG PI+ SVS +0.0010 2 RHO0 PI+ SVS +0.0020 2 RHO+ PI0 SVS +0.0010 2 PI+ PI0 PHSP2 +0.0104 2 F0 PI+ PHSP2 +0.0688 2 PHI RHO+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.1058 2 RHO+ ETA SVS +0.1273 2 RHO+ ETA SVS +0.0109 3 PI+ PI- PI+ PHSP +0.0050 3 PI+ PI0 PI0 PHSP +0.0200 3 PHI PI+ PI0 PHSP +0.0100 3 ETA PI+ PI0 PHSP +0.0100 3 ETA' PI+ PI0 PHSP +0.0155 4 PHI PI+ PI- PI+ PHSP +0.0050 4 PHI PI+ PI0 PI0 PHSP +0.0050 4 ETA PI+ PI- PI+ PHSP +0.0050 4 ETA PI+ PI0 PI0 PHSP +0.0374 2 KB K+ PHSP2 +0.0352 2 K*B K+ SVS +0.0444 2 K*+ KB SVS +0.0592 2 K*B K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.0093 3 K+ K- PI+ PHSP +0.0050 3 KB K+ PI0 PHSP +0.0020 4 KB K+ PI+ PI- PHSP +0.0020 4 KB K+ PI0 PI0 PHSP +0.0030 2 PHI K+ SVS +0.0015 2 ETA K+ PHSP2 +0.0035 2 ETA' K+ PHSP2 +0.0030 3 ETA K+ PI0 PHSP +0.0020 4 ETA K+ PI+ PI- PHSP +0.0020 3 ETA' K+ PI0 PHSP +0.0010 4 ETA' K+ PI+ PI- PHSP +0.0030 3 K+ K- K+ PHSP +0.0025 2 K0 PI+ PHSP2 +0.0025 2 RHO+ K0 SVS +0.0010 3 K0 PI+ PI0 PHSP +0.0020 2 A1+ K0 SVS +0.0025 2 K*0 PI+ SVS +0.0025 2 K*0 RHO+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.0023 3 K*0 PI+ PI0 PHSP +Enddecay +Decay DS- +0.0200 3 PHI E- NUEB ISGW2 +0.0388 3 ETA E- NUEB ISGW2 +0.0168 3 ETA' E- NUEB ISGW2 +0.0027 3 K0 E- NUEB ISGW2 +0.0010 3 K*0 E- NUEB ISGW2 +0.0200 3 PHI MU- NUMB ISGW2 +0.0388 3 ETA MU- NUMB ISGW2 +0.0168 3 ETA' MU- NUMB ISGW2 +0.0027 3 K0 MU- NUMB ISGW2 +0.0010 3 K*0 MU- NUMB ISGW2 +0.0091 2 NUMB MU- PHSP +0.0910 2 NUTB TAU- PHSP +0.0370 2 PHI PI- SVS +0.0200 2 ETA PI- PHSP2 +0.0518 2 ETA' PI- PHSP2 +0.0010 2 OMEG PI- SVS +0.0010 2 RHO0 PI- SVS +0.0020 2 RHO- PI0 SVS +0.0010 2 PI- PI0 PHSP2 +0.0104 2 F0 PI- PHSP2 +0.0688 2 PHI RHO- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.1058 2 RHO- ETA SVS +0.1273 2 RHO- ETA SVS +0.0109 3 PI- PI- PI+ PHSP +0.0050 3 PI- PI0 PI0 PHSP +0.0200 3 PHI PI- PI0 PHSP +0.0100 3 ETA PI- PI0 PHSP +0.0100 3 ETA' PI- PI0 PHSP +0.0155 4 PHI PI- PI- PI+ PHSP +0.0050 4 PHI PI- PI0 PI0 PHSP +0.0050 4 ETA PI- PI- PI+ PHSP +0.0050 4 ETA PI- PI0 PI0 PHSP +0.0374 2 K0 K- PHSP2 +0.0352 2 K*0 K- SVS +0.0444 2 K*- K0 SVS +0.0592 2 K*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.0093 3 K+ K- PI- PHSP +0.0050 3 K0 K- PI0 PHSP +0.0020 4 K0 K- PI+ PI- PHSP +0.0020 4 K0 K- PI0 PI0 PHSP +0.0030 2 PHI K- SVS +0.0015 2 ETA K- PHSP2 +0.0035 2 ETA' K- PHSP2 +0.0030 3 ETA K- PI0 PHSP +0.0020 4 ETA K- PI+ PI- PHSP +0.0020 3 ETA' K- PI0 PHSP +0.0010 4 ETA' K- PI+ PI- PHSP +0.0030 3 K- K- K+ PHSP +0.0025 2 KB PI- PHSP2 +0.0025 2 RHO- KB SVS +0.0010 3 KB PI- PI0 PHSP +0.0020 2 A1- KB SVS +0.0025 2 K*B PI- SVS +0.0025 2 K*B RHO- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.0023 3 K*B PI- PI0 PHSP +Enddecay +Decay PI0 +0.9880 2 GAMM GAMM PHSP +0.0120 3 GAMM E+ E- PHSP +Enddecay +Decay ETA +0.3880 2 GAMM GAMM PHSP +0.3190 3 PI0 PI0 PI0 PHSP +0.2360 3 PI- PI+ PI0 PHSP +0.0488 3 GAMM PI- PI+ PHSP +0.0050 3 GAMM E+ E- PHSP +0.0003 3 GAMM MU+ MU- PHSP +0.0007 3 GAMM GAMM PI0 PHSP +0.0012 4 PI+ PI- E+ E- PHSP +0.0010 4 GAMM GAMM E+ E- PHSP +Enddecay +Decay K0S +0.6861 2 PI+ PI- PHSP +0.3139 2 PI0 PI0 PHSP +Enddecay +Decay K0 +0.500 1 K0L PHSP +0.500 1 K0S PHSP +Enddecay +Decay KB +0.500 1 K0L PHSP +0.500 1 K0S PHSP +Enddecay +Decay K1*0 +1.000 0 JETSET +Enddecay +Decay K1*B +1.000 0 JETSET +Enddecay +Decay K10 +0.2800 2 RHO- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1400 2 RHO0 K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1067 2 K*+ PI- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.0533 2 K*0 PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1100 2 OMEG K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1444 3 K0 PI+ PI- PHSP +0.1244 3 K+ PI- PI0 PHSP +0.0412 3 K0 PI0 PI0 PHSP +Enddecay +Decay K1B +0.2800 2 RHO+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1400 2 RHO0 KB VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1067 2 K*- PI+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.0533 2 K*B PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1100 2 OMEG KB VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1444 3 KB PI+ PI- PHSP +0.1244 3 K- PI+ PI0 PHSP +0.0412 3 KB PI0 PI0 PHSP +Enddecay +Decay K1+ +0.2800 2 RHO+ K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1400 2 RHO0 K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1067 2 K*0 PI+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.0533 2 K*+ PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1100 2 OMEG K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1444 3 K+ PI+ PI- PHSP +0.1244 3 K0 PI+ PI0 PHSP +0.0412 3 K+ PI0 PI0 PHSP +Enddecay +Decay K1- +0.2800 2 RHO- KB VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1400 2 RHO0 K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1067 2 K*B PI- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.0533 2 K*- PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1100 2 OMEG K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1444 3 K- PI+ PI- PHSP +0.1244 3 KB PI- PI0 PHSP +0.0412 3 K- PI0 PI0 PHSP +Enddecay +Decay K*0 +0.6657 2 K+ PI- VSS +0.3323 2 K0 PI0 VSS +0.0020 2 K0 GAMM VSP_PWAVE +Enddecay +Decay K*B +0.6657 2 K- PI+ VSS +0.3323 2 KB PI0 VSS +0.0020 2 KB GAMM VSP_PWAVE +Enddecay +Decay K*+ +0.6660 2 K0 PI+ VSS +0.3330 2 K+ PI0 VSS +0.0010 2 K+ GAMM VSP_PWAVE +Enddecay +Decay K*- +0.6660 2 KB PI- VSS +0.3330 2 K- PI0 VSS +0.0010 2 K- GAMM VSP_PWAVE +Enddecay +Decay ETA' +0.4370 3 PI+ PI- ETA PHSP +0.2080 3 PI0 PI0 ETA PHSP +0.3020 2 GAMM RHO0 PHSP +0.0302 2 GAMM OMEG PHSP +0.0212 2 GAMM GAMM PHSP +0.0015 3 PI0 PI0 PI0 PHSP +0.0001 3 GAMM MU- MU+ PHSP +Enddecay +Decay DEL+ +1.000 0 JETSET +Enddecay +Decay ADEL+ +1.000 0 JETSET +Enddecay +Decay DEL++ +1.000 0 JETSET +Enddecay +Decay ADL++ +1.000 0 JETSET +Enddecay +Decay CUD3 +1.000 0 JETSET +Enddecay +Decay ACUD3 +1.000 0 JETSET +Enddecay +Decay CSD0 +1.000 0 JETSET +Enddecay +Decay ACSD0 +1.000 0 JETSET +Enddecay +Decay CSD3 +1.000 0 JETSET +Enddecay +Decay ACSD3 +1.000 0 JETSET +Enddecay +Decay XI*0 +1.000 0 JETSET +Enddecay +Decay AXI*0 +1.000 0 JETSET +Enddecay +Decay SIGC0 +1.000 0 JETSET +Enddecay +Decay ASIC0 +1.000 0 JETSET +Enddecay +Decay LAMC +1.000 0 JETSET +Enddecay +Decay ALAMC +1.000 0 JETSET +Enddecay +Decay K2*+ +0.3310 2 K0 PI+ TSS +0.1660 2 K+ PI0 TSS +0.1680 2 K*0 PI+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.0840 2 K*+ PI0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.0540 3 K*0 PI+ PI0 PHSP +0.0540 3 K*+ PI+ PI- PHSP +0.0540 3 K*+ PI0 PI0 PHSP +0.0590 2 RHO+ K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.0300 2 RHO0 K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +Enddecay +Decay K2*- +0.3310 2 KB PI- TSS +0.1660 2 K- PI0 TSS +0.1680 2 K*B PI- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.0840 2 K*- PI0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.0540 3 K*B PI- PI0 PHSP +0.0540 3 K*- PI+ PI- PHSP +0.0540 3 K*- PI0 PI0 PHSP +0.0590 2 RHO- K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.0300 2 RHO0 K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +Enddecay +Decay K2*0 +0.3310 2 K+ PI- TSS +0.1660 2 K0 PI0 TSS +0.1680 2 K*+ PI- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.0840 2 K*0 PI0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.0540 3 K*0 PI+ PI- PHSP +0.0540 3 K*0 PI0 PI0 PHSP +0.0540 3 K*+ PI- PI0 PHSP +0.0590 2 RHO- K+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.0300 2 RHO0 K0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +Enddecay +Decay K2*B +0.3310 2 K- PI+ TSS +0.1660 2 KB PI0 TSS +0.1680 2 K*- PI+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.0840 2 K*B PI0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.0540 3 K*B PI+ PI- PHSP +0.0540 3 K*B PI0 PI0 PHSP +0.0540 3 K*- PI+ PI0 PHSP +0.0590 2 RHO+ K- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.0300 2 RHO0 KB TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +Enddecay +Decay DS*+ +1.000 0 JETSET +Enddecay +Decay DS*- +1.000 0 JETSET +Enddecay +Decay 3P1SP +1.000 0 JETSET +Enddecay +Decay 3P1SN +1.000 0 JETSET +Enddecay +Decay SIG+ +1.000 0 JETSET +Enddecay +Decay ASIG+ +1.000 0 JETSET +Enddecay +Decay SIGC+ +1.000 0 JETSET +Enddecay +Decay ASIC+ +1.000 0 JETSET +Enddecay +Decay LAM +1.000 0 JETSET +Enddecay +Decay ALAM +1.000 0 JETSET +Enddecay +Decay 3P00 +0.3333 2 D0 PI0 PHSP2 +0.6667 2 D+ PI- PHSP2 +Enddecay +Decay 3P0B +0.3333 2 D0B PI0 PHSP2 +0.6667 2 D- PI+ PHSP2 +Enddecay +Decay 3P0P +0.3333 2 D+ PI0 PHSP2 +0.6667 2 D0 PI+ PHSP2 +Enddecay +Decay 3P0N +0.3333 2 D- PI0 PHSP2 +0.6667 2 D0B PI- PHSP2 +Enddecay +Decay ETAC +1.000 0 JETSET +Enddecay +Decay PSI +0.0599 2 E+ E- VLL +0.0597 2 MU+ MU- VLL +0.8804 0 JETSET +Enddecay +Decay PHI +0.4910 2 K+ K- VSS +0.3430 2 K0L K0S VSS +0.0430 2 RHO+ PI- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.0430 2 RHO0 PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.0430 2 RHO- PI+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.0240 3 PI+ PI- PI0 PHSP +0.0120 2 ETA GAMM VSP_PWAVE +0.0010 2 PI0 GAMM VSP_PWAVE +Enddecay +Decay CHI2 +1.000 0 JETSET +Enddecay +Decay DEL0 +1.000 0 JETSET +Enddecay +Decay ADEL0 +1.000 0 JETSET +Enddecay +Decay DEL- +1.000 0 JETSET +Enddecay +Decay ADEL- +1.000 0 JETSET +Enddecay +Decay SIG- +1.000 0 JETSET +Enddecay +Decay ASIG- +1.000 0 JETSET +Enddecay +Decay CDD3 +1.000 0 JETSET +Enddecay +Decay ACDD3 +1.000 0 JETSET +Enddecay +Decay SIG0 +1.000 0 JETSET +Enddecay +Decay ASIG0 +1.000 0 JETSET +Enddecay +Decay CSU0 +1.000 0 JETSET +Enddecay +Decay ACSU0 +1.000 0 JETSET +Enddecay +Decay CUU3 +1.000 0 JETSET +Enddecay +Decay ACUU3 +1.000 0 JETSET +Enddecay +Decay F0 +0.5200 2 PI+ PI- PHSP2 +0.2600 2 PI0 PI0 PHSP2 +0.1100 2 K+ K- PHSP2 +0.0550 2 K0S K0S PHSP2 +0.0550 2 K0L K0L PHSP2 +Enddecay +Decay F0' +0.6200 2 PI+ PI- PHSP2 +0.3100 2 PI0 PI0 PHSP2 +0.0350 2 K+ K- PHSP2 +0.0175 2 K0S K0S PHSP2 +0.0175 2 K0L K0L PHSP2 +Enddecay +Decay CHI1 +1.000 0 JETSET +Enddecay +Decay SIG*- +1.000 0 JETSET +Enddecay +Decay ASI*- +1.000 0 JETSET +Enddecay +Decay SIC++ +1.000 0 JETSET +Enddecay +Decay ASC++ +1.000 0 JETSET +Enddecay +Decay SIG*+ +1.000 0 JETSET +Enddecay +Decay ASI*+ +1.000 0 JETSET +Enddecay +Decay SIG*0 +1.000 0 JETSET +Enddecay +Decay ASI*0 +1.000 0 JETSET +Enddecay +Decay XI0 +1.000 0 JETSET +Enddecay +Decay AXI0 +1.000 0 JETSET +Enddecay +Decay XI- +1.000 0 JETSET +Enddecay +Decay AXI- +1.000 0 JETSET +Enddecay +Decay A00 +0.9000 2 ETA PI0 PHSP2 +0.0500 2 K+ K- PHSP2 +0.0250 2 K0S K0S PHSP2 +0.0250 2 K0L K0L PHSP2 +Enddecay +Decay A0+ +0.9000 2 ETA PI+ PHSP2 +0.1000 2 KB K+ PHSP2 +Enddecay +Decay A0- +0.9000 2 ETA PI- PHSP2 +0.1000 2 K0 K- PHSP2 +Enddecay +Decay D*+ +0.6790 2 D0 PI+ VSS +0.3100 2 D+ PI0 VSS +0.0110 2 D+ GAMM VSP_PWAVE +Enddecay +Decay D*- +0.6790 2 D0B PI- VSS +0.3100 2 D- PI0 VSS +0.0110 2 D- GAMM VSP_PWAVE +Enddecay +Decay D*0 +0.6350 2 D0 PI0 VSS +0.3650 2 D0 GAMM VSS +Enddecay +Decay D*B +0.6350 2 D0B PI0 VSS +0.3650 2 D0B GAMM VSS +Enddecay +Decay D+ +0.0504 3 K*B E+ NUE ISGW2 +0.0929 3 KB E+ NUE ISGW2 +0.0036 3 K1B E+ NUE ISGW2 +0.0038 3 K2*B E+ NUE ISGW2 +0.0064 3 PI0 E+ NUE ISGW2 +0.0028 3 ETA E+ NUE ISGW2 +0.0011 3 ETA' E+ NUE ISGW2 +0.0030 3 RHO0 E+ NUE ISGW2 +0.0029 3 OMEG E+ NUE ISGW2 +0.0504 3 K*B MU+ NUM ISGW2 +0.0929 3 KB MU+ NUM ISGW2 +0.0036 3 K1B MU+ NUM ISGW2 +0.0038 3 K2*B MU+ NUM ISGW2 +0.0064 3 PI0 MU+ NUM ISGW2 +0.0028 3 ETA MU+ NUM ISGW2 +0.0011 3 ETA' MU+ NUM ISGW2 +0.0030 3 RHO0 MU+ NUM ISGW2 +0.0029 3 OMEG MU+ NUM ISGW2 +0.0009 2 MU+ NUM PHSP +0.0024 2 TAU+ NUT PHSP +0.0292 2 KB PI+ PHSP2 +0.0722 2 RHO+ KB SVS +0.0807 2 A1+ KB SVS +0.0213 2 K*B PI+ SVS +0.0508 2 K1*B PI+ SVS +0.0345 2 K2*B PI+ PHSP +0.0503 2 K*B RHO+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.0548 3 K- PI+ PI+ PHSP +0.0155 3 KB PI0 PI+ PHSP +0.0100 3 KB ETA PI+ PHSP +0.0050 3 KB RHO0 PI+ PHSP +0.0050 3 KB OMEG PI+ PHSP +0.0096 3 K- RHO+ PI+ PHSP +0.0200 3 K*- PI+ PI+ PHSP +0.0100 3 K*B PI0 PI+ PHSP +0.0100 3 K*B ETA PI+ PHSP +0.0078 3 K*B RHO0 PI+ PHSP +0.0050 3 K*B OMEG PI+ PHSP +0.0100 3 K*- RHO+ PI+ PHSP +0.0060 4 K- PI+ PI+ PI0 PHSP +0.0100 4 KB PI+ PI+ PI- PHSP +0.0200 4 KB PI+ PI0 PI0 PHSP +0.0035 5 K- PI+ PI+ PI+ PI- PHSP +0.0035 5 K- PI+ PI+ PI0 PI0 PHSP +0.0035 5 KB PI+ PI+ PI- PI0 PHSP +0.0035 5 KB PI+ PI0 PI0 PI0 PHSP +0.0200 3 KB KB K+ PHSP +0.0070 2 PHI PI+ SVS +0.0100 3 PHI PI+ PI0 PHSP +0.0082 2 KB K+ PHSP2 +0.0052 2 K*B K+ SVS +0.0052 2 K*+ KB SVS +0.0140 2 K*B K*+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.0040 3 K+ K- PI+ PHSP +0.0010 3 K+ KB PI0 PHSP +0.0010 3 KB K0 PI+ PHSP +0.0010 3 K*+ K- PI+ PHSP +0.0010 3 K+ K*- PI+ PHSP +0.0010 3 K*+ KB PI0 PHSP +0.0010 3 K+ K*B PI0 PHSP +0.0010 3 K*B K0 PI+ PHSP +0.0010 3 KB K*0 PI+ PHSP +0.0026 2 PI0 PI+ PHSP2 +0.0002 2 RHO0 PI+ SVS +0.0032 3 PI+ PI+ PI- PHSP +0.0030 3 PI+ PI0 PI0 PHSP +0.0030 4 PI+ PI+ PI- PI0 PHSP +0.0020 4 PI+ PI0 PI0 PI0 PHSP +0.0076 2 ETA PI+ PHSP2 +0.0030 3 ETA PI+ PI0 PHSP +0.0030 4 ETA PI+ PI+ PI- PHSP +0.0020 4 ETA PI+ PI0 PI0 PHSP +Enddecay +Decay D- +0.0504 3 K*0 E- NUEB ISGW2 +0.0929 3 K0 E- NUEB ISGW2 +0.0036 3 K10 E- NUEB ISGW2 +0.0038 3 K2*0 E- NUEB ISGW2 +0.0064 3 PI0 E- NUEB ISGW2 +0.0028 3 ETA E- NUEB ISGW2 +0.0011 3 ETA' E- NUEB ISGW2 +0.0030 3 RHO0 E- NUEB ISGW2 +0.0029 3 OMEG E- NUEB ISGW2 +0.0504 3 K*0 MU- NUMB ISGW2 +0.0929 3 K0 MU- NUMB ISGW2 +0.0036 3 K10 MU- NUMB ISGW2 +0.0038 3 K2*0 MU- NUMB ISGW2 +0.0064 3 PI0 MU- NUMB ISGW2 +0.0028 3 ETA MU- NUMB ISGW2 +0.0011 3 ETA' MU- NUMB ISGW2 +0.0030 3 RHO0 MU- NUMB ISGW2 +0.0029 3 OMEG MU- NUMB ISGW2 +0.0009 2 MU- NUMB PHSP +0.0024 2 TAU- NUTB PHSP +0.0292 2 K0 PI- PHSP2 +0.0722 2 RHO- K0 SVS +0.0807 2 A1- K0 SVS +0.0213 2 K*0 PI- SVS +0.0508 2 K1*0 PI- SVS +0.0345 2 K2*0 PI- PHSP +0.0503 2 K*0 RHO- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.0548 3 K+ PI- PI- PHSP +0.0155 3 K0 PI0 PI- PHSP +0.0100 3 K0 ETA PI- PHSP +0.0050 3 K0 RHO0 PI- PHSP +0.0050 3 K0 OMEG PI- PHSP +0.0096 3 K+ RHO- PI- PHSP +0.0200 3 K*+ PI- PI- PHSP +0.0100 3 K*0 PI0 PI- PHSP +0.0100 3 K*0 ETA PI- PHSP +0.0078 3 K*0 RHO0 PI- PHSP +0.0050 3 K*0 OMEG PI- PHSP +0.0100 3 K*+ RHO- PI- PHSP +0.0060 4 K+ PI- PI- PI0 PHSP +0.0100 4 K0 PI- PI- PI+ PHSP +0.0200 4 K0 PI- PI0 PI0 PHSP +0.0035 5 K+ PI- PI- PI- PI+ PHSP +0.0035 5 K+ PI- PI- PI0 PI0 PHSP +0.0035 5 K0 PI- PI- PI+ PI0 PHSP +0.0035 5 K0 PI- PI0 PI0 PI0 PHSP +0.0200 3 K0 K0 K- PHSP +0.0070 2 PHI PI- SVS +0.0100 3 PHI PI- PI0 PHSP +0.0082 2 K0 K- PHSP2 +0.0052 2 K*0 K- SVS +0.0052 2 K*- K0 SVS +0.0140 2 K*0 K*- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.0040 3 K- K+ PI- PHSP +0.0010 3 K- K0 PI0 PHSP +0.0010 3 KB K0 PI- PHSP +0.0010 3 K*- K+ PI- PHSP +0.0010 3 K- K*+ PI- PHSP +0.0010 3 K*- K0 PI0 PHSP +0.0010 3 K- K*0 PI0 PHSP +0.0010 3 K*0 KB PI- PHSP +0.0010 3 K0 K*B PI- PHSP +0.0026 2 PI0 PI- PHSP2 +0.0002 2 RHO0 PI- SVS +0.0032 3 PI- PI+ PI- PHSP +0.0030 3 PI- PI0 PI0 PHSP +0.0030 4 PI- PI+ PI- PI0 PHSP +0.0020 4 PI- PI0 PI0 PI0 PHSP +0.0076 2 ETA PI- PHSP2 +0.0030 3 ETA PI- PI0 PHSP +0.0030 4 ETA PI- PI+ PI- PHSP +0.0020 4 ETA PI- PI0 PI0 PHSP +Enddecay +Alias K*-R K*- +Alias K*BR K*B +Decay K*-R +1.0000 2 KB PI- VSS +Enddecay +Decay K*BR +1.0000 2 KB PI0 VSS +Enddecay +Decay D0 +0.0198 3 K*- E+ NUE ISGW2 +0.0364 3 K- E+ NUE ISGW2 +0.0014 3 K1- E+ NUE ISGW2 +0.0015 3 K2*- E+ NUE ISGW2 +0.0050 3 PI- E+ NUE ISGW2 +0.0029 3 RHO- E+ NUE ISGW2 +0.0198 3 K*- MU+ NUM ISGW2 +0.0364 3 K- MU+ NUM ISGW2 +0.0014 3 K1- MU+ NUM ISGW2 +0.0015 3 K2*- MU+ NUM ISGW2 +0.0050 3 PI- MU+ NUM ISGW2 +0.0029 3 RHO- MU+ NUM ISGW2 +0.0391 2 K- PI+ PHSP2 +0.0220 2 KB PI0 PHSP2 +0.0077 2 KB ETA PHSP2 +0.0174 2 KB ETA' PHSP2 +0.0207 2 OMEG KB SVS +0.0159 2 K*B ETA SVS +0.0020 2 K*B ETA' SVS +0.0798 2 A1+ K- SVS +0.0600 2 K*- RHO+ SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.0161 2 K*B RHO0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.0111 2 K*B OMEG SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.1307 3 K- PI+ PI0 D0_DALITZ +0.0259 2 K*-R PI+ SVS +0.0085 2 K*BR PI0 SVS +0.0107 2 K1- PI+ SVS +0.0071 2 K1B PI0 SVS +0.0213 3 KB PI+ PI- PHSP +0.0145 3 KB PI0 PI0 PHSP +0.0174 3 K*B PI+ PI- PHSP +0.0116 3 K*B PI0 PI0 PHSP +0.0100 3 K*- PI+ PI0 PHSP +0.0068 3 K- RHO+ PI0 PHSP +0.0060 3 K- PI+ RHO0 PHSP +0.0303 3 K- PI+ OMEG PHSP +0.0100 3 K- PI+ ETA PHSP +0.0075 3 K- PI+ ETA' PHSP +0.0143 4 K- PI+ PI+ PI- PHSP +0.0407 4 KB PI+ PI- PI0 PHSP +0.0698 4 K- PI+ PI0 PI0 PHSP +0.0200 4 KB PI0 PI0 PI0 PHSP +0.0038 5 K- PI+ PI+ PI- PI0 PHSP +0.0038 5 K- PI+ PI0 PI0 PI0 PHSP +0.0038 5 KB PI+ PI- PI+ PI- PHSP +0.0038 5 KB PI+ PI- PI0 PI0 PHSP +0.0088 2 PHI KB SVS +0.0051 3 KB K+ K- PHSP +0.0010 3 K0S K0S K0S PHSP +0.0044 2 K+ K- PHSP2 +0.0006 2 K0S K0S PHSP2 +0.0006 2 K0L K0L PHSP2 +0.0020 2 K*0 KB SVS +0.0020 2 K*B K0 SVS +0.0019 2 K*- K+ SVS +0.0035 2 K*+ K- SVS +0.0010 2 K*B K*0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.0020 2 PHI PI0 SVS +0.0025 3 PHI PI+ PI- PHSP +0.0030 4 K+ K- PI+ PI- PHSP +0.0030 4 K+ K- PI0 PI0 PHSP +0.0015 4 KB K0 PI+ PI- PHSP +0.0015 4 KB K0 PI0 PI0 PHSP +0.0015 2 PI+ PI- PHSP2 +0.0009 2 PI0 PI0 PHSP2 +0.0010 2 ETA PI0 PHSP2 +0.0010 2 ETA' PI0 PHSP2 +0.0010 2 ETA ETA PHSP2 +0.0040 2 RHO+ PI- SVS +0.0040 2 RHO- PI+ SVS +0.0020 2 RHO0 PI0 SVS +0.0020 3 PI+ PI- PI0 PHSP +0.0010 3 PI0 PI0 PI0 PHSP +0.0081 4 PI+ PI+ PI- PI- PHSP +0.0050 4 PI+ PI+ PI0 PI0 PHSP +0.0140 5 PI+ PI- PI+ PI- PI0 PHSP +0.0060 5 PI+ PI- PI0 PI0 PI0 PHSP +Enddecay +Alias K*+R K*+ +Alias K*0R K*0 +Decay K*+R +1.0000 2 K0 PI+ VSS +Enddecay +Decay K*0R +1.0000 2 K0 PI0 VSS +Enddecay +Decay D0B +0.0198 3 K*+ E- NUEB ISGW2 +0.0364 3 K+ E- NUEB ISGW2 +0.0014 3 K1+ E- NUEB ISGW2 +0.0015 3 K2*+ E- NUEB ISGW2 +0.0050 3 PI+ E- NUEB ISGW2 +0.0029 3 RHO+ E- NUEB ISGW2 +0.0198 3 K*+ MU- NUMB ISGW2 +0.0364 3 K+ MU- NUMB ISGW2 +0.0014 3 K1+ MU- NUMB ISGW2 +0.0015 3 K2*+ MU- NUMB ISGW2 +0.0050 3 PI+ MU- NUMB ISGW2 +0.0029 3 RHO+ MU- NUMB ISGW2 +0.0391 2 K+ PI- PHSP2 +0.0220 2 K0 PI0 PHSP2 +0.0077 2 K0 ETA PHSP2 +0.0174 2 K0 ETA' PHSP2 +0.0207 2 OMEG K0 SVS +0.0159 2 K*0 ETA SVS +0.0020 2 K*0 ETA' SVS +0.0798 2 A1- K+ SVS +0.0600 2 K*+ RHO- SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.0161 2 K*0 RHO0 SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.0111 2 K*0 OMEG SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.1307 3 K+ PI- PI0 D0_DALITZ +0.0259 2 K*+R PI- SVS +0.0085 2 K*0R PI0 SVS +0.0107 2 K1+ PI- SVS +0.0071 2 K10 PI0 SVS +0.0213 3 K0 PI+ PI- PHSP +0.0145 3 K0 PI0 PI0 PHSP +0.0174 3 K*0 PI+ PI- PHSP +0.0116 3 K*0 PI0 PI0 PHSP +0.0100 3 K*+ PI- PI0 PHSP +0.0068 3 K+ RHO- PI0 PHSP +0.0060 3 K+ PI- RHO0 PHSP +0.0303 3 K+ PI- OMEG PHSP +0.0100 3 K+ PI- ETA PHSP +0.0075 3 K+ PI- ETA' PHSP +0.0143 4 K+ PI- PI+ PI- PHSP +0.0407 4 K0 PI+ PI- PI0 PHSP +0.0698 4 K+ PI- PI0 PI0 PHSP +0.0200 4 K0 PI0 PI0 PI0 PHSP +0.0038 5 K+ PI- PI+ PI- PI0 PHSP +0.0038 5 K+ PI- PI0 PI0 PI0 PHSP +0.0038 5 K0 PI+ PI- PI+ PI- PHSP +0.0038 5 K0 PI+ PI- PI0 PI0 PHSP +0.0088 2 PHI K0 SVS +0.0051 3 K0 K+ K- PHSP +0.0010 3 K0S K0S K0S PHSP +0.0044 2 K+ K- PHSP2 +0.0006 2 K0S K0S PHSP2 +0.0006 2 K0L K0L PHSP2 +0.0020 2 K*B K0 SVS +0.0020 2 K*0 KB SVS +0.0019 2 K*+ K- SVS +0.0035 2 K*- K+ SVS +0.0010 2 K*0 K*B SVV_HELAMP 1.0 0.0 1.0 0.0 1.0 0.0 +0.0020 2 PHI PI0 SVS +0.0025 3 PHI PI+ PI- PHSP +0.0030 4 K+ K- PI+ PI- PHSP +0.0030 4 K+ K- PI0 PI0 PHSP +0.0015 4 KB K0 PI+ PI- PHSP +0.0015 4 KB K0 PI0 PI0 PHSP +0.0015 2 PI+ PI- PHSP2 +0.0009 2 PI0 PI0 PHSP2 +0.0010 2 ETA PI0 PHSP2 +0.0010 2 ETA' PI0 PHSP2 +0.0010 2 ETA ETA PHSP2 +0.0040 2 RHO+ PI- SVS +0.0040 2 RHO- PI+ SVS +0.0020 2 RHO0 PI0 SVS +0.0020 3 PI+ PI- PI0 PHSP +0.0010 3 PI0 PI0 PI0 PHSP +0.0081 4 PI+ PI+ PI- PI- PHSP +0.0050 4 PI+ PI+ PI0 PI0 PHSP +0.0140 5 PI+ PI- PI+ PI- PI0 PHSP +0.0060 5 PI+ PI- PI0 PI0 PI0 PHSP +Enddecay +Decay RHO0 +1.000 2 PI+ PI- VSS +Enddecay +Decay RHO+ +1.000 2 PI+ PI0 VSS +Enddecay +Decay RHO- +1.000 2 PI- PI0 VSS +Enddecay +Decay F1 +0.1500 3 RHO0 PI+ PI- PHSP +0.0500 3 RHO0 PI0 PI0 PHSP +0.0500 3 RHO+ PI- PI0 PHSP +0.0500 3 RHO- PI+ PI0 PHSP +0.1400 2 A00 PI0 VSS +0.1400 2 A0+ PI- VSS +0.1400 2 A0- PI+ VSS +0.0700 3 ETA PI+ PI- PHSP +0.0300 3 ETA PI0 PI0 PHSP +0.0300 3 K+ K- PI0 PHSP +0.0200 3 K0 KB PI0 PHSP +0.0300 3 KB K+ PI- PHSP +0.0300 3 K0 K- PI+ PHSP +0.0700 2 GAMM RHO0 PHSP +Enddecay +Decay F1' +0.2500 3 K+ K- PI0 PHSP +0.2500 3 K0 KB PI0 PHSP +0.2500 3 KB K+ PI- PHSP +0.2500 3 K0 K- PI+ PHSP +Enddecay +Decay F2 +0.5670 2 PI+ PI- TSS +0.2840 2 PI0 PI0 TSS +0.0280 4 PI+ PI- PI+ PI- PHSP +0.0660 4 PI+ PI- PI0 PI0 PHSP +0.0030 4 PI0 PI0 PI0 PI0 PHSP +0.0240 2 K+ K- TSS +0.0240 2 K0L K0S TSS +0.0040 2 ETA ETA TSS +Enddecay +Decay F2' +0.3560 2 K+ K- TSS +0.3560 2 K0L K0S TSS +0.2790 2 ETA ETA TSS +0.0060 2 PI+ PI- TSS +0.0030 2 PI0 PI0 TSS +Enddecay +Decay H1 +0.3333 2 RHO+ PI- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.3333 2 RHO- PI+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.3334 2 RHO0 PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +Enddecay +Decay H1' +0.2500 2 K*+ K- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.2500 2 K*- K+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.2500 2 K*B K0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.2500 2 K*0 KB VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +Enddecay +Decay 1P1P +0.3333 2 D*+ PI0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0 +0.6667 2 D*0 PI+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0 +Enddecay +Decay 1P10 +0.6667 2 D*+ PI- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0 +0.3333 2 D*0 PI0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0 +Enddecay +Decay 1P1B +0.3333 2 D*B PI0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0 +0.6667 2 D*- PI+ VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0 +Enddecay +Decay 1P1N +0.3333 2 D*- PI0 VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0 +0.6667 2 D*B PI- VVS_PWAVE 0.0 0.0 0.0 0.0 1.0 0.0 +Enddecay +Decay 3P10 +0.6667 2 D*+ PI- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.3333 2 D*0 PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +Enddecay +Decay 3P1B +0.3333 2 D*B PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.6667 2 D*- PI+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +Enddecay +Decay 3P1P +0.3333 2 D*+ PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.6667 2 D*0 PI+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +Enddecay +Decay 3P1N +0.3333 2 D*- PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.6667 2 D*B PI- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +Enddecay +Decay 3P20 +0.2090 2 D*+ PI- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.1030 2 D*0 PI0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.4590 2 D+ PI- TSS +0.2290 2 D0 PI0 TSS +Enddecay +Decay 3P2B +0.1030 2 D*B PI0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.2090 2 D*- PI+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.2290 2 D0B PI0 TSS +0.4590 2 D- PI+ TSS +Enddecay +Decay 3P2P +0.1030 2 D*+ PI0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.2090 2 D*0 PI+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.2290 2 D+ PI0 TSS +0.4590 2 D0 PI+ TSS +Enddecay +Decay 3P2N +0.1030 2 D*- PI0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.2090 2 D*B PI- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.2290 2 D- PI0 TSS +0.4590 2 D0B PI- TSS +Enddecay +Decay D21S00 +0.6667 2 D*+ PI- SVS +0.3333 2 D*0 PI0 SVS +Enddecay +Decay D21S0B +0.3333 2 D*B PI0 SVS +0.6667 2 D*- PI+ SVS +Enddecay +Decay D21S0P +0.3333 2 D*+ PI0 SVS +0.6667 2 D*0 PI+ SVS +Enddecay +Decay D21S0N +0.3333 2 D*- PI0 SVS +0.6667 2 D*B PI- SVS +Enddecay +Decay D23S10 +0.3333 2 D*+ PI- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1667 2 D*0 PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1667 2 D0 PI0 VSS +0.3333 2 D+ PI- VSS +Enddecay +Decay D23S1B +0.1667 2 D*B PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.3333 2 D*- PI+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1667 2 D0B PI0 VSS +0.3333 2 D- PI+ VSS +Enddecay +Decay D23S1P +0.1667 2 D*+ PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.3333 2 D*0 PI+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1667 2 D+ PI0 VSS +0.3333 2 D0 PI+ VSS +Enddecay +Decay D23S1N +0.1667 2 D*- PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.3333 2 D*B PI- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.1667 2 D- PI0 VSS +0.3333 2 D0B PI- VSS +Enddecay +Decay OMEG +0.8880 3 PI- PI+ PI0 OMEGA_DALITZ +0.0850 2 PI0 GAMM VSP_PWAVE +0.0221 2 PI- PI+ VSS +0.0008 2 ETA GAMM VSP_PWAVE +0.0006 3 PI0 E+ E- PHSP +0.0001 3 PI0 MU+ MU- PHSP +0.0020 3 PI+ PI- GAMM PHSP +0.0004 3 PI0 PI0 GAMM PHSP +0.0010 4 PI+ PI- PI+ PI- PHSP +Enddecay +Decay A1+ +0.4920 2 RHO0 PI+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.5080 2 RHO+ PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +Enddecay +Decay A10 +0.5000 2 RHO- PI+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.5000 2 RHO+ PI- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +Enddecay +Decay A1- +0.4920 2 RHO0 PI- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.5080 2 RHO- PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +Enddecay +Decay A2+ +0.3500 2 RHO0 PI+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.3500 2 RHO+ PI0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.1440 2 ETA PI+ TSS +0.1050 3 OMEG PI+ PI0 PHSP +0.0480 2 KB K+ TSS +0.0030 2 PI+ GAMM PHSP +Enddecay +Decay A2- +0.3500 2 RHO0 PI- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.3500 2 RHO- PI0 TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.1440 2 ETA PI- TSS +0.1050 3 OMEG PI- PI0 PHSP +0.0480 2 KB K- TSS +0.0030 2 PI- GAMM PHSP +Enddecay +Decay A20 +0.3500 2 RHO+ PI- TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.3500 2 RHO- PI+ TVS_PWAVE 0.0 0.0 1.0 0.0 0.0 0.0 +0.1440 2 ETA PI0 TSS +0.1050 3 OMEG PI+ PI- PHSP +0.0240 2 K+ K- TSS +0.0120 2 K0L K0L TSS +0.0120 2 K0S K0S TSS +0.0030 2 PI0 GAMM PHSP +Enddecay +Decay B1+ +0.9970 2 OMEG PI+ VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.0030 2 PI+ GAMM VSP_PWAVE +Enddecay +Decay B1- +0.9970 2 OMEG PI- VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.0030 2 PI- GAMM VSP_PWAVE +Enddecay +Decay B10 +0.9970 2 OMEG PI0 VVS_PWAVE 1.0 0.0 0.0 0.0 0.0 0.0 +0.0030 2 PI0 GAMM VSP_PWAVE +Enddecay +End + + + + + + + + + + diff --git a/TEvtGen/EvtGen/evt.pdl b/TEvtGen/EvtGen/evt.pdl new file mode 100644 index 00000000000..52aeb48bcc2 --- /dev/null +++ b/TEvtGen/EvtGen/evt.pdl @@ -0,0 +1,673 @@ +* type name id mass/GeV width/GeV max_Dm/GeV 3*charge 2*spin lifetime*c/mm Lund-KC +* +add p Parton d 1 0.0099 0 0 -1 1 0 1 +add p Parton anti-d -1 0.0099 0 0 1 1 0 0 +add p Parton u 2 0.0056 0 0 2 1 0 2 +add p Parton anti-u -2 0.0056 0 0 -2 1 0 0 +add p Parton s 3 0.199 0 0 -1 1 0 3 +add p Parton anti-s -3 0.199 0 0 1 1 0 0 +add p Parton c 4 1.35 0 0 2 1 0 4 +add p Parton anti-c -4 1.35 0 0 -2 1 0 0 +add p Parton b 5 5. 0 0 -1 1 0 5 +add p Parton anti-b -5 5. 0 0 1 1 0 0 +add p Parton t 6 175. 0 0 2 1 0 6 +add p Parton anti-t -6 175. 0 0 -2 1 0 0 +add p Parton b' 7 400. 0 0 -1 1 0 7 +add p Parton anti-b' -7 400. 0 0 1 1 0 0 +add p Parton t' 8 500. 0 0 2 1 0 8 +add p Parton anti-t' -8 500. 0 0 -2 1 0 0 +add p InterBoson g 21 0 0 0 0 2 0 21 +add p Lepton e- 11 0.000510999 0 0 -3 1 0 11 +add p Lepton e+ -11 0.000510999 0 0 3 1 0 0 +add p Lepton nu_e 12 0 0 0 0 1 0 12 +add p Lepton anti-nu_e -12 0 0 0 0 1 0 0 +add p Lepton mu- 13 0.1056584 0 0 -3 1 658654. 13 +add p Lepton mu+ -13 0.1056584 0 0 3 1 658654. 0 +add p Lepton nu_mu 14 0 0 0 0 1 0 14 +add p Lepton anti-nu_mu -14 0 0 0 0 1 0 0 +add p Lepton tau- 15 1.77690 0 0 -3 1 0.08711 15 +add p Lepton tau+ -15 1.77690 0 0 3 1 0.08711 0 +add p Lepton nu_tau 16 0 0 0 0 1 0 16 +add p Lepton anti-nu_tau -16 0 0 0 0 1 0 0 +add p Lepton L- 17 400. 0 0 -3 1 0 17 +add p Lepton L+ -17 400. 0 0 3 1 0 0 +add p Lepton nu_L 18 0 0 0 0 1 0 18 +add p Lepton anti-nu_L -18 0 0 0 0 1 0 0 +add p InterBoson gamma 22 0 0 0 0 2 0 22 +add p Special vpho 10022 0 0 0 0 2 0 0 +add p InterBoson gammaFSR 100022 0.000000001 0 0 0 2 0 0 +add p Special gammafsr 100022 0 0 0 0 2 0 0 +add p Special Cerenkov 20022 0 0 0 0 2 0 0 +add p InterBoson Z0 23 91.1876 2.4952 10. 0 2 0 23 +add p InterBoson W+ 24 80.403 2.141 10. 3 2 0 24 +add p InterBoson W- -24 80.403 2.141 10. -3 2 0 0 +add p InterBoson Higgs0 25 200. 0 0 0 0 0 25 +add p InterBoson reggeon 28 0 0 0 0 0 0 28 +add p InterBoson pomeron 29 0 0 0 0 0 0 29 +add p InterBoson Z'0 32 500. 0 0 0 2 0 32 +add p InterBoson Z''0 33 900. 0 0 0 2 0 33 +add p InterBoson W'+ 34 500. 0 0 3 2 0 34 +add p InterBoson W'- -34 500. 0 0 -3 2 0 0 +add p InterBoson Higgs'0 35 300. 0 0 0 0 0 35 +add p InterBoson A0 36 300. 0 0 0 0 0 36 +add p InterBoson Higgs+ 37 300. 0 0 3 0 0 37 +add p InterBoson Higgs- -37 300. 0 0 -3 0 0 0 +add p InterBoson R0 40 5000. 0 0 0 2 0 40 +add p InterBoson anti-R0 -40 5000. 0 0 0 2 0 0 +add p Special Xu0 41 1. 0 0 0 0 0 41 +add p Special Xu+ 42 1. 0 0 +3 0 0 42 +add p Special Xu- -42 1. 0 0 -3 0 0 0 +add p Special specflav 81 0 0 0 0 0 0 81 +add p Special rndmflav 82 0 0 0 0 0 0 82 +add p Special anti-rndmflav -82 0 0 0 0 0 0 0 +add p Special phasespa 83 0 0 0 0 0 0 83 +add p Special c-hadron 84 2.0 0 0 2 0 0.1 84 +add p Special anti-c-hadron -84 2.0 0 0 -2 0 0.1 0 +add p Special b-hadron 85 5.0 0 0 -1 0 0.387 85 +add p Special anti-b-hadron -85 5.0 0 0 1 0 0.387 0 +add p Special t-hadron 86 175. 0 0 2 0 0 86 +add p Special anti-t-hadron -86 175. 0 0 -2 0 0 0 +add p Special b'-hadron 87 400. 0 0 -1 0 0 87 +add p Special anti-b'-hadron -87 400. 0 0 1 0 0 0 +add p Special t'-hadron 88 500. 0 0 2 0 0 88 +add p Special anti-t'-hadron -88 500. 0 0 -2 0 0 0 +add p Special Wvirt+ 89 0 0 0 3 0 0 89 +add p Special Wvirt- -89 0 0 0 -3 0 0 0 +add p Special diquark 90 0 0 0 0 0 0 90 +add p Special anti-diquark -90 0 0 0 0 0 0 0 +add p Special cluster 91 0 0 0 0 0 0 91 +add p Special string 92 0 0 0 0 0 0 92 +add p Special indep 93 0 0 0 0 0 0 93 +add p Special CMshower 94 0 0 0 0 0 0 94 +add p Special SPHEaxis 95 0 0 0 0 0 0 95 +add p Special THRUaxis 96 0 0 0 0 0 0 96 +add p Special CLUSjet 97 0 0 0 0 0 0 97 +add p Special CELLjet 98 0 0 0 0 0 0 98 +add p Special table 99 0 0 0 0 0 0 99 +add p Special bsbottom 500 9.2 0.01 0 0 0 0 500 +add p Meson pi0 111 0.134977 0 0 0 0 0 111 +add p Meson pi+ 211 0.139570 0 0 3 0 7804.5 101 +add p Meson pi- -211 0.139570 0 0 -3 0 7804.5 0 +add p Special pi_diff+ 210 0 0 0 3 0 0 281 +add p Special pi_diff- -210 0 0 0 -3 0 0 0 +add p Meson pi(2S)0 20111 1.30 0.40 0.5 0 0 0 0 +add p Meson pi(2S)+ 20211 1.30 0.40 0.5 3 0 0 0 +add p Meson pi(2S)- -20211 1.30 0.40 0.5 -3 0 0 0 +add p Meson eta 221 0.547785 0 0 0 0 0 112 +add p Meson eta(2S) 20221 1.294 0.055 0.2 0 0 0 0 +add p Meson eta' 331 0.95778 0.0002 0.002 0 0 0 113 +add p Meson eta(1405) 9020221 1.4098 0.0511 0.3 0 0 0 0 +add p Meson eta(1475) 100331 1.476 0.087 0.45 0 0 0 0 +add p Meson rho0 113 0.77549 0.1494 0.48 0 2 0 131 +add p Special rho_diff0 110 0 0 0 0 2 0 284 +add p Meson rho+ 213 0.77549 0.1494 0.48 3 2 0 121 +add p Meson rho- -213 0.77549 0.1494 0.48 -3 2 0 0 +add p Meson rho(2S)0 30113 1.465 0.40 0.5 0 2 0 0 +add p Meson rho(2S)+ 30213 1.465 0.40 0.5 3 2 0 0 +add p Meson rho(2S)- -30213 1.465 0.40 0.5 -3 2 0 0 +add p Meson rho(3S)0 40113 1.720 0.250 0.5 0 2 0 0 +add p Meson rho(3S)+ 40213 1.720 0.250 0.5 3 2 0 0 +add p Meson rho(3S)- -40213 1.720 0.250 0.5 -3 2 0 0 +add p Meson omega 223 0.78265 0.00849 0.18 0 2 0 132 +add p Special omega_diff 220 0 0 0 0 2 0 285 +add p Meson omega(2S) 30223 1.42 0.174 0.4 0 2 0 0 +add p Meson phi 333 1.019455 0.00426 0.032 0 2 0 133 +add p Special phi_diff 330 0 0 0 0 2 0 286 +add p Meson a_00 10111 0.9847 0.057 0.050 0 0 0 171 +add p Meson a_0+ 10211 0.9847 0.057 0.050 3 0 0 161 +add p Meson a_0- -10211 0.9847 0.057 0.050 -3 0 0 0 +add p Meson f_0 10221 0.980 0.05 0.0 0 0 0 172 +add p Meson f'_0 10331 1.4 0.3 0.35 0 0 0 173 +add p Meson b_10 10113 1.2295 0.142 0.25 0 2 0 151 +add p Meson b_1+ 10213 1.2295 0.142 0.25 3 2 0 141 +add p Meson b_1- -10213 1.2295 0.142 0.25 -3 2 0 0 +add p Meson h_1 10223 1.17 0.36 0.2 0 2 0 152 +add p Meson h'_1 10333 1.386 0.091 0.010 0 2 0 153 +add p Meson a_10 20113 1.23 0.4 0.6 0 2 0 191 +add p Meson a_1+ 20213 1.23 0.4 0.6 3 2 0 181 +add p Meson a_1- -20213 1.23 0.4 0.6 -3 2 0 0 +add p Meson f_1 20223 1.2818 0.0242 0.05 0 2 0 192 +add p Meson f'_1 20333 1.4263 0.0549 0.10 0 2 0 193 +add p Meson a_20 115 1.3183 0.107 0.5 0 4 0 211 +add p Meson a_2+ 215 1.3183 0.107 0.5 3 4 0 201 +add p Meson a_2- -215 1.3183 0.107 0.5 -3 4 0 0 +add p Meson f_2 225 1.2751 0.185 0.27 0 4 0 212 +add p Meson f_0(1500) 50221 1.505 0.109 0.3 0 0 0 0 +add p Meson f_0(1710) 110331 1.724 0.137 0.5 0 0 0 0 +add p Meson f'_2 335 1.525 0.073 0.2 0 4 0 213 +add p Meson f_2(1950) 9050225 1.944 0.472 1.0 0 4 0 0 +add p Meson f_4(2050) 229 2.018 0.237 0.7 0 8 0 0 +add p Meson K0 311 0.497648 0 0 0 0 0 102 +add p Meson anti-K0 -311 0.497648 0 0 0 0 0 0 +add p Meson K_S0 310 0.497648 0 0 0 0 26.842 222 +add p Meson K_L0 130 0.497648 0 0 0 0 15340. 221 +add p Meson K+ 321 0.493677 0 0 3 0 3713. 103 +add p Meson K- -321 0.493677 0 0 -3 0 3713. 0 +add p Meson K*0 313 0.89600 0.0503 0.23 0 2 0 122 +add p Meson anti-K*0 -313 0.89600 0.0503 0.23 0 2 0 0 +add p Meson K*+ 323 0.89166 0.0508 0.23 3 2 0 123 +add p Meson K*- -323 0.89166 0.0508 0.23 -3 2 0 0 +add p Meson K_0*0 10311 1.414 0.290 0.6 0 0 0 162 +add p Meson anti-K_0*0 -10311 1.414 0.290 0.6 0 0 0 0 +add p Meson K_0*+ 10321 1.414 0.232 0.6 3 0 0 163 +add p Meson K_0*- -10321 1.414 0.232 0.6 -3 0 0 0 +add p Meson K_10 10313 1.272 0.09 0.2 0 2 0 142 +add p Meson anti-K_10 -10313 1.272 0.09 0.2 0 2 0 0 +add p Meson K_1+ 10323 1.272 0.09 0.2 3 2 0 143 +add p Meson K_1- -10323 1.272 0.09 0.2 -3 2 0 0 +add p Meson K_2*0 315 1.4324 0.109 0.7 0 4 0 202 +add p Meson anti-K_2*0 -315 1.4324 0.109 0.7 0 4 0 0 +add p Meson K_2*+ 325 1.4256 0.0985 0.7 3 4 0 203 +add p Meson K_2*- -325 1.4256 0.0985 0.7 -3 4 0 0 +add p Meson K'_10 20313 1.403 0.174 0.4 0 2 0 182 +add p Meson anti-K'_10 -20313 1.403 0.174 0.4 0 2 0 0 +add p Meson K'_1+ 20323 1.403 0.174 0.4 3 2 0 183 +add p Meson K'_1- -20323 1.403 0.174 0.4 -3 2 0 0 +add p Meson K'*0 100313 1.414 0.232 0.6 0 2 0 425 +add p Meson anti-K'*0 -100313 1.414 0.232 0.6 0 2 0 0 +add p Meson K'*+ 100323 1.414 0.232 0.6 3 2 0 426 +add p Meson K'*- -100323 1.414 0.232 0.6 -3 2 0 0 +add p Meson K''*0 30313 1.717 0.322 0.7 0 2 0 427 +add p Meson anti-K''*0 -30313 1.717 0.322 0.7 0 2 0 0 +add p Meson K''*+ 30323 1.717 0.322 0.7 3 2 0 428 +add p Meson K''*- -30323 1.717 0.322 0.7 -3 2 0 0 +add p Meson K_3*0 317 1.776 0.159 0.7 0 6 0 429 +add p Meson anti-K_3*0 -317 1.776 0.159 0.7 0 6 0 0 +add p Meson K_3*+ 327 1.776 0.159 0.7 3 6 0 430 +add p Meson K_3*- -327 1.776 0.159 0.7 -3 6 0 0 +add p Meson K_4*0 319 2.045 0.198 0.2 0 8 0 431 +add p Meson anti-K_4*0 -319 2.045 0.198 0.2 0 8 0 0 +add p Meson K_4*+ 329 2.045 0.198 0.2 3 8 0 432 +add p Meson K_4*- -329 2.045 0.198 0.2 -3 8 0 0 +add p Meson D+ 411 1.86962 0 0 3 0 0.3118 104 +add p Meson D- -411 1.86962 0 0 -3 0 0.3118 0 +add p Meson D0 421 1.86484 0 0 0 0 0.1229 105 +add p Meson anti-D0 -421 1.86484 0 0 0 0 0.1229 0 +add p Meson D0H 422 1.86484 0 0 0 0 0.1234 105 +add p Meson D0L -422 1.86484 0 0 0 0 0.1234 0 +add p Meson D*+ 413 2.01027 0.000096 0.0004 3 2 0 124 +add p Meson D*- -413 2.01027 0.000096 0.0004 -3 2 0 0 +add p Meson D*0 423 2.00697 0 0 0 2 0 125 +add p Meson anti-D*0 -423 2.00697 0 0 0 2 0 0 +add p Meson D_0*+ 10411 2.403 0.283 0.303 3 0 0 164 +add p Meson D_0*- -10411 2.403 0.283 0.303 -3 0 0 0 +add p Meson D_0*0 10421 2.352 0.261 0.299 0 0 0 165 +add p Meson anti-D_0*0 -10421 2.352 0.261 0.299 0 0 0 0 +add p Meson D_1+ 10413 2.4234 0.025 0.28 3 2 0 144 +add p Meson D_1- -10413 2.4234 0.025 0.28 -3 2 0 0 +add p Meson D_10 10423 2.4223 0.0204 0.272 0 2 0 145 +add p Meson anti-D_10 -10423 2.4223 0.0204 0.272 0 2 0 0 +add p Meson D_2*+ 415 2.459 0.029 0.312 3 4 0 204 +add p Meson D_2*- -415 2.459 0.029 0.312 -3 4 0 0 +add p Meson D_2*0 425 2.4611 0.043 0.309 0 4 0 205 +add p Meson anti-D_2*0 -425 2.4611 0.043 0.309 0 4 0 0 +add p Meson D'_1+ 20413 2.461 0.29 0.314 3 2 0 184 +add p Meson D'_1- -20413 2.461 0.29 0.314 -3 2 0 0 +add p Meson D'_10 20423 2.461 0.29 0.311 0 2 0 185 +add p Meson anti-D'_10 -20423 2.461 0.29 0.311 0 2 0 0 +add p Meson D_s+ 431 1.96849 0 0 3 0 0.1499 106 +add p Meson D_s- -431 1.96849 0 0 -3 0 0.1499 0 +add p Meson D_s*+ 433 2.1123 0 0 3 2 0 126 +add p Meson D_s*- -433 2.1123 0 0 -3 2 0 0 +add p Meson D_s0*+ 10431 2.3178 0 0 3 0 0 166 +add p Meson D_s0*- -10431 2.3178 0 0 -3 0 0 0 +add p Meson D_s1+ 10433 2.4596 0 0 3 2 0 146 +add p Meson D_s1- -10433 2.4596 0 0 -3 2 0 0 +add p Meson D_s2*+ 435 2.5726 0.020 0.06 3 4 0 206 +add p Meson D_s2*- -435 2.5726 0.020 0.06 -3 4 0 0 +add p Meson D'_s1+ 20433 2.53535 0 0 3 2 0 186 +add p Meson D'_s1- -20433 2.53535 0 0 -3 2 0 0 +add p Meson D(2S)+ 30411 2.58 0 0 3 0 0 0 +add p Meson D(2S)- -30411 2.58 0 0 -3 0 0 0 +add p Meson D(2S)0 30421 2.58 0 0 0 0 0 0 +add p Meson anti-D(2S)0 -30421 2.58 0 0 0 0 0 0 +add p Meson D*(2S)+ 30413 2.64 0 0 3 2 0 0 +add p Meson D*(2S)- -30413 2.64 0 0 -3 2 0 0 +add p Meson D*(2S)0 30423 2.64 0 0 0 2 0 0 +add p Meson anti-D*(2S)0 -30423 2.64 0 0 0 2 0 0 +add p Meson B0 511 5.2794 0 0 0 0 0.462 107 +add p Meson anti-B0 -511 5.2794 0 0 0 0 0.462 0 +add p Meson B+ 521 5.2791 0 0 3 0 0.502 108 +add p Meson B- -521 5.2791 0 0 -3 0 0.502 0 +add p Meson B0L 150 5.2794 0 0 0 0 0.462 0 +add p Meson B0H 510 5.2794 0 0 0 0 0.462 0 +add p Meson B_s0L 350 5.36930 0 0 0 0 0.490 0 +add p Meson B_s0H 530 5.36930 0 0 0 0 0.430 0 +add p Meson B*0 513 5.3248 0 0 0 2 0 127 +add p Meson anti-B*0 -513 5.3248 0 0 0 2 0 0 +add p Meson B*+ 523 5.3246 0 0 3 2 0 128 +add p Meson B*- -523 5.3246 0 0 -3 2 0 0 +add p Meson B_0*0 10511 5.697 0.1 0.2 0 0 0 167 +add p Meson anti-B_0*0 -10511 5.697 0.1 0.2 0 0 0 0 +add p Meson B_0*+ 10521 5.697 0.1 0.2 3 0 0 168 +add p Meson B_0*- -10521 5.697 0.1 0.2 -3 0 0 0 +add p Meson B_10 10513 5.679 0.1 0.2 0 2 0 147 +add p Meson anti-B_10 -10513 5.679 0.1 0.2 0 2 0 0 +add p Meson B_1+ 10523 5.679 0.1 0.2 3 2 0 148 +add p Meson B_1- -10523 5.679 0.1 0.2 -3 2 0 0 +add p Meson B_2*0 515 5.692 0.1 0.2 0 4 0 207 +add p Meson anti-B_2*0 -515 5.692 0.1 0.2 0 4 0 0 +add p Meson B_2*+ 525 5.692 0.1 0.2 3 4 0 208 +add p Meson B_2*- -525 5.692 0.1 0.2 -3 4 0 0 +add p Meson B'_10 20513 5.740 0.1 0.2 0 2 0 187 +add p Meson anti-B'_10 -20513 5.740 0.1 0.2 0 2 0 0 +add p Meson B'_1+ 20523 5.740 0.1 0.2 3 2 0 188 +add p Meson B'_1- -20523 5.740 0.1 0.2 -3 2 0 0 +add p Meson B_s0 531 5.36930 0 0 0 0 0.460 109 +add p Meson anti-B_s0 -531 5.36930 0 0 0 0 0.460 0 +add p Meson B_s*0 533 5.4163 0 0 0 2 0 129 +add p Meson anti-B_s*0 -533 5.4163 0 0 0 2 0 0 +add p Meson B_s0*0 10531 5.766 0.1 0.12 0 0 0 169 +add p Meson anti-B_s0*0 -10531 5.766 0.1 0.12 0 0 0 0 +add p Meson B_s10 10533 5.810 0.1 0.12 0 2 0 149 +add p Meson anti-B_s10 -10533 5.810 0.1 0.12 0 2 0 0 +add p Meson B_s2*0 535 5.853 0.1 0.2 0 4 0 209 +add p Meson anti-B_s2*0 -535 5.853 0.1 0.2 0 4 0 0 +add p Meson B'_s10 20533 5.840 0.1 0.2 0 2 0 189 +add p Meson anti-B'_s10 -20533 5.840 0.1 0.2 0 2 0 0 +add p Meson B_c+ 541 6.400 0 0 3 0 0.140 110 +add p Meson B_c- -541 6.400 0 0 -3 0 0.140 0 +add p Meson B_c*+ 543 6.602 0 0 3 2 0 130 +add p Meson B_c*- -543 6.602 0 0 -3 2 0 0 +add p Meson B_c0*+ 10541 7.25 0.02 0.06 3 0 0 170 +add p Meson B_c0*- -10541 7.25 0.02 0.06 -3 0 0 0 +add p Meson B_c1+ 10543 7.30 0.02 0.06 3 2 0 150 +add p Meson B_c1- -10543 7.30 0.02 0.06 -3 2 0 0 +add p Meson B_c2*+ 545 7.350 0.02 0.06 3 4 0 210 +add p Meson B_c2*- -545 7.350 0.02 0.06 -3 4 0 0 +add p Meson B'_c1+ 20543 7.40 0.2 0.2 3 2 0 190 +add p Meson B'_c1- -20543 7.40 0.2 0.2 -3 2 0 0 +add p Meson eta_c 441 2.9798 0.0265 0.15 0 0 0 114 +add p Meson eta_c(2S) 20441 3.637 0.014 0.07 0 0 0 460 +add p Meson J/psi 443 3.096916 0.0000934 0.0002 0 2 0 134 +add p Special psi_diff 440 0 0 0 0 2 0 287 +add p Meson psi(2S) 30443 3.68609 0.000327 0.0008 0 2 0 231 +add p Meson psi(3770) 40443 3.7724 0.0252 0.030 0 2 0 0 +add p Meson psi(4040) 50443 4.039 0.080 0.100 0 2 0 0 +add p Meson psi(4160) 60443 4.153 0.103 0.150 0 2 0 0 +add p Meson psi(4415) 70443 4.421 0.062 0.050 0 2 0 0 +add p Meson h_c 10443 3.52528 0 0 0 2 0 154 +add p Meson chi_c0 10441 3.41475 0.0104 0.104 0 0 0 174 +add p Meson chi_c1 20443 3.51066 0.00089 0.01 0 2 0 194 +add p Meson chi_c2 445 3.55620 0.00205 0.021 0 4 0 214 +add p Meson eta_b 551 9.403 0 0 0 0 0 115 +add p Meson eta_b(2S) 20551 9.997 0 0 0 0 0 401 +add p Meson eta_b(3S) 40551 10.335 0 0 0 0 0 402 +add p Meson Upsilon 553 9.46030 0.00005402 0.0005 0 2 0 135 +add p Meson Upsilon(2S) 30553 10.02326 0.00003198 0.0004 0 2 0 235 +add p Meson Upsilon(3S) 60553 10.3552 0.00002032 0.00026 0 2 0 403 +add p Meson Upsilon(4S) 70553 10.5794 0.0205 0.039 0 2 0 404 +add p Meson Upsilon(5S) 80553 10.865 0.110 0 0 2 0 405 +add p Meson h_b 10553 9.875 0 0 0 2 0 155 +add p Meson h_b(2P) 40553 10.25500 0 0 0 2 0 422 +add p Meson h_b(3P) 100553 10.51600 0 0 0 2 0 423 +add p Meson chi_b0 10551 9.85944 0 0 0 0 0 175 +add p Meson chi_b1 20553 9.89278 0 0 0 2 0 195 +add p Meson chi_b2 555 9.91221 0 0 0 4 0 215 +add p Meson chi_b0(2P) 30551 10.2325 0 0 0 0 0 410 +add p Meson chi_b1(2P) 50553 10.25564 0 0 0 2 0 411 +add p Meson chi_b2(2P) 10555 10.26865 0 0 0 4 0 412 +add p Meson chi_b0(3P) 50551 10.50070 0 0 0 0 0 413 +add p Meson chi_b1(3P) 110553 10.51600 0 0 0 2 0 414 +add p Meson chi_b2(3P) 20555 10.52640 0 0 0 4 0 415 +add p Meson eta_b2(1D) 40555 10.157 0 0 0 2 0 424 +add p Meson eta_b2(2D) 60555 10.441 0 0 0 2 0 425 +add p Meson Upsilon_1(1D) 120553 10.15010 0 0 0 2 0 416 +add p Meson Upsilon_2(1D) 30555 10.15620 0 0 0 4 0 417 +add p Meson Upsilon_3(1D) 557 10.15990 0 0 0 6 0 418 +add p Meson Upsilon_1(2D) 130553 10.43490 0 0 0 2 0 419 +add p Meson Upsilon_2(2D) 50555 10.44060 0 0 0 4 0 420 +add p Meson Upsilon_3(2D) 10557 10.44430 0 0 0 6 0 421 +add p Meson sigma_0 10222 0.478 0.324 0 0 0 0 0 +add p Meson omega(1650) 60223 1.67 0.315 0 0 2 0 0 +add p Meson rho(1900) 9030113 1.89 0.151 0 0 2 0 0 +add p Meson rho(2150) 9040113 2.149 0.363 0 0 2 0 0 +add p Meson X(1750) 9180223 1.754 0.122 0 0 2 0 0 +add p Meson omega(1960) 9060223 1.96 0.195 0 0 2 0 0 +add p Meson rho(1965) 9050113 1.99 0.268 0 0 2 0 0 +add p Meson rho(2000) 9060113 2.00 0.295 0 0 2 0 0 +add p Meson omega(2145) 9070223 2.15 0.214 0 0 2 0 0 +add p Meson omega(2205) 9080223 2.21 0.350 0 0 2 0 0 +add p Meson rho(2265) 9070113 2.27 0.325 0 0 2 0 0 +add p Meson rho(2280) 9080113 2.28 0.440 0 0 2 0 0 +add p Meson X(2290) 9190223 2.29 0.275 0 0 2 0 0 +add p Meson omega(2330) 9090223 2.33 0.435 0 0 2 0 0 +add p Baryon Delta- 1114 1.234 0.115 0.14 -3 3 0 361 +add p Baryon anti-Delta+ -1114 1.234 0.115 0.14 3 3 0 0 +add p Special n_diffr 2110 0 0 0 0 1 0 282 +add p Special anti-n_diffr -2110 0 0 0 0 1 0 0 +add p Baryon n0 2112 0.9395656 0 0 0 1 2.66E14 332 +add p Baryon anti-n0 -2112 0.9395656 0 0 0 1 2.66E14 0 +add p Baryon Delta0 2114 1.233 0.115 0.14 0 3 0 362 +add p Baryon anti-Delta0 -2114 1.233 0.115 0.14 0 3 0 0 +add p Special p_diff+ 2210 0 0 0 3 1 0 283 +add p Special anti-p_diff- -2210 0 0 0 -3 1 0 0 +add p Baryon p+ 2212 0.9382723 0 0 3 1 0 333 +add p Baryon anti-p- -2212 0.9382723 0 0 -3 1 0 0 +add p Baryon Delta+ 2214 1.232 0.115 0.14 3 3 0 363 +add p Baryon anti-Delta- -2214 1.232 0.115 0.14 -3 3 0 0 +add p Baryon Delta++ 2224 1.231 0.115 0.14 6 3 0 364 +add p Baryon anti-Delta-- -2224 1.231 0.115 0.14 -6 3 0 0 +add p Baryon Sigma- 3112 1.197436 0 0 -3 1 44.34 335 +add p Baryon anti-Sigma+ -3112 1.197436 0 0 3 1 44.34 0 +add p Baryon Sigma*- 3114 1.3872 0.0394 0.04 -3 3 0 365 +add p Baryon anti-Sigma*+ -3114 1.3872 0.0394 0.04 3 3 0 0 +add p Baryon Lambda0 3122 1.115684 0 0 0 1 78.88 306 +add p Baryon anti-Lambda0 -3122 1.115684 0 0 0 1 78.88 0 +add p Baryon Lambda(1405)0 13122 1.407 0.050 0 0 1 0 0 +add p Baryon anti-Lambda(1405)0 -13122 1.407 0.050 0 0 1 0 0 +add p Baryon Lambda(1520)0 3124 1.5195 0.0156 0.18 0 3 0 0 +add p Baryon anti-Lambda(1520)0 -3124 1.5195 0.0156 0.18 0 3 0 0 +add p Baryon Lambda(1600)0 23122 1.6 0.15 0.25 0 1 0 0 +add p Baryon anti-Lambda(1600)0 -23122 1.6 0.15 0.25 0 1 0 0 +add p Baryon Lambda(1670)0 33122 1.67 0.035 0.18 0 1 0 0 +add p Baryon anti-Lambda(1670)0 -33122 1.67 0.035 0.18 0 1 0 0 +add p Baryon Lambda(1690)0 13124 1.69 0.06 0.3 0 3 0 0 +add p Baryon anti-Lambda(1690)0 -13124 1.69 0.06 0.3 0 3 0 0 +add p Baryon Lambda(1800)0 43122 1.8 0.3 0 0 1 0 0 +add p Baryon anti-Lambda(1800)0 -43122 1.8 0.3 0 0 1 0 0 +add p Baryon Lambda(1810)0 53122 1.81 0.15 0 0 1 0 0 +add p Baryon anti-Lambda(1810)0 -53122 1.81 0.15 0 0 1 0 0 +add p Baryon Lambda(1820)0 3126 1.82 0.08 0.4 0 5 0 0 +add p Baryon anti-Lambda(1820)0 -3126 1.82 0.08 0.4 0 5 0 0 +add p Baryon Lambda(1830)0 13126 1.83 0.095 0.48 0 5 0 0 +add p Baryon anti-Lambda(1830)0 -13126 1.83 0.095 0.48 0 5 0 0 +add p Baryon Sigma(1660)0 13212 1.66 0.1 0 0 1 0 0 +add p Baryon anti-Sigma(1660)0 -13212 1.66 0.1 0 0 1 0 0 +add p Baryon Sigma(1670)0 13214 1.67 0.06 0.3 0 3 0 0 +add p Baryon anti-Sigma(1670)0 -13214 1.67 0.06 0.3 0 3 0 0 +add p Baryon Sigma(1750)0 23212 1.75 0.09 0.45 0 1 0 0 +add p Baryon anti-Sigma(1750)0 -23212 1.75 0.09 0.45 0 1 0 0 +add p Baryon Sigma(1775)0 3216 1.775 0.12 0 0 5 0 0 +add p Baryon anti-Sigma(1775)0 -3216 1.775 0.12 0 0 5 0 0 +add p Baryon Sigma0 3212 1.19255 0 0 0 1 0 336 +add p Baryon anti-Sigma0 -3212 1.19255 0 0 0 1 0 0 +add p Baryon Sigma*0 3214 1.3837 0.036 0.035 0 3 0 366 +add p Baryon anti-Sigma*0 -3214 1.3837 0.036 0.035 0 3 0 0 +add p Baryon Sigma+ 3222 1.18937 0 0 3 1 23.96 337 +add p Baryon anti-Sigma- -3222 1.18937 0 0 -3 1 23.96 0 +add p Baryon Sigma*+ 3224 1.3828 0.036 0.035 3 3 0 367 +add p Baryon anti-Sigma*- -3224 1.3828 0.036 0.035 -3 3 0 0 +add p Baryon Xi- 3312 1.32132 0 0 -3 1 49.1 338 +add p Baryon anti-Xi+ -3312 1.32132 0 0 3 1 49.1 0 +add p Baryon Xi*- 3314 1.5350 0.0099 0.05 -3 3 0 368 +add p Baryon anti-Xi*+ -3314 1.5350 0.0099 0.05 3 3 0 0 +add p Baryon Xi0 3322 1.3149 0 0 0 1 87.1 339 +add p Baryon anti-Xi0 -3322 1.3149 0 0 0 1 87.1 0 +add p Baryon Xi*0 3324 1.5318 0.0091 0.05 0 3 0 369 +add p Baryon anti-Xi*0 -3324 1.5318 0.0091 0.05 0 3 0 0 +add p Baryon Omega- 3334 1.67245 0 0 -3 3 24.6 370 +add p Baryon anti-Omega+ -3334 1.67245 0 0 3 3 24.6 0 +add p Baryon Lambda_c(2593)+ 14122 2.5939 0.0036 0 3 1 0 462 +add p Baryon anti-Lambda_c(2593)- -14122 2.5939 0.0036 0 -3 1 0 0 +add p Baryon Lambda_c(2625)+ 14124 2.6266 0.0019 0 3 3 0 471 +add p Baryon anti-Lambda_c(2625)- -14124 2.6266 0.0019 0 -3 3 0 0 +add p Baryon Sigma_c0 4112 2.4522 0.0016 0 0 1 0 341 +add p Baryon anti-Sigma_c0 -4112 2.4522 0.0016 0 0 1 0 0 +add p Baryon Sigma_c*0 4114 2.5175 0.013 0 0 3 0 371 +add p Baryon anti-Sigma_c*0 -4114 2.5175 0.013 0 0 3 0 0 +add p Baryon Sigma_c+ 4212 2.4513 0 0 3 1 0 342 +add p Baryon anti-Sigma_c- -4212 2.4513 0 0 -3 1 0 0 +add p Baryon Sigma_c*+ 4214 2.5159 0 0 3 3 0 372 +add p Baryon anti-Sigma_c*- -4214 2.5159 0 0 -3 3 0 0 +add p Baryon Sigma_c++ 4222 2.4526 0.002 0 6 1 0 343 +add p Baryon anti-Sigma_c-- -4222 2.4526 0.002 0 -6 1 0 0 +add p Baryon Sigma_c*++ 4224 2.5194 0.018 0 6 3 0 373 +add p Baryon anti-Sigma_c*-- -4224 2.5194 0.018 0 -6 3 0 0 +add p Baryon Xi'_c0 4312 2.5788 0 0 0 1 0 344 +add p Baryon anti-Xi'_c0 -4312 2.5788 0 0 0 1 0 0 +add p Baryon Xi'_c+ 4322 2.5741 0 0 3 1 0 345 +add p Baryon anti-Xi'_c- -4322 2.5741 0 0 -3 1 0 0 +add p Baryon Xi_c*+ 4324 2.6474 0 0 3 3 0 375 +add p Baryon anti-Xi_c*- -4324 2.6474 0 0 -3 3 0 0 +add p Baryon Lambda_c+ 4122 2.2849 0 0 3 1 0.0618 312 +add p Baryon anti-Lambda_c- -4122 2.2849 0 0 -3 1 0.0618 0 +add p Baryon Xi_c0 4132 2.4703 0 0 0 1 0.029 314 +add p Baryon anti-Xi_c0 -4132 2.4703 0 0 0 1 0.029 0 +add p Baryon Xi_c+ 4232 2.4656 0 0 3 1 0.106 315 +add p Baryon anti-Xi_c- -4232 2.4656 0 0 -3 1 0.106 0 +add p Baryon Xi_c*0 4314 2.6438 0 0 0 3 0 374 +add p Baryon anti-Xi_c*0 -4314 2.6438 0 0 0 3 0 0 +add p Baryon Lambda_c(2765)+ 24122 2.765 0.050 0 3 1 0 480 +add p Baryon anti-Lambda_c(2765)- -24122 2.765 0.050 0 -3 1 0 0 +add p Baryon Lambda_c(2880)+ 24124 2.880 0.005 0 3 3 0 481 +add p Baryon anti-Lambda_c(2880)- -24124 2.880 0.005 0 -3 3 0 0 +add p Baryon Lambda_c(2925)+ 34122 2.925 0.03 0 3 1 0 482 +add p Baryon anti-Lambda_c(2925)- -34122 2.925 0.03 0 -3 1 0 0 +add p Baryon Lambda_c(2975)+ 34124 2.975 0.01 0 3 3 0 483 +add p Baryon anti-Lambda_c(2975)- -34124 2.975 0.01 0 -3 3 0 0 +add p Baryon Sigma_c(2795)0 14112 2.795 0.06 0 0 1 0 461 +add p Baryon anti-Sigma_c(2795)0 -14112 2.795 0.06 0 0 1 0 0 +add p Baryon Sigma_c(2850)0 14114 2.850 0.09 0 0 3 0 470 +add p Baryon anti-Sigma_c(2850)0 -14114 2.850 0.09 0 0 3 0 0 +add p Baryon Sigma_c(2795)+ 14212 2.795 0.06 0 3 1 0 464 +add p Baryon anti-Sigma_c(2795)- -14212 2.795 0.06 0 -3 1 0 0 +add p Baryon Sigma_c(2850)+ 14214 2.850 0.09 0 3 3 0 473 +add p Baryon anti-Sigma_c(2850)- -14214 2.850 0.09 0 -3 3 0 0 +add p Baryon Sigma_c(2795)++ 14222 2.795 0.06 0 6 1 0 465 +add p Baryon anti-Sigma_c(2795)-- -14222 2.795 0.06 0 -6 1 0 0 +add p Baryon Sigma_c(2850)++ 14224 2.850 0.09 0 6 3 0 474 +add p Baryon anti-Sigma_c(2850)-- -14224 2.850 0.09 0 -6 3 0 0 +add p Baryon Xi_c(2790)0 14132 2.790 0 0 0 1 0 463 +add p Baryon anti-Xi_c(2790)0 -14132 2.790 0 0 0 1 0 0 +add p Baryon Xi_c(2790)+ 14232 2.790 0 0 3 1 0 466 +add p Baryon anti-Xi_c(2790)- -14232 2.790 0 0 -3 1 0 0 +add p Baryon Xi_c(2815)0 14134 2.819 0 0 0 3 0 472 +add p Baryon anti-Xi_c(2815)0 -14134 2.819 0 0 0 3 0 0 +add p Baryon Xi_c(2815)+ 14234 2.8149 0 0 3 3 0 475 +add p Baryon anti-Xi_c(2815)- -14234 2.8149 0 0 -3 3 0 0 +add p Baryon Xi_c(2900)0 14312 2.900 0.02 0 0 1 0 467 +add p Baryon anti-Xi_c(2900)0 -14312 2.900 0.02 0 0 1 0 0 +add p Baryon Xi_c(2900)+ 14322 2.900 0.02 0 3 1 0 468 +add p Baryon anti-Xi_c(2900)- -14322 2.900 0.02 0 -3 1 0 0 +add p Baryon Xi_c(2950)0 14314 2.950 0.04 0 0 3 0 476 +add p Baryon anti-Xi_c(2950)0 -14314 2.950 0.04 0 0 3 0 0 +add p Baryon Xi_c(2950)+ 14324 2.950 0.04 0 3 3 0 477 +add p Baryon anti-Xi_c(2950)- -14324 2.950 0.04 0 -3 3 0 0 +add p Baryon Xi_cc+ 4412 3.460 0 0 3 1 0 491 +add p Baryon anti-Xi_cc- -4412 3.460 0 0 -3 1 0 0 +add p Baryon Xi_cc++ 4422 3.460 0 0 6 1 0 492 +add p Baryon anti-Xi_cc-- -4422 3.460 0 0 -6 1 0 0 +add p Baryon Omega_cc+ 4432 3.875 0 0 3 1 0 493 +add p Baryon anti-Omega_cc- -4432 3.875 0 0 -3 1 0 0 +add p Baryon Xi_cc*+ 4414 3.520 0 0 3 1 0 494 +add p Baryon anti-Xi_cc*- -4414 3.520 0 0 -3 1 0 0 +add p Baryon Xi_cc*++ 4424 3.520 0 0 6 1 0 495 +add p Baryon anti-Xi_cc*-- -4424 3.520 0 0 -6 1 0 0 +add p Baryon Omega_cc*+ 4434 3.975 0 0 3 1 0 496 +add p Baryon anti-Omega_cc*- -4434 3.975 0 0 -3 1 0 0 +add p Baryon Omega_c0 4332 2.6975 0 0 0 1 0.019 346 +add p Baryon anti-Omega_c0 -4332 2.6975 0 0 0 1 0.019 0 +add p Baryon Omega_c*0 4334 2.8 0 0 0 3 0 376 +add p Baryon anti-Omega_c*0 -4334 2.8 0 0 0 3 0 0 +add p Baryon Omega_c(2850)0 14332 2.850 0.02 0 0 1 0 469 +add p Baryon anti-Omega_c(2850)0 -14332 2.850 0.02 0 0 1 0 0 +add p Baryon Omega_c(2900)0 14334 2.9 0.04 0 0 3 0 478 +add p Baryon anti-Omega_c(2900)0 -14334 2.9 0.04 0 0 3 0 0 +add p Baryon Sigma_b- 5112 5.80 0 0 -3 1 0 351 +add p Baryon anti-Sigma_b+ -5112 5.80 0 0 3 1 0 0 +add p Baryon Sigma_b*- 5114 5.81 0 0 -3 3 0 381 +add p Baryon anti-Sigma_b*+ -5114 5.81 0 0 3 3 0 0 +add p Baryon Lambda_b0 5122 5.624 0 0 0 1 0.368 322 +add p Baryon anti-Lambda_b0 -5122 5.625 0 0 0 1 0.368 0 +add p Baryon Xi_b- 5132 5.84 0 0 -3 1 0.40 324 +add p Baryon anti-Xi_b+ -5132 5.84 0 0 3 1 0.40 0 +add p Baryon Sigma_b0 5212 5.80 0 0 0 1 0 352 +add p Baryon anti-Sigma_b0 -5212 5.80 0 0 0 1 0 0 +add p Baryon Sigma_b*0 5214 5.81 0 0 0 3 0 382 +add p Baryon anti-Sigma_b*0 -5214 5.81 0 0 0 3 0 0 +add p Baryon Sigma_b+ 5222 5.80 0 0 3 1 0 353 +add p Baryon anti-Sigma_b- -5222 5.80 0 0 -3 1 0 0 +add p Baryon Sigma_b*+ 5224 5.81 0 0 3 3 0 383 +add p Baryon anti-Sigma_b*- -5224 5.81 0 0 -3 3 0 0 +add p Baryon Xi_b0 5232 5.84 0 0 0 1 0.40 325 +add p Baryon anti-Xi_b0 -5232 5.84 0 0 0 1 0.40 0 +add p Baryon Xi'_b- 5312 5.96 0 0 -3 1 0 354 +add p Baryon anti-Xi'_b+ -5312 5.96 0 0 3 1 0 0 +add p Baryon Xi_b*- 5314 5.97 0 0 -3 3 0 384 +add p Baryon anti-Xi_b*+ -5314 5.97 0 0 3 3 0 0 +add p Baryon Xi'_b0 5322 5.96 0 0 0 1 0 355 +add p Baryon anti-Xi'_b0 -5322 5.96 0 0 0 1 0 0 +add p Baryon Xi_b*0 5324 5.97 0 0 0 3 0 385 +add p Baryon anti-Xi_b*0 -5324 5.97 0 0 0 3 0 0 +add p Baryon Omega_b- 5332 6.12 0 0 -3 1 0.40 356 +add p Baryon anti-Omega_b+ -5332 6.12 0 0 3 1 0.40 0 +add p Baryon Omega_b*- 5334 6.13 0 0 -3 3 0 386 +add p Baryon anti-Omega_b*+ -5334 6.13 0 0 3 3 0 0 +add p DiQuark dd_0 1101 0 0 0 -2 0 0 0 +add p DiQuark anti-dd_0 -1101 0 0 0 2 0 0 0 +add p DiQuark ud_0 2101 0 0 0 1 0 0 0 +add p DiQuark anti-ud_0 -2101 0 0 0 -1 0 0 0 +add p DiQuark uu_0 2201 0 0 0 4 0 0 0 +add p DiQuark anti-uu_0 -2201 0 0 0 -4 0 0 0 +add p DiQuark sd_0 3101 0 0 0 -2 0 0 0 +add p DiQuark anti-sd_0 -3101 0 0 0 2 0 0 0 +add p DiQuark su_0 3201 0 0 0 1 0 0 0 +add p DiQuark anti-su_0 -3201 0 0 0 -1 0 0 0 +add p DiQuark ss_0 3301 0 0 0 -2 0 0 0 +add p DiQuark anti-ss_0 -3301 0 0 0 2 0 0 0 +add p DiQuark cd_0 4101 0 0 0 1 0 0 0 +add p DiQuark anti-cd_0 -4101 0 0 0 -1 0 0 0 +add p DiQuark cu_0 4201 0 0 0 4 0 0 0 +add p DiQuark anti-cu_0 -4201 0 0 0 -4 0 0 0 +add p DiQuark cs_0 4301 0 0 0 1 0 0 0 +add p DiQuark anti-cs_0 -4301 0 0 0 -1 0 0 0 +add p DiQuark cc_0 4401 0 0 0 4 0 0 0 +add p DiQuark anti-cc_0 -4401 0 0 0 -4 0 0 0 +add p DiQuark bd_0 5101 0 0 0 -2 0 0 0 +add p DiQuark anti-bd_0 -5101 0 0 0 2 0 0 0 +add p DiQuark bu_0 5201 0 0 0 1 0 0 0 +add p DiQuark anti-bu_0 -5201 0 0 0 -1 0 0 0 +add p DiQuark bs_0 5301 0 0 0 -2 0 0 0 +add p DiQuark anti-bs_0 -5301 0 0 0 2 0 0 0 +add p DiQuark bc_0 5401 0 0 0 1 0 0 0 +add p DiQuark anti-bc_0 -5401 0 0 0 -1 0 0 0 +add p DiQuark bb_0 5501 0 0 0 -2 0 0 0 +add p DiQuark anti-bb_0 -5501 0 0 0 2 0 0 0 +add p DiQuark dd_1 1103 0 0 0 -2 2 0 0 +add p DiQuark anti-dd_1 -1103 0 0 0 2 2 0 0 +add p DiQuark ud_1 2103 0 0 0 1 2 0 0 +add p DiQuark anti-ud_1 -2103 0 0 0 -1 2 0 0 +add p DiQuark uu_1 2203 0 0 0 4 2 0 0 +add p DiQuark anti-uu_1 -2203 0 0 0 -4 2 0 0 +add p DiQuark sd_1 3103 0 0 0 -2 2 0 0 +add p DiQuark anti-sd_1 -3103 0 0 0 2 2 0 0 +add p DiQuark su_1 3203 0 0 0 1 2 0 0 +add p DiQuark anti-su_1 -3203 0 0 0 -1 2 0 0 +add p DiQuark ss_1 3303 0 0 0 -2 2 0 0 +add p DiQuark anti-ss_1 -3303 0 0 0 2 2 0 0 +add p DiQuark cd_1 4103 0 0 0 1 2 0 0 +add p DiQuark anti-cd_1 -4103 0 0 0 -1 2 0 0 +add p DiQuark cu_1 4203 0 0 0 4 2 0 0 +add p DiQuark anti-cu_1 -4203 0 0 0 -4 2 0 0 +add p DiQuark cs_1 4303 0 0 0 1 2 0 0 +add p DiQuark anti-cs_1 -4303 0 0 0 -1 2 0 0 +add p DiQuark cc_1 4403 0 0 0 4 2 0 0 +add p DiQuark anti-cc_1 -4403 0 0 0 -4 2 0 0 +add p DiQuark bd_1 5103 0 0 0 -2 2 0 0 +add p DiQuark anti-bd_1 -5103 0 0 0 2 2 0 0 +add p DiQuark bu_1 5203 0 0 0 1 2 0 0 +add p DiQuark anti-bu_1 -5203 0 0 0 -1 2 0 0 +add p DiQuark bs_1 5303 0 0 0 -2 2 0 0 +add p DiQuark anti-bs_1 -5303 0 0 0 2 2 0 0 +add p DiQuark bc_1 5403 0 0 0 1 2 0 0 +add p DiQuark anti-bc_1 -5403 0 0 0 -1 2 0 0 +add p DiQuark bb_1 5503 0 0 0 -2 2 0 0 +add p DiQuark anti-bb_1 -5503 0 0 0 2 2 0 0 +add p Nucleus deuteron 1011 1.8756134 0 0 3 0 0 0 +add p Nucleus anti-deuteron -1011 1.8756134 0 0 -3 0 0 0 +add p Nucleus tritium 1021 2.80925 0 0 3 1 0 0 +add p Nucleus anti-tritium -1021 2.80925 0 0 -3 1 0 0 +add p Nucleus He3 1012 2.80923 0 0 6 1 0 0 +add p Nucleus anti-He3 -1012 2.80923 0 0 -6 1 0 0 +add p Nucleus alpha 1022 3.727417 0 0 6 0 0 0 +add p Nucleus anti-alpha -1022 3.727417 0 0 -6 0 0 0 +add p Special geantino 100 0 0 0 0 0 0 0 +add p Special chargedgeantino 101 0 0 0 3 0 0 0 +add p Meson Xsd 30343 1.6000 0.50 1.0 0 0 0 455 +add p Meson anti-Xsd -30343 1.6000 0.50 1.0 0 0 0 0 +add p Meson Xsu 30353 1.6000 0.50 1.0 3 0 0 456 +add p Meson anti-Xsu -30353 1.6000 0.50 1.0 -3 0 0 0 +add p Meson Xdd 30373 1.6000 0.50 1.0 0 0 0 458 +add p Meson anti-Xdd -30373 1.6000 0.50 1.0 0 0 0 0 +add p Meson Xdu 30383 1.6000 0.50 1.0 3 0 0 459 +add p Meson anti-Xdu -30383 1.6000 0.50 1.0 -3 0 0 0 +add p Meson Xss 30363 1.8000 0.50 1.0 0 0 0 457 +add p Meson anti-Xss -30363 1.8000 0.50 1.0 0 0 0 0 +* +* Dummy particles for users to change properties & simulate new particles. +* Convention for the numbers after the "dummy": charge spin_serial +* +add p Meson dummy00_1 51 1 0.1 1.0 0 0 0 0 +add p Meson dummy10_1 52 1 0.1 1.0 3 0 0 0 +add p Meson dummy01_1 53 1 0.1 1.0 0 2 0 0 +add p Meson dummy11_1 54 1 0.1 1.0 3 2 0 0 +add p Meson anti-dummy00_1 -51 1 0.1 1.0 0 0 0 0 +add p Meson anti-dummy10_1 -52 1 0.1 1.0 -3 0 0 0 +add p Meson anti-dummy01_1 -53 1 0.1 1.0 0 2 0 0 +add p Meson anti-dummy11_1 -54 1 0.1 1.0 -3 2 0 0 +add p Meson dummy00_2 55 1 0.1 1.0 0 0 0 0 +add p Meson dummy10_2 56 1 0.1 1.0 3 0 0 0 +add p Meson dummy01_2 57 1 0.1 1.0 0 2 0 0 +add p Meson dummy11_2 58 1 0.1 1.0 3 2 0 0 +add p Meson anti-dummy00_2 -55 1 0.1 1.0 0 0 0 0 +add p Meson anti-dummy10_2 -56 1 0.1 1.0 -3 0 0 0 +add p Meson anti-dummy01_2 -57 1 0.1 1.0 0 2 0 0 +add p Meson anti-dummy11_2 -58 1 0.1 1.0 -3 2 0 0 + + + + +* | | | | | | | | | + KC=Lund internal code +* | | | | | | | | + T=c*lifetime (mm, alternative to W) +* | | | | | | | + S=2*spin +* | | | | | | + Q=3*charge +* | | | | | + WM=max deviation from mass +* | | | | + W=width in GeV +* | | | + M=mass in GeV +* | | + ID=STDHEP-ID +* | + NAME=name to be used in printout or as char string to identify particle +* + TYPE +sets p e- isStable 1 +sets p e+ isStable 1 +sets p nu_e isStable 1 +sets p anti-nu_e isStable 1 +sets p mu- isStable 1 +sets p mu+ isStable 1 +sets p nu_mu isStable 1 +sets p anti-nu_mu isStable 1 +sets p nu_tau isStable 1 +sets p anti-nu_tau isStable 1 +sets p nu_L isStable 1 +sets p anti-nu_L isStable 1 +sets p gamma isStable 1 +sets p Z''0 isStable 1 +sets p Higgs'0 isStable 1 +sets p A0 isStable 1 +sets p K_L0 isStable 1 +sets p pi_diff+ isStable 1 +sets p pi_diff- isStable 1 +sets p pi+ isStable 1 +sets p pi- isStable 1 +sets p K+ isStable 1 +sets p K- isStable 1 +sets p n_diff0 isStable 1 +sets p anti-n_diff0 isStable 1 +sets p n0 isStable 1 +sets p anti-n0 isStable 1 +sets p p_diff+ isStable 1 +sets p anti-p_diff- isStable 1 +sets p p+ isStable 1 +sets p anti-p- isStable 1 +sets p geantino isStable 1 +sets p chargedgeantino isStable 1 +sets p cerenkov isStable 1 +sets p deuteron isStable 1 +sets p anti-deuteron isStable 1 +sets p tritium isStable 1 +sets p anti-tritium isStable 1 +sets p alpha isStable 1 +sets p anti-alpha isStable 1 +sets p He3 isStable 1 +sets p anti-He3 isStable 1 +end diff --git a/TEvtGen/EvtGenBase/Evt3Rank3C.cxx b/TEvtGen/EvtGenBase/Evt3Rank3C.cxx new file mode 100644 index 00000000000..36cd0a147cb --- /dev/null +++ b/TEvtGen/EvtGenBase/Evt3Rank3C.cxx @@ -0,0 +1,278 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: Evt3Rank3C.cc +// +// Description: Implementation of complex 3Rank 3D tensors. +// +// Modification history: +// +// RYD September 14, 1996 Module created +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include +#include +#include "EvtGenBase/Evt3Rank3C.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtVector3C.hh" +#include "EvtGenBase/EvtTensor3C.hh" +#include "EvtGenBase/EvtReport.hh" + + + +Evt3Rank3C::Evt3Rank3C( const Evt3Rank3C& t1 ) { + + int i,j,k; + + for(i=0;i<3;i++) { + for(j=0;j<3;j++) { + for(k=0;k<3;j++) { + t[i][j][k] = t1.t[i][j][k]; + } + } + } +} + +Evt3Rank3C::~Evt3Rank3C() { } + + +Evt3Rank3C& Evt3Rank3C::operator=(const Evt3Rank3C& t1) { + int i,j,k; + + for(i=0;i<3;i++) { + for(j=0;j<3;j++) { + for(k=0;k<3;k++) { + t[i][j][k] = t1.t[i][j][k]; + } + } + } + return *this; +} + + +Evt3Rank3C Evt3Rank3C::conj() const { + Evt3Rank3C temp; + + int i,j,k; + + for(i=0;i<3;i++) { + for(j=0;j<3;j++) { + for(k=0;k<3;k++) { + temp.set(i,j,k,::conj(t[i][j][k])); + } + } + } + return temp; +} + +void Evt3Rank3C::zero(){ + int i,j,k; + for(i=0;i<3;i++){ + for(j=0;j<3;j++){ + for(k=0;k<3;k++){ + t[i][j][k]=EvtComplex(0.0,0.0); + } + } + } +} + + +Evt3Rank3C::Evt3Rank3C(){ + + int i,j,k; + + for(i=0;i<3;i++){ + for(j=0;j<3;j++){ + for(k=0;k<3;k++){ + t[i][j][k]=EvtComplex(0.0,0.0); + } + } + } + +} + +std::ostream& operator<<(std::ostream& s, const Evt3Rank3C& t2){ + int i,j,k; + for(k=0;k<3;k++){ + for(i=0;i<3;i++){ + for(j=0;j<3;j++){ + report(INFO,"EvtGen") < +#include "EvtGenBase/EvtComplex.hh" + +class EvtTensor3C; +class EvtVector3C; +class EvtVector3R; + + +class Evt3Rank3C ; +inline Evt3Rank3C operator*(const EvtComplex& c,const Evt3Rank3C& t2); +inline Evt3Rank3C operator*(const double d,const Evt3Rank3C& t2); +inline Evt3Rank3C operator*(const Evt3Rank3C& t2,const EvtComplex& c); +inline Evt3Rank3C operator*(const Evt3Rank3C& t2,const double d); +inline Evt3Rank3C operator+(const Evt3Rank3C& t1,const Evt3Rank3C& t2); +inline Evt3Rank3C operator-(const Evt3Rank3C& t1,const Evt3Rank3C& t2); +Evt3Rank3C directProd(const EvtVector3C& c1,const EvtVector3C& c2, + const EvtVector3C& c3); +Evt3Rank3C conj(const Evt3Rank3C& t2); + +Evt3Rank3C directProd(const EvtVector3C& c1,const EvtVector3C& c2, + const EvtVector3C& c3); + + +class Evt3Rank3C { + + friend Evt3Rank3C operator*(const EvtComplex& c,const Evt3Rank3C& t2); + friend Evt3Rank3C operator*(const double d,const Evt3Rank3C& t2); + friend Evt3Rank3C operator*(const Evt3Rank3C& t2,const EvtComplex& c); + friend Evt3Rank3C operator*(const Evt3Rank3C& t2,const double d); + friend Evt3Rank3C operator+(const Evt3Rank3C& t1,const Evt3Rank3C& t2); + friend Evt3Rank3C operator-(const Evt3Rank3C& t1,const Evt3Rank3C& t2); + friend Evt3Rank3C directProd(const EvtVector3C& c1,const EvtVector3C& c2, + const EvtVector3C& c3); + friend Evt3Rank3C conj(const Evt3Rank3C& t2); + + friend std::ostream& operator<<(std::ostream& s, const Evt3Rank3C& t2); + +public: + Evt3Rank3C(); + Evt3Rank3C(const Evt3Rank3C& t1 ); + virtual ~Evt3Rank3C(); + Evt3Rank3C& operator=(const Evt3Rank3C& t1); + inline void set(int i,int j,int k,const EvtComplex& c); + inline const EvtComplex& get(int i, int j, int k) const; + void zero(); + + + Evt3Rank3C& operator+=(const Evt3Rank3C& t2); + Evt3Rank3C& operator-=(const Evt3Rank3C& t2); + Evt3Rank3C& operator*=(const double d); + Evt3Rank3C& operator*=(const EvtComplex& c); + Evt3Rank3C conj() const; + EvtTensor3C cont1(const EvtVector3C& v) const; + EvtTensor3C cont2(const EvtVector3C& v) const; + EvtTensor3C cont3(const EvtVector3C& v) const; + EvtTensor3C cont1(const EvtVector3R& v) const; + EvtTensor3C cont2(const EvtVector3R& v) const; + EvtTensor3C cont3(const EvtVector3R& v) const; + + +private: + + EvtComplex t[3][3][3]; + +}; + + +inline Evt3Rank3C operator*(const EvtComplex& c,const Evt3Rank3C& t2){ + return Evt3Rank3C(t2)*=c; +} + +inline Evt3Rank3C operator*(const double d,const Evt3Rank3C& t2){ + return Evt3Rank3C(t2)*=d; +} + +inline Evt3Rank3C operator*(const Evt3Rank3C& t2,const EvtComplex& c){ + return Evt3Rank3C(t2)*=c; +} + +inline Evt3Rank3C operator*(const Evt3Rank3C& t2,const double d){ + return Evt3Rank3C(t2)*=d; +} + +inline Evt3Rank3C operator+(const Evt3Rank3C& t1,const Evt3Rank3C& t2){ + return Evt3Rank3C(t1)+=t2; +} + +inline Evt3Rank3C operator-(const Evt3Rank3C& t1,const Evt3Rank3C& t2){ + return Evt3Rank3C(t1)-=t2; +} + +inline void Evt3Rank3C::set(int i,int j,int k,const EvtComplex& c){ + t[i][j][k]=c; +} + +inline const EvtComplex& Evt3Rank3C::get(int i,int j,int k) const{ + return t[i][j][k]; +} + + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtAbsBinning.hh b/TEvtGen/EvtGenBase/EvtAbsBinning.hh new file mode 100644 index 00000000000..8a61adf2673 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtAbsBinning.hh @@ -0,0 +1,46 @@ +/***************************************************************************** + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtAbsBinning.hh,v 1.1 2003/05/02 21:41:08 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *****************************************************************************/ + +/* + * Data point to bin value mapping + */ + +#ifndef EVT_ABS_BINNING_HH +#define EVT_ABS_BINNING_HH +#define BIN_OUTSIDE -1 + +#include + +template class EvtAbsBinning { +public: + + EvtAbsBinning() + {} + EvtAbsBinning(const EvtAbsBinning& other) + {} + virtual ~EvtAbsBinning() + {} + + virtual EvtAbsBinning* clone() const = 0; + virtual int getBin(const T& point) const = 0; + virtual T getBinPoint(int bin) const = 0; + virtual double size(int bin) const = 0; + + virtual int nTypes() const = 0; + + virtual char* typeLabel(int i) const + { + char* a = new char[128]; + sprintf(a,"%d",i); + return a; + } + +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtAbsLineShape.cxx b/TEvtGen/EvtGenBase/EvtAbsLineShape.cxx new file mode 100644 index 00000000000..7865b88507a --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtAbsLineShape.cxx @@ -0,0 +1,169 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtLineShape.cc +// +// Description: Store particle properties for one particle. +// +// Modification history: +// +// Lange March 10, 2001 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include "EvtGenBase/EvtAbsLineShape.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtTwoBodyVertex.hh" +#include "EvtGenBase/EvtPropBreitWigner.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" + +using namespace std; + +EvtAbsLineShape::EvtAbsLineShape() { +} + +EvtAbsLineShape::~EvtAbsLineShape() { +} + +EvtAbsLineShape::EvtAbsLineShape(double mass, double width, double maxRange, EvtSpinType::spintype sp) { + + _includeDecayFact = false; + _includeBirthFact = false; + _applyFixForSP8 = false; + _mass=mass; + _width=width; + _spin=sp; + _maxRange=maxRange; + double maxdelta=15.0*width; + //if ( width>0.001 ) { + // if ( 5.0*width < 0.6 ) maxdelta = 0.6; + //} + if ( maxRange > 0.00001 ) { + _massMax=mass+maxdelta; + _massMin=mass-maxRange; + } + else{ + _massMax=mass+maxdelta; + _massMin=mass-15.0*width; + } + if ( _massMin< 0. ) _massMin=0.; + _massMax=mass+maxdelta; +} + +EvtAbsLineShape::EvtAbsLineShape(const EvtAbsLineShape& x){ + + _includeDecayFact = x._includeDecayFact; + _includeBirthFact = x._includeBirthFact; + _mass=x._mass; + _massMax=x._massMax; + _massMin=x._massMin; + _width=x._width; + _spin=x._spin; + _maxRange=x._maxRange; + _applyFixForSP8 = x._applyFixForSP8; +} + +EvtAbsLineShape& EvtAbsLineShape::operator=(const EvtAbsLineShape& x){ + + _includeDecayFact = x._includeDecayFact; + _includeBirthFact = x._includeBirthFact; + _mass=x._mass; + _massMax=x._massMax; + _massMin=x._massMin; + _width=x._width; + _spin=x._spin; + _maxRange=x._maxRange; + _applyFixForSP8 = x._applyFixForSP8; + return *this; +} + +EvtAbsLineShape* EvtAbsLineShape::clone() { + + return new EvtAbsLineShape(*this); +} + + +double EvtAbsLineShape::rollMass() { + + double ymin, ymax; + double temp; + + if ( _width < 0.0001 ) { + return _mass; + } + else{ + ymin = atan( 2.0*(_massMin-_mass)/_width); + ymax = atan( 2.0*(_massMax-_mass)/_width); + + temp= ( _mass + ((_width/2.0)*tan(EvtRandom::Flat(ymin,ymax)))); + + return temp; + } +} +double EvtAbsLineShape::getRandMass(EvtId *parId, int nDaug, EvtId *dauId, EvtId *othDaugId, double maxMass, double *dauMasses) { + + if ( _width< 0.0001) return _mass; + //its not flat - but generated according to a BW + + if (maxMass>0&&maxMass<_massMin) { + report(ERROR,"EvtGen") << "In EvtAbsLineShape::getRandMass"<-0.5 && maxMass< mMax) mMax=maxMass; + double ymin = atan( 2.0*(mMin-_mass)/_width); + double ymax = atan( 2.0*(mMax-_mass)/_width); + + return ( _mass + ((_width/2.0)*tan(EvtRandom::Flat(ymin,ymax)))); + // return EvtRandom::Flat(_massMin,_massMax); +} + +double EvtAbsLineShape::getMassProb(double mass, double massPar, int nDaug, double *massDau) { + + double dTotMass=0.; + if ( nDaug>1) { + int i; + for (i=0; i0.0000000001 ) { + if ( mass > massPar) return 0.; + } + //Otherwise return the right value. + //Fortunately we have generated events according to a non-rel BW, so + //just return.. + //EvtPropBreitWigner bw(_mass,_width); + //EvtPropFactor f(bw); + //EvtComplex fm=f.eval(mass); + //EvtComplex fm0=f.eval(_mass); + //return (abs(fm)*abs(fm))/(abs(fm0)*abs(fm0)); + return 1.0; +} + + diff --git a/TEvtGen/EvtGenBase/EvtAbsLineShape.hh b/TEvtGen/EvtGenBase/EvtAbsLineShape.hh new file mode 100644 index 00000000000..3e6c58fbac8 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtAbsLineShape.hh @@ -0,0 +1,99 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtAbsLineShape.hh +// +// Description: Class to keep the particle properties for +// one particle +// +// Modification history: +// +// Lange March 10, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTABSLINESHAPE_HH +#define EVTABSLINESHAPE_HH + +#include "EvtGenBase/EvtSpinType.hh" +#include "EvtGenBase/EvtId.hh" +#include + +class EvtId; + +class EvtAbsLineShape { + +public: + + EvtAbsLineShape(); + EvtAbsLineShape(double mass, double width, double maxRange, EvtSpinType::spintype sp); + virtual ~EvtAbsLineShape(); + EvtAbsLineShape& operator=(const EvtAbsLineShape& x); + EvtAbsLineShape(const EvtAbsLineShape& x); + + double getMass() {return _mass;} + double getMassMin() {return _massMin;} + double getMassMax() {return _massMax;} + double getMaxRange() {return _maxRange;} + double getWidth() {return _width;} + EvtSpinType::spintype getSpinType() {return _spin;} + virtual double rollMass(); + virtual EvtAbsLineShape* clone(); + + void reSetMass(double mass) { _mass=mass;} + void reSetWidth(double width) { _width=width;} + void reSetMassMin(double mass) { _massMin=mass;} + void reSetMassMax(double mass) { _massMax=mass;} + virtual void reSetBlatt(double blatt) {}; + void includeBirthFactor(bool yesno) { _includeBirthFact = yesno; } + void includeDecayFactor(bool yesno) { _includeDecayFact = yesno; } + void setPWForDecay( int spin, EvtId d1, EvtId d2) { + _userSetPW.push_back(spin); + _userSetPWD1.push_back(d1); + _userSetPWD2.push_back(d2); + } + void setPWForBirthL( int spin, EvtId par, EvtId othD) { + _userSetBirthPW.push_back(spin); + _userSetBirthOthD.push_back(othD); + _userSetBirthPar.push_back(par); + } + + virtual double getRandMass(EvtId *parId, int nDaug, EvtId *dauId, EvtId *othDaugId,double maxMass, double *dauMasses); + virtual double getMassProb(double mass, double massPar, int nDaug, double *massDau); + + void fixForSP8() { _applyFixForSP8=true;} +protected: + + bool _includeDecayFact; + bool _includeBirthFact; + double _mass; + double _massMin; + double _massMax; + double _width; + double _maxRange; + + // allow for special cases where the default method of picking the + //lowest allowed partial wave for a decay is not the right answer. + // string is " " + //new 9/12/2003 Lange + std::vector _userSetPWD1,_userSetPWD2; + std::vector _userSetPW; + + // also do it for birth factors + std::vector _userSetBirthPar,_userSetBirthOthD; + std::vector _userSetBirthPW; + + EvtSpinType::spintype _spin; + + bool _applyFixForSP8; +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtAbsRadCorr.hh b/TEvtGen/EvtGenBase/EvtAbsRadCorr.hh new file mode 100644 index 00000000000..bcbc865b95a --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtAbsRadCorr.hh @@ -0,0 +1,40 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGenBase/EvtAbsRadCorr.hh +// +// Description: +// +// Modification history: +// +// Lange April 25, 2002 - Created +// +//------------------------------------------------------------------------ + +#ifndef EVTABSRADCORR_HH +#define EVTABSRADCORR_HH + +#include +#include +class EvtParticle; + +class EvtAbsRadCorr { + +public: + + virtual ~EvtAbsRadCorr() {} + virtual void doRadCorr(EvtParticle *p)=0; + + +private: + +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtAmp.cxx b/TEvtGen/EvtGenBase/EvtAmp.cxx new file mode 100644 index 00000000000..2d65b9940f5 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtAmp.cxx @@ -0,0 +1,551 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtAmp.cc +// +// Description: Class to manipulate the amplitudes in the decays. +// +// Modification history: +// +// RYD May 29, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtSpinDensity.hh" +#include "EvtGenBase/EvtAmp.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtParticle.hh" +using std::endl; + + + +EvtAmp::EvtAmp(){ + _ndaug=0; + _pstates=0; + _nontrivial=0; +} + + +EvtAmp::EvtAmp(const EvtAmp& amp){ + + int i; + + _ndaug=amp._ndaug; + _pstates=amp._pstates; + for(i=0;i<_ndaug;i++){ + dstates[i]=amp.dstates[i]; + _dnontrivial[i]=amp._dnontrivial[i]; + } + _nontrivial=amp._nontrivial; + + int namp=1; + + for(i=0;i<_nontrivial;i++){ + _nstate[i]=amp._nstate[i]; + namp*=_nstate[i]; + } + + for(i=0;i1) { + _nstate[_nontrivial]=_pstates; + _nontrivial++; + } + + int i; + + for(i=0;i<_ndaug;i++){ + dstates[i]=daug_states[i]; + _dnontrivial[i]=-1; + if(daug_states[i]>1) { + _nstate[_nontrivial]=daug_states[i]; + _dnontrivial[i]=_nontrivial; + _nontrivial++; + } + } + + if (_nontrivial>5) { + report(ERROR,"EvtGen") << "Too many nontrivial states in EvtAmp!"<3){ + //report(ERROR,"EvtGen") << "Can't handle so many states in EvtAmp!"<1&&a2._nontrivial==1); + assert(i<=a1._nontrivial); + + EvtAmp tmp; + report(DEBUG,"EvtGen") << "EvtAmp::contract not written yet" << endl; + return tmp; + +} + + +void EvtAmp::dump(){ + + int i,list[10]; + + report(DEBUG,"EvtGen") << "Number of daugthers:"<<_ndaug< +#include "EvtGenBase/EvtMacros.hh" +#include "EvtGenBase/EvtAmplitude.hh" +#include "EvtGenBase/EvtPdf.hh" + +enum {POSRE=0,NEGRE,POSIM,NEGIM}; + +template +class EvtAmpAmpPdf : public EvtPdf { +public: + + EvtAmpAmpPdf() {} + EvtAmpAmpPdf(int type, const EvtAmplitude& amp1, const EvtAmplitude& amp2) + : EvtPdf(), _type(type), _amp1(amp1.clone()), _amp2(amp2.clone()) + {} + EvtAmpAmpPdf(const EvtAmpAmpPdf& other) + : EvtPdf(other), _type(other._type), COPY_PTR(_amp1), COPY_PTR(_amp2) + {} + virtual ~EvtAmpAmpPdf() + { + delete _amp1; + delete _amp2; + } + + virtual EvtAmpAmpPdf* clone() const { return new EvtAmpAmpPdf(*this); } + + virtual double pdf(const T& p) const + { + EvtComplex amp1 = _amp1->evaluate(p); + EvtComplex amp2 = _amp2->evaluate(p); + EvtComplex pr = amp1 * conj(amp2); + + if(_type == POSRE) return real(pr) > 0 ? real(pr) : 0.; + if(_type == NEGRE) return real(pr) < 0 ? -real(pr) : 0.; + if(_type == POSIM) return imag(pr) > 0 ? imag(pr) : 0.; + if(_type == NEGIM) return imag(pr) < 0 ? -imag(pr) : 0.; + + assert(0); + } + +private: + + int _type; + EvtAmplitude* _amp1; + EvtAmplitude* _amp2; +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtAmpFactory.hh b/TEvtGen/EvtGenBase/EvtAmpFactory.hh new file mode 100644 index 00000000000..897ea863df3 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtAmpFactory.hh @@ -0,0 +1,140 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Alexei Dvoretskii 2001-2002 +//------------------------------------------------------------------------ + +// Abstract amplitude factory parameterized by a vector of +// strings. Derived classes construct the amplitude, and PDFs for sampling +// points. + +#ifndef EVT_AMP_FACTORY_HH +#define EVT_AMP_FACTORY_HH + +#include +#include +#include +#include "EvtGenBase/EvtAmplitudeSum.hh" +#include "EvtGenBase/EvtPdfSum.hh" +#include "EvtGenBase/EvtMultiChannelParser.hh" +#include "EvtGenBase/EvtAmpPdf.hh" +#include "EvtGenBase/EvtPdfMax.hh" +#include "EvtGenBase/EvtMacros.hh" + +template +class EvtAmpFactory { +public: + + EvtAmpFactory() + : _amp(0), _ampConj(0), _pc(0), _dm(0.), _verbose(false) + {} + + EvtAmpFactory(const EvtAmpFactory& other) + : + _amp(other._amp ? (EvtAmplitudeSum*) other._amp : 0), + _ampConj(other._ampConj ? (EvtAmplitudeSum*) other._ampConj : 0), + _pc(other._pc ? (EvtPdfSum*) other._pc : 0), + _dm(other._dm), + _verbose(other._verbose) + {} + + virtual ~EvtAmpFactory() + { + if(_amp) delete _amp; + if(_ampConj) delete _ampConj; + if(_pc) delete _pc; + } + + virtual EvtAmpFactory* clone() const = 0; + + virtual void build(const EvtMultiChannelParser& parser, int nItg) + { + _amp = new EvtAmplitudeSum(); + _ampConj = new EvtAmplitudeSum(); + _pc = new EvtPdfSum(); + _dm = parser.dm(); + _mixAmpli = parser.mixAmpli(); + _mixPhase = parser.mixPhase(); + + printf("Amplitude with %d terms\n",parser.getNAmp()); + int i; + for(i=0;i v = parser.amp(i); + EvtComplex c = parser.ampCoef(i); + processAmp(c,v); + } + + printf("Conj. amplitude with %d terms\n",parser.getNAmpConj()); + for(i=0;i v = parser.ampConj(i); + EvtComplex c = parser.ampConjCoef(i); + processAmp(c,v,true); + } + + printf("Calculating pole compensator integrals %d steps\n",nItg); + if(nItg > 0) _pc->getItg(nItg); + + printf("End build\n"); + } + + virtual void processAmp(EvtComplex c, std::vector v, bool conj = false) = 0; + + inline bool isCPModel() const { return (_ampConj->nTerms() > 0 ? true : false); } + inline double dm() const { return _dm; } + inline double mixAmpli() const { return _mixAmpli; } + inline double mixPhase() const { return _mixPhase; } + + void setVerbose() { _verbose = true; } + + + EvtAmplitudeSum* getAmp() const { return _amp; } + EvtAmplitudeSum* getAmpConj() const { return _ampConj; } + EvtPdfSum* getPC() const { return _pc; } + EvtAmplitude* getAmp(int i) const { return _amp->getTerm(i); } + EvtPdf* getPC(int i) const { return _pc->getPdf(i); } + const char* compName(int i) const { return _names[i].c_str(); } + + EvtComplex getCoeff(int i) const { return _amp->c(i); } + + double getTermCoeff(int i) const { return abs2(_amp->c(i)); } + double getTermCoeff(int type, int i, int j) const + { + switch(type) { + + case 0: return 2*real(_amp->c(i)*conj(_amp->c(j))); //posre + case 1: return -2*real(_amp->c(i)*conj(_amp->c(j))); //negre + case 2: return -2*imag(_amp->c(i)*conj(_amp->c(j))); //posim + case 3: return 2*imag(_amp->c(i)*conj(_amp->c(j))); //negim + default: assert(0); + } + } + +protected: + + EvtAmplitudeSum *_amp; // _owned_ amplitude + EvtAmplitudeSum *_ampConj; // _owned_ conjugate amplitude + EvtPdfSum *_pc; // _owned_ pole compensator + std::vector _names; // names of partial amplitudes + + double _dm; // Mass difference for conjugate amplitude + double _mixPhase;// mixing phase + double _mixAmpli;// cpv in mixing + bool _verbose; +}; + + +#endif + + + + + diff --git a/TEvtGen/EvtGenBase/EvtAmpIndex.cxx b/TEvtGen/EvtGenBase/EvtAmpIndex.cxx new file mode 100644 index 00000000000..9c562d3b668 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtAmpIndex.cxx @@ -0,0 +1,90 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2002 Caltech +// +// Module: EvtAmp.cc +// +// Description: Class to manipulate the amplitudes in the decays. +// +// Modification history: +// +// RYD Nov 22, 2002 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtAmpIndex.hh" +#include +using std::vector; + + +EvtAmpIndex::EvtAmpIndex(std::vector ind): + _ind(ind), + _size(ind.size()), + _state(ind.size()), + _nstate(ind.size()) +{ + int i; + + for(i=0;i<_size;i++) { + _state[i]=0; + if (i==0){ + _nstate[i]=1; + } + else{ + _nstate[i]=_nstate[i-1]*_ind[i]; + } + } +} + + +void EvtAmpIndex::reset(){ + int i; + for(i=0;i<_size;i++) { + _state[i]=0; + } +} + +bool EvtAmpIndex::next(){ + int i; + for(i=0;i<_size;i++) { + _state[i]++; + if (_state[i]<_ind[i]){ + return true; + } + else{ + _state[i]=0; + } + } + return false; +} + +int EvtAmpIndex::index(){ + + int i; + int ind=0; + + for(i=0;i<_size;i++) { + ind+=_state[i]*_nstate[i]; + } + + return ind; + +} + + + + + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtAmpIndex.hh b/TEvtGen/EvtGenBase/EvtAmpIndex.hh new file mode 100644 index 00000000000..0b1ce7d431b --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtAmpIndex.hh @@ -0,0 +1,51 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2002 Caltech, UCSB +// +// Module: EvtGen/EvtAmpIndex.hh +// +// Description:This class keeps track of indices on amplitude objects. +// +// Modification history: +// +// Ryd Nov 22, 2002 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTAMPINDEX_HH +#define EVTAMPINDEX_HH + +#include + +class EvtAmpIndex { + + friend class EvtAmpSubIndex; + +public: + + EvtAmpIndex(std::vector ind); + virtual ~EvtAmpIndex() {} + + void reset(); + bool next(); + + int index(); + +private: + + std::vector _ind; + int _size; + std::vector _state; + std::vector _nstate; + +}; + + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtAmpPdf.hh b/TEvtGen/EvtGenBase/EvtAmpPdf.hh new file mode 100644 index 00000000000..3892b9f84da --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtAmpPdf.hh @@ -0,0 +1,41 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtAmpPdf.hh,v 1.5 2003/06/20 17:19:59 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#ifndef EVT_AMP_PDF_HH +#define EVT_AMP_PDF_HH + +#include "EvtGenBase/EvtMacros.hh" +#include "EvtGenBase/EvtAmplitude.hh" +#include "EvtGenBase/EvtPdf.hh" + +template + +class EvtAmpPdf : public EvtPdf { +public: + + EvtAmpPdf() {} + EvtAmpPdf(const EvtAmplitude& amp) : EvtPdf(), _amp(amp.clone()) {} + EvtAmpPdf(const EvtAmpPdf& other) : EvtPdf(other), COPY_PTR(_amp) {} + virtual ~EvtAmpPdf() { delete _amp; } + + virtual EvtAmpPdf* clone() const { return new EvtAmpPdf(*this); } + + virtual double pdf(const T& p) const + { + EvtComplex amp = _amp->evaluate(p); + return real(amp)*real(amp) + imag(amp)*imag(amp); + } + +private: + + EvtAmplitude* _amp; +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtAmpSubIndex.cxx b/TEvtGen/EvtGenBase/EvtAmpSubIndex.cxx new file mode 100644 index 00000000000..f02cc504ae1 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtAmpSubIndex.cxx @@ -0,0 +1,69 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2002 Caltech +// +// Module: EvtAmpSubIndex.cc +// +// Description: Class to manipulate the amplitudes in the decays. +// +// Modification history: +// +// RYD Nov 22, 2002 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtAmpIndex.hh" +#include "EvtGenBase/EvtAmpSubIndex.hh" +#include +using std::vector; + + +EvtAmpSubIndex::EvtAmpSubIndex(EvtAmpIndex* ind,std::vector sub): + _ind(ind), + _sub(sub), + _size(sub.size()), + _nstate(sub.size()) +{ + int i; + + for(i=0;i<_size;i++) { + if (i==0){ + _nstate[i]=1; + } + else{ + _nstate[i]=_nstate[i-1]*_ind->_ind[sub[i-1]]; + } + } +} + + +int EvtAmpSubIndex::index(){ + + int i; + int ind=0; + + for(i=0;i<_size;i++) { + ind+=_ind->_state[_ind->_ind[i]]*_nstate[i]; + } + + return ind; + +} + + + + + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtAmpSubIndex.hh b/TEvtGen/EvtGenBase/EvtAmpSubIndex.hh new file mode 100644 index 00000000000..01cd3b91a7a --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtAmpSubIndex.hh @@ -0,0 +1,48 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2002 Caltech +// +// Module: EvtAmpSubIndex.hh +// +// Description:This class keeps track of indices on amplitude objects. +// Used for a subset of indices in an EvtAmpIndex object. +// +// Modification history: +// +// Ryd Nov 22, 2002 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTAMPSUBINDEX_HH +#define EVTAMPSUBINDEX_HH + +#include +class EvtAmpIndex; + +class EvtAmpSubIndex { + +public: + + EvtAmpSubIndex(EvtAmpIndex* ind,std::vector sub); + virtual ~EvtAmpSubIndex() {} + + int index(); + +private: + + EvtAmpIndex* _ind; + std::vector _sub; + int _size; + std::vector _nstate; + +}; + + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtAmplitude.hh b/TEvtGen/EvtGenBase/EvtAmplitude.hh new file mode 100644 index 00000000000..60c4486fbb7 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtAmplitude.hh @@ -0,0 +1,47 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtAmplitude.hh,v 1.5 2003/06/20 17:19:59 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Complex-valued amplitude + +#ifndef EVT_AMPLITUDE_HH +#define EVT_AMPLITUDE_HH + +#include "EvtGenBase/EvtComplex.hh" + +template +class EvtAmplitude { +public: + + EvtAmplitude() {} + EvtAmplitude(const EvtAmplitude&) {} + virtual ~EvtAmplitude() {} + virtual EvtAmplitude* clone() const = 0; + + EvtComplex evaluate(const T& p) const + { + EvtComplex ret(0.,0.); + if(p.isValid()) ret = amplitude(p); + return ret; + } + +protected: + + // Derive in subclasses to define amplitude computation + // for a fully constructed amplitude object. + + virtual EvtComplex amplitude(const T&) const = 0; + +}; + +#endif + + + + + diff --git a/TEvtGen/EvtGenBase/EvtAmplitudeSum.hh b/TEvtGen/EvtGenBase/EvtAmplitudeSum.hh new file mode 100644 index 00000000000..1c91bc682fa --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtAmplitudeSum.hh @@ -0,0 +1,108 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtAmplitudeSum.hh,v 1.10 2009/02/18 03:31:37 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#ifndef EVT_AMPLITUDE_SUM_HH +#define EVT_AMPLITUDE_SUM_HH + +#include +#include +#include +#include "EvtGenBase/EvtAmplitude.hh" + +template +class EvtAmplitudeSum : public EvtAmplitude { + +public: + + EvtAmplitudeSum() {} + EvtAmplitudeSum(const EvtAmplitudeSum& other) + : EvtAmplitude(other) + { + int i; + for(i=0;i* amp = other.getTerm(i); + assert(amp); + EvtAmplitude* amp1 = amp->clone(); + assert(amp1); + _term.push_back(amp1); + } + } + + virtual ~EvtAmplitudeSum() + { + for(size_t i=0;i<_term.size();i++) { + + delete _term[i]; + } + } + + virtual EvtAmplitude* clone() const + { + return new EvtAmplitudeSum(*this); + } + + + void addTerm(EvtComplex c,const EvtAmplitude& amp) + { + _c.push_back(c); + _term.push_back(amp.clone()); + } + + void addOwnedTerm(EvtComplex c, EvtAmplitude* amp) + { + assert(amp); + _c.push_back(c); + _term.push_back(amp); + } + + int nTerms() const { return _term.size(); } // number of terms + + void print() const { + + int N = nTerms(); + printf("Amplitude has %d terms\n",N); + int i; + for(i=0;i* getTerm(int i) const { return _term[i]; } + +protected: + + virtual EvtComplex amplitude(const T& p) const + { + if(_term.size() == 0) + printf("Warning: amplitude sum has zero terms\n"); + + EvtComplex value = 0.; + + for(size_t i=0;i<_term.size();i++) { + value+=_c[i]*_term[i]->evaluate(p); + } + return value; + } + +private: + + std::vector _c; // coefficients + std::vector*> _term; // pointers to amplitudes +}; + + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtBlattWeisskopf.cxx b/TEvtGen/EvtGenBase/EvtBlattWeisskopf.cxx new file mode 100644 index 00000000000..01973551680 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtBlattWeisskopf.cxx @@ -0,0 +1,87 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtBlattWeisskopf.cc,v 1.6 2004/12/21 19:58:41 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#include +#include +#include +#include "EvtGenBase/EvtBlattWeisskopf.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; + +EvtBlattWeisskopf::EvtBlattWeisskopf(int LL, double R, double p0) + : _LL(LL), _radial(R), _p0(p0) +{ + if(R < 0) { + + report(INFO,"EvtGen") << "Radius " << R << " negative" << endl; + assert(0); + } + + _radial = R; + + // compute formula for nominal momentum + + _F0 = compute(_p0); + if(_F0 <= 0) { + + report(INFO,"EvtGen") << "Invalid nominal form factor computed " << _F0 << endl; + assert(0); + } +} + +EvtBlattWeisskopf::EvtBlattWeisskopf(const EvtBlattWeisskopf& other) + : _LL(other._LL), _radial(other._radial), _p0(other._p0), _F0(other._F0) +{} + +EvtBlattWeisskopf::~EvtBlattWeisskopf() +{} + +double EvtBlattWeisskopf::operator()(double p) const +{ + double ret = compute(p)/_F0; + // report(INFO,"EvtGen") << p << " " << _p0 << " " << _F0 << " " << _LL << " " << _radial << " " << ret << endl; + return ret; +} + +// Blatt-Weisskopf form factors +// see e.g. hep-ex/0011065 +// Dalitz Analysis of the Decay D0->K-pi+pi0 (CLEO) +// +// p - momentum of either daugher in the meson rest frame, +// the mass of the meson is used +// pAB - momentum of either daughter in the candidate rest frame +// the mass of the candidate is used +// R - meson radial parameter +// +// In the CLEO paper R=5 GeV-1 for D0, R=1.5 for intermediate resonances + +double EvtBlattWeisskopf::compute(double p) const +{ + if(p < 0) { + + report(INFO,"EvtGen") << "Momentum " << p << " negative in form factor calculation" << endl; + assert(0); + } + else { + + double x = p*p*_radial*_radial; + + if(0 == _LL) return 1.; + else + if(1 == _LL) return sqrt(1.0/(1.0+x)); + else + if(2 == _LL) return sqrt(1.0/(1.0+x/3.0+x*x/9.0)); + else { + report(INFO,"EvtGen") << "Angular momentum " << _LL << " not implemented" << endl; + assert(0); + } + } +} + diff --git a/TEvtGen/EvtGenBase/EvtBlattWeisskopf.hh b/TEvtGen/EvtGenBase/EvtBlattWeisskopf.hh new file mode 100644 index 00000000000..058f1efc660 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtBlattWeisskopf.hh @@ -0,0 +1,40 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtBlattWeisskopf.hh,v 1.3 2004/09/14 03:24:11 gowdy Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Blatt-Weisskopf penetration form factor for a resonance R->AB. +// Taken from CLEO preprint 00-23 (hep-ex/0011065) + +#ifndef EVT_BLATT_WEISSKOPF_HH +#define EVT_BLATT_WEISSKOPF_HH + +class EvtBlattWeisskopf { + + +public: + + EvtBlattWeisskopf(int LL, double R, double p0); + EvtBlattWeisskopf(const EvtBlattWeisskopf&); + ~EvtBlattWeisskopf(); + + double operator()(double p) const; + +private: + + int _LL; // angular momentum of daughters + double _radial; // resonance radial parameter + double _p0; + + double _F0; // formula evaluated at _p0 + double compute(double p) const; + +}; + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtBreitWignerPdf.cxx b/TEvtGen/EvtGenBase/EvtBreitWignerPdf.cxx new file mode 100644 index 00000000000..0234a90ce5c --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtBreitWignerPdf.cxx @@ -0,0 +1,83 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtBreitWignerPdf.cc,v 1.14 2004/12/21 19:58:41 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Breit-Wigner shape PDF. If the width is zero it degenerates into a delta +// function. The integral and its inverse can be still evaluated. + +#include +#include +#include +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtBreitWignerPdf.hh" +#include "EvtGenBase/EvtConst.hh" + +EvtBreitWignerPdf::EvtBreitWignerPdf(double min, double max, double m0, double g0) + : EvtIntegPdf1D(min,max), _m0(m0), _g0(g0) +{} + + +EvtBreitWignerPdf::EvtBreitWignerPdf(const EvtBreitWignerPdf& other) + : EvtIntegPdf1D(other), _m0(other._m0), _g0(other._g0) +{} + + +EvtBreitWignerPdf::~EvtBreitWignerPdf() +{} + + +double EvtBreitWignerPdf::pdf(const EvtPoint1D& x) const +{ + double m = x.value(); + if((0 == (m - _m0)) && (0. == _g0)) { + + printf("Delta function Breit-Wigner\n"); + assert(0); + } + + double ret = _g0/EvtConst::twoPi/((m-_m0)*(m-_m0)+_g0*_g0/4); + + return ret; +} + + +double EvtBreitWignerPdf::pdfIntegral(double m) const +{ + double itg = 0; + if(_g0 == 0) { + + if(m > _m0) itg = 1.; + else + if(m < _m0) itg = 0.; + else + itg = 0.5; + } + else itg = atan((m-_m0)/(_g0/2.))/EvtConst::pi + 0.5; + + return itg; +} + + +double EvtBreitWignerPdf::pdfIntegralInverse(double x) const +{ + if(x < 0 || x > 1) { + + printf("Invalid integral value %f\n",x); + assert(0); + } + + double m = _m0; + if(_g0 != 0) m = _m0 + (_g0/2.)*tan(EvtConst::pi*(x-0.5)); + + return m; +} + + + + diff --git a/TEvtGen/EvtGenBase/EvtBreitWignerPdf.hh b/TEvtGen/EvtGenBase/EvtBreitWignerPdf.hh new file mode 100644 index 00000000000..3023137d133 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtBreitWignerPdf.hh @@ -0,0 +1,48 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtBreitWignerPdf.hh,v 1.5 2003/06/20 17:20:00 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Breit-Wigner PDF + +#ifndef EVT_BREIT_WIGNER_PDF_HH +#define EVT_BREIT_WIGNER_PDF_HH + +#include "EvtGenBase/EvtIntegPdf1D.hh" + +class EvtBreitWignerPdf : public EvtIntegPdf1D { + +public: + + EvtBreitWignerPdf(double min, double max, double m0, double g0); + EvtBreitWignerPdf(const EvtBreitWignerPdf& other); + virtual ~EvtBreitWignerPdf(); + + double pdf(const EvtPoint1D& x) const; + EvtPdf* clone() const + { + return new EvtBreitWignerPdf(*this); + } + + double pdfIntegral(double m) const; + double pdfIntegralInverse(double x) const; + + // accessors + + inline double m0() const { return _m0; } + inline double g0() const { return _g0; } + +private: + + double _m0; + double _g0; + +}; + + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtCGCoefSingle.cxx b/TEvtGen/EvtGenBase/EvtCGCoefSingle.cxx new file mode 100644 index 00000000000..a2e596ee4a1 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtCGCoefSingle.cxx @@ -0,0 +1,149 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech, UCSB +// +// Module: EvtCGCoefSingle.cc +// +// Description: Evaluates Clebsch-Gordon coef for fixed j1 and j2. +// +// Modification history: +// +// fkw February 2, 2001 changes to satisfy KCC +// RYD August 12, 2000 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include "EvtGenBase/EvtCGCoefSingle.hh" +#include "EvtGenBase/EvtOrthogVector.hh" + + + +EvtCGCoefSingle::~EvtCGCoefSingle(){ +} + + +void EvtCGCoefSingle::init(int j1,int j2){ + + _j1=j1; + _j2=j2; + + _Jmax=abs(j1+j2); + _Jmin=abs(j1-j2); + + _table.resize((_Jmax-_Jmin)/2+1); + + int J,M; + + int lenmax=j1+1; + if (j2=_Jmin;J-=2){ + _table[(J-_Jmin)/2].resize(J+1); + for(M=J;J>=-M;M-=2){ + int len=((_j1+_j2)-abs(M))/2+1; + if (len>lenmax) len=lenmax; + _table[(J-_Jmin)/2][(M+J)/2].resize(len); + } + } + + //now fill the vectors + for(J=_Jmax;J>=_Jmin;J-=2){ + //bootstrap with highest M(=J) as a special case + if (J==_Jmax) { + cg(J,J,_j1,_j2)=1.0; + }else{ + int n=(_Jmax-J)/2+1; + std::vector* vectors=new std::vector[n-1]; + int i,k; + for(i=0;i orth=getOrth.getOrthogVector(); + int sign=1; + if (orth[n-1]<0.0) sign=-1; + for(k=0;k=-J;M-=2){ + int len=((_j1+_j2)-abs(M))/2+1; + if (len>lenmax) len=lenmax; + int mmin=M-j2; + if (mmin<-j1) mmin=-j1; + int m1; + for(m1=mmin;m1=_Jmin); + assert(abs(m1)<=_j1); + assert(abs(m2)<=_j2); + + //find lowest m1 allowed for the given M + + int mmin=M-_j2; + + if (mmin<-_j1) mmin=-_j1; + + int n=m1-mmin; + + return _table[(J-_Jmin)/2][(M+J)/2][n/2]; + +} + + + diff --git a/TEvtGen/EvtGenBase/EvtCGCoefSingle.hh b/TEvtGen/EvtGenBase/EvtCGCoefSingle.hh new file mode 100644 index 00000000000..1c108b7cb2a --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtCGCoefSingle.hh @@ -0,0 +1,54 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech, UCSB +// +// Module: EvtGen/EvtCGCoefSingle.hh +// +// Description:Evaluation of Clebsch-Gordon coef for a fixed j1 and j2. +// +// Modification history: +// +// RYD August 12, 2000 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTCGCOEFSINGLE_HH +#define EVTCGCOEFSINGLE_HH + +#include + + +class EvtCGCoefSingle{ + +public: + + EvtCGCoefSingle(int j1, int j2) {init(j1,j2);} + ~EvtCGCoefSingle(); + + + double coef(int J,int M,int j1,int j2,int m1,int m2); + +private: + + void init(int j1,int j2); + double& cg(int J,int M, int m1, int m2); + + int _j1; + int _j2; + + int _Jmax; + int _Jmin; + + std::vector > > _table; + +}; + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtCPUtil.cxx b/TEvtGen/EvtGenBase/EvtCPUtil.cxx new file mode 100644 index 00000000000..3aa80b8b27a --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtCPUtil.cxx @@ -0,0 +1,414 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtCPUtil.cc +// +// Description: Utilities needed for generation of CP violating +// decays. +// +// Modification history: +// +// RYD March 24, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtScalarParticle.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtSymTable.hh" +#include "EvtGenBase/EvtConst.hh" +#include +#include + +#include +using std::endl; + + +//added two functions for finding the fraction of B0 tags for decays into +//both CP eigenstates and non-CP eigenstates -- NK, Jan. 27th, 1998 + +void EvtCPUtil::fractB0CP(EvtComplex Af, EvtComplex Abarf, + double deltam, double beta, double &fract) { +//this function returns the number of B0 tags for decays into CP-eigenstates +//(the "probB0" in the new EvtOtherB) + + //double gamma_B = EvtPDL::getWidth(B0); + //double xd = deltam/gamma_B; + //double xd = 0.65; + double ratio = 1/(1 + 0.65*0.65); + + EvtComplex rf, rbarf; + + rf = EvtComplex(cos(2.0*beta),sin(2.0*beta))*Abarf/Af; + rbarf = EvtComplex(1.0)/rf; + + double A2 = real(Af)*real(Af) + imag(Af)*imag(Af); + double Abar2 = real(Abarf)*real(Abarf) + imag(Abarf)*imag(Abarf); + + double rf2 = real(rf)*real(rf) + imag(rf)*imag(rf); + double rbarf2 = real(rbarf)*real(rbarf) + imag(rbarf)*imag(rbarf); + + fract = (Abar2*(1+ rbarf2 + (1 - rbarf2)*ratio))/(Abar2*(1+ rbarf2 + (1 - rbarf2)*ratio) + A2*(1+ rf2 + (1 - rf2)*ratio)); + return; + +} +void EvtCPUtil::fractB0nonCP(EvtComplex Af, EvtComplex Abarf, + EvtComplex Afbar, EvtComplex Abarfbar, + double deltam, double beta, + int flip, double &fract) { + + //this function returns the number of B0 tags for decays into non-CP eigenstates + //(the "probB0" in the new EvtOtherB) + //this needs more thought... + + //double gamma_B = EvtPDL::getWidth(B0); + //report(INFO,"EvtGen") << "gamma " << gamma_B<< endl; + //double xd = deltam/gamma_B; + + //why is the width of B0 0 in PDL?? + + double xd = 0.65; + double gamma_B = deltam/xd; + double IAf, IAfbar, IAbarf, IAbarfbar; + EvtComplex rf, rfbar, rbarf, rbarfbar; + double rf2, rfbar2, rbarf2, rbarfbar2; + double Af2, Afbar2, Abarf2, Abarfbar2; + + rf = EvtComplex(cos(2.0*beta),sin(2.0*beta))*Abarf/Af; + rfbar = EvtComplex(cos(2.0*beta),sin(2.0*beta))*Abarfbar/Afbar; + rbarf = EvtComplex(cos(-2.0*beta),sin(-2.0*beta))*Af/Abarf; + rbarfbar = EvtComplex(cos(-2.0*beta),sin(-2.0*beta))*Afbar/Abarfbar; + + + rf2 = real(rf)*real(rf) + imag(rf)*imag(rf); + rfbar2 = real(rfbar)*real(rfbar) + imag(rfbar)*imag(rfbar); + rbarf2 = real(rbarf)*real(rbarf) + imag(rbarf)*imag(rbarf); + rbarfbar2 = real(rbarfbar)*real(rbarfbar) + imag(rbarfbar)*imag(rbarfbar); + + Af2 = real(Af)*real(Af) + imag(Af)*imag(Af); + Afbar2 = real(Afbar)*real(Afbar) + imag(Afbar)*imag(Afbar); + Abarf2 = real(Abarf)*real(Abarf) + imag(Abarf)*imag(Abarf); + Abarfbar2 = real(Abarfbar)*real(Abarfbar) + imag(Abarfbar)*imag(Abarfbar); + + + // + //IAf = integral(gamma(B0->f)), etc. + // + + IAf = (Af2/(2*gamma_B))*(1+rf2+(1-rf2)/(1+xd*xd)); + IAfbar = (Afbar2/(2*gamma_B))*(1+rfbar2+(1-rfbar2)/(1+xd*xd)); + IAbarf = (Abarf2/(2*gamma_B))*(1+rbarf2+(1-rbarf2)/(1+xd*xd)); + IAbarfbar = (Abarfbar2/(2*gamma_B))*(1+rbarfbar2+(1-rbarfbar2)/(1+xd*xd)); + + //flip specifies the relative fraction of fbar events + + fract = IAbarf/(IAbarf+IAf) + flip*IAbarfbar/(IAfbar+IAbarfbar); + + + return; +} + +void EvtCPUtil::OtherB( EvtParticle *p,double &t, EvtId &otherb, double probB0){ + + //Can not call this recursively!!! + static int entryCount=0; + entryCount++; + + //added by Lange Jan4,2000 + static EvtId B0B=EvtPDL::getId("anti-B0"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS=EvtPDL::getId("B_s0"); + + static EvtId UPS4S=EvtPDL::getId("Upsilon(4S)"); + + int isB0=EvtRandom::Flat(0.0,1.0)setLifetime(); + + // now get the time between the decay of this B and the other B! + + EvtParticle *parent=p->getParent(); + + EvtParticle *other; + + bool incoherentmix=false; + + if ((parent!=0)&&(parent->getId()==B0|| + parent->getId()==B0B|| + parent->getId()==BS|| + parent->getId()==BSB)) { + incoherentmix=true; + } + + if (incoherentmix) parent=parent->getParent(); + + if (parent==0||parent->getId()!=UPS4S) { + //Need to make this more general, but for now + //assume no parent. If we have parent of B we + //need to charge conj. full decay tree. + + + if (parent!=0) { + report(INFO,"EvtGen") << "p="<getId()) + << " parent="<getId()) + << endl; + } + assert(parent==0); + p->setLifetime(); + t=p->getLifetime(); + bool needToChargeConj=false; + if (p->getId()==B0B&&isB0) needToChargeConj=true; + if (p->getId()==B0&&!isB0) needToChargeConj=true; + if (p->getId()==BSB&&isB0) needToChargeConj=true; + if (p->getId()==BS&&!isB0) needToChargeConj=true; + + if (needToChargeConj) { + p->setId( EvtPDL::chargeConj(p->getId())); + if (incoherentmix) { + p->getDaug(0)->setId(EvtPDL::chargeConj(p->getDaug(0)->getId())); + } + } + otherb=EvtPDL::chargeConj(p->getId()); + + entryCount--; + return; + } + else{ + if (parent->getDaug(0)!=p){ + other=parent->getDaug(0); + idaug=0; + } + else{ + other=parent->getDaug(1); + idaug=1; + } + } + + if (parent != 0 ) { + + //if (entryCount>1){ + // report(INFO,"EvtGen") << "Double CP decay:"<getId().isAlias() ) { + OtherB(p,t,otherb); + entryCount--; + return; + + } + + if (entryCount==1){ + + EvtVector4R p_init=other->getP4(); + //int decayed=other->getNDaug()>0; + bool decayed = other->isDecayed(); + + other->deleteTree(); + + EvtScalarParticle* scalar_part; + + scalar_part=new EvtScalarParticle; + if (isB0) { + scalar_part->init(B0,p_init); + } + else{ + scalar_part->init(B0B,p_init); + } + other=(EvtParticle *)scalar_part; + // other->set_type(EvtSpinType::SCALAR); + other->setDiagonalSpinDensity(); + + parent->insertDaugPtr(idaug,other); + + if (decayed){ + //report(INFO,"EvtGen") << "In CP Util calling decay \n"; + other->decay(); + } + + } + + otherb=other->getId(); + + other->setLifetime(); + t=p->getLifetime()-other->getLifetime(); + + otherb = other->getId(); + + } + else { + report(INFO,"EvtGen") << "We have an error here!!!!"<getId()==BS0||p->getId()==BSB){ + static double ctauL=EvtPDL::getctau(EvtPDL::getId("B_s0L")); + static double ctauH=EvtPDL::getctau(EvtPDL::getId("B_s0H")); + static double ctau=ctauLgetParent(); + if (parent!=0&&(parent->getId()==BS0||parent->getId()==BSB)){ + if (parent->getId()==BS0) otherb=BSB; + if (parent->getId()==BSB) otherb=BS0; + parent->setLifetime(t); + return; + } + if (p->getId()==BS0) otherb=BSB; + if (p->getId()==BSB) otherb=BS0; + p->setLifetime(t); + return; + } + + if (p->getId()==D0||p->getId()==D0B){ + static double ctauL=EvtPDL::getctau(EvtPDL::getId("D0L")); + static double ctauH=EvtPDL::getctau(EvtPDL::getId("D0H")); + static double ctau=ctauLgetParent(); + if (parent!=0&&(parent->getId()==D0||parent->getId()==D0B)){ + if (parent->getId()==D0) otherb=D0B; + if (parent->getId()==D0B) otherb=D0; + parent->setLifetime(t); + return; + } + if (p->getId()==D0) otherb=D0B; + if (p->getId()==D0B) otherb=D0; + p->setLifetime(t); + return; + } + + + + + p->setLifetime(); + + + // now get the time between the decay of this B and the other B! + + EvtParticle *parent=p->getParent(); + + if (parent==0||parent->getId()!=UPS4) { + //report(ERROR,"EvtGen") << + // "Warning CP violation with B having no parent!"<getLifetime(); + if (p->getId()==B0) otherb=B0B; + if (p->getId()==B0B) otherb=B0; + if (p->getId()==BS0) otherb=BSB; + if (p->getId()==BSB) otherb=BS0; + return; + } + else{ + if (parent->getDaug(0)!=p){ + otherb=parent->getDaug(0)->getId(); + parent->getDaug(0)->setLifetime(); + t=p->getLifetime()-parent->getDaug(0)->getLifetime(); + } + else{ + otherb=parent->getDaug(1)->getId(); + parent->getDaug(1)->setLifetime(); + t=p->getLifetime()-parent->getDaug(1)->getLifetime(); + } + } + + + return ; +} + + +void EvtCPUtil::incoherentMix(const EvtId id, double &t, int &mix){ + + int stdHepNum=EvtPDL::getStdHep(id); + stdHepNum=abs(stdHepNum); + + EvtId partId=EvtPDL::evtIdFromStdHep(stdHepNum); + + std::string partName=EvtPDL::name(partId); + std::string hname=partName+std::string("H"); + std::string lname=partName+std::string("L"); + + EvtId lId=EvtPDL::getId(lname); + EvtId hId=EvtPDL::getId(hname); + + double ctauL=EvtPDL::getctau(lId); + double ctauH=EvtPDL::getctau(hId); + double ctau=0.5*(ctauL+ctauH); + double y=(ctauH-ctauL)/ctau; + + //need to figure out how to get these parameters into the code... + + std::string qoverpParmName=std::string("qoverp_incohMix_")+partName; + std::string mdParmName=std::string("dm_incohMix_")+partName; + int ierr; + double qoverp=atof(EvtSymTable::get(qoverpParmName,ierr).c_str()); + double x=atof(EvtSymTable::get(mdParmName,ierr).c_str())*ctau/EvtConst::c; + double fac; + + if(id==partId){ + fac=1.0/(qoverp*qoverp); + } + else{ + fac=qoverp*qoverp; + } + + double mixprob=(x*x+y*y)/(x*x+y*y+fac*(2+x*x-y*y)); + + int mixsign; + + mixsign=(mixprob>EvtRandom::Flat(0.0,1.0))?-1:1; + + double prob; + + do{ + t=-log(EvtRandom::Flat())*ctauL; + prob=1.0+exp(2.0*y*t/ctau)+mixsign*2.0*exp(y*t/ctau)*cos(x*t); + }while(prob<4*EvtRandom::Flat()); + + mix=0; + + if (mixsign==-1) mix=1; + + return; +} + + + + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtCPUtil.hh b/TEvtGen/EvtGenBase/EvtCPUtil.hh new file mode 100644 index 00000000000..12e55fe9b31 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtCPUtil.hh @@ -0,0 +1,56 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtCPUtil.hh +// +// Description:Class to hold CP physics utilities. +// +// Modification history: +// +// RYD March 24, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTCPUTIL_HH +#define EVTCPUTIL_HH + +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtPatches.hh" +class EvtParticle; +class EvtId; + +class EvtCPUtil{ + +public: + + static void fractB0CP(EvtComplex Af, EvtComplex Abarf, + double deltam, double beta, double &fract); + + static void fractB0nonCP(EvtComplex Af, EvtComplex Abarf, + EvtComplex Afbar, EvtComplex Abarfbar, + double deltam, double beta, int flip, + double &fract); + + static void OtherB(EvtParticle *p, double &t, EvtId &otherb); + + static void OtherB(EvtParticle *p, double &t, EvtId &otherb, double probB0); + + //id is the produced particle + //t returns the lifetime of the particle + //and mix will be 1 if it mixed otherwise 0 + static void incoherentMix(const EvtId id, double &t, int &mix); + + + +}; + + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtComplex.cxx b/TEvtGen/EvtGenBase/EvtComplex.cxx new file mode 100644 index 00000000000..ef36cf46be4 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtComplex.cxx @@ -0,0 +1,63 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtComplex.cc +// +// Description: EvtComlex.cc +// +// Modification history: +// +// RYD December 5, 1998 Created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include "EvtGenBase/EvtComplex.hh" +using std::ostream; + + +ostream& operator<<(ostream& s, const EvtComplex& c){ + + s<<"("< +#include +#include "EvtGenBase/EvtConst.hh" + +class EvtComplex { + + inline friend EvtComplex operator*(double d,const EvtComplex& c); + inline friend EvtComplex operator*(const EvtComplex& c,double d); + inline friend EvtComplex operator/(const EvtComplex& c,double d); + inline friend EvtComplex operator/(double d,const EvtComplex& c); + inline friend EvtComplex operator*(const EvtComplex& c1,const EvtComplex& c2); + inline friend EvtComplex operator/(const EvtComplex& c1,const EvtComplex& c2); + inline friend EvtComplex operator+(const EvtComplex& c1,const EvtComplex& c2); + inline friend EvtComplex operator-(const EvtComplex& c1,const EvtComplex& c2); + inline friend EvtComplex operator-(const EvtComplex& c); + inline friend EvtComplex conj(const EvtComplex& c); + inline friend double abs(const EvtComplex& c); + inline friend double abs2(const EvtComplex& c); + inline friend double arg(const EvtComplex& c); + inline friend double real(const EvtComplex& c); + inline friend double imag(const EvtComplex& c); + inline friend EvtComplex exp(const EvtComplex& c); + friend std::ostream& operator<<(std::ostream& s, const EvtComplex& c); + +public: + EvtComplex():_rpart(0.0),_ipart(0.0){} + EvtComplex(double rpart,double ipart=0.0):_rpart(rpart),_ipart(ipart){} + EvtComplex(const EvtComplex& c):_rpart(c._rpart),_ipart(c._ipart){} + inline EvtComplex& operator*=(double d); + inline EvtComplex& operator/=(double d); + EvtComplex& operator*=(EvtComplex c); + EvtComplex& operator/=(EvtComplex c); + inline EvtComplex& operator=(const EvtComplex& c); + inline EvtComplex& operator+=(const EvtComplex& c); + inline EvtComplex& operator-=(const EvtComplex& c); + inline EvtComplex& operator+=(double d); + inline EvtComplex& operator-=(double d); + inline int operator==(const EvtComplex c); + inline int operator!=(const EvtComplex c); +private: + double _rpart,_ipart; +}; + + +typedef EvtComplex* EvtComplexPtr; +typedef EvtComplexPtr* EvtComplexPtrPtr; +typedef EvtComplexPtrPtr* EvtComplexPtrPtrPtr; + + +EvtComplex& EvtComplex::operator=(const EvtComplex& c){ + + _rpart=c._rpart; + _ipart=c._ipart; + + return *this; +} + +EvtComplex& EvtComplex::operator+=(const EvtComplex& c){ + + _rpart+=c._rpart; + _ipart+=c._ipart; + + return *this; +} + +EvtComplex& EvtComplex::operator-=(const EvtComplex& c){ + + _rpart-=c._rpart; + _ipart-=c._ipart; + + return *this; +} + +EvtComplex& EvtComplex::operator+=(double d){ + + _rpart+=d; + + return *this; +} + +EvtComplex& EvtComplex::operator-=(double d){ + + _rpart-=d; + + return *this; +} + +EvtComplex operator*(double d,const EvtComplex& c){ + + return EvtComplex(c._rpart*d,c._ipart*d); + +} + +EvtComplex operator*(const EvtComplex& c, double d){ + + return EvtComplex(c._rpart*d,c._ipart*d); + +} + + + +EvtComplex operator/(const EvtComplex& c,double d){ + + return EvtComplex(c._rpart/d,c._ipart/d); + +} + +EvtComplex& EvtComplex::operator*=(double d){ + + _rpart*=d; + _ipart*=d; + + return *this; + +} + + +EvtComplex& EvtComplex::operator/=(double d){ + + _rpart/=d; + _ipart/=d; + + return *this; +} + +EvtComplex operator/(double d,const EvtComplex& c) { + +double Num=d/(c._rpart*c._rpart+c._ipart*c._ipart); + +return EvtComplex( Num*c._rpart, -Num*c._ipart ); + +} + + + +EvtComplex operator/(const EvtComplex& c1,const EvtComplex& c2){ + + double inv=1.0/(c2._rpart*c2._rpart+c2._ipart*c2._ipart); + + return EvtComplex(inv*(c1._rpart*c2._rpart+c1._ipart*c2._ipart), + inv*(c1._ipart*c2._rpart-c1._rpart*c2._ipart)); + +} + +EvtComplex operator*(const EvtComplex& c1,const EvtComplex& c2){ + + return EvtComplex(c1._rpart*c2._rpart-c1._ipart*c2._ipart, + c1._rpart*c2._ipart+c1._ipart*c2._rpart); + +} + +EvtComplex operator-(const EvtComplex& c1,const EvtComplex& c2){ + + return EvtComplex(c1._rpart-c2._rpart,c1._ipart-c2._ipart); + +} + +EvtComplex operator+(const EvtComplex& c1,const EvtComplex& c2){ + + return EvtComplex(c1._rpart+c2._rpart,c1._ipart+c2._ipart); + +} + +int EvtComplex::operator==(const EvtComplex c){ + + return _rpart==c._rpart&&_ipart==c._ipart; + +} + +int EvtComplex::operator!=(const EvtComplex c){ + + return _rpart!=c._rpart||_ipart!=c._ipart; + +} + + +EvtComplex operator-(const EvtComplex& c){ + + return EvtComplex(-c._rpart,-c._ipart); + +} + +EvtComplex conj(const EvtComplex& c){ + + return EvtComplex(c._rpart,-c._ipart); + +} + +double abs(const EvtComplex& c){ + + double c2=c._rpart*c._rpart+c._ipart*c._ipart; + if (c2<=0.0) return 0.0; + return sqrt(c2); + +} + + +double abs2(const EvtComplex& c){ + + return c._rpart*c._rpart+c._ipart*c._ipart; +} + + +double arg(const EvtComplex& c){ + if ((c._rpart==0)&&(c._ipart==0)) {return 0.0;} + if (c._rpart==0){ + if (c._ipart>0){ + return EvtConst::pi/2; + } else { + return -EvtConst::pi/2; + } + } else { + return atan2(c._ipart,c._rpart); + } +} + +double real(const EvtComplex& c){ + + return c._rpart; + +} + +double imag(const EvtComplex& c){ + + return c._ipart; + +} + +EvtComplex exp(const EvtComplex& c){ + + return exp(c._rpart)*EvtComplex(cos(c._ipart),sin(c._ipart)); + +} + + + +#endif + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtConst.cxx b/TEvtGen/EvtGenBase/EvtConst.cxx new file mode 100644 index 00000000000..e386855de75 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtConst.cxx @@ -0,0 +1,29 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtConst.cc +// +// Description: Routines to handle numerical constants in EvtGen +// +// Modification history: +// +// DJL/RYD August 8, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtConst.hh" + +const double EvtConst::pi = 3.14159265358979323846; +const double EvtConst::twoPi = 2*pi; +const double EvtConst::radToDegrees = 180./pi; + +const double EvtConst::c = 2.99792458E11; // mm/sec + diff --git a/TEvtGen/EvtGenBase/EvtConst.hh b/TEvtGen/EvtGenBase/EvtConst.hh new file mode 100644 index 00000000000..7edfd20dee0 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtConst.hh @@ -0,0 +1,38 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtConst.hh +// +// Description:Numerical constants used in EvtGen +// +// Modification history: +// +// DJL/RYD August 8, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTCONST_HH +#define EVTCONST_HH + +class EvtConst { + + public: + + static const double pi; + static const double twoPi; + static const double radToDegrees; + + static const double c; + +}; + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtCyclic3.cxx b/TEvtGen/EvtGenBase/EvtCyclic3.cxx new file mode 100644 index 00000000000..6b186cdfc61 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtCyclic3.cxx @@ -0,0 +1,331 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtCyclic3.cc,v 1.16 2009/02/18 03:31:37 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#include +#include +#include +#include "EvtGenBase/EvtCyclic3.hh" +using std::ostream; + +using namespace EvtCyclic3; + + +Index EvtCyclic3::permute(Index i, Perm p) +{ + if(p == ABC) return i; + else if(p == BCA) { + if(i == A) return C; + else if(i == B) return A; + else if(i == C) return B; + } + else if(p == BCA) { + if(i == A) return C; + else if(i == B) return A; + else if(i == C) return B; + } + else if(p == CAB) { + if(i == A) return B; + else if(i == B) return C; + else if(i == C) return A; + } + else if(p == CBA) { + if(i == A) return C; + else if(i == B) return B; + else if(i == C) return A; + } + else if(p == BAC) { + if(i == A) return B; + else if(i == B) return A; + else if(i == C) return C; + } + else if(p == ACB) { + if(i == A) return A; + else if(i == B) return C; + else if(i == C) return B; + } + assert(0); + return A; +} + +Perm EvtCyclic3::permutation(Index i1,Index i2,Index i3) +{ + assert(i1 != i2 && i2 != i3 && i3 != i1); + if(i1 == A) return (i2 == B) ? ABC : ACB; + if(i1 == B) return (i2 == C) ? BCA : BAC; + if(i1 == C) return (i2 == A) ? CAB : CBA; + assert(0); + return ABC; +} + + +Perm EvtCyclic3::permute(Perm i,Perm p) +{ + Index i1 = permute(permute(A,i),p); + Index i2 = permute(permute(B,i),p); + Index i3 = permute(permute(C,i),p); + + return permutation(i1,i2,i3); +} + +Pair EvtCyclic3::permute(Pair i, Perm p) +{ + Index i1 = permute(first(i),p); + Index i2 = permute(second(i),p); + return combine(i1,i2); +} + + +Pair EvtCyclic3::i2pair(int i) +{ + assert(0<=i && i<=2); + switch(i) { + case 0: return BC; + case 1: return CA; + case 2: return AB; + } + assert(0); return AB; // should never get here +} + + + +Index EvtCyclic3::prev(Index i) +{ + switch(i) { + case A: return C; + case B: return A; + case C: return B; + } + assert(0); return A; // should never get here +} + + +Index EvtCyclic3::next(Index i) +{ + switch(i) { + case A: return B; + case B: return C; + case C: return A; + } + assert(0); return A; // should never get here +} + + +Index EvtCyclic3::other(Index i, Index j) +{ + assert(i != j); + switch(i) { + case A: + switch(j) { + case B: return C; + case C: return B; + default: assert(0); + } + case B: + switch(j) { + case C: return A; + case A: return C; + default: assert(0); + } + case C: + switch(j) { + case A: return B; + case B: return A; + default: assert(0); + } + } + assert(0); return A; // should never get here +} + + +// Index-to-pair conversions + +Pair EvtCyclic3::other(Index i) +{ + switch(i) { + case A: return BC; + case B: return CA; + case C: return AB; + } + assert(0); return AB; // should never get here +} + + +Pair EvtCyclic3::combine(Index i, Index j) +{ + return other(other(i,j)); +} + + +// Pair-to-pair conversions + +Pair EvtCyclic3::prev(Pair i) +{ + Pair ret = CA; + if(i == BC) ret = AB; + else + if(i == CA) ret = BC; + + return ret; +} + +Pair EvtCyclic3::next(Pair i) +{ + Pair ret = BC; + if(i == BC) ret = CA; + else + if(i == CA) ret = AB; + + return ret; +} + +Pair EvtCyclic3::other(Pair i, Pair j) +{ + return combine(other(i),other(j)); +} + + +// Pair-to-index conversions + + +Index EvtCyclic3::first(Pair i) +{ + switch(i) { + case BC: return B; + case CA: return C; + case AB: return A; + } + assert(0); return A; // should never get here +} + + +Index EvtCyclic3::second(Pair i) +{ + switch(i) { + case BC: return C; + case CA: return A; + case AB: return B; + } + assert(0); return A; // should never get here +} + + +Index EvtCyclic3::other(Pair i) +{ + switch(i) { + case BC: return A; + case CA: return B; + case AB: return C; + } + assert(0); return A; // should never get here +} + + +Index EvtCyclic3::common(Pair i, Pair j) +{ + return other(other(i,j)); +} + + +Index EvtCyclic3::strToIndex(const char* str) +{ + if(strcmp(str,"A")) return A; + else if(strcmp(str,"B")) return B; + else if(strcmp(str,"C")) return C; + else assert(0); +} + + +Pair EvtCyclic3::strToPair(const char* str) +{ + if(!strcmp(str,"AB") || !strcmp(str,"BA")) return AB; + else if(!strcmp(str,"BC") || !strcmp(str,"CB")) return BC; + else if(!strcmp(str,"CA") || !strcmp(str,"AC")) return CA; + else assert(0); +} + + +const char* EvtCyclic3::c_str(Index i) +{ + switch(i) { + case A: return "A"; + case B: return "B"; + case C: return "C"; + } + assert(0); return 0; // sngh +} + + +const char* EvtCyclic3::c_str(Pair i) +{ + switch(i) { + case BC: return "BC"; + case CA: return "CA"; + case AB: return "AB"; + } + assert(0); return 0; // sngh +} + +const char* EvtCyclic3::c_str(Perm p) +{ + if(p == ABC) return "ABC"; + if(p == BCA) return "BCA"; + if(p == CAB) return "CAB"; + if(p == CBA) return "CBA"; + if(p == BAC) return "BAC"; + if(p == ACB) return "ACB"; + assert(0); + return "ABC"; +} + +char* EvtCyclic3::append(const char* str, EvtCyclic3::Index i) +{ + // str + null + 1 character + char* s = new char[strlen(str)+2]; + strcpy(s,str); + strcat(s,c_str(i)); + + return s; +} + +char* EvtCyclic3::append(const char* str, EvtCyclic3::Pair i) +{ + // str + null + 2 characters + char* s = new char[strlen(str)+3]; + strcpy(s,str); + strcat(s,c_str(i)); + + return s; +} + + +ostream& operator<<(ostream& os, EvtCyclic3::Index i) +{ + switch(i) { + case A: { os << "A"; return os; } + case B: { os << "B"; return os; } + case C: { os << "C"; return os; } + } + assert(0); return os; // should never get here +} + + +ostream& operator<<(ostream& os, EvtCyclic3::Pair i) +{ + switch(i) { + case BC: { os << "BC"; return os; } + case CA: { os << "CA"; return os; } + case AB: { os << "AB"; return os; } + } + assert(0); return os; // should never get here +} + + + + diff --git a/TEvtGen/EvtGenBase/EvtCyclic3.hh b/TEvtGen/EvtGenBase/EvtCyclic3.hh new file mode 100644 index 00000000000..84d4c94bcb4 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtCyclic3.hh @@ -0,0 +1,81 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtCyclic3.hh,v 1.12 2009/02/15 18:09:01 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Cyclic permutations of three indices A,B,C and their parings + +#ifndef EVT_CYCLIC3_HH +#define EVT_CYCLIC3_HH + +#include + +namespace EvtCyclic3 { + + + enum Index {A=0,B=1,C=2}; + enum Pair {BC=0,CB=BC,CA=1,AC=CA,AB=2,BA=AB}; + enum Perm {ABC=0,BCA=1,CAB=2,CBA=3,BAC=4,ACB=5}; + + // Permutations (multiplication is not transitive) + + Index permute(Index i, Perm p); + Perm permutation(Index i1,Index i2,Index i3); + Perm permute(Perm i, Perm p); + Pair permute(Pair i, Perm p); + + Pair i2pair(int i); + + // Index-to-index + + Index prev(Index i); + Index next(Index i) ; + Index other(Index i, Index j); + + // Index-to-pair + + Pair other(Index i); + Pair combine(Index i, Index j); + + + // Pair-to-pair conversions + + Pair prev(Pair i); + Pair next(Pair i); + Pair other(Pair i, Pair j); + + // Pair-to-index conversions + + + Index first(Pair i); + Index second(Pair i); + Index other(Pair i) ; + Index common(Pair i, Pair j); + + // String to Index, Pair + + Index strToIndex(const char* str); + Pair strToPair(const char* str); + + // To string conversions + + const char* c_str(Index i); + const char* c_str(Pair i); + const char* c_str(Perm i); + + // Useful name strings + + char* append(const char* str, EvtCyclic3::Index i); + char* append(const char* str, EvtCyclic3::Pair i); + +} + +//where should these go? +//ostream& operator<<(ostream&, EvtCyclic3::Index); +//ostream& operator<<(ostream&, EvtCyclic3::Pair); + +#endif diff --git a/TEvtGen/EvtGenBase/EvtDalitzCoord.cxx b/TEvtGen/EvtGenBase/EvtDalitzCoord.cxx new file mode 100644 index 00000000000..4e7142da269 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDalitzCoord.cxx @@ -0,0 +1,58 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtDalitzCoord.cc,v 1.3 2004/12/21 19:58:42 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#include +#include +#include "EvtGenBase/EvtDalitzCoord.hh" +using std::endl; +using std::ostream; +using EvtCyclic3::Pair; + + +// For coordinates it's good to alway have a +// default ctor. Initialize to something invalid. + +EvtDalitzCoord::EvtDalitzCoord() + : _i1(EvtCyclic3::AB), _i2(EvtCyclic3::BC), _q1(-1.), _q2(-1.) +{} + +EvtDalitzCoord::EvtDalitzCoord(const EvtDalitzCoord& other) + : _i1(other._i1), _i2(other._i2), _q1(other._q1), _q2(other._q2) +{} + + +EvtDalitzCoord::EvtDalitzCoord(Pair i1, double q1, Pair i2, double q2) + : _i1(i1), _i2(i2),_q1(q1),_q2(q2) +{} + + +EvtDalitzCoord::~EvtDalitzCoord() +{} + + +bool EvtDalitzCoord::operator==(const EvtDalitzCoord& other) const +{ + return (_i1 == other._i1 && _i2 == other._i2 && + _q1 == other._q1 && _q2 == other._q2); +} + +void EvtDalitzCoord::print(ostream& os) const +{ + os << _i1 << " " << _q1 << endl; + os << _i2 << " " << _q2 << endl; +} + + +ostream& operator<<(ostream& os,const EvtDalitzCoord& p) +{ + p.print(os); + return os; +} + diff --git a/TEvtGen/EvtGenBase/EvtDalitzCoord.hh b/TEvtGen/EvtGenBase/EvtDalitzCoord.hh new file mode 100644 index 00000000000..e5ace96a1c1 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDalitzCoord.hh @@ -0,0 +1,63 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtDalitzCoord.hh,v 1.3 2004/08/06 06:08:24 bartoldu Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Two dimensional coordinate of a point in a Dalitz plot + +#ifndef EVT_DALITZ_COORD_HH +#define EVT_DALITZ_COORD_HH + +#include "EvtGenBase/EvtCyclic3.hh" + +#include + +class EvtDalitzCoord { + + +public: + + // ctor, dtor + + EvtDalitzCoord(); + EvtDalitzCoord(EvtCyclic3::Pair i1, double q1, EvtCyclic3::Pair i2, double q2); + EvtDalitzCoord(const EvtDalitzCoord& other); + ~EvtDalitzCoord(); + + inline EvtCyclic3::Pair pair1() const { return _i1; } + inline EvtCyclic3::Pair pair2() const { return _i2; } + inline double q1() const { return _q1; } + inline double q2() const { return _q2; } + + + // It's nice to have an equality operator for + // a coordinate. However, beware effects of numerical precision + + bool operator==(const EvtDalitzCoord&) const; + + void print(std::ostream&) const; + +private: + + // Two coordinates define the point + + EvtCyclic3::Pair _i1; + EvtCyclic3::Pair _i2; + + double _q1; + double _q2; +}; + +std::ostream& operator<<(std::ostream&,const EvtDalitzCoord&); + +#endif + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtDalitzFlatPdf.cxx b/TEvtGen/EvtGenBase/EvtDalitzFlatPdf.cxx new file mode 100644 index 00000000000..ea43125de0c --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDalitzFlatPdf.cxx @@ -0,0 +1,67 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtDalitzFlatPdf.cc,v 1.4 2004/12/21 19:58:42 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtDalitzFlatPdf.hh" + +EvtDalitzFlatPdf::EvtDalitzFlatPdf(const EvtDalitzPlot& dp) + : EvtPdf(), _dp(dp) +{} + +EvtDalitzFlatPdf::EvtDalitzFlatPdf(const EvtDalitzFlatPdf& other) + : EvtPdf(other), _dp(other._dp) +{} + +EvtDalitzFlatPdf::~EvtDalitzFlatPdf() +{} + +EvtPdf* EvtDalitzFlatPdf::clone() const +{ + return new EvtDalitzFlatPdf(*this); +} + +double EvtDalitzFlatPdf::pdf(const EvtDalitzPoint&) const +{ + return 1.; +} + +EvtValError EvtDalitzFlatPdf::compute_integral(int N) const +{ + return EvtValError(_dp.getArea(N),0.); +} + +EvtDalitzPoint EvtDalitzFlatPdf::randomPoint() +{ + // To obtain a uniform distribution generate + // in terms of q's. Generate in a box that circumscribes the + // Dalitz plot. Accept points inside. If there are two + // many unsuccessful attempts it's a hint that the Dalitz plot + // area is tiny compared to the box. It's a pathological + // case. Abort. + + EvtCyclic3::Pair pair1 = EvtCyclic3::BC; + EvtCyclic3::Pair pair2 = EvtCyclic3::CA; + + int n = 0; + int maxTries = 1000; + while(n++ < maxTries) { + + double q1 = EvtRandom::Flat(_dp.qAbsMin(pair1),_dp.qAbsMax(pair2)); + double q2 = EvtRandom::Flat(_dp.qAbsMin(pair2),_dp.qAbsMax(pair2)); + + EvtDalitzCoord point(pair1,q1,pair2,q2); + EvtDalitzPoint x(_dp,point); + + if(x.isValid()) return x; + } + + printf("No point generated for dalitz plot after %d tries\n",maxTries); + assert(0); +} diff --git a/TEvtGen/EvtGenBase/EvtDalitzFlatPdf.hh b/TEvtGen/EvtGenBase/EvtDalitzFlatPdf.hh new file mode 100644 index 00000000000..b526bdc87eb --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDalitzFlatPdf.hh @@ -0,0 +1,40 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtDalitzFlatPdf.hh,v 1.1 2003/06/20 17:20:03 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +/* + * Uniform PDF defined on a Dalitz plot. + */ + +#ifndef EVT_DALITZ_FLAT_PDF_HH +#define EVT_DALITZ_FLAT_PDF_HH + +#include +#include "EvtGenBase/EvtPdf.hh" +#include "EvtGenBase/EvtDalitzPlot.hh" +#include "EvtGenBase/EvtDalitzPoint.hh" + +class EvtDalitzFlatPdf : public EvtPdf { +public: + + EvtDalitzFlatPdf(const EvtDalitzPlot& dp); + EvtDalitzFlatPdf(const EvtDalitzFlatPdf& other); + virtual ~EvtDalitzFlatPdf(); + virtual EvtPdf* clone() const; + + virtual EvtValError compute_integral(int N) const; + virtual EvtDalitzPoint randomPoint(); + +protected: + + virtual double pdf(const EvtDalitzPoint&) const; + + EvtDalitzPlot _dp; +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtDalitzPlot.cxx b/TEvtGen/EvtGenBase/EvtDalitzPlot.cxx new file mode 100644 index 00000000000..d75cde09eae --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDalitzPlot.cxx @@ -0,0 +1,353 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtDalitzPlot.cc,v 1.23 2004/12/21 19:58:42 ryd Exp $ +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module creator: +// Alexei Dvoretskii, Caltech, 2001-2002. +//----------------------------------------------------------------------- +#include "EvtGenBase/EvtPatches.hh" + +// Global 3-body Dalitz decay kinematics as defined by the mass +// of the mother and the daughters. Spins are not considered. + +#include +#include +#include +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtDalitzPlot.hh" +#include "EvtGenBase/EvtTwoBodyVertex.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtDecayMode.hh" + +using namespace EvtCyclic3; + + +EvtDalitzPlot::EvtDalitzPlot() + : _mA(0.), _mB(0.), _mC(0.), _bigM(0.), + _ldel(0.), _rdel(0.) +{} + + +EvtDalitzPlot::EvtDalitzPlot(double mA, double mB, double mC, double bigM, + double ldel, double rdel) + : _mA(mA), _mB(mB), _mC(mC), _bigM(bigM), + _ldel(ldel), _rdel(rdel) +{ + sanityCheck(); +} + +EvtDalitzPlot::EvtDalitzPlot(const EvtDecayMode& mode, double ldel, double rdel ) +{ + _mA = EvtPDL::getMeanMass(EvtPDL::getId(mode.dau(A))); + _mB = EvtPDL::getMeanMass(EvtPDL::getId(mode.dau(B))); + _mC = EvtPDL::getMeanMass(EvtPDL::getId(mode.dau(C))); + _bigM = EvtPDL::getMeanMass(EvtPDL::getId(mode.mother())); + + _ldel = ldel; + _rdel = rdel; + + sanityCheck(); +} + + +EvtDalitzPlot::EvtDalitzPlot(const EvtDalitzPlot& other) + : _mA(other._mA), _mB(other._mB), _mC(other._mC), _bigM(other._bigM), + _ldel(other._ldel), _rdel(other._rdel) +{} + + +EvtDalitzPlot::~EvtDalitzPlot() +{} + + +bool EvtDalitzPlot::operator==(const EvtDalitzPlot& other) const +{ + bool ret = false; + if(_mA == other._mA && + _mB == other._mB && + _mC == other._mC && + _bigM == other._bigM) ret = true; + + return ret; +} + + +const EvtDalitzPlot* EvtDalitzPlot::clone() const +{ + return new EvtDalitzPlot(*this); +} + + +void EvtDalitzPlot::sanityCheck() const +{ + if(_mA < 0 || _mB < 0 || _mC < 0 || _bigM <= 0 || _bigM - _mA - _mB - _mC < 0.) { + + printf("Invalid Dalitz plot %f %f %f %f\n",_mA,_mB,_mC,_bigM); + assert(0); + } + assert(_ldel <= 0.); + assert(_rdel >= 0.); +} + + +double EvtDalitzPlot::m(Index i) const { + + double m = _mA; + if(i == B) m = _mB; + else + if(i == C) m = _mC; + + return m; +} + + +double EvtDalitzPlot::sum() const +{ + return _mA*_mA + _mB*_mB + _mC*_mC + _bigM*_bigM; +} + + +double EvtDalitzPlot::qAbsMin(Pair i) const +{ + Index j = first(i); + Index k = second(i); + + return (m(j) + m(k))*(m(j) + m(k)); +} + + +double EvtDalitzPlot::qAbsMax(Pair i) const +{ + Index j = other(i); + return (_bigM-m(j))*(_bigM-m(j)); +} + + +double EvtDalitzPlot::qResAbsMin(EvtCyclic3::Pair i) const +{ + return qAbsMin(i) - sum()/3.; +} + +double EvtDalitzPlot::qResAbsMax(EvtCyclic3::Pair i) const +{ + return qAbsMax(i) - sum()/3.; +} + +double EvtDalitzPlot::qHelAbsMin(EvtCyclic3::Pair i) const +{ + Pair j = next(i); + Pair k = prev(i); + return (qAbsMin(j) - qAbsMax(k))/2.; +} + +double EvtDalitzPlot::qHelAbsMax(EvtCyclic3::Pair i) const +{ + Pair j = next(i); + Pair k = prev(i); + return (qAbsMax(j) - qAbsMin(k))/2.; +} + + +double EvtDalitzPlot::mAbsMin(Pair i) const +{ + return sqrt(qAbsMin(i)); +} + + +double EvtDalitzPlot::mAbsMax(Pair i) const +{ + return sqrt(qAbsMax(i)); +} + + +// parallel + +double EvtDalitzPlot::qMin(Pair i, Pair j, double q) const +{ + if(i == j) return q; + + else { + + // Particle pair j defines the rest-frame + // 0 - particle common to r.f. and angle calculations + // 1 - particle belonging to r.f. but not angle + // 2 - particle not belonging to r.f. + + Index k0 = common(i,j); + Index k2 = other(j); + Index k1 = other(k0,k2); + + // Energy, momentum of particle common to rest-frame and angle + EvtTwoBodyKine jpair(m(k0),m(k1),sqrt(q)); + double pk = jpair.p(); + double ek = jpair.e(EvtTwoBodyKine::A,EvtTwoBodyKine::AB); + + + // Energy and momentum of the other particle + EvtTwoBodyKine mother(sqrt(q),m(k2),bigM()); + double ej = mother.e(EvtTwoBodyKine::B,EvtTwoBodyKine::A); + double pj = mother.p(EvtTwoBodyKine::A); + + + // See PDG 34.4.3.1 + return (ek+ej)*(ek+ej) - (pk+pj)*(pk+pj); + } +} + + +// antiparallel + +double EvtDalitzPlot::qMax(Pair i, Pair j, double q) const +{ + + if(i == j) return q; + else { + + // Particle pair j defines the rest-frame + // 0 - particle common to r.f. and angle calculations + // 1 - particle belonging to r.f. but not angle + // 2 - particle not belonging to r.f. + + Index k0 = common(i,j); + Index k2 = other(j); + Index k1 = other(k0,k2); + + // Energy, momentum of particle common to rest-frame and angle + EvtTwoBodyKine jpair(m(k0),m(k1),sqrt(q)); + double ek = jpair.e(EvtTwoBodyKine::A,EvtTwoBodyKine::AB); + double pk = jpair.p(); + + // Energy and momentum of the other particle + EvtTwoBodyKine mother(sqrt(q),m(k2),bigM()); + double ej = mother.e(EvtTwoBodyKine::B,EvtTwoBodyKine::A); + double pj = mother.p(EvtTwoBodyKine::A); + + + // See PDG 34.4.3.1 + return (ek+ej)*(ek+ej) - (pk-pj)*(pk-pj); + } +} + + +double EvtDalitzPlot::getArea(int N, Pair i, Pair j) const +{ + // Trapezoidal integral over qi. qj can be calculated. + // The first and the last point are zero, so they are not counted + + double dh = (qAbsMax(i) - qAbsMin(i))/((double) N); + double sum = 0; + + int ii; + for(ii=1;ii +#include "EvtGenBase/EvtCyclic3.hh" +#include "EvtGenBase/EvtTwoBodyVertex.hh" +#include "EvtGenBase/EvtDecayMode.hh" + +class EvtDalitzPlot { +public: + + EvtDalitzPlot(); + EvtDalitzPlot(double mA, double mB, double mC, double bigM, double ldel = 0., double rdel = 0.); + EvtDalitzPlot(const EvtDecayMode& mode, double ldel = 0., double rdel = 0.); + EvtDalitzPlot(const EvtDalitzPlot& other); + ~EvtDalitzPlot(); + bool operator==(const EvtDalitzPlot& other) const; + const EvtDalitzPlot* clone() const; + + + // Absolute limits for masses squared in the Dalitz plot + // e.g. qAbsMin(0) is the lowest possible value + // for m2 of particles {12} + + double qAbsMin(EvtCyclic3::Pair i) const; + double qAbsMax(EvtCyclic3::Pair i) const; + double mAbsMin(EvtCyclic3::Pair i) const; + double mAbsMax(EvtCyclic3::Pair i) const; + + // Absolute limits for Zemach coordinate qres and qhel (approximate) + // qHelAbsMin(BC,CA) means absolute minimum for (qCA-qAB)/2. + + double qResAbsMin(EvtCyclic3::Pair i) const; + double qResAbsMax(EvtCyclic3::Pair i) const; + double qHelAbsMin(EvtCyclic3::Pair i) const; + double qHelAbsMax(EvtCyclic3::Pair i) const; + inline double qSumMin() const { return sum() + _ldel; } + inline double qSumMax() const { return sum() + _rdel; } + inline bool fuzzy() const { return (_rdel - _ldel != 0.); } + + // Find the area of the Dalitz plot by numeric integration. (N bins for variable q(i) are used). + // Very large numbers of N can result in a very long calculation. It should not + // matter which two pairs f variables are used. The integral should eventually + // converge to the same number + + double getArea(int N = 1000, EvtCyclic3::Pair i = EvtCyclic3::AB, EvtCyclic3::Pair j = EvtCyclic3::BC) const; + + // Limits for masses squared when one mass squared is known + + double qMin(EvtCyclic3::Pair i, EvtCyclic3::Pair j, double q) const; + double qMax(EvtCyclic3::Pair i, EvtCyclic3::Pair j, double q) const; + + + // Coordinate transformations + + double cosTh(EvtCyclic3::Pair i1, double q1, EvtCyclic3::Pair i2, double q2) const; + double e(EvtCyclic3::Index i, EvtCyclic3::Pair j, double q) const; + double p(EvtCyclic3::Index i, EvtCyclic3::Pair j, double q) const; + + double q(EvtCyclic3::Pair i1, double cosTh, EvtCyclic3::Pair i2, double q2) const; + + // |J| of transformation of qi to cosTh in the rest-frame of j + + double jacobian(EvtCyclic3::Pair i, double q) const; + + + // Given resonance index and mass returns decay + // and birth vertices + + EvtTwoBodyVertex vD(EvtCyclic3::Pair iRes, double m0, int L) const; + EvtTwoBodyVertex vB(EvtCyclic3::Pair iRes, double m0, int L) const; + + // Accessors + + double sum() const; + inline double bigM() const { return _bigM; } + inline double mA() const { return _mA; } + inline double mB() const { return _mB; } + inline double mC() const { return _mC; } + double m(EvtCyclic3::Index i) const; + + + void print() const; + + void sanityCheck() const; + +protected: + + // Defines two dimensional dalitz plot + + double _mA; + double _mB; + double _mC; + double _bigM; + + // Defines third dimension, or fuzziness. M^2 + ldel < M^2 < M^2 + rdel + + double _ldel; + double _rdel; + +}; + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtDalitzPoint.cxx b/TEvtGen/EvtGenBase/EvtDalitzPoint.cxx new file mode 100644 index 00000000000..f3481a457ed --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDalitzPoint.cxx @@ -0,0 +1,188 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtDalitzPoint.cc,v 1.14 2004/12/21 19:58:42 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtDalitzPoint.hh" +using namespace EvtCyclic3; + +EvtDalitzPoint::EvtDalitzPoint() + : _mA(-1.), _mB(-1.), _mC(-1.), _qAB(-1.), _qBC(-1.), _qCA(-1.) +{} + +EvtDalitzPoint::EvtDalitzPoint(double mA, double mB, double mC, double qAB, double qBC, double qCA) + : _mA(mA), _mB(mB), _mC(mC), _qAB(qAB), _qBC(qBC), _qCA(qCA) +{} + +// Constructor from Zemach coordinates + +EvtDalitzPoint::EvtDalitzPoint(double mA, double mB, double mC, + EvtCyclic3::Pair i, + double qres, double qhel, double qsum) + : _mA(mA), _mB(mB), _mC(mC) +{ + double qi = qres + qsum/3.; + double qj = -qres/2. + qhel + qsum/3.; + double qk = -qres/2. - qhel + qsum/3.; + + if(i == AB) { _qAB = qi; _qBC = qj; _qCA = qk; } + else if(i == BC) { _qAB = qk; _qBC = qi; _qCA = qj; } + else if(i == CA) { _qAB = qj; _qBC = qk; _qCA = qi; } +} + +EvtDalitzPoint::EvtDalitzPoint(const EvtDalitzPlot& dp, const EvtDalitzCoord& x) + : _mA(dp.m(A)), _mB(dp.m(B)), _mC(dp.m(C)) +{ + if(x.pair1() == AB) _qAB = x.q1(); + else + if(x.pair2() == AB) _qAB = x.q2(); + else _qAB = dp.sum() - x.q1() - x.q2(); + + if(x.pair1() == BC) _qBC = x.q1(); + else + if(x.pair2() == BC) _qBC = x.q2(); + else _qBC = dp.sum() - x.q1() - x.q2(); + + if(x.pair1() == CA) _qCA = x.q1(); + else + if(x.pair2() == CA) _qCA = x.q2(); + else _qCA = dp.sum() - x.q1() - x.q2(); + +} + +EvtDalitzPoint::EvtDalitzPoint(const EvtDalitzPoint& other) + : _mA(other._mA), _mB(other._mB), _mC(other._mC), + _qAB(other._qAB), _qBC(other._qBC), _qCA(other._qCA) +{} + +EvtDalitzPoint::~EvtDalitzPoint() +{} + +double EvtDalitzPoint::q(EvtCyclic3::Pair i) const +{ + double ret = _qAB; + if(BC == i) ret = _qBC; + else + if(CA == i) ret = _qCA; + + return ret; +} + +double EvtDalitzPoint::m(EvtCyclic3::Index i) const +{ + double ret = _mA; + if(B == i) ret = _mB; + else + if(C == i) ret = _mC; + + return ret; +} + +// Zemach variables + +double EvtDalitzPoint::qres(EvtCyclic3::Pair i) const +{ + return (2.*q(i) - q(EvtCyclic3::prev(i)) - q(EvtCyclic3::next(i)))/3.; +} +double EvtDalitzPoint::qhel(EvtCyclic3::Pair i) const +{ + Pair j = next(i); + Pair k = prev(i); + return (q(j) - q(k))/2.; +} +double EvtDalitzPoint::qsum() const +{ + return _qAB + _qBC + _qCA; +} + + +double EvtDalitzPoint::qMin(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const +{ + EvtDalitzPlot dp = getDalitzPlot(); + return dp.qMin(i,j,q(j)); +} + +double EvtDalitzPoint::qMax(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const +{ + EvtDalitzPlot dp = getDalitzPlot(); + return dp.qMax(i,j,q(j)); +} + +double EvtDalitzPoint::pp(EvtCyclic3::Index i, EvtCyclic3::Index j) const +{ + if(i == j) return m(i)*m(i); + else return (q(combine(i,j)) - m(i)*m(i) - m(j)*m(j))/2.; +} + +double EvtDalitzPoint::e(EvtCyclic3::Index i, EvtCyclic3::Pair j) const +{ + EvtDalitzPlot dp = getDalitzPlot(); + return dp.e(i,j,q(j)); +} + +double EvtDalitzPoint::p(EvtCyclic3::Index i, EvtCyclic3::Pair j) const +{ + EvtDalitzPlot dp = getDalitzPlot(); + return dp.p(i,j,q(j)); +} + +double EvtDalitzPoint::cosTh(EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes) const +{ + EvtDalitzPlot dp = getDalitzPlot(); + return dp.cosTh(pairAng,q(pairAng),pairRes,q(pairRes)); +} + + +EvtDalitzCoord EvtDalitzPoint::getDalitzPoint(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const +{ + return EvtDalitzCoord(i,q(i),j,q(j)); +} + + +EvtDalitzPlot EvtDalitzPoint::getDalitzPlot() const +{ + return EvtDalitzPlot(_mA,_mB,_mC,bigM()); +} + +bool EvtDalitzPoint::isValid() const +{ + // Check masses + + double M = bigM(); + if(_mA < 0 || _mB < 0 || _mC < 0 || M <= 0) return false; + if(M < _mA + _mB + _mC) return false; + + // Check that first coordinate is within absolute limits + + bool inside = false; + EvtDalitzPlot dp = getDalitzPlot(); + + if(dp.qAbsMin(AB) <= _qAB && _qAB <= dp.qAbsMax(AB)) + if(qMin(BC,AB) <= _qBC && _qBC <= qMax(BC,AB)) + inside = true; + + return inside; +} + +double EvtDalitzPoint::bigM() const +{ + return sqrt(_qAB+_qBC+_qCA - _mA*_mA - _mB*_mB - _mC*_mC); +} + + +void EvtDalitzPoint::print() const +{ + getDalitzPlot().print(); + printf("%f %f %f\n",_qAB,_qBC,_qCA); +} + + diff --git a/TEvtGen/EvtGenBase/EvtDalitzPoint.hh b/TEvtGen/EvtGenBase/EvtDalitzPoint.hh new file mode 100644 index 00000000000..8e324503d19 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDalitzPoint.hh @@ -0,0 +1,76 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtDalitzPoint.hh,v 1.10 2003/06/19 02:17:11 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// This class describes the complete kinematics of the Dalitz decay. +// It holds all the six invariant momentum products, three daughter +// particle masses and three invariant masses of pairs of particles. +// This description is completely symmetric with respect to particle +// permutations. +// +// Another way to slice the six coordinate is to make a transformation +// to the mass of the decaying particle. The four masses make up a +// Dalitz plot. The other two are coordinates of a point in the plot. + +#ifndef EVT_DALITZ_POINT_HH +#define EVT_DALITZ_POINT_HH + +#include "EvtGenBase/EvtCyclic3.hh" +#include "EvtGenBase/EvtDalitzCoord.hh" +#include "EvtGenBase/EvtDalitzPlot.hh" + +class EvtDalitzPoint { + +public: + + EvtDalitzPoint(); + EvtDalitzPoint(double mA, double mB, double mC, + double qAB, double qBC, double qCA); + EvtDalitzPoint(double mA, double mB, double mC, + EvtCyclic3::Pair i, double qres, double qhel, double qsum); + EvtDalitzPoint(const EvtDalitzPlot&, const EvtDalitzCoord&); + EvtDalitzPoint(const EvtDalitzPoint& other); + ~EvtDalitzPoint(); + + EvtDalitzCoord getDalitzPoint(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const; + EvtDalitzPlot getDalitzPlot() const; + + double q(EvtCyclic3::Pair) const; + double bigM() const; + double m(EvtCyclic3::Index) const; + + // Zemach variables + + double qres(EvtCyclic3::Pair i) const; + double qhel(EvtCyclic3::Pair i) const; + double qsum() const; + + // Kinematic quantities + // + // pp - 4 momentum product + // e,p,cosTh - energy/moementum in rest-frame of j + + + double qMin(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const; + double qMax(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const; + double pp(EvtCyclic3::Index i, EvtCyclic3::Index j) const; + double e(EvtCyclic3::Index i, EvtCyclic3::Pair j) const; + double p(EvtCyclic3::Index i, EvtCyclic3::Pair j) const; + double cosTh(EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes) const; + + bool isValid() const; + + void print() const; + +private: + + double _mA, _mB, _mC; // masses + double _qAB, _qBC, _qCA; // masses squared +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtDalitzResPdf.cxx b/TEvtGen/EvtGenBase/EvtDalitzResPdf.cxx new file mode 100644 index 00000000000..aef31c92775 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDalitzResPdf.cxx @@ -0,0 +1,105 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtDalitzResPdf.cc,v 1.5 2004/12/21 19:58:42 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#include +#include +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtDalitzResPdf.hh" +#include "EvtGenBase/EvtDalitzCoord.hh" +#include "EvtGenBase/EvtRandom.hh" +using namespace EvtCyclic3; + +EvtDalitzResPdf::EvtDalitzResPdf(const EvtDalitzPlot& dp, + double _m0, double _g0, EvtCyclic3::Pair pair) + : EvtPdf(), + _dp(dp), _m0(_m0), _g0(_g0), _pair(pair) +{} + + +EvtDalitzResPdf::EvtDalitzResPdf(const EvtDalitzResPdf& other) + : EvtPdf(other), + _dp(other._dp),_m0(other._m0), _g0(other._g0), _pair(other._pair) +{} + + +EvtDalitzResPdf::~EvtDalitzResPdf() +{} + +EvtValError EvtDalitzResPdf::compute_integral(int N) const +{ + assert(N != 0); + + EvtCyclic3::Pair i = _pair; + EvtCyclic3::Pair j = EvtCyclic3::next(i); + + // Trapezoidal integral + + double dh = (_dp.qAbsMax(j) - _dp.qAbsMin(j))/((double) N); + double sum = 0; + + int ii; + for(ii=1;ii { + +public: + + EvtDalitzResPdf(const EvtDalitzPlot& dp,double m0, double g0, EvtCyclic3::Pair pairRes); + EvtDalitzResPdf(const EvtDalitzResPdf& other); + virtual ~EvtDalitzResPdf(); + + + EvtPdf* clone() const { return new EvtDalitzResPdf(*this); } + + virtual EvtValError compute_integral(int N) const; + virtual EvtDalitzPoint randomPoint(); + double pdfMaxValue() const; + +protected: + + virtual double pdf(const EvtDalitzPoint&) const; + +private: + + EvtDalitzPlot _dp; + double _m0; // mass + double _g0; // width + EvtCyclic3::Pair _pair; // resonant pair +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtDalitzReso.cxx b/TEvtGen/EvtGenBase/EvtDalitzReso.cxx new file mode 100644 index 00000000000..3c395a82406 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDalitzReso.cxx @@ -0,0 +1,839 @@ +#include "EvtGenBase/EvtPatches.hh" +/***************************************************************************** + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtDalitzReso.cc,v 1.4 2008/11/27 16:29:30 jordix Exp $ + * + * Description: + * Class to compute Dalitz amplitudes based on many models that cannot be + * handled with EvtResonance. + * + * Modification history: + * Jordi Garra Ticó 2008/07/03 File created + *****************************************************************************/ + + +#include +#include +#include + +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtMatrix.hh" +#include "EvtGenBase/EvtDalitzReso.hh" + +#include "EvtGenBase/EvtdFunction.hh" +#include "EvtGenBase/EvtCyclic3.hh" + +#define PRECISION ( 1.e-3 ) + +using EvtCyclic3::Index; +using EvtCyclic3::Pair; + + +// single Breit-Wigner +EvtDalitzReso::EvtDalitzReso(const EvtDalitzPlot& dp, Pair pairAng, Pair pairRes, + EvtSpinType::spintype spin, double m0, double g0, NumType typeN) + : _dp(dp), + _pairAng(pairAng), + _pairRes(pairRes), + _spin(spin), + _typeN(typeN), + _m0(m0),_g0(g0), + _massFirst(dp.m(first(pairRes))),_massSecond(dp.m(second(pairRes))), + _m0_mix(-1.),_g0_mix(0.),_delta_mix(0.),_amp_mix(0.,0.), + _g1(-1.),_g2(-1.),_coupling2(Undefined), + _kmatrix_index(-1),_fr12prod(0.,0.),_fr13prod(0.,0.),_fr14prod(0.,0.),_fr15prod(0.,0.),_s0prod(0.), + _a(0.),_r(0.),_Blass(0.),_phiB(0.),_R(0.),_phiR(0.) +{ + _vb = EvtTwoBodyVertex(_m0,_dp.m(EvtCyclic3::other(_pairRes)),_dp.bigM(),_spin); + _vd = EvtTwoBodyVertex(_massFirst,_massSecond,_m0,_spin); + _vb.set_f( 0.0 ); // Default values for Blatt-Weisskopf factors. + _vd.set_f( 1.5 ); + assert(_typeN != K_MATRIX && _typeN != K_MATRIX_I && _typeN != K_MATRIX_II); // single BW cannot be K-matrix +} + + +// Breit-Wigner with electromagnetic mass mixing +EvtDalitzReso::EvtDalitzReso(const EvtDalitzPlot& dp, Pair pairAng, Pair pairRes, + EvtSpinType::spintype spin, double m0, double g0, NumType typeN, + double m0_mix, double g0_mix, double delta_mix, EvtComplex amp_mix) + : _dp(dp), + _pairAng(pairAng), + _pairRes(pairRes), + _spin(spin), + _typeN(typeN), + _m0(m0),_g0(g0), + _massFirst(dp.m(first(pairRes))),_massSecond(dp.m(second(pairRes))), + _m0_mix(m0_mix),_g0_mix(g0_mix),_delta_mix(delta_mix),_amp_mix(amp_mix), + _g1(-1.),_g2(-1.),_coupling2(Undefined), + _kmatrix_index(-1),_fr12prod(0.,0.),_fr13prod(0.,0.),_fr14prod(0.,0.),_fr15prod(0.,0.),_s0prod(0.), + _a(0.),_r(0.),_Blass(0.),_phiB(0.),_R(0.),_phiR(0.) +{ + _vb = EvtTwoBodyVertex(_m0,_dp.m(EvtCyclic3::other(_pairRes)),_dp.bigM(),_spin); + _vd = EvtTwoBodyVertex(_massFirst,_massSecond,_m0,_spin); + _vb.set_f( 0.0 ); // Default values for Blatt-Weisskopf factors. + _vd.set_f( 1.5 ); + // single BW (with electromagnetic mixing) cannot be K-matrix + assert(_typeN != K_MATRIX && _typeN != K_MATRIX_I && _typeN != K_MATRIX_II); +} + +// coupled Breit-Wigner +EvtDalitzReso::EvtDalitzReso(const EvtDalitzPlot& dp, Pair pairAng, Pair pairRes, + EvtSpinType::spintype spin, double m0, NumType typeN, double g1, double g2, CouplingType coupling2) + : _dp(dp), + _pairAng(pairAng), + _pairRes(pairRes), + _spin(spin), + _typeN(typeN), + _m0(m0),_g0(-1.), + _massFirst(dp.m(first(pairRes))),_massSecond(dp.m(second(pairRes))), + _m0_mix(-1.),_g0_mix(0.),_delta_mix(0.),_amp_mix(0.,0.), + _g1(g1),_g2(g2),_coupling2(coupling2), + _kmatrix_index(-1),_fr12prod(0.,0.),_fr13prod(0.,0.),_fr14prod(0.,0.),_fr15prod(0.,0.),_s0prod(0.), + _a(0.),_r(0.),_Blass(0.),_phiB(0.),_R(0.),_phiR(0.) +{ + _vb = EvtTwoBodyVertex(_m0,_dp.m(EvtCyclic3::other(_pairRes)),_dp.bigM(),_spin); + _vd = EvtTwoBodyVertex(_massFirst,_massSecond,_m0,_spin); + _vb.set_f( 0.0 ); // Default values for Blatt-Weisskopf factors. + _vd.set_f( 1.5 ); + assert(_coupling2 != Undefined); + assert(_typeN != K_MATRIX && _typeN != K_MATRIX_I && _typeN != K_MATRIX_II); // coupled BW cannot be K-matrix + assert(_typeN != LASS); // coupled BW cannot be LASS + assert(_typeN != NBW); // for coupled BW, only relativistic BW +} + + +// K-Matrix (A&S) +EvtDalitzReso::EvtDalitzReso(const EvtDalitzPlot& dp, Pair pairRes, std::string nameIndex, NumType typeN, + EvtComplex fr12prod, EvtComplex fr13prod, EvtComplex fr14prod, EvtComplex fr15prod, double s0prod) + : _dp(dp), + _pairRes(pairRes), + _typeN(typeN), + _m0(0.),_g0(0.), + _massFirst(dp.m(first(pairRes))),_massSecond(dp.m(second(pairRes))), + _m0_mix(-1.),_g0_mix(0.),_delta_mix(0.),_amp_mix(0.,0.), + _g1(-1.),_g2(-1.),_coupling2(Undefined), + _kmatrix_index(-1),_fr12prod(fr12prod),_fr13prod(fr13prod),_fr14prod(fr14prod),_fr15prod(fr15prod),_s0prod(s0prod), + _a(0.),_r(0.),_Blass(0.),_phiB(0.),_R(0.),_phiR(0.) +{ + assert(_typeN==K_MATRIX || _typeN==K_MATRIX_I || _typeN==K_MATRIX_II); + _spin=EvtSpinType::SCALAR; + if (nameIndex=="Pole1") _kmatrix_index=1; + else if (nameIndex=="Pole2") _kmatrix_index=2; + else if (nameIndex=="Pole3") _kmatrix_index=3; + else if (nameIndex=="Pole4") _kmatrix_index=4; + else if (nameIndex=="Pole5") _kmatrix_index=5; + else if (nameIndex=="f11prod") _kmatrix_index=6; + else assert(0); +} + + +// LASS parameterization +EvtDalitzReso::EvtDalitzReso(const EvtDalitzPlot& dp, Pair pairRes, + double m0, double g0, double a, double r, double B, double phiB, double R, double phiR) + : _dp(dp), + _pairRes(pairRes), + _typeN(LASS), + _m0(m0),_g0(g0), + _massFirst(dp.m(first(pairRes))),_massSecond(dp.m(second(pairRes))), + _m0_mix(-1.),_g0_mix(0.),_delta_mix(0.),_amp_mix(0.,0.), + _g1(-1.),_g2(-1.),_coupling2(Undefined), + _kmatrix_index(-1),_fr12prod(0.,0.),_fr13prod(0.,0.),_fr14prod(0.,0.),_fr15prod(0.,0.),_s0prod(0.), + _a(a),_r(r),_Blass(B),_phiB(phiB),_R(R),_phiR(phiR) +{ + _spin=EvtSpinType::SCALAR; + _vd = EvtTwoBodyVertex(_massFirst,_massSecond,_m0,_spin); + _vd.set_f( 1.5 ); // Default values for Blatt-Weisskopf factors. +} + + + +EvtDalitzReso::EvtDalitzReso(const EvtDalitzReso& other) + : _dp(other._dp), + _pairAng(other._pairAng), + _pairRes(other._pairRes), + _spin(other._spin), + _typeN(other._typeN), + _m0(other._m0),_g0(other._g0), + _vb(other._vb),_vd(other._vd), + _massFirst(other._massFirst),_massSecond(other._massSecond), + _m0_mix(other._m0_mix),_g0_mix(other._g0_mix),_delta_mix(other._delta_mix),_amp_mix(other._amp_mix), + _g1(other._g1),_g2(other._g2),_coupling2(other._coupling2), + _kmatrix_index(other._kmatrix_index), + _fr12prod(other._fr12prod),_fr13prod(other._fr13prod),_fr14prod(other._fr14prod),_fr15prod(other._fr15prod), + _s0prod(other._s0prod), + _a(other._a),_r(other._r),_Blass(other._Blass),_phiB(other._phiB),_R(other._R),_phiR(other._phiR) +{} + + +EvtDalitzReso::~EvtDalitzReso() +{} + + +EvtComplex EvtDalitzReso::evaluate(const EvtDalitzPoint& x) +{ + double m = sqrt(x.q(_pairRes)); + + // do use always hash table (speed up fitting) + if (_typeN==K_MATRIX || _typeN==K_MATRIX_I || _typeN==K_MATRIX_II) + return Fvector( m*m, _kmatrix_index ); + + if (_typeN==LASS) + return lass(m*m); + + EvtComplex amp(1.0,0.0); + + if (_dp.bigM() != x.bigM()) _vb = EvtTwoBodyVertex(_m0,_dp.m(EvtCyclic3::other(_pairRes)),x.bigM(),_spin); + EvtTwoBodyKine vb(m,x.m(EvtCyclic3::other(_pairRes)),x.bigM()); + EvtTwoBodyKine vd(_massFirst,_massSecond,m); + + EvtComplex prop(0,0); + if (_typeN==NBW) { + prop = propBreitWigner(_m0,_g0,m); + } else if (_typeN==GAUSS_CLEO || _typeN==GAUSS_CLEO_ZEMACH) { + prop = propGauss(_m0,_g0,m); + } else { + if (_coupling2==Undefined) { + // single BW + double g = (_g0<=0. || _vd.pD()<=0.)? -_g0 : _g0*_vd.widthFactor(vd); // running width + if (_typeN==GS_CLEO || _typeN==GS_CLEO_ZEMACH) { + // Gounaris-Sakurai (GS) + assert(_massFirst==_massSecond); + prop = propGounarisSakurai(_m0,fabs(_g0),_vd.pD(),m,g,vd.p()); + } else { + // standard relativistic BW + prop = propBreitWignerRel(_m0,g,m); + } + } else { + // coupled width BW + EvtComplex G1,G2; + switch (_coupling2) { + case PicPic: { + G1 = _g1*_g1*psFactor(_massFirst,_massSecond,m); + static double mPic = EvtPDL::getMass( EvtPDL::getId( "pi+" ) ); + G2 = _g2*_g2*psFactor(mPic,mPic,m); + break; + } + case PizPiz: { + G1 = _g1*_g1*psFactor(_massFirst,_massSecond,m); + static double mPiz = EvtPDL::getMass( EvtPDL::getId( "pi0" ) ); + G2 = _g2*_g2*psFactor(mPiz,mPiz,m); + break; + } + case PiPi: { + G1 = _g1*_g1*psFactor(_massFirst,_massSecond,m); + static double mPic = EvtPDL::getMass( EvtPDL::getId( "pi+" ) ); + static double mPiz = EvtPDL::getMass( EvtPDL::getId( "pi0" ) ); + G2 = _g2*_g2*psFactor(mPic,mPic,mPiz,mPiz,m); + break; + } + case KcKc: { + G1 = _g1*_g1*psFactor(_massFirst,_massSecond,m); + static double mKc = EvtPDL::getMass( EvtPDL::getId( "K+" ) ); + G2 = _g2*_g2*psFactor(mKc,mKc,m); + break; + } + case KzKz: { + G1 = _g1*_g1*psFactor(_massFirst,_massSecond,m); + static double mKz = EvtPDL::getMass( EvtPDL::getId( "K0" ) ); + G2 = _g2*_g2*psFactor(mKz,mKz,m); + break; + } + case KK: { + G1 = _g1*_g1*psFactor(_massFirst,_massSecond,m); + static double mKc = EvtPDL::getMass( EvtPDL::getId( "K+" ) ); + static double mKz = EvtPDL::getMass( EvtPDL::getId( "K0" ) ); + G2 = _g2*_g2*psFactor(mKc,mKc,mKz,mKz,m); + break; + } + case EtaPic: { + G1 = _g1*_g1*psFactor(_massFirst,_massSecond,m); + static double mEta = EvtPDL::getMass( EvtPDL::getId( "eta" ) ); + static double mPic = EvtPDL::getMass( EvtPDL::getId( "pi+" ) ); + G2 = _g2*_g2*psFactor(mEta,mPic,m); + break; + } + case EtaPiz: { + G1 = _g1*_g1*psFactor(_massFirst,_massSecond,m); + static double mEta = EvtPDL::getMass( EvtPDL::getId( "eta" ) ); + static double mPiz = EvtPDL::getMass( EvtPDL::getId( "pi0" ) ); + G2 = _g2*_g2*psFactor(mEta,mPiz,m); + break; + } + case PicPicKK: { + static double mPic = EvtPDL::getMass( EvtPDL::getId( "pi+" ) ); + //G1 = _g1*_g1*psFactor(mPic,mPic,m); + G1 = _g1*psFactor(mPic,mPic,m); + static double mKc = EvtPDL::getMass( EvtPDL::getId( "K+" ) ); + static double mKz = EvtPDL::getMass( EvtPDL::getId( "K0" ) ); + //G2 = _g2*_g2*psFactor(mKc,mKc,mKz,mKz,m); + G2 = _g2*psFactor(mKc,mKc,mKz,mKz,m); + break; + } + default: + std::cout << "EvtDalitzReso:evaluate(): PANIC, wrong coupling2 state." << std::endl; + assert(0); + break; + } + // calculate standard couple BW propagator + if (_coupling2 != WA76) + prop = _g1*propBreitWignerRelCoupled(_m0,G1,G2,m); + } + } + amp *= prop; + + // Compute form-factors (Blatt-Weisskopf penetration factor) + amp *= _vb.formFactor(vb); + amp *= _vd.formFactor(vd); + + // Compute numerator (angular distribution) + amp *= numerator(x,vb,vd); + + // Compute electromagnetic mass mixing factor + if (_m0_mix>0.) { + EvtComplex prop_mix; + if (_typeN==NBW) { + prop_mix = propBreitWigner(_m0_mix,_g0_mix,m); + } else { + assert(_g1<0.); // running width only + double g_mix = _g0_mix*_vd.widthFactor(vd); + prop_mix = propBreitWignerRel(_m0_mix,g_mix,m); + } + amp *= mixFactor(prop,prop_mix); + } + + return amp; +} + + +EvtComplex EvtDalitzReso::psFactor(double & ma, double & mb, double& m) +{ + if (m>(ma+mb)) { + EvtTwoBodyKine vd(ma,mb,m); + return EvtComplex(0,2*vd.p()/m); + } else { + // analytical continuation + double s = m*m; + double phaseFactor_analyticalCont = -0.5*(sqrt(4*ma*ma/s-1)+sqrt(4*mb*mb/s-1)); + return EvtComplex(phaseFactor_analyticalCont,0); + } +} + + +EvtComplex EvtDalitzReso::psFactor(double & ma1,double & mb1, double & ma2, double & mb2, double& m) +{ + return 0.5*(psFactor(ma1,mb1,m)+psFactor(ma2,mb2,m)); +} + + +EvtComplex EvtDalitzReso::propGauss(const double& m0, const double& s0, const double& m) +{ + // Gaussian + double gauss = 1./sqrt(EvtConst::twoPi)/s0*exp(-(m-m0)*(m-m0)/2./(s0*s0)); + return EvtComplex(gauss,0.); +} + + +EvtComplex EvtDalitzReso::propBreitWigner(const double& m0, const double& g0, const double& m) +{ + // non-relativistic BW + return sqrt(g0/EvtConst::twoPi)/(m-m0-EvtComplex(0.0,g0/2.)); +} + + +EvtComplex EvtDalitzReso::propBreitWignerRel(const double& m0, const double& g0, const double& m) +{ + // relativistic BW with real width + return 1./(m0*m0-m*m-EvtComplex(0.,m0*g0)); +} + + + +EvtComplex EvtDalitzReso::propBreitWignerRel(const double& m0, const EvtComplex& g0, const double& m) +{ + // relativistic BW with complex width + return 1./(m0*m0-m*m-EvtComplex(0.,m0)*g0); +} + + +EvtComplex EvtDalitzReso::propBreitWignerRelCoupled(const double& m0, const EvtComplex& g1, const EvtComplex& g2, const double& m) +{ + // relativistic coupled BW + return 1./(m0*m0-m*m-(g1+g2)); +} + +EvtComplex EvtDalitzReso::propGounarisSakurai(const double& m0, const double& g0, const double& k0, + const double& m, const double& g, const double& k) +{ + // Gounaris-Sakurai parameterization of pi+pi- P wave. PRD, Vol61, 112002. PRL, Vol21, 244. + // Expressions taken from BAD637v4, after fixing the imaginary part of the BW denominator: i M_R Gamma_R(s) --> i sqrt(s) Gamma_R(s) + return (1.+GS_d(m0,k0)*g0/m0)/(m0*m0-m*m-EvtComplex(0.,m*g)+GS_f(m0,g0,k0,m,k)); +} + + +inline double EvtDalitzReso::GS_f(const double& m0, const double& g0, const double& k0, const double& m, const double& k) +{ + // m: sqrt(s) + // m0: nominal resonance mass + // k: momentum of pion in resonance rest frame (at m) + // k0: momentum of pion in resonance rest frame (at nominal resonance mass) + return g0*m0*m0/(k0*k0*k0)*( k*k*(GS_h(m,k)-GS_h(m0,k0)) + (m0*m0-m*m)*k0*k0*GS_dhods(m0,k0) ); +} + +inline double EvtDalitzReso::GS_h(const double& m, const double& k) +{return 2./EvtConst::pi*k/m*log((m+2.*k)/(2.*_massFirst)) ;} + +inline double EvtDalitzReso::GS_dhods(const double& m0, const double& k0) +{return GS_h(m0,k0)*( 0.125/(k0*k0) - 0.5/(m0*m0) ) + 0.5/(EvtConst::pi*m0*m0) ;} + +inline double EvtDalitzReso::GS_d(const double& m0, const double& k0) +{return 3./EvtConst::pi*_massFirst*_massFirst/(k0*k0)*log((m0+2.*k0)/(2.*_massFirst)) + + m0/(2.*EvtConst::pi*k0) - _massFirst*_massFirst*m0/(EvtConst::pi*k0*k0*k0) ;} + + +EvtComplex EvtDalitzReso::numerator(const EvtDalitzPoint& x, const EvtTwoBodyKine& vb, const EvtTwoBodyKine& vd) +{ + EvtComplex ret(0.,0.); + + // Non-relativistic Breit-Wigner + if(NBW == _typeN) { + ret = angDep(x); + } + + // Standard relativistic Zemach propagator + else if(RBW_ZEMACH == _typeN) { + ret = _vd.phaseSpaceFactor(vd,EvtTwoBodyKine::AB)*angDep(x); + } + + // Standard relativistic Zemach propagator + else if(RBW_ZEMACH2 == _typeN) { + ret = _vd.phaseSpaceFactor(vd,EvtTwoBodyKine::AB)*_vb.phaseSpaceFactor(vb,EvtTwoBodyKine::AB)*angDep(x); + if(_spin == EvtSpinType::VECTOR) { + ret *= -4.; + } else if(_spin == EvtSpinType::TENSOR) { + ret *= 16./3.; + } else if(_spin != EvtSpinType::SCALAR) + assert(0); + } + + // Kuehn-Santamaria normalization: + else if(RBW_KUEHN == _typeN) { + ret = _m0*_m0 * angDep(x); + } + + // CLEO amplitude + else if( ( RBW_CLEO == _typeN ) || ( GS_CLEO == _typeN ) || + ( RBW_CLEO_ZEMACH == _typeN ) || ( GS_CLEO_ZEMACH == _typeN ) || + ( GAUSS_CLEO == _typeN ) || ( GAUSS_CLEO_ZEMACH == _typeN)) { + + Index iA = other(_pairAng); // A = other(BC) + Index iB = common(_pairRes,_pairAng); // B = common(AB,BC) + Index iC = other(_pairRes); // C = other(AB) + + double M = x.bigM(); + double mA = x.m(iA); + double mB = x.m(iB); + double mC = x.m(iC); + double qAB = x.q(combine(iA,iB)); + double qBC = x.q(combine(iB,iC)); + double qCA = x.q(combine(iC,iA)); + + double M2 = M*M; + double m02 = ((RBW_CLEO_ZEMACH == _typeN)||(GS_CLEO_ZEMACH == _typeN)||(GAUSS_CLEO_ZEMACH == _typeN))? qAB : _m0*_m0; + double mA2 = mA*mA; + double mB2 = mB*mB; + double mC2 = mC*mC; + + if (_spin == EvtSpinType::SCALAR) ret = EvtComplex(1.,0.); + else if(_spin == EvtSpinType::VECTOR) { + ret = qCA - qBC + (M2 - mC2)*(mB2 - mA2)/m02; + } else if(_spin == EvtSpinType::TENSOR) { + double x1 = qBC - qCA + (M2 - mC2)*(mA2 - mB2)/m02; + double x2 = M2 - mC2; + double x3 = qAB - 2*M2 - 2*mC2 + x2*x2/m02; + double x4 = mA2 - mB2; + double x5 = qAB - 2*mB2 - 2*mA2 + x4*x4/m02; + ret = x1*x1 - x3*x5/3.; + } else assert(0); + } + + return ret; +} + + +double EvtDalitzReso::angDep(const EvtDalitzPoint& x) +{ + // Angular dependece for factorizable amplitudes + // unphysical cosines indicate we are in big trouble + double cosTh = x.cosTh(_pairAng,_pairRes); // angle between common(reso,ang) and other(reso) + if(fabs(cosTh) > 1.) { + report(INFO,"EvtGen") << "cosTh " << cosTh << std::endl; + assert(0); + } + + // in units of half-spin + return EvtdFunction::d(EvtSpinType::getSpin2(_spin),2*0,2*0,acos(cosTh)); +} + + +EvtComplex EvtDalitzReso::mixFactor(EvtComplex prop, EvtComplex prop_mix) +{ + double Delta = _delta_mix*(_m0+_m0_mix); + return 1/(1-Delta*Delta*prop*prop_mix)*(1+_amp_mix*Delta*prop_mix); +} + + + +EvtComplex EvtDalitzReso::Fvector( double s, int index ) +{ + assert(index>=1 && index<=6); + + //Define the complex coupling constant + //The convection is as follow + //i=0 --> pi+ pi- + //i=1 --> KK + //i=2 --> 4pi + //i=3 --> eta eta + //i=4 --> eta eta' + //The first index is the resonace-pole index + + double g[5][5]; // Coupling constants. The first index is the pole index. The second index is the decay channel + double ma[5]; // Pole masses. The unit is in GeV + + int solution = (_typeN==K_MATRIX)? 3 : ( (_typeN==K_MATRIX_I)? 1 : ( (_typeN==K_MATRIX_II)? 2 : 0 ) ) ; + if (solution==0) { std::cout << "EvtDalitzReso::Fvector() error. Kmatrix solution incorrectly chosen ! " << std::endl; abort(); } + + if (solution == 3 ) { + + // coupling constants + //pi+pi- channel + g[0][0]=0.22889; + g[1][0]=0.94128; + g[2][0]=0.36856; + g[3][0]=0.33650; + g[4][0]=0.18171; + //K+K- channel + g[0][1]=-0.55377; + g[1][1]=0.55095; + g[2][1]=0.23888; + g[3][1]=0.40907; + g[4][1]=-0.17558; + //4pi channel + g[0][2]=0; + g[1][2]=0; + g[2][2]=0.55639; + g[3][2]=0.85679; + g[4][2]=-0.79658; + //eta eta channel + g[0][3]=-0.39899; + g[1][3]=0.39065; + g[2][3]=0.18340; + g[3][3]=0.19906; + g[4][3]=-0.00355; + //eta eta' channel + g[0][4]=-0.34639; + g[1][4]=0.31503; + g[2][4]=0.18681; + g[3][4]=-0.00984; + g[4][4]=0.22358; + + // Pole masses + ma[0]=0.651; + ma[1]=1.20360; + ma[2]=1.55817; + ma[3]=1.21000; + ma[4]=1.82206; + + } else if (solution == 1) { // solnI.txt + + // coupling constants + //pi+pi- channel + g[0][0]=0.31896; + g[1][0]=0.85963; + g[2][0]=0.47993; + g[3][0]=0.45121; + g[4][0]=0.39391; + //K+K- channel + g[0][1]=-0.49998; + g[1][1]=0.52402; + g[2][1]=0.40254; + g[3][1]=0.42769; + g[4][1]=-0.30860; + //4pi channel + g[0][2]=0; + g[1][2]=0; + g[2][2]=1.0; + g[3][2]=1.15088; + g[4][2]=0.33999; + //eta eta channel + g[0][3]=-0.21554; + g[1][3]=0.38093; + g[2][3]=0.21811; + g[3][3]=0.22925; + g[4][3]=0.06919; + //eta eta' channel + g[0][4]=-0.18294; + g[1][4]=0.23788; + g[2][4]=0.05454; + g[3][4]=0.06444; + g[4][4]=0.32620; + + // Pole masses + ma[0]=0.7369; + ma[1]=1.24347; + ma[2]=1.62681; + ma[3]=1.21900; + ma[4]=1.74932; + + } else if (solution == 2) { // solnIIa.txt + + // coupling constants + //pi+pi- channel + g[0][0]=0.26014; + g[1][0]=0.95289; + g[2][0]=0.46244; + g[3][0]=0.41848; + g[4][0]=0.01804; + //K+K- channel + g[0][1]=-0.57849; + g[1][1]=0.55887; + g[2][1]=0.31712; + g[3][1]=0.49910; + g[4][1]=-0.28430; + //4pi channel + g[0][2]=0; + g[1][2]=0; + g[2][2]=0.70340; + g[3][2]=0.96819; + g[4][2]=-0.90100; + //eta eta channel + g[0][3]=-0.32936; + g[1][3]=0.39910; + g[2][3]=0.22963; + g[3][3]=0.24415; + g[4][3]=-0.07252; + //eta eta' channel + g[0][4]=-0.30906; + g[1][4]=0.31143; + g[2][4]=0.19802; + g[3][4]=-0.00522; + g[4][4]=0.17097; + + // Pole masses + ma[0]=0.67460; + ma[1]=1.21094; + ma[2]=1.57896; + ma[3]=1.21900; + ma[4]=1.86602; + } + + //Now define the K-matrix pole + double rho1sq,rho2sq,rho4sq,rho5sq; + EvtComplex rho[5]; + double f[5][5]; + + //Initalize the mass of the resonance + double mpi=0.13957; + double mK=0.493677; //using charged K value + double meta=0.54775; //using PDG value + double metap=0.95778; //using PDG value + + //Initialize the matrix to value zero + EvtComplex K[5][5]; + for(int i=0;i<5;i++) { + for(int j=0;j<5;j++) { + K[i][j]=EvtComplex(0,0); + f[i][j]=0; + } + } + + //Input the _f[i][j] scattering data + double s_scatt=0.0 ; + if (solution == 3) + s_scatt=-3.92637; + else if (solution == 1) + s_scatt= -5.0 ; + else if (solution == 2) + s_scatt= -5.0 ; + double sa=1.0; + double sa_0=-0.15; + if (solution == 3) { + f[0][0]=0.23399; // f^scatt + f[0][1]=0.15044; + f[0][2]=-0.20545; + f[0][3]=0.32825; + f[0][4]=0.35412; + }else if (solution == 1) { + f[0][0]=0.04214; // f^scatt + f[0][1]=0.19865; + f[0][2]=-0.63764; + f[0][3]=0.44063; + f[0][4]=0.36717; + }else if (solution == 2) { + f[0][0]=0.26447; // f^scatt + f[0][1]=0.10400; + f[0][2]=-0.35445; + f[0][3]=0.31596; + f[0][4]=0.42483; + } + f[1][0]=f[0][1]; + f[2][0]=f[0][2]; + f[3][0]=f[0][3]; + f[4][0]=f[0][4]; + + //Now construct the phase-space factor + //For eta-eta' there is no difference term + rho1sq = 1. - pow( mpi + mpi, 2 ) / s; //pi+ pi- phase factor + if( rho1sq >= 0 ) + rho[ 0 ] = EvtComplex( sqrt( rho1sq ), 0 ); + else + rho[ 0 ] = EvtComplex( 0, sqrt( -rho1sq ) ); + + rho2sq = 1. - pow( mK + mK, 2 ) / s; + if( rho2sq >= 0 ) + rho[ 1 ] = EvtComplex( sqrt( rho2sq ), 0 ); + else + rho[ 1 ] = EvtComplex( 0, sqrt( -rho2sq ) ); + + //using the A&S 4pi phase space Factor: + //Shit, not continue + if( s <= 1 ) + { + double real = 1.2274 + .00370909 / ( s * s ) - .111203 / s - 6.39017 * s + 16.8358*s*s - 21.8845*s*s*s + 11.3153*s*s*s*s; + double cont32 = sqrt(1.0-(16.0*mpi*mpi)); + rho[ 2 ] = EvtComplex( cont32 * real, 0 ); + } + else + rho[ 2 ] = EvtComplex( sqrt( 1. - 16. * mpi * mpi / s ), 0 ); + + rho4sq = 1. - pow( meta + meta, 2 ) / s; + if( rho4sq >= 0 ) + rho[ 3 ] = EvtComplex( sqrt( rho4sq ), 0 ); + else + rho[ 3 ] = EvtComplex( 0, sqrt( -rho4sq ) ); + + rho5sq = 1. - pow( meta + metap, 2 ) / s; + if( rho5sq >= 0 ) + rho[ 4 ] = EvtComplex( sqrt( rho5sq ), 0 ); + else + rho[ 4 ] = EvtComplex( 0, sqrt( -rho5sq ) ); + + double smallTerm = 1; // Factor to prevent divergences. + + // Check if some pole may arise problems. + for ( int pole = 0; pole < 5; pole++ ) + if ( fabs( pow( ma[ pole ], 2 ) - s ) < PRECISION ) + smallTerm = pow( ma[ pole ], 2 ) - s; + + //now sum all the pole + //equation (3) in the E791 K-matrix paper + for(int i=0;i<5;i++) { + for(int j=0;j<5;j++) { + for (int pole_index=0;pole_index<5;pole_index++) { + double A=g[pole_index][i]*g[pole_index][j]; + double B=ma[pole_index]*ma[pole_index]-s; + + if ( fabs( B ) < PRECISION ) + K[ i ][ j ] += EvtComplex( A , 0 ); + else + K[ i ][ j ] += EvtComplex( A / B, 0 ) * smallTerm; + } + } + } + + //now add the SVT part + for(int i=0;i<5;i++) { + for(int j=0;j<5;j++) { + double C=f[i][j]*(1.0-s_scatt); + double D=(s-s_scatt); + K[ i ][ j ] += EvtComplex( C / D, 0 ) * smallTerm; + } + } + + //Fix the bug in the FOCUS paper + //Include the Alder zero term: + for(int i=0;i<5;i++) { + for(int j=0;j<5;j++) { + double E=(s-(sa*mpi*mpi*0.5))*(1.0-sa_0); + double F=(s-sa_0); + K[ i ][ j ] *= EvtComplex(E/F,0); + } + } + + //This is not correct! + //(1-ipK) != (1-iKp) + static EvtMatrix< EvtComplex > mat; + mat.setRange( 5 ); // Try to do in only the first time. DEFINE ALLOCATION IN CONSTRUCTOR. + + for ( int row = 0; row < 5; row++ ) + for ( int col = 0; col < 5; col++ ) + mat( row, col ) = ( row == col ) * smallTerm - EvtComplex( 0., 1. ) * K[ row ][ col ] * rho[ col ]; + + + EvtMatrix< EvtComplex >* matInverse = mat.inverse(); //The 1st row of the inverse matrix. This matrix is {(I-iKp)^-1}_0j + vector< EvtComplex > U1j; + for ( int j = 0; j < 5; j++ ) + U1j.push_back( (*matInverse)[ 0 ][ j ] ); + + delete matInverse; + + //this calculates final F0 factor + EvtComplex value( 0, 0 ); + if (index<=5) { + //this calculates the beta_idx Factors + for(int j=0;j<5;j++) { // sum for 5 channel + EvtComplex top = U1j[j]*g[index-1][j]; + double bottom = ma[index-1]*ma[index-1]-s; + + if ( fabs( bottom ) < PRECISION ) + value += top; + else + value += top / bottom * smallTerm; + } + } else { + //this calculates fprod Factors + value += U1j[0]; + value += U1j[1]*_fr12prod; + value += U1j[2]*_fr13prod; + value += U1j[3]*_fr14prod; + value += U1j[4]*_fr15prod; + + value *= (1-_s0prod)/(s-_s0prod) * smallTerm; + } + + return value; +} + + +//replace Breit-Wigner with LASS +EvtComplex EvtDalitzReso::lass(double s) +{ + EvtTwoBodyKine vd(_massFirst,_massSecond, sqrt(s)); + double q = vd.p(); + double GammaM = _g0*_vd.widthFactor(vd); // running width; + + //calculate the background phase motion + double cot_deltaB = 1.0/(_a*q) + 0.5*_r*q; + double deltaB = atan( 1.0/cot_deltaB); + double totalB = deltaB + _phiB ; + + //calculate the resonant phase motion + double deltaR = atan((_m0*GammaM/(_m0*_m0 - s))); + double totalR = deltaR + _phiR ; + + //sum them up + EvtComplex bkgB,resT; + bkgB = EvtComplex(_Blass*sin(totalB),0)*EvtComplex(cos(totalB),sin(totalB)); + resT = EvtComplex(_R*sin(deltaR),0)*EvtComplex(cos(totalR),sin(totalR))*EvtComplex(cos(2*totalB),sin(2*totalB)); + EvtComplex T = bkgB + resT; + + return T; +} + + + + diff --git a/TEvtGen/EvtGenBase/EvtDalitzReso.hh b/TEvtGen/EvtGenBase/EvtDalitzReso.hh new file mode 100644 index 00000000000..67c2a40b42e --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDalitzReso.hh @@ -0,0 +1,151 @@ +/***************************************************************************** + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtDalitzReso.hh,v 1.4 2008/11/27 16:29:30 jordix Exp $ + * + * Description: + * Class to compute Dalitz amplitudes based on many models that cannot be + * handled with EvtResonance. + * + * Modification history: + * Jordi Garra Ticó 2008/07/03 File created + *****************************************************************************/ + +#ifndef __EVTDALITZRESO_HH__ +#define __EVTDALITZRESO_HH__ + +#include +#include +#include + +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtCyclic3.hh" +#include "EvtGenBase/EvtSpinType.hh" +#include "EvtGenBase/EvtTwoBodyVertex.hh" +#include "EvtGenBase/EvtDalitzPoint.hh" +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtBlattWeisskopf.hh" + +using std::vector; +using std::map; + +class EvtBlattWeisskopf; + +class EvtDalitzReso +{ +public: + // Numerator type + enum NumType { NBW = 0 , RBW_ZEMACH = 1 , RBW_KUEHN = 2 , RBW_CLEO = 3 , + RBW_ZEMACH2 = 4 , GS_CLEO = 5 , K_MATRIX = 6 , RBW_CLEO_ZEMACH = 7 , + GS_CLEO_ZEMACH = 8 , LASS = 9 , K_MATRIX_I = 10, K_MATRIX_II = 11, + GAUSS_CLEO = 12, GAUSS_CLEO_ZEMACH = 13 }; + + // Coupling type + // ChgPion : pi+ pi- + // NeuPion : pi0 pi0 + // Pion : 0.5*[(pi+ pi-) + (pi0 pi0)] + // ChgKaon : K+ K- + // NeuKaon : K0 K0 + // Kaon : 0.5*[(K+ K-) + (K0 K0)] + // EtaPion : eta pi0 + enum CouplingType {Undefined=0,PicPic=1,PizPiz,PiPi,KcKc,KzKz,KK,EtaPic,EtaPiz,PicPicKK,WA76}; + + EvtDalitzReso() {}; + + EvtDalitzReso(const EvtDalitzPlot& dp, EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes, + EvtSpinType::spintype spin, double m0, double g0, NumType typeN); + + EvtDalitzReso(const EvtDalitzPlot& dp, EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes, + EvtSpinType::spintype spin, double m0, double g0, NumType typeN, + double m0_mix, double g0_mix, double delta_mix, EvtComplex amp_mix); + + EvtDalitzReso(const EvtDalitzPlot& dp, EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes, + EvtSpinType::spintype spin, double m0, NumType typeN, double g1, double g2, CouplingType coupling2); + + // K-matrix + EvtDalitzReso(const EvtDalitzPlot& dp, EvtCyclic3::Pair pairRes, std::string nameIndex, NumType typeN, + EvtComplex fr12prod, EvtComplex fr13prod, EvtComplex fr14prod, EvtComplex fr15prod, double s0prod); + + // LASS + EvtDalitzReso(const EvtDalitzPlot& dp, EvtCyclic3::Pair pairRes, double m0, double g0, + double a, double r, double B, double phiB, double R, double phiR); + + EvtDalitzReso(const EvtDalitzReso& other); + + ~EvtDalitzReso(); + + EvtDalitzReso* clone() const { return new EvtDalitzReso(*this); } + + EvtComplex evaluate(const EvtDalitzPoint& p); + + void set_fd( double R ) { _vd.set_f( R ); } + void set_fb( double R ) { _vb.set_f( R ); } + +private: + EvtComplex psFactor(double& ma, double& mb, double& m); + EvtComplex psFactor(double& ma1, double& mb1, double& ma2, double& mb2, double& m); + EvtComplex propGauss(const double& m0, const double& s0, const double& m); + EvtComplex propBreitWigner(const double& m0, const double& g0, const double& m); + EvtComplex propBreitWignerRel(const double& m0, const double& g0, const double& m); + EvtComplex propBreitWignerRel(const double& m0, const EvtComplex& g0, const double& m); + EvtComplex propBreitWignerRelCoupled(const double& m0, const EvtComplex& g1, const EvtComplex& g2, const double& m); + EvtComplex propGounarisSakurai(const double& m0, const double& g0, const double& k0, + const double& m, const double& g, const double& k); + inline double GS_f(const double& m0, const double& g0, const double& k0, const double& m, const double& k); + inline double GS_h(const double& m, const double& k); + inline double GS_dhods(const double& m0, const double& k0); + inline double GS_d(const double& m0, const double& k0); + + EvtComplex numerator(const EvtDalitzPoint& p, const EvtTwoBodyKine& vb, const EvtTwoBodyKine& vd); + double angDep(const EvtDalitzPoint& p); + EvtComplex mixFactor(EvtComplex prop, EvtComplex prop_mix); + EvtComplex Fvector( double s, int index ); + EvtComplex lass(double s); + + // Dalitz plot + EvtDalitzPlot _dp; + + // Pairing indices: + EvtCyclic3::Pair _pairAng; // angular + EvtCyclic3::Pair _pairRes; // resonance + + // Spin + EvtSpinType::spintype _spin; + + // Numerator type + NumType _typeN; + + // Nominal mass and width + double _m0,_g0; + + // Vertices + EvtTwoBodyVertex _vb; + EvtTwoBodyVertex _vd; + + // Daughter masses + double _massFirst,_massSecond; + + // variables for electromagnetic mass mixing + double _m0_mix,_g0_mix,_delta_mix; + EvtComplex _amp_mix; + + // variables for coupled Breit-Wigner + double _g1,_g2; + CouplingType _coupling2; + + // K-matrix + int _kmatrix_index; + EvtComplex _fr12prod,_fr13prod,_fr14prod,_fr15prod; + double _s0prod; + + // LASS + double _a; + double _r; + double _Blass; + double _phiB; + double _R; + double _phiR; +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtDecayAmp.cxx b/TEvtGen/EvtGenBase/EvtDecayAmp.cxx new file mode 100644 index 00000000000..bf3a2714d91 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDecayAmp.cxx @@ -0,0 +1,241 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtDecayAmp.cc +// +// Description: Baseclass for models that calculates amplitudes +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + + + +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtRadCorr.hh" +#include "EvtGenBase/EvtAmp.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; + + +void EvtDecayAmp::makeDecay(EvtParticle* p, bool recursive){ + + //original default value + int ntimes=10000; + + int more; + + EvtSpinDensity rho; + double prob,prob_max; + + _amp2.init(p->getId(),getNDaug(),getDaugs()); + + do{ + + _daugsDecayedByParentModel=false; + _weight = 1.0; + decay(p); + + rho=_amp2.getSpinDensity(); + + prob=p->getSpinDensityForward().normalizedProb(rho); + + if (prob<0.0) { + report(ERROR,"EvtGen")<<"Negative prob:"<getId().getId() + <<" "<getChannel()<getSpinDensityForward(); + report(ERROR,"EvtGen") << "rho decay:"<getSpinDensityForward(); + + report(DEBUG,"EvtGen") << "Decay density matrix:"<getId()).c_str()<getChannel()<getP4() << " " << p->mass() << endl; + if( p->getParent()!=0){ + report(DEBUG,"EvtGen") << "parent:" + <getParent()->getId()).c_str()<getParent()->getChannel()<getParent()->getNDaug();i++){ + report(DEBUG,"") << EvtPDL::name( + p->getParent()->getDaug(i)->getId()).c_str() + << " "; + } + report(DEBUG,"") << endl; + + report(DEBUG,"EvtGen") << "daughters :"; + for (size_t i=0;igetNDaug();i++){ + report(DEBUG,"") << EvtPDL::name( + p->getDaug(i)->getId()).c_str() + << " "; + } + report(DEBUG,"") << endl; + + report(DEBUG,"EvtGen") << "daughter momenta :" << endl;; + for (size_t i=0;igetNDaug();i++){ + report(DEBUG,"") << p->getDaug(i)->getP4() << " " << p->getDaug(i)->mass(); + report(DEBUG,"") << endl; + } + + } + } + + + prob/=_weight; + + prob_max = getProbMax(prob); + p->setDecayProb(prob/prob_max); + + more=probgetSpinDensityForward()<getId()).c_str()<<"(channel:"<< + p->getChannel()<<") with mass "<mass()<getNDaug();ii++){ + report(DEBUG,"EvtGen") <<"Daughter "<getDaug(ii)->getId()).c_str()<<" with mass "<< + p->getDaug(ii)->mass()<getSpinDensityForward(); + + EvtAmp ampcont; + + if (_amp2._pstates!=1){ + ampcont=_amp2.contract(0,p->getSpinDensityForward()); + } + else{ + ampcont=_amp2; + } + + + // it may be that the parent decay model has already + // done the decay - this should be rare and the + // model better know what it is doing.. + + if ( !daugsDecayedByParentModel() ){ + + if(recursive) { + + for(size_t i=0;igetNDaug();i++){ + + rho.setDim(_amp2.dstates[i]); + + if (_amp2.dstates[i]==1) { + rho.set(0,0,EvtComplex(1.0,0.0)); + } + else{ + rho=ampcont.contract(_amp2._dnontrivial[i],_amp2); + } + + if (!rho.check()) { + + report(ERROR,"EvtGen") << "-------start error-------"<getId()).c_str()<<" "<getChannel()<<" "<getParent()->getId()).c_str()<getParent()->getParent()->getId()).c_str()<getParent()->getParent()->getParent()->getId()).c_str()<getDaug(i)->setSpinDensityForward(rho); + p->getDaug(i)->decay(); + + rho_list[i+1]=p->getDaug(i)->getSpinDensityBackward(); + + if (_amp2.dstates[i]!=1){ + ampcont=ampcont.contract(_amp2._dnontrivial[i],rho_list[i+1]); + } + + + } + + p->setSpinDensityBackward(_amp2.getBackwardSpinDensity(rho_list)); + + + if (!p->getSpinDensityBackward().check()) { + + report(ERROR,"EvtGen")<<"rho_backward failed Check"<< + p->getId().getId()<<" "<getChannel()<getSpinDensityBackward(); + + } + } + } + + + if (getPHOTOS() || EvtRadCorr::alwaysRadCorr()) { + int n_daug_orig=p->getNDaug(); + EvtRadCorr::doRadCorr(p); + int n_daug_new=p->getNDaug(); + for (int i=n_daug_orig;igetDaug(i)->decay(); + } + } + +} + + + + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtDecayAmp.hh b/TEvtGen/EvtGenBase/EvtDecayAmp.hh new file mode 100644 index 00000000000..2237f3ae9ab --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDecayAmp.hh @@ -0,0 +1,85 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtDecayAmp.hh +// +// Description: Baseclass for models that calculates amplitudes +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTDECAYAMP_HH +#define EVTDECAYAMP_HH + +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtAmp.hh" + +class EvtDecayAmp : public EvtDecayBase{ + +public: + + void makeDecay(EvtParticle* p, bool recursive=true); + inline void setWeight(double weight) {_weight=weight;} + + /** + * sets the amplitudes calculated in the decay objects + */ + void vertex(const EvtComplex& amp){_amp2.vertex(amp);} + + /** + * sets the amplitudes calculated in the decay objects + */ + void vertex(int i1, const EvtComplex& amp){_amp2.vertex(i1,amp);} + + /** + * sets the amplitudes calculated in the decay objects + */ + void vertex(int i1, int i2, const EvtComplex& amp) + {_amp2.vertex(i1,i2,amp);} + + + /** + * sets the amplitudes calculated in the decay objects + */ + void vertex(int i1, int i2, int i3, const EvtComplex& amp) + {_amp2.vertex(i1,i2,i3,amp);} + + /** + * sets the amplitudes calculated in the decay objects + */ + void vertex(int *i1, const EvtComplex& amp) + { _amp2.vertex(i1,amp);} + + /** + * Provide access to the amplitude + */ + const EvtAmp & amplitude() const + { return _amp2;} + + + + + virtual ~EvtDecayAmp() {} + +protected: + EvtAmp _amp2; + +private: + double _weight; + + +}; + + + +#endif diff --git a/TEvtGen/EvtGenBase/EvtDecayBase.cxx b/TEvtGen/EvtGenBase/EvtDecayBase.cxx new file mode 100644 index 00000000000..71d176eb65c --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDecayBase.cxx @@ -0,0 +1,623 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtDecayBase.cc +// +// Description: Store decay parameters for one decay. +// +// Modification history: +// +// RYD September 30, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include "EvtGenBase/EvtStatus.hh" +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtSpinType.hh" +#include +using std::endl; +using std::fstream; +void EvtDecayBase::checkQ() { + int i; + int q=0; + int qpar; + + //If there are no daughters (jetset etc) then we do not + //want to do this test. Why? Because sometimes the parent + //will have a nonzero charge. + + if ( _ndaug != 0) { + for(i=0; i<_ndaug; i++ ) { + q += EvtPDL::chg3(_daug[i]); + } + qpar = EvtPDL::chg3(_parent); + + if ( q != qpar ) { + report(ERROR,"EvtGen") <<_modelname.c_str()<< " generator expected " + << " charge to be conserved, found:"<max_prob) max_prob=prob; + + + if ( defaultprobmax && ntimes_prob<=500 ) { + //We are building up probmax with this iteration + ntimes_prob += 1; + if ( prob > probmax ) { probmax = prob;} + if (ntimes_prob==500) { + probmax*=1.2; + } + return 1000000.0*prob; + } + + if ( prob> probmax*1.0001) { + + report(INFO,"EvtGen") << "prob > probmax:("<"< "; + for(i=0;i<_ndaug;i++){ + report(INFO,"") << EvtPDL::name(_daug[i]).c_str() << " "; + } + report(INFO,"") << endl; + + if (defaultprobmax) probmax = prob; + + } + + ntimes_prob += 1; + + + return probmax; + +} //getProbMax + + +double EvtDecayBase::resetProbMax(double prob) { + + report(INFO,"EvtGen") << "Reseting prob max\n"; + report(INFO,"EvtGen") << "prob > probmax:("<"<"; + + for( int i=0;i<_ndaug;i++){ + report(INFO,"") << EvtPDL::getStdHep(_daug[i]) << " "; + } + report(INFO,"") << endl; + + probmax = 0.0; + defaultprobmax = 0; + ntimes_prob = 0; + + return prob; + +} + + +std::string EvtDecayBase::commandName(){ + return std::string(""); +} + +void EvtDecayBase::command(std::string){ + report(ERROR,"EvtGen") << "Should never call EvtDecayBase::command"<& args, + std::string name, + double brfr) { + + int i; + + _brfr=brfr; + _ndaug=ndaug; + _narg=narg; + _parent=ipar; + + _dsum=0; + + if (_ndaug>0) { + _daug=new EvtId [_ndaug]; + for(i=0;i<_ndaug;i++){ + _daug[i]=daug[i]; + _dsum+=daug[i].getAlias(); + } + } + else{ + _daug=0; + } + + if (_narg>0) { + _args=new std::string[_narg+1]; + for(i=0;i<_narg;i++){ + _args[i]=args[i]; + } + } + else{ + _args = 0; + } + + _modelname=name; + + this->init(); + this->initProbMax(); + + if (_chkCharge){ + this->checkQ(); + } + + + if (defaultprobmax){ + report(INFO,"EvtGen") << "No default probmax for "; + report(INFO,"") << "("<<_modelname.c_str()<<") "; + report(INFO,"") << EvtPDL::name(_parent).c_str()<<" -> "; + for(i=0;i<_ndaug;i++){ + report(INFO,"") << EvtPDL::name(_daug[i]).c_str() << " "; + } + report(INFO,"") << endl; + report(INFO,"") << "This is fine for development, but must be provided for production."<0) { + + report(INFO,"EvtGen") << "Calls = "< "; + for(int i=0;i<_ndaug;i++){ + report(INFO,"") << EvtPDL::name(_daug[i]).c_str() << " "; + } + report(INFO,"") << " ("<<_modelname.c_str()<<")"<< endl; +} + + +EvtDecayBase::~EvtDecayBase() { + + if (_daug!=0){ + delete [] _daug; + } + + if (_args!=0){ + delete [] _args; + } + + if (_argsD!=0){ + delete [] _argsD; + } + + +} + +void EvtDecayBase::setProbMax(double prbmx){ + + defaultprobmax=0; + probmax=prbmx; + +} + +void EvtDecayBase::noProbMax(){ + + defaultprobmax=0; + +} + + +double EvtDecayBase::findMaxMass(EvtParticle *p) { + + + double maxOkMass=EvtPDL::getMaxMass(p->getId()); + + //protect against vphotons + if ( maxOkMass < 0.0000000001 ) return 10000000.; + //and against already determined masses + if ( p->hasValidP4() ) maxOkMass=p->mass(); + + EvtParticle *par=p->getParent(); + if ( par ) { + double maxParMass=findMaxMass(par); + size_t i; + double minDaugMass=0.; + for(i=0;igetNDaug();i++){ + EvtParticle *dau=par->getDaug(i); + if ( dau!=p) { + // it might already have a mass + if ( dau->isInitialized() || dau->hasValidP4() ) + minDaugMass+=dau->mass(); + else + //give it a bit of phase space + minDaugMass+=1.000001*EvtPDL::getMinMass(dau->getId()); + } + } + if ( maxOkMass>(maxParMass-minDaugMass)) maxOkMass=maxParMass-minDaugMass; + } + return maxOkMass; +} + + +// given list of daughters ( by number ) returns a +// list of viable masses. + +void EvtDecayBase::findMass(EvtParticle *p) { + + //Need to also check that this mass does not screw + //up the parent + //This code assumes that for the ith daughter, 0..i-1 + //already have a mass + double maxOkMass=findMaxMass(p); + + int count=0; + double mass; + bool massOk=false; + size_t i; + while (!massOk) { + count++; + if ( count > 10000 ) { + report(INFO,"EvtGen") << "Can not find a valid mass for: " << EvtPDL::name(p->getId()).c_str() <getParent() ) { + if ( p->getParent()->getParent() ) { + p->getParent()->getParent()->printTree(); + report(INFO,"EvtGen") << p->getParent()->getParent()->mass() <getParent()->mass() <getParent()->printTree(); + report(INFO,"EvtGen") << p->getParent()->mass() <printTree(); + report(INFO,"EvtGen") << "maxokmass=" << maxOkMass << " " << EvtPDL::getMinMass(p->getId()) << " " << EvtPDL::getMaxMass(p->getId())<getNDaug() ) { + for (i=0; igetNDaug(); i++) { + report(INFO,"EvtGen") << p->getDaug(i)->mass()<<" "; + } + report(INFO,"EvtGen") << endl; + } + if ( maxOkMass >= EvtPDL::getMinMass(p->getId()) ) { + report(INFO,"EvtGen") << "taking a default value\n"; + p->setMass(maxOkMass); + return; + } + assert(0); + } + mass = EvtPDL::getMass(p->getId()); + //Just need to check that this mass is > than + //the mass of all daughters + double massSum=0.; + if ( p->getNDaug() ) { + for (i=0; igetNDaug(); i++) { + massSum+= p->getDaug(i)->mass(); + } + } + //some special cases are handled with 0 (stable) or 1 (k0->ks/kl) daughters + if (p->getNDaug()<2) massOk=true; + if ( p->getParent() ) { + if ( p->getParent()->getNDaug()==1 ) massOk=true; + } + if ( !massOk ) { + if (massSum < mass) massOk=true; + if ( mass> maxOkMass) massOk=false; + } + } + + p->setMass(mass); + +} + + +void EvtDecayBase::findMasses(EvtParticle *p, int ndaugs, + EvtId daugs[10], double masses[10]) { + + int i; + double mass_sum; + + int count=0; + + if (!( p->firstornot() )) { + for (i = 0; i < ndaugs; i++ ) { + masses[i] = p->getDaug(i)->mass(); + } //for + } //if + else { + p->setFirstOrNot(); + // if only one daughter do it + + if (ndaugs==1) { + masses[0]=p->mass(); + return; + } + + //until we get a combo whose masses are less than _parent mass. + do { + mass_sum = 0.0; + + for (i = 0; i < ndaugs; i++ ) { + masses[i] = EvtPDL::getMass(daugs[i]); + mass_sum = mass_sum + masses[i]; + } + + count++; + + + if(count==10000) { + report(ERROR,"EvtGen") <<"Decaying particle:"<< + EvtPDL::name(p->getId()).c_str()<<" (m="<mass()<<")"< p->mass()){ + report(ERROR,"EvtGen") << "Parent mass="<mass() + << "to light for daugthers."< p->mass()); + } //else + + return; +} + +void EvtDecayBase::checkNArg(int a1, int a2, int a3, int a4) { + + if ( _narg != a1 && _narg != a2 && _narg != a3 && _narg != a4 ) { + report(ERROR,"EvtGen") << _modelname.c_str() << " generator expected "<-1) { + report(ERROR,"EvtGen") << " or " << a2<-1) { + report(ERROR,"EvtGen") << " or " << a3<-1) { + report(ERROR,"EvtGen") << " or " << a4<-1) { + report(ERROR,"EvtGen") << " or " << d2; + } + report(ERROR,"EvtGen") << " daughters but found:"<< _ndaug << endl; + printSummary(); + report(ERROR,"EvtGen") << "Will terminate execution!"< useDs; + for ( int i=0; i<_ndaug; i++) useDs.push_back(0); + + for ( int i=0; i<_ndaug; i++) { + bool foundIt=false; + for ( int j=0; j<_ndaug; j++) { + if ( useDs[j] == 1 ) continue; + if ( _daug[i] == other._daug[j] && _daug[i].getAlias() == other._daug[j].getAlias()) { + foundIt=true; + useDs[j]=1; + break; + } + } + if ( foundIt==false) return false; + } + for ( int i=0; i<_ndaug; i++) if ( useDs[i]==0) return false; + + return true; + +} diff --git a/TEvtGen/EvtGenBase/EvtDecayBase.hh b/TEvtGen/EvtGenBase/EvtDecayBase.hh new file mode 100644 index 00000000000..bf95f73f039 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDecayBase.hh @@ -0,0 +1,151 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtDecayBase.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTDECAYBASE_HH +#define EVTDECAYBASE_HH + +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtSpinType.hh" +#include +#include +class EvtParticle; +class EvtSpinType; + +class EvtDecayBase{ + public: + + //These pure virtual methods has to be implemented + //by any derived class + virtual std::string getName()=0; + virtual void decay(EvtParticle *p)=0; + virtual void makeDecay(EvtParticle *p,bool recursive=true)=0; + virtual EvtDecayBase* clone()=0; + + + //These virtual methods can be implemented by the + //derived class to implement nontrivial functionality. + virtual void init(); + virtual void initProbMax(); + virtual std::string commandName(); + virtual void command(std::string cmd); + + + double getProbMax( double prob ); + double resetProbMax( double prob ); + + EvtDecayBase(); + virtual ~EvtDecayBase(); + + virtual bool matchingDecay(const EvtDecayBase &other) const; + + EvtId getParentId() const {return _parent;} + double getBranchingFraction() const {return _brfr;} + void disableCheckQ() {_chkCharge=0;}; + void checkQ(); + int getNDaug() const {return _ndaug;} + EvtId* getDaugs() {return _daug;} + EvtId getDaug(int i) const {return _daug[i];} + int getNArg() const {return _narg;} + int getPHOTOS() const {return _photos;} + void setPHOTOS() {_photos=1;} + void setVerbose() {_verbose=1;} + void setSummary() {_summary=1;} + double* getArgs(); + std::string* getArgsStr() {return _args;} + double getArg(unsigned int j) ; + double getStoredArg(int j) const {return _storedArgs.at(j);} + double getNStoredArg() const {return _storedArgs.size();} + std::string getArgStr(int j) const {return _args[j];} + std::string getModelName() const {return _modelname; } + int getDSum() const {return _dsum; } + int summary() const {return _summary; } + int verbose() const {return _verbose; } + + void saveDecayInfo(EvtId ipar, int ndaug,EvtId *daug, + int narg, std::vector& args, + std::string name, double brfr); + void printSummary() const ; + void printInfo() const ; + + + //Does not really belong here but I don't have a better place. + static void findMasses(EvtParticle *p, int ndaugs, + EvtId daugs[10], double masses[10]); + static void findMass(EvtParticle *p); + static double findMaxMass(EvtParticle *p); + + //Methods to set the maximum probability. + void setProbMax(double prbmx); + void noProbMax(); + + void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1); + void checkNDaug(int d1, int d2=-1); + + void checkSpinParent(EvtSpinType::spintype sp); + void checkSpinDaughter(int d1, EvtSpinType::spintype sp); + + // lange - some models can take more daughters + // than they really have to fool aliases (VSSBMIX for example) + virtual int nRealDaughters() { return _ndaug;} + + +protected: + + bool _daugsDecayedByParentModel; + bool daugsDecayedByParentModel() {return _daugsDecayedByParentModel;} + +private: + + + int _photos; + int _ndaug; + EvtId _parent; + int _narg; + std::vector _storedArgs; + EvtId *_daug; + double *_argsD; + std::string *_args; + std::string _modelname; + double _brfr; + int _dsum; + int _summary; + int _verbose; + + + int defaultprobmax; + double probmax; + int ntimes_prob; + + //Should charge conservation be checked when model is + //created? 1=yes 0 no. + int _chkCharge; + + + //These are used for gathering statistics. + double sum_prob; + double max_prob; + + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtDecayIncoherent.cxx b/TEvtGen/EvtGenBase/EvtDecayIncoherent.cxx new file mode 100644 index 00000000000..68c74b37afe --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDecayIncoherent.cxx @@ -0,0 +1,87 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtDecayIncoherent.cc +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtDecayIncoherent.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtRadCorr.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtPDL.hh" + + +void EvtDecayIncoherent::makeDecay(EvtParticle* p, bool recursive){ + + //initialize this the hard way.. + //Lange June 26, 2000 + for (size_t i=0; i(MAX_DAUG); i++ ) { + spinDensitySet[i]=0; + } + + _daugsDecayedByParentModel=false; + + decay(p); + p->setDecayProb(1.0); + + EvtSpinDensity rho; + + rho.setDiag(p->getSpinStates()); + + p->setSpinDensityBackward(rho); + + if (getPHOTOS() || EvtRadCorr::alwaysRadCorr()) { + EvtRadCorr::doRadCorr(p); + } + + if(!recursive) return; + + //Now decay the daughters. + + if ( !daugsDecayedByParentModel()) { + + for(size_t i=0;igetNDaug();i++){ + //Need to set the spin density of the daughters to be + //diagonal. + rho.setDiag(p->getDaug(i)->getSpinStates()); + //if (p->getDaug(i)->getNDaug()==0){ + //only do this if the user has not already set the + //spin density matrix herself. + //Lange June 26, 2000 + if ( isDaughterSpinDensitySet(i)==0 ) { + p->getDaug(i)->setSpinDensityForward(rho); + } + else{ + //report(INFO,"EvtGen") << "spinDensitymatrix already set!!!\n"; + EvtSpinDensity temp=p->getDaug(i)->getSpinDensityForward(); + // report(INFO,"EvtGen") <getDaug(i)->decay(); + } + } + +} + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtDecayIncoherent.hh b/TEvtGen/EvtGenBase/EvtDecayIncoherent.hh new file mode 100644 index 00000000000..65a6fa8431b --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDecayIncoherent.hh @@ -0,0 +1,57 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtDecayIncoherent.hh +// +// Description: Base class for models that calculate +// decay kinematics and do not do any accept/reject. +// Useful e.g. for interface to other generators +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EvtDecayIncoherent_HH +#define EvtDecayIncoherent_HH + +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtParticle.hh" + + + +class EvtDecayIncoherent : public EvtDecayBase{ + +public: + + void makeDecay(EvtParticle* p, bool recursive=true); + + virtual ~EvtDecayIncoherent() {} + + void setDaughterSpinDensity(int daughter) + { spinDensitySet[daughter]=1; return;} + + int isDaughterSpinDensitySet(int daughter) + {return spinDensitySet[daughter];} + +private: + + int spinDensitySet[MAX_DAUG]; + +}; + + + + +#endif + + + diff --git a/TEvtGen/EvtGenBase/EvtDecayMode.cxx b/TEvtGen/EvtGenBase/EvtDecayMode.cxx new file mode 100644 index 00000000000..001c66fa336 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDecayMode.cxx @@ -0,0 +1,179 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtDecayMode.cc,v 1.17 2009/02/18 03:31:38 ryd Exp $ +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module creator: +// Alexei Dvoretskii, Caltech, 2001-2002. +//----------------------------------------------------------------------- +#include "EvtGenBase/EvtPatches.hh" + +// Parses a decay string to identify the name +// of the mother and of the daughters. The string should +// be in standard format e.g. "B+ -> pi+ pi+ pi-" + +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include "EvtGenBase/EvtDecayMode.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; +using std::ostream; + +using std::string; +using std::vector; + + +EvtDecayMode::EvtDecayMode(std::string mother,vector dau) + : _mother(mother), + _dau(dau) +{ +} + + +EvtDecayMode::EvtDecayMode(const EvtDecayMode& other) + : _mother(other._mother), + _dau(other._dau) +{ +} + + +EvtDecayMode::EvtDecayMode(const char* decay) +{ + // Parse the decay string, it should be in a standard + // format, e.g. "B+ -> pi+ pi+ pi-" with all spaces + + string s(decay); + + // mother + + string::size_type i = s.find_first_not_of(" "); + string::size_type j = s.find_first_of(" ",i); + + if(i == string::npos) { + + report(INFO,"EvtGen") << "No non-space character found" << endl; + assert(0); + } + + if(j == string::npos) { + + report(INFO,"EvtGen") << "No space before -> found" << endl; + assert(0); + } + + _mother = string(s,i,j-i); + + i = s.find_first_not_of(" ",j); + j = s.find_first_of("->",j); + if(i != j) { + + report(INFO,"EvtGen") << "Multiple mothers?" << i << "," << j << endl; + assert(0); + } + j += 2; + + while(1) { + + i = s.find_first_not_of(" ",j); + j = s.find_first_of(" ",i); + + if(i == string::npos) break; + if(j == string::npos) { + _dau.push_back(string(s,i,s.size()-i+1)); + break; + } else { + _dau.push_back(string(s,i,j-i)); + } + } +} + + + +EvtDecayMode::~EvtDecayMode() +{} + + +const char* EvtDecayMode::mother() const +{ + return _mother.c_str(); +} + + +int EvtDecayMode::nD() const +{ + return _dau.size(); +} + + +const char* EvtDecayMode::dau(int i) const +{ + assert(0<=i && i< (int) _dau.size()); + return _dau[i].c_str(); +} + +std::string EvtDecayMode::mode() const +{ + string ret = _mother + string(" -> "); + + for(size_t i=0;i<_dau.size()-1;i++) { + ret += string(_dau[i]) + string(" "); + } + ret += _dau[_dau.size()-1]; + return ret; +} + + +ostream& EvtDecayMode::print(ostream& os) const +{ + os << _mother.c_str() << " ->"; + for(size_t i=0;i<_dau.size();i++) { + os << " " << _dau[i].c_str(); + } + return os; +} + + +std::string EvtDecayMode::m(EvtCyclic3::Pair i) const +{ + string s("m("); + s.append(dau(EvtCyclic3::first(i))); + s.append(","); + s.append(dau(EvtCyclic3::second(i))); + s.append(")"); + return s; +} + + +std::string EvtDecayMode::q(EvtCyclic3::Pair i) const +{ + string s("q("); + s.append(dau(EvtCyclic3::first(i))); + s.append(","); + s.append(dau(EvtCyclic3::second(i))); + s.append(")"); + return s; +} + + +std::string EvtDecayMode::dal(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const +{ + string s(q(i)); + s.append(":"); + s.append(q(j)); + return s; +} + + +ostream& operator<<(ostream& os, const EvtDecayMode& mode) +{ + mode.print(os); + return os; +} diff --git a/TEvtGen/EvtGenBase/EvtDecayMode.hh b/TEvtGen/EvtGenBase/EvtDecayMode.hh new file mode 100644 index 00000000000..a739fffbc12 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDecayMode.hh @@ -0,0 +1,59 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtDecayMode.hh,v 1.10 2009/02/15 18:15:59 ryd Exp $ +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module creator: +// Alexei Dvoretskii, Caltech, 2001-2002. +//----------------------------------------------------------------------- + +#ifndef EVT_DECAY_MODE_HH +#define EVT_DECAY_MODE_HH + +#include +#include +#include "EvtGenBase/EvtCyclic3.hh" + +#include + +class EvtDecayMode { + +public: + + EvtDecayMode(const char* decay); + EvtDecayMode(const EvtDecayMode& other); + EvtDecayMode(std::string mother,std::vector dau); + ~EvtDecayMode(); + + const char* mother() const; + int nD() const; + const char* dau(int i) const; + + std::ostream& print(std::ostream&) const; + + + // Frequent name combinations + + std::string m(EvtCyclic3::Pair i) const; + std::string q(EvtCyclic3::Pair i) const; + std::string dal(EvtCyclic3::Pair i, EvtCyclic3::Pair j) const; + std::string mode() const; + +private: + + std::string _mother; + std::vector _dau; + +}; + + +std::ostream& operator<<(std::ostream&,const EvtDecayMode&); + +#endif diff --git a/TEvtGen/EvtGenBase/EvtDecayParm.cxx b/TEvtGen/EvtGenBase/EvtDecayParm.cxx new file mode 100644 index 00000000000..e55f327f8d8 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDecayParm.cxx @@ -0,0 +1,73 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtDecayParm.cc +// +// Description: Store decay parameters for one decay. +// +// Modification history: +// +// RYD April 5, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include "EvtGenBase/EvtDecayParm.hh" +#include +using std::fstream; + +void EvtDecayParm::init(fcnPtr pfcn, int ndaug, int *daugs, int narg, + double *args, std::string name) { + + int i; + + itsfcn=pfcn; + itsndaug=ndaug; + itsnarg=narg; + + itsdaugs=new int [itsndaug]; + for(i=0;i + +class EvtParticle; + +typedef void ( *fcnPtr ) ( EvtParticle *,int,int *,double* ); + +class EvtDecayParm { + +public: + + EvtDecayParm(); + ~EvtDecayParm(); + + void init(fcnPtr pfcn, int ndaug, int *daugs, int narg, + double *args, std::string name); + + int getNDaug() {return itsndaug; } + int getNArg() {return itsnarg; } + int* getDaugs() {return itsdaugs; } + double* getArgs() {return itsargs; } + fcnPtr getfcnPtr() {return itsfcn; } + std::string getModelName() {return modelname; } + +private: + + + fcnPtr itsfcn; + int itsndaug; + int* itsdaugs; + int itsnarg; + double* itsargs; + std::string modelname; + + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtDecayProb.cxx b/TEvtGen/EvtGenBase/EvtDecayProb.cxx new file mode 100644 index 00000000000..2f5071fd7d2 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDecayProb.cxx @@ -0,0 +1,94 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtDecayProb.cc +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtDecayProb.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtRadCorr.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; + +void EvtDecayProb::makeDecay(EvtParticle* p, bool recursive){ + + int ntimes=10000; + + double dummy; + + do{ + _weight=1.0; + _daugsDecayedByParentModel=false; + + decay(p); + + ntimes--; + + _prob = _prob/_weight; + + dummy=getProbMax(_prob)*EvtRandom::Flat(); + p->setDecayProb(_prob/getProbMax(_prob)); + + }while(ntimes&&(_probgetId()).c_str()<<"(channel:"<< + p->getChannel()<<") with mass "<mass()<getNDaug();ii++){ + report(DEBUG,"EvtGen") <<"Daughter "<getDaug(ii)->getId()).c_str()<<" with mass "<< + p->getDaug(ii)->mass()<getSpinStates()); + p->setSpinDensityBackward(rho); + if (getPHOTOS() || EvtRadCorr::alwaysRadCorr()) { + EvtRadCorr::doRadCorr(p); + } + + if(!recursive) return; + + //Now decay the daughters. + if ( !daugsDecayedByParentModel()) { + for(size_t i=0;igetNDaug();i++){ + //Need to set the spin density of the daughters to be + //diagonal. + rho.setDiag(p->getDaug(i)->getSpinStates()); + p->getDaug(i)->setSpinDensityForward(rho); + + //Now decay the daughter. Really! + p->getDaug(i)->decay(); + } + } + +} + + + + diff --git a/TEvtGen/EvtGenBase/EvtDecayProb.hh b/TEvtGen/EvtGenBase/EvtDecayProb.hh new file mode 100644 index 00000000000..b9ecea40f67 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDecayProb.hh @@ -0,0 +1,54 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtDecayProb.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EvtDecayProb_HH +#define EvtDecayProb_HH + +#include "EvtGenBase/EvtDecayBase.hh" + +class EvtParticle; + +class EvtDecayProb : public EvtDecayBase{ + +public: + + void makeDecay(EvtParticle* p, bool recursive=true); + + void setProb(double prob) { _prob=prob;} + double getProb() { return _prob;} + inline void setWeight(double weight) {_weight=weight;} + + virtual ~EvtDecayProb() {} + + +private: + + double _prob; + double _weight; + +}; + + + +#endif + + + + diff --git a/TEvtGen/EvtGenBase/EvtDecayTable.cxx b/TEvtGen/EvtGenBase/EvtDecayTable.cxx new file mode 100644 index 00000000000..9dec0a62dc8 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDecayTable.cxx @@ -0,0 +1,850 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtDecayTable.cc +// +// Description: +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include +#include +#include +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtSymTable.hh" +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtModel.hh" +#include "EvtGenBase/EvtParser.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtModelAlias.hh" +#include "EvtGenBase/EvtRadCorr.hh" +using std::endl; +using std::fstream; +using std::ifstream; + +std::vector EvtDecayTable::_decaytable; + +int EvtDecayTable::getNMode(int ipar){ + return _decaytable[ipar].getNMode(); +} + +EvtDecayBase* EvtDecayTable::getDecay(int ipar, int imode){ + return _decaytable[ipar].getDecayModel(imode); +} + +void EvtDecayTable::printSummary(){ + + for(size_t i=0;igetId().getAlias(); + + if ( _decaytable[partnum].getNMode()==0 ) return 0; + return _decaytable[partnum].getDecayModel(p); + +} + +void EvtDecayTable::readDecayFile(const std::string dec_name, bool verbose){ + + if ( _decaytable.size() < EvtPDL::entries() ) _decaytable.resize(EvtPDL::entries()); + EvtModel &modelist=EvtModel::instance(); + int i; + + report(INFO,"EvtGen") << "In readDecayFile, reading:"< modelAliasList; + + + do{ + + token=parser.getToken(itoken++); + + //Easy way to turn off photos... Lange September 5, 2000 + if (token=="noPhotos"){ + EvtRadCorr::setNeverRadCorr(); + if ( verbose ) + report(INFO,"EvtGen") + << "As requested, PHOTOS will be turned off."< modelArgList; + + std::string aliasName=parser.getToken(itoken++); + std::string modelName=parser.getToken(itoken++); + + std::string nameTemp; + do{ + nameTemp=parser.getToken(itoken++); + if (nameTemp!=";") { + modelArgList.push_back(nameTemp); + } + }while(nameTemp!=";"); + EvtModelAlias newAlias(aliasName,modelName,modelArgList); + modelAliasList.push_back(newAlias); + } else if (token=="ChargeConj"){ + + std::string aname; + std::string abarname; + + aname=parser.getToken(itoken++); + abarname=parser.getToken(itoken++); + + EvtId a=EvtPDL::getId(aname); + EvtId abar=EvtPDL::getId(abarname); + + if (a==EvtId(-1,-1)) { + report(ERROR,"EvtGen") <<"Unknown particle name:"< 3 ) newWidth=atof(parser.getToken(itoken++).c_str()); + + //Now make the change! + EvtPDL::reSetMass(thisPart, newMass); + EvtPDL::reSetWidth(thisPart, newWidth); + + if (verbose ) + report(INFO,"EvtGen") << "Changing particle properties of " << + pname.c_str() << " Mass=" << newMass << " Width="<=0; + int ismodel=modelist.isModel(parser.getToken(itoken)); + + if (!(isname||ismodel)){ + //see if this is an aliased model + for(size_t iAlias=0;iAlias=0){ + sdaug=parser.getToken(itoken++); + daught[n_daugh++]=EvtPDL::getId(sdaug); + if (daught[n_daugh-1]==EvtId(-1,-1)) { + report(ERROR,"EvtGen") <<"Unknown particle name:"<setPHOTOS(); + } + if (verbose){ + temp_fcn_new->setVerbose(); + } + if (summary){ + temp_fcn_new->setSummary(); + } + + + std::vector temp_fcn_new_args; + + std::string name; + int ierr; + + if ( foundAnAlias==-1 ) { + do{ + name=parser.getToken(itoken++); + if (name!=";") { + temp_fcn_new_args.push_back(EvtSymTable::get(name,ierr)); + if (ierr) { + report(ERROR,"EvtGen") + <<"Reading arguments and found:"<< + name.c_str()<<" on line:"<< + parser.getLineofToken(itoken-1)<=0; + int ismodel=modelist.isModel(name); + if (ismodel) { + report(ERROR,"EvtGen") + <<"Expected ';' but found:"<< + name.c_str()<<" on line:"<< + parser.getLineofToken(itoken-1)< copyMe=modelAliasList[foundAnAlias].getArgList(); + temp_fcn_new_args=copyMe; + itoken++; + } + //Found one decay. + + brfrsum+=brfr; + + temp_fcn_new->saveDecayInfo(ipar,n_daugh, + daught, + temp_fcn_new_args.size(), + temp_fcn_new_args, + temp_fcn_new_model, + brfr); + + double massmin=0.0; + + // for (i=0;inRealDaughters();i++){ + if ( EvtPDL::getMinMass(daught[i])>0.0001 ){ + massmin+=EvtPDL::getMinMass(daught[i]); + } else { + massmin+=EvtPDL::getMeanMass(daught[i]); + } + } + + _decaytable[ipar.getAlias()].addMode(temp_fcn_new,brfrsum,massmin); + + + } + } while(token!="Enddecay"); + + _decaytable[ipar.getAlias()].finalize(); + + } + // Allow copying of decays from one particle to another; useful + // in combination with RemoveDecay + else if (token=="CopyDecay") { + std::string newname; + std::string oldname; + + newname=parser.getToken(itoken++); + oldname=parser.getToken(itoken++); + + EvtId newipar=EvtPDL::getId(newname); + EvtId oldipar=EvtPDL::getId(oldname); + + if (oldipar==EvtId(-1,-1)) { + report(ERROR,"EvtGen") <<"Unknown particle name:"<= 0) { + sdaug = parser.getToken(itoken++); + daught[n_daugh++] = EvtPDL::getId(sdaug); + if (daught[n_daugh-1]==EvtId(-1,-1)) { + report(ERROR,"EvtGen") <<"Unknown particle name:"< temp_fcn_new_args; + std::string temp_fcn_new_model("PHSP"); + temp_fcn_new->saveDecayInfo(ipar, n_daugh, + daught, + 0, + temp_fcn_new_args, + temp_fcn_new_model, + 0.); + _decaytable[ipar.getAlias()].removeMode(temp_fcn_new); + } + } while (token != "Enddecay"); + itoken++; + } + else if (token!="End"){ + + report(ERROR,"EvtGen") << "Found unknown command:'"< EvtPDL::getMinMass(temp) ) { + if ( verbose ) + report(INFO,"EvtGen") << "Given allowed decays, resetting minMass " << EvtPDL::name(temp).c_str() << " " + << EvtPDL::getMinMass(temp) << " to " << minMass << endl; + EvtPDL::reSetMassMin(temp,minMass); + } + } +} + +int EvtDecayTable::findChannel(EvtId parent, std::string model, + int ndaug, EvtId *daugs, + int narg, std::string *args){ + + int i,j,right; + EvtId daugs_scratch[50]; + int nmatch,k; + + for(i=0;i<_decaytable[parent.getAlias()].getNMode();i++){ + + right=1; + + right=right&&model==_decaytable[parent.getAlias()]. + getDecay(i).getDecayModel()->getModelName(); + right=right&&(ndaug==_decaytable[parent.getAlias()]. + getDecay(i).getDecayModel()->getNDaug()); + right=right&&(narg==_decaytable[parent.getAlias()]. + getDecay(i).getDecayModel()->getNArg()); + + if ( right ){ + + + + for(j=0;jgetNDaug();j++){ + + for(k=0;kgetDaug(j)){ + daugs_scratch[k]=EvtId(-1,-1); + nmatch++; + break; + } + } + } + + right=right&&(nmatch==ndaug); + + for(j=0;j<_decaytable[parent.getAlias()]. + getDecay(i).getDecayModel()->getNArg();j++){ + right=right&&(args[j]==_decaytable[parent.getAlias()]. + getDecay(i).getDecayModel()->getArgStr(j)); + } + } + if (right) return i; + } + return -1; +} + +int EvtDecayTable::inChannelList(EvtId parent, int ndaug, EvtId *daugs){ + + int i,j,k; + EvtId daugs_scratch[MAX_DAUG]; + + int dsum=0; + for(i=0;igetDSum()==dsum){ + + int nd=thedecaymodel->getNDaug(); + + if (ndaug==nd){ + for(j=0;jgetDaug(j)){ + daugs_scratch[k]=EvtId(-1,-1); + nmatch++; + break; + } + } + } + if ((nmatch==ndaug)&& + (! + ((thedecaymodel->getModelName()=="JETSET")|| + (thedecaymodel->getModelName()=="PYTHIA")))){ + return i; + } + } + } + } + + return -1; +} + + diff --git a/TEvtGen/EvtGenBase/EvtDecayTable.hh b/TEvtGen/EvtGenBase/EvtDecayTable.hh new file mode 100644 index 00000000000..f7fb0ad3045 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDecayTable.hh @@ -0,0 +1,67 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtDecayTable.hh +// +// Description: Class to read in and handle the decays available +// to EvtGen for each particle, and the model to be +// used for each one. +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTDECAYTABLE_HH +#define EVTDECAYTABLE_HH + +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtParticleDecayList.hh" +#include + +class EvtId; + + +typedef EvtDecayBase* EvtDecayBasePtr; + +class EvtDecayTable{ + +public: + + static int getNMode(int ipar); + + static EvtDecayBase* getDecay(int ipar, int imode); + + static void readDecayFile(const std::string dec_name, bool verbose=true); + + static int findChannel(EvtId parent,std::string model,int ndaug, + EvtId *daugs, + int narg, std::string *args); + + static int inChannelList(EvtId parent, int ndaug, EvtId *daugs); + + static EvtDecayBase *getDecayFunc(EvtParticle *p); + + static void printSummary(); + + static void checkConj(); + + static const std::vector & decaytable() {return _decaytable;}; + +private: + + static std::vector _decaytable; + +}; + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtDiLog.cxx b/TEvtGen/EvtGenBase/EvtDiLog.cxx new file mode 100644 index 00000000000..cda0708ccd6 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDiLog.cxx @@ -0,0 +1,65 @@ +// $Id: EvtDiLog.cc,v 1.1 2009/02/18 21:21:33 ryd Exp $ +// Include files + +// local +#include "EvtGenBase/EvtDiLog.hh" + +#include + +//----------------------------------------------------------------------------- +// Implementation file for class : EvtDiLog +// +// 2007-01-23 : Patrick Robbe +//----------------------------------------------------------------------------- + +double EvtDiLog::DiLog( double x ) { + + double h , t , y , s , a , alfa , b0, b1, b2 ; + if ( x == 1. ) h = PI6 ; + else if ( x == -1. ) h = -PI12 ; + else { + t = -x ; + if ( t <= -2. ) { + y = -1./(1.+t) ; + s = 1. ; + a = -PI3 + HF * ( std::pow( log(-t) , 2 ) - + std::pow( log( 1. + 1./t ) , 2 ) ) ; + } else if ( t < -1. ) { + y = -1. - t ; + s = -1. ; + a = log( -t ) ; + a = -PI6 + a * ( a + log( 1. + 1./t ) ) ; + } else if ( t <= -HF ) { + y = - (1. + t ) / t ; + s = 1. ; + a = log( -t ) ; + a = -PI6 + a * ( -HF * a + log( 1. + t ) ) ; + } else if ( t < 0 ) { + y = -t / ( 1. + t ) ; + s = -1. ; + a = HF * std::pow( log( 1. + t ) , 2 ) ; + } else if ( t <= 1. ) { + y = t ; + s = 1. ; + a = 0. ; + } else { + y = 1. / t ; + s = -1. ; + a = PI6 + HF * std::pow( log( t ) , 2 ) ; + } + + h = y + y - 1. ; + alfa = h + h ; + b1 = 0. ; + b2 = 0. ; + for ( int i = 19 ; i >= 0 ; --i ) { + b0 = C[ i ] + alfa * b1 - b2 ; + b2 = b1 ; + b1 = b0 ; + } + + h = -(s * ( b0 -h * b2 ) + a ) ; + } + + return h ; +} diff --git a/TEvtGen/EvtGenBase/EvtDiLog.hh b/TEvtGen/EvtGenBase/EvtDiLog.hh new file mode 100644 index 00000000000..46b335539be --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDiLog.hh @@ -0,0 +1,45 @@ +// $Id: EvtDiLog.hh,v 1.1 2009/02/18 21:21:33 ryd Exp $ +#ifndef EVTGENBASE_EVTDILOG_HH +#define EVTGENBASE_EVTDILOG_HH 1 + +// Include files + +/** @namespace EvtDiLog EvtDiLog.hh EvtGenBase/EvtDiLog.hh + * Dilogarithm function (replaces CERNLIB DDILOG) + * + * @author Patrick Robbe + * @date 2007-01-23 + */ +namespace EvtDiLog { + double DiLog( double x ) ; + + // constants for computation + static const double Z1 = 1. ; + static const double HF = Z1 / 2. ; + static const double PI = 3.14159265358979324 ; + static const double PI3 = PI * PI / 3. ; + static const double PI6 = PI * PI / 6. ; + static const double PI12 = PI * PI / 12. ; + static const double C[ 20 ] = { + 0.42996693560813697 , + 0.40975987533077105 , + -0.01858843665014592 , + 0.00145751084062268 , + -0.00014304184442340 , + 0.00001588415541880 , + -0.00000190784959387 , + 0.00000024195180854 , + -0.00000003193341274 , + 0.00000000434545063 , + -0.00000000060578480 , + 0.00000000008612098 , + -0.00000000001244332 , + 0.00000000000182256 , + -0.00000000000027007 , + 0.00000000000004042 , + -0.00000000000000610 , + 0.00000000000000093 , + -0.00000000000000014 , + 0.00000000000000002 } ; +} +#endif // EVTGENBASE_EVTDILOG_HH diff --git a/TEvtGen/EvtGenBase/EvtDiracParticle.cxx b/TEvtGen/EvtGenBase/EvtDiracParticle.cxx new file mode 100644 index 00000000000..9b970251085 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDiracParticle.cxx @@ -0,0 +1,183 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtDiracParticle.cc +// +// Description: Class to describe spin 1/2 particles. +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtDiracParticle.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtSpinDensity.hh" +#include "EvtGenBase/EvtGammaMatrix.hh" +using std::endl; + +EvtDiracParticle::~EvtDiracParticle(){} + + +EvtDiracParticle::EvtDiracParticle(){ + + return; + +} + +void EvtDiracParticle::init(EvtId part_n,const EvtVector4R& p4){ + + _validP4=true; + setp(p4); + setpart_num(part_n); + + if (EvtPDL::getStdHep(part_n)==0){ + report(ERROR,"EvtGen") << "Error in EvtDiracParticle::init, part_n=" + << part_n.getId()<0){ + + _spinorRest[0].set(EvtComplex(sqrt(2.0*mass()),0.0),EvtComplex(0.0,0.0), + EvtComplex(0.0,0.0),EvtComplex(0.0,0.0)); + _spinorRest[1].set(EvtComplex(0.0,0.0),EvtComplex(sqrt(2.0*mass()),0.0), + EvtComplex(0.0,0.0),EvtComplex(0.0,0.0)); + + _spinorParent[0]=boostTo(_spinorRest[0],p4); + _spinorParent[1]=boostTo(_spinorRest[1],p4); + + + } + else{ + + _spinorRest[0].set(EvtComplex(0.0,0.0),EvtComplex(0.0,0.0), + EvtComplex(sqrt(2.0*mass()),0.0),EvtComplex(0.0,0.0)); + _spinorRest[1].set(EvtComplex(0.0,0.0),EvtComplex(0.0,0.0), + EvtComplex(0.0,0.0),EvtComplex(sqrt(2.0*mass()),0.0)); + + _spinorParent[0]=boostTo(_spinorRest[0],p4); + _spinorParent[1]=boostTo(_spinorRest[1],p4); + + + + } + + setLifetime(); +} + + +void EvtDiracParticle::init(EvtId part_n,const EvtVector4R& p4, + const EvtDiracSpinor & prod1, + const EvtDiracSpinor & prod2, + const EvtDiracSpinor & rest1, + const EvtDiracSpinor & rest2){ + + _validP4=true; + setp(p4); + setpart_num(part_n); + + if (EvtPDL::getStdHep(part_n)==0){ + report(ERROR,"EvtGen") << "Error in EvtDiracParticle::init, part_n=" + << part_n.getId()<0){ + spplus.set(1.0,0.0,0.0,0.0); + spminus.set(0.0,1.0,0.0,0.0); + } else { + spplus.set(0.0,0.0,0.0,1.0); + spminus.set(0.0,0.0,1.0,0.0); + } + + + EvtSpinDensity R; + R.setDim(2); + + for (int i=0; i<2; i++) { + if (EvtPDL::getStdHep(getId())>0){ + R.set(0,i,(EvtComplex)(spplus*_spinorRest[i])/sqmt2); + R.set(1,i,(EvtComplex)(spminus*_spinorRest[i])/sqmt2); + } else { + R.set(0,i,(EvtComplex)(_spinorRest[i]*spplus)/sqmt2); + R.set(1,i,(EvtComplex)(_spinorRest[i]*spminus)/sqmt2); + } + } + + return R; + +} + + +EvtSpinDensity EvtDiracParticle::rotateToHelicityBasis(double alpha, + double beta, + double gamma) const{ + + + EvtDiracSpinor spplus; + EvtDiracSpinor spminus; + + double sqmt2=sqrt(2.*(getP4().mass())); + + if (EvtPDL::getStdHep(getId())>0){ + spplus.set(1.0,0.0,0.0,0.0); + spminus.set(0.0,1.0,0.0,0.0); + } else { + spplus.set(0.0,0.0,0.0,1.0); + spminus.set(0.0,0.0,1.0,0.0); + } + + spplus.applyRotateEuler(alpha,beta,gamma); + spminus.applyRotateEuler(alpha,beta,gamma); + + EvtSpinDensity R; + R.setDim(2); + + for (int i=0; i<2; i++) { + if (EvtPDL::getStdHep(getId())>0){ + R.set(0,i,(EvtComplex)(spplus*_spinorRest[i])/sqmt2); + R.set(1,i,(EvtComplex)(spminus*_spinorRest[i])/sqmt2); + } else { + R.set(0,i,(EvtComplex)(_spinorRest[i]*spplus)/sqmt2); + R.set(1,i,(EvtComplex)(_spinorRest[i]*spminus)/sqmt2); + } + } + + return R; + +} + + + diff --git a/TEvtGen/EvtGenBase/EvtDiracParticle.hh b/TEvtGen/EvtGenBase/EvtDiracParticle.hh new file mode 100644 index 00000000000..fea843dc46b --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDiracParticle.hh @@ -0,0 +1,57 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtDiracParticle.hh +// +// Description:EvtDiracParticle particles i.e. spin 1/2 particles. +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTDIRACPARTICLE_HH +#define EVTDIRACPARTICLE_HH + +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtParticle.hh" + +class EvtId; +class EvtVector4R; + +class EvtDiracParticle:public EvtParticle { + +public: + + + EvtDiracParticle(); + virtual ~EvtDiracParticle(); + void init(EvtId part_n,const EvtVector4R& p4); + void init(EvtId part_n,const EvtVector4R& p4, + const EvtDiracSpinor &,const EvtDiracSpinor &, + const EvtDiracSpinor &,const EvtDiracSpinor &); + EvtDiracSpinor spParent(int i) const {return _spinorParent[i];} + EvtDiracSpinor sp(int i) const {return _spinorRest[i];} + EvtSpinDensity rotateToHelicityBasis() const; + EvtSpinDensity rotateToHelicityBasis(double alpha, + double beta, + double gamma) const; + +private: + + EvtDiracSpinor _spinorRest[2]; + EvtDiracSpinor _spinorParent[2]; + EvtDiracParticle(const EvtDiracParticle& d); + EvtDiracParticle& operator=(const EvtDiracParticle& d); + +}; +#endif + diff --git a/TEvtGen/EvtGenBase/EvtDiracSpinor.cxx b/TEvtGen/EvtGenBase/EvtDiracSpinor.cxx new file mode 100644 index 00000000000..6f091dcb380 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDiracSpinor.cxx @@ -0,0 +1,367 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtDiracSpinor.cc +// +// Description: Class to describe (EvtDiracParticle) spinors. +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtGammaMatrix.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +using std::ostream; + + +EvtDiracSpinor::~EvtDiracSpinor(){} + +EvtDiracSpinor::EvtDiracSpinor(const EvtComplex& sp0,const EvtComplex& sp1, + const EvtComplex& sp2,const EvtComplex& sp3){ + set(sp0,sp1,sp2,sp3); +} + +void EvtDiracSpinor::set(const EvtComplex& sp0,const EvtComplex& sp1, + const EvtComplex& sp2,const EvtComplex& sp3){ + + spinor[0]=sp0;spinor[1]=sp1;spinor[2]=sp2;spinor[3]=sp3; +} + +void EvtDiracSpinor::set_spinor(int i,const EvtComplex& sp){ + + spinor[i]=sp; +} + +ostream& operator<<(ostream& s, const EvtDiracSpinor& sp){ + + s <<"["<conj(); // first conjugate, then multiply with gamma0 + EvtGammaMatrix g0 = EvtGammaMatrix::g0(); + EvtDiracSpinor result; // automatically initialized to 0 + + for (int i=0; i<4; ++i) + for (int j=0; j<4; ++j) + result.spinor[i] += d.spinor[j] * g0._gamma[i][j]; + + return result; +} diff --git a/TEvtGen/EvtGenBase/EvtDiracSpinor.hh b/TEvtGen/EvtGenBase/EvtDiracSpinor.hh new file mode 100644 index 00000000000..3477925fd06 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtDiracSpinor.hh @@ -0,0 +1,155 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtDiracSpinor.hh +// +// Description:Class to manipulate dirac spinors +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTDIRACSPINOR_HH +#define EVTDIRACSPINOR_HH + +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtVector3R.hh" + +class EvtTensor4C; +class EvtVector4C; +class EvtDiracSpinor ; + + +class EvtDiracSpinor { + + friend EvtDiracSpinor rotateEuler(const EvtDiracSpinor& sp, + double alpha,double beta,double gamma); + friend EvtDiracSpinor boostTo(const EvtDiracSpinor& sp, + const EvtVector4R p4); + friend EvtDiracSpinor boostTo(const EvtDiracSpinor& sp, + const EvtVector3R boost); + friend EvtVector4C EvtLeptonVACurrent + (const EvtDiracSpinor& d,const EvtDiracSpinor& dp); + friend EvtVector4C EvtLeptonVCurrent + (const EvtDiracSpinor& d,const EvtDiracSpinor& dp); + friend EvtVector4C EvtLeptonACurrent + (const EvtDiracSpinor& d,const EvtDiracSpinor& dp); + friend EvtComplex EvtLeptonSCurrent + (const EvtDiracSpinor& d,const EvtDiracSpinor& dp); + friend EvtComplex EvtLeptonPCurrent + (const EvtDiracSpinor& d,const EvtDiracSpinor& dp); + friend EvtTensor4C EvtLeptonTCurrent + (const EvtDiracSpinor& d,const EvtDiracSpinor& dp); + friend EvtDiracSpinor operator+(const EvtDiracSpinor& u1, + const EvtDiracSpinor& u2); + friend EvtDiracSpinor operator-(const EvtDiracSpinor& u1, + const EvtDiracSpinor& u2); + friend EvtDiracSpinor operator*(const EvtComplex& c, + const EvtDiracSpinor& d); + friend EvtComplex operator*(const EvtDiracSpinor& d, const EvtDiracSpinor& dp); + + + friend std::ostream& operator<<(std::ostream& s, const EvtDiracSpinor& c); + +public: + + inline EvtDiracSpinor(); + EvtDiracSpinor(const EvtComplex& sp0,const EvtComplex& sp1, + const EvtComplex& sp2,const EvtComplex& sp3); + virtual ~EvtDiracSpinor(); + inline EvtDiracSpinor(const EvtDiracSpinor& dspinor); + inline EvtDiracSpinor& operator=(const EvtDiracSpinor& dspinor); + + inline EvtDiracSpinor& operator+=(const EvtDiracSpinor& u2); + inline EvtDiracSpinor& operator-=(const EvtDiracSpinor& u2); + + void set(const EvtComplex& sp0,const EvtComplex& sp1, + const EvtComplex& sp2,const EvtComplex& sp3); + void set_spinor(int i,const EvtComplex& sp); + const EvtComplex& get_spinor(int i) const; + EvtDiracSpinor conj() const; + void applyRotateEuler(double alpha,double beta,double gamma); + void applyBoostTo(const EvtVector4R& p4); + void applyBoostTo(const EvtVector3R& boost); + EvtDiracSpinor adjoint() const; + +private: + + EvtComplex spinor[4]; + +}; + +EvtDiracSpinor::EvtDiracSpinor(){ + + spinor[0]=EvtComplex(); spinor[1]=EvtComplex(); + spinor[2]=EvtComplex(); spinor[3]=EvtComplex(); + +} + +EvtDiracSpinor::EvtDiracSpinor(const EvtDiracSpinor& dspinor){ + + spinor[0]=dspinor.spinor[0]; + spinor[1]=dspinor.spinor[1]; + spinor[2]=dspinor.spinor[2]; + spinor[3]=dspinor.spinor[3]; + +} + +EvtDiracSpinor& EvtDiracSpinor::operator=(const EvtDiracSpinor& dspinor){ + + spinor[0]=dspinor.spinor[0]; + spinor[1]=dspinor.spinor[1]; + spinor[2]=dspinor.spinor[2]; + spinor[3]=dspinor.spinor[3]; + + return *this; + +} + +inline EvtDiracSpinor& EvtDiracSpinor::operator+=(const EvtDiracSpinor& u2){ + + spinor[0]+=u2.spinor[0]; + spinor[1]+=u2.spinor[1]; + spinor[2]+=u2.spinor[2]; + spinor[3]+=u2.spinor[3]; + + return *this; +} + +inline EvtDiracSpinor operator+(const EvtDiracSpinor& u1, + const EvtDiracSpinor& u2){ + + return EvtDiracSpinor(u1)+=u2; + +} + +inline EvtDiracSpinor& EvtDiracSpinor::operator-=(const EvtDiracSpinor& u2){ + + spinor[0]-=u2.spinor[0]; + spinor[1]-=u2.spinor[1]; + spinor[2]-=u2.spinor[2]; + spinor[3]-=u2.spinor[3]; + + return *this; +} + +inline EvtDiracSpinor operator-(const EvtDiracSpinor& u1, + const EvtDiracSpinor& u2){ + + return EvtDiracSpinor(u1)-=u2; + +} + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtEvalHelAmp.cxx b/TEvtGen/EvtGenBase/EvtEvalHelAmp.cxx new file mode 100644 index 00000000000..9553bdd5c66 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtEvalHelAmp.cxx @@ -0,0 +1,490 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech, UCSB +// +// Module: EvtHelAmp.cc +// +// Description: Decay model for implementation of generic 2 body +// decay specified by the partial wave amplitudes +// +// +// Modification history: +// +// fkw February 2, 2001 changes to satisfy KCC +// RYD September 7, 2000 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtEvalHelAmp.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtdFunction.hh" +#include "EvtGenBase/EvtAmp.hh" +using std::endl; + + +EvtEvalHelAmp::~EvtEvalHelAmp() { + + //deallocate memory + delete [] _lambdaA2; + delete [] _lambdaB2; + delete [] _lambdaC2; + + int ia,ib,ic; + for(ib=0;ib<_nB;ib++){ + delete [] _HBC[ib]; + } + + delete [] _HBC; + + + for(ia=0;ia<_nA;ia++){ + delete [] _RA[ia]; + } + delete [] _RA; + + for(ib=0;ib<_nB;ib++){ + delete [] _RB[ib]; + } + delete [] _RB; + + for(ic=0;ic<_nC;ic++){ + delete [] _RC[ic]; + } + delete [] _RC; + + + for(ia=0;ia<_nA;ia++){ + for(ib=0;ib<_nB;ib++){ + delete [] _amp[ia][ib]; + delete [] _amp1[ia][ib]; + delete [] _amp3[ia][ib]; + } + delete [] _amp[ia]; + delete [] _amp1[ia]; + delete [] _amp3[ia]; + } + + delete [] _amp; + delete [] _amp1; + delete [] _amp3; + +} + + +EvtEvalHelAmp::EvtEvalHelAmp(EvtId idA, + EvtId idB, + EvtId idC, + EvtComplexPtrPtr HBC){ + + + EvtSpinType::spintype typeA=EvtPDL::getSpinType(idA); + EvtSpinType::spintype typeB=EvtPDL::getSpinType(idB); + EvtSpinType::spintype typeC=EvtPDL::getSpinType(idC); + + //find out how many states each particle have + _nA=EvtSpinType::getSpinStates(typeA); + _nB=EvtSpinType::getSpinStates(typeB); + _nC=EvtSpinType::getSpinStates(typeC); + + //find out what 2 times the spin is + _JA2=EvtSpinType::getSpin2(typeA); + _JB2=EvtSpinType::getSpin2(typeB); + _JC2=EvtSpinType::getSpin2(typeC); + + + //allocate memory + _lambdaA2=new int[_nA]; + _lambdaB2=new int[_nB]; + _lambdaC2=new int[_nC]; + + _HBC=new EvtComplexPtr[_nB]; + int ia,ib,ic; + for(ib=0;ib<_nB;ib++){ + _HBC[ib]=new EvtComplex[_nC]; + } + + + _RA=new EvtComplexPtr[_nA]; + for(ia=0;ia<_nA;ia++){ + _RA[ia]=new EvtComplex[_nA]; + } + _RB=new EvtComplexPtr[_nB]; + for(ib=0;ib<_nB;ib++){ + _RB[ib]=new EvtComplex[_nB]; + } + _RC=new EvtComplexPtr[_nC]; + for(ic=0;ic<_nC;ic++){ + _RC[ic]=new EvtComplex[_nC]; + } + + _amp=new EvtComplexPtrPtr[_nA]; + _amp1=new EvtComplexPtrPtr[_nA]; + _amp3=new EvtComplexPtrPtr[_nA]; + for(ia=0;ia<_nA;ia++){ + _amp[ia]=new EvtComplexPtr[_nB]; + _amp1[ia]=new EvtComplexPtr[_nB]; + _amp3[ia]=new EvtComplexPtr[_nB]; + for(ib=0;ib<_nB;ib++){ + _amp[ia][ib]=new EvtComplex[_nC]; + _amp1[ia][ib]=new EvtComplex[_nC]; + _amp3[ia][ib]=new EvtComplex[_nC]; + } + } + + //find the allowed helicities (actually 2*times the helicity!) + + fillHelicity(_lambdaA2,_nA,_JA2,idA); + fillHelicity(_lambdaB2,_nB,_JB2,idB); + fillHelicity(_lambdaC2,_nC,_JC2,idC); + + for(ib=0;ib<_nB;ib++){ + for(ic=0;ic<_nC;ic++){ + _HBC[ib][ic]=HBC[ib][ic]; + } + } +} + + + + + + +double EvtEvalHelAmp::probMax(){ + + double c=1.0/sqrt(4*EvtConst::pi/(_JA2+1)); + + int ia,ib,ic; + + + double theta; + int itheta; + + double maxprob=0.0; + + for(itheta=-10;itheta<=10;itheta++){ + theta=acos(0.099999*itheta); + for(ia=0;ia<_nA;ia++){ + double prob=0.0; + for(ib=0;ib<_nB;ib++){ + for(ic=0;ic<_nC;ic++){ + _amp[ia][ib][ic]=0.0; + if (abs(_lambdaB2[ib]-_lambdaC2[ic])<=_JA2) { + _amp[ia][ib][ic]=c*_HBC[ib][ic]* + EvtdFunction::d(_JA2,_lambdaA2[ia], + _lambdaB2[ib]-_lambdaC2[ic],theta); + prob+=real(_amp[ia][ib][ic]*conj(_amp[ia][ib][ic])); + } + } + } + + prob*=sqrt(1.0*_nA); + + if (prob>maxprob) maxprob=prob; + + } + } + + return maxprob; + +} + + +void EvtEvalHelAmp::evalAmp( EvtParticle *p, EvtAmp& amp){ + + //find theta and phi of the first daughter + + EvtVector4R pB=p->getDaug(0)->getP4(); + + double theta=acos(pB.get(3)/pB.d3mag()); + double phi=atan2(pB.get(2),pB.get(1)); + + double c=sqrt((_JA2+1)/(4*EvtConst::pi)); + + int ia,ib,ic; + + double prob1=0.0; + + for(ia=0;ia<_nA;ia++){ + for(ib=0;ib<_nB;ib++){ + for(ic=0;ic<_nC;ic++){ + _amp[ia][ib][ic]=0.0; + if (abs(_lambdaB2[ib]-_lambdaC2[ic])<=_JA2) { + double dfun=EvtdFunction::d(_JA2,_lambdaA2[ia], + _lambdaB2[ib]-_lambdaC2[ic],theta); + + _amp[ia][ib][ic]=c*_HBC[ib][ic]* + exp(EvtComplex(0.0,phi*0.5*(_lambdaA2[ia]-_lambdaB2[ib]+ + _lambdaC2[ic])))*dfun; + } + prob1+=real(_amp[ia][ib][ic]*conj(_amp[ia][ib][ic])); + } + } + } + + setUpRotationMatrices(p,theta,phi); + + applyRotationMatrices(); + + double prob2=0.0; + + for(ia=0;ia<_nA;ia++){ + for(ib=0;ib<_nB;ib++){ + for(ic=0;ic<_nC;ic++){ + prob2+=real(_amp[ia][ib][ic]*conj(_amp[ia][ib][ic])); + if (_nA==1){ + if (_nB==1){ + if (_nC==1){ + amp.vertex(_amp[ia][ib][ic]); + } + else{ + amp.vertex(ic,_amp[ia][ib][ic]); + } + } + else{ + if (_nC==1){ + amp.vertex(ib,_amp[ia][ib][ic]); + } + else{ + amp.vertex(ib,ic,_amp[ia][ib][ic]); + } + } + }else{ + if (_nB==1){ + if (_nC==1){ + amp.vertex(ia,_amp[ia][ib][ic]); + } + else{ + amp.vertex(ia,ic,_amp[ia][ib][ic]); + } + } + else{ + if (_nC==1){ + amp.vertex(ia,ib,_amp[ia][ib][ic]); + } + else{ + amp.vertex(ia,ib,ic,_amp[ia][ib][ic]); + } + } + } + } + } + } + + if (fabs(prob1-prob2)>0.000001*prob1){ + report(INFO,"EvtGen") << "prob1,prob2:"<0){ + //particle i.e. lefthanded + lambda2[0]=-1; + }else{ + //anti particle i.e. righthanded + lambda2[0]=1; + } + return; + } + + + assert(n==J2+1); + + for(i=0;irotateToHelicityBasis(); + + + int i,j,n; + + n=R.getDim(); + + assert(n==_nA); + + + for(i=0;igetDaug(0)->rotateToHelicityBasis(phi,theta,-phi); + + n=R.getDim(); + + assert(n==_nB); + + for(i=0;igetDaug(1)->rotateToHelicityBasis(phi,EvtConst::pi+theta,phi-EvtConst::pi); + + n=R.getDim(); + + assert(n==_nC); + + for(i=0;i +class EvtFlatAmp : public EvtAmplitude { +public: + + EvtFlatAmp() {} + EvtFlatAmp(const EvtFlatAmp& other) : EvtAmplitude(other) {} + virtual ~EvtFlatAmp() {} + + virtual EvtAmplitude* clone() const { return new EvtFlatAmp(*this); } + virtual EvtComplex amplitude(const T& ) const { return EvtComplex(1.,0.); } +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtFlatLineShape.cxx b/TEvtGen/EvtGenBase/EvtFlatLineShape.cxx new file mode 100644 index 00000000000..aa9bca7f87e --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtFlatLineShape.cxx @@ -0,0 +1,110 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtLineShape.cc +// +// Description: Store particle properties for one particle. +// +// Modification history: +// +// Lange March 10, 2001 Module created +// Dvoretskii June 03, 2002 Reimplemented rollMass() +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtFlatLineShape.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtTwoBodyVertex.hh" +#include "EvtGenBase/EvtBlattWeisskopf.hh" +#include "EvtGenBase/EvtPropBreitWignerRel.hh" +#include "EvtGenBase/EvtPropBreitWigner.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtSpinType.hh" + +EvtFlatLineShape::EvtFlatLineShape() { + +} + +EvtFlatLineShape::~EvtFlatLineShape() { +} + +EvtFlatLineShape::EvtFlatLineShape(double mass, double width, double maxRange, EvtSpinType::spintype sp) { + + _mass=mass; + _width=width; + _spin=sp; + _maxRange=maxRange; + + double maxdelta = width; + + _massMax=mass+maxdelta; + _massMin=mass-maxdelta; + + if ( _massMin< 0. ) _massMin=0.; + +} + +EvtFlatLineShape::EvtFlatLineShape(const EvtFlatLineShape& x): +EvtAbsLineShape( x ) { + _mass=x._mass; + _width=x._width; + _spin=x._spin; + _massMax=x._massMax; + _massMin=x._massMin; + _maxRange=x._maxRange; + +} + +EvtFlatLineShape& EvtFlatLineShape::operator=(const EvtFlatLineShape& x){ + _mass=x._mass; + _massMax=x._massMax; + _massMin=x._massMin; + _width=x._width; + _maxRange=x._maxRange; + _spin=x._spin; + return *this; + +} + +EvtAbsLineShape* EvtFlatLineShape::clone() { + + return new EvtFlatLineShape(*this); +} + + +double EvtFlatLineShape::getMassProb(double mass, double massPar,int nDaug, double *massDau) { + + + double dTotMass=0.; + + int i; + for (i=0; i0.0000000001 ) { + if ( mass > massPar) return 0.; + } + + return 1.; +} + +double EvtFlatLineShape::getRandMass(EvtId*,int, EvtId*, EvtId*, double, double*) { + + return EvtRandom::Flat(_massMin,_massMax); + +} + + + + diff --git a/TEvtGen/EvtGenBase/EvtFlatLineShape.hh b/TEvtGen/EvtGenBase/EvtFlatLineShape.hh new file mode 100644 index 00000000000..3fe79f31987 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtFlatLineShape.hh @@ -0,0 +1,51 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtAbsLineShape.hh +// +// Description: Class to keep the particle properties for +// one particle +// +// Modification history: +// +// Lange March 10, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTFLATLINESHAPE_HH +#define EVTFLATLINESHAPE_HH + +#include "EvtGenBase/EvtAbsLineShape.hh" + +class EvtFlatLineShape :public EvtAbsLineShape { + +public: + + EvtFlatLineShape(); + EvtFlatLineShape(double mass, double width, double maxRange, EvtSpinType::spintype sp); + //figure the m1 and l on the fly + // double mDaug1, double mDaug2, int l); + ~EvtFlatLineShape(); + EvtFlatLineShape& operator=(const EvtFlatLineShape& x); + EvtFlatLineShape(const EvtFlatLineShape& x); + + EvtAbsLineShape* clone(); + + double getMassProb(double mass, double massPar, int nDaug, double *massDau); + // othDaugId is the other daughter of the parent in the case of a two body decay (only!) + // ie B->rho K rho->pipi, othDaugId = K + double getRandMass(EvtId *parId, int nDaug, EvtId *dauId, EvtId *othDaugId,double maxMass, double *dauMasses); + + +protected: +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtFlatte.cxx b/TEvtGen/EvtGenBase/EvtFlatte.cxx new file mode 100644 index 00000000000..d246c195453 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtFlatte.cxx @@ -0,0 +1,101 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtFlatte.cc +// +// Description: resonance-defining class +// +// Modification history: +// +// ponyisi 18 Feb 2008 created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtKine.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtFlatte.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtConst.hh" + +EvtFlatte::~EvtFlatte(){} + +//operator + +EvtFlatte& EvtFlatte::operator = ( const EvtFlatte &n) +{ + if ( &n == this ) return *this; + _p4_p = n._p4_p; + _p4_d1 = n._p4_d1; + _p4_d2 = n._p4_d2; + _ampl = n._ampl; + _theta = n._theta; + _mass = n._mass; + _params = n._params; + // _m1a = n._m1a; + // _m1b = n._m1b; + // _g1 = n._g1; + // _m2a = n._m2a; + // _m2b = n._m2b; + // _g2 = n._g2; + return *this; +} + +//constructor + +EvtFlatte::EvtFlatte(const EvtVector4R& p4_p, const EvtVector4R& p4_d1, + const EvtVector4R& p4_d2, double ampl, + double theta, double mass, + vector& params + // double m1a, double m1b, double g1, + // double m2a, double m2b, double g2 + ): + _p4_p(p4_p),_p4_d1(p4_d1), _p4_d2(p4_d2), _ampl(ampl), _theta(theta), + _mass(mass), + _params(params) + // _m1a(m1a), _m1b(m1b), _g1(g1), + // _m2a(m2a), _m2b(m2b), _g2(g2) +{} + +//amplitude function + +EvtComplex EvtFlatte::resAmpl() { + + double pi180inv = 1.0/EvtConst::radToDegrees; + + // EvtComplex ampl(cos(_theta*pi180inv), sin(_theta*pi180inv)); + // ampl *= _ampl; + + // SCALARS ONLY + double mR = (_p4_d1+_p4_d2).mass(); + + EvtComplex w; + + for (vector::const_iterator param = _params.begin(); + param != _params.end(); + ++param) { + + double m1 = (*param).m1(); double m2 = (*param).m2(); + double g = (*param).g(); + w += (g*g + *sqrtCplx((1-((m1-m2)*(m1-m2))/(mR*mR))* + (1-((m1+m2)*(m1+m2))/(mR*mR)))); + // cout << m1 << " " << mR << " " << w << endl; + } + + EvtComplex denom = _mass*_mass - mR*mR - EvtComplex(0,1)*w; + EvtComplex ampl = _ampl*EvtComplex(cos(_theta*pi180inv), sin(_theta*pi180inv))/denom; + // cout << abs(1/denom) << endl; + return ampl; +} + + diff --git a/TEvtGen/EvtGenBase/EvtFlatte.hh b/TEvtGen/EvtGenBase/EvtFlatte.hh new file mode 100644 index 00000000000..0abc9dcfc5f --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtFlatte.hh @@ -0,0 +1,101 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtFlatte.hh +// +// Description:resonance-defining class +// +// Modification history: +// +// ponyisi 18 Feb 2008 created +// +//------------------------------------------------------------------------ + +#ifndef EVTFLATTE_HH +#define EVTFLATTE_HH + +#include "EvtGenBase/EvtVector4R.hh" +#include + +using std::vector; + +class EvtComplex; + +// Helper class + +class EvtFlatteParam { +public: + EvtFlatteParam(double m1, double m2, double g): + _m1(m1), _m2(m2), _g(g) {} + + inline double m1() const { return _m1; } + inline double m2() const { return _m2; } + inline double g() const { return _g; } + +private: + double _m1, _m2, _g; +}; + +//class declaration + +class EvtFlatte { +public: + + //operator + EvtFlatte& operator = (const EvtFlatte &); + + //constructor with all information about the resonance + EvtFlatte(const EvtVector4R& p4_p, const EvtVector4R& p4_d1, + const EvtVector4R& p4_d2, + double ampl, double theta, + double mass, + vector& params + // double m1a = 0.0, double m1b = 0.0, double g1 = 0.0, + // double m2a = 0.0, double m2b = 0.0, double g2 = 0.0 + ); + + //destructor + virtual ~EvtFlatte(); + + //accessors + //return 4-momenta of the particles involved + inline const EvtVector4R& p4_p() { return _p4_p; } + inline const EvtVector4R& p4_d1() { return _p4_d1; } + inline const EvtVector4R& p4_d2() { return _p4_d2; } + + + //return amplitude + inline double amplitude() { return _ampl; } + + //return theta + inline double theta() { return _theta; } + + //return bwm + inline double mass() { return _mass; } + + //functions + + //calculate amplitude for this resonance + EvtComplex resAmpl(); + +private: + + inline EvtComplex sqrtCplx(double in) { return (in > 0) ? EvtComplex(sqrt(in), 0) : EvtComplex + (0, sqrt(-in)); } + + EvtVector4R _p4_p, _p4_d1, _p4_d2; + double _ampl, _theta, _mass; + vector _params; + // double _m1a, _m1b, _g1; + // double _m2a, _m2b, _g2; +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtGammaMatrix.cxx b/TEvtGen/EvtGenBase/EvtGammaMatrix.cxx new file mode 100644 index 00000000000..118e3846afc --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtGammaMatrix.cxx @@ -0,0 +1,704 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGammaMatrix.cc +// +// Description: Make gamma matrices availible for the calc. of amplitudes, etc. +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtGammaMatrix.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include +using std::endl; +using std::ostream; + +EvtGammaMatrix::EvtGammaMatrix(){ + int i,j; + + static EvtComplex zero(0.0,0.0); + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + _gamma[i][j]=zero; + } + } +} + +EvtGammaMatrix operator*(const EvtGammaMatrix& g, const EvtComplex& c) +{ + return c*g; +} + + +EvtGammaMatrix operator*(const EvtComplex& c,const EvtGammaMatrix& g){ + int i,j; + + EvtGammaMatrix temp; + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + temp._gamma[i][j]=g._gamma[i][j]*c; + } + } + + return temp; + +} + + +ostream& operator<<(ostream& s, const EvtGammaMatrix& g){ + + + s<<"["< 3 || nu > 3) + { + report(ERROR, "EvtSigmaTensor") << "Expected index between 0 and 3, but found " << nu << "!" << endl; + assert(0); + } + return sigma[mu][nu]; + +} + +const EvtGammaMatrix& EvtGammaMatrix::sigmaLower(unsigned int mu, unsigned int nu) +{ + const EvtComplex I(0, 1); + EvtGammaMatrix a, b; + static EvtGammaMatrix sigma[4][4]; + static bool hasBeenCalled = false; + static const EvtTensor4C eta = EvtTensor4C::g(); + + if (!hasBeenCalled) // has to be initialized only at the first call + { + // lower index + for (int i=0; i<4; ++i) + { + a = eta.get(i, 0)*g0() + eta.get(i, 1)*g1() + eta.get(i, 2)*g2() + eta.get(i, 3)*g3(); + for (int j=0; j<4; ++j) + { + b = eta.get(j, 0)*g0() + eta.get(j, 1)*g1() + eta.get(j, 2)*g2() + eta.get(j, 3)*g3(); + sigma[i][j] = I/2 * (a*b - b*a); + } + } + } + return sigma[mu][nu]; +} + + +EvtGammaMatrix slash(const EvtVector4C& p) +{ + return EvtGammaMatrix::g0()*p.get(0) + EvtGammaMatrix::g1()*p.get(1) + EvtGammaMatrix::g2()*p.get(2) + EvtGammaMatrix::g3()*p.get(3); +} diff --git a/TEvtGen/EvtGenBase/EvtGammaMatrix.hh b/TEvtGen/EvtGenBase/EvtGammaMatrix.hh new file mode 100644 index 00000000000..049f1bf3f66 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtGammaMatrix.hh @@ -0,0 +1,107 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtGammaMatrix.hh +// +// Description: Class to manipulate gamma matrices. The reperesentation +// used is the "standard" Dirac representation. +// +// Modification history: +// +// DJL/RYD September 25, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTGAMMAMATRIX_HH +#define EVTGAMMAMATRIX_HH + +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" // needed for adjoint +//#include +#include +class EvtGammaMatrix; +class EvtVector4C; + +EvtGammaMatrix slash(const EvtVector4C& p); + +class EvtGammaMatrix { + + friend EvtGammaMatrix operator*(const EvtComplex& c,const EvtGammaMatrix& g); + friend EvtGammaMatrix operator*(const EvtGammaMatrix& g, const EvtComplex& c); + friend EvtGammaMatrix operator/(const EvtGammaMatrix& g, const double d); + friend EvtDiracSpinor operator*(const EvtGammaMatrix& g,const EvtDiracSpinor& d); + //friend EvtComplex operator*(const EvtDiracSpinor& d,const EvtDiracSpinor& dp); + friend EvtGammaMatrix operator+(const EvtGammaMatrix& g1,const EvtGammaMatrix& g2); + friend EvtGammaMatrix operator-(const EvtGammaMatrix& g1,const EvtGammaMatrix& g2); + friend EvtGammaMatrix operator*(const EvtGammaMatrix& g1,const EvtGammaMatrix& g2); + friend std::ostream& operator<<(std::ostream& s, const EvtGammaMatrix& v); + friend EvtDiracSpinor EvtDiracSpinor::adjoint() const; + // slash or Feynman slash a 4-vector + friend EvtGammaMatrix slash(const EvtVector4C& p); + + +public: + + EvtGammaMatrix(); + virtual ~EvtGammaMatrix(); + EvtGammaMatrix(const EvtGammaMatrix& gm); + EvtGammaMatrix& operator=(const EvtGammaMatrix& gm); + + void init(); + static const EvtGammaMatrix& g(int); + static const EvtGammaMatrix& g0(); + static const EvtGammaMatrix& g1(); + static const EvtGammaMatrix& g2(); + static const EvtGammaMatrix& g3(); + static const EvtGammaMatrix& g5(); + static const EvtGammaMatrix& id(); + static const EvtGammaMatrix& va0(); + static const EvtGammaMatrix& va1(); + static const EvtGammaMatrix& va2(); + static const EvtGammaMatrix& va3(); + static const EvtGammaMatrix& v0(); + static const EvtGammaMatrix& v1(); + static const EvtGammaMatrix& v2(); + static const EvtGammaMatrix& v3(); + // Dirac sigma matrix with upper or lower indices (only one element) + static const EvtGammaMatrix& sigmaUpper(unsigned int mu, unsigned int nu); + static const EvtGammaMatrix& sigmaLower(unsigned int mu, unsigned int nu); + + EvtGammaMatrix& operator+=(const EvtGammaMatrix &g); + EvtGammaMatrix& operator-=(const EvtGammaMatrix &g); + EvtGammaMatrix& operator*=(const EvtGammaMatrix &g); + +private: + EvtComplex _gamma[4][4]; + +}; + + +inline EvtGammaMatrix operator+(const EvtGammaMatrix& g1,const EvtGammaMatrix& g2){ + return EvtGammaMatrix(g1)+=g2; +} + +inline EvtGammaMatrix operator-(const EvtGammaMatrix& g1,const EvtGammaMatrix& g2){ + return EvtGammaMatrix(g1)-=g2; +} + +inline EvtGammaMatrix operator*(const EvtGammaMatrix& g1,const EvtGammaMatrix& g2){ + return EvtGammaMatrix(g1)*=g2; +} + +inline EvtGammaMatrix operator/(const EvtGammaMatrix& g, const double d) +{ + return g * EvtComplex(1/d,0); +} + + + + +#endif diff --git a/TEvtGen/EvtGenBase/EvtGenBaseLinkDef.h b/TEvtGen/EvtGenBase/EvtGenBaseLinkDef.h new file mode 100644 index 00000000000..832fad5cc34 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtGenBaseLinkDef.h @@ -0,0 +1,8 @@ +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtGenBaseLinkDefOLD.h b/TEvtGen/EvtGenBase/EvtGenBaseLinkDefOLD.h new file mode 100644 index 00000000000..7502ebe0a7c --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtGenBaseLinkDefOLD.h @@ -0,0 +1,117 @@ +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#pragma link C++ class Evt3Rank3C+; +#pragma link C++ class EvtAbsLineShape+; +#pragma link C++ class EvtAmp+; +#pragma link C++ class EvtAmpIndex+; +#pragma link C++ class EvtAmpSubIndex+; +#pragma link C++ class EvtBlattWeisskopf+; +#pragma link C++ class EvtBreitWignerPdf+; +#pragma link C++ class EvtCGCoefSingle+; +#pragma link C++ class EvtCPUtil+; +#pragma link C++ class EvtComplex+; +#pragma link C++ class EvtConst+; +#pragma link C++ class EvtCyclic3+; +#pragma link C++ class EvtDalitzCoord+; +#pragma link C++ class EvtDalitzFlatPdf+; +#pragma link C++ class EvtDalitzPlot+; +#pragma link C++ class EvtDalitzPoint+; +#pragma link C++ class EvtDalitzResPdf+; +#pragma link C++ class EvtDalitzReso+; +#pragma link C++ class EvtDecayAmp+; +#pragma link C++ class EvtDecayBase+; +#pragma link C++ class EvtDecayIncoherent+; +#pragma link C++ class EvtDecayMode+; +#pragma link C++ class EvtDecayParm+; +#pragma link C++ class EvtDecayProb+; +#pragma link C++ class EvtDecayTable+; +#pragma link C++ class EvtDiLog+; +#pragma link C++ class EvtDiracParticle+; +#pragma link C++ class EvtDiracSpinor+; +#pragma link C++ class EvtEvalHelAmp+; +#pragma link C++ class EvtFlatLineShape+; +#pragma link C++ class EvtFlatte+; +#pragma link C++ class EvtGammaMatrix+; +#pragma link C++ class EvtGenKine+; +#pragma link C++ class EvtHighSpinParticle+; +#pragma link C++ class EvtId+; +#pragma link C++ class EvtIdSet+; +#pragma link C++ class EvtIntegPdf1D+; +#pragma link C++ class EvtIntervalFlatPdf+; +//#pragma link C++ class EvtKine+; +#pragma link C++ class EvtLASSAmp+; +#pragma link C++ class EvtMBreitWigner+; +#pragma link C++ class EvtMHelAmp+; +#pragma link C++ class EvtMNode+; +#pragma link C++ class EvtMParticle+; +#pragma link C++ class EvtMRes+; +#pragma link C++ class EvtMTree+; +#pragma link C++ class EvtMTrivialLS+; +#pragma link C++ class EvtManyDeltaFuncLineShape+; +#pragma link C++ class EvtMassAmp+; +#pragma link C++ class EvtModel+; +#pragma link C++ class EvtModelAlias+; +#pragma link C++ class EvtMultiChannelParser+; +#pragma link C++ class EvtNeutrinoParticle+; +#pragma link C++ class EvtNonresonantAmp+; +#pragma link C++ class EvtOrthogVector+; +#pragma link C++ class EvtPDL+; +#pragma link C++ class EvtParser+; +#pragma link C++ class EvtPartProp+; +#pragma link C++ class EvtParticle+; +#pragma link C++ class EvtParticleDecay+; +#pragma link C++ class EvtParticleDecayList+; +#pragma link C++ class EvtParticleFactory+; +#pragma link C++ class EvtPhotonParticle+; +#pragma link C++ class EvtPoint1D+; +#pragma link C++ class EvtPropBreitWigner+; +#pragma link C++ class EvtPropBreitWignerRel+; +#pragma link C++ class EvtPropFlatte+; +#pragma link C++ class EvtPropGounarisSakurai+; +#pragma link C++ class EvtPto3PAmp+; +#pragma link C++ class EvtPto3PAmpFactory+; +#pragma link C++ class EvtPto3PAmpSmpResolution+; +#pragma link C++ class EvtRadCorr+; +//#pragma link C++ class EvtRanFor+; +#pragma link C++ class EvtRandom+; +//#pragma link C++ class EvtRanf+; +#pragma link C++ class EvtRaritaSchwinger+; +#pragma link C++ class EvtRaritaSchwingerParticle+; +#pragma link C++ class EvtRelBreitWignerBarrierFact+; +//#pragma link C++ class EvtReport+; +#pragma link C++ class EvtResonance+; +#pragma link C++ class EvtResonance2+; +#pragma link C++ class EvtScalarParticle+; +#pragma link C++ class EvtSecondary+; +#pragma link C++ class EvtSemiLeptonicAmp+; +#pragma link C++ class EvtSemiLeptonicBaryonAmp+; +#pragma link C++ class EvtSemiLeptonicScalarAmp+; +#pragma link C++ class EvtSemiLeptonicTensorAmp+; +#pragma link C++ class EvtSemiLeptonicVectorAmp+; +#pragma link C++ class EvtSimpleRandomEngine+; +#pragma link C++ class EvtSpinAmp+; +#pragma link C++ class EvtSpinDensity+; +#pragma link C++ class EvtSpinType+; +#pragma link C++ class EvtStdHep+; +#pragma link C++ class EvtStringParticle+; +#pragma link C++ class EvtSymTable+; +#pragma link C++ class EvtTensor3C+; +#pragma link C++ class EvtTensor4C+; +#pragma link C++ class EvtTensorParticle+; +#pragma link C++ class EvtTwoBodyKine+; +#pragma link C++ class EvtTwoBodyVertex+; +#pragma link C++ class EvtValError+; +#pragma link C++ class EvtVector3C+; +#pragma link C++ class EvtVector3R+; +#pragma link C++ class EvtVector4C+; +#pragma link C++ class EvtVector4R+; +#pragma link C++ class EvtVectorParticle+; +#pragma link C++ class EvtdFunction+; +#pragma link C++ class EvtdFunctionSingle+; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtGenKine.cxx b/TEvtGen/EvtGenBase/EvtGenKine.cxx new file mode 100644 index 00000000000..26fb98542b3 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtGenKine.cxx @@ -0,0 +1,348 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGenKine.cc +// +// Description: Tools for generating distributions of four vectors in +// phasespace +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtConst.hh" +#include +using std::endl; + + +double EvtPawt(double a,double b,double c) +{ + double temp=(a*a-(b+c)*(b+c))*(a*a-(b-c)*(b-c)); + + if (temp<=0) { + return 0.0; + } + + return sqrt(temp)/(2.0*a); +} + + +double EvtGenKine::PhaseSpace( int ndaug, double mass[30], EvtVector4R p4[30], + double mp ) + +// N body phase space routine. Send parent with +// daughters already defined ( Number and masses ) +// Returns four vectors in parent frame. + +{ + + double energy, p3, alpha, beta; + + if ( ndaug == 1 ) { + p4[0].set(mass[0],0.0,0.0,0.0); + return 1.0; + } + + + if ( ndaug == 2 ) { + + //Two body phase space + + energy = ( mp*mp + mass[0]*mass[0] - + mass[1]*mass[1] ) / ( 2.0 * mp ); + + p3 = sqrt( energy*energy - mass[0]*mass[0] ); + + p4[0].set( energy, 0.0, 0.0, p3 ); + + energy = mp - energy; + p3 = -1.0*p3; + p4[1].set( energy, 0.0, 0.0, p3 ); + + //Now rotate four vectors. + + alpha = EvtRandom::Flat( EvtConst::twoPi ); + beta = acos(EvtRandom::Flat( -1.0, 1.0 )); + + p4[0].applyRotateEuler( alpha, beta, -alpha ); + p4[1].applyRotateEuler( alpha, beta, -alpha ); + + return 1.0; + } + + if ( ndaug != 2 ) { + + double wtmax=0.0; + double pm[5][30],to[4],pmin,pmax,psum,rnd[30]; + double ran,wt,pa,costh,sinth,phi,p[4][30],be[4],bep,temp; + int i,il,ilr,i1,il1u,il1,il2r,ilu; + int il2=0; + + for(i=0;iwtmax) { + report(ERROR,"EvtGen") << "wtmax to small in EvtPhaseSpace with " + << ndaug <<" daughters"<EvtRandom::Flat()){ + m12sq=EvtRandom::Flat(m12sqmin,m12sqmax); + } + else{ + m12sq=1.0/(1.0/m12sqmin-EvtRandom::Flat()*(1.0/m12sqmin-1.0/m12sqmax)); + } + + //kinematically allowed? + double E3star=(M*M-m12sq-m3*m3)/sqrt(4*m12sq); + double E1star=(m12sq+m1*m1-m2*m2)/sqrt(4*m12sq); + double p3star=sqrt(E3star*E3star-m3*m3); + double p1star=sqrt(E1star*E1star-m1*m1); + m13max=(E3star+E1star)*(E3star+E1star)- + (p3star-p1star)*(p3star-p1star); + m13min=(E3star+E1star)*(E3star+E1star)- + (p3star+p1star)*(p3star+p1star); + + }while(m13sqm13max); + + + double E2=(M*M+m2*m2-m13sq)/(2.0*M); + double E3=(M*M+m3*m3-m12sq)/(2.0*M); + double E1=M-E2-E3; + double p1mom=sqrt(E1*E1-m1*m1); + double p3mom=sqrt(E3*E3-m3*m3); + double cost13=(2.0*E1*E3+m1*m1+m3*m3-m13sq)/(2.0*p1mom*p3mom); + + //report(INFO,"EvtGen") << m13sq << endl; + //report(INFO,"EvtGen") << m12sq << endl; + //report(INFO,"EvtGen") << E1 << endl; + //report(INFO,"EvtGen") << E2 << endl; + //report(INFO,"EvtGen") << E3 << endl; + //report(INFO,"EvtGen") << p1mom << endl; + //report(INFO,"EvtGen") << p3mom << endl; + //report(INFO,"EvtGen") << cost13 << endl; + + + p4[2].set(E3,0.0,0.0,p3mom); + p4[0].set(E1,p1mom*sqrt(1.0-cost13*cost13),0.0,p1mom*cost13); + p4[1].set(E2,-p1mom*sqrt(1.0-cost13*cost13),0.0,-p1mom*cost13-p3mom); + + //report(INFO,"EvtGen") << "p4:"<2. +// +// Modification history: +// +// RYD August 8, 2000 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtHighSpinParticle.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtSpinDensity.hh" +#include "EvtGenBase/EvtdFunction.hh" + + +EvtHighSpinParticle::~EvtHighSpinParticle() {} + + +void EvtHighSpinParticle::init(EvtId id,const EvtVector4R& p4){ + + _validP4=true; + setp(p4); + setpart_num(id); + + setLifetime(); + +} + +EvtSpinDensity EvtHighSpinParticle::rotateToHelicityBasis() const{ + + int n=EvtSpinType::getSpinStates(EvtPDL::getSpinType(getId())); + + EvtSpinDensity R; + R.setDiag(n); + + return R; + +} + + + +EvtSpinDensity EvtHighSpinParticle::rotateToHelicityBasis(double alpha, + double beta, + double gamma) const{ + + int i,j; + + int n=EvtSpinType::getSpinStates(EvtPDL::getSpinType(getId())); + + EvtSpinDensity R; + + R.setDim(n); + + int J2=EvtSpinType::getSpin2(EvtPDL::getSpinType(getId())); + + assert(n==J2+1); + + int *lambda2; + + lambda2=new int[J2+1]; + + for(i=0;i2. +// +// Modification history: +// +// RYD August 8, 2000 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTHIGHSPINPARTICLE_HH +#define EVTHIGHSPINPARTICLE_HH + +#include "EvtGenBase/EvtParticle.hh" + +class EvtId; + +class EvtHighSpinParticle: public EvtParticle { + +public: + + EvtHighSpinParticle() {} + virtual ~EvtHighSpinParticle(); + + void init(EvtId id,const EvtVector4R& p); + + EvtSpinDensity rotateToHelicityBasis() const; + EvtSpinDensity rotateToHelicityBasis(double alpha, + double beta, + double gamma) const; + + +private: + + EvtHighSpinParticle(const EvtHighSpinParticle& highSpin); + EvtHighSpinParticle& operator=(const EvtHighSpinParticle& highSpin); + +}; + +#endif + + + + + diff --git a/TEvtGen/EvtGenBase/EvtId.cxx b/TEvtGen/EvtGenBase/EvtId.cxx new file mode 100644 index 00000000000..116106a1dda --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtId.cxx @@ -0,0 +1,41 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtId.cc +// +// Description: Class for particle Id used in EvtGen. +// +// Modification history: +// +// RYD May 26, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtPDL.hh" +#include +using std::ostream; + + +ostream& operator<<(ostream& s, const EvtId& id){ + + s<<"(Id="< +//class ostream; + +class EvtId { + +public: + + //need a default constructor + EvtId():_id(-1),_alias(-1){} + + EvtId(int id,int alias):_id(id),_alias(alias){} + + friend std::ostream& operator<<(std::ostream& s, const EvtId& v); + + int operator==(const EvtId& id) const { return _id==id._id; } + int operator!=(const EvtId& id) const { return _id!=id._id; } + int isConjugate(const EvtId & id) const; + + int getId() const { return _id;} + + int getAlias() const { return _alias;} + + int isAlias() const { return _id!=_alias;} + +private: + + //particle number 0..n. The order of particles are determined + //by the order in pdt.table + int _id; + //if the particle is an alias to another particle alias!=id + //The only place where the alias should be used is for looking + //up decays in the decay table. + int _alias; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtIdSet.cxx b/TEvtGen/EvtGenBase/EvtIdSet.cxx new file mode 100644 index 00000000000..201c4789c58 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtIdSet.cxx @@ -0,0 +1,581 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtId.cc +// +// Description: Class for particle Id used in EvtGen. +// +// Modification history: +// +// DJL Jan 4, 2000 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtIdSet.hh" +#include "EvtGenBase/EvtPDL.hh" +#include +#include + +EvtIdSet::EvtIdSet(const EvtId name1) { + _numInList=1; + _list=new EvtId[_numInList]; + + _list[0]=name1; +} + +EvtIdSet::EvtIdSet(const std::string name1){ + _numInList=1; + _list=new EvtId[_numInList]; + + _list[0]=EvtPDL::getId(name1); +} + + +EvtIdSet::EvtIdSet(const EvtId name1, + const EvtId name2){ + _numInList=2; + _list=new EvtId[_numInList]; + + _list[0]=name1; + _list[1]=name2; +} + + +EvtIdSet::EvtIdSet(const std::string name1, + const std::string name2){ + _numInList=2; + _list=new EvtId[_numInList]; + + _list[0]=EvtPDL::getId(name1); + _list[1]=EvtPDL::getId(name2); +} + + +EvtIdSet::EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3){ + _numInList=3; + _list=new EvtId[_numInList]; + + _list[0]=name1; + _list[1]=name2; + _list[2]=name3; + +} + + +EvtIdSet::EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3){ + _numInList=3; + _list=new EvtId[_numInList]; + + _list[0]=EvtPDL::getId(name1); + _list[1]=EvtPDL::getId(name2); + _list[2]=EvtPDL::getId(name3); +} + + +EvtIdSet::EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4){ + _numInList=4; + _list=new EvtId[_numInList]; + + _list[0]=name1; + _list[1]=name2; + _list[2]=name3; + _list[3]=name4; +} + + +EvtIdSet::EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4){ + _numInList=4; + _list=new EvtId[_numInList]; + + _list[0]=EvtPDL::getId(name1); + _list[1]=EvtPDL::getId(name2); + _list[2]=EvtPDL::getId(name3); + _list[3]=EvtPDL::getId(name4); +} + + +EvtIdSet::EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5){ + _numInList=5; + _list=new EvtId[_numInList]; + + _list[0]=name1; + _list[1]=name2; + _list[2]=name3; + _list[3]=name4; + _list[4]=name5; +} + + +EvtIdSet::EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5){ + _numInList=5; + _list=new EvtId[_numInList]; + + _list[0]=EvtPDL::getId(name1); + _list[1]=EvtPDL::getId(name2); + _list[2]=EvtPDL::getId(name3); + _list[3]=EvtPDL::getId(name4); + _list[4]=EvtPDL::getId(name5); +} + + +EvtIdSet::EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5, + const EvtId name6){ + _numInList=6; + _list=new EvtId[_numInList]; + + _list[0]=name1; + _list[1]=name2; + _list[2]=name3; + _list[3]=name4; + _list[4]=name5; + _list[5]=name6; +} + + +EvtIdSet::EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5, + const std::string name6){ + _numInList=6; + _list=new EvtId[_numInList]; + + _list[0]=EvtPDL::getId(name1); + _list[1]=EvtPDL::getId(name2); + _list[2]=EvtPDL::getId(name3); + _list[3]=EvtPDL::getId(name4); + _list[4]=EvtPDL::getId(name5); + _list[5]=EvtPDL::getId(name6); +} + + +EvtIdSet::EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5, + const EvtId name6, + const EvtId name7){ + _numInList=7; + _list=new EvtId[_numInList]; + + _list[0]=name1; + _list[1]=name2; + _list[2]=name3; + _list[3]=name4; + _list[4]=name5; + _list[5]=name6; + _list[6]=name7; +} + + +EvtIdSet::EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5, + const std::string name6, + const std::string name7){ + _numInList=7; + _list=new EvtId[_numInList]; + + _list[0]=EvtPDL::getId(name1); + _list[1]=EvtPDL::getId(name2); + _list[2]=EvtPDL::getId(name3); + _list[3]=EvtPDL::getId(name4); + _list[4]=EvtPDL::getId(name5); + _list[5]=EvtPDL::getId(name6); + _list[6]=EvtPDL::getId(name7); +} + + +EvtIdSet::EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5, + const EvtId name6, + const EvtId name7, + const EvtId name8){ + _numInList=8; + _list=new EvtId[_numInList]; + + _list[0]=name1; + _list[1]=name2; + _list[2]=name3; + _list[3]=name4; + _list[4]=name5; + _list[5]=name6; + _list[6]=name7; + _list[7]=name8; +} + + +EvtIdSet::EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5, + const std::string name6, + const std::string name7, + const std::string name8){ + _numInList=8; + _list=new EvtId[_numInList]; + + _list[0]=EvtPDL::getId(name1); + _list[1]=EvtPDL::getId(name2); + _list[2]=EvtPDL::getId(name3); + _list[3]=EvtPDL::getId(name4); + _list[4]=EvtPDL::getId(name5); + _list[5]=EvtPDL::getId(name6); + _list[6]=EvtPDL::getId(name7); + _list[7]=EvtPDL::getId(name8); +} + + +EvtIdSet::EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5, + const EvtId name6, + const EvtId name7, + const EvtId name8, + const EvtId name9){ + _numInList=9; + _list=new EvtId[_numInList]; + + _list[0]=name1; + _list[1]=name2; + _list[2]=name3; + _list[3]=name4; + _list[4]=name5; + _list[5]=name6; + _list[6]=name7; + _list[7]=name8; + _list[8]=name9; +} + + +EvtIdSet::EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5, + const std::string name6, + const std::string name7, + const std::string name8, + const std::string name9){ + _numInList=9; + _list=new EvtId[_numInList]; + + _list[0]=EvtPDL::getId(name1); + _list[1]=EvtPDL::getId(name2); + _list[2]=EvtPDL::getId(name3); + _list[3]=EvtPDL::getId(name4); + _list[4]=EvtPDL::getId(name5); + _list[5]=EvtPDL::getId(name6); + _list[6]=EvtPDL::getId(name7); + _list[7]=EvtPDL::getId(name8); + _list[8]=EvtPDL::getId(name9); +} + + +EvtIdSet::EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5, + const EvtId name6, + const EvtId name7, + const EvtId name8, + const EvtId name9, + const EvtId name10){ + _numInList=10; + _list=new EvtId[_numInList]; + + _list[0]=name1; + _list[1]=name2; + _list[2]=name3; + _list[3]=name4; + _list[4]=name5; + _list[5]=name6; + _list[6]=name7; + _list[7]=name8; + _list[8]=name9; + _list[9]=name10; +} + + +EvtIdSet::EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5, + const std::string name6, + const std::string name7, + const std::string name8, + const std::string name9, + const std::string name10){ + _numInList=10; + _list=new EvtId[_numInList]; + + _list[0]=EvtPDL::getId(name1); + _list[1]=EvtPDL::getId(name2); + _list[2]=EvtPDL::getId(name3); + _list[3]=EvtPDL::getId(name4); + _list[4]=EvtPDL::getId(name5); + _list[5]=EvtPDL::getId(name6); + _list[6]=EvtPDL::getId(name7); + _list[7]=EvtPDL::getId(name8); + _list[8]=EvtPDL::getId(name9); + _list[9]=EvtPDL::getId(name10); +} + + +EvtIdSet::EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5, + const EvtId name6, + const EvtId name7, + const EvtId name8, + const EvtId name9, + const EvtId name10, + const EvtId name11){ + _numInList=11; + _list=new EvtId[_numInList]; + + _list[0]=name1; + _list[1]=name2; + _list[2]=name3; + _list[3]=name4; + _list[4]=name5; + _list[5]=name6; + _list[6]=name7; + _list[7]=name8; + _list[8]=name9; + _list[9]=name10; + _list[10]=name11; +} + + +EvtIdSet::EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5, + const std::string name6, + const std::string name7, + const std::string name8, + const std::string name9, + const std::string name10, + const std::string name11){ + _numInList=11; + _list=new EvtId[_numInList]; + + _list[0]=EvtPDL::getId(name1); + _list[1]=EvtPDL::getId(name2); + _list[2]=EvtPDL::getId(name3); + _list[3]=EvtPDL::getId(name4); + _list[4]=EvtPDL::getId(name5); + _list[5]=EvtPDL::getId(name6); + _list[6]=EvtPDL::getId(name7); + _list[7]=EvtPDL::getId(name8); + _list[8]=EvtPDL::getId(name9); + _list[9]=EvtPDL::getId(name10); + _list[10]=EvtPDL::getId(name11); +} + + +EvtIdSet::EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5, + const EvtId name6, + const EvtId name7, + const EvtId name8, + const EvtId name9, + const EvtId name10, + const EvtId name11, + const EvtId name12){ + _numInList=12; + _list=new EvtId[_numInList]; + + _list[0]=name1; + _list[1]=name2; + _list[2]=name3; + _list[3]=name4; + _list[4]=name5; + _list[5]=name6; + _list[6]=name7; + _list[7]=name8; + _list[8]=name9; + _list[9]=name10; + _list[10]=name11; + _list[11]=name12; +} + + +EvtIdSet::EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5, + const std::string name6, + const std::string name7, + const std::string name8, + const std::string name9, + const std::string name10, + const std::string name11, + const std::string name12){ + _numInList=12; + _list=new EvtId[_numInList]; + + _list[0]=EvtPDL::getId(name1); + _list[1]=EvtPDL::getId(name2); + _list[2]=EvtPDL::getId(name3); + _list[3]=EvtPDL::getId(name4); + _list[4]=EvtPDL::getId(name5); + _list[5]=EvtPDL::getId(name6); + _list[6]=EvtPDL::getId(name7); + _list[7]=EvtPDL::getId(name8); + _list[8]=EvtPDL::getId(name9); + _list[9]=EvtPDL::getId(name10); + _list[10]=EvtPDL::getId(name11); + _list[11]=EvtPDL::getId(name12); +} + + +EvtIdSet::EvtIdSet(const EvtIdSet& set1){ + + _numInList=set1.sizeOfSet(); + _list=new EvtId[_numInList]; + int i; + for (i=0;i<_numInList;i++){ + _list[i]=set1.getElem(i); + } + +} +EvtIdSet::EvtIdSet(const EvtIdSet& set1, const EvtIdSet& set2){ + + _numInList=set1.sizeOfSet(); + _list=new EvtId[_numInList]; + int i; + for (i=0;i<_numInList;i++){ + _list[i]=set1.getElem(i); + } + //then just append the second list. + this->append(set2); + +} + +int EvtIdSet::contains(const EvtId id){ + + int i; + for (i=0;i<_numInList;i++){ + if ( _list[i] == id ) return 1; + } + + return 0; +} + +int EvtIdSet::contains(const std::string nm){ + + int i; + for (i=0;i<_numInList;i++){ + if ( _list[i] == EvtPDL::getId(nm) ) return 1; + } + + return 0; +} + + +void EvtIdSet::append(const EvtIdSet set1){ + + int combLen=_numInList+set1.sizeOfSet(); + int uniqueLen=0; + EvtId *combSet; + + combSet=new EvtId[combLen]; + + int i; + for (i=0;i=_numInList ) { + + //check that there are no overlaps between lists + int j; + int isUnique=1; + for (j=0;j<_numInList;j++){ + if ( _list[j]==set1.getElem(i-_numInList) ) { + isUnique=0; + } + } + if ( isUnique==1 ) { + combSet[uniqueLen]=set1.getElem(i-_numInList); + uniqueLen+=1; + } + } + else{ + combSet[uniqueLen]=_list[i]; + uniqueLen+=1; + } + + delete _list; + _list=new EvtId[uniqueLen]; + + _numInList=uniqueLen; + for (i=0;i<_numInList;i++){ + _list[i]=combSet[i]; + } + + delete combSet; + + } +} + +int EvtIdSet::sizeOfSet() const { return _numInList;} + +EvtId EvtIdSet::getElem(const int i) const { return _list[i];} + + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtIdSet.hh b/TEvtGen/EvtGenBase/EvtIdSet.hh new file mode 100644 index 00000000000..78d591eae47 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtIdSet.hh @@ -0,0 +1,234 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtId.hh +// +// Description:Class for particle Id used in EvtGen. +// +// Modification history: +// +// DJL/RYD Jan 5,2000 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTIDSET_HH +#define EVTIDSET_HH + +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtId.hh" +#include +class EvtId; + +class EvtIdSet { + +public: + + //need a default constructor + + EvtIdSet(const EvtId name1); + EvtIdSet(const std::string name1); + + EvtIdSet(const EvtId name1, + const EvtId name2); + + EvtIdSet(const std::string name1, + const std::string name2); + + EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3); + + EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3); + + EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4); + + EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4); + + EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5); + + EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5); + + EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5, + const EvtId name6); + + EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5, + const std::string name6); + + EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5, + const EvtId name6, + const EvtId name7); + + EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5, + const std::string name6, + const std::string name7); + + EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5, + const EvtId name6, + const EvtId name7, + const EvtId name8); + + EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5, + const std::string name6, + const std::string name7, + const std::string name8); + + EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5, + const EvtId name6, + const EvtId name7, + const EvtId name8, + const EvtId name9); + + EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5, + const std::string name6, + const std::string name7, + const std::string name8, + const std::string name9); + + EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5, + const EvtId name6, + const EvtId name7, + const EvtId name8, + const EvtId name9, + const EvtId name10); + + EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5, + const std::string name6, + const std::string name7, + const std::string name8, + const std::string name9, + const std::string name10); + + EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5, + const EvtId name6, + const EvtId name7, + const EvtId name8, + const EvtId name9, + const EvtId name10, + const EvtId name11); + + EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5, + const std::string name6, + const std::string name7, + const std::string name8, + const std::string name9, + const std::string name10, + const std::string name11); + + EvtIdSet(const EvtId name1, + const EvtId name2, + const EvtId name3, + const EvtId name4, + const EvtId name5, + const EvtId name6, + const EvtId name7, + const EvtId name8, + const EvtId name9, + const EvtId name10, + const EvtId name11, + const EvtId name12); + + EvtIdSet(const std::string name1, + const std::string name2, + const std::string name3, + const std::string name4, + const std::string name5, + const std::string name6, + const std::string name7, + const std::string name8, + const std::string name9, + const std::string name10, + const std::string name11, + const std::string name12); + + ~EvtIdSet() { delete [] _list; } + + EvtIdSet(const EvtIdSet& set1); + EvtIdSet(const EvtIdSet& set1, const EvtIdSet& set2); + + int contains(const EvtId id); + int contains(const std::string id); + + void append(const EvtIdSet set1); + int sizeOfSet() const; + EvtId getElem(const int i) const; + +private: + + int _numInList; + EvtId *_list; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtIntegPdf1D.cxx b/TEvtGen/EvtGenBase/EvtIntegPdf1D.cxx new file mode 100644 index 00000000000..0652697e568 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtIntegPdf1D.cxx @@ -0,0 +1,46 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtIntegPdf1D.cc,v 1.10 2004/12/21 19:58:44 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#include +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtMacros.hh" +#include "EvtGenBase/EvtIntegPdf1D.hh" + +EvtIntegPdf1D::EvtIntegPdf1D(double min, double max) + : EvtPdf(), _min(min), _max(max) +{ + assert(min <= max); +} + +EvtIntegPdf1D::EvtIntegPdf1D(const EvtIntegPdf1D& other) + : EvtPdf(other), _min(other._min), _max(other._max) +{} + +EvtIntegPdf1D::~EvtIntegPdf1D() +{} + +EvtValError EvtIntegPdf1D::compute_integral() const +{ + double x1 = pdfIntegral(_min); + double x2 = pdfIntegral(_max); + return EvtValError(x2-x1,0.); +} + + +EvtPoint1D EvtIntegPdf1D::randomPoint() +{ + double itgmin = pdfIntegral(_min); + double itgmax = pdfIntegral(_max); + double itgrnd = EvtRandom::Flat(itgmin,itgmax); + + return EvtPoint1D(_min,_max,pdfIntegralInverse(itgrnd)); +} + + diff --git a/TEvtGen/EvtGenBase/EvtIntegPdf1D.hh b/TEvtGen/EvtGenBase/EvtIntegPdf1D.hh new file mode 100644 index 00000000000..c2056ee1009 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtIntegPdf1D.hh @@ -0,0 +1,43 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtIntegPdf1D.hh,v 1.8 2003/06/20 17:20:06 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Analytically integrable one dimensional PDF. + +#ifndef EVT_INTEG_PDF_1D_HH +#define EVT_INTEG_PDF_1D_HH + +#include "EvtGenBase/EvtPdf.hh" +#include "EvtGenBase/EvtPoint1D.hh" + +class EvtIntegPdf1D : public EvtPdf { + +public: + + EvtIntegPdf1D(double min, double max); + EvtIntegPdf1D(const EvtIntegPdf1D&); + virtual ~EvtIntegPdf1D(); + + // Pdf integral function and its inverse to be defined in subclasses + + virtual double pdfIntegral(double x) const = 0; + virtual double pdfIntegralInverse(double x) const = 0; + + virtual EvtValError compute_integral() const; + virtual EvtPoint1D randomPoint(); + +protected: + + double _min; + double _max; +}; + + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtIntervalFlatPdf.cxx b/TEvtGen/EvtGenBase/EvtIntervalFlatPdf.cxx new file mode 100644 index 00000000000..a279fdda59c --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtIntervalFlatPdf.cxx @@ -0,0 +1,47 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtIntervalFlatPdf.cc,v 1.4 2004/12/21 19:58:44 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtIntervalFlatPdf.hh" +#include "EvtGenBase/EvtRandom.hh" + +EvtIntervalFlatPdf::EvtIntervalFlatPdf(double min, double max) + : EvtPdf(), _min(min), _max(max) +{ + assert(max >= min); +} + +EvtIntervalFlatPdf::EvtIntervalFlatPdf(const EvtIntervalFlatPdf& other) + : EvtPdf(other), _min(other._min), _max(other._max) +{} + +EvtIntervalFlatPdf::~EvtIntervalFlatPdf() +{} + +EvtPdf* EvtIntervalFlatPdf::clone() const +{ + return new EvtIntervalFlatPdf(*this); +} + +double EvtIntervalFlatPdf::pdf(const EvtPoint1D&) const +{ + return 1.; +} + +EvtValError EvtIntervalFlatPdf::compute_integral() const +{ + return EvtValError(_max-_min,0.); +} + +EvtPoint1D EvtIntervalFlatPdf::randomPoint() +{ + return EvtPoint1D(_min,_max,EvtRandom::Flat(_min,_max)); +} diff --git a/TEvtGen/EvtGenBase/EvtIntervalFlatPdf.hh b/TEvtGen/EvtGenBase/EvtIntervalFlatPdf.hh new file mode 100644 index 00000000000..caaaba40b4a --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtIntervalFlatPdf.hh @@ -0,0 +1,40 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtIntervalFlatPdf.hh,v 1.1 2003/06/20 17:20:09 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +/* + * Uniform PDF defined on a 1D interval. + */ + +#ifndef EVT_INTERVAL_FLAT_PDF_HH +#define EVT_INTERVAL_FLAT_PDF_HH + +#include +#include "EvtGenBase/EvtPdf.hh" +#include "EvtGenBase/EvtPoint1D.hh" + +class EvtIntervalFlatPdf : public EvtPdf { +public: + + EvtIntervalFlatPdf(double min, double max); + EvtIntervalFlatPdf(const EvtIntervalFlatPdf& other); + virtual ~EvtIntervalFlatPdf(); + virtual EvtPdf* clone() const; + + virtual EvtValError compute_integral() const; + virtual EvtPoint1D randomPoint(); + +protected: + + virtual double pdf(const EvtPoint1D&) const; + + double _min; + double _max; +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtKine.cxx b/TEvtGen/EvtGenBase/EvtKine.cxx new file mode 100644 index 00000000000..a9303cbbdb2 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtKine.cxx @@ -0,0 +1,141 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtKine.cc +// +// Description: routines to calculate decay angles. +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtKine.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtdFunction.hh" +#include "EvtGenBase/EvtReport.hh" + + + +double EvtDecayAngle(const EvtVector4R& p,const EvtVector4R& q, + const EvtVector4R& d) { + + double pd=p*d; + double pq=p*q; + double qd=q*d; + double mp2=p.mass2(); + double mq2=q.mass2(); + double md2=d.mass2(); + + double cost=(pd*mq2-pq*qd)/sqrt((pq*pq-mq2*mp2)*(qd*qd-mq2*md2)); + + return cost; + +} + +double EvtDecayAngleChi(const EvtVector4R& p4_p,const EvtVector4R& p4_d1, + const EvtVector4R& p4_d2,const EvtVector4R& p4_h1, + const EvtVector4R& p4_h2 ) { + + EvtVector4R p4_d1p,p4_h1p,p4_h2p,p4_d2p; + + + // boost all vectors parent restframe + + p4_d1p=boostTo(p4_d1,p4_p); + p4_d2p=boostTo(p4_d2,p4_p); + p4_h1p=boostTo(p4_h1,p4_p); + p4_h2p=boostTo(p4_h2,p4_p); + + + EvtVector4R d1_perp,d1_prime,h1_perp; + EvtVector4R D; + + D=p4_d1p+p4_d2p; + + d1_perp=p4_d1p-(D.dot(p4_d1p)/D.dot(D))*D; + h1_perp=p4_h1p-(D.dot(p4_h1p)/D.dot(D))*D; + + // orthogonal to both D and d1_perp + + d1_prime=D.cross(d1_perp); + + d1_perp= d1_perp/d1_perp.d3mag(); + d1_prime= d1_prime/d1_prime.d3mag(); + + double x,y; + + x=d1_perp.dot(h1_perp); + y=d1_prime.dot(h1_perp); + + double chi=atan2(y,x); + + if (chi<0.0) chi+=EvtConst::twoPi; + + return chi; + +} + + + +double EvtDecayPlaneNormalAngle(const EvtVector4R& p,const EvtVector4R& q, + const EvtVector4R& d1,const EvtVector4R& d2){ + + EvtVector4C lc=dual(directProd(d1,d2)).cont2(q); + + EvtVector4R l(real(lc.get(0)),real(lc.get(1)), + real(lc.get(2)),real(lc.get(3))); + + double pq=p*q; + + return q.mass()*(p*l)/sqrt(-(pq*pq-p.mass2()*q.mass2())*l.mass2()); + + +} + + +// Calculate phi using the given 4 vectors (all in the same frame) +double EvtDecayAnglePhi( const EvtVector4R& z, const EvtVector4R& p, const + EvtVector4R& q, const EvtVector4R& d ) +{ + double eq = (p * q) / p.mass(); + double ed = (p * d) / p.mass(); + double mq = q.mass(); + double q2 = p.mag2r3(q); + double qd = p.dotr3(q,d); + double zq = p.dotr3(z,q); + double zd = p.dotr3(z,d); + double alpha = (eq - mq)/(q2 * mq) * qd - ed/mq; + + double y = p.scalartripler3(z,q,d) + alpha * p.scalartripler3(z,q,q); + double x = (zq * (qd + alpha * q2) - q2 * (zd + alpha * zq)) / sqrt(q2); + + double phi = atan2(y,x); + + return phi<0 ? (phi+EvtConst::twoPi) : phi; +} + +EvtComplex wignerD( int j, int m1, int m2, double phi, + double theta, double gamma ) +{ + + EvtComplex gp(0.0, -phi*m1); + EvtComplex gm(0.0, -gamma*m2); + + return exp( gp ) * EvtdFunction::d(j, m1, m2, theta) * exp( gm ); +} + + diff --git a/TEvtGen/EvtGenBase/EvtKine.hh b/TEvtGen/EvtGenBase/EvtKine.hh new file mode 100644 index 00000000000..c283df00a90 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtKine.hh @@ -0,0 +1,76 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtKine.hh +// +// Description:routines to calc. decay angles. +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTKINE_HH +#define EVTKINE_HH + +class EvtVector4R; +class EvtComplex; + +double EvtDecayAngle(const EvtVector4R&, const EvtVector4R&, + const EvtVector4R&); + +double EvtDecayAngleChi(const EvtVector4R&, const EvtVector4R&, + const EvtVector4R&, const EvtVector4R&, + const EvtVector4R& ); + +// +// This routine calculates the cosine of the angle between +// the normal of the decay plane and the flight direction of particle q +// in the parent frame. +// +double EvtDecayPlaneNormalAngle(const EvtVector4R& p,const EvtVector4R& q, + const EvtVector4R& d1,const EvtVector4R& d2); + + + +// Added by AJB +// +// Calculate phi (between 0 and 2 pi) of the daughter given the 4-momentum of +// the grandparent, parent, resonance and the daughter. g, p, q and d need to +// be in the same rest frame. Note that for the first level of the tree there +// is no grandparent and thus <0,0,0,1> should be passed in for g. When there +// is no parent the angles need to be calculated by simply by calculating polar +// and azymuthal angles in the rest frame of the resonance (since this will +// generally be the root particle and is generally at rest the polar and +// azymuthal angels can simply be calculated. +// +double EvtDecayAnglePhi( const EvtVector4R& g, const EvtVector4R& p, + const EvtVector4R& q, const EvtVector4R& d ); + +// Wigner big-D function in Jackson convention +// +// XXX NOTE XXX +// - EvtDecayAngle returns the cos \theta and EvtdFunction requires theta +// - In EvtdFunction j m1 and m2 are really 2 * j, 2 * m1, 2*m2 to deal with +// spin 1/2 particles +// +EvtComplex wignerD( int j, int m1, int m2, double phi, double theta, + double gamma ); + + +#endif + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtLASSAmp.cxx b/TEvtGen/EvtGenBase/EvtLASSAmp.cxx new file mode 100644 index 00000000000..be253d07521 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtLASSAmp.cxx @@ -0,0 +1,112 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * Author: Denis Dujmic, ddujmic@slac.stanford.edu + * + * Copyright (C) 2005 SLAC + *******************************************************************************/ + +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtLASSAmp.hh" +#include "EvtGenBase/EvtDalitzCoord.hh" +#include "EvtGenBase/EvtdFunction.hh" +#include "EvtGenBase/EvtCyclic3.hh" +using std::endl; +using EvtCyclic3::Index; +using EvtCyclic3::Pair; + + +EvtLASSAmp::EvtLASSAmp(EvtDalitzPlot *dp, + EvtCyclic3::Pair pair, + double m0, double g0, + double a, double r, double cutoff) : + EvtAmplitude(), + _pair(pair), + _m0(m0), + _g0(g0), + _r(r), + _a(a), + _cutoff(cutoff) +{ + _dalitzSpace = dp; + double ma = dp->m( first(pair) ); + double mb = dp->m( second(pair) ); + double E0a = 0.5 * (_m0*_m0 + ma*ma - mb*mb) / _m0; + _q0 = E0a*E0a - ma*ma; + assert(_q0>0); + _q0 = sqrt(_q0); +} + + + +EvtLASSAmp::EvtLASSAmp(const EvtLASSAmp& other) : + EvtAmplitude(other), + _pair(other._pair), + _m0(other._m0), + _g0(other._g0), + _q0(other._q0), + _r(other._r), + _a(other._a), + _cutoff(other._cutoff) +{ + _dalitzSpace = other._dalitzSpace; +} + + +EvtLASSAmp::~EvtLASSAmp() {} + + + +EvtComplex +EvtLASSAmp::amplitude(const EvtDalitzPoint &dalitzPoint) const { + + /* + + Parameterization of Kpi S-wave using LASS scattering data. + - Nucl.Phys.B296, 493 (1988) + - W.Dunwoodie,http://www.slac.stanford.edu/~wmd/kpi_swave/kpi_swave_fit.note + + m m0^2*Gamma0/q0 + ----------------- + exp(2*i*delta) * -------------------------------- + q*cot(delta)-i*q m0^2-m^2 - i*m0*Gamma0*q/m*m0/q0 + + + where q = momentum of K or pi in Kpi system + + q*cot(delta) = 1/ a + 1/2 * [ r * q**2 ] + + a = scattering length + + r = effective range + + */ + + double s = dalitzPoint.q(_pair); + double m = sqrt(s); + double q = dalitzPoint.p(first(_pair), _pair); + + // elastic scattering + double qcotd = 1./_a + 0.5*_r*q*q; + EvtComplex lass_elastic = m<_cutoff ? m / ( qcotd - EvtComplex(0,q) ) : 0; + + // relative phase + double cosd=1; + double sind=0; + if (q>0) { + cosd = qcotd*qcotd/(q*q); + cosd = sqrt( cosd/(1+cosd) ); + sind = sqrt( 1-cosd*cosd ); + } + EvtComplex lass_phase( cosd, sind); + lass_phase *= lass_phase; + + // K*(1430) + double gamma = _g0 * q/m * _m0/_q0; + EvtComplex lass_Kstar = (_m0*_m0)*(_g0/_q0)/(_m0*_m0-m*m-EvtComplex(0.,_m0*gamma)); + + return lass_elastic + lass_phase * lass_Kstar; +} diff --git a/TEvtGen/EvtGenBase/EvtLASSAmp.hh b/TEvtGen/EvtGenBase/EvtLASSAmp.hh new file mode 100644 index 00000000000..5a19c9f9653 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtLASSAmp.hh @@ -0,0 +1,62 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * Author: Denis Dujmic, ddujmic@slac.stanford.edu + * + * Copyright (C) 2005 SLAC + *******************************************************************************/ + +#ifndef EVT_LASS_AMP_HH +#define EVT_LASS_AMP_HH + +#include "EvtGenBase/EvtCyclic3.hh" +#include "EvtGenBase/EvtDalitzPoint.hh" +#include "EvtGenBase/EvtDalitzPlot.hh" +#include "EvtGenBase/EvtAmplitude.hh" + +class EvtComplex; + + + +class EvtLASSAmp : public EvtAmplitude { + +public: + + EvtLASSAmp( EvtDalitzPlot *dp, + EvtCyclic3::Pair pair, + double m0, double g0, + double a, double r, double cutoff ); + + EvtLASSAmp(const EvtLASSAmp& other); + + ~EvtLASSAmp(); + + virtual EvtComplex amplitude(const EvtDalitzPoint& p) const; + + virtual EvtAmplitude* clone() const + { return new EvtLASSAmp(*this); } + +private: + + EvtDalitzPlot *_dalitzSpace; + + EvtCyclic3::Pair _pair; + + double _m0; + double _g0; + double _q0; + double _r; + double _a; + double _cutoff; + +}; + +#endif + + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtMBreitWigner.cxx b/TEvtGen/EvtGenBase/EvtMBreitWigner.cxx new file mode 100644 index 00000000000..03d168ec2a1 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMBreitWigner.cxx @@ -0,0 +1,35 @@ +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtMBreitWigner.hh" +#include "EvtGenBase/EvtReport.hh" +#include + +using std::endl; + +EvtMBreitWigner::EvtMBreitWigner( const EvtId& id, const vector& args ) +{ + if( args.size() != 0 ) { + report(ERROR, "EvtGen")<<"Unknown input arguments passed in to lineshape."<& product ) const +{ + static EvtComplex I(0.0, 1.0); + double mass = _node->get4vector(product).mass(); + + return sqrt(_width/( EvtConst::twoPi )) * 1/( mass - _resmass - I * _width/2 ); +} + + +EvtMLineShape * EvtMBreitWigner::duplicate() const +{ + vector args; + EvtMLineShape* tmp=new EvtMBreitWigner( _id, args ); + return tmp; +} + diff --git a/TEvtGen/EvtGenBase/EvtMBreitWigner.hh b/TEvtGen/EvtGenBase/EvtMBreitWigner.hh new file mode 100644 index 00000000000..be87b421f75 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMBreitWigner.hh @@ -0,0 +1,22 @@ +#ifndef __EVTMBREITWIGNER_HH__ +#define __EVTMBREITWIGNER_HH__ + +#include "EvtGenBase/EvtMRes.hh" + +class EvtMBreitWigner : public EvtMLineShape { + + public: + EvtMBreitWigner( const EvtId& id, const vector& args ); + ~EvtMBreitWigner( ) {}; + + EvtComplex shape( const vector& product ) const; + + EvtMLineShape * duplicate() const; + + private: + EvtId _id; + + double _width, _resmass; +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtMHelAmp.cxx b/TEvtGen/EvtGenBase/EvtMHelAmp.cxx new file mode 100644 index 00000000000..aa6e8a73600 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMHelAmp.cxx @@ -0,0 +1,128 @@ +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtMHelAmp.hh" +#include "EvtGenBase/EvtKine.hh" +#include "EvtGenBase/EvtReport.hh" +#include + +using std::endl; + +EvtMHelAmp::EvtMHelAmp( const EvtId& id, EvtMLineShape * lineshape, + const vector& children, const vector& elem ) +{ + _id = id; + _twospin = EvtSpinType::getSpin2( EvtPDL::getSpinType( id ) ); + _parent = NULL; + _lineshape = lineshape; + + _elem = elem; + + vector type; + for(size_t i=0; igetspintype() ); + const vector &res = children[i]->getresonance(); + for(size_t j=0; jsetparent( this ); + } + + // XXX New code - bugs could appear here XXX + _amp = EvtSpinAmp( type ); + vector index = _amp.iterinit(); + size_t i = 0; + do { + if( !_amp.allowed(index) ) + _amp( index ) = 0.0; + else if( abs(index[0] - index[1]) > _twospin ) + _amp( index ) = 0.0; + else { + _amp( index ) = elem[i]; + ++i; + } + } while( _amp.iterate( index ) ); + if(elem.size() != i) { + report(ERROR,"EvtGen") + <<"Wrong number of elements input in helicity amplitude."< 2 ) { + report(ERROR,"EvtGen") + <<"Helicity amplitude formalism can only handle two body resonances" + < & + product ) const +{ + EvtVector4R d = _children[0]->get4vector(product); + double phi, theta; + + if( _parent == NULL ) { + + // This means that we're calculating the first level and we need to just + // calculate the polar and azymuthal angles daughters in rest frame of + // this (root) particle (this is automatic). + phi = atan2( d.get(1), d.get(2) ); + theta = acos( d.get(3)/d.d3mag() ); + + } else { + + // We have parents therefore calculate things in correct coordinate + // system + EvtVector4R p = _parent->get4vector(product); + EvtVector4R q = get4vector(product); + + // See if we have a grandparent - if no then the z-axis is defined by + // the z-axis of the root particle + EvtVector4R g = _parent->getparent()==NULL ? + EvtVector4R(0.0, 0.0, 0.0, 1.0) : + _parent->getparent()->get4vector(product); + + theta = acos(EvtDecayAngle(p, q, d)); + phi = EvtDecayAnglePhi( g, p, q, d ); + + } + + vector types( 3 ); + types[0] = getspintype(); + types[1] = _children[0]->getspintype(); + types[2] = _children[1]->getspintype(); + EvtSpinAmp amp( types, EvtComplex(0.0, 0.0) ); + vector index = amp.iterallowedinit(); + + do { + if( abs(index[1]-index[2]) > _twospin ) continue; + amp(index) += + conj(wignerD(_twospin,index[0],index[1]-index[2],phi,theta,0.0)) * + _amp(index[1],index[2]); + } while(amp.iterateallowed(index)); + + EvtSpinAmp amp0 = _children[0]->amplitude(product); + EvtSpinAmp amp1 = _children[1]->amplitude(product); + + amp.extcont( amp0, 1, 0 ); + amp.extcont( amp1, 1, 0 ); + + amp *= sqrt( ( _twospin + 1 ) / ( 2 * EvtConst::twoPi ) ) * + _children[0]->line(product) * _children[1]->line(product); + + return amp; +} + +EvtMNode * EvtMHelAmp::duplicate() const +{ + vector children; + + for(size_t i=0; i<_children.size(); ++i ) { + children.push_back( _children[i]->duplicate() ); + } + + EvtMLineShape * lineshape = _lineshape->duplicate(); + EvtMHelAmp * ret = new EvtMHelAmp( _id, lineshape, children, _elem ); + lineshape->setres( ret ); + + return ret; +} diff --git a/TEvtGen/EvtGenBase/EvtMHelAmp.hh b/TEvtGen/EvtGenBase/EvtMHelAmp.hh new file mode 100644 index 00000000000..9376d9a18d8 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMHelAmp.hh @@ -0,0 +1,24 @@ +#ifndef __EVTMHELAMP_HH__ +#define __EVTMHELAMP_HH__ + +#include "EvtGenBase/EvtMRes.hh" + +class EvtMHelAmp : public EvtMRes { + + public: + + EvtMHelAmp( const EvtId& id, EvtMLineShape *, const + vector&, const vector& ); + virtual ~EvtMHelAmp() {}; + + EvtSpinAmp amplitude( const vector& product ) + const; + + EvtMNode * duplicate() const; + + private: + + vector _elem; +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtMNode.cxx b/TEvtGen/EvtGenBase/EvtMNode.cxx new file mode 100644 index 00000000000..ca42f0d1dee --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMNode.cxx @@ -0,0 +1,16 @@ +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtMNode.hh" + +EvtVector4R EvtMNode::get4vector( const vector &product ) + const +{ + + EvtVector4R res(0.0, 0.0, 0.0, 0.0); + vector::const_iterator iter; + + for( iter = _resonance.begin(); iter != _resonance.end(); ++iter ) + res += product[ *iter ]; + + return res; + +} diff --git a/TEvtGen/EvtGenBase/EvtMNode.hh b/TEvtGen/EvtGenBase/EvtMNode.hh new file mode 100644 index 00000000000..cee30c63353 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMNode.hh @@ -0,0 +1,72 @@ +#ifndef __EVTMNODE_HH__ +#define __EVTMNODE_HH__ + +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtPDL.hh" + +#include "EvtGenBase/EvtSymTable.hh" +#include "EvtGenBase/EvtSpinAmp.hh" + +#include +using std::vector; + +#include +using std::string; + +class EvtMNode { + + public: + + EvtMNode() {} + virtual ~EvtMNode() {}; + + // calculate the amplitude associated event this->children return a + // vector of the form A_{\lambda this} and sum over allowed angular + // momenta of the children + virtual EvtSpinAmp amplitude( const vector + &product ) const = 0; + + // get the 4 vector associated with this node + EvtVector4R get4vector( const vector &product ) const; + + // get twice the spin of the particle + int getspin() const { return _twospin; } + EvtSpinType::spintype getspintype() const { return EvtPDL::getSpinType( _id ); } + + // get the id of this node + EvtId getid() const { return _id; } + + // return which particles this is a combination of + const vector & getresonance() const { return _resonance; } + + void setparent( EvtMNode * parent ) { _parent = parent; } + EvtMNode * getparent() const { return _parent; } + + // get the number of children that this node has + virtual int getnchild() const = 0; + + // return the value of the resonance shape + virtual EvtComplex line( const vector& product ) const=0; + + // return a pointer node + virtual EvtMNode * duplicate() const=0; + protected: + + // store the EvtId of the particle (just in case we need it to access + // further informatoin about it) + EvtId _id; + + // store TWICE the spin of this resonance (this is to deal with spin 1/2 + int _twospin; + + // store the particles that form this resonance, this should match up + // with the child nodes from below, and is calculated internally + vector _resonance; + + // store the parent node of this one + EvtMNode * _parent; + +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtMParticle.cxx b/TEvtGen/EvtGenBase/EvtMParticle.cxx new file mode 100644 index 00000000000..999f6ea7bc3 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMParticle.cxx @@ -0,0 +1,26 @@ +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtMParticle.hh" +#include "EvtGenBase/EvtSpinType.hh" + +EvtMParticle::EvtMParticle( int label, const EvtId& id ) +{ + _id = id; + _twospin = EvtSpinType::getSpin2( EvtPDL::getSpinType( id ) ); + _resonance.push_back( label ); +} + +EvtSpinAmp EvtMParticle::amplitude( const vector &product) const +{ + vector types( 2, getspintype() ); + EvtSpinAmp amp( types, EvtComplex( 0.0, 0.0 ) ); + + for( int i=-_twospin; i<=_twospin; i+=2 ) + amp(i, i) = EvtComplex( 1.0, 0.0 ); + + return amp; +} + +EvtMNode * EvtMParticle::duplicate() const +{ + return new EvtMParticle( _resonance[0], _id ); +} diff --git a/TEvtGen/EvtGenBase/EvtMParticle.hh b/TEvtGen/EvtGenBase/EvtMParticle.hh new file mode 100644 index 00000000000..0b151dc1a0a --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMParticle.hh @@ -0,0 +1,21 @@ +#ifndef __EVTMPARTICLE_HH__ +#define __EVTMPARTICLE_HH__ + +#include "EvtGenBase/EvtMNode.hh" + +class EvtMParticle : public EvtMNode { + + public: + + EvtMParticle( int label, const EvtId& id ); + virtual ~EvtMParticle() {} + EvtSpinAmp amplitude( const vector& product ) const; + int getnchild() const { return 0; } + + EvtComplex line( const vector& product ) const + { return EvtComplex(1.0, 0.0); } + + EvtMNode * duplicate() const; +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtMRes.cxx b/TEvtGen/EvtGenBase/EvtMRes.cxx new file mode 100644 index 00000000000..4cbe1329582 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMRes.cxx @@ -0,0 +1,8 @@ +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtMRes.hh" + +EvtMRes::~EvtMRes() +{ + for(size_t i=0; i<_children.size(); ++i) + delete _children[i]; +} diff --git a/TEvtGen/EvtGenBase/EvtMRes.hh b/TEvtGen/EvtGenBase/EvtMRes.hh new file mode 100644 index 00000000000..9d0a7ca750f --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMRes.hh @@ -0,0 +1,48 @@ +#ifndef __EVTMRES_HH__ +#define __EVTMRES_HH__ + +#include "EvtGenBase/EvtMNode.hh" + +class EvtMRes; + +class EvtMLineShape { + + public: + + virtual ~EvtMLineShape() {}; + + void setres( EvtMRes * n ) { _node = n; } + virtual EvtComplex shape( const vector& product ) const=0; + + virtual EvtMLineShape * duplicate() const=0; + + protected: + + EvtMRes * _node; +}; + +class EvtMRes : public EvtMNode { + + public: + + virtual ~EvtMRes(); + + int getnchild() const { return _children.size(); } + + virtual EvtComplex line( const vector& product ) const + { return _lineshape->shape( product ); } + + protected: + + // store the child nodes + vector _children; + + // store the parametrization amplitudes in some kind + EvtSpinAmp _amp; + + // store the lineshape of the resonance + EvtMLineShape * _lineshape; + +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtMTree.cxx b/TEvtGen/EvtGenBase/EvtMTree.cxx new file mode 100644 index 00000000000..2149b23d1fc --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMTree.cxx @@ -0,0 +1,437 @@ +#include +#include +#include + +#include "EvtGenBase/EvtParticle.hh" + +#include "EvtGenBase/EvtMTree.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtKine.hh" +#include "EvtGenBase/EvtReport.hh" + +// Make sure to include Lineshapes here +#include "EvtGenBase/EvtMTrivialLS.hh" +#include "EvtGenBase/EvtMBreitWigner.hh" + +// Make sure to include Parametrizations +#include "EvtGenBase/EvtMHelAmp.hh" + +using std::endl; + +EvtMTree::EvtMTree( const EvtId * idtbl, unsigned int ndaug ) +{ + for( size_t i=0; i EvtMTree::makeparticles( const string& strid ) +{ + vector particles; + vector labels; + + for( size_t i = 0; i<_lbltbl.size(); ++i ) { + if( _lbltbl[i] == strid ) labels.push_back( i ); + } + + if( labels.size() == 0 ) { + report(ERROR,"EvtGen")<<"Error unknown particle label "<& lsarg, const string& type, + const vector& amps, const vector& children ) +{ + EvtMRes * resonance = NULL; + EvtMLineShape * lineshape = NULL; + + if( ls=="BREITWIGNER" ) { + lineshape = new EvtMBreitWigner( id, lsarg ); + } else if( ls=="TRIVIAL" ) { + lineshape = new EvtMTrivialLS( id, lsarg ); + } else { + report(ERROR,"EvtGen")<<"Lineshape "<setres( resonance ); + + return resonance; +} + +void EvtMTree::parseerror( bool flag, ptype& c_iter, ptype& c_begin, + ptype& c_end ) +{ + if(!flag) return; + + string error; + + while( c_begin != c_end ) { + if(c_begin == c_iter) { + error+='_'; + error+=*c_begin; + error+='_'; + } else + error+=*c_begin; + + ++c_begin; + } + + report(ERROR,"EvtGen")<<"Parse error at: "< EvtMTree::parseArg( ptype &c_iter, ptype &c_begin, ptype &c_end ) +{ + vector arg; + + if( *c_iter != '[' ) return arg; + ++c_iter; + + string temp; + while(true) { + parseerror( c_iter == c_end || parsecheck(*c_iter, "[()"), + c_iter, c_begin, c_end ); + + if( *c_iter == ']' ) { + ++c_iter; + if(temp.size() > 0) arg.push_back( temp ); + break; + } + + if( *c_iter == ',') { + arg.push_back( temp ); + temp.clear(); + ++c_iter; + continue; + } + + temp += *c_iter; + ++c_iter; + } + parseerror(c_iter == c_end || *c_iter != ',', c_iter, c_begin, c_end); + ++c_iter; + + return arg; +} + +vector EvtMTree::parseAmps( ptype &c_iter, + ptype &c_begin, ptype &c_end ) +{ + vector parg = parseArg( c_iter, c_begin, c_end ); + parseerror( parg.size() == 0, c_iter, c_begin, c_end ); + + // Get parametrization amplitudes + vector::iterator amp_iter = parg.begin(); + vector::iterator amp_end = parg.end(); + vector amps; + + while( amp_iter != amp_end ) { + const char * nptr; + char * endptr = NULL; + double amp=0.0, phase=0.0; + + nptr = (*amp_iter).c_str(); + amp = strtod(nptr, &endptr); + parseerror( nptr==endptr, c_iter, c_begin, c_end ); + + ++amp_iter; + parseerror( amp_iter == amp_end, c_iter, c_begin, c_end ); + + nptr = (*amp_iter).c_str(); + phase = strtod(nptr, &endptr); + parseerror( nptr==endptr, c_iter, c_begin, c_end ); + + amps.push_back( amp*exp(EvtComplex(0.0, phase)) ); + + ++amp_iter; + } + + return amps; +} + +vector EvtMTree::duplicate( const vector& list ) const +{ + vector newlist; + + for(size_t i=0; iduplicate() ); + + return newlist; +} + +// XXX Warning it is unsafe to use cl1 after a call to this function XXX +vector< vector > EvtMTree::unionChildren( const string& nodestr, + vector< vector >& cl1 ) +{ + vector cl2 = parsenode( nodestr, false ); + vector< vector > cl; + + if( cl1.size() == 0 ) { + for( size_t i=0; i temp(1, cl2[i]); + cl.push_back( temp ); + } + + return cl; + } + + for( size_t i=0; i temp; + temp = duplicate( cl1[i] ); + temp.push_back( cl2[j]->duplicate() ); + + cl.push_back( temp ); + } + } + + for(size_t i=0; i > EvtMTree::parseChildren( ptype &c_iter, + ptype &c_begin, ptype &c_end ) +{ + bool test = true; + int pcount=0; + string nodestr; + vector< vector > children; + + parseerror(c_iter == c_end || *c_iter != '[', c_iter, c_begin, c_end ); + ++c_iter; + + while( test ) { + parseerror( c_iter==c_end || pcount < 0, c_iter, c_begin, c_end ); + + switch( *c_iter ) { + case ')': + --pcount; + nodestr += *c_iter; + break; + case '(': + ++pcount; + nodestr += *c_iter; + break; + case ']': + if( pcount==0 ) { + children = unionChildren( nodestr, children ); + test=false; + } else { + nodestr += *c_iter; + } + break; + case ',': + if( pcount==0 ) { + children = unionChildren( nodestr, children ); + nodestr.clear(); + } else { + nodestr += *c_iter; + } + break; + default: + nodestr += *c_iter; + break; + } + + ++c_iter; + } + + return children; +} + +vector EvtMTree::parsenode( const string& args, bool rootnode ) +{ + ptype c_iter, c_begin, c_end; + + c_iter=c_begin=args.begin(); + c_end = args.end(); + + string strid = parseId( c_iter, c_begin, c_end ); + + // Case 1: Particle + if( c_iter == c_end ) return makeparticles( strid ); + + // Case 2: Resonance - parse further + EvtId id = EvtPDL::getId(strid); + parseerror(EvtId( -1, -1 )==id, c_iter, c_begin, c_end); + + string ls; + vector lsarg; + + if( rootnode ) { + ls = "TRIVIAL"; + } else { + // Get lineshape (e.g. BREITWIGNER) + ls = parseKey( c_iter, c_begin, c_end ); + lsarg = parseArg( c_iter, c_begin, c_end ); + } + + // Get resonance parametrization type (e.g. HELAMP) + string type = parseKey( c_iter, c_begin, c_end ); + vector amps = parseAmps( c_iter, c_begin, c_end ); + + // Children + vector > children = parseChildren( c_iter, c_begin, + c_end ); + + report(ERROR,"EvtGen")< resonances; + for(size_t i=0; i res = root->getresonance(); + vector check(res.size(), false); + + for( size_t i=0; i roots = parsenode( str, true ); + _norm = 0; + + for( size_t i=0; irotateToHelicityBasis(); + EvtSpinType::spintype type = EvtPDL::getSpinType(_root[0]->getid()); + int twospin = EvtSpinType::getSpin2(type); + + vector types(2, type); + EvtSpinAmp rot( types, EvtComplex(0.0, 0.0) ); + vector index = rot.iterallowedinit(); + do { + rot(index) = sd.get((index[0]+twospin)/2,(index[1]+twospin)/2); + } while( rot.iterateallowed( index ) ); + + return rot; +} + +EvtSpinAmp EvtMTree::amplitude( EvtParticle * p ) const +{ + vector product; + for(size_t i=0; igetNDaug(); ++i) + product.push_back(p->getDaug(i)->getP4Lab()); + + if( _root.size() == 0 ) { + report(ERROR, "EvtGen")<<"No decay tree present."<amplitude( product ); + for( size_t i=1; i<_root.size(); ++i ) { + // Assume that helicity amplitude is returned + amp += _root[i]->amplitude( product ); + } + amp = _norm*amp; + + //ryd + return amp; + + // Do Rotation to Proper Frame + EvtSpinAmp newamp = getrotation( p ); + newamp.extcont(amp, 1, 0); + + return newamp; +} diff --git a/TEvtGen/EvtGenBase/EvtMTree.hh b/TEvtGen/EvtGenBase/EvtMTree.hh new file mode 100644 index 00000000000..b95b1d9e623 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMTree.hh @@ -0,0 +1,64 @@ +#ifndef __EVTMTREE_HH__ +#define __EVTMTREE_HH__ + +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtSpinAmp.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtVector4R.hh" + +#include "EvtGenBase/EvtMNode.hh" +#include "EvtGenBase/EvtMParticle.hh" +#include "EvtGenBase/EvtMRes.hh" + +#include +using std::vector; + +#include +using std::string; + +typedef string::const_iterator ptype; + +class EvtParticle; + +class EvtMTree { + + public: + + EvtMTree( const EvtId * , unsigned int ); + ~EvtMTree( ); + + // return the invariant amplitude of the entire tree + EvtSpinAmp amplitude( EvtParticle * ) const; + + // add a decay tree to the list of trees that we posess + void addtree( const string& ); + + private: + + vector< EvtMNode * > _root; + vector _lbltbl; + double _norm; + + bool parsecheck( char , const string& ); + void parseerror( bool, ptype&, ptype&, ptype& ); + + string parseId( ptype&, ptype&, ptype& ); + string parseKey( ptype&, ptype&, ptype& ); + vector parseArg( ptype&, ptype&, ptype& ); + vector parseAmps( ptype&, ptype&, ptype& ); + vector duplicate( const vector& ) const; + vector > unionChildren( const string&, + vector >& ); + vector > parseChildren( ptype&, ptype&, ptype& ); + vector parsenode( const string& , bool ); + bool validTree( const EvtMNode * ) const; + + vector makeparticles( const string& ); + EvtMRes * makeresonance( const EvtId&, const string &, const + vector&, const string& , const vector& , + const vector& ); + + EvtSpinAmp getrotation( EvtParticle * ) const; +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtMTrivialLS.cxx b/TEvtGen/EvtGenBase/EvtMTrivialLS.cxx new file mode 100644 index 00000000000..8bfd22e67a6 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMTrivialLS.cxx @@ -0,0 +1,16 @@ +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtMTrivialLS.hh" + +EvtComplex EvtMTrivialLS::shape( const vector& product ) const +{ + return EvtComplex(1.0, 0.0); +} + +EvtMLineShape* EvtMTrivialLS::duplicate() const +{ + EvtId temp1; + vector temp2; + + EvtMLineShape* tmp=new EvtMTrivialLS(temp1, temp2); + return tmp; +} diff --git a/TEvtGen/EvtGenBase/EvtMTrivialLS.hh b/TEvtGen/EvtGenBase/EvtMTrivialLS.hh new file mode 100644 index 00000000000..4089b6716f6 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMTrivialLS.hh @@ -0,0 +1,18 @@ +#ifndef __EVTMTRIVIALLS_H__ +#define __EVTMTRIVIALLS_H__ + +#include "EvtGenBase/EvtMRes.hh" + +class EvtMTrivialLS : public EvtMLineShape { + + public: + + EvtMTrivialLS( const EvtId& id, const vector& args ) {}; + ~EvtMTrivialLS() {}; + + EvtComplex shape( const vector& product ) const; + + EvtMLineShape* duplicate() const; +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtMacros.hh b/TEvtGen/EvtGenBase/EvtMacros.hh new file mode 100644 index 00000000000..3500685ce44 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMacros.hh @@ -0,0 +1,17 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtMacros.hh,v 1.1 2003/01/21 09:25:39 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Useful macros. + +// In copy constructors, deep copy pointers via CLONE +// and date members via COPY. 'other' is the name of the copied object + +#define COPY_PTR(X) X(other.X ? other.X->clone() : 0) +#define COPY_MEM(X) X(other.X) + diff --git a/TEvtGen/EvtGenBase/EvtManyDeltaFuncLineShape.cxx b/TEvtGen/EvtGenBase/EvtManyDeltaFuncLineShape.cxx new file mode 100644 index 00000000000..32b4031d681 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtManyDeltaFuncLineShape.cxx @@ -0,0 +1,113 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtLineShape.cc +// +// Description: Store particle properties for one particle. +// +// Modification history: +// +// Lange March 10, 2001 Module created +// Dvoretskii June 03, 2002 Reimplemented rollMass() +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtManyDeltaFuncLineShape.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtTwoBodyVertex.hh" +#include "EvtGenBase/EvtBlattWeisskopf.hh" +#include "EvtGenBase/EvtPropBreitWignerRel.hh" +#include "EvtGenBase/EvtPropBreitWigner.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtSpinType.hh" + +EvtManyDeltaFuncLineShape::EvtManyDeltaFuncLineShape() { + +} + +EvtManyDeltaFuncLineShape::~EvtManyDeltaFuncLineShape() { +} + +EvtManyDeltaFuncLineShape::EvtManyDeltaFuncLineShape(double mass, double width, double maxRange, EvtSpinType::spintype sp) { + + _mass=mass; + _width=width; + _spin=sp; + _maxRange=maxRange; + + double maxdelta = width; + + _massMax=mass+maxdelta; + _massMin=mass-maxdelta; + + if ( _massMin< 0. ) _massMin=0.; + +} + +EvtManyDeltaFuncLineShape::EvtManyDeltaFuncLineShape(const EvtManyDeltaFuncLineShape& x): +EvtAbsLineShape( x ) { + _mass=x._mass; + _width=x._width; + _spin=x._spin; + _massMax=x._massMax; + _massMin=x._massMin; + _maxRange=x._maxRange; + +} + +EvtManyDeltaFuncLineShape& EvtManyDeltaFuncLineShape::operator=(const EvtManyDeltaFuncLineShape& x){ + _mass=x._mass; + _massMax=x._massMax; + _massMin=x._massMin; + _width=x._width; + _maxRange=x._maxRange; + _spin=x._spin; + return *this; + +} + +EvtAbsLineShape* EvtManyDeltaFuncLineShape::clone() { + + return new EvtManyDeltaFuncLineShape(*this); +} + + +double EvtManyDeltaFuncLineShape::getMassProb(double mass, double massPar,int nDaug, double *massDau) { + + + double dTotMass=0.; + + int i; + for (i=0; i0.0000000001 ) { + if ( mass > massPar) return 0.; + } + + return 1.; +} + +double EvtManyDeltaFuncLineShape::getRandMass(EvtId*,int, EvtId*, EvtId*, double, double *) { + + int nDelta = int((_massMax - _massMin)/_width); + nDelta++; + double rand=EvtRandom::Flat(0.,float(nDelta)); + int randI=int(rand); + return _massMin+randI*_width; +} + + + + diff --git a/TEvtGen/EvtGenBase/EvtManyDeltaFuncLineShape.hh b/TEvtGen/EvtGenBase/EvtManyDeltaFuncLineShape.hh new file mode 100644 index 00000000000..897ff1a7490 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtManyDeltaFuncLineShape.hh @@ -0,0 +1,51 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtAbsLineShape.hh +// +// Description: Class to keep the particle properties for +// one particle +// +// Modification history: +// +// Lange March 10, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTMANYDELTAFUNCLINESHAPE_HH +#define EVTMANYDELTAFUNCLINESHAPE_HH + +#include "EvtGenBase/EvtAbsLineShape.hh" + +class EvtManyDeltaFuncLineShape :public EvtAbsLineShape { + +public: + + EvtManyDeltaFuncLineShape(); + EvtManyDeltaFuncLineShape(double mass, double width, double maxRange, EvtSpinType::spintype sp); + //figure the m1 and l on the fly + // double mDaug1, double mDaug2, int l); + ~EvtManyDeltaFuncLineShape(); + EvtManyDeltaFuncLineShape& operator=(const EvtManyDeltaFuncLineShape& x); + EvtManyDeltaFuncLineShape(const EvtManyDeltaFuncLineShape& x); + + EvtAbsLineShape* clone(); + + double getMassProb(double mass, double massPar, int nDaug, double *massDau); + // othDaugId is the other daughter of the parent in the case of a two body decay (only!) + // ie B->rho K rho->pipi, othDaugId = K + double getRandMass(EvtId *parId, int nDaug, EvtId *dauId, EvtId *othDaugId, double maxMass, double *dauMasses); + + +protected: +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtMassAmp.cxx b/TEvtGen/EvtGenBase/EvtMassAmp.cxx new file mode 100644 index 00000000000..c0bfa57bcb6 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMassAmp.cxx @@ -0,0 +1,98 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtMassAmp.cc,v 1.11 2006/01/25 19:55:43 lange Exp $ +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module creator: +// Alexei Dvoretskii, Caltech, 2001-2002. +//----------------------------------------------------------------------- +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtMassAmp.hh" + +EvtMassAmp::EvtMassAmp(const EvtPropBreitWignerRel& prop, const EvtTwoBodyVertex& vd) + : EvtAmplitude() + ,_prop(prop), _vd(vd), _vb(0) + ,_useBirthFact(false), _useDeathFact(false) + ,_useBirthFactFF(false), _useDeathFactFF(false) +{} + +EvtMassAmp::EvtMassAmp(const EvtMassAmp& other) + : EvtAmplitude(other) + ,_prop(other._prop), _vd(other._vd) + ,_vb(other._vb ? new EvtTwoBodyVertex(*other._vb) : 0) + ,_useBirthFact(other._useBirthFact) + ,_useDeathFact(other._useDeathFact) + ,_useBirthFactFF(other._useBirthFactFF) + ,_useDeathFactFF(other._useDeathFactFF) +{} + + +EvtMassAmp::~EvtMassAmp() +{ + if(_vb) delete _vb; +} + + +EvtComplex EvtMassAmp::amplitude(const EvtPoint1D& p) const +{ + // Modified vertex + + double m = p.value(); + // keep things from crashing.. + + if ( m< (_vd.mA()+_vd.mB()) ) return EvtComplex(0.,0.); + + EvtTwoBodyKine vd(_vd.mA(),_vd.mB(),m); + + // Compute mass-dependent width for relativistic propagator + + EvtPropBreitWignerRel bw(_prop.m0(),_prop.g0()*_vd.widthFactor(vd)); + EvtComplex amp = bw.evaluate(m); + + + // Birth vertex factors + + if(_useBirthFact) { + + assert(_vb); + if ( (m+_vb->mB()) < _vb->mAB() ) { + EvtTwoBodyKine vb(m,_vb->mB(),_vb->mAB()); + amp *= _vb->phaseSpaceFactor(vb,EvtTwoBodyKine::AB); + amp *= sqrt((vb.p() / _vb->pD())); + + if(_useBirthFactFF) { + + assert(_vb); + amp *= _vb->formFactor(vb); + } + } + else{ + if ( _vb->L() != 0 ) amp=0.; + } + } + + + // Decay vertex factors + + if(_useDeathFact) { + amp *= _vd.phaseSpaceFactor(vd,EvtTwoBodyKine::AB); + amp *= sqrt((vd.p() / _vd.pD())); + } + if(_useDeathFactFF) amp *= _vd.formFactor(vd); + + return amp; +} + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtMassAmp.hh b/TEvtGen/EvtGenBase/EvtMassAmp.hh new file mode 100644 index 00000000000..d7fbc4758e2 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMassAmp.hh @@ -0,0 +1,64 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtMassAmp.hh,v 1.11 2006/01/25 19:55:43 lange Exp $ +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module creator: +// Alexei Dvoretskii, Caltech, 2001-2002. +//----------------------------------------------------------------------- + +// Relativistic lineshape for a two-body decay of a resonance to two +// pseudoscalars. The mass dependence of the width and the vertex factors +// are included in the calculation. + +#ifndef EVT_MASSAMP_HH +#define EVT_MASSAMP_HH + +#include "EvtGenBase/EvtPoint1D.hh" +#include "EvtGenBase/EvtAmplitude.hh" +#include "EvtGenBase/EvtPropBreitWignerRel.hh" +#include "EvtGenBase/EvtTwoBodyVertex.hh" + +class EvtMassAmp : public EvtAmplitude { +public: + + EvtMassAmp(const EvtPropBreitWignerRel& prop, const EvtTwoBodyVertex& vd); + EvtMassAmp(const EvtMassAmp& other); + virtual ~EvtMassAmp(); + + virtual EvtComplex amplitude(const EvtPoint1D& p) const; + + virtual EvtAmplitude* clone() const + { return new EvtMassAmp(*this); } + + void setBirthVtx(const EvtTwoBodyVertex& vb) + { + _vb = new EvtTwoBodyVertex(vb); + } + + void addBirthFact() { _useBirthFact = true; } + void addDeathFact() { _useDeathFact = true; } + void addBirthFactFF() { _useBirthFactFF = true; } + void addDeathFactFF() { _useDeathFactFF = true; } + +private: + + EvtPropBreitWignerRel _prop; + EvtTwoBodyVertex _vd; + EvtTwoBodyVertex* _vb; + + bool _useBirthFact; + bool _useDeathFact; + bool _useBirthFactFF; + bool _useDeathFactFF; +}; + + +#endif diff --git a/TEvtGen/EvtGenBase/EvtMatrix.hh b/TEvtGen/EvtGenBase/EvtMatrix.hh new file mode 100644 index 00000000000..bbc78fdb6d0 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMatrix.hh @@ -0,0 +1,196 @@ +/***************************************************************************** + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtMatrix.hh,v 1.5 2008/11/27 16:27:24 jordix Exp $ + * + * Description: + * Class to make simple computations with matrices: assignment, product, + * determinant, inverse... Still many functions could be implemented. + * + * Modification history: + * Jordi Garra Ticó 2008/07/03 File created + *****************************************************************************/ + + +#ifndef __EVT_MATRIX_HH__ +#define __EVT_MATRIX_HH__ + +#include +#include + + + +template class EvtMatrix +{ +private: + T** _mat; + int _range; +public: + EvtMatrix() : _range( 0 ) {}; + ~EvtMatrix(); + inline void setRange( int range ); + + T& operator()( int row, int col ) { return _mat[ row ][ col ]; } + T* operator[]( int row ) { return _mat[ row ]; } + T det(); + EvtMatrix* min( int row, int col ); + EvtMatrix* inverse(); + std::string dump(); + + template friend EvtMatrix< M >* operator*( const EvtMatrix< M >& left, const EvtMatrix< M >& right ); +}; + + + + +template inline void EvtMatrix< T >::setRange( int range ) +{ + // If the range is changed, delete any previous matrix stored + // and allocate elements with the newly specified range. + if ( _range != range ) + { + if ( _range ) + { + for ( int row = 0; row < _range; row++ ) + delete[] _mat[ row ]; + delete[] _mat; + } + + _mat = new T*[ range ]; + for ( int row = 0; row < range; row++ ) + _mat[ row ] = new T[ range ]; + + // Set the new range. + _range = range; + } + + // Since user is willing to change the range, reset the matrix elements. + for ( int row = 0; row < _range; row++ ) + for ( int col = 0; col < _range; col++ ) + _mat[ row ][ col ] = 0.; +} + + +template EvtMatrix< T >::~EvtMatrix() +{ + for( int row = 0; row < _range; row++ ) + delete[] _mat[ row ]; + delete[] _mat; +} + + +template std::string EvtMatrix< T >::dump() +{ + std::ostringstream str; + + for ( int row = 0; row < _range; row++ ) + { + str << "|"; + for ( int col = 0; col < _range; col++ ) + str << "\t" << _mat[ row ][ col ]; + str << "\t|" << std::endl; + } + + return str.str(); +} + + +template T EvtMatrix< T >::det() +{ + if ( _range == 1 ) + return _mat[ 0 ][ 0 ]; + + // There's no need to define the range 2 determinant manually, but it may + // speed up the calculation. + if ( _range == 2 ) + return _mat[ 0 ][ 0 ] * _mat[ 1 ][ 1 ] - _mat[ 0 ][ 1 ] * _mat[ 1 ][ 0 ]; + + T sum = 0.; + + for ( int col = 0; col < _range; col++ ) + { + EvtMatrix< T >* minor = min( 0, col ); + sum += pow( -1., col ) * _mat[ 0 ][ col ] * minor->det(); + delete minor; + } + + return sum; +} + + +// Returns the minor at (i, j). +template EvtMatrix< T >* EvtMatrix< T >::min( int row, int col ) +{ + EvtMatrix< T >* minor = new EvtMatrix< T >(); + minor->setRange( _range - 1 ); + + int minIndex = 0; + + for ( int r = 0; r < _range; r++ ) + for ( int c = 0; c < _range; c++ ) + if ( ( r != row ) && ( c != col ) ) + { + (*minor)( minIndex / ( _range - 1 ), minIndex % ( _range - 1 ) ) = _mat[ r ][ c ]; + minIndex++; + } + + return minor; +} + + +template EvtMatrix< T >* EvtMatrix< T >::inverse() +{ + EvtMatrix< T >* inv = new EvtMatrix< T >(); + inv->setRange( _range ); + + if ( det() == 0 ) + { + std::cerr << "This matrix has a null determinant and cannot be inverted. Returning zero matrix." << std::endl; + for ( int row = 0; row < _range; row++ ) + for ( int col = 0; col < _range; col++ ) + (*inv)( row, col ) = 0.; + return inv; + } + + T determinant = det(); + + for ( int row = 0; row < _range; row++ ) + for ( int col = 0; col < _range; col++ ) + { + EvtMatrix< T >* minor = min( row, col ); + inv->_mat[col][row] = pow( -1., row + col ) * minor->det() / determinant; + delete minor; + } + + return inv; +} + + +template +EvtMatrix< T >* operator*( const EvtMatrix< T >& left, const EvtMatrix< T >& right ) +{ + // Chech that the matrices have the correct range. + if ( left._range != right._range ) + { + std::cerr << "These matrices cannot be multiplied." << std::endl; + return new EvtMatrix< T >(); + } + + EvtMatrix< T >* mat = new EvtMatrix< T >(); + mat->setRange( left._range ); + + // Initialize the elements of the matrix. + for ( int row = 0; row < left._range; row++ ) + for ( int col = 0; col < right._range; col++ ) + (*mat)[ row ][ col ] = 0; + + for ( int row = 0; row < left._range; row++ ) + for ( int col = 0; col < right._range; col++ ) + for ( int line = 0; line < right._range; line++ ) + (*mat)[ row ][ col ] += left._mat[ row ][ line ] * right._mat[ line ][ col ]; + + return mat; +} + + +#endif diff --git a/TEvtGen/EvtGenBase/EvtModel.cxx b/TEvtGen/EvtGenBase/EvtModel.cxx new file mode 100644 index 00000000000..988fead5179 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtModel.cxx @@ -0,0 +1,111 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtModel.cc +// +// Description: +// +// Modification history: +// +// RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtModel.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtParticleDecayList.hh" +#include "EvtGenBase/EvtParser.hh" +#include "EvtGenBase/EvtReport.hh" +#include +using std::fstream; + +EvtModel* EvtModel::_instance=0; + +EvtModel::EvtModel() { + +} + +EvtDecayBase* EvtModel::getFcn(std::string model_name){ + + EvtDecayBase *model=0; + if ( _modelNameHash.find(model_name)!=_modelNameHash.end() ) { + model=_modelNameHash[model_name]; + } + + if (model==0){ + report(ERROR,"EvtGen") << "Did not find the right model:" + <clone(); + +} + + +void EvtModel::registerModel(EvtDecayBase* prototype){ + + std::string modelName= prototype->getName(); + + _modelNameHash[modelName]=prototype; + + std::string commandName=prototype->commandName(); + + if (commandName!=""){ + + _commandNameHash[commandName]=prototype; + + } + +} + +int EvtModel::isModel(std::string model_name){ + + if ( _modelNameHash.find(model_name)!=_modelNameHash.end() ) { + return 1; + } + return 0; +} + + +int EvtModel::isCommand(std::string cmd){ + + if ( _commandNameHash.find(cmd)!=_commandNameHash.end() ) { + return 1; + } + return 0; +} + +void EvtModel::storeCommand(std::string cmd,std::string cnfgstr){ + + EvtDecayBase *model=0; + if ( _commandNameHash.find(cmd)!=_commandNameHash.end() ) { + model=_commandNameHash[cmd]; + } + + assert(model!=0); + + model->command(cnfgstr); + +} + + + + diff --git a/TEvtGen/EvtGenBase/EvtModel.hh b/TEvtGen/EvtGenBase/EvtModel.hh new file mode 100644 index 00000000000..6232d28904a --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtModel.hh @@ -0,0 +1,72 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtModel.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 8, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTMODEL_HH +#define EVTMODEL_HH + +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtStringHash.hh" +#include +//#include + + +//Class to read in and handle the decays available +//to EvtGen for each particle, and the model to be +//used for each one. + +class EvtModel{ + +public: + + static EvtModel& instance(); + + void registerModel(EvtDecayBase* prototype); + + int isModel(std::string name); + + EvtDecayBase* getFcn(std::string model_name); + + int isCommand(std::string cmd); + void storeCommand(std::string cmd,std::string cnfgstr); + + +private: + + EvtModel(); + + static EvtModel* _instance; + + std::map _modelNameHash; + std::map _commandNameHash; + + +}; + + +inline EvtModel& EvtModel::instance() { + if ( _instance == 0 ) _instance=new EvtModel; + return *_instance; +} + + +#endif + + + diff --git a/TEvtGen/EvtGenBase/EvtModelAlias.cxx b/TEvtGen/EvtGenBase/EvtModelAlias.cxx new file mode 100644 index 00000000000..fbbf62f2be6 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtModelAlias.cxx @@ -0,0 +1,57 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2002 Caltech, LLNL +// +// Module: EvtGen/EvtModelAlias.cc +// +// Description:Class to keep track of model aliases +// read in from the decay table +// +// Modification history: +// +// Lange January 19, 2002 Module created +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtModelAlias.hh" + +EvtModelAlias::EvtModelAlias(std::string alias, std::string model, std::vector args): + + _aliasName(alias) + ,_model(model) + ,_modelArgs(args) + + +{ +} + +EvtModelAlias::EvtModelAlias(const EvtModelAlias ©Me) : + + _aliasName(copyMe._aliasName) + ,_model(copyMe._model) + ,_modelArgs(copyMe._modelArgs) + +{ + +} + +EvtModelAlias EvtModelAlias::operator=(const EvtModelAlias ©Me) { + + _aliasName=copyMe._aliasName; + _model=copyMe._model; + _modelArgs = copyMe._modelArgs; + + return *this; +} + +std::vector EvtModelAlias::getArgList() { + + return _modelArgs; +} diff --git a/TEvtGen/EvtGenBase/EvtModelAlias.hh b/TEvtGen/EvtGenBase/EvtModelAlias.hh new file mode 100644 index 00000000000..28f79530bcb --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtModelAlias.hh @@ -0,0 +1,48 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2002 Caltech, LLNL +// +// Module: EvtGen/EvtModelAlias.hh +// +// Description:Class to keep track of model aliases +// read in from the decay table +// +// Modification history: +// +// Lange January 19, 2002 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTMODELALIAS_HH +#define EVTMODELALIAS_HH + +#include +#include + +class EvtModelAlias{ + +public: + + EvtModelAlias() {}; + EvtModelAlias(std::string alias, std::string model, std::vector args); + ~EvtModelAlias() {}; + EvtModelAlias(const EvtModelAlias ©Me); + EvtModelAlias operator=(const EvtModelAlias ©Me); + bool matchAlias(const std::string &cand) {if (cand==_aliasName) return true; + return false;} + std::string getName() { return _model;} + std::vector getArgList(); +private: + + std::string _aliasName; + std::string _model; + std::vector _modelArgs; + +}; +#endif diff --git a/TEvtGen/EvtGenBase/EvtMultiChannelParser.cxx b/TEvtGen/EvtGenBase/EvtMultiChannelParser.cxx new file mode 100644 index 00000000000..fc64a0cf3f0 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMultiChannelParser.cxx @@ -0,0 +1,278 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtMultiChannelParser.cc,v 1.17 2009/02/19 03:22:30 ryd Exp $ +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module creator: +// Alexei Dvoretskii, Caltech, 2001-2002. +//----------------------------------------------------------------------- +#include "EvtGenBase/EvtPatches.hh" + +#include +#include +#include +#include +#include +#include +#include "EvtGenBase/EvtParser.hh" +#include "EvtGenBase/EvtMultiChannelParser.hh" +#include "EvtGenBase/EvtDecayMode.hh" +#include "EvtGenBase/EvtPDL.hh" + +using std::string; +using std::vector; + +EvtDecayMode EvtMultiChannelParser::getDecayMode(const char* file) +{ + // Open file, read tokens + + EvtParser parser; + parser.read(file); + + // Seek Decay + + int i = 0; + int N = parser.getNToken(); + while(i dauV; + // Get daughters + + while(1) { + + std::string d = parser.getToken(i++); + + if(EvtPDL::getStdHep(EvtPDL::getId(d.c_str())) == 0) break; + + dauV.push_back(string(d.c_str())); + } + + EvtDecayMode mode(mother,dauV); + printf("Decay File defines mode %s\n",mode.mode().c_str()); + + return mode; +} + + + +void EvtMultiChannelParser::parse(const char* file, const char* model) +{ + // Open file, read tokens + + EvtParser parser; + parser.read(file); + + + // Get parameters (tokens between the model name and ;) + + int i = 0; + int N = parser.getNToken(); + + // Seek the model name + + while(i v; + while(i& v) +{ + // place holder for strtod + char** tc = 0; + + + // Get PDF maximum or number of points to + // use in the scan. + + if(v[0] == std::string("MAXPDF")) { + + _pdfMax = strtod(v[1].c_str(),tc); + if(_pdfMax <= 0) { printf("Bad pdfMax=%f\n",_pdfMax); assert(0); } + } + else + if(v[0] == std::string("SCANPDF")) { + + _nScan = atoi(v[1].c_str()); + } + else { + + printf("Error parsing decay file\n"); + assert(0); + } + + + // Now parse the rest of file for amplitude specifications. + + bool conjugate = false; + size_t i = 2; + assert(isKeyword(v[2])); + + while(i < v.size()) { + + size_t i0 = i; + + // Switch to conjugate amplitudes after keyword + if(v[i] == std::string("CONJUGATE")) { + + assert(conjugate == false); + conjugate = true; + assert(!isKeyword(v[++i])); + _dm = strtod(v[i++].c_str(),tc); + _mixAmpli = strtod(v[i++].c_str(),tc); + _mixPhase = strtod(v[i++].c_str(),tc); + } + + if (i >= v.size()) break; + std::vector params; + EvtComplex c; + int format; + + if(!conjugate && v[i] == std::string("AMPLITUDE")) { + + while(!isKeyword(v[++i])) params.push_back(v[i]); + _amp.push_back(params); + + parseComplexCoef(i,v,c,format); + _ampCoef.push_back(c); + _coefFormat.push_back(format); + continue; + } + else + if(conjugate && v[i] == std::string("AMPLITUDE")) { + + while(!isKeyword(v[++i])) params.push_back(v[i]); + _ampConj.push_back(params); + parseComplexCoef(i,v,c,format); + _ampConjCoef.push_back(c); + _coefConjFormat.push_back(format); + continue; + } + else { + + printf("Expect keyword, found parameter %s\n",v[i].c_str()); + assert(0); + } + + + assert(i > i0); + } + + printf("PARSING SUCCESSFUL\n"); + printf("%d amplitude terms\n",(int)_amp.size()); + printf("%d conj amplitude terms\n",(int)_ampConj.size()); +} + + + +void EvtMultiChannelParser::parseComplexCoef(size_t& i, const std::vector& v, + EvtComplex& c, int& format) +{ + // place holder for strtod + char** tc = 0; + + assert(v[i++] == std::string("COEFFICIENT")); + + if(v[i] == std::string("POLAR_DEG")) { + + double mag = strtod(v[i+1].c_str(),tc); + double phaseRad = strtod(v[i+2].c_str(),tc)*EvtConst::pi/180.0; + i += 3; + c = EvtComplex(mag*cos(phaseRad),mag*sin(phaseRad)); + format = POLAR_DEG; + } + else if(v[i] == std::string("POLAR_RAD")) { + + double mag = strtod(v[i+1].c_str(),tc); + double phaseRad = strtod(v[i+2].c_str(),tc); + i += 3; + c = EvtComplex(mag*cos(phaseRad),mag*sin(phaseRad)); + format = POLAR_RAD; + } + else if(v[i] == std::string("CARTESIAN")) { + + double re = strtod(v[i+1].c_str(),tc); + double im = strtod(v[i+2].c_str(),tc); + i += 3; + c = EvtComplex(re,im); + format = CARTESIAN; + } + else { + + printf("Invalid format %s for complex coefficient\n",v[i].c_str()); + exit(0); + } +} + + +double EvtMultiChannelParser::parseRealCoef(int& i, const std::vector& v) +{ + // place holder for strtod + char** tc = 0; + double value = 0; + + if(v[i] == std::string("COEFFICIENT")) { + + value = strtod(v[i+1].c_str(),tc); + } + else assert(0); + + i += 2; + + assert(value > 0.); + return value; +} + + +bool EvtMultiChannelParser::isKeyword(const std::string& s) +{ + if(s == std::string("AMPLITUDE")) return true; + if(s == std::string("CONJUGATE")) return true; + if(s == std::string("COEFFICIENT")) return true; + return false; +} + + + diff --git a/TEvtGen/EvtGenBase/EvtMultiChannelParser.hh b/TEvtGen/EvtGenBase/EvtMultiChannelParser.hh new file mode 100644 index 00000000000..568bcdc3979 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtMultiChannelParser.hh @@ -0,0 +1,86 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtMultiChannelParser.hh,v 1.7 2009/02/19 03:22:30 ryd Exp $ +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module creator: +// Alexei Dvoretskii, Caltech, 2001-2002. +//----------------------------------------------------------------------- + +// Parse decay file tokens from a file or a vector + +#ifndef EVT_MULTI_CHANNEL_PARSER +#define EVT_MULTI_CHANNEL_PARSER + + +#include +#include +#include "EvtGenBase/EvtComplex.hh" + +class EvtDecayMode; + +enum {POLAR_RAD,POLAR_DEG,CARTESIAN}; + +class EvtMultiChannelParser { + +public: + + EvtMultiChannelParser() : _pdfMax(-1.), _nScan(0), _dm(0.) {} + ~EvtMultiChannelParser() {} + + static EvtDecayMode getDecayMode(const char* file); + + void parse(const char* file, const char* model); + void parse(const std::vector& v); + + static void parseComplexCoef(size_t& i, const std::vector& v, + EvtComplex& c, int& format); + static double parseRealCoef(int& i, const std::vector& v); + static bool isKeyword(const std::string& s); + + inline double pdfMax() const { return _pdfMax; } + inline int nScan() const { return _nScan; } + inline double dm() const { return _dm; } + inline double mixPhase() const { return _mixPhase; } + inline double mixAmpli() const { return _mixAmpli; } + + inline std::vector amp(int i) const { return _amp[i]; } + inline std::vector ampConj(int i) const { return _ampConj[i]; } + inline EvtComplex ampCoef(int i) const { return _ampCoef[i]; } + inline EvtComplex ampConjCoef(int i) const { return _ampConjCoef[i]; } + + inline int coefFormat(int i) const { return _coefFormat[i]; } + inline int coefConjFormat(int i) const { return _coefConjFormat[i]; } + + inline int getNAmp() const { return _amp.size(); } + inline int getNAmpConj() const { return _ampConj.size(); } + +private: + + double _pdfMax; + int _nScan; + double _dm; + double _mixPhase; + double _mixAmpli; + + std::vector > _amp; + std::vector > _ampConj; + std::vector _ampCoef; + std::vector _coefFormat; + std::vector _ampConjCoef; + std::vector _coefConjFormat; +}; + +#endif + + + + + diff --git a/TEvtGen/EvtGenBase/EvtNeutrinoParticle.cxx b/TEvtGen/EvtGenBase/EvtNeutrinoParticle.cxx new file mode 100644 index 00000000000..ca4299f95aa --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtNeutrinoParticle.cxx @@ -0,0 +1,154 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtNeutrinoParticle.cc +// +// Description: Class to describe neutrinos +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtNeutrinoParticle.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; + + +EvtNeutrinoParticle::~EvtNeutrinoParticle(){} + +EvtNeutrinoParticle::EvtNeutrinoParticle(){ + + return; +} + +void EvtNeutrinoParticle::init(EvtId part_n,const EvtVector4R& p4){ + + _validP4=true; + setp(p4); + setpart_num(part_n); + + double e,px,py,pz; + e=p4.get(0); + px=p4.get(1); + py=p4.get(2); + pz=p4.get(3); + + if (EvtPDL::getStdHep(part_n)==0){ + report(ERROR,"EvtGen") << "Error in EvtNeutrinoParticle::init, part_n=" + << part_n.getId()<0){ + + double beta,alpha,p2,norm; + + // See Sakurai p. 167-169 + // and Renton p. 126 + + p2=px*px+py*py+pz*pz; + + beta=acos(pz/sqrt(p2)); + alpha=atan2(py,px); + + norm=sqrt(2*e); + + double cosb,sinb,cosa,sina; + + cosb=cos(0.5*beta); + sinb=sin(0.5*beta); + + cosa=cos(0.5*alpha); + sina=sin(0.5*alpha); + + spinor_parent.set(-norm*sinb*EvtComplex(cosa,-sina), + norm*cosb*EvtComplex(cosa,sina), + norm*sinb*EvtComplex(cosa,-sina), + -norm*cosb*EvtComplex(cosa,sina)); + + } + else{ + + px=-p4.get(1); + py=-p4.get(2); + pz=-p4.get(3); + + double pn,sqrpn; + + pn=e; + sqrpn=sqrt(pn-pz); + + spinor_parent.set((1.0/sqrpn)*EvtComplex(px,-py), + EvtComplex(sqrpn,0.0), + (-1.0/sqrpn)*EvtComplex(px,-py), + -EvtComplex(sqrpn,0.0)); + + + } + + setLifetime(); + +} + + +EvtDiracSpinor EvtNeutrinoParticle::spParentNeutrino() const { + + return spinor_parent; +} + +EvtDiracSpinor EvtNeutrinoParticle::spNeutrino() const { + + report(ERROR,"EvtGen") << "Tried to get neutrino spinor in restframe"; + report(ERROR,"EvtGen") << "Will terminate execution."; + + ::abort(); + + return spinor_rest; +} + + +EvtSpinDensity EvtNeutrinoParticle::rotateToHelicityBasis() const{ + + report(ERROR,"EvtGen") << "rotateToHelicityBasis not implemented for neutrino."; + report(ERROR,"EvtGen") << "Will terminate execution."; + + ::abort(); + + EvtSpinDensity rho; + return rho; + +} + +EvtSpinDensity EvtNeutrinoParticle::rotateToHelicityBasis(double, + double, + double) const{ + + report(ERROR,"EvtGen") << "rotateToHelicityBasis(alpha,beta,gama) not implemented for neutrino."; + report(ERROR,"EvtGen") << "Will terminate execution."; + + ::abort(); + + EvtSpinDensity R; + R.setDiag(1); + + return R; + +} + + + diff --git a/TEvtGen/EvtGenBase/EvtNeutrinoParticle.hh b/TEvtGen/EvtGenBase/EvtNeutrinoParticle.hh new file mode 100644 index 00000000000..ca768661e11 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtNeutrinoParticle.hh @@ -0,0 +1,53 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtNeutrinoParticle.hh +// +// Description:Class to describe neutrinos +// +// Modification history: +// +// RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTNEUTRINOPARTICLE_HH +#define EVTNEUTRINOPARTICLE_HH + +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtParticle.hh" +class EvtId; +class EvtVector4R; + +class EvtNeutrinoParticle:public EvtParticle { + +public: + + EvtNeutrinoParticle(); + virtual ~EvtNeutrinoParticle(); + void init(EvtId part_n,const EvtVector4R& p4); + EvtDiracSpinor spParentNeutrino() const; + EvtDiracSpinor spNeutrino() const; + EvtSpinDensity rotateToHelicityBasis() const; + EvtSpinDensity rotateToHelicityBasis(double alpha, + double beta, + double gamma) const; + +private: + + EvtDiracSpinor spinor_rest; + EvtDiracSpinor spinor_parent; + + EvtNeutrinoParticle(const EvtNeutrinoParticle& n); + EvtNeutrinoParticle& operator=(const EvtNeutrinoParticle& n); + +}; +#endif + diff --git a/TEvtGen/EvtGenBase/EvtNonresonantAmp.cxx b/TEvtGen/EvtGenBase/EvtNonresonantAmp.cxx new file mode 100644 index 00000000000..dda2ca6351e --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtNonresonantAmp.cxx @@ -0,0 +1,102 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * Author: Denis Dujmic, ddujmic@slac.stanford.edu + * + * Copyright (C) 2005 SLAC + *******************************************************************************/ + +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtNonresonantAmp.hh" +#include "EvtGenBase/EvtDalitzCoord.hh" +#include "EvtGenBase/EvtdFunction.hh" +#include "EvtGenBase/EvtCyclic3.hh" +using std::endl; +using EvtCyclic3::Index; +using EvtCyclic3::Pair; + + +EvtNonresonantAmp::EvtNonresonantAmp(EvtDalitzPlot *dp, + EvtPto3PAmp::NumType type, + EvtCyclic3::Pair pair1, double par1, + EvtCyclic3::Pair pair2, double par2, + EvtSpinType::spintype spin) : + EvtAmplitude(), + _type(type), + _pair1(pair1), + _pair2(pair2), + _par1(par1), + _par2(par2), + _spin(spin) +{ + _dalitzSpace = dp; +} + + + +EvtNonresonantAmp::EvtNonresonantAmp(const EvtNonresonantAmp& other) : + EvtAmplitude(other), + _type(other._type), + _pair1(other._pair1), + _pair2(other._pair2), + _par1(other._par1), + _par2(other._par2), + _spin(other._spin) +{ + _dalitzSpace = other._dalitzSpace; +} + + +EvtNonresonantAmp::~EvtNonresonantAmp() {} + + + +EvtComplex +EvtNonresonantAmp::amplitude(const EvtDalitzPoint &dalitzPoint) const { + + // flat model + if (_type==EvtPto3PAmp::NONRES) { return 1; } + + // "linear model" (prop. to m^2) + else if (_type==EvtPto3PAmp::NONRES_LIN) { + return dalitzPoint.q(_pair1); + } + + // Chen-Chua-Soni + else if (_type==EvtPto3PAmp::NONRES_CCS) { + double s = dalitzPoint.q(_pair1); + double smin = _dalitzSpace->qAbsMin(_pair1); + return sqrt(s-smin)/(s*log(s*_par1)); + } + + // exp{par*m^2) (Belle model, Garmash et al, PRD71) + else if (_type==EvtPto3PAmp::NONRES_EXP) { + return exp( _par1*dalitzPoint.q(_pair1) ); + } + + // exp(par1*m12^2 + par2*m13^2) (Belle model, Garmash et al, PRD71) + else if (_type==EvtPto3PAmp::NONRES_EXP_ADD) { + return exp( _par1*dalitzPoint.q(_pair1) + _par2*dalitzPoint.q(_pair2) ); + } + + // Laura model (P.Harrison et al, BAD806) + else if (_type==EvtPto3PAmp::NONRES_LAURA) { + double m = sqrt( dalitzPoint.q(_pair1)); + double mmin = sqrt(_dalitzSpace->qAbsMin(_pair1)); + double dm = m-mmin; + assert(dm>0); + double cosTh = 1; + int ispin = EvtSpinType::getSpin2(_spin); + if (ispin>0) { + cosTh = dalitzPoint.cosTh( EvtCyclic3::next(_pair1), _pair1); + if (ispin>2) cosTh *= cosTh; + } + return pow(dm,_par1) * exp( dm*_par2 ) * cosTh; + } + + return 0; +} diff --git a/TEvtGen/EvtGenBase/EvtNonresonantAmp.hh b/TEvtGen/EvtGenBase/EvtNonresonantAmp.hh new file mode 100644 index 00000000000..cf4e6a1f2a9 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtNonresonantAmp.hh @@ -0,0 +1,64 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * Author: Denis Dujmic, ddujmic@slac.stanford.edu + * + * Copyright (C) 2005 SLAC + *******************************************************************************/ + +#ifndef EVT_NONRESONANT_AMP_HH +#define EVT_NONRESONANT_AMP_HH + +#include "EvtGenBase/EvtCyclic3.hh" +#include "EvtGenBase/EvtDalitzPoint.hh" +#include "EvtGenBase/EvtDalitzPlot.hh" +#include "EvtGenBase/EvtPto3PAmp.hh" +#include "EvtGenBase/EvtAmplitude.hh" +#include "EvtGenBase/EvtSpinType.hh" + +class EvtComplex; + + + +class EvtNonresonantAmp : public EvtAmplitude { + +public: + + EvtNonresonantAmp( EvtDalitzPlot *dp, + EvtPto3PAmp::NumType type, + EvtCyclic3::Pair pair1, double par1=0, + EvtCyclic3::Pair pair2=EvtCyclic3::AB, double par2=0, + EvtSpinType::spintype spin=EvtSpinType::SCALAR); + + + EvtNonresonantAmp(const EvtNonresonantAmp& other); + + ~EvtNonresonantAmp(); + + virtual EvtComplex amplitude(const EvtDalitzPoint& p) const; + + virtual EvtAmplitude* clone() const + { return new EvtNonresonantAmp(*this); } + +private: + + EvtDalitzPlot *_dalitzSpace; + + EvtPto3PAmp::NumType _type; + + EvtCyclic3::Pair _pair1, _pair2; + + double _par1, _par2; + + EvtSpinType::spintype _spin; +}; + +#endif + + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtOrthogVector.cxx b/TEvtGen/EvtGenBase/EvtOrthogVector.cxx new file mode 100644 index 00000000000..768be734172 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtOrthogVector.cxx @@ -0,0 +1,128 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech, LLNL +// +// Module: EvtGen/EvtOrthogVector.hh +// +// Description: +// +// Modification history: +// +// Lange August 11, 2000 Created +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include +#include +#include +#include +#include +#include "EvtGenBase/EvtOrthogVector.hh" +using std::fstream; + +EvtOrthogVector::EvtOrthogVector(int n, std::vector *vectors){ + + _dimen=n; + _holder.resize(n); + + std::vector temp; + + int i; + for (i=0;i invect, + std::vector *vectors) { + + + if ( dim==2 ) { + _holder[0]=invect[0]; + _holder[1]=invect[1]; + int sign=findEvenOddSwaps(); + { + double addition=1; + int i; + for (i=1; i<_dimen; i++){ + addition*=vectors[i-1][_holder[i]]; + } + addition*=sign; + _orthogVector[_holder[0]]+=addition; + } + + _holder[0]=invect[1]; + _holder[1]=invect[0]; + + { + double addition=1; + int i; + for (i=1; i<_dimen; i++){ + addition*=vectors[i-1][_holder[i]]; + } + addition*=sign; + _orthogVector[_holder[0]]-=addition; + } + + return; + } + else{ + std::vector temp((2*dim)); + + int i; + for (i=0; i tempDim((dim-1)); + + int j; + for (j=0; j<(dim-1); j++) tempDim[j]=temp[j+i]; + findOrthog(dim-1, tempDim, vectors); + } + } + + return; +} + +int EvtOrthogVector::findEvenOddSwaps() { + + std::vector temp(_dimen); + + int i,j,nSwap; + for (i=0; i<_dimen; i++) temp[i]=_holder[i]; + + nSwap=0; + for (i=0; i<(_dimen-1); i++) { + for (j=i+1; j<_dimen; j++) { + + if ( temp[i]>temp[j] ) { + int duh=temp[j]; + temp[j]=temp[i]; + temp[i]=duh; + nSwap+=1; + } + } + } + nSwap-= (nSwap/2)*2; + + if ( nSwap ) return -1; + + return 1; + +} diff --git a/TEvtGen/EvtGenBase/EvtOrthogVector.hh b/TEvtGen/EvtGenBase/EvtOrthogVector.hh new file mode 100644 index 00000000000..be069f6a329 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtOrthogVector.hh @@ -0,0 +1,54 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech, LLNL +// +// Module: EvtGen/EvtOrthogVector.hh +// +// Description: +// +// Modification history: +// +// Lange August 11, 2000 Created +// +//------------------------------------------------------------------------ + + +#ifndef EVTORTHOGVECTOR_HH +#define EVTORTHOGVECTOR_HH + +#include + +class EvtOrthogVector { + +public: + + EvtOrthogVector(int n, + std::vector *vectors); + + ~EvtOrthogVector(); + + std::vector getOrthogVector() {return _orthogVector;} + + +private: + + int _dimen; + std::vector _holder; + void findOrthog(int dim, std::vector invect, + std::vector *vectors); + + std::vector _orthogVector; + + int findEvenOddSwaps(); + + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtPDL.cxx b/TEvtGen/EvtGenBase/EvtPDL.cxx new file mode 100644 index 00000000000..315270b94f6 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPDL.cxx @@ -0,0 +1,423 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtPDL.cc +// +// Description: routines to store particle properties in EvtPDL structure. +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtPartProp.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; +using std::fstream; +using std::ifstream; + +static int first=1; + +unsigned int EvtPDL::_firstAlias; +int EvtPDL::_nentries; + +std::map EvtPDL::_particleNameLookup; + +EvtPDL::EvtPDL() { + + if (first!=0) { + first=0; + _nentries=0; + _firstAlias=999999; + } + +} + + +EvtPDL::~EvtPDL(){ + +} + +void EvtPDL::read(const char* fname) +{ + readPDT(fname); +} + +void EvtPDL::readPDT(const std::string fname){ + + + ifstream indec; + + indec.open(fname.c_str()); + + char cmnd[100]; + char xxxx[100]; + + char pname[100]; + int stdhepid; + double mass; + double pwidth; + double pmaxwidth; + int chg3; + int spin2; + double ctau; + int lundkc; + EvtId i; + + if (!indec) { + report(ERROR,"EvtGen") << "Could not open:"<> cmnd; + + if (strcmp(cmnd,"end")){ + + if (!strcmp(cmnd,"add")){ + + indec >> xxxx; + indec >> xxxx; + indec >> pname; + indec >> stdhepid; + indec >> mass; + indec >> pwidth; + indec >> pmaxwidth; + indec >> chg3; + indec >> spin2; + indec >> ctau; + indec >> lundkc; + + + i=EvtId(_nentries,_nentries); + + EvtPartProp tmp; + + tmp.setSpinType(EvtSpinType::SCALAR); + + + if (spin2==0) tmp.setSpinType(EvtSpinType::SCALAR); + if (spin2==1) tmp.setSpinType(EvtSpinType::DIRAC); + if (spin2==2) tmp.setSpinType(EvtSpinType::VECTOR); + if (spin2==3) tmp.setSpinType(EvtSpinType::RARITASCHWINGER); + if (spin2==4) tmp.setSpinType(EvtSpinType::TENSOR); + if (spin2==5) tmp.setSpinType(EvtSpinType::SPIN5HALF); + if (spin2==6) tmp.setSpinType(EvtSpinType::SPIN3); + if (spin2==7) tmp.setSpinType(EvtSpinType::SPIN7HALF); + if (spin2==8) tmp.setSpinType(EvtSpinType::SPIN4); + if (spin2==2 && mass < 0.0001 ) tmp.setSpinType(EvtSpinType::PHOTON); + if (spin2==1 && mass < 0.0001 ) tmp.setSpinType(EvtSpinType::NEUTRINO); + + + if (!strcmp(pname,"string")){ + tmp.setSpinType(EvtSpinType::STRING); + } + + if (!strcmp(pname,"vpho")){ + tmp.setSpinType(EvtSpinType::VECTOR); + } + + + tmp.setId(i); + tmp.setIdChgConj(EvtId(-1,-1)); + tmp.setStdHep(stdhepid); + tmp.setLundKC(lundkc); + tmp.setName(pname); + if (_particleNameLookup.find(std::string(pname))!= + _particleNameLookup.end()) { + report(ERROR,"EvtGen")<<"The particle name:"<> xxxx; + indec >> xxxx; + indec >> xxxx; + indec >> xxxx; + } + + } + + }while(strcmp(cmnd,"end")); + + setUpConstsPdt(); + +} + + +void EvtPDL::aliasChgConj(EvtId a,EvtId abar){ + + if (EvtPDL::chargeConj(EvtId(a.getId(),a.getId()))!= + EvtId(abar.getId(),abar.getId())) { + + report(ERROR,"EvtGen")<<"Can't charge conjugate the two aliases:" + <::iterator it=_particleNameLookup.find(std::string(name)); + if (it==_particleNameLookup.end()) return EvtId(-1,-1); + + return partlist()[it->second].getId(); + +} + +void EvtPDL::setUpConstsPdt(){ + +} + + +// Function to get EvtId from LundKC ( == Pythia Hep Code , KF ) +EvtId EvtPDL::evtIdFromLundKC(int pythiaId){ + + unsigned int i; + + for (i=0;i +#include + +const int SPIN_NAME_LENGTH = 100; + +class EvtPDL { + +public: + + EvtPDL(); + + ~EvtPDL(); + + void read(const char* fname); + void readPDT(const std::string fname); + + + static double getMeanMass(EvtId i ); + static double getMass(EvtId i ); + static double getRandMass(EvtId i, EvtId *parId, int nDaug, EvtId *dauId, EvtId *othDaugId,double maxMass, double *dauMasses ); + static double getMassProb(EvtId i, double mass, double massPar, int nDaug, double *massDau); + + static double getMaxMass(EvtId i ); + static double getMinMass(EvtId i ); + //the number we got from PDT + static double getMaxRange(EvtId i ); + static double getWidth(EvtId i ); + static double getctau(EvtId i ); + static int getStdHep(EvtId id ); + static int getLundKC(EvtId id ); + + // Function to retrieve EvtId from PythiaID + static EvtId evtIdFromLundKC(int pythiaId ); + static EvtId evtIdFromStdHep(int stdhep ); + static EvtId chargeConj(EvtId id ); + static int chg3(EvtId i ); + static EvtSpinType::spintype getSpinType(EvtId i ); + static EvtId getId(const std::string& name ); + static std::string name(EvtId i); + static void alias(EvtId num,const std::string& newname); + static void aliasChgConj(EvtId a,EvtId abar); + static size_t entries(); + static EvtId getEntry(int i); + static void reSetMass(EvtId i, double mass); + static void reSetWidth(EvtId i, double width); + static void reSetMassMin(EvtId i, double mass); + static void reSetMassMax(EvtId i,double mass); + static void reSetBlatt(EvtId i,double blatt); + static void includeBirthFactor(EvtId i,bool yesno); + static void includeDecayFactor(EvtId i,bool yesno); + static void changeLS(EvtId i, std::string &newLS ); + static void setPWForDecay(EvtId i, int spin, EvtId d1, EvtId d2); + static void setPWForBirthL(EvtId i, int spin, EvtId par, EvtId othD); + static void fixLSForSP8(EvtId i) { partlist()[i.getId()].fixLSForSP8();} +private: + + void setUpConstsPdt(); + + static unsigned int _firstAlias; + static int _nentries; + + static std::vector& partlist() { + static std::vector s_partlist; + return s_partlist; + } + + static std::map _particleNameLookup; + +}; // EvtPDL.h + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtParser.cxx b/TEvtGen/EvtGenBase/EvtParser.cxx new file mode 100644 index 00000000000..1f23b831005 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtParser.cxx @@ -0,0 +1,172 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtParser.cc +// +// Description: Reading the decay table and produce a list of tokens. +// +// Modification history: +// +// RYD Febuary 11, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtParser.hh" +#include "EvtGenBase/EvtReport.hh" +using namespace std; + +#define MAXBUF 1024 + +EvtParser::EvtParser(){ + _ntoken=0; + _lengthoftokenlist=0; + _tokenlist=0; + _linelist=0; +} + +EvtParser::~EvtParser(){ + + delete [] _tokenlist; + delete [] _linelist; + +} + + +int EvtParser::getNToken(){ + + return _ntoken; + +} + +const std::string& EvtParser::getToken(int i){ + + return _tokenlist[i]; + +} + +int EvtParser::getLineofToken(int i){ + + return _linelist[i]; + +} + +int EvtParser::read(const std::string filename){ + ifstream fin; + + fin.open(filename.c_str()); + if (!fin) { + report(ERROR,"EvtGen") << "Could not open file '"<>buf2){ + i=0; + int semicolon=0; + do{ + if (buf2[i]==';') { + buf2[i]=0; + semicolon=1; + } + }while(buf2[i++]!=0); + if (buf2[0]!=0){ + addToken(line,buf2); + } + if (semicolon) addToken(line,";"); + } + } + + fin.close(); + + return 0; + +} + + + +void EvtParser::addToken(int line,const std::string& string){ + + //report(INFO,"EvtGen") <<_ntoken<<" "< + +class EvtParser { +public: + EvtParser(); + ~EvtParser(); + + int read(const std::string filename); + int getNToken(); + const std::string& getToken(int i); + int getLineofToken(int i); + +private: + + int _ntoken; + std::string* _tokenlist; + int * _linelist; + int _lengthoftokenlist; + + void addToken(int line,const std::string& string); + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtPartProp.cxx b/TEvtGen/EvtGenBase/EvtPartProp.cxx new file mode 100644 index 00000000000..cbb120d0562 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPartProp.cxx @@ -0,0 +1,163 @@ +#include "EvtGenBase/EvtPatches.hh" + //-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtPartProp.cc +// +// Description: Store particle properties for one particle. +// +// Modification history: +// +// RYD April 4, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include +#include +#include +#include +#include "EvtGenBase/EvtPartProp.hh" +#include "EvtGenBase/EvtAbsLineShape.hh" +#include "EvtGenBase/EvtFlatLineShape.hh" +#include "EvtGenBase/EvtManyDeltaFuncLineShape.hh" +#include "EvtGenBase/EvtRelBreitWignerBarrierFact.hh" +#include +using std::fstream; + +EvtPartProp::EvtPartProp(): + _id(-1,-1) + ,_idchgconj(-1,-1) + ,_chg3(0) + ,_stdhep(0) + ,_lundkc(0) +{ + _lineShape=0; + _ctau=0.0; + _name="*******"; + _spintype=EvtSpinType::SCALAR; +} + +EvtPartProp::EvtPartProp(const EvtPartProp& x){ + + if (0!=x._lineShape){ + _lineShape=x._lineShape->clone(); + } + else{ + _lineShape=0; + } + _ctau=x._ctau; + _name=x._name; + _spintype=x._spintype; + _id=x._id; + _idchgconj=x._idchgconj; + _chg3=x._chg3; + _stdhep=x._stdhep; + _lundkc=x._lundkc; + +} + +EvtPartProp::~EvtPartProp() { + if ( _lineShape ) delete _lineShape; + _lineShape=0; +} + + +void EvtPartProp::setName(std::string pname) { + + _name=pname; + +} + + +EvtPartProp& EvtPartProp::operator=(const EvtPartProp& x){ + + _lineShape=x._lineShape->clone(); + + _ctau=x._ctau; + _name=x._name; + _chg3=x._chg3; + _spintype=x._spintype; + return *this; +} + +void EvtPartProp::initLineShape(double mass, double width, double maxRange){ + + _lineShape=new EvtRelBreitWignerBarrierFact(mass,width,maxRange,_spintype); + +} + +void EvtPartProp::newLineShape(std::string type){ + + double m=_lineShape->getMass(); + double w=_lineShape->getWidth(); + double mR=_lineShape->getMaxRange(); + EvtSpinType::spintype st=_lineShape->getSpinType(); + delete _lineShape; + if ( type == "RELBW" ) { + _lineShape=new EvtRelBreitWignerBarrierFact(m,w,mR,st); + } + if ( type == "NONRELBW" ) { + _lineShape = new EvtAbsLineShape(m,w,mR,st); + } + if ( type == "FLAT" ) { + _lineShape = new EvtFlatLineShape(m,w,mR,st); + } + if ( type == "MANYDELTAFUNC" ) { + _lineShape = new EvtManyDeltaFuncLineShape(m,w,mR,st); + } +} + + +void EvtPartProp::reSetMass(double mass) { + if (!_lineShape) ::abort(); + _lineShape->reSetMass(mass); +} +void EvtPartProp::reSetWidth(double width){ + if (!_lineShape) ::abort(); + _lineShape->reSetWidth(width); +} + +void EvtPartProp::setPWForDecay( int spin, EvtId d1, EvtId d2) { + if (!_lineShape) ::abort(); + _lineShape->setPWForDecay(spin,d1,d2); +} + +void EvtPartProp::setPWForBirthL( int spin, EvtId par, EvtId othD) { + if (!_lineShape) ::abort(); + _lineShape->setPWForBirthL(spin,par,othD); +} + + +void EvtPartProp::reSetMassMin(double mass){ + if (!_lineShape) ::abort(); + _lineShape->reSetMassMin(mass); +} +void EvtPartProp::reSetMassMax(double mass){ + if (!_lineShape) ::abort(); + _lineShape->reSetMassMax(mass); +} +void EvtPartProp::reSetBlatt(double blatt){ + if (!_lineShape) ::abort(); + _lineShape->reSetBlatt(blatt); +} +void EvtPartProp::includeBirthFactor(bool yesno){ + if (!_lineShape) ::abort(); + _lineShape->includeBirthFactor(yesno); +} +void EvtPartProp::includeDecayFactor(bool yesno){ + if (!_lineShape) ::abort(); + _lineShape->includeDecayFactor(yesno); +} + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtPartProp.hh b/TEvtGen/EvtGenBase/EvtPartProp.hh new file mode 100644 index 00000000000..80a46494d3b --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPartProp.hh @@ -0,0 +1,112 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtPartProp.hh +// +// Description: Class to keep the particle properties for +// one particle +// +// Modification history: +// +// RYD April 4, 1997 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTPARTPROP_HH +#define EVTPARTPROP_HH + +#include "EvtGenBase/EvtSpinType.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtAbsLineShape.hh" + + +class EvtPartProp { + +public: + + EvtPartProp(); + EvtPartProp(const EvtPartProp& x); + + ~EvtPartProp(); + + double getMass() {return _lineShape->getMass();} + double getMassMin() {return _lineShape->getMassMin();} + double getMassMax() {return _lineShape->getMassMax();} + double getMaxRange() {return _lineShape->getMaxRange();} + double getWidth() {return _lineShape->getWidth();} + + double getRandMass(EvtId *parId, int nDaug, EvtId *dauId,EvtId *othDauId,double maxMass, double *dauMasses) {return _lineShape->getRandMass(parId,nDaug,dauId,othDauId,maxMass,dauMasses);} + double getMassProb(double mass, double massPar, int nDaug, double *massDau) { return _lineShape->getMassProb(mass,massPar,nDaug,massDau);} + + double getctau() {return _ctau; } + void setctau(double tau) { _ctau=tau; } + + int getChg3() {return _chg3; } + void setChg3(int c3) { _chg3=c3; } + + EvtSpinType::spintype getSpinType() {return _spintype; } + void setSpinType(EvtSpinType::spintype stype ) { _spintype=stype; } + + const std::string& getName() {return _name;} + void setName(std::string pname); + + EvtId getId() {return _id;} + void setId(EvtId id) {_id=id;} + + EvtId getIdChgConj() {return _idchgconj;} + void setIdChgConj(EvtId idchgconj) {_idchgconj=idchgconj;} + + int getStdHep() {return _stdhep;} + void setStdHep(int stdhep) {_stdhep=stdhep;} + + int getLundKC() {return _lundkc;} + void setLundKC(int lundkc) {_lundkc=lundkc;} + + EvtAbsLineShape* getLineShape() {return _lineShape;} + void initLineShape(double mass, double width, double maxRange); + // void initLineShape(double mass, double width, double maxRange, double mDaug1, double mDaug2, int l); + + // setLineShape takes ownership of l + void setLineShape(EvtAbsLineShape *l) { _lineShape=l;} + double rollMass(){return _lineShape->rollMass();} + + EvtPartProp& operator=(const EvtPartProp& x); + + void reSetMass(double mass); + void reSetWidth(double width); + + void reSetMassMin(double mass); + void reSetMassMax(double mass); + void reSetBlatt(double blatt); + void includeBirthFactor(bool yesno); + void includeDecayFactor(bool yesno); + void newLineShape(std::string type); + void setPWForDecay( int spin, EvtId d1, EvtId d2); + void setPWForBirthL( int spin, EvtId par, EvtId othD); + void fixLSForSP8() {_lineShape->fixForSP8();} + +private: + + EvtAbsLineShape *_lineShape; + + double _ctau; + EvtId _id; + EvtId _idchgconj; + EvtSpinType::spintype _spintype; + int _chg3; + int _stdhep; + int _lundkc; + std::string _name; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtParticle.cxx b/TEvtGen/EvtGenBase/EvtParticle.cxx new file mode 100644 index 00000000000..5cddb7346b0 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtParticle.cxx @@ -0,0 +1,1161 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtParticle.cc +// +// Description: Class to describe all particles +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtRadCorr.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtDiracParticle.hh" +#include "EvtGenBase/EvtScalarParticle.hh" +#include "EvtGenBase/EvtVectorParticle.hh" +#include "EvtGenBase/EvtTensorParticle.hh" +#include "EvtGenBase/EvtPhotonParticle.hh" +#include "EvtGenBase/EvtNeutrinoParticle.hh" +#include "EvtGenBase/EvtRaritaSchwingerParticle.hh" +#include "EvtGenBase/EvtStringParticle.hh" +#include "EvtGenBase/EvtStdHep.hh" +#include "EvtGenBase/EvtSecondary.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtParticleFactory.hh" +#include "EvtGenBase/EvtIdSet.hh" + +using std::endl; + + + +EvtParticle::~EvtParticle() { + delete _decayProb; +} + +EvtParticle::EvtParticle() { + _ndaug=0; + _parent=0; + _channel=-10; + _t=0.0; + _genlifetime=1; + _first=1; + _isInit=false; + _validP4=false; + _isDecayed=false; + _decayProb=0; + // _mix=false; +} + +void EvtParticle::setFirstOrNot() { + _first=0; +} +void EvtParticle::resetFirstOrNot() { + _first=1; +} + +void EvtParticle::setChannel( int i ) { + _channel=i; +} + +EvtParticle *EvtParticle::getDaug(int i) { return _daug[i]; } + +EvtParticle *EvtParticle::getParent() const { return _parent;} + +void EvtParticle::setLifetime(double tau){ + _t=tau; +} + +void EvtParticle::setLifetime(){ + if (_genlifetime){ + _t=-log(EvtRandom::Flat())*EvtPDL::getctau(getId()); + } +} + +double EvtParticle::getLifetime(){ + + return _t; +} + +void EvtParticle::addDaug(EvtParticle *node) { + node->_daug[node->_ndaug++]=this; + _ndaug=0; + _parent=node; +} + + +int EvtParticle::firstornot() const { return _first;} + +EvtId EvtParticle::getId() const { return _id;} + +EvtSpinType::spintype EvtParticle::getSpinType() const + { return EvtPDL::getSpinType(_id);} + +int EvtParticle::getSpinStates() const + { return EvtSpinType::getSpinStates(EvtPDL::getSpinType(_id));} + +const EvtVector4R& EvtParticle::getP4() const { return _p;} + +int EvtParticle::getChannel() const { return _channel;} + +size_t EvtParticle::getNDaug() const { return _ndaug;} + +double EvtParticle::mass() const { + + return _p.mass(); +} + + +void EvtParticle::setDiagonalSpinDensity(){ + + _rhoForward.setDiag(getSpinStates()); +} + +void EvtParticle::setVectorSpinDensity(){ + + if (getSpinStates()!=3) { + report(ERROR,"EvtGen")<<"Error in EvtParticle::setVectorSpinDensity"<getParent(); + double parMass=-1.; + if ( par != 0 ) { + if ( par->hasValidP4() ) parMass=par->mass(); + for (size_t i=0;igetNDaug();i++) { + EvtParticle *tDaug=par->getDaug(i); + if ( p != tDaug ) + parMass-=EvtPDL::getMinMass(tDaug->getId()); + } + } + + if ( _isInit ) { + //we have already been here - just reroll the masses! + if ( _ndaug>0) { + for(size_t ii=0;ii<_ndaug;ii++){ + if ( _ndaug==1 || EvtPDL::getWidth(p->getDaug(ii)->getId()) > 0.0000001) + p->getDaug(ii)->initDecay(useMinMass); + else p->getDaug(ii)->setMass(EvtPDL::getMeanMass(p->getDaug(ii)->getId())); + } + } + + EvtId *dauId=0; + double *dauMasses=0; + if ( _ndaug > 0) { + dauId=new EvtId[_ndaug]; + dauMasses=new double[_ndaug]; + for (size_t j=0;j<_ndaug;j++) { + dauId[j]=p->getDaug(j)->getId(); + dauMasses[j]=p->getDaug(j)->mass(); + } + } + EvtId *parId=0; + EvtId *othDauId=0; + EvtParticle *tempPar=p->getParent(); + if (tempPar) { + parId=new EvtId(tempPar->getId()); + if ( tempPar->getNDaug()==2 ) { + if ( tempPar->getDaug(0) == this ) othDauId=new EvtId(tempPar->getDaug(1)->getId()); + else othDauId=new EvtId(tempPar->getDaug(0)->getId()); + } + } + if ( p->getParent() && _validP4==false ) { + if ( !useMinMass ) { + p->setMass(EvtPDL::getRandMass(p->getId(),parId,_ndaug,dauId,othDauId,parMass,dauMasses)); + } + else p->setMass(EvtPDL::getMinMass(p->getId())); + } + if ( parId) delete parId; + if ( othDauId) delete othDauId; + if ( dauId) delete [] dauId; + if ( dauMasses) delete [] dauMasses; + return; + } + + + //Will include effects of mixing here + //added by Lange Jan4,2000 + static EvtId BS0=EvtPDL::getId("B_s0"); + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BD0=EvtPDL::getId("B0"); + static EvtId BDB=EvtPDL::getId("anti-B0"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId U4S=EvtPDL::getId("Upsilon(4S)"); + static EvtIdSet borUps(BS0,BSB,BD0,BDB,U4S); + + //only makes sense if there is no parent particle which is a B or an Upsilon + bool hasBorUps=false; + if ( getParent() && borUps.contains(getParent()->getId()) ) hasBorUps=true; + // if ( (getNDaug()==0)&&(getParent()==0) && (getId()==BS0||getId()==BSB||getId()==BD0||getId()==BDB)){ + EvtId thisId=getId(); + // remove D0 mixing for now. + // if ( (getNDaug()==0 && !hasBorUps) && (thisId==BS0||thisId==BSB||thisId==BD0||thisId==BDB||thisId==D0||thisId==D0B)){ + if ( (getNDaug()==0 && !hasBorUps) && (thisId==BS0||thisId==BSB||thisId==BD0||thisId==BDB)){ + double t; + int mix; + EvtCPUtil::incoherentMix(getId(), t, mix); + setLifetime(t); + + if (mix) { + + EvtScalarParticle* scalar_part; + + scalar_part=new EvtScalarParticle; + if (getId()==BS0) { + EvtVector4R p_init(EvtPDL::getMass(BSB),0.0,0.0,0.0); + scalar_part->init(BSB,p_init); + } + else if (getId()==BSB) { + EvtVector4R p_init(EvtPDL::getMass(BS0),0.0,0.0,0.0); + scalar_part->init(BS0,p_init); + } + else if (getId()==BD0) { + EvtVector4R p_init(EvtPDL::getMass(BDB),0.0,0.0,0.0); + scalar_part->init(BDB,p_init); + } + else if (getId()==BDB) { + EvtVector4R p_init(EvtPDL::getMass(BD0),0.0,0.0,0.0); + scalar_part->init(BD0,p_init); + } + else if (getId()==D0) { + EvtVector4R p_init(EvtPDL::getMass(D0B),0.0,0.0,0.0); + scalar_part->init(D0B,p_init); + } + else if (getId()==D0B) { + EvtVector4R p_init(EvtPDL::getMass(D0),0.0,0.0,0.0); + scalar_part->init(D0,p_init); + } + + scalar_part->setLifetime(0); + scalar_part->setDiagonalSpinDensity(); + + insertDaugPtr(0,scalar_part); + + _ndaug=1; + _isInit=true; + p=scalar_part; + p->initDecay(useMinMass); + return; + + + } + } + if ( _ndaug==1 ) std::cout << "hi " << EvtPDL::name(this->getId()) << std::endl; + + EvtDecayBase *decayer; + decayer = EvtDecayTable::getDecayFunc(p); + + if ( decayer ) { + p->makeDaughters(decayer->nRealDaughters(),decayer->getDaugs()); + //then loop over the daughters and init their decay + for(size_t i=0;igetNDaug();i++){ + // std::cout << EvtPDL::name(p->getDaug(i)->getId()) << " " << i << " " << p->getDaug(i)->getSpinType() << " " << EvtPDL::name(p->getId()) << std::endl; + if ( EvtPDL::getWidth(p->getDaug(i)->getId()) > 0.0000001) + p->getDaug(i)->initDecay(useMinMass); + else p->getDaug(i)->setMass(EvtPDL::getMeanMass(p->getDaug(i)->getId())); + } + } + + int j; + EvtId *dauId=0; + double *dauMasses=0; + int nDaugT=p->getNDaug(); + if ( nDaugT > 0) { + dauId=new EvtId[nDaugT]; + dauMasses=new double[nDaugT]; + for (j=0;jgetDaug(j)->getId(); + dauMasses[j]=p->getDaug(j)->mass(); + } + } + + EvtId *parId=0; + EvtId *othDauId=0; + EvtParticle *tempPar=p->getParent(); + if (tempPar) { + parId=new EvtId(tempPar->getId()); + if ( tempPar->getNDaug()==2 ) { + if ( tempPar->getDaug(0) == this ) othDauId=new EvtId(tempPar->getDaug(1)->getId()); + else othDauId=new EvtId(tempPar->getDaug(0)->getId()); + } + } + if ( p->getParent() && p->hasValidP4()==false ) { + if ( !useMinMass ) { + p->setMass(EvtPDL::getRandMass(p->getId(),parId,p->getNDaug(),dauId,othDauId,parMass,dauMasses)); + } + else { + p->setMass(EvtPDL::getMinMass(p->getId())); + } + } + if ( parId) delete parId; + if ( othDauId) delete othDauId; + if ( dauId) delete [] dauId; + if ( dauMasses) delete [] dauMasses; + _isInit=true; +} + + +void EvtParticle::decay(){ + //P is particle to decay, typically 'this' but sometime + //modified by mixing + EvtParticle* p=this; + //Did it mix? + //if ( p->getMixed() ) { + //should take C(p) - this should only + //happen the first time we call decay for this + //particle + //p->takeCConj(); + // p->setUnMixed(); + //} + + EvtDecayBase *decayer; + decayer = EvtDecayTable::getDecayFunc(p); + // if ( decayer ) { + // report(INFO,"EvtGen") << "calling decay for " << EvtPDL::name(p->getId()) << " " << p->mass() << " " << p->getP4() << " " << p->getNDaug() << " " << p << endl; + // report(INFO,"EvtGen") << "NDaug= " << decayer->getNDaug() << endl; + // int ti; + // for ( ti=0; tigetNDaug(); ti++) + // report(INFO,"EvtGen") << "Daug " << ti << " " << EvtPDL::name(decayer->getDaug(ti)) << endl; + // } + //if (p->_ndaug>0) { + // report(INFO,"EvtGen") <<"Is decaying particle with daughters!!!!!"<getDaug(0); + decayer = EvtDecayTable::getDecayFunc(p); + } + //now we have accepted a set of masses - time + if ( decayer != 0) { + decayer->makeDecay(p); + } + else{ + p->_rhoBackward.setDiag(p->getSpinStates()); + } + + _isDecayed=true; + return; +} + +void EvtParticle::generateMassTree() { + double massProb=1.; + double ranNum=2.; + int counter=0; + EvtParticle *p=this; + while (massProbinitDecay(); + massProb=p->compMassProb(); + ranNum=EvtRandom::Flat(); + counter++; + + if ( counter > 10000 ) { + if ( counter == 10001 ) { + report(INFO,"EvtGen") << "Too many iterations to determine the mass tree. Parent mass= "<< p->mass() << " " << massProb <printTree(); + report(INFO,"EvtGen") << "will take next combo with non-zero likelihood\n"; + } + if ( massProb>0. ) massProb=2.0; + if ( counter > 20000 ) { + // one last try - take the minimum masses + p->initDecay(true); + p->printTree(); + massProb=p->compMassProb(); + if ( massProb>0. ) { + massProb=2.0; + report(INFO,"EvtGen") << "Taking the minimum mass of all particles in the chain\n"; + } + else { + report(INFO,"EvtGen") << "Sorry, no luck finding a valid set of masses. This may be a pathological combo\n"; + assert(0); + } + } + } + } +} + +double EvtParticle::compMassProb() { + + EvtParticle *p=this; + double mass=p->mass(); + double parMass=0.; + if ( p->getParent()) { + parMass=p->getParent()->mass(); + } + + int nDaug=p->getNDaug(); + double *dMasses=0; + + int i; + if ( nDaug>0 ) { + dMasses=new double[nDaug]; + for (i=0; igetDaug(i)->mass(); + } + + double temp=1.0; + temp=EvtPDL::getMassProb(p->getId(), mass, parMass, nDaug, dMasses); + + //If the particle already has a mass, we dont need to include + //it in the probability calculation + if ( (!p->getParent() || _validP4 ) && temp>0.0 ) temp=1.; + + delete [] dMasses; + for (i=0; igetDaug(i)->compMassProb(); + } + return temp; +} + +void EvtParticle::deleteDaughters(bool keepChannel){ + + for(size_t i=0;i<_ndaug;i++){ + _daug[i]->deleteTree(); + } + + _ndaug=0; + if ( !keepChannel) _channel=-10; + _first=1; + _isInit=false; +} + +void EvtParticle::deleteTree(){ + + this->deleteDaughters(); + + delete this; + +} + +EvtVector4C EvtParticle::epsParent(int i) const { + EvtVector4C temp; + printParticle(); + report(ERROR,"EvtGen") << "and you have asked for the:"<getP4(); + ptemp=this; + + while (ptemp->getParent()!=0) { + ptemp=ptemp->getParent(); + mom=ptemp->getP4(); + temp=boostTo(temp,mom); + } + return temp; +} + +EvtVector4R EvtParticle::getP4LabBeforeFSR() { + EvtVector4R temp,mom; + EvtParticle *ptemp; + + temp=this->_pBeforeFSR; + ptemp=this; + + while (ptemp->getParent()!=0) { + ptemp=ptemp->getParent(); + mom=ptemp->getP4(); + temp=boostTo(temp,mom); + } + return temp; +} + + + +EvtVector4R EvtParticle::getP4Restframe() const { + + return EvtVector4R(mass(),0.0,0.0,0.0); + +} + +EvtVector4R EvtParticle::get4Pos() const { + + EvtVector4R temp,mom; + EvtParticle *ptemp; + + temp.set(0.0,0.0,0.0,0.0); + ptemp=getParent(); + + if (ptemp==0) return temp; + + temp=(ptemp->_t/ptemp->mass())*(ptemp->getP4()); + + while (ptemp->getParent()!=0) { + ptemp=ptemp->getParent(); + mom=ptemp->getP4(); + temp=boostTo(temp,mom); + temp=temp+(ptemp->_t/ptemp->mass())*(ptemp->getP4()); + } + + return temp; +} + + +EvtParticle * EvtParticle::nextIter(EvtParticle *rootOfTree) { + + EvtParticle *bpart; + EvtParticle *current; + + current=this; + size_t i; + + if (_ndaug!=0) return _daug[0]; + + do{ + bpart=current->_parent; + if (bpart==0) return 0; + i=0; + while (bpart->_daug[i]!=current) {i++;} + + if ( bpart==rootOfTree ) { + if ( i+1 == bpart->_ndaug ) return 0; + } + + i++; + current=bpart; + + }while(i>=bpart->_ndaug); + + return bpart->_daug[i]; + +} + + +void EvtParticle::makeStdHep(EvtStdHep& stdhep,EvtSecondary& secondary, + EvtId *list_of_stable){ + + //first add particle to the stdhep list; + stdhep.createParticle(getP4Lab(),get4Pos(),-1,-1, + EvtPDL::getStdHep(getId())); + + int ii=0; + + //lets see if this is a longlived particle and terminate the + //list building! + + while (list_of_stable[ii]!=EvtId(-1,-1)) { + if (getId()==list_of_stable[ii]){ + secondary.createSecondary(0,this); + return; + } + ii++; + } + + + + for(size_t i=0;i<_ndaug;i++){ + stdhep.createParticle(_daug[i]->getP4Lab(),_daug[i]->get4Pos(),0,0, + EvtPDL::getStdHep(_daug[i]->getId())); + } + + for(size_t i=0;i<_ndaug;i++){ + _daug[i]->makeStdHepRec(1+i,1+i,stdhep,secondary,list_of_stable); + } + return; + +} + +void EvtParticle::makeStdHep(EvtStdHep& stdhep){ + + //first add particle to the stdhep list; + stdhep.createParticle(getP4Lab(),get4Pos(),-1,-1, + EvtPDL::getStdHep(getId())); + + for(size_t i=0;i<_ndaug;i++){ + stdhep.createParticle(_daug[i]->getP4Lab(),_daug[i]->get4Pos(),0,0, + EvtPDL::getStdHep(_daug[i]->getId())); + } + + for(size_t i=0;i<_ndaug;i++){ + _daug[i]->makeStdHepRec(1+i,1+i,stdhep); + } + return; + +} + + +void EvtParticle::makeStdHepRec(int firstparent,int lastparent, + EvtStdHep& stdhep, + EvtSecondary& secondary, + EvtId *list_of_stable){ + + + int ii=0; + + //lets see if this is a longlived particle and terminate the + //list building! + + while (list_of_stable[ii]!=EvtId(-1,-1)) { + if (getId()==list_of_stable[ii]){ + secondary.createSecondary(firstparent,this); + return; + } + ii++; + } + + + + int parent_num=stdhep.getNPart(); + for(size_t i=0;i<_ndaug;i++){ + stdhep.createParticle(_daug[i]->getP4Lab(),_daug[i]->get4Pos(), + firstparent,lastparent, + EvtPDL::getStdHep(_daug[i]->getId())); + } + + for(size_t i=0;i<_ndaug;i++){ + _daug[i]->makeStdHepRec(parent_num+i,parent_num+i,stdhep, + secondary,list_of_stable); + } + return; + +} + +void EvtParticle::makeStdHepRec(int firstparent,int lastparent, + EvtStdHep& stdhep){ + + int parent_num=stdhep.getNPart(); + for(size_t i=0;i<_ndaug;i++){ + stdhep.createParticle(_daug[i]->getP4Lab(),_daug[i]->get4Pos(), + firstparent,lastparent, + EvtPDL::getStdHep(_daug[i]->getId())); + } + + for(size_t i=0;i<_ndaug;i++){ + _daug[i]->makeStdHepRec(parent_num+i,parent_num+i,stdhep); + } + return; + +} + +void EvtParticle::printTreeRec(unsigned int level) const { + + size_t newlevel,i; + newlevel = level +1; + + + if (_ndaug!=0) { + if ( level > 0 ) { + for (i=0;i<(5*level);i++) { + report(INFO,"") <<" "; + } + } + report(INFO,"") << EvtPDL::name(_id).c_str(); + report(INFO,"") << " -> "; + for(i=0;i<_ndaug;i++){ + report(INFO,"") << EvtPDL::name(_daug[i]->getId()).c_str()<<" "; + } + for(i=0;i<_ndaug;i++){ + report(INFO,"") << _daug[i]->mass()<<" " << _daug[i]->getSpinStates() << " "; + } + report(INFO,"")<printTreeRec(newlevel); + } + } +} + +void EvtParticle::printTree() const { + + report(INFO,"EvtGen") << "This is the current decay chain"<mass() << " " << this->getP4() << endl; + + this->printTreeRec(0); + report(INFO,"EvtGen") << "End of decay chain."<getId()); + if ( _daug[i]->getNDaug() > 0 ) { + retval+= " ("; + retval+= _daug[i]->treeStrRec(newlevel); + retval+= ") "; + } + else{ + if ( i+1 !=_ndaug) retval+=" "; + } + } + + return retval; +} + + +std::string EvtParticle::treeStr() const { + + std::string retval=EvtPDL::name(_id); + retval+=" -> "; + + retval+=treeStrRec(0); + + return retval; +} + +void EvtParticle::printParticle() const { + + switch (EvtPDL::getSpinType(_id)){ + case EvtSpinType::SCALAR: + report(INFO,"EvtGen") << "This is a scalar particle:"<makeDaughters(numdaughter,daughters); + + static EvtVector4R p4[100]; + static double mass[100]; + + m_b = this->mass(); + + //lange - Jan2,2002 - Need to check to see if the daughters of the parent + // have changed. If so, delete them and start over. + //report(INFO,"EvtGen") << "the parent is\n"; + //if ( this->getParent() ) { + // if ( this->getParent()->getParent() ) this->getParent()->getParent()->printTree(); + // this->getParent()->printTree(); + //} + //report(INFO,"EvtGen") << "and this is\n"; + //if ( this) this->printTree(); + bool resetDaughters=false; + + if ( numdaughter != this->getNDaug() && this->getNDaug() > 0 ) resetDaughters=true; + if ( numdaughter == this->getNDaug() ) + for (i=0; igetDaug(i)->getId() != daughters[i] ) resetDaughters=true; + //report(INFO,"EvtGen") << EvtPDL::name(this->getDaug(i)->getId()) + // << " " << EvtPDL::name(daughters[i]) << endl; + } + + if ( resetDaughters || forceDaugMassReset) { + bool t1=true; + //but keep the decay channel of the parent. + this->deleteDaughters(t1); + this->makeDaughters(numdaughter,daughters); + this->generateMassTree(); + } + + double weight=0.; + for (i=0; igetDaug(i)->mass(); + } + + if ( poleSize<-0.1) { + //special case to enforce 4-momentum conservation in 1->1 decays + if (numdaughter==1) { + this->getDaug(0)->init(daughters[0],EvtVector4R(m_b,0.0,0.0,0.0)); + } + else{ + EvtGenKine::PhaseSpace( numdaughter, mass, p4, m_b ); + for(i=0;igetDaug(i)->init(daughters[i],p4[i]); + } + } + } + else { + if ( numdaughter != 3 ) { + report(ERROR,"EvtGen") << "Only can generate pole phase space " + << "distributions for 3 body final states" + << endl<<"Will terminate."<getDaug(0)->init(daughters[0],p4[0]); + this->getDaug(1)->init(daughters[1],p4[1]); + this->getDaug(2)->init(daughters[2],p4[2]); + ok=true; + } + if ( (whichTwo1 == 1 && whichTwo2 == 2 ) || + (whichTwo1 == 2 && whichTwo2 == 1 ) ) { + weight=EvtGenKine::PhaseSpacePole( m_b, mass[2], mass[1], mass[0], + poleSize, p4); + this->getDaug(0)->init(daughters[0],p4[2]); + this->getDaug(1)->init(daughters[1],p4[1]); + this->getDaug(2)->init(daughters[2],p4[0]); + ok=true; + } + if ( (whichTwo1 == 0 && whichTwo2 == 2 ) || + (whichTwo1 == 2 && whichTwo2 == 0 ) ) { + weight=EvtGenKine::PhaseSpacePole( m_b, mass[1], mass[0], mass[2], + poleSize, p4); + this->getDaug(0)->init(daughters[0],p4[1]); + this->getDaug(1)->init(daughters[1],p4[0]); + this->getDaug(2)->init(daughters[2],p4[2]); + ok=true; + } + if ( !ok) { + report(ERROR,"EvtGen") << "Invalid pair of particle to generate a pole dist " + << whichTwo1 << " " << whichTwo2 + << endl<<"Will terminate."<getId())<setId(id[i]); + pdaug->addDaug(this); + } + + } //else +} //makeDaughters + + +void EvtParticle::setDecayProb(double prob) { + + if ( _decayProb == 0 ) _decayProb=new double; + *_decayProb=prob; +} diff --git a/TEvtGen/EvtGenBase/EvtParticle.hh b/TEvtGen/EvtGenBase/EvtParticle.hh new file mode 100644 index 00000000000..879505e9827 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtParticle.hh @@ -0,0 +1,457 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtParticle.hh +// +// Description:Class to describe all particles +// +// Modification history: +// +// DJL/RYD Sept. 25, 1996 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTPARTICLE_HH +#define EVTPARTICLE_HH + +//#include +#include +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtSpinDensity.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtSpinType.hh" +#include + +class EvtDiracSpinor; +class EvtVector4C; +class EvtTensor4C; +class EvtStdHep; +class EvtSecondary; +class EvtRaritaSchwinger; + +const int MAX_DAUG =100; +const int MAX_LEVEL=10; +const int MAX_TRIES=10000; + +class EvtParticle{ + +public: + + /** + * Default constructor. + */ + EvtParticle(); + + /** + * Destructor. + */ + virtual ~EvtParticle(); + + /** + * Returns polarization vector in the parents restframe. + */ + virtual EvtVector4C epsParent(int i) const; + + /** + * Returns polarization vector in the particles own restframe. + */ + virtual EvtVector4C eps(int i) const; + + + /** + * Returns polarization vector in the parents restframe for a photon. + */ + virtual EvtVector4C epsParentPhoton(int i); + + /** + * Returns polarization vector in the particles own restframe for a photon. + */ + virtual EvtVector4C epsPhoton(int i); + + + /** + * Returns Dirac spinor in the parents restframe for a Dirac particle. + */ + virtual EvtDiracSpinor spParent(int) const; + + /** + * Returns Dirac spinor in the particles own restframe for a Dirac particle. + */ + virtual EvtDiracSpinor sp(int) const; + + + + /** + * Returns Dirac spinor in the parents restframe for a Neutrino particle. + */ + virtual EvtDiracSpinor spParentNeutrino() const; + + /** + * Returns Dirac spinor in the particles own restframe for a + * Neutrino particle. + */ + virtual EvtDiracSpinor spNeutrino() const; + + + /** + * Returns tensor in the parents restframe for a spin 2 particle. + */ + virtual EvtTensor4C epsTensorParent(int i) const; + + /** + * Returns tensor in the particles own restframe for a spin 2 particle. + */ + virtual EvtTensor4C epsTensor(int i) const; + + /** + * Returns Rarita-Schwinger spinor in the parents restframe for a + * Rarita-Schwinger particle. + */ + virtual EvtRaritaSchwinger spRSParent(int) const; + + /** + * Returns Rarita-Schwinger spinor in the particles own restframe for a + * Rarita-Schwinger particle. + */ + virtual EvtRaritaSchwinger spRS(int) const; + + + + /** + * Initialiaze particle with id and 4momentum. + */ + virtual void init(EvtId part_n,const EvtVector4R& p4)=0; + + /** + * Add another daughter to the particle + */ + void addDaug(EvtParticle *node); + + /** + * Decay particle + */ + void decay(); + + /** + * Delete a decay chain + */ + void deleteTree(); + void deleteDaughters(bool keepChannel=false); + + /** + * Should only be used internally. + */ + void setChannel( int i ); + + /** + * Creates the daughters in the list of ids and + * adds them to the parent. Note that momentum + * is left uninitialized, this is _only_ creation. + */ + void makeDaughters(unsigned int ndaug,EvtId *id); + + /** + * Similar to the routine above except that here + * momentum is generated according to phase space + * daughters are filled with this momentum. + */ + double initializePhaseSpace(unsigned int numdaughter,EvtId *daughters, + bool forceResetMasses=false, + double poleSize=-1., int whichTwo1=0, + int whichTwo2=1); + + /** + * Get pointer the the i:th daugther. + */ + EvtParticle *getDaug(int i); + + /** + * Iterates over the particles in a decay chain. + */ + EvtParticle *nextIter(EvtParticle *rootOfTree=0); + + /** + * Makes stdhep list + */ + void makeStdHep(EvtStdHep& stdhep, + EvtSecondary& secondary,EvtId *stable_parent_ihep); + void makeStdHep(EvtStdHep& stdhep); + + /** + * Gets 4vector in the labframe, i.e., the frame in which the root + * particles momentum is measured. + */ + EvtVector4R getP4Lab() const; + + + /** + * Gets 4vector in the labframe for the 4-momentum befor FSR was + * generated in the parents decay. The lab frame is where the root + * particles momentum is measured. + */ + EvtVector4R getP4LabBeforeFSR(); + + /** + * Gets 4vector in the particles restframe, i.e. this functiont will + * return (m,0,0,0) + */ + EvtVector4R getP4Restframe() const; + + /** + * Returns the 4position of the particle in the lab frame. + */ + EvtVector4R get4Pos() const; + + /** + * Returns pointer to parent particle. + */ + EvtParticle *getParent() const; + + /** + * Makes partptr the idaug:th daugther. + */ + void insertDaugPtr(int idaug,EvtParticle* partptr){ _daug[idaug]=partptr; + partptr->_parent=this; } + /** + * Returns mass of particle. + */ + double mass() const; + + /** + * Used internally to decide if first time particle is decayed. + */ + int firstornot() const; + void setFirstOrNot(); + void resetFirstOrNot(); + + /** + * Returns Id of particle. + */ + EvtId getId() const; + + /** + * Returns particle type. + */ + + EvtSpinType::spintype getSpinType() const; + + /** + * Returns number of spin states of the particle. + */ + int getSpinStates() const; + + /** + * Returns 4momentum in parents restframe. + */ + const EvtVector4R& getP4() const; + + /** + * Sets the 4momentum in the parents restframe. + */ + void setP4(const EvtVector4R& p4){ + _p=p4; + _pBeforeFSR=p4; + } + + void setP4WithFSR(const EvtVector4R& p4){ + _p=p4; + } + + void setFSRP4toZero(){ + _pBeforeFSR.set(0.0,0.0,0.0,0.0); + } + + /** + * Retunrs the decay channel. + */ + int getChannel() const; + + /** + * Returns number of daugthers. + */ + size_t getNDaug() const; + void resetNDaug() {_ndaug=0; return;} + + /** + * Prints out the particle "tree" of a given particle. The + * tree consists of all daughters (and their daughters, etc) + * and their properties. + */ + void printTree() const; + + void printTreeRec(unsigned int level) const; + + std::string treeStr() const; + std::string treeStrRec(unsigned int level) const; + + /** + * Prints information for the particle. + */ + void printParticle() const; + + /** + * Set lifetime of the particle in parents restframe. + */ + void setLifetime(double tau); + + /** + * Generate lifetime according to pure exponential. + */ + void setLifetime(); + + /** + * Returns the lifetime. + */ + double getLifetime(); + + /** + * Set diagonal spindensity matrix. + */ + void setDiagonalSpinDensity(); + + /** + * Set spindensity matrix for e+e- -> V + */ + void setVectorSpinDensity(); + + /** + * Set forward spin density matrix. + */ + void setSpinDensityForward(const EvtSpinDensity& rho){_rhoForward=rho;} + + /** + * Set forward spin density matrix according to the density matrix + * rho in the helicity amplitude basis. + */ + void setSpinDensityForwardHelicityBasis(const EvtSpinDensity& rho); + void setSpinDensityForwardHelicityBasis(const EvtSpinDensity& rho, + double alpha, + double beta, + double gamma); + + /** + * Returns a rotation matrix need to rotate the basis state + * to the helicity basis. The EvtSpinDensity matrix is just use + * as a matrix here. This function is to be implemented in each + * derived class. + */ + virtual EvtSpinDensity rotateToHelicityBasis() const=0; + virtual EvtSpinDensity rotateToHelicityBasis(double alpha, + double beta, + double gamma) const=0; + + /** + * Get forward spin density matrix. + */ + EvtSpinDensity getSpinDensityForward(){return _rhoForward;} + + /** + * Set backward spin density matrix. + */ + void setSpinDensityBackward(const EvtSpinDensity& rho){_rhoBackward=rho;} + + /** + * Get backward spin density matrix. + */ + EvtSpinDensity getSpinDensityBackward(){return _rhoBackward;} + + //Hacks will be removed when better solutions are thought of! + //This is used to suppress use of random numbers when doing initialization + //of some models. + void noLifeTime() { _genlifetime=0; } + + //lange - April 29, 2002 + void setId(EvtId id) { _id=id;} + void initDecay(bool useMinMass=false); + void generateMassTree(); + + double compMassProb(); + + //setMass will blow away any existing 4vector + void setMass(double m) { _p=EvtVector4R(m,0.0,0.0,0.0);} + + //void setMixed() {_mix=true;} + //void setUnMixed() {_mix=false;} + //bool getMixed() {return _mix;} + + //void takeCConj() {report(INFO,"EvtGen") << "should take conj\n";} + + //this means that the particle has gone through initDecay + // and thus has a mass + bool isInitialized() {return _isInit;} + bool hasValidP4() {return _validP4;} + bool isDecayed() {return _isDecayed;} + + + // decay prob - only relevent if already decayed + // and is a scalar particle + // returned is a double* that should be prob/probMax + double* decayProb() {return _decayProb;} + void setDecayProb( double p); + + +protected: + + void setp( double e, double px, double py, double pz) { + _p.set(e,px,py,pz); + _pBeforeFSR=_p; + } + + void setp( const EvtVector4R& p4 ) { + _p =p4; + _pBeforeFSR=_p; + } + + void setpart_num(EvtId particle_number ) { + assert(_channel==-10|| + _id.getId()==particle_number.getId()|| + _id.getId()==-1); + _id = particle_number; + } + bool _validP4; + +private: + + EvtParticle* _daug[MAX_DAUG]; + size_t _ndaug; + EvtParticle* _parent; + int _channel; + int _first; + EvtId _id; + EvtVector4R _p; + EvtVector4R _pBeforeFSR; + double _t; + bool _isInit; + bool _isDecayed; + + //bool _mix; + + EvtSpinDensity _rhoForward; + EvtSpinDensity _rhoBackward; + + void makeStdHepRec(int firstparent,int lastparent,EvtStdHep& stdhep, + EvtSecondary& secondary,EvtId *stable_parent_ihep); + void makeStdHepRec(int firstparent,int lastparent,EvtStdHep& stdhep); + + + //This is a hack until things gets straightened out. (Ryd) + int _genlifetime; + + //should never be used, therefor is private. + //these does _not_ have an implementation + EvtParticle& operator=(const EvtParticle& p); + EvtParticle(const EvtParticle& p); + + double *_decayProb; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtParticleDecay.cxx b/TEvtGen/EvtGenBase/EvtParticleDecay.cxx new file mode 100644 index 00000000000..10f87a48da3 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtParticleDecay.cxx @@ -0,0 +1,77 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtDecayParm.cc +// +// Description: Store decay parameters for one decay. +// +// Modification history: +// +// RYD April 5, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include "EvtGenBase/EvtParticleDecay.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include +using std::fstream; +void EvtParticleDecay::printSummary(){ + + if (_decay!=0) _decay->printSummary(); + +} + +void EvtParticleDecay::chargeConj(EvtParticleDecay *decay){ + + _brfrsum=decay->_brfrsum; + _massmin=decay->_massmin; + + _decay=decay->_decay->clone(); + + int ndaug=decay->_decay->getNDaug(); + int narg=decay->_decay->getNArg(); + double brfr=decay->_decay->getBranchingFraction(); + std::string name=decay->_decay->getName(); + EvtId ipar=EvtPDL::chargeConj(decay->_decay->getParentId()); + int i; + EvtId* daug=new EvtId[ndaug]; + for(i=0;i_decay->getDaug(i)); + } + //Had to add 1 to make sure the vector is not empty! + std::vector args; + for(i=0;i_decay->getArgStr(i)); + } + + _decay->saveDecayInfo(ipar,ndaug,daug,narg,args,name,brfr); + + if (decay->_decay->getPHOTOS()) _decay->setPHOTOS(); + + delete [] daug; + +} + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtParticleDecay.hh b/TEvtGen/EvtGenBase/EvtParticleDecay.hh new file mode 100644 index 00000000000..d39b1c42bfa --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtParticleDecay.hh @@ -0,0 +1,64 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtParticleDecay.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTPARTICLEDECAY_HH +#define EVTPARTICLEDECAY_HH + +#include "EvtGenBase/EvtDecayBase.hh" + + +class EvtParticleDecay{ + +public: + + EvtParticleDecay(){ + _decay=0; + _brfrsum=0.0; + _massmin=0.0; + } + + ~EvtParticleDecay(){ + + if (_decay!=0) delete _decay; + + } + + void chargeConj(EvtParticleDecay* decay); + + void setDecayModel(EvtDecayBase* decay) {_decay=decay;} + EvtDecayBase* getDecayModel() {return _decay;} + double getBrfrSum() {return _brfrsum;} + void setBrfrSum(double brfrsum) {_brfrsum=brfrsum;} + double getMassMin() {return _massmin;} + void setMassMin(double massmin) {_massmin=massmin;} + + void printSummary(); + +private: + + EvtDecayBase* _decay; + + double _brfrsum; + double _massmin; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtParticleDecayList.cxx b/TEvtGen/EvtGenBase/EvtParticleDecayList.cxx new file mode 100644 index 00000000000..64279a8f09d --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtParticleDecayList.cxx @@ -0,0 +1,453 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtDecayParm.cc +// +// Description: Store decay parameters for one decay. +// +// Modification history: +// +// RYD April 5, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include "EvtGenBase/EvtParticleDecayList.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtStatus.hh" +using std::endl; +using std::fstream; + +EvtParticleDecayList::EvtParticleDecayList(const EvtParticleDecayList &o) { + _nmode=o._nmode; + _rawbrfrsum=o._rawbrfrsum; + _decaylist=new EvtParticleDecayPtr[_nmode]; + + int i; + for(i=0;i<_nmode;i++){ + _decaylist[i]=new EvtParticleDecay; + + EvtDecayBase *tModel=o._decaylist[i]->getDecayModel(); + + EvtDecayBase *tModelNew=tModel->clone(); + if (tModel->getPHOTOS()){ + tModelNew->setPHOTOS(); + } + if (tModel->verbose()){ + tModelNew->setVerbose(); + } + if (tModel->summary()){ + tModelNew->setSummary(); + } + std::vector args; + int j; + for(j=0;jgetNArg();j++){ + args.push_back(tModel->getArgStr(j)); + } + tModelNew->saveDecayInfo(tModel->getParentId(),tModel->getNDaug(), + tModel->getDaugs(), + tModel->getNArg(), + args, + tModel->getModelName(), + tModel->getBranchingFraction()); + _decaylist[i]->setDecayModel(tModelNew); + + _decaylist[i]->setBrfrSum(o._decaylist[i]->getBrfrSum()); + _decaylist[i]->setMassMin(o._decaylist[i]->getMassMin()); + } + + +} + + +EvtParticleDecayList::~EvtParticleDecayList(){ + + int i; + for(i=0;i<_nmode;i++){ + delete _decaylist[i]; + } + + if (_decaylist!=0) delete [] _decaylist; +} + +void EvtParticleDecayList::printSummary(){ + + int i; + for(i=0;i<_nmode;i++){ + _decaylist[i]->printSummary(); + } + +} + +void EvtParticleDecayList::removeDecay(){ + + int i; + for(i=0;i<_nmode;i++){ + delete _decaylist[i]; + } + + delete [] _decaylist; + _decaylist=0; + _nmode=0; + _rawbrfrsum=0.0; + +} + + +EvtDecayBase* EvtParticleDecayList::getDecayModel(EvtParticle *p){ + + if (p->getNDaug()!=0) { + assert(p->getChannel()>=0); + return getDecay(p->getChannel()).getDecayModel(); + } + if (p->getChannel() >(-1) ) { + return getDecay(p->getChannel()).getDecayModel(); + } + + + if (getNMode()==0 ) { + return 0; + } + if (getRawBrfrSum()<0.00000001 ) { + return 0; + } + + if (getNMode()==1) { + p->setChannel(0); + return getDecay(0).getDecayModel(); + } + + if (p->getChannel() >(-1)) { + report(ERROR,"EvtGen") << "Internal error!!!"<K0S + + if (getDecay(i).getDecayModel()->getNDaug()==1 ) { + p->setChannel(i); + return getDecay(i).getDecayModel(); + } + + if ( p->hasValidP4() ) { + if (getDecay(i).getMassMin() < p->mass() ) { + p->setChannel(i); + return getDecay(i).getDecayModel(); + } + } + else{ + //Lange apr29-2002 - dont know the mass yet + p->setChannel(i); + return getDecay(i).getDecayModel(); + } + } + } + } + + //Ok, we tried 10000000 times above to pick a decay channel that is + //kinematically allowed! Now we give up and search all channels! + //if that fails, the particle will not be decayed! + + report(ERROR,"EvtGen") << "Tried 10000000 times to generate decay of " + << EvtPDL::name(p->getId())<< " with mass="<mass()<mass() ) { + p->setChannel(i); + return getDecay(i).getDecayModel(); + } + } + previousBrSum=getDecay(i).getBrfrSum(); + } + + report(ERROR,"EvtGen") << "Could not decay:" + <getId()).c_str() + <<" with mass:"<mass() + <<" will throw event away! "<=_nmode) { + report(ERROR,"EvtGen") <<"Error getting channel:" + <_rawbrfrsum; + + setNMode(conjDecayList->_nmode); + + int i; + + for(i=0;i<_nmode;i++){ + _decaylist[i]=new EvtParticleDecay; + _decaylist[i]->chargeConj(conjDecayList->_decaylist[i]); + } + +} + +void EvtParticleDecayList::addMode(EvtDecayBase* decay, double brfrsum, + double massmin){ + + EvtParticleDecayPtr* newlist=new EvtParticleDecayPtr[_nmode+1]; + + int i; + for(i=0;i<_nmode;i++){ + newlist[i]=_decaylist[i]; + } + + _rawbrfrsum=brfrsum; + + newlist[_nmode]=new EvtParticleDecay; + + newlist[_nmode]->setDecayModel(decay); + newlist[_nmode]->setBrfrSum(brfrsum); + newlist[_nmode]->setMassMin(massmin); + + EvtDecayBase *newDec=newlist[_nmode]->getDecayModel(); + for(i=0;i<_nmode;i++){ + if ( newDec->matchingDecay(*(newlist[i]->getDecayModel())) ) { + + //sometimes its ok.. + if ( newDec->getModelName() == "JETSET" || newDec->getModelName() == "PYTHIA" ) continue; + if ( newDec->getModelName() == "JSCONT" || newDec->getModelName() == "PYCONT" ) continue; + if ( newDec->getModelName() == "PYGAGA" ) continue; + if ( newDec->getModelName() == "LUNDAREALAW" ) continue; + report(ERROR,"EvtGen") << "Two matching decays with same parent in decay table\n"; + report(ERROR,"EvtGen") << "Please fix that\n"; + report(ERROR,"EvtGen") << "Parent " << EvtPDL::name(newDec->getParentId()).c_str() << endl; + for (int j=0; jgetNDaug(); j++) + report(ERROR,"EvtGen") << "Daughter " << EvtPDL::name(newDec->getDaug(j)).c_str() << endl; + assert(0); + } + } + + if (_nmode!=0){ + delete [] _decaylist; + } + + if ( ( _nmode == 0 ) && ( _decaylist != 0 ) ) delete [] _decaylist ; + + _nmode++; + + _decaylist=newlist; + +} + + +void EvtParticleDecayList::finalize(){ + + if (_nmode>0) { + if ( _rawbrfrsum< 0.000001 ) { + report(ERROR,"EvtGen") << "Please give me a " + << "branching fraction sum greater than 0\n"; + assert(0); + } + if (fabs(_rawbrfrsum-1.0)>0.0001) { + report(INFO,"EvtGen") <<"Warning, sum of branching fractions for " + <getDecayModel()->getParentId()).c_str() + <<" is "<<_rawbrfrsum<getBrfrSum()/_rawbrfrsum; + _decaylist[i]->setBrfrSum(brfrsum); + } + + } + +} + + +EvtParticleDecayList& EvtParticleDecayList::operator=(const EvtParticleDecayList &o) { + if (this != &o) { + removeDecay(); + _nmode=o._nmode; + _rawbrfrsum=o._rawbrfrsum; + _decaylist=new EvtParticleDecayPtr[_nmode]; + + int i; + for(i=0;i<_nmode;i++){ + _decaylist[i]=new EvtParticleDecay; + + EvtDecayBase *tModel=o._decaylist[i]->getDecayModel(); + + EvtDecayBase *tModelNew=tModel->clone(); + if (tModel->getPHOTOS()){ + tModelNew->setPHOTOS(); + } + if (tModel->verbose()){ + tModelNew->setVerbose(); + } + if (tModel->summary()){ + tModelNew->setSummary(); + } + std::vector args; + int j; + for(j=0;jgetNArg();j++){ + args.push_back(tModel->getArgStr(j)); + } + tModelNew->saveDecayInfo(tModel->getParentId(),tModel->getNDaug(), + tModel->getDaugs(), + tModel->getNArg(), + args, + tModel->getModelName(), + tModel->getBranchingFraction()); + _decaylist[i]->setDecayModel(tModelNew); + + //_decaylist[i]->setDecayModel(tModel); + _decaylist[i]->setBrfrSum(o._decaylist[i]->getBrfrSum()); + _decaylist[i]->setMassMin(o._decaylist[i]->getMassMin()); + } + } + return *this; + + +} + + +void EvtParticleDecayList::removeMode(EvtDecayBase* decay) { + // here we will delete a decay with the same final state particles + // and recalculate the branching fractions for the remaining modes + int match = -1; + int i; + double match_bf; + + for(i=0;i<_nmode;i++){ + if ( decay->matchingDecay(*(_decaylist[i]->getDecayModel())) ) { + match = i; + } + } + + if (match < 0) { + report(ERROR,"EvtGen") << " Attempt to remove undefined mode for" << endl + << "Parent " << EvtPDL::name(decay->getParentId()).c_str() << endl + << "Daughters: "; + for (int j=0; jgetNDaug(); j++) + report(ERROR,"") << EvtPDL::name(decay->getDaug(j)).c_str() << " "; + report(ERROR,"") << endl; + ::abort(); + } + + if (match == 0) { + match_bf = _decaylist[match]->getBrfrSum(); + } else { + match_bf = (_decaylist[match]->getBrfrSum() + -_decaylist[match-1]->getBrfrSum()); + } + + double divisor = 1-match_bf; + if (divisor < 0.000001 && _nmode > 1) { + report(ERROR,"EvtGen") << "Removing requested mode leaves " + << EvtPDL::name(decay->getParentId()).c_str() + << " with zero sum branching fraction," << endl + << "but more than one decay mode remains. Aborting." + << endl; + ::abort(); + } + + EvtParticleDecayPtr* newlist=new EvtParticleDecayPtr[_nmode-1]; + + for(i=0;isetBrfrSum(newlist[i]->getBrfrSum()/divisor); + } + for(i=match+1; i<_nmode; i++) { + newlist[i-1]=_decaylist[i]; + newlist[i-1]->setBrfrSum((newlist[i-1]->getBrfrSum()-match_bf)/divisor); + } + + + delete [] _decaylist; + + _nmode--; + + _decaylist=newlist; + + if (_nmode == 0) { + delete [] _decaylist; + } + +} + + +bool EvtParticleDecayList::isJetSet() { + int i ; + EvtDecayBase * decayer ; + + for ( i = 0 ; + i < getNMode() ; + i++ ) { + decayer = getDecay( i ).getDecayModel ( ) ; + if ( decayer -> getModelName() == "PYTHIA" ) return true ; + } + + return false ; +} diff --git a/TEvtGen/EvtGenBase/EvtParticleDecayList.hh b/TEvtGen/EvtGenBase/EvtParticleDecayList.hh new file mode 100644 index 00000000000..5af376e3539 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtParticleDecayList.hh @@ -0,0 +1,85 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtParticleDecayList.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTPARTICLEDECAYLIST_HH +#define EVTPARTICLEDECAYLIST_HH + +#include "EvtGenBase/EvtParticleDecay.hh" + +typedef EvtParticleDecay* EvtParticleDecayPtr; + +class EvtParticleDecayList{ + +public: + + EvtParticleDecayList(){ + _decaylist=0; + _nmode=0; + _rawbrfrsum=0; + } + + EvtParticleDecayList(const EvtParticleDecayList &o); + + ~EvtParticleDecayList(); + + EvtParticleDecayList& operator=(const EvtParticleDecayList &o); + + int getNMode() const {return _nmode;} + + void setNMode(int nmode); + + EvtDecayBase* getDecayModel(EvtParticle *p); + EvtDecayBase* getDecayModel(int imode) {return _decaylist[imode]->getDecayModel();} + const EvtDecayBase* getDecayModel(int imode) const {return _decaylist[imode]->getDecayModel();} + + + EvtParticleDecay& getDecay(int nchannel); + + double getRawBrfrSum() {return _rawbrfrsum;} + void setRawBrfrSum(double rawbrfrsum) {_rawbrfrsum=rawbrfrsum;} + + void makeChargeConj(EvtParticleDecayList* conjDecayList); + + void removeDecay(); + + void alocateDecay(int nmode){ + _decaylist= new EvtParticleDecayPtr[nmode]; + } + + void removeMode(EvtDecayBase* decay); + + void addMode(EvtDecayBase* decay,double brfr,double massmin); + void finalize(); + + void printSummary(); + + bool isJetSet() ; + +private: + + EvtParticleDecayPtr* _decaylist; + + double _rawbrfrsum; + int _nmode; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtParticleFactory.cxx b/TEvtGen/EvtGenBase/EvtParticleFactory.cxx new file mode 100644 index 00000000000..7faac98dbf4 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtParticleFactory.cxx @@ -0,0 +1,216 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtParticleFactory.cc +// +// Description: Class to describe all particles +// +// Modification history: +// +// DJL December 27, 1999 Module created. +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtDiracParticle.hh" +#include "EvtGenBase/EvtScalarParticle.hh" +#include "EvtGenBase/EvtVectorParticle.hh" +#include "EvtGenBase/EvtTensorParticle.hh" +#include "EvtGenBase/EvtPhotonParticle.hh" +#include "EvtGenBase/EvtNeutrinoParticle.hh" +#include "EvtGenBase/EvtStringParticle.hh" +#include "EvtGenBase/EvtRaritaSchwingerParticle.hh" +#include "EvtGenBase/EvtHighSpinParticle.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtParticleFactory.hh" +using std::endl; + +EvtParticle* EvtParticleFactory::particleFactory(EvtSpinType::spintype spinType){ + + if ( spinType == EvtSpinType::SCALAR ) { + return new EvtScalarParticle; + } + + if ( spinType == EvtSpinType::VECTOR ) { + return new EvtVectorParticle; + } + if ( spinType == EvtSpinType::DIRAC ) { + return new EvtDiracParticle; + } + if ( spinType == EvtSpinType::NEUTRINO ) { + return new EvtNeutrinoParticle; + } + if ( spinType == EvtSpinType::PHOTON ) { + return new EvtPhotonParticle; + } + if ( spinType == EvtSpinType::TENSOR ) { + return new EvtTensorParticle; + } + if ( spinType == EvtSpinType::STRING ) { + return new EvtStringParticle; + } + if ( spinType == EvtSpinType::RARITASCHWINGER ) { + return new EvtRaritaSchwingerParticle; + } + if ( spinType == EvtSpinType::SPIN5HALF ) { + return new EvtHighSpinParticle; + } + if ( spinType == EvtSpinType::SPIN3 ) { + return new EvtHighSpinParticle; + } + if ( spinType == EvtSpinType::SPIN7HALF ) { + return new EvtHighSpinParticle; + } + if ( spinType == EvtSpinType::SPIN4 ) { + return new EvtHighSpinParticle; + } + + report(ERROR,"EvtGen")<<"Error in EvtParticleFactory::particleFactory"<init(id, p4); + myPart->setSpinDensityForward(rho); + return myPart; + } + + if ( thisSpin == EvtSpinType::VECTOR ) { + EvtVectorParticle *myPart; + myPart=new EvtVectorParticle; + myPart->init(id, p4); + myPart->setSpinDensityForward(rho); + return myPart; + } + if ( thisSpin == EvtSpinType::DIRAC ) { + EvtDiracParticle *myPart; + myPart=new EvtDiracParticle; + myPart->init(id, p4); + myPart->setSpinDensityForward(rho); + return myPart; + } + if ( thisSpin == EvtSpinType::NEUTRINO ) { + EvtNeutrinoParticle *myPart; + myPart=new EvtNeutrinoParticle; + myPart->init(id, p4); + myPart->setSpinDensityForward(rho); + return myPart; + } + if ( thisSpin == EvtSpinType::PHOTON ) { + EvtPhotonParticle *myPart; + myPart=new EvtPhotonParticle; + myPart->init(id, p4); + myPart->setSpinDensityForward(rho); + return myPart; + } + if ( thisSpin == EvtSpinType::TENSOR ) { + EvtTensorParticle *myPart; + myPart=new EvtTensorParticle; + myPart->init(id, p4); + myPart->setSpinDensityForward(rho); + return myPart; + } + if ( thisSpin == EvtSpinType::STRING ) { + EvtStringParticle *myPart; + myPart=new EvtStringParticle; + myPart->init(id, p4); + myPart->setSpinDensityForward(rho); + return myPart; + } + if ( thisSpin == EvtSpinType::SPIN3 ) { + EvtHighSpinParticle *myPart; + myPart=new EvtHighSpinParticle; + myPart->init(id, p4); + myPart->setSpinDensityForward(rho); + return myPart; + } + if ( thisSpin == EvtSpinType::SPIN5HALF ) { + EvtHighSpinParticle *myPart; + myPart=new EvtHighSpinParticle; + myPart->init(id, p4); + myPart->setSpinDensityForward(rho); + return myPart; + } + if ( thisSpin == EvtSpinType::SPIN7HALF ) { + EvtHighSpinParticle *myPart; + myPart=new EvtHighSpinParticle; + myPart->init(id, p4); + myPart->setSpinDensityForward(rho); + return myPart; + } + if ( thisSpin == EvtSpinType::RARITASCHWINGER ) { + EvtRaritaSchwingerParticle *myPart; + myPart=new EvtRaritaSchwingerParticle; + myPart->init(id, p4); + myPart->setSpinDensityForward(rho); + return myPart; + } + if ( thisSpin == EvtSpinType::SPIN4 ) { + EvtHighSpinParticle *myPart; + myPart=new EvtHighSpinParticle; + myPart->init(id, p4); + myPart->setSpinDensityForward(rho); + return myPart; + } + + report(ERROR,"EvtGen")<<"Error in EvtParticleFactory::particleFactory"< +#include +#include "EvtGenBase/EvtValError.hh" +#include "EvtGenBase/EvtPredGen.hh" +#include "EvtGenBase/EvtStreamInputIterator.hh" +#include "EvtGenBase/EvtPdfMax.hh" +#include "EvtGenBase/EvtMacros.hh" +#include "EvtGenBase/EvtRandom.hh" + +template class EvtPdfPred; +template class EvtPdfGen; + +template class EvtPdf { +public: + + EvtPdf() {} + EvtPdf(const EvtPdf& other) : _itg(other._itg) {} + virtual ~EvtPdf() {} + virtual EvtPdf* clone() const = 0; + + double evaluate(const T& p) const { + if(p.isValid()) return pdf(p); + else return 0.; + } + + // Find PDF maximum. Points are sampled according to pc + + EvtPdfMax findMax(const EvtPdf& pc, int N); + + // Find generation efficiency. + + EvtValError findGenEff(const EvtPdf& pc, int N, int nFindMax); + + // Analytic integration. Calls cascade down until an overridden + // method is called. + + void setItg(EvtValError itg) {_itg = itg; } + + EvtValError getItg() const { + if(!_itg.valueKnown()) _itg = compute_integral(); + return _itg; + } + EvtValError getItg(int N) const { + if(!_itg.valueKnown()) _itg = compute_integral(N); + return _itg; + } + + virtual EvtValError compute_integral() const + //make sun happy - return something + { printf("Analytic integration of PDF is not defined\n"); assert(0); return compute_integral();} + virtual EvtValError compute_integral(int) const { return compute_integral(); } + + // Monte Carlo integration. + + EvtValError compute_mc_integral(const EvtPdf& pc, int N); + + // Generation. Create predicate accept-reject generators. + // nMax iterations will be used to find the maximum of the accept-reject predicate + + EvtPredGen,EvtPdfPred > accRejGen(const EvtPdf& pc, int nMax, double factor = 1.); + + virtual T randomPoint(); + +protected: + + virtual double pdf(const T&) const = 0; + mutable EvtValError _itg; +}; + + +template class EvtPdfGen { +public: + typedef T result_type; + + EvtPdfGen() : _pdf(0) {} + EvtPdfGen(const EvtPdfGen& other) : + _pdf(other._pdf ? other._pdf->clone() : 0) + {} + EvtPdfGen(const EvtPdf& pdf) : + _pdf(pdf.clone()) + {} + ~EvtPdfGen() { delete _pdf;} + + result_type operator()() {return _pdf->randomPoint();} + +private: + + EvtPdf* _pdf; +}; + + +template class EvtPdfPred { +public: + typedef T argument_type; + typedef bool result_type; + + EvtPdfPred() {} + EvtPdfPred(const EvtPdf& thePdf) : itsPdf(thePdf.clone()) {} + EvtPdfPred(const EvtPdfPred& other) : COPY_PTR(itsPdf), COPY_MEM(itsPdfMax) {} + ~EvtPdfPred() { delete itsPdf; } + + result_type operator()(argument_type p) + { + assert(itsPdf); + assert(itsPdfMax.valueKnown()); + + double random = EvtRandom::Flat(0.,itsPdfMax.value()); + return (random <= itsPdf->evaluate(p)); + } + + EvtPdfMax getMax() const { return itsPdfMax; } + void setMax(const EvtPdfMax& max) { itsPdfMax = max; } + template void compute_max(InputIterator it, InputIterator end, + double factor = 1.) + { + T p = *it++; + itsPdfMax = EvtPdfMax(p,itsPdf->evaluate(p)*factor); + + while(!(it == end)) { + T p = *it++; + double val = itsPdf->evaluate(p)*factor; + if(val > itsPdfMax.value()) itsPdfMax = EvtPdfMax(p,val); + } + } + +private: + + EvtPdf* itsPdf; + EvtPdfMax itsPdfMax; +}; + + +template class EvtPdfUnary { +public: + typedef double result_type; + typedef T argument_type; + + EvtPdfUnary() {} + EvtPdfUnary(const EvtPdf& thePdf) : itsPdf(thePdf.clone()) {} + EvtPdfUnary(const EvtPdfUnary& other) : COPY_PTR(itsPdf) {} + ~EvtPdfUnary() { delete itsPdf; } + + result_type operator()(argument_type p) + { + assert(itsPdf); + double ret = itsPdf->evaluate(p); + return ret; + } + +private: + + EvtPdf* itsPdf; +}; + + +template class EvtPdfDiv : public EvtPdf { +public: + + EvtPdfDiv() : itsNum(0), itsDen(0) {} + EvtPdfDiv(const EvtPdf& theNum, const EvtPdf& theDen) + : EvtPdf(), itsNum(theNum.clone()), itsDen(theDen.clone()) + {} + EvtPdfDiv(const EvtPdfDiv& other) + : EvtPdf(other), COPY_PTR(itsNum), COPY_PTR(itsDen) + {} + virtual ~EvtPdfDiv() { delete itsNum; delete itsDen; } + virtual EvtPdf* clone() const + { return new EvtPdfDiv(*this); } + + virtual double pdf(const T& p) const + { + double num = itsNum->evaluate(p); + double den = itsDen->evaluate(p); + assert(den != 0); + return num/den; + } + +private: + + EvtPdf* itsNum; // numerator + EvtPdf* itsDen; // denominator +}; + + +template +EvtPdfMax EvtPdf::findMax(const EvtPdf& pc, int N) +{ + EvtPdfPred pred(*this); + EvtPdfGen gen(pc); + pred.compute_max(iter(gen,N),iter(gen)); + EvtPdfMax p = pred.getMax(); + return p; +} + + +template +EvtValError EvtPdf::findGenEff(const EvtPdf& pc, int N, int nFindMax) +{ + assert(N > 0 || nFindMax > 0); + EvtPredGen,EvtPdfPred > gen = accRejGen(pc,nFindMax); + int i; + for(i=0;i +EvtValError EvtPdf::compute_mc_integral(const EvtPdf& pc, int N) +{ + assert(N > 0); + + EvtValError otherItg = pc.getItg(); + EvtPdfDiv pdfdiv(*this,pc); + EvtPdfUnary unary(pdfdiv); + + EvtPdfGen gen(pc); + EvtStreamInputIterator begin = iter(gen,N); + EvtStreamInputIterator end; + + double sum = 0.; + double sum2 = 0.; + while(!(begin == end)) { + + double value = pdfdiv.evaluate(*begin++); + sum += value; + sum2 += value*value; + } + + EvtValError x; + if(N > 0) { + double av = sum/((double) N); + if(N > 1) { + double dev2 = (sum2 - av*av*N)/((double) (N - 1)); + // Due to numerical precision dev2 may sometimes be negative + if(dev2 < 0.) dev2 = 0.; + double error = sqrt(dev2/((double) N)); + x = EvtValError(av,error); + } + else x = EvtValError(av); + } + _itg = x * pc.getItg(); + return _itg; +} + +template +T EvtPdf::randomPoint() +{ + printf("Function defined for analytic PDFs only\n"); + assert(0); + T temp; + return temp; +} + +template +EvtPredGen,EvtPdfPred > +EvtPdf::accRejGen(const EvtPdf& pc, int nMax, double factor) +{ + EvtPdfGen gen(pc); + EvtPdfDiv pdfdiv(*this,pc); + EvtPdfPred pred(pdfdiv); + pred.compute_max(iter(gen,nMax),iter(gen),factor); + return EvtPredGen,EvtPdfPred >(gen,pred); +} + +#endif + + + + + diff --git a/TEvtGen/EvtGenBase/EvtPdfMax.hh b/TEvtGen/EvtGenBase/EvtPdfMax.hh new file mode 100644 index 00000000000..08748f4bb62 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPdfMax.hh @@ -0,0 +1,52 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPdfMax.hh,v 1.4 2004/12/03 22:18:56 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Pdf maximum and its location + +#ifndef EVT_PDF_MAX_HH +#define EVT_PDF_MAX_HH + +#include "EvtGenBase/EvtMacros.hh" + +// PDF maximum - helper class + +template +class EvtPdfMax { + +public: + + EvtPdfMax() + : _value(-1),_valueKnown(false), _locKnown(false) + {} + EvtPdfMax(double value) + : _value(value),_valueKnown(true), _locKnown(false) + {} + EvtPdfMax(Point p, double value) + : _value(value), _valueKnown(true), _locKnown(true), _loc(p) + {} + EvtPdfMax(const EvtPdfMax& other) + : COPY_MEM(_value), COPY_MEM(_valueKnown), COPY_MEM(_locKnown), COPY_MEM(_loc) + {} + ~EvtPdfMax() {} + + bool valueKnown() const { return _valueKnown; } + double value() const { assert(_valueKnown); return _value; } + bool locKnown() const { return _locKnown; } + Point loc() const { assert(_locKnown); return _loc; } + +private: + + double _value; + bool _valueKnown; + bool _locKnown; + Point _loc; + +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtPdfSum.hh b/TEvtGen/EvtGenBase/EvtPdfSum.hh new file mode 100644 index 00000000000..b99cefc4680 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPdfSum.hh @@ -0,0 +1,138 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPdfSum.hh,v 1.10 2009/02/19 03:22:30 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Sum of PDF functions. + +#ifndef EVT_PDF_SUM_HH +#define EVT_PDF_SUM_HH + +#include +#include +using std::vector; +#include "EvtGenBase/EvtPdf.hh" + +template +class EvtPdfSum : public EvtPdf { +public: + + EvtPdfSum() {} + EvtPdfSum(const EvtPdfSum& other); + virtual ~EvtPdfSum(); + virtual EvtPdf* clone() const { return new EvtPdfSum(*this); } + + + // Manipulate terms and coefficients + + void addTerm(double c,const EvtPdf& pdf) + { assert(c >= 0.); _c.push_back(c); _term.push_back(pdf.clone()); } + + void addOwnedTerm(double c, EvtPdf* pdf) + { _c.push_back(c); _term.push_back(pdf); } + + size_t nTerms() const { return _term.size(); } // number of terms + + inline double c(int i) const { return _c[i]; } + inline EvtPdf* getPdf(int i) const { return _term[i]; } + + + // Integrals + + virtual EvtValError compute_integral() const; + virtual EvtValError compute_integral(int N) const; + virtual T randomPoint(); + +protected: + + virtual double pdf(const T& p) const; + + vector _c; // coefficients + vector*> _term; // pointers to pdfs +}; + + +template +EvtPdfSum::EvtPdfSum(const EvtPdfSum& other) + : EvtPdf(other) +{ + for(size_t i = 0; i < other.nTerms(); i++) { + _c.push_back(other._c[i]); + _term.push_back(other._term[i]->clone()); + } +} + +template +EvtPdfSum::~EvtPdfSum() +{ + for(size_t i = 0; i < _c.size(); i++) { + delete _term[i]; + } +} + + +template +double EvtPdfSum::pdf(const T& p) const +{ + double ret = 0.; + for(size_t i=0; i < _c.size(); i++) { + ret += _c[i] * _term[i]->evaluate(p); + } + return ret; +} + +/* + * Compute the sum integral by summing all term integrals. + */ + +template +EvtValError EvtPdfSum::compute_integral() const +{ + EvtValError itg(0.0,0.0); + for(size_t i=0;igetItg(); + } + return itg; +} + +template +EvtValError EvtPdfSum::compute_integral(int N) const +{ + EvtValError itg(0.0,0.0); + for(size_t i=0;igetItg(N); + return itg; +} + + +/* + * Sample points randomly according to the sum of PDFs. First throw a random number uniformly + * between zero and the value of the sum integral. Using this random number select one + * of the PDFs. The generate a random point according to that PDF. + */ + +template +T EvtPdfSum::randomPoint() +{ + if(!this->_itg.valueKnown()) this->_itg = compute_integral(); + + double max = this->_itg.value(); + double rnd = EvtRandom::Flat(0,max); + + double sum = 0.; + size_t i; + for(i = 0; i < nTerms(); i++) { + double itg = _term[i]->getItg().value(); + sum += _c[i] * itg; + if(sum > rnd) break; + } + + return _term[i]->randomPoint(); +} + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtPhotonParticle.cxx b/TEvtGen/EvtGenBase/EvtPhotonParticle.cxx new file mode 100644 index 00000000000..86f18be98ac --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPhotonParticle.cxx @@ -0,0 +1,170 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtPhotonParticle.cc +// +// Description: Class to describe massless vectors +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtPhotonParticle.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; + +EvtPhotonParticle::~EvtPhotonParticle(){} + +void EvtPhotonParticle::init(EvtId part_n,const EvtVector4R& p4){ + + init(part_n,p4.get(0),p4.get(1), + p4.get(2),p4.get(3)); +} + +void EvtPhotonParticle::init(EvtId part_n,double e,double px,double py,double pz){ + + _validP4=true; + setp(e,px,py,pz); + setpart_num(part_n); + + setLifetime(); + + //defere calculation of basis vectors untill they are needed! + _evalBasis=0; + +} + + +EvtVector4C EvtPhotonParticle::epsParentPhoton(int i){ + + if (!_evalBasis){ + + _evalBasis=1; + eps1.set(EvtComplex(0.0,0.0), EvtComplex(-1.0/sqrt(2.0),0.0), + EvtComplex(0.0,-1.0/sqrt(2.0)), EvtComplex(0.0,0.0)); + eps2.set(EvtComplex(0.0,0.0), EvtComplex(1.0/sqrt(2.0),0.0), + EvtComplex(0.0,-1.0/sqrt(2.0)), EvtComplex(0.0,0.0)); + + // These are for photon along z axis. Rotate to get + // correct direction... + + double phi,theta; + + EvtVector4R p=this->getP4(); + + double px=p.get(1); + double py=p.get(2); + double pz=p.get(3); + + phi = atan2(py,px); + theta = acos(pz/sqrt(px*px+py*py+pz*pz)); + eps1.applyRotateEuler(phi,theta,-phi); + eps2.applyRotateEuler(phi,theta,-phi); + + } + + + EvtVector4C temp; + + switch(i) { + + case 0: + temp=eps1; + break; + case 1: + temp=eps2; + break; + default: + report(ERROR,"EvtGen") << "EvtPhotonParticle.cc: Asked " + << "for state:"<epsParentPhoton(0); + EvtVector4C e2=((EvtParticle*)this)->epsParentPhoton(1); + + + EvtSpinDensity R; + R.setDim(2); + + R.set(0,0,(eplus.conj())*e1); + R.set(0,1,(eplus.conj())*e2); + + R.set(1,0,(eminus.conj())*e1); + R.set(1,1,(eminus.conj())*e2); + + return R; + +} + + +EvtSpinDensity EvtPhotonParticle::rotateToHelicityBasis(double alpha, + double beta, + double gamma) const{ + + EvtVector4C eplus(0.0,-1.0/sqrt(2.0), + EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + EvtVector4C eminus(0.0,1.0/sqrt(2.0), + EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + + eplus.applyRotateEuler(alpha,beta,gamma); + eminus.applyRotateEuler(alpha,beta,gamma); + + + //Really uggly have to cast away constness because the + //function epsParentPhoton caches the state vectors... + EvtVector4C e1=((EvtParticle*)this)->epsParentPhoton(0); + EvtVector4C e2=((EvtParticle*)this)->epsParentPhoton(1); + + EvtSpinDensity R; + R.setDim(2); + + R.set(0,0,(eplus.conj())*e1); + R.set(0,1,(eplus.conj())*e2); + + R.set(1,0,(eminus.conj())*e1); + R.set(1,1,(eminus.conj())*e2); + + return R; + +} + + diff --git a/TEvtGen/EvtGenBase/EvtPhotonParticle.hh b/TEvtGen/EvtGenBase/EvtPhotonParticle.hh new file mode 100644 index 00000000000..a6298b42431 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPhotonParticle.hh @@ -0,0 +1,61 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtPhotonParticle.hh +// +// Description:Class to describe photons +// +// Modification history: +// +// DJL/RYD Sept. 25, 1996 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTPHOTONPARTICLE_HH +#define EVTPHOTONPARTICLE_HH + +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtParticle.hh" +class EvtId; + +//Class to handle massless spin 1 particles. + +class EvtPhotonParticle: public EvtParticle { + +public: + + EvtPhotonParticle(){} + virtual ~EvtPhotonParticle(); + + void init(EvtId part_n,double e,double px,double py,double pz); + void init(EvtId part_n,const EvtVector4R& p4); + + //Return polarization vectors + EvtVector4C epsParentPhoton(int i); + EvtVector4C epsPhoton(int i); + + + EvtSpinDensity rotateToHelicityBasis() const; + EvtSpinDensity rotateToHelicityBasis(double alpha, + double beta, + double gamma) const; + +private: + + EvtVector4C eps1,eps2; + int _evalBasis; + + EvtPhotonParticle(const EvtPhotonParticle& photon); + EvtPhotonParticle& operator=(const EvtPhotonParticle& photon); + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtPoint1D.cxx b/TEvtGen/EvtGenBase/EvtPoint1D.cxx new file mode 100644 index 00000000000..885743a28ba --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPoint1D.cxx @@ -0,0 +1,36 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPoint1D.cc,v 1.4 2004/12/21 19:58:47 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Point on a finite 1-D interval. isValid shows whether for a given specification, +// the coordinate _value is inside the interval defined by _min, _max. + +#include +#include "EvtGenBase/EvtPoint1D.hh" + +EvtPoint1D::EvtPoint1D() + : _min(0.), _max(-1.), _value(0.), _valid(false) +{} + +EvtPoint1D::EvtPoint1D(double value) + : _min(0.), _max(-1.), _value(value), _valid(true) +{} + +EvtPoint1D::EvtPoint1D(double min, double max, double value) + : _min(min), _max(max), _value(value), _valid((_min <= _value && _value <= _max) ? true : false) +{} + +EvtPoint1D::~EvtPoint1D() +{} + +void EvtPoint1D::print() const +{ + printf("%f (%f : %f)\n",_value,_min,_max); +} + diff --git a/TEvtGen/EvtGenBase/EvtPoint1D.hh b/TEvtGen/EvtGenBase/EvtPoint1D.hh new file mode 100644 index 00000000000..4d84141077e --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPoint1D.hh @@ -0,0 +1,46 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPoint1D.hh,v 1.2 2003/06/20 17:20:10 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Point on a finite 1-D interval. isValid shows whether for a given specification, +// the coordinate _value is inside the interval defined by _min, _max. + +#ifndef EVT_POINT_1D_HH +#define EVT_POINT_1D_HH + +class EvtPoint1D { +public: + + EvtPoint1D(); + EvtPoint1D(double value); + EvtPoint1D(double min, double max, double value); + ~EvtPoint1D(); + + bool isValid() const + { + return _valid; + } + + double value() const + { + return _value; + } + + void print() const; + +private: + + double _min; // interval minimum + double _max; // interval maximum + double _value; + bool _valid; // valid point inside the interval? + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtPointPred.hh b/TEvtGen/EvtGenBase/EvtPointPred.hh new file mode 100644 index 00000000000..baca96f889b --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPointPred.hh @@ -0,0 +1,31 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPointPred.hh,v 1.1 2003/03/03 05:38:19 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Predicate testing validity of a point. The point class must provide +// bool isValid() method + +#ifndef EVT_POINT_PRED_HH +#define EVT_POINT_PRED_HH + +template class EvtPointPred { +public: + + typedef Point argument_type; + typedef bool result_type; + + EvtPointPred() {} + EvtPointPred(const EvtPointPred&) {} + ~EvtPointPred() {} + + result_type operator()(argument_type x) + { + return x.isValid(); + } +}; +#endif diff --git a/TEvtGen/EvtGenBase/EvtPredGen.hh b/TEvtGen/EvtGenBase/EvtPredGen.hh new file mode 100644 index 00000000000..57f68567d4b --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPredGen.hh @@ -0,0 +1,77 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPredGen.hh,v 1.3 2003/06/19 02:17:14 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// A predicate is applied to a generator to get another generator. +// Accept-reject can be implemented in this way. +// +// Predicate +// Generator -> Generator + +#ifndef EVT_PRED_GEN_HH +#define EVT_PRED_GEN_HH + +#include + +template +class EvtPredGen { + +public: + + typedef typename Generator::result_type result_type; + + EvtPredGen() + : itsTried(0), itsPassed(0) + {} + + EvtPredGen(Generator gen, Predicate pred) + : itsGen(gen), itsPred(pred), itsTried(0), itsPassed(0) + {} + + EvtPredGen(const EvtPredGen& other) + : itsGen(other.itsGen), itsPred(other.itsPred), + itsTried(other.itsTried), itsPassed(other.itsPassed) + {} + + ~EvtPredGen() + {} + + result_type operator()() { + + int i = 0; + int MAX = 10000; + while(i++ < MAX) { + + itsTried++; + result_type point = itsGen(); + if(itsPred(point)) { + itsPassed++; + return point; + } + } + + printf("No random point generated after %d attempts\n",MAX); + printf("Sharp peak? Consider using pole compensation.\n"); + printf("I will now pick a point at random to return.\n"); + return itsGen(); + } + + inline int getTried() const { return itsTried; } + inline int getPassed() const { return itsPassed; } + +protected: + + Generator itsGen; + Predicate itsPred; + int itsTried; + int itsPassed; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtPropBreitWigner.cxx b/TEvtGen/EvtGenBase/EvtPropBreitWigner.cxx new file mode 100644 index 00000000000..0690cced1e6 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPropBreitWigner.cxx @@ -0,0 +1,41 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPropBreitWigner.cc,v 1.5 2004/12/21 19:58:47 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#include +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtPropBreitWigner.hh" + + +EvtPropBreitWigner::EvtPropBreitWigner(double m0, double g0) + : EvtPropagator(m0,g0) +{} + + +EvtPropBreitWigner::EvtPropBreitWigner(const EvtPropBreitWigner& other) + : EvtPropagator(other) +{} + + +EvtPropBreitWigner::~EvtPropBreitWigner() +{} + + +EvtAmplitude* EvtPropBreitWigner::clone() const +{ + return new EvtPropBreitWigner(*this); +} + + +EvtComplex EvtPropBreitWigner::amplitude(const EvtPoint1D& x) const +{ + double m = x.value(); + EvtComplex value = sqrt(_g0/EvtConst::twoPi)/(m-_m0-EvtComplex(0.0,_g0/2.)); + return value; +} diff --git a/TEvtGen/EvtGenBase/EvtPropBreitWigner.hh b/TEvtGen/EvtGenBase/EvtPropBreitWigner.hh new file mode 100644 index 00000000000..7741fde4ad1 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPropBreitWigner.hh @@ -0,0 +1,35 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPropBreitWigner.hh,v 1.3 2003/06/20 17:20:11 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Non-relativistic Breit-Wigner propagator + +#ifndef EVT_PROP_BREIT_WIGNER_HH +#define EVT_PROP_BREIT_WIGNER_HH + +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtPropagator.hh" + +class EvtPropBreitWigner : public EvtPropagator { +public: + + EvtPropBreitWigner(double m0, double g0); + EvtPropBreitWigner(const EvtPropBreitWigner& other); + ~EvtPropBreitWigner(); + + EvtAmplitude* clone() const; + +protected: + + EvtComplex amplitude(const EvtPoint1D& m) const; + +}; + + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtPropBreitWignerRel.cxx b/TEvtGen/EvtGenBase/EvtPropBreitWignerRel.cxx new file mode 100644 index 00000000000..78ed0df8fd8 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPropBreitWignerRel.cxx @@ -0,0 +1,39 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPropBreitWignerRel.cc,v 1.5 2004/12/21 19:58:47 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#include +#include "EvtGenBase/EvtPropBreitWignerRel.hh" + + +EvtPropBreitWignerRel::EvtPropBreitWignerRel(double m0, double g0) + : EvtPropagator(m0,g0) +{} + + +EvtPropBreitWignerRel::EvtPropBreitWignerRel(const EvtPropBreitWignerRel& other) + : EvtPropagator(other) +{} + + +EvtPropBreitWignerRel::~EvtPropBreitWignerRel() +{} + + +EvtAmplitude* EvtPropBreitWignerRel::clone() const +{ + return new EvtPropBreitWignerRel(*this); +} + + +EvtComplex EvtPropBreitWignerRel::amplitude(const EvtPoint1D& x) const +{ + double m = x.value(); + return 1./(_m0*_m0-m*m-EvtComplex(0.,_m0*_g0)); +} diff --git a/TEvtGen/EvtGenBase/EvtPropBreitWignerRel.hh b/TEvtGen/EvtGenBase/EvtPropBreitWignerRel.hh new file mode 100644 index 00000000000..c8781531a35 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPropBreitWignerRel.hh @@ -0,0 +1,33 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPropBreitWignerRel.hh,v 1.3 2003/06/20 17:20:11 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Relativistic Breit-Wigner Propagator + +#ifndef EVT_PROP_BREIT_WIGNER_REL_HH +#define EVT_PROP_BREIT_WIGNER_REL_HH + +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtPropagator.hh" + +class EvtPropBreitWignerRel : public EvtPropagator { +public: + + EvtPropBreitWignerRel(double m0, double g0); + EvtPropBreitWignerRel(const EvtPropBreitWignerRel& other); + ~EvtPropBreitWignerRel(); + + EvtAmplitude* clone() const; + +protected: + + EvtComplex amplitude(const EvtPoint1D& x) const; +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtPropFlatte.cxx b/TEvtGen/EvtGenBase/EvtPropFlatte.cxx new file mode 100644 index 00000000000..84a69b96d55 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPropFlatte.cxx @@ -0,0 +1,97 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * Author : D. Dujmic, J. Thompson + * + * Copyright (C) 2005 SLAC + *******************************************************************************/ + +#include +#include "EvtGenBase/EvtPropFlatte.hh" + +#include +using std::cout; +using std::endl; + +EvtPropFlatte::EvtPropFlatte(double m0, + double g0, double m0a, double m0b, + double g1, double m1a, double m1b) : + EvtPropagator( m0, g0), + _m0a(m0a), + _m0b(m0b), + _g1 (g1), + _m1a(m1a), + _m1b(m1b) +{} + + +EvtPropFlatte::EvtPropFlatte(const EvtPropFlatte& other) : + EvtPropagator(other), + _m0a (other._m0a), + _m0b (other._m0b), + _g1 (other._g1), + _m1a (other._m1a), + _m1b (other._m1b) +{} + + +EvtPropFlatte::~EvtPropFlatte() +{} + + +EvtAmplitude* EvtPropFlatte::clone() const +{ + return new EvtPropFlatte(*this); +} + + + +EvtComplex EvtPropFlatte::amplitude(const EvtPoint1D& x) const +{ + + /* + + Use BES parameterization: + + 1. + ----------------------------------------- + m0^2 - m^2 - i*m0*( g1*rho1 + g2*rho2 ) + + + Resonance mass: m0 + Channel1: m0a, m0b, g0 + Channel2: m1a, m1b, g1 + + where breakup momenta q's are: + + E0a = (m^2 + m0a^2 - m0b^2) / 2m + q0 = sqrt( E0a^2 - m0a^2 ) + + E1a = (m^2 + m1a^2 - m1b^2) / 2m + q1 = sqrt( E1a^2 - m1a^2 ) + + + */ + + + + double s = x.value()*x.value(); + double m = x.value(); + + double E0a = 0.5 * (s + _m0a*_m0a - _m0b*_m0b) / m; + double qSq0 = E0a*E0a - _m0a*_m0a; + + double E1a = 0.5 * (s + _m1a*_m1a - _m1b*_m1b) / m; + double qSq1 = E1a*E1a - _m1a*_m1a; + + EvtComplex gamma0 = qSq0 >= 0 ? EvtComplex( _g0 * sqrt(qSq0), 0) : EvtComplex( 0, _g0 * sqrt(-qSq0) ); + EvtComplex gamma1 = qSq1 >= 0 ? EvtComplex( _g1 * sqrt(qSq1), 0) : EvtComplex( 0, _g1 * sqrt(-qSq1) ); + + EvtComplex gamma = gamma0 + gamma1; + + EvtComplex a = 1.0/( _m0*_m0 - s - EvtComplex(0.0,2*_m0/m)*gamma ); + + return a; +} + diff --git a/TEvtGen/EvtGenBase/EvtPropFlatte.hh b/TEvtGen/EvtGenBase/EvtPropFlatte.hh new file mode 100644 index 00000000000..26630a2f34e --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPropFlatte.hh @@ -0,0 +1,43 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * Author: Denis Dujmic, SLAC + * + * Copyright (C) 2005 SLAC + *******************************************************************************/ + +// Flatte propagator: S.M.Flatte, Phys. Lett. B63, 224 (1976) + +#ifndef EVT_PROP_FLATTE_HH +#define EVT_PROP_FLATTE_HH + +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtPropagator.hh" + + +class EvtPropFlatte : public EvtPropagator { +public: + + EvtPropFlatte(double m0, + double g0, double m0a, double m0b, + double g1, double m1a, double m1b); + EvtPropFlatte(const EvtPropFlatte& other); + ~EvtPropFlatte(); + + EvtAmplitude* clone() const; + +protected: + + EvtComplex amplitude(const EvtPoint1D& x) const; + + double _m0a; + double _m0b; + + double _g1; + double _m1a; + double _m1b; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtPropGounarisSakurai.cxx b/TEvtGen/EvtGenBase/EvtPropGounarisSakurai.cxx new file mode 100644 index 00000000000..fdade08a79e --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPropGounarisSakurai.cxx @@ -0,0 +1,112 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPropGounarisSakurai.cc,v 1.2 2008/06/27 23:34:54 tlatham Exp $ + * Author: Matt Graham + * modified from EvtPropBreitWignerRel...this should be used for rho's + *******************************************************************************/ + +#include +#include "EvtGenBase/EvtPropGounarisSakurai.hh" + + +EvtPropGounarisSakurai::EvtPropGounarisSakurai(EvtDalitzPlot *dp, + EvtCyclic3::Pair pair, double m0, double g0) + : EvtPropagator(m0,g0),_pair(pair),_gbase(g0) +{ + _dalitzSpace = dp; + _m1= dp->m(EvtCyclic3::first(_pair)); + _m2= dp->m(EvtCyclic3::second(_pair)); +} + + +EvtPropGounarisSakurai::EvtPropGounarisSakurai(const EvtPropGounarisSakurai& other) + : EvtPropagator(other), _pair(other._pair), _gbase(other._gbase), + _m1(other._m1), _m2(other._m2) +{ +_dalitzSpace = other._dalitzSpace; +} + + +EvtPropGounarisSakurai::~EvtPropGounarisSakurai() +{} + + +EvtAmplitude* EvtPropGounarisSakurai::clone() const +{ + return new EvtPropGounarisSakurai(*this); +} + + +EvtComplex EvtPropGounarisSakurai::amplitude(const EvtPoint1D& x) const +{ + double m = x.value(); + double s = m*m; + double m2=_m0*_m0; + double _width=_gbase; + double _mass=_m0; + + double A = ( 1 + dFun( m2 )*_width/_mass ); + double B = s - m2 - fsFun( s ); + // double C = sqrt(s)*_g0;//wrong! + double C = sqrt(m2)*_g0;//correct! + double D = B*B + C*C; + + EvtComplex rpt( A*B/D, - A*C/D ); + return rpt; + + +} + +// adapted from RhoPiTools +double EvtPropGounarisSakurai::fsFun( double s ) const +{ + double m2=_m0*_m0; + + EvtTwoBodyKine vd(_m1,_m2,sqrt(s)); + EvtTwoBodyKine vR(_m1,_m2,_m0); + double k_s = vd.p(); + double k_Am2 = vR.p(); + // + double f = _gbase * m2 / pow( k_Am2, 3 ) + * ( + pow( k_s, 2 ) * (hFun( s ) - hFun( m2 )) + + (m2 - s) * pow( k_Am2, 2 ) * dh_dsFun( m2 ) + ); + + return f; +} + + +double EvtPropGounarisSakurai::hFun( double s ) const +{ + double sm = _m1 + _m2; + double SQRTs = sqrt(s); + EvtTwoBodyKine vd(_m1,_m2,sqrt(s)); + double k_s = vd.p(); + + return 2/EvtConst::pi * (k_s/SQRTs) * log( (SQRTs + 2*k_s)/(sm) ); +} + +double EvtPropGounarisSakurai::dh_dsFun( double s ) const +{ + EvtTwoBodyKine vd(_m1,_m2,sqrt(s)); + double k_s = vd.p(); + + return hFun(s) * ( 1/(8*pow( k_s, 2)) - 1/(2*s) ) + 1/(2*EvtConst::pi*s); +} + +double EvtPropGounarisSakurai::dFun( double s ) const +{ + double sm = _m1 + _m2; + double sm24 = sm*sm/4; + double m = sqrt(s); + EvtTwoBodyKine vd(_m1,_m2,sqrt(s)); + double k_m2 = vd.p(); + double _pi=EvtConst::pi; + + return 3.0/_pi * sm24/pow( k_m2, 2 ) * log( (m + 2*k_m2)/sm ) + + m/(2*_pi*k_m2) - sm24*m/(_pi * pow( k_m2, 3 )); +} + diff --git a/TEvtGen/EvtGenBase/EvtPropGounarisSakurai.hh b/TEvtGen/EvtGenBase/EvtPropGounarisSakurai.hh new file mode 100644 index 00000000000..7d3d2e3cd95 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPropGounarisSakurai.hh @@ -0,0 +1,51 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPropGounarisSakurai.hh,v 1.1 2008/03/04 20:02:16 apwagner Exp $ + * Author: Matt Graham + * modified from EvtPropBreitWignerRel...this should be used for rho's + *******************************************************************************/ + +// Relativistic Breit-Wigner Propagator + +#ifndef EVT_PROP_GOUNARIS_SAKURAI_HH +#define EVT_PROP_GOUNARIS_SAKURAI_HH + +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtPropagator.hh" +#include "EvtGenBase/EvtCyclic3.hh" +#include "EvtGenBase/EvtDalitzPoint.hh" +#include "EvtGenBase/EvtDalitzPlot.hh" + +class EvtPropGounarisSakurai : public EvtPropagator { +public: + + EvtPropGounarisSakurai(EvtDalitzPlot *dp, + EvtCyclic3::Pair pair, double m0, double g0); + EvtPropGounarisSakurai(const EvtPropGounarisSakurai& other); + ~EvtPropGounarisSakurai(); + + EvtAmplitude* clone() const; + +protected: + + EvtComplex amplitude(const EvtPoint1D& x) const; + +private: + EvtDalitzPlot *_dalitzSpace; + + EvtCyclic3::Pair _pair; + double _gbase; + double _m1; + double _m2; + double _dfun; + double dFun ( double s ) const; + double dh_dsFun ( double s ) const; + double hFun ( double s ) const; + double kFun ( double s ) const; + double fsFun ( double s ) const; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtPropagator.hh b/TEvtGen/EvtGenBase/EvtPropagator.hh new file mode 100644 index 00000000000..14ed3849439 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPropagator.hh @@ -0,0 +1,53 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPropagator.hh,v 1.4 2009/02/18 03:31:38 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Defines propagator as a function of mass and width + +#ifndef EVT_PROPAGATOR_HH +#define EVT_PROPAGATOR_HH + +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtAmplitude.hh" +#include "EvtGenBase/EvtPoint1D.hh" + +class EvtPropagator : public EvtAmplitude { +public: + + EvtPropagator(double m0, double g0) + : _m0(m0), _g0(g0) + { + assert(m0 > 0); + assert(g0 >= 0); + } + EvtPropagator(const EvtPropagator& other) + : EvtAmplitude(other), _m0(other._m0), _g0(other._g0) + {} + virtual ~EvtPropagator() + {} + + // Accessors + + inline double m0() const { return _m0; } + inline double g0() const { return _g0; } + + // Modifiers (can be useful e.g. for fitting!) + + inline void set_m0(double m0) { assert(m0>0); _m0 = m0; } + inline void set_g0(double g0) { assert(g0>=0); _g0 = g0; } + +protected: + + double _m0; + double _g0; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtPto3PAmp.cxx b/TEvtGen/EvtGenBase/EvtPto3PAmp.cxx new file mode 100644 index 00000000000..362daeb1cf0 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPto3PAmp.cxx @@ -0,0 +1,225 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPto3PAmp.cc,v 1.21 2009/02/18 03:31:38 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + * + * Modified: May 30, 2005, Denis Dujmic (ddujmic@slac.stanford.edu): flip sign + * for vector resonances (-i -> i at resonance mass). + * Introduce Flatte lineshape. + *******************************************************************************/ + +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtPto3PAmp.hh" +#include "EvtGenBase/EvtDalitzCoord.hh" +#include "EvtGenBase/EvtdFunction.hh" +#include "EvtGenBase/EvtCyclic3.hh" +#include "EvtGenBase/EvtReport.hh" + +using std::endl; +using EvtCyclic3::Index; +using EvtCyclic3::Pair; + + +EvtPto3PAmp::EvtPto3PAmp(EvtDalitzPlot dp, Pair pairAng, Pair pairRes, + EvtSpinType::spintype spin, + const EvtPropagator& prop, NumType typeN) + : EvtAmplitude(), + _pairAng(pairAng), _pairRes(pairRes), + _spin(spin), + _typeN(typeN), + _prop((EvtPropagator*) prop.clone()), + _g0(prop.g0()), + _min(0), + _max(0), + _vb(prop.m0(),dp.m(EvtCyclic3::other(pairRes)),dp.bigM(),spin), + _vd(dp.m(EvtCyclic3::first(pairRes)),dp.m(EvtCyclic3::second(pairRes)),prop.m0(),spin) +{} + + + +EvtPto3PAmp::EvtPto3PAmp(const EvtPto3PAmp& other) + : EvtAmplitude(other), + _pairAng(other._pairAng), + _pairRes(other._pairRes), + _spin(other._spin), + _typeN(other._typeN), + _prop( (other._prop) ? (EvtPropagator*) other._prop->clone() : 0), + _g0(other._g0), + _min(other._min), + _max(other._max), + _vb(other._vb), _vd(other._vd) +{} + + +EvtPto3PAmp::~EvtPto3PAmp() +{ + if(_prop) delete _prop; +} + + +void EvtPto3PAmp::set_fd(double R) +{ + _vd.set_f(R); +} + +void EvtPto3PAmp::set_fb(double R) +{ + _vb.set_f(R); +} + + +EvtComplex EvtPto3PAmp::amplitude(const EvtDalitzPoint& x) const +{ + EvtComplex amp(1.0,0.0); + + double m = sqrt(x.q(_pairRes)); + + if ((_max>0 && m > _max) || (_min>0 && m < _min)) return EvtComplex(0.0,0.0); + + EvtTwoBodyKine vd(x.m(EvtCyclic3::first(_pairRes)), + x.m(EvtCyclic3::second(_pairRes)),m); + EvtTwoBodyKine vb(m,x.m(EvtCyclic3::other(_pairRes)),x.bigM()); + + + // Compute mass-dependent width for relativistic propagators + + if(_typeN!=NBW && _typeN!=FLATTE) { + + _prop->set_g0(_g0*_vd.widthFactor(vd)); + } + + + // Compute propagator + + amp *= evalPropagator(m); + + + + // Compute form-factors + + amp *= _vd.formFactor(vd); + amp *= _vb.formFactor(vb); + + amp *= numerator(x); + + return amp; +} + + +EvtComplex EvtPto3PAmp::numerator(const EvtDalitzPoint& x) const +{ + EvtComplex ret(0.,0.); + double m = sqrt(x.q(_pairRes)); + EvtTwoBodyKine vd(x.m(EvtCyclic3::first(_pairRes)), + x.m(EvtCyclic3::second(_pairRes)),m); + EvtTwoBodyKine vb(m,x.m(EvtCyclic3::other(_pairRes)),x.bigM()); + + // Non-relativistic Breit-Wigner + + if(NBW == _typeN) { + + ret = angDep(x); + } + + // Standard relativistic Zemach propagator + + else if(RBW_ZEMACH == _typeN) { + + ret = _vd.phaseSpaceFactor(vd,EvtTwoBodyKine::AB)*angDep(x); + } + + // Kuehn-Santamaria normalization: + + else if(RBW_KUEHN == _typeN) { + + ret = _prop->m0()*_prop->m0() * angDep(x); + } + + + // CLEO amplitude is not factorizable + // + // The CLEO amplitude numerator is proportional to: + // + // m2_AC - m2_BC + (m2_D - m2_C)(m2_B - m2_A)/m2_0 + // + // m2_AC = (eA + eC)^2 + (P - P_C cosTh(BC))^2 + // m2_BC = (eB + eC)^2 + (P + P_C cosTh(BC))^2 + // + // The first term m2_AB-m2_BC is therefore a p-wave term + // - 4PP_C cosTh(BC) + // The second term is an s-wave, the amplitude + // does not factorize! + // + // The first term is just Zemach. However, the sign is flipped! + // Let's consistently use the convention in which the amplitude + // is proportional to +cosTh(BC). In the CLEO expressions, I will + // therefore exchange AB to get rid of the sign flip. + + + if(RBW_CLEO == _typeN || FLATTE == _typeN || GS == _typeN) { + + Index iA = EvtCyclic3::other(_pairAng); // A = other(BC) + Index iB = EvtCyclic3::common(_pairRes,_pairAng); // B = common(AB,BC) + Index iC = EvtCyclic3::other(_pairRes); // C = other(AB) + + double M = x.bigM(); + double mA = x.m(iA); + double mB = x.m(iB); + double mC = x.m(iC); + double qAB = x.q(EvtCyclic3::combine(iA,iB)); + double qBC = x.q(EvtCyclic3::combine(iB,iC)); + double qCA = x.q(EvtCyclic3::combine(iC,iA)); + + //double m0 = _prop->m0(); + + if(_spin == EvtSpinType::SCALAR) ret = EvtComplex(1.,0.); + else + if(_spin == EvtSpinType::VECTOR) { + + //ret = qCA - qBC - (M*M - mC*mC)*(mA*mA - mB*mB)/m0/m0; + ret = qCA - qBC - (M*M - mC*mC)*(mA*mA - mB*mB)/qAB; + } + else + if(_spin == EvtSpinType::TENSOR) { + + //double x1 = qBC - qCA + (M*M - mC*mC)*(mA*mA - mB*mB)/m0/m0; + double x1 = qBC - qCA + (M*M - mC*mC)*(mA*mA - mB*mB)/qAB; + double x2 = M*M - mC*mC; + //double x3 = qAB - 2*M*M - 2*mC*mC + x2*x2/m0/m0; + double x3 = qAB - 2*M*M - 2*mC*mC + x2*x2/qAB; + double x4 = mB*mB - mA*mA; + //double x5 = qAB - 2*mB*mB - 2*mA*mA + x4*x4/m0/m0; + double x5 = qAB - 2*mB*mB - 2*mA*mA + x4*x4/qAB; + ret = (x1*x1 - 1./3.*x3*x5); + } + else assert(0); + } + + return ret; +} + + +double EvtPto3PAmp::angDep(const EvtDalitzPoint& x) const +{ + // Angular dependece for factorizable amplitudes + // unphysical cosines indicate we are in big trouble + + double cosTh = x.cosTh(_pairAng,_pairRes); + if(fabs(cosTh) > 1.) { + + report(INFO,"EvtGen") << "cosTh " << cosTh << endl; + assert(0); + } + + // in units of half-spin + + return EvtdFunction::d(EvtSpinType::getSpin2(_spin),2*0,2*0,acos(cosTh)); +} + diff --git a/TEvtGen/EvtGenBase/EvtPto3PAmp.hh b/TEvtGen/EvtGenBase/EvtPto3PAmp.hh new file mode 100644 index 00000000000..9315c86a3aa --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPto3PAmp.hh @@ -0,0 +1,99 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtPto3PAmp.hh,v 1.14 2008/03/04 20:02:16 apwagner Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#ifndef EVT_PTO3P_AMP_HH +#define EVT_PTO3P_AMP_HH + +#include "EvtGenBase/EvtCyclic3.hh" +#include "EvtGenBase/EvtSpinType.hh" +#include +using std::vector; +#include "EvtGenBase/EvtAmplitude.hh" +#include "EvtGenBase/EvtTwoBodyVertex.hh" +#include "EvtGenBase/EvtPropagator.hh" +#include "EvtGenBase/EvtDalitzPoint.hh" + +class EvtComplex; +class EvtBlattWeisskopf; + +class EvtPto3PAmp : public EvtAmplitude { + + +public: + + // Numerator type + enum NumType {NBW=0, RBW_ZEMACH=1, RBW_KUEHN=2, RBW_CLEO=3, FLATTE, GAUSS, DOUBLE_GAUSS, + NONRES, NONRES_LIN, NONRES_EXP, NONRES_EXP_ADD, NONRES_CCS, NONRES_LAURA, + LASS, GS}; + + + EvtPto3PAmp(EvtDalitzPlot dp, EvtCyclic3::Pair pairAng, EvtCyclic3::Pair pairRes, + EvtSpinType::spintype spin, + const EvtPropagator& prop, NumType typeN); + + + EvtPto3PAmp(const EvtPto3PAmp& other); + + ~EvtPto3PAmp(); + + virtual EvtAmplitude* clone() const + { return new EvtPto3PAmp(*this); } + + + virtual EvtComplex amplitude(const EvtDalitzPoint& p) const; + EvtComplex numerator(const EvtDalitzPoint& p) const; + double angDep(const EvtDalitzPoint& p) const; + + void set_fd(double R); + void set_fb(double R); + + void setmin(double min) {_min = min;} + void setmax(double max) {_max = max;} + + virtual EvtComplex evalPropagator(double m) const { return _prop->evaluate(m); } + +private: + + // Pairing indices: + + EvtCyclic3::Pair _pairAng; // angular + EvtCyclic3::Pair _pairRes; // resonance + + // Spin + + EvtSpinType::spintype _spin; + + // Numerator type + + NumType _typeN; + + + // _Owned_ pointer to propagator factor + + EvtPropagator* _prop; + double _g0; // nominal width + double _min; //min and max values on which + double _max; //the resonance is defined + + // Vertices + + EvtTwoBodyVertex _vb; + EvtTwoBodyVertex _vd; + +}; + +#endif + + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtPto3PAmpFactory.cxx b/TEvtGen/EvtGenBase/EvtPto3PAmpFactory.cxx new file mode 100644 index 00000000000..62e7f363aff --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPto3PAmpFactory.cxx @@ -0,0 +1,352 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtPto3PAmpFactory.cc,v 1.22 2009/02/19 03:22:30 ryd Exp $ +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module creator: +// Alexei Dvoretskii, Caltech, 2001-2002. +//----------------------------------------------------------------------- +#include "EvtGenBase/EvtPatches.hh" + +// AmpFactory for building a P -> 3P decay +// (pseudoscalar to three pseudoscalars) + +#include +#include +#include +#include + +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtCyclic3.hh" +#include "EvtGenBase/EvtSpinType.hh" +#include "EvtGenBase/EvtPto3PAmp.hh" +#include "EvtGenBase/EvtNonresonantAmp.hh" +#include "EvtGenBase/EvtFlatAmp.hh" +#include "EvtGenBase/EvtLASSAmp.hh" +#include "EvtGenBase/EvtPto3PAmpFactory.hh" +#include "EvtGenBase/EvtPropBreitWigner.hh" +#include "EvtGenBase/EvtPropFlatte.hh" +#include "EvtGenBase/EvtPropBreitWignerRel.hh" +#include "EvtGenBase/EvtDalitzResPdf.hh" +#include "EvtGenBase/EvtDalitzFlatPdf.hh" + +using namespace EvtCyclic3; +#include + +void EvtPto3PAmpFactory::processAmp(EvtComplex c, std::vector vv, bool conj) +{ + if(_verbose) { + + printf("Make %samplitude\n",conj ? "CP conjugate" : ""); + unsigned i; + for(i=0;i* amp = 0; + EvtPdf* pdf = 0; + std::string name; + Pair pairRes=AB; + + size_t i; + /* + Experimental amplitudes + */ + if(vv[0] == "PHASESPACE") { + + pdf = new EvtDalitzFlatPdf(_dp); + amp = new EvtFlatAmp(); + name = "NR"; + } + else if (!vv[0].find("NONRES")) { + double alpha=0; + EvtPto3PAmp::NumType typeNRes=EvtPto3PAmp::NONRES; + if (vv[0]=="NONRES_LIN") { + typeNRes=EvtPto3PAmp::NONRES_LIN; + pairRes=strToPair(vv[1].c_str()); + } + else if (vv[0]=="NONRES_EXP") { + typeNRes=EvtPto3PAmp::NONRES_EXP; + pairRes = strToPair(vv[1].c_str()); + alpha = strtod(vv[2].c_str(),0); + } + else assert(0); + pdf = new EvtDalitzFlatPdf(_dp); + amp = new EvtNonresonantAmp( &_dp, typeNRes, pairRes, alpha); + } + else if (vv[0]=="LASS") { + pairRes = strToPair(vv[1].c_str()); + double m0 = strtod(vv[2].c_str(),0); + double g0 = strtod(vv[3].c_str(),0); + double a = strtod(vv[4].c_str(),0); + double r = strtod(vv[5].c_str(),0); + double cutoff = strtod(vv[6].c_str(),0); + pdf = new EvtDalitzResPdf(_dp,m0,g0,pairRes); + amp = new EvtLASSAmp( &_dp, pairRes, m0, g0, a, r, cutoff); + } + + /* + Resonant amplitudes + */ + else if(vv[0] == "RESONANCE") { + EvtPto3PAmp* partAmp = 0; + + // RESONANCE stanza + + pairRes = strToPair(vv[1].c_str()); + EvtSpinType::spintype spinR; + double mR, gR; + name = vv[2]; + EvtId resId = EvtPDL::getId(vv[2]); + if(_verbose) printf("Particles %s form %sresonance %s\n", + vv[1].c_str(),vv[2].c_str(), conj ? "(conj) " : ""); + + // If no valid particle name is given, assume that + // it is the spin, the mass and the width of the particle. + + if(resId.getId() == -1) { + + switch(atoi(vv[2].c_str())) { + + case 0: { spinR = EvtSpinType::SCALAR; break; } + case 1: { spinR = EvtSpinType::VECTOR; break; } + case 2: { spinR = EvtSpinType::TENSOR; break; } + case 3: { spinR = EvtSpinType::SPIN3; break; } + case 4: { spinR = EvtSpinType::SPIN4; break; } + default: { assert(0); break; } + } + + mR = strtod(vv[3].c_str(),0); + gR = strtod(vv[4].c_str(),0); + i = 4; + } + else { + + // For a valid particle get spin, mass and width + + spinR = EvtPDL::getSpinType(resId); + mR = EvtPDL::getMeanMass(resId); + gR = EvtPDL::getWidth(resId); + i = 2; + + // It's possible to specify mass and width of a particle + // explicitly + + if(vv[3] != "ANGULAR") { + + if(_verbose) + printf("Setting m(%s)=%s g(%s)=%s\n", + vv[2].c_str(),vv[3].c_str(),vv[2].c_str(),vv[4].c_str()); + + mR = strtod(vv[3].c_str(),0); + gR = strtod(vv[4].c_str(),0); + i = 4; + } + } + + // ANGULAR stanza + + if(vv[++i] != "ANGULAR") { + + printf("%s instead of ANGULAR\n",vv[i].c_str()); + exit(0); + } + Pair pairAng = strToPair(vv[++i].c_str()); + if(_verbose) printf("Angle is measured between particles %s\n",vv[i].c_str()); + + // TYPE stanza + + assert(vv[++i] == "TYPE"); + std::string type = vv[++i]; + if(_verbose) printf("Propagator type %s\n",vv[i].c_str()); + + if(type == "NBW") { + + EvtPropBreitWigner prop(mR,gR); + partAmp = new EvtPto3PAmp(_dp,pairAng,pairRes,spinR,prop,EvtPto3PAmp::NBW); + } + else if(type == "RBW_ZEMACH") { + + EvtPropBreitWignerRel prop(mR,gR); + partAmp = new EvtPto3PAmp(_dp,pairAng,pairRes,spinR,prop,EvtPto3PAmp::RBW_ZEMACH); + } + else if(type == "RBW_KUEHN") { + + EvtPropBreitWignerRel prop(mR,gR); + partAmp = new EvtPto3PAmp(_dp,pairAng,pairRes,spinR,prop,EvtPto3PAmp::RBW_KUEHN); + } + else if(type == "RBW_CLEO") { + + EvtPropBreitWignerRel prop(mR,gR); + partAmp = new EvtPto3PAmp(_dp,pairAng,pairRes,spinR,prop,EvtPto3PAmp::RBW_CLEO); + } + else if(type == "FLATTE") { + + double m1a = _dp.m( first(pairRes) ); + double m1b = _dp.m( second(pairRes) ); + // 2nd channel + double g2 = strtod(vv[++i].c_str(),0); + double m2a = strtod(vv[++i].c_str(),0); + double m2b = strtod(vv[++i].c_str(),0); + EvtPropFlatte prop( mR, gR, m1a, m1b, g2, m2a, m2b ); + partAmp = new EvtPto3PAmp(_dp,pairAng,pairRes,spinR,prop,EvtPto3PAmp::FLATTE); + } + else assert(0); + + // Optional DVFF, BVFF stanzas + + if(i < vv.size() - 1) { + if(vv[i+1] == "DVFF") { + i++; + if(vv[++i] == "BLATTWEISSKOPF") { + + double R = strtod(vv[++i].c_str(),0); + partAmp->set_fd(R); + } + else assert(0); + } + } + + if(i < vv.size() - 1) { + if(vv[i+1] == "BVFF") { + i++; + if(vv[++i] == "BLATTWEISSKOPF") { + + if(_verbose) printf("BVFF=%s\n",vv[i].c_str()); + double R = strtod(vv[++i].c_str(),0); + partAmp->set_fb(R); + } + else assert(0); + } + } + + const int minwidths=5; + //Optional resonance minimum and maximum + if(i < vv.size() - 1) { + if(vv[i+1] == "CUTOFF") { + i++; + if(vv[i+1] == "MIN") { + i++; + double min = strtod(vv[++i].c_str(),0); + if(_verbose) std::cout<<"CUTOFF MIN = "<setmin(min); + } + else if (vv[i+1] == "MAX") { + i++; + double max = strtod(vv[++i].c_str(),0); + if(_verbose) std::cout<<"CUTOFF MAX = "<(mR+minwidths*gR) ); + partAmp->setmax(max); + } + else assert(0); + } + } + + //2nd iteration in case min and max are both specified + if(i < vv.size() - 1) { + if(vv[i+1] == "CUTOFF") { + i++; + if(vv[i+1] == "MIN") { + i++; + double min = strtod(vv[++i].c_str(),0); + if(_verbose) std::cout<<"CUTOFF MIN = "<setmin(min); + } + else if (vv[i+1] == "MAX") { + i++; + double max = strtod(vv[++i].c_str(),0); + if(_verbose) std::cout<<"CUTOFF MAX = "<(mR+minwidths*gR) ); + partAmp->setmax(max); + } + else assert(0); + } + } + + + i++; + + pdf = new EvtDalitzResPdf(_dp,mR,gR,pairRes); + amp = partAmp; + } + + assert(amp); + assert(pdf); + + if(!conj) { + _amp->addOwnedTerm(c,amp); + } + else { + _ampConj->addOwnedTerm(c,amp); + } + + double scale = matchIsobarCoef(_amp, pdf, pairRes); + _pc->addOwnedTerm(abs2(c)*scale,pdf); + + _names.push_back(name); +} + +double EvtPto3PAmpFactory::matchIsobarCoef(EvtAmplitude* amp, + EvtPdf* pdf, + EvtCyclic3::Pair ipair) { + + // account for differences in the definition of amplitudes by matching + // Integral( c'*pdf ) = Integral( c*|A|^2 ) + // to improve generation efficiency ... + + double Ipdf = pdf->compute_integral(10000).value(); + double Iamp2 = 0; + + + EvtCyclic3::Pair jpair = EvtCyclic3::next(ipair); + EvtCyclic3::Pair kpair = EvtCyclic3::next(jpair); + + // Trapezoidal integral + int N=10000; + + double di = (_dp.qAbsMax(ipair) - _dp.qAbsMin(ipair))/((double) N); + + double siMin = _dp.qAbsMin(ipair); + + double s[3]; // playing with fire + for(int i=1; ievaluate(point) )*di*4*q*p; + Iamp2 += itg; + + } + if (_verbose) std::cout << "integral = " << Iamp2 << " pdf="<0 && Iamp2>0); + + return Iamp2/Ipdf; +} diff --git a/TEvtGen/EvtGenBase/EvtPto3PAmpFactory.hh b/TEvtGen/EvtGenBase/EvtPto3PAmpFactory.hh new file mode 100644 index 00000000000..c5b4aed0c58 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPto3PAmpFactory.hh @@ -0,0 +1,64 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtPto3PAmpFactory.hh,v 1.10 2006/01/31 18:08:46 ddujmic Exp $ +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module creator: +// Alexei Dvoretskii, Caltech, 2001-2002. +//----------------------------------------------------------------------- + +#ifndef EVT_PTO3P_AMP_FACTORY_HH +#define EVT_PTO3P_AMP_FACTORY_HH + +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtAmpFactory.hh" +#include "EvtGenBase/EvtDalitzPlot.hh" +#include "EvtGenBase/EvtDalitzPoint.hh" +#include "EvtGenBase/EvtCyclic3.hh" + +class EvtPto3PAmpFactory : public EvtAmpFactory { + +public: + + EvtPto3PAmpFactory(const EvtDalitzPlot& dp) + : EvtAmpFactory(), _dp(dp) + {} + EvtPto3PAmpFactory(const EvtPto3PAmpFactory& other) + : EvtAmpFactory(other), _dp(other._dp) + {} + virtual ~EvtPto3PAmpFactory() + {} + + virtual EvtAmpFactory* clone() const + { + return new EvtPto3PAmpFactory(*this); + } + + virtual void processAmp(EvtComplex c, std::vector vv, bool conj); + +private: + + double matchIsobarCoef(EvtAmplitude* amp, + EvtPdf* pdf, + EvtCyclic3::Pair i); + + + EvtDalitzPlot _dp; + +}; + +#endif + + + + + diff --git a/TEvtGen/EvtGenBase/EvtPto3PAmpSmpResolution.cxx b/TEvtGen/EvtGenBase/EvtPto3PAmpSmpResolution.cxx new file mode 100644 index 00000000000..ef378de82be --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtPto3PAmpSmpResolution.cxx @@ -0,0 +1,65 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * Author: D. Dujmic, ddujmic@slac.stanford.edu + * + * Copyright (C) 2005 SLAC + * + *******************************************************************************/ + +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtPto3PAmpSmpResolution.hh" +#include "EvtGenBase/EvtPto3PAmp.hh" +#include "EvtGenBase/EvtDalitzCoord.hh" +#include "EvtGenBase/EvtCyclic3.hh" +using std::cout; +using std::endl; +using EvtCyclic3::Index; +using EvtCyclic3::Pair; + + + +EvtPto3PAmpSmpResolution::EvtPto3PAmpSmpResolution(EvtDalitzPlot dp, Pair pairAng, Pair pairRes, + EvtSpinType::spintype spin, + const EvtPropagator& prop, NumType typeN) + : EvtPto3PAmp(dp, pairAng, pairRes, spin, prop, typeN) +{} + + + +EvtPto3PAmpSmpResolution::EvtPto3PAmpSmpResolution(const EvtPto3PAmp& other) + : EvtPto3PAmp(other) +{} + + +EvtPto3PAmpSmpResolution::~EvtPto3PAmpSmpResolution() +{} + + +EvtComplex +EvtPto3PAmpSmpResolution::evalPropagator(double m) const +{ + EvtComplex prop(0,0); + + if (_sigma>0) { // convolved + int nconv=20; + double min=m+_bias-_sigma*2.5; + double max=m+_bias+_sigma*2.5; + double dm=(max-min)/nconv; + static double sqrt2pi = sqrt(2*3.14159); + double ifact = 1./(sqrt2pi*_sigma); + for (int i=0;i* clone() const + { return new EvtPto3PAmpSmpResolution(*this); } + + + virtual EvtComplex evalPropagator(double m) const; + + void setResolution(double bias, double sigma) { + _bias=bias; _sigma=sigma; + } + + +private: + double _bias; + double _sigma; +}; + +#endif + + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtRadCorr.cxx b/TEvtGen/EvtGenBase/EvtRadCorr.cxx new file mode 100644 index 00000000000..c2947441668 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtRadCorr.cxx @@ -0,0 +1,77 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtRadCorr.cc +// +// Description: RadCorr interface for EvtGen +// +// +// Modification history: +// +// Lange April 27, 2002 - Created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include +#include +#include "EvtGenBase/EvtAbsRadCorr.hh" +#include "EvtGenBase/EvtRadCorr.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; + + +EvtAbsRadCorr* EvtRadCorr::_fsrEngine=0; +bool EvtRadCorr::_alwaysRadCorr=false; +bool EvtRadCorr::_neverRadCorr=false; + +EvtRadCorr::EvtRadCorr() { + _fsrEngine=0; + _alwaysRadCorr=false; + _neverRadCorr=false; +} + +EvtRadCorr::~EvtRadCorr() { + if ( _fsrEngine ) delete _fsrEngine; + _fsrEngine=0; +} + +void EvtRadCorr::setRadCorrEngine(EvtAbsRadCorr* fsrEngine){ + _fsrEngine=fsrEngine; +} + + +void EvtRadCorr::doRadCorr(EvtParticle *p){ + + if (_fsrEngine==0){ + report(ERROR,"EvtGen") <<"No RadCorr model available in " + <<"EvtRadCorr::doRadCorr()."<doRadCorr(p); + return; +} + + +bool EvtRadCorr::alwaysRadCorr() {return _alwaysRadCorr;} +bool EvtRadCorr::neverRadCorr() {return _neverRadCorr;} + +void EvtRadCorr::setAlwaysRadCorr() { _alwaysRadCorr=true; _neverRadCorr=false;} +void EvtRadCorr::setNeverRadCorr() { _alwaysRadCorr=false; _neverRadCorr=true;} +void EvtRadCorr::setNormalRadCorr() {_alwaysRadCorr=false; _neverRadCorr=false;} + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtRadCorr.hh b/TEvtGen/EvtGenBase/EvtRadCorr.hh new file mode 100644 index 00000000000..f91c7993da0 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtRadCorr.hh @@ -0,0 +1,54 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtRadCorr.hh +// +// Description:FSR interface +// +// Modification history: +// +// Lange April 27, 2002 Created +// +//------------------------------------------------------------------------ + +#ifndef EVTRADCORR_HH +#define EVTRADCORR_HH + + +class EvtAbsRadCorr; +class EvtParticle; + +class EvtRadCorr{ + +public: + EvtRadCorr(); + ~EvtRadCorr(); + + static void doRadCorr(EvtParticle *p); + + //This class does not take ownership of the fsr engine; + //the caller needs to make sure that the engine is not + //destroyed. + static void setRadCorrEngine(EvtAbsRadCorr* fsrEngine); + static bool alwaysRadCorr(); + static bool neverRadCorr(); + static void setAlwaysRadCorr(); + static void setNeverRadCorr(); + static void setNormalRadCorr(); + +private: + + static EvtAbsRadCorr* _fsrEngine; + static bool _alwaysRadCorr; + static bool _neverRadCorr; +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtRanFor.cxx b/TEvtGen/EvtGenBase/EvtRanFor.cxx new file mode 100644 index 00000000000..1b7d0a317e1 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtRanFor.cxx @@ -0,0 +1,43 @@ +//-------------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtRanFor.cc,v 1.4 2009/02/18 03:31:38 ryd Exp $ +// +// Description: +// subroutine emcranfor_. +// Provides FORTRAN calable interface to EvtRandom::Flat() +// Can be used as EVTRANFOR instead of RANLUX in FORTRAN programs +// or as evtranfor_ instead of ranlux_ in C/C++ programs. +// No header file is provided, as C++ programs should use EvtRandom +// +// Environment: +// Software developed for the BaBar Detector at the SLAC B-Factory. +// +// Author List: +// Sven Menke +// +// Copyright Information: See EvtGen/COPYRIGHT +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include "EvtGenBase/EvtRandom.hh" +#ifdef WIN32 +extern "C" { + void EVTRANFOR(float *rvec, int *len) + { + for (int i=0;i<*len;i++) + rvec[i] = EvtRandom::Flat(); + } +} +#else +extern "C" { + void evtranfor_(float *rvec, int *len) + { + for (int i=0;i<*len;i++) + rvec[i] = EvtRandom::Flat(); + } +} +#endif diff --git a/TEvtGen/EvtGenBase/EvtRandom.cxx b/TEvtGen/EvtGenBase/EvtRandom.cxx new file mode 100644 index 00000000000..f111bc50e3a --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtRandom.cxx @@ -0,0 +1,90 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtRandom.cc +// +// Description: routines to get random numbers from +// random number generator. +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include +#include +#include +#include +#include "EvtGenBase/EvtRandomEngine.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtConst.hh" + +using std::endl; + + +EvtRandomEngine* EvtRandom::_randomEngine=0; + +void EvtRandom::setRandomEngine(EvtRandomEngine* randomEngine){ + _randomEngine=randomEngine; +} + + +double EvtRandom::random(){ + + if (_randomEngine==0){ + report(ERROR,"EvtGen") <<"No random engine available in " + <<"EvtRandom::random()."<random(); + +} + + +// Random number routine to generate numbers between +// min and max. By djl on July 27, 1995. +double EvtRandom::Flat( double min, double max){ + + if ( min > max ) { + report(ERROR,"EvtGen") << "min>max in EvtRandom::Flat(" << min << "," << max << ")" < + +class EvtRandomEngine{ + +public: + + virtual ~EvtRandomEngine() {}; + + virtual double random()=0; + +private: + +}; + +//define class for generating random numbers (I put this in place of the commented part) +class EvtNUMRandomEngine:public EvtRandomEngine{ +public: + double random(){return gRandom->Rndm();} +}; + + +//old lines: those are in the macro testEvtGen.cc +/* +//define class for generating random numbers +class EvtCLHEPRandomEngine:public EvtRandomEngine{ +public: + double random(); +}; + +#ifdef NOCLHEPNAMESPACE +namespace CLHEP { +typedef HepJamesRandom HepJamesRandom ; +} +#endif + +double EvtCLHEPRandomEngine::random(){ + static CLHEP::HepJamesRandom randengine; + return randengine.flat(); +} +*/ + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtRanf.cxx b/TEvtGen/EvtGenBase/EvtRanf.cxx new file mode 100644 index 00000000000..79b0542f315 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtRanf.cxx @@ -0,0 +1,29 @@ +//-------------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtRanf.cc,v 1.1 2009/02/28 11:14:16 lange Exp $ +// +// Description: +// subroutine evtranf_. +// Provides FORTRAN calable interface to EvtRandom::Flat() +// Can be used as EVTRANF instead of RANF in FORTRAN programs +// or as evtranf_ instead of ranf_ in C/C++ programs. +// No header file is provided, as C++ programs should use EvtRandom +// +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtRandom.hh" +#ifdef WIN32 +extern "C" { + double __stdcall EVTRANF( ) + { + return EvtRandom::Flat() ; + } +} +#else +extern "C" { + double evtranf_( ) + { + return EvtRandom::Flat() ; + } +} +#endif diff --git a/TEvtGen/EvtGenBase/EvtRaritaSchwinger.cxx b/TEvtGen/EvtGenBase/EvtRaritaSchwinger.cxx new file mode 100644 index 00000000000..a0ab08a8a15 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtRaritaSchwinger.cxx @@ -0,0 +1,281 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech, UCSB +// +// Module: EvtGen/EvtRaritaSchwing.hh +// +// Description:Class to handle spin 3/2 +// +// Modification history: +// +// RYD April 23, 2000 Module created +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + + +#include "EvtGenBase/EvtRaritaSchwinger.hh" +using std::endl; +using std::ostream; + +EvtRaritaSchwinger::~EvtRaritaSchwinger(){} + + +EvtRaritaSchwinger rotateEuler(const EvtRaritaSchwinger& rs, + double alpha,double beta,double gamma){ + + EvtRaritaSchwinger tmp(rs); + tmp.applyRotateEuler(alpha,beta,gamma); + return tmp; + +} + +EvtRaritaSchwinger boostTo(const EvtRaritaSchwinger& rs, + const EvtVector4R p4){ + + EvtRaritaSchwinger tmp(rs); + tmp.applyBoostTo(p4); + return tmp; + +} + +EvtRaritaSchwinger boostTo(const EvtRaritaSchwinger& rs, + const EvtVector3R boost){ + + EvtRaritaSchwinger tmp(rs); + tmp.applyBoostTo(boost); + return tmp; + +} + + +void EvtRaritaSchwinger::set(int i,int j,const EvtComplex& sp){_rs[i][j]=sp;} + +EvtComplex EvtRaritaSchwinger::get(int i,int j) const {return _rs[i][j];} + +void EvtRaritaSchwinger::applyRotateEuler(double alpha,double beta, + double gamma){ + + //inefficient but simple to code... + EvtVector4C v0=getVector(0); + EvtVector4C v1=getVector(1); + EvtVector4C v2=getVector(2); + EvtVector4C v3=getVector(3); + v0.applyRotateEuler(alpha,beta,gamma); + v1.applyRotateEuler(alpha,beta,gamma); + v2.applyRotateEuler(alpha,beta,gamma); + v3.applyRotateEuler(alpha,beta,gamma); + setVector(0,v0); + setVector(1,v1); + setVector(2,v2); + setVector(3,v3); + EvtDiracSpinor sp0=getSpinor(0); + EvtDiracSpinor sp1=getSpinor(1); + EvtDiracSpinor sp2=getSpinor(2); + EvtDiracSpinor sp3=getSpinor(3); + sp0.applyRotateEuler(alpha,beta,gamma); + sp1.applyRotateEuler(alpha,beta,gamma); + sp2.applyRotateEuler(alpha,beta,gamma); + sp3.applyRotateEuler(alpha,beta,gamma); + setSpinor(0,sp0); + setSpinor(1,sp1); + setSpinor(2,sp2); + setSpinor(3,sp3); + +} + + +void EvtRaritaSchwinger::applyBoostTo(const EvtVector4R p4){ + + double e=p4.get(0); + + EvtVector3R boost(p4.get(1)/e,p4.get(2)/e,p4.get(3)/e); + + applyBoostTo(boost); + + return; + +} + + +void EvtRaritaSchwinger::applyBoostTo(const EvtVector3R boost){ + + //inefficient but simple to code... + EvtVector4C v0=getVector(0); + EvtVector4C v1=getVector(1); + EvtVector4C v2=getVector(2); + EvtVector4C v3=getVector(3); + v0.applyBoostTo(boost); + v1.applyBoostTo(boost); + v2.applyBoostTo(boost); + v3.applyBoostTo(boost); + setVector(0,v0); + setVector(1,v1); + setVector(2,v2); + setVector(3,v3); + EvtDiracSpinor sp0=getSpinor(0); + EvtDiracSpinor sp1=getSpinor(1); + EvtDiracSpinor sp2=getSpinor(2); + EvtDiracSpinor sp3=getSpinor(3); + sp0.applyBoostTo(boost); + sp1.applyBoostTo(boost); + sp2.applyBoostTo(boost); + sp3.applyBoostTo(boost); + setSpinor(0,sp0); + setSpinor(1,sp1); + setSpinor(2,sp2); + setSpinor(3,sp3); + + +} + + +ostream& operator<<(ostream& s, const EvtRaritaSchwinger& rs){ + + int i,j; + s<< endl; + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + s << rs._rs[i][j]; + } + s << endl; + } + return s; + +} + + + +EvtVector4C EvtRaritaSchwinger::getVector(int i) const{ + + EvtVector4C tmp(_rs[i][0],_rs[i][1],_rs[i][2],_rs[i][3]); + return tmp; + +} + +EvtDiracSpinor EvtRaritaSchwinger::getSpinor(int i) const{ + + EvtDiracSpinor tmp; + tmp.set(_rs[0][i],_rs[1][i],_rs[2][i],_rs[3][i]); + return tmp; + +} + +void EvtRaritaSchwinger::setVector(int i,const EvtVector4C& v){ + + _rs[i][0]=v.get(0); + _rs[i][1]=v.get(1); + _rs[i][2]=v.get(2); + _rs[i][3]=v.get(3); + +} + +void EvtRaritaSchwinger::setSpinor(int i,const EvtDiracSpinor& sp){ + + _rs[0][i]=sp.get_spinor(0); + _rs[1][i]=sp.get_spinor(1); + _rs[2][i]=sp.get_spinor(2); + _rs[3][i]=sp.get_spinor(3); + +} + + +EvtRaritaSchwinger dirProd(EvtVector4R v,EvtDiracSpinor u){ + + int i,j; + + EvtRaritaSchwinger tmp; + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + tmp._rs[i][j]=u.get_spinor(i)*v.get(j); + } + } + + return tmp; + +} + + +EvtRaritaSchwinger dirProd(EvtVector4C v,EvtDiracSpinor u){ + + int i,j; + + EvtRaritaSchwinger tmp; + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + tmp._rs[i][j]=u.get_spinor(i)*v.get(j); + } + } + + return tmp; + +} + + +EvtComplex operator*(const EvtRaritaSchwinger& u1, + const EvtRaritaSchwinger& u2){ + + int i,j; + EvtComplex tmp=0.0; + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + tmp+=conj(u1._rs[i][j])*u2._rs[i][j]; + } + } + + return tmp; + +} + + + +EvtRaritaSchwinger& EvtRaritaSchwinger::operator+=(const EvtRaritaSchwinger& u2){ + + int i,j; + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + _rs[i][j]+=u2._rs[i][j]; + } + } + + return *this; +} + +EvtRaritaSchwinger operator+(const EvtRaritaSchwinger& u1, + const EvtRaritaSchwinger& u2){ + + return EvtRaritaSchwinger(u1)+=u2; + +} + +EvtRaritaSchwinger& EvtRaritaSchwinger::operator-=(const EvtRaritaSchwinger& u2){ + + int i,j; + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + _rs[i][j]+=u2._rs[i][j]; + } + } + + return *this; +} + +EvtRaritaSchwinger operator-(const EvtRaritaSchwinger& u1, + const EvtRaritaSchwinger& u2){ + + return EvtRaritaSchwinger(u1)-=u2; + +} + + diff --git a/TEvtGen/EvtGenBase/EvtRaritaSchwinger.hh b/TEvtGen/EvtGenBase/EvtRaritaSchwinger.hh new file mode 100644 index 00000000000..247dd1fe563 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtRaritaSchwinger.hh @@ -0,0 +1,136 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech, UCSB +// +// Module: EvtGen/EvtRaritaSchwing.hh +// +// Description:Class to handle spin 3/2 +// +// Modification history: +// +// RYD April 23, 2000 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTRARITASCHWINGER_HH +#define EVTRARITASCHWINGER_HH + +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" + +class EvtRaritaSchwinger ; +EvtRaritaSchwinger rotateEuler(const EvtRaritaSchwinger& rs, + double alpha,double beta,double gamma); +EvtRaritaSchwinger boostTo(const EvtRaritaSchwinger& rs, + const EvtVector4R p4); +EvtRaritaSchwinger boostTo(const EvtRaritaSchwinger& rs, + const EvtVector3R boost); +EvtRaritaSchwinger dirProd(EvtVector4R v,EvtDiracSpinor u); +EvtRaritaSchwinger dirProd(EvtVector4C v,EvtDiracSpinor u); +EvtRaritaSchwinger operator+(const EvtRaritaSchwinger& u1, + const EvtRaritaSchwinger& u2); +EvtRaritaSchwinger operator-(const EvtRaritaSchwinger& u1, + const EvtRaritaSchwinger& u2); +EvtComplex operator*(const EvtRaritaSchwinger& u1, + const EvtRaritaSchwinger& u2); + +class EvtRaritaSchwinger{ + + friend EvtRaritaSchwinger rotateEuler(const EvtRaritaSchwinger& rs, + double alpha,double beta,double gamma); + friend EvtRaritaSchwinger boostTo(const EvtRaritaSchwinger& rs, + const EvtVector4R p4); + friend EvtRaritaSchwinger boostTo(const EvtRaritaSchwinger& rs, + const EvtVector3R boost); + + friend EvtRaritaSchwinger dirProd(EvtVector4R v,EvtDiracSpinor u); + friend EvtRaritaSchwinger dirProd(EvtVector4C v,EvtDiracSpinor u); + + friend EvtRaritaSchwinger operator+(const EvtRaritaSchwinger& u1, + const EvtRaritaSchwinger& u2); + friend EvtRaritaSchwinger operator-(const EvtRaritaSchwinger& u1, + const EvtRaritaSchwinger& u2); + + friend EvtComplex operator*(const EvtRaritaSchwinger& u1, + const EvtRaritaSchwinger& u2); + +public: + + inline EvtRaritaSchwinger(); + virtual ~EvtRaritaSchwinger(); + inline EvtRaritaSchwinger(const EvtRaritaSchwinger& rs); + inline EvtRaritaSchwinger& operator=(const EvtRaritaSchwinger& rs); + + void set(int i,int j,const EvtComplex& sp); + + void applyRotateEuler(double alpha,double beta,double gamma); + void applyBoostTo(const EvtVector4R p4); + void applyBoostTo(const EvtVector3R boost); + + EvtRaritaSchwinger& operator+=(const EvtRaritaSchwinger& u2); + EvtRaritaSchwinger& operator-=(const EvtRaritaSchwinger& u2); + + EvtComplex get(int i,int j) const; + friend std::ostream& operator<<(std::ostream& s, const EvtRaritaSchwinger& rs); + + EvtVector4C getVector(int i) const; + EvtDiracSpinor getSpinor(int i) const; + + void setVector(int i,const EvtVector4C& v); + void setSpinor(int i,const EvtDiracSpinor& sp); + + + +private: + + //First index in spinor index, second is Lorentz index. + EvtComplex _rs[4][4]; + +}; + +EvtRaritaSchwinger::EvtRaritaSchwinger(){ + + int i,j; + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + _rs[i][j]=0.0; + } + } + +} + +EvtRaritaSchwinger::EvtRaritaSchwinger(const EvtRaritaSchwinger& rs){ + + int i,j; + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + _rs[i][j]=rs._rs[i][j]; + } + } + +} + +EvtRaritaSchwinger& EvtRaritaSchwinger::operator=(const EvtRaritaSchwinger& rs){ + + int i,j; + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + _rs[i][j]=rs._rs[i][j]; + } + } + + return *this; + +} + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtRaritaSchwingerParticle.cxx b/TEvtGen/EvtGenBase/EvtRaritaSchwingerParticle.cxx new file mode 100644 index 00000000000..b155bae3125 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtRaritaSchwingerParticle.cxx @@ -0,0 +1,228 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtRaritaSchwingerParticle.cc +// +// Description: Class to describe spin 1/2 particles. +// +// Modification history: +// +// RYD August 9, 2000 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtRaritaSchwingerParticle.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; + +EvtRaritaSchwingerParticle::~EvtRaritaSchwingerParticle(){} + + +EvtRaritaSchwingerParticle::EvtRaritaSchwingerParticle(){ + + return; + +} + +void EvtRaritaSchwingerParticle::init(EvtId id,const EvtVector4R& p4){ + + _validP4=true; + setp(p4); + setpart_num(id); + + if (EvtPDL::getStdHep(id)==0){ + report(ERROR,"EvtGen") << "Error in EvtRaritaSchwingerParticle::init, part_n=" + << id.getId()<getP4().mass())); + + EvtDiracSpinor spplus; + EvtDiracSpinor spminus; + + if (EvtPDL::getStdHep(getId())>0){ + spplus.set(sqmt2,0.0,0.0,0.0); + spminus.set(0.0,sqmt2,0.0,0.0); + } else { + spplus.set(0.0,0.0,sqmt2,0.0); + spminus.set(0.0,0.0,0.0,sqmt2); + } + + static EvtVector4C eplus(0.0,-1.0/sqrt(2.0),EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + static EvtVector4C ezero(0.0,0.0,0.0,1.0); + static EvtVector4C eminus(0.0,1.0/sqrt(2.0),EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + + _spinorRest[0]=dirProd(eplus,spplus); + _spinorRest[1]=dirProd(sqrt(2.0/3.0)*ezero,spplus)+ + dirProd(sqrt(1.0/3.0)*eplus,spminus); + _spinorRest[2]=dirProd(sqrt(2.0/3.0)*ezero,spminus)+ + dirProd(sqrt(1.0/3.0)*eminus,spplus); + _spinorRest[3]=dirProd(eminus,spminus); + + _spinor[0]=boostTo(_spinorRest[0],p4); + _spinor[1]=boostTo(_spinorRest[1],p4); + _spinor[2]=boostTo(_spinorRest[2],p4); + _spinor[3]=boostTo(_spinorRest[3],p4); + + + setLifetime(); +} + + +void EvtRaritaSchwingerParticle::init(EvtId id,const EvtVector4R& p4, + const EvtRaritaSchwinger & prod1, + const EvtRaritaSchwinger & prod2, + const EvtRaritaSchwinger & prod3, + const EvtRaritaSchwinger & prod4, + const EvtRaritaSchwinger & rest1, + const EvtRaritaSchwinger & rest2, + const EvtRaritaSchwinger & rest3, + const EvtRaritaSchwinger & rest4){ + + _validP4=true; + setp(p4); + setpart_num(id); + + if (EvtPDL::getStdHep(id)==0){ + report(ERROR,"EvtGen") << "Error in EvtRaritaSchwingerParticle::init, part_n=" + << id.getId()<getP4().mass())); + + EvtDiracSpinor spplus; + EvtDiracSpinor spminus; + + if (EvtPDL::getStdHep(getId())>0){ + spplus.set(1.0,0.0,0.0,0.0); + spminus.set(0.0,1.0,0.0,0.0); + } else { + spplus.set(0.0,0.0,1.0,0.0); + spminus.set(0.0,0.0,0.0,1.0); + } + + EvtVector4C eplus(0.0,-1.0/sqrt(2.0),EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + EvtVector4C ezero(0.0,0.0,0.0,1.0); + EvtVector4C eminus(0.0,1.0/sqrt(2.0),EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + + EvtRaritaSchwinger sppp=dirProd(eplus,spplus); + EvtRaritaSchwinger spp=dirProd(sqrt(2.0/3.0)*ezero,spplus)+ + dirProd(sqrt(1.0/3.0)*eplus,spminus); + EvtRaritaSchwinger spm=dirProd(sqrt(2.0/3.0)*ezero,spminus)+ + dirProd(sqrt(1.0/3.0)*eminus,spplus); + EvtRaritaSchwinger spmm=dirProd(eminus,spminus); + + + EvtSpinDensity R; + R.setDim(4); + + + for ( int i=0; i<4; i++) { + R.set(0,i,(sppp*_spinorRest[i])/sqmt2); + R.set(1,i,(spp*_spinorRest[i])/sqmt2); + R.set(2,i,(spm*_spinorRest[i])/sqmt2); + R.set(3,i,(spmm*_spinorRest[i])/sqmt2); + } + + return R; + +} + + +EvtSpinDensity EvtRaritaSchwingerParticle::rotateToHelicityBasis(double alpha, + double beta, + double gamma) const{ + + EvtDiracSpinor spplus; + EvtDiracSpinor spminus; + + if (EvtPDL::getStdHep(getId())>0){ + spplus.set(1.0,0.0,0.0,0.0); + spminus.set(0.0,1.0,0.0,0.0); + } else { + spplus.set(0.0,0.0,1.0,0.0); + spminus.set(0.0,0.0,0.0,1.0); + } + + EvtVector4C eplus(0.0,-1.0/sqrt(2.0),EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + EvtVector4C ezero(0.0,0.0,0.0,1.0); + EvtVector4C eminus(0.0,1.0/sqrt(2.0),EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + + EvtRaritaSchwinger sppp=dirProd(eplus,spplus); + EvtRaritaSchwinger spp=dirProd(sqrt(2.0/3.0)*ezero,spplus)+ + dirProd(sqrt(1.0/3.0)*eplus,spminus); + EvtRaritaSchwinger spm=dirProd(sqrt(2.0/3.0)*ezero,spminus)+ + dirProd(sqrt(1.0/3.0)*eminus,spplus); + EvtRaritaSchwinger spmm=dirProd(eminus,spminus); + + + sppp.applyRotateEuler(alpha,beta,gamma); + spp.applyRotateEuler(alpha,beta,gamma); + spm.applyRotateEuler(alpha,beta,gamma); + spmm.applyRotateEuler(alpha,beta,gamma); + + EvtSpinDensity R; + R.setDim(4); + + double sqmt2=sqrt(2.0*(this->getP4().mass())); + + for ( int i=0; i<4; i++) { + R.set(0,i,(sppp*_spinorRest[i])/sqmt2); + R.set(1,i,(spp*_spinorRest[i])/sqmt2); + R.set(2,i,(spm*_spinorRest[i])/sqmt2); + R.set(3,i,(spmm*_spinorRest[i])/sqmt2); + } + + return R; + +} + diff --git a/TEvtGen/EvtGenBase/EvtRaritaSchwingerParticle.hh b/TEvtGen/EvtGenBase/EvtRaritaSchwingerParticle.hh new file mode 100644 index 00000000000..39042fdee97 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtRaritaSchwingerParticle.hh @@ -0,0 +1,59 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtRaritaSchwingerParticle.hh +// +// Description:Represents particles i.e. spin 3/2 particles. +// +// Modification history: +// +// RYD August 9, 2000 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTRARITASCHWINGERPARTICLE_HH +#define EVTRARITASCHWINGERPARTICLE_HH + +#include "EvtGenBase/EvtRaritaSchwinger.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtParticle.hh" + +class EvtVector4R; + +class EvtRaritaSchwingerParticle:public EvtParticle { + +public: + + + EvtRaritaSchwingerParticle(); + virtual ~EvtRaritaSchwingerParticle(); + void init(EvtId id,const EvtVector4R& p4); + void init(EvtId id,const EvtVector4R& p4, + const EvtRaritaSchwinger &,const EvtRaritaSchwinger &, + const EvtRaritaSchwinger &,const EvtRaritaSchwinger &, + const EvtRaritaSchwinger &,const EvtRaritaSchwinger &, + const EvtRaritaSchwinger &,const EvtRaritaSchwinger &); + EvtRaritaSchwinger spRSParent(int) const; + EvtRaritaSchwinger spRS(int) const; + EvtSpinDensity rotateToHelicityBasis() const; + EvtSpinDensity rotateToHelicityBasis(double alpha, + double beta, + double gamma) const; + +private: + + EvtRaritaSchwinger _spinorRest[4]; + EvtRaritaSchwinger _spinor[4]; + EvtRaritaSchwingerParticle(const EvtRaritaSchwingerParticle& d); + EvtRaritaSchwingerParticle& operator=(const EvtRaritaSchwingerParticle& d); + +}; +#endif + diff --git a/TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.cxx b/TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.cxx new file mode 100644 index 00000000000..ea3500e2c36 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.cxx @@ -0,0 +1,292 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtLineShape.cc +// +// Description: Store particle properties for one particle. +// +// Modification history: +// +// Lange March 10, 2001 Module created +// Dvoretskii June 03, 2002 Reimplemented rollMass() +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtPredGen.hh" + +#include "EvtGenBase/EvtRelBreitWignerBarrierFact.hh" +#include "EvtGenBase/EvtTwoBodyVertex.hh" +#include "EvtGenBase/EvtPropBreitWignerRel.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtAmpPdf.hh" +#include "EvtGenBase/EvtMassAmp.hh" +#include "EvtGenBase/EvtSpinType.hh" +#include "EvtGenBase/EvtIntervalFlatPdf.hh" +#include +EvtRelBreitWignerBarrierFact::EvtRelBreitWignerBarrierFact() { + +} + +EvtRelBreitWignerBarrierFact::~EvtRelBreitWignerBarrierFact() { +} + +EvtRelBreitWignerBarrierFact::EvtRelBreitWignerBarrierFact(double mass, double width, double maxRange, EvtSpinType::spintype sp) : + EvtAbsLineShape(mass,width,maxRange,sp) +{ // double mDaug1, double mDaug2, int l) { + + _includeDecayFact=true; + _includeBirthFact=true; + _mass=mass; + _width=width; + _spin=sp; + _blatt=3.0; + _maxRange=maxRange; + _errorCond=false; + + double maxdelta = 15.0*width; + + if ( maxRange > 0.00001 ) { + _massMax=mass+maxdelta; + _massMin=mass-maxRange; + } + else{ + _massMax=mass+maxdelta; + _massMin=mass-15.0*width; + } + + _massMax=mass+maxdelta; + if ( _massMin< 0. ) _massMin=0.; +} + +EvtRelBreitWignerBarrierFact::EvtRelBreitWignerBarrierFact(const EvtRelBreitWignerBarrierFact& x) : + EvtAbsLineShape(x) +{ + _massMax=x._massMax; + _massMin=x._massMin; + _blatt=x._blatt; + _maxRange=x._maxRange; + _includeDecayFact=x._includeDecayFact; + _includeBirthFact=x._includeBirthFact; + _errorCond=x._errorCond; + +} + +EvtRelBreitWignerBarrierFact& EvtRelBreitWignerBarrierFact::operator=(const EvtRelBreitWignerBarrierFact& x) { + _mass=x._mass; + _width=x._width; + _spin=x._spin; + _massMax=x._massMax; + _massMin=x._massMin; + _blatt=x._blatt; + _maxRange=x._maxRange; + _includeDecayFact=x._includeDecayFact; + _includeBirthFact=x._includeBirthFact; + _errorCond=x._errorCond; + + return *this; +} + +EvtAbsLineShape* EvtRelBreitWignerBarrierFact::clone() { + + return new EvtRelBreitWignerBarrierFact(*this); +} + + +double EvtRelBreitWignerBarrierFact::getMassProb(double mass, double massPar,int nDaug, double *massDau) { + + _errorCond=false; + //return EvtAbsLineShape::getMassProb(mass,massPar,nDaug,massDau); + if (nDaug!=2) return EvtAbsLineShape::getMassProb(mass,massPar,nDaug,massDau); + + double dTotMass=0.; + + int i; + for (i=0; i0.0000000001 ) { + if ( mass > massPar) return 0.; + } + + if ( _errorCond ) return 0.; + + // we did all the work in getRandMass + return 1.; +} + +double EvtRelBreitWignerBarrierFact::getRandMass(EvtId *parId,int nDaug, EvtId *dauId, EvtId *othDaugId, double maxMass, double *dauMasses) { + if ( nDaug!=2) return EvtAbsLineShape::getRandMass(parId,nDaug,dauId,othDaugId,maxMass,dauMasses); + + if ( _width< 0.00001) return _mass; + + //first figure out L - take the lowest allowed. + + EvtSpinType::spintype spinD1=EvtPDL::getSpinType(dauId[0]); + EvtSpinType::spintype spinD2=EvtPDL::getSpinType(dauId[1]); + + int t1=EvtSpinType::getSpin2(spinD1); + int t2=EvtSpinType::getSpin2(spinD2); + int t3=EvtSpinType::getSpin2(_spin); + + int Lmin=-10; + + + // the user has overridden the partial wave to use. + for (unsigned int vC=0; vC<_userSetPW.size(); vC++) { + if ( dauId[0]==_userSetPWD1[vC] && dauId[1]==_userSetPWD2[vC] ) { + Lmin=2*_userSetPW[vC]; + } + if ( dauId[0]==_userSetPWD2[vC] && dauId[1]==_userSetPWD1[vC] ) { + Lmin=2*_userSetPW[vC]; + } + } + + // allow for special cases. + if (Lmin<-1 ) { + + //There are some things I don't know how to deal with + if ( t3>4) return EvtAbsLineShape::getRandMass(parId,nDaug,dauId,othDaugId,maxMass,dauMasses); + if ( t1>4) return EvtAbsLineShape::getRandMass(parId,nDaug,dauId,othDaugId,maxMass,dauMasses); + if ( t2>4) return EvtAbsLineShape::getRandMass(parId,nDaug,dauId,othDaugId,maxMass,dauMasses); + + //figure the min and max allowwed "spins" for the daughters state + Lmin=std::max(t3-t2-t1,std::max(t2-t3-t1,t1-t3-t2)); + if (Lmin<0) Lmin=0; + assert(Lmin==0||Lmin==2||Lmin==4); + } + + //double massD1=EvtPDL::getMeanMass(dauId[0]); + //double massD2=EvtPDL::getMeanMass(dauId[1]); + double massD1=dauMasses[0]; + double massD2=dauMasses[1]; + + // I'm not sure how to define the vertex factor here - so retreat to nonRel code. + if ( (massD1+massD2)> _mass ) return EvtAbsLineShape::getRandMass(parId,nDaug,dauId,othDaugId,maxMass,dauMasses); + + //parent vertex factor not yet implemented + double massOthD=-10.; + double massParent=-10.; + int birthl=-10; + if ( othDaugId) { + EvtSpinType::spintype spinOth=EvtPDL::getSpinType(*othDaugId); + EvtSpinType::spintype spinPar=EvtPDL::getSpinType(*parId); + + int tt1=EvtSpinType::getSpin2(spinOth); + int tt2=EvtSpinType::getSpin2(spinPar); + int tt3=EvtSpinType::getSpin2(_spin); + + + //figure the min and max allowwed "spins" for the daughters state + if ( (tt1<=4) && ( tt2<=4) ) { + birthl=std::max(tt3-tt2-tt1,std::max(tt2-tt3-tt1,tt1-tt3-tt2)); + if (birthl<0) birthl=0; + + massOthD=EvtPDL::getMeanMass(*othDaugId); + massParent=EvtPDL::getMeanMass(*parId); + + } + + // allow user to override + for (size_t vC=0; vC<_userSetBirthPW.size(); vC++) { + if ( *othDaugId==_userSetBirthOthD[vC] && *parId==_userSetBirthPar[vC]){ + birthl=2*_userSetBirthPW[vC]; + } + } + + } + double massM=_massMax; + if ( (maxMass > -0.5) && (maxMass < massM) ) massM=maxMass; + + //special case... if the parent mass is _fixed_ we can do a little better + //and only for a two body decay as that seems to be where we have problems + + // Define relativistic propagator amplitude + + EvtTwoBodyVertex vd(massD1,massD2,_mass,Lmin/2); + vd.set_f(_blatt); + EvtPropBreitWignerRel bw(_mass,_width); + EvtMassAmp amp(bw,vd); + + if ( _includeDecayFact) { + amp.addDeathFact(); + amp.addDeathFactFF(); + } + if ( massParent>-1.) { + if ( _includeBirthFact ) { + + EvtTwoBodyVertex vb(_mass,massOthD,massParent,birthl/2); + //whoops 060116 + //needed to actually tell the vertex about the form factor! + //otherwise its just 1 + if ( _applyFixForSP8 ) vb.set_f(_blatt); + amp.setBirthVtx(vb); + amp.addBirthFact(); + amp.addBirthFactFF(); + } + } + + + EvtAmpPdf pdf(amp); + + // Estimate maximum and create predicate for accept reject + + + double tempMaxLoc=_mass; + if ( maxMass>-0.5 && maxMass<_mass) tempMaxLoc=maxMass; + double tempMax=_massMax; + if ( maxMass>-0.5 && maxMass<_massMax) tempMax=maxMass; + double tempMinMass=_massMin; + if ( massD1+massD2 > _massMin) tempMinMass=massD1+massD2; + + //redo sanity check - is there a solution to our problem. + //if not return an error condition that is caught by the + //mass prob calculation above. + if ( tempMinMass > tempMax ) { + _errorCond=true; + return tempMinMass; + } + + if ( tempMaxLoc < tempMinMass) tempMaxLoc=tempMinMass; + + double safetyFactor=1.2; + if ( _applyFixForSP8 ) safetyFactor=1.4; + + EvtPdfMax max(safetyFactor*pdf.evaluate(EvtPoint1D(tempMinMass,tempMax,tempMaxLoc))); + + EvtPdfPred pred(pdf); + pred.setMax(max); + + EvtIntervalFlatPdf flat(tempMinMass,tempMax); + EvtPdfGen gen(flat); + EvtPredGen,EvtPdfPred > predgen(gen,pred); + + EvtPoint1D point = predgen(); + return point.value(); + +} + + + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.hh b/TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.hh new file mode 100644 index 00000000000..e47f43bac04 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtRelBreitWignerBarrierFact.hh @@ -0,0 +1,56 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtAbsLineShape.hh +// +// Description: Class to keep the particle properties for +// one particle +// +// Modification history: +// +// Lange March 10, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTRELBREITWIGNERBARRIERFACT_HH +#define EVTRELBREITWIGNERBARRIERFACT_HH + +#include "EvtGenBase/EvtAbsLineShape.hh" + +class EvtRelBreitWignerBarrierFact :public EvtAbsLineShape { + +public: + + EvtRelBreitWignerBarrierFact(); + EvtRelBreitWignerBarrierFact(double mass, double width, double maxRange, EvtSpinType::spintype sp); + //figure the m1 and l on the fly + // double mDaug1, double mDaug2, int l); + ~EvtRelBreitWignerBarrierFact(); + EvtRelBreitWignerBarrierFact& operator=(const EvtRelBreitWignerBarrierFact& x); + EvtRelBreitWignerBarrierFact(const EvtRelBreitWignerBarrierFact& x); + + EvtAbsLineShape* clone(); + + double getMassProb(double mass, double massPar, int nDaug, double *massDau); + // othDaugId is the other daughter of the parent in the case of a two body decay (only!) + // ie B->rho K rho->pipi, othDaugId = K + double getRandMass(EvtId *parId, int nDaug, EvtId *dauId, EvtId *othDaugId, double maxMass, double *dauMasses); + + virtual void reSetBlatt(double blatt) { _blatt = blatt; } + +protected: + + double _blatt; + bool _errorCond; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtReport.cxx b/TEvtGen/EvtGenBase/EvtReport.cxx new file mode 100644 index 00000000000..e44f141f203 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtReport.cxx @@ -0,0 +1,58 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtReport.cc +// +// Description: definitions of global functions. +// +// Modification history: +// +// Simon Patton June 3, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtReport.hh" +using std::cerr; +using std::cout; +using std::endl; +using std::ostream; + + +// +// constants, enums and typedefs +// + + +ostream& report( Severity severity , + const char* facility ) +{ + int printNoFacility=1; + + if ( ( facility == 0 ) && + ( printNoFacility ==1) ) { + cout << "There is no `facility' implemented in `report'" + << endl ; + printNoFacility = 0 ; + } + if ( severity < WARNING ) { + if (facility[0]!=0){ + cerr< + +// user include files + +#else /* filename-only includes */ +#include +#include +#endif /* filename-only includes */ +// system include files + +// user include files + +// forward declarations + +// +// constants, enums and typedefs +// +enum Severity { + EMERGENCY, // fatal + ALERT, // requires immediate action + CRITICAL, // serious + ERROR, + WARNING, + NOTICE, // "normal but significant" + INFO, // informational + DEBUG // debug +}; + +// function declaration +std::ostream& report( Severity severity , + const char* facility = 0 ) ; + +// inline function definitions + +#endif /* TOOLBOX_FUNCTIONS_HH */ + diff --git a/TEvtGen/EvtGenBase/EvtResonance.cxx b/TEvtGen/EvtGenBase/EvtResonance.cxx new file mode 100644 index 00000000000..5e45f9bf052 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtResonance.cxx @@ -0,0 +1,150 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtResonance.cc +// +// Description: resonance-defining class +// +// Modification history: +// +// NK September 4, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtKine.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtResonance.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtConst.hh" +using std::endl; + +EvtResonance::~EvtResonance(){} + + +EvtResonance& EvtResonance::operator = ( const EvtResonance &n) +{ + if ( &n == this ) return *this; + _p4_p = n._p4_p; + _p4_d1 = n._p4_d1; + _p4_d2 = n._p4_d2; + _ampl = n._ampl; + _theta = n._theta; + _gamma = n._gamma; + _spin = n._spin; + _bwm = n._bwm; + return *this; +} + + +EvtResonance::EvtResonance(const EvtVector4R& p4_p, const EvtVector4R& p4_d1, + const EvtVector4R& p4_d2, double ampl, + double theta, double gamma, double bwm, int spin): + _p4_p(p4_p),_p4_d1(p4_d1), _p4_d2(p4_d2),_ampl(ampl), _theta(theta), + _gamma(gamma), _bwm(bwm), _spin(spin) {} + +EvtComplex EvtResonance::resAmpl() { + + double pi180inv = 1.0/EvtConst::radToDegrees; + + EvtComplex ampl; + //EvtVector4R _p4_d3 = _p4_p-_p4_d1-_p4_d2; + + //get cos of the angle between the daughters from their 4-momenta + //and the 4-momentum of the parent + + //in general, EvtDecayAngle(parent, part1+part2, part1) gives the angle + //the missing particle (not listed in the arguments) makes + //with part2 in the rest frame of both + //listed particles (12) + + //angle 3 makes with 2 in rest frame of 12 (CS3) + double cos_phi_0 = EvtDecayAngle(_p4_p, _p4_d1+_p4_d2, _p4_d1); + //angle 3 makes with 1 in 12 is, of course, -cos_phi_0 + + switch (_spin) { + + case 0 : + ampl=(_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))* + sqrt(_gamma/EvtConst::twoPi)* + (1.0/((_p4_d1+_p4_d2).mass()-_bwm-EvtComplex(0.0,0.5*_gamma)))); + break; + + case 1 : + ampl=(_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))* + sqrt(_gamma/EvtConst::twoPi)* + (cos_phi_0/((_p4_d1+_p4_d2).mass()-_bwm-EvtComplex(0.0,0.5*_gamma)))); + break; + + case 2: + ampl=(_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))* + sqrt(_gamma/EvtConst::twoPi)* + ((1.5*cos_phi_0*cos_phi_0-0.5)/((_p4_d1+_p4_d2).mass()-_bwm-EvtComplex(0.0, 0.5*_gamma)))); + break; + + case 3: + ampl=(_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))* + sqrt(_gamma/EvtConst::twoPi)* + ((2.5*cos_phi_0*cos_phi_0*cos_phi_0-1.5*cos_phi_0)/((_p4_d1+_p4_d2).mass()-_bwm-EvtComplex(0.0, 0.5*_gamma)))); + break; + + default: + report(DEBUG,"EvtGen") << "EvtGen: wrong spin in EvtResonance" << endl; + ampl = EvtComplex(0.0); + break; + + } + + return ampl; +} + +EvtComplex EvtResonance::relBrWig(int i) { + +//this function returns relativistic Breit-Wigner amplitude +//for a given resonance (for P-wave decays of scalars only at the moment!) + + EvtComplex BW; + EvtVector4R _p4_d3 = _p4_p-_p4_d1-_p4_d2; + EvtVector4R _p4_12 = _p4_d1 + _p4_d2; + + double msq13 = (_p4_d1 + _p4_d3).mass2(); + double msq23 = (_p4_d2 + _p4_d3).mass2(); + double msqParent = _p4_p.mass2(); + double msq1 = _p4_d1.mass2(); + double msq2 = _p4_d2.mass2(); + double msq3 = _p4_d3.mass2(); + + double M; + + double p2 = sqrt((_p4_12.mass2() - (_p4_d1.mass() + _p4_d2.mass())*(_p4_d1.mass() + _p4_d2.mass()))*(_p4_12.mass2() - (_p4_d1.mass() - _p4_d2.mass())*(_p4_d1.mass() - _p4_d2.mass())))/(2.0*_p4_12.mass()); + + double p2R = sqrt((_bwm*_bwm - (_p4_d1.mass() + _p4_d2.mass())*(_p4_d1.mass() + _p4_d2.mass()))*(_bwm*_bwm - (_p4_d1.mass() - _p4_d2.mass())*(_p4_d1.mass() - _p4_d2.mass())))/(2.0*_bwm); + + double gam, R; + + if (i == 1) { + + R = 2.0/(0.197); + + } + else R = 5.0/(0.197); + + gam = _gamma*(_bwm/_p4_12.mass())*(p2/p2R)*(p2/p2R)*(p2/p2R)*((1 + R*R*p2R*p2R)/(1 + R*R*p2*p2)); + M = (msq13 - msq23 - (msqParent - msq3)*(msq1 - msq2)/(_bwm*_bwm))*sqrt((1 + R*R*p2R*p2R)/(1 + R*R*p2*p2)); + + BW = sqrt(_gamma)*M/((_bwm*_bwm - _p4_12.mass2()) - EvtComplex(0.0,1.0)*gam*_bwm); + + return BW; + +} + + diff --git a/TEvtGen/EvtGenBase/EvtResonance.hh b/TEvtGen/EvtGenBase/EvtResonance.hh new file mode 100644 index 00000000000..1378993bf3e --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtResonance.hh @@ -0,0 +1,81 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtResonance.hh +// +// Description:resonance-defining class +// +// Modification history: +// +// NK September 4, 1997 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTRESONANCE_HH +#define EVTRESONANCE_HH + +#include "EvtGenBase/EvtVector4R.hh" + +class EvtComplex; + + + +class EvtResonance { +public: + + EvtResonance& operator = (const EvtResonance &); + + //constructor with all information about the resonance + EvtResonance(const EvtVector4R& p4_p, const EvtVector4R& p4_d1, + const EvtVector4R& p4_d2, + double ampl = 0.0, double theta = 0.0, double gamma = 0.0, + double bwm = 0.0, int spin = 0); + + //destructor + virtual ~EvtResonance(); + + //accessors + //return 4-momenta of the particles involved + inline const EvtVector4R& p4_p() { return _p4_p; } + inline const EvtVector4R& p4_d1() { return _p4_d1; } + inline const EvtVector4R& p4_d2() { return _p4_d2; } + + + //return amplitude + inline double amplitude() { return _ampl; } + + //return theta + inline double theta() { return _theta; } + + //return gamma + inline double gamma() { return _gamma; } + + //return bwm + inline double bwm() { return _bwm; } + + //return spin + inline int spin() { return _spin; } + + //calculate amplitude for this resonance + EvtComplex resAmpl(); + + //calculate relativistic Breit-Wigner amplitude for P-decays of scalars + EvtComplex relBrWig(int i); + +private: + + EvtVector4R _p4_p, _p4_d1, _p4_d2; + double _ampl, _theta, _gamma, _bwm; + int _spin; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtResonance2.cxx b/TEvtGen/EvtGenBase/EvtResonance2.cxx new file mode 100644 index 00000000000..c27e3b310c6 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtResonance2.cxx @@ -0,0 +1,151 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtResonance2.cc +// +// Description: resonance-defining class +// +// Modification history: +// +// NK September 4, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtKine.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtResonance2.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtConst.hh" + +EvtResonance2::~EvtResonance2(){} + +EvtResonance2& EvtResonance2::operator = ( const EvtResonance2 &n) +{ + if ( &n == this ) return *this; + _p4_p = n._p4_p; + _p4_d1 = n._p4_d1; + _p4_d2 = n._p4_d2; + _ampl = n._ampl; + _theta = n._theta; + _gamma = n._gamma; + _spin = n._spin; + _bwm = n._bwm; + _invmass_angdenom = n._invmass_angdenom; + return *this; +} + + +EvtResonance2::EvtResonance2(const EvtVector4R& p4_p, const EvtVector4R& p4_d1, + const EvtVector4R& p4_d2, double ampl, + double theta, double gamma, double bwm, int spin, + bool invmass_angdenom): + _p4_p(p4_p),_p4_d1(p4_d1), _p4_d2(p4_d2),_ampl(ampl), _theta(theta), + _gamma(gamma), _bwm(bwm), _spin(spin), _invmass_angdenom(invmass_angdenom) {} + + +EvtComplex EvtResonance2::resAmpl() { + + double pi180inv = 1.0/EvtConst::radToDegrees; + + EvtComplex ampl; + EvtVector4R p4_d3 = _p4_p-_p4_d1-_p4_d2; + + //get cos of the angle between the daughters from their 4-momenta + //and the 4-momentum of the parent + + //in general, EvtDecayAngle(parent, part1+part2, part1) gives the angle + //the missing particle (not listed in the arguments) makes + //with part2 in the rest frame of both + //listed particles (12) + + //angle 3 makes with 2 in rest frame of 12 (CS3) + //double cos_phi_0 = EvtDecayAngle(_p4_p, _p4_d1+_p4_d2, _p4_d1); + //angle 3 makes with 1 in 12 is, of course, -cos_phi_0 + + //first compute several quantities...follow CLEO preprint 00-23 + + double mAB=(_p4_d1+_p4_d2).mass(); + double mBC=(_p4_d2+p4_d3).mass(); + double mAC=(_p4_d1+p4_d3).mass(); + double mA=_p4_d1.mass(); + double mB=_p4_d2.mass(); + double mD=_p4_p.mass(); + double mC=p4_d3.mass(); + + double mR=_bwm; + double gammaR=_gamma; + double mdenom = _invmass_angdenom ? mAB : mR; + double pAB=sqrt( (((mAB*mAB-mA*mA-mB*mB)*(mAB*mAB-mA*mA-mB*mB)/4.0) - + mA*mA*mB*mB)/(mAB*mAB)); + double pR=sqrt( (((mR*mR-mA*mA-mB*mB)*(mR*mR-mA*mA-mB*mB)/4.0) - + mA*mA*mB*mB)/(mR*mR)); + + double pD= (((mD*mD-mR*mR-mC*mC)*(mD*mD-mR*mR-mC*mC)/4.0) - + mR*mR*mC*mC)/(mD*mD); + if ( pD>0 ) { pD=sqrt(pD); } else {pD=0;} + double pDAB=sqrt( (((mD*mD-mAB*mAB-mC*mC)*(mD*mD-mAB*mAB-mC*mC)/4.0) - + mAB*mAB*mC*mC)/(mD*mD)); + + + + double fR=1; + double fD=1; + int power=0; + switch (_spin) { + case 0: + fR=1.0; + fD=1.0; + power=1; + break; + case 1: + fR=sqrt(1.0+1.5*1.5*pR*pR)/sqrt(1.0+1.5*1.5*pAB*pAB); + fD=sqrt(1.0+5.0*5.0*pD*pD)/sqrt(1.0+5.0*5.0*pDAB*pDAB); + power=3; + break; + case 2: + fR = sqrt( (9+3*pow((1.5*pR),2)+pow((1.5*pR),4))/(9+3*pow((1.5*pAB),2)+pow((1.5*pAB),4)) ); + fD = sqrt( (9+3*pow((5.0*pD),2)+pow((5.0*pD),4))/(9+3*pow((5.0*pDAB),2)+pow((5.0*pDAB),4)) ); + power=5; + break; + default: + report(INFO,"EvtGen") << "Incorrect spin in EvtResonance22.cc\n"; + } + + double gammaAB= gammaR*pow(pAB/pR,power)*(mR/mAB)*fR*fR; + switch (_spin) { + case 0: + ampl=_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))* + fR*fD/(mR*mR-mAB*mAB-EvtComplex(0.0,mR*gammaAB)); + break; + case 1: + ampl=_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))* + (fR*fD*(mAC*mAC-mBC*mBC+((mD*mD-mC*mC)*(mB*mB-mA*mA)/(mdenom*mdenom)))/ + (mR*mR-mAB*mAB-EvtComplex(0.0,mR*gammaAB))); + break; + case 2: + ampl=_ampl*EvtComplex(cos(_theta*pi180inv),sin(_theta*pi180inv))* + fR*fD/(mR*mR-mAB*mAB-EvtComplex(0.0,mR*gammaAB))* + (pow((mBC*mBC-mAC*mAC+(mD*mD-mC*mC)*(mA*mA-mB*mB)/(mdenom*mdenom)),2)- + (1.0/3.0)*(mAB*mAB-2*mD*mD-2*mC*mC+pow((mD*mD- mC*mC)/mdenom, 2))* + (mAB*mAB-2*mA*mA-2*mB*mB+pow((mA*mA-mB*mB)/mdenom,2))); + break; + + default: + report(INFO,"EvtGen") << "Incorrect spin in EvtResonance22.cc\n"; + } + + return ampl; +} + + + diff --git a/TEvtGen/EvtGenBase/EvtResonance2.hh b/TEvtGen/EvtGenBase/EvtResonance2.hh new file mode 100644 index 00000000000..b0df5c6bf93 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtResonance2.hh @@ -0,0 +1,84 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtResonance2.hh +// +// Description:resonance-defining class +// +// Modification history: +// +// lange Nov 21, 2000 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTRESONANCE2_HH +#define EVTRESONANCE2_HH + +#include "EvtGenBase/EvtVector4R.hh" + +class EvtComplex; + + + +class EvtResonance2 { +public: + + //operator + EvtResonance2& operator = (const EvtResonance2 &); + + //constructor with all information about the resonance + // invmass_angdenom chooses whether to use the resonance mass (false) + // or the daughter invariant mass (true) for the denominators in + // angular distributions + + EvtResonance2(const EvtVector4R& p4_p, const EvtVector4R& p4_d1, + const EvtVector4R& p4_d2, + double ampl = 0.0, double theta = 0.0, double gamma = 0.0, + double bwm = 0.0, int spin = 0, bool invmass_angdenom = false); + + //destructor + virtual ~EvtResonance2(); + + //accessors + //return 4-momenta of the particles involved + inline const EvtVector4R& p4_p() { return _p4_p; } + inline const EvtVector4R& p4_d1() { return _p4_d1; } + inline const EvtVector4R& p4_d2() { return _p4_d2; } + + + //return amplitude + inline double amplitude() { return _ampl; } + + //return theta + inline double theta() { return _theta; } + + //return gamma + inline double gamma() { return _gamma; } + + //return bwm + inline double bwm() { return _bwm; } + + //return spin + inline int spin() { return _spin; } + + //calculate amplitude for this resonance + EvtComplex resAmpl(); + + private: + + EvtVector4R _p4_p, _p4_d1, _p4_d2; + double _ampl, _theta, _gamma, _bwm; + int _spin; + bool _invmass_angdenom; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtScalarParticle.cxx b/TEvtGen/EvtGenBase/EvtScalarParticle.cxx new file mode 100644 index 00000000000..2623f0a3b0b --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtScalarParticle.cxx @@ -0,0 +1,76 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtScalarParticle.cc +// +// Description: Class to describe scalar particles +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtScalarParticle.hh" +#include "EvtGenBase/EvtVector4R.hh" + + +void EvtScalarParticle::init(EvtId part_n,double e,double px,double py,double pz){ + + _validP4=true; + setp(e,px,py,pz); + setpart_num(part_n); + + setLifetime(); + +} + +EvtScalarParticle::~EvtScalarParticle() {} + + +void EvtScalarParticle::init(EvtId part_n,const EvtVector4R& p4){ + + _validP4=true; + setp(p4); + setpart_num(part_n); + + setLifetime(); + +} + +EvtSpinDensity EvtScalarParticle::rotateToHelicityBasis() const{ + + EvtSpinDensity R; + R.setDim(1); + + R.set(0,0,1.0); + + return R; + +} + + +EvtSpinDensity EvtScalarParticle::rotateToHelicityBasis(double, + double, + double) const{ + + EvtSpinDensity R; + R.setDim(1); + + R.set(0,0,1.0); + + return R; + +} + diff --git a/TEvtGen/EvtGenBase/EvtScalarParticle.hh b/TEvtGen/EvtGenBase/EvtScalarParticle.hh new file mode 100644 index 00000000000..5dc38221f14 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtScalarParticle.hh @@ -0,0 +1,51 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtScalarParticle.hh +// +// Description:Class to describe all spin 0 particles. +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSCALARPARTICLE_HH +#define EVTSCALARPARTICLE_HH + +#include "EvtGenBase/EvtParticle.hh" +class EvtId; + + +class EvtScalarParticle: public EvtParticle { + +public: + + EvtScalarParticle() {} + virtual ~EvtScalarParticle(); + + void init(EvtId part_n,double e,double px,double py,double pz); + void init(EvtId part_n,const EvtVector4R& p); + + EvtSpinDensity rotateToHelicityBasis() const; + EvtSpinDensity rotateToHelicityBasis(double alpha, + double beta, + double gamma) const; + +private: + + EvtScalarParticle(const EvtScalarParticle& scalar); + EvtScalarParticle& operator=(const EvtScalarParticle& scalar); + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtSecondary.cxx b/TEvtGen/EvtGenBase/EvtSecondary.cxx new file mode 100644 index 00000000000..0db2783b42d --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtSecondary.cxx @@ -0,0 +1,100 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSecondary.cc +// +// Description: Class to store the decays of the secondary particles. +// +// Modification history: +// +// RYD March 12, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtSecondary.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; +using std::ostream; + + +void EvtSecondary::init(){ + _npart=0; +} + +int EvtSecondary::getNPart(){ + return _npart; +} + +void EvtSecondary::createSecondary(int stdhepindex,EvtParticle* prnt){ + + _stdhepindex[_npart]=stdhepindex; + if (prnt->getNDaug()==0){ + _id1[_npart]=0; + _id2[_npart]=0; + _id3[_npart]=0; + _npart++; + return; + } + if (prnt->getNDaug()==1){ + _id1[_npart]=EvtPDL::getStdHep(prnt->getDaug(0)->getId()); + _id2[_npart]=0; + _id3[_npart]=0; + _npart++; + return; + } + if (prnt->getNDaug()==2){ + _id1[_npart]=EvtPDL::getStdHep(prnt->getDaug(0)->getId()); + _id2[_npart]=EvtPDL::getStdHep(prnt->getDaug(1)->getId()); + _id3[_npart]=0; + _npart++; + return; + } + if (prnt->getNDaug()==3){ + _id1[_npart]=EvtPDL::getStdHep(prnt->getDaug(0)->getId()); + _id2[_npart]=EvtPDL::getStdHep(prnt->getDaug(1)->getId()); + _id3[_npart]=EvtPDL::getStdHep(prnt->getDaug(2)->getId()); + _npart++; + return; + } + + report(ERROR,"EvtGen") << + "More than 3 decay products in a secondary particle!"< + +class EvtSecondary { + +public: + + EvtSecondary(){} + ~EvtSecondary(){} + + void init(); + + int getStdHepIndex(int i) {return _stdhepindex[i];} + int getD1(int i) {return _id1[i];} + int getD2(int i) {return _id2[i];} + int getD3(int i) {return _id3[i];} + + int getNPart(); + void createSecondary(int stdhepindex,EvtParticle* prnt); + + friend std::ostream& operator<<(std::ostream& s, const EvtSecondary& secondary); + +private: + + int _npart; + int _stdhepindex[EVTSECONDARYLENGTH]; + int _id1[EVTSECONDARYLENGTH]; + int _id2[EVTSECONDARYLENGTH]; + int _id3[EVTSECONDARYLENGTH]; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.cxx b/TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.cxx new file mode 100644 index 00000000000..b685b138e51 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.cxx @@ -0,0 +1,211 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSemiLeptonicAmp.cc +// +// Description: Base class for semileptonic decays +// +// Modification history: +// +// DJL April 17,1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtAmp.hh" +#include "EvtGenBase/EvtScalarParticle.hh" +#include "EvtGenBase/EvtVectorParticle.hh" +#include "EvtGenBase/EvtTensorParticle.hh" + +double EvtSemiLeptonicAmp::CalcMaxProb( EvtId parent, EvtId meson, + EvtId lepton, EvtId nudaug, + EvtSemiLeptonicFF *FormFactors ) { + + //This routine takes the arguements parent, meson, and lepton + //number, and a form factor model, and returns a maximum + //probability for this semileptonic form factor model. A + //brute force method is used. The 2D cos theta lepton and + //q2 phase space is probed. + + //Start by declaring a particle at rest. + + //It only makes sense to have a scalar parent. For now. + //This should be generalized later. + + EvtScalarParticle *scalar_part; + EvtParticle *root_part; + + scalar_part=new EvtScalarParticle; + + //cludge to avoid generating random numbers! + scalar_part->noLifeTime(); + + EvtVector4R p_init; + + p_init.set(EvtPDL::getMass(parent),0.0,0.0,0.0); + scalar_part->init(parent,p_init); + root_part=(EvtParticle *)scalar_part; + root_part->setDiagonalSpinDensity(); + + EvtParticle *daughter, *lep, *trino; + + EvtAmp amp; + + EvtId listdaug[3]; + listdaug[0] = meson; + listdaug[1] = lepton; + listdaug[2] = nudaug; + + amp.init(parent,3,listdaug); + + root_part->makeDaughters(3,listdaug); + daughter=root_part->getDaug(0); + lep=root_part->getDaug(1); + trino=root_part->getDaug(2); + + //cludge to avoid generating random numbers! + daughter->noLifeTime(); + lep->noLifeTime(); + trino->noLifeTime(); + + + //Initial particle is unpolarized, well it is a scalar so it is + //trivial + EvtSpinDensity rho; + rho.setDiag(root_part->getSpinStates()); + + double mass[3]; + + double m = root_part->mass(); + + EvtVector4R p4meson, p4lepton, p4nu, p4w; + double q2max; + + double q2, elepton, plepton; + int i,j; + double erho,prho,costl; + + double maxfoundprob = 0.0; + double prob = -10.0; + int massiter; + + for (massiter=0;massiter<3;massiter++){ + + mass[0] = EvtPDL::getMeanMass(meson); + mass[1] = EvtPDL::getMeanMass(lepton); + mass[2] = EvtPDL::getMeanMass(nudaug); + if ( massiter==1 ) { + mass[0] = EvtPDL::getMinMass(meson); + } + if ( massiter==2 ) { + mass[0] = EvtPDL::getMaxMass(meson); + if ( (mass[0]+mass[1]+mass[2])>m) mass[0]=m-mass[1]-mass[2]-0.00001; + } + + q2max = (m-mass[0])*(m-mass[0]); + + //loop over q2 + + for (i=0;i<25;i++) { + q2 = ((i+0.5)*q2max)/25.0; + + erho = ( m*m + mass[0]*mass[0] - q2 )/(2.0*m); + + prho = sqrt(erho*erho-mass[0]*mass[0]); + + p4meson.set(erho,0.0,0.0,-1.0*prho); + p4w.set(m-erho,0.0,0.0,prho); + + //This is in the W rest frame + elepton = (q2+mass[1]*mass[1])/(2.0*sqrt(q2)); + plepton = sqrt(elepton*elepton-mass[1]*mass[1]); + + double probctl[3]; + + for (j=0;j<3;j++) { + + costl = 0.99*(j - 1.0); + + //These are in the W rest frame. Need to boost out into + //the B frame. + p4lepton.set(elepton,0.0, + plepton*sqrt(1.0-costl*costl),plepton*costl); + p4nu.set(plepton,0.0, + -1.0*plepton*sqrt(1.0-costl*costl),-1.0*plepton*costl); + + EvtVector4R boost((m-erho),0.0,0.0,1.0*prho); + p4lepton=boostTo(p4lepton,boost); + p4nu=boostTo(p4nu,boost); + + //Now initialize the daughters... + + daughter->init(meson,p4meson); + lep->init(lepton,p4lepton); + trino->init(nudaug,p4nu); + + CalcAmp(root_part,amp,FormFactors); + + //Now find the probability at this q2 and cos theta lepton point + //and compare to maxfoundprob. + + //Do a little magic to get the probability!! + prob = rho.normalizedProb(amp.getSpinDensity()); + + probctl[j]=prob; + } + + //probclt contains prob at ctl=-1,0,1. + //prob=a+b*ctl+c*ctl^2 + + double a=probctl[1]; + double b=0.5*(probctl[2]-probctl[0]); + double c=0.5*(probctl[2]+probctl[0])-probctl[1]; + + prob=probctl[0]; + if (probctl[1]>prob) prob=probctl[1]; + if (probctl[2]>prob) prob=probctl[2]; + + if (fabs(c)>1e-20){ + double ctlx=-0.5*b/c; + if (fabs(ctlx)<1.0){ + double probtmp=a+b*ctlx+c*ctlx*ctlx; + if (probtmp>prob) prob=probtmp; + } + + } + + if ( prob > maxfoundprob ) { + maxfoundprob = prob; + } + + } + if ( EvtPDL::getWidth(meson) <= 0.0 ) { + //if the particle is narrow dont bother with changing the mass. + massiter = 4; + } + + } + root_part->deleteTree(); + + maxfoundprob *=1.1; + return maxfoundprob; + +} + diff --git a/TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.hh b/TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.hh new file mode 100644 index 00000000000..43dbca8fd46 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtSemiLeptonicAmp.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSemiLeptonicAmp.hh +// +// Description:Store decay parameters for one decay. +// +// Modification history: +// +// RYD September 30 1997 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSEMILEPTONICAMP_HH +#define EVTSEMILEPTONICAMP_HH + +class EvtAmp; +class EvtParticle; +class EvtSemiLeptonicFF; +class EvtId; + +class EvtSemiLeptonicAmp{ + + public: + + //Daughters are initialized and have been added to the parent. + //No need to carry around the daughters seperately! + + virtual void CalcAmp( EvtParticle *parent, EvtAmp& amp, + EvtSemiLeptonicFF *FormFactors ) = 0; + + double CalcMaxProb( EvtId parent, EvtId meson, EvtId lepton, + EvtId nudaug, EvtSemiLeptonicFF *FormFactors ); + + +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtSemiLeptonicBaryonAmp.cxx b/TEvtGen/EvtGenBase/EvtSemiLeptonicBaryonAmp.cxx new file mode 100644 index 00000000000..8df266a2827 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtSemiLeptonicBaryonAmp.cxx @@ -0,0 +1,163 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSemiLeptonicBaryonAmp.cc +// +// Description: Routine to implement semileptonic decays to vector +// mesons. +// +// Modification history: +// +// Lange Oct 20, 2004 Module created. +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtSemiLeptonicBaryonAmp.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtGammaMatrix.hh" +using std::endl; + +void EvtSemiLeptonicBaryonAmp::CalcAmp( EvtParticle *parent, + EvtAmp& amp, + EvtSemiLeptonicFF *FormFactors ) { + + static EvtId EM=EvtPDL::getId("e-"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + + //Add the lepton and neutrino 4 momenta to find q2 + + EvtVector4R q = parent->getDaug(1)->getP4() + + parent->getDaug(2)->getP4(); + double q2 = (q.mass2()); + + double f1v,f1a,f2v,f2a; + double m_meson = parent->getDaug(0)->mass(); + + FormFactors->getbaryonff(parent->getId(), + parent->getDaug(0)->getId(), + q2, + m_meson, + &f1v, + &f1a, + &f2v, + &f2a); + + EvtVector4R p4b; + p4b.set(parent->mass(),0.0,0.0,0.0); + + EvtVector4C temp_00_term1; + EvtVector4C temp_00_term2; + + EvtVector4C temp_01_term1; + EvtVector4C temp_01_term2; + + EvtVector4C temp_10_term1; + EvtVector4C temp_10_term2; + + EvtVector4C temp_11_term1; + EvtVector4C temp_11_term2; + + EvtDiracSpinor p0=parent->sp(0); + EvtDiracSpinor p1=parent->sp(1); + + EvtDiracSpinor d0=parent->getDaug(0)->spParent(0); + EvtDiracSpinor d1=parent->getDaug(0)->spParent(1); + + temp_00_term1.set(0,f1v*(d0*(EvtGammaMatrix::g0()*p0))); + temp_00_term2.set(0,f1a*(d0*((EvtGammaMatrix::g0()*EvtGammaMatrix::g5())*p0))); + temp_01_term1.set(0,f1v*(d0*(EvtGammaMatrix::g0()*p1))); + temp_01_term2.set(0,f1a*(d0*((EvtGammaMatrix::g0()*EvtGammaMatrix::g5())*p1))); + temp_10_term1.set(0,f1v*(d1*(EvtGammaMatrix::g0()*p0))); + temp_10_term2.set(0,f1a*(d1*((EvtGammaMatrix::g0()*EvtGammaMatrix::g5())*p0))); + temp_11_term1.set(0,f1v*(d1*(EvtGammaMatrix::g0()*p1))); + temp_11_term2.set(0,f1a*(d1*((EvtGammaMatrix::g0()*EvtGammaMatrix::g5())*p1))); + + temp_00_term1.set(1,f1v*(d0*(EvtGammaMatrix::g1()*p0))); + temp_00_term2.set(1,f1a*(d0*((EvtGammaMatrix::g1()*EvtGammaMatrix::g5())*p0))); + temp_01_term1.set(1,f1v*(d0*(EvtGammaMatrix::g1()*p1))); + temp_01_term2.set(1,f1a*(d0*((EvtGammaMatrix::g1()*EvtGammaMatrix::g5())*p1))); + temp_10_term1.set(1,f1v*(d1*(EvtGammaMatrix::g1()*p0))); + temp_10_term2.set(1,f1a*(d1*((EvtGammaMatrix::g1()*EvtGammaMatrix::g5())*p0))); + temp_11_term1.set(1,f1v*(d1*(EvtGammaMatrix::g1()*p1))); + temp_11_term2.set(1,f1a*(d1*((EvtGammaMatrix::g1()*EvtGammaMatrix::g5())*p1))); + + temp_00_term1.set(2,f1v*(d0*(EvtGammaMatrix::g2()*p0))); + temp_00_term2.set(2,f1a*(d0*((EvtGammaMatrix::g2()*EvtGammaMatrix::g5())*p0))); + temp_01_term1.set(2,f1v*(d0*(EvtGammaMatrix::g2()*p1))); + temp_01_term2.set(2,f1a*(d0*((EvtGammaMatrix::g2()*EvtGammaMatrix::g5())*p1))); + temp_10_term1.set(2,f1v*(d1*(EvtGammaMatrix::g2()*p0))); + temp_10_term2.set(2,f1a*(d1*((EvtGammaMatrix::g2()*EvtGammaMatrix::g5())*p0))); + temp_11_term1.set(2,f1v*(d1*(EvtGammaMatrix::g2()*p1))); + temp_11_term2.set(2,f1a*(d1*((EvtGammaMatrix::g2()*EvtGammaMatrix::g5())*p1))); + + temp_00_term1.set(3,f1v*(d0*(EvtGammaMatrix::g3()*p0))); + temp_00_term2.set(3,f1a*(d0*((EvtGammaMatrix::g3()*EvtGammaMatrix::g5())*p0))); + temp_01_term1.set(3,f1v*(d0*(EvtGammaMatrix::g3()*p1))); + temp_01_term2.set(3,f1a*(d0*((EvtGammaMatrix::g3()*EvtGammaMatrix::g5())*p1))); + temp_10_term1.set(3,f1v*(d1*(EvtGammaMatrix::g3()*p0))); + temp_10_term2.set(3,f1a*(d1*((EvtGammaMatrix::g3()*EvtGammaMatrix::g5())*p0))); + temp_11_term1.set(3,f1v*(d1*(EvtGammaMatrix::g3()*p1))); + temp_11_term2.set(3,f1a*(d1*((EvtGammaMatrix::g3()*EvtGammaMatrix::g5())*p1))); + + + + EvtVector4C l1,l2; + + EvtId l_num = parent->getDaug(1)->getId(); + if (l_num==EM||l_num==MUM||l_num==TAUM){ + + l1=EvtLeptonVACurrent(parent->getDaug(1)->spParent(0), + parent->getDaug(2)->spParentNeutrino()); + l2=EvtLeptonVACurrent(parent->getDaug(1)->spParent(1), + parent->getDaug(2)->spParentNeutrino()); + } + else{ + if (l_num==EP||l_num==MUP||l_num==TAUP){ + l1=EvtLeptonVACurrent(parent->getDaug(2)->spParentNeutrino(), + parent->getDaug(1)->spParent(0)); + l2=EvtLeptonVACurrent(parent->getDaug(2)->spParentNeutrino(), + parent->getDaug(1)->spParent(1)); + } + else{ + report(ERROR,"EvtGen") << "Wrong lepton number"<getDaug(1)->getP4() + + parent->getDaug(2)->getP4(); + double q2 = (q.mass2()); + + double fpf,f0f; + double mesonmass = parent->getDaug(0)->mass(); + double parentmass = parent->mass(); + + FormFactors->getscalarff(parent->getId(), + parent->getDaug(0)->getId(), + q2, + mesonmass, + &fpf, + &f0f); + + + EvtVector4R p4b; + p4b.set(parent->mass(),0.0,0.0,0.0); + EvtVector4R p4meson = parent->getDaug(0)->getP4(); + double mdiffoverq2; + mdiffoverq2 = parentmass*parentmass - mesonmass*mesonmass; + mdiffoverq2 = mdiffoverq2 / q2; + + EvtVector4C l1,l2; + + EvtId l_num = parent->getDaug(1)->getId(); + EvtVector4C tds; + + if (l_num==EM||l_num==MUM||l_num==TAUM){ + + tds = EvtVector4C(fpf*(p4b+p4meson - (mdiffoverq2*(p4b-p4meson)))+ + + f0f*mdiffoverq2*(p4b-p4meson)); + + l1=EvtLeptonVACurrent(parent->getDaug(1)->spParent(0), + parent->getDaug(2)->spParentNeutrino()); + l2=EvtLeptonVACurrent(parent->getDaug(1)->spParent(1), + parent->getDaug(2)->spParentNeutrino()); + } + else{ + if (l_num==EP||l_num==MUP||l_num==TAUP){ + + tds = EvtVector4C(fpf*(p4b+p4meson - (mdiffoverq2*(p4b-p4meson)))+ + + f0f*mdiffoverq2*(p4b-p4meson)); + + l1=EvtLeptonVACurrent(parent->getDaug(2)->spParentNeutrino(), + parent->getDaug(1)->spParent(0)); + l2=EvtLeptonVACurrent(parent->getDaug(2)->spParentNeutrino(), + parent->getDaug(1)->spParent(1)); + } + else{ + report(ERROR,"EvtGen") << "dfnb89agngri wrong lepton number\n"; + } + } + + amp.vertex(0,l1*tds); + amp.vertex(1,l2*tds); + +} + diff --git a/TEvtGen/EvtGenBase/EvtSemiLeptonicScalarAmp.hh b/TEvtGen/EvtGenBase/EvtSemiLeptonicScalarAmp.hh new file mode 100644 index 00000000000..11cc800dda8 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtSemiLeptonicScalarAmp.hh @@ -0,0 +1,40 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSemiLeptonicScalarAmp.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSEMILEPTONICSCALARAMP_HH +#define EVTSEMILEPTONICSCALARAMP_HH + +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" + +class EvtAmp; +class EvtParticle; +class EvtSemiLeptonicFF; + +class EvtSemiLeptonicScalarAmp : public EvtSemiLeptonicAmp { + + //Daughters are initialized and have been added to the parent. + //No need to carry around the daughters seperately! + void CalcAmp( EvtParticle *parent, EvtAmp& amp, + EvtSemiLeptonicFF *FormFactors ); + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtSemiLeptonicTensorAmp.cxx b/TEvtGen/EvtGenBase/EvtSemiLeptonicTensorAmp.cxx new file mode 100644 index 00000000000..a6c761d3214 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtSemiLeptonicTensorAmp.cxx @@ -0,0 +1,209 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSemiLeptonicTensorAmp.cc +// +// Description: Routine to implement semileptonic decays to pseudo-scalar +// mesons. +// +// Modification history: +// +// DJL April 17,1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtSemiLeptonicTensorAmp.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" + +void EvtSemiLeptonicTensorAmp::CalcAmp( EvtParticle *parent, + EvtAmp& amp, + EvtSemiLeptonicFF *FormFactors ) { + static EvtId EM=EvtPDL::getId("e-"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + static EvtId DSM=EvtPDL::getId("D_s-"); + static EvtId DSP=EvtPDL::getId("D_s+"); + + //Add the lepton and neutrino 4 momenta to find q2 + + EvtVector4R q = parent->getDaug(1)->getP4() + + parent->getDaug(2)->getP4(); + double q2 = (q.mass2()); + + double hf,kf,bpf,bmf; + + FormFactors->gettensorff(parent->getId(), + parent->getDaug(0)->getId(), + q2, + parent->getDaug(0)->mass(), + &hf, + &kf, + &bpf, + &bmf); + + + double costhl_flag = 1.0; + + if(parent->getId()==D0||parent->getId()==D0B|| + parent->getId()==DP||parent->getId()==DM) { + costhl_flag = -1.0; + } + if(parent->getId()==DSP||parent->getId()==DSM) { + costhl_flag = -1.0; + } + hf = hf * costhl_flag; + + EvtVector4R p4b; + p4b.set(parent->mass(),0.0,0.0,0.0); + + EvtVector4R p4meson = parent->getDaug(0)->getP4(); + + EvtVector4C l1,l2; + + EvtId l_num = parent->getDaug(1)->getId(); + + EvtVector4C ep_meson_b[5]; + + ep_meson_b[0] = ((parent->getDaug(0)->epsTensorParent(0)).cont2(p4b)).conj(); + ep_meson_b[1] = ((parent->getDaug(0)->epsTensorParent(1)).cont2(p4b)).conj(); + ep_meson_b[2] = ((parent->getDaug(0)->epsTensorParent(2)).cont2(p4b)).conj(); + ep_meson_b[3] = ((parent->getDaug(0)->epsTensorParent(3)).cont2(p4b)).conj(); + ep_meson_b[4] = ((parent->getDaug(0)->epsTensorParent(4)).cont2(p4b)).conj(); + + EvtVector4R pp,pm; + + pp=p4b+p4meson; + pm=p4b-p4meson; + + //lange - October 31,2002 - try to lessen the mass dependence of probmax + double q2max = p4b.mass2() + p4meson.mass2() - 2.0*p4b.mass()*p4meson.mass(); + double q2maxin=1.0/q2max; + + EvtComplex ep_meson_bb[5]; + + ep_meson_bb[0]=ep_meson_b[0]*(p4b); + ep_meson_bb[1]=ep_meson_b[1]*(p4b); + ep_meson_bb[2]=ep_meson_b[2]*(p4b); + ep_meson_bb[3]=ep_meson_b[3]*(p4b); + ep_meson_bb[4]=ep_meson_b[4]*(p4b); + + + EvtVector4C tds0,tds1,tds2,tds3,tds4; + + EvtTensor4C tds; + if (l_num==EM||l_num==MUM||l_num==TAUM){ + EvtTensor4C tdual=EvtComplex(0.0,hf)*dual(directProd(pp,pm)); + tds0=tdual.cont2(ep_meson_b[0]) + -kf*ep_meson_b[0] + -bpf*ep_meson_bb[0]*pp-bmf*ep_meson_bb[0]*pm; + tds0*=q2maxin; + + tds1=tdual.cont2(ep_meson_b[1]) + -kf*ep_meson_b[1] + -bpf*ep_meson_bb[1]*pp-bmf*ep_meson_bb[1]*pm; + tds1*=q2maxin; + + tds2=tdual.cont2(ep_meson_b[2]) + -kf*ep_meson_b[2] + -bpf*ep_meson_bb[2]*pp-bmf*ep_meson_bb[2]*pm; + tds2*=q2maxin; + + tds3=tdual.cont2(ep_meson_b[3]) + -kf*ep_meson_b[3] + -bpf*ep_meson_bb[3]*pp-bmf*ep_meson_bb[3]*pm; + tds3*=q2maxin; + + tds4=tdual.cont2(ep_meson_b[4]) + -kf*ep_meson_b[4] + -bpf*ep_meson_bb[4]*pp-bmf*ep_meson_bb[4]*pm; + tds4*=q2maxin; + + + l1=EvtLeptonVACurrent(parent->getDaug(1)->spParent(0), + parent->getDaug(2)->spParentNeutrino()); + l2=EvtLeptonVACurrent(parent->getDaug(1)->spParent(1), + parent->getDaug(2)->spParentNeutrino()); + } + else{ + if (l_num==EP||l_num==MUP||l_num==TAUP){ + EvtTensor4C tdual=EvtComplex(0.0,-hf)*dual(directProd(pp,pm)); + tds0=tdual.cont2(ep_meson_b[0]) + -kf*ep_meson_b[0] + -bpf*ep_meson_bb[0]*pp-bmf*ep_meson_bb[0]*pm; + tds0*=q2maxin; + + tds1=tdual.cont2(ep_meson_b[1]) + -kf*ep_meson_b[1] + -bpf*ep_meson_bb[1]*pp-bmf*ep_meson_bb[1]*pm; + tds1*=q2maxin; + + tds2=tdual.cont2(ep_meson_b[2]) + -kf*ep_meson_b[2] + -bpf*ep_meson_bb[2]*pp-bmf*ep_meson_bb[2]*pm; + tds2*=q2maxin; + + tds3=tdual.cont2(ep_meson_b[3]) + -kf*ep_meson_b[3] + -bpf*ep_meson_bb[3]*pp-bmf*ep_meson_bb[3]*pm; + tds3*=q2maxin; + + tds4=tdual.cont2(ep_meson_b[4]) + -kf*ep_meson_b[4] + -bpf*ep_meson_bb[4]*pp-bmf*ep_meson_bb[4]*pm; + tds4*=q2maxin; + + l1=EvtLeptonVACurrent(parent->getDaug(2)->spParentNeutrino(), + parent->getDaug(1)->spParent(0)); + l2=EvtLeptonVACurrent(parent->getDaug(2)->spParentNeutrino(), + parent->getDaug(1)->spParent(1)); + } + else{ + report(ERROR,"EvtGen") << "dfnb89agngri wrong lepton number\n"; + } + } + + amp.vertex(0,0,l1*tds0); + amp.vertex(0,1,l2*tds0); + + amp.vertex(1,0,l1*tds1); + amp.vertex(1,1,l2*tds1); + + amp.vertex(2,0,l1*tds2); + amp.vertex(2,1,l2*tds2); + + amp.vertex(3,0,l1*tds3); + amp.vertex(3,1,l2*tds3); + + amp.vertex(4,0,l1*tds4); + amp.vertex(4,1,l2*tds4); + + return; + +} + diff --git a/TEvtGen/EvtGenBase/EvtSemiLeptonicTensorAmp.hh b/TEvtGen/EvtGenBase/EvtSemiLeptonicTensorAmp.hh new file mode 100644 index 00000000000..a863526f966 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtSemiLeptonicTensorAmp.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSemiLeptonicTensorAmp.hh +// +// Description: Class for calcultaion of amplitude for semileptonic +// decay to tensor. +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSEMILEPTONICTENSORAMP_HH +#define EVTSEMILEPTONICTENSORAMP_HH + +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" + +class EvtParticle; +class EvtSemiLeptonicFF; +class EvtAmp; + +class EvtSemiLeptonicTensorAmp: + public EvtSemiLeptonicAmp { + + public: + + //Daughters are initialized and have been added to the parent. + //No need to carry around the daughters seperately! + void CalcAmp( EvtParticle *parent, EvtAmp& amp, EvtSemiLeptonicFF *FormFactors ); + +}; + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtSemiLeptonicVectorAmp.cxx b/TEvtGen/EvtGenBase/EvtSemiLeptonicVectorAmp.cxx new file mode 100644 index 00000000000..8eb73ce0e3c --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtSemiLeptonicVectorAmp.cxx @@ -0,0 +1,145 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSemiLeptonicVectorAmp.cc +// +// Description: Routine to implement semileptonic decays to vector +// mesons. +// +// Modification history: +// +// DJL April 17,1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +using std::endl; + +void EvtSemiLeptonicVectorAmp::CalcAmp( EvtParticle *parent, + EvtAmp& amp, + EvtSemiLeptonicFF *FormFactors ) { + + static EvtId EM=EvtPDL::getId("e-"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + static EvtId DSM=EvtPDL::getId("D_s-"); + static EvtId DSP=EvtPDL::getId("D_s+"); + + //Add the lepton and neutrino 4 momenta to find q2 + + EvtVector4R q = parent->getDaug(1)->getP4() + + parent->getDaug(2)->getP4(); + double q2 = (q.mass2()); + + double a1f,a2f,vf,a0f,a3f; + double m_meson = parent->getDaug(0)->mass(); + + FormFactors->getvectorff(parent->getId(), + parent->getDaug(0)->getId(), + q2, + m_meson, + &a1f, + &a2f, + &vf, + &a0f); + + double costhl_flag = 1.0; + + if(parent->getId()==D0||parent->getId()==D0B|| + parent->getId()==DP||parent->getId()==DM) { + costhl_flag = -1.0; + } + if(parent->getId()==DSP||parent->getId()==DSM) { + costhl_flag = -1.0; + } + vf = vf * costhl_flag; + + EvtVector4R p4b; + p4b.set(parent->mass(),0.0,0.0,0.0); + + EvtVector4R p4meson = parent->getDaug(0)->getP4(); + + EvtVector4C l1,l2; + + EvtId l_num = parent->getDaug(1)->getId(); + double m_b = parent->mass(); + + a3f = ((m_b+m_meson)/(2.0*m_meson))*a1f - + ((m_b-m_meson)/(2.0*m_meson))*a2f; + + EvtTensor4C tds; + if (l_num==EM||l_num==MUM||l_num==TAUM){ + + tds = a1f*(m_b+m_meson)*EvtTensor4C::g(); + tds.addDirProd((-a2f/(m_b+m_meson))*p4b,p4b+p4meson); + tds+=EvtComplex(0.0,vf/(m_b+m_meson)) + *dual(directProd(p4meson+p4b,p4b-p4meson)); + tds.addDirProd((a0f-a3f)*2.0*(m_meson/q2)*p4b,p4b-p4meson); + + l1=EvtLeptonVACurrent(parent->getDaug(1)->spParent(0), + parent->getDaug(2)->spParentNeutrino()); + l2=EvtLeptonVACurrent(parent->getDaug(1)->spParent(1), + parent->getDaug(2)->spParentNeutrino()); + } + else{ + if (l_num==EP||l_num==MUP||l_num==TAUP){ + tds = a1f*(m_b+m_meson)*EvtTensor4C::g(); + tds.addDirProd((-a2f/(m_b+m_meson))*p4b,p4b+p4meson); + tds-=EvtComplex(0.0,vf/(m_b+m_meson)) + *dual(directProd(p4meson+p4b,p4b-p4meson)); + tds.addDirProd((a0f-a3f)*2.0*(m_meson/q2)*p4b,p4b-p4meson); + + l1=EvtLeptonVACurrent(parent->getDaug(2)->spParentNeutrino(), + parent->getDaug(1)->spParent(0)); + l2=EvtLeptonVACurrent(parent->getDaug(2)->spParentNeutrino(), + parent->getDaug(1)->spParent(1)); + } + else{ + report(ERROR,"EvtGen") << "Wrong lepton number"<getDaug(0)->epsParent(0).conj() ); + EvtVector4C et1=tds.cont1( parent->getDaug(0)->epsParent(1).conj() ); + EvtVector4C et2=tds.cont1( parent->getDaug(0)->epsParent(2).conj() ); + + + amp.vertex(0,0,l1.cont(et0)); + amp.vertex(0,1,l2.cont(et0)); + + amp.vertex(1,0,l1.cont(et1)); + amp.vertex(1,1,l2.cont(et1)); + + amp.vertex(2,0,l1.cont(et2)); + amp.vertex(2,1,l2.cont(et2)); + + return; +} + diff --git a/TEvtGen/EvtGenBase/EvtSemiLeptonicVectorAmp.hh b/TEvtGen/EvtGenBase/EvtSemiLeptonicVectorAmp.hh new file mode 100644 index 00000000000..155ee909cd0 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtSemiLeptonicVectorAmp.hh @@ -0,0 +1,43 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSemiLeptonicVectorAmp.hh +// +// Description: Class for calcultaion of amplitude for semileptonic +// decay to a vector particle. +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSEMILEPTONICVECTORAMP_HH +#define EVTSEMILEPTONICVECTORAMP_HH + +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" + +class EvtParticle; +class EvtAmp; +class EvtSemiLeptonicFF; + +class EvtSemiLeptonicVectorAmp:public EvtSemiLeptonicAmp { + + public: + + //Daughters are initialized and have been added to the parent. + //No need to carry around the daughters seperately! + void CalcAmp( EvtParticle *parent,EvtAmp& amp, + EvtSemiLeptonicFF *FormFactors ); + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtSimpleRandomEngine.cxx b/TEvtGen/EvtGenBase/EvtSimpleRandomEngine.cxx new file mode 100644 index 00000000000..2c3a6ac1a58 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtSimpleRandomEngine.cxx @@ -0,0 +1,41 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtRandomEngine.cc +// +// Description: routines to generate random numbers +// really trivial random number +// implementation. +// +// Modification history: +// +// RYD December 25, 1999 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + + +#include +#include +#include +#include "EvtGenBase/EvtSimpleRandomEngine.hh" + +double EvtSimpleRandomEngine::random(){ + + _next=_next*1103515245+123345; + unsigned temp=(unsigned)(_next/65536) % 32768; + + return ( temp + 1.0 ) / 32769.0; + +} + + + diff --git a/TEvtGen/EvtGenBase/EvtSimpleRandomEngine.hh b/TEvtGen/EvtGenBase/EvtSimpleRandomEngine.hh new file mode 100644 index 00000000000..48bd6b86105 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtSimpleRandomEngine.hh @@ -0,0 +1,48 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtRandom.hh +// +// Description:Class to generate random numbers. Single member +// function random is expected to return a random +// number in the range ]0..1[. +// +// Modification history: +// +// RYD December 25, 1999 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSIMPLERANDOMENGINE_HH +#define EVTSIMPLERANDOMENGINE_HH + +class EvtSimpleRandomEngine{ + +public: + + EvtSimpleRandomEngine(){ + _next=1; + } + + void reset() { + _next=1; + } + + virtual double random(); + +private: + + unsigned long int _next; + +}; + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtSpinAmp.cxx b/TEvtGen/EvtGenBase/EvtSpinAmp.cxx new file mode 100644 index 00000000000..3fb064557fd --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtSpinAmp.cxx @@ -0,0 +1,498 @@ +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtSpinAmp.hh" +#include + +using std::endl; + +std::ostream& +operator<<( std::ostream& os, const EvtSpinAmp& amp ) +{ + vector index = amp.iterinit(); + + os << ":"; + do { + os<<"<"; + for(size_t i=0; i"< EvtSpinAmp::calctwospin( const vector& type ) const +{ + vector twospin; + + for( size_t i=0; i& type ) +{ + int num = 1; + _type = type; + _twospin=calctwospin( type ); + + for( size_t i=0; i<_twospin.size(); ++i ) + num*=_twospin[i]+1; + + _elem=vector( num ); +} + +EvtSpinAmp::EvtSpinAmp( const vector& type, const EvtComplex & val ) +{ + int num = 1; + _type = type; + _twospin=calctwospin( type ); + + for( size_t i=0; i<_twospin.size(); ++i ) + num*=_twospin[i]+1; + + _elem=vector( num, val ); +} + +EvtSpinAmp::EvtSpinAmp( const vector& type, + const vector& elem ) +{ + size_t num = 1; + + _type = type; + _twospin=calctwospin( type ); + _elem=elem; + + for( size_t i=0; i<_twospin.size(); ++i ){ + num*=(_twospin[i]+1); + } + + if(_elem.size() != num ) { + report(ERROR,"EvtGen")<<"Wrong number of elements input:" + <<_elem.size()<<" vs. "<& twospin ) const +{ + if( _twospin == twospin ) + return; + + report( ERROR, "EvtGen" ) + <<"Dimension or order of tensors being operated on does not match" + <& index ) const +{ + if( index.size()==0 ) { + report(ERROR,"EvtGen") << "EvtSpinAmp can't handle no indices" << endl; + ::abort(); + } + + if( index.size() != _twospin.size() ) { + report( ERROR, "EvtGen" ) << "Rank of EvtSpinAmp index does not match: " + <<_twospin.size()<<" expected "<(_twospin[i])>=abs(index[i]) && static_cast(_twospin[i])%2==index[i]%2 ) + continue; + report(ERROR,"EvtGen")<<"EvtSpinAmp index out of range" << endl; + report(ERROR,"EvtGen")<<" Index: "; + for(size_t j=0; j<_twospin.size(); ++j ) + report(ERROR," ")<<_twospin[j]; + + report(ERROR, " ")<& index ) const +{ + int trueindex = 0; + + for( size_t i = index.size()-1; i>0; --i ) { + trueindex += (index[i]+_twospin[i])/2; + trueindex *= _twospin[i-1]+1; + } + + trueindex += (index[0]+_twospin[0])/2; + + return trueindex; +} + +EvtComplex & EvtSpinAmp::operator()( const vector& index ) +{ + checkindexargs( index ); + + size_t trueindex = findtrueindex(index); + if(trueindex >= _elem.size()) { + report(ERROR,"EvtGen")<<"indexing error "<& index ) const +{ + checkindexargs( index ); + + size_t trueindex = findtrueindex(index); + if(trueindex >= _elem.size()) { + report(ERROR,"EvtGen")<<"indexing error "< index( _twospin.size() ); + + va_start(ap, i); + + index[0]=i; + for(size_t n=1; n<_twospin.size(); ++n ) + index[n]=va_arg( ap, int ); + + va_end(ap); + + return (*this)( index ); +} + +const EvtComplex & EvtSpinAmp::operator()( int i, ... ) const +{ + vector index( _twospin.size() ); + va_list ap; + + va_start(ap, i); + + index[0]=i; + for(size_t n=1; n<_twospin.size(); ++n ) + index[n]=va_arg( ap, int ); + + va_end(ap); + + return (*this)( index ); +} + +EvtSpinAmp& EvtSpinAmp::operator=( const EvtSpinAmp& cont ) +{ + _twospin=cont._twospin; + _elem=cont._elem; + _type=cont._type; + + return *this; +} + +EvtSpinAmp EvtSpinAmp::operator+( const EvtSpinAmp & cont ) const +{ + checktwospin( cont._twospin ); + + EvtSpinAmp ret( cont ); + for( size_t i=0; i index(rank()+amp2.rank()); + vector index1(rank()), index2(amp2.rank()); + EvtSpinAmp amp; + + amp._twospin=_twospin; + amp._type=_type; + + for( size_t i=0; i( _elem.size() * amp2._elem.size() ); + + for( size_t i=0; i EvtSpinAmp::iterinit() const +{ + vector init( _twospin.size() ); + + for( size_t i=0; i<_twospin.size(); ++i ) + init[i]=-_twospin[i]; + + return init; +} + +bool EvtSpinAmp::iterate( vector& index ) const +{ + int last = _twospin.size() - 1; + + index[0]+=2; + for( size_t j=0; static_cast(j) static_cast(_twospin[j]) ) { + index[j] = -_twospin[j]; + index[j+1]+=2; + } + } + + return abs(index[last])<=_twospin[last]; +} + +// Test whether a particular index is an allowed one (specifically to deal with +// photons and possibly neutrinos) +bool EvtSpinAmp::allowed( const vector& index ) const +{ + if( index.size() != _type.size() ) { + report(ERROR,"EvtGen") + <<"Wrong dimensino index input to allowed."<& index ) const +{ + while(true) { + if(!iterate( index )) + return false; + if(allowed( index )) + return true; + } +} + +vector EvtSpinAmp::iterallowedinit() const +{ + vector init = iterinit(); + while(!allowed(init)) { + iterate(init); + } + + return init; +} + +void EvtSpinAmp::intcont( size_t a, size_t b ) +{ + + if(rank()<=2) { + report(ERROR,"EvtGen")<<"EvtSpinAmp can't handle no indices" << endl; + ::abort(); + } + + size_t newrank=rank()-2; + + if(_twospin[a]!=_twospin[b]) { + report(ERROR,"EvtGen") + <<"Contaction called on indices of different dimension" + < newtwospin( newrank ); + vector newtype( newrank ); + + for( size_t i=0, j=0; i<_twospin.size(); ++i ){ + if(i==a || i==b) continue; + + newtwospin[j] = _twospin[i]; + newtype[j] = _type[i]; + ++j; + } + + EvtSpinAmp newamp( newtype ); + vector index( rank() ), newindex = newamp.iterinit(); + + for( size_t i=0; i +using std::vector; + +#include + +class EvtSpinAmp; +EvtSpinAmp operator*( const EvtComplex&, const EvtSpinAmp& ); +EvtSpinAmp operator*( const EvtSpinAmp&, const EvtComplex& ); +EvtSpinAmp operator/( const EvtSpinAmp&, const EvtComplex& ); + +class EvtSpinAmp +{ + + friend EvtSpinAmp operator*( const EvtComplex&, const EvtSpinAmp& ); + friend EvtSpinAmp operator*( const EvtSpinAmp&, const EvtComplex& ); + friend EvtSpinAmp operator/( const EvtSpinAmp&, const EvtComplex& ); + friend std::ostream& operator<< ( std::ostream&, const EvtSpinAmp& ); + +public: + + EvtSpinAmp( ) {}; + EvtSpinAmp( const vector& ); + EvtSpinAmp( const vector& , const EvtComplex& ); + EvtSpinAmp( const vector& , const vector& ); + EvtSpinAmp( const EvtSpinAmp & ); + + ~EvtSpinAmp( ) {}; + + // Input to the index functions are twice the magnetic quantum number + EvtComplex& operator()( const vector& ); + const EvtComplex& operator()( const vector& ) const; + EvtComplex& operator()( int, ... ); + const EvtComplex& operator()( int, ... ) const; + + EvtSpinAmp& operator=( const EvtSpinAmp& ); + + EvtSpinAmp operator+( const EvtSpinAmp& ) const; + EvtSpinAmp& operator+=( const EvtSpinAmp& ); + + EvtSpinAmp operator-( const EvtSpinAmp& ) const; + EvtSpinAmp& operator-=( const EvtSpinAmp& ); + + // Direct Product + EvtSpinAmp operator*( const EvtSpinAmp& ) const; + EvtSpinAmp& operator*=( const EvtSpinAmp& ); + + EvtSpinAmp& operator*=( const EvtComplex& ); + EvtSpinAmp& operator/=( const EvtComplex& ); + + // Contraction of amplitudes + void intcont( size_t, size_t ); + void extcont( const EvtSpinAmp &, int, int ); + + // assign this value to every member in the container + void assign( const EvtComplex & val ) { _elem.assign( _elem.size(), val ); } + + // get the order of the container + size_t rank( ) const { return _twospin.size(); } + + // get the dimension vector of the container + const vector & dims( ) const { return _twospin; } + + // set the elements and the dimensions of the vector - useful for something + // things eventough it is usually not the cleanest solution + void addspin( int twospin ) { _twospin.push_back( twospin ); } + void setelem( const vector &elem ) { _elem = elem; } + + bool iterate( vector& index ) const; + vector iterinit() const; + + bool allowed( const vector& index ) const; + bool iterateallowed( vector& index) const; + vector iterallowedinit() const; + +private: + + void checkindexargs( const vector& index ) const; + void checktwospin( const vector& twospin ) const; + int findtrueindex( const vector& index ) const; + vector calctwospin( const vector& type ) const; + + vector _type; + vector _twospin; + vector _elem; +}; + +#endif // __EVTSPINAMP__ diff --git a/TEvtGen/EvtGenBase/EvtSpinDensity.cxx b/TEvtGen/EvtGenBase/EvtSpinDensity.cxx new file mode 100644 index 00000000000..ec60482895a --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtSpinDensity.cxx @@ -0,0 +1,206 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSpinDensity.cc +// +// Description: Class to reperesent spindensity matrices. +// +// Modification history: +// +// RYD May 29,1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtSpinDensity.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; +using std::ostream; + + +EvtSpinDensity::EvtSpinDensity(const EvtSpinDensity& density){ + dim=0; + rho=0; + + int i,j; + setDim(density.dim); + + for(i=0;i0.00000001*real(prob)) { + report(ERROR,"EvtGen")<<"Imaginary probability:"<abs(rho[i][i])) { + report(INFO,"EvtGen") << "Failing 1"< + 0.00000001*(abs(rho[i][i])+abs(rho[j][j]))) { + report(INFO,"EvtGen") << "Failing 2"< + 0.00000001*(abs(rho[i][i])+abs(rho[j][j]))) { + report(INFO,"EvtGen") << "Failing 3"< +#include +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtStdHep.hh" +using namespace std; + + +void EvtStdHep::init(){ + _npart=0; +} + +int EvtStdHep::getNPart(){ + return _npart; +} + +void EvtStdHep::createParticle(EvtVector4R p4,EvtVector4R x,int prntfirst, + int prntlast, int id){ + + _p4[_npart]=p4; + _x[_npart]=x; + _prntfirst[_npart]=prntfirst; + _prntlast[_npart]=prntlast; + _daugfirst[_npart]=-1; + _dauglast[_npart]=-1; + _id[_npart]=id; + _istat[_npart]=1; + + //we also need to fix up the parents pointer to the daughter! + + if (prntfirst>=0) { + int i; + for (i=prntfirst;i<=prntlast;i++){ + _istat[i]=2; + if (_daugfirst[i]==-1) _daugfirst[i]=_npart; + if (_dauglast[i]<_npart) _dauglast[i]=_npart; + } + + } + + _npart++; + +} + +void EvtStdHep::translate(EvtVector4R d){ + + int i; + for(i=0;i<_npart;i++){ + _x[i]+=d; + } + +} + + +/* +ostream& operator<<(ostream& s, const EvtStdHep& stdhep){ + + int w=s.width(); + int p=s.precision(); + std::ios::fmtflags f=s.flags(); + + + s < + +const int EVTSTDHEPLENGTH =1000; + +class EvtStdHep { + +public: + + EvtStdHep(){} + ~EvtStdHep(){} + + void init(); + + int getFirstMother(int i) { return _prntfirst[i]; } + int getLastMother(int i) { return _prntlast[i]; } + int getFirstDaughter(int i) { return _daugfirst[i]; } + int getLastDaughter(int i) { return _dauglast[i]; } + + int getStdHepID(int i) { return _id[i]; } + int getIStat(int i) { return _istat[i]; } + + EvtVector4R getP4(int i) { return _p4[i]; } + EvtVector4R getX4(int i) { return _x[i]; } + + void translate(EvtVector4R d); + + int getNPart(); + void createParticle(EvtVector4R p4,EvtVector4R x,int prntfirst, + int prntlast, int id); + + friend std::ostream& operator<<(std::ostream& s, const EvtStdHep& stdhep); + +private: + + int _npart; + EvtVector4R _p4[EVTSTDHEPLENGTH]; + EvtVector4R _x[EVTSTDHEPLENGTH]; + int _prntfirst[EVTSTDHEPLENGTH]; + int _prntlast[EVTSTDHEPLENGTH]; + int _daugfirst[EVTSTDHEPLENGTH]; + int _dauglast[EVTSTDHEPLENGTH]; + int _id[EVTSTDHEPLENGTH]; + int _istat[EVTSTDHEPLENGTH]; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtStdlibRandomEngine.hh b/TEvtGen/EvtGenBase/EvtStdlibRandomEngine.hh new file mode 100644 index 00000000000..b9c69a3d7c7 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtStdlibRandomEngine.hh @@ -0,0 +1,38 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtStdlibRandomEngine.hh,v 1.1 2003/06/29 06:01:29 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +/* + * Interface to stdlib's random number generator + */ + +#ifndef EVT_STDLIB_RANDOM_ENGINE_HH +#define EVT_STDLIB_RANDOM_ENGINE_HH + +#include +#include "EvtGenBase/EvtRandomEngine.hh" + +class EvtStdlibRandomEngine : public EvtRandomEngine { +public: + + void setSeed(unsigned int seed) + { + srand(seed); + } + + virtual double random() + { + double x = rand(); + double y = RAND_MAX; + return x/y; + } +}; + +#endif + + diff --git a/TEvtGen/EvtGenBase/EvtStreamAdapter.hh b/TEvtGen/EvtGenBase/EvtStreamAdapter.hh new file mode 100644 index 00000000000..adfd0b319df --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtStreamAdapter.hh @@ -0,0 +1,93 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtStreamAdapter.hh,v 1.1 2003/03/03 05:38:22 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Stream adapters are used to convert a stream-like input (for example, +// a file containing N entries) to an STL like iterator interface. There +// must be a way to get point from the stream, and also an indicator of the +// end of the stream. + +#ifndef EVT_STREAM_ADAPTER_HH +#define EVT_STREAM_ADAPTER_HH + +template class EvtStreamAdapter { +public: + + EvtStreamAdapter() + {} + virtual ~EvtStreamAdapter() + {} + virtual EvtStreamAdapter* clone() const = 0; + virtual Point currentValue() = 0; + virtual void advance() = 0; + virtual bool pastEnd() = 0; + +}; + +// N points are read from a generated stream. + +template +class EvtGenStreamAdapter : public EvtStreamAdapter { +public: + EvtGenStreamAdapter(Generator gen, int count) + : _gen(gen), _count(count) + {} + + virtual ~EvtGenStreamAdapter() + {} + + virtual EvtStreamAdapter* clone() const + { + return new EvtGenStreamAdapter(*this); + } + virtual Point currentValue() { return _gen(); } + virtual bool pastEnd() { return (_count <= 0); } + virtual void advance() { _count--; } + +private: + Generator _gen; + int _count; // also serves as past the end indicator +}; + + +// Only points satisfying a predicate are read from the stream. + +template +class EvtPredStreamAdapter : public EvtStreamAdapter { +public: + EvtPredStreamAdapter(Predicate pred, Iterator it, Iterator end) + : _pred(pred), _it(it), _end(end) + {} + virtual ~EvtPredStreamAdapter() + {} + + virtual EvtStreamAdapter* clone() const + { + return new EvtPredStreamAdapter(*this); + } + virtual Point currentValue() { + Point value; + while(!pastEnd()) { + + value = *_it; + if(_pred(value)) break; + _it++; + } + return value; + } + + virtual bool pastEnd() { return _it == _end; } + virtual void advance() { _it++; } + +private: + Predicate _pred; + Iterator _it; + Iterator _end; +}; + +#endif diff --git a/TEvtGen/EvtGenBase/EvtStreamInputIterator.hh b/TEvtGen/EvtGenBase/EvtStreamInputIterator.hh new file mode 100644 index 00000000000..614d6803ffd --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtStreamInputIterator.hh @@ -0,0 +1,111 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtStreamInputIterator.hh,v 1.1 2003/03/03 05:38:22 dvoretsk Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Adapters are used to convert various types of input streams +// into an iteratable interface. + +#ifndef EVT_STREAM_INPUT_ITERATOR_HH +#define EVT_STREAM_INPUT_ITERATOR_HH + +#include "EvtGenBase/EvtStreamAdapter.hh" +#include +using std::input_iterator_tag; + +template +class EvtStreamInputIterator { +public: + + typedef input_iterator_tag iterator_category; + typedef Point value_type; + typedef ptrdiff_t difference_type; + typedef const Point* pointer; + typedef const Point& reference; + + EvtStreamInputIterator() + : _counter(0) + {} + + EvtStreamInputIterator(const EvtStreamInputIterator& other) + : _counter(other._counter ? other._counter->clone() : 0), + _currentValue(other._currentValue) + {} + + EvtStreamInputIterator(EvtStreamAdapter& counter) + : _counter(counter.clone()) + { + _currentValue = _counter->currentValue(); + } + + ~EvtStreamInputIterator() + { + if(_counter) delete _counter; + } + + reference operator*() const + { + return _currentValue; + } + + EvtStreamInputIterator& operator++() + { + _read(); + return *this; + } + + EvtStreamInputIterator operator++(int) + { + EvtStreamInputIterator tmp = *this; + _read(); + return tmp; + } + + bool operator==(const EvtStreamInputIterator& other) const + { + // Equality is only defined for two past the end iterators + return (pastEnd() && other.pastEnd()); + } + +protected: + + EvtStreamAdapter* _counter; + value_type _currentValue; + + bool pastEnd() const + { + bool ret = true; + if(_counter) ret = _counter->pastEnd(); + return ret; + } + + // Advances the iterator + + void _read() { + + _counter->advance(); + _currentValue = _counter->currentValue(); + } +}; + + +// For adaptable generators these shorthand functions can be used +// to construct iterators. + +template +EvtStreamInputIterator iter(Generator gen, int N = 0) +{ + typedef typename Generator::result_type Point; + EvtGenStreamAdapter counter(gen,N); + return EvtStreamInputIterator(counter); +} + + +#endif + + + diff --git a/TEvtGen/EvtGenBase/EvtStringHash.hh b/TEvtGen/EvtGenBase/EvtStringHash.hh new file mode 100644 index 00000000000..3f1e5b9037f --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtStringHash.hh @@ -0,0 +1,165 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSpinDensity.hh +// +// Description: Templated class to implement a hash table on string +// +// Modification history: +// +// RYD Aug 2, 2006 Module created +// +//------------------------------------------------------------------------ + + +#ifndef EVTSTRINGHASH_HH +#define EVTSTRINGHASH_HH + +#include + + +template +class EvtStringHash{ + +public: + inline EvtStringHash(int size); + inline void add(const std::string& str,T* data); + inline T* get(const std::string& str); + inline ~EvtStringHash(); + +private: + EvtStringHash(); + int _size; + inline int hash(const std::string& str); + std::string*** _strings; + T*** _data; + int* _entries; + +}; + + +template +EvtStringHash::EvtStringHash(int size){ + + _size=size; + + typedef std::string** EvtStringPtrPtr; + typedef T** TPtrPtr; + + _strings=new EvtStringPtrPtr[_size]; + _data=new TPtrPtr[_size]; + _entries=new int[_size]; + + int i; + + for(i=0;i<_size;i++){ + _entries[i]=0; + } + +} + +template +EvtStringHash::~EvtStringHash(){ + + int i; + for(i=0;i<_size;i++){ + int j; + for(j=0;j<_entries[i];j++){ + delete _strings[i][j]; + } + if (_entries[i]>0){ + delete [] _strings[i]; + delete [] _data[i]; + } + } + + delete [] _strings; + delete [] _data; + delete [] _entries; + +} + +template +void EvtStringHash::add(const std::string& str,T* data){ + + int ihash=hash(str); + + typedef std::string* EvtStringPtr; + typedef T* TPtr; + + std::string** newstrings=new EvtStringPtr[_entries[ihash]+1]; + T** newdata=new TPtr[_entries[ihash]+1]; + + int i; + + for(i=0;i<_entries[ihash];i++){ + newstrings[i]=_strings[ihash][i]; + newdata[i]=_data[ihash][i]; + } + + newstrings[_entries[ihash]]=new std::string; + *(newstrings[_entries[ihash]])=str; + newdata[_entries[ihash]]=data; + + + if(_entries[ihash]!=0){ + delete [] _strings[ihash]; + delete [] _data[ihash]; + } + + _entries[ihash]++; + + _strings[ihash]=newstrings; + _data[ihash]=newdata; + +} + +template +T* EvtStringHash::get(const std::string& str){ + + int ihash=hash(str); + + int i; + + for (i=0;i<_entries[ihash];i++){ + if (*(_strings[ihash][i])==str) return _data[ihash][i]; + } + + return 0; + + +} + + +template +int EvtStringHash::hash(const std::string& str){ + + const char* cstr=str.c_str(); + + int i=0; + + int value=0; + + while(cstr[i]!=0){ + value+=(int)cstr[i]; + i++; + } + + return value%_size; + +} + + +#endif + + + + + diff --git a/TEvtGen/EvtGenBase/EvtStringParticle.cxx b/TEvtGen/EvtGenBase/EvtStringParticle.cxx new file mode 100644 index 00000000000..d12cabbe74f --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtStringParticle.cxx @@ -0,0 +1,124 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtStringParticle.cc +// +// Description: Class to describe the partons that are produced in JetSet. +// +// Modification history: +// +// RYD Febuary 27,1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtStringParticle.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtReport.hh" + + +EvtStringParticle::~EvtStringParticle(){ + + if (_npartons!=0){ + + delete [] _p4partons; + delete [] _idpartons; + + } + +} + + +EvtStringParticle::EvtStringParticle(){ + + _p4partons=0; + _idpartons=0; + _npartons=0; + + return; + +} + +void EvtStringParticle::init(EvtId id, const EvtVector4R& p4){ + + _validP4=true; + setp(p4); + setpart_num(id); + +} + + +void EvtStringParticle::initPartons(int npartons, + EvtVector4R* p4partons,EvtId* idpartons){ + + _p4partons = new EvtVector4R[npartons]; + _idpartons = new EvtId[npartons]; + + int i; + + _npartons=npartons; + + for(i=0;i +#include +#include +#include +#include "EvtGenBase/EvtSymTable.hh" +#include "EvtGenBase/EvtReport.hh" +#include +using std::endl; +using std::fstream; + +std::map EvtSymTable::_symMap; + + +EvtSymTable::~EvtSymTable(){} + +EvtSymTable::EvtSymTable() { + +} + +void EvtSymTable::define(const std::string& symname,std::string d) { + + if ( _symMap.find(symname)!=_symMap.end() ) { + report(INFO,"EvtGen") << "Symbol:"< +#include + +class EvtSymTable { + +public: + + EvtSymTable(); + ~EvtSymTable(); + + static void define(const std::string& name,std::string d); + + static std::string get(const std::string& name,int &ierr); + +private: + + static std::map _symMap; + +}; + +#endif + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtTensor3C.cxx b/TEvtGen/EvtGenBase/EvtTensor3C.cxx new file mode 100644 index 00000000000..19c41f6ad53 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtTensor3C.cxx @@ -0,0 +1,405 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtTensor3C.cc +// +// Description: Implementation of 3 tensors. +// +// Modification history: +// +// RYD September 14, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtVector3C.hh" +#include "EvtGenBase/EvtTensor3C.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; +using std::ostream; + + +EvtTensor3C::~EvtTensor3C(){} + + +EvtTensor3C::EvtTensor3C( const EvtTensor3C& t1 ) { + + int i,j; + + for(i=0;i<3;i++) { + for(j=0;j<3;j++) { + t[i][j] = t1.t[i][j]; + } + } +} + +EvtTensor3C::EvtTensor3C(double d11, double d22, double d33) { + + int i,j; + + for(i=0;i<3;i++) { + for(j=0;j<3;j++) { + t[i][j] = 0.0; + } + } + + t[0][0]=d11; + t[1][1]=d22; + t[2][2]=d33; + +} + + + +EvtTensor3C& EvtTensor3C::operator=(const EvtTensor3C& t1) { + int i,j; + + for(i=0;i<3;i++) { + for(j=0;j<3;j++) { + t[i][j] = t1.t[i][j]; + } + } + return *this; +} + +EvtTensor3C EvtTensor3C::conj() const { + EvtTensor3C temp; + + int i,j; + + for(i=0;i<3;i++) { + for(j=0;j<3;j++) { + temp.set(j,i,::conj(t[i][j])); + } + } + return temp; +} + +void EvtTensor3C::zero(){ + int i,j; + for(i=0;i<3;i++){ + for(j=0;j<3;j++){ + t[i][j]=EvtComplex(0.0,0.0); + } + } +} + + +EvtTensor3C::EvtTensor3C(){ + + int i,j; + + for(i=0;i<3;i++){ + for(j=0;j<3;j++){ + t[i][j]=EvtComplex(0.0,0.0); + } + } + +} + +EvtTensor3C EvtTensor3C::operator+=(const EvtTensor3C& t2) { + + int i,j; + + for (i=0;i<3;i++) { + for (j=0;j<3;j++) { + t[i][j]+=t2.t[i][j]; + } + } + return *this; +} + + +EvtTensor3C EvtTensor3C::operator-=(const EvtTensor3C& t2) { + + int i,j; + + for (i=0;i<3;i++) { + for (j=0;j<3;j++) { + t[i][j]-=t2.t[i][j]; + } + } + return *this; +} + + + +EvtTensor3C EvtTensor3C::operator*=(const EvtComplex& c) { + + int i,j; + + for (i=0;i<3;i++) { + for (j=0;j<3;j++) { + t[i][j]*=c; + } + } + return *this; +} + + +EvtTensor3C EvtTensor3C::operator*=(const double c){ + + int i,j; + + for (i=0;i<3;i++) { + for (j=0;j<3;j++) { + t[i][j]*=EvtComplex(c); + } + } + return *this; +} + + + + +EvtTensor3C directProd(const EvtVector3C& c1,const EvtVector3C& c2){ + EvtTensor3C temp; + int i,j; + + for (i=0;i<3;i++) { + for (j=0;j<3;j++) { + temp.set(i,j,c1.get(i)*c2.get(j)); + } + } + return temp; +} + + +EvtTensor3C directProd(const EvtVector3C& c1,const EvtVector3R& c2){ + EvtTensor3C temp; + int i,j; + + for (i=0;i<3;i++) { + for (j=0;j<3;j++) { + temp.set(i,j,c1.get(i)*c2.get(j)); + } + } + return temp; +} + + +EvtTensor3C directProd(const EvtVector3R& c1,const EvtVector3R& c2){ + EvtTensor3C temp; + int i,j; + + for (i=0;i<3;i++) { + for (j=0;j<3;j++) { + temp.t[i][j]=EvtComplex(c1.get(i)*c2.get(j),0.0); + } + } + return temp; +} + + +EvtTensor3C conj(const EvtTensor3C& t2) { + EvtTensor3C temp; + + int i,j; + + for(i=0;i<3;i++){ + for(j=0;j<3;j++){ + temp.set(i,j,::conj((t2.get(i,j)))); + } + } + + return temp; +} + + +EvtTensor3C cont22(const EvtTensor3C& t1,const EvtTensor3C& t2){ + EvtTensor3C temp; + + int i,j; + EvtComplex c; + + for(i=0;i<3;i++){ + for(j=0;j<3;j++){ + c=t1.get(i,0)*t2.get(j,0)+t1.get(i,1)*t2.get(j,1) + +t1.get(i,2)*t2.get(j,2); + temp.set(i,j,c); + } + } + + return temp; +} + +EvtTensor3C cont11(const EvtTensor3C& t1,const EvtTensor3C& t2){ + EvtTensor3C temp; + + int i,j; + EvtComplex c; + + for(i=0;i<3;i++){ + for(j=0;j<3;j++){ + c=t1.get(0,i)*t2.get(0,j)+t1.get(1,i)*t2.get(1,j) + +t1.get(2,i)*t2.get(2,j); + temp.set(i,j,c); + } + } + + return temp; +} + + +EvtVector3C EvtTensor3C::cont1(const EvtVector3C& v) const { + EvtVector3C temp; + + int i; + + for(i=0;i<3;i++){ + temp.set(i,t[0][i]*v.get(0)+t[1][i]*v.get(1) + +t[2][i]*v.get(2)); + } + + return temp; +} + +EvtVector3C EvtTensor3C::cont2(const EvtVector3C& v) const { + EvtVector3C temp; + + int i; + + for(i=0;i<3;i++){ + temp.set(i,t[i][0]*v.get(0)+t[i][1]*v.get(1) + +t[i][2]*v.get(2)); + } + + return temp; +} + +EvtVector3C EvtTensor3C::cont1(const EvtVector3R& v) const { + EvtVector3C temp; + + int i; + + for(i=0;i<3;i++){ + temp.set(i,t[0][i]*v.get(0)+t[1][i]*v.get(1) + +t[2][i]*v.get(2)); + } + + return temp; +} + +EvtVector3C EvtTensor3C::cont2(const EvtVector3R& v) const { + EvtVector3C temp; + + int i; + + for(i=0;i<3;i++){ + temp.set(i,t[i][0]*v.get(0)+t[i][1]*v.get(1) + +t[i][2]*v.get(2)); + } + + return temp; +} + + +EvtTensor3C eps(const EvtVector3R& v){ + + EvtTensor3C temp; + + temp.t[0][0]=0.0; + temp.t[1][1]=0.0; + temp.t[2][2]=0.0; + + temp.t[0][1]=v.get(2); + temp.t[0][2]=-v.get(1); + + temp.t[1][0]=-v.get(2); + temp.t[1][2]=v.get(0); + + temp.t[2][0]=v.get(1); + temp.t[2][1]=-v.get(0); + + return temp; + +} + + + +const EvtTensor3C& EvtTensor3C::id(){ + + static EvtTensor3C identity(1.0,1.0,1.0); + + return identity; + +} + +ostream& operator<<(ostream& s,const EvtTensor3C& v){ + + s< +#include "EvtGenBase/EvtComplex.hh" + +class EvtVector3C; +class EvtVector3R; + +class EvtTensor3C; + +EvtTensor3C eps(const EvtVector3R& v); + +EvtTensor3C directProd(const EvtVector3C& c1,const EvtVector3C& c2); +EvtTensor3C directProd(const EvtVector3C& c1,const EvtVector3R& c2); +EvtTensor3C directProd(const EvtVector3R& c1,const EvtVector3R& c2); + +class EvtTensor3C { + + friend EvtTensor3C rotateEuler(const EvtTensor3C& v, + double phi,double theta,double ksi); + friend EvtTensor3C operator*( + const EvtComplex& c,const EvtTensor3C& t2); + friend EvtTensor3C operator*(const double d,const EvtTensor3C& t2); + friend EvtTensor3C operator*( + const EvtTensor3C& t2,const EvtComplex& c); + friend EvtTensor3C operator*(const EvtTensor3C& t2,const double d); + friend EvtTensor3C operator+( + const EvtTensor3C& t1,const EvtTensor3C& t2); + friend EvtTensor3C operator-( + const EvtTensor3C& t1,const EvtTensor3C& t2); + friend EvtTensor3C directProd(const EvtVector3C& c1,const EvtVector3C& c2); + friend EvtTensor3C directProd(const EvtVector3C& c1,const EvtVector3R& c2); + friend EvtTensor3C directProd(const EvtVector3R& c1,const EvtVector3R& c2); + friend EvtTensor3C conj(const EvtTensor3C& t2); + //Contract the second index of two tensors result(i,j) = t1(i,k)t2(j,k) + friend EvtTensor3C cont22(const EvtTensor3C& t1,const EvtTensor3C& t2); + //Contract the first index of two tensors result(i,j) = t1(k,i)t2(k,j) + friend EvtTensor3C cont11(const EvtTensor3C& t1,const EvtTensor3C& t2); + //Contract the last index of eps_{ijk} with w + friend EvtTensor3C eps(const EvtVector3R& v); + friend std::ostream& operator<<(std::ostream& c,const EvtTensor3C& v); + +public: + EvtTensor3C(); + EvtTensor3C(const EvtTensor3C& t1 ); + EvtTensor3C(double d11, double d22, double d33); + virtual ~EvtTensor3C(); + EvtTensor3C& operator=(const EvtTensor3C& t1); + inline void set(int i,int j,const EvtComplex& c); + inline const EvtComplex& get(int i, int j) const; + inline EvtComplex trace() const; + static const EvtTensor3C& id(); + void zero(); + void applyRotateEuler(double phi,double theta,double ksi); + + EvtTensor3C operator+=(const EvtTensor3C& t2); + EvtTensor3C operator-=(const EvtTensor3C& t2); + EvtTensor3C operator*=(const double d); + EvtTensor3C operator*=(const EvtComplex& c); + EvtTensor3C conj() const; + EvtVector3C cont1(const EvtVector3C& v) const; + EvtVector3C cont2(const EvtVector3C& v) const; + EvtVector3C cont1(const EvtVector3R& v) const; + EvtVector3C cont2(const EvtVector3R& v) const; + +private: + + EvtComplex t[3][3]; + +}; + +inline EvtTensor3C operator*(const EvtComplex& c,const EvtTensor3C& t2){ + return EvtTensor3C(t2)*=c; +} + +inline EvtTensor3C operator*(const double d,const EvtTensor3C& t2){ + return EvtTensor3C(t2)*=d; +} + +inline EvtTensor3C operator*(const EvtTensor3C& t2,const EvtComplex& c){ + return EvtTensor3C(t2)*=c; +} + +inline EvtTensor3C operator*(const EvtTensor3C& t2,const double d){ + return EvtTensor3C(t2)*=d; +} + +inline EvtTensor3C operator+(const EvtTensor3C& t1,const EvtTensor3C& t2){ + return EvtTensor3C(t1)+=t2; +} + +inline EvtTensor3C operator-(const EvtTensor3C& t1,const EvtTensor3C& t2){ + return EvtTensor3C(t1)-=t2; +} + +inline void EvtTensor3C::set(int i,int j,const EvtComplex& c){ + t[i][j]=c; +} + +inline const EvtComplex& EvtTensor3C::get(int i,int j) const{ + return t[i][j]; +} + +inline EvtComplex EvtTensor3C::trace() const{ + return t[0][0]+t[1][1]+t[2][2]; +} + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtTensor4C.cxx b/TEvtGen/EvtGenBase/EvtTensor4C.cxx new file mode 100644 index 00000000000..c6025185fe2 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtTensor4C.cxx @@ -0,0 +1,576 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtTensor4C.cc +// +// Description: Implementation of tensor particles. +// +// Modification history: +// +// DJL/RYD September 25,1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +using std::endl; +using std::ostream; + + + +EvtTensor4C::EvtTensor4C( const EvtTensor4C& t1 ) { + + int i,j; + + for(i=0;i<4;i++) { + for(j=0;j<4;j++) { + t[i][j] = t1.t[i][j]; + } + } + +} + +EvtTensor4C::~EvtTensor4C() { } + +const EvtTensor4C& EvtTensor4C::g(){ + + static EvtTensor4C g_metric(1.0,-1.0,-1.0,-1.0); + + return g_metric; + +} + +EvtTensor4C& EvtTensor4C::operator=(const EvtTensor4C& t1) { + int i,j; + + for(i=0;i<4;i++) { + for(j=0;j<4;j++) { + t[i][j] = t1.t[i][j]; + } + } + return *this; +} + +EvtTensor4C EvtTensor4C::conj() const { + EvtTensor4C temp; + + int i,j; + + for(i=0;i<4;i++) { + for(j=0;j<4;j++) { + temp.set(j,i,::conj(t[i][j])); + } + } + return temp; +} + + +EvtTensor4C rotateEuler(const EvtTensor4C& rs, + double alpha,double beta,double gamma){ + + EvtTensor4C tmp(rs); + tmp.applyRotateEuler(alpha,beta,gamma); + return tmp; + +} + +EvtTensor4C boostTo(const EvtTensor4C& rs, + const EvtVector4R p4){ + + EvtTensor4C tmp(rs); + tmp.applyBoostTo(p4); + return tmp; + +} + +EvtTensor4C boostTo(const EvtTensor4C& rs, + const EvtVector3R boost){ + + EvtTensor4C tmp(rs); + tmp.applyBoostTo(boost); + return tmp; + +} + +void EvtTensor4C::applyBoostTo(const EvtVector4R& p4){ + + double e=p4.get(0); + + EvtVector3R boost(p4.get(1)/e,p4.get(2)/e,p4.get(3)/e); + + applyBoostTo(boost); + + return; + +} + + +void EvtTensor4C::applyBoostTo(const EvtVector3R& boost){ + + double bx,by,bz,gamma,b2; + double lambda[4][4]; + EvtComplex tt[4][4]; + + bx=boost.get(0); + by=boost.get(1); + bz=boost.get(2); + + double bxx=bx*bx; + double byy=by*by; + double bzz=bz*bz; + + b2=bxx+byy+bzz; + + + if (b2==0.0){ + return; + } + + assert(b2<1.0); + + gamma=1.0/sqrt(1-b2); + + + int i,j,k; + + + if (b2==0.0){ + return ; + } + + lambda[0][0]=gamma; + lambda[0][1]=gamma*bx; + lambda[1][0]=gamma*bx; + lambda[0][2]=gamma*by; + lambda[2][0]=gamma*by; + lambda[0][3]=gamma*bz; + lambda[3][0]=gamma*bz; + + lambda[1][1]=1.0+(gamma-1.0)*bx*bx/b2; + lambda[2][2]=1.0+(gamma-1.0)*by*by/b2; + lambda[3][3]=1.0+(gamma-1.0)*bz*bz/b2; + + lambda[1][2]=(gamma-1.0)*bx*by/b2; + lambda[2][1]=(gamma-1.0)*bx*by/b2; + + lambda[1][3]=(gamma-1.0)*bx*bz/b2; + lambda[3][1]=(gamma-1.0)*bx*bz/b2; + + lambda[3][2]=(gamma-1.0)*bz*by/b2; + lambda[2][3]=(gamma-1.0)*bz*by/b2; + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + tt[i][j] = EvtComplex(0.0); + for(k=0;k<4;k++){ + tt[i][j]=tt[i][j]+lambda[j][k]*t[i][k]; + } + } + } + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + t[i][j] = EvtComplex(0.0); + for(k=0;k<4;k++){ + t[i][j]=t[i][j]+lambda[i][k]*tt[k][j]; + } + } + } + +} + +void EvtTensor4C::zero(){ + int i,j; + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + t[i][j]=EvtComplex(0.0,0.0); + } + } +} + + + +ostream& operator<<(ostream& s,const EvtTensor4C& t){ + + int i,j; + s<< endl; + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + s << t.t[i][j]; + } + s << endl; + } + return s; +} + +void EvtTensor4C::setdiag(double g00, double g11, double g22, double g33){ + t[0][0]=EvtComplex(g00); + t[1][1]=EvtComplex(g11); + t[2][2]=EvtComplex(g22); + t[3][3]=EvtComplex(g33); + t[0][1] = EvtComplex(0.0); + t[0][2] = EvtComplex(0.0); + t[0][3] = EvtComplex(0.0); + t[1][0] = EvtComplex(0.0); + t[1][2] = EvtComplex(0.0); + t[1][3] = EvtComplex(0.0); + t[2][0] = EvtComplex(0.0); + t[2][1] = EvtComplex(0.0); + t[2][3] = EvtComplex(0.0); + t[3][0] = EvtComplex(0.0); + t[3][1] = EvtComplex(0.0); + t[3][2] = EvtComplex(0.0); +} + + +EvtTensor4C& EvtTensor4C::operator+=(const EvtTensor4C& t2){ + + int i,j; + + for (i=0;i<4;i++) { + for (j=0;j<4;j++) { + t[i][j]+=t2.get(i,j); + } + } + return *this; +} + +EvtTensor4C& EvtTensor4C::operator-=(const EvtTensor4C& t2){ + + int i,j; + + for (i=0;i<4;i++) { + for (j=0;j<4;j++) { + t[i][j]-=t2.get(i,j); + } + } + return *this; +} + + +EvtTensor4C& EvtTensor4C::operator*=(const EvtComplex& c) { + int i,j; + + for (i=0;i<4;i++) { + for (j=0;j<4;j++) { + t[i][j]*=c; + } + } + return *this; +} + + +EvtTensor4C operator*(const EvtTensor4C& t1,const EvtComplex& c){ + + return EvtTensor4C(t1)*=c; + +} + +EvtTensor4C operator*(const EvtComplex& c,const EvtTensor4C& t1){ + + return EvtTensor4C(t1)*=c; + +} + + +EvtTensor4C& EvtTensor4C::operator*=(double d) { + int i,j; + + for (i=0;i<4;i++) { + for (j=0;j<4;j++) { + t[i][j]*=EvtComplex(d,0.0); + } + } + return *this; +} + + +EvtTensor4C operator*(const EvtTensor4C& t1, double d){ + + return EvtTensor4C(t1)*=EvtComplex(d,0.0); + +} + +EvtTensor4C operator*(double d, const EvtTensor4C& t1){ + + return EvtTensor4C(t1)*=EvtComplex(d,0.0); + +} + +EvtComplex cont(const EvtTensor4C& t1,const EvtTensor4C& t2){ + + EvtComplex sum(0.0,0.0); + int i,j; + + for (i=0;i<4;i++) { + for (j=0;j<4;j++) { + sum+=t1.t[i][j]*t2.t[i][j]; + } + } + + return sum; +} + + +EvtTensor4C directProd(const EvtVector4C& c1,const EvtVector4C& c2){ + EvtTensor4C temp; + int i,j; + + for (i=0;i<4;i++) { + for (j=0;j<4;j++) { + temp.set(i,j,c1.get(i)*c2.get(j)); + } + } + return temp; +} + + +EvtTensor4C directProd(const EvtVector4C& c1,const EvtVector4R& c2){ + EvtTensor4C temp; + int i,j; + + for (i=0;i<4;i++) { + for (j=0;j<4;j++) { + temp.set(i,j,c1.get(i)*c2.get(j)); + } + } + return temp; +} + + +EvtTensor4C directProd(const EvtVector4R& c1,const EvtVector4R& c2){ + + EvtTensor4C temp; + int i,j; + + for (i=0;i<4;i++) { + for (j=0;j<4;j++) { + temp.t[i][j]=EvtComplex(c1.get(i)*c2.get(j),0.0); + } + } + return temp; +} + +EvtTensor4C& EvtTensor4C::addDirProd(const EvtVector4R& p1,const EvtVector4R& p2){ + + int i,j; + + for (i=0;i<4;i++) { + for (j=0;j<4;j++) { + t[i][j]+=p1.get(i)*p2.get(j); + } + } + return *this; +} + + +EvtTensor4C dual(const EvtTensor4C& t2){ + + EvtTensor4C temp; + + temp.set(0,0,EvtComplex(0.0,0.0)); + temp.set(1,1,EvtComplex(0.0,0.0)); + temp.set(2,2,EvtComplex(0.0,0.0)); + temp.set(3,3,EvtComplex(0.0,0.0)); + + temp.set(0,1,t2.get(3,2)-t2.get(2,3)); + temp.set(0,2,-t2.get(3,1)+t2.get(1,3)); + temp.set(0,3,t2.get(2,1)-t2.get(1,2)); + + temp.set(1,2,-t2.get(3,0)+t2.get(0,3)); + temp.set(1,3,t2.get(2,0)-t2.get(0,2)); + + temp.set(2,3,-t2.get(1,0)+t2.get(0,1)); + + temp.set(1,0,-temp.get(0,1)); + temp.set(2,0,-temp.get(0,2)); + temp.set(3,0,-temp.get(0,3)); + + temp.set(2,1,-temp.get(1,2)); + temp.set(3,1,-temp.get(1,3)); + + temp.set(3,2,-temp.get(2,3)); + + return temp; + +} + + +EvtTensor4C conj(const EvtTensor4C& t2) { + EvtTensor4C temp; + + int i,j; + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + temp.set(i,j,::conj((t2.get(i,j)))); + } + } + + return temp; +} + + +EvtTensor4C cont22(const EvtTensor4C& t1,const EvtTensor4C& t2){ + EvtTensor4C temp; + + int i,j; + EvtComplex c; + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + c=t1.get(i,0)*t2.get(j,0)-t1.get(i,1)*t2.get(j,1) + -t1.get(i,2)*t2.get(j,2)-t1.get(i,3)*t2.get(j,3); + temp.set(i,j,c); + } + } + + return temp; +} + +EvtTensor4C cont11(const EvtTensor4C& t1,const EvtTensor4C& t2){ + EvtTensor4C temp; + + int i,j; + EvtComplex c; + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + c=t1.get(0,i)*t2.get(0,j)-t1.get(1,i)*t2.get(1,j) + -t1.get(2,i)*t2.get(2,j)-t1.get(3,i)*t2.get(3,j); + temp.set(i,j,c); + } + } + + return temp; +} + + +EvtVector4C EvtTensor4C::cont1(const EvtVector4C& v4) const { + EvtVector4C temp; + + int i; + + for(i=0;i<4;i++){ + temp.set(i,t[0][i]*v4.get(0)-t[1][i]*v4.get(1) + -t[2][i]*v4.get(2)-t[3][i]*v4.get(3)); + } + + return temp; +} + +EvtVector4C EvtTensor4C::cont2(const EvtVector4C& v4) const { + EvtVector4C temp; + + int i; + + for(i=0;i<4;i++){ + temp.set(i,t[i][0]*v4.get(0)-t[i][1]*v4.get(1) + -t[i][2]*v4.get(2)-t[i][3]*v4.get(3)); + } + + return temp; +} + + +EvtVector4C EvtTensor4C::cont1(const EvtVector4R& v4) const { + EvtVector4C temp; + + int i; + + for(i=0;i<4;i++){ + temp.set(i,t[0][i]*v4.get(0)-t[1][i]*v4.get(1) + -t[2][i]*v4.get(2)-t[3][i]*v4.get(3)); + } + + return temp; +} + + +EvtVector4C EvtTensor4C::cont2(const EvtVector4R& v4) const { + EvtVector4C temp; + + int i; + + for(i=0;i<4;i++){ + temp.set(i,t[i][0]*v4.get(0)-t[i][1]*v4.get(1) + -t[i][2]*v4.get(2)-t[i][3]*v4.get(3)); + } + + return temp; +} + + + +void EvtTensor4C::applyRotateEuler(double phi,double theta,double ksi){ + + EvtComplex tt[4][4]; + double sp,st,sk,cp,ct,ck; + double lambda[4][4]; + + sp=sin(phi); + st=sin(theta); + sk=sin(ksi); + cp=cos(phi); + ct=cos(theta); + ck=cos(ksi); + + + lambda[0][0]=1.0; + lambda[0][1]=0.0; + lambda[1][0]=0.0; + lambda[0][2]=0.0; + lambda[2][0]=0.0; + lambda[0][3]=0.0; + lambda[3][0]=0.0; + + lambda[1][1]= ck*ct*cp-sk*sp; + lambda[1][2]=-sk*ct*cp-ck*sp; + lambda[1][3]=st*cp; + + lambda[2][1]= ck*ct*sp+sk*cp; + lambda[2][2]=-sk*ct*sp+ck*cp; + lambda[2][3]=st*sp; + + lambda[3][1]=-ck*st; + lambda[3][2]=sk*st; + lambda[3][3]=ct; + + + int i,j,k; + + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + tt[i][j] = EvtComplex(0.0); + for(k=0;k<4;k++){ + tt[i][j]+=lambda[j][k]*t[i][k]; + } + } + } + + for(i=0;i<4;i++){ + for(j=0;j<4;j++){ + t[i][j] = EvtComplex(0.0); + for(k=0;k<4;k++){ + t[i][j]+=lambda[i][k]*tt[k][j]; + } + } + } + +} + + + diff --git a/TEvtGen/EvtGenBase/EvtTensor4C.hh b/TEvtGen/EvtGenBase/EvtTensor4C.hh new file mode 100644 index 00000000000..5b0f502e040 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtTensor4C.hh @@ -0,0 +1,121 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtTensor4C.hh +// +// Description: Class to handle complex tensor manipulation +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ + +#ifndef EvtTensor4C_HH +#define EvtTensor4C_HH + +#include "EvtGenBase/EvtComplex.hh" + +//Class to handle 4D complex valued tensors. +class EvtTensor4C; +class EvtVector4C; +class EvtVector4R; +class EvtVector3R; + +EvtTensor4C directProd(const EvtVector4C& c1,const EvtVector4C& c2); +EvtTensor4C directProd(const EvtVector4C& c1,const EvtVector4R& c2); +EvtTensor4C directProd(const EvtVector4R& c1,const EvtVector4R& c2); +EvtTensor4C dual(const EvtTensor4C& t2); + +class EvtTensor4C { + + friend EvtTensor4C rotateEuler(const EvtTensor4C& e, + double alpha,double beta,double gamma); + friend EvtTensor4C boostTo(const EvtTensor4C& e, + const EvtVector4R p4); + friend EvtTensor4C boostTo(const EvtTensor4C& e, + const EvtVector3R boost); + friend EvtTensor4C directProd(const EvtVector4C& c1,const EvtVector4C& c2); + friend EvtTensor4C directProd(const EvtVector4C& c1,const EvtVector4R& c2); + friend EvtTensor4C directProd(const EvtVector4R& c1,const EvtVector4R& c2); + friend EvtTensor4C dual(const EvtTensor4C& t2); + friend EvtTensor4C conj(const EvtTensor4C& t2); + friend EvtTensor4C cont22(const EvtTensor4C& t1,const EvtTensor4C& t2); + friend EvtTensor4C cont11(const EvtTensor4C& t1,const EvtTensor4C& t2); + friend EvtTensor4C operator*(const EvtTensor4C& t1,const EvtComplex& c); + friend EvtTensor4C operator*(const EvtComplex& c,const EvtTensor4C& t1); + friend EvtTensor4C operator*(const EvtTensor4C& t1,double d); + friend EvtTensor4C operator*(double d,const EvtTensor4C& t1); + friend EvtComplex cont(const EvtTensor4C& t1,const EvtTensor4C& t2); + friend EvtTensor4C operator+(const EvtTensor4C& t1,const EvtTensor4C& t2); + friend EvtTensor4C operator-(const EvtTensor4C& t1,const EvtTensor4C& t2); + +public: + + EvtTensor4C() {;} + + EvtTensor4C(double t00,double t11,double t22, double t33) { setdiag(t00,t11,t22,t33);} + + + EvtTensor4C(const EvtTensor4C& t1 ); + virtual ~EvtTensor4C(); + EvtTensor4C& operator=(const EvtTensor4C& t1); + EvtTensor4C& operator*=(const EvtComplex& c); + EvtTensor4C& operator*=(double d); + EvtTensor4C& addDirProd(const EvtVector4R& p1,const EvtVector4R& p2); + static const EvtTensor4C& g(); + inline void set(int i,int j,const EvtComplex& c); + void setdiag(double t00,double t11,double t22, double t33); + inline const EvtComplex& get(int i, int j) const; + inline EvtComplex trace() const; + void zero(); + void applyRotateEuler(double alpha,double beta,double gamma); + void applyBoostTo(const EvtVector4R& p4); + void applyBoostTo(const EvtVector3R& boost); + friend std::ostream& operator<<(std::ostream& s, const EvtTensor4C& t); + EvtTensor4C& operator+=(const EvtTensor4C& t2); + EvtTensor4C& operator-=(const EvtTensor4C& t2); + EvtTensor4C conj() const; + EvtVector4C cont1(const EvtVector4C& v4) const; + EvtVector4C cont2(const EvtVector4C& v4) const; + EvtVector4C cont1(const EvtVector4R& v4) const; + EvtVector4C cont2(const EvtVector4R& v4) const; + + +private: + + EvtComplex t[4][4]; + +}; + +inline EvtTensor4C operator+(const EvtTensor4C& t1,const EvtTensor4C& t2){ + + return EvtTensor4C(t1)+=t2; +} + +inline EvtTensor4C operator-(const EvtTensor4C& t1,const EvtTensor4C& t2){ + + return EvtTensor4C(t1)-=t2; +} + +inline void EvtTensor4C::set(int i,int j,const EvtComplex& c){ + t[i][j]=c; +} + +inline const EvtComplex& EvtTensor4C::get(int i,int j) const{ + return t[i][j]; +} + +inline EvtComplex EvtTensor4C::trace() const{ + return t[0][0]-t[1][1]-t[2][2]-t[3][3]; +} + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtTensorParticle.cxx b/TEvtGen/EvtGenBase/EvtTensorParticle.cxx new file mode 100644 index 00000000000..d25427e7f67 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtTensorParticle.cxx @@ -0,0 +1,194 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtTensorParticle.cc +// +// Description: Class to describe spin 2 particles. +// +// Modification history: +// +// DJL/RYD September 25,1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensorParticle.hh" +#include "EvtGenBase/EvtReport.hh" + +EvtTensorParticle::~EvtTensorParticle(){} + +void EvtTensorParticle::init(EvtId part_n,const EvtVector4R& p4){ + + init(part_n,p4.get(0),p4.get(1) + ,p4.get(2),p4.get(3)); + + setLifetime(); + + +} + +void EvtTensorParticle::init(EvtId part_n,double e,double px,double py,double pz){ + + _validP4=true; + setp(e,px,py,pz); + setpart_num(part_n); + + eps[0].setdiag(0.0,-1.0/sqrt(6.0),-1.0/sqrt(6.0), + 2.0/sqrt(6.0)); + eps[1].setdiag(0.0,1.0/sqrt(2.0),-1.0/sqrt(2.0),0.0); + eps[2].setdiag(0.0,0.0,0.0,0.0); + eps[3].setdiag(0.0,0.0,0.0,0.0); + eps[4].setdiag(0.0,0.0,0.0,0.0); + + eps[2].set(1,2,EvtComplex(1.0/sqrt(2.0),0.0)); + eps[2].set(2,1,EvtComplex(1.0/sqrt(2.0),0.0)); + eps[3].set(1,3,EvtComplex(1.0/sqrt(2.0),0.0)); + eps[3].set(3,1,EvtComplex(1.0/sqrt(2.0),0.0)); + eps[4].set(2,3,EvtComplex(1.0/sqrt(2.0),0.0)); + eps[4].set(3,2,EvtComplex(1.0/sqrt(2.0),0.0)); + + setLifetime(); + +} + + +void EvtTensorParticle::init(EvtId part_n,const EvtVector4R& p4, + const EvtTensor4C& epsin1, + const EvtTensor4C& epsin2, + const EvtTensor4C& epsin3, + const EvtTensor4C& epsin4, + const EvtTensor4C& epsin5){ + + _validP4=true; + setp(p4); + setpart_num(part_n); + + eps[0]=epsin1; + eps[1]=epsin2; + eps[2]=epsin3; + eps[3]=epsin4; + eps[4]=epsin5; + + setLifetime(); + +} + + + +EvtTensor4C EvtTensorParticle::epsTensorParent(int i) const { + + EvtTensor4C temp=eps[i]; + + temp.applyBoostTo(this->getP4()); + return temp; + +} //epsParent + + +EvtTensor4C EvtTensorParticle::epsTensor(int i) const { + + return eps[i]; + +} //eps + + + +EvtSpinDensity EvtTensorParticle::rotateToHelicityBasis() const{ + + + static EvtVector4C eplus(0.0,-1.0/sqrt(2.0),EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + static EvtVector4C ezero(0.0,0.0,0.0,1.0); + static EvtVector4C eminus(0.0,1.0/sqrt(2.0),EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + + static EvtTensor4C dPpp(directProd(eplus,eplus)); + static EvtTensor4C dPp0(directProd(eplus,ezero)); + static EvtTensor4C dP0p(directProd(ezero,eplus)); + static EvtTensor4C dPpm(directProd(eplus,eminus)); + static EvtTensor4C dP00(directProd(ezero,ezero)); + static EvtTensor4C dPmp(directProd(eminus,eplus)); + static EvtTensor4C dPmm(directProd(eminus,eminus)); + static EvtTensor4C dPm0(directProd(eminus,ezero)); + static EvtTensor4C dP0m(directProd(ezero,eminus)); + + static EvtTensor4C es0(conj(dPpp)); + static EvtTensor4C es1(conj((1/sqrt(2.0))*dPp0 +(1/sqrt(2.0))*dP0p)); + static EvtTensor4C es2(conj((1/sqrt(6.0))*dPpm +(2/sqrt(6.0))*dP00 +(1/sqrt(6.0))*dPmp)); + static EvtTensor4C es3(conj((1/sqrt(2.0))*dPm0 +(1/sqrt(2.0))*dP0m)); + static EvtTensor4C es4(conj(dPmm)); + + + EvtSpinDensity R; + R.setDim(5); + + for (int j=0; j<5; j++) { + R.set(0,j,cont(es0,eps[j])); + R.set(1,j,cont(es1,eps[j])); + R.set(2,j,cont(es2,eps[j])); + R.set(3,j,cont(es3,eps[j])); + R.set(4,j,cont(es4,eps[j])); + } + return R; + +} + + +EvtSpinDensity EvtTensorParticle::rotateToHelicityBasis(double alpha, + double beta, + double gamma) const{ + + EvtTensor4C es[5]; + + static EvtVector4C eplus(0.0,-1.0/sqrt(2.0),EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + static EvtVector4C ezero(0.0,0.0,0.0,1.0); + static EvtVector4C eminus(0.0,1.0/sqrt(2.0),EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + + eplus.applyRotateEuler(alpha,beta,gamma); + ezero.applyRotateEuler(alpha,beta,gamma); + eminus.applyRotateEuler(alpha,beta,gamma); + + for (int i=0; i<5; i++) es[i].zero(); + + es[0]=directProd(eplus,eplus); + es[1] =(1/sqrt(2.0))*directProd(eplus,ezero) + +(1/sqrt(2.0))*directProd(ezero,eplus); + es[2] =(1/sqrt(6.0))*directProd(eplus,eminus) + +(2/sqrt(6.0))*directProd(ezero,ezero) + +(1/sqrt(6.0))*directProd(eminus,eplus); + es[3] =(1/sqrt(2.0))*directProd(eminus,ezero) + +(1/sqrt(2.0))*directProd(ezero,eminus); + es[4]=directProd(eminus,eminus); + + for (int i=0; i<5; i++) es[i]=conj(es[i]); + + EvtSpinDensity R; + R.setDim(5); + + for (int i=0; i<5; i++) + for (int j=0; j<5; j++) + R.set(i,j,cont(es[i],eps[j])); + + return R; + +} + + + + + + + + diff --git a/TEvtGen/EvtGenBase/EvtTensorParticle.hh b/TEvtGen/EvtGenBase/EvtTensorParticle.hh new file mode 100644 index 00000000000..b6543c309fe --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtTensorParticle.hh @@ -0,0 +1,59 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtTensorParticle.hh +// +// Description: Class to describe tensor ( spin 2 ) particles. +// +// Modification history: +// +// DJL/RYD Sept. 25, 1996 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTTENSORPARTICLE_HH +#define EVTTENSORPARTICLE_HH + +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtParticle.hh" + +class EvtTensorParticle: public EvtParticle { + +public: + + EvtTensorParticle() {} + virtual ~EvtTensorParticle(); + + void init(EvtId part_n,double e,double px,double py,double pz); + void init(EvtId part_n,const EvtVector4R& p4); + void init(EvtId part_n,const EvtVector4R& p4, + const EvtTensor4C&,const EvtTensor4C&,const EvtTensor4C&, + const EvtTensor4C&,const EvtTensor4C&); + //Returns polarization tensors. + EvtTensor4C epsTensorParent(int i) const; + EvtTensor4C epsTensor(int i) const; + + EvtSpinDensity rotateToHelicityBasis() const; + EvtSpinDensity rotateToHelicityBasis(double alpha, + double beta, + double gamma) const; + + +private: + + EvtTensor4C eps[5];//eps1,eps2,eps3,eps4,eps5; + + EvtTensorParticle(const EvtTensorParticle& tensor); + EvtTensorParticle& operator=(const EvtTensorParticle& tensor); + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtTwoBodyKine.cxx b/TEvtGen/EvtGenBase/EvtTwoBodyKine.cxx new file mode 100644 index 00000000000..27c124657cf --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtTwoBodyKine.cxx @@ -0,0 +1,105 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtTwoBodyKine.cc,v 1.8 2004/12/21 19:58:50 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#include +#include +#include +#include "EvtGenBase/EvtTwoBodyKine.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; +using std::ostream; + + +EvtTwoBodyKine::EvtTwoBodyKine() + : _mA(0.), _mB(0.), _mAB(0.) +{} + +EvtTwoBodyKine::EvtTwoBodyKine(double mA, double mB, double mAB) + : _mA(mA), _mB(mB), _mAB(mAB) +{ + if(mAB < mA + mB) { + + report(INFO,"EvtGen") << mAB << " < " << mA << " + " << mB << endl; + assert(0); + } +} + +EvtTwoBodyKine::EvtTwoBodyKine(const EvtTwoBodyKine& other) + : _mA(other._mA), _mB(other._mB), _mAB(other._mAB) +{} + +EvtTwoBodyKine::~EvtTwoBodyKine() +{} + + +double EvtTwoBodyKine::m(Index i) const +{ + double ret = _mAB; + if(A == i) ret = _mA; + else + if(B == i) ret = _mB; + + return ret; +} + + +double EvtTwoBodyKine::p(Index i) const +{ + double p0 = 0.; + + if(i == AB) { + + double x = _mAB*_mAB - _mA*_mA - _mB*_mB; + double y = 2*_mA*_mB; + p0 = sqrt(x*x - y*y)/2./_mAB; + } + else + if(i == A) { + + double x = _mA*_mA - _mAB*_mAB - _mB*_mB; + double y = 2*_mAB*_mB; + p0 = sqrt(x*x - y*y)/2./_mA; + } + else { + + double x = _mB*_mB - _mAB*_mAB - _mA*_mA; + double y = 2*_mAB*_mA; + p0 = sqrt(x*x - y*y)/2./_mB; + } + + return p0; +} + + +double EvtTwoBodyKine::e(Index i, Index j) const +{ + double ret = m(i); + if(i != j) { + + double pD = p(j); + ret = sqrt(ret*ret + pD*pD); + } + return ret; +} + + +void EvtTwoBodyKine::print(ostream& os) const +{ + os << " mA = " << _mA << endl; + os << " mB = " << _mB << endl; + os << "mAB = " << _mAB << endl; +} + + +ostream& operator<<(ostream& os, const EvtTwoBodyKine& p) +{ + p.print(os); + return os; +} diff --git a/TEvtGen/EvtGenBase/EvtTwoBodyKine.hh b/TEvtGen/EvtGenBase/EvtTwoBodyKine.hh new file mode 100644 index 00000000000..11d9caa8084 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtTwoBodyKine.hh @@ -0,0 +1,55 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtTwoBodyKine.hh,v 1.6 2004/08/06 06:08:26 bartoldu Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Descriptions of the kinematics of a two-body decay. + +#ifndef EVT_TWO_BODY_KINE_HH +#define EVT_TWO_BODY_KINE_HH + +#include + +class EvtTwoBodyKine { + +public: + + enum Index {A,B,AB}; + + EvtTwoBodyKine(); + EvtTwoBodyKine(double mA, double mB, double mAB); + EvtTwoBodyKine(const EvtTwoBodyKine& other); + ~EvtTwoBodyKine(); + + // Accessors + + inline double mA() const { return _mA; } + inline double mB() const { return _mB; } + inline double mAB() const { return _mAB; } + double m(Index i) const; + + // Momentum of the other two particles in the + // rest-frame of particle i. + + double p(Index i = AB) const; + + // Energy of particle i in the rest frame of particle j + + double e(Index i, Index j) const; + + void print(std::ostream& os) const; + +private: + + double _mA; + double _mB; + double _mAB; +}; + +std::ostream& operator<<(std::ostream& os, const EvtTwoBodyKine& p); + +#endif diff --git a/TEvtGen/EvtGenBase/EvtTwoBodyVertex.cxx b/TEvtGen/EvtGenBase/EvtTwoBodyVertex.cxx new file mode 100644 index 00000000000..7e97375171b --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtTwoBodyVertex.cxx @@ -0,0 +1,103 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtTwoBodyVertex.cc,v 1.6 2004/12/21 19:58:50 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#include +#include +#include +#include "EvtGenBase/EvtMacros.hh" +#include "EvtGenBase/EvtTwoBodyVertex.hh" +using std::endl; +using std::ostream; + + +// Default ctor can sometimes be useful + +EvtTwoBodyVertex::EvtTwoBodyVertex() + : _LL(0), _p0(0), _f(0) +{} + +EvtTwoBodyVertex::EvtTwoBodyVertex(double mA, double mB, double mAB, int L) + : _kine(), _LL(L), _p0(0), _f(0) +{ + // Kinematics is initialized only if the decay is above threshold + + if(mAB > mA + mB) { + + _kine = EvtTwoBodyKine(mA,mB,mAB); + _p0 = _kine.p(); + } +} + + +EvtTwoBodyVertex::EvtTwoBodyVertex(const EvtTwoBodyVertex& other) + : _kine(other._kine), _LL(other._LL), _p0(other._p0), + _f( (other._f) ? new EvtBlattWeisskopf(*other._f) : 0 ) +{} + +EvtTwoBodyVertex::~EvtTwoBodyVertex() +{ + if(_f) delete _f; +} + + +void EvtTwoBodyVertex::set_f(double R) +{ + if(_f) delete _f; + _f = new EvtBlattWeisskopf(_LL,R,_p0); +} + + +double EvtTwoBodyVertex::widthFactor(EvtTwoBodyKine x) const +{ + assert(_p0 > 0.); + + double p1 = x.p(); + double ff = formFactor(x); + double factor = pow(p1/_p0,2*_LL+1)*mAB()/x.mAB() * ff * ff; + + return factor; +} + + +double EvtTwoBodyVertex::phaseSpaceFactor(EvtTwoBodyKine x,EvtTwoBodyKine::Index i) const +{ + double p1 = x.p(i); + double factor = pow(p1,_LL); + return factor; +} + +double EvtTwoBodyVertex::formFactor(EvtTwoBodyKine x) const +{ + double ff = 1.; + + if(_f) { + + double p1 = x.p(); + ff = (*_f)(p1); + } + + return ff; +} + +void EvtTwoBodyVertex::print(ostream& os) const +{ + os << " mA = " << mA() << endl; + os << " mB = " << mB() << endl; + os << "mAB = " << mAB() << endl; + os << " L = " << _LL << endl; + os << " p0 = " << _p0 << endl; +} + + +ostream& operator<<(ostream& os, const EvtTwoBodyVertex& v) +{ + v.print(os); + return os; +} diff --git a/TEvtGen/EvtGenBase/EvtTwoBodyVertex.hh b/TEvtGen/EvtGenBase/EvtTwoBodyVertex.hh new file mode 100644 index 00000000000..68c4ed3c3ea --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtTwoBodyVertex.hh @@ -0,0 +1,54 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtTwoBodyVertex.hh,v 1.6 2004/08/06 06:08:26 bartoldu Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Two-body propagator vertex AB->A,B with an attached Blatt-Weisskopf form factor. + +#ifndef EVT_TWO_BODY_VERTEX_HH +#define EVT_TWO_BODY_VERTEX_HH + +#include +#include "EvtGenBase/EvtTwoBodyKine.hh" +#include "EvtGenBase/EvtBlattWeisskopf.hh" + +#include + +class EvtTwoBodyVertex { + +public: + + EvtTwoBodyVertex(); + EvtTwoBodyVertex(double mA, double mB, double mAB, int L); + EvtTwoBodyVertex(const EvtTwoBodyVertex& other); + ~EvtTwoBodyVertex(); + + double widthFactor(EvtTwoBodyKine x) const; + double formFactor(EvtTwoBodyKine x) const; + double phaseSpaceFactor(EvtTwoBodyKine x, EvtTwoBodyKine::Index) const; + + inline int L() const { return _LL; } + inline double mA() const { return _kine.mA(); } + inline double mB() const { return _kine.mB(); } + inline double mAB() const { return _kine.mAB(); } + inline double pD() const { return _p0; } + void print(std::ostream& os) const; + + void set_f(double R); + +private: + + EvtTwoBodyKine _kine; + int _LL; + double _p0; + EvtBlattWeisskopf* _f; // optional Blatt-Weisskopf form factor + +}; + +std::ostream& operator<<(std::ostream& os, const EvtTwoBodyVertex& v); + +#endif diff --git a/TEvtGen/EvtGenBase/EvtValError.cxx b/TEvtGen/EvtGenBase/EvtValError.cxx new file mode 100644 index 00000000000..9fc7e250c0f --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtValError.cxx @@ -0,0 +1,160 @@ +#include "EvtGenBase/EvtPatches.hh" +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtValError.cc,v 1.7 2004/12/21 19:58:50 ryd Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +#include +#include +#include +#include "EvtGenBase/EvtValError.hh" +using std::endl; +using std::ostream; + +EvtValError::EvtValError() + : _valKnown(0), _val(0.), _errKnown(0), _err(0.) +{} + +EvtValError::EvtValError(double val) + : _valKnown(1), _val(val), _errKnown(0), _err(0.) +{} + +EvtValError::EvtValError(double val, double err) + : _valKnown(1), _val(val), _errKnown(1), _err(err) +{} + +EvtValError::EvtValError(const EvtValError& other) + : _valKnown(other._valKnown), _val(other._val), + _errKnown(other._errKnown), _err(other._err) +{} + +EvtValError::~EvtValError() +{} + +double EvtValError::prec() const +{ + assert(_valKnown && _errKnown); + return ( _val != 0) ? _err/_val : 0; +} + +void EvtValError::operator=(const EvtValError& other) +{ + _valKnown = other._valKnown; + _val = other._val; + _errKnown = other._errKnown; + _err = other._err; +} + +void EvtValError::operator*=(const EvtValError& other) +{ + assert(_valKnown && other._valKnown); + + // Relative errors add in quadrature + if(_errKnown && other._errKnown) + _err = _val * other._val * sqrt(prec()*prec() + other.prec() * other.prec()); + else _errKnown = 0; + + // Modify the value + _val *= other._val; +} + +void EvtValError::operator/=(const EvtValError& other) +{ + assert(_valKnown && other._valKnown && other._val != 0.); + + // Relative errors add in quadrature + if(_errKnown && other._errKnown) + _err = _val/other._val * sqrt(prec()*prec() + other.prec() * other.prec()); + else _errKnown = 0; + + // Modify the value + _val /= other._val; +} + + +void EvtValError::print(ostream& os) const +{ + if(_valKnown) os << _val; + else os << "Undef"; + os << " +/- "; + if(_errKnown) os << _err; + else os << "Undef"; + os << endl; +} + + +void EvtValError::operator+=(const EvtValError& other) +{ + assert(_valKnown); assert(other._valKnown); + _val += other._val; + + // add errors in quadrature + + if(_errKnown && other._errKnown) { + + _err = sqrt(_err*_err + other._err*other._err); + } + else { + + _errKnown = 0; + } +} + +void EvtValError::operator*=(double c) { + + assert(_valKnown); + _val *= c; + if(_errKnown) _err*=c; +} + + +EvtValError operator*(const EvtValError& x1, const EvtValError& x2) +{ + EvtValError ret(x1); + ret *= x2; + return ret; +} + +EvtValError operator/(const EvtValError& x1, const EvtValError& x2) +{ + EvtValError ret(x1); + ret /= x2; + return ret; +} + + +EvtValError operator+(const EvtValError& x1, const EvtValError& x2) +{ + EvtValError ret(x1); + ret += x2; + return ret; +} + + +EvtValError operator*(const EvtValError& x,double c) +{ + EvtValError ret(x); + ret*=c; + return ret; +} + + +EvtValError operator*(double c,const EvtValError& x) +{ + EvtValError ret(x); + ret*=c; + return ret; +} + + +ostream& operator<<(ostream& os, const EvtValError& other) +{ + other.print(os); + return os; +} + + diff --git a/TEvtGen/EvtGenBase/EvtValError.hh b/TEvtGen/EvtGenBase/EvtValError.hh new file mode 100644 index 00000000000..0ea1cc7d79c --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtValError.hh @@ -0,0 +1,78 @@ +/******************************************************************************* + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenBase + * File: $Id: EvtValError.hh,v 1.6 2004/08/06 06:08:26 bartoldu Exp $ + * Author: Alexei Dvoretskii, dvoretsk@slac.stanford.edu, 2001-2002 + * + * Copyright (C) 2002 Caltech + *******************************************************************************/ + +// Value and its associated error. E.g. this could be interval size and +// the error associated with numerical integration. + +#ifndef EVT_VAL_ERROR_HH +#define EVT_VAL_ERROR_HH + +#include +#include +#include + +class EvtValError { + +public: + + EvtValError(); + EvtValError(double val); + EvtValError(double val, double err); + EvtValError(const EvtValError& other); + ~EvtValError(); + + inline int valueKnown() const { return _valKnown; } + inline double value() const { assert(_valKnown); return _val; } + inline int errorKnown() const { return _errKnown; } + inline double error() const { assert(_errKnown); return _err; } + + double prec() const; + void operator=(const EvtValError& other); + void operator*=(const EvtValError& other); + void operator/=(const EvtValError& other); + void operator+=(const EvtValError& other); + void operator*=(double c); + + void print(std::ostream&) const; + +private: + + int _valKnown; + double _val; + int _errKnown; + double _err; + +}; + + +EvtValError operator*(const EvtValError& x1, const EvtValError& x2); +EvtValError operator/(const EvtValError& x1, const EvtValError& x2); +EvtValError operator+(const EvtValError& x1, const EvtValError& x2); +EvtValError operator*(const EvtValError& x,double c); +EvtValError operator*(double c,const EvtValError& x); + +std::ostream& operator<<(std::ostream&, const EvtValError&); + +// Perform an accept/reject fraction count + +template +EvtValError accept_reject(InputIterator it, InputIterator end, Predicate pred) +{ + int itsTried = 0; + int itsPassed = 0; + while(it != end) { + + itsTried++; + if(pred(*it++)) itsPassed++; + } + + return EvtValError(((double) itsPassed)/((double) itsTried),sqrt(itsPassed)/((double) itsTried)); +} + +#endif diff --git a/TEvtGen/EvtGenBase/EvtVector3C.cxx b/TEvtGen/EvtGenBase/EvtVector3C.cxx new file mode 100644 index 00000000000..f26bdd0f964 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtVector3C.cxx @@ -0,0 +1,102 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVector3C.cc +// +// Description: Complex 3 vectors. +// +// Modification history: +// +// RYD September 5, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtVector3C.hh" +using std::ostream; + + + + +EvtVector3C::EvtVector3C(){ + + v[0]=EvtComplex(0.0); v[1]=EvtComplex(0.0); v[2]=EvtComplex(0.0); +} + +EvtVector3C::~EvtVector3C(){ + + return; +} + + +EvtVector3C::EvtVector3C(const EvtComplex& e1,const EvtComplex& e2,const EvtComplex& e3){ + + v[0]=e1; v[1]=e2; v[2]=e3; +} + + +EvtVector3C EvtVector3C::cross( const EvtVector3C& p2 ){ + + //Calcs the cross product. Added by djl on July 27, 1995. + + EvtVector3C temp; + + temp.v[0] = v[1]*p2.v[2] - v[2]*p2.v[1]; + temp.v[1] = v[2]*p2.v[0] - v[0]*p2.v[2]; + temp.v[2] = v[0]*p2.v[1] - v[1]*p2.v[0]; + + return temp; +} + +EvtVector3C rotateEuler(const EvtVector3C& v, + double alpha,double beta,double gamma){ + + EvtVector3C tmp(v); + tmp.applyRotateEuler(alpha,beta,gamma); + return tmp; + +} + + +void EvtVector3C::applyRotateEuler(double phi,double theta,double ksi){ + + EvtComplex temp[3]; + double sp,st,sk,cp,ct,ck; + + sp=sin(phi); + st=sin(theta); + sk=sin(ksi); + cp=cos(phi); + ct=cos(theta); + ck=cos(ksi); + + temp[0]=( ck*ct*cp-sk*sp)*v[0]+( -sk*ct*cp-ck*sp)*v[1]+st*cp*v[2]; + temp[1]=( ck*ct*sp+sk*cp)*v[0]+(-sk*ct*sp+ck*cp)*v[1]+st*sp*v[2]; + temp[2]=-ck*st*v[0]+sk*st*v[1]+ct*v[2]; + + + v[0]=temp[0]; + v[1]=temp[1]; + v[2]=temp[2]; +} + + + +ostream& operator<<(ostream& s,const EvtVector3C& v){ + + s<<"("< + +class EvtVector3C { + + friend EvtVector3C rotateEuler(const EvtVector3C& v, + double phi,double theta,double ksi); + + inline friend EvtVector3C operator*(const EvtComplex& c,const EvtVector3C& v2); + inline friend EvtVector3C operator*(const EvtComplex& c,const EvtVector3R& v2); + inline friend EvtComplex operator*(const EvtVector3R& v1,const EvtVector3C& v2); + inline friend EvtComplex operator*(const EvtVector3C& v1,const EvtVector3R& v2); + inline friend EvtComplex operator*(const EvtVector3C& v1,const EvtVector3C& v2); + inline friend EvtVector3C operator+(const EvtVector3C& v1,const EvtVector3C& v2); + inline friend EvtVector3C operator-(const EvtVector3C& v1,const EvtVector3C& v2); + inline friend EvtVector3C operator*(const EvtVector3C& v1,const EvtComplex& c); + + +public: + + EvtVector3C(); + EvtVector3C(const EvtComplex&,const EvtComplex&,const EvtComplex&); + virtual ~EvtVector3C(); + inline void set(const int,const EvtComplex&); + inline void set(const EvtComplex&,const EvtComplex&,const EvtComplex&); + inline void set(double,double,double); + inline EvtVector3C& operator*=(const EvtComplex& c); + inline EvtVector3C& operator/=(const EvtComplex& c); + inline EvtVector3C& operator+=(const EvtVector3C& v2); + inline EvtVector3C& operator-=(const EvtVector3C& v2); + inline EvtVector3C(const EvtVector3R& v1); + void applyRotateEuler(double phi,double theta,double ksi); + inline const EvtComplex& get(int) const; + inline EvtVector3C conj() const; + EvtVector3C cross(const EvtVector3C& v2); + friend std::ostream& operator<<(std::ostream& c,const EvtVector3C& v); + double dot( const EvtVector3C& p2 ); +private: + + EvtComplex v[3]; +}; + +inline EvtVector3C::EvtVector3C(const EvtVector3R& v1){ + + v[0]=EvtComplex(v1.get(0),0.0); + v[1]=EvtComplex(v1.get(1),0.0); + v[2]=EvtComplex(v1.get(2),0.0); + +} + +inline void EvtVector3C::set(const int i,const EvtComplex& c){ + + v[i]=c; + +} + +inline void EvtVector3C::set(const EvtComplex& x,const EvtComplex& y, + const EvtComplex& z){ + + v[0]=x; v[1]=y; v[2]=z; +} + +inline void EvtVector3C::set(double x, + double y,double z){ + + v[0]=EvtComplex(x); v[1]=EvtComplex(y); v[2]=EvtComplex(z); +} + +inline const EvtComplex& EvtVector3C::get(int i) const { + + return v[i]; +} + +inline EvtVector3C& EvtVector3C::operator*=(const EvtComplex& c){ + + v[0]*=c; + v[1]*=c; + v[2]*=c; + return *this; +} + +inline EvtVector3C& EvtVector3C::operator/=(const EvtComplex& c){ + + v[0]/=c; + v[1]/=c; + v[2]/=c; + return *this; +} + +inline EvtVector3C& EvtVector3C::operator+=(const EvtVector3C& v2){ + + v[0]+=v2.v[0]; + v[1]+=v2.v[1]; + v[2]+=v2.v[2]; + return *this; +} + +inline EvtVector3C& EvtVector3C::operator-=(const EvtVector3C& v2){ + + v[0]-=v2.v[0]; + v[1]-=v2.v[1]; + v[2]-=v2.v[2]; + return *this; +} + +inline EvtVector3C operator+(const EvtVector3C& v1,const EvtVector3C& v2) { + + return EvtVector3C(v1)+=v2; +} + +inline EvtVector3C operator-(const EvtVector3C& v1,const EvtVector3C& v2) { + + return EvtVector3C(v1)-=v2; +} + +inline EvtVector3C operator*(const EvtVector3C& v1,const EvtComplex& c) { + + return EvtVector3C(v1)*=c; +} + +inline EvtVector3C operator*(const EvtComplex& c,const EvtVector3C& v2){ + + return EvtVector3C(v2)*=c; +} + +inline EvtVector3C operator*(const EvtComplex& c,const EvtVector3R& v2){ + + return EvtVector3C(v2)*=c; +} + +inline EvtComplex operator*(const EvtVector3R& v1,const EvtVector3C& v2){ + + return v1.get(0)*v2.v[0]+v1.get(1)*v2.v[1]+v1.get(2)*v2.v[2]; +} + +inline EvtComplex operator*(const EvtVector3C& v1,const EvtVector3R& v2){ + + return v1.v[0]*v2.get(0)+v1.v[1]*v2.get(1)+v1.v[2]*v2.get(2); +} + +inline EvtComplex operator*(const EvtVector3C& v1,const EvtVector3C& v2){ + + return v1.v[0]*v2.v[0]+v1.v[1]*v2.v[1]+v1.v[2]*v2.v[2]; +} + +inline EvtVector3C EvtVector3C::conj() const { + + return EvtVector3C(::conj(v[0]),::conj(v[1]), + ::conj(v[2])); +} + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtVector3R.cxx b/TEvtGen/EvtGenBase/EvtVector3R.cxx new file mode 100644 index 00000000000..0f90eac08b2 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtVector3R.cxx @@ -0,0 +1,120 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVector3R.cc +// +// Description: Real implementation of 3-vectors +// +// Modification history: +// +// RYD September 5, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include "EvtGenBase/EvtVector3R.hh" +using std::ostream; + + + +EvtVector3R::~EvtVector3R(){} + +EvtVector3R::EvtVector3R(){ + + v[0]=v[1]=v[2]=0.0; +} + + +EvtVector3R::EvtVector3R(double x,double y, double z){ + + v[0]=x; v[1]=y; v[2]=z; +} + +EvtVector3R rotateEuler(const EvtVector3R& v, + double alpha,double beta,double gamma){ + + EvtVector3R tmp(v); + tmp.applyRotateEuler(alpha,beta,gamma); + return tmp; + +} + + +void EvtVector3R::applyRotateEuler(double phi,double theta,double ksi){ + + double temp[3]; + double sp,st,sk,cp,ct,ck; + + sp=sin(phi); + st=sin(theta); + sk=sin(ksi); + cp=cos(phi); + ct=cos(theta); + ck=cos(ksi); + + temp[0]=( ck*ct*cp-sk*sp)*v[0]+( -sk*ct*cp-ck*sp)*v[1]+st*cp*v[2]; + temp[1]=( ck*ct*sp+sk*cp)*v[0]+(-sk*ct*sp+ck*cp)*v[1]+st*sp*v[2]; + temp[2]=-ck*st*v[0]+sk*st*v[1]+ct*v[2]; + + + v[0]=temp[0]; + v[1]=temp[1]; + v[2]=temp[2]; +} + +ostream& operator<<(ostream& s,const EvtVector3R& v){ + + s<<"("< + +class EvtVector3R { + + friend EvtVector3R rotateEuler(const EvtVector3R& v, + double phi,double theta,double ksi); + + inline friend EvtVector3R operator*(double c,const EvtVector3R& v2); + inline friend double operator*(const EvtVector3R& v1,const EvtVector3R& v2); + inline friend EvtVector3R operator+(const EvtVector3R& v1,const EvtVector3R& v2); + inline friend EvtVector3R operator-(const EvtVector3R& v1,const EvtVector3R& v2); + inline friend EvtVector3R operator*(const EvtVector3R& v1,double c); + inline friend EvtVector3R operator/(const EvtVector3R& v1,double c); + friend EvtVector3R cross(const EvtVector3R& v1,const EvtVector3R& v2); + +public: + EvtVector3R(); + EvtVector3R(double x,double y ,double z); + virtual ~EvtVector3R(); + inline EvtVector3R& operator*=(const double c); + inline EvtVector3R& operator/=(const double c); + inline EvtVector3R& operator+=(const EvtVector3R& v2); + inline EvtVector3R& operator-=(const EvtVector3R& v2); + inline void set(int i,double d); + inline void set(double x,double y ,double z); + void applyRotateEuler(double phi,double theta,double ksi); + inline double get(int i) const; + friend std::ostream& operator<<(std::ostream& s,const EvtVector3R& v); + double dot(const EvtVector3R& v2); + double d3mag() const; + +private: + + double v[3]; + +}; + +inline EvtVector3R& EvtVector3R::operator*=(const double c){ + + v[0]*=c; + v[1]*=c; + v[2]*=c; + return *this; +} + +inline EvtVector3R& EvtVector3R::operator/=(const double c){ + + v[0]/=c; + v[1]/=c; + v[2]/=c; + return *this; +} + +inline EvtVector3R& EvtVector3R::operator+=(const EvtVector3R& v2){ + + v[0]+=v2.v[0]; + v[1]+=v2.v[1]; + v[2]+=v2.v[2]; + return *this; +} + +inline EvtVector3R& EvtVector3R::operator-=(const EvtVector3R& v2){ + + v[0]-=v2.v[0]; + v[1]-=v2.v[1]; + v[2]-=v2.v[2]; + return *this; +} + +inline EvtVector3R operator*(double c,const EvtVector3R& v2){ + + return EvtVector3R(v2)*=c; +} + +inline EvtVector3R operator*(const EvtVector3R& v1,double c){ + + return EvtVector3R(v1)*=c; +} + +inline EvtVector3R operator/(const EvtVector3R& v1,double c){ + + return EvtVector3R(v1)/=c; +} + +inline double operator*(const EvtVector3R& v1,const EvtVector3R& v2){ + + return v1.v[0]*v2.v[0]+v1.v[1]*v2.v[1]+v1.v[2]*v2.v[2]; +} + +inline EvtVector3R operator+(const EvtVector3R& v1,const EvtVector3R& v2) { + + return EvtVector3R(v1)+=v2; +} + +inline EvtVector3R operator-(const EvtVector3R& v1,const EvtVector3R& v2) { + + return EvtVector3R(v1)-=v2; + +} + +inline double EvtVector3R::get(int i) const { + return v[i]; +} + +inline void EvtVector3R::set(int i,double d){ + + v[i]=d; +} + +inline void EvtVector3R::set(double x,double y, double z){ + + v[0]=x; + v[1]=y; + v[2]=z; +} + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtVector4C.cxx b/TEvtGen/EvtGenBase/EvtVector4C.cxx new file mode 100644 index 00000000000..b73930f93fa --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtVector4C.cxx @@ -0,0 +1,163 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVector4C.cc +// +// Description: EvtComplex implemention of 4 - vectors +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtVector4C.hh" +using std::ostream; + + +EvtVector4C::EvtVector4C(){ + + v[0]=EvtComplex(0.0); v[1]=EvtComplex(0.0); + v[2]=EvtComplex(0.0); v[3]=EvtComplex(0.0); + +} + +EvtVector4C::~EvtVector4C(){} + +EvtVector4C::EvtVector4C(const EvtComplex& e0,const EvtComplex& e1, + const EvtComplex& e2,const EvtComplex& e3){ + + v[0]=e0; v[1]=e1; v[2]=e2; v[3]=e3; +} + + +EvtVector4C rotateEuler(const EvtVector4C& rs, + double alpha,double beta,double gamma){ + + EvtVector4C tmp(rs); + tmp.applyRotateEuler(alpha,beta,gamma); + return tmp; + +} + +EvtVector4C boostTo(const EvtVector4C& rs, + const EvtVector4R p4){ + + EvtVector4C tmp(rs); + tmp.applyBoostTo(p4); + return tmp; + +} + +EvtVector4C boostTo(const EvtVector4C& rs, + const EvtVector3R boost){ + + EvtVector4C tmp(rs); + tmp.applyBoostTo(boost); + return tmp; + +} + +void EvtVector4C::applyBoostTo(const EvtVector4R& p4){ + + double e=p4.get(0); + + EvtVector3R boost(p4.get(1)/e,p4.get(2)/e,p4.get(3)/e); + + applyBoostTo(boost); + + return; + +} + +void EvtVector4C::applyBoostTo(const EvtVector3R& boost){ + + double bx,by,bz,gamma,b2; + + bx=boost.get(0); + by=boost.get(1); + bz=boost.get(2); + + double bxx=bx*bx; + double byy=by*by; + double bzz=bz*bz; + + b2=bxx+byy+bzz; + + + if (b2==0.0){ + return; + } + + assert(b2<1.0); + + gamma=1.0/sqrt(1-b2); + + + double gb2=(gamma-1.0)/b2; + + double gb2xy=gb2*bx*by; + double gb2xz=gb2*bx*bz; + double gb2yz=gb2*by*bz; + + double gbx=gamma*bx; + double gby=gamma*by; + double gbz=gamma*bz; + + EvtComplex e2=v[0]; + EvtComplex px2=v[1]; + EvtComplex py2=v[2]; + EvtComplex pz2=v[3]; + + v[0]=gamma*e2+gbx*px2+gby*py2+gbz*pz2; + + v[1]=gbx*e2+gb2*bxx*px2+px2+gb2xy*py2+gb2xz*pz2; + + v[2]=gby*e2+gb2*byy*py2+py2+gb2xy*px2+gb2yz*pz2; + + v[3]=gbz*e2+gb2*bzz*pz2+pz2+gb2yz*py2+gb2xz*px2; + + return; + +} + +void EvtVector4C::applyRotateEuler(double phi,double theta,double ksi){ + + double sp=sin(phi); + double st=sin(theta); + double sk=sin(ksi); + double cp=cos(phi); + double ct=cos(theta); + double ck=cos(ksi); + + EvtComplex x=( ck*ct*cp-sk*sp)*v[1]+( -sk*ct*cp-ck*sp)*v[2]+st*cp*v[3]; + EvtComplex y=( ck*ct*sp+sk*cp)*v[1]+(-sk*ct*sp+ck*cp)*v[2]+st*sp*v[3]; + EvtComplex z=-ck*st*v[1]+sk*st*v[2]+ct*v[3]; + + v[1]=x; + v[2]=y; + v[3]=z; + +} + + +ostream& operator<<(ostream& s, const EvtVector4C& v){ + + s<<"("< + +class EvtVector4C { + + friend EvtVector4C rotateEuler(const EvtVector4C& e, + double alpha,double beta,double gamma); + friend EvtVector4C boostTo(const EvtVector4C& e, + const EvtVector4R p4); + friend EvtVector4C boostTo(const EvtVector4C& e, + const EvtVector3R boost); + inline friend EvtVector4C operator*(double d,const EvtVector4C& v2); + inline friend EvtVector4C operator*(const EvtComplex& c,const EvtVector4C& v2); + inline friend EvtVector4C operator*(const EvtVector4C& v2,const EvtComplex& c); + inline friend EvtVector4C operator*(const EvtComplex& c,const EvtVector4R& v2); + inline friend EvtComplex operator*(const EvtVector4R& v1,const EvtVector4C& v2); + inline friend EvtComplex operator*(const EvtVector4C& v1,const EvtVector4R& v2); + inline friend EvtComplex operator*(const EvtVector4C& v1,const EvtVector4C& v2); + friend EvtVector4C operator+(const EvtVector4C& v1,const EvtVector4C& v2); + friend EvtVector4C operator-(const EvtVector4C& v1,const EvtVector4C& v2); + +public: + + EvtVector4C(); + EvtVector4C(const EvtComplex&,const EvtComplex&, + const EvtComplex&,const EvtComplex&); + virtual ~EvtVector4C(); + inline void set(int,const EvtComplex&); + inline void set(const EvtComplex&,const EvtComplex&, + const EvtComplex&,const EvtComplex&); + inline void set(double,double,double,double); + inline EvtVector4C(const EvtVector4R& v1); + inline const EvtComplex& get(int) const; + inline EvtComplex cont(const EvtVector4C& v4) const; + inline EvtVector4C conj() const; + EvtVector3C vec() const; + inline EvtVector4C& operator=(const EvtVector4C& v2); + inline EvtVector4C& operator-=(const EvtVector4C& v2); + inline EvtVector4C& operator+=(const EvtVector4C& v2); + inline EvtVector4C& operator*=(const EvtComplex& c); + void applyRotateEuler(double alpha,double beta,double gamma); + void applyBoostTo(const EvtVector4R& p4); + void applyBoostTo(const EvtVector3R& boost); + friend std::ostream& operator<<(std::ostream& s, const EvtVector4C& v); + double dot( const EvtVector4C& p2 ); +private: + + EvtComplex v[4]; + +}; + +inline EvtVector4C& EvtVector4C::operator=(const EvtVector4C& v2){ + + v[0]=v2.v[0]; + v[1]=v2.v[1]; + v[2]=v2.v[2]; + v[3]=v2.v[3]; + + return *this; +} + +inline EvtVector4C& EvtVector4C::operator+=(const EvtVector4C& v2){ + + v[0]+=v2.v[0]; + v[1]+=v2.v[1]; + v[2]+=v2.v[2]; + v[3]+=v2.v[3]; + + return *this; +} + +inline EvtVector4C& EvtVector4C::operator-=(const EvtVector4C& v2){ + + v[0]-=v2.v[0]; + v[1]-=v2.v[1]; + v[2]-=v2.v[2]; + v[3]-=v2.v[3]; + + return *this; +} + +inline void EvtVector4C::set(int i,const EvtComplex& c){ + + v[i]=c; +} + +inline EvtVector3C EvtVector4C::vec() const { + + return EvtVector3C(v[1],v[2],v[3]); +} + +inline void EvtVector4C::set(const EvtComplex& e,const EvtComplex& p1, + const EvtComplex& p2,const EvtComplex& p3){ + + v[0]=e; v[1]=p1; v[2]=p2; v[3]=p3; +} + +inline void EvtVector4C::set(double e,double p1, + double p2,double p3){ + + v[0]=EvtComplex(e); v[1]=EvtComplex(p1); v[2]=EvtComplex(p2); v[3]=EvtComplex(p3); +} + +inline const EvtComplex& EvtVector4C::get(int i) const { + + return v[i]; +} + +inline EvtVector4C operator+(const EvtVector4C& v1,const EvtVector4C& v2) { + + return EvtVector4C(v1)+=v2; +} + +inline EvtVector4C operator-(const EvtVector4C& v1,const EvtVector4C& v2) { + + return EvtVector4C(v1)-=v2; +} + +inline EvtComplex EvtVector4C::cont(const EvtVector4C& v4) const { + + return v[0]*v4.v[0]-v[1]*v4.v[1]- + v[2]*v4.v[2]-v[3]*v4.v[3]; +} + +inline EvtVector4C& EvtVector4C::operator*=(const EvtComplex& c) { + + v[0]*=c; + v[1]*=c; + v[2]*=c; + v[3]*=c; + + return *this; +} + +inline EvtVector4C operator*(double d,const EvtVector4C& v2){ + + return EvtVector4C(v2.v[0]*d,v2.v[1]*d,v2.v[2]*d,v2.v[3]*d); +} + +inline EvtVector4C operator*(const EvtComplex& c,const EvtVector4C& v2){ + + return EvtVector4C(v2)*=c; +} + +inline EvtVector4C operator*(const EvtVector4C& v2,const EvtComplex& c){ + + return EvtVector4C(v2)*=c; +} + +inline EvtVector4C operator*(const EvtComplex& c,const EvtVector4R& v2){ + + return EvtVector4C(c*v2.get(0),c*v2.get(1),c*v2.get(2),c*v2.get(3)); +} + +inline EvtVector4C::EvtVector4C(const EvtVector4R& v1){ + + v[0]=EvtComplex(v1.get(0)); v[1]=EvtComplex(v1.get(1)); + v[2]=EvtComplex(v1.get(2)); v[3]=EvtComplex(v1.get(3)); +} + +inline EvtComplex operator*(const EvtVector4R& v1,const EvtVector4C& v2){ + + return v1.get(0)*v2.v[0]-v1.get(1)*v2.v[1]- + v1.get(2)*v2.v[2]-v1.get(3)*v2.v[3]; +} + +inline EvtComplex operator*(const EvtVector4C& v1,const EvtVector4R& v2){ + + return v1.v[0]*v2.get(0)-v1.v[1]*v2.get(1)- + v1.v[2]*v2.get(2)-v1.v[3]*v2.get(3); +} + +inline EvtComplex operator*(const EvtVector4C& v1,const EvtVector4C& v2){ + + return v1.v[0]*v2.v[0]-v1.v[1]*v2.v[1]- + v1.v[2]*v2.v[2]-v1.v[3]*v2.v[3]; +} + +inline EvtVector4C EvtVector4C::conj() const { + + return EvtVector4C(::conj(v[0]),::conj(v[1]), + ::conj(v[2]),::conj(v[3])); +} + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtVector4R.cxx b/TEvtGen/EvtGenBase/EvtVector4R.cxx new file mode 100644 index 00000000000..a5ac6678532 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtVector4R.cxx @@ -0,0 +1,252 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVector4R.cc +// +// Description: Real implementation of 4-vectors +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtVector3R.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" + +using std::ostream; + + + +EvtVector4R::EvtVector4R(double e,double p1,double p2, double p3){ + + v[0]=e; v[1]=p1; v[2]=p2; v[3]=p3; +} + +double EvtVector4R::mass() const{ + + double m2=v[0]*v[0]-v[1]*v[1]-v[2]*v[2]-v[3]*v[3]; + + if (m2>0.0) { + return sqrt(m2); + } + else{ + return 0.0; + } +} + + +EvtVector4R rotateEuler(const EvtVector4R& rs, + double alpha,double beta,double gamma){ + + EvtVector4R tmp(rs); + tmp.applyRotateEuler(alpha,beta,gamma); + return tmp; + +} + +EvtVector4R boostTo(const EvtVector4R& rs, + const EvtVector4R& p4){ + + EvtVector4R tmp(rs); + tmp.applyBoostTo(p4); + return tmp; + +} + +EvtVector4R boostTo(const EvtVector4R& rs, + const EvtVector3R& boost){ + + EvtVector4R tmp(rs); + tmp.applyBoostTo(boost); + return tmp; + +} + + + +void EvtVector4R::applyRotateEuler(double phi,double theta,double ksi){ + + double sp=sin(phi); + double st=sin(theta); + double sk=sin(ksi); + double cp=cos(phi); + double ct=cos(theta); + double ck=cos(ksi); + + double x=( ck*ct*cp-sk*sp)*v[1]+( -sk*ct*cp-ck*sp)*v[2]+st*cp*v[3]; + double y=( ck*ct*sp+sk*cp)*v[1]+(-sk*ct*sp+ck*cp)*v[2]+st*sp*v[3]; + double z=-ck*st*v[1]+sk*st*v[2]+ct*v[3]; + + v[1]=x; + v[2]=y; + v[3]=z; + +} + +ostream& operator<<(ostream& s, const EvtVector4R& v){ + + s<<"("< +#include + +class EvtVector3R; + +class EvtVector4R { + + friend EvtVector4R rotateEuler(const EvtVector4R& rs, + double alpha,double beta,double gamma); + friend EvtVector4R boostTo(const EvtVector4R& rs, + const EvtVector4R& p4); + friend EvtVector4R boostTo(const EvtVector4R& rs, + const EvtVector3R& boost); + + + inline friend EvtVector4R operator*(double d,const EvtVector4R& v2); + inline friend EvtVector4R operator*(const EvtVector4R& v2,double d); + inline friend EvtVector4R operator/(const EvtVector4R& v2,double d); + inline friend double operator*(const EvtVector4R& v1,const EvtVector4R& v2); + inline friend EvtVector4R operator+(const EvtVector4R& v1,const EvtVector4R& v2); + inline friend EvtVector4R operator-(const EvtVector4R& v1,const EvtVector4R& v2); + +public: + EvtVector4R(){} + EvtVector4R(double e,double px,double py ,double pz); + inline void set(int i,double d); + inline void set(double e,double px,double py ,double pz); + inline EvtVector4R& operator*=(double c); + inline EvtVector4R& operator/=(double c); + inline EvtVector4R& operator=(const EvtVector4R& v2); + inline EvtVector4R& operator+=(const EvtVector4R& v2); + inline EvtVector4R& operator-=(const EvtVector4R& v2); + inline double get(int i) const; + inline double cont(const EvtVector4R& v4) const; + friend std::ostream& operator<<(std::ostream& s, const EvtVector4R& v); + double mass2() const; + double mass() const; + void applyRotateEuler(double alpha,double beta,double gamma); + void applyBoostTo(const EvtVector4R& p4); + void applyBoostTo(const EvtVector3R& boost); + EvtVector4R cross(const EvtVector4R& v2); + double dot(const EvtVector4R& v2) const; + double d3mag() const; + + // Added by AJB - calculate scalars in the rest frame of the current object + double scalartripler3( const EvtVector4R& p1, const EvtVector4R& p2, + const EvtVector4R& p3 ) const; + double dotr3( const EvtVector4R& p1, const EvtVector4R& p2 ) const; + double mag2r3( const EvtVector4R& p1 ) const; + double magr3( const EvtVector4R& p1 ) const; + + +private: + + double v[4]; + + inline double Square( double x ) const { return x*x; } + +}; + + +inline EvtVector4R& EvtVector4R::operator=(const EvtVector4R& v2){ + + v[0]=v2.v[0]; + v[1]=v2.v[1]; + v[2]=v2.v[2]; + v[3]=v2.v[3]; + + return *this; +} + +inline EvtVector4R& EvtVector4R::operator+=(const EvtVector4R& v2){ + + v[0]+=v2.v[0]; + v[1]+=v2.v[1]; + v[2]+=v2.v[2]; + v[3]+=v2.v[3]; + + return *this; +} + +inline EvtVector4R& EvtVector4R::operator-=(const EvtVector4R& v2){ + + v[0]-=v2.v[0]; + v[1]-=v2.v[1]; + v[2]-=v2.v[2]; + v[3]-=v2.v[3]; + + return *this; +} + +inline double EvtVector4R::mass2() const{ + + return v[0]*v[0]-v[1]*v[1]-v[2]*v[2]-v[3]*v[3]; +} + +inline EvtVector4R operator*(double c,const EvtVector4R& v2){ + + return EvtVector4R(v2)*=c; +} + +inline EvtVector4R operator*(const EvtVector4R& v2,double c){ + + return EvtVector4R(v2)*=c; +} + +inline EvtVector4R operator/(const EvtVector4R& v2,double c){ + + return EvtVector4R(v2)/=c; +} + +inline EvtVector4R& EvtVector4R::operator*=(double c){ + + v[0]*=c; + v[1]*=c; + v[2]*=c; + v[3]*=c; + + return *this; +} + +inline EvtVector4R& EvtVector4R::operator/=(double c){ + + double cinv=1.0/c; + v[0]*=cinv; + v[1]*=cinv; + v[2]*=cinv; + v[3]*=cinv; + + return *this; +} + +inline double operator*(const EvtVector4R& v1,const EvtVector4R& v2){ + + return v1.v[0]*v2.v[0]-v1.v[1]*v2.v[1]- + v1.v[2]*v2.v[2]-v1.v[3]*v2.v[3]; +} + +inline double EvtVector4R::cont(const EvtVector4R& v4) const { + + return v[0]*v4.v[0]-v[1]*v4.v[1]- + v[2]*v4.v[2]-v[3]*v4.v[3]; +} + +inline EvtVector4R operator-(const EvtVector4R& v1,const EvtVector4R& v2){ + + return EvtVector4R(v1)-=v2; +} + +inline EvtVector4R operator+(const EvtVector4R& v1,const EvtVector4R& v2){ + + return EvtVector4R(v1)+=v2; +} + +inline double EvtVector4R::get(int i) const { + return v[i]; +} + +inline void EvtVector4R::set(int i,double d){ + + v[i]=d; +} + +inline void EvtVector4R::set(double e,double p1,double p2, double p3){ + + v[0]=e; + v[1]=p1; + v[2]=p2; + v[3]=p3; +} + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtVectorParticle.cxx b/TEvtGen/EvtGenBase/EvtVectorParticle.cxx new file mode 100644 index 00000000000..6da210d6ac7 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtVectorParticle.cxx @@ -0,0 +1,127 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVectorParticle.cc +// +// Description: Class to describe spin 1 particles +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtVectorParticle.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" + +EvtVectorParticle::~EvtVectorParticle(){} + + +void EvtVectorParticle::init(EvtId part_n,double e,double px,double py,double pz){ + + _validP4=true; + setp(e,px,py,pz); + setpart_num(part_n); + + _eps[0].set(0.0,1.0,0.0,0.0); + _eps[1].set(0.0,0.0,1.0,0.0); + _eps[2].set(0.0,0.0,0.0,1.0); + + setLifetime(); +} + +void EvtVectorParticle::init(EvtId part_n,const EvtVector4R& p4){ + + _validP4=true; + setp(p4); + setpart_num(part_n); + + _eps[0].set(0.0,1.0,0.0,0.0); + _eps[1].set(0.0,0.0,1.0,0.0); + _eps[2].set(0.0,0.0,0.0,1.0); + setLifetime(); +} + +void EvtVectorParticle::init(EvtId part_n,const EvtVector4R& p4, + const EvtVector4C & epsin1, + const EvtVector4C & epsin2, + const EvtVector4C & epsin3){ + + _validP4=true; + setp(p4); + setpart_num(part_n); + + _eps[0]=epsin1; + _eps[1]=epsin2; + _eps[2]=epsin3; + + setLifetime(); +} + + + +EvtSpinDensity EvtVectorParticle::rotateToHelicityBasis() const{ + + static EvtVector4C eplus(0.0,-1.0/sqrt(2.0),EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + static EvtVector4C ezero(0.0,0.0,0.0,1.0); + static EvtVector4C eminus(0.0,1.0/sqrt(2.0),EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + + static EvtVector4C eplusC(eplus.conj()); + static EvtVector4C ezeroC(ezero.conj()); + static EvtVector4C eminusC(eminus.conj()); + + EvtSpinDensity R; + R.setDim(3); + + for ( int i=0; i<3; i++ ) { + R.set(0,i,(eplusC)*_eps[i]); + R.set(1,i,(ezeroC)*_eps[i]); + R.set(2,i,(eminusC)*_eps[i]); + } + + return R; + +} + + +EvtSpinDensity EvtVectorParticle::rotateToHelicityBasis(double alpha, + double beta, + double gamma) const{ + + EvtVector4C eplus(0.0,-1.0/sqrt(2.0),EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + EvtVector4C ezero(0.0,0.0,0.0,1.0); + EvtVector4C eminus(0.0,1.0/sqrt(2.0),EvtComplex(0.0,-1.0/sqrt(2.0)),0.0); + + eplus.applyRotateEuler(alpha,beta,gamma); + ezero.applyRotateEuler(alpha,beta,gamma); + eminus.applyRotateEuler(alpha,beta,gamma); + + EvtSpinDensity R; + R.setDim(3); + + + for ( int i=0; i<3; i++ ) { + R.set(0,i,(eplus.conj())*_eps[i]); + R.set(1,i,(ezero.conj())*_eps[i]); + R.set(2,i,(eminus.conj())*_eps[i]); + } + + return R; + +} + + diff --git a/TEvtGen/EvtGenBase/EvtVectorParticle.hh b/TEvtGen/EvtGenBase/EvtVectorParticle.hh new file mode 100644 index 00000000000..bdcbebadcef --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtVectorParticle.hh @@ -0,0 +1,58 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVectorParticle.hh +// +// Description: Class to describe vector particles. +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVECTORPARTICLE_HH +#define EVTVECTORPARTICLE_HH + +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtParticle.hh" + +class EvtId; + +class EvtVectorParticle: public EvtParticle { + +public: + + EvtVectorParticle() {} + virtual ~EvtVectorParticle(); + + void init(EvtId part_n,double e,double px,double py,double pz); + void init(EvtId part_n,const EvtVector4R& p); + void init(EvtId part_n,const EvtVector4R& p, + const EvtVector4C&,const EvtVector4C&,const EvtVector4C&); + EvtVector4C epsParent(int i) const {return boostTo(_eps[i],this->getP4());} + EvtVector4C eps(int i) const {return _eps[i];} + EvtSpinDensity rotateToHelicityBasis() const; + EvtSpinDensity rotateToHelicityBasis(double alpha, + double beta, + double gamma) const; + +private: + + EvtVector4C _eps[3]; + + EvtVectorParticle(const EvtVectorParticle& vector); + EvtVectorParticle& operator=(const EvtVectorParticle& vector); + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/EvtdFunction.cxx b/TEvtGen/EvtGenBase/EvtdFunction.cxx new file mode 100644 index 00000000000..e741968b454 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtdFunction.cxx @@ -0,0 +1,65 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtKine.cc +// +// Description: Evaluates the Wigner d-Functions. +// +// Modification history: +// +// RYD March 14, 1999 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include "EvtGenBase/EvtdFunction.hh" +#include "EvtGenBase/EvtdFunctionSingle.hh" + + +double EvtdFunction::d(int j,int m1,int m2, double theta){ + + + int m1p=m1; + int m2p=m2; + + + int signp=1; + //make |m2p|>|m1p| + if (abs(m2p) +#include +#include +#include +#include "EvtGenBase/EvtdFunctionSingle.hh" + +EvtdFunctionSingle::EvtdFunctionSingle(){ + _j=0; + _m1=0; + _m2=0; + _coef=0; + _kmin=0; + _kmax=0; +} + + +EvtdFunctionSingle::~EvtdFunctionSingle(){ + if (_coef!=0) delete [] _coef; +} + + +void EvtdFunctionSingle::init(int j,int m1,int m2){ + + assert(abs(m2)>=abs(m1)); + assert(m2>=0); + + _j=j; + _m1=m1; + _m2=m2; + + _kmin=_m2-_m1; + _kmax=_j-_m1; + + assert(_kmin<=_kmax); + + _coef=new double[(_kmax-_kmin)/2+1]; + + int k; + + for(k=_kmin;k<=_kmax;k+=2){ + int sign=1; + if ((k-_m2+_m1)%4!=0) sign=-sign; + double tmp = fact((_j+_m2)/2)*fact((_j-_m2)/2) + *fact((_j+_m1)/2)*fact((_j-_m1)/2); + _coef[(k-_kmin)/2]=sign*sqrt(tmp)/ + (fact((_j+_m2-k)/2)*fact(k/2)*fact((_j-_m1-k)/2)*fact((k-_m2+_m1)/2)); + + } + +} + + +double EvtdFunctionSingle::d(int j,int m1,int m2, double theta){ + + assert(j==_j); + assert(m1==_m1); + assert(m2==_m2); + + double c2=cos(0.5*theta); + double s2=sin(0.5*theta); + + double d=0.0; + + int k; + for(k=_kmin;k<=_kmax;k+=2){ + d+=_coef[(k-_kmin)/2]*pow(c2,(2*_j-2*k+m2-m1)/2)*pow(s2,(2*k-m2+m1)/2); + } + + return d; + +} + + +int EvtdFunctionSingle::fact(int n){ + + assert(n>=0); + + int f=1; + + int k; + for(k=2;k<=n;k++) f*=k; + + return f; + +} + + + diff --git a/TEvtGen/EvtGenBase/EvtdFunctionSingle.hh b/TEvtGen/EvtGenBase/EvtdFunctionSingle.hh new file mode 100644 index 00000000000..ae9c3792b09 --- /dev/null +++ b/TEvtGen/EvtGenBase/EvtdFunctionSingle.hh @@ -0,0 +1,52 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech, UCSB +// +// Module: EvtGen/EvtdFunction.hh +// +// Description:Evaluation of one Wigner d-Functions +// +// Modification history: +// +// RYD August 10, 2000 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTDFUNCTIONSINGLE_HH +#define EVTDFUNCTIONSINGLE_HH + +class EvtdFunctionSingle{ + +public: + + EvtdFunctionSingle(); + ~EvtdFunctionSingle(); + + void init(int j,int m1,int m2); + + double d(int j,int m1,int m2,double theta); + +private: + + int fact(int n); + + int _j; + int _m1; + int _m2; + + double *_coef; + + + int _kmin; + int _kmax; + +}; + +#endif + diff --git a/TEvtGen/EvtGenBase/cambiaNome.C b/TEvtGen/EvtGenBase/cambiaNome.C new file mode 100644 index 00000000000..13eb345440d --- /dev/null +++ b/TEvtGen/EvtGenBase/cambiaNome.C @@ -0,0 +1,7 @@ + +void cambiaNome(){ +TSeqCollection *sec = gSystem->GetListOfFileHandlers(); +sec->Print(); +cout<< "Entries" << sec->GetEntries() << endl; +sec->Draw(); +} diff --git a/TEvtGen/EvtGenModels/EvtBBScalar.cxx b/TEvtGen/EvtGenModels/EvtBBScalar.cxx new file mode 100644 index 00000000000..b2b5d02e0f3 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBBScalar.cxx @@ -0,0 +1,459 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2003 Caltech +// +// Module: EvtGen/EvtBBScalar +// +// Description:Implementation of the decay B- -> lambda p_bar pi according to +// hep-ph/0204185, hep-ph/0211240 +// This model is intended to be applicable to all decays of the type B-> baryon baryon scalar +// +// Modification history: +// +// Jan Strube March 24, 2006 Module created +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenModels/EvtBBScalar.hh" +#include "EvtGenBase/EvtGammaMatrix.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtSpinType.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include + +using namespace std; + +const float pi = 3.14159; +const EvtComplex EvtBBScalar::I = EvtComplex(0, 1); +const EvtComplex EvtBBScalar::V_ub = EvtComplex(3.67e-3*cos(60/180*pi), 3.67e-3*cos(60/180*pi)); +const EvtComplex EvtBBScalar::V_us_star = EvtComplex(0.22, 0); +const EvtComplex EvtBBScalar::a1 = EvtComplex(1.05, 0); +const EvtComplex EvtBBScalar::V_tb = EvtComplex(0.99915, 0); +const EvtComplex EvtBBScalar::V_ts_star = EvtComplex(-0.04029-0.000813*cos(60/180*pi), -0.000813*cos(60/180*pi)); +const EvtComplex EvtBBScalar::a4 = EvtComplex(-387.3e-4, -121e-4); +const EvtComplex EvtBBScalar::a6 = EvtComplex(-555.3e-4, -121e-4); +const double EvtBBScalar::x[] = {420.96, -10485.50, 100639.97, -433916.61, 613780.15}; +const double EvtBBScalar::y[] = {292.62, -735.73}; +const double EvtBBScalar::m_s = 0.120; +const double EvtBBScalar::m_u = 0.029 * 0.120; +const double EvtBBScalar::m_b = 4.88; + + +EvtBBScalar::EvtBBScalar() + : EvtDecayAmp() + , _massRatio(0) + , _baryonMassSum(0) +{ + FormFactor dummy; + dummy.value = 0.36; + dummy.sigma1 = 0.43; + dummy.mV = 5.42; + _f1Map.insert(make_pair(string("K"), dummy)); + dummy.sigma1 = 0.70; + dummy.sigma2 = 0.27; + _f0Map.insert(make_pair(string("K"), dummy)); + dummy.value = 0.29; + dummy.sigma1 = 0.48; + dummy.sigma2 = 0.0; + dummy.mV = 5.32; + _f1Map.insert(make_pair(string("pi"), dummy)); + dummy.sigma1 = 0.76; + dummy.sigma2 = 0.28; + _f0Map.insert(make_pair(string("pi"), dummy)); +} + + + +std::string EvtBBScalar::getName(){ + return "B_TO_2BARYON_SCALAR"; +} + +EvtDecayBase* EvtBBScalar::clone(){ + return new EvtBBScalar; +} + + +void EvtBBScalar::setKnownBaryonTypes(const EvtId& baryon) { + int baryonId = EvtPDL::getStdHep(baryon); + if (EvtPDL::getStdHep(EvtPDL::getId("Lambda0")) == baryonId + or EvtPDL::getStdHep(EvtPDL::getId("anti-Lambda0")) == baryonId ) { + _baryonCombination.set(Lambda); + } else if (EvtPDL::getStdHep(EvtPDL::getId("p+")) == baryonId + or EvtPDL::getStdHep(EvtPDL::getId("anti-p-")) == baryonId ) { + _baryonCombination.set(Proton); + } else if (EvtPDL::getStdHep(EvtPDL::getId("n0")) == baryonId + or EvtPDL::getStdHep(EvtPDL::getId("anti-n0")) == baryonId) { + _baryonCombination.set(Neutron); + } else if (EvtPDL::getStdHep(EvtPDL::getId("Sigma0")) == baryonId + or EvtPDL::getStdHep(EvtPDL::getId("anti-Sigma0")) == baryonId ) { + _baryonCombination.set(Sigma0); + } else if (EvtPDL::getStdHep(EvtPDL::getId("Sigma-")) == baryonId + or EvtPDL::getStdHep(EvtPDL::getId("anti-Sigma+")) == baryonId ) { + _baryonCombination.set(Sigma_minus); + } else if (EvtPDL::getStdHep(EvtPDL::getId("Xi0")) == baryonId + or EvtPDL::getStdHep(EvtPDL::getId("anti-Xi0")) == baryonId) { + _baryonCombination.set(Xi0); + } else if (EvtPDL::getStdHep(EvtPDL::getId("Xi-")) == baryonId + or EvtPDL::getStdHep(EvtPDL::getId("anti-Xi+")) == baryonId) { + _baryonCombination.set(Xi_minus); + } else { + report(ERROR, "EvtGen") + << "EvtBBScalar::init: Don't know what to do with this type as the first or second baryon\n"; + exit(2); + } +} + +const double EvtBBScalar::baryonF1F2(double t) { + // check for known form factors for combination of baryons + if (_baryonCombination.test(Lambda) and _baryonCombination.test(Proton)) { + return -sqrt(1.5) * G_p(t); + } else if (_baryonCombination.test(Sigma0) and _baryonCombination.test(Proton)) { + return -sqrt(0.5) * (G_p(t) + 2* G_n(t)); + } else if (_baryonCombination.test(Sigma_minus) and _baryonCombination.test(Neutron)) { + return -G_p(t) - 2* G_n(t); + } else if (_baryonCombination.test(Xi0) and _baryonCombination.test(Sigma_minus)) { + return G_p(t) - G_n(t); + } else if (_baryonCombination.test(Xi_minus) and _baryonCombination.test(Sigma0)) { + return sqrt(0.5) * (G_p(t) - G_n(t)); + } else if (_baryonCombination.test(Xi_minus) and _baryonCombination.test(Lambda)) { + return sqrt(1.5) * (G_p(t) + G_n(t)); + } else { + report(ERROR, "EvtGen") + << "EvtBBScalar::baryonF1F2: Don't know what to do with this type as the first or second baryon\n"; + exit(2); + } +} + +const double EvtBBScalar::formFactorFit(double t, const vector& params) { + static const double gamma = 2.148; + static const double Lambda_0 = 0.3; + double result = 0; + for (size_t i=0; i(i+1)); + } + return result * pow(log(t/pow(Lambda_0, 2)), -gamma); +} + + +const double EvtBBScalar::G_p(double t) { + const vector v_x(x, x+5); + return formFactorFit(t, v_x); +} + + +const double EvtBBScalar::G_n(double t) { + const vector v_y(y, y+2); + return -formFactorFit(t, v_y); +} + + + +const double EvtBBScalar::baryon_gA(double t) { + // check for known form factors for combination of baryons + if (_baryonCombination.test(Lambda) and _baryonCombination.test(Proton)) { + return -1/sqrt(6.) * (D_A(t) + 3*F_A(t)); + } else if (_baryonCombination.test(Sigma0) and _baryonCombination.test(Proton)) { + return 1/sqrt(2.) * (D_A(t) - F_A(t)); + } else if (_baryonCombination.test(Sigma_minus) and _baryonCombination.test(Neutron)) { + return D_A(t) - F_A(t); + } else if (_baryonCombination.test(Xi0) and _baryonCombination.test(Sigma_minus)) { + return D_A(t) + F_A(t); + } else if (_baryonCombination.test(Xi_minus) and _baryonCombination.test(Sigma0)) { + return 1/sqrt(2.) * (D_A(t) + F_A(t)); + } else if (_baryonCombination.test(Xi_minus) and _baryonCombination.test(Lambda)) { + return -1 / sqrt(6.) * (D_A(t) - 3*F_A(t)); + } else { + report(ERROR, "EvtGen") + << "EvtBBScalar::baryon_gA: Don't know what to do with this type as the first or second baryon\n"; + exit(2); + } +} + + +const double EvtBBScalar::baryon_gP(double t) { + // check for known form factors for combination of baryons + if (_baryonCombination.test(Lambda) and _baryonCombination.test(Proton)) { + return -1/sqrt(6.) * (D_P(t) + 3*F_P(t)); + } else if (_baryonCombination.test(Sigma0) and _baryonCombination.test(Proton)) { + return 1/sqrt(2.) * (D_P(t) - F_P(t)); + } else if (_baryonCombination.test(Sigma_minus) and _baryonCombination.test(Neutron)) { + return D_P(t) - F_P(t); + } else if (_baryonCombination.test(Xi0) and _baryonCombination.test(Sigma_minus)) { + return D_P(t) + F_P(t); + } else if (_baryonCombination.test(Xi_minus) and _baryonCombination.test(Sigma0)) { + return 1/sqrt(2.) * (D_P(t) + F_P(t)); + } else if (_baryonCombination.test(Xi_minus) and _baryonCombination.test(Lambda)) { + return -1 / sqrt(6.) * (D_P(t) - 3*F_P(t)); + } else { + report(ERROR, "EvtGen") + << "EvtBBScalar::baryon_gP: Don't know what to do with this type as the first or second baryon\n"; + exit(2); + } +} + +const double EvtBBScalar::baryon_fS(double t) { + // check for known form factors for combination of baryons + if (_baryonCombination.test(Lambda) and _baryonCombination.test(Proton)) { + return -1/sqrt(6.) * (D_S(t) + 3*F_S(t)); + } else if (_baryonCombination.test(Sigma0) and _baryonCombination.test(Proton)) { + return 1/sqrt(2.) * (D_S(t) - F_S(t)); + } else if (_baryonCombination.test(Sigma_minus) and _baryonCombination.test(Neutron)) { + return D_S(t) - F_S(t); + } else if (_baryonCombination.test(Xi0) and _baryonCombination.test(Sigma_minus)) { + return D_S(t) + F_S(t); + } else if (_baryonCombination.test(Xi_minus) and _baryonCombination.test(Sigma0)) { + return 1/sqrt(2.) * (D_S(t) + F_S(t)); + } else if (_baryonCombination.test(Xi_minus) and _baryonCombination.test(Lambda)) { + return -1 / sqrt(6.) * (D_S(t) - 3*F_S(t)); + } else { + report(ERROR, "EvtGen") + << "EvtBBScalar::baryon_fS: Don't know what to do with this type as the first or second baryon\n"; + exit(2); + } +} + + +const double EvtBBScalar::D_A(double t) { + const double d_tilde[] = {x[0]-1.5*y[0], -478}; + const vector v_d_tilde(d_tilde, d_tilde+2); + return formFactorFit(t, v_d_tilde); +} + + +const double EvtBBScalar::F_A(double t) { + const double f_tilde[] = {2./3*x[0]+0.5*y[0], -478}; + const vector v_f_tilde(f_tilde, f_tilde+2); + return formFactorFit(t, v_f_tilde); +} + + +const double EvtBBScalar::D_P(double t) { + const double d_bar[] = {1.5*y[0]* _massRatio, /*-952*/0}; + const vector v_d_bar(d_bar, d_bar+2); + return formFactorFit(t, v_d_bar); +} + + +const double EvtBBScalar::F_P(double t) { + const double f_bar[] = {(x[0]-0.5*y[0]) * _massRatio, /*-952*/0}; + const vector v_f_bar(f_bar, f_bar+2); + return formFactorFit(t, v_f_bar); +} + + +const double EvtBBScalar::D_S(double t) { + return -1.5 * _massRatio * G_n(t); +} + + +const double EvtBBScalar::F_S(double t) { + return (G_p(t) + 0.5*G_n(t)) * _massRatio; +} + + +const double EvtBBScalar::baryon_hA(double t) { + return (1/_massRatio*baryon_gP(t)-baryon_gA(t))*pow(_baryonMassSum, 2)/t; +} + + +void EvtBBScalar::init() { + // no arguments, daughter lambda p_bar pi + // charge conservation is checked by base class + checkNArg(0); + checkNDaug(3); + checkSpinParent(EvtSpinType::SCALAR); + checkSpinDaughter(0, EvtSpinType::DIRAC); + checkSpinDaughter(1, EvtSpinType::DIRAC); + checkSpinDaughter(2, EvtSpinType::SCALAR); + EvtId baryon1 = getDaug(0); + EvtId baryon2 = getDaug(1); + EvtId scalar = getDaug(2); + int scalarId = EvtPDL::getStdHep(scalar); + + // Different form factors for the B-pi or B-K transition. + if ( scalarId == EvtPDL::getStdHep(EvtPDL::getId("pi+")) + or scalarId == EvtPDL::getStdHep(EvtPDL::getId("pi-")) + or scalarId == EvtPDL::getStdHep(EvtPDL::getId("pi0"))) { + _scalarType = "pi"; + } else if (scalarId == EvtPDL::getStdHep(EvtPDL::getId("K+")) + or scalarId == EvtPDL::getStdHep(EvtPDL::getId("K-")) + or scalarId == EvtPDL::getStdHep(EvtPDL::getId("K0")) + or scalarId == EvtPDL::getStdHep(EvtPDL::getId("anti-K0"))) { + _scalarType = "K"; + } else { + report(ERROR, "EvtGen") + << "EvtBBScalar::init: Can only deal with Kaons or pions as the third particle\n" + << "\tFound: " << scalarId << endl; + exit(2); + } + // check for known particles + setKnownBaryonTypes(baryon1); + setKnownBaryonTypes(baryon2); + double mass1 = EvtPDL::getMass(baryon1); + double mass2 = EvtPDL::getMass(baryon2); + // This whole model deals only with baryons that differ in s-u + if (mass1 > mass2) + _massRatio = (mass1-mass2) / (m_s-m_u); + else + _massRatio = (mass2-mass1) / (m_s-m_u); + _baryonMassSum = mass1 + mass2; +} + + +// initialize phasespace and calculate the amplitude +void EvtBBScalar::decay(EvtParticle* p) { + p->initializePhaseSpace(getNDaug(), getDaugs()); + EvtVector4R B_Momentum = p->getP4Lab(); + EvtDiracParticle* theLambda = dynamic_cast(p->getDaug(0)); + EvtDiracParticle* theAntiP = dynamic_cast(p->getDaug(1)); + EvtScalarParticle* theScalar = dynamic_cast(p->getDaug(2)); + EvtVector4R scalarMomentum = theScalar->getP4Lab(); + + // The amplitude consists of three matrix elements. These will be calculated one by one here. + + // loop over all possible spin states + for (int i=0; i<2; ++i) { + EvtDiracSpinor lambdaPol = theLambda->spParent(i); + for (int j=0; j<2; ++j) { + EvtDiracSpinor antiP_Pol = theAntiP->spParent(j); + EvtVector4C theAmplitudePartA = amp_A(B_Momentum, scalarMomentum); + EvtComplex amplitude; + for (int index=0; index<4; ++index) { + amplitude += theAmplitudePartA.get(index) + * ( const_B*amp_B(theLambda, lambdaPol, theAntiP, antiP_Pol, index) + + const_C*amp_C(theLambda, lambdaPol, theAntiP, antiP_Pol, index) ); + } + vertex(i, j, amplitude); + } + } +} + +void EvtBBScalar::initProbMax() +{ + // setProbMax(1); + setProbMax(0.2); // found by trial and error +} + +// Form factor f1 for B-pi transition +const double EvtBBScalar::B_pi_f1(double t) +{ + FormFactor f = _f1Map[_scalarType]; + double mv2 = f.mV*f.mV; + return f.value / ((1-t/mv2) * (1-f.sigma1*t/mv2+f.sigma2*t*t/mv2/mv2)); +} + +// Form factor f0 for B-pi transition +const double EvtBBScalar::B_pi_f0(double t) +{ + FormFactor f = _f0Map[_scalarType]; + double mv2 = f.mV*f.mV; + return f.value / (1 - f.sigma1*t/mv2 + f.sigma2*t*t/mv2/mv2); +} + + +// constants of the B and C parts of the amplitude +const EvtComplex EvtBBScalar::const_B = V_ub*V_us_star*a1 - V_tb*V_ts_star*a4; +const EvtComplex EvtBBScalar::const_C = 2*a6*V_tb*V_ts_star; + +// part A of the amplitude, see hep-ph/0204185 +const EvtVector4C +EvtBBScalar::amp_A(const EvtVector4R& p4B, const EvtVector4R& p4Scalar) +{ + double mB2 = p4B.mass2(); + double mScalar2 = p4Scalar.mass2(); + double t = (p4B-p4Scalar).mass2(); + return ((p4B+p4Scalar) - (mB2-mScalar2)/t * (p4B-p4Scalar)) * B_pi_f1(t) + + (mB2-mScalar2)/t * (p4B-p4Scalar) * B_pi_f0(t); +} + +// part B of the amplitude, Vector and Axial Vector parts +const EvtComplex +EvtBBScalar::amp_B(const EvtDiracParticle* baryon1, const EvtDiracSpinor& b1Pol + , const EvtDiracParticle* baryon2, const EvtDiracSpinor& b2Pol + , int index) +{ + return amp_B_vectorPart(baryon1, b1Pol, baryon2, b2Pol, index) + - amp_B_axialPart(baryon1, b1Pol, baryon2, b2Pol, index); +} + + +const EvtComplex +EvtBBScalar::amp_B_vectorPart(const EvtDiracParticle* baryon1, const EvtDiracSpinor& b1Pol + , const EvtDiracParticle* baryon2, const EvtDiracSpinor& b2Pol + , int index) +{ + double t = (baryon1->getP4Lab() + baryon2->getP4Lab()).mass2(); + EvtGammaMatrix gamma; + for (int i=0; i<4; ++i) { + gamma += EvtTensor4C::g().get(index, i) * EvtGammaMatrix::g(i); + } + // The F2 contribution that is written out in the paper is neglected here. + // see hep-ph/0204185 + return b1Pol.adjoint()* (gamma*baryonF1F2(t) *b2Pol); +} + +const EvtComplex +EvtBBScalar::amp_B_axialPart(const EvtDiracParticle* baryon1, const EvtDiracSpinor& b1Pol + , const EvtDiracParticle* baryon2, const EvtDiracSpinor& b2Pol + , int index) +{ + EvtGammaMatrix gamma; + for (int i=0; i<4; ++i) { + gamma += EvtTensor4C::g().get(index, i) * EvtGammaMatrix::g(i); + } + double t = (baryon1->getP4Lab() + baryon2->getP4Lab()).mass2(); + double mSum = baryon1->mass() + baryon2->mass(); + EvtVector4C momentum_upper = (baryon1->getP4Lab()+baryon2->getP4Lab()); + EvtVector4C momentum; + for (int mu=0; mu<0; ++mu) { + EvtComplex dummy; + for (int i=0; i<4; ++i) { + dummy += EvtTensor4C::g().get(index, i)*momentum_upper.get(i); + } + momentum.set(mu, dummy); + } + return b1Pol.adjoint() * (((baryon_gA(t) * gamma + + EvtGammaMatrix::id()*baryon_hA(t)/mSum*momentum.get(index)) + * EvtGammaMatrix::g5()) * b2Pol); +} + + +// part C of the amplitude, Scalar and Pseudoscalar parts +const EvtComplex +EvtBBScalar::amp_C(const EvtDiracParticle* baryon1, const EvtDiracSpinor& b1Pol + , const EvtDiracParticle* baryon2, const EvtDiracSpinor& b2Pol + , int index) +{ + EvtVector4C baryonSumP4_upper = baryon1->getP4Lab() + baryon2->getP4Lab(); + EvtVector4C baryonSumP4; + for (int mu=0; mu<4; ++mu) { + EvtComplex dummy; + for (int i=0; i<4; ++i) { + dummy += EvtTensor4C::g().get(mu, i) * baryonSumP4_upper.get(i); + } + baryonSumP4.set(mu, dummy); + } + double t = (baryon1->getP4Lab() + baryon2->getP4Lab()).mass2(); + return baryonSumP4.get(index)/(m_b-m_u)*(amp_C_scalarPart(b1Pol, b2Pol, t) + amp_C_pseudoscalarPart(b1Pol, b2Pol, t)); +} + + +const EvtComplex +EvtBBScalar::amp_C_scalarPart(const EvtDiracSpinor& b1Pol, const EvtDiracSpinor& b2Pol, double t) +{ + return baryon_fS(t) * b1Pol.adjoint()*b2Pol; +} + +const EvtComplex +EvtBBScalar::amp_C_pseudoscalarPart(const EvtDiracSpinor& b1Pol, const EvtDiracSpinor& b2Pol, double t) +{ + return baryon_gP(t) * b1Pol.adjoint()*(EvtGammaMatrix::g5()*b2Pol); +} + diff --git a/TEvtGen/EvtGenModels/EvtBBScalar.hh b/TEvtGen/EvtGenModels/EvtBBScalar.hh new file mode 100644 index 00000000000..98fff12222d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBBScalar.hh @@ -0,0 +1,143 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2003 Caltech +// +// Module: EvtGen/EvtBBScalar +// +// Description:Implementation of the decay B- -> lambda p_bar pi according to +// hep-ph/0204185, hep-ph/0211240 +// This model is intended to be applicable to all decays of the type B-> baryon baryon scalar +// +// Modification history: +// +// Jan Strube March 24th, 2006 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBBSCALAR_HH +#define EVTBBSCALAR_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtScalarParticle.hh" +#include "EvtGenBase/EvtDiracParticle.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtVector4C.hh" + +#include +#include +#include +#include + +struct FormFactor { + double value; + double sigma1; + double sigma2; + double mV; +}; + +enum Baryons { + Lambda, Proton, Neutron, Sigma0, Sigma_minus, Xi0, Xi_minus, nBaryons +}; + + +class EvtBBScalar : public EvtDecayAmp { + +public: + EvtBBScalar(); + std::string getName(); + EvtDecayBase* clone(); + void decay(EvtParticle* p); + void init(); + void initProbMax(); + +private: + // used values of constants + static const EvtComplex I; + static const EvtComplex V_ub; + static const EvtComplex V_us_star; + static const EvtComplex a1; + static const EvtComplex V_tb; + static const EvtComplex V_ts_star; + static const EvtComplex a4; + static const EvtComplex a6; + + // used parameters in the calculation of the magnetic form factors + static const double x[]; + static const double y[]; + // quark masses as used in the model + static const double m_s; + static const double m_u; + static const double m_b; + + // used to choose the right value for the form factor depending on the type of scalar + std::string _scalarType; + std::map _f0Map; + std::map _f1Map; + + // only consider F1+F2 here + std::bitset _baryonCombination; + void setKnownBaryonTypes(const EvtId& baryon); + + const double B_pi_f1(double t); + const double B_pi_f0(double t); + const double baryonF1F2(double t); + const double G_p(double t); + const double G_n(double t); + + const double baryon_gA(double t); + const double baryon_hA(double t); + const double baryon_gP(double t); + const double baryon_fS(double t); + + const double D_A(double t); + const double F_A(double t); + const double D_P(double t); + const double F_P(double t); + const double D_S(double t); + const double F_S(double t); + + // (mB1 - mB2)/(mq1 - mq1) + double _massRatio; + double _baryonMassSum; + const double formFactorFit(double t, const std::vector& params); + + static const EvtComplex const_B; + static const EvtComplex const_C; + const EvtVector4C + amp_A(const EvtVector4R& p4B, const EvtVector4R& p4Scalar); + const EvtComplex + amp_B(const EvtDiracParticle* baryon1, const EvtDiracSpinor& b1Pol + , const EvtDiracParticle* baryon2, const EvtDiracSpinor& b2Pol + , int index); + const EvtComplex + amp_B_vectorPart(const EvtDiracParticle* baryon1, const EvtDiracSpinor& b1Pol + , const EvtDiracParticle* baryon2, const EvtDiracSpinor& b2Pol + , int index); + const EvtComplex + amp_B_axialPart(const EvtDiracParticle* baryon1, const EvtDiracSpinor& b1Pol + , const EvtDiracParticle* baryon2, const EvtDiracSpinor& b2Pol + , int index); + const EvtComplex + amp_C(const EvtDiracParticle* baryon1, const EvtDiracSpinor& b1Pol + , const EvtDiracParticle* baryon2, const EvtDiracSpinor& b2Pol + , int index); + const EvtComplex + amp_C_scalarPart(const EvtDiracSpinor& b1Pol, const EvtDiracSpinor& b2Pol, double t); + const EvtComplex + amp_C_pseudoscalarPart(const EvtDiracSpinor& b1Pol, const EvtDiracSpinor& b2Pol, double t); + + // initialize phasespace and calculate the amplitude for one (i=0,1) state of the photon + EvtComplex calcAmpliude(const EvtParticle* p, const unsigned int polState); +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtBHadronic.cxx b/TEvtGen/EvtGenModels/EvtBHadronic.cxx new file mode 100644 index 00000000000..2520391a284 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBHadronic.cxx @@ -0,0 +1,283 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtBHadronic.cc +// +// Description: Model for hadronic B decays. Uses naive factorization. +// +// Modification history: +// +// RYD June 14, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenModels/EvtISGW2FF.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtISGW2FF.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenModels/EvtBHadronic.hh" +#include "EvtGenBase/EvtReport.hh" +#include +using std::endl; + +EvtBHadronic::~EvtBHadronic() {} + +std::string EvtBHadronic::getName(){ + + return "BHADRONIC"; + +} + + +EvtDecayBase* EvtBHadronic::clone(){ + + return new EvtBHadronic; + +} + + +void EvtBHadronic::init(){ + + // check that there are 2 argument + checkNArg(2); + + +} + +void EvtBHadronic::decay( EvtParticle *p){ + + //added by Lange Jan4,2000 + static EvtId B0=EvtPDL::getId("B0"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D1P10=EvtPDL::getId("D_10"); + + static EvtISGW2FF ffmodel; + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtVector4R p4[MAX_DAUG]; + double m; + + m = p->mass(); + + + int i,j; + + for ( i=0; igetDaug(i)->getP4(); + } + + int bcurrent,wcurrent; + int nbcurrent=0; + int nwcurrent=0; + + bcurrent=(int)getArg(0); + wcurrent=(int)getArg(1); + + EvtVector4C jb[5],jw[5]; + EvtTensor4C g,tds; + + EvtVector4R p4b; + p4b.set(p->mass(),0.0,0.0,0.0); + + EvtVector4R q; + double q2; + + EvtComplex ep_meson_bb[5]; + double f,gf,ap,am; + double fp,fm; + double hf,kf,bp,bm; + EvtVector4R pp,pm; + EvtVector4C ep_meson_b[5]; + + switch (bcurrent) { + + // D0 + case 1: + q=p4b-p4[0]; + q2=q*q; + nbcurrent=1; + ffmodel.getscalarff(B0,D0,EvtPDL::getMeanMass(D0), + EvtPDL::getMeanMass(getDaugs()[1]),&fp,&fm); + jb[0]=EvtVector4C(fp*(p4b+p4[0])-fm*q); + break; + // D* + case 2: + q=p4b-p4[0]; + q2=q*q; + nbcurrent=3; + ffmodel.getvectorff(B0,DST0,EvtPDL::getMeanMass(DST0),q2,&f,&gf,&ap,&am); + + g.setdiag(1.0,-1.0,-1.0,-1.0); + tds = -f*g + -ap*(directProd(p4b,p4b)+directProd(p4b,p4[0])) + -gf*EvtComplex(0.0,1.0)*dual(directProd(p4[0]+p4b,p4b-p4[0])) + -am*((directProd(p4b,p4b)-directProd(p4b,p4[0]))); + jb[0]=tds.cont1(p->getDaug(0)->epsParent(0).conj()); + jb[1]=tds.cont1(p->getDaug(0)->epsParent(1).conj()); + jb[2]=tds.cont1(p->getDaug(0)->epsParent(2).conj()); + break; + // D1 + case 3: + q=p4b-p4[0]; + q2=q*q; + nbcurrent=3; + ffmodel.getvectorff(B0,D3P10,EvtPDL::getMeanMass(D3P10),q2,&f,&gf,&ap,&am); + + g.setdiag(1.0,-1.0,-1.0,-1.0); + tds = -f*g + -ap*(directProd(p4b,p4b)+directProd(p4b,p4[0])) + -gf*EvtComplex(0.0,1.0)*dual(directProd(p4[0]+p4b,p4b-p4[0])) + -am*((directProd(p4b,p4b)-directProd(p4b,p4[0]))); + jb[0]=tds.cont1(p->getDaug(0)->epsParent(0).conj()); + jb[1]=tds.cont1(p->getDaug(0)->epsParent(1).conj()); + jb[2]=tds.cont1(p->getDaug(0)->epsParent(2).conj()); + + break; + // D2* + case 4: + q=p4b-p4[0]; + q2=q*q; + nbcurrent=5; + ffmodel.gettensorff(B0,D3P20,EvtPDL::getMeanMass(D3P20),q2,&hf,&kf,&bp,&bm); + g.setdiag(1.0,-1.0,-1.0,-1.0); + + ep_meson_b[0] = ((p->getDaug(0)->epsTensorParent(0)).cont2(p4b)).conj(); + ep_meson_b[1] = ((p->getDaug(0)->epsTensorParent(1)).cont2(p4b)).conj(); + ep_meson_b[2] = ((p->getDaug(0)->epsTensorParent(2)).cont2(p4b)).conj(); + ep_meson_b[3] = ((p->getDaug(0)->epsTensorParent(3)).cont2(p4b)).conj(); + ep_meson_b[4] = ((p->getDaug(0)->epsTensorParent(4)).cont2(p4b)).conj(); + + pp=p4b+p4[0]; + pm=p4b-p4[0]; + + ep_meson_bb[0]=ep_meson_b[0]*(p4b); + ep_meson_bb[1]=ep_meson_b[1]*(p4b); + ep_meson_bb[2]=ep_meson_b[2]*(p4b); + ep_meson_bb[3]=ep_meson_b[3]*(p4b); + ep_meson_bb[4]=ep_meson_b[4]*(p4b); + + jb[0]=EvtComplex(0.0,(1.0)*hf)*dual(directProd(pp,pm)).cont2(ep_meson_b[0]) + -kf*ep_meson_b[0] + -bp*ep_meson_bb[0]*pp-bm*ep_meson_bb[0]*pm; + + jb[1]=EvtComplex(0.0,(1.0)*hf)*dual(directProd(pp,pm)).cont2(ep_meson_b[1]) + -kf*ep_meson_b[1] + -bp*ep_meson_bb[1]*pp-bm*ep_meson_bb[1]*pm; + + jb[2]=EvtComplex(0.0,(1.0)*hf)*dual(directProd(pp,pm)).cont2(ep_meson_b[2]) + -kf*ep_meson_b[2] + -bp*ep_meson_bb[2]*pp-bm*ep_meson_bb[2]*pm; + + jb[3]=EvtComplex(0.0,(1.0)*hf)*dual(directProd(pp,pm)).cont2(ep_meson_b[3]) + -kf*ep_meson_b[3] + -bp*ep_meson_bb[3]*pp-bm*ep_meson_bb[3]*pm; + + jb[4]=EvtComplex(0.0,(1.0)*hf)*dual(directProd(pp,pm)).cont2(ep_meson_b[4]) + -kf*ep_meson_b[4] + -bp*ep_meson_bb[4]*pp-bm*ep_meson_bb[4]*pm; + break; + // D_0* + case 5: + q=p4b-p4[0]; + q2=q*q; + double f,gf,ap,am; + nbcurrent=3; + ffmodel.getvectorff(B0,D1P10,EvtPDL::getMeanMass(D1P10),q2,&f,&gf,&ap,&am); + g.setdiag(1.0,-1.0,-1.0,-1.0); + tds = -f*g + -ap*(directProd(p4b,p4b)+directProd(p4b,p4[0])) + +gf*EvtComplex(0.0,1.0)*dual(directProd(p4[0]+p4b,p4b-p4[0])) + -am*((directProd(p4b,p4b)-directProd(p4b,p4[0]))); + jb[0]=tds.cont1(p->getDaug(0)->epsParent(0).conj()); + jb[1]=tds.cont1(p->getDaug(0)->epsParent(1).conj()); + jb[2]=tds.cont1(p->getDaug(0)->epsParent(2).conj()); + break; + // D_1 + case 6: + q=p4b-p4[0]; + q2=q*q; + nbcurrent=1; + ffmodel.getscalarff(B0,D3P00,EvtPDL::getMeanMass(D3P00),q2,&fp,&fm); + jb[0]=fp*(p4b+p4[0])+fm*q; + break; + default: + report(ERROR,"EvtGen")<<"In EvtBHadronic, unknown hadronic current."<getDaug(getNDaug()-1)->epsParent(0); + jw[1]=norm*p->getDaug(getNDaug()-1)->epsParent(1); + jw[2]=norm*p->getDaug(getNDaug()-1)->epsParent(2); + break; + + + default: + report(ERROR,"EvtGen")<<"In EvtBHadronic, unknown W current."<-- 3pions decay generator +C Its is composed of the following subroutines: +C +C [*] EVTHowToUse +C This is an How To Use routine where one may find the +C implementation of the time dependance: That is to +C say that it shows how the output of the routine is +C supposed to be used in the mind of the authors. +C +C=================================================================== +C [0] EVT3pions +C The routine to be called. Note that on the first call +C some initialization will be made, in particular the +C computation of a normalization factor designed to help +C the subsequent time-dependent generation of events. +C The normalisation done inside EVT3pions is such that +C at the level of the time implementation, the maximum +C time-dependant weight is unity : nothing is to be +C computed to generate unity-weight events. The exact +C meaning of the above is made explicit in the HowToUse +C routine. +C [1] first_step +C Generation of the kinematics of the 3 pions +C It uses the function evtranf which is a random number +C generator providing an uniform distribution +C of Real*4 random number between 0 and 1 +C [2] compute +C return the amplitudes of the B0 -->-- 3pions +C and of the B0_bar -->-- 3pions +C corrected for the generation mechanism +C The notations used are the ones of the paper of +C A. Snyder and H. Quinn [Phys.Rev.D48 (1993) 2139] +C [3] BreitWigner +C compute the Breit-Wigner of the contributing rho s +C taking into account the cosine term linked to the +C zero-helicity of the rho s. There is three forms of +C Breit-Wigners available. The first one is the simple +C non-relativistic form, while the second and third +C ones are more involved relativistic expressions which +C in addition incorporate the contributions of three +C rho resonances [rho(770:1450:1700)]. The parameters +C used are the ones resulting from the ALEPH analysis +C which might be found in CERN-PPE:97013 (submitted to +C Zeitschrift für Physik C). The two parametrizations +C of the relativistic Breit-Wigners are the ones of +C Kuhn-SantaMaria [default] and of Gounaris-Sakurai. +C The default setting is the non-relativistic Breit- +C Wigner form. +C [4] Set_constants +C Set the constants values, from the pion mass to the +C penguin contributions. It is called by EVT3pions +C +C And other routines which do not deserve comment here. +C=================================================================== +c +c call EvtHowToUse +c Stop +c End + + subroutine EvtHowToUse + + Implicit none + Real*8 alphaCP + Integer iset,number,i,j,jset,N_gener,N_asked + Real*8 p_pi_plus(4),p_pi_minus(4),p_gamma_1(4),p_gamma_2(4) + Real*8 q_pi_plus(4),q_pi_minus(4),q_gamma_1(4),q_gamma_2(4) + Real*8 CPweight + Real*8 Real_B0,Imag_B0,Real_B0bar,Imag_B0bar + Real*8 t3pions,ttag,t,Weight,Weight_max + Real*8 AB0,AB0bar,Ainter,xd + Real*8 m_rhop_2,m_rhom_2 + Real*4 Evtranf,Tag + Real*8 Kin_moy,Kin_moy2,Kin,Lambda + + alphaCP = 0.4 + Lambda = Dsin(2.*alphaCP) + Kin_moy =0. + Kin_moy2 =0. + N_gener =0 + N_asked =100000 + + weight_max = 1.0 + +c xd is not needed by the generator but by the time-dependant +C sector of the general BaBar Generator. + xd = 0.71 + +c run : Simulation of the Anders Ryd Generator + + Do number=1,N_asked ! weighted events as generated here + + If(number.eq.1) then + iset=10000 ! 10^4 events are used to normalize amplitudes + Else + iset=0 ! iset must be reset to zero after the first call + End If + +c Here is the call to EVT3pions !!!!!!!!!!!!!!!!!!!!!!!!! +c communication of data is done by argument only <<<<<<<< + call EVT3pions( + + alphaCP,iset, + + p_pi_plus,p_pi_minus,p_gamma_1,p_gamma_2, + + Real_B0,Imag_B0,Real_B0bar,Imag_B0bar) + +C that is it !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +c what follows is just to show how the ouput of EVT3pions +C should be used at the time dependant level. +c Decay time of the B->-3 pions + 1 Continue + t3pions=-Alog(Evtranf()) + If(t3pions.gt.10.) Go to 1 +c Decay time of the tagging B + 2 Continue + ttag =-Alog(Evtranf()) + If(ttag .gt.10.) Go to 2 +c time-difference between the 3pi decay and the tagging decay + t=t3pions-ttag +c select the Tag + Tag =evtranf() +C get the relevant quantities + AB0 = Real_B0 **2 + Imag_B0 **2 + AB0bar= Real_B0bar**2 + Imag_B0bar**2 + Ainter= Real_B0*Imag_B0bar - Imag_B0*Real_B0bar +c generate acording to the tag + If(Tag.gt.0.5) Then + +c a B0bar tag => at t3pions=ttag the decay is one from a B0 + Weight= AB0 *Dcos(xd*t/2.D+00)**2 + + + AB0bar*Dsin(xd*t/2.D+00)**2 + + - Ainter*Dsin(xd*t ) + + Else + +c a B0 tag => at t3pions=ttag the decay is one from a B0bar + Weight= AB0bar*Dcos(xd*t/2.D+00)**2 + + + AB0 *Dsin(xd*t/2.D+00)**2 + + + Ainter*Dsin(xd*t ) + + End If +c Print*,'weight',weight + If(Weight.Gt.evtranf()) Then +c Print*,'unweighted events' +c---------------------------------------------------------------------------- +c unweighted event production +c---------------------------------------------------------------------------- + N_gener=N_gener+1 +C here is just a Dalitz plot and a few prints + + m_rhop_2=(p_pi_plus (4)+p_gamma_1(4)+p_gamma_2(4))**2 + m_rhom_2=(p_pi_minus(4)+p_gamma_1(4)+p_gamma_2(4))**2 + do j=1,3 + m_rhop_2=m_rhop_2-(p_pi_plus (j)+p_gamma_1(j)+p_gamma_2(j))**2 + m_rhom_2=m_rhom_2-(p_pi_minus(j)+p_gamma_1(j)+p_gamma_2(j))**2 + end do + +c here is a check that weight_max is one + + If(Weight.gt.Weight_max) Then + Weight_max=Weight + Print*,' overweighted event found at weight = ',Weight_max + End If + +c here is an example of use of the iset<0 option. +c One does not want to generate a new event but just to +c compute the matrix element of the CP conjugate event: +c the example provided below uses the Kin variable, but +c this kind of facility will be very usefull for other +c types of applications. For example, to deal with events +c in a likelihood analysis, one needs to compute matrix +c elements, and it would be nice to be able to do that from +c the BaBar generator itself, to be sure that the Physics +c is the same. + + q_pi_plus (4)= p_pi_minus(4) + q_pi_minus(4)= p_pi_plus (4) + q_gamma_1 (4)= p_gamma_1 (4) + q_gamma_2 (4)= p_gamma_2 (4) + + do i=1,3 + q_pi_plus (i)= - p_pi_minus(i) + q_pi_minus(i)= - p_pi_plus (i) + q_gamma_1 (i)= - p_gamma_1 (i) + q_gamma_2 (i)= - p_gamma_2 (i) + end do + +c Here is the call to EVT3pions !!!!!!!!!!!!!!!!!!!!!!!!! +c with the iset<0 option + + jset=-1 + + call EVT3pions( + + alphaCP,jset, + + q_pi_plus,q_pi_minus,q_gamma_1,q_gamma_2, + + Real_B0,Imag_B0,Real_B0bar,Imag_B0bar) +c that is it !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +C get the relevant quantities + AB0 = Real_B0 **2 + Imag_B0 **2 + AB0bar= Real_B0bar**2 + Imag_B0bar**2 + Ainter= Real_B0*Imag_B0bar - Imag_B0*Real_B0bar + + If(Tag.lt.0.5) Then + +c a B0bar tag => at t3pions=ttag the decay is one from a B0 + CPWeight= AB0 *Dcos(xd*t/2.D+00)**2 + + + AB0bar*Dsin(xd*t/2.D+00)**2 + + - Ainter*Dsin(xd*t ) + + Else + +c a B0 tag => at t3pions=ttag the decay is one from a B0bar + CPWeight= AB0bar*Dcos(xd*t/2.D+00)**2 + + + AB0 *Dsin(xd*t/2.D+00)**2 + + + Ainter*Dsin(xd*t ) + + End If + + Kin = (Weight-CPweight)/(Weight+CPweight)/Lambda + Kin_moy = Kin_moy + Kin + Kin_moy2 = Kin_moy2 + Kin**2 + +c---------------------------------------------------------------------------- + End If + +c end of the loop over events + End Do + + Print*,'number of unity-weight events generated : ',N_gener + Print*,'number of trials : ',N_asked + Print*,' measurement of sin(2 alpha) = ', + + Kin_moy/Kin_moy2 + Print*,' true value = ',Lambda + + End +C=================================================================== + subroutine Evt3pions( + + alpha_input,iset, + + p_pi_plus,p_pi_minus,p_gamma_1,p_gamma_2, + + Real_B0,Imag_B0,Real_B0bar,Imag_B0bar) +c----------------------------------------------------------------- +c ---------------------------------------------------------- +c --- This is the routine to be called by the Main generator +c**************************************************************************** +c --- Inputs are : +c +c --- alpha : the value of the alpha angle (radians) +c Note that the amplitude which are returned incorporate the +c CP violating phase present in the mixing. +c +c --- iset : to initialize the generator +c iset should be set to the number +c of events to be used for the pre-run +c devoted to the computation of the +c normalization factor designed to help +c the subsequent time-dependent generation +c of events. +c After the first call iset should be +c set to 0. +c**************************************************************************** set to 0. +c --- Outputs are : +c +c --- p_pi_plus : the four momentum of the pi+ +c --- p_pi_minus: the four momentum of the pi- +c --- p_gamma_1 : the four momentum of the first photon +c --- p_gamma_2 : the four momentum of the second photon +c Note that : the energy is stored in the fourth component +c the values are the ones of the B rest frame +c a random rotation has been applied +c +c --- Real_B0 : The real part of the amplitude of +c the B0 ->- 3 pions decay +c --- Imag_B0 : The imaginary part of the amplitude of +c the B0 ->- 3 pions decay +c --- Real_B0bar: The real part of the amplitude of +c the B0bar ->- 3 pions decay +c --- Imag_B0bar: The imaginary part of the amplitude of +c the B0bar ->- 3 pions decay +c**************************************************************************** +c----------------------------------------------------------------- + Implicit none +#include "EvtGenModels/EvtBTo3pi.inc" + Real*8 alpha_input + Real*8 beta_input + Integer iset + Real*8 p_pi_plus(4),p_pi_minus(4),p_gamma_1(4),p_gamma_2(4) + Real*8 Real_B0,Imag_B0,Real_B0bar,Imag_B0bar + +c Working quantities + Integer i,number + Real*8 p1(5),p2(5),p3(5),Gamma1(5),Gamma2(5) + Real*8 factor,factor_max,AB0,AB0bar,Ainter,R1,R2 + data factor_max/1.D+00/ + Integer ierr + ierr =0 +c------------------------------------------------------------------- + If(iset.eq.0) Then +c------------------------------------------------------------------- +c this is the normal mode of operation +c First, generate the kinematics + + p1(5)=M_pip**2 + p2(5)=M_pi0**2 + p3(5)=M_pim**2 + + 10 continue + + + call Evtfirst_step(p1,p2,p3) + +c Then, compute the amplitudes + + + Call EvtCompute(p1,p2,p3, + + Real_B0,Imag_B0,Real_B0bar,Imag_B0bar,iset,ierr) + if(ierr.ne.0) Go To 10 + +c------------------------------------------------------------------- + ElseIf(iset.lt.0) Then +c------------------------------------------------------------------- +c This is an user mode of operation where the kinematics is +c provided by the user who only wants the corresponding amplitudes +c to be computed + + Do i=1,4 + p1(i)= p_pi_plus (i) + p2(i)= p_gamma_1 (i) + p_gamma_2 (i) + p3(i)= p_pi_minus(i) + End Do + p1(5)= M_pip**2 + p2(5)= M_pi0**2 + p3(5)= M_pim**2 + + Call EvtCompute(p1,p2,p3, + + Real_B0,Imag_B0,Real_B0bar,Imag_B0bar,iset,ierr) + + if(ierr.ne.0) Then + Print*,'the provided kinematics are not physical' + Print*,'ierr=',ierr + Print*,'the program will stop' + Stop + endif +c------------------------------------------------------------------- + ElseIf(iset.gt.0) Then +c------------------------------------------------------------------- +c This is the pre-run mode of operation where initializations are +c performed. + + factor_max= 0 + +C Ghm : beta is not needed for this generation - put a default value + beta_input = 0.362 +C + call Evtset_constants(alpha_input, beta_input) + p1(5)=M_pip**2 + p2(5)=M_pi0**2 + p3(5)=M_pim**2 + +c pre-run + Do number=1,iset + + 20 continue + + call Evtfirst_step(p1,p2,p3) + + Call EvtCompute(p1,p2,p3,Real_B0,Imag_B0,Real_B0bar, + + Imag_B0bar,iset,ierr) + if(ierr.ne.0) Go To 20 + AB0 = Real_B0 **2 + Imag_B0 **2 + AB0bar= Real_B0bar**2 + Imag_B0bar**2 + Ainter= Real_B0*Imag_B0bar - Imag_B0*Real_B0bar + R1 = (AB0-AB0bar) /(AB0+AB0bar) + R2 =(2.D+00*Ainter)/(AB0+AB0bar) + factor=(1.D+00+Dsqrt(R1**2+R2**2))*(AB0+AB0bar)/2.D+00 + If(factor.gt.factor_max) factor_max=factor + + End Do +c end of the pre-run +c Normalization factor + factor_max=1.D+00/Dsqrt(factor_max) +c Print*,'factor_max',factor_max,p1,p2,p3 +c------------------------------------------------------------------- + End If +c------------------------------------------------------------------- + + Real_B0 =Real_B0 * factor_max + Imag_B0 =Imag_B0 * factor_max + Real_B0bar=Real_B0bar * factor_max + Imag_B0bar=Imag_B0bar * factor_max + + if(iset.lt.0) return + +c P1,p2,p3 ---> random rotation in B rest frame + + Call EvtRotation(p1,1) + Call EvtRotation(p2,0) + Call EvtRotation(p3,0) + +C Desintegrate the pi_0 + + Call EvtGammaGamma(p2,Gamma1,Gamma2) + +C Feed the output four vectors + + Do i=1,4 + + p_pi_plus (i)=p1 (i) + p_pi_minus(i)=p3 (i) + p_gamma_1 (i)=Gamma1(i) + p_gamma_2 (i)=Gamma2(i) + + End Do + + Return + + End + +c=================================================================== + subroutine Evtfirst_step(P1,P2,P3) +c----------------------------------------------------------------- +c ---------------------------------------------------------- +c --- This routine generates the 5-vectors P1,P2,P3 +c --- Associated respectively with the Pi+,Pi0 and Pi- +c --- P1(1) = Px +c --- P1(2) = Py +c --- P1(3) = Pz +c --- P1(4) = E +c --- P1(5) = M**2 +c ---------------------------------------------------------- +c --- Input Four Vectors +C --- Particle [1] is the pi+ +C --- Particle [2] is the pi0 +C --- Particle [3] is the pi- +c ---------------------------------------------------------- + +c ---------------------------------------------------------- +c --- commons +c ---------------------------------------------------------- +#include "EvtGenModels/EvtBTo3pi.inc" +c ---------------------------------------------------------- +c --- Used Functions +c ---------------------------------------------------------- + + real evtranf + +c ---------------------------------------------------------- +c --- Variables in Argument +c ---------------------------------------------------------- + + real*8 P1(5),P2(5),P3(5) + +c ---------------------------------------------------------- +c --- Local Variables +c ---------------------------------------------------------- + + real*8 m12,min_m12, max_m12 + real*8 m13,min_m13, max_m13 + real*8 m23,min_m23, max_m23 + Real*8 cost13,cost12,cost23 + + real*8 p1mom,p2mom,p3mom + + real*8 x, y, z, mass + integer i +C There is two ways of generating the events: +C The first one used a pole-compensation method to generate the +C events efficiently taking into account the poles due to the +C Breit-Wigners of the rho s. It is activated by setting +C Phase_Space to .false. +C The second one generates events according to phase space. It is +C inneficient but allows the exploration of the full Dalitz plot +C in an uniform way. It was found to be usefull fopr some peculiar +C applications. It is activated by setting +C Phase_space to .true. +C Note that in that case, the generation is no longer correct. + + Logical Phase_space + data Phase_space/.false./ + +c initialize to avoid warning on Linux. + mass=0.0 + +c ---------------------------------------------------------- +c --- Computation +c ---------------------------------------------------------- + max_m12 = M_B**2 + min_m12 = P1(5) + P2(5) + + max_m13 = M_B**2 + min_m13 = P1(5) + P3(5) + + max_m23 = M_B**2 + min_m23 = P2(5) + P3(5) + + +100 Continue + +c ---------------------------------------------------------- +c --- Generation of the Mass of the Rho(+,-,0) +c ---------------------------------------------------------- + + If(.not.Phase_space) Then + y = evtranf()*PI - PI/2. + x = Dtan(y) + mass = x*Gam_rho/2. +Mass_rho + End If + +c ---------------------------------------------------------- +c --- z is the Flag needed to choose between the generation +c --- of a Rho+, a Rho-,or a Rho0 +c ---------------------------------------------------------- + + z = 3.* evtranf() + + if(z.lt.1.) Then + + If(Phase_space) Then + m12 = evtranf()*(max_m12-min_m12)+min_m12 + Else + m12 = mass**2 + End If + m13 = evtranf()*(max_m13-min_m13)+min_m13 + m23 = MB2 - m12 - m13 + else if (z.lt.2.) Then + + If(Phase_space) Then + m13 = evtranf()*(max_m13-min_m13)+min_m13 + Else + m13 = mass**2 + End If + m12 = evtranf()*(max_m12-min_m12)+min_m12 + m23 = MB2 - m12 - m13 + else + + If(Phase_space) Then + m23 = evtranf()*(max_m23-min_m23)+min_m23 + Else + m23 = mass**2 + End If + m12 = evtranf()*(max_m12-min_m12)+min_m12 + m13 = MB2 - m12 - m23 + endif + +c ---------------------------------------------------------- +c --- Check that the physics is OK : +c --- Are the invariant Masses in allowed ranges ? +c ---------------------------------------------------------- + + If(m23.lt.min_m23.or.m23.gt.max_m23) Go to 100 + If(m13.lt.min_m13.or.m13.gt.max_m13) Go to 100 + If(m12.lt.min_m12.or.m12.gt.max_m12) Go to 100 + +c ---------------------------------------------------------- +c --- Are the Cosines of the angles between particles +c --- Between -1 and +1 ? +c ---------------------------------------------------------- + + P1(4)=(M_B**2+P1(5)-m23)/(2.*M_B) + P2(4)=(M_B**2+P2(5)-m13)/(2.*M_B) + P3(4)=(M_B**2+P3(5)-m12)/(2.*M_B) + if (p1(4)**2-P1(5).le.0.0) go to 100 + if (p2(4)**2-P2(5).le.0.0) go to 100 + if (p3(4)**2-P3(5).le.0.0) go to 100 + p1mom=Dsqrt(p1(4)**2-P1(5)) + p2mom=Dsqrt(p2(4)**2-P2(5)) + p3mom=Dsqrt(p3(4)**2-P3(5)) + cost13=(2.*p1(4)*p3(4)+P1(5)+p3(5)-m13)/(2.*p1mom*p3mom) + cost12=(2.*p1(4)*p2(4)+P1(5)+p2(5)-m12)/(2.*p1mom*p2mom) + cost23=(2.*p2(4)*p3(4)+P2(5)+p3(5)-m23)/(2.*p2mom*p3mom) + If(Dabs(cost13).gt.1.) Go to 100 + If(Dabs(cost12).gt.1.) Go to 100 + If(Dabs(cost23).gt.1.) Go to 100 + +c ---------------------------------------------------------- +c --- Filling the 5-vectors P1,P2,P3 +c ---------------------------------------------------------- + + P3(1) = 0 + P3(2) = 0 + p3(3) = p3mom + + P1(3) = p1mom*cost13 + P1(1) = p1mom*Dsqrt(1.D+00-cost13**2) + p1(2) = 0. + + Do i=1,3 + P2(i)=-p1(i)-p3(i) + End do + + END + + +c====================================================================== + Subroutine EvtCompute(p1,p2,p3, + + Real_B0,Imag_B0,Real_B0bar,Imag_B0bar,iset,ierr) +c----------------------------------------------------------------------- + IMPLICIT None +#include "EvtGenModels/EvtBTo3pi.inc" + + + Real*8 m12, m13, m23, W12, W13, W23, Wtot + Real*4 evt_gmas + Complex*16 MatBp,MatBm + Real*8 Real_B0,Imag_B0,Real_B0bar,Imag_B0bar + Integer Iset,ierr + Real*8 p1(5),p2(5),p3(5) + + COMPLEX*16 Mat_rhop,Mat_rhom,Mat_rho0 + Complex*16 BreitWigner,Mat_1,Mat_2,Mat_3 +c ---------------------------------------------------------------- +C --- Account for the pole compensation +c ---------------------------------------------------------------- + ierr = 0 + + if(evt_gmas(p1,p2).lt.0.or.evt_gmas(p1,p3) + + .lt.0.or.evt_gmas(p2,p3).lt.0) Then + ierr=1 + return + endif + + m12 = sqrt(evt_gmas(p1,p2)) + m13 = sqrt(evt_gmas(p1,p3)) + m23 = sqrt(evt_gmas(p2,p3)) + + W12 = (1./m12)*1./((Mass_rho - m12)**2+(Gam_rho/2.)**2) + W13 = (1./m13)*1./((Mass_rho - m13)**2+(Gam_rho/2.)**2) + W23 = (1./m23)*1./((Mass_rho - m23)**2+(Gam_rho/2.)**2) + + If(iset.ge.0) Then + Wtot = 1./Dsqrt(W12 + W13 + W23) + else + Wtot = 1. + endif + +c ---------------------------------------------------------------- +C --- Compute Breit-Wigners +c ---------------------------------------------------------------- + + Mat_rhop=BreitWigner(p1,p2,p3,ierr) + Mat_rhom=BreitWigner(p2,p3,p1,ierr) + Mat_rho0=BreitWigner(p1,p3,p2,ierr) + + +c ---------------------------------------------------------------- +C --- Build up the amplitudes +c ---------------------------------------------------------------- + + Mat_1 = Mat_s3*Mat_rhop + Mat_2 = Mat_s4*Mat_rhom + Mat_3 = Mat_s5*Mat_rho0*0.5D+00 + + MatBp = (Mat_1+Mat_2+Mat_3) * Wtot + + Mat_1 = Nat_s3*Mat_rhom + Mat_2 = Nat_s4*Mat_rhop + Mat_3 = Nat_s5*Mat_rho0*0.5D+00 + + MatBm = (Mat_1+Mat_2+Mat_3) * Wtot + +c Pick up the Real and Imaginary parts + +c changed Real to DBLE and Imag DIMAG to make it complie +c with Absoft and g77 (ryd) + + Real_B0 = DBLE(MatBp) + Imag_B0 = DIMAG(MatBp) + + Real_B0bar = DBLE(MatBm) + Imag_B0bar = DIMAG(MatBm) + + Return + End + +c====================================================================== + Function BreitWigner(p1,p2,p3,ierr) +c---------------------------------------------------------------------- + IMPLICIT None +#include "EvtGenModels/EvtBTo3pi.inc" + Complex *16 BreitWigner,EvtCRhoF_W + Logical Aleph + Integer ierr + Data Aleph /.true./ + +c --------------------------------------------------------------- +c --- Input Four Vectors +c --------------------------------------------------------------- + Real*8 p1(5),p2(5),p3(5) + +c --------------------------------------------------------------- +C --- intermediate variables +c --------------------------------------------------------------- + Real*8 E12_2,m12_2,beta,gamma,argu,m13_2,costet,coscms,m12 + Real*8 Factor,Num_real,Num_imag + Integer i + Real *8 p1z,p1zcms12,e1cms12,p1cms12 + +c --------------------------------------------------------------- +C --- Boost factor +c --------------------------------------------------------------- + + BreitWigner=Dcmplx(0,0) + + + ierr = 0 + E12_2=(p1(4)+p2(4))**2 + m12_2=E12_2 + Do i=1,3 + m12_2=m12_2-(p1(i)+p2(i))**2 + End Do + Argu = 1.D+00 - m12_2 / E12_2 + + If(argu.gt.0.) Then + beta = Dsqrt(Argu) + Else + Print *,'Abnormal beta ! Argu = ',Argu + + Argu = 0. + Beta = 0. + End If + + If(m12_2.gt.0.)Then + m12 = Dsqrt(m12_2) + Else + Print *,'Abnormal m12 ! m12_2 = ',m12_2 + Print*,'p1 = ',p1 + Print*,'p2 = ',p2 + Print*,'p3 = ',p3 + Stop + End if + + gamma=Dsqrt(E12_2/m12_2) +c --------------------------------------------------------------- +C --- get the cosine in the B CMS +c --------------------------------------------------------------- + + m13_2=(p1(4)+p3(4))**2 + Do i=1,3 + m13_2=m13_2-(p1(i)+p3(i))**2 + End Do + if(m13_2.lt.0) Go To 50 + if((p1(4)**2-p1(5)).lt.0) Go To 50 + if((p3(4)**2-p3(5)).lt.0) Go To 50 + costet= (2.D+00*p1(4)*p3(4)-m13_2+p1(5)+p3(5)) + > / + > (2.D+00*Dsqrt( (p1(4)**2-p1(5)) * (p3(4)**2-p3(5)) )) + +c --------------------------------------------------------------- +C --- get the costet in the 1-2 CMS +c --------------------------------------------------------------- + + p1z=dsqrt(P1(4)**2-p1(5))*costet + p1zcms12=gamma*(p1z+beta*P1(4)) + e1cms12 =gamma*(p1(4)+beta*p1z) + p1cms12 =Dsqrt(e1cms12**2-p1(5)) + coscms=p1zcms12/p1cms12 + +c --------------------------------------------------------------- +C --- Build the Breit Wigner +c --------------------------------------------------------------- + + If(aleph) then + BreitWigner= coscms * EvtCRhoF_W( m12_2 ) + else + Factor = 2.D+00* ( (Mass_rho-m12)**2+(0.5D+00*Gam_rho)**2 ) + Factor = coscms * Gam_rho / Factor + Num_real= (Mass_rho-m12) * Factor + Num_imag= 0.5D+00*Gam_rho * Factor + BreitWigner=Dcmplx(Num_real,Num_imag) + End if + + Return + 50 continue + ierr = 2 + Return + End + +c====================================================================== + Subroutine EvtSet_Constants(balpha, bbeta) +c---------------------------------------------------------------------- + IMPLICIT None +#include "EvtGenModels/EvtBTo3pi.inc" + +c ------------------------------------------------------------- +c --- Basic matrix elements +c ------------------------------------------------------------- + + Complex *16 Mat_Tp0,Mat_Tm0,Mat_T0p,Mat_T0m,Mat_Tpm,Mat_Tmp + > ,Mat_P1,Mat_P0 + > ,Nat_Tp0,Nat_Tm0,Nat_T0p,Nat_T0m,Nat_Tpm,Nat_Tmp + > ,Nat_P1,Nat_P0, Mat_Ppm, Mat_Pmp + > ,StrongExp + Real*8 balpha, bbeta + Real*8 calpha,salpha + Real*8 cbeta,sbeta + Real*8 StrongPhase + Real*8 Rho_gen,Eta_gen,c_factor +c ------------------------------------------------------------- + pi = 3.141592653 D+00 + alphaCP = balpha + calpha = Dcos(alphaCP) + salpha = Dsin(alphaCP) + betaCP = bbeta + cbeta = Dcos(betaCP) + sbeta = Dsin(betaCP) + M_B = 5.2794D+00 + M_pip = 0.13957D0 + M_pim = M_pip + M_pi0 = 0.134976D0 + M_Kp = 0.49368 + Mass_rho = 0.770D0 + Gam_rho = 0.150D0 + Mass_Kstarp = 0.8916 + Gam_Kstarp = 0.0498 + Mass_Kstar0 = 0.8961 + Gam_Kstar0 = 0.0505 + + MB2 = M_B**2 + M_pip**2 + M_pim**2 + M_pi0**2 + MC2 = M_B**2 + M_Kp **2 + M_pim**2 + M_pi0**2 + + StrongPhase = 0. + +c ------------------------------------------------------------- + StrongExp = Dcmplx(Dcos(StrongPhase),Dsin(StrongPhase)) + + rho_gen = 0.D+00 +c if(balpha.ne.0) Then +c eta_gen = cos(balpha)/sin(balpha) +c else +c eta_gen =0. +c endif + eta_gen = 0.5D+00 + c_factor= + >Sqrt((rho_gen**2+eta_gen**2)/((1.-rho_gen)**2+eta_gen**2)) + + Mat_Tp0 = Dcmplx(calpha, -salpha) *1.09D+00 + Mat_Tm0 = Dcmplx(calpha, -salpha) *1.09D+00 + Mat_T0p = Dcmplx(calpha, -salpha) *0.66D+00 + Mat_T0m = Dcmplx(calpha, -salpha) *0.66D+00 + Mat_Tpm = Dcmplx(calpha, -salpha) *1.00D+00 + Mat_Tmp = Dcmplx(calpha, -salpha) *0.47D+00 + + Mat_Ppm = -Dcmplx(Dcos(-0.5D0),Dsin(-0.5D0))*0.2D0 + Mat_Pmp = Dcmplx(Dcos(2.D0),Dsin(2.D0))*0.15D0 + + Mat_P1 = 0.5D0*(Mat_Ppm-Mat_Pmp) + Mat_P0 = 0.5D0*(Mat_Ppm+Mat_Pmp) + Nat_Tp0 = Dcmplx(calpha, salpha) *1.09D+00 + Nat_Tm0 = Dcmplx(calpha, salpha) *1.09D+00 + Nat_T0p = Dcmplx(calpha, salpha) *0.66D+00 + Nat_T0m = Dcmplx(calpha, salpha) *0.66D+00 + Nat_Tpm = Dcmplx(calpha, salpha) *1.00D+00 + Nat_Tmp = Dcmplx(calpha, salpha) *0.47D+00 + Nat_P1 = Mat_P1 + Nat_P0 = Mat_P0 + + Mat_Tpm = StrongExp * Mat_Tpm + Nat_Tpm = StrongExp * Nat_Tpm + + Mat_S1 = Mat_Tp0 + 2.D+00 * Mat_P1 + Mat_S2 = Mat_T0p - 2.D+00 * Mat_P1 + Mat_S3 = Mat_Tpm + Mat_P1 + Mat_P0 + Mat_S4 = Mat_Tmp - Mat_P1 + Mat_P0 + Mat_S5 = - Mat_Tpm - Mat_Tmp + Mat_Tp0 + Mat_T0p + > - 2.D+00 * Mat_P0 + + Nat_S1 = Nat_Tp0 + 2.D+00 * Nat_P1 + Nat_S2 = Nat_T0p - 2.D+00 * Nat_P1 + Nat_S3 = Nat_Tpm + Nat_P1 + Nat_P0 + Nat_S4 = Nat_Tmp - Nat_P1 + Nat_P0 + Nat_S5 = - Nat_Tpm - Nat_Tmp + Nat_Tp0 + Nat_T0p + > - 2.D+00 * Nat_P0 + + +c===================================================================== +c===================================================================== + + +C Gautier 14-Jan-98 : +C set matrix elements according to Jerome s calculations +C (so called Reference set) +c B0 -->-- K*+ pi- Amplitudes (Trees + Penguins) + MatKstarp = Dcmplx(calpha, -salpha) * Dcmplx( 0.220,0.) + > + Dcmplx(cbeta, sbeta) * Dcmplx(-1.200,0.) +c B0 -->-- K*0 pi0 Amplitudes (Trees + Penguins) + MatKstar0 = Dcmplx(calpha, -salpha) * Dcmplx( 0.015,0.) + > + Dcmplx(cbeta, sbeta) * Dcmplx( 0.850,0.) +c B0 -->-- K+ rho- Amplitudes (Trees + Penguins) + MatKrho = Dcmplx(calpha, -salpha) * Dcmplx( 0.130,0.) + > + Dcmplx(cbeta, sbeta) * Dcmplx( 0.160,0.) +c===================================================================== +c B0bar -->-- K*+ pi- Amplitudes (Trees + Penguins) + NatKstarp = Dcmplx(0.,0.) +c B0bar -->-- K*0 pi0 Amplitudes (Trees + Penguins) + NatKstar0 = Dcmplx(0.,0.) +c B0bar -->-- K+ rho- Amplitudes (Trees + Penguins) + NatKrho = Dcmplx(0.,0.) +c===================================================================== +c===================================================================== +c Print*,'Mat_Tp0',Mat_Tp0 +c Print*,'Mat_T0p',Mat_T0p +c Print*,'Mat_Tpm',Mat_Tpm +c Print*,'Mat_Tmp',Mat_Tmp +c Print*,'Mat_P1',Mat_P1 +c Print*,'Mat_P0',Mat_P0 + + Return + End + + + +C===================================================================== + subroutine EvtGammaGamma(P2,PG1Boost,PG2Boost) +c--------------------------------------------------------------------- +c -------------------------------------------------------------- +c --- The aim of this routine is to generate two photons +c --- for the decay of the pi0 +c -------------------------------------------------------------- + implicit none +c --- commons + +#include "EvtGenModels/EvtBTo3pi.inc" + +c --- Used Functions + + Real evtranf + +c --- Variables in Argument + + Real*8 PG1Boost(5), PG2Boost(5) + Real*8 P2(5) + +c --- Local Variables + + Real*8 EGammaCmsPi0 + Real*8 PGamma1(5), PGamma2(5) + Real*8 sinThetaRot, cosThetaRot, PhiRot + Real*8 Beta(4) + Integer i + + Do i=1, 3 + Beta(i) = P2(i)/p2(4) + Enddo + + EGammaCmsPi0 = Dsqrt(P2(5))/2. + + + cosThetaRot = evtranf()*2.D+00-1.D+00 + sinThetaRot = Dsqrt(1.D+00 - cosThetaRot**2) + PhiRot = evtranf()*2.D+00*pi + + PGamma1(1) = EGammaCmsPi0 * sinThetaRot * Dcos(PhiRot) + PGamma1(2) = EGammaCmsPi0 * sinThetaRot * Dsin(PhiRot) + PGamma1(3) = EGammaCmsPi0 * cosThetaRot + PGamma1(4) = EGammaCmsPi0 + PGamma1(5) = 0. + + PGamma2(1) = - PGamma1(1) + PGamma2(2) = - PGamma1(2) + PGamma2(3) = - PGamma1(3) + PGamma2(4) = PGamma1(4) + PGamma2(5) = 0. + + Call EvtREFREF(BETA,PGamma1,PG1Boost,1) + Call EvtREFREF(BETA,PGamma2,PG2Boost,1) + + end + +C=================================================================== + SUBROUTINE EvtREFREF(BETA,PIN,POUT,S) +c------------------------------------------------------------------- +c ------------------------------------------------------------ +c --- GIVEN A FINAL STATE , TO BOOST IT IN ITS C.M.S TAKE +c --- BETA =-SIGMA(P(K))/SIGMA(E(K)) +c --- S =+1. +c --- TO GO BACK TO THE INITIAL FRAME : SET +c --- S =-1. +c ------------------------------------------------------------ + + implicit None + Real*8 Beta,Pin,Pout + Integer s,i + dimension BETA(4),PIN(5),POUT(5) + Real*8 GAMMA,BETPIN,BETA2 + + + BETA2 =BETA(1)**2+BETA(2)**2+BETA(3)**2 + IF(BETA2.GT.1.D0) Print*,'Beta**2 .gt.1!!!' + IF(BETA2.GT..99999D0) BETA2=0.99999 + BETA(4)=DSQRT(BETA2) + GAMMA=1./DSQRT(1.D0-BETA2) + + BetPin = 0. + Do i=1,3 + BetPin = Beta(i)*Pin(i) + BetPin + Enddo + BetPin = s*BetPin + + DO 1 I=1,3 + POUT(I)=PIN(I)+S*BETA(I)*GAMMA* + > (PIN(4)+GAMMA/(GAMMA+1.)*BETPIN) + 1 CONTINUE + POUT(4) = GAMMA*(PIN(4)+BETPIN) + POUT(5) = PIN(5) + + RETURN + END + +C****************************************************************** + function evt_gmas(P1,P2) +C****************************************************************** +c ----------------------------------------------------------- +c --- compute the invariant mass between particle 1 and 2 +c ----------------------------------------------------------- + implicit none + real*8 p1(5),P2(5) + real*4 evt_gmas + integer i + + evt_gmas = (P1(4)+P2(4))**2 + + do i=1,3 + evt_gmas = evt_gmas - (P1(i) + P2(i))**2 + enddo + + end + +C=================================================================== + Subroutine EvtRotation(p,new) +c------------------------------------------------------------------ + Implicit None +#include "EvtGenModels/EvtBTo3pi.inc" + + Real*8 p(5),pstor(3) + Real*8 phi2,phi3 + Real*8 c1,c2,c3,s1,s2,s3 + Real*8 MatRot(3,3) + save MatRot + Real evtranf + Integer new,i,j + + If(new.ne.0) Then +c --------------------------------------------------------- +C --- generate a random rotation +c --------------------------------------------------------- + + phi2=evtranf()*2.*pi + phi3=evtranf()*2.*pi + + c1=2.D+00*evtranf()-1.D+00 + c2=Dcos(phi2) + c3=Dcos(phi3) + + s1=Dsqrt(1.D+00-c1**2) + s2=Dsin(phi2) + s3=Dsin(phi3) + +c --------------------------------------------------------- +C --- Compute the overall rotation matrix +c --------------------------------------------------------- + MatRot(1,1)=c1 + MatRot(1,2)=s1*c3 + MatRot(1,3)=s1*s3 + MatRot(2,1)=-s1*c2 + MatRot(2,2)=c1*c2*c3-s2*s3 + MatRot(2,3)=c1*c2*s3+s2*c3 + MatRot(3,1)=s1*s2 + MatRot(3,2)=-c1*s2*c3-c2*s3 + MatRot(3,3)=-c1*s2*s3+c2*c3 + End If + +c --------------------------------------------------------- +C --- store the input 3-momentum +c --------------------------------------------------------- + Do i=1,3 + pstor(i)=p(i) + p(i) = 0. + End Do +c --------------------------------------------------------- +C --- Apply the rotation +c --------------------------------------------------------- + Do i=1,3 + Do j=1,3 + p(i)=p(i)+MatRot(i,j)*pstor(j) + End do + End do + + end + + + +c====================================================================== + FUNCTION EvtCRhoF_W( s ) +C ----------------------------------------------------------------------- +C +C Author : Andreas Hoecker [Aleph Collaboration, BaBar] +C +C tau --> pi pi0 nu +C + + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + COMPLEX*16 EvtCRhoF_W, EvtcBW_KS, EvtcBW_GS + + PARAMETER (AmPi2=0.13956995**2) + + LOGICAL KUHN_SANTA / .TRUE. / !...type of Breit-Wigner formula + double precision lambda + COMMON /LAM/ lambda +C +C store parameters +C + IF (KUHN_SANTA) THEN +C...rho(770) + AmRho = 0.7734 + GamRho = 0.1477 +C...rho(1450) + AmRhoP = 1.465 + GamRhoP = 0.696 + beta = -0.229 +C...rho(1700) + AmRhoPP = 1.760 + GamRhoPP = 0.215 + gamma = 0.075 +C...exponent + lambda = 1.0 + ELSE +C...rho(770) + AmRho = 0.7757 + GamRho = 0.1508 +C...rho(1450) + AmRhoP = 1.448 + GamRhoP = 0.503 + beta = -0.161 +C...rho(1700) + AmRhoPP = 1.757 + GamRhoPP = 0.237 + gamma = 0.076 +C...exponent + lambda = 1.0 + ENDIF +C +C init +C + EvtCRhoF_W = DCMPLX(0.,0.) + + IF (KUHN_SANTA) THEN +C +C Kuehn-Santamaria model +C + EvtCRhoF_W = + > ( EvtcBW_KS(s,AmRho**2,GamRho) + !...BW-rho( 770) + > EvtcBW_KS(s,AmRhoP**2,GamRhoP)*(beta) + !...BW-rho(1450) + > EvtcBW_KS(s,AmRhoPP**2,GamRhoPP)*(gamma) ) / !...BW-rho(1700) + > (1.+beta+gamma) + ELSE +C +C Gounaris-Sakurai model +C + EvtCRhoF_W = + > ( EvtcBW_GS(s,AmRho**2,GamRho) + + > EvtcBW_GS(s,AmRhoP**2,GamRhoP)*(beta) + + > EvtcBW_GS(s,AmRhoPP**2,GamRhoPP)*(gamma) ) / + > (1.+beta+gamma) + ENDIF + + RETURN + END +C +C * ================================================================== * +C +C +C * ------------------------------------------------------------- * +C + FUNCTION EvtcBW_KS( s,Am2,Gam ) + + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + COMPLEX*16 EvtcBW_KS + PARAMETER (AmPi2=0.13956995**2) + + DOUBLE PRECISION lambda + COMMON /LAM/ lambda + + EvtcBW_KS = 0. + IF (s.le.4.*AmPi2) RETURN + + G = Gam* (Am2/s)**lambda * ((s-4.*AmPi2)/(Am2-4.*AmPi2))**1.5 + D = (Am2-s)**2 + s*G**2 + X = Am2*(Am2-s) + Y = Am2*SQRT(s)*G + + EvtcBW_KS = DCMPLX(X/D,Y/D) + + RETURN + END +C +C * ------------------------------------------------------------- * +C + FUNCTION EvtcBW_GS( s,Am2,Gam ) + + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + COMPLEX*16 EvtcBW_GS + PARAMETER (AmPi2=0.13956995**2) + + DOUBLE PRECISION Evtfs,d,N + + DOUBLE PRECISION lambda + COMMON /LAM/ lambda + + EvtcBW_GS = 0. + IF (s.le.4.*AmPi2) RETURN + + G = Gam* (Am2/s)**lambda * ((s-4.*AmPi2)/(Am2-4.*AmPi2))**1.5 + z1 = Am2 - s + Evtfs(s,Am2,Gam) + z2 = SQRT(s)*G + z3 = Am2 + d(Am2)*Gam*SQRT(Am2) + + X = z3 * z1 + Y = z3 * z2 + N = z1**2 + z2**2 + + EvtcBW_GS = DCMPLX(X/N,Y/N) + + RETURN + END + +C--------------------------------------------------------------------- + + FUNCTION Evtfs(s,AmRho2,GamRho) + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + DOUBLE PRECISION k,k_s,k_Am2 + k_s = k(s) + k_Am2 = k(AmRho2) + + Evtfs = GamRho * AmRho2 / k_Am2**3 * + > ( + > k_s**2 * (h(s)-h(AmRho2)) + + > (AmRho2-s) * k_Am2**2 * dh_ds(AmRho2) + > ) + RETURN + END +C -------------- + FUNCTION k(s) + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + DOUBLE PRECISION k + PARAMETER (AmPi2=0.13956995**2) + k = 0.5 * SQRT(s - 4.*AmPi2) + RETURN + END +C -------------- + FUNCTION h(s) + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + DOUBLE PRECISION k,k_s + PARAMETER (pi=3.141593) + PARAMETER (AmPi=0.13957) + SQRTs = SQRT(s) + k_s = k(s) + h = 2./pi * (k_s/SQRTs) * LOG((SQRTs+2.*k_s)/(2.*AmPi)) + RETURN + END +C -------------- + FUNCTION dh_ds(s) + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + DOUBLE PRECISION k + PARAMETER (pi=3.141593) + dh_ds = h(s) * (1./(8.*k(s)**2) - 1./(2.*s)) + 1./(2.*pi*s) + RETURN + END +C -------------- + FUNCTION d(AmRho2) + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + DOUBLE PRECISION k,k_AmRho2 + PARAMETER (pi=3.141593) + PARAMETER (AmPi=0.13956995) + PARAMETER (AmPi2=AmPi**2) + AmRho = SQRT(AmRho2) + k_AmRho2 = k(AmRho2) + d = 3./pi * AmPi2/k_AmRho2**2 * + > LOG((AmRho+2.*k_AmRho2)/(2.*AmPi)) + + > AmRho/(2.*pi*k_AmRho2) - AmPi2*AmRho/(pi*k_AmRho2**3) + RETURN + END + + + diff --git a/TEvtGen/EvtGenModels/EvtBTo3pi.inc b/TEvtGen/EvtGenModels/EvtBTo3pi.inc new file mode 100644 index 00000000000..c1e8bddd3c8 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBTo3pi.inc @@ -0,0 +1,24 @@ +c Basic matrix elements + Complex *16 + > Mat_S1,Mat_S2,Mat_S3,Mat_S4,Mat_S5 + > ,Nat_S1,Nat_S2,Nat_S3,Nat_S4,Nat_S5 + > ,MatKstarp,MatKstar0,MatKrho + > ,NatKstarp,NatKstar0,NatKrho + Real*8 alphaCP,betaCP,pi,MB2,MC2,Mass_rho,Gam_rho,one,eno + Real*8 M_B,M_pip,M_pim,M_pi0 + Real*8 M_Kp,Mass_Kstarp,Mass_Kstar0,Gam_Kstarp,Gam_Kstar0 + Real*8 DeltaM,Gam_B,xd + Real*8 M_Upsi, BetaBabar,ptcut,coscut + Common/Theory/ + > Mat_S1,Mat_S2,Mat_S3,Mat_S4,Mat_S5 + > ,Nat_S1,Nat_S2,Nat_S3,Nat_S4,Nat_S5 + > ,MatKstarp,MatKstar0,MatKrho + > ,NatKstarp,NatKstar0,NatKrho + > ,alphaCP, betaCP, pi + > ,MB2,MC2,one,eno + > ,Mass_rho,Gam_rho + > ,M_B, M_pip,M_pim,M_pi0 + > ,DeltaM,Gam_B,xd + > ,M_Upsi,BetaBabar + > ,ptcut,coscut + > ,M_Kp,Mass_Kstarp,Mass_Kstar0,Gam_Kstarp,Gam_Kstar0 diff --git a/TEvtGen/EvtGenModels/EvtBTo3piCP.cxx b/TEvtGen/EvtGenModels/EvtBTo3piCP.cxx new file mode 100644 index 00000000000..811eb093fd5 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBTo3piCP.cxx @@ -0,0 +1,166 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtBTo3piCP.cc +// +// Description: Routine to decay B->pi+ pi- pi0 +// and has CP violation. +// +// Modification history: +// +// RYD/VERSILLE March 2, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtBTo3piCP.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtConst.hh" + +#ifdef WIN32 +extern "C" { + extern void __stdcall EVT3PIONS(double *,int *,double *, + double *,double *,double *,double *, + double *,double *,double *); +} +#else +extern "C" { + extern void evt3pions_(double *,int *,double *, + double *,double *,double *,double *, + double *,double *,double *); +} +#endif + +EvtBTo3piCP::~EvtBTo3piCP() {} + + +std::string EvtBTo3piCP::getName(){ + + return "BTO3PI_CP"; + +} + + +EvtDecayBase* EvtBTo3piCP::clone(){ + + return new EvtBTo3piCP; + +} + +void EvtBTo3piCP::init(){ + + // check that there are 2 arguments + checkNArg(2); + checkNDaug(3); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + checkSpinDaughter(2,EvtSpinType::SCALAR); +} + + + +void EvtBTo3piCP::initProbMax(){ + + setProbMax(1.5); + +} + +void EvtBTo3piCP::decay( EvtParticle *p){ + + //added by Lange Jan4,2000 + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + double t; + EvtId other_b; + + EvtCPUtil::OtherB(p,t,other_b); + + EvtParticle *pip,*pim,*pi0; + + p->makeDaughters(getNDaug(),getDaugs()); + + // p->init_daug(SCALAR,&pip,SCALAR,&pim,SCALAR,&pi0); + pip=p->getDaug(0); + pim=p->getDaug(1); + pi0=p->getDaug(2); + + EvtVector4R p4[3]; + + double dm=getArg(0); + double alpha=getArg(1); + int iset; + + static int first=1; + + if (first==1) { + iset=10000; + first=0; + } + else{ + iset=0; + } + + double p4piplus[4],p4piminus[4],p4gamm1[4],p4gamm2[4]; + + double realA,imgA,realbarA,imgbarA; + +#ifdef WIN32 + EVT3PIONS(&alpha,&iset,p4piplus,p4piminus,p4gamm1,p4gamm2, + &realA,&imgA,&realbarA,&imgbarA); +#else + evt3pions_(&alpha,&iset,p4piplus,p4piminus,p4gamm1,p4gamm2, + &realA,&imgA,&realbarA,&imgbarA); +#endif + + p4[0].set(p4piplus[3],p4piplus[0],p4piplus[1],p4piplus[2]); + p4[1].set(p4piminus[3],p4piminus[0],p4piminus[1],p4piminus[2]); + p4[2].set(p4gamm1[3]+p4gamm2[3],p4gamm1[0]+p4gamm2[0], + p4gamm1[1]+p4gamm2[1],p4gamm1[2]+p4gamm2[2]); + + if (pip->getId()==EvtPDL::getId("pi+")) { + pip->init( getDaug(0), p4[0] ); + pim->init( getDaug(1), p4[1] ); + } + else { + pip->init( getDaug(0), p4[1] ); + pim->init( getDaug(1), p4[0] ); + } + + pi0->init( getDaug(2), p4[2] ); + + EvtComplex amp; + + EvtComplex A(realA,imgA); + EvtComplex Abar(realbarA,imgbarA); + + if (other_b==B0B){ + amp=A*cos(dm*t/(2*EvtConst::c))+ + EvtComplex(0.,1.)*Abar*sin(dm*t/(2*EvtConst::c)); + } + if (other_b==B0){ + amp=Abar*cos(dm*t/(2*EvtConst::c))+ + EvtComplex(0.,1.)*A*sin(dm*t/(2*EvtConst::c)); + } + + vertex(amp); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtBTo3piCP.hh b/TEvtGen/EvtGenModels/EvtBTo3piCP.hh new file mode 100644 index 00000000000..2dc166f64a1 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBTo3piCP.hh @@ -0,0 +1,47 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtBTo3piCP.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTO3PICP_HH +#define EVTBTO3PICP_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + + + +class EvtBTo3piCP:public EvtDecayAmp { + +public: + + EvtBTo3piCP() {} + virtual ~EvtBTo3piCP(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtBTo3piMPP.F b/TEvtGen/EvtGenModels/EvtBTo3piMPP.F new file mode 100644 index 00000000000..42463439d41 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBTo3piMPP.F @@ -0,0 +1,561 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See EvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: EvtBTo3piMPP.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C +C------------------------------------------------------------------------ +C=================================================================== +C This package is providing a B -->-- 3pions decay generator +C Its is composed of the following subroutines: +C +C [*] HowToUse +C This is an How To Use routine where one may find the +C implementation of the time dependance: That is to +C say that it shows how the output of the routine is +C supposed to be used in the mind of the authors. +C +C=================================================================== +C [0] EVT3pions +C The routine to be called. Note that on the first call +C some initialization will be made, in particular the +C computation of a normalization factor designed to help +C the subsequent time-dependent generation of events. +C The normalisation done inside EVT3pions is such that +C at the level of the time implementation, the maximum +C time-dependant weight is unity : nothing is to be +C computed to generate unity-weight events. The exact +C meaning of the above is made explicit in the HowToUse +C routine. +C [1] first_step_MPP +C Generation of the kinematics of the 3 pions +C It uses the function ranf which is a random number +C generator providing an uniform distribution +C of Real*4 random number between 0 and 1 +C [2] compute +C return the amplitudes of the B0 -->-- 3pions +C and of the B0_bar -->-- 3pions +C corrected for the generation mechanism +C The notations used are the ones of the paper of +C A. Snyder and H. Quinn [Phys.Rev.D48 (1993) 2139] +C [3] BreitWigner +C compute the Breit-Wigner of the contributing rho s +C taking into account the cosine term linked to the +C zero-helicity of the rho s. There is three forms of +C Breit-Wigners available. The first one is the simple +C non-relativistic form, while the second and third +C ones are more involved relativistic expressions which +C in addition incorporate the contributions of three +C rho resonances [rho(770:1450:1700)]. The parameters +C used are the ones resulting from the ALEPH analysis +C which might be found in CERN-PPE:97013 (submitted to +C Zeitschrift für Physik C). The two parametrizations +C of the relativistic Breit-Wigners are the ones of +C Kuhn-SantaMaria [default] and of Gounaris-Sakurai. +C The default setting is the non-relativistic Breit- +C Wigner form. +C [4] Set_constants +C Set the constants values, from the pion mass to the +C penguin contributions. It is called by EVT3pions +C +C And other routines which do not deserve comment here. +C=================================================================== +c Implicit none +c Real Hmemor +c Common/Pawc/Hmemor(1000000) +c Call Hlimit(1000000) +c call EvtHowToUse +c call EvtHowToUse_MPP +c call EvtHowToUse_P00 +c Stop +c End + + subroutine EvtHowToUse_MPP + + Implicit none + Real*8 alpha + Integer iset,number,j,N_gener,N_asked + + + Real*8 p_pi_minus(4),p_pi_plus_1(4),p_pi_plus_2(4) + Real*8 Real_Bp,Imag_Bp,Real_Bm,Imag_Bm + Real*8 Weight,Weight_max + Real*8 ABp,ABm + Real*8 m_rho12,m_rho13 + Real*4 Evtranf,Tag + alpha = 0.4 + N_gener = 0 + N_asked = 100000 + + weight_max = 1.0 + +c run : Simulation of the Anders Ryd Generator + + Do number=1,N_asked ! weighted events as generated here + + If(number.eq.1) then + iset=10000 ! 10^4 events are used to normalize amplitudes + Else + iset=0 ! iset must be reset to zero after the first call + End If + +c Here is the call to EVT3pions_MPP !!!!!!!!!!!!!!!! +c communication of data is done by argument only <<<<<<<< + call EVT3pionsMPP( + + alpha,iset, + + p_pi_minus,p_pi_plus_1,p_pi_plus_2, + + Real_Bp,Imag_Bp,Real_Bm,Imag_Bm) + +C that is it !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +c select the Tag + Tag =evtranf() +C get the relevant quantities + ABp = Real_Bp **2 + Imag_Bp **2 + ABm = Real_Bp **2 + Imag_Bm **2 +c generate acording to the tag + If(Tag.gt.0.5) Then + +c a Bm tag => the decay is one from a Bp + Weight= ABp + + Else + +c a Bp tag => the decay is one from a Bm + Weight= ABm + + End If + If(Weight.Gt.evtranf()) Then +c---------------------------------------------------------------------------- +c unweighted event production +c---------------------------------------------------------------------------- + N_gener=N_gener+1 +C here is just a Dalitz plot and a few prints + + m_rho12=(p_pi_minus(4)+P_pi_plus_1(4))**2 + m_rho13=(p_pi_minus(4)+P_pi_plus_2(4))**2 + do j=1,3 + m_rho12=m_rho12-(p_pi_minus(j)+P_pi_plus_1(j))**2 + m_rho13=m_rho13-(p_pi_minus(j)+P_pi_plus_2(j))**2 + end do + +c here is a check that weight_max is one + + If(Weight.gt.Weight_max) Then + Weight_max=Weight + Print*,' overweighted event found at weight = ',Weight_max + End If + +c---------------------------------------------------------------------------- + End If + +c end of the loop over events + End Do + + Print*,'number of unity-weight events generated : ',N_gener + Print*,'number of trials : ',N_asked + + + End +C=================================================================== + subroutine Evt3pionsMPP( + + alpha_input,iset, + + p_pi_minus,p_pi_plus_1,p_pi_plus_2, + + Real_Bp,Imag_Bp,Real_Bm,Imag_Bm) +c----------------------------------------------------------------- +c ---------------------------------------------------------- +c --- This is the routine to be called by the Main generator +c to get the decay of B+ -->-- 3 pions +c --- AND +c to get the decay of B- -->-- 3 pions +C For the sake of clarity, signs refers to B+ decay +c**************************************************************************** set to 0. +c --- Outputs are : +c +c --- p_pi_minus : the four momentum of the pi- +c --- p_pi_plus_1 : the four momentum of the first pi+ +c --- p_pi_plus_2 : the four momentum of the second pi+ +c +c Note that : the energy is stored in the fourth component +c the values are the ones of the B rest frame +c a random rotation has been applied +c +c --- Real_Bp : The real part of the amplitude of +c the B+ ->- 3 pions decay +c --- Imag_Bp : The imaginary part of the amplitude of +c the B+ ->- 3 pions decay +c +c --- Real_Bm : The real part of the amplitude of +c the B- ->- 3 pions decay +c --- Imag_Bm : The imaginary part of the amplitude of +c +c**************************************************************************** +c----------------------------------------------------------------- + Implicit none +#include "EvtGenModels/EvtBTo3pi.inc" + Real*8 alpha_input + Integer iset + Real*8 p_pi_minus(4),p_pi_plus_1(4),p_pi_plus_2(4) + Real*8 Real_Bp,Imag_Bp,Real_Bm,Imag_Bm + +c Working quantities + Integer i,number + Real*8 p1(5),p2(5),p3(5) + Real*8 factor_max,ABp,ABm + Integer ierr + data factor_max/1.D+00/ + ierr =0 +c------------------------------------------------------------------- + If(iset.eq.0) Then +c------------------------------------------------------------------- +c this is the normal mode of operation +c First, generate the kinematics + + p1(5)= M_pim**2 + p2(5)= M_pip**2 + p3(5)= M_pip**2 + + 10 continue + call Evtfirst_step_MPP(p1,p2,p3) + +c Then, compute the amplitudes + + Call EvtCompute_MPP(p1,p2,p3, + + Real_Bp,Imag_Bp,Real_Bm,Imag_Bm,iset,ierr) + if(ierr.ne.0) Go To 10 +c------------------------------------------------------------------- + ElseIf(iset.lt.0) Then +c------------------------------------------------------------------- +c This is an user mode of operation where the kinematics is +c provided by the user who only wants the corresponding amplitudes +c to be computed + + Do i=1,4 + p1(i)= p_pi_minus (i) + p2(i)= p_pi_plus_1(i) + p3(i)= p_pi_plus_2(i) + End Do + p1(5)= M_pim**2 + p2(5)= M_pip**2 + p3(5)= M_pip**2 + + Call EvtCompute_MPP(p1,p2,p3, + + Real_Bp,Imag_Bp,Real_Bm,Imag_Bm,iset,ierr) + if(ierr.ne.0) Then + Print*,'the provided kinematics are not physical' + Print*,'ierr=',ierr + Print*,'the program will stop' + Stop + endif +c------------------------------------------------------------------- + ElseIf(iset.gt.0) Then +c------------------------------------------------------------------- +c This is the pre-run mode of operation where initializations are +c performed. + + factor_max= 0 +c changed by ryd April 27 1998. this causes an +c unaligned access probelm on OSF. +c (should Beta not be passed as an argument?) +c call Evtset_constants(alpha_input,0.362) + call Evtset_constants(alpha_input,0.362D0) + p1(5)=M_pim**2 + p2(5)=M_pip**2 + p3(5)=M_pip**2 + +c pre-run + Do number=1,iset + + 20 continue + call Evtfirst_step_MPP(p1,p2,p3) + + Call EvtCompute_MPP(p1,p2,p3, + + Real_Bp,Imag_Bp,Real_Bm,Imag_Bm,iset,ierr) + if(ierr.ne.0) Go To 20 + ABp = Real_Bp **2 + Imag_Bp **2 + ABm = Real_Bm **2 + Imag_Bm **2 + + If(ABp.gt.factor_max) factor_max=ABp + If(ABm.gt.factor_max) factor_max=ABm + + End Do +c end of the pre-run + + factor_max=1.D+00/Dsqrt(factor_max) + +c------------------------------------------------------------------- + End If +c------------------------------------------------------------------- + + Real_Bp =Real_Bp * factor_max + Imag_Bp =Imag_Bp * factor_max + Real_Bm =Real_Bm * factor_max + Imag_Bm =Imag_Bm * factor_max + + if(iset.lt.0) return +c P1,p2,p3 ---> random rotation in B rest frame + + Call EvtRotation(p1,1) + Call EvtRotation(p2,0) + Call EvtRotation(p3,0) + +C Feed the output four vectors + + Do i=1,4 + + p_pi_minus (i)=p1 (i) + p_pi_plus_1 (i)=p2 (i) + p_pi_plus_2 (i)=p3 (i) + + End Do + + Return + + End + +c=================================================================== + subroutine Evtfirst_step_MPP(P1,P2,P3) +c----------------------------------------------------------------- +c ---------------------------------------------------------- +c --- This routine generates the 5-vectors P1,P2,P3 +c --- Associated respectively with the Pi+ and two Pi0 s +c --- P1(1) = Px +c --- P1(2) = Py +c --- P1(3) = Pz +c --- P1(4) = E +c --- P1(5) = M**2 +c ---------------------------------------------------------- +c --- Input Four Vectors +C --- Particle [1] is the pi- +C --- Particle [2] is the pi+ +C --- Particle [3] is the pi+ +c ---------------------------------------------------------- + +c ---------------------------------------------------------- +c --- commons +c ---------------------------------------------------------- +#include "EvtGenModels/EvtBTo3pi.inc" +c ---------------------------------------------------------- +c --- Used Functions +c ---------------------------------------------------------- + + real evtranf + + +c ---------------------------------------------------------- +c --- Variables in Argument +c ---------------------------------------------------------- + + real*8 P1(5),P2(5),P3(5) + +c ---------------------------------------------------------- +c --- Local Variables +c ---------------------------------------------------------- + + real*8 m12,min_m12, max_m12 + real*8 m13,min_m13, max_m13 + real*8 m23,min_m23, max_m23 + Real*8 cost13,cost12,cost23 + + real*8 p1mom,p2mom,p3mom + + real*8 x, y, z, mass + integer i + + Logical Phase_space + data Phase_space/.false./ + +c initialize to avoid warning on linux + mass=0.0 + +c ---------------------------------------------------------- +c --- Computation +c ---------------------------------------------------------- + max_m12 = M_B**2 + min_m12 = P1(5) + P2(5) + + max_m13 = M_B**2 + min_m13 = P1(5) + P3(5) + + max_m23 = M_B**2 + min_m23 = P2(5) + P3(5) + +100 Continue + +c ---------------------------------------------------------- +c --- Generation of the Mass of the Rho(0) +c ---------------------------------------------------------- + + If(.not.Phase_space) Then + y = evtranf()*PI - PI/2. + x = Dtan(y) + mass = x*Gam_rho/2. +Mass_rho + End If + +c ---------------------------------------------------------- +c --- z is the Flag needed to choose between the generation +c --- of a Rho0 = pi- pi+[1] or pi- pi+[2] +c ---------------------------------------------------------- + + z = evtranf() + + if(z.lt..5) Then + + If(Phase_space) Then + m12 = evtranf()*(max_m12-min_m12)+min_m12 + Else + m12 = mass**2 + End If + + m13 = evtranf()*(max_m13-min_m13)+min_m13 + m23 = MB2 - m12 - m13 + + else + + If(Phase_space) Then + m13 = evtranf()*(max_m13-min_m13)+min_m13 + Else + m13 = mass**2 + End If + + m12 = evtranf()*(max_m12-min_m12)+min_m12 + m23 = MB2 - m12 - m13 + + endif + +c ---------------------------------------------------------- +c --- Check that the physics is OK : +c --- Are the invariant Masses in allowed ranges ? +c ---------------------------------------------------------- + + If(m23.lt.min_m23.or.m23.gt.max_m23) Go to 100 + If(m13.lt.min_m13.or.m13.gt.max_m13) Go to 100 + If(m12.lt.min_m12.or.m12.gt.max_m12) Go to 100 + +c ---------------------------------------------------------- +c --- Are the Cosines of the angles between particles +c --- Between -1 and +1 ? +c ---------------------------------------------------------- + + P1(4)=(M_B**2+P1(5)-m23)/(2.*M_B) + P2(4)=(M_B**2+P2(5)-m13)/(2.*M_B) + P3(4)=(M_B**2+P3(5)-m12)/(2.*M_B) + + p1mom=p1(4)**2-P1(5) + p2mom=p2(4)**2-P2(5) + p3mom=p3(4)**2-P3(5) + If(p1mom.lt.0) Go to 100 + If(p2mom.lt.0) Go to 100 + If(p3mom.lt.0) Go to 100 + p1mom=Dsqrt(p1mom) + p2mom=Dsqrt(p2mom) + p3mom=Dsqrt(p3mom) + + cost13=(2.*p1(4)*p3(4)+P1(5)+p3(5)-m13)/(2.*p1mom*p3mom) + cost12=(2.*p1(4)*p2(4)+P1(5)+p2(5)-m12)/(2.*p1mom*p2mom) + cost23=(2.*p2(4)*p3(4)+P2(5)+p3(5)-m23)/(2.*p2mom*p3mom) + If(Dabs(cost13).gt.1.) Go to 100 + If(Dabs(cost12).gt.1.) Go to 100 + If(Dabs(cost23).gt.1.) Go to 100 + +c ---------------------------------------------------------- +c --- Filling the 5-vectors P1,P2,P3 +c ---------------------------------------------------------- + + P3(1) = 0 + P3(2) = 0 + p3(3) = p3mom + + P1(3) = p1mom*cost13 + P1(1) = p1mom*Dsqrt(1.D+00-cost13**2) + p1(2) = 0. + + Do i=1,3 + P2(i)=-p1(i)-p3(i) + End do + + END + + +c====================================================================== + Subroutine EvtCompute_MPP(p1,p2,p3, + + Real_Bp,Imag_Bp,Real_Bm,Imag_Bm,iset,ierr) +c----------------------------------------------------------------------- + IMPLICIT None +#include "EvtGenModels/EvtBTo3pi.inc" + + + Real*8 m12, m13, W12, W13, Wtot + Real*4 evt_gmas + Complex*16 MatBp,MatBm + Real*8 Real_Bp,Imag_Bp,Real_Bm,Imag_Bm + Real*8 p1(5),p2(5),p3(5) + real*8 ASHQ + Integer iset,ierr + Data ASHQ/0.707107 D+00/ + + COMPLEX*16 Mat_rhop + Complex*16 BreitWigner + + ierr = 0 +c ---------------------------------------------------------------- +C --- Account for the pole compensation +c ---------------------------------------------------------------- + if(evt_gmas(p1,p2).lt.0.or.evt_gmas(p1,p3) + + .lt.0) Then + ierr=1 + return + endif + + m12 = sqrt(evt_gmas(p1,p2)) + m13 = sqrt(evt_gmas(p1,p3)) + + W12 = (1./m12)*1./((Mass_rho - m12)**2+(Gam_rho/2.)**2) + W13 = (1./m13)*1./((Mass_rho - m13)**2+(Gam_rho/2.)**2) + + If(iset.ge.0) Then + Wtot = 1.D+00/Dsqrt(W12 + W13) + else + Wtot = 1. + endif +c ---------------------------------------------------------------- +C --- Compute Breit-Wigners +c ---------------------------------------------------------------- + + Mat_rhop = BreitWigner(p1,p2,p3,ierr) + + + BreitWigner(p1,p3,p2,ierr) + +c ---------------------------------------------------------------- +C --- Build up the amplitudes +c ---------------------------------------------------------------- +c The factor ASHQ = 1./sqrt(2) is here just to stick to the notations +c used by Art Snyder and Helen Quinn. It is irrelevant for the genera- +c tion of events done here. + + MatBp = Mat_s2 * Mat_rhop * Wtot * ASHQ + + MatBm = Nat_s2 * Mat_rhop * Wtot * ASHQ + +c Pick up the Real and Imaginary parts +c changed Real to DBLE and Imag DIMAG to make it complie +c with Absoft and g77 (ryd) + + Real_Bp = DBLE(MatBp) + Imag_Bp = DIMAG(MatBp) + + Real_Bm = DBLE(MatBm) + Imag_Bm = DIMAG(MatBm) + + Return + End diff --git a/TEvtGen/EvtGenModels/EvtBTo3piP00.F b/TEvtGen/EvtGenModels/EvtBTo3piP00.F new file mode 100644 index 00000000000..475d58f328d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBTo3piP00.F @@ -0,0 +1,577 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See EvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: EvtBTo3piP00.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C +C------------------------------------------------------------------------ +C=================================================================== +C This package is providing a B -->-- 3pions decay generator +C Its is composed of the following subroutines: +C +C [*] HowToUse +C This is an How To Use routine where one may find the +C implementation of the time dependance: That is to +C say that it shows how the output of the routine is +C supposed to be used in the mind of the authors. +C +C=================================================================== +C [0] EVT3pions +C The routine to be called. Note that on the first call +C some initialization will be made, in particular the +C computation of a normalization factor designed to help +C the subsequent time-dependent generation of events. +C The normalisation done inside EVT3pions is such that +C at the level of the time implementation, the maximum +C time-dependant weight is unity : nothing is to be +C computed to generate unity-weight events. The exact +C meaning of the above is made explicit in the HowToUse +C routine. +C [1] first_step_P00 +C Generation of the kinematics of the 3 pions +C It uses the function ranf which is a random number +C generator providing an uniform distribution +C of Real*4 random number between 0 and 1 +C [2] compute +C return the amplitudes of the B0 -->-- 3pions +C and of the B0_bar -->-- 3pions +C corrected for the generation mechanism +C The notations used are the ones of the paper of +C A. Snyder and H. Quinn [Phys.Rev.D48 (1993) 2139] +C [3] BreitWigner +C compute the Breit-Wigner of the contributing rho s +C taking into account the cosine term linked to the +C zero-helicity of the rho s. There is three forms of +C Breit-Wigners available. The first one is the simple +C non-relativistic form, while the second and third +C ones are more involved relativistic expressions which +C in addition incorporate the contributions of three +C rho resonances [rho(770:1450:1700)]. The parameters +C used are the ones resulting from the ALEPH analysis +C which might be found in CERN-PPE:97013 (submitted to +C Zeitschrift für Physik C). The two parametrizations +C of the relativistic Breit-Wigners are the ones of +C Kuhn-SantaMaria [default] and of Gounaris-Sakurai. +C The default setting is the non-relativistic Breit- +C Wigner form. +C [4] Set_constants +C Set the constants values, from the pion mass to the +C penguin contributions. It is called by EVT3pions +C +C And other routines which do not deserve comment here. +C=================================================================== +c +c call EvtHowToUse_P00 +c Stop +c End + + subroutine EvtHowToUse_P00 + + Implicit none + Real*8 alpha + Integer iset,number,j,N_gener,N_asked + + Real*8 p_pi_plus(4) + Real*8 p_gamma_1(4),p_gamma_2(4),p_gamma_3(4),p_gamma_4(4) + + Real*8 Real_Bp,Imag_Bp,Real_Bm,Imag_Bm + Real*8 Weight,Weight_max + Real*8 ABp,ABm + Real*8 m_rho12,m_rho13 + Real*4 Evtranf,Tag + + alpha = 0.4 + N_gener = 0 + N_asked = 100000 + + weight_max = 1.0 + +c run : Simulation of the Anders Ryd Generator + + Do number=1,N_asked ! weighted events as generated here + + If(number.eq.1) then + iset=10000 ! 10^4 events are used to normalize amplitudes + Else + iset=0 ! iset must be reset to zero after the first call + End If + +c Here is the call to EVT3pions_P00 !!!!!!!!!!!!!!!! +c communication of data is done by argument only <<<<<<<< + call EVT3pionsP00( + + alpha,iset, + + p_pi_plus, + + p_gamma_1,p_gamma_2,p_gamma_3,p_gamma_4, + + Real_Bp,Imag_Bp,Real_Bm,Imag_Bm) + +C that is it !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +c select the Tag + Tag =evtranf() +C get the relevant quantities + ABp = Real_Bp **2 + Imag_Bp **2 + ABm = Real_Bp **2 + Imag_Bm **2 +c generate acording to the tag + If(Tag.gt.0.5) Then + +c a Bm tag => the decay is one from a Bp + Weight= ABp + + Else + +c a Bp tag => the decay is one from a Bm + Weight= ABm + + End If + If(Weight.Gt.evtranf()) Then +c---------------------------------------------------------------------------- +c unweighted event production +c---------------------------------------------------------------------------- + N_gener=N_gener+1 +C here is just a Dalitz plot and a few prints + + m_rho12=(p_pi_plus (4)+p_gamma_1(4)+p_gamma_2(4))**2 + m_rho13=(p_pi_plus (4)+p_gamma_3(4)+p_gamma_4(4))**2 + do j=1,3 + m_rho12=m_rho12-(p_pi_plus (j)+p_gamma_1(j)+p_gamma_2(j))**2 + m_rho13=m_rho13-(p_pi_plus (j)+p_gamma_3(j)+p_gamma_4(j))**2 + end do + +c here is a check that weight_max is one + + If(Weight.gt.Weight_max) Then + Weight_max=Weight + Print*,' overweighted event found at weight = ',Weight_max + End If + +c---------------------------------------------------------------------------- + End If + +c end of the loop over events + End Do + + Print*,'number of unity-weight events generated : ',N_gener + Print*,'number of trials : ',N_asked + + End +C=================================================================== + subroutine Evt3pionsP00( + + alpha_input,iset, + + p_pi_plus, + + p_pi_1_gamma_1,p_pi_1_gamma_2, + + p_pi_2_gamma_1,p_pi_2_gamma_2, + + Real_Bp,Imag_Bp,Real_Bm,Imag_Bm) +c----------------------------------------------------------------- +c ---------------------------------------------------------- +c --- This is the routine to be called by the Main generator +c to get the decay of B+ -->-- 3 pions +c --- AND +c to get the decay of B- -->-- 3 pions +C For the sake of clarity, signs refers to B+ decay +c**************************************************************************** set to 0. +c --- Outputs are : +c +c --- p_pi_plus : the four momentum of the pi+ +c Then, for the first pi0 +c --- p_pi_1_gamma_1 : the four momentum of the first photon +c --- p_pi_1_gamma_2 : the four momentum of the second photon +c Then, for the second pi0 +c --- p_pi_2_gamma_1 : the four momentum of the first photon +c --- p_pi_2_gamma_2 : the four momentum of the second photon +c +c Note that : the energy is stored in the fourth component +c the values are the ones of the B rest frame +c a random rotation has been applied +c +c --- Real_B0p : The real part of the amplitude of +c the B+ ->- 3 pions decay +c --- Imag_B0p : The imaginary part of the amplitude of +c the B+ ->- 3 pions decay +c +c --- Real_B0m : The real part of the amplitude of +c the B- ->- 3 pions decay +c --- Imag_B0m : The imaginary part of the amplitude of +c +c**************************************************************************** +c----------------------------------------------------------------- + Implicit none +#include "EvtGenModels/EvtBTo3pi.inc" + Real*8 alpha_input + Integer iset + Real*8 p_pi_plus(4) + Real*8 p_pi_1_gamma_1(4),p_pi_1_gamma_2(4) + Real*8 p_pi_2_gamma_1(4),p_pi_2_gamma_2(4) + Real*8 Real_Bp,Imag_Bp,Real_Bm,Imag_Bm + +c Working quantities + Integer i,number + Real*8 p1(5),p2(5),p3(5) + Real*8 Gamma1(5),Gamma2(5),Gamma3(5),Gamma4(5) + Real*8 factor_max,ABp,ABm + Integer ierr + data factor_max/1.D+00/ + ierr =0 +c------------------------------------------------------------------- + If(iset.eq.0) Then +c------------------------------------------------------------------- +c this is the normal mode of operation +c First, generate the kinematics + + p1(5)=M_pip**2 + p2(5)=M_pi0**2 + p3(5)=M_pi0**2 + + + 10 continue + call Evtfirst_step_P00(p1,p2,p3) + +c Then, compute the amplitudes + + Call EvtCompute_P00(p1,p2,p3, + + Real_Bp,Imag_Bp,Real_Bm,Imag_Bm,iset,ierr) + if(ierr.ne.0 ) Go To 10 +c------------------------------------------------------------------- + ElseIf(iset.lt.0) Then +c------------------------------------------------------------------- +c This is an user mode of operation where the kinematics is +c provided by the user who only wants the corresponding amplitudes +c to be computed + + Do i=1,4 + p1(i)= p_pi_plus (i) + p2(i)= p_pi_1_gamma_1 (i) + p_pi_1_gamma_2 (i) + p3(i)= p_pi_2_gamma_1 (i) + p_pi_2_gamma_2 (i) + End Do + p1(5)= M_pip**2 + p2(5)= M_pi0**2 + p3(5)= M_pi0**2 + + Call EvtCompute_P00(p1,p2,p3, + + Real_Bp,Imag_Bp,Real_Bm,Imag_Bm,iset,ierr) + + if(ierr.ne.0) Then + Print*,'the provided kinematics are not physical' + Print*,'ierr=',ierr + Print*,'the program will stop' + Stop + endif +c------------------------------------------------------------------- + ElseIf(iset.gt.0) Then +c------------------------------------------------------------------- +c This is the pre-run mode of operation where initializations are +c performed. + + factor_max= 0 +c changed by ryd April 24 1998. +c 0.35 is the value of beta? should it not be +c passed in as an argument???? +c call Evtset_constants(alpha_input,0.362) + call Evtset_constants(alpha_input,0.362D0) + p1(5)=M_pip**2 + p2(5)=M_pi0**2 + p3(5)=M_pi0**2 + +c pre-run + Do number=1,iset + + 20 continue + call Evtfirst_step_P00(p1,p2,p3) + + Call EvtCompute_P00(p1,p2,p3, + + Real_Bp,Imag_Bp,Real_Bm,Imag_Bm,iset,ierr) + if(ierr.ne.0) Go To 20 + ABp = Real_Bp **2 + Imag_Bp **2 + ABm = Real_Bm **2 + Imag_Bm **2 + + If(ABp.gt.factor_max) factor_max=ABp + If(ABm.gt.factor_max) factor_max=ABm + + End Do +c end of the pre-run + + factor_max=1.D+00/Dsqrt(factor_max) + +c------------------------------------------------------------------- + End If +c------------------------------------------------------------------- + + Real_Bp =Real_Bp * factor_max + Imag_Bp =Imag_Bp * factor_max + Real_Bm =Real_Bm * factor_max + Imag_Bm =Imag_Bm * factor_max + + if(iset.lt.0) return +c P1,p2,p3 ---> random rotation in B rest frame + + Call EvtRotation(p1,1) + Call EvtRotation(p2,0) + Call EvtRotation(p3,0) + +C Desintegrate the pi_0 s + + Call EvtGammaGamma(p2,Gamma1,Gamma2) + Call EvtGammaGamma(p3,Gamma3,Gamma4) + +C Feed the output four vectors + + Do i=1,4 + + p_pi_plus (i)=p1 (i) + p_pi_1_gamma_1 (i)=Gamma1(i) + p_pi_1_gamma_2 (i)=Gamma2(i) + p_pi_2_gamma_1 (i)=Gamma3(i) + p_pi_2_gamma_2 (i)=Gamma4(i) + + End Do + + Return + + End + +c=================================================================== + subroutine Evtfirst_step_P00(P1,P2,P3) +c----------------------------------------------------------------- +c ---------------------------------------------------------- +c --- This routine generates the 5-vectors P1,P2,P3 +c --- Associated respectively with the Pi+ and two Pi0 s +c --- P1(1) = Px +c --- P1(2) = Py +c --- P1(3) = Pz +c --- P1(4) = E +c --- P1(5) = M**2 +c ---------------------------------------------------------- +c --- Input Four Vectors +C --- Particle [1] is the pi+ +C --- Particle [2] is the pi0 +C --- Particle [3] is the pi0 +c ---------------------------------------------------------- + +c ---------------------------------------------------------- +c --- commons +c ---------------------------------------------------------- +#include "EvtGenModels/EvtBTo3pi.inc" +c ---------------------------------------------------------- +c --- Used Functions +c ---------------------------------------------------------- + + real evtranf + +c ---------------------------------------------------------- +c --- Variables in Argument +c ---------------------------------------------------------- + + real*8 P1(5),P2(5),P3(5) + +c ---------------------------------------------------------- +c --- Local Variables +c ---------------------------------------------------------- + + real*8 m12,min_m12, max_m12 + real*8 m13,min_m13, max_m13 + real*8 m23,min_m23, max_m23 + Real*8 cost13,cost12,cost23 + + real*8 p1mom,p2mom,p3mom + + real*8 x, y, z, mass + integer i + + Logical Phase_space + data Phase_space/.false./ + +c initialize to avoid warning on linux + mass=0.0 + +c ---------------------------------------------------------- +c --- Computation +c ---------------------------------------------------------- + max_m12 = M_B**2 + min_m12 = P1(5) + P2(5) + + max_m13 = M_B**2 + min_m13 = P1(5) + P3(5) + + max_m23 = M_B**2 + min_m23 = P2(5) + P3(5) + +100 Continue + +c ---------------------------------------------------------- +c --- Generation of the Mass of the Rho(+) +c ---------------------------------------------------------- + + If(.not.Phase_space) Then + y = evtranf()*PI - PI/2. + x = Dtan(y) + mass = x*Gam_rho/2. +Mass_rho + End If + +c ---------------------------------------------------------- +c --- z is the Flag needed to choose between the generation +c --- of a Rho+ = pi+ pi_0[1] or pi+ pi_0[2] +c ---------------------------------------------------------- + + z = evtranf() + + if(z.lt..5) Then + + If(Phase_space) Then + m12 = evtranf()*(max_m12-min_m12)+min_m12 + Else + m12 = mass**2 + End If + + m13 = evtranf()*(max_m13-min_m13)+min_m13 + m23 = MB2 - m12 - m13 + + else + + If(Phase_space) Then + m13 = evtranf()*(max_m13-min_m13)+min_m13 + Else + m13 = mass**2 + End If + + m12 = evtranf()*(max_m12-min_m12)+min_m12 + m23 = MB2 - m12 - m13 + + endif + +c ---------------------------------------------------------- +c --- Check that the physics is OK : +c --- Are the invariant Masses in allowed ranges ? +c ---------------------------------------------------------- + + If(m23.lt.min_m23.or.m23.gt.max_m23) Go to 100 + If(m13.lt.min_m13.or.m13.gt.max_m13) Go to 100 + If(m12.lt.min_m12.or.m12.gt.max_m12) Go to 100 + +c ---------------------------------------------------------- +c --- Are the Cosines of the angles between particles +c --- Between -1 and +1 ? +c ---------------------------------------------------------- + + P1(4)=(M_B**2+P1(5)-m23)/(2.*M_B) + P2(4)=(M_B**2+P2(5)-m13)/(2.*M_B) + P3(4)=(M_B**2+P3(5)-m12)/(2.*M_B) + + p1mom=p1(4)**2-P1(5) + p2mom=p2(4)**2-P2(5) + p3mom=p3(4)**2-P3(5) + If(p1mom.lt.0) Go to 100 + If(p2mom.lt.0) Go to 100 + If(p3mom.lt.0) Go to 100 + p1mom=Dsqrt(p1mom) + p2mom=Dsqrt(p2mom) + p3mom=Dsqrt(p3mom) + + cost13=(2.*p1(4)*p3(4)+P1(5)+p3(5)-m13)/(2.*p1mom*p3mom) + cost12=(2.*p1(4)*p2(4)+P1(5)+p2(5)-m12)/(2.*p1mom*p2mom) + cost23=(2.*p2(4)*p3(4)+P2(5)+p3(5)-m23)/(2.*p2mom*p3mom) + If(Dabs(cost13).gt.1.) Go to 100 + If(Dabs(cost12).gt.1.) Go to 100 + If(Dabs(cost23).gt.1.) Go to 100 + +c ---------------------------------------------------------- +c --- Filling the 5-vectors P1,P2,P3 +c ---------------------------------------------------------- + + P3(1) = 0 + P3(2) = 0 + p3(3) = p3mom + + P1(3) = p1mom*cost13 + P1(1) = p1mom*Dsqrt(1.D+00-cost13**2) + p1(2) = 0. + + Do i=1,3 + P2(i)=-p1(i)-p3(i) + End do + + END + + +c====================================================================== + Subroutine EvtCompute_P00(p1,p2,p3, + + Real_Bp,Imag_Bp,Real_Bm,Imag_Bm,iset,ierr) +c----------------------------------------------------------------------- + IMPLICIT None +#include "EvtGenModels/EvtBTo3pi.inc" + + + Real*8 m12, m13, W12, W13, Wtot + Real*4 evt_gmas + Complex*16 MatBp,MatBm + Real*8 Real_Bp,Imag_Bp,Real_Bm,Imag_Bm + Real*8 p1(5),p2(5),p3(5) + real*8 ASHQ + Data ASHQ/0.707107 D+00/ + + Integer ierr,iset + COMPLEX*16 Mat_rhop + Complex*16 BreitWigner + + ierr = 0 +c ---------------------------------------------------------------- +C --- Account for the pole compensation +c ---------------------------------------------------------------- + + if(evt_gmas(p1,p2).lt.0.or.evt_gmas(p1,p3) + + .lt.0.or.evt_gmas(p2,p3).lt.0) Then + ierr=1 + Print*,'ierr = ',ierr + return + endif + m12 = sqrt(evt_gmas(p1,p2)) + m13 = sqrt(evt_gmas(p1,p3)) + + W12 = (1./m12)*1./((Mass_rho - m12)**2+(Gam_rho/2.)**2) + W13 = (1./m13)*1./((Mass_rho - m13)**2+(Gam_rho/2.)**2) + if(iset.ge.0) Then + Wtot = 1.D+00/Dsqrt(W12 + W13) + else + Wtot =1. + Endif +c ---------------------------------------------------------------- +C --- Compute Breit-Wigners +c ---------------------------------------------------------------- + + Mat_rhop = BreitWigner(p1,p2,p3,ierr) + + + BreitWigner(p1,p3,p2,ierr) + +c ---------------------------------------------------------------- +C --- Build up the amplitudes +c ---------------------------------------------------------------- +c The factor ASHQ = 1./sqrt(2) is here just to stick to the notations +c used by Art Snyder and Helen Quinn. It is irrelevant for the genera- +c tion of events done here. + + MatBp = Mat_s1 * Mat_rhop * Wtot * ASHQ + + MatBm = Nat_s1 * Mat_rhop * Wtot * ASHQ + +c Pick up the Real and Imaginary parts +c changed Real to DBLE and Imag DIMAG to make it complie +c with Absoft and g77 (ryd) + + + Real_Bp = DBLE(MatBp) + Imag_Bp = DIMAG(MatBp) + + Real_Bm = DBLE(MatBm) + Imag_Bm = DIMAG(MatBm) + + Return + End + diff --git a/TEvtGen/EvtGenModels/EvtBTo4piCP.cxx b/TEvtGen/EvtGenModels/EvtBTo4piCP.cxx new file mode 100644 index 00000000000..136547256b9 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBTo4piCP.cxx @@ -0,0 +1,259 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtBTo4piCP.cc +// +// Description: Routine to decay B->pi+ pi- pi+ pi-. +// +// Modification history: +// +// RYD March 2, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtBTo4piCP.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtConst.hh" +#include + +EvtBTo4piCP::~EvtBTo4piCP() {} + + +EvtComplex EvtAmpA2(const EvtVector4R& p4pi1,const EvtVector4R& p4pi2, + const EvtVector4R& p4pi3,const EvtVector4R& p4pi4){ + + //added by Lange Jan4,2000 + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + EvtVector4R p4a2,p4rho,p4b; + + p4rho=p4pi1+p4pi2; + + p4a2=p4rho+p4pi3; + + p4b=p4a2+p4pi4; + + EvtVector4R p4b_a2,p4rho_a2,p4pi1_a2,p4a2_a2; + + p4b_a2=boostTo(p4b,p4a2); + p4rho_a2=boostTo(p4rho,p4a2); + p4pi1_a2=boostTo(p4pi1,p4a2); + p4a2_a2=boostTo(p4a2,p4a2); + + EvtVector4R p4pi1_rho; + + p4pi1_rho=boostTo(p4pi1_a2,p4rho_a2); + + EvtVector4R vb,vrho,vpi,t; + + vb=p4b_a2/p4b_a2.d3mag(); + vrho=p4rho_a2/p4rho_a2.d3mag(); + vpi=p4pi1_rho/p4pi1_rho.d3mag(); + + t.set(1.0,0.0,0.0,0.0); + + // EvtComplex amp_a1,amp_a2; + EvtComplex amp_a2; + + // double bwm_a1=EvtPDL::getMeanMass(A1M); + // double gamma_a1=EvtPDL::getWidth(A1M); + double bwm_a2=EvtPDL::getMeanMass(A2M); + double gamma_a2=EvtPDL::getWidth(A2M); + double bwm_rho=EvtPDL::getMeanMass(RHO0); + double gamma_rho=EvtPDL::getWidth(RHO0); + + amp_a2=(sqrt(gamma_a2/EvtConst::twoPi)/ + ((p4a2).mass()-bwm_a2-EvtComplex(0.0,0.5*gamma_a2)))* + (sqrt(gamma_rho/EvtConst::twoPi)/ + ((p4rho).mass()-bwm_rho-EvtComplex(0.0,0.5*gamma_rho))); + + return amp_a2* + (vb.get(1)*vrho.get(1)+vb.get(2)*vrho.get(2)+vb.get(3)*vrho.get(3))* + ( + vpi.get(1)*(vb.get(2)*vrho.get(3)-vb.get(3)*vrho.get(2))+ + vpi.get(2)*(vb.get(3)*vrho.get(1)-vb.get(1)*vrho.get(3))+ + vpi.get(3)*(vb.get(1)*vrho.get(2)-vb.get(2)*vrho.get(1)) + ); + +} + +EvtComplex EvtAmpA1(const EvtVector4R& p4pi1,const EvtVector4R& p4pi2, + const EvtVector4R& p4pi3,const EvtVector4R& p4pi4){ + + //added by Lange Jan4,2000 + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + EvtVector4R p4a1,p4rho,p4b; + + p4rho=p4pi1+p4pi2; + + p4a1=p4rho+p4pi3; + + p4b=p4a1+p4pi4; + + EvtVector4R p4b_a1,p4rho_a1,p4pi1_a1,p4a1_a1; + + p4b_a1=boostTo(p4b,p4a1); + p4rho_a1=boostTo(p4rho,p4a1); + p4pi1_a1=boostTo(p4pi1,p4a1); + p4a1_a1=boostTo(p4a1,p4a1); + + EvtVector4R p4pi1_rho; + + p4pi1_rho=boostTo(p4pi1_a1,p4rho_a1); + + EvtVector4R vb,vrho,vpi,t; + + vb=p4b_a1/p4b_a1.d3mag(); + vrho=p4rho_a1/p4rho_a1.d3mag(); + vpi=p4pi1_rho/p4pi1_rho.d3mag(); + + t.set(1.0,0.0,0.0,0.0); + + EvtComplex amp_a1; + + double bwm_a1=EvtPDL::getMeanMass(A1M); + double gamma_a1=EvtPDL::getWidth(A1M); + // double bwm_a2=EvtPDL::getMeanMass(A2M); + // double gamma_a2=EvtPDL::getWidth(A2M); + double bwm_rho=EvtPDL::getMeanMass(RHO0); + double gamma_rho=EvtPDL::getWidth(RHO0); + + amp_a1=(sqrt(gamma_a1/EvtConst::twoPi)/ + ((p4a1).mass()-bwm_a1-EvtComplex(0.0,0.5*gamma_a1)))* + (sqrt(gamma_rho/EvtConst::twoPi)/ + ((p4rho).mass()-bwm_rho-EvtComplex(0.0,0.5*gamma_rho))); + + return amp_a1* + (vb.get(1)*vpi.get(1)+vb.get(2)*vpi.get(2)+vb.get(3)*vpi.get(3)); + +} + + +std::string EvtBTo4piCP::getName(){ + + return "BTO4PI_CP"; + +} + + +EvtDecayBase* EvtBTo4piCP::clone(){ + + return new EvtBTo4piCP; + +} + +void EvtBTo4piCP::init(){ + + // check that there are 18 arguments + checkNArg(18); + checkNDaug(4); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + checkSpinDaughter(2,EvtSpinType::SCALAR); + checkSpinDaughter(3,EvtSpinType::SCALAR); +} + +void EvtBTo4piCP::decay( EvtParticle *p){ + + //added by Lange Jan4,2000 + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + + double t; + EvtId other_b; + + EvtCPUtil::OtherB(p,t,other_b); + + p->initializePhaseSpace(getNDaug(),getDaugs()); + EvtVector4R mom1 = p->getDaug(0)->getP4(); + EvtVector4R mom2 = p->getDaug(1)->getP4(); + EvtVector4R mom3 = p->getDaug(2)->getP4(); + EvtVector4R mom4 = p->getDaug(3)->getP4(); + + // double alpha=getArg(0); + //double dm=getArg(1); + + EvtComplex amp; + + EvtComplex A,Abar; + + + EvtComplex A_a1p,Abar_a1p,A_a2p,Abar_a2p; + EvtComplex A_a1m,Abar_a1m,A_a2m,Abar_a2m; + + A_a1p=EvtComplex(getArg(2)*cos(getArg(3)),getArg(2)*sin(getArg(3))); + Abar_a1p=EvtComplex(getArg(4)*cos(getArg(5)),getArg(4)*sin(getArg(5))); + + A_a2p=EvtComplex(getArg(6)*cos(getArg(7)),getArg(6)*sin(getArg(7))); + Abar_a2p=EvtComplex(getArg(8)*cos(getArg(9)),getArg(8)*sin(getArg(9))); + + A_a1m=EvtComplex(getArg(10)*cos(getArg(11)),getArg(10)*sin(getArg(11))); + Abar_a1m=EvtComplex(getArg(12)*cos(getArg(13)),getArg(12)*sin(getArg(13))); + + A_a2m=EvtComplex(getArg(14)*cos(getArg(15)),getArg(14)*sin(getArg(15))); + Abar_a2m=EvtComplex(getArg(16)*cos(getArg(17)),getArg(16)*sin(getArg(17))); + + EvtComplex a2p_amp=EvtAmpA2(mom1,mom2,mom3,mom4)+ + EvtAmpA2(mom1,mom4,mom3,mom2)+ + EvtAmpA2(mom3,mom2,mom1,mom4)+ + EvtAmpA2(mom3,mom4,mom1,mom2); + + EvtComplex a2m_amp=EvtAmpA2(mom2,mom3,mom4,mom1)+ + EvtAmpA2(mom2,mom1,mom4,mom3)+ + EvtAmpA2(mom4,mom3,mom2,mom1)+ + EvtAmpA2(mom4,mom1,mom2,mom3); + + EvtComplex a1p_amp=EvtAmpA1(mom1,mom2,mom3,mom4)+ + EvtAmpA1(mom1,mom4,mom3,mom2)+ + EvtAmpA1(mom3,mom2,mom1,mom4)+ + EvtAmpA1(mom3,mom4,mom1,mom2); + + EvtComplex a1m_amp=EvtAmpA1(mom2,mom3,mom4,mom1)+ + EvtAmpA1(mom2,mom1,mom4,mom3)+ + EvtAmpA1(mom4,mom3,mom2,mom1)+ + EvtAmpA1(mom4,mom1,mom2,mom3); + + + A=A_a2p*a2p_amp+A_a1p*a1p_amp+ + A_a2m*a2m_amp+A_a1m*a1m_amp; + Abar=Abar_a2p*a2p_amp+Abar_a1p*a1p_amp+ + Abar_a2m*a2m_amp+Abar_a1m*a1m_amp; + + + if (other_b==B0B){ + amp=A*cos(getArg(1)*t/(2*EvtConst::c))+ + EvtComplex(cos(-2.0*getArg(0)),sin(-2.0*getArg(0)))* + getArg(2)*EvtComplex(0.0,1.0)*Abar*sin(getArg(1)*t/(2*EvtConst::c)); + } + if (other_b==B0){ + amp=A*EvtComplex(cos(2.0*getArg(0)),sin(2.0*getArg(0)))* + EvtComplex(0.0,1.0)*sin(getArg(1)*t/(2*EvtConst::c))+ + getArg(2)*Abar*cos(getArg(1)*t/(2*EvtConst::c)); + } + + vertex(amp); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtBTo4piCP.hh b/TEvtGen/EvtGenModels/EvtBTo4piCP.hh new file mode 100644 index 00000000000..e61795fb23f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBTo4piCP.hh @@ -0,0 +1,43 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtBTo4piCP.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTO4PICP_HH +#define EVTBTO4PICP_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtBTo4piCP:public EvtDecayAmp { + +public: + + EvtBTo4piCP() {} + virtual ~EvtBTo4piCP(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtBToKpipi.F b/TEvtGen/EvtGenModels/EvtBToKpipi.F new file mode 100644 index 00000000000..4e692078b46 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBToKpipi.F @@ -0,0 +1,727 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See EvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: EvtBToKpipi.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C +C------------------------------------------------------------------------ +C=================================================================== +C This package is providing a neutral B -->-- K pi pi decay generator +C Its is composed of the following subroutines: +C +C [*] HowToUse +C This is an How To Use routine where one may find the +C implementation of the time dependance: That is to +C say that it shows how the output of the routine is +C supposed to be used in the mind of the authors. +C +C=================================================================== +C [0] EVTKpipi +C The routine to be called. Note that on the first call +C some initialization will be made, in particular the +C computation of a normalization factor designed to help +C the subsequent time-dependent generation of events. +C The normalisation done inside EVTKpipi is such that +C at the level of the time implementation, the maximum +C time-dependant weight is unity : nothing is to be +C computed to generate unity-weight events. The exact +C meaning of the above is made explicit in the HowToUse +C routine. +C [1] first_step_Kpipi +C Generation of the kinematics of the 3 prongs +C It uses the function evtranf which is a random number +C generator providing an uniform distribution +C of Real*4 random number between 0 and 1 +C [2] compute +C return the amplitudes of the B0 -->-- K+pi-pi0 +C corrected for the generation mechanism. +c Note that this is a Tagging Mode. The CP conjugate +c mode (B0bar -->-- K-pi+pi0) is treated at the same time. +C [3] BreitWigner +C compute the Breit-Wigner of the contributing K* and rho +C taking into account the cosine term linked to the +C zero-helicity of the spin-1 resonances. There is two +c forms of Breit-Wigners available. The first one is the +c simple non-relativistic form, while the second is the +C relativistic expressions. +C The default setting is the relativistic one. +C [4] Set_constants +C Set the constants values, from the pion mass to the +C penguin contributions. It is called by EVTKpipi +C +C And other routines which do not deserve comment here. +C=================================================================== +c Implicit none +C Real Hmemor +C Common/Pawc/Hmemor(1000000) +C Call Hlimit(1000000) +C Call EvtHowToUse_Kpipi +C Stop +C End + + + subroutine EvtHowToUse_Kpipi + + Implicit none + Real*8 alphaCP, betaCP + Integer iset,number,j,N_gener,N_asked + + Real*8 p_K_plus(4),p_pi_minus(4) + Real*8 p_gamma_1(4),p_gamma_2(4) + + Real*8 Real_B0,Imag_B0,Real_B0bar,Imag_B0Bar + Real*8 Weight,Weight_max + Real*8 m_Kstarp,m_Kstar0,m_rhom + Real*8 Wrong + Real*4 Evtranf,Tag + + alphaCP = 1.35 + betaCP = 0.362 + N_gener = 0 + N_asked = 100000 + + weight_max = 1.0 + +c run : Simulation of the Anders Ryd Generator + + Do number=1,N_asked ! weighted events as generated here + + If(number.eq.1) then + iset=10000 ! 10^4 events are used to normalize amplitudes + Else + iset=0 ! iset must be reset to zero after the first call + End If + +c Here is the call to EVTKpipi !!!!!!!!!!!!!!!! +c communication of data is done by argument only <<<<<<<< + call EVTKpipi( + + alphaCP,betaCP,iset, + + p_K_plus,p_pi_minus, + + p_gamma_1,p_gamma_2, + + Real_B0,Imag_B0,real_B0bar,Imag_B0bar) +C that is it !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! +c select the Tag + Tag =evtranf() +c generate acording to the tag + If(Tag.gt.0.5) Then + +c a B0bar tag => the decay is one from a B0 + Weight= Real_B0 **2 + Imag_B0 **2 + + Else + +c a B0 tag => the decay is one from a B0bar + Weight= Real_B0bar **2 + Imag_B0bar **2 + + End If + + If(Weight.Gt.evtranf()) Then +c---------------------------------------------------------------------------- +c unweighted event production +c---------------------------------------------------------------------------- + N_gener=N_gener+1 +C here is just a Dalitz plot and a few prints + + m_Kstarp=(p_K_plus (4)+p_gamma_1(4)+p_gamma_2(4))**2 + m_rhom =(p_pi_minus (4)+p_gamma_1(4)+p_gamma_2(4))**2 + m_Kstar0=(p_K_plus (4)+p_pi_minus (4)) **2 + do j=1,3 + m_Kstarp=m_Kstarp -(p_K_plus (j)+p_gamma_1(j)+p_gamma_2(j))**2 + m_rhom =m_rhom -(p_pi_minus (j)+p_gamma_1(j)+p_gamma_2(j))**2 + m_Kstar0=m_Kstar0 -(p_K_plus (j)+p_pi_minus (j)) **2 + end do + +c here is the Dalitz plot when assuming the pion mass for the Kaon +c the energy is redefined + Wrong =0. + do j=1,3 + Wrong = Wrong + p_K_plus(j)**2 + end do + Wrong = Dsqrt(Wrong+0.139**2) + + m_Kstarp=(Wrong +p_gamma_1(4)+p_gamma_2(4))**2 + m_Kstar0=(Wrong +p_pi_minus (4)) **2 + do j=1,3 + m_Kstarp=m_Kstarp -(p_K_plus (j)+p_gamma_1(j)+p_gamma_2(j))**2 + m_Kstar0=m_Kstar0 -(p_K_plus (j)+p_pi_minus (j)) **2 + end do + +c here is a check that weight_max is one + + If(Weight.gt.Weight_max) Then + Weight_max=Weight + Print*,' overweighted event found at weight = ',Weight_max + End If + +c---------------------------------------------------------------------------- + End If + +c end of the loop over events + End Do + + Print*,'number of unity-weight events generated : ',N_gener + Print*,'number of trials : ',N_asked + + End +C=================================================================== + subroutine EvtKpipi( + + alpha_input,beta_input,iset, + + p_K_plus,p_pi_minus, + + p_gamma_1,p_gamma_2, + + Real_B0,Imag_B0,Real_B0bar,Imag_B0bar) +c----------------------------------------------------------------- +c ---------------------------------------------------------- +c --- This is the routine to be called by the Main generator +c to get the decay of B0 -->-- K+ pi- pi0 +c The decay proceeeds through three channels: +c a) B0 -->-- K*+ pi- ; K*+ -->-- K+ pi0 +c b) K*0 pi0 ; K*0bar -->-- K+ pi- +c c) K- rho+ ; rho+ -->-- pi+ pi0 +c .) The K0 rho0 channel is not implemented since it does +c not lead to Kpipi final state, but it is interesting +c in itself. +c It provides at the same time the CP conjugate decay +c B0bar -->-- K- pi+ pi0 +c**************************************************************************** +c --- Outputs are : +c +c --- p_K_plus : the four momentum of the K+ +c --- p_pi_minus : ........................ pi- +c --- p_gamma_1 : ........................ first gamma of the pi0 +c --- p_gamma_2 : ........................ second gamma of the pi0 +c +c Note that : the energy is stored in the fourth component +c the values are the ones of the B rest frame +c a random rotation has been applied +c +c --- Real_B0 : The real part of the amplitude of the decay +c B0 -->-- K+ pi- pi0 +c --- Imag_B0 : ... imaginary .................................. +c similarly +c --- Real_B0bar : The real part of the amplitude of the decay +c B0bar -->-- K- pi+ pi0 +c --- Imag_B0bar : ... imaginary .................................. + +c**************************************************************************** +c----------------------------------------------------------------- + Implicit none +#include "EvtGenModels/EvtBTo3pi.inc" + Real*8 alpha_input, beta_input + Integer iset + Real*8 p_K_plus(4),p_pi_minus(4) + Real*8 p_gamma_1(4),p_gamma_2(4) + Real*8 Real_B0,Imag_B0,Real_B0bar,Imag_B0Bar + +c Working quantities + Integer i,number + Real*8 p1(5),p2(5),p3(5) + Real*8 Gamma1(5),Gamma2(5) + Real*8 factor_max,ABp,ABm + Integer ierr + data factor_max/1.D+00/ + ierr =0 +c------------------------------------------------------------------- + If(iset.eq.0) Then +c------------------------------------------------------------------- +c this is the normal mode of operation +c First, generate the kinematics + + p1(5)= M_Kp **2 + p2(5)= M_pim**2 + p3(5)= M_pi0**2 + + 10 continue + call Evtfirst_step_Kpipi(p1,p2,p3) + +c Then, compute the amplitudes + + Call EvtCompute_Kpipi(p1,p2,p3, + + Real_B0,Imag_B0,Real_B0bar,Imag_B0Bar,iset,ierr) + if(ierr.ne.0 ) Go To 10 +c----------------nedit EvtBto--------------------------------------------------- + ElseIf(iset.lt.0) Then +c------------------------------------------------------------------- +c This is an user mode of operation where the kinematics is +c provided by the user who only wants the corresponding amplitudes +c to be computed + + Do i=1,4 + p1(i)= p_K_plus (i) + p2(i)= p_pi_minus(i) + p3(i)= p_gamma_1 (i) + p_gamma_2 (i) + End Do + p1(5)= M_Kp **2 + p2(5)= M_pim**2 + p3(5)= M_pi0**2 + + Call EvtCompute_Kpipi(p1,p2,p3, + + Real_B0,Imag_B0,Real_B0bar,Imag_B0Bar,iset,ierr) + + if(ierr.ne.0) Then + Print*,'the provided kinematics are not physical' + Print*,'ierr=',ierr + Print*,'the program will stop' + Stop + endif +c------------------------------------------------------------------- + ElseIf(iset.gt.0) Then +c------------------------------------------------------------------- +c This is the pre-run mode of operation where initializations are +c performed. + + factor_max= 0 + call Evtset_constants(alpha_input, beta_input) + p1(5)= M_Kp **2 + p2(5)= M_pim**2 + p3(5)= M_pi0**2 + +c pre-run + Do number=1,iset + + 20 continue + call Evtfirst_step_Kpipi(p1,p2,p3) + + Call EvtCompute_Kpipi(p1,p2,p3, + + Real_B0,Imag_B0,Real_B0bar,Imag_B0Bar,iset,ierr) + if(ierr.ne.0) Go To 20 + ABp = Real_B0 **2 + Imag_B0 **2 + ABm = Real_B0bar **2 + Imag_B0Bar **2 + + If(ABp.gt.factor_max) factor_max=ABp + If(ABm.gt.factor_max) factor_max=ABm + + End Do +c end of the pre-run + + factor_max=1.D+00/Dsqrt(factor_max) + +c------------------------------------------------------------------- + End If +c------------------------------------------------------------------- + + Real_B0 =Real_B0 * factor_max + Imag_B0 =Imag_B0 * factor_max + Real_B0bar=Real_B0bar * factor_max + Imag_B0Bar=Imag_B0Bar * factor_max + + if(iset.lt.0) return +c P1,p2,p3 ---> random rotation in B rest frame + + Call EvtRotation(p1,1) + Call EvtRotation(p2,0) + Call EvtRotation(p3,0) + +C Desintegrate the pi_0 s + + Call EvtGammaGamma(p3,Gamma1,Gamma2) + +C Feed the output four vectors + + Do i=1,4 + + p_K_plus (i)=p1 (i) + p_pi_minus(i)=p2 (i) + p_gamma_1 (i)=Gamma1(i) + p_gamma_2 (i)=Gamma2(i) + End Do + + Return + + End + +c=================================================================== + subroutine Evtfirst_step_Kpipi(P1,P2,P3) +c----------------------------------------------------------------- +c ---------------------------------------------------------- +c --- This routine generates the 5-vectors P1,P2,P3 +c --- Associated respectively with the Pi+ and two Pi0 s +c --- P1(1) = Px +c --- P1(2) = Py +c --- P1(3) = Pz +c --- P1(4) = E +c --- P1(5) = M**2 +c ---------------------------------------------------------- +c --- Input Four Vectors +C --- Particle [1] is the K+ +C --- Particle [2] is the pi- +C --- Particle [3] is the pi0 +c ---------------------------------------------------------- + +c ---------------------------------------------------------- +c --- commons +c ---------------------------------------------------------- +#include "EvtGenModels/EvtBTo3pi.inc" +c ---------------------------------------------------------- +c --- Used Functions +c ---------------------------------------------------------- + + real evtranf + +c ---------------------------------------------------------- +c --- Variables in Argument +c ---------------------------------------------------------- + + real*8 P1(5),P2(5),P3(5) + +c ---------------------------------------------------------- +c --- Local Variables +c ---------------------------------------------------------- + + real*8 m12,min_m12, max_m12 + real*8 m13,min_m13, max_m13 + real*8 m23,min_m23, max_m23 + Real*8 cost13,cost12,cost23 + + real*8 p1mom,p2mom,p3mom + + real*8 x, y, z, mass + integer i + + Logical Phase_space + data Phase_space/.false./ + +c ---------------------------------------------------------- +c --- Computation +c ---------------------------------------------------------- + max_m12 = M_B**2 + min_m12 = P1(5) + P2(5) + 2.*Dsqrt(p1(5)*p2(5)) + + max_m13 = M_B**2 + min_m13 = P1(5) + P3(5) + 2.*Dsqrt(p1(5)*p3(5)) + + max_m23 = M_B**2 + min_m23 = P2(5) + P3(5) + 2.*Dsqrt(p2(5)*p3(5)) + +100 Continue + +c ---------------------------------------------------------- +c --- Generation of the Mass of the Rho or Kstar +c ---------------------------------------------------------- + + +c ---------------------------------------------------------- +c --- z is the Flag needed to choose between the generation +c --- of a K*+, K*0 or rho- resonance +c ---------------------------------------------------------- + + z = 3.*evtranf() + + MC2 = M_B**2 + + If(z.lt.1.) Then +c K*+ production + If(Phase_space) Then + m13 = evtranf()*(max_m13-min_m13)+min_m13 + Else + y = evtranf()*PI - PI/2. + x = Dtan(y) + mass = x*Gam_Kstarp/2. +Mass_Kstarp + m13 = mass**2 + End If + + m12 = evtranf()*(max_m12-min_m12)+min_m12 + m23 = MC2 - m12 - m13 + + ElseIf(z.lt.2.) Then +c K*0 production + If(Phase_space) Then + m12 = evtranf()*(max_m12-min_m12)+min_m12 + Else + y = evtranf()*PI - PI/2. + x = Dtan(y) + mass = x*Gam_Kstar0/2. +Mass_Kstar0 + m12 = mass**2 + End If + + m13 = evtranf()*(max_m13-min_m13)+min_m13 + m23 = MC2 - m12 - m13 + + Else +c rho- production + If(Phase_space) Then + m23 = evtranf()*(max_m23-min_m23)+min_m23 + Else + y = evtranf()*PI - PI/2. + x = Dtan(y) + mass = x*Gam_rho/2. +Mass_rho + m23 = mass**2 + End If + + m13 = evtranf()*(max_m13-min_m13)+min_m13 + m12 = MC2 - m23 - m13 + + Endif + +c ---------------------------------------------------------- +c --- Check that the physics is OK : +c --- Are the invariant Masses in allowed ranges ? +c ---------------------------------------------------------- + + If(m23.lt.min_m23.or.m23.gt.max_m23) Go to 100 + If(m13.lt.min_m13.or.m13.gt.max_m13) Go to 100 + If(m12.lt.min_m12.or.m12.gt.max_m12) Go to 100 + +c ---------------------------------------------------------- +c --- Are the Cosines of the angles between particles +c --- Between -1 and +1 ? +c ---------------------------------------------------------- + + P1(4)=(M_B**2+P1(5)-m23)/(2.*M_B) + P2(4)=(M_B**2+P2(5)-m13)/(2.*M_B) + P3(4)=(M_B**2+P3(5)-m12)/(2.*M_B) + + p1mom=p1(4)**2-P1(5) + p2mom=p2(4)**2-P2(5) + p3mom=p3(4)**2-P3(5) + If(p1mom.lt.0) Go to 100 + If(p2mom.lt.0) Go to 100 + If(p3mom.lt.0) Go to 100 + p1mom=Dsqrt(p1mom) + p2mom=Dsqrt(p2mom) + p3mom=Dsqrt(p3mom) + + cost13=(2.*p1(4)*p3(4)+P1(5)+p3(5)-m13)/(2.*p1mom*p3mom) + cost12=(2.*p1(4)*p2(4)+P1(5)+p2(5)-m12)/(2.*p1mom*p2mom) + cost23=(2.*p2(4)*p3(4)+P2(5)+p3(5)-m23)/(2.*p2mom*p3mom) + If(Dabs(cost13).gt.1.) Go to 100 + If(Dabs(cost12).gt.1.) Go to 100 + If(Dabs(cost23).gt.1.) Go to 100 + +c ---------------------------------------------------------- +c --- Filling the 5-vectors P1,P2,P3 +c ---------------------------------------------------------- + + P3(1) = 0 + P3(2) = 0 + p3(3) = p3mom + + P1(3) = p1mom*cost13 + P1(1) = p1mom*Dsqrt(1.D+00-cost13**2) + p1(2) = 0. + + Do i=1,3 + P2(i)=-p1(i)-p3(i) + End do + + END + + +c====================================================================== + Subroutine EvtCompute_Kpipi(p1,p2,p3, + + Real_B0,Imag_B0,Real_B0bar,Imag_B0Bar,iset,ierr) +c----------------------------------------------------------------------- + IMPLICIT None +#include "EvtGenModels/EvtBTo3pi.inc" + + + Real*8 m12, m13, m23, W12, W13, W23, Wtot + Real*4 evt_gmas + Complex*16 MatB0,MatB0bar,BW12,BW13,BW23 + Real*8 Real_B0,Imag_B0,Real_B0bar,Imag_B0Bar + Real*8 p1(5),p2(5),p3(5) + + + Integer ierr,iset + Complex*16 BrightWagner,BreitWigner + + ierr = 0 +c ---------------------------------------------------------------- +C --- Account for the pole compensation +c ---------------------------------------------------------------- + + m12 = evt_gmas(p1,p2) + m13 = evt_gmas(p1,p3) + m23 = evt_gmas(p2,p3) + + if(m12.lt.0. .or. m13.lt.0. .or. m23.lt.0.) Then + ierr=1 + Print*,'ierr = ',ierr + return + endif + + m12 = sqrt(m12) + m13 = sqrt(m13) + m23 = sqrt(m23) + + W12 = 1. / (((Mass_Kstar0 - m12)**2+(Gam_Kstar0/2.)**2)*m12) + W13 = 1. / (((Mass_Kstarp - m13)**2+(Gam_Kstarp/2.)**2)*m13) + W23 = 1. / (((Mass_rho - m23)**2+(Gam_rho /2.)**2)*m23) + + if(iset.ge.0) Then + Wtot = 1.D+00/Dsqrt(W12 + W13 + W23) + else + Wtot =1. + Endif +c ---------------------------------------------------------------- +C --- Compute Breit-Wigners +c ---------------------------------------------------------------- + + BW13=BrightWagner(p1,p3,p2,Mass_Kstarp,Gam_Kstarp,ierr) + If(ierr.ne.0) Return + BW12=BrightWagner(p1,p2,p3,Mass_Kstar0,Gam_Kstar0,ierr) + If(ierr.ne.0) Return +c If the rho is to be treated on the same footing as K* ==> use the line below +c BW23=BrightWagner(p2,p3,p1,Mass_Rho ,Gam_Rho ,ierr) + BW23=BreitWigner(p2,p3,p1,ierr) + If(ierr.ne.0) Return + +c ---------------------------------------------------------------- +c - and +C --- Build up the amplitudes +c ---------------------------------------------------------------- + +c Here come the relative amplitudes of the three decay channels +c First, one computes the B0 decay B0 ->- K+ pi- pi0 + MatB0 = MatKstarp * BW13 + > + MatKstar0 * BW12 + > + MatKrho * BW23 +c Second, one computes the B0bar decay B0bar ->- K- pi+ pi0 + MatB0bar = NatKstarp * BW13 + > + NatKstar0 * BW12 + > + NatKrho * BW23 + + +c Pick up the Real and Imaginary parts + + Real_B0 = dreal(MatB0 )*Wtot + Imag_B0 = Imag(MatB0 )*Wtot + + Real_B0bar = dreal(MatB0bar)*Wtot + Imag_B0Bar = Imag(MatB0bar)*Wtot + + Return + End +c====================================================================== + Function BrightWagner(p1,p2,p3,Mass,Width,ierr) +c---------------------------------------------------------------------- + IMPLICIT None +#include "EvtGenModels/EvtBTo3pi.inc" + Complex *16 BrightWagner,EvtRBW + Integer ierr + Logical RelatBW + Data RelatBW/.true./ + Real*8 Mass,Width,Am2Min + +c --------------------------------------------------------------- +c --- Input Four Vectors +c --------------------------------------------------------------- + Real*8 p1(5),p2(5),p3(5) + +c --------------------------------------------------------------- +C --- intermediate variables +c --------------------------------------------------------------- + Real*8 E12_2,m12_2,beta,gamma,argu,m13_2,costet,coscms,m12 + Real*8 Factor,Num_real,Num_imag + Integer i + Real *8 p1z,p1zcms12,e1cms12,p1cms12 + +c --------------------------------------------------------------- +C --- Boost factor +c --------------------------------------------------------------- + + BrightWagner=Dcmplx(0,0) + + ierr = 0 + E12_2=(p1(4)+p2(4))**2 + m12_2=E12_2 + Do i=1,3 + m12_2=m12_2-(p1(i)+p2(i))**2 + End Do + Argu = 1.D+00 - m12_2 / E12_2 + + If(argu.gt.0.) Then + beta = Dsqrt(Argu) + Else + Print *,'Abnormal beta ! Argu = ',Argu + + Argu = 0. + Beta = 0. + End If + + If(m12_2.gt.0.)Then + m12 = Dsqrt(m12_2) + Else + Print *,'Abnormal m12 ! m12_2 = ',m12_2 + Print*,'p1 = ',p1 + Print*,'p2 = ',p2 + Print*,'p3 = ',p3 + Stop + End if + + gamma=Dsqrt(E12_2/m12_2) +c --------------------------------------------------------------- +C --- get the cosine in the B CMS +c --------------------------------------------------------------- + + m13_2=(p1(4)+p3(4))**2 + Do i=1,3 + m13_2=m13_2-(p1(i)+p3(i))**2 + End Do + if(m13_2.lt.0) Go To 50 + if((p1(4)**2-p1(5)).lt.0) Go To 50 + if((p3(4)**2-p3(5)).lt.0) Go To 50 + costet= (2.D+00*p1(4)*p3(4)-m13_2+p1(5)+p3(5)) + > / + > (2.D+00*Dsqrt( (p1(4)**2-p1(5)) * (p3(4)**2-p3(5)) )) + +c --------------------------------------------------------------- +C --- get the costet in the 1-2 CMS +c --------------------------------------------------------------- + + p1z=dsqrt(P1(4)**2-p1(5))*costet + p1zcms12=gamma*(p1z+beta*P1(4)) + e1cms12 =gamma*(p1(4)+beta*p1z) + p1cms12 =Dsqrt(e1cms12**2-p1(5)) + coscms=p1zcms12/p1cms12 + +c --------------------------------------------------------------- +C --- Build the Breit Wigner +c --------------------------------------------------------------- + + If(RelatBW) then + Am2Min = p1(5) + p2(5) + 2.*Dsqrt( p1(5)*p2(5) ) + BrightWagner = coscms * EvtRBW(m12_2,Mass**2,Width,Am2Min) + Else + Factor = 2.D+00* ( (Mass-m12)**2+(0.5D+00*Width)**2 ) + Factor = coscms * Width / Factor + Num_real= (Mass-m12) * Factor + Num_imag= 0.5D+00*Width * Factor + BrightWagner=Dcmplx(Num_real,Num_imag) + End if + + Return + 50 continue + ierr = 2 + Return + End + + + FUNCTION EvtRBW(s,Am2,Gam,Am2Min) + + IMPLICIT DOUBLE PRECISION (A-H,O-Z) + COMPLEX*16 EvtRBW + + EvtRBW = 0. + IF (s.le.Am2Min) RETURN + + G = Gam* (Am2/s) * ((s-Am2Min)/(Am2-Am2Min))**1.5 + D = (Am2-s)**2 + s*G**2 + X = Am2*(Am2-s) + Y = Am2*SQRT(s)*G + + EvtRBW = DCMPLX(X/D,Y/D) + + RETURN + END diff --git a/TEvtGen/EvtGenModels/EvtBToKpipiCP.cxx b/TEvtGen/EvtGenModels/EvtBToKpipiCP.cxx new file mode 100644 index 00000000000..fa7443f18c7 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBToKpipiCP.cxx @@ -0,0 +1,158 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtBToKpipiCP.cc +// +// Description: Routine to decay B->K pi pi +// and has CP violation. +// --- This is the routine to be called by the Main generator +// to get the decay of B0 -->-- K+ pi- pi0 +// The decay proceeeds through three channels: +// a) B0 -->-- K*+ pi- ; K*+ -->-- K+ pi0 +// b) K*0 pi0 ; K*0bar -->-- K+ pi- +// c) K- rho+ ; rho+ -->-- pi+ pi0 +// It provides at the same time the CP conjugate decay +// B0bar -->-- K- pi+ pi0 +// +// Modification history: +// +// Versille September, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtBToKpipiCP.hh" +#include "EvtGenBase/EvtId.hh" +#include + +#ifdef WIN32 +extern "C" { + extern void __stdcall EVTKPIPI(double *, double *, int *,double *, + double *,double *,double *,double *, + double *,double *,double *); +} +#else +extern "C" { + extern void evtkpipi_(double *, double *, int *,double *, + double *,double *,double *,double *, + double *,double *,double *); +} +#endif + +EvtBToKpipiCP::~EvtBToKpipiCP() {} + + +std::string EvtBToKpipiCP::getName(){ + + return "BTOKPIPI_CP"; + +} + + +EvtDecayBase* EvtBToKpipiCP::clone(){ + + return new EvtBToKpipiCP; + +} + +void EvtBToKpipiCP::init(){ + + // check that there are 3 arguments + checkNArg(3); + checkNDaug(3); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + checkSpinDaughter(2,EvtSpinType::SCALAR); + +} + + +void EvtBToKpipiCP::decay( EvtParticle *p){ + + //added by Lange Jan4,2000 + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + double t; + EvtId other_b; + + EvtCPUtil::OtherB(p,t,other_b); + + EvtParticle *Kp,*pim,*pi0; + + p->makeDaughters(getNDaug(),getDaugs()); + Kp=p->getDaug(0); + pim=p->getDaug(1); + pi0=p->getDaug(2); + + EvtVector4R p4[3]; + + //double dm=getArg(0); + double alpha=getArg(1); + double beta=getArg(2); + int iset; + + static int first=1; + + if (first==1) { + iset=10000; + first=0; + } + else{ + iset=0; + } + + double p4Kplus[4],p4piminus[4],p4gamm1[4],p4gamm2[4]; + + double realA,imgA,realbarA,imgbarA; + +#ifdef WIN32 + EVTKPIPI(&alpha,&beta,&iset,p4Kplus,p4piminus,p4gamm1,p4gamm2, + &realA,&imgA,&realbarA,&imgbarA); +#else + evtkpipi_(&alpha,&beta,&iset,p4Kplus,p4piminus,p4gamm1,p4gamm2, + &realA,&imgA,&realbarA,&imgbarA); +#endif + + p4[0].set(p4Kplus[3],p4Kplus[0],p4Kplus[1],p4Kplus[2]); + p4[1].set(p4piminus[3],p4piminus[0],p4piminus[1],p4piminus[2]); + p4[2].set(p4gamm1[3]+p4gamm2[3],p4gamm1[0]+p4gamm2[0], + p4gamm1[1]+p4gamm2[1],p4gamm1[2]+p4gamm2[2]); + + Kp->init( getDaug(0), p4[0] ); + pim->init( getDaug(1), p4[1] ); + pi0->init( getDaug(2), p4[2] ); + + EvtComplex amp; + + EvtComplex A(realA,imgA); + EvtComplex Abar(realbarA,imgbarA); + + if (other_b==B0B){ + amp=Abar; + } + if (other_b==B0){ + amp=A; + } + + vertex(amp); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtBToKpipiCP.hh b/TEvtGen/EvtGenModels/EvtBToKpipiCP.hh new file mode 100644 index 00000000000..d2fb10070a6 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBToKpipiCP.hh @@ -0,0 +1,43 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtBToKpipiCP.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOKPIPICP_HH +#define EVTBTOKPIPICP_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtBToKpipiCP:public EvtDecayAmp { + +public: + + EvtBToKpipiCP() {} + virtual ~EvtBToKpipiCP(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtBToPlnuBK.cxx b/TEvtGen/EvtGenModels/EvtBToPlnuBK.cxx new file mode 100644 index 00000000000..c1adc76470d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBToPlnuBK.cxx @@ -0,0 +1,111 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGenModels/EvtBToPlnuBK.cc +// +// Description: B->Xu l nu with BK (Becirevic-Kaidalov) parametrization +// Xu is a pseudoscalar (pi_plus,pi0,eta or eta_prime) +// +// Modification history: +// +// Martin Simard, U. de Montreal, 08/01/2007 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtBToPlnuBK.hh" +#include "EvtGenModels/EvtBToPlnuBKFF.hh" +#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh" + +using std::fstream; +using std::cout; +using std::endl; + + +EvtBToPlnuBK::EvtBToPlnuBK(): + BKmodel(0) + ,calcamp(0) +{} + +EvtBToPlnuBK::~EvtBToPlnuBK(){ + delete BKmodel; + BKmodel=0; + delete calcamp; + calcamp=0; +} + +std::string EvtBToPlnuBK::getName(){ + + return "BTOPLNUBK"; + +} + +EvtDecayBase* EvtBToPlnuBK::clone(){ + + return new EvtBToPlnuBK; + +} + + +void EvtBToPlnuBK::initProbMax(){ + + EvtId parnum,mesnum,lnum,nunum; + + parnum = getParentId(); + mesnum = getDaug(0); + lnum = getDaug(1); + nunum = getDaug(2); + + double mymaxprob = calcamp->CalcMaxProb(parnum,mesnum, + lnum,nunum,BKmodel); + + setProbMax(mymaxprob); + +} + +void EvtBToPlnuBK::init(){ + + checkNDaug(3); + + //We expect the parent to be a scalar + //and the daughters to be X lepton neutrino + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + + EvtSpinType::spintype d1type = EvtPDL::getSpinType(getDaug(0)); + if ( d1type==EvtSpinType::SCALAR) { + checkNArg(2); + BKmodel = new EvtBToPlnuBKFF(getArg(0),getArg(1)); + calcamp = new EvtSemiLeptonicScalarAmp; + } + else{ + report(ERROR,"EvtGen") << "BK model handles only scalar meson daughters. Sorry."<initializePhaseSpace(getNDaug(),getDaugs()); + calcamp->CalcAmp(p,_amp2,BKmodel); + +} + + + diff --git a/TEvtGen/EvtGenModels/EvtBToPlnuBK.hh b/TEvtGen/EvtGenModels/EvtBToPlnuBK.hh new file mode 100644 index 00000000000..3ee1f3cf559 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBToPlnuBK.hh @@ -0,0 +1,54 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGenModels/EvtBToPlnuBK.hh +// +// Description: B->Xu l nu with BK (Becirevic-Kaidalov) parametrization +// Xu is a pseudoscalar (pi_plus,pi0,eta or eta_prime) +// +// Modification history: +// +// Martin Simard, U. de Montreal, 08/01/2007 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOPLNUBK_HH +#define EVTBTOPLNUBK_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" + +class EvtParticle; + +class EvtBToPlnuBK: public EvtDecayAmp { + +public: + + EvtBToPlnuBK(); + virtual ~EvtBToPlnuBK(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +private: + + EvtSemiLeptonicFF *BKmodel; + EvtSemiLeptonicAmp *calcamp; + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtBToPlnuBKFF.cxx b/TEvtGen/EvtGenModels/EvtBToPlnuBKFF.cxx new file mode 100644 index 00000000000..598eebe25e5 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBToPlnuBKFF.cxx @@ -0,0 +1,88 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGenModels/EvtBToPlnuBK.cc +// +// Description: B->Xu l nu with BK (Becirevic-Kaidalov) parametrization +// Xu is a pseudoscalar (pi_plus,pi0,eta or eta_prime) +// +// Modification history: +// +// Martin Simard, U. de Montreal, 08/01/2007 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtBToPlnuBKFF.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtPDL.hh" +#include +#include + +EvtBToPlnuBKFF::EvtBToPlnuBKFF(double alpha, double beta) { + + _alpha = alpha; + _beta = beta; + + return; +} + + +void EvtBToPlnuBKFF::getscalarff(EvtId parent,EvtId daught, + double t, double mass, double *fp, double *f0) { + + //Define mBstar + EvtId Bplus = EvtPDL::getId("B+"); + EvtId Bminus = EvtPDL::getId("B-"); + double mBstar = EvtPDL::getMeanMass(EvtPDL::getId("B*0")); + if(parent==Bplus || parent==Bminus) mBstar = EvtPDL::getMeanMass(EvtPDL::getId("B*+")); + double mBstar2=mBstar*mBstar; + + //Compute BK parametrization (t==q2) + double fplus=1.0/((1.0-t/mBstar2)*(1.0-_alpha*t/mBstar2)); + double fzero=1.0/(1.0-t/(mBstar2*_beta)); + + *fp=fplus; + *f0=fzero; + + return; +} + + +void EvtBToPlnuBKFF::getvectorff(EvtId, EvtId, double, double, double*, + double*, double*, double*){ + + report(ERROR,"EvtGen") << "Not implemented :getvectorff in EvtBToPlnuBKFF.\n"; + ::abort(); + +} + + + +void EvtBToPlnuBKFF::gettensorff(EvtId, EvtId, double, double, double*, + double*, double*, double*){ + + report(ERROR,"EvtGen") << "Not implemented :gettensorff in EvtBToPlnuBKFf.\n"; + ::abort(); + +} + + + +void EvtBToPlnuBKFF::getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*){ + + report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtBToPlnuBKFF.\n"; + ::abort(); + +} diff --git a/TEvtGen/EvtGenModels/EvtBToPlnuBKFF.hh b/TEvtGen/EvtGenModels/EvtBToPlnuBKFF.hh new file mode 100644 index 00000000000..1cf88c4e924 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBToPlnuBKFF.hh @@ -0,0 +1,52 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGenModels/EvtBToPlnuBK.hh +// +// Description: B->Xu l nu with BK (Becirevic-Kaidalov) parametrization +// Xu is a pseudoscalar (pi_plus,pi0,eta or eta_prime) +// +// Modification history: +// +// Martin Simard, U. de Montreal, 08/01/2007 Module created +// +//------------------------------------------------------------------------ +#ifndef EVTBTOPLNUBKFF_HH +#define EVTBTOPLNUBKFF_HH + +#include "EvtGenBase/EvtSemiLeptonicFF.hh" + +class EvtId; + +class EvtBToPlnuBKFF : public EvtSemiLeptonicFF { + +public: + EvtBToPlnuBKFF(double alpha, double beta); + + void getscalarff(EvtId parent,EvtId daught, + double t, double mass, double *fp, double *f0); + + void getvectorff(EvtId, EvtId, double, double, double*, + double*, double*, double*); + + void gettensorff(EvtId, EvtId, double, double, double*, + double*, double*, double*); + + void getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*); + + +private: + double _alpha; + double _beta; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtBToVlnuBall.cxx b/TEvtGen/EvtGenModels/EvtBToVlnuBall.cxx new file mode 100644 index 00000000000..6147b983f4c --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBToVlnuBall.cxx @@ -0,0 +1,110 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGenModels/EvtBToVlnuBall.cc +// +// Description: B->Xu l nu with the Ball/Zwicky decay model +// Xu is a vector (rho, rho0, omega) +// +// +// Modification history: +// +// Wells Wulsin 2008 Aug 14 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtBToVlnuBall.hh" +#include "EvtGenModels/EvtBToVlnuBallFF.hh" +#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh" +#include +using std::endl; + +EvtBToVlnuBall::EvtBToVlnuBall(): + _Ballmodel(0) + ,_calcamp(0) +{} + +EvtBToVlnuBall::~EvtBToVlnuBall() { + delete _Ballmodel; + _Ballmodel=0; + delete _calcamp; + _calcamp=0; +} + + +std::string EvtBToVlnuBall::getName(){ + return "BTOVLNUBALL"; +} + + +EvtDecayBase* EvtBToVlnuBall::clone(){ + return new EvtBToVlnuBall; +} + + +void EvtBToVlnuBall::decay( EvtParticle *p ){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + _calcamp->CalcAmp(p,_amp2,_Ballmodel); + + + + +} + +void EvtBToVlnuBall::initProbMax(){ + +EvtId parnum,mesnum,lnum,nunum; + +parnum = getParentId(); +mesnum = getDaug(0); +lnum = getDaug(1); +nunum = getDaug(2); + +double mymaxprob = _calcamp->CalcMaxProb(parnum,mesnum, + lnum,nunum,_Ballmodel); + +setProbMax(mymaxprob); + +} + + +void EvtBToVlnuBall::init(){ + + checkNDaug(3); + + //We expect the parent to be a scalar + //and the daughters to be X lepton neutrino + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + + EvtSpinType::spintype d1type = EvtPDL::getSpinType(getDaug(0)); + if ( d1type==EvtSpinType::VECTOR) { + checkNArg(8); // the number of arguments needed for the Ball model + _Ballmodel = new EvtBToVlnuBallFF(getArg(0),getArg(1),getArg(2),getArg(3),getArg(4),getArg(5),getArg(6),getArg(7)); + _calcamp = new EvtSemiLeptonicVectorAmp; + } else { + report(ERROR,"EvtGen") << "Ball model handles only vector meson daughters. Sorry." << endl; + ::abort(); + } + + +} + diff --git a/TEvtGen/EvtGenModels/EvtBToVlnuBall.hh b/TEvtGen/EvtGenModels/EvtBToVlnuBall.hh new file mode 100644 index 00000000000..63e126d150e --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBToVlnuBall.hh @@ -0,0 +1,50 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGenModels/EvtBToVlnuBall.hh +// +// Description: B->Xu l nu with the Ball/Zwicky decay model +// Xu is a vector (rho, rho0, omega) +// +// Modification history: +// +// Wells Wulsin 2008 Aug 14 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOVLNUBALL_HH +#define EVTBTOVLNUBALL_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" + +class EvtParticle; + +class EvtBToVlnuBall:public EvtDecayAmp { + +public: + + EvtBToVlnuBall(); + virtual ~EvtBToVlnuBall(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void initProbMax(); + void init(); + +private: + EvtSemiLeptonicFF* _Ballmodel; + EvtSemiLeptonicAmp* _calcamp; +}; +#endif + diff --git a/TEvtGen/EvtGenModels/EvtBToVlnuBallFF.cxx b/TEvtGen/EvtGenModels/EvtBToVlnuBallFF.cxx new file mode 100644 index 00000000000..7949dd5e587 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBToVlnuBallFF.cxx @@ -0,0 +1,121 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtHQETFF.cc +// +// Description: B->Xu l nu with the Ball/Zwicky decay model +// Xu is a vector (rho, rho0, omega) +// +// Modification history: +// +// Wells Wulsin 2008 Aug 14 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtBToVlnuBallFF.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtPDL.hh" +#include +#include + +EvtBToVlnuBallFF::EvtBToVlnuBallFF(double r2_A1, + double mfit2_A1, + double r1_A2, + double r2_A2, + double mfit2_A2, + double r1_V, + double r2_V, + double mfit2_V) { + + _r2_A1 = r2_A1; + _mfit2_A1 = mfit2_A1; + _r1_A2 = r1_A2; + _r2_A2 = r2_A2; + _mfit2_A2 = mfit2_A2; + _r1_V = r1_V; + _r2_V = r2_V; + _mfit2_V = mfit2_V; + + return; +} + + +void EvtBToVlnuBallFF::getvectorff(EvtId parent,EvtId daught, + double t, double mass, double *a1f, + double *a2f, double *vf, double *a0f ){ + + // FF calculations taken from the LCSR calculation of + // P. Ball, R. Zwicky, Phys.~Rev.~{\bf D71} 014029 (2005), hep-ph/0412079. + + //Define mBstar + EvtId Bplus = EvtPDL::getId("B+"); + EvtId Bminus = EvtPDL::getId("B-"); + double mBstar = EvtPDL::getMeanMass(EvtPDL::getId("B*0")); + if (parent==Bplus || parent==Bminus) mBstar = EvtPDL::getMeanMass(EvtPDL::getId("B*+")); + + double q2 = t; + *a1f = _r2_A1/(1.-q2/_mfit2_A1); + *a2f = _r1_A2/(1.-q2/_mfit2_A2) + _r2_A2/pow(1.-q2/_mfit2_A2,2.); + *vf = _r1_V /(1.-q2/mBstar/mBstar) + _r2_V/(1.-q2/_mfit2_V); + *a0f = 0.0; + + return; + + // OLD STUFF from HQETFF + +// double mb=EvtPDL::getMeanMass(parent); +// double w = ((mb*mb)+(mass*mass)-t)/(2.0*mb*mass); + +// Form factors have a general form, with parameters passed in +// from the arguements. + +// double rstar = ( 2.0*sqrt(mb*mass))/(mb+mass); +// double ha1 = 1-rho2*(w-1); + +// *a1f = (1.0 - (t/((mb+mass)*(mb+mass))))*ha1; +// *a1f = (*a1f)/rstar; +// *a2f = (r2/rstar)*ha1; +// *vf = (r1/rstar)*ha1; + +} + + +void EvtBToVlnuBallFF::getscalarff(EvtId, EvtId, double, double, double*, + double*){ + + report(ERROR,"EvtGen") << "Not implemented :getvectorff in EvtBToVlnuBallFF.\n"; + ::abort(); + +} + + + +void EvtBToVlnuBallFF::gettensorff(EvtId, EvtId, double, double, double*, + double*, double*, double*){ + + report(ERROR,"EvtGen") << "Not implemented :gettensorff in EvtBToVlnuBallFF.\n"; + ::abort(); + +} + + + +void EvtBToVlnuBallFF::getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*){ + + report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtBToVlnuBallFF.\n"; + ::abort(); + +} + diff --git a/TEvtGen/EvtGenModels/EvtBToVlnuBallFF.hh b/TEvtGen/EvtGenModels/EvtBToVlnuBallFF.hh new file mode 100644 index 00000000000..9976c59096b --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBToVlnuBallFF.hh @@ -0,0 +1,69 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtHQETFF.hh +// +// Description: B->Xu l nu with the Ball/Zwicky decay model +// Xu is a vector (rho, rho0, omega) +// +// Modification history: +// +// Wells Wulsin 2008 Aug 14 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOVLNUBALLFF_HH +#define EVTBTOVLNUBALLFF_HH + +#include "EvtGenBase/EvtSemiLeptonicFF.hh" + +class EvtId; + +class EvtBToVlnuBallFF : public EvtSemiLeptonicFF { + +public: + EvtBToVlnuBallFF(double r2_A1, + double mfit2_A1, + double r1_A2, + double r2_A2, + double mfit2_A2, + double r1_V, + double r2_V, + double mfit2_V); + + void getvectorff(EvtId parent,EvtId daught, + double t, double mass, double *a1f, + double *a2f, double *vf, double *a0f ); + + + void getscalarff(EvtId, EvtId, double, double, double*, + double*); + + void gettensorff(EvtId, EvtId, double, double, double*, + double*, double*, double*); + + void getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*); + +private: + + double _r2_A1; + double _mfit2_A1; + double _r1_A2; + double _r2_A2; + double _mfit2_A2; + double _r1_V; + double _r2_V; + double _mfit2_V; + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtBsquark.cxx b/TEvtGen/EvtGenModels/EvtBsquark.cxx new file mode 100644 index 00000000000..971a871c472 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBsquark.cxx @@ -0,0 +1,218 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtTauScalarnu.cc +// +// Description: The leptonic decay of the tau meson. +// E.g., tau- -> e- nueb nut +// +// Modification history: +// +// RYD January 17, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtDiracParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtIdSet.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenModels/EvtBsquark.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtGammaMatrix.hh" +#include "EvtGenBase/EvtReport.hh" + +EvtBsquark::~EvtBsquark() {} + +std::string EvtBsquark::getName(){ + + return "BSQUARK"; + +} + + +EvtDecayBase* EvtBsquark::clone(){ + + return new EvtBsquark; + +} + +void EvtBsquark::init(){ + + // check that there are 5 arguments + checkNArg(5); +} + +void EvtBsquark::initProbMax(){ + + //For now do not set a maximum. + + //SetProbMax(0.000000000005); + +} + +void EvtBsquark::decay(EvtParticle *p){ + + static EvtId cquark=EvtPDL::getId("c"); + static EvtId anticquark=EvtPDL::getId("anti-c"); + + static EvtIdSet leptons("e-","mu-","tau-"); + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + + int charge=1; + + EvtParticle* lepton; + lepton = p->getDaug(1); + if (leptons.contains(lepton->getId())){ + charge=-1; + } + + + EvtDiracParticle charmquark; + + //this is a very crude approximation... + if (charge==-1){ + charmquark.init(cquark,p->getDaug(0)->getP4()); + } + else{ + charmquark.init(anticquark,p->getDaug(0)->getP4()); + } + + EvtVector4R p4c = p->getDaug(0)->getP4(); + + EvtVector4R p4sn = p->getDaug(2)->getP4(); + + EvtVector4R p4b(p->mass(),0.0,0.0,0.0); + + EvtComplex M[2][2]; + + int il,ic; + + //project out the right handed current + EvtGammaMatrix PR=0.5*(EvtGammaMatrix::id()+EvtGammaMatrix::g5()); + + double tanbeta=getArg(1); + double cosbeta=cos(atan(tanbeta)); + double sinbeta=sin(atan(tanbeta)); + + double mb=4.9; + double mc=1.3; + double mw=80.4; + + double Mass=getArg(2); + double mu=getArg(3); + double mchargino=getArg(4); + + + double tan2phim=2*sqrt(2.0)*mw*(mu*cosbeta+Mass*sinbeta)/ + (Mass*Mass-mu*mu+2*mw*mw*cos(2*atan(tanbeta))); + + double phim=0.5*atan(tan2phim); + + EvtComplex U11=cos(phim); + EvtComplex U12=sin(phim); + EvtComplex U21=-sin(phim); + EvtComplex U22=cos(phim); + + double tan2phip=2*sqrt(2.0)*mw*(mu*cosbeta+Mass*sinbeta)/ + (Mass*Mass-mu*mu-2*mw*mw*cos(2*atan(tanbeta))); + + double phip=0.5*atan(tan2phip); + + EvtComplex V11=cos(phip); + EvtComplex V12=sin(phip); + EvtComplex V21=-sin(phip); + EvtComplex V22=cos(phip); + + + double theta=getArg(0); + double ctheta=cos(theta); + double stheta=sin(theta); + + double vcsb=0.08; + double mchi1=mchargino; + double mchi2=mchargino; + + //overall scale factor + double g=1.0; + + EvtComplex a1=mchi1*(U11*ctheta-mb*U12*stheta/(sqrt(2.0)*mw*cosbeta)); + EvtComplex a2=mchi2*(U21*ctheta-mb*U22*stheta/(sqrt(2.0)*mw*cosbeta)); + + EvtComplex b1=mc*conj(V12)*ctheta/(sqrt(2.0)*mw*sinbeta); + EvtComplex b2=mc*conj(V22)*ctheta/(sqrt(2.0)*mw*sinbeta); + + EvtComplex f1=-(g*g*V11*vcsb)/((p4b-p4c).mass2()-mchi1*mchi1); + EvtComplex f2=-(g*g*V21*vcsb)/((p4b-p4c).mass2()-mchi1*mchi2); + + //report(INFO,"EvtGen") <spParent(il)); + b=charmquark.spParent(ic)*((pslash*PR)*lepton->spParent(il)); + } + else{ + a=lepton->spParent(il)*(PR*charmquark.spParent(ic)); + b=lepton->spParent(il)*((pslash*PR)*charmquark.spParent(ic)); + } + + //report(INFO,"EvtGen") <<"pslash*PR:"<spParent(il)< pi pi with isospin amplitudes +// +// Modification history: +// +// RYD,NK Febuary 7, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtBto2piCPiso.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtConst.hh" + +EvtBto2piCPiso::~EvtBto2piCPiso() {} + +std::string EvtBto2piCPiso::getName(){ + + return "BTO2PI_CP_ISO"; + +} + + +EvtDecayBase* EvtBto2piCPiso::clone(){ + + return new EvtBto2piCPiso; + +} + +void EvtBto2piCPiso::init(){ + + // check that there are 11 arguments + + checkNArg(11); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + +} + + +void EvtBto2piCPiso::initProbMax() { + + //added by Lange Jan4,2000 + static EvtId PI0=EvtPDL::getId("pi0"); + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + +//this may need to be revised + +if (((getDaugs()[0]==PIP) && (getDaugs()[1]==PIM)) || ((getDaugs()[0]==PIM) && (getDaugs()[1]==PIP))) { + setProbMax(4.0*(getArg(2)*getArg(2)+getArg(4)*getArg(4))); +} + +if ((getDaugs()[0]==PI0) && (getDaugs()[1]==PI0)) { + setProbMax(2.0*(4.0*getArg(2)*getArg(2)+getArg(4)*getArg(4))); +} + +if (((getDaugs()[0]==PIP) && (getDaugs()[1]==PI0)) || ((getDaugs()[0]==PI0) && (getDaugs()[1]==PIP))) { + setProbMax(6.0*getArg(2)*getArg(2)); +} + +if (((getDaugs()[0]==PI0) && (getDaugs()[1]==PIM)) || ((getDaugs()[0]==PIM) && (getDaugs()[1]==PI0))) { + setProbMax(6.0*getArg(4)*getArg(4)); +} + +} + +void EvtBto2piCPiso::decay( EvtParticle *p ){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + //added by Lange Jan4,2000 + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + static EvtId PI0=EvtPDL::getId("pi0"); + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + + double t; + EvtId other_b; + int charged=0; + +//randomly generate the tag (B0 or B0B) + + double tag = EvtRandom::Flat(0.0,1.0); + if (tag < 0.5) { + + EvtCPUtil::OtherB(p,t,other_b,1.0); + other_b = B0; + } + else { + + EvtCPUtil::OtherB(p,t,other_b,0.0); + other_b = B0B; + } + + EvtComplex amp; + + EvtComplex A,Abar; + EvtComplex A2, A2_bar, A0, A0_bar; + + A2 = EvtComplex(getArg(2)*cos(getArg(3)),getArg(2)*sin(getArg(3))); + A2_bar = EvtComplex(getArg(4)*cos(getArg(5)),getArg(4)*sin(getArg(5))); + + A0 = EvtComplex(getArg(6)*cos(getArg(7)),getArg(6)*sin(getArg(7))); + A0_bar = EvtComplex(getArg(8)*cos(getArg(9)),getArg(8)*sin(getArg(9))); + + //depending on what combination of pi pi we have, there will be different + //A and Abar + + if (((getDaugs()[0]==PIP) && (getDaugs()[1]==PI0)) || ((getDaugs()[0]==PI0) && (getDaugs()[1]==PIP))) { + + //pi+ pi0, so just A_2 + + charged = 1; + A = 3.0*A2; + + } + + if (((getDaugs()[0]==PI0) && (getDaugs()[1]==PIM)) || ((getDaugs()[0]==PIM) && (getDaugs()[1]==PI0))) { + + //pi- pi0, so just A2_bar + + charged = 1; + A = 3.0*A2_bar; + + } + + if (((getDaugs()[0]==PIP) && (getDaugs()[1]==PIM)) || ((getDaugs()[0]==PIM) && (getDaugs()[1]==PIP))) { + +//pi+ pi-, so A_2 - A_0 + + charged = 0; + A=sqrt(2.0)*(A2-A0); + Abar=sqrt(2.0)*(A2_bar-A0_bar); + } + + if ((getDaugs()[0]==PI0) && (getDaugs()[1]==PI0)) { + + //pi0 pi0, so 2*A_2 + A_0 + + charged = 0; + A=2.0*A2 + A0; + Abar=2.0*A2_bar + A0_bar; + } + + if(charged == 0) { + + if (other_b==B0B){ + amp=A*cos(getArg(1)*t/(2*EvtConst::c))+ + EvtComplex(cos(-2.0*getArg(0)),sin(-2.0*getArg(0)))* + EvtComplex(0.0,1.0)*Abar*sin(getArg(1)*t/(2*EvtConst::c)); + } + if (other_b==B0){ + amp=A*EvtComplex(cos(2.0*getArg(0)),sin(2.0*getArg(0)))* + EvtComplex(0.0,1.0)*sin(getArg(1)*t/(2*EvtConst::c))+ + Abar*cos(getArg(1)*t/(2*EvtConst::c)); + } + } + else amp = A; + + vertex(amp); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtBto2piCPiso.hh b/TEvtGen/EvtGenModels/EvtBto2piCPiso.hh new file mode 100644 index 00000000000..85babe9a57c --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBto2piCPiso.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtBto2piCPiso.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTO2PICPISO_HH +#define EVTBTO2PICPISO_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtParticle.hh" + +class EvtBto2piCPiso:public EvtDecayAmp { + +public: + + EvtBto2piCPiso() {} + virtual ~EvtBto2piCPiso(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtBtoKD3P.cxx b/TEvtGen/EvtGenModels/EvtBtoKD3P.cxx new file mode 100644 index 00000000000..b822e037186 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoKD3P.cxx @@ -0,0 +1,222 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtBtoKD3P.cc,v 1.7 2009/02/19 03:23:29 ryd Exp $ +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 2003, Colorado State University +// +// Module creator: +// Abi soffer, CSU, 2003 +//----------------------------------------------------------------------- +#include "EvtGenBase/EvtPatches.hh" + +// Decay model that does the decay B+->D0K, D0->3 psudoscalars + +#include + +#include "EvtGenModels/EvtBtoKD3P.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenModels/EvtPto3P.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtDalitzPoint.hh" +#include "EvtGenBase/EvtCyclic3.hh" +using std::endl; + +//------------------------------------------------------------------ +EvtBtoKD3P::EvtBtoKD3P() : + _model1(0), + _model2(0), + _decayedOnce(false) +{ +} + +//------------------------------------------------------------------ +EvtBtoKD3P::EvtBtoKD3P(const EvtBtoKD3P & other){ +} + +//------------------------------------------------------------------ +EvtBtoKD3P::~EvtBtoKD3P(){ +} + +//------------------------------------------------------------------ +EvtDecayBase * EvtBtoKD3P::clone(){ + return new EvtBtoKD3P(); +} + +//------------------------------------------------------------------ +std::string EvtBtoKD3P::getName(){ + return "BTOKD3P"; +} + +//------------------------------------------------------------------ +void EvtBtoKD3P::init(){ + checkNArg(2); // r, phase + checkNDaug(3); // K, D0(allowed), D0(suppressed). + // The last two daughters are really one particle + + // check that the mother and all daughters are scalars: + checkSpinParent ( EvtSpinType::SCALAR); + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + checkSpinDaughter(2,EvtSpinType::SCALAR); + + // Check that the B dtr types are K D D: + + // get the parameters: + _r = getArg(0); + double phase = getArg(1); + _exp = EvtComplex(cos(phase), sin(phase)); +} + +//------------------------------------------------------------------ +void EvtBtoKD3P::initProbMax(){ + setProbMax(1); // this is later changed in decay() +} + +//------------------------------------------------------------------ +void EvtBtoKD3P::decay(EvtParticle *p){ + // tell the subclass that we decay the daughter: + _daugsDecayedByParentModel = true; + + // the K is the 1st daughter of the B EvtParticle. + // The decay mode of the allowed D (the one produced in b->c decay) is 2nd + // The decay mode of the suppressed D (the one produced in b->u decay) is 3rd + const int KIND = 0; + const int D1IND = 1; + const int D2IND = 2; + + // generate kinematics of daughters (K and D): + EvtId tempDaug[2] = {getDaug(KIND), getDaug(D1IND)}; + p->initializePhaseSpace(2, tempDaug); + + // Get the D daughter particle and the decay models of the allowed + // and suppressed D modes: + EvtParticle * theD = p->getDaug(D1IND); + EvtPto3P * model1 = (EvtPto3P*)(EvtDecayTable::getDecayFunc(theD)); + + // for the suppressed mode, re-initialize theD as the suppressed D alias: + theD->init(getDaug(D2IND), theD->getP4()); + EvtPto3P * model2 = (EvtPto3P*)(EvtDecayTable::getDecayFunc(theD)); + + // on the first call: + if (false == _decayedOnce) { + _decayedOnce = true; + + // store the D decay model pointers: + _model1 = model1; + _model2 = model2; + + // check the decay models of the first 2 daughters and that they + // have the same final states: + std::string name1=model1->getName(); + std::string name2=model2->getName(); + + if (name1 != "PTO3P") { + report(ERROR,"EvtGen") + << "D daughters of EvtBtoKD3P decay must decay via the \"PTO3P\" model" + << endl + << " but found to decay via " << name1.c_str() + << " or " << name2.c_str() + << ". Will terminate execution!" << endl; + assert(0); + } + + EvtId * daugs1 = model1->getDaugs(); + EvtId * daugs2 = model2->getDaugs(); + + bool idMatch = true; + int d; + for (d = 0; d < 2; ++d) { + if (daugs1[d] != daugs2[d]) { + idMatch = false; + } + } + if (false == idMatch) { + report(ERROR,"EvtGen") + << "D daughters of EvtBtoKD3P decay must decay to the same final state" + << endl + << " particles in the same order (not CP-conjugate order)," << endl + << " but they were found to decay to" << endl; + for (d = 0; d < model1->getNDaug(); ++d) { + report(ERROR,"") << " " << EvtPDL::name(daugs1[d]).c_str() << " "; + } + report(ERROR,"") << endl; + for (d = 0; d < model1->getNDaug(); ++d) { + report(ERROR,"") << " " << EvtPDL::name(daugs2[d]).c_str() << " "; + } + report(ERROR,"") << endl << ". Will terminate execution!" << endl; + assert(0); + } + + // estimate the probmax. Need to know the probmax's of the 2 + // models for this: + setProbMax(model1->getProbMax(0) + + _r * _r * model2->getProbMax(0) + + 2 * _r * sqrt(model1->getProbMax(0) * model2->getProbMax(0))); + + } // end of things to do on the first call + + // make sure the models haven't changed since the first call: + if (_model1 != model1 || _model2 != model2) { + report(ERROR,"EvtGen") + << "D daughters of EvtBtoKD3P decay should have only 1 decay modes, " + << endl + << " but a new decay mode was found after the first call" << endl + << " Will terminate execution!" << endl; + assert(0); + } + + // get the cover function for each of the models and add them up. + // They are summed with coefficients 1 because we are willing to + // take a small inefficiency (~50%) in order to ensure that the + // cover function is large enough without getting into complications + // associated with the smallness of _r: + EvtPdfSum * pc1 = model1->getPC(); + EvtPdfSum * pc2 = model2->getPC(); + EvtPdfSum pc; + pc.addTerm(1.0, *pc1); + pc.addTerm(1.0, *pc2); + + // from this combined cover function, generate the Dalitz point: + EvtDalitzPoint x = pc.randomPoint(); + + // get the aptitude for each of the models on this point and add them up: + EvtComplex amp1 = model1->amplNonCP(x); + EvtComplex amp2 = model2->amplNonCP(x); + EvtComplex amp = amp1 + amp2 * _r * _exp; + + // get the value of the cover function for this point and set the + // relative amplitude for this decay: + + double comp = sqrt(pc.evaluate (x)); + vertex (amp/comp); + + // Make the daughters of theD: + theD->generateMassTree(); + + // Now generate the p4's of the daughters of theD: + std::vector v = model2->initDaughters(x); + + if(v.size() != theD->getNDaug()) { + report(ERROR,"EvtGen") + << "Number of daughters " << theD->getNDaug() + << " != " << "Momentum vector size " << v.size() + << endl + << " Terminating execution." << endl; + assert(0); + } + + // Apply the new p4's to the daughters: + for(unsigned int i=0; igetNDaug(); ++i){ + theD->getDaug(i)->init(model2->getDaugs()[i], v[i]); + } +} + diff --git a/TEvtGen/EvtGenModels/EvtBtoKD3P.hh b/TEvtGen/EvtGenModels/EvtBtoKD3P.hh new file mode 100644 index 00000000000..98f5f68601c --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoKD3P.hh @@ -0,0 +1,87 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtBtoKD3P.hh,v 1.4 2006/10/02 01:07:45 lange Exp $ +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 2003, Colorado State University +// +// Module creator: +// Abi soffer, CSU, 2003 +//----------------------------------------------------------------------- + +// Decay model that does the decay B+ -> K+ D , D -> 3 psudoscalars. +// +// The B- daughters specified in the decay file should be K-, D0, D0, +// where the first D0 is produced via b->c decay and the second via b->u. +// In reality, only one D daughter exists, so the first two +// daughters must be defined to decay to the same final state using +// the EvtPto3P model, but with CP-conjugate amplitudes. +// +// For a given point in the Pto3P Dalitz plot, +// the total amplitude is \propto [A1 + A2 r exp(i(phase))], where +// +// A1 & A2 are the amplitudes of the D0 and D0bar to decay into that +// Dalitz plot point, +// +// r is the (positive) ratio between the A(B->B0bar K) and A(B->D0 K) +// B decay amplitudes, +// +// phase is the total phase difference (weak phase + strong phase) between +// A(B->D0bar K) and A(B->B0 K). +// +// Note that this model knows nothing about your convention for the +// sign of the phase, so when specifying the decay of a B- you need to +// change the order of D0 and D0bar and change the total phase so that +// the sign of the weak phase flips with respect to the parameters of B+. +// + +#ifndef EVT_BTOKD3P +#define EVT_BTOKD3P + +class EvtParticle; +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtComplex.hh" + + +class EvtBtoKD3P : public EvtDecayAmp { + +public: + EvtBtoKD3P(); + EvtBtoKD3P(const EvtBtoKD3P & other); + virtual ~EvtBtoKD3P(); + EvtDecayBase* clone(); + + // Initialize model + virtual void init(); + virtual void initProbMax(); + virtual void decay(EvtParticle *p); + + // we really have two daughters, although three are listed in the .dec file: + virtual int nRealDaughters() { return 2;} + + std::string getName(); + +protected: + // parameters: + double _r; + EvtComplex _exp; + + // other: + const EvtDecayBase * _model1; + const EvtDecayBase * _model2; + bool _decayedOnce; + +}; + + +#endif + + + + + diff --git a/TEvtGen/EvtGenModels/EvtBtoKpiCPiso.cxx b/TEvtGen/EvtGenModels/EvtBtoKpiCPiso.cxx new file mode 100644 index 00000000000..e20b6a1d07e --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoKpiCPiso.cxx @@ -0,0 +1,187 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtBtoKpiCPiso.cc +// +// Description: Routine to decay B -> K pi with isospin amplitudes +// +// Modification history: +// +// RYD/NK Febuary 7, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtBtoKpiCPiso.hh" +#include + +EvtBtoKpiCPiso::~EvtBtoKpiCPiso() {} + +std::string EvtBtoKpiCPiso::getName(){ + + return "BTOKPI_CP_ISO"; + +} + + +EvtDecayBase* EvtBtoKpiCPiso::clone(){ + + return new EvtBtoKpiCPiso; + +} + + +void EvtBtoKpiCPiso::init(){ + + // check that there are 15 arguments + checkNArg(15); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); +} + + +void EvtBtoKpiCPiso::initProbMax() { + +//this might need to be revised + + //added by Lange Jan4,2000 + static EvtId PI0=EvtPDL::getId("pi0"); + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi+"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + +if (((getDaug(0)==PI0) && (getDaug(1)==KP)) || ((getDaug(0)==KP) && (getDaug(1)==PI0))) { + setProbMax(2.0*(getArg(2)*getArg(2) + getArg(10)*getArg(10))); + } + +if (((getDaug(0)==PI0) && (getDaug(1)==KM)) || ((getDaug(0)==KM) && (getDaug(1)==PI0))) { + setProbMax( 2.0*(getArg(4)*getArg(4) + getArg(12)*getArg(12))); + } + +if (((getDaug(0)==PIP) && (getDaug(1)==K0)) || ((getDaug(0)==K0) && (getDaug(1)==PIP))) { + setProbMax( 4.0*(getArg(6)*getArg(6) + getArg(10)*getArg(10))); + } + +if (((getDaug(0)==PIM) && (getDaug(1)==KB)) || ((getDaug(0)==KB) && (getDaug(1)==PIM))) { + setProbMax( 4.0*(getArg(8)*getArg(8) + getArg(12)*getArg(12))); +} + +if (((getDaug(0)==PI0) && (getDaug(1)==K0)) || ((getDaug(0)==K0) && (getDaug(1)==PI0))) { + setProbMax( 2.0*(getArg(2)*getArg(2) + getArg(10)*getArg(10))); +} + +if (((getDaug(0)==PI0) && (getDaug(1)==KB)) || ((getDaug(0)==KB) && (getDaug(1)==PI0))) { + setProbMax( 2.0*(getArg(4)*getArg(4) + getArg(12)*getArg(12))); +} + +if (((getDaug(0)==PIM) && (getDaug(1)==KP)) || ((getDaug(0)==KP) && (getDaug(1)==PIM))) { + setProbMax( 4.0*(getArg(6)*getArg(6) + getArg(10)*getArg(10))); +} + +if (((getDaug(0)==PIP) && (getDaug(1)==KM)) || ((getDaug(0)==KM) && (getDaug(1)==PIP))) { + setProbMax( 4.0*(getArg(8)*getArg(8) + getArg(12)*getArg(12))); +} +} + +void EvtBtoKpiCPiso::decay( EvtParticle *p ){ + + + p->initializePhaseSpace(getNDaug(),getDaugs()); + //added by Lange Jan4,2000 + static EvtId PI0=EvtPDL::getId("pi0"); + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi+"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + + + EvtComplex A; + EvtComplex U, Ubar, V, Vbar, W, Wbar; + + U = EvtComplex(getArg(2)*cos(getArg(3)),getArg(2)*sin(getArg(3))); + Ubar = EvtComplex(getArg(4)*cos(getArg(5)),getArg(4)*sin(getArg(5))); + V = EvtComplex(getArg(6)*cos(getArg(7)),getArg(6)*sin(getArg(7))); + Vbar = EvtComplex(getArg(8)*cos(getArg(9)),getArg(8)*sin(getArg(9))); + W = EvtComplex(getArg(10)*cos(getArg(11)),getArg(10)*sin(getArg(11))); + Wbar = EvtComplex(getArg(12)*cos(getArg(13)),getArg(12)*sin(getArg(13))); + +//depending on what combination of K pi we have, there will be different +//A and Abar (only A given in comments!) + +if (((getDaug(0)==PI0) && (getDaug(1)==KP)) || ((getDaug(0)==KP) && (getDaug(1)==PI0))) { + +//pi0 K+, so U - W + + A = U - W; + } + +if (((getDaug(0)==PI0) && (getDaug(1)==KM)) || ((getDaug(0)==KM) && (getDaug(1)==PI0))) { + +//pi0 K-, so Ubar - Wbar + + A = Ubar - Wbar; + } + + if (((getDaug(0)==PIP) && (getDaug(1)==K0)) || ((getDaug(0)==K0) && (getDaug(1)==PIP))) { + +//pi+ K0, so V + W + + A = sqrt(2.0)*(V + W); + } + + if (((getDaug(0)==PIM) && (getDaug(1)==KB)) || ((getDaug(0)==KB) && (getDaug(1)==PIM))) { + +//pi- K0bar, so Vbar + Wbar + A = sqrt(2.0)*(Vbar + Wbar); + } + + if (((getDaug(0)==PI0) && (getDaug(1)==K0)) || ((getDaug(0)==K0) && (getDaug(1)==PI0))) { + +//pi0 K0, so U + W + + A= U + W; + } + + if (((getDaug(0)==PI0) && (getDaug(1)==KB)) || ((getDaug(0)==KB) && (getDaug(1)==PI0))) { + + A = Ubar + Wbar; + } + + if (((getDaug(0)==PIM) && (getDaug(1)==KP)) || ((getDaug(0)==KP) && (getDaug(1)==PIM))) { + +//pi- K+, so V - W + + A = sqrt(2.0)*(V - W); + } + + if (((getDaug(0)==PIP) && (getDaug(1)==KM)) || ((getDaug(0)==KM) && (getDaug(1)==PIP))) { + + A = sqrt(2.0)*(Vbar - Wbar); + } + + vertex(A); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtBtoKpiCPiso.hh b/TEvtGen/EvtGenModels/EvtBtoKpiCPiso.hh new file mode 100644 index 00000000000..a43082dd26a --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoKpiCPiso.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtBtoKpiCPiso.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOKPICPISO_HH +#define EVTBTOKPICPISO_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtParticle.hh" + + +class EvtBtoKpiCPiso:public EvtDecayAmp { + +public: + + EvtBtoKpiCPiso() {} + virtual ~EvtBtoKpiCPiso(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtBtoXsEtap.cxx b/TEvtGen/EvtGenModels/EvtBtoXsEtap.cxx new file mode 100644 index 00000000000..03d03c3f9ad --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsEtap.cxx @@ -0,0 +1,171 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtBtoXsEtap.cc +// +// Description: Routine to perform two-body non-resonant B->Xs,gluon decays. +// It generates an X_s mass spectrum based on a parameterisation of the +// b->s,gluon spectrum of Atwood-Soni. The resultant X_s particles may +// be decayed by JETSET. +// +// Modification history: +// +// Adlene Hicheur January 10, 2001 Module created +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtBtoXsEtap.hh" +#include +#include "EvtGenBase/EvtConst.hh" +using std::endl; + +EvtBtoXsEtap::~EvtBtoXsEtap() {} + +std::string EvtBtoXsEtap::getName(){ + + return "BTOXSETAP"; + +} + +EvtDecayBase* EvtBtoXsEtap::clone(){ + + return new EvtBtoXsEtap; + +} + + +void EvtBtoXsEtap::init(){ + + // check that there are no arguments + + checkNArg(0); +} + +void EvtBtoXsEtap::initProbMax(){ + + noProbMax(); + +} + +void EvtBtoXsEtap::decay( EvtParticle *p ){ + + // useless + // if ( p->getNDaug() != 0 ) { + // //Will end up here because maxrate multiplies by 1.2 + // report(DEBUG,"EvtGen") << "In EvtBtoXsEtap: X_s daughters should not be here!"<makeDaughters(getNDaug(),getDaugs()); + EvtParticle *pdaug[MAX_DAUG]; + + for(i=0;igetDaug(i); + } + + static EvtVector4R p4[MAX_DAUG]; + static double mass[MAX_DAUG]; + + m_b = p->mass(); + + // Prepare for phase space routine. + + mass[1] = EvtPDL::getMass(getDaug(1)); + + double xbox, ybox, min, max,hichfit; + min=0.493; + max=4.3; + const double TwoPi = EvtConst::twoPi; + int Xscode = EvtPDL::getStdHep(getDaug(0)); + + // A five parameters fit, the shape is taken from Atwood & Soni + + // double par[18]; + double par[6]; + if ((Xscode == 30343) || (Xscode == -30343) || + (Xscode == 30353) || (Xscode == -30353)) { // Xsu or Xsd + min=0.6373; // Just above K pi threshold for Xsd/u + //min=0.6333; // K pi threshold for neutral Xsd + // par[0]=-2057.2380371094; + par[0]=2.36816; + // par[1]=2502.2556152344; + par[1]=0.62325725; + // par[2]=1151.5632324219; + par[2]=2.2; + // par[3]=0.82431584596634; + par[3]=-0.2109375; + // par[4]=-4110.5234375000; + par[4]=2.7; + // par[5]=8445.6757812500; + par[5]=0.54; + // par[6]=-3034.1894531250; + // par[7]=1.1557708978653; + // par[8]=1765.9311523438; + // par[9]=1.3730158805847; + // par[10]=0.51371538639069; + // par[11]=2.0056934356689; + // par[12]=37144.097656250; + // par[13]=-50296.781250000; + // par[14]=27319.095703125; + // par[15]=-7408.0678710938; + // par[16]=1000.8093261719; + // par[17]=-53.834449768066; + } else { + report(DEBUG,"EvtGen") << "In EvtBtoXsEtap: Particle with id " << Xscode << " is not a Xsd/u particle"< max) || (mass[0] < min)){ + xbox = EvtRandom::Flat(boxwidth)+min; + ybox=EvtRandom::Flat(boxheight); + if (xboxhichfit) { + mass[0]=0.0; + } else { + mass[0]=xbox; + } + } + + // debug stuff: report(INFO,"EvtGen") << "Xscode " << Xscode << " daughter 1 mass " << mass[0] << " daughter 2 mass " << mass[1] << endl; + + EvtGenKine::PhaseSpace( getNDaug(), mass, p4, m_b ); + + for(i=0;iinit( getDaugs()[i], p4[i] ); + } + + return ; +} + + diff --git a/TEvtGen/EvtGenModels/EvtBtoXsEtap.hh b/TEvtGen/EvtGenModels/EvtBtoXsEtap.hh new file mode 100644 index 00000000000..a9e6bd931a6 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsEtap.hh @@ -0,0 +1,49 @@ +//-------------------------------------------------------------------------- +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// +// Module: EvtGen/EvtBtoXsEtap.hh +// +// Description: +// Class to generate non-resonant two-body b->s,gluon decays. +// +// Modification history: +// +// Adlene Hicheur Jannuary 10, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOXSETAP_HH +#define EVTBTOXSETAP_HH + +#include "EvtGenBase/EvtDecayIncoherent.hh" + +class EvtParticle; + +class EvtBtoXsEtap:public EvtDecayIncoherent { + +public: + + EvtBtoXsEtap() {} + virtual ~EvtBtoXsEtap(); + + std::string getName(); + + EvtDecayBase* clone(); + + void initProbMax(); + + void init(); + + void decay(EvtParticle *p); + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgamma.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgamma.cxx new file mode 100644 index 00000000000..7a35d4f00f6 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsgamma.cxx @@ -0,0 +1,143 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtBtoXsgamma.cc +// +// Description: Routine to perform two-body non-resonant B->Xs,gamma decays. +// Set the first input parameter to 1 to use the Ali-Greub model, +// or 2 to use the Kagan-Neubert model. +// +// Modification history: +// +// Mark Ian Williams July 20, 2000 Module created +// Mark Ian Williams July 21, 2000 Module works +// Mark Ian Williams July 25, 2000 Works for all Xs modes +// Mark Ian Williams Aug 09, 2000 New values for mass minima +// Mark Ian Williams Sept 06, 2000 14 parameter M_Xs function +// Mark Ian Williams Sept 07, 2000 18 parameter M_Xs function +// Mark Ian Williams Sept 07, 2000 Tidied up the code +// Mark Ian Williams Sept 10, 2000 Updated parameters +// Mark Ian Williams Sept 11, 2000 Finalised code +// Jane Tinslay March 21, 2001 Re-worked so that you can choose +// between the Ali-Greub and Kagan-Neubert +// Modules. +//------------------------------------------------------------------------ +// + +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtBtoXsgamma.hh" +#include +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenModels/EvtBtoXsgammaAliGreub.hh" +#include "EvtGenModels/EvtBtoXsgammaKagan.hh" +#include "EvtGenModels/EvtBtoXsgammaFixedMass.hh" +#include "EvtGenModels/EvtBtoXsgammaFlatEnergy.hh" +using std::endl; + +EvtBtoXsgamma::~EvtBtoXsgamma() { + + delete _model; _model=0; + +} + +std::string EvtBtoXsgamma::getName(){ + + return "BTOXSGAMMA"; + +} + +EvtDecayBase* EvtBtoXsgamma::clone(){ + + return new EvtBtoXsgamma; + +} + +void EvtBtoXsgamma::init(){ + //Arguments: + // 0: Ali-Greub model = 1, Kagan model = 2 + //No more arguments for Ali-Greub model + // 1: + // 2: + // 3: + + // check that at least one b->sg model has been selected + if (getNArg() == 0) { + + report(ERROR,"EvtGen") << "EvtBtoXsgamma generator expected " + << " at least 1 argument but found: "<init(getNArg(),getArgs()); + } + + + // if ( p->getNDaug() != 0 ) { + //Will end up here because maxrate multiplies by 1.2 + // report(DEBUG,"EvtGen") << "In EvtBtoXsgamma: X_s daughters should not be here!"<makeDaughters(getNDaug(),getDaugs()); + EvtParticle *pdaug[MAX_DAUG]; + + for(i=0;igetDaug(i); + } + + static EvtVector4R p4[MAX_DAUG]; + static double mass[MAX_DAUG]; + + m_b = p->mass(); + + mass[1] = EvtPDL::getMass(getDaug(1)); + + int Xscode = EvtPDL::getStdHep(getDaug(0)); + + mass[0] = _model->GetMass(Xscode); + + EvtGenKine::PhaseSpace( getNDaug(), mass, p4, m_b ); + + for(i=0;iinit( getDaugs()[i], p4[i] ); + } + +} + diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgamma.hh b/TEvtGen/EvtGenModels/EvtBtoXsgamma.hh new file mode 100644 index 00000000000..d61db38d75c --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsgamma.hh @@ -0,0 +1,56 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// +// Module: EvtGen/EvtBtoXsgamma.hh +// +// Description: +// Class to generate non-resonant two-body b->s,gamma decays. +// +// Modification history: +// +// Mark Ian Williams July 20, 2000 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOXSGAMMA_HH +#define EVTBTOXSGAMMA_HH + +#include "EvtGenBase/EvtDecayIncoherent.hh" + +class EvtBtoXsgammaAbsModel; +class EvtParticle; + +class EvtBtoXsgamma:public EvtDecayIncoherent { + +public: + + EvtBtoXsgamma() {_model=0;} + + virtual ~EvtBtoXsgamma(); + + std::string getName(); + + EvtDecayBase* clone(); + + void initProbMax(); + + void init(); + + void decay(EvtParticle *p); + +private: + + EvtBtoXsgammaAbsModel *_model; + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaAbsModel.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgammaAbsModel.cxx new file mode 100644 index 00000000000..81c5a0b7d85 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsgammaAbsModel.cxx @@ -0,0 +1,36 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtBtoXsgammaAbsModel.cc +// +// Description: +// B->Xs gamma model base class. +// +// Modification history: +// +// Jane Tinslay March 21, 2000 Module Created +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include +#include "EvtGenModels/EvtBtoXsgammaAbsModel.hh" + +EvtBtoXsgammaAbsModel::~EvtBtoXsgammaAbsModel() {} + +void EvtBtoXsgammaAbsModel::init(int, double*) { + + //This default version of init does nothing; + //A specialized version of this function can be + //supplied for each decay model to do initialization. + + return; + +} diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaAbsModel.hh b/TEvtGen/EvtGenModels/EvtBtoXsgammaAbsModel.hh new file mode 100644 index 00000000000..14feb299e04 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsgammaAbsModel.hh @@ -0,0 +1,43 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// +// Module: EvtGen/EvtBtoXsgammaAbsModel.hh +// +// Description: +// B->Xs gamma model base class. +// +// Modification history: +// +// Jane Tinslay March 21, 2000 Module Created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOXSGAMMAABSMODEL_HH +#define EVTBTOXSGAMMAABSMODEL_HH + +class EvtBtoXsgammaAbsModel { + +public: + + EvtBtoXsgammaAbsModel() {} + + virtual ~EvtBtoXsgammaAbsModel(); + + virtual void init(int, double*); + + virtual double GetMass(int code)=0; + +private: + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaAliGreub.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgammaAliGreub.cxx new file mode 100644 index 00000000000..0589d0cfe1a --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsgammaAliGreub.cxx @@ -0,0 +1,147 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtBtoXsgammaAliGreub.cc +// +// Description: Routine to perform two-body non-resonant B->Xs,gamma decays. +// It generates an X_s mass spectrum based on a parameterisation of the +// b->s,gamma photon spectrum of Ali-Greub. The resultant X_s particles may +// be decayed by JETSET. +// +// Modification history: +// +// Mark Ian Williams July 20, 2000 Module created +// Mark Ian Williams July 21, 2000 Module works +// Mark Ian Williams July 25, 2000 Works for all Xs modes +// Mark Ian Williams Aug 09, 2000 New values for mass minima +// Mark Ian Williams Sept 06, 2000 14 parameter M_Xs function +// Mark Ian Williams Sept 07, 2000 18 parameter M_Xs function +// Mark Ian Williams Sept 07, 2000 Tidied up the code +// Mark Ian Williams Sept 10, 2000 Updated parameters +// Mark Ian Williams Sept 11, 2000 Finalised code +// Jane Tinslay March 21, 2000 Separated from EvtBtoXsgamma +// class to allow choice of input models. +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenModels/EvtBtoXsgammaAliGreub.hh" +#include +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; + + +EvtBtoXsgammaAliGreub::~EvtBtoXsgammaAliGreub(){} + +void EvtBtoXsgammaAliGreub::init(int nArg, double* /*args*/){ + + if ((nArg - 1) != 0) { + + report(ERROR,"EvtGen") << "EvtBtoXsgamma generator model " + << "EvtBtoXsgammaAliGreub expected " + << "zero arguments but found: "< s gamma: + // An 18 parameter function fitted to the theoretical mass spectrum + // of Ali & Greub for a B meson mass of 5.279 GeV; top quark mass of + // 174.3 GeV; strange quark mass of 0.48 GeV (tuned to give minimum + // M_Xs of 0.64 GeV) and Fermi momentum of 265 MeV for spectator quark + // mass of 150 MeV (from CLEO fit). Truncated at max on high side + // and min (just above K pi or KK thresold) on low side. + double min=0.64; + double max=4.5; + double xbox, ybox, alifit; + double mass=0.0; + + double par[18]; + if ((Xscode == 30343) || (Xscode == -30343) || + (Xscode == 30353) || (Xscode == -30353)) { // Xsu or Xsd + min=0.6373; // Just above K pi threshold for Xsd/u + //min=0.6333; // K pi threshold for neutral Xsd + par[0]=-2057.2380371094; + par[1]=2502.2556152344; + par[2]=1151.5632324219; + par[3]=0.82431584596634; + par[4]=-4110.5234375000; + par[5]=8445.6757812500; + par[6]=-3034.1894531250; + par[7]=1.1557708978653; + par[8]=1765.9311523438; + par[9]=1.3730158805847; + par[10]=0.51371538639069; + par[11]=2.0056934356689; + par[12]=37144.097656250; + par[13]=-50296.781250000; + par[14]=27319.095703125; + par[15]=-7408.0678710938; + par[16]=1000.8093261719; + par[17]=-53.834449768066; + } else if ((Xscode == 30363) || (Xscode == -30363)) { + min = 0.9964; // Just above KK threshold for Xss + par[0]=-32263.908203125; + par[1]=57186.589843750; + par[2]=-24230.728515625; + par[3]=1.1155973672867; + par[4]=-12161.131835938; + par[5]=20162.146484375; + par[6]=-7198.8564453125; + par[7]=1.3783323764801; + par[8]=1995.1691894531; + par[9]=1.4655895233154; + par[10]=0.48869228363037; + par[11]=2.1038570404053; + par[12]=55100.058593750; + par[13]=-75201.703125000; + par[14]=41096.066406250; + par[15]=-11205.986328125; + par[16]=1522.4024658203; + par[17]=-82.379623413086; + } else { + report(DEBUG,"EvtGen") << "In EvtBtoXsgammaAliGreub: Particle with id " << Xscode << " is not a Xss particle"< max) || (mass < min)){ + xbox = EvtRandom::Flat(boxwidth)+min; + ybox=EvtRandom::Flat(boxheight); + if (xboxalifit) { + mass=0.0; + } else { + mass=xbox; + } + } + return mass; +} diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaAliGreub.hh b/TEvtGen/EvtGenModels/EvtBtoXsgammaAliGreub.hh new file mode 100644 index 00000000000..b9ea795bd41 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsgammaAliGreub.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// +// Module: EvtGen/EvtBtoXsgammaAliGreubFcn.hh +// +// Description: +// Class to generate non-resonant two-body b->s,gamma decays. +// +// Modification history: +// +// Mark Ian Williams July 20, 2000 Module created +// Jane Tinslay March 21, 2000 Separated from EvtBtoXsgamma +// class to allow choice of input models. +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOXSGAMMAALIGREUB_HH +#define EVTBTOXSGAMMAALIGREUB_HH +#include "EvtGenModels/EvtBtoXsgammaAbsModel.hh" + +class EvtBtoXsgammaAliGreub : public EvtBtoXsgammaAbsModel { + +public: + + EvtBtoXsgammaAliGreub() {} + + virtual ~EvtBtoXsgammaAliGreub(); + + void init(int, double*); + + double GetMass(int code); + +private: + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaFermiUtil.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgammaFermiUtil.cxx new file mode 100644 index 00000000000..7a07327564d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsgammaFermiUtil.cxx @@ -0,0 +1,210 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtBtoXsgammaFermiUtil.cc +// +// Description: +// Class to hold various fermi functions and their helper functions. The +// fermi functions are used in EvtBtoXsgammaKagan. +// +// Modification history: +// +// Jane Tinslay March 21, 2001 Module created +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +//----------------------- +// This Class's Header -- +//----------------------- +#include "EvtGenModels/EvtBtoXsgammaFermiUtil.hh" +#include "EvtGenModels/EvtItgTwoCoeffFcn.hh" +#include "EvtGenModels/EvtBtoXsgammaRootFinder.hh" +#include "EvtGenModels/EvtItgFunction.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtReport.hh" + +//--------------- +// C++ Headers -- +//--------------- +#include +#include +using std::endl; + +double EvtBtoXsgammaFermiUtil::FermiExpFunc(double y, const std::vector &coeffs) { + + //coeffs: 1 = lambdabar, 2 = a, 3 = lam1, 4 = norm + // report(INFO,"EvtGen")< &coeffs) { + + //coeffs: 1 = lambdabar, 2 = a, 3 = c, 4 = norm + return (pow(1. - (y/coeffs[1]),coeffs[2])*exp(-pow(coeffs[3],2.)*pow(1. - (y/coeffs[1]),2.)))/coeffs[4]; + +} + +double EvtBtoXsgammaFermiUtil::FermiGaussFuncRoot(double lambdabar, double lam1, double mb, std::vector &gammaCoeffs) { + + std::vector coeffs1(3); + std::vector coeffs2(3); + + coeffs1[0]=0.2; + coeffs1[1]=lambdabar; + coeffs1[2]=0.0; + + coeffs2[0]=0.2; + coeffs2[1]=lambdabar; + coeffs2[2]=-lam1/3.; + + EvtItgTwoCoeffFcn *lhFunc = new EvtItgTwoCoeffFcn(&FermiGaussRootFcnA, -mb, lambdabar, coeffs1, gammaCoeffs); + EvtItgTwoCoeffFcn *rhFunc = new EvtItgTwoCoeffFcn(&FermiGaussRootFcnB, -mb, lambdabar, coeffs2, gammaCoeffs); + + EvtBtoXsgammaRootFinder *rootFinder = new EvtBtoXsgammaRootFinder(); + + double root = rootFinder->GetGaussIntegFcnRoot(lhFunc, rhFunc, 1.0e-4, 1.0e-4, 40, 40, -mb, lambdabar, 0.2, 0.4, 1.0e-6); + + delete rootFinder; rootFinder=0; + delete lhFunc; lhFunc=0; + delete rhFunc; rhFunc=0; + return root; + +} + +double EvtBtoXsgammaFermiUtil::FermiGaussRootFcnA(double y, const std::vector &coeffs1, const std::vector &coeffs2) { + + + //coeffs1: 0=ap, 1=lambdabar, coeffs2=gamma function coeffs + double cp = Gamma((2.0 + coeffs1[0])/2., coeffs2)/Gamma((1.0 + coeffs1[0])/2., coeffs2); + + return (y*y)*pow((1. - (y/coeffs1[1])),coeffs1[0])*exp(-pow(cp,2)*pow((1.-(y/coeffs1[1])),2.)); + +} + +double EvtBtoXsgammaFermiUtil::FermiGaussRootFcnB(double y, const std::vector &coeffs1, const std::vector &coeffs2) { + + //coeffs1: 0=ap, 1=lambdabar, coeffs2=gamma function coeffs + double cp = Gamma((2.0 + coeffs1[0])/2., coeffs2)/Gamma((1.0 + coeffs1[0])/2., coeffs2); + return pow((1. - (y/coeffs1[1])),coeffs1[0])*exp(-pow(cp,2)*pow((1.-(y/coeffs1[1])),2.)); + +} + +double EvtBtoXsgammaFermiUtil::Gamma(double z, const std::vector &coeffs) { + + //Lifted from Numerical Recipies in C + double x, y, tmp, ser; + + int j; + y = z; + x = z; + + tmp = x + 5.5; + tmp = tmp - (x+0.5)*log(tmp); + ser=1.000000000190015; + + for (j=0;j<6;j++) { + y = y +1.0; + ser = ser + coeffs[j]/y; + } + + return exp(-tmp+log(2.5066282746310005*ser/x)); + +} + +double EvtBtoXsgammaFermiUtil::BesselK1(double x) { + + //Lifted from Numerical Recipies in C : Returns the modified Bessel + //function K_1(x) for positive real x + if (x<0.0) report(INFO,"EvtGen") <<"x is negative !"<GetRootSingleFunc(lhFunc, rhSide, 0.1, 0.4, 1.0e-6); + //rho=0.250353; + report(INFO,"EvtGen")<<"rho/2 "< &coeffs) { + if (y == (coeffs[1]-coeffs[2])) y=0.99999999*(coeffs[1]-coeffs[2]); + + //coeffs: 1 = mB, 2=mb, 3=rho, 4=lambdabar, 5=norm + double pF = coeffs[4]*sqrt(EvtConst::pi)/(coeffs[3]*exp(coeffs[3]/2.)*BesselK1(coeffs[3]/2.)); + // report(INFO,"EvtGen")<<" pf "< + +class EvtBtoXsgammaFermiUtil { + +//-------------------- +// Instance Members -- +//-------------------- + +public: + + // Constructors + EvtBtoXsgammaFermiUtil() { }; + virtual ~EvtBtoXsgammaFermiUtil() { }; + + //Exponential function + static double FermiExpFunc(double var, const std::vector &coeffs); + + //Gaussian function and its helper functions + static double FermiGaussFunc(double, std::vector const &coeffs); + static double FermiGaussFuncRoot(double, double, double, std::vector &coeffs); + static double FermiGaussRootFcnA(double, const std::vector &coeffs1, const std::vector &coeffs2); + static double FermiGaussRootFcnB(double, const std::vector &coeffs1, const std::vector &coeffs2); + static double Gamma(double, const std::vector &coeffs); + + //Roman function and its helper functions + static double BesselI1(double); + static double BesselK1(double); + static double FermiRomanFuncRoot(double, double); + static double FermiRomanRootFcnA(double); + static double FermiRomanFunc(double, std::vector const &coeffs); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaFixedMass.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgammaFixedMass.cxx new file mode 100644 index 00000000000..d783bfb8e2d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsgammaFixedMass.cxx @@ -0,0 +1,54 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtBtoXsgammaKagan.cc +// +// Description: +// Routine to perform two-body B->Xs,gamma decays with a fixed hadronic +// mass. For spectrum measurements. +// The input parameters are 1: the hadronic mass + +// Modification history: +// +// Jim Libby October 11 2002 +//------------------------------------------------------------------------ +// + +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenModels/EvtBtoXsgamma.hh" +#include "EvtGenModels/EvtBtoXsgammaFixedMass.hh" +#include "EvtGenBase/EvtReport.hh" +#include +using std::endl; +using std::fstream; + +EvtBtoXsgammaFixedMass::~EvtBtoXsgammaFixedMass(){ +} + +void EvtBtoXsgammaFixedMass::init(int nArg, double* args){ + + if ((nArg) > 2 || (nArg > 1 && nArg <2)){ + + report(ERROR,"EvtGen") << "EvtBtoXsgamma generator model " + << "EvtBtoXsgammaFixedMass expected " + << "either 1(default config) or two arguments but found: "<Xs,gamma decays with a fixed hadronic +// mass. For spectrum measurements. +// The input parameters are 1: the hadronic mass +// Modification history: +// +// Jim Libby October 11 2002 +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include +#include "EvtGenModels/EvtBtoXsgamma.hh" +#include "EvtGenModels/EvtBtoXsgammaFlatEnergy.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtReport.hh" +#include +using std::endl; +using std::fstream; + +EvtBtoXsgammaFlatEnergy::~EvtBtoXsgammaFlatEnergy(){ +} + +void EvtBtoXsgammaFlatEnergy::init(int nArg, double* args){ + + if ((nArg) > 3 || (nArg > 1 && nArg <3)){ + + report(ERROR,"EvtGen") << "EvtBtoXsgamma generator model " + << "EvtBtoXsgammaFlatEnergy expected " + << "either 1(default config) or two arguments but found: "<(pow(_mB0,2)-pow(mPi+mK,2))/(2.0*_mB0)){ + report(ERROR,"EvtGen") << "Emax greater than Kinematic limit" << endl; + report(ERROR,"EvtGen") << "Reset to the kinematic limit" << endl; + report(ERROR,"EvtGen") << "(m_B**2-(m_pi+m_k)**2)/(2m_B)" << endl; + _eMax = (pow(_mB0,2)-pow(mPi+mK,2))/(2.0*_mB0); + } + _eRange=_eMax-_eMin; +} + +double EvtBtoXsgammaFlatEnergy::GetMass( int /*Xscode*/ ){ + + double eGamma = EvtRandom::Flat(_eRange)+_eMin; + double mH = sqrt(pow(_mB0,2)-2.0*_mB0*eGamma); + return mH; +} + diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaFlatEnergy.hh b/TEvtGen/EvtGenModels/EvtBtoXsgammaFlatEnergy.hh new file mode 100644 index 00000000000..7f27f5c1112 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsgammaFlatEnergy.hh @@ -0,0 +1,51 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 2001 Brunel University, University of Wisconsin +// +// Module: EvtGen/EvtBtoXsgammaFlatEnergy.hh +// +// Description: +// Implimentation of a fixed hadronic mass to measure spectrum +// +// Modification history: +// +// Jim Libby October 11, 2002 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOXSGAMMAFLATENERGY_HH +#define EVTBTOXSGAMMAFLATENERGY_HH + +#include "EvtGenModels/EvtBtoXsgammaAbsModel.hh" + +class EvtBtoXsgammaFlatEnergy : public EvtBtoXsgammaAbsModel { + +public: + + EvtBtoXsgammaFlatEnergy() {} + + virtual ~EvtBtoXsgammaFlatEnergy(); + + void init(int, double*); + + double GetMass(int code); + +private: + //Input parameters + double _eMin; + double _eMax; + // + double _mB0; + double _eRange; +}; + +#endif + + + diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.cxx new file mode 100644 index 00000000000..0a27180cc1a --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.cxx @@ -0,0 +1,777 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtBtoXsgammaKagan.cc +// +// Description: +// Routine to perform two-body non-resonant B->Xs,gamma decays. +// The X_s mass spectrum generated is based on the Kagan-Neubert model. +// See hep-ph/9805303 for the model details and input parameters. +// +// The input parameters are 1:fermi_model, 2:mB, 3:mb, 4:mu, 5:lam1, +// 6:delta, 7:z, 8:nIntervalS, 9:nIntervalmH. Choosing fermi_model=1 +// uses an exponential shape function, fermi_model=2 uses a gaussian +// shape function and fermi_model=3 a roman shape function. The complete mass +// spectrum for a given set of input parameters is calculated from +// scratch in bins of nIntervalmH. The s22, s27 and s28 coefficients are calculated +// in bins of nIntervalS. As the program includes lots of integration, the +// theoretical hadronic mass spectra is computed for the first time +// the init method is called. Then, all the other times (eg if we want to decay a B0 +// as well as an anti-B0) the vector mass info stored the first time is used again. +// +// Modification history: +// +// Jane Tinslay, Francesca Di Lodovico March 21, 2001 Module created +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include +#include "EvtGenModels/EvtBtoXsgamma.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenModels/EvtBtoXsgammaKagan.hh" +#include +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtItgSimpsonIntegrator.hh" +#include "EvtGenModels/EvtItgFunction.hh" +#include "EvtGenModels/EvtItgPtrFunction.hh" +#include "EvtGenModels/EvtItgTwoCoeffFcn.hh" +#include "EvtGenModels/EvtItgThreeCoeffFcn.hh" +#include "EvtGenModels/EvtItgFourCoeffFcn.hh" +#include "EvtGenModels/EvtItgAbsIntegrator.hh" +#include "EvtGenModels/EvtBtoXsgammaFermiUtil.hh" + +#include +using std::endl; +using std::fstream; + +bool EvtBtoXsgammaKagan::bbprod = false; +double EvtBtoXsgammaKagan::intervalMH = 0; + +EvtBtoXsgammaKagan::~EvtBtoXsgammaKagan(){ + delete [] massHad; + delete [] brHad; +} + +void EvtBtoXsgammaKagan::init(int nArg, double* args){ + + if ((nArg) > 12 || (nArg > 1 && nArg <10) || nArg == 11){ + + report(ERROR,"EvtGen") << "EvtBtoXsgamma generator model " + << "EvtBtoXsgammaKagan expected " + << "either 1(default config) or " + << "10 (default mass range) or " + << "12 (user range) arguments but found: " + <10){ + _mHmin = args[10]; + _mHmax = args[11]; + if (_mHmin > _mHmax){ + report(ERROR,"EvtGen") << "Minimum hadronic mass exceeds maximum " + << endl; + report(ERROR,"EvtGen") << "Will terminate execution!" << endl; + ::abort(); + } + if (_mHmin < mHminLimit){ + report(ERROR,"EvtGen") << "Minimum hadronic mass below K pi threshold" + << endl; + report(ERROR,"EvtGen") << "Resetting to K pi threshold" << endl; + _mHmin = mHminLimit; + } + if (_mHmax > mHmaxLimit){ + report(ERROR,"EvtGen") << "Maximum hadronic mass above 4.5 GeV/c^2" + << endl; + report(ERROR,"EvtGen") << "Resetting to 4.5 GeV/c^2" << endl; + _mHmax = mHmaxLimit; + } + }else{ + _mHmin=mHminLimit; // usually just above K pi threshold for Xsd/u + _mHmax=mHmaxLimit; + } + +} + +void EvtBtoXsgammaKagan::getDefaultHadronicMass(){ + + massHad = new double[81]; + brHad = new double[81]; + + double mass[81] = { 0, 0.0625995, 0.125199, 0.187798, 0.250398, 0.312997, 0.375597, 0.438196, 0.500796, 0.563395, 0.625995, 0.688594, 0.751194, 0.813793, 0.876392, 0.938992, 1.00159, 1.06419, 1.12679, 1.18939, 1.25199, 1.31459, 1.37719, 1.43979, 1.50239, 1.56499, 1.62759, 1.69019, 1.75278, 1.81538, 1.87798, 1.94058, 2.00318, 2.06578, 2.12838, 2.19098, 2.25358, 2.31618, 2.37878, 2.44138, 2.50398, 2.56658, 2.62918, 2.69178, 2.75438, 2.81698, 2.87958, 2.94217, 3.00477, 3.06737, 3.12997, 3.19257, 3.25517, 3.31777, 3.38037, 3.44297, 3.50557, 3.56817, 3.63077, 3.69337, 3.75597, 3.81857, 3.88117, 3.94377, 4.00637, 4.06896, 4.13156, 4.19416, 4.25676, 4.31936, 4.38196, 4.44456, 4.50716, 4.56976, 4.63236, 4.69496, 4.75756, 4.82016, 4.88276, 4.94536, 5.00796}; + + double br[81] = { 0, 1.03244e-09, 3.0239e-08, 1.99815e-07, 7.29392e-07, 1.93129e-06, 4.17806e-06, 7.86021e-06, 1.33421e-05, 2.09196e-05, 3.07815e-05, 4.29854e-05, 5.74406e-05, 7.3906e-05, 9.2003e-05, 0.000111223, 0.000130977, 0.000150618, 0.000169483, 0.000186934, 0.000202392, 0.000215366, 0.000225491, 0.000232496, 0.000236274, 0.000236835, 0.000234313, 0.000228942, 0.000221042, 0.000210994, 0.000199215, 0.000186137, 0.000172194, 0.000157775, 0.000143255, 0.000128952, 0.000115133, 0.000102012, 8.97451e-05, 7.84384e-05, 6.81519e-05, 5.89048e-05, 5.06851e-05, 4.34515e-05, 3.71506e-05, 3.1702e-05, 2.70124e-05, 2.30588e-05, 1.96951e-05, 1.68596e-05, 1.44909e-05, 1.25102e-05, 1.08596e-05, 9.48476e-06, 8.34013e-06, 7.38477e-06, 6.58627e-06, 5.91541e-06, 5.35022e-06, 4.87047e-06, 4.46249e-06, 4.11032e-06, 3.80543e-06, 3.54051e-06, 3.30967e-06, 3.10848e-06, 2.93254e-06, 2.78369e-06, 2.65823e-06, 2.55747e-06, 2.51068e-06, 2.57179e-06, 2.74684e-06, 3.02719e-06, 3.41182e-06, 3.91387e-06, 4.56248e-06, 5.40862e-06, 6.53915e-06, 8.10867e-06, 1.04167e-05 }; + + for(int i=0; i<81; i++){ + massHad[i] = mass[i]; + brHad[i] = br[i]; + } + intervalMH=80; +} + +void EvtBtoXsgammaKagan::computeHadronicMass(int /*nArg*/, double* args){ + + //Input parameters + int fermiFunction = (int)args[1]; + _mB = args[2]; + _mb = args[3]; + _mu = args[4]; + _lam1 = args[5]; + _delta = args[6]; + _z = args[7]; + _nIntervalS = args[8]; + _nIntervalmH = args[9]; + std::vector mHVect(int(_nIntervalmH+1.0)); + massHad = new double[int(_nIntervalmH+1.0)]; + brHad = new double[int(_nIntervalmH+1.0)]; + intervalMH=_nIntervalmH; + + //Going to have to add a new entry into the data file - takes ages... + report(WARNING,"EvtGen") << "EvtBtoXsgammaKagan: calculating new hadronic mass spectra. This takes a while..." << endl; + + //Now need to compute the mHVect vector for + //the current parameters + + //A few more parameters + double _mubar = _mu; + _mW = 80.33; + _mt = 175.0; + _alpha = 1./137.036; + _lambdabar = _mB - _mb; + _kappabar = 3.382 - 4.14*(sqrt(_z) - 0.29); + _fz=Fz(_z); + _rer8 = (44./9.) - (8./27.)*pow(EvtConst::pi,2.); + _r7 = (-10./3.) - (8./9.)*pow(EvtConst::pi,2.); + _rer2 = -4.092 + 12.78*(sqrt(_z) -.29); + _gam77 = 32./3.; + _gam27 = 416./81.; + _gam87 = -32./9.; + _lam2 = .12; + _beta0 = 23./3.; + _beta1 = 116./3.; + _alphasmZ = .118; + _mZ = 91.187; + _ms = _mb/50.; + + double eGammaMin = 0.5*_mB*(1. - _delta); + double eGammaMax = 0.5*_mB; + double yMin = 2.*eGammaMin/_mB; + double yMax = 2.*eGammaMax/_mB; + double _CKMrat= 0.976; + double Nsl = 1.0; + + //Calculate alpha the various scales + _alphasmW = CalcAlphaS(_mW); + _alphasmt = CalcAlphaS(_mt); + _alphasmu = CalcAlphaS(_mu); + _alphasmubar = CalcAlphaS(_mubar); + + //Calculate the Wilson Coefficients and Delta + _etamu = _alphasmW/_alphasmu; + _kSLemmu = (12./23.)*((1./_etamu) -1.); + CalcWilsonCoeffs(); + CalcDelta(); + + //Build s22 and s27 vector - saves time because double + //integration is required otherwise + std::vector s22Coeffs(int(_nIntervalS+1.0)); + std::vector s27Coeffs(int(_nIntervalS+1.0)); + std::vector s28Coeffs(int(_nIntervalS+1.0)); + + double dy = (yMax - yMin)/_nIntervalS; + double yp = yMin; + + std::vector sCoeffs(1); + sCoeffs[0] = _z; + + //Define s22 and s27 functions + EvtItgPtrFunction *mys22Func = new EvtItgPtrFunction(&s22Func, 0., yMax+0.1, sCoeffs); + EvtItgPtrFunction *mys27Func = new EvtItgPtrFunction(&s27Func, 0., yMax+0.1, sCoeffs); + + //Use a simpson integrator + EvtItgAbsIntegrator *mys22Simp = new EvtItgSimpsonIntegrator(*mys22Func, 1.0e-4, 20); + EvtItgAbsIntegrator *mys27Simp = new EvtItgSimpsonIntegrator(*mys27Func, 1.0e-4, 50); + + int i; + + for (i=0;ievaluate(1.0e-20,yp); + s27Coeffs[i] = (-8./9.)*_z*mys27Simp->evaluate(1.0e-20,yp); + s28Coeffs[i] = -s27Coeffs[i]/3.; + yp = yp + dy; + + } + + delete mys22Func; + delete mys27Func; + delete mys22Simp; + delete mys27Simp; + + //Define functions and vectors used to calculate mHVect. Each function takes a set + //of vectors which are used as the function coefficients + std::vector FermiCoeffs(6); + std::vector varCoeffs(3); + std::vector DeltaCoeffs(1); + std::vector s88Coeffs(2); + std::vector sInitCoeffs(3); + + varCoeffs[0] = _mB; + varCoeffs[1] = _mb; + varCoeffs[2] = 0.; + + DeltaCoeffs[0] = _alphasmu; + + s88Coeffs[0] = _mb; + s88Coeffs[1] = _ms; + + sInitCoeffs[0] = _nIntervalS; + sInitCoeffs[1] = yMin; + sInitCoeffs[2] = yMax; + + FermiCoeffs[0]=fermiFunction; + FermiCoeffs[1]=0.0; + FermiCoeffs[2]=0.0; + FermiCoeffs[3]=0.0; + FermiCoeffs[4]=0.0; + FermiCoeffs[5]=0.0; + + //Coefficients for gamma function + std::vector gammaCoeffs(6); + gammaCoeffs[0]=76.18009172947146; + gammaCoeffs[1]=-86.50532032941677; + gammaCoeffs[2]=24.01409824083091; + gammaCoeffs[3]=-1.231739572450155; + gammaCoeffs[4]=0.1208650973866179e-2; + gammaCoeffs[5]=-0.5395239384953e-5; + + //Calculate quantities for the fermi function to be used + //Distinguish among the different shape functions + if (fermiFunction == 1) { + + FermiCoeffs[1]=_lambdabar; + FermiCoeffs[2]=(-3.*pow(_lambdabar,2.)/_lam1) - 1.; + FermiCoeffs[3]=_lam1; + FermiCoeffs[4]=1.0; + + EvtItgPtrFunction *myNormFunc = new EvtItgPtrFunction(&EvtBtoXsgammaFermiUtil::FermiExpFunc, -_mb, _mB-_mb, FermiCoeffs); + EvtItgAbsIntegrator *myNormSimp = new EvtItgSimpsonIntegrator(*myNormFunc, 1.0e-4, 40); + FermiCoeffs[4]=myNormSimp->normalisation(); + delete myNormFunc; myNormFunc=0; + delete myNormSimp; myNormSimp=0; + + } else if (fermiFunction == 2) { + + double a = EvtBtoXsgammaFermiUtil::FermiGaussFuncRoot(_lambdabar, _lam1, _mb, gammaCoeffs); + FermiCoeffs[1]=_lambdabar; + FermiCoeffs[2]=a; + FermiCoeffs[3]= EvtBtoXsgammaFermiUtil::Gamma((2.0 + a)/2., gammaCoeffs)/ + EvtBtoXsgammaFermiUtil::Gamma((1.0 + a)/2., gammaCoeffs); + FermiCoeffs[4]=1.0; + + EvtItgPtrFunction *myNormFunc = new EvtItgPtrFunction(&EvtBtoXsgammaFermiUtil::FermiGaussFunc, -_mb, _mB-_mb, FermiCoeffs); + EvtItgAbsIntegrator *myNormSimp = new EvtItgSimpsonIntegrator(*myNormFunc, 1.0e-4, 40); + FermiCoeffs[4]=myNormSimp->normalisation(); + delete myNormFunc; myNormFunc=0; + delete myNormSimp; myNormSimp=0; + + } + else if (fermiFunction == 3) { + + double rho = EvtBtoXsgammaFermiUtil::FermiRomanFuncRoot(_lambdabar, _lam1); + FermiCoeffs[1]=_mB; + FermiCoeffs[2]=_mb; + FermiCoeffs[3]= rho; + FermiCoeffs[4]=_lambdabar; + FermiCoeffs[5]=1.0; + + EvtItgPtrFunction *myNormFunc = new EvtItgPtrFunction(&EvtBtoXsgammaFermiUtil::FermiRomanFunc, -_mb, _mB-_mb, FermiCoeffs); + EvtItgAbsIntegrator *myNormSimp = new EvtItgSimpsonIntegrator(*myNormFunc, 1.0e-4, 40); + FermiCoeffs[5]=myNormSimp->normalisation(); + delete myNormFunc; myNormFunc=0; + delete myNormSimp; myNormSimp=0; + + } + + //Define functions + EvtItgThreeCoeffFcn* myDeltaFermiFunc = new EvtItgThreeCoeffFcn(&DeltaFermiFunc, -_mb, _mB-_mb, FermiCoeffs, varCoeffs, DeltaCoeffs); + EvtItgThreeCoeffFcn* mys88FermiFunc = new EvtItgThreeCoeffFcn(&s88FermiFunc, -_mb, _mB-_mb, FermiCoeffs, varCoeffs, s88Coeffs); + EvtItgTwoCoeffFcn* mys77FermiFunc = new EvtItgTwoCoeffFcn(&s77FermiFunc, -_mb, _mB-_mb, FermiCoeffs, varCoeffs); + EvtItgTwoCoeffFcn* mys78FermiFunc = new EvtItgTwoCoeffFcn(&s78FermiFunc, -_mb, _mB-_mb, FermiCoeffs, varCoeffs); + EvtItgFourCoeffFcn* mys22FermiFunc = new EvtItgFourCoeffFcn(&sFermiFunc, -_mb, _mB-_mb, FermiCoeffs, varCoeffs, sInitCoeffs, s22Coeffs); + EvtItgFourCoeffFcn* mys27FermiFunc = new EvtItgFourCoeffFcn(&sFermiFunc, -_mb, _mB-_mb, FermiCoeffs, varCoeffs, sInitCoeffs, s27Coeffs); + EvtItgFourCoeffFcn* mys28FermiFunc = new EvtItgFourCoeffFcn(&sFermiFunc, -_mb, _mB-_mb, FermiCoeffs, varCoeffs, sInitCoeffs, s28Coeffs); + + //Define integrators + EvtItgSimpsonIntegrator* myDeltaFermiSimp = + new EvtItgSimpsonIntegrator(*myDeltaFermiFunc, 1.0e-4, 40); + EvtItgSimpsonIntegrator* mys77FermiSimp = + new EvtItgSimpsonIntegrator(*mys77FermiFunc, 1.0e-4, 40); + EvtItgSimpsonIntegrator* mys88FermiSimp = + new EvtItgSimpsonIntegrator(*mys88FermiFunc, 1.0e-4, 40); + EvtItgSimpsonIntegrator* mys78FermiSimp = + new EvtItgSimpsonIntegrator(*mys78FermiFunc, 1.0e-4, 40); + EvtItgSimpsonIntegrator* mys22FermiSimp = + new EvtItgSimpsonIntegrator(*mys22FermiFunc, 1.0e-4, 40); + EvtItgSimpsonIntegrator* mys27FermiSimp = + new EvtItgSimpsonIntegrator(*mys27FermiFunc, 1.0e-4, 40); + EvtItgSimpsonIntegrator* mys28FermiSimp = + new EvtItgSimpsonIntegrator(*mys28FermiFunc, 1.0e-4, 40); + + //Finally calculate mHVect for the range of hadronic masses + double mHmin = sqrt(_mB*_mB - 2.*_mB*eGammaMax); + double mHmax = sqrt(_mB*_mB - 2.*_mB*eGammaMin); + double dmH = (mHmax - mHmin)/_nIntervalmH; + + double mH=mHmin; + + //Calculating the Branching Fractions + for (i=0;isetCoeff(2, 2, ymH); + mys77FermiFunc->setCoeff(2, 2, ymH); + mys88FermiFunc->setCoeff(2, 2, ymH); + mys78FermiFunc->setCoeff(2, 2, ymH); + mys22FermiFunc->setCoeff(2, 2, ymH); + mys27FermiFunc->setCoeff(2, 2, ymH); + mys28FermiFunc->setCoeff(2, 2, ymH); + + //Integrate + + double deltaResult = myDeltaFermiSimp->evaluate((_mB*ymH-_mb),_mB-_mb); + double s77Result = mys77FermiSimp->evaluate((_mB*ymH-_mb),_mB-_mb); + double s88Result = mys88FermiSimp->evaluate((_mB*ymH-_mb),_mB-_mb); + double s78Result = mys78FermiSimp->evaluate((_mB*ymH-_mb),_mB-_mb); + double s22Result = mys22FermiSimp->evaluate((_mB*ymH-_mb),_mB-_mb); + double s27Result = mys27FermiSimp->evaluate((_mB*ymH-_mb),_mB-_mb); + mys28FermiSimp->evaluate((_mB*ymH-_mb),_mB-_mb); + + double py = (pow(_CKMrat,2.)*(6./_fz)*(_alpha/EvtConst::pi)*(deltaResult*_cDeltatot + (_alphasmu/EvtConst::pi)*(s77Result*pow(_c70mu,2.) + s27Result*_c2mu*(_c70mu - _c80mu/3.) + s78Result*_c70mu*_c80mu + s22Result*_c2mu*_c2mu + s88Result*_c80mu*_c80mu ) ) ); + + mHVect[i] = 2.*(mH/(_mB*_mB))*0.105*Nsl*py; + + massHad[i] = mH; + brHad[i] = 2.*(mH/(_mB*_mB))*0.105*Nsl*py; + + mH = mH+dmH; + + } + + //Clean up + delete myDeltaFermiFunc; myDeltaFermiFunc=0; + delete mys88FermiFunc; mys88FermiFunc=0; + delete mys77FermiFunc; mys77FermiFunc=0; + delete mys78FermiFunc; mys78FermiFunc=0; + delete mys22FermiFunc; mys22FermiFunc=0; + delete mys27FermiFunc; mys27FermiFunc=0; + delete mys28FermiFunc; mys28FermiFunc=0; + + delete myDeltaFermiSimp; myDeltaFermiSimp=0; + delete mys77FermiSimp; mys77FermiSimp=0; + delete mys88FermiSimp; mys88FermiSimp=0; + delete mys78FermiSimp; mys78FermiSimp=0; + delete mys22FermiSimp; mys22FermiSimp=0; + delete mys27FermiSimp; mys27FermiSimp=0; + delete mys28FermiSimp; mys28FermiSimp=0; + +} + +double EvtBtoXsgammaKagan::GetMass( int /*Xscode*/ ){ + +// Get hadronic mass for the event according to the hadronic mass spectra computed in computeHadronicMass + double mass=0.0; + double min=_mHmin; + if(bbprod)min=1.1; + // double max=4.5; + double max=_mHmax; + double xbox(0), ybox(0); + double boxheight(0); + double trueHeight(0); + double boxwidth=max-min; + double wgt(0.); + + for (int i=0;iboxheight)boxheight=brHad[i]; + } + while ((mass > max) || (mass < min)){ + xbox = EvtRandom::Flat(boxwidth)+min; + ybox=EvtRandom::Flat(boxheight); + trueHeight=0.0; + // Correction by Peter Richardson + for( int i = 1 ; i < int( intervalMH + 1.0 ) ; ++i ) { + if ( ( massHad[i] >= xbox ) && ( 0.0 == trueHeight ) ) { + wgt=(xbox-massHad[i-1])/(massHad[i]-massHad[i-1]); + trueHeight=brHad[i-1]+wgt*(brHad[i]-brHad[i-1]); + } + } + + if (ybox>trueHeight) { + mass=0.0; + } else { + mass=xbox; + } + } + + return mass; +} + +double EvtBtoXsgammaKagan::CalcAlphaS(double scale) { + + double v = 1. -_beta0*(_alphasmZ/(2.*EvtConst::pi))*(log(_mZ/scale)); + return (_alphasmZ/v)*(1. - ((_beta1/_beta0)*(_alphasmZ/(4.*EvtConst::pi))*(log(v)/v))); + +} + +void EvtBtoXsgammaKagan::CalcWilsonCoeffs( ){ + + double mtatmw=_mt*pow((_alphasmW/_alphasmt),(12./23.))*(1 + (12./23.)*((253./18.) - (116./23.))*((_alphasmW - _alphasmt)/(4.0*EvtConst::pi)) - (4./3.)*(_alphasmt/EvtConst::pi)); + double xt=pow(mtatmw,2.)/pow(_mW,2.); + + + + /////LO + _c2mu = .5*pow(_etamu,(-12./23.)) + .5*pow(_etamu,(6./23.)); + + double c7mWsm = ((3.*pow(xt,3.) - 2.*pow(xt,2.))/(4.*pow((xt - 1.),4.)))*log(xt) + + ((-8.*pow(xt,3.) - 5.*pow(xt,2.) + 7.*xt)/(24.*pow((xt - 1.),3.) )) ; + + double c8mWsm = ((-3.*pow(xt,2.))/(4.*pow((xt - 1.),4.)))*log(xt) + + ((- pow(xt,3.) + 5.*pow(xt,2.) + 2.*xt)/(8.*pow((xt - 1.),3.))); + + double c7constmu = (626126./272277.)*pow(_etamu,(14./23.)) + - (56281./51730.)*pow(_etamu,(16./23.)) - (3./7.)*pow(_etamu,(6./23.)) + - (1./14.)*pow(_etamu,(-12./23.)) - .6494*pow(_etamu,.4086) - .038*pow(_etamu,-.423) + - .0186*pow(_etamu,-.8994) - .0057*pow(_etamu,.1456); + + _c70mu = c7mWsm*pow(_etamu,(16./23.)) + (8./3.)*(pow(_etamu,(14./23.)) + -pow(_etamu,(16./23.)))*c8mWsm + c7constmu; + + double c8constmu = (313063./363036.)*pow(_etamu,(14./23.)) + -.9135*pow(_etamu,.4086) + .0873*pow(_etamu,-.423) - .0571*pow(_etamu,-.8994) + + .0209*pow(_etamu,.1456); + + _c80mu = c8mWsm*pow(_etamu,(14./23.)) + c8constmu; + + //Compute the dilogarithm (PolyLog(2,x)) with the Simpson integrator + //The dilogarithm is defined as: Li_2(x)=Int_0^x(-log(1.-z)/z) + //however, Mathematica implements it as Sum[z^k/k^2,{k,1,Infinity}], so, althought the two + //results are similar and both implemented in the program, we prefer to use the + //one closer to the Mathematica implementation as identical to what used by the theorists. + + // EvtItgFunction *myDiLogFunc = new EvtItgFunction(&diLogFunc, 0., 1.-1./xt); + //EvtItgAbsIntegrator *myDiLogSimp = new EvtItgSimpsonIntegrator(*myDiLogFunc, 1.0e-4, 50); + //double li2 = myDiLogSimp->evaluate(1.0e-20,1.-1./xt); + + double li2=diLogMathematica(1.-1./xt); + +double c7mWsm1 = ( (-16. *pow(xt,4.) -122. *pow(xt,3.) + 80. *pow(xt,2.) -8. *xt)/ +(9. *pow((xt -1.),4.)) * li2 + +(6. *pow(xt,4.) + 46. *pow(xt,3.) -28. *pow(xt,2.))/(3. *pow((xt-1.),5.)) *pow(log(xt),2.) ++ (-102. *pow(xt,5.) -588. *pow(xt,4.) -2262. *pow(xt,3.) + 3244. *pow(xt,2.) -1364. *xt ++ 208.)/(81. *pow((xt-1),5.)) *log(xt) ++ (1646. *pow(xt,4.) + 12205. *pow(xt,3.) -10740. *pow(xt,2.) + 2509. *xt -436.)/ +(486. *pow((xt-1),4.)) ); + +double c8mWsm1 = ((-4. *pow(xt,4.) + 40. *pow(xt,3.) + 41. *pow(xt,2.) + xt)/ +(6. *pow((xt-1.),4.)) * li2 ++ (-17. *pow(xt,3.) -31. *pow(xt,2.))/(2. *pow((xt-1.),5.) ) *pow(log(xt),2.) ++ (-210. *pow(xt,5.) + 1086. *pow(xt,4.) + 4893. *pow(xt,3.) + 2857. *pow(xt,2.) +-1994. *xt + 280.)/(216. *pow((xt-1),5.)) *log(xt) ++ (737. *pow(xt,4.) -14102. *pow(xt,3.) -28209. *pow(xt,2.) + 610. *xt -508.)/ +(1296. *pow((xt-1),4.)) ); + +double E1 = (xt *(18. -11. *xt -pow(xt,2.))/(12.*pow( (1. -xt),3.)) ++ pow(xt,2.)* (15. -16. *xt + 4. *pow(xt,2.))/(6. *pow((1. -xt),4.)) *log(xt) +-2./3. *log(xt) ); + +double e1 = 4661194./816831.; +double e2 = -8516./2217. ; +double e3 = 0.; +double e4 = 0.; +double e5 = -1.9043; +double e6 = -.1008; +double e7 = .1216; +double e8 = .0183; + +double f1 = -17.3023; +double f2 = 8.5027; +double f3 = 4.5508; +double f4 = .7519; +double f5 = 2.004; +double f6 = .7476; +double f7 = -.5385; +double f8 = .0914; + +double g1 = 14.8088; +double g2 = -10.809; +double g3 = -.874; +double g4 = .4218; +double g5 = -2.9347; +double g6 = .3971; +double g7 = .1600; +double g8 = .0225; + + +double c71constmu = ((e1 *_etamu *E1 + f1 + g1 *_etamu) *pow(_etamu,(14./23.)) ++ (e2 *_etamu *E1 + f2 + g2 *_etamu) *pow(_etamu,(16./23.)) ++ (e3 *_etamu *E1 + f3 + g3 *_etamu) *pow(_etamu,(6./23.)) ++ (e4 *_etamu *E1 + f4 + g4 *_etamu) *pow(_etamu,(-12./23.)) ++ (e5 *_etamu *E1 + f5 + g5 *_etamu) *pow(_etamu,.4086) ++ (e6 *_etamu *E1 + f6 + g6 *_etamu) *pow(_etamu,(-.423)) ++ (e7 *_etamu *E1 + f7 + g7 *_etamu) *pow(_etamu,(-.8994)) ++ (e8 *_etamu *E1 + f8 + g8 *_etamu) *pow(_etamu,.1456 )); + +double c71pmu = ( ((297664./14283. *pow(_etamu,(16./23.)) +-7164416./357075. *pow(_etamu,(14./23.)) ++ 256868./14283. *pow(_etamu,(37./23.)) - 6698884./357075. *pow(_etamu,(39./23.))) +*(c8mWsm)) ++ 37208./4761. *(pow(_etamu,(39./23.)) - pow(_etamu,(16./23.))) *(c7mWsm) ++ c71constmu ); + +_c71mu = (_alphasmW/_alphasmu *(pow(_etamu,(16./23.))* c7mWsm1 + 8./3. *(pow(_etamu,(14./23.)) +- pow(_etamu,(16./23.)) ) *c8mWsm1 ) + c71pmu); + +_c7emmu = ((32./75. *pow(_etamu,(-9./23.)) - 40./69. *pow(_etamu,(-7./23.)) + + 88./575. *pow(_etamu,(16./23.))) *c7mWsm + (-32./575. *pow(_etamu,(-9./23.)) + + 32./1449. *pow(_etamu,(-7./23.)) + 640./1449.*pow(_etamu,(14./23.)) - + 704./1725.*pow(_etamu,(16./23.)) ) *c8mWsm + - 190./8073.*pow(_etamu,(-35./23.)) - 359./3105. *pow(_etamu,(-17./23.)) + + 4276./121095. *pow(_etamu,(-12./23.)) + 350531./1009125.*pow(_etamu,(-9./23.)) + + 2./4347. *pow(_etamu,(-7./23.)) - 5956./15525. *pow(_etamu,(6./23.)) + + 38380./169533. *pow(_etamu,(14./23.)) - 748./8625. *pow(_etamu,(16./23.))); + +// Wilson coefficients values as according to Kagan's program +// _c2mu=1.10566; +//_c70mu=-0.314292; +// _c80mu=-0.148954; +// _c71mu=0.480964; +// _c7emmu=0.0323219; + +} + +void EvtBtoXsgammaKagan::CalcDelta() { + + double cDelta77 = (1. + (_alphasmu/(2.*EvtConst::pi)) *(_r7 - (16./3.) + _gam77*log(_mb/_mu)) + ( (pow((1. - _z),4.)/_fz) - 1.)*(6.*_lam2/pow(_mb,2.)) + (_alphasmubar/(2.*EvtConst::pi))*_kappabar )*pow(_c70mu,2.); + + double cDelta27 = ((_alphasmu/(2.*EvtConst::pi))*(_rer2 + _gam27*log(_mb/_mu)) - (_lam2/(9.*_z*pow(_mb,2.))))*_c2mu*_c70mu; + + double cDelta78 = (_alphasmu/(2.*EvtConst::pi))*(_rer8 + _gam87*log(_mb/_mu))*_c70mu*_c80mu; + + _cDeltatot = cDelta77 + cDelta27 + cDelta78 + (_alphasmu/(2.*EvtConst::pi))*_c71mu*_c70mu + (_alpha/_alphasmu)*(2.*_c7emmu*_c70mu - _kSLemmu*pow(_c70mu,2.)); + +} + +double EvtBtoXsgammaKagan::Delta(double y, double alphasMu) { + + //Fix for singularity at endpoint + if (y >= 1.0) y = 0.9999999999; + + return ( - 4.*(alphasMu/(3.*EvtConst::pi*(1. - y)))*(log(1. - y) + 7./4.)* + exp(-2.*(alphasMu/(3.*EvtConst::pi))*(pow(log(1. - y),2) + (7./2.)*log(1. - y)))); + +} + +double EvtBtoXsgammaKagan::s77(double y) { + + //Fix for singularity at endpoint + if (y >= 1.0) y = 0.9999999999; + + return ((1./3.)*(7. + y - 2.*pow(y,2) - 2.*(1. + y)*log(1. - y))); +} + +double EvtBtoXsgammaKagan::s88(double y, double mb, double ms) { + + //Fix for singularity at endpoint + if (y >= 1.0) y = 0.9999999999; + + return ((1./27.)*((2.*(2. - 2.*y + pow(y,2))/y)*(log(1. - y) + 2.*log(mb/ms)) + - 2.*pow(y,2) - y - 8.*((1. - y)/y))); +} + +double EvtBtoXsgammaKagan::s78(double y) { + + //Fix for singularity at endpoint + if (y >= 1.0) y = 0.9999999999; + + return ((8./9.)*(((1. - y)/y)*log(1. - y) + 1. + (pow(y,2)/4.))); +} + +double EvtBtoXsgammaKagan::ReG(double y) { + + if (y < 4.) return -2.*pow(atan(sqrt(y/(4. - y))),2.); + else { + return 2.*(pow(log((sqrt(y) + sqrt(y - 4.))/2.),2.)) - (1./2.)*pow(EvtConst::pi,2.); + } + +} + +double EvtBtoXsgammaKagan::ImG(double y) { + + if (y < 4.) return 0.0; + else { + return (-2.*EvtConst::pi*log((sqrt(y) + sqrt(y - 4.))/2.)); + } +} + +double EvtBtoXsgammaKagan::s22Func(double y, const std::vector &coeffs) { + + //coeffs[0]=z + return (1. - y)*((pow(coeffs[0],2.)/pow(y,2.))*(pow(ReG(y/coeffs[0]),2.) + pow(ImG(y/coeffs[0]),2.)) + (coeffs[0]/y)*ReG(y/coeffs[0]) + (1./4.)); + +} + +double EvtBtoXsgammaKagan::s27Func(double y, const std::vector &coeffs) { + + //coeffs[0] = z + return (ReG(y/coeffs[0]) + y/(2.*coeffs[0])); + +} + +double EvtBtoXsgammaKagan::DeltaFermiFunc(double y, const std::vector &coeffs1, + const std::vector &coeffs2, const std::vector &coeffs3) { + + //coeffs1=fermi function coeffs, coeffs2[0]=mB, coeffs2[1]=mb, + //coeffs2[2]=ymH, coeffs3[0]=DeltaCoeff (alphasmu) + + return FermiFunc(y,coeffs1)*(coeffs2[0]/(coeffs2[1]+y))* + Delta((coeffs2[0]*coeffs2[2])/(coeffs2[1]+y),coeffs3[0]); + +} + +double EvtBtoXsgammaKagan::s77FermiFunc(double y, const std::vector &coeffs1, + const std::vector &coeffs2) { + + //coeffs1=fermi function coeffs, coeffs2[0]=mB, coeffs2[1]=mb, + //coeffs2[2]=ymH + return FermiFunc(y,coeffs1)*(coeffs2[0]/(coeffs2[1]+y))* + s77((coeffs2[0]*coeffs2[2])/(coeffs2[1]+y)); + +} + +double EvtBtoXsgammaKagan::s88FermiFunc(double y, const std::vector &coeffs1, + const std::vector &coeffs2, const std::vector &coeffs3) { + + //coeffs1=fermi function coeffs, coeffs2[0]=mB, coeffs2[1]=mb, + //coeffs2[2]=ymH, coeffs3=s88 coeffs + return FermiFunc(y,coeffs1)*(coeffs2[0]/(coeffs2[1]+y))* + s88((coeffs2[0]*coeffs2[2])/(coeffs2[1]+y),coeffs3[0], coeffs3[1]); + +} + +double EvtBtoXsgammaKagan::s78FermiFunc(double y, const std::vector &coeffs1, + const std::vector &coeffs2) { + + //coeffs1=fermi function coeffs, coeffs2[0]=mB, coeffs2[1]=mb, + //coeffs2[2]=ymH + return FermiFunc(y,coeffs1)*(coeffs2[0]/(coeffs2[1]+y))* + s78((coeffs2[0]*coeffs2[2])/(coeffs2[1]+y)); + +} + +double EvtBtoXsgammaKagan::sFermiFunc(double y, const std::vector &coeffs1, + const std::vector &coeffs2, const std::vector &coeffs3, + const std::vector &coeffs4) { + + //coeffs1=fermi function coeffs, coeffs2[0]=mB, coeffs2[1]=mb, + //coeffs2[2]=ymH, coeffs3[0]=nIntervals in s22 or s27 array, coeffs3[1]=yMin, + //coeffs3[2]=yMax, coeffs4=s22 or s27 array + return FermiFunc(y,coeffs1)*(coeffs2[0]/(coeffs2[1]+y))* + GetArrayVal(coeffs2[0]*coeffs2[2]/(coeffs2[1]+y), coeffs3[0], coeffs3[1], coeffs3[2], coeffs4); + +} + +double EvtBtoXsgammaKagan::Fz(double z) { + + return (1. -8.*z + 8.*pow(z,3.) - pow(z,4.) - 12.*pow(z,2.)*log(z)); +} + +double EvtBtoXsgammaKagan::GetArrayVal(double xp, double nInterval, double xMin, double xMax, std::vector array) { + + double dx = (xMax - xMin)/nInterval; + int bin1 = int(((xp-xMin)/(xMax - xMin))*nInterval); + + double x1 = double(bin1)*dx + xMin; + + if (xp == x1) return array[bin1]; + + int bin2(0); + if (xp > x1) { + bin2 = bin1 + 1; + } + else if (xp < x1) { + bin2 = bin1 - 1; + } + + if (bin1 <= 0) { + bin1=0; + bin2 = 1; + } + + //If xp is in the last bin, always interpolate between the last two bins + if (bin1 == (int)nInterval){ + bin2 = (int)nInterval; + bin1 = (int)nInterval - 1; + x1 = double(bin1)*dx + xMin; + } + + double x2 = double(bin2)*dx + xMin; + double y1 = array[bin1]; + + double y2 = array[bin2]; + double m = (y2 - y1)/(x2 - x1); + double c = y1 - m*x1; + double result = m*xp + c; + + return result; + +} + +double EvtBtoXsgammaKagan::FermiFunc(double y, const std::vector &coeffs) { + + //Fermi shape functions :1=exponential, 2=gaussian, 3=roman + if (int(coeffs[0]) == 1) return EvtBtoXsgammaFermiUtil::FermiExpFunc(y, coeffs); + if (int(coeffs[0]) == 2) return EvtBtoXsgammaFermiUtil::FermiGaussFunc(y, coeffs); + if (int(coeffs[0]) == 3) return EvtBtoXsgammaFermiUtil::FermiRomanFunc(y, coeffs); + return 1.; + +} + +double EvtBtoXsgammaKagan::diLogFunc(double y) { + + return -log(fabs(1. - y))/y; + +} + + +double EvtBtoXsgammaKagan::diLogMathematica(double y) { + + double li2(0); + for(int i=1; i<1000; i++){ //the value 1000 should actually be Infinite... + li2+=pow(y,i)/(i*i); + } + return li2; +} diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.hh b/TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.hh new file mode 100644 index 00000000000..b3b2ef59e6d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsgammaKagan.hh @@ -0,0 +1,131 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 2001 Brunel University, University of Wisconsin +// +// Module: EvtGen/EvtBtoXsgammaKagan.hh +// +// Description: +// Implimentation of the Kagan-Neubert model for non-resonant +// B->Xs,gamma decays. +// +// Modification history: +// +// Jane Tinslay, Francesca Di Lodovico March 27, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOXSGAMMAKAGAN_HH +#define EVTBTOXSGAMMAKAGAN_HH + +#include +#include "EvtGenModels/EvtBtoXsgammaAbsModel.hh" + +class EvtBtoXsgammaKagan : public EvtBtoXsgammaAbsModel { + +public: + + EvtBtoXsgammaKagan() {} + + virtual ~EvtBtoXsgammaKagan(); + + void init(int, double*); + + void computeHadronicMass(int, double*); + + void getDefaultHadronicMass(); + + double GetMass(int code); + + double CalcAlphaS(double); + + void CalcWilsonCoeffs(); + void CalcDelta(); + double Fz(double); + +private: + + //Input parameters + double _mb; + double _mB; + double _delta; + double _nIntervalS; + double _nIntervalmH; + double _lambdabar; + double _lam1; + double _mHmin; + double _mHmax; + //Other parameters + double _r7; + double _gam77; + double _gam27; + double _gam87; + double _beta0; + double _beta1; + double _alphasmZ; + double _mZ; + double _z; + double _fz; + double _lam2; + double _kappabar; + double _rer2; + double _rer8; + double _kSLemmu; + double _mW; + double _mt; + double _ms; + double _mu; + + double _c2mu; + double _c70mu; + double _c80mu; + double _c71mu; + double _c7emmu; + + double _cDeltatot; + + double _alpha; + double _alphasmW; + double _alphasmt; + double _alphasmu; + double _alphasmubar; + double _etamu; + + std::vector _mHVect; + + static double ReG(double); + static double ImG(double); + static double s77(double); + static double s88(double, double, double); + static double s78(double); + static double s22Func(double var, const std::vector &coeffs); + static double s27Func(double var, const std::vector &coeffs); + + static double Delta(double, double); + static double DeltaFermiFunc(double, const std::vector &coeffs1, const std::vector &coeffs2, const std::vector &coeffs3); + static double s77FermiFunc(double, const std::vector &coeffs1, const std::vector &coeffs2); + static double s88FermiFunc(double, const std::vector &coeffs1, const std::vector &coeffs2, const std::vector &coeffs3); + static double s78FermiFunc(double, const std::vector &coeffs1, const std::vector &coeffs2); + static double s22FermiFunc(double, std::vector &coeffs); + static double s27FermiFunc(double, std::vector &coeffs); + static double s28FermiFunc(double, std::vector &coeffs); + static double GetArrayVal(double, double, double, double, std::vector); + static double sFermiFunc(double, const std::vector &coeffs1, const std::vector &coeffs2, + const std::vector &coeffs3, const std::vector &coeffs4); + static double FermiFunc(double, const std::vector &coeffs); + static double diLogFunc(double); + static double diLogMathematica(double); + double *massHad; double *brHad; + static double intervalMH; + static bool bbprod; +}; + +#endif + + + diff --git a/TEvtGen/EvtGenModels/EvtBtoXsgammaRootFinder.cxx b/TEvtGen/EvtGenModels/EvtBtoXsgammaRootFinder.cxx new file mode 100644 index 00000000000..6048b77aaf2 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsgammaRootFinder.cxx @@ -0,0 +1,206 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtBtoXsgammaRootFinder.cc +// +// Description: +// Root finders for EvtBtoXsgammaKagan module. +// +// Modification history: +// +// Jane Tinslay March 21, 2001 Module created +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenModels/EvtBtoXsgammaRootFinder.hh" +#include "EvtGenModels/EvtItgTwoCoeffFcn.hh" +#include "EvtGenModels/EvtItgSimpsonIntegrator.hh" +#include "EvtGenBase/EvtReport.hh" +#include +using std::endl; + +//------------- +// C Headers -- +//------------- +extern "C" { +} + +//----------------------------------------------------------------------- +// Local Macros, Typedefs, Structures, Unions and Forward Declarations -- +//----------------------------------------------------------------------- + +#define EVTITGROOTFINDER_MAXIT 100 +#define EVTITGROOTFINDER_RELATIVEPRECISION 1.0e-16 + + +EvtBtoXsgammaRootFinder::EvtBtoXsgammaRootFinder() {} + +EvtBtoXsgammaRootFinder::~EvtBtoXsgammaRootFinder( ) +{} + +double +EvtBtoXsgammaRootFinder::GetRootSingleFunc(const EvtItgAbsFunction* theFunc, double functionValue, double lowerValue, double upperValue, double precision) { + + // Use the bisection to find the root. + // Iterates until find root to the accuracy of precision + + double xLower = 0.0, xUpper = 0.0; + double root=0; + + double f1 = theFunc->value(lowerValue) - functionValue; + double f2 = theFunc->value(upperValue) - functionValue; + + if ( f1*f2 > 0.0 ) { + report(WARNING,"EvtGen") << "EvtBtoXsgammaRootFinder: No root in specified range !"<value(rootGuess) - functionValue; + + for (int j = 0; j< EVTITGROOTFINDER_MAXIT; j++) { + + dxold = dx; + dx = 0.5*(xUpper-xLower); + rootGuess = xLower+dx; + + // If change in root is negligible, take it as solution. + if (fabs(xLower - rootGuess) < precision) { + root = rootGuess; + return root; + } + + f = theFunc->value(rootGuess) - functionValue; + + if (f < 0.0) { + xLower = rootGuess; + } else { + xUpper = rootGuess; + } + + } + + report(WARNING,"EvtGen") << "EvtBtoXsgammaRootFinder: Maximum number of iterations " + <<"in EvtBtoXsgammaRootFinder::foundRoot exceeded!" + <<" Returning false."<setCoeff(1,0,lowerValue); + theFunc2->setCoeff(1,0,lowerValue); + + double f1 = func1Integ->evaluate(integLower,integUpper) - theFunc2->getCoeff(1,2)*func2Integ->evaluate(integLower,integUpper); + theFunc1->setCoeff(1,0,upperValue); + theFunc2->setCoeff(1,0,upperValue); + double f2 = func1Integ->evaluate(integLower,integUpper) - theFunc2->getCoeff(1,2)*func2Integ->evaluate(integLower,integUpper); + + double xLower = 0.0, xUpper = 0.0; + double root=0; + + if ( f1*f2 > 0.0 ) { + report(WARNING,"EvtGen") << "EvtBtoXsgammaRootFinder: No root in specified range !"<setCoeff(1,0,rootGuess); + theFunc2->setCoeff(1,0,rootGuess); + double f = func1Integ->evaluate(integLower,integUpper) - theFunc2->getCoeff(1,2)*func2Integ->evaluate(integLower,integUpper); + + for (int j = 0; j< EVTITGROOTFINDER_MAXIT; j++) { + + dxold = dx; + dx = 0.5*(xUpper-xLower); + rootGuess = xLower+dx; + + // If change in root is negligible, take it as solution. + if (fabs(xLower - rootGuess) < precision) { + root = rootGuess; + return root; + } + + theFunc1->setCoeff(1,0,rootGuess); + theFunc2->setCoeff(1,0,rootGuess); + f = func1Integ->evaluate(integLower,integUpper) - theFunc2->getCoeff(1,2)*func2Integ->evaluate(integLower,integUpper); + + if (f < 0.0) { + xLower = rootGuess; + } else { + xUpper = rootGuess; + } + + } + + report(WARNING,"EvtGen") << "EvtBtoXsgammaRootFinder: Maximum number of iterations " + <<"in EvtBtoXsgammaRootFinder::foundRoot exceeded!" + <<" Returning false."< Xs l+ l- decays. +// It generates a dilepton mass spectrum according to Kruger and Sehgal +// and then generates the two lepton momenta accoring to Ali et al. +// The resultant X_s particles may be decayed by JETSET. +// +// Modification history: +// +// Stephane Willocq Jan 17, 2001 Module created +// Stephane Willocq Jul 15, 2003 Input model parameters +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" + +#include +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtbTosllAmp.hh" +#include "EvtGenModels/EvtBtoXsll.hh" +#include "EvtGenModels/EvtBtoXsllUtil.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtId.hh" +using std::endl; + +EvtBtoXsll::~EvtBtoXsll() { + delete _calcprob; +} + +std::string EvtBtoXsll::getName(){ + + return "BTOXSLL"; + +} + +EvtDecayBase* EvtBtoXsll::clone(){ + + return new EvtBtoXsll; + +} + + +void EvtBtoXsll::init(){ + + // check that there are no arguments + + checkNArg(0,4,5); + + checkNDaug(3); + + // Check that the two leptons are the same type + + EvtId lepton1type = getDaug(1); + EvtId lepton2type = getDaug(2); + + int etyp = 0; + int mutyp = 0; + int tautyp = 0; + if ( lepton1type == EvtPDL::getId("e+") || + lepton1type == EvtPDL::getId("e-") ) { etyp++;} + if ( lepton2type == EvtPDL::getId("e+") || + lepton2type == EvtPDL::getId("e-") ) { etyp++;} + if ( lepton1type == EvtPDL::getId("mu+") || + lepton1type == EvtPDL::getId("mu-") ) { mutyp++;} + if ( lepton2type == EvtPDL::getId("mu+") || + lepton2type == EvtPDL::getId("mu-") ) { mutyp++;} + if ( lepton1type == EvtPDL::getId("tau+") || + lepton1type == EvtPDL::getId("tau-") ) { tautyp++;} + if ( lepton2type == EvtPDL::getId("tau+") || + lepton2type == EvtPDL::getId("tau-") ) { tautyp++;} + + if ( etyp != 2 && mutyp != 2 && tautyp != 2 ) { + + report(ERROR,"EvtGen") << "Expect two leptons of the same type in EvtBtoXsll.cc\n"; + ::abort(); + } + + // Check that the second and third entries are leptons with positive + // and negative charge, respectively + + int lpos = 0; + int lneg = 0; + if ( lepton1type == EvtPDL::getId("e+") || + lepton1type == EvtPDL::getId("mu+") || + lepton1type == EvtPDL::getId("tau+") ) { lpos++;} + if ( lepton2type == EvtPDL::getId("e-") || + lepton2type == EvtPDL::getId("mu-") || + lepton2type == EvtPDL::getId("tau-") ) { lneg++;} + + if ( lpos != 1 || lneg != 1 ) { + + report(ERROR,"EvtGen") << "Expect 2nd and 3rd particles to be positive and negative leptons in EvtBtoXsll.cc\n"; + ::abort(); + } + + + _mb=4.8; + _ms=0.2; + _mq=0.; + _pf=0.41; + _mxmin=1.1; + if ( getNArg()==4) + { + // b-quark mass + _mb = getArg(0); + // s-quark mass + _ms = getArg(1); + // spectator quark mass + _mq = getArg(2); + // Fermi motion parameter + _pf = getArg(3); + } + if ( getNArg()==5) + { + _mxmin = getArg(4); + } + + _calcprob = new EvtBtoXsllUtil; + + double ml = EvtPDL::getMeanMass(getDaug(1)); + + // determine the maximum probability density from dGdsProb + + int i, j; + int nsteps = 100; + double s = 0.0; + double smin = 4.0 * ml * ml; + double smax = (_mb - _ms)*(_mb - _ms); + double probMax = -10000.0; + double sProbMax = -10.0; + double uProbMax = -10.0; + + for (i=0;idGdsProb(_mb, _ms, ml, s); + if (prob > probMax) + { + sProbMax = s; + probMax = prob; + } + } + + _dGdsProbMax = probMax; + + if ( verbose() ) { + report(INFO,"EvtGen") << "dGdsProbMax = " << probMax << " for s = " << sProbMax << endl; + } + + // determine the maximum probability density from dGdsdupProb + + probMax = -10000.0; + sProbMax = -10.0; + + for (i=0;idGdsdupProb(_mb, _ms, ml, s, u); + if (prob > probMax) + { + sProbMax = s; + uProbMax = u; + probMax = prob; + } + } + } + + _dGdsdupProbMax = 2.0*probMax; + + if ( verbose() ) { + report(INFO,"EvtGen") << "dGdsdupProbMax = " << probMax << " for s = " << sProbMax + << " and u = " << uProbMax << endl; + } + +} + +void EvtBtoXsll::initProbMax(){ + + noProbMax(); + +} + +void EvtBtoXsll::decay( EvtParticle *p ){ + + p->makeDaughters(getNDaug(),getDaugs()); + + EvtParticle* xhadron = p->getDaug(0); + EvtParticle* leptonp = p->getDaug(1); + EvtParticle* leptonn = p->getDaug(2); + + double mass[3]; + + findMasses( p, getNDaug(), getDaugs(), mass ); + + double mB = p->mass(); + double ml = mass[1]; + double pb; + + int im = 0; + static int nmsg = 0; + double xhadronMass = -999.0; + + EvtVector4R p4xhadron; + EvtVector4R p4leptonp; + EvtVector4R p4leptonn; + + // require the hadronic system has mass greater than that of a Kaon pion pair + + // while (xhadronMass < 0.6333) + // the above minimum value of K+pi mass appears to be too close + // to threshold as far as JETSET is concerned + // (JETSET gets caught in an infinite loop) + // so we choose a lightly larger value for the threshold + while (xhadronMass < _mxmin) + { + im++; + + // Apply Fermi motion and determine effective b-quark mass + + // Old BaBar MC parameters + // double pf = 0.25; + // double ms = 0.2; + // double mq = 0.3; + + double mb = 0.0; + + double xbox, ybox; + + while (mb <= 0.0) + { + pb = _calcprob->FermiMomentum(_pf); + + // effective b-quark mass + mb = mB*mB + _mq*_mq - 2.0*mB*sqrt(pb*pb + _mq*_mq); + if ( mb>0. && sqrt(mb)-_ms < 2.0*ml ) mb= -10.; + } + mb = sqrt(mb); + + // cout << "b-quark momentum = " << pb << " mass = " << mb << endl; + + // generate a dilepton invariant mass + + double s = 0.0; + double smin = 4.0 * ml * ml; + double smax = (mb - _ms)*(mb - _ms); + + while (s == 0.0) + { + xbox = EvtRandom::Flat(smin, smax); + ybox = EvtRandom::Flat(_dGdsProbMax); + double prob= _calcprob->dGdsProb(mb, _ms, ml, xbox); + if ( !(prob>=0.0) && !(prob<=0.0)) { + // report(INFO,"EvtGen") << "nan from dGdsProb " << prob << " " << mb << " " << _ms << " " << ml << " " << xbox << std::endl; + } + if ( ybox < prob ) s=xbox; + } + + // cout << "dGdsProb(s) = " << _calcprob->dGdsProb(mb, _ms, ml, s) + // << " for s = " << s << endl; + + // two-body decay of b quark at rest into s quark and dilepton pair: + // b -> s (ll) + + EvtVector4R p4sdilep[2]; + + double msdilep[2]; + msdilep[0] = _ms; + msdilep[1] = sqrt(s); + + EvtGenKine::PhaseSpace(2, msdilep, p4sdilep, mb); + + // generate dilepton decay with the expected asymmetry: (ll) -> l+ l- + + EvtVector4R p4ll[2]; + + double mll[2]; + mll[0] = ml; + mll[1] = ml; + + double tmp = 0.0; + + while (tmp == 0.0) + { + // (ll) -> l+ l- decay in dilepton rest frame + + EvtGenKine::PhaseSpace(2, mll, p4ll, msdilep[1]); + + // boost to b-quark rest frame + + p4ll[0] = boostTo(p4ll[0], p4sdilep[1]); + p4ll[1] = boostTo(p4ll[1], p4sdilep[1]); + + // compute kinematical variable u + + EvtVector4R p4slp = p4sdilep[0] + p4ll[0]; + EvtVector4R p4sln = p4sdilep[0] + p4ll[1]; + + double u = p4slp.mass2() - p4sln.mass2(); + + ybox = EvtRandom::Flat(_dGdsdupProbMax); + + double prob = _calcprob->dGdsdupProb(mb, _ms, ml, s, u); + if ( !(prob>=0.0) && !(prob<=0.0)) { + report(INFO,"EvtGen") << "nan from dGdsProb " << prob << " " << mb << " " << _ms << " " << ml << " " << s << " " << u << std::endl; + } + if (prob > _dGdsdupProbMax && nmsg < 20) + { + report(INFO,"EvtGen") << "d2gdsdup GT d2gdsdup_max:" << prob + << " " << _dGdsdupProbMax + << " for s = " << s << " u = " << u << " mb = " << mb << endl; + nmsg++; + } + if (ybox < prob) + { + tmp = 1.0; + // cout << "dGdsdupProb(s) = " << prob + // << " for u = " << u << endl; + } + } + + + // assign 4-momenta to valence quarks inside B meson in B rest frame + + double phi = EvtRandom::Flat( EvtConst::twoPi ); + double costh = EvtRandom::Flat( -1.0, 1.0 ); + double sinth = sqrt(1.0 - costh*costh); + + // b-quark four-momentum in B meson rest frame + + EvtVector4R p4b(sqrt(mb*mb + pb*pb), + pb*sinth*sin(phi), + pb*sinth*cos(phi), + pb*costh); + + // B meson in its rest frame + // + // EvtVector4R p4B(mB, 0.0, 0.0, 0.0); + // + // boost B meson to b-quark rest frame + // + // p4B = boostTo(p4B, p4b); + // + // cout << " B meson mass in b-quark rest frame = " << p4B.mass() << endl; + + // boost s, l+ and l- to B meson rest frame + + // EvtVector4R p4s = boostTo(p4sdilep[0], p4B); + // p4leptonp = boostTo(p4ll[0], p4B); + // p4leptonn = boostTo(p4ll[1], p4B); + + EvtVector4R p4s = boostTo(p4sdilep[0], p4b); + p4leptonp = boostTo(p4ll[0], p4b); + p4leptonn = boostTo(p4ll[1], p4b); + + // spectator quark in B meson rest frame + + EvtVector4R p4q( sqrt(pb*pb + _mq*_mq), -p4b.get(1), -p4b.get(2), -p4b.get(3) ); + + // hadron system in B meson rest frame + + p4xhadron = p4s + p4q; + xhadronMass = p4xhadron.mass(); + + // cout << "Xs mass = " << xhadronMass << " trial " << im << endl; + } + + // initialize the decay products + + xhadron->init(getDaug(0), p4xhadron); + + // For B-bar mesons (i.e. containing a b quark) we have the normal + // order of leptons + if ( p->getId() == EvtPDL::getId("anti-B0") || + p->getId() == EvtPDL::getId("B-") ) + { + leptonp->init(getDaug(1), p4leptonp); + leptonn->init(getDaug(2), p4leptonn); + } + // For B mesons (i.e. containing a b-bar quark) we need to flip the + // role of the positive and negative leptons in order to produce the + // correct forward-backward asymmetry between the two leptons + else + { + leptonp->init(getDaug(1), p4leptonn); + leptonn->init(getDaug(2), p4leptonp); + } + + return ; +} diff --git a/TEvtGen/EvtGenModels/EvtBtoXsll.hh b/TEvtGen/EvtGenModels/EvtBtoXsll.hh new file mode 100644 index 00000000000..3cccda41078 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsll.hh @@ -0,0 +1,58 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// +// Module: EvtGen/EvtBtoXsll.hh +// +// Description: +// Class to generate inclusive non-resonant B -> Xs l+ l- decays. +// +// Modification history: +// +// Stephane Willocq Jan 17, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOXSLL_HH +#define EVTBTOXSLL_HH + +#include "EvtGenBase/EvtDecayIncoherent.hh" +#include "EvtGenBase/EvtParticle.hh" + +class EvtBtoXsllUtil; + +class EvtBtoXsll:public EvtDecayIncoherent { + +public: + + EvtBtoXsll(): _calcprob(0) {} + virtual ~EvtBtoXsll(); + + std::string getName(); + + EvtDecayBase* clone(); + + void initProbMax(); + + void init(); + + void decay(EvtParticle *p); + +private: + + EvtBtoXsllUtil *_calcprob; + double _dGdsProbMax; + double _dGdsdupProbMax; + double _mb; + double _ms; + double _mq; + double _pf; + double _mxmin; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtBtoXsllUtil.cxx b/TEvtGen/EvtGenModels/EvtBtoXsllUtil.cxx new file mode 100644 index 00000000000..ec2c0dd2516 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsllUtil.cxx @@ -0,0 +1,625 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtBtoXsllUtil.cc +// +// Description: Routine to generate non-resonant B -> Xs l+ l- decays. +// It generates a dilepton mass spectrum according to +// F.Kruger and L.M.Sehgal, Phys. Lett. B380, 199 (1996) +// and then generates the two lepton momenta according to +// A.Ali, G.Hiller, L.T.Handoko and T.Morozumi, Phys. Rev. D55, 4105 (1997). +// Expressions for Wilson coefficients and power corrections are taken +// from A.Ali, E.Lunghi, C.Greub and G.Hiller, Phys. Rev. D66, 034002 (2002). +// Detailed formulae for shat dependence of these coefficients are taken +// from H.H.Asatryan, H.M.Asatrian, C.Greub and M.Walker, PRD65, 074004 (2002) +// and C.Bobeth, M.Misiak and J.Urban, Nucl. Phys. B574, 291 (2000). +// The resultant Xs particles may be decayed by JETSET. +// +// Modification history: +// +// Stephane Willocq Jan 19, 2001 Module created +// Stephane Willocq Nov 6, 2003 Update Wilson Coeffs & dG's +// &Jeff Berryhill +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +// +#include +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtBtoXsllUtil.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtDiLog.hh" + +EvtComplex EvtBtoXsllUtil::GetC7Eff0(double sh, bool nnlo) +{ + // This function returns the zeroth-order alpha_s part of C7 + + if (!nnlo) return -0.313; + + double A7; + + // use energy scale of 2.5 GeV as a computational trick (G.Hiller) + // at least for shat > 0.25 + A7 = -0.353 + 0.023; + + EvtComplex c7eff; + if (sh > 0.25) + { + c7eff = A7; + return c7eff; + } + + // change energy scale to 5.0 for full NNLO calculation below shat = 0.25 + A7 = -0.312 + 0.008; + c7eff = A7; + + return c7eff; +} + +EvtComplex EvtBtoXsllUtil::GetC7Eff1(double sh, double mbeff, bool nnlo) +{ + // This function returns the first-order alpha_s part of C7 + + if (!nnlo) return 0.0; + double logsh; + logsh = log(sh); + + EvtComplex uniti(0.0,1.0); + + EvtComplex c7eff = 0.0; + if (sh > 0.25) + { + return c7eff; + } + + // change energy scale to 5.0 for full NNLO calculation below shat = 0.25 + double muscale = 5.0; + double alphas = 0.215; + //double A7 = -0.312 + 0.008; + double A8 = -0.148; + //double A9 = 4.174 + (-0.035); + //double A10 = -4.592 + 0.379; + double C1 = -0.487; + double C2 = 1.024; + //double T9 = 0.374 + 0.252; + //double U9 = 0.033 + 0.015; + //double W9 = 0.032 + 0.012; + double Lmu = log(muscale/mbeff); + + EvtComplex F71; + EvtComplex f71; + EvtComplex k7100(-0.68192,-0.074998); + EvtComplex k7101(0.0,0.0); + EvtComplex k7110(-0.23935,-0.12289); + EvtComplex k7111(0.0027424,0.019676); + EvtComplex k7120(-0.0018555,-0.175); + EvtComplex k7121(0.022864,0.011456); + EvtComplex k7130(0.28248,-0.12783); + EvtComplex k7131(0.029027,-0.0082265); + f71 = k7100 + k7101*logsh + sh*(k7110 + k7111*logsh) + + sh*sh*(k7120 + k7121*logsh) + + sh*sh*sh*(k7130 + k7131*logsh); + F71 = (-208.0/243.0)*Lmu + f71; + + EvtComplex F72; + EvtComplex f72; + EvtComplex k7200(4.0915,0.44999); + EvtComplex k7201(0.0,0.0); + EvtComplex k7210(1.4361,0.73732); + EvtComplex k7211(-0.016454,-0.11806); + EvtComplex k7220(0.011133,1.05); + EvtComplex k7221(-0.13718,-0.068733); + EvtComplex k7230(-1.6949,0.76698); + EvtComplex k7231(-0.17416,0.049359); + f72 = k7200 + k7201*logsh + sh*(k7210 + k7211*logsh) + + sh*sh*(k7220 + k7221*logsh) + + sh*sh*sh*(k7230 + k7231*logsh); + F72 = (416.0/81.0)*Lmu + f72; + + EvtComplex F78; + F78 = (-32.0/9.0)*Lmu + 8.0*EvtConst::pi*EvtConst::pi/27.0 + (-44.0/9.0) + + (-8.0*EvtConst::pi/9.0)*uniti + + (4.0/3.0*EvtConst::pi*EvtConst::pi - 40.0/3.0)*sh + + (32.0*EvtConst::pi*EvtConst::pi/9.0 - 316.0/9.0)*sh*sh + + (200.0*EvtConst::pi*EvtConst::pi/27.0 - 658.0/9.0)*sh*sh*sh + + (-8.0*logsh/9.0)*(sh + sh*sh + sh*sh*sh); + + c7eff = - alphas/(4.0*EvtConst::pi)*(C1*F71 + C2*F72 + A8*F78); + + return c7eff; +} + + +EvtComplex EvtBtoXsllUtil::GetC9Eff0(double sh, double mbeff, + bool nnlo, bool btod) +{ + // This function returns the zeroth-order alpha_s part of C9 + + if (!nnlo) return 4.344; + double logsh; + logsh = log(sh); + double mch = 0.29; + + + double muscale; + muscale = 2.5; + double alphas; + alphas = 0.267; + double A8; + A8 = -0.164; + double A9; + A9 = 4.287 + (-0.218); + double A10; + A10 = -4.592 + 0.379; + double C1; + C1 = -0.697; + double C2; + C2 = 1.046; + double T9; + T9 = 0.114 + 0.280; + double U9; + U9 = 0.045 + 0.023; + double W9; + W9 = 0.044 + 0.016; + + double Lmu; + Lmu = log(muscale/mbeff); + + + EvtComplex uniti(0.0,1.0); + + EvtComplex hc; + double xarg; + xarg = 4.0*mch/sh; + + hc = -4.0/9.0*log(mch*mch) + 8.0/27.0 + 4.0*xarg/9.0; + if (xarg < 1.0) + { + hc = hc - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))* + (log((sqrt(1.0 - xarg)+1.0)/(sqrt(1.0 - xarg) - 1.0)) - + uniti*EvtConst::pi); + } + else + { + hc = hc - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))* + 2.0*atan(1.0/sqrt(xarg-1.0)); + } + + EvtComplex h1; + xarg = 4.0/sh; + h1 = 8.0/27.0 + 4.0*xarg/9.0; + if (xarg < 1.0) + { + h1 = h1 - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))* + (log((sqrt(1.0 - xarg)+1.0)/(sqrt(1.0 - xarg) - 1.0)) - + uniti*EvtConst::pi); + } + else + { + h1 = h1 - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))* + 2.0*atan(1.0/sqrt(xarg-1.0)); + } + + EvtComplex h0; + h0 = 8.0/27.0 - 4.0*log(2.0)/9.0 + 4.0*uniti*EvtConst::pi/9.0; + + + // X=V_{ud}^* V_ub / V_{td}^* V_tb * (4/3 C_1 +C_2) * (h(\hat m_c^2, hat s)- + // h(\hat m_u^2, hat s)) + EvtComplex Vudstar(1.0 - 0.2279*0.2279/2.0, 0.0); + EvtComplex Vub((0.118+0.273)/2.0, -1.0*(0.305+0.393)/2.0); + EvtComplex Vtdstar(1.0 - (0.118+0.273)/2.0,(0.305+0.393)/2.0); + EvtComplex Vtb(1.0,0.0); + + EvtComplex Xd; + Xd = (Vudstar * Vub / Vtdstar * Vtb) * (4.0/3.0*C1 + C2) * (hc - h0); + + EvtComplex c9eff = 4.344; + if (sh > 0.25) + { + c9eff = A9 + T9*hc + U9*h1 + W9*h0; + if (btod) + { + c9eff += Xd; + } + return c9eff; + } + + // change energy scale to 5.0 for full NNLO calculation below shat = 0.25 + muscale = 5.0; + alphas = 0.215; + A9 = 4.174 + (-0.035); + C1 = -0.487; + C2 = 1.024; + A8 = -0.148; + T9 = 0.374 + 0.252; + U9 = 0.033 + 0.015; + W9 = 0.032 + 0.012; + Lmu = log(muscale/mbeff); + + Xd = (Vudstar * Vub / Vtdstar * Vtb) * (4.0/3.0*C1 + C2) * (hc - h0); + + c9eff = A9 + T9*hc + U9*h1 + W9*h0; + + if (btod) + { + c9eff += Xd; + } + + return c9eff; +} + +EvtComplex EvtBtoXsllUtil::GetC9Eff1(double sh, double mbeff, + bool nnlo, bool /*btod*/) +{ + // This function returns the first-order alpha_s part of C9 + + if (!nnlo) return 0.0; + double logsh; + logsh = log(sh); + double mch = 0.29; + + EvtComplex uniti(0.0,1.0); + + EvtComplex c9eff = 0.0; + if (sh > 0.25) + { + return c9eff; + } + + // change energy scale to 5.0 for full NNLO calculation below shat = 0.25 + double muscale = 5.0; + double alphas = 0.215; + double C1 = -0.487; + double C2 = 1.024; + double A8 = -0.148; + double Lmu = log(muscale/mbeff); + + EvtComplex F91; + EvtComplex f91; + EvtComplex k9100(-11.973,0.16371); + EvtComplex k9101(-0.081271,-0.059691); + EvtComplex k9110(-28.432,-0.25044); + EvtComplex k9111(-0.040243,0.016442); + EvtComplex k9120(-57.114,-0.86486); + EvtComplex k9121(-0.035191,0.027909); + EvtComplex k9130(-128.8,-2.5243); + EvtComplex k9131(-0.017587,0.050639); + f91 = k9100 + k9101*logsh + sh*(k9110 + k9111*logsh) + + sh*sh*(k9120 + k9121*logsh) + + sh*sh*sh*(k9130 + k9131*logsh); + F91 = (-1424.0/729.0 + 16.0*uniti*EvtConst::pi/243.0 + + 64.0/27.0*log(mch))*Lmu - 16.0*Lmu*logsh/243.0 + + (16.0/1215.0 - 32.0/135.0/mch/mch)*Lmu*sh + + (4.0/2835.0 - 8.0/315.0/mch/mch/mch/mch)*Lmu*sh*sh + + (16.0/76545.0 - 32.0/8505.0/mch/mch/mch/mch/mch/mch)* + Lmu*sh*sh*sh -256.0*Lmu*Lmu/243.0 + f91; + + EvtComplex F92; + EvtComplex f92; + EvtComplex k9200(6.6338,-0.98225); + EvtComplex k9201(0.48763,0.35815); + EvtComplex k9210(3.3585,1.5026); + EvtComplex k9211(0.24146,-0.098649); + EvtComplex k9220(-1.1906,5.1892); + EvtComplex k9221(0.21115,-0.16745); + EvtComplex k9230(-17.12,15.146); + EvtComplex k9231(0.10552,-0.30383); + f92 = k9200 + k9201*logsh + sh*(k9210 + k9211*logsh) + + sh*sh*(k9220 + k9221*logsh) + + sh*sh*sh*(k9230 + k9231*logsh); + F92 = (256.0/243.0 - 32.0*uniti*EvtConst::pi/81.0 + - 128.0/9.0*log(mch))*Lmu + 32.0*Lmu*logsh/81.0 + + (-32.0/405.0 + 64.0/45.0/mch/mch)*Lmu*sh + + (-8.0/945.0 + 16.0/105.0/mch/mch/mch/mch)*Lmu*sh*sh + + (-32.0/25515.0 + 64.0/2835.0/mch/mch/mch/mch/mch/mch)* + Lmu*sh*sh*sh + 512.0*Lmu*Lmu/81.0 + f92; + + EvtComplex F98; + F98 = 104.0/9.0 - 32.0*EvtConst::pi*EvtConst::pi/27.0 + + (1184.0/27.0 - 40.0*EvtConst::pi*EvtConst::pi/9.0)*sh + + (14212.0/135.0 - 32.0*EvtConst::pi*EvtConst::pi/3.0)*sh*sh + + (193444.0/945.0 - 560.0*EvtConst::pi*EvtConst::pi/27.0)*sh*sh*sh + + 16.0*logsh/9.0*(1.0 + sh + sh*sh + sh*sh*sh); + + c9eff = - alphas/(4.0*EvtConst::pi)*(C1*F91 + C2*F92 + A8*F98); + + return c9eff; +} + +EvtComplex EvtBtoXsllUtil::GetC10Eff(double /*sh*/, bool nnlo) +{ + + if (!nnlo) return -4.669; + double A10; + A10 = -4.592 + 0.379; + + EvtComplex c10eff; + c10eff = A10; + + return c10eff; +} + +double EvtBtoXsllUtil::dGdsProb(double mb, double ms, double ml, + double s) +{ + // Compute the decay probability density function given a value of s + // according to Ali-Lunghi-Greub-Hiller's 2002 paper + // Note that the form given below is taken from + // F.Kruger and L.M.Sehgal, Phys. Lett. B380, 199 (1996) + // but the differential rate as a function of dilepton mass + // in this latter paper reduces to Eq.(12) in ALGH's 2002 paper + // for ml = 0 and ms = 0. + + bool btod = false; + bool nnlo = true; + + double delta, lambda, prob; + double f1, f2, f3, f4; + double msh, mlh, sh; + double mbeff = 4.8; + + mlh = ml / mb; + msh = ms / mb; + // set lepton and strange-quark masses to 0 if need to + // be in strict agreement with ALGH 2002 paper + // mlh = 0.0; msh = 0.0; + // sh = s / (mb*mb); + sh = s / (mbeff*mbeff); + + // if sh >1.0 code will return a nan. so just skip it + if ( sh > 1.0 ) return 0.0; + + + EvtComplex c7eff0 = EvtBtoXsllUtil::GetC7Eff0(sh,nnlo); + EvtComplex c7eff1 = EvtBtoXsllUtil::GetC7Eff1(sh,mbeff,nnlo); + EvtComplex c9eff0 = EvtBtoXsllUtil::GetC9Eff0(sh,mbeff,nnlo,btod); + EvtComplex c9eff1 = EvtBtoXsllUtil::GetC9Eff1(sh,mbeff,nnlo,btod); + EvtComplex c10eff = EvtBtoXsllUtil::GetC10Eff(sh,nnlo); + + double alphas = 0.119/ + (1 + 0.119*log(pow(4.8,2)/pow(91.1867,2))*23.0/12.0/EvtConst::pi); + + double omega7 = -8.0/3.0*log(4.8/mb) + -4.0/3.0*EvtDiLog::DiLog(sh) + -2.0/9.0*EvtConst::pi*EvtConst::pi + -2.0/3.0*log(sh)*log(1.0-sh) + -log(1-sh)*(8.0+sh)/(2.0+sh)/3.0 + -2.0/3.0*sh*(2.0 - 2.0*sh - sh*sh)*log(sh)/pow((1.0 - sh),2)/(2.0 + sh) + -(16.0 - 11.0*sh - 17.0*sh*sh)/18.0/(2.0 + sh)/(1.0 - sh); + double eta7 = 1.0 + alphas*omega7/EvtConst::pi; + + double omega79 = -4.0/3.0*log(4.8/mb) + -4.0/3.0*EvtDiLog::DiLog(sh) + -2.0/9.0*EvtConst::pi*EvtConst::pi + -2.0/3.0*log(sh)*log(1.0-sh) + -1.0/9.0*(2.0+7.0*sh)*log(1.0 - sh)/sh + -2.0/9.0*sh*(3.0 - 2.0*sh)*log(sh)/pow((1.0 - sh),2) + +1.0/18.0*(5.0 - 9.0*sh)/(1.0 - sh); + double eta79 = 1.0 + alphas*omega79/EvtConst::pi; + + double omega9 = -2.0/9.0*EvtConst::pi*EvtConst::pi - 4.0/3.0*EvtDiLog::DiLog(sh) + - 2.0/3.0*log(sh)*log(1.0-sh) + - (5.0+4.0*sh)/(3.0*(1.0+2.0*sh)) * log(1.0-sh) + - 2.0*sh*(1.0+sh)*(1.0-2.0*sh) + /(3.0*pow(1.0-sh,2)*(1.0+2.0*sh)) * log(sh) + + (5.0+9.0*sh-6.0*sh*sh)/(6.0*(1.0-sh)*(1.0+2.0*sh)); + double eta9 = 1.0 + alphas*omega9/EvtConst::pi; + + EvtComplex c7eff = eta7*c7eff0 + c7eff1; + EvtComplex c9eff = eta9*c9eff0 + c9eff1; + c10eff *= eta9; + + double c7c7 = abs2(c7eff); + double c7c9 = real((eta79*c7eff0 + c7eff1)*conj(eta79*c9eff0 + c9eff1)); + double c9c9plusc10c10 = abs2(c9eff) + abs2(c10eff); + double c9c9minusc10c10 = abs2(c9eff) - abs2(c10eff); + + // Power corrections according to ALGH 2002 + double lambda_1 = -0.2; + double lambda_2 = 0.12; + double C1 = -0.487; + double C2 = 1.024; + double mc = 0.29 * mb; + + EvtComplex F; + double r = s / (4.0 * mc * mc); + EvtComplex uniti(0.0,1.0); + F = 3.0 / (2.0 * r); + if (r < 1) + { + F *= 1.0/sqrt(r*(1.0-r))*atan(sqrt(r/(1.0-r)))-1.0; + } + else + { + F *= 0.5/sqrt(r*(r-1.0))*(log((1.0-sqrt(1.0-1.0/r))/(1.0+sqrt(1.0-1.0/r))) + +uniti*EvtConst::pi)-1.0; + } + + double G1 = 1.0 + lambda_1 / (2.0 * mb * mb) + + 3.0 * (1.0 - 15.0*sh*sh + 10.0*sh*sh*sh) + / ((1.0 - sh)*(1.0 -sh)*(1.0 + 2.0*sh)) + * lambda_2 / (2.0*mb*mb); + double G2 = 1.0 + lambda_1 / (2.0 * mb * mb) + - 3.0 * (6.0 + 3.0*sh - 5.0*sh*sh*sh) + / ((1.0 - sh)*(1.0 -sh)*(2.0 + sh)) + * lambda_2 / (2.0*mb*mb); + double G3 = 1.0 + lambda_1 / (2.0 * mb * mb) + - (5.0 + 6.0*sh - 7.0*sh*sh) + / ((1.0 - sh)*(1.0 -sh)) + * lambda_2 / (2.0*mb*mb); + double Gc = -8.0/9.0 * (C2 - C1/6.0) * lambda_2/(mc*mc) + * real(F*(conj(c9eff)*(2.0+sh)+conj(c7eff)*(1.0 + 6.0*sh - sh*sh)/sh)); + + // end of power corrections section + // now back to Kruger & Sehgal expressions + + double msh2=msh*msh; + lambda = 1.0 + sh*sh + msh2*msh2 - 2.0*(sh + sh*msh2 + msh2); + // negative lambda screw up sqrt below! + if ( lambda < 0.0 ) return 0.0; + + f1 = pow(1.0-msh2,2) - sh*(1.0 + msh2); + f2 = 2.0*(1.0 + msh2) * pow(1.0-msh2,2) + - sh*(1.0 + 14.0*msh2 + pow(msh,4)) - sh*sh*(1.0 + msh2); + f3 = pow(1.0-msh2,2) + sh*(1.0 + msh2) - 2.0*sh*sh + + lambda*2.0*mlh*mlh/sh; + f4 = 1.0 - sh + msh2; + + delta = ( 12.0*c7c9*f1*G3 + 4.0*c7c7*f2*G2/sh ) * (1.0 + 2.0*mlh*mlh/sh) + + c9c9plusc10c10*f3*G1 + + 6.0*mlh*mlh*c9c9minusc10c10*f4 + + Gc; + + // avoid negative probs + if ( delta < 0.0 ) delta=0.; + // negative when sh < 4*mlh*mlh + // s < 4*ml*ml + /// prob = sqrt(lambda*(1.0 - 4.0*mlh*mlh/sh)) * delta; + prob = sqrt(lambda*(1.0 - 4.0*ml*ml/s)) * delta; + + // if ( !(prob>=0.0) && !(prob<=0.0) ) { + //nan + // std::cout << lambda << " " << mlh << " " << sh << " " << delta << " " << mb << " " << mbeff << std::endl; + // std::cout << 4.0*mlh*mlh/sh << " " << 4.0*ml*ml/s << " " << s-4.0*ml*ml << " " << ml << std::endl; + // std::cout << sh << " " << sh*sh << " " << msh2*msh2 << " " << msh << std::endl; + //std::cout << ( 12.0*c7c9*f1*G3 + 4.0*c7c7*f2*G2/sh ) * (1.0 + 2.0*mlh*mlh/sh) + // <<" " << c9c9plusc10c10*f3*G1 + // << " "<< 6.0*mlh*mlh*c9c9minusc10c10*f4 + // << " "<< Gc << std::endl; + //std::cout << C2 << " " << C1 << " "<< lambda_2 << " " << mc << " " << real(F*(conj(c9eff)*(2.0+sh)+conj(c7eff)*(1.0 + 6.0*sh - sh*sh)/sh)) << " " << sh << " " << r << std::endl; + //std::cout << c9eff << " " << eta9 << " " < 1.0) std::cout << "not a nan \n"; +// } + return prob; +} + +double EvtBtoXsllUtil::dGdsdupProb(double mb, double ms, double ml, + double s, double u) +{ + // Compute the decay probability density function given a value of s and u + // according to Ali-Hiller-Handoko-Morozumi's 1997 paper + // see Appendix E + + bool btod = false; + bool nnlo = true; + + double prob; + double f1sp, f2sp, f3sp; + double mbeff = 4.8; + + // double sh = s / (mb*mb); + double sh = s / (mbeff*mbeff); + + // if sh >1.0 code will return a nan. so just skip it + if ( sh > 1.0 ) return 0.0; + + EvtComplex c7eff0 = EvtBtoXsllUtil::GetC7Eff0(sh,nnlo); + EvtComplex c7eff1 = EvtBtoXsllUtil::GetC7Eff1(sh,mbeff,nnlo); + EvtComplex c9eff0 = EvtBtoXsllUtil::GetC9Eff0(sh,mbeff,nnlo,btod); + EvtComplex c9eff1 = EvtBtoXsllUtil::GetC9Eff1(sh,mbeff,nnlo,btod); + EvtComplex c10eff = EvtBtoXsllUtil::GetC10Eff(sh,nnlo); + + double alphas = 0.119/ + (1 + 0.119*log(pow(4.8,2)/pow(91.1867,2))*23.0/12.0/EvtConst::pi); + + double omega7 = -8.0/3.0*log(4.8/mb) + -4.0/3.0*EvtDiLog::DiLog(sh) + -2.0/9.0*EvtConst::pi*EvtConst::pi + -2.0/3.0*log(sh)*log(1.0-sh) + -log(1-sh)*(8.0+sh)/(2.0+sh)/3.0 + -2.0/3.0*sh*(2.0 - 2.0*sh - sh*sh)*log(sh)/pow((1.0 - sh),2)/(2.0 + sh) + -(16.0 - 11.0*sh - 17.0*sh*sh)/18.0/(2.0 + sh)/(1.0 - sh); + double eta7 = 1.0 + alphas*omega7/EvtConst::pi; + + double omega79 = -4.0/3.0*log(4.8/mb) + -4.0/3.0*EvtDiLog::DiLog(sh) + -2.0/9.0*EvtConst::pi*EvtConst::pi + -2.0/3.0*log(sh)*log(1.0-sh) + -1.0/9.0*(2.0+7.0*sh)*log(1.0 - sh)/sh + -2.0/9.0*sh*(3.0 - 2.0*sh)*log(sh)/pow((1.0 - sh),2) + +1.0/18.0*(5.0 - 9.0*sh)/(1.0 - sh); + double eta79 = 1.0 + alphas*omega79/EvtConst::pi; + + double omega9 = - 2.0/9.0*EvtConst::pi*EvtConst::pi - 4.0/3.0*EvtDiLog::DiLog(sh) + - 2.0/3.0*log(sh)*log(1.0-sh) + - (5.0+4.0*sh)/(3.0*(1.0+2.0*sh)) * log(1.0-sh) + - 2.0*sh*(1.0+sh)*(1.0-2.0*sh) + /(3.0*pow(1.0-sh,2)*(1.0+2.0*sh)) * log(sh) + + (5.0+9.0*sh-6.0*sh*sh)/(6.0*(1.0-sh)*(1.0+2.0*sh)); + double eta9 = 1.0 + alphas*omega9/EvtConst::pi; + + EvtComplex c7eff = eta7*c7eff0 + c7eff1; + EvtComplex c9eff = eta9*c9eff0 + c9eff1; + c10eff *= eta9; + + double c7c7 = abs2(c7eff); + double c7c9 = real((eta79*c7eff0 + c7eff1)*conj(eta79*c9eff0 + c9eff1)); + double c7c10 = real((eta79*c7eff0 + c7eff1)*conj(eta9*c10eff)); + double c9c10 = real((eta9*c9eff0 + c9eff1)*conj(eta9*c10eff)); + double c9c9plusc10c10 = abs2(c9eff) + abs2(c10eff); + + f1sp = ( pow(mb*mb-ms*ms,2) - s*s) * c9c9plusc10c10 + + 4.0*( pow(mb,4) - ms*ms*mb*mb - pow(ms,4)*(1.0 - ms*ms/(mb*mb)) + - 8.0*s*ms*ms - s*s*(1.0 + ms*ms/(mb*mb) ))*mb*mb*c7c7/s + // kludged mass term + *(1.0 + 2.0*ml*ml/s) + - 8.0*(s*(mb*mb + ms*ms) - pow(mb*mb-ms*ms,2)) * c7c9 + // kludged mass term + *(1.0 + 2.0*ml*ml/s); + + f2sp = 4.0*s*c9c10 + 8.0*(mb*mb + ms*ms)*c7c10; + f3sp = - (c9c9plusc10c10) + + 4.0*(1.0 + pow(ms/mb,4)) * mb*mb*c7c7/s + // kludged mass term + *(1.0 + 2.0*ml*ml/s); + + prob = (f1sp + f2sp*u + f3sp*u*u)/ pow(mb,3); + if ( prob < 0.0 ) prob=0.; + + return prob; +} + +double EvtBtoXsllUtil::FermiMomentum(double pf) +{ + // Pick a value for the b-quark Fermi motion momentum + // according to Ali's Gaussian model + + double pb, pbmax, xbox, ybox; + pb = 0.0; + pbmax = 5.0 * pf; + + while (pb == 0.0) + { + xbox = EvtRandom::Flat(pbmax); + ybox = EvtRandom::Flat(); + if (ybox < FermiMomentumProb(xbox, pf)) { pb = xbox;} + } + + return pb; +} + +double EvtBtoXsllUtil::FermiMomentumProb(double pb, double pf) +{ + // Compute probability according to Ali's Gaussian model + // the function chosen has a convenient maximum value of 1 for pb = pf + + double prsq = (pb*pb)/(pf*pf); + double prob = prsq * exp(1.0 - prsq); + + return prob; +} + diff --git a/TEvtGen/EvtGenModels/EvtBtoXsllUtil.hh b/TEvtGen/EvtGenModels/EvtBtoXsllUtil.hh new file mode 100644 index 00000000000..ee274a4908a --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtBtoXsllUtil.hh @@ -0,0 +1,53 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// +// Module: EvtGen/EvtBtoXsllUtil.hh +// +// Description: +// Class to generate inclusive non-resonant B -> Xs l+ l- decays. +// +// Modification history: +// +// Stephane Willocq Jan 19, 2001 Module created +// Stephane Willocq Nov 6, 2003 Update Wilson Coeffs +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOXSLLUTIL_HH +#define EVTBTOXSLLUTIL_HH + +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtDecayIncoherent.hh" +#include "EvtGenBase/EvtParticle.hh" + +class EvtComplex; + +class EvtBtoXsllUtil{ + +public: + + EvtComplex GetC7Eff0(double sh, bool nnlo=true); + EvtComplex GetC7Eff1(double sh, double mb, bool nnlo=true); + EvtComplex GetC9Eff0(double sh, double mb, bool nnlo=true, bool btod=false); + EvtComplex GetC9Eff1(double sh, double mb, bool nnlo=true, bool btod=false); + EvtComplex GetC10Eff(double sh, bool nnlo=true); + + double dGdsProb(double mb, double ms, double ml, + double s); + + double dGdsdupProb(double mb, double ms, double ml, + double s, double u); + + double FermiMomentum( double pf ); + + double FermiMomentumProb( double pb, double pf ); + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtCBTo3piMPP.cxx b/TEvtGen/EvtGenModels/EvtCBTo3piMPP.cxx new file mode 100644 index 00000000000..fe616e7d6da --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtCBTo3piMPP.cxx @@ -0,0 +1,152 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtCBTo3piMPP.cc +// +// Description: Routine to decay B+/-->pi+ pi- pi+/- +// and has CP violation. +// +// Modification history: +// +// RYD/Versille May 6, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenModels/EvtCBTo3piMPP.hh" +#include + +//Below you will have do modify the declaration to be appropriate +//for your new routine for the calculation of the amplitude + +#ifdef WIN32 +extern "C" void __stdcall EVT3PIONSMPP(double *,int *,double *, + double *,double *,double *, + double *,double *,double *); +#else +extern "C" void evt3pionsmpp_(double *,int *,double *, + double *,double *,double *, + double *,double *,double *); +#endif + +EvtCBTo3piMPP::~EvtCBTo3piMPP() {} + +std::string EvtCBTo3piMPP::getName(){ + + return "CB3PI-MPP"; + +} + + +EvtDecayBase* EvtCBTo3piMPP::clone(){ + + return new EvtCBTo3piMPP; + +} + +void EvtCBTo3piMPP::init(){ + + // check that there are 1 argument + checkNArg(1); + checkNDaug(3); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + checkSpinDaughter(2,EvtSpinType::SCALAR); + +} + +void EvtCBTo3piMPP::initProbMax(){ + + setProbMax(1.5); + +} + +void EvtCBTo3piMPP::decay( EvtParticle *p ){ + + //added by Lange Jan4,2000 + static EvtId BM=EvtPDL::getId("B-"); + static EvtId BP=EvtPDL::getId("B+"); + + EvtParticle *pi1,*pi2,*pi3; + + p->makeDaughters(getNDaug(),getDaugs()); + pi1=p->getDaug(0); + pi2=p->getDaug(1); + pi3=p->getDaug(2); + + EvtVector4R p4[3]; + double alpha = getArg(0); + + int iset; + + static int first=1; + + if (first==1) { + iset=10000; + first=0; + } + else{ + iset=0; + } + + double p4pi1[4],p4pi2[4],p4pi3[4]; + + double realA,imgA,realbarA,imgbarA; + +#ifdef WIN32 + EVT3PIONSMPP(&alpha,&iset,p4pi1,p4pi2,p4pi3, + &realA,&imgA,&realbarA,&imgbarA); +#else + evt3pionsmpp_(&alpha,&iset,p4pi1,p4pi2,p4pi3, + &realA,&imgA,&realbarA,&imgbarA); +#endif + + p4[0].set(p4pi1[3],p4pi1[0],p4pi1[1],p4pi1[2]); + p4[1].set(p4pi2[3],p4pi2[0],p4pi2[1],p4pi2[2]); + p4[2].set(p4pi3[3],p4pi3[0],p4pi3[1],p4pi3[2]); + + pi1->init( getDaug(0), p4[0] ); + pi2->init( getDaug(1), p4[1] ); + pi3->init( getDaug(2), p4[2] ); + + EvtComplex A(realA,imgA); + EvtComplex Abar(realbarA, imgbarA); + + //amp is filled just to make sure the compiler will + //do its job!! but one has to define amp differently + // if one wants the B+ or the B- to decay to 3pi! + // + + + EvtComplex amp; + if(p->getId()==BP) + { + amp = A; + } + if(p->getId()==BM) + { + amp = Abar; + } + + vertex(amp); + + return ; +} + + diff --git a/TEvtGen/EvtGenModels/EvtCBTo3piMPP.hh b/TEvtGen/EvtGenModels/EvtCBTo3piMPP.hh new file mode 100644 index 00000000000..f12f7e7860e --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtCBTo3piMPP.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtCBTo3piMPP.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTCBTO3PIMPP_HH +#define EVTCBTO3PIMPP_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtCBTo3piMPP:public EvtDecayAmp { + +public: + + EvtCBTo3piMPP() {} + virtual ~EvtCBTo3piMPP(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtCBTo3piP00.cxx b/TEvtGen/EvtGenModels/EvtCBTo3piP00.cxx new file mode 100644 index 00000000000..f140b60ee08 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtCBTo3piP00.cxx @@ -0,0 +1,159 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtCBTo3piP00.cc +// +// Description: Routine to decay B+/-->pi0 pi0 pi+/- +// and has CP violation. +// +// Modification history: +// +// RYD,Versille May 6, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtCBTo3piP00.hh" +#include + +//Below you will have do modify the declaration to be appropriate +//for your new routine for the calculation of the amplitude + +#ifdef WIN32 +extern "C" { + extern void EVT3PIONSP00(double *,int *, + double *, + double *,double *, + double *,double *, + double *,double *,double *,double *); +} +#else +extern "C" { + extern void evt3pionsp00_(double *,int *, + double *, + double *,double *, + double *,double *, + double *,double *,double *,double *); +} +#endif + +EvtCBTo3piP00::~EvtCBTo3piP00() {} + +std::string EvtCBTo3piP00::getName(){ + + return "CB3PI-P00"; + +} + + +EvtDecayBase* EvtCBTo3piP00::clone(){ + + return new EvtCBTo3piP00; + +} + +void EvtCBTo3piP00::init(){ + + // check that there are 1 argument + checkNArg(1); + checkNDaug(3); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + checkSpinDaughter(2,EvtSpinType::SCALAR); + +} + + + +void EvtCBTo3piP00::initProbMax(){ + + + setProbMax(1.5); + +} + + +void EvtCBTo3piP00::decay( EvtParticle *p ){ + + //added by Lange Jan4,2000 + static EvtId BM=EvtPDL::getId("B-"); + static EvtId BP=EvtPDL::getId("B+"); + + EvtParticle *pi1,*pi2,*pi3; + + p->makeDaughters(getNDaug(),getDaugs()); + pi1=p->getDaug(0); + pi2=p->getDaug(1); + pi3=p->getDaug(2); + + EvtVector4R p4[3]; + double alpha = getArg(0); + int iset; + static int first=1; + + if (first==1) { + iset=10000; + first=0; + } + else{ + iset=0; + } + + double p4pi1[4],p4Gamma11[4],p4Gamma12[4]; + double p4Gamma21[4],p4Gamma22[4]; + + double realA,imgA,realbarA,imgbarA; + + evt3pionsp00_(&alpha,&iset, + p4pi1, + p4Gamma11,p4Gamma12, + p4Gamma21,p4Gamma22, + &realA,&imgA,&realbarA,&imgbarA); + + p4[0].set(p4pi1[3],p4pi1[0],p4pi1[1],p4pi1[2]); + p4[1].set(p4Gamma11[3]+p4Gamma12[3], + p4Gamma11[0]+p4Gamma12[0], + p4Gamma11[1]+p4Gamma12[1], + p4Gamma11[2]+p4Gamma12[2]); + p4[2].set(p4Gamma21[3]+p4Gamma22[3], + p4Gamma21[0]+p4Gamma22[0], + p4Gamma21[1]+p4Gamma22[1], + p4Gamma21[2]+p4Gamma22[2]); + + pi1->init( getDaug(0), p4[0] ); + pi2->init( getDaug(1), p4[1] ); + pi3->init( getDaug(2), p4[2] ); + + EvtComplex A(realA,imgA); + EvtComplex Abar(realbarA, imgbarA); + + EvtComplex amp; + if(p->getId()==BP) + { + amp = A; + } + if(p->getId()==BM) + { + amp = Abar; + } + + vertex(amp); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtCBTo3piP00.hh b/TEvtGen/EvtGenModels/EvtCBTo3piP00.hh new file mode 100644 index 00000000000..453d49cc84d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtCBTo3piP00.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtCBTo3piP00.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTCBTO3PIP00_HH +#define EVTCBTO3PIP00_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtCBTo3piP00:public EvtDecayAmp { + +public: + + EvtCBTo3piP00() {} + virtual ~EvtCBTo3piP00(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtD0mixDalitz.cxx b/TEvtGen/EvtGenModels/EvtD0mixDalitz.cxx new file mode 100644 index 00000000000..a6ad3183c47 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtD0mixDalitz.cxx @@ -0,0 +1,367 @@ +/***************************************************************************** + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenModels + * File: $Id: EvtD0mixDalitz.cc,v 1.9 2008/11/27 16:37:24 jordix Exp $ + * + * Description: + * The D0mixDalitz model, with many resonances and mixing implemented. + * + * Modification history: + * Jordi Garra Ticó 2008/07/03 File created + *****************************************************************************/ + +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtResonance.hh" +#include "EvtGenBase/EvtDalitzPlot.hh" +#include "EvtGenBase/EvtDalitzReso.hh" +#include "EvtGenModels/EvtD0mixDalitz.hh" + + +// Initialize the static variables. +const EvtSpinType::spintype& EvtD0mixDalitz::_SCALAR = EvtSpinType::SCALAR; +const EvtSpinType::spintype& EvtD0mixDalitz::_VECTOR = EvtSpinType::VECTOR; +const EvtSpinType::spintype& EvtD0mixDalitz::_TENSOR = EvtSpinType::TENSOR; + +const EvtDalitzReso::CouplingType& EvtD0mixDalitz::_EtaPic = EvtDalitzReso::EtaPic; +const EvtDalitzReso::CouplingType& EvtD0mixDalitz::_PicPicKK = EvtDalitzReso::PicPicKK; + +const EvtDalitzReso::NumType& EvtD0mixDalitz::_RBW = EvtDalitzReso::RBW_CLEO_ZEMACH; +const EvtDalitzReso::NumType& EvtD0mixDalitz::_GS = EvtDalitzReso::GS_CLEO_ZEMACH; +const EvtDalitzReso::NumType& EvtD0mixDalitz::_KMAT = EvtDalitzReso::K_MATRIX; + +const EvtCyclic3::Pair& EvtD0mixDalitz::_AB = EvtCyclic3::AB; +const EvtCyclic3::Pair& EvtD0mixDalitz::_AC = EvtCyclic3::AC; +const EvtCyclic3::Pair& EvtD0mixDalitz::_BC = EvtCyclic3::BC; + + +void EvtD0mixDalitz::init() +{ + // check that there are 0 arguments + checkNDaug( 3 ); + + if ( getNArg() ) + if ( getNArg() == 2 ) + { + _x = getArg( 0 ); + _y = getArg( 1 ); + } + else if ( getNArg() == 4 ) + { + _x = getArg( 0 ); + _y = getArg( 1 ); + _qp = EvtComplex( getArg( 2 ), getArg( 3 ) ); + } + else if ( getNArg() == 5 ) + { + _x = getArg( 0 ); + _y = getArg( 1 ); + _qp = EvtComplex( getArg( 2 ), getArg( 3 ) ); + _isRBWmodel = ! getArg( 4 ); // RBW by default. If arg4 is set, do K-matrix. + } + else + { + report( ERROR, "EvtD0mixDalitz" ) << "Number of arguments for this model must be 0, 2, 4 or 5:" << std::endl + << "[ x y ][ qp.re qp.im ][ doK-matrix ]" << std::endl + << "Check your dec file." << std::endl; + exit( 1 ); + } + + checkSpinParent ( _SCALAR ); + checkSpinDaughter( 0, _SCALAR ); + checkSpinDaughter( 1, _SCALAR ); + checkSpinDaughter( 2, _SCALAR ); + + readPDGValues(); + + // Get the EvtId of the D0 and its (3) daughters. + EvtId parId = getParentId(); + + EvtId dau[ 3 ]; + for ( int index = 0; index < 3; index++ ) + dau[ index ] = getDaug( index ); + + if ( parId == _D0 ) // Look for K0bar h+ h-. The order must be K[0SL] h+ h- + for ( int index = 0; index < 3; index++ ) + if ( ( dau[ index ] == _K0B ) || ( dau[ index ] == _KS ) || ( dau[ index ] == _KL ) ) + _d1 = index; + else if ( ( dau[ index ] == _PIP ) || ( dau[ index ] == _KP ) ) + _d2 = index; + else if ( ( dau[ index ] == _PIM ) || ( dau[ index ] == _KM ) ) + _d3 = index; + else + reportInvalidAndExit(); + else if ( parId == _D0B ) // Look for K0 h+ h-. The order must be K[0SL] h- h+ + for ( int index = 0; index < 3; index++ ) + if ( ( dau[ index ] == _K0 ) || ( dau[ index ] == _KS ) || ( dau[ index ] == _KL ) ) + _d1 = index; + else if ( ( dau[ index ] == _PIM ) || ( dau[ index ] == _KM ) ) + _d2 = index; + else if ( ( dau[ index ] == _PIP ) || ( dau[ index ] == _KP ) ) + _d3 = index; + else + reportInvalidAndExit(); + else + reportInvalidAndExit(); + + // Check if we're dealing with Ks pi pi or with Ks K K. + _isKsPiPi = false; + if ( dau[ _d2 ] == _PIP || dau[ _d2 ] == _PIM ) + _isKsPiPi = true; +} + + + +void EvtD0mixDalitz::decay( EvtParticle* part ) +{ + // Same structure for all of these decays. + part->initializePhaseSpace( getNDaug(), getDaugs() ); + EvtVector4R pA = part->getDaug( _d1 )->getP4(); + EvtVector4R pB = part->getDaug( _d2 )->getP4(); + EvtVector4R pC = part->getDaug( _d3 )->getP4(); + + // Squared invariant masses. + double m2AB = ( pA + pB ).mass2(); + double m2AC = ( pA + pC ).mass2(); + double m2BC = ( pB + pC ).mass2(); + + // Dalitz amplitudes of the decay of the particle and that of the antiparticle. + EvtComplex ampDalitz; + EvtComplex ampAntiDalitz; + + if ( _isKsPiPi ) + { // For Ks pi pi + EvtDalitzPoint point ( _mKs, _mPi, _mPi, m2AB, m2BC, m2AC ); + EvtDalitzPoint antiPoint( _mKs, _mPi, _mPi, m2AC, m2BC, m2AB ); + + ampDalitz = dalitzKsPiPi( point ); + ampAntiDalitz = dalitzKsPiPi( antiPoint ); + } + else + { // For Ks K K + EvtDalitzPoint point ( _mKs, _mK, _mK, m2AB, m2BC, m2AC ); + EvtDalitzPoint antiPoint( _mKs, _mK, _mK, m2AC, m2BC, m2AB ); + + ampDalitz = dalitzKsKK( point ); + ampAntiDalitz = dalitzKsKK( antiPoint ); + } + + //_i1 += ampDalitz * conj( ampDalitz ) / 1.e8; + //_iChi += ampAntiDalitz * conj( ampDalitz ) / 1.e8; + //_iChi2 += ampAntiDalitz * conj( ampAntiDalitz ) / 1.e8; + + //std::cout << "INTEGRALS: " << _i1 << " " << _iChi << " " << _iChi2 << " " << _iChi / _i1 << " " << _iChi2 / _i1 << std::endl; + + // Assume there's no direct CP violation. + EvtComplex barAOverA = ampAntiDalitz / ampDalitz; + + // CP violation in the interference. _qp implements CP violation in the mixing. + EvtComplex chi = _qp * barAOverA; + + // Generate a negative exponential life time. p( gt ) = ( 1 - y ) * e^{ - ( 1 - y ) gt } + double gt = -log( EvtRandom::Flat() ) / ( 1. - _y ); + part->setLifetime( gt / _gamma ); + + // Compute time dependent amplitude. + EvtComplex amp = .5 * ampDalitz * exp( - _y * gt / 2. ) * ( ( 1. + chi ) * h1( gt ) + ( 1. - chi ) * h2( gt ) ); + + vertex( amp ); + + return; +} + + +void EvtD0mixDalitz::readPDGValues() +{ + // Define the EvtIds. + _D0 = EvtPDL::getId( "D0" ); + _D0B = EvtPDL::getId( "anti-D0" ); + _KM = EvtPDL::getId( "K-" ); + _KP = EvtPDL::getId( "K+" ); + _K0 = EvtPDL::getId( "K0" ); + _K0B = EvtPDL::getId( "anti-K0" ); + _KL = EvtPDL::getId( "K_L0" ); + _KS = EvtPDL::getId( "K_S0" ); + _PIM = EvtPDL::getId( "pi-" ); + _PIP = EvtPDL::getId( "pi+" ); + + // Read the relevant masses. + _mD0 = EvtPDL::getMass( _D0 ); + _mKs = EvtPDL::getMass( _KS ); + _mPi = EvtPDL::getMass( _PIP ); + _mK = EvtPDL::getMass( _KP ); + + // Compute the decay rate from the parameter in the evt.pdl file. + _ctau = EvtPDL::getctau( EvtPDL::getId( "D0" ) ); + + //_iChi = _qp * EvtComplex( 0.089723 , 0.0004776 ); // All resonances RBW, also Rho0. + + //_iChi = _qp * EvtComplex( 0.0481807, 0.0003043 ); // KStarm only + //_iChi = _qp * EvtComplex( 0.0594099, 0.00023803 ); // All resonances RBW but GS Rho + //_iChi = _qp * EvtComplex( 0.0780186, 0.000417646 ); // All resonances for KsKK + //_iChi2 = _qp * 1.; + + /* + // Compute the gamma correction factor avgBeta = Gamma tau. + // Compute the norm of the unnormalized p(\beta). + double factorY = ( 1. + abs( _iChi2 ) ) / 2. - _y * real( _iChi ); + double factorX = ( 1. - abs( _iChi2 ) ) / 2. + _x * imag( _iChi ); + double norm = factorY / ( 1. - pow( _y, 2 ) ) + factorX / ( 1. + pow( _x, 2 ) ); + + // Compute the integral of p(\beta) \beta d\beta. + double termY = ( 1. + abs( _iChi2 ) ) / 2. - 2. * _y / ( 1. + pow( _y, 2 ) ) * real( _iChi ); + double termX = ( 1. - abs( _iChi2 ) ) / 2. + 2. * _x / ( 1. - pow( _x, 2 ) ) * imag( _iChi ); + double quotientY = ( 1. + pow( _y, 2 ) ) / pow( 1. - pow( _y, 2 ), 2 ); + double quotientX = ( 1. - pow( _x, 2 ) ) / pow( 1. + pow( _x, 2 ), 2 ); + double normTimesAvg = termY * quotientY + termX * quotientX; + + double avgBeta = normTimesAvg / norm; + + _gamma = avgBeta / _ctau; + */ + + _gamma = 1. / _ctau; // ALERT: Gamma is not 1 / tau. +} + + +EvtComplex EvtD0mixDalitz::dalitzKsPiPi( const EvtDalitzPoint& point ) +{ + static const EvtDalitzPlot plot( _mKs, _mPi, _mPi, _mD0 ); + + EvtComplex amp = 0.; + + if ( _isRBWmodel ) + { + // This corresponds to relativistic Breit-Wigner distributions. Not K-matrix. + // Defining resonances. + static EvtDalitzReso KStarm ( plot, _BC, _AC, _VECTOR, 0.893606, 0.0463407, _RBW ); + static EvtDalitzReso KStarp ( plot, _BC, _AB, _VECTOR, 0.893606, 0.0463407, _RBW ); + static EvtDalitzReso rho0 ( plot, _AC, _BC, _VECTOR, 0.7758 , 0.1464 , _GS ); + static EvtDalitzReso omega ( plot, _AC, _BC, _VECTOR, 0.78259 , 0.00849 , _RBW ); + static EvtDalitzReso f0_980 ( plot, _AC, _BC, _SCALAR, 0.975 , 0.044 , _RBW ); + static EvtDalitzReso f0_1370 ( plot, _AC, _BC, _SCALAR, 1.434 , 0.173 , _RBW ); + static EvtDalitzReso f2_1270 ( plot, _AC, _BC, _TENSOR, 1.2754 , 0.1851 , _RBW ); + static EvtDalitzReso K0Starm_1430( plot, _BC, _AC, _SCALAR, 1.459 , 0.175 , _RBW ); + static EvtDalitzReso K0Starp_1430( plot, _BC, _AB, _SCALAR, 1.459 , 0.175 , _RBW ); + static EvtDalitzReso K2Starm_1430( plot, _BC, _AC, _TENSOR, 1.4256 , 0.0985 , _RBW ); + static EvtDalitzReso K2Starp_1430( plot, _BC, _AB, _TENSOR, 1.4256 , 0.0985 , _RBW ); + static EvtDalitzReso sigma ( plot, _AC, _BC, _SCALAR, 0.527699, 0.511861 , _RBW ); + static EvtDalitzReso sigma2 ( plot, _AC, _BC, _SCALAR, 1.03327 , 0.0987890, _RBW ); + static EvtDalitzReso KStarm_1680 ( plot, _BC, _AC, _VECTOR, 1.677 , 0.205 , _RBW ); + + // Adding terms to the amplitude with their corresponding amplitude and phase terms. + amp += EvtComplex( .848984 , .893618 ); + amp += EvtComplex( -1.16356 , 1.19933 ) * KStarm .evaluate( point ); + amp += EvtComplex( .106051 , - .118513 ) * KStarp .evaluate( point ); + amp += EvtComplex( 1.0 , 0.0 ) * rho0 .evaluate( point ); + amp += EvtComplex( - .0249569, .0388072 ) * omega .evaluate( point ); + amp += EvtComplex( - .423586 , - .236099 ) * f0_980 .evaluate( point ); + amp += EvtComplex( -2.16486 , 3.62385 ) * f0_1370 .evaluate( point ); + amp += EvtComplex( .217748 , - .133327 ) * f2_1270 .evaluate( point ); + amp += EvtComplex( 1.62128 , 1.06816 ) * K0Starm_1430.evaluate( point ); + amp += EvtComplex( .148802 , .0897144 ) * K0Starp_1430.evaluate( point ); + amp += EvtComplex( 1.15489 , - .773363 ) * K2Starm_1430.evaluate( point ); + amp += EvtComplex( .140865 , - .165378 ) * K2Starp_1430.evaluate( point ); + amp += EvtComplex( -1.55556 , - .931685 ) * sigma .evaluate( point ); + amp += EvtComplex( - .273791 , - .0535596 ) * sigma2 .evaluate( point ); + amp += EvtComplex( -1.69720 , .128038 ) * KStarm_1680 .evaluate( point ); + } + else + { + // This corresponds to the complete model (RBW, GS, LASS and K-matrix). + // Defining resonances. + static EvtDalitzReso KStarm ( plot, _BC, _AC, _VECTOR, 0.893619, 0.0466508, _RBW ); + static EvtDalitzReso KStarp ( plot, _BC, _AB, _VECTOR, 0.893619, 0.0466508, _RBW ); + static EvtDalitzReso rho0 ( plot, _AC, _BC, _VECTOR, 0.7758 , 0.1464 , _GS ); + static EvtDalitzReso omega ( plot, _AC, _BC, _VECTOR, 0.78259 , 0.00849 , _RBW ); + static EvtDalitzReso f2_1270 ( plot, _AC, _BC, _TENSOR, 1.2754 , 0.1851 , _RBW ); + static EvtDalitzReso K0Starm_1430( plot, _AC, 1.46312, 0.232393, 1.0746, -1.83214, .803516, 2.32788, 1., -5.31306 ); // LASS + static EvtDalitzReso K0Starp_1430( plot, _AB, 1.46312, 0.232393, 1.0746, -1.83214, .803516, 2.32788, 1., -5.31306 ); // LASS + static EvtDalitzReso K2Starm_1430( plot, _BC, _AC, _TENSOR, 1.4256 , 0.0985 , _RBW ); + static EvtDalitzReso K2Starp_1430( plot, _BC, _AB, _TENSOR, 1.4256 , 0.0985 , _RBW ); + static EvtDalitzReso KStarm_1680 ( plot, _BC, _AC, _VECTOR, 1.677 , 0.205 , _RBW ); + + // Defining K-matrix. + static EvtComplex fr12( 1.87981, -.628378 ); + static EvtComplex fr13( 4.3242 , 2.75019 ); + static EvtComplex fr14( 3.22336, .271048 ); + static EvtComplex fr15( .0 , .0 ); + static EvtDalitzReso Pole1 ( plot, _BC, "Pole1" , _KMAT, fr12, fr13, fr14, fr15, -.0694725 ); + static EvtDalitzReso Pole2 ( plot, _BC, "Pole2" , _KMAT, fr12, fr13, fr14, fr15, -.0694725 ); + static EvtDalitzReso Pole3 ( plot, _BC, "Pole3" , _KMAT, fr12, fr13, fr14, fr15, -.0694725 ); + static EvtDalitzReso Pole4 ( plot, _BC, "Pole4" , _KMAT, fr12, fr13, fr14, fr15, -.0694725 ); + static EvtDalitzReso kmatrix( plot, _BC, "f11prod", _KMAT, fr12, fr13, fr14, fr15, -.0694725 ); + + // Adding terms to the amplitude with their corresponding amplitude and phase terms. + amp += EvtComplex( - 1.31394 , 1.14072 ) * KStarm .evaluate( point ); + amp += EvtComplex( .116239 , - .107287 ) * KStarp .evaluate( point ); + amp += EvtComplex( 1.0 , 0.0 ) * rho0 .evaluate( point ); + amp += EvtComplex( - .0313343 , .0424013 ) * omega .evaluate( point ); + amp += EvtComplex( .559412 , - .232336 ) * f2_1270 .evaluate( point ); + amp += EvtComplex( 7.35400 , -3.67637 ) * K0Starm_1430.evaluate( point ); + amp += EvtComplex( .255913 , - .190459 ) * K0Starp_1430.evaluate( point ); + amp += EvtComplex( 1.05397 , - .936297 ) * K2Starm_1430.evaluate( point ); + amp += EvtComplex( - .00760136, - .0908624 ) * K2Starp_1430.evaluate( point ); + amp += EvtComplex( - 1.45336 , - .164494 ) * KStarm_1680 .evaluate( point ); + amp += EvtComplex( - 1.81830 , 9.10680 ) * Pole1 .evaluate( point ); + amp += EvtComplex( 10.1751 , 3.87961 ) * Pole2 .evaluate( point ); + amp += EvtComplex( 23.6569 , -4.94551 ) * Pole3 .evaluate( point ); + amp += EvtComplex( .0725431 , -9.16264 ) * Pole4 .evaluate( point ); + amp += EvtComplex( - 2.19449 , -7.62666 ) * kmatrix .evaluate( point ); + + amp *= .97; // Multiply by a constant in order to use the same maximum as RBW model. + } + + return amp; +} + + +EvtComplex EvtD0mixDalitz::dalitzKsKK( const EvtDalitzPoint& point ) +{ + static const EvtDalitzPlot plot( _mKs, _mK, _mK, _mD0 ); + + // Defining resonances. + static EvtDalitzReso a00_980 ( plot, _AC, _BC, _SCALAR, 0.999 , _RBW, .550173, .324, _EtaPic ); + static EvtDalitzReso phi ( plot, _AC, _BC, _VECTOR, 1.01943, .00459319 , _RBW ); + static EvtDalitzReso a0p_980 ( plot, _AC, _AB, _SCALAR, 0.999 , _RBW, .550173, .324, _EtaPic ); + static EvtDalitzReso f0_1370 ( plot, _AC, _BC, _SCALAR, 1.350 , .265 , _RBW ); + static EvtDalitzReso a0m_980 ( plot, _AB, _AC, _SCALAR, 0.999 , _RBW, .550173, .324, _EtaPic ); + static EvtDalitzReso f0_980 ( plot, _AC, _BC, _SCALAR, 0.965 , _RBW, .695 , .165, _PicPicKK ); + static EvtDalitzReso f2_1270 ( plot, _AC, _BC, _TENSOR, 1.2754 , .1851 , _RBW ); + static EvtDalitzReso a00_1450( plot, _AC, _BC, _SCALAR, 1.474 , .265 , _RBW ); + static EvtDalitzReso a0p_1450( plot, _AC, _AB, _SCALAR, 1.474 , .265 , _RBW ); + static EvtDalitzReso a0m_1450( plot, _AB, _AC, _SCALAR, 1.474 , .265 , _RBW ); + + // Adding terms to the amplitude with their corresponding amplitude and phase terms. + EvtComplex amp( 0., 0. ); // Phase space amplitude. + amp += EvtComplex( 1.0 , 0.0 ) * a00_980 .evaluate( point ); + amp += EvtComplex( -.126314 , .188701 ) * phi .evaluate( point ); + amp += EvtComplex( -.561428 , .0135338 ) * a0p_980 .evaluate( point ); + amp += EvtComplex( .035 , -.00110488 ) * f0_1370 .evaluate( point ); + amp += EvtComplex( -.0872735 , .0791190 ) * a0m_980 .evaluate( point ); + amp += EvtComplex( 0. , 0. ) * f0_980 .evaluate( point ); + amp += EvtComplex( .257341 , -.0408343 ) * f2_1270 .evaluate( point ); + amp += EvtComplex( -.0614342 , -.649930 ) * a00_1450.evaluate( point ); + amp += EvtComplex( -.104629 , .830120 ) * a0p_1450.evaluate( point ); + amp += EvtComplex( 0. , 0. ) * a0m_1450.evaluate( point ); + + return 2.8 * amp; // Multiply by 2.8 in order to reuse the same probmax as Ks pi pi. +} + + +// < f | H | D^0 (t) > = 1/2 * [ ( 1 + \chi_f ) * A_f * e_1(gt) + ( 1 - \chi_f ) * A_f * e_2(gt) ] +// < f | H | D^0 (t) > = 1/2 * exp( -gamma t / 2 ) * [ ( 1 + \chi_f ) * A_f * h_1(t) + ( 1 - \chi_f ) * A_f * h_2(t) ] +// e{1,2}( gt ) = exp( -gt / 2 ) * h{1,2}( gt ). +EvtComplex EvtD0mixDalitz::h1( const double& gt ) const +{ + return exp( - EvtComplex( _y, _x ) * gt / 2. ); +} + + +EvtComplex EvtD0mixDalitz::h2( const double& gt ) const +{ + return exp( EvtComplex( _y, _x ) * gt / 2. ); +} + diff --git a/TEvtGen/EvtGenModels/EvtD0mixDalitz.hh b/TEvtGen/EvtGenModels/EvtD0mixDalitz.hh new file mode 100644 index 00000000000..d490c6e0013 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtD0mixDalitz.hh @@ -0,0 +1,119 @@ +/***************************************************************************** + * Project: BaBar detector at the SLAC PEP-II B-factory + * Package: EvtGenModels + * File: $Id: EvtD0mixDalitz.hh,v 1.6 2008/11/14 12:22:06 jordix Exp $ + * + * Description: + * The D0mixDalitz model, with many resonances and mixing implemented. + * + * Modification history: + * Jordi Garra Ticó 2008/07/03 File created + *****************************************************************************/ + +#ifndef __EVTD0MIXDALITZ_HH__ +#define __EVTD0MIXDALITZ_HH__ + +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtDalitzPoint.hh" +#include "EvtGenBase/EvtSpinType.hh" +#include "EvtGenBase/EvtDalitzReso.hh" +#include "EvtGenBase/EvtCyclic3.hh" + + +class EvtD0mixDalitz : public EvtDecayAmp +{ +private: + int _d1; + int _d2; + int _d3; + + // Mixing parameters. + double _x; + double _y; + + // q/p CP violation in the mixing. + EvtComplex _qp; + + // Checker of the decay mode. + bool _isKsPiPi; + bool _isRBWmodel; + + // Useful constants. + static const EvtSpinType::spintype& _SCALAR; + static const EvtSpinType::spintype& _VECTOR; + static const EvtSpinType::spintype& _TENSOR; + + static const EvtDalitzReso::CouplingType& _EtaPic; + static const EvtDalitzReso::CouplingType& _PicPicKK; + + static const EvtDalitzReso::NumType& _RBW; + static const EvtDalitzReso::NumType& _GS; + static const EvtDalitzReso::NumType& _KMAT; + + static const EvtCyclic3::Pair& _AB; + static const EvtCyclic3::Pair& _AC; + static const EvtCyclic3::Pair& _BC; + + // Values to be read or computed based on values in the evt.pdl file. + // IDs of the relevant particles. + EvtId _D0; + EvtId _D0B; + EvtId _KM; + EvtId _KP; + EvtId _K0; + EvtId _K0B; + EvtId _KL; + EvtId _KS; + EvtId _PIM; + EvtId _PIP; + + // Masses of the relevant particles. + double _mD0; + double _mKs; + double _mPi; + double _mK; + + // Life time and decay rate. + double _ctau; + double _gamma; + + // Some useful integrals over the Dalitz plot. + EvtComplex _iChi; + EvtComplex _iChi2; + + void readPDGValues(); + EvtComplex dalitzKsPiPi( const EvtDalitzPoint& point ); + EvtComplex dalitzKsKK ( const EvtDalitzPoint& point ); + + // Time evolution functions for hamiltonian eigenstates. + // Negative exponential part removed. + EvtComplex h1( const double& ct ) const; + EvtComplex h2( const double& ct ) const; + + void reportInvalidAndExit() const + { + report( ERROR, "EvtD0mixDalitz" ) << "EvtD0mixDalitz: Invalid mode." << std::endl; + exit( 1 ); + } +public: + EvtD0mixDalitz() : _d1( 0 ), _d2( 0 ), _d3( 0 ), + _x( 0. ), _y( 0. ), _qp( 1. ), + _isKsPiPi( false ), _isRBWmodel( true ) + {} + + virtual ~EvtD0mixDalitz() {}; + + // One-line inline functions. + std::string getName() { return "D0MIXDALITZ"; } + EvtDecayBase* clone() { return new EvtD0mixDalitz; } + void initProbMax() { setProbMax( 5200. ); } + + void init(); + void decay( EvtParticle* p ); +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtDDalitz.cxx b/TEvtGen/EvtGenModels/EvtDDalitz.cxx new file mode 100644 index 00000000000..b275a6ee87f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtDDalitz.cxx @@ -0,0 +1,605 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtDDalitz.cc +// +// Description: Routine to handle three-body decays of D0/D0_bar or D+/D- +// +// Modification history: +// +// NK September 3, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtResonance.hh" +#include "EvtGenBase/EvtResonance2.hh" +#include "EvtGenModels/EvtDDalitz.hh" +#include +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtFlatte.hh" +#include "EvtGenBase/EvtDecayTable.hh" +using std::endl; + +EvtDDalitz::~EvtDDalitz() {} + +std::string EvtDDalitz::getName(){ + + return "D_DALITZ"; + +} + + +EvtDecayBase* EvtDDalitz::clone(){ + + return new EvtDDalitz; + +} + +void EvtDDalitz::init(){ + + // check that there are 0 arguments + + static EvtId DM=EvtPDL::getId("D-"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId KP=EvtPDL::getId("K+"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId KL=EvtPDL::getId("K_L0"); + static EvtId KS=EvtPDL::getId("K_S0"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static double MPI = EvtPDL::getMeanMass(PI0); + static double MKP = EvtPDL::getMeanMass(KP); + + + checkNArg(0); + checkNDaug(3); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + checkSpinDaughter(2,EvtSpinType::SCALAR); + + EvtId parnum=getParentId(); + EvtId d1=getDaug(0); + EvtId d2=getDaug(1); + EvtId d3=getDaug(2); + _flag=0; + if ( parnum == D0 ) { + //look for either a K- pi+ pi0 or K0bar pi+ pi- + if ( d1==KM && d2==PIP && d3==PI0 ) { _flag=4; _d1=0; _d2=1; _d3=2;} + if ( d1==KM && d3==PIP && d2==PI0 ) { _flag=4; _d1=0; _d2=2; _d3=1;} + if ( d2==KM && d1==PIP && d3==PI0 ) { _flag=4; _d1=1; _d2=0; _d3=2;} + if ( d2==KM && d3==PIP && d1==PI0 ) { _flag=4; _d1=1; _d2=2; _d3=0;} + if ( d3==KM && d1==PIP && d2==PI0 ) { _flag=4; _d1=2; _d2=0; _d3=1;} + if ( d3==KM && d2==PIP && d1==PI0 ) { _flag=4; _d1=2; _d2=1; _d3=0;} + + if ( d1==KB && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;} + if ( d1==KB && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;} + if ( d2==KB && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;} + if ( d2==KB && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;} + if ( d3==KB && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;} + if ( d3==KB && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;} + + if ( d1==KL && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;} + if ( d1==KL && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;} + if ( d2==KL && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;} + if ( d2==KL && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;} + if ( d3==KL && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;} + if ( d3==KL && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;} + + if ( d1==KS && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;} + if ( d1==KS && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;} + if ( d2==KS && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;} + if ( d2==KS && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;} + if ( d3==KS && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;} + if ( d3==KS && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;} + + + if ( d1==KS && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;} + if ( d1==KS && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;} + if ( d2==KS && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;} + if ( d2==KS && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;} + if ( d3==KS && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;} + if ( d3==KS && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;} + + if ( d1==KL && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;} + if ( d1==KL && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;} + if ( d2==KL && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;} + if ( d2==KL && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;} + if ( d3==KL && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;} + if ( d3==KL && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;} + + if ( d1==K0 && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;} + if ( d1==K0 && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;} + if ( d2==K0 && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;} + if ( d2==K0 && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;} + if ( d3==K0 && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;} + if ( d3==K0 && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;} + } + if ( parnum == D0B ) { + //look for either a K+ pi- pi0 or K0 pi+ pi- + if ( d1==KP && d2==PIM && d3==PI0 ) { _flag=4; _d1=0; _d2=1; _d3=2;} + if ( d1==KP && d3==PIM && d2==PI0 ) { _flag=4; _d1=0; _d2=2; _d3=1;} + if ( d2==KP && d1==PIM && d3==PI0 ) { _flag=4; _d1=1; _d2=0; _d3=2;} + if ( d2==KP && d3==PIM && d1==PI0 ) { _flag=4; _d1=1; _d2=2; _d3=0;} + if ( d3==KP && d1==PIM && d2==PI0 ) { _flag=4; _d1=2; _d2=0; _d3=1;} + if ( d3==KP && d2==PIM && d1==PI0 ) { _flag=4; _d1=2; _d2=1; _d3=0;} + + if ( d1==K0 && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;} + if ( d1==K0 && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;} + if ( d2==K0 && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;} + if ( d2==K0 && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;} + if ( d3==K0 && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;} + if ( d3==K0 && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;} + + if ( d1==KL && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;} + if ( d1==KL && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;} + if ( d2==KL && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;} + if ( d2==KL && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;} + if ( d3==KL && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;} + if ( d3==KL && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;} + + if ( d1==KS && d2==PIP && d3==PIM ) { _flag=3; _d1=0; _d2=1; _d3=2;} + if ( d1==KS && d3==PIP && d2==PIM ) { _flag=3; _d1=0; _d2=2; _d3=1;} + if ( d2==KS && d1==PIP && d3==PIM ) { _flag=3; _d1=1; _d2=0; _d3=2;} + if ( d2==KS && d3==PIP && d1==PIM ) { _flag=3; _d1=1; _d2=2; _d3=0;} + if ( d3==KS && d1==PIP && d2==PIM ) { _flag=3; _d1=2; _d2=0; _d3=1;} + if ( d3==KS && d2==PIP && d1==PIM ) { _flag=3; _d1=2; _d2=1; _d3=0;} + + if ( d1==KS && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;} + if ( d1==KS && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;} + if ( d2==KS && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;} + if ( d2==KS && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;} + if ( d3==KS && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;} + if ( d3==KS && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;} + + if ( d1==KL && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;} + if ( d1==KL && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;} + if ( d2==KL && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;} + if ( d2==KL && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;} + if ( d3==KL && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;} + if ( d3==KL && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;} + + if ( d1==K0 && d2==KP && d3==KM ) {_flag=5;_d1=0;_d2=1;_d3=2;} + if ( d1==K0 && d3==KP && d2==KM ) {_flag=5;_d1=0;_d2=2;_d3=1;} + if ( d2==K0 && d1==KP && d3==KM ) {_flag=5;_d1=1;_d2=0;_d3=2;} + if ( d2==K0 && d3==KP && d1==KM ) {_flag=5;_d1=1;_d2=2;_d3=0;} + if ( d3==K0 && d1==KP && d2==KM ) {_flag=5;_d1=2;_d2=0;_d3=1;} + if ( d3==K0 && d2==KP && d1==KM ) {_flag=5;_d1=2;_d2=1;_d3=0;} + + } + + if ( parnum == DP ) { + //look for K- pi+ pi+ + if ( d1==KB && d2==PIP && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;} + if ( d1==KB && d3==PIP && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;} + if ( d2==KB && d1==PIP && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;} + if ( d2==KB && d3==PIP && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;} + if ( d3==KB && d1==PIP && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;} + if ( d3==KB && d2==PIP && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;} + + if ( d1==KL && d2==PIP && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;} + if ( d1==KL && d3==PIP && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;} + if ( d2==KL && d1==PIP && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;} + if ( d2==KL && d3==PIP && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;} + if ( d3==KL && d1==PIP && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;} + if ( d3==KL && d2==PIP && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;} + + if ( d1==KS && d2==PIP && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;} + if ( d1==KS && d3==PIP && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;} + if ( d2==KS && d1==PIP && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;} + if ( d2==KS && d3==PIP && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;} + if ( d3==KS && d1==PIP && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;} + if ( d3==KS && d2==PIP && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;} + + if ( d1==KM && d2==PIP && d3==PIP ) { _flag=1; _d1=0; _d2=1; _d3=2;} + if ( d2==KM && d1==PIP && d3==PIP ) { _flag=1; _d1=1; _d2=0; _d3=2;} + if ( d3==KM && d1==PIP && d2==PIP ) { _flag=1; _d1=2; _d2=0; _d3=1;} + } + + if ( parnum == DM ) { + //look for K- pi+ pi+ + if ( d1==K0 && d2==PIM && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;} + if ( d1==K0 && d3==PIM && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;} + if ( d2==K0 && d1==PIM && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;} + if ( d2==K0 && d3==PIM && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;} + if ( d3==K0 && d1==PIM && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;} + if ( d3==K0 && d2==PIM && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;} + + if ( d1==KL && d2==PIM && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;} + if ( d1==KL && d3==PIM && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;} + if ( d2==KL && d1==PIM && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;} + if ( d2==KL && d3==PIM && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;} + if ( d3==KL && d1==PIM && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;} + if ( d3==KL && d2==PIM && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;} + + if ( d1==KS && d2==PIM && d3==PI0 ) { _flag=2; _d1=0; _d2=1; _d3=2;} + if ( d1==KS && d3==PIM && d2==PI0 ) { _flag=2; _d1=0; _d2=2; _d3=1;} + if ( d2==KS && d1==PIM && d3==PI0 ) { _flag=2; _d1=1; _d2=0; _d3=2;} + if ( d2==KS && d3==PIM && d1==PI0 ) { _flag=2; _d1=1; _d2=2; _d3=0;} + if ( d3==KS && d1==PIM && d2==PI0 ) { _flag=2; _d1=2; _d2=0; _d3=1;} + if ( d3==KS && d2==PIM && d1==PI0 ) { _flag=2; _d1=2; _d2=1; _d3=0;} + + if ( d1==KP && d2==PIM && d3==PIM ) { _flag=1; _d1=0; _d2=1; _d3=2;} + if ( d2==KP && d1==PIM && d3==PIM ) { _flag=1; _d1=1; _d2=0; _d3=2;} + if ( d3==KP && d1==PIM && d2==PIM ) { _flag=1; _d1=2; _d2=0; _d3=1;} + } + + if ( parnum == DSP ) { + if ( d1==KM && d2==KP && d3==PIP ) { _flag=6; _d1=0; _d2=1; _d3=2; } + if ( d1==KM && d3==KP && d2==PIP ) { _flag=6; _d1=0; _d2=2; _d3=1; } + if ( d2==KM && d1==KP && d3==PIP ) { _flag=6; _d1=1; _d2=0; _d3=2; } + if ( d2==KM && d3==KP && d1==PIP ) { _flag=6; _d1=1; _d2=2; _d3=0; } + if ( d3==KM && d1==KP && d2==PIP ) { _flag=6; _d1=2; _d2=0; _d3=1; } + if ( d3==KM && d2==KP && d1==PIP ) { _flag=6; _d1=2; _d2=1; _d3=0; } + } + + if ( parnum == DSM ) { + if ( d1==KP && d2==KM && d3==PIM ) { _flag=6; _d1=0; _d2=1; _d3=2; } + if ( d1==KP && d3==KM && d2==PIM ) { _flag=6; _d1=0; _d2=2; _d3=1; } + if ( d2==KP && d1==KM && d3==PIM ) { _flag=6; _d1=1; _d2=0; _d3=2; } + if ( d2==KP && d3==KM && d1==PIM ) { _flag=6; _d1=1; _d2=2; _d3=0; } + if ( d3==KP && d1==KM && d2==PIM ) { _flag=6; _d1=2; _d2=0; _d3=1; } + if ( d3==KP && d2==KM && d1==PIM ) { _flag=6; _d1=2; _d2=1; _d3=0; } + } + + if ( _flag==6) { + _kkpi_params.push_back(EvtFlatteParam(MPI, MPI, 0.406)); + _kkpi_params.push_back(EvtFlatteParam(MKP, MKP, 0.800)); + } + + if ( _flag==0) { + report(ERROR,"EvtGen") << "EvtDDaltiz: Invalid mode."< getParent () ) { + EvtId parId = p -> getParent()->getId (); + if ( ( BP == parId ) || ( BM == parId ) || ( B0 == parId ) || + ( B0B == parId ) ) + if (EvtDecayTable::getDecayFunc(p->getParent())->getName() == "BTODDALITZCPK") isBToDK=true; + } + + +//same structure for all of these decays + + p->initializePhaseSpace(getNDaug(),getDaugs()); + EvtVector4R moms1 = p->getDaug(_d1)->getP4(); + EvtVector4R moms2 = p->getDaug(_d2)->getP4(); + EvtVector4R moms3 = p->getDaug(_d3)->getP4(); + + EvtVector4R p4_p; + p4_p.set(p->mass(),0.0,0.0,0.0); + + EvtComplex amp(1.0,0.0); + +//now determine which D and which decay + +//data from Anjos et al, Phys.Rev.D 1993, v.48,num.1,p.56 (E691 resuls) +//for D+ -> K- pi+ pi+, and from Adler et al, Phys.Lett. B196 (1987), 107 +//(Mark III results) for D+ -> K0bar pi+ pi0. + //CLEO results for D0->k-pi+pi0 + + if ( _flag==1) { + +//have a D+ -> K- pi+ pi+ decay, or charge conjugate +//Anjos etal e691 - Phys Rev D48, 56 (1993) + EvtResonance DplusRes11(p4_p,moms1,moms2,0.78,-60.0,0.0498,0.89610,1); + EvtResonance DplusRes12(p4_p,moms3,moms1,0.78,-60.0,0.0498,0.89610,1);//K*(892) + + EvtResonance DplusRes21(p4_p,moms1,moms2,0.53,132.0,0.287,1.429,0); + EvtResonance DplusRes22(p4_p,moms3,moms1,0.53,132.0,0.287,1.429,0);//K*(1430) + + EvtResonance DplusRes31(p4_p,moms1,moms2,0.47,-51.0,0.323,1.714,1); + EvtResonance DplusRes32(p4_p,moms3,moms1,0.47,-51.0,0.323,1.714,1);//K*(1680) + + amp = amp + oneby2*(-DplusRes11.resAmpl()+DplusRes12.resAmpl()) + oneby2*(DplusRes21.resAmpl() + DplusRes22.resAmpl()) + oneby2*(-DplusRes31.resAmpl()+ DplusRes32.resAmpl()); + + } + + if ( _flag==2) { + +//have a D+ -> K0bar pi+ pi0 decay +//adler etal MarkIII - Phys Lett B196, 107 (1987) +// Results in this paper: +// Kbar rho+ FitFraction = 68+/-8+/-12 Phase 0 +// Kbar* pi+ 19+/-6+/-6 43+/-23 +// nonres 13+/-7+/-8 250+/-19 +// These numbers below seem not to be exactly the same +// the phases are equiv to -106=254 and 41 +// + EvtResonance DplusKpipi0Res1(p4_p,moms2,moms3,1.00,0.00,0.1512,0.7699,1); //rho+ + EvtResonance DplusKpipi0Res2(p4_p,moms3,moms1,0.8695,0.7191,0.0498,0.89159,1); //K*0 + + amp = 0.9522*EvtComplex(cos(-1.8565),sin(-1.8565)) + 1.00*DplusKpipi0Res1.relBrWig(0) + 0.8695*EvtComplex(cos(0.7191),sin(0.7191))*DplusKpipi0Res2.relBrWig(1); + + } + + if(_flag==3) { + // D0 -> K0 pi+ pi- + CC + // If it does not come from a B->DK, decay it as D0 or D0bar separatly + // if p4_p is D0, moms1 is K0, moms2 is pi-, moms3 is pi+ + // if p4_p is D0bar, moms1 is K0, moms2 is pi+, moms3 is pi- + + if ( isBToDK ) { + // Gamma angle in rad. + double gamma = EvtDecayTable::getDecayFunc( p->getParent() ) + -> getArg( 0 ) ; + // Strong phase in rad. + double delta = EvtDecayTable::getDecayFunc( p->getParent() ) + -> getArg( 1 ) ; + // Ratio between B->D0K and B->D0barK + double A = EvtDecayTable::getDecayFunc( p->getParent() ) + -> getArg( 2 ) ; + + EvtComplex Factor( fabs( A ) * cos ( delta ) , + fabs( A ) * sin ( delta ) ) ; + + if ( ( p->getParent()->getId() == BP ) || + ( p->getParent()->getId() == B0 ) ) { + // the ratio D/Dbar + Factor = Factor * EvtComplex( cos ( gamma ) , sin ( gamma ) ) ; + if ( p->getId() == D0 ) { + // the flavor of the particle has no meaning. But we need + // it to know which daughter is pi+ or pi- + // M( B+ or B0 ) = f(Dbar) + factor * f(D) + // f(Dbar) = amplDtoK0PiPi(pD, K0, pi+, pi-) + // f(D) = amplDtoK0PiPi(pD, K0, pi-, pi+) + // Then ... + amp = amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) + + Factor * amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) ; + } + else { + amp = amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) + + Factor * amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) ; + } + } + else if ( ( p->getParent() -> getId() == BM ) || + ( p->getParent() -> getId() == B0B ) ) { + Factor = Factor * EvtComplex( cos ( gamma ) , - sin ( gamma ) ) ; + // here M( B- or B0bar ) = f(D) + factor * f(Dbar) then ... + if ( p->getId() == D0 ) { + amp = amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) + + Factor * amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) ; + } + else { + amp = amplDtoK0PiPi( p4_p , moms1 , moms3 , moms2 ) + + Factor * amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) ; + } + } + } + else { + amp = amplDtoK0PiPi( p4_p , moms1 , moms2 , moms3 ) ; + } + } + + + if(_flag==4) { + + EvtResonance2 DKpipi0Res1(p4_p,moms2,moms3,1.0 ,0.0 ,0.1507,0.770 ,1); //rho + EvtResonance2 DKpipi0Res2(p4_p,moms1,moms2,0.39, -0.2 ,0.0505,0.8961,1); //k*0 + EvtResonance2 DKpipi0Res3(p4_p,moms1,moms3,0.44, 163.0 ,0.050 ,0.8915,1); //k*- + + EvtResonance2 DKpipi0Res4(p4_p,moms1,moms3,0.77 ,55.5 ,0.294 ,1.412 ,0); //k01430- + EvtResonance2 DKpipi0Res5(p4_p,moms1,moms2,0.85 ,166.0 ,0.294 ,1.412 ,0); //k01430bar + EvtResonance2 DKpipi0Res6(p4_p,moms2,moms3,2.5 ,171.0 ,0.240 ,1.700 ,1); //rho1700 + EvtResonance2 DKpipi0Res7(p4_p,moms1,moms3,2.5 ,103.0 ,0.322 ,1.717 ,1); //K*1680- + + + + double pi180inv = 1.0/EvtConst::radToDegrees; + + amp = EvtComplex(1.75*cos(31.2*pi180inv),1.75*sin(31.2*pi180inv)) + + DKpipi0Res1.resAmpl() + DKpipi0Res2.resAmpl() + DKpipi0Res3.resAmpl() + + DKpipi0Res4.resAmpl() + DKpipi0Res5.resAmpl() + + DKpipi0Res6.resAmpl() + + DKpipi0Res7.resAmpl(); + + } + + if(_flag==5) { + + // D0 -> K0 K+ K- + CC + // If it does not come from a B->DK, decay it as D0 or D0bar separatly + // if p4_p is D0, moms1 is K0, moms2 is pi-, moms3 is pi+ + // if p4_p is D0bar, moms1 is K0, moms2 is pi+, moms3 is pi- + + if ( isBToDK ){ + // Gamma angle in rad. + double gamma = EvtDecayTable::getDecayFunc( p->getParent() ) + -> getArg( 0 ) ; + // Strong phase in rad. + double delta = EvtDecayTable::getDecayFunc( p->getParent() ) + -> getArg( 1 ) ; + // Ratio between B->D0K and B->D0barK + double A = EvtDecayTable::getDecayFunc( p->getParent() ) + -> getArg( 2 ) ; + + EvtComplex Factor( fabs( A ) * cos ( delta ) , + fabs( A ) * sin ( delta ) ) ; + + if ( ( p->getParent()->getId() == BP ) || + ( p->getParent()->getId() == B0 ) ) { + // the ratio D/Dbar + Factor = Factor * EvtComplex( cos ( gamma ) , sin ( gamma ) ) ; + if ( p->getId() == D0 ) { + // the flavor of the particle has no meaning. But we need + // it to know which daughter is pi+ or pi- + // M( B+ or B0 ) = f(Dbar) + factor * f(D) + // f(Dbar) = amplDtoK0PiPi(pD, K0, K+, K-) + // f(D) = amplDtoK0PiPi(pD, K0, K-, K+) + // Then ... + amp = amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) + + Factor * amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) ; + } + else { + amp = amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) + + Factor * amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) ; + } + } + else if ( ( p->getParent() -> getId() == BM ) || + ( p->getParent() -> getId() == B0B ) ) { + Factor = Factor * EvtComplex( cos ( gamma ) , - sin ( gamma ) ) ; + // here M( B- or B0bar ) = f(D) + factor * f(Dbar) then ... + if ( p->getId() == D0 ) { + amp = amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) + + Factor * amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) ; + } + else { + amp = amplDtoK0KK( p4_p , moms1 , moms3 , moms2 ) + + Factor * amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) ; + } + } + } + else { + amp = amplDtoK0KK( p4_p , moms1 , moms2 , moms3 ) ; + } + } + + + + + // Ds -> K K pi + if(_flag==6) { + EvtResonance2 DsKKpiRes1(p4_p, moms3, moms1, 1.0, 0.0, 0.0455, 0.8944, 1, true); // K*(892) + EvtResonance2 DsKKpiRes2(p4_p, moms3, moms1, 1.48, 138., 0.290, 1.414, 0); // K*_0(1430) + EvtFlatte DsKKpiRes3(p4_p, moms1, moms2, 5.07, 156., 0.965, _kkpi_params); // f_0(980) + EvtResonance2 DsKKpiRes4(p4_p, moms1, moms2, 1.15, -10., 0.00426, 1.019455, 1, true); // phi(1020) + EvtResonance2 DsKKpiRes5(p4_p, moms1, moms2, 1.28, 53., 0.265, 1.350, 0); // f_0(1370) + EvtResonance2 DsKKpiRes6(p4_p, moms1, moms2, 1.19, 87., 0.137, 1.724, 0); // f_0(1710) + amp = DsKKpiRes1.resAmpl() + DsKKpiRes2.resAmpl() + DsKKpiRes3.resAmpl() + + DsKKpiRes4.resAmpl() + DsKKpiRes5.resAmpl() + DsKKpiRes6.resAmpl(); + + } + + + vertex(amp); + + return ; +} + +EvtComplex EvtDDalitz::amplDtoK0PiPi(EvtVector4R p4_p, EvtVector4R moms1, + EvtVector4R moms2, EvtVector4R moms3) { + + //K*(892)- + EvtResonance2 DK2piRes1(p4_p,moms1,moms2,1.418,-190.0,0.0508,0.89166,1); + //K0*(1430) + EvtResonance2 DK2piRes2(p4_p,moms1,moms2,1.818,-337.0,0.294 ,1.412 ,0); + //K2*(1430) + EvtResonance2 DK2piRes3(p4_p,moms1,moms2,0.909, -5.0,0.0985,1.4256 ,2); + //K*(1680) + EvtResonance2 DK2piRes4(p4_p,moms1,moms2,5.091,-166.0,0.322 ,1.717 ,1); + //DCS K*(892) + EvtResonance2 DK2piRes5(p4_p,moms1,moms3,0.100, -19.0,0.0508,0.89166,1); + + //Rho + EvtResonance2 DK2piRes6(p4_p,moms3,moms2,0.909,-340.0,0.1502,0.7693,1); + //Omega + EvtResonance2 DK2piRes7(p4_p,moms3,moms2,.0336,-226.0,0.00844,0.78257,1); + //f0(980) + EvtResonance2 DK2piRes8(p4_p,moms3,moms2,0.309,-152.0,0.05,0.977,0); + //f0(1370) + EvtResonance2 DK2piRes9(p4_p,moms3,moms2,1.636,-255.0,0.272,1.31,0); + //f2(1270) + EvtResonance2 DK2piRes10(p4_p,moms3,moms2,0.636,-32.0,0.1851,1.2754,2); + + return EvtComplex(1.0,0.0) + + DK2piRes1.resAmpl() + DK2piRes2.resAmpl() + + DK2piRes3.resAmpl() + DK2piRes4.resAmpl() + + DK2piRes5.resAmpl() + DK2piRes6.resAmpl() + + DK2piRes7.resAmpl() + DK2piRes8.resAmpl() + + DK2piRes9.resAmpl() + DK2piRes10.resAmpl(); +} + +// +// BaBar decay amplitudes for D0->Ks K+ K- +// +// p4_p is D0 +// moms1 is K0s +// moms2 is K+ +// moms3 is K- +// Amplitudes and phases are taken from BaBar hep-ex/0207089 +// with convention : Non Resonant = Amp 1. / Phase 0. + +EvtComplex EvtDDalitz::amplDtoK0KK(EvtVector4R p4_p, EvtVector4R moms1, + EvtVector4R moms2, EvtVector4R moms3) { + + //phi + EvtResonance DK0KKRes1( p4_p, moms2, moms3, 113.75, -40.0, 0.0043, + 1.019456, 1 ) ; + //a0(980) + EvtResonance DK0KKRes2( p4_p, moms2, moms3, 152.25, 69.0, 0.1196 , 0.9847, + 0 ) ; + //f0(980) + EvtResonance DK0KKRes3( p4_p, moms2, moms3, 30.5, -201.0, 0.05, 0.980 , + 0 ) ; + //a0(980)+ + EvtResonance DK0KKRes4( p4_p, moms1, moms2, 85.75, -93.0, 0.1196 , 0.9847, + 0 ) ; + //a0(980)- + EvtResonance DK0KKRes5( p4_p, moms3, moms1, 8. , -53.0 ,0.1196, 0.9847, + 0 ) ; + + return EvtComplex(1.0,0.0) + + DK0KKRes1.resAmpl() + DK0KKRes2.resAmpl() + + DK0KKRes3.resAmpl() + DK0KKRes4.resAmpl() + + DK0KKRes5.resAmpl() ; + +} diff --git a/TEvtGen/EvtGenModels/EvtDDalitz.hh b/TEvtGen/EvtGenModels/EvtDDalitz.hh new file mode 100644 index 00000000000..9485a762578 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtDDalitz.hh @@ -0,0 +1,58 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtDDalitz.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTDDALITZ_HH +#define EVTDDALITZ_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtFlatte.hh" +#include + +class EvtParticle; + +class EvtDDalitz:public EvtDecayAmp { + +public: + + EvtDDalitz() {} + virtual ~EvtDDalitz(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +private: + + int _d1,_d2,_d3,_flag; + + EvtComplex amplDtoK0PiPi(EvtVector4R p4_p, EvtVector4R moms1, + EvtVector4R moms2, EvtVector4R moms3); + EvtComplex amplDtoK0KK(EvtVector4R p4_p, EvtVector4R moms1, + EvtVector4R moms2, EvtVector4R moms3); + + vector _kkpi_params; + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtDMix.cxx b/TEvtGen/EvtGenModels/EvtDMix.cxx new file mode 100644 index 00000000000..41e64c37d0f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtDMix.cxx @@ -0,0 +1,99 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtDMix.cc +// +// Description: Routine to decay a particle according th phase space +// +// Modification history: +// +// RYD January 8, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtDMix.hh" +#include "EvtGenBase/EvtRandom.hh" +#include + +EvtDMix::~EvtDMix() {} + +std::string EvtDMix::getName(){ + + return "DMIX"; + +} + +EvtDecayBase* EvtDMix::clone(){ + + return new EvtDMix; + +} + + +void EvtDMix::init(){ + + // check that there are 0 arguments + checkNArg(3); + _rd=getArg(0); + _xpr=getArg(1); + _ypr=getArg(2); +} + +void EvtDMix::initProbMax(){ + + noProbMax(); + +} + +void EvtDMix::decay( EvtParticle *p ){ + + //unneeded - lange - may13-02 + //if ( p->getNDaug() != 0 ) { + //Will end up here because maxrate multiplies by 1.2 + // report(DEBUG,"EvtGen") << "In EvtDMix: has " + // <<" daugthers should not be here!"<initializePhaseSpace(getNDaug(),getDaugs()); + + double ctau=EvtPDL::getctau(p->getId()); + if ( ctau==0. ) return; + + + double pdf, random, gt, weight; + + double maxPdf=_rd + sqrt(_rd)*_ypr*50. + 2500.0*(_xpr*_xpr+_ypr*_ypr)/4.0; + bool keepGoing=true; + while ( keepGoing ) { + random=EvtRandom::Flat(); + gt=-log(random); + weight=random; + pdf=_rd + sqrt(_rd)*_ypr*gt + gt*gt*(_xpr*_xpr+_ypr*_ypr)/4.0; + pdf*=exp(-1.0*gt); + pdf/=weight; + if ( pdf > maxPdf ) + std::cout << pdf << " " << weight << " " << maxPdf << " " << gt << std::endl; + if ( pdf > maxPdf*EvtRandom::Flat()) keepGoing=false; + } + + + p->setLifetime(gt*ctau); + + return ; +} + + diff --git a/TEvtGen/EvtGenModels/EvtDMix.hh b/TEvtGen/EvtGenModels/EvtDMix.hh new file mode 100644 index 00000000000..f597300a66a --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtDMix.hh @@ -0,0 +1,55 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtPhsp.hh +// +// Description: +//Class to handle generic phase space decays not done +//in other decay models. +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTDMIX_HH +#define EVTDMIX_HH + +#include "EvtGenBase/EvtDecayIncoherent.hh" + +class EvtParticle; + +class EvtDMix:public EvtDecayIncoherent { + +public: + + EvtDMix() {} + virtual ~EvtDMix(); + + std::string getName(); + + EvtDecayBase* clone(); + + void initProbMax(); + + void init(); + + void decay(EvtParticle *p); + +private: + double _rd; + double _xpr; + double _ypr; + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtEtaDalitz.cxx b/TEvtGen/EvtGenModels/EvtEtaDalitz.cxx new file mode 100644 index 00000000000..dea58c2ca6d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtEtaDalitz.cxx @@ -0,0 +1,89 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtEtaDalitz.cc +// +// Description: Routine to decay eta -> pi+ pi- pi0 +// +// Modification history: +// +// DJL/RYD July 23, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtEtaDalitz.hh" +#include "EvtGenBase/EvtReport.hh" +#include + +EvtEtaDalitz::~EvtEtaDalitz() {} + +std::string EvtEtaDalitz::getName(){ + + return "ETA_DALITZ"; + +} + + +EvtDecayBase* EvtEtaDalitz::clone(){ + + return new EvtEtaDalitz; + +} + +void EvtEtaDalitz::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(3); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + checkSpinDaughter(2,EvtSpinType::SCALAR); +} + + +void EvtEtaDalitz::initProbMax(){ + + setProbMax(2.1); + +} + +void EvtEtaDalitz::decay( EvtParticle *p){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtVector4R mompi0 = p->getDaug(2)->getP4(); + double masspip = p->getDaug(0)->mass(); + double masspim = p->getDaug(1)->mass(); + double masspi0 = p->getDaug(2)->mass(); + double m_eta = p->mass(); + + double y; + + //The decay amplitude coems from Layter et al PRD 7 2565 (1973). + + y=(mompi0.get(0)-masspi0)*(3.0/(m_eta-masspip-masspim-masspi0))-1.0; + + EvtComplex amp(sqrt(1.0-1.07*y),0.0); + + vertex(amp); + + return ; + +} + + diff --git a/TEvtGen/EvtGenModels/EvtEtaDalitz.hh b/TEvtGen/EvtGenModels/EvtEtaDalitz.hh new file mode 100644 index 00000000000..3ae6694c169 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtEtaDalitz.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtEtaDalitz.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTETADALITZ_HH +#define EVTETADALITZ_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtEtaDalitz:public EvtDecayAmp { + +public: + + EvtEtaDalitz() {} + virtual ~EvtEtaDalitz(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtFlatQ2.cxx b/TEvtGen/EvtGenModels/EvtFlatQ2.cxx new file mode 100644 index 00000000000..b69b68435d6 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtFlatQ2.cxx @@ -0,0 +1,89 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtFlatQ2.cc +// +// Description: B->Xu l nu with flat q2 distribution +// +// Modification history: +// +// David Cote, U. de Montreal, 11/02/2003 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenModels/EvtFlatQ2.hh" + +#include +#include +#include +#include +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +using std::fstream; + +EvtFlatQ2::~EvtFlatQ2() {} + +std::string EvtFlatQ2::getName(){ + + return "FLATQ2"; + +} + +EvtDecayBase* EvtFlatQ2::clone(){ + + return new EvtFlatQ2; + +} + + +void EvtFlatQ2::initProbMax(){ + + setProbMax(100); + +} + + +void EvtFlatQ2::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(3); + + //We expect B->X l nu events + checkSpinParent(EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + +} + + +void EvtFlatQ2::decay( EvtParticle *p){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtVector4R p4Xu = p->getDaug(0)->getP4(); + double pXu_x2=p4Xu.get(1)*p4Xu.get(1); + double pXu_y2=p4Xu.get(2)*p4Xu.get(2); + double pXu_z2=p4Xu.get(3)*p4Xu.get(3); + double pXu = sqrt(pXu_x2+pXu_y2+pXu_z2); + double prob=1/pXu; + + if(pXu>0.01) setProb(prob); + + return; +} + + diff --git a/TEvtGen/EvtGenModels/EvtFlatQ2.hh b/TEvtGen/EvtGenModels/EvtFlatQ2.hh new file mode 100644 index 00000000000..ad4efd62700 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtFlatQ2.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtFlatQ2.hh +// +// Description: B->Xu l nu with flat q2 distribution +// +// Modification history: +// +// David Cote, U. de Montreal, 11/02/2003 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTFLATQ2_HH +#define EVTFLATQ2_HH + +#include "EvtGenBase/EvtDecayProb.hh" + +class EvtParticle; + +class EvtFlatQ2: public EvtDecayProb { + +public: + + EvtFlatQ2() {} + virtual ~EvtFlatQ2(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtGenModelsLinkDef.h b/TEvtGen/EvtGenModels/EvtGenModelsLinkDef.h new file mode 100644 index 00000000000..cec501d04a6 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtGenModelsLinkDef.h @@ -0,0 +1,7 @@ +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtGenModelsLinkDefOLD.h b/TEvtGen/EvtGenModels/EvtGenModelsLinkDefOLD.h new file mode 100644 index 00000000000..ef4ade1e4ff --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtGenModelsLinkDefOLD.h @@ -0,0 +1,146 @@ +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; +#pragma link C++ class EvtBBScalar+; +#pragma link C++ class EvtBHadronic+; +#pragma link C++ class EvtBTo3piCP+; +#pragma link C++ class EvtBTo4piCP+; +#pragma link C++ class EvtBToKpipiCP+; +#pragma link C++ class EvtBToPlnuBK+; +#pragma link C++ class EvtBToPlnuBKFF+; +#pragma link C++ class EvtBToVlnuBall+; +#pragma link C++ class EvtBToVlnuBallFF+; +#pragma link C++ class EvtBsquark+; +#pragma link C++ class EvtBto2piCPiso+; +#pragma link C++ class EvtBtoKD3P+; +#pragma link C++ class EvtBtoKpiCPiso+; +#pragma link C++ class EvtBtoXsEtap+; +#pragma link C++ class EvtBtoXsgamma+; +#pragma link C++ class EvtBtoXsgammaAbsModel+; +#pragma link C++ class EvtBtoXsgammaAliGreub+; +#pragma link C++ class EvtBtoXsgammaFermiUtil+; +#pragma link C++ class EvtBtoXsgammaFixedMass+; +#pragma link C++ class EvtBtoXsgammaFlatEnergy+; +#pragma link C++ class EvtBtoXsgammaKagan+; +#pragma link C++ class EvtBtoXsgammaRootFinder+; +#pragma link C++ class EvtBtoXsll+; +#pragma link C++ class EvtBtoXsllUtil+; +#pragma link C++ class EvtCBTo3piMPP+; +#pragma link C++ class EvtCBTo3piP00+; +#pragma link C++ class EvtD0mixDalitz+; +#pragma link C++ class EvtDDalitz+; +#pragma link C++ class EvtDMix+; +#pragma link C++ class EvtEtaDalitz+; +#pragma link C++ class EvtFlatQ2+; +#pragma link C++ class EvtGoityRoberts+; +#pragma link C++ class EvtHQET+; +#pragma link C++ class EvtHQET2+; +#pragma link C++ class EvtHQET2FF+; +#pragma link C++ class EvtHQETFF+; +#pragma link C++ class EvtHelAmp+; +#pragma link C++ class EvtHypNonLepton+; +#pragma link C++ class EvtISGW+; +#pragma link C++ class EvtISGW2+; +#pragma link C++ class EvtISGW2FF+; +#pragma link C++ class EvtISGWFF+; +#pragma link C++ class EvtItgAbsFunction+; +#pragma link C++ class EvtItgAbsIntegrator+; +#pragma link C++ class EvtItgFourCoeffFcn+; +#pragma link C++ class EvtItgFunction+; +#pragma link C++ class EvtItgPtrFunction+; +#pragma link C++ class EvtItgSimpsonIntegrator+; +#pragma link C++ class EvtItgThreeCoeffFcn+; +#pragma link C++ class EvtItgTwoCoeffFcn+; +#pragma link C++ class EvtJetSet+; +#pragma link C++ class EvtJetSetCDF+; +#pragma link C++ class EvtJscont+; +#pragma link C++ class EvtJscontCDF+; +#pragma link C++ class EvtKKLambdaC+; +#pragma link C++ class EvtKKLambdaCFF+; +#pragma link C++ class EvtKstarnunu+; +#pragma link C++ class EvtKstarstargamma+; +#pragma link C++ class EvtLNuGamma+; +#pragma link C++ class EvtLambdaP_BarGamma+; +#pragma link C++ class EvtLb2Lll+; +#pragma link C++ class EvtMelikhov+; +#pragma link C++ class EvtMelikhovFF+; +#pragma link C++ class EvtModelReg+; +#pragma link C++ class EvtMultibody+; +#pragma link C++ class EvtOmegaDalitz+; +#pragma link C++ class EvtPFermi+; +#pragma link C++ class EvtPHOTOS+; +#pragma link C++ class EvtPartWave+; +#pragma link C++ class EvtPhiDalitz+; +#pragma link C++ class EvtPhsp+; +#pragma link C++ class EvtPi0Dalitz+; +#pragma link C++ class EvtPropSLPole+; +#pragma link C++ class EvtPto3P+; +#pragma link C++ class EvtPyGaGa+; +#pragma link C++ class EvtPycont+; +#pragma link C++ class EvtPythia+; +#pragma link C++ class EvtSLBKPole+; +#pragma link C++ class EvtSLBKPoleFF+; +#pragma link C++ class EvtSLN+; +#pragma link C++ class EvtSLPole+; +#pragma link C++ class EvtSLPoleFF+; +#pragma link C++ class EvtSSDCP+; +#pragma link C++ class EvtSSSCP+; +#pragma link C++ class EvtSSSCPT+; +#pragma link C++ class EvtSSSCPpng+; +#pragma link C++ class EvtSTS+; +#pragma link C++ class EvtSTSCP+; +#pragma link C++ class EvtSVPCP+; +#pragma link C++ class EvtSVPHelAmp+; +#pragma link C++ class EvtSVS+; +#pragma link C++ class EvtSVSCP+; +#pragma link C++ class EvtSVSCPLH+; +#pragma link C++ class EvtSVSCPiso+; +#pragma link C++ class EvtSVSNONCPEIGEN+; +#pragma link C++ class EvtSVVCP+; +#pragma link C++ class EvtSVVCPLH+; +#pragma link C++ class EvtSVVHelAmp+; +#pragma link C++ class EvtSVVHelCPMix+; +#pragma link C++ class EvtSVVNONCPEIGEN+; +#pragma link C++ class EvtSingleParticle+; +#pragma link C++ class EvtSll+; +#pragma link C++ class EvtTSS+; +#pragma link C++ class EvtTVSPwave+; +#pragma link C++ class EvtTauHadnu+; +#pragma link C++ class EvtTauScalarnu+; +#pragma link C++ class EvtTauVectornu+; +#pragma link C++ class EvtTaulnunu+; +#pragma link C++ class EvtVPHOtoV+; +#pragma link C++ class EvtVPHOtoVISR+; +#pragma link C++ class EvtVPHOtoVISRHi+; +#pragma link C++ class EvtVSPPwave+; +#pragma link C++ class EvtVSS+; +#pragma link C++ class EvtVSSBMixCPT+; +#pragma link C++ class EvtVSSMix+; +#pragma link C++ class EvtVVP+; +#pragma link C++ class EvtVVPIPI_WEIGHTED+; +#pragma link C++ class EvtVVSPwave+; +#pragma link C++ class EvtVVpipi+; +#pragma link C++ class EvtVectorIsr+; +#pragma link C++ class EvtVll+; +#pragma link C++ class EvtVtoSll+; +#pragma link C++ class EvtVub+; +#pragma link C++ class EvtVubAC+; +#pragma link C++ class EvtVubBLNP+; +#pragma link C++ class EvtVubBLNPHybrid+; +#pragma link C++ class EvtVubHybrid+; +#pragma link C++ class EvtVubNLO+; +#pragma link C++ class EvtVubdGamma+; +#pragma link C++ class EvtWilsonCoeficients+; +#pragma link C++ class EvtY3SToY1SpipiMoxhay+; +#pragma link C++ class EvtYmSToYnSpipiCLEO+; +#pragma link C++ class EvtbTosllAli+; +#pragma link C++ class EvtbTosllAliFF+; +#pragma link C++ class EvtbTosllAmp+; +#pragma link C++ class EvtbTosllBall+; +#pragma link C++ class EvtbTosllBallFF+; +#pragma link C++ class EvtbTosllScalarAmp+; +#pragma link C++ class EvtbTosllVectorAmp+; +//#pragma link C++ class rly+; +#endif diff --git a/TEvtGen/EvtGenModels/EvtGoityRoberts.cxx b/TEvtGen/EvtGenModels/EvtGoityRoberts.cxx new file mode 100644 index 00000000000..b020575fad2 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtGoityRoberts.cxx @@ -0,0 +1,431 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGoityRoberts.cc +// +// Description: Routine to decay vector-> scalar scalar +// +// Modification history: +// +// RYD November 24, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtGoityRoberts.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include +#include "EvtGenBase/EvtVector4C.hh" + +EvtGoityRoberts::~EvtGoityRoberts() {} + +std::string EvtGoityRoberts::getName(){ + + return "GOITY_ROBERTS"; + +} + + +EvtDecayBase* EvtGoityRoberts::clone(){ + + return new EvtGoityRoberts; + +} + +void EvtGoityRoberts::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(4); + + checkSpinParent(EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + checkSpinDaughter(2,EvtSpinType::DIRAC); + checkSpinDaughter(3,EvtSpinType::NEUTRINO); + +} + + +void EvtGoityRoberts::initProbMax() { + + setProbMax( 3000.0); +} + +void EvtGoityRoberts::decay( EvtParticle *p){ + + //added by Lange Jan4,2000 + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + + + EvtId meson=getDaug(0); + + if (meson==DST0||meson==DSTP||meson==DSTM||meson==DSTB) { + DecayBDstarpilnuGR(p,getDaug(0),getDaug(2),getDaug(3)); + } + else{ + if (meson==D0||meson==DP||meson==DM||meson==D0B) { + DecayBDpilnuGR(p,getDaug(0),getDaug(2),getDaug(3)); + } + else{ + report(ERROR,"EvtGen") << "Wrong daugther in EvtGoityRoberts!\n"; + } + } + return ; +} + +void EvtGoityRoberts::DecayBDstarpilnuGR(EvtParticle *pb,EvtId ndstar, + EvtId nlep, EvtId nnu) +{ + + pb->initializePhaseSpace(getNDaug(),getDaugs()); + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + + EvtParticle *dstar, *pion, *lepton, *neutrino; + + // pb->makeDaughters(getNDaug(),getDaugs()); + dstar=pb->getDaug(0); + pion=pb->getDaug(1); + lepton=pb->getDaug(2); + neutrino=pb->getDaug(3); + + EvtVector4C l1, l2, et0, et1, et2; + + EvtVector4R v,vp,p4_pi; + double w; + + v.set(1.0,0.0,0.0,0.0); //4-velocity of B meson + vp=(1.0/dstar->getP4().mass())*dstar->getP4(); //4-velocity of D* + p4_pi=pion->getP4(); + + w=v*vp; //four velocity transfere. + + EvtTensor4C omega; + + double mb=EvtPDL::getMeanMass(pb->getId()); //B mass + double md=EvtPDL::getMeanMass(ndstar); //D* mass + + EvtComplex dmb(0.0460,-0.5*0.00001); // B*-B mass splitting ? + EvtComplex dmd(0.1421,-0.5*0.00006); + // The last two sets of numbers should + // be correctly calculated from the + // dstar and pion charges. + double g = 0.5; // EvtAmplitude proportional to these coupling constants + double alpha3 = 0.690; // See table I in G&R's paper + double alpha1 = -1.430; + double alpha2 = -0.140; + double f0 = 0.093; // The pion decay constants set to 93 MeV + + EvtComplex dmt3(0.563,-0.5*0.191); // Mass splitting = dmt - iGamma/2 + EvtComplex dmt1(0.392,-0.5*1.040); + EvtComplex dmt2(0.709,-0.5*0.405); + + double betas=0.285; // magic number for meson wave function ground state + double betap=0.280; // magic number for meson wave function state "1" + double betad=0.260; // magic number for meson wave function state "2" + double betasp=betas*betas+betap*betap; + double betasd=betas*betas+betad*betad; + + double lambdabar=0.750; //M(0-,1-) - mQ From Goity&Roberts's code + +// Isgur&Wise fct + double xi = exp(lambdabar*lambdabar*(1.0-w*w)/(4*betas*betas)); + double xi1= -1.0*sqrt(2.0/3.0)*( + lambdabar*lambdabar*(w*w-1.0)/(4*betas*betas))* + exp(lambdabar*lambdabar*(1.0-w*w)/(4*betas*betas)); + double rho1= sqrt(1.0/2.0)*(lambdabar/betas)* + pow((2*betas*betap/(betasp)),2.5)* + exp(lambdabar*lambdabar*(1.0-w*w)/(2*betasp)); + double rho2= sqrt(1.0/8.0)*(lambdabar*lambdabar/(betas*betas))* + pow((2*betas*betad/(betasd)),3.5)* + exp(lambdabar*lambdabar*(1.0-w*w)/(2*betasd)); + + //report(INFO,"EvtGen") <<"rho's:"<spParent(0),neutrino->spParentNeutrino()); + l2=EvtLeptonVACurrent(lepton->spParent(1),neutrino->spParentNeutrino()); + } + else{ + if (nlep==EP||nlep==MUP){ + omega=EvtComplex(0.0,-0.5)*dual(h1*mb*md*directProd(v,vp)+ + h2*mb*directProd(v,p4_pi)+ + h3*md*directProd(vp,p4_pi))+ + f1*mb*directProd(v,p4_pi)+f2*md*directProd(vp,p4_pi)+ + f3*directProd(p4_pi,p4_pi)+f4*mb*mb*directProd(v,v)+ + f5*mb*md*directProd(vp,v)+f6*mb*directProd(p4_pi,v)+k*g_metric+ + EvtComplex(0.0,-0.5)*directProd(dual(directProd(vp,p4_pi)).cont2(v), + (g1*p4_pi+g2*mb*v))+ + EvtComplex(0.0,-0.5)*directProd((g3*mb*v+g4*md*vp+g5*p4_pi), + dual(directProd(vp,p4_pi)).cont2(v)); + + l1=EvtLeptonVACurrent(neutrino->spParentNeutrino(),lepton->spParent(0)); + l2=EvtLeptonVACurrent(neutrino->spParentNeutrino(),lepton->spParent(1)); + } + else{ + report(DEBUG,"EvtGen") << "42387dfs878w wrong lepton number\n"; + } + } + + et0=omega.cont2( dstar->epsParent(0).conj() ); + et1=omega.cont2( dstar->epsParent(1).conj() ); + et2=omega.cont2( dstar->epsParent(2).conj() ); + + vertex(0,0,l1.cont(et0)); + vertex(0,1,l2.cont(et0)); + + vertex(1,0,l1.cont(et1)); + vertex(1,1,l2.cont(et1)); + + vertex(2,0,l1.cont(et2)); + vertex(2,1,l2.cont(et2)); + + return; + +} + +void EvtGoityRoberts::DecayBDpilnuGR(EvtParticle *pb,EvtId nd, + EvtId nlep, EvtId nnu) + +{ + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + + EvtParticle *d, *pion, *lepton, *neutrino; + + pb->initializePhaseSpace(getNDaug(),getDaugs()); + d=pb->getDaug(0); + pion=pb->getDaug(1); + lepton=pb->getDaug(2); + neutrino=pb->getDaug(3); + + EvtVector4C l1, l2, et0, et1, et2; + + EvtVector4R v,vp,p4_pi; + double w; + + v.set(1.0,0.0,0.0,0.0); //4-velocity of B meson + vp=(1.0/d->getP4().mass())*d->getP4(); //4-velocity of D + p4_pi=pion->getP4(); //4-momentum of pion + w=v*vp; //four velocity transfer. + + double mb=EvtPDL::getMeanMass(pb->getId()); //B mass + double md=EvtPDL::getMeanMass(nd); //D* mass + EvtComplex dmb(0.0460,-0.5*0.00001); //B mass splitting ? + //The last two numbers should be + //correctly calculated from the + //dstar and pion particle number. + + double g = 0.5; // Amplitude proportional to these coupling constants + double alpha3 = 0.690; // See table I in G&R's paper + double alpha1 = -1.430; + double alpha2 = -0.140; + double f0=0.093; // The pion decay constant set to 93 MeV + + EvtComplex dmt3(0.563,-0.5*0.191); // Mass splitting = dmt - iGamma/2 + EvtComplex dmt1(0.392,-0.5*1.040); + EvtComplex dmt2(0.709,-0.5*0.405); + + double betas=0.285; // magic number for meson wave function ground state + double betap=0.280; // magic number for meson wave function state "1" + double betad=0.260; // magic number for meson wave function state "2" + double betasp=betas*betas+betap*betap; + double betasd=betas*betas+betad*betad; + + double lambdabar=0.750; //M(0-,1-) - mQ From Goity&Roberts's code + + // Isgur&Wise fct + double xi = exp(lambdabar*lambdabar*(1.0-w*w)/(4*betas*betas)); + double xi1= -1.0*sqrt(2.0/3.0)*(lambdabar*lambdabar*(w*w-1.0)/(4*betas*betas))* + exp(lambdabar*lambdabar*(1.0-w*w)/(4*betas*betas)); + double rho1= sqrt(1.0/2.0)*(lambdabar/betas)* + pow((2*betas*betap/(betasp)),2.5)* + exp(lambdabar*lambdabar*(1.0-w*w)/(2*betasp)); + double rho2= sqrt(1.0/8.0)*(lambdabar*lambdabar/(betas*betas))* + pow((2*betas*betad/(betasd)),3.5)* + exp(lambdabar*lambdabar*(1.0-w*w)/(2*betasd)); + + EvtComplex h,a1,a2,a3; + EvtComplex hnr,a1nr,a2nr,a3nr; + EvtComplex hr,a1r,a2r,a3r; + +// Non-resonance part (D* and D** removed by hand - alainb) + hnr = g*xi*(1.0/(EvtComplex(p4_pi*v,0.0)+dmb))/(2*f0*mb*md); + a1nr= -1.0*g*xi*(1+w)*(1.0/(EvtComplex(p4_pi*v,0.0)+dmb))/(2*f0); + a2nr= g*xi*((p4_pi*(v+vp))/(EvtComplex(p4_pi*v,0.0)+dmb))/(2*f0*mb); + a3nr=EvtComplex(0.0,0.0); + +// Resonance part (D** remove by hand - alainb) + hr = alpha2*rho2*(w-1)*(1.0/(EvtComplex(p4_pi*v,0.0)+dmt2))/(6*f0*mb*md) + + alpha3*xi1*(1.0/(EvtComplex(p4_pi*v,0.0)+dmt3))/(2*f0*mb*md); + a1r= -1.0*alpha2*rho2*(w*w-1)*(1.0/(EvtComplex(p4_pi*v,0.0)+dmt2))/(6*f0) - + alpha3*xi1*(1+w)*(1.0/(EvtComplex(p4_pi*v,0.0)+dmt3))/(2*f0); + a2r= alpha1*rho1*((p4_pi*v)/(EvtComplex(p4_pi*v,0.0)+dmt1))/(2*f0*mb) + + alpha2*rho2*(0.5*p4_pi*(w*vp-v)+p4_pi*(vp-w*v))/ + (3*f0*mb*(EvtComplex(p4_pi*v,0.0)+dmt2)) + + alpha3*xi1*((p4_pi*(v+vp))/(EvtComplex(p4_pi*v,0.0)+dmt3))/(2*f0*mb); + a3r= -1.0*alpha1*rho1*((p4_pi*v)/(EvtComplex(p4_pi*v,0.0)+dmt1))/(2*f0*md) - + alpha2*rho2*((p4_pi*(vp-w*v))/(EvtComplex(p4_pi*v,0.0)+dmt2))/(2*f0*md); + +// Sum + h=hnr+hr; + a1=a1nr+a1r; + a2=a2nr+a2r; + a3=a3nr+a3r; + + EvtVector4C omega; + + if ( nlep==EM|| nlep==MUM ) { + omega=EvtComplex(0.0,-1.0)*h*mb*md*dual(directProd(vp,p4_pi)).cont2(v)+ + a1*p4_pi+a2*mb*v+a3*md*vp; + l1=EvtLeptonVACurrent( + lepton->spParent(0),neutrino->spParentNeutrino()); + l2=EvtLeptonVACurrent( + lepton->spParent(1),neutrino->spParentNeutrino()); + } + else{ + if ( nlep==EP|| nlep==MUP ) { + omega=EvtComplex(0.0,1.0)*h*mb*md*dual(directProd(vp,p4_pi)).cont2(v)+ + a1*p4_pi+a2*mb*v+a3*md*vp; + l1=EvtLeptonVACurrent( + neutrino->spParentNeutrino(),lepton->spParent(0)); + l2=EvtLeptonVACurrent( + neutrino->spParentNeutrino(),lepton->spParent(1)); + } + else{ + report(ERROR,"EvtGen") << "42387dfs878w wrong lepton number\n"; + } + } + + vertex(0,l1*omega); + vertex(1,l2*omega); + +return; + +} + diff --git a/TEvtGen/EvtGenModels/EvtGoityRoberts.hh b/TEvtGen/EvtGenModels/EvtGoityRoberts.hh new file mode 100644 index 00000000000..9e3af927524 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtGoityRoberts.hh @@ -0,0 +1,55 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtGoityRoberts.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTGOITYROBERTS_HH +#define EVTGOITYROBERTS_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; +class EvtId; + +class EvtGoityRoberts:public EvtDecayAmp { + +public: + + EvtGoityRoberts() {} + virtual ~EvtGoityRoberts(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void decay(EvtParticle *p); + void initProbMax(); + + private: + + void DecayBDstarpilnuGR(EvtParticle *pb,EvtId ndstar, + EvtId nlep, EvtId nnu); + + void DecayBDpilnuGR(EvtParticle *pb,EvtId nd, + EvtId nlep, EvtId nnu); + + + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtHQET.cxx b/TEvtGen/EvtGenModels/EvtHQET.cxx new file mode 100644 index 00000000000..a3c3dddaa14 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtHQET.cxx @@ -0,0 +1,121 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtHQET.cc +// +// Description: Routine to implement semileptonic B->D*lnu decays according +// to the model HQET +// +// Lange Nov9/01 adding Dlnu and possible (w-1)^2 term +// +// +// Modification history: +// +// DJL April 20, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtHQET.hh" +#include "EvtGenModels/EvtHQETFF.hh" +#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh" +#include +using std::endl; + +EvtHQET::EvtHQET(): + hqetffmodel(0) + ,calcamp(0) +{} + +EvtHQET::~EvtHQET() { + delete hqetffmodel; + hqetffmodel=0; + delete calcamp; + calcamp=0; +} + +std::string EvtHQET::getName(){ + + return "HQET"; + +} + + + +EvtDecayBase* EvtHQET::clone(){ + + return new EvtHQET; + +} + + +void EvtHQET::decay( EvtParticle *p ){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + calcamp->CalcAmp(p,_amp2,hqetffmodel); + +} + +void EvtHQET::initProbMax(){ + +EvtId parnum,mesnum,lnum,nunum; + +parnum = getParentId(); +mesnum = getDaug(0); +lnum = getDaug(1); +nunum = getDaug(2); + +double mymaxprob = calcamp->CalcMaxProb(parnum,mesnum, + lnum,nunum,hqetffmodel); + +setProbMax(mymaxprob); + +} + + +void EvtHQET::init(){ + + checkNDaug(3); + + //We expect the parent to be a scalar + //and the daughters to be X lepton neutrino + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + + EvtSpinType::spintype d1type = EvtPDL::getSpinType(getDaug(0)); + if ( d1type==EvtSpinType::SCALAR) { + checkNArg(1,2); + if ( getNArg()==1 ) hqetffmodel = new EvtHQETFF(getArg(0)); + else hqetffmodel = new EvtHQETFF(getArg(0),getArg(1)); + calcamp = new EvtSemiLeptonicScalarAmp; + } + else if ( d1type==EvtSpinType::VECTOR) { + checkNArg(3,4); + if ( getNArg()==3 ) hqetffmodel = new EvtHQETFF(getArg(0),getArg(1),getArg(2)); + else hqetffmodel = new EvtHQETFF(getArg(0),getArg(1),getArg(2),getArg(3)); + calcamp = new EvtSemiLeptonicVectorAmp; + } + else{ + report(ERROR,"EvtGen") << "HQET model handles only scalar and vector meson daughters. Sorry."<D*lnu & B->Dlnu +// decays according to the model HQET +// +// Lange Nov9/01 adding Dlnu and possible (w-1)^2 term +// +// +// Modification history: +// +// Marco Bomben March 10, 2003 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtHQET2.hh" +#include "EvtGenModels/EvtHQET2FF.hh" +#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh" +#include +using std::endl; + +EvtHQET2::EvtHQET2(): + hqetffmodel(0) + ,calcamp(0) +{} + +EvtHQET2::~EvtHQET2() { + delete hqetffmodel; + hqetffmodel=0; + delete calcamp; + calcamp=0; +} + +std::string EvtHQET2::getName(){ + + return "HQET2"; + +} + + + +EvtDecayBase* EvtHQET2::clone(){ + + return new EvtHQET2; + +} + + +void EvtHQET2::decay( EvtParticle *p ){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + calcamp->CalcAmp(p,_amp2,hqetffmodel); + +} + +void EvtHQET2::initProbMax(){ + + EvtId parnum,mesnum,lnum,nunum; + + parnum = getParentId(); + mesnum = getDaug(0); + lnum = getDaug(1); + nunum = getDaug(2); + + double mymaxprob = calcamp->CalcMaxProb(parnum,mesnum, + lnum,nunum,hqetffmodel); + + setProbMax(mymaxprob); + +} + + +void EvtHQET2::init(){ + + checkNDaug(3); + + //We expect the parent to be a scalar + //and the daughters to be X lepton neutrino + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + + EvtSpinType::spintype d1type = EvtPDL::getSpinType(getDaug(0)); + if ( d1type==EvtSpinType::SCALAR) { + if ( getNArg()==2 ) {hqetffmodel = new EvtHQET2FF(getArg(0),getArg(1)); + calcamp = new EvtSemiLeptonicScalarAmp;} + else { + report(ERROR,"EvtGen") << "HQET2 model for scalar meson daughters needs 2 arguments. Sorry."<D*lnu & B->Dlnu according to HQET +// with dispersive FF +// +// Modification history: +// +// Marco Bomben March 10, 2003 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtHQET2FF.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtPDL.hh" +#include +#include + + +EvtHQET2FF::EvtHQET2FF(double hqetrho2, double hqetha1_1 , double hqetr1_1, double hqetr2_1) { + + rho2 = hqetrho2; + r1_1 = hqetr1_1; + r2_1 = hqetr2_1; + ha1_1 = hqetha1_1; + + return; +} + +EvtHQET2FF::EvtHQET2FF(double hqetrho2, double hqetv1_1) { + + rho2 = hqetrho2; + v1_1 = hqetv1_1; + + return; +} + + +void EvtHQET2FF::getscalarff(EvtId parent,EvtId, + double t, double mass, double *f0p, double *f0m) { + + + double mb=EvtPDL::getMeanMass(parent); + double w = ((mb*mb)+(mass*mass)-t)/(2.0*mb*mass); + +// Form factors have a general form, with parameters passed in +// from the arguements. + + // Use disparsion relation parametrization from + // I.Caprini, L.Lelluch, M.Neubert, Nucl. Phys. B 530,153(1998) + const double z = (sqrt(w+1)-sqrt(2.))/(sqrt(w+1)+sqrt(2.)); + double v1 = v1_1*(1.- 8.*rho2*z + (51.*rho2-10.)*z*z - (252.*rho2-84.)*z*z*z) +; + + *f0p=v1; + *f0m = 0.0; + + return; + } + +void EvtHQET2FF::getvectorff(EvtId parent,EvtId, + double t, double mass, double *a1f, + double *a2f, double *vf, double *a0f ){ + + + double mb=EvtPDL::getMeanMass(parent); + double w = ((mb*mb)+(mass*mass)-t)/(2.0*mb*mass); + +// Form factors have a general form, with parameters passed in +// from the arguements. + + double rstar = ( 2.0*sqrt(mb*mass))/(mb+mass); + + // Use disparsion relation parametrization from + // I.Caprini, L.Lelluch, M.Neubert, Nucl. Phys. B 530,153(1998) + const double z = (sqrt(w+1)-sqrt(2.))/(sqrt(w+1)+sqrt(2.)); + double ha1 =ha1_1*(1.- 8.*rho2*z + (53.*rho2-15.)*z*z - (231.*rho2-91.)*z*z*z); + double r1 = r1_1-0.12*(w-1)+0.05*(w-1)*(w-1); + double r2 = r2_1+0.11*(w-1)-0.06*(w-1)*(w-1); +; + + *a1f = (1.0 - (t/((mb+mass)*(mb+mass))))*ha1; + *a1f = (*a1f)/rstar; + *a2f = (r2/rstar)*ha1; + *vf = (r1/rstar)*ha1; + *a0f = 0.0; + + return; + } + +void EvtHQET2FF::gettensorff(EvtId, EvtId, double, double, double*, + double*, double*, double*){ + + report(ERROR,"EvtGen") << "Not implemented :gettensorff in EvtHQET2FF.\n"; + ::abort(); + +} + + + +void EvtHQET2FF::getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*){ + + report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtHQET2FF.\n"; + ::abort(); + +} diff --git a/TEvtGen/EvtGenModels/EvtHQET2FF.hh b/TEvtGen/EvtGenModels/EvtHQET2FF.hh new file mode 100644 index 00000000000..a17e9b62864 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtHQET2FF.hh @@ -0,0 +1,56 @@ +//-------------------------------------------------------------------------- +// +// Module: EvtGen/EvtHQET2FF.hh +// +// Description: +// +// Modification history: +// +// Marco Bomben March 10, 2003 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTHQET2FF_HH +#define EVTHQET2FF_HH + +#include "EvtGenBase/EvtSemiLeptonicFF.hh" + +class EvtId; + +class EvtHQET2FF : public EvtSemiLeptonicFF { + +public: + EvtHQET2FF(double hqetrho2, double hqetha1_1, double hqetr1_1, double hqetr2_1); + EvtHQET2FF(double hqetrho2, double hqetv1_1); + void getvectorff(EvtId parent,EvtId daught, + double t, double mass, double *a1f, + double *a2f, double *vf, double *a0f ); + + void getscalarff(EvtId parent,EvtId daught, + double t, double mass, double *f0p, double *f0m); + + void gettensorff(EvtId, EvtId, double, double, double*, + double*, double*, double*); + + void getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*); + + +private: + double r1_1; + double rho2; + double r2_1; + double ha1_1; + double v1_1; +}; + +#endif + + + + + + + + + diff --git a/TEvtGen/EvtGenModels/EvtHQETFF.cxx b/TEvtGen/EvtGenModels/EvtHQETFF.cxx new file mode 100644 index 00000000000..b9240500b35 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtHQETFF.cxx @@ -0,0 +1,110 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtHQETFF.cc +// +// Description: form factors for B->D*lnu according to HQET +// +// Modification history: +// +// DJL April 17, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtHQETFF.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtPDL.hh" +#include +#include + + +EvtHQETFF::EvtHQETFF(double hqetrho2, double hqetr1, double hqetr2, double quadTerm) { + + rho2 = hqetrho2; + r1 = hqetr1; + r2 = hqetr2; + c = quadTerm; + + return; +} + +EvtHQETFF::EvtHQETFF(double hqetrho2, double quadTerm) { + + rho2 = hqetrho2; + c = quadTerm; + + return; +} + + +void EvtHQETFF::getscalarff(EvtId parent,EvtId, + double t, double mass, double *f0p, double *f0m) { + + + double mb=EvtPDL::getMeanMass(parent); + double w = ((mb*mb)+(mass*mass)-t)/(2.0*mb*mass); + +// Form factors have a general form, with parameters passed in +// from the arguements. + + double ha1 = 1-rho2*(w-1)+c*(w-1)*(w-1); + + *f0p=ha1; + *f0m = 0.0; + + return; + } + +void EvtHQETFF::getvectorff(EvtId parent,EvtId, + double t, double mass, double *a1f, + double *a2f, double *vf, double *a0f ){ + + + double mb=EvtPDL::getMeanMass(parent); + double w = ((mb*mb)+(mass*mass)-t)/(2.0*mb*mass); + +// Form factors have a general form, with parameters passed in +// from the arguements. + + double rstar = ( 2.0*sqrt(mb*mass))/(mb+mass); + double ha1 = 1-rho2*(w-1); + + *a1f = (1.0 - (t/((mb+mass)*(mb+mass))))*ha1; + *a1f = (*a1f)/rstar; + *a2f = (r2/rstar)*ha1; + *vf = (r1/rstar)*ha1; + *a0f = 0.0; + + return; + } + + +void EvtHQETFF::gettensorff(EvtId, EvtId, double, double, double*, + double*, double*, double*){ + + report(ERROR,"EvtGen") << "Not implemented :gettensorff in EvtHQETFF.\n"; + ::abort(); + +} + + + +void EvtHQETFF::getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*){ + + report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtHQETFF.\n"; + ::abort(); + +} + diff --git a/TEvtGen/EvtGenModels/EvtHQETFF.hh b/TEvtGen/EvtGenModels/EvtHQETFF.hh new file mode 100644 index 00000000000..7ca4ea5c815 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtHQETFF.hh @@ -0,0 +1,55 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtHQETFF.hh +// +// Description: +// +// Modification history: +// +// DJL April 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTHQETFF_HH +#define EVTHQETFF_HH + +#include "EvtGenBase/EvtSemiLeptonicFF.hh" + +class EvtId; + +class EvtHQETFF : public EvtSemiLeptonicFF { + +public: + EvtHQETFF(double hqetrho2, double hqetr1, double hqetr2, double hqetc=0.); + EvtHQETFF(double hqetrho2, double hqetc=0.); + void getvectorff(EvtId parent,EvtId daught, + double t, double mass, double *a1f, + double *a2f, double *vf, double *a0f ); + + void getscalarff(EvtId parent,EvtId daught, + double t, double mass, double *f0p, double *f0m); + + void gettensorff(EvtId, EvtId, double, double, double*, + double*, double*, double*); + + void getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*); + + +private: + double r1; + double rho2; + double r2; + double c; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtHelAmp.cxx b/TEvtGen/EvtGenModels/EvtHelAmp.cxx new file mode 100644 index 00000000000..21cb10cbf69 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtHelAmp.cxx @@ -0,0 +1,223 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtHelAmp.cc +// +// Description: Decay model for implementation of generic 2 body +// decay specified by the helicity amplitudes +// +// +// Modification history: +// +// RYD March 14, 1999 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtHelAmp.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtEvalHelAmp.hh" +using std::endl; + + +EvtHelAmp::~EvtHelAmp() { + + delete _evalHelAmp; + +} + +std::string EvtHelAmp::getName(){ + + return "HELAMP"; + +} + + +EvtDecayBase* EvtHelAmp::clone(){ + + return new EvtHelAmp; + +} + +void EvtHelAmp::init(){ + + checkNDaug(2); + + + //find out how many states each particle have + int _nA=EvtSpinType::getSpinStates(EvtPDL::getSpinType(getParentId())); + int _nB=EvtSpinType::getSpinStates(EvtPDL::getSpinType(getDaug(0))); + int _nC=EvtSpinType::getSpinStates(EvtPDL::getSpinType(getDaug(1))); + + if (verbose()){ + report(INFO,"EvtGen")<<"_nA,_nB,_nC:" + <<_nA<<","<<_nB<<","<<_nC<initializePhaseSpace(getNDaug(),getDaugs()); + + _evalHelAmp->evalAmp(p,_amp2); + + return ; + +} + + +void EvtHelAmp::fillHelicity(int* lambda2,int n,int J2, EvtId id){ + + int i; + + //photon is special case! + if (n==2&&J2==2) { + lambda2[0]=2; + lambda2[1]=-2; + return; + } + + //and so is the neutrino! + if (n==1&&J2==1) { + if (EvtPDL::getStdHep(id)>0){ + //particle i.e. lefthanded + lambda2[0]=-1; + }else{ + //anti particle i.e. righthanded + lambda2[0]=1; + } + return; + } + + assert(n==J2+1); + + for(i=0;i Baryon(s=1/2) + Scalar decays accroding to +// Review Of Particle Physics 2004, Phys.Lett.B, Vol.592, p.864 +// +// Modification history: +// +// 09/02/2009 PR Corrected Delta sign +// 20/02/2005 PR Module created according to PHSP and Lb2Lll model +// +//----------------------------------------------------------------------------------------------- + +#ifdef WIN32 +#pragma warning( disable : 4786 ) +// Disable anoying warning about symbol size +#endif + +#include "EvtGenModels/EvtHypNonLepton.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtGammaMatrix.hh" + + +EvtHypNonLepton::~EvtHypNonLepton() {} + +EvtDecayBase* EvtHypNonLepton::clone(){ + return new EvtHypNonLepton; +} + +std::string EvtHypNonLepton::getName(){ + return "HypNonLepton"; +} + +void EvtHypNonLepton::init(){ + + if(getNArg()<2 || getNArg()>3){ // alpha phi gamma delta + report(ERROR,"EvtGen") << " ERROR: EvtHypNonLepton generator expected 2 or 3 arguments but found: " << getNArg() << std::endl; + report(INFO ,"EvtGen") << " 1. Decay asymmetry parameter - alpha" << std::endl; + report(INFO ,"EvtGen") << " 2. Parameter phi - in degrees (not radians)" << std::endl; + report(INFO ,"EvtGen") << " 3. Note on every x-th decay" << std::endl; + ::abort(); + } + + if(getNDaug()!=2){ // Check that there are 2 daughters only + report(ERROR,"EvtGen") << " ERROR: EvtHypNonLepton generator expected 2 daughters but found: " << getNDaug() << std::endl; + ::abort(); + } + + // Check particles spins + if(EvtSpinType::getSpin2(EvtPDL::getSpinType(getParentId()))!=1){ + report(ERROR,"EvtGen") << " ERROR: EvtHypNonLepton generator expected dirac parent particle, but found " << EvtSpinType::getSpin2(EvtPDL::getSpinType(getParentId())) << " spin degrees of freedom" << std::endl; + ::abort(); + } + if(EvtSpinType::getSpin2(EvtPDL::getSpinType(getDaug(0)))!=1){ + report(ERROR,"EvtGen") << " ERROR: EvtHypNonLepton generator expected the first child to be dirac particle, but found " << EvtSpinType::getSpin2(EvtPDL::getSpinType(getDaug(0))) << " spin degrees of freedom" << std::endl; + ::abort(); + } + if(EvtSpinType::getSpin2(EvtPDL::getSpinType(getDaug(1)))!=0){ + report(ERROR,"EvtGen") << " ERROR: EvtHypNonLepton generator expected the second child to be scalar particle, but found " << EvtSpinType::getSpin2(EvtPDL::getSpinType(getDaug(1))) << " spin degrees of freedom" << std::endl; + ::abort(); + } + + // Read all parameters + m_alpha = getArg(0); + m_phi = getArg(1)*EvtConst::pi/180; + if(getNArg()==3) m_noTries = static_cast(getArg(2)); + else m_noTries = 0; + + // calculate additional parameters + double p,M,m1,m2; + double p_to_s,beta,delta,gamma; + + M = EvtPDL::getMass(getParentId()); + m1 = EvtPDL::getMass(getDaug(0)); + m2 = EvtPDL::getMass(getDaug(1)); + + if(m1+m2>=M){ + report(ERROR,"EvtGen") << " ERROR: EvtHypNonLepton found impossible decay: " << M << " --> " << m1 << " + " << m2 << " GeV\n" << std::endl; + ::abort(); + } + + p = sqrt(M*M-(m1+m2)*(m1+m2))*sqrt(M*M-(m1-m2)*(m1-m2))/2./M; + + beta = sqrt(1.-m_alpha*m_alpha)*sin(m_phi); + delta = -atan2(beta,m_alpha); + gamma = sqrt(1.-m_alpha*m_alpha-beta*beta); + p_to_s = sqrt((1.-gamma)/(1.+gamma)); + + m_B_to_A = p_to_s*(m1+sqrt(p*p+m1*m1))/p*EvtComplex(cos(delta),sin(delta)); + +} + +void EvtHypNonLepton::initProbMax(){ + + double maxProb,m1,m2,M,p; + + M=EvtPDL::getMass(getParentId()); + m1=EvtPDL::getMass(getDaug(0)); + m2=EvtPDL::getMass(getDaug(1)); + + if(m1+m2>=M){ + report(ERROR,"EvtGen") << " ERROR: EvtHypNonLepton found impossible decay: " << M << " --> " << m1 << " + " << m2 << " GeV\n" << std::endl; + ::abort(); + } + + p=sqrt(M*M-(m1+m2)*(m1+m2))*sqrt(M*M-(m1-m2)*(m1-m2))/2/M; + maxProb=16*M*(sqrt(p*p+m1*m1)+m1+abs(m_B_to_A)*abs(m_B_to_A)*(sqrt(p*p+m1*m1)-m1)); + //maxProb *= G_F*M_pi*M_pi; + + setProbMax(maxProb); + report(INFO,"EvtGen") << " EvtHypNonLepton set up maximum probability to " << maxProb << std::endl; + +} + +void EvtHypNonLepton::decay(EvtParticle* parent){ + + parent->initializePhaseSpace(getNDaug(),getDaugs()); + calcAmp(&_amp2,parent); + +} + +void EvtHypNonLepton::calcAmp(EvtAmp *amp,EvtParticle *parent){ + + static long noTries=0; + int i; + EvtComplex Matrix[2][2],B_to_A; + + //G_F = 1.16637e-5; + //M_pi = 0.13957; + + for(i=0;i<4;i++){ + //std::cout << "--------------------------------------------------" << std::endl; + Matrix[i/2][i%2] = EvtLeptonSCurrent(parent->sp(i/2),parent->getDaug(0)->spParent(i%2)); + //std::cout << "Matrix = " << Matrix[i/2][i%2] << std::endl; + Matrix[i/2][i%2] -= m_B_to_A*EvtLeptonPCurrent(parent->sp(i/2),parent->getDaug(0)->spParent(i%2)); + //std::cout << "Matrix = " << Matrix[i/2][i%2] << std::endl; + //Matrix[i/2][i%2] *= G_F*M_pi*M_pi; + //std::cout << "Matrix = " << Matrix[i/2][i%2] << std::endl; + //std::cout << "--------------------------------------------------" << std::endl; + amp->vertex(i/2,i%2,Matrix[i/2][i%2]); + } + + if(m_noTries>0) if(!((++noTries)%m_noTries)) report(DEBUG,"EvtGen") << " EvtHypNonLepton already finished " << noTries << " matrix element calculations" << std::endl; +} diff --git a/TEvtGen/EvtGenModels/EvtHypNonLepton.hh b/TEvtGen/EvtGenModels/EvtHypNonLepton.hh new file mode 100644 index 00000000000..cc0d63c5384 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtHypNonLepton.hh @@ -0,0 +1,45 @@ +//----------------------------------------------------------------------------------------------- +// +// Module: EvtHybNonLepton.hh +// +// Desription: Routine to implement Hyperon(s=1/2) -> Baryon(s=1/2) + Scalar decays accroding to +// Review Of Particle Physics 2004, Phys.Lett.B, Vol.592, p.864 +// +// Modification history: +// +// 20/02/2005 PR Module created according to PHSP and Lb2Lll model +// +//----------------------------------------------------------------------------------------------- + +#ifndef EVTHYBNONLEPTON_HH +#define EVTHYBNONLEPTON_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtComplex.hh" + +class EvtHypNonLepton:public EvtDecayAmp { + +public: + + EvtHypNonLepton() {} + virtual ~EvtHypNonLepton(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + + void calcAmp(EvtAmp *amp,EvtParticle *parent); + +private: + + double m_alpha; + double m_phi; + EvtComplex m_B_to_A; + long m_noTries; + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtISGW.cxx b/TEvtGen/EvtGenModels/EvtISGW.cxx new file mode 100644 index 00000000000..be082cf55b8 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtISGW.cxx @@ -0,0 +1,90 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtISGW.cc +// +// Description: Routine to implement semileptonic decays according +// to the model ISGW +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtISGW.hh" +#include +#include "EvtGenModels/EvtISGWFF.hh" +#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicTensorAmp.hh" + +EvtISGW::~EvtISGW() {} + +std::string EvtISGW::getName(){ + + return "ISGW"; + +} + + +EvtDecayBase* EvtISGW::clone(){ + + return new EvtISGW; + +} + +void EvtISGW::decay( EvtParticle *p ){ + + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + calcamp->CalcAmp(p,_amp2,isgwffmodel); + return; + +} + + +void EvtISGW::init(){ + + checkNArg(0); + checkNDaug(3); + + + //We expect the parent to be a scalar + //and the daughters to be X lepton neutrino + + EvtSpinType::spintype mesontype=EvtPDL::getSpinType(getDaug(0)); + + checkSpinParent(EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + + + isgwffmodel = new EvtISGWFF; + + if ( mesontype==EvtSpinType::SCALAR ) { + calcamp = new EvtSemiLeptonicScalarAmp; + } + if ( mesontype==EvtSpinType::VECTOR ) { + calcamp = new EvtSemiLeptonicVectorAmp; + } + if ( mesontype==EvtSpinType::TENSOR ) { + calcamp = new EvtSemiLeptonicTensorAmp; + } + +} + diff --git a/TEvtGen/EvtGenModels/EvtISGW.hh b/TEvtGen/EvtGenModels/EvtISGW.hh new file mode 100644 index 00000000000..a19ce234225 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtISGW.hh @@ -0,0 +1,52 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtISGW.hh +// +// Description:Implementation of the ISGW model +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTISGW_HH +#define EVTISGW_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" +class EvtParticle; + + + +class EvtISGW:public EvtDecayAmp { + +public: + + EvtISGW() {} + virtual ~EvtISGW(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + +private: + EvtSemiLeptonicFF *isgwffmodel; + EvtSemiLeptonicAmp *calcamp; +}; + + + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtISGW2.cxx b/TEvtGen/EvtGenModels/EvtISGW2.cxx new file mode 100644 index 00000000000..07d5c953370 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtISGW2.cxx @@ -0,0 +1,814 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtISGW2.cc +// +// Description: Routine to implement semileptonic decays according +// to the model ISGW2 +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtISGW2.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtIdSet.hh" +#include +#include "EvtGenModels/EvtISGW2FF.hh" +#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicTensorAmp.hh" + +EvtISGW2::EvtISGW2(): + isgw2ffmodel(0) + ,calcamp(0) +{} + + +EvtISGW2::~EvtISGW2() { + delete isgw2ffmodel; + isgw2ffmodel=0; + delete calcamp; + calcamp=0; +} + +std::string EvtISGW2::getName(){ + + return "ISGW2"; + +} + + + +EvtDecayBase* EvtISGW2::clone(){ + + return new EvtISGW2; + +} + +void EvtISGW2::decay( EvtParticle *p ){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + calcamp->CalcAmp(p,_amp2,isgw2ffmodel); + +} + +void EvtISGW2::initProbMax() { + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BCP=EvtPDL::getId("B_c+"); + static EvtId BCM=EvtPDL::getId("B_c-"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("D(2S)+"); + static EvtId D21S0N=EvtPDL::getId("D(2S)-"); + static EvtId D21S00=EvtPDL::getId("D(2S)0"); + static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0"); + + static EvtId D23S1P=EvtPDL::getId("D*(2S)+"); + static EvtId D23S1N=EvtPDL::getId("D*(2S)-"); + static EvtId D23S10=EvtPDL::getId("D*(2S)0"); + static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + static EvtId DS1P=EvtPDL::getId("D_s1+"); + static EvtId DS1M=EvtPDL::getId("D_s1-"); + static EvtId DS0STP=EvtPDL::getId("D_s0*+"); + static EvtId DS0STM=EvtPDL::getId("D_s0*-"); + static EvtId DPS1P=EvtPDL::getId("D'_s1+"); + static EvtId DPS1M=EvtPDL::getId("D'_s1-"); + static EvtId DS2STP=EvtPDL::getId("D_s2*+"); + static EvtId DS2STM=EvtPDL::getId("D_s2*-"); + + +EvtId parnum,mesnum,lnum; + +parnum = getParentId(); +mesnum = getDaug(0); +lnum = getDaug(1); + + +if ( parnum==BP||parnum==BM||parnum==B0||parnum==B0B||parnum==BS0||parnum==BSB ) { + + if ( mesnum==DST0||mesnum==DSTP||mesnum==DSTB||mesnum==DSTM||mesnum==DSSTP||mesnum==DSSTM) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(10000.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(7000.0); + return; + } + } + + + if ( mesnum==D0||mesnum==DP||mesnum==D0B||mesnum==DM||mesnum==DSP||mesnum==DSM) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(4000.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(3500.0); + return; + } + } + + + if ( mesnum==D1P1P||mesnum==D1P1N||mesnum==D1P10||mesnum==D1P1B||mesnum==DS1P||mesnum==DS1M) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(1300.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(480.0); + return; + } + } + + if ( mesnum==D3P1P||mesnum==D3P1N||mesnum==D3P10||mesnum==D3P1B||mesnum==DS0STP||mesnum==DS0STM) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(450.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(73.0);//??? + return; + } + } + + if ( mesnum==D3P0P||mesnum==D3P0N||mesnum==D3P00||mesnum==D3P0B||mesnum==DPS1P||mesnum==DPS1M) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(200.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(90.0); + return; + } + } + if ( mesnum==D3P2P||mesnum==D3P2N||mesnum==D3P20||mesnum==D3P2B||mesnum==DS2STP||mesnum==DS2STM) { + + if ( mesnum==DS2STP|| mesnum==DS2STM) { + setProbMax(550.0); + return; + } + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(400.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(220.0); + return; + } + } + + if ( mesnum==D21S0P||mesnum==D21S0N||mesnum==D21S00||mesnum==D21S0B) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(16.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(3.0); + return; + } + } + + if ( mesnum==D23S1P||mesnum==D23S1N||mesnum==D23S10||mesnum==D23S1B) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(500.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(250.0); + return; + } + } + + if ( mesnum==RHOP||mesnum==RHOM||mesnum==RHO0) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(6500.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(6000.0); + return; + } + } + + if ( mesnum==OMEG) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(6800.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(6000.0); + return; + } + } + + if ( mesnum==PIP||mesnum==PIM||mesnum==PI0) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(1200.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(1150.0); + return; + } + } + + if ( mesnum==ETA) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(1800.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(1900.0); + return; + } + } + + if ( mesnum==ETAPR) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(3000.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(3000.0); + return; + } + } + + + if ( mesnum==B1P||mesnum==B1M||mesnum==B10) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(2500.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(1700.0); + return; + } + } + + if ( mesnum==A0P||mesnum==A0M||mesnum==A00) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(80.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(62.0); + return; + } + } + + if ( mesnum==A1P||mesnum==A1M||mesnum==A10) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(4500.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(3500.0); + return; + } + } + + if ( mesnum==A2P||mesnum==A2M||mesnum==A20) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(1200.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(1000.0); + return; + } + } + + if ( mesnum==H1) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(2600.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(2900.0); + return; + } + } + + if ( mesnum==H1PR) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(1400.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(1500.0); + return; + } + } + + if ( mesnum==F2) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(1100.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(1100.0); + return; + } + } + + if ( mesnum==F2PR) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(804.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(600.0); + return; + } + } + + if ( mesnum==F1) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(2500.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(2000.0) ; + return; + } + } + + if ( mesnum==F1PR) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(2400.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(1700.0); + return; + } + } + + if ( mesnum==F0) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax( 80.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(63.0); + return; + } + } + + if ( mesnum==F0PR) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(120.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(120.0); + return; + } + } + + + if ( mesnum==RHO2SP||mesnum==RHO2SM||mesnum==RHO2S0) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax( 2400.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(2000.0); + return; + } + } + + if ( mesnum==OMEG2S) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(1600.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(1400.0) ; + return; + } + } + + if ( mesnum==PI2SP||mesnum==PI2SM||mesnum==PI2S0) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax( 500.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(300.0); + return; + } + } + + if ( mesnum==ETA2S) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(344.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(300.0); + return; + } + } + + if ( mesnum==KP||mesnum==KM|| + mesnum==K1P||mesnum==K1M||mesnum==K1STP||mesnum==K1STM) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(2000.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(1000.0); + return; + } + } + + if ( mesnum==KSTP||mesnum==KSTM ) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(10000.0); + return; + } + if ( lnum==TAUP||lnum==TAUM ) { + setProbMax(7000.0); + return; + } + } + + +} + +if ( parnum==D0||parnum==DP||parnum==DM||parnum==D0B ) { + + + if ( mesnum==RHOP||mesnum==RHOM||mesnum==RHO0) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(110.0); + return; + } + } + + if ( mesnum==OMEG) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(75.0); + return; + } + } + + if ( mesnum==PIP||mesnum==PIM||mesnum==PI0) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(40.0); + return; + } + } + + if ( mesnum==ETA) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax( 65.0); + return; + } + } + + if ( mesnum==ETAPR) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax( 60.0); + return; + } + } + + if ( mesnum==KP||mesnum==KM||mesnum==K0|| + mesnum==K0S||mesnum==K0L||mesnum==KB) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax( 70.0); + return; + } + } + + if ( mesnum==K1STP||mesnum==K1STM||mesnum==K1ST0||mesnum==K1STB) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax( 3.3); + return; + } + } + + if ( mesnum==K1P||mesnum==K1M||mesnum==K10||mesnum==K1B) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax( 100.0); + return; + } + } + + if ( mesnum==KSTP||mesnum==KSTM||mesnum==KST0||mesnum==KSTB) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax( 135.0); + return; + } + } + + if ( mesnum==K2STP||mesnum==K2STM||mesnum==K2ST0||mesnum==K2STB) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + //Lange - Oct 26,2001 - increasing from 0.75 to + //accomodate + setProbMax( 9.0); + // setProbMax( 0.75); + return; + } + } + + if ( mesnum==F0) { + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(1.0); + return; + } + } + + +} + +if ( parnum==DSP||parnum==DSM ) { + + + if ( mesnum==PHI ) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax( 90.0 ); + return; + } + } + + if ( mesnum==ETA ) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax( 75.0 ); + return; + } + } + + if ( mesnum==ETAPR ) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax( 80.0) ; + return; + } + } + + if ( mesnum==KST0||mesnum==KSTB ) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax( 100.0) ; + return; + } + } + + + if ( mesnum==K0 || mesnum==KB || mesnum==K0S || mesnum==K0L ) { + + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax( 45.0 ); + return; + } + } + + if ( mesnum==F0) { + if ( lnum==EP||lnum==EM||lnum==MUP||lnum==MUM ) { + setProbMax(1.0); + return; + } + } + + +} + +if ( parnum==BCP||parnum==BCM ) { + setProbMax(1000.0 ); + return; +} + + + +//This is a real cludge.. (ryd) + setProbMax(0.0); + +} + +void EvtISGW2::init(){ + + checkNArg(0); + checkNDaug(3); + + //We expect the parent to be a scalar + //and the daughters to be X lepton neutrino + + checkSpinParent(EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + + EvtSpinType::spintype mesontype=EvtPDL::getSpinType(getDaug(0)); + + isgw2ffmodel = new EvtISGW2FF; + + if ( mesontype==EvtSpinType::SCALAR ) { + calcamp = new EvtSemiLeptonicScalarAmp; + } + if ( mesontype==EvtSpinType::VECTOR ) { + calcamp = new EvtSemiLeptonicVectorAmp; + } + if ( mesontype==EvtSpinType::TENSOR ) { + calcamp = new EvtSemiLeptonicTensorAmp; + } + +} + + + + + + + diff --git a/TEvtGen/EvtGenModels/EvtISGW2.hh b/TEvtGen/EvtGenModels/EvtISGW2.hh new file mode 100644 index 00000000000..bf93b1dbc86 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtISGW2.hh @@ -0,0 +1,55 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtISGW2.hh +// +// Description:Implementation of the ISGW2 model +// Class to handle semileptonic decays using the ISGW2 +// model, as described in PRD 52 5 (1995) by +// Isgur and Scora. Electron, muon, and tau models +// are available. Form factors, q2 and lepton energy +// spectra checked against code from Scora. +// +// Modification history: +// +// DJL/RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTISGW2_HH +#define EVTISGW2_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" + +class EvtParticle; + +class EvtISGW2:public EvtDecayAmp { + +public: + + EvtISGW2(); + virtual ~EvtISGW2(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void initProbMax(); + void init(); + +private: + EvtSemiLeptonicFF *isgw2ffmodel; + EvtSemiLeptonicAmp *calcamp; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtISGW2FF.cxx b/TEvtGen/EvtGenModels/EvtISGW2FF.cxx new file mode 100644 index 00000000000..462f3738c33 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtISGW2FF.cxx @@ -0,0 +1,3145 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtISGW2FF.cc +// +// Description: Routine to implement semileptonic form factors +// according to the model ISGW2 +// +// Modification history: +// +// DJL April 17, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtISGW2FF.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtIdSet.hh" +#include "EvtGenBase/EvtConst.hh" +#include +#include +#include +using std::endl; + +void EvtISGW2FF::getscalarff(EvtId parent,EvtId daught, + double t, double mass, double *fpf, + double *f0f ) { + + //added by Lange Jan4,2000 + + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("D(2S)+"); + static EvtId D21S0N=EvtPDL::getId("D(2S)-"); + static EvtId D21S00=EvtPDL::getId("D(2S)0"); + static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0"); + + static EvtId D23S1P=EvtPDL::getId("D*(2S)+"); + static EvtId D23S1N=EvtPDL::getId("D*(2S)-"); + static EvtId D23S10=EvtPDL::getId("D*(2S)0"); + static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double fmf; + double mb=EvtPDL::getMeanMass(parent); + + if (daught==PI0||daught==PIP||daught==PIM||daught==ETA|| + daught==ETAPR||daught==D0||daught==D0B||daught==DP|| + daught==DM||daught==KP||daught==KM||daught==K0||daught==K0S|| + daught==K0L||daught==KB||daught==DSP||daught==DSM) { + + EvtISGW2FF1S0(parent,daught,t,mass,fpf,&fmf); + } + + if (daught==PI2S0||daught==PI2SP||daught==PI2SM||daught==ETA2S|| + daught==D21S0P||daught==D21S0B||daught==D21S0N||daught==D21S00){ + EvtISGW2FF21S0(parent,daught,t,mass,fpf,&fmf); + } + + if (daught==A00||daught==A0P||daught==A0M||daught==F0|| + daught==F0PR||daught==D3P0P||daught==D3P00||daught==D3P0B|| + daught==D3P0N||daught==K0STM||daught==K0STB||daught==K0STP|| + daught==D3P0SP||daught==D3P0SN|| + daught==K0ST0) { + EvtISGW2FF3P0(parent,daught,t,mass,fpf,&fmf); + } + + *f0f = (fmf/((mb*mb-mass*mass)/t))+(*fpf); + + return ; +} + + void EvtISGW2FF::gettensorff(EvtId parent,EvtId daught, + double t, double mass, double *hf, + double *kf, double *bpf, double *bmf ){ + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("D(2S)+"); + static EvtId D21S0N=EvtPDL::getId("D(2S)-"); + static EvtId D21S00=EvtPDL::getId("D(2S)0"); + static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0"); + + static EvtId D23S1P=EvtPDL::getId("D*(2S)+"); + static EvtId D23S1N=EvtPDL::getId("D*(2S)-"); + static EvtId D23S10=EvtPDL::getId("D*(2S)0"); + static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + EvtISGW2FF3P2(parent,daught,t,mass,hf,kf,bpf,bmf); + + return; + + } + + + void EvtISGW2FF::getvectorff(EvtId parent,EvtId daught, + double t, double mass, double *a1f, + double *a2f, double *vf, double *a0f ){ + double ff,gf,apf,amf; + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("D(2S)+"); + static EvtId D21S0N=EvtPDL::getId("D(2S)-"); + static EvtId D21S00=EvtPDL::getId("D(2S)0"); + static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0"); + + static EvtId D23S1P=EvtPDL::getId("D*(2S)+"); + static EvtId D23S1N=EvtPDL::getId("D*(2S)-"); + static EvtId D23S10=EvtPDL::getId("D*(2S)0"); + static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + if (daught==DST0||daught==DSTP||daught==DSTM||daught==DSTB|| + daught==OMEG||daught==RHO0||daught==RHOM||daught==RHOP|| + daught==KSTP||daught==KSTM||daught==KST0||daught==KSTB|| + daught==PHI||daught==DSSTP||daught==DSSTM) { + EvtISGW2FF3S1(parent,daught,t,mass,&ff,&gf,&apf,&amf); + } + if (daught==B10||daught==B1P||daught==B1M||daught==H1|| + daught==H1PR||daught==D1P1P||daught==D1P10||daught==D1P1B|| + daught==D1P1SP||daught==D1P1SN|| + daught==D1P1N||daught==K10||daught==K1B||daught==K1P|| + daught==K1M) { + EvtISGW2FF1P1(parent,daught,t,mass,&ff,&gf,&apf,&amf); + } + if (daught==RHO2S0||daught==RHO2SP||daught==RHO2SM||daught==OMEG2S|| + daught==D23S1P||daught==D23S1B||daught==D23S1N||daught==D23S10){ + EvtISGW2FF23S1(parent,daught,t,mass,&ff,&gf,&apf,&amf); + } + if (daught==A10||daught==A1P||daught==A1M||daught==F1|| + daught==F1PR||daught==D3P1P||daught==D3P10||daught==D3P1B|| + daught==D3P1N||daught==K1STM||daught==K1STB||daught==K1STP|| + daught==D3P1SP||daught==D3P1SN|| + daught==K1ST0) { + EvtISGW2FF3P1(parent,daught,t,mass,&ff,&gf,&apf,&amf); + } + + // Need to stuff in some factors to make these the ffs that + // is used elsewhere... + + double mb=EvtPDL::getMeanMass(parent); + + + *vf = (gf)*(mb+mass); + *a1f = (ff)/(mb+mass); + *a2f = -1.0*(apf)*(mb+mass); + + double a3f = ((mb+mass)/(2.0*mass))*(*a1f) - + ((mb-mass)/(2.0*mass))*(*a2f); + + *a0f = a3f + ( (t*amf)/(2.0*mass)); + + return; + } + + + +void EvtISGW2FF::EvtISGW2FF1S0 (EvtId parent,EvtId daugt, + double t, double mass, double *fpf, double *fmf ) { + + double mtb, mbb(0.0); + double msd(0.0), mx,mb,nf(0.0),nfp(0.0); + double msq(0.0),bx2(0.0),mbx(0.0),mtx; + double zji,cji,w,gammaji,chiji,betaji_fppfm; + double rfppfm,rfpmfm,f3fppfm,f3fpmfm,fppfm,fpmfm,al,ai,rcji,f3; + double mqm,msb(0.0),bb2(0.0),mup,mum,bbx2,tm,wt,r2,betaji_fpmfm; + + EvtId prnt=parent; + EvtId dgt=daugt; + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtIdSet theB("B+","B-","B0","anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("D(2S)+"); + static EvtId D21S0N=EvtPDL::getId("D(2S)-"); + static EvtId D21S00=EvtPDL::getId("D(2S)0"); + static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0"); + + static EvtId D23S1P=EvtPDL::getId("D*(2S)+"); + static EvtId D23S1N=EvtPDL::getId("D*(2S)-"); + static EvtId D23S10=EvtPDL::getId("D*(2S)0"); + static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + if (theB.contains(prnt)) { + + msb=5.2; + msd=0.33; + bb2=0.431*0.431; + mbb=5.31; + nf = 4.0; + + if (dgt==PI0||dgt==PIP||dgt==PIM||dgt==ETA||dgt==ETAPR) { + + msq=0.33; + bx2=0.406*0.406; + mbx=0.75*0.770+0.25*0.14; + nfp = 0.0; + } + else{ + if (dgt==D0||dgt==D0B||dgt==DP||dgt==DM) { + msq=1.82; + bx2=0.45*0.45; + mbx=0.75*2.01+0.25*1.87; + nfp = 3.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt:"< cs constants added by djl on Jan. 21,1998 + if (prnt==BS0||prnt==BSB){ + + msb=5.2; + msd=0.55; + bb2=0.54*0.54; + mbb=5.38; + nf = 4.0; + + if (dgt==DSP||dgt==DSM) { + + msq=1.82; + bx2=0.56*0.56; + mbx=0.75*2.11+0.25*1.97; + nfp = 3.0; + } + else if (dgt==KP||dgt==KM) { + + msq=0.55; + bx2=0.44*0.44; + mbx=0.75*0.892+0.25*0.49767; + nfp = 2.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt:"<tm ) t=0.99*tm; + wt=1.0+(tm-t)/(2.0*mbb*mbx); + + mqm = 0.1; + r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) + + (16.0/(mbb*mbx*(33.0-2.0*nfp)))* + log(EvtGetas(mqm,mqm)/EvtGetas(msq,msq)); + + f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,1.5) / + ((1.0+r2*(tm-t)/12.0)*(1.0+r2*(tm-t)/12.0)); + +// for w use wt def with physical masses. +// report(ERROR,"EvtGen") << "before w\n"; + + w = 1.0 + (( tm - t ) / ( 2.0* mb * mx )); + rcji = ( 1/sqrt(w*w -1 ))*log( w + sqrt( w*w -1 )); + al = (8.0 / ( 33.0 - 2.0*nfp ))*(w*rcji -1.0 ); + ai = -1.0* ( 6.0/( 33.0 - 2.0*nf)); + cji = pow(( EvtGetas( msb,msb ) / EvtGetas( msq,msq ) ),ai); + + zji = msq / msb; + + gammaji = EvtGetGammaji( zji ); + chiji = -1.0 - ( gammaji / ( 1- zji )); + betaji_fppfm = gammaji - (2.0/3.0)*chiji; + betaji_fpmfm = gammaji + (2.0/3.0)*chiji; + rfppfm = cji *(1.0 + betaji_fppfm*EvtGetas( msq,sqrt(msb*msq) )/EvtConst::pi); + rfpmfm = cji *(1.0 + betaji_fpmfm*EvtGetas( msq,sqrt(msb*msq) )/EvtConst::pi); + f3fppfm = f3*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),0.5); + f3fpmfm = f3*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),-0.5); + fppfm = f3fppfm* rfppfm * ( 2.0 - ( ( mtx/msq)*(1- ( (msd*msq*bb2) + /(2.0*mup*mtx*bbx2))))); + fpmfm = f3fpmfm* rfpmfm * ( mtb/msq) * ( 1 - ( ( msd*msq*bb2)/ + ( 2.0*mup*mtx*bbx2))); + + *fpf = (fppfm + fpmfm)/2.0; + *fmf = (fppfm - fpmfm)/2.0; + + return; +} //get_ff_isgw_1s0 + + + + + +void EvtISGW2FF::EvtISGW2FF3S1(EvtId parent,EvtId daugt,double t,double mass, + double *f,double *g,double *ap,double *am){ + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("D(2S)+"); + static EvtId D21S0N=EvtPDL::getId("D(2S)-"); + static EvtId D21S00=EvtPDL::getId("D(2S)0"); + static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0"); + + static EvtId D23S1P=EvtPDL::getId("D*(2S)+"); + static EvtId D23S1N=EvtPDL::getId("D*(2S)-"); + static EvtId D23S10=EvtPDL::getId("D*(2S)0"); + static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double cf(0.0),mtb,wt,msd(0.0),mup,f3f,msq(0.0),bb2(0.0),mum,mtx,bbx2,f3g; + double cji,bx2(0.0),f3appam,msb(0.0),tm,mbb(0.0),mbx(0.0); + double f3apmam,appam,apmam,mb,mx,f3; + double r_f,r_g,r_appam,r_apmam, betaji_f,betaji_g; + double betaji_appam, betaji_apmam; + double w,mqm,r2,chiji,zji,ai,al,rcji,nf(0.0),nfp(0.0),gammaji; + + EvtId prnt=parent; + EvtId dgt=daugt; + + if (parent==B0||parent==B0B||parent==BP||parent==BM) { + + msb=5.2; + msd=0.33; + bb2=0.431*0.431; + mbb=5.31; + nf = 4.0; + + if (dgt==DST0||dgt==DSTP||dgt==DSTM||dgt==DSTB) { + + cf=0.989; + msq=1.82; + bx2=0.38*0.38; + mbx=0.75*2.01+0.25*1.87; + nfp = 3.0; + } + else{ + if (dgt==OMEG||dgt==RHO0||dgt==RHOM||dgt==RHOP) { + + cf=0.905; + msq=0.33; + bx2=0.299*0.299; + mbx=0.75*0.770+0.25*0.14; + nfp = 0.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt:"< cs constants added by djl on Jan. 21,1998 + if (prnt==BS0||prnt==BSB){ + + msb=5.2; + msd=0.55; + bb2=0.54*0.54; + mbb=5.38; + nf = 4.0; + + if (dgt==DSSTP||dgt==DSSTM) { + + cf=0.984; + msq=1.82; + bx2=0.49*0.49; + mbx=0.75*2.11+0.25*1.97; + nfp = 3.0; + } + else if (dgt==KSTP||dgt==KSTM||dgt==KST0||dgt==KSTB) { + + cf=0.928; + msq=0.55; + bx2=0.33*0.33; + mbx=0.75*0.892+0.25*0.494; + nfp = 2.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt:"< tm ) t = 0.99*tm; + + wt=1.0+(tm-t)/(2.0*mbb*mbx); + mqm = 0.1; + + r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) + + (16.0/(mbb*mbx*(33.0-2.0*nfp)))* + log(EvtGetas(mqm,mqm)/EvtGetas(msq,msq)); + + w = 1.0 + (( tm - t ) / ( 2.0* mb * mx )); + + rcji = ( 1/sqrt(w*w -1 ))*log( w + sqrt( w*w -1 )); + + al = (8.0 / ( 33.0 - 2.0*nfp ))*(w*rcji -1.0 ); + + ai = -1.0* ( 6.0/( 33.0 - 2.0*nf)); + + cji = pow(( EvtGetas( msb,msb ) / EvtGetas( msq,msq ) ),ai); + zji = msq / msb; + + gammaji = EvtGetGammaji( zji ); + + chiji = -1.0 - ( gammaji / ( 1- zji )); + + betaji_g = (2.0/3.0)+gammaji; + betaji_f = (-2.0/3.0)+gammaji; + betaji_appam = -1.0-chiji+(4.0/(3.0*(1.0-zji)))+ + (2.0*(1+zji)*gammaji/(3.0*(1.0-zji)*(1.0-zji))); + + betaji_apmam = (1.0/3.0)-chiji-(4.0/(3.0*(1.0-zji)))- + (2.0*(1+zji)*gammaji/(3.0*(1.0-zji)*(1.0-zji)))+ + gammaji; + + r_g = cji*(1+(betaji_g*EvtGetas( msq,sqrt(mb*msq) )/(EvtConst::pi))); + r_f = cji*(1+(betaji_f*EvtGetas( msq,sqrt(mb*msq) )/(EvtConst::pi))); + r_appam = cji*(1+(betaji_appam*EvtGetas( msq,sqrt(mb*msq) )/(EvtConst::pi))); + r_apmam = cji*(1+(betaji_apmam*EvtGetas( msq,sqrt(mb*msq) )/(EvtConst::pi))); + + + f3=sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,1.5)/ + ((1.0+r2*(tm-t)/12.0)*(1.0+r2*(tm-t)/12.0)); + + f3f=sqrt(mbx*mbb/(mtx*mtb))*f3; + f3g=sqrt(mtx*mtb/(mbx*mbb))*f3; + f3appam=sqrt(mtb*mtb*mtb*mbx/(mbb*mbb*mbb*mtx))*f3; + f3apmam=sqrt(mtx*mtb/(mbx*mbb))*f3; + *f=cf*mtb*(1+wt+msd*(wt-1)/(2*mup))*f3f*r_f; + *g=0.5*(1/msq-msd*bb2/(2*mum*mtx*bbx2))*f3g*r_g; + + appam=cji*(msd*bx2*(1-msd*bx2/(2*mtb*bbx2))/ + ((1+wt)*msq*msb*bbx2)- + betaji_appam*EvtGetas( msq,sqrt(msq*mb) )/ + (mtb*EvtConst::pi))*f3appam; + + apmam=-1.0*(mtb/msb-msd*bx2/(2*mup*bbx2)+wt*msd*mtb*bx2* + (1-msd*bx2/(2*mtb*bbx2))/((wt+1)*msq*msb*bbx2))* + f3apmam*r_apmam/mtx; + + *ap=0.5*(appam+apmam); + *am=0.5*(appam-apmam); + return; +} + + +void EvtISGW2FF::EvtISGW2FF21S0 (EvtId parent,EvtId daugt, + double t, double mass, double *fppf, double *fpmf ) { + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("D(2S)+"); + static EvtId D21S0N=EvtPDL::getId("D(2S)-"); + static EvtId D21S00=EvtPDL::getId("D(2S)0"); + static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0"); + + static EvtId D23S1P=EvtPDL::getId("D*(2S)+"); + static EvtId D23S1N=EvtPDL::getId("D*(2S)-"); + static EvtId D23S10=EvtPDL::getId("D*(2S)0"); + static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double mtb, mbb(0.0); + double msd(0.0), mx,mb,nf,nfp(0.0); + double msq(0.0),bx2(0.0),mbx(0.0),mtx; + double f3fppfm,f3fpmfm,fppfm,fpmfm,f3; + double mqm,msb(0.0); + double mum,mup,r2,wt,tm,bb2(0.0),bbx2; + double tau,udef,vdef; + + EvtId prnt=parent; + EvtId dgt=daugt; + + if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) { + + msb=5.2; + msd=0.33; + bb2=0.431*0.431; + mbb=0.75*5.325+0.25*5.279; + nf = 4.0; + + if (dgt==PI2S0||dgt==PI2SP||dgt==PI2SM||dgt==ETA2S) { + + msq=0.33; + bx2=0.406*0.406; + mbx=0.75*1.45+0.25*1.300; + nfp = 0.0; + } + else{ + if (dgt==D21S0P||dgt==D21S0B||dgt==D21S0N||dgt==D21S00) { + msq=1.82; + bx2=0.45*0.45; + mbx=0.75*2.64+0.25*2.58; + nfp=3.0; + } + else{ + + report(ERROR,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_21S0.\n"; + } + } + } + else{ + if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) { + msb=1.82; + msd=0.33; + bb2=0.45*0.45; + mbb=1.963; + nf = 3.0; + if (dgt==PI2SP||dgt==PI2SM||dgt==PI2S0||dgt==ETA2S) { + msq=0.33; + bx2=0.406*0.406; + mbx=0.75*1.45+0.25*1.300; + nfp = 0.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_21S0.\n"; + } + } + else{ + report(ERROR,"EvtGen") << "Not implemented parent in get_EvtISGW2_ff_21S0.\n"; + } + } + + mtb = msb + msd; + mtx = msq + msd; + + mb = EvtPDL::getMeanMass( parent ); + mx = mass; + + mup=1.0/(1.0/msq+1.0/msb); + mum=1.0/(1.0/msq-1.0/msb); + bbx2=0.5*(bb2+bx2); + tm=(mb-mx)*(mb-mx); + if (t>tm) t = 0.99*tm; + wt=1.0+(tm-t)/(2.0*mbb*mbx); + + mqm = 0.1; + r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) + + (16.0/(mbb*mbx*(33.0-2.0*nfp)))* + log(EvtGetas(mqm)/EvtGetas(msq)); + + f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0) / + (pow((1.0+r2*(tm-t)/24.0),4.0)); + + f3fppfm = f3*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),0.5); + f3fpmfm = f3*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),-0.5); + + tau = msd*msd*bx2*(wt-1)/(bb2*bbx2); + udef = (( bb2-bx2)/(2.0*bbx2)) + ((bb2*tau)/(3.0*bbx2)); + vdef = (bb2*(1.0+(msq/msb))/(6.0*bbx2))*(7.0 - ((bb2/bbx2)*(5+tau))); + + fppfm = f3fppfm*sqrt(1.5)*((1.0-(msd/msq))*udef-(msd*vdef/msq)); + fpmfm = f3fpmfm*sqrt(1.5)*(mtb/msq)*(udef+(msd*vdef/mtx)); + + *fppf = (fppfm + fpmfm) /2.0; + *fpmf = (fppfm - fpmfm) /2.0; + return; + +} //get_ff_isgw_21s0 + + +void EvtISGW2FF::EvtISGW2FF23S1 (EvtId parent,EvtId daugt, + double t, double mass, double *fpf, double *gpf, + double *appf, double *apmf ) { + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("D(2S)+"); + static EvtId D21S0N=EvtPDL::getId("D(2S)-"); + static EvtId D21S00=EvtPDL::getId("D(2S)0"); + static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0"); + + static EvtId D23S1P=EvtPDL::getId("D*(2S)+"); + static EvtId D23S1N=EvtPDL::getId("D*(2S)-"); + static EvtId D23S10=EvtPDL::getId("D*(2S)0"); + static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double mtb, mbb(0.0); + double msd(0.0), mx,mb,nf,nfp(0.0); + double msq(0.0),bx2(0.0),mbx(0.0),mtx; + double f3appam,f3apmam,f3,appam,apmam,f3fp,f3gp; + double udef,tau,mum,mup,bb2(0.0),bbx2,tm,wt,mqm,r2,msb(0.0); + double cfp(0.0); + + EvtId prnt=parent; + EvtId dgt=daugt; + + if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) { + + msb=5.2; + msd=0.33; + bb2=0.431*0.431; + mbb=0.75*5.325+0.25*5.279; + nf = 4.0; + + if (dgt==RHO2S0||dgt==RHO2SP||dgt==RHO2SM||dgt==OMEG2S) { + + cfp=0.776; + msq=0.33; + bx2=0.299*0.299; + mbx=0.75*1.45+0.25*1.300; + nfp = 0.0; + + } + else{ + if (dgt==D23S1N||dgt==D23S1P||dgt==D23S1B||dgt==D23S10) { + cfp=0.929; + msq=1.82; + bx2=0.38*0.38; + mbx=0.75*2.64+0.25*2.58; + nfp=3.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_23P1.\n"; + } + } + } + else{ + if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) { + msb=1.82; + msd=0.33; + bb2=0.45*0.45; + mbb=1.963; + nf = 3.0; + + if (dgt==RHO2S0||dgt==RHO2SP||dgt==RHO2SM||dgt==OMEG2S) { + cfp=0.74; + msq=0.33; + bx2=0.299*0.299; + mbx=0.75*1.45+0.25*1.300; + nfp = 0.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_23P1.\n"; + } + } + else{ + report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_23P1.\n"; + } + } + + mtb = msb + msd; + mtx = msq + msd; + mb = EvtPDL::getMeanMass( parent ); + mx = mass; + + mup=1.0/(1.0/msq+1.0/msb); + mum=1.0/(1.0/msq-1.0/msb); + bbx2=0.5*(bb2+bx2); + tm=(mb-mx)*(mb-mx); + + if (t>tm) t = 0.99*tm; + wt=1.0+(tm-t)/(2.0*mbb*mbx); + + mqm = 0.1; + r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) + + (16.0/(mbb*mbx*(33.0-2.0*nfp)))* + log(EvtGetas(mqm)/EvtGetas(msq)); + + f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0) / + (pow((1.0+r2*(tm-t)/24.0),4.0)); + + f3fp = f3*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),0.5); + f3gp = f3*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5); + f3appam = f3*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),0.5); + f3apmam = f3*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5); + + tau = msd*msd*bx2*(wt-1.0)/(bb2*bbx2); + udef = (( bb2-bx2)/(2.0*bbx2)); + udef = udef + ((bb2*tau)/(3.0*bbx2)); + + *fpf = cfp*sqrt(1.5)*mtb*(1.0+wt)*udef*f3fp; + + *gpf = sqrt(3.0/8.0)*f3gp*(((1.0/msq)-((msd*bb2)/(2.0*mum*mtx*bbx2)))* + udef + ( (msd*bb2*bx2)/(3.0*mum*mtx*bbx2*bbx2))); + + appam = f3appam*sqrt(2.0/3.0)*(bb2/(msq*msb*bbx2))*((-7.0*msd*msd*bx2* + bx2*(1.0+(tau/7.0))/(8.0*mtb*bbx2*bbx2))+(5.0*msd*bx2*(1.0+ + (tau/5.0))/(4.0*bbx2))+(3.0*msd*msd*bx2*bx2/(8.0*mtb*bb2*bbx2))- + (3.0*msd*bx2/(4.0*bb2))); + + apmam = f3apmam*sqrt(3.0/2.0)*(mtb/(msb*mtx))*(1.0-(bb2*(1.0+(tau/7.0))/ + bbx2)-(msd*bx2*(1.0-(5.0*bb2*(1.0+(tau/5.0))/(3.0*bbx2))) + /(2.0*mtb*bbx2))-(7.0*msd*msd*bb2*bx2/(12.0*msq*mtb*bbx2*bbx2))* + (1.0-(bx2/bbx2)+(bb2*tau/(7.0*bbx2)))); + + *appf = (appam + apmam) /2.0; + *apmf = (appam - apmam) /2.0; + return; +} //get_ff_isgw_23s1 + +void EvtISGW2FF::EvtISGW2FF1P1 (EvtId parent,EvtId daugt, + double t, double mass, double *rf, double *vf, + double *spf, double *smf ) { + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("D(2S)+"); + static EvtId D21S0N=EvtPDL::getId("D(2S)-"); + static EvtId D21S00=EvtPDL::getId("D(2S)0"); + static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0"); + + static EvtId D23S1P=EvtPDL::getId("D*(2S)+"); + static EvtId D23S1N=EvtPDL::getId("D*(2S)-"); + static EvtId D23S10=EvtPDL::getId("D*(2S)0"); + static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double mtb, mbb(0.0); + double msd(0.0), mx,mb,nf,nfp(0.0); + double msq(0.0),bx2(0.0),mbx(0.0),mtx,f5; + double f5sppsm,f5spmsm; + double f5v,f5r,mup,mum,vv,rr,spmsm,sppsm; + double mqm,msb(0.0),bb2(0.0),bbx2,tm,wt,r2; + EvtId prnt=parent; + EvtId dgt=daugt; + if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) { + msb=5.2; + msd=0.33; + bb2=0.431*0.431; + mbb=5.31; + nf = 4.0; + if (dgt==B10||dgt==B1P||dgt==B1M||dgt==H1||dgt==H1PR) { + msq=0.33; + bx2=0.275*0.275; + mbx=(3.0*1.123+0.98+5.0*1.32+3.0*1.26)/12.0; + nfp = 0.0; + } + else{ + if (dgt==D1P1P||dgt==D1P10||dgt==D1P1B||dgt==D1P1N) { + msq=1.82; + bx2=0.33*0.33; + mbx=(5.0*2.46+3.0*2.42)/8.0; + nfp = 3.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_1P1.\n"; + } + } + } + else{ + if (prnt==DM||prnt==DP||prnt==D0B||prnt==D0) { + msb=1.82; + msd=0.33; + bb2=0.45*0.45; + mbb=1.963; + nf = 3.0; + if (dgt==B10||dgt==B1P||dgt==B1M||dgt==H1||dgt==H1PR) { + msq=0.33; + bx2=0.275*0.275; + mbx=(3.0*1.123+0.98+5.0*1.32+3.0*1.26)/12.0; + nfp = 0.0; + } + else{ + if (dgt==K10||dgt==K1B||dgt==K1P||dgt==K1M) { + msq=0.55; + bx2=0.30*0.30; + mbx=(3.0*1.27+1.43+5.0*1.43+3.0*1.4)/12.0; + nfp = 2.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_1P1.\n"; + } + } + } + else{ + //BS -> cs constants added by djl on Jan. 21,1998 + if (prnt==BS0||prnt==BSB){ + + msb=5.2; + msd=0.55; + bb2=0.54*0.54; + mbb=5.38; + nf = 4.0; + + if (dgt==D1P1SP||dgt==D1P1SN) { + + msq=1.82; + bx2=0.41*0.41; + mbx=(5.0*2.61+3.0*2.54)/8.0; + nfp = 3.0; + } + else if (dgt==K10||dgt==K1B||dgt==K1P||dgt==K1M) { + msq=0.55; + bx2=0.30*0.30; + mbx=(3.0*1.27+1.43+5.0*1.43+3.0*1.4)/12.0; + nfp = 2.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt:" + <tm) t = 0.99*tm; + wt=1.0+(tm-t)/(2.0*mbb*mbx); + + mqm = 0.1; + r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2)+ + (16.0/(mbb*mbx*(33.0-2.0*nfp)))* + log(EvtGetas(mqm,mqm)/EvtGetas(msq,msq)); + + f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0) / + (pow((1.0+r2*(tm-t)/18.0),3.0)); + + f5v = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5); + f5r = f5*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),0.5); + f5sppsm = f5*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),0.5); + f5spmsm = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5); + + if (msq == msd) { + vv = f5v*(((mtb*sqrt(bb2))/(4.0*sqrt(2.0)*msb*msq*mtx)) + + (((wt-1)*msd)/(6.0*sqrt(2.0*bb2)*mtx))); + + rr = f5r*mtb*sqrt(bb2/2)*((1.0/mup)+((msd*mtx*(wt-1)*(wt-1))/ + (3.0*msq*bb2))); + + sppsm = msd*f5sppsm/(sqrt(2.0*bb2)*mtb)*(1.0-(msd/msq)+((msd*bb2)/ + (2.0*mup*bbx2))); + + spmsm = msd*f5spmsm/(sqrt(2.0*bb2)*msq)*(((4-wt)/3.0)- ( (msd*msq*bb2)/ + (2.0*mtx*mup*bbx2))); + + } else { + vv = -1.0*msd*f5v/(2.0*sqrt(3.0*bb2)*mtx)* + ((wt+1)/2.0+bb2*mtb/(2.0*msd*msq*msb)); + + rr = -2.0*mtb*sqrt(bb2/3.0)*f5r*(1.0/msq + mtx*msd*(wt-1)/(2.0*bb2)* + ((wt+1)/(2.0*msq)-msd*bb2/(2.0*mum*mtx*bbx2))); + + sppsm = -1.0*sqrt(3.0)*msd*f5sppsm/(2.0*sqrt(bb2)*mtb)*(1 - msd/(3.0*msq) - + msd*bb2/(3.0*bbx2)*(1.0/(2.0*mum)-1.0/mup)); + + spmsm = -1.0*msd*f5spmsm/(2.0*sqrt(3.0*bb2)*mtx)*((2-wt)*mtx/msq + + msd*bb2/bbx2*(1.0/(2.0*mum)-1.0/mup)); + + } + + //smooth out the mass(meson) dependence a little + double parMass=EvtPDL::getMeanMass(prnt); + double q2max = parMass*parMass + mass*mass - 2.0*parMass*mass; + double massNom= EvtPDL::getMeanMass(dgt); + double q2maxNom = parMass*parMass + massNom*massNom - 2.0*parMass*massNom; + double q2maxin=sqrt(q2maxNom/q2max); + if ( q2maxin > 1000. ) q2maxin=1000.; + + vv*=q2maxin; + rr*=q2maxin; + sppsm*=q2maxin; + spmsm*=q2maxin; + + *vf = vv; + *rf = rr; + *spf = (sppsm + spmsm)/2.0; + *smf = (sppsm - spmsm)/2.0; + return; +} //get_ff_isgw_1p1 + + +void EvtISGW2FF::EvtISGW2FF3P1 (EvtId parent,EvtId daugt, + double t, double mass, double *lf, double *qf, + double *cpf, double *cmf ) { + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("D(2S)+"); + static EvtId D21S0N=EvtPDL::getId("D(2S)-"); + static EvtId D21S00=EvtPDL::getId("D(2S)0"); + static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0"); + + static EvtId D23S1P=EvtPDL::getId("D*(2S)+"); + static EvtId D23S1N=EvtPDL::getId("D*(2S)-"); + static EvtId D23S10=EvtPDL::getId("D*(2S)0"); + static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double mtb, mbb(0.0); + double msd(0.0), mx,mb,nf,nfp(0.0); + double msq(0.0),bx2(0.0),mbx(0.0),mtx; + double f5cppcm,f5cpmcm,f5,ql,ll,cppcm,cpmcm,f5q,f5l; + double mqm,msb(0.0),bb2(0.0),mup,mum,bbx2,tm,wt,r2; + EvtId prnt=parent; + EvtId dgt=daugt; + + if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) { + + msb=5.2; + msd=0.33; + bb2=0.431*0.431; + mbb=5.31; + nf = 4.0; + + if (dgt==A10||dgt==A1P||dgt==A1M||dgt==F1||dgt==F1PR) { + + msq=0.33; + bx2=0.275*0.275; + mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0; + nfp = 0.0; + } + else{ + if (dgt==D3P1P||dgt==D3P1N||dgt==D3P10||dgt==D3P1B) { + msq=1.82; + bx2=0.33*0.33; + mbx=(3.0*2.49+2.40)/4.0; + nfp = 3.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt:"< cs constants added by djl on Jan. 21,1998 + if (prnt==BS0||prnt==BSB){ + + msb=5.2; + msd=0.55; + bb2=0.54*0.54; + mbb=5.38; + nf = 4.0; + + if (dgt==D3P1SP||dgt==D3P1SN) { + + msq=1.82; + bx2=0.41*0.41; + mbx=(3.0*2.54+2.46)/4.0; + nfp = 3.0; + } + else if (dgt==K1STM||dgt==K1STB||dgt==K1STP||dgt==K1ST0) { + msq=0.55; + bx2=0.30*0.30; + mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0; + nfp = 2.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt:"<tm) t = 0.99*tm; + wt=1.0+(tm-t)/(2.0*mbb*mbx); + + mqm = 0.1; + r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) + + (16.0/(mbb*mbx*(33.0-2.0*nfp)))* + log(EvtGetas(mqm)/EvtGetas(msq)); + + f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0) / + (pow((1.0+r2*(tm-t)/18.0),3.0)); + + f5q = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5); + f5l = f5*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),0.5); + f5cppcm = f5*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),0.5); + f5cpmcm = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),-0.5); + + if (msq == msd) { + + ql = -1.0*(msd*(5.0+wt)*f5q/(2.0*mtx*sqrt(bb2)*6.0)); + + ll = -1.0*mtb*sqrt(bb2)*f5l*(1/mum+ ( (msd*mtx*(wt-1)/bb2)* + ( (5.0+wt)/(6.0*msq)-(msd*bb2)/(2.0*mum*mtx*bbx2)))); + + cppcm = (-1.0*(msd*mtx*f5cppcm/(2.0*msq*mtb*sqrt(bb2)))* + (1-(msd*msq*bb2)/(2.0*mtx*mum*bbx2))); + + cpmcm = 1.0*(msd*mtx*f5cpmcm/(2.0*msq*mtb*sqrt(bb2)))* + (((wt+2.0)/3.0)-(msd*msq*bb2)/(2.0*mtx*mum*bbx2)) + *(mtb/mtx); + } else { + + ql = f5q*sqrt(1.0/6.0)*msd/(sqrt(bb2)*mtx)* + (1.0-bb2*mtb/(4.0*msd*msq*msb)); + ll = f5l*sqrt(2.0/3.0)*mtb*sqrt(bb2)*(1.0/(2.0*msq) - 3.0/(2.0*msb) + + msd*mtx*(wt-1)/bb2*(1.0/msq-msd*bb2/(2.0*mum*mtx*bbx2))); + cppcm = msd*msd*bx2*f5cppcm/(sqrt(6.0)*mtb*msq*sqrt(bb2)*bbx2); + cpmcm = -sqrt(2.0/3.0)*msd*f5cpmcm/(sqrt(bb2)*mtx)* + (1+msd*bx2/(2.0*msq*bbx2)); + } + + //smooth out the mass(meson) dependence a little + double parMass=EvtPDL::getMeanMass(prnt); + double q2max = parMass*parMass + mass*mass - 2.0*parMass*mass; + double massNom= EvtPDL::getMeanMass(dgt); + double q2maxNom = parMass*parMass + massNom*massNom - 2.0*parMass*massNom; + double q2maxin=sqrt(q2maxNom/q2max); + if ( q2maxin > 1000. ) q2maxin=1000.; + ql*=q2maxin; + ll*=q2maxin; + cppcm*=q2maxin; + cpmcm*=q2maxin; + + *qf = ql; + *lf = ll; + *cpf = (cppcm + cpmcm)/2.0; + *cmf = (cppcm - cpmcm)/2.0; + return; +} //get_ff_isgw_3p1 + + +void EvtISGW2FF::EvtISGW2FF3P0 (EvtId parent,EvtId daugt, + double t, double mass, double *upf, double *umf ) { + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("D(2S)+"); + static EvtId D21S0N=EvtPDL::getId("D(2S)-"); + static EvtId D21S00=EvtPDL::getId("D(2S)0"); + static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0"); + + static EvtId D23S1P=EvtPDL::getId("D*(2S)+"); + static EvtId D23S1N=EvtPDL::getId("D*(2S)-"); + static EvtId D23S10=EvtPDL::getId("D*(2S)0"); + static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double mtb, mbb(0.0); + double msd(0.0), mx,mb,nf,nfp(0.0); + double msq(0.0),bx2(0.0),mbx(0.0),mtx; + double f5uppum,f5upmum,uppum,upmum,f5; + double mqm,mum,mup,wt,r2,bb2(0.0),bbx2,msb(0.0),tm; + + EvtId prnt=parent; + EvtId dgt=daugt; + + if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) { + + msb=5.2; + msd=0.33; + bb2=0.431*0.431; + mbb=5.31; + nf = 4.0; + if (dgt==A00||dgt==A0P||dgt==A0M||dgt==F0||dgt==F0PR) { + + msq=0.33; + bx2=0.275*0.275; + mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0; + nfp = 0.0; + } + else{ + if (dgt==D3P0P||dgt==D3P0N||dgt==D3P00||dgt==D3P0B) { + msq=1.82; + bx2=0.33*0.33; + mbx=(3.0*2.49+2.40)/4.0; + nfp = 3.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_3P0.\n"; + } + } + } + else{ + if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) { + + msb=1.82; + msd=0.33; + bb2=0.45*0.45; + mbb=1.963; + nf = 3.0; + if (dgt==F0||dgt==F0PR||dgt==A00||dgt==A0P||dgt==A0M) { + msq=0.33; + bx2=0.275*0.275; + mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0; + nfp = 0.0; + } + else{ + if (dgt==K0STM||dgt==K0STB||dgt==K0STP||dgt==K0ST0) { + msq=0.55; + bx2=0.30*0.30; + mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0; + nfp = 2.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_3P0.\n"; + } + } + } + else{ + if (prnt==DSP||prnt==DSM){ + msb=1.82; + msd=0.55; + bb2=0.56*0.56; + mbb=1.968; + nf = 3.0; + + if (dgt==F0||dgt==F0PR||dgt==A00||dgt==A0P||dgt==A0M) { + msq=0.55; + bx2=0.33*0.33; + mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0; + nfp = 2.0; + } + else{ + if (dgt==K0STM||dgt==K0STB||dgt==K0STP||dgt==K0ST0) { + msq=0.33; + bx2=0.30*0.30; + mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0; + nfp = 0.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_EvtISGW2_ff_3P0.\n"; + } + } + } + else{ + //BS -> cs constants added by djl on Jan. 21,1998 + if (prnt==BS0||prnt==BSB){ + + msb=5.2; + msd=0.55; + bb2=0.54*0.54; + mbb=5.38; + nf = 4.0; + + if (dgt==D3P0SP||dgt==D3P0SN) { + + msq=1.82; + bx2=0.41*0.41; + mbx=(3.0*2.54+2.46)/4.0; + nfp = 3.0; + } + else if (dgt==K0STM||dgt==K0STB||dgt==K0STP||dgt==K0ST0) { + msq=0.55; + bx2=0.30*0.30; + mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0; + nfp = 2.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt:"<tm) t = 0.99*tm; + wt=1.0+(tm-t)/(2.0*mbb*mbx); + + mqm = 0.1; + r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2) + + (16.0/(mbb*mbx*(33.0-2.0*nfp)))* + log(EvtGetas(mqm)/EvtGetas(msq)); + + f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0) / + (pow((1.0+r2*(tm-t)/18.0),3.0)); + + f5uppum = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),0.5); + f5upmum = f5*pow(( mbb / mtb ),0.5)*pow((mbx/mtx),-0.5); + + uppum = -1.0*f5uppum*sqrt(2.0/(3.0*bb2))*msd; + upmum = 1.0*f5upmum*sqrt(2.0/(3.0*bb2))*msd*mtb/mtx; + + *upf = (uppum + upmum)/2.0; + *umf = (uppum - upmum)/2.0; + + return; + +} + + +void EvtISGW2FF::EvtISGW2FF3P2 (EvtId parent,EvtId daugt, + double t, double mass, double *hf, double *kf, + double *bpf, double *bmf ) { + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("D(2S)+"); + static EvtId D21S0N=EvtPDL::getId("D(2S)-"); + static EvtId D21S00=EvtPDL::getId("D(2S)0"); + static EvtId D21S0B=EvtPDL::getId("anti-D(2S)0"); + + static EvtId D23S1P=EvtPDL::getId("D*(2S)+"); + static EvtId D23S1N=EvtPDL::getId("D*(2S)-"); + static EvtId D23S10=EvtPDL::getId("D*(2S)0"); + static EvtId D23S1B=EvtPDL::getId("anti-D*(2S)0"); + + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + + double mtb, mbb(0.0); + double msd(0.0), mx,mb,nf,nfp(0.0); + double msq(0.0),bx2(0.0),mbx(0.0),mtx,f5; + double f5h,f5k,f5bppbm,f5bpmbm,bppbm,bpmbm; + double mqm,mum,mup,tm,wt,r2,bb2(0.0),bbx2; + double msb(0.0); + EvtId prnt=parent; + EvtId dgt=daugt; + + if (prnt==B0||prnt==B0B||prnt==BP||prnt==BM) { + + msb=5.2; + msd=0.33; + bb2=0.431*0.431; + mbb=5.31; + nf = 4.0; + + if (dgt==A20||dgt==A2P||dgt==A2M||dgt==F2||dgt==F2PR) { + + msq=0.33; + bx2=0.275*0.275; + mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0; + nfp = 0.0; + + } + + else{ + if (dgt==D3P2P||dgt==D3P2N||dgt==D3P20||dgt==D3P2B) { + + msq=1.82; + bx2=0.33*0.33; + mbx=(5.0*2.46+3.0*2.42)/8.0; + nfp = 3.0; + } + else{ + + report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P2.\n"; + } + } + } + else{ + if (prnt==D0||prnt==D0B||prnt==DP||prnt==DM) { + + msb=1.82; + msd=0.33; + bb2=0.45*0.45; + mbb=1.963; + nf = 3.0; + if (dgt==F2||dgt==F2PR||dgt==A20||dgt==A2P||dgt==A2M) { + msq=0.33; + bx2=0.275*0.275; + mbx=(3.0*1.23+0.98+5.0*1.32+3.0*1.26)/12.0; + nfp = 0.0; + } + else{ + if (dgt==K2STM||dgt==K2STB||dgt==K2STP||dgt==K2ST0) { + msq=0.55; + bx2=0.30*0.30; + mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0; + nfp = 2.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P2.\n"; + } + } + } + else{ + //BS -> cs constants added by djl on Jan. 21,1998 + if (prnt==BS0||prnt==BSB){ + + msb=5.2; + msd=0.55; + bb2=0.54*0.54; + mbb=5.38; + nf = 4.0; + + if (dgt==D3P2SP||dgt==D3P2SN) { + + msq=1.82; + bx2=0.41*0.41; + mbx=(5.0*2.61+3.0*2.54)/8.0; + nfp = 3.0; + } + else if (dgt==K2STM||dgt==K2STB||dgt==K2STP||dgt==K2ST0) { + msq=0.55; + bx2=0.30*0.30; + mbx=(3.0*1.40+1.43+5.0*1.43+3.0*1.27)/12.0; + nfp = 2.0; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt:"<tm) t = 0.99*tm; + wt=1.0+(tm-t)/(2.0*mbb*mbx); + + mqm = 0.1; + r2=3.0/(4.0*msb*msq)+3*msd*msd/(2*mbb*mbx*bbx2)+ + (16.0/(mbb*mbx*(33.0-2.0*nfp)))* + log(EvtGetas(mqm)/EvtGetas(msq)); + + f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0) / + (pow((1.0+r2*(tm-t)/18.0),3.0)); + + f5h = f5*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),-0.5); + f5k = f5*pow(( mbb / mtb ),-0.5)*pow((mbx/mtx),0.5); + f5bppbm = f5*pow(( mbb / mtb ),-2.5)*pow((mbx/mtx),0.5); + f5bpmbm = f5*pow(( mbb / mtb ),-1.5)*pow((mbx/mtx),-0.5); + + *hf = f5h*(msd/(sqrt(8.0*bb2)*mtb))*((1.0/msq)-(msd*bb2/(2.0*mum* + mtx*bbx2))); + + *kf = f5k*(msd/(sqrt(2.0*bb2)))*(1.0+wt); + + bppbm = ((msd*msd*f5bppbm*bx2)/(sqrt(32.0*bb2)*msq*msb*mtb*bbx2))* + (1.0-(msd*bx2/(2.0*mtb*bbx2))); + + bpmbm = -1.0*(msd*f5bpmbm/(sqrt(2.0*bb2)*msb*mtx))*(1.0- + ((msd*msb*bx2)/(2.0*mup*mtb*bbx2))+((msd*bx2*(1.0- + ((msd*bx2)/(2.0*mtb*bbx2))))/(4.0*msq*bbx2))); + + *bpf = (bppbm + bpmbm)/2.0; + *bmf = (bppbm - bpmbm)/2.0; + return; +} //get_ff_isgw_1p1 + + +double EvtISGW2FF::EvtGetGammaji ( double z ) + +{ +double temp; + + temp = 2+((2.0*z)/(1-z))*log(z); + temp = -1.0*temp; + + return temp; + +} //EvtGetGammaji + + + +double EvtISGW2FF::EvtGetas ( double massq, double massx ) +{ + double lqcd2 = 0.04; + double nflav = 4; + double temp = 0.6; + + if ( massx > 0.6 ) { + if ( massq < 1.85 ) { + nflav = 3.0;} + + temp = 12.0*EvtConst::pi / ( 33.0 - 2.0*nflav) / + log( massx*massx/lqcd2); + } + return temp; + +} //EvtGetas + +double EvtISGW2FF::EvtGetas ( double mass ) + +{ + double lqcd2 = 0.04; + double nflav = 4; + double temp = 0.6; + + if ( mass > 0.6 ) { + if ( mass < 1.85 ) { + nflav = 3.0;} + + temp = 12.0*EvtConst::pi / ( 33.0 - 2.0*nflav) / + log( mass*mass/lqcd2); + } + return temp; + +} //EvtGetas + + +void EvtISGW2FF::getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*){ + + report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtISGW2FF.\n"; + + ::abort(); + +} + diff --git a/TEvtGen/EvtGenModels/EvtISGW2FF.hh b/TEvtGen/EvtGenModels/EvtISGW2FF.hh new file mode 100644 index 00000000000..e83ddc48b68 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtISGW2FF.hh @@ -0,0 +1,83 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtISGW2FF.hh +// +// Description:Form factor routines specific to EvtISGW2 +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTISGW2FF_HH +#define EVTISGW2FF_HH + +#include "EvtGenBase/EvtSemiLeptonicFF.hh" + +class EvtId; + +class EvtISGW2FF : public EvtSemiLeptonicFF { + +public: + + void getscalarff( EvtId parent, EvtId daught, + double t, double mass, double *fpf, + double *f0f ); + void getvectorff( EvtId parent, EvtId daught, + double t, double mass, double *a1f, + double *a2f, double *vf, double *a0f ); + void gettensorff( EvtId parent, EvtId daught, + double t, double mass, double *hf, + double *kf, double *bpf, double *bmf ); + + void getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*); + + +private: + + // getscalarff, getvectorff, and gettensorff call the + // correct isgw2 form factor routine which computes + // form factors according to the ISGW2 paper. + + + void EvtISGW2FF3S1( EvtId parent, EvtId daught, + double t, double mass, double *ff, double *gf, + double *apf, double *amf); + void EvtISGW2FF23S1( EvtId parent, EvtId daught, + double t, double mass,double *fpf, double *gpf, + double *app, double *apm); + void EvtISGW2FF3P1( EvtId parent, EvtId daught, + double t, double mass,double *lf, double *qf, + double *cpf, double *cmf); + void EvtISGW2FF3P0( EvtId parent, EvtId daught, + double t, double mass, double *upf, double *umf); + void EvtISGW2FF1S0( EvtId parent, EvtId daught, + double t, double mass,double *fpf, double *fmf); + void EvtISGW2FF21S0( EvtId parent, EvtId daught, + double t, double mass, double *fppf, double *fpmf); + void EvtISGW2FF3P2( EvtId parent, EvtId daught, + double t, double mass, double *h, double *k, + double *bp, double *bm); + void EvtISGW2FF1P1( EvtId parent, EvtId daught, + double t, double mass, double *rf, double *vf, + double *spf, double *smf); + + double EvtGetas( double mass ); + double EvtGetas( double mass,double mass1 ); + double EvtGetGammaji( double z ); + +}; + +#endif + + diff --git a/TEvtGen/EvtGenModels/EvtISGWFF.cxx b/TEvtGen/EvtGenModels/EvtISGWFF.cxx new file mode 100644 index 00000000000..3f900a3df05 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtISGWFF.cxx @@ -0,0 +1,2300 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtISGWFF.cc +// +// Description: Routine to implement semileptonic form factors +// according to the model ISGW +// +// Modification history: +// +// DJL April 17, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtISGWFF.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include +#include +using std::endl; + +void EvtISGWFF::getscalarff(EvtId parent,EvtId daught, + double t, double mass, double *fpf, + double *f0f ) { + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("hi"); + static EvtId D21S0N=EvtPDL::getId("hi"); + static EvtId D21S00=EvtPDL::getId("hi"); + static EvtId D21S0B=EvtPDL::getId("hi"); + + static EvtId D23S1P=EvtPDL::getId("hi"); + static EvtId D23S1N=EvtPDL::getId("hi"); + static EvtId D23S10=EvtPDL::getId("hi"); + static EvtId D23S1B=EvtPDL::getId("hi"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1*+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1*-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + double fmf; + double mb=EvtPDL::getMeanMass(parent); + + if (daught==PI0||daught==PIP||daught==PIM||daught==ETA|| + daught==ETAPR||daught==D0||daught==D0B||daught==DP|| + daught==DM||daught==KP||daught==KM||daught==K0||daught==K0L|| + daught==KB||daught==DSP||daught==DSM||daught==K0S) { + + EvtISGW1FF1S0(parent,daught,t,mass,fpf,&fmf); + } + + if (daught==PI2S0||daught==PI2SP||daught==PI2SM||daught==ETA2S|| + daught==D21S0P||daught==D21S0B||daught==D21S0N||daught==D21S00){ + EvtISGW1FF21S0(parent,daught,t,mass,fpf,&fmf); + } + + if (daught==A00||daught==A0P||daught==A0M||daught==F0|| + daught==F0PR||daught==D3P0P||daught==D3P00||daught==D3P0B|| + daught==D3P0N||daught==K0STM||daught==K0STB||daught==K0STP|| + daught==D3P0SP||daught==D3P0SN|| + daught==K0ST0) { + EvtISGW1FF3P0(parent,daught,t,mass,fpf,&fmf); + } + + *f0f = (fmf/((mb*mb-mass*mass)/t))+(*fpf); + + return ; +} + + void EvtISGWFF::gettensorff(EvtId parent,EvtId daught, + double t, double mass, double *hf, + double *kf, double *bpf, double *bmf ){ + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("hi"); + static EvtId D21S0N=EvtPDL::getId("hi"); + static EvtId D21S00=EvtPDL::getId("hi"); + static EvtId D21S0B=EvtPDL::getId("hi"); + + static EvtId D23S1P=EvtPDL::getId("hi"); + static EvtId D23S1N=EvtPDL::getId("hi"); + static EvtId D23S10=EvtPDL::getId("hi"); + static EvtId D23S1B=EvtPDL::getId("hi"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1*+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1*-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + EvtISGW1FF3P2(parent,daught,t,mass,hf,kf,bpf,bmf); + + return; + + } + + + void EvtISGWFF::getvectorff(EvtId parent,EvtId daught, + double t, double mass, double *a1f, + double *a2f, double *vf, double *a0f ){ + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("hi"); + static EvtId D21S0N=EvtPDL::getId("hi"); + static EvtId D21S00=EvtPDL::getId("hi"); + static EvtId D21S0B=EvtPDL::getId("hi"); + + static EvtId D23S1P=EvtPDL::getId("hi"); + static EvtId D23S1N=EvtPDL::getId("hi"); + static EvtId D23S10=EvtPDL::getId("hi"); + static EvtId D23S1B=EvtPDL::getId("hi"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1*+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1*-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double ff,gf,apf,amf; + + if (daught==DST0||daught==DSTP||daught==DSTM||daught==DSTB|| + daught==OMEG||daught==RHO0||daught==RHOM||daught==RHOP|| + daught==KSTP||daught==KSTM||daught==KST0||daught==KSTB|| + daught==PHI||daught==DSSTP||daught==DSSTM) { + EvtISGW1FF3S1(parent,daught,t,mass,&ff,&gf,&apf,&amf); + } + if (daught==B10||daught==B1P||daught==B1M||daught==H1|| + daught==H1PR||daught==D1P1P||daught==D1P10||daught==D1P1B|| + daught==D1P1SP||daught==D1P1SN|| + daught==D1P1N||daught==K10||daught==K1B||daught==K1P|| + daught==K1M) { + EvtISGW1FF1P1(parent,daught,t,mass,&ff,&gf,&apf,&amf); + } + if (daught==RHO2S0||daught==RHO2SP||daught==RHO2SM||daught==OMEG2S|| + daught==D23S1P||daught==D23S1B||daught==D23S1N||daught==D23S10){ + EvtISGW1FF23S1(parent,daught,t,mass,&ff,&gf,&apf,&amf); + } + if (daught==A10||daught==A1P||daught==A1M||daught==F1|| + daught==F1PR||daught==D3P1P||daught==D3P10||daught==D3P1B|| + daught==D3P1N||daught==K1STM||daught==K1STB||daught==K1STP|| + daught==D3P1SP||daught==D3P1SN|| + daught==K1ST0) { + EvtISGW1FF3P1(parent,daught,t,mass,&ff,&gf,&apf,&amf); + } + + // Need to stuff in some factors to make these the ffs that + // is used elsewhere... + + double mb=EvtPDL::getMeanMass(parent); + + + *vf = (gf)*(mb+mass); + *a1f = (ff)/(mb+mass); + *a2f = -1.0*(apf)*(mb+mass); + double a3f = ((mb+mass)/(2.0*mass))*(*a1f) - + ((mb-mass)/(2.0*mass))*(*a2f); + + *a0f = a3f - ( (t*amf)/(2.0*mass)); + + + + return; + } + + + +void EvtISGWFF::EvtISGW1FF3P2 (EvtId parent,EvtId daugt, + double t, double mass, + double *hf, double *kf, double *bpf, double *bmf ) { + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("hi"); + static EvtId D21S0N=EvtPDL::getId("hi"); + static EvtId D21S00=EvtPDL::getId("hi"); + static EvtId D21S0B=EvtPDL::getId("hi"); + + static EvtId D23S1P=EvtPDL::getId("hi"); + static EvtId D23S1N=EvtPDL::getId("hi"); + static EvtId D23S10=EvtPDL::getId("hi"); + static EvtId D23S1B=EvtPDL::getId("hi"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1*+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1*-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double mtb; + double msd(0.0), mx(0.0), mb(0.0); + double msq(0.0), bx2(0.0),mtx,f5; + double mum,mup,tm,bb2(0.0),bbx2; + double msb(0.0), kap; + + if (parent==BM||parent==BP||parent==B0||parent==B0B) { + msb=5.2; + msd=0.33; + bb2=0.41*0.41; + if (daugt==A20||daugt==A2P||daugt==A2M||daugt==F2||daugt==F2PR) { + msq=0.33; + bx2=0.27*0.27; + } + else{ + if (daugt==D3P2P||daugt==D3P2N||daugt==D3P2B||daugt==D3P20) { + msq=1.82; + bx2=0.34*0.34; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P1.\n"; + } + } + } + else{ + report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P1.\n"; + } + + mtb = msb + msd; + mtx = msq + msd; + + mb = EvtPDL::getMeanMass( parent ); + mx = mass; + + mup=1.0/(1.0/msq+1.0/msb); + mum=1.0/(1.0/msq-1.0/msb); + bbx2=0.5*(bb2+bx2); + + tm=(mb-mx)*(mb-mx); + if (t>tm) t = 0.99*tm; + kap = 0.7*0.7; + + f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)* + exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); + + *hf = f5*(msd/(sqrt(8.0*bb2)*mtb))*((1.0/msq)-(msd*bb2/(2.0*mum* + mtx*bbx2))); + + *kf = f5*msd*sqrt(2.0/bb2); + + *bpf = (-1.0*f5*msd/(sqrt(8.0*bb2)*msb*mtx))*(1.0-(msd*msb*bx2/( + 2.0*mup*mtb*bbx2))+(msd*msb*bx2*(1.0-(msd*bx2/(2.0*mtb*bbx2)))/ + (4.0*mtb*mum*bbx2))); + *bmf = 0.0; + return; +} //get_ff_isgw_1p1 + +void EvtISGWFF::EvtISGW1FF1S0 ( EvtId parent, EvtId daugt, + double t, double mass, double *fpf, double *fmf ) { + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("hi"); + static EvtId D21S0N=EvtPDL::getId("hi"); + static EvtId D21S00=EvtPDL::getId("hi"); + static EvtId D21S0B=EvtPDL::getId("hi"); + + static EvtId D23S1P=EvtPDL::getId("hi"); + static EvtId D23S1N=EvtPDL::getId("hi"); + static EvtId D23S10=EvtPDL::getId("hi"); + static EvtId D23S1B=EvtPDL::getId("hi"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1*+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1*-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double mtb; + double msd(0.0), mx(0.0), mb(0.0); + double msq(0.0), bx2(0.0),mtx; + double f3,kap; + double msb(0.0),bb2(0.0),mup,mum,bbx2,tm; + + if (parent==BM||parent==BP||parent==B0||parent==B0B) { + msb=5.2; + msd=0.33; + bb2=0.41*0.41; + if (daugt==PIP||daugt==PIM||daugt==PI0||daugt==ETA||daugt==ETAPR) { + msq=0.33; + bx2=0.31*0.31; + } + else{ + if (daugt==D0||daugt==DP||daugt==DM||daugt==D0B) { + msq=1.82; + bx2=0.39*0.39; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_1S0.\n"; + } + } + } + else{ + report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_1S0.\n"; + report(ERROR,"EvtGen") << "Parent:"<tm ) t=0.99*tm; + + kap = 0.7*0.7; + f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0)* + exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); + + *fpf = f3*(1+(msb/(2.0*mum))-(msb*msq*msd*bb2/(4.0*mup*mum*mtx*bbx2))); + *fmf = f3*(1.0-(mtb+mtx)*(0.5/msq-(msd*bb2/(4.0*mup*mtx*bbx2)))); + + return; +} //get_ff_isgw_1s0 + + + +void EvtISGWFF::EvtISGW1FF3S1(EvtId parent,EvtId daugt,double t, + double mass, double *f,double *g,double *ap,double *am){ + + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("hi"); + static EvtId D21S0N=EvtPDL::getId("hi"); + static EvtId D21S00=EvtPDL::getId("hi"); + static EvtId D21S0B=EvtPDL::getId("hi"); + + static EvtId D23S1P=EvtPDL::getId("hi"); + static EvtId D23S1N=EvtPDL::getId("hi"); + static EvtId D23S10=EvtPDL::getId("hi"); + static EvtId D23S1B=EvtPDL::getId("hi"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1*+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1*-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double msd(0.0),mup,msq(0.0),bb2(0.0),mum,mtx,bbx2; + double bx2(0.0),msb(0.0),tm; + double mb,mx,f3, kap; + + if (parent==BM||parent==BP||parent==B0||parent==B0B) { + msb=5.2; + msd=0.33; + bb2=0.41*0.41; + if (daugt==DSTP||daugt==DSTM||daugt==DSTB||daugt==DST0) { + msq=1.82; + bx2=0.39*0.39; + } + else{ + if (daugt==RHOP||daugt==RHOM||daugt==RHO0||daugt==OMEG) { + msq=0.33; + bx2=0.31*0.31; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3S1.\n"; + } + } + } + else{ + report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3S1.\n"; + } + + double mtb; + + mtb=msb+msd; + mtx=msq+msd; + + mup=1.0/(1.0/msq+1.0/msb); + mum=1.0/(1.0/msq-1.0/msb); + bbx2=0.5*(bb2+bx2); + mb=EvtPDL::getMeanMass(parent); + mx=mass; + tm=(mb-mx)*(mb-mx); + if ( t > tm ) t = 0.99*tm; + + kap = 0.7*0.7; + f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0)* + exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); + + *f=2.0*mtb*f3; + *g=0.5*f3*((1/msq)-(msd*bb2/(2.0*mum*mtx*bbx2))); + *ap=(-1.0*f3/(2.0*mtx))*(1.0+(msd*(bb2-bx2)/(msb + *(bb2+bx2)))-(msd*msd*bx2*bx2/(4.0*mum*mtb*bbx2*bbx2))); + *am=0.0; + +} + +void EvtISGWFF::EvtISGW1FF23S1 (EvtId parent,EvtId daugt, + double t, double mass, double *fpf, double *gpf, + double *appf, double *apmf ) { + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("hi"); + static EvtId D21S0N=EvtPDL::getId("hi"); + static EvtId D21S00=EvtPDL::getId("hi"); + static EvtId D21S0B=EvtPDL::getId("hi"); + + static EvtId D23S1P=EvtPDL::getId("hi"); + static EvtId D23S1N=EvtPDL::getId("hi"); + static EvtId D23S10=EvtPDL::getId("hi"); + static EvtId D23S1B=EvtPDL::getId("hi"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1*+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1*-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double mtb; + double msd(0.0), mx(0.0), mb(0.0); + double msq(0.0), bx2(0.0),mtx; + double f3,f5,tt; + double mum,mup,bb2(0.0),bbx2,tm,msb(0.0); + + if (parent==BM||parent==BP||parent==B0||parent==B0B) { + msb=5.2; + msd=0.33; + bb2=0.41*0.41; + if (daugt==RHO2SP||daugt==RHO2SM||daugt==RHO2S0||daugt==OMEG2S) { + msq=0.33; + bx2=0.31*0.31; + } + else{ + if (daugt==D23S1N||daugt==D23S10||daugt==D23S1P||daugt==D23S1B) { + msq=1.82; + bx2=0.39*0.39; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_23P1.\n"; + } + } + } + else{ + report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_23P1.\n"; + } + + mtb = msb + msd; + mtx = msq + msd; + mb = EvtPDL::getMeanMass( parent ); + mx = mass; + mup=1.0/(1.0/msq+1.0/msb); + mum=1.0/(1.0/msq-1.0/msb); + bbx2=0.5*(bb2+bx2); + tm=(mb-mx)*(mb-mx); + if (t>tm) t = 0.99*tm; + + double kap = 0.7*0.7; + f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0)* + exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); + + f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)* + exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); + + *fpf = sqrt(6.0)*f3*mtb*( ((bb2-bx2)/(bb2+bx2)) + ((msd*msd*bx2* + (tm-t))/(6.0*mtx*mtb*bbx2*kap*bbx2))); + + *gpf = sqrt(3.0/8.0)*f3*( ((((bb2-bx2)/(bb2+bx2)) + ((msd*msd*bx2* + (tm-t))/(6.0*mtx*mtb*bbx2*kap*bbx2)))* + ((1.0/msq)-((msd*bb2)/(2.0*mum*mtx*bbx2)))) + + ((msd*bb2*bx2)/(3.0*mum*mtx*bbx2*bbx2))); + + tt = (msd*msd*bx2*(tm-t))/(mtx*mtb*bb2*kap*bbx2); + + *appf = (f5/(sqrt(6.0)*mtx))* ( ((3.0*mtb*bbx2/(2.0*msb*sqrt(bb2*bx2)))* + (1.0 - ( (msd*msd*msb*bx2*bx2)/(4.0*mtb*mtb*mum*bbx2*bbx2)))) - + ( (3.0*msd*sqrt(bx2/bb2))/(2.0*msb)) + + ( (5.0*msd*sqrt(bx2*bb2)*(1.0 + 0.1*tt))/(2.0*msb*bbx2)) - + ( (3.0*mtb*sqrt(bb2/bx2)*(1.0 + (tt/6.0)))/(2.0*msb)) + + ( (7.0*msd*msd*sqrt(bb2/bx2)*bx2*bx2*(1.0 + (tt/14.0))) / + (8.0*mtb*mum*bbx2*bbx2))); + + *apmf = 0.0; + return; +} //get_ff_isgw_23s1 + + +void EvtISGWFF::EvtISGW1FF3P1 (EvtId parent,EvtId daugt, + double t, double mass, + double *lf, double *qf, double *cpf, double *cmf ) { + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("hi"); + static EvtId D21S0N=EvtPDL::getId("hi"); + static EvtId D21S00=EvtPDL::getId("hi"); + static EvtId D21S0B=EvtPDL::getId("hi"); + + static EvtId D23S1P=EvtPDL::getId("hi"); + static EvtId D23S1N=EvtPDL::getId("hi"); + static EvtId D23S10=EvtPDL::getId("hi"); + static EvtId D23S1B=EvtPDL::getId("hi"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1*+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1*-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double mtb; + double msd(0.0), mx(0.0), mb(0.0); + double msq(0.0), bx2(0.0),mtx,f5; + double msb(0.0),bb2(0.0),mup,mum,bbx2,tm; + double kap; + + if (parent==BM||parent==BP||parent==B0||parent==B0B) { + msb=5.2; + msd=0.33; + bb2=0.41*0.41; + if (daugt==A10||daugt==A1P||daugt==A1M||daugt==F1||daugt==F1PR) { + msq=0.33; + bx2=0.27*0.27; + } + else{ + if (daugt==D3P1P||daugt==D3P1N||daugt==D3P1B||daugt==D3P10) { + msq=1.82; + bx2=0.34*0.34; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P1.\n"; + } + } + } + else{ + report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P1.\n"; + } + + mtb = msb + msd; + mtx = msq + msd; + + mb = EvtPDL::getMeanMass( parent ); + mx = mass; + + mup=1.0/(1.0/msq+1.0/msb); + mum=1.0/(1.0/msq-1.0/msb); + bbx2=0.5*(bb2+bx2); + tm=(mb-mx)*(mb-mx); + if (t>tm) t = 0.99*tm; + + kap = 0.7*0.7; + f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)* + exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); + + *qf = (f5*msd)/(2.0*mtx*sqrt(bb2)); + + *lf = -1.0*mtb*sqrt(bb2)*f5*(1/mum+(msd*(tm-t)/(2.0*mtb* + kap*bb2))*((1.0/msq)-(1.0*msd*bb2/(2.0*mum*mtx*bbx2)))); + + *cpf = (f5*msd*msb/(4.0*mtb*sqrt(bb2)*mum))*(1.0-(msd*msq*bb2/( + 2.0*mtx*mum*bbx2))); + *cmf = 0.0; + return; +} //get_ff_isgw_3p1 + + + +void EvtISGWFF::EvtISGW1FF3P0 (EvtId parent,EvtId daugt, + double t, double mass, double *upf, double *umf ) { + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("hi"); + static EvtId D21S0N=EvtPDL::getId("hi"); + static EvtId D21S00=EvtPDL::getId("hi"); + static EvtId D21S0B=EvtPDL::getId("hi"); + + static EvtId D23S1P=EvtPDL::getId("hi"); + static EvtId D23S1N=EvtPDL::getId("hi"); + static EvtId D23S10=EvtPDL::getId("hi"); + static EvtId D23S1B=EvtPDL::getId("hi"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1*+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1*-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double mtb; + double msd(0.0), mx(0.0), mb(0.0); + double msq(0.0), bx2(0.0),mtx; + double f5; + double mum,mup,bb2(0.0),bbx2,msb(0.0),tm; + + if (parent==BM||parent==BP||parent==B0||parent==B0B) { + msb=5.2; + msd=0.33; + bb2=0.41*0.41; + if (daugt==A00||daugt==A0P||daugt==A0M||daugt==F0||daugt==F0PR) { + msq=0.33; + bx2=0.27*0.27; + } + else{ + if (daugt==D3P0P||daugt==D3P0N||daugt==D3P0B||daugt==D3P00) { + msq=1.82; + bx2=0.34*0.34; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P0.\n"; + } + } + } + else{ + report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P0.\n"; + } + + mtb = msb + msd; + mtx = msq + msd; + + mb = EvtPDL::getMeanMass( parent ); + mx = mass; + + mup=1.0/(1.0/msq+1.0/msb); + mum=1.0/(1.0/msq-1.0/msb); + bbx2=0.5*(bb2+bx2); + tm=(mb-mx)*(mb-mx); + if (t>tm) t = 0.99*tm; + + double kap = 0.7*0.7; + f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)* + exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); + + *upf = f5*msd*msq*msb/(sqrt(6.0*bb2)*mtx*mum); + *umf = 0.0; + return; +} //get_ff_isgw_3p0 + + + +void EvtISGWFF::EvtISGW1FF1P1 (EvtId parent,EvtId daugt, + double t, double mass, + double *vf, double *rf, double *spf, double *smf ) { + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("hi"); + static EvtId D21S0N=EvtPDL::getId("hi"); + static EvtId D21S00=EvtPDL::getId("hi"); + static EvtId D21S0B=EvtPDL::getId("hi"); + + static EvtId D23S1P=EvtPDL::getId("hi"); + static EvtId D23S1N=EvtPDL::getId("hi"); + static EvtId D23S10=EvtPDL::getId("hi"); + static EvtId D23S1B=EvtPDL::getId("hi"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1*+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1*-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double mtb; + double msd(0.0), mx(0.0), mb(0.0); + double msq(0.0), bx2(0.0),mtx,f5; + double mup,mum,kap; + double msb(0.0),bb2(0.0),bbx2,tm; + + if (parent==BM||parent==BP||parent==B0||parent==B0B) { + + msb=5.2; + msd=0.33; + bb2=0.41*0.41; + if (daugt==H1||daugt==H1PR||daugt==B10||daugt==B1P||daugt==B1M) { + msq=0.33; + bx2=0.27*0.27; + } + else{ + if (daugt==D1P1P||daugt==D1P1N||daugt==D1P10||daugt==D1P1B) { + msq=1.82; + bx2=0.34*0.34; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw_ff_3P1.\n"; + } + } + } + else{ + report(ERROR,"EvtGen") << "Not implemented parent in get_isgw_ff_3P1.\n"; + } + + mtb = msb + msd; + mtx = msq + msd; + + mb = EvtPDL::getMeanMass( parent ); + mx = mass; + + mup=1.0/(1.0/msq+1.0/msb); + mum=1.0/(1.0/msq-1.0/msb); + bbx2=0.5*(bb2+bx2); + tm=(mb-mx)*(mb-mx); + if (t>tm) t = 0.99*tm; + + kap = 0.7*0.7; + f5 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,5.0/2.0)* + exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); + + *vf = f5*(((mtb*sqrt(bb2))/(4.0*sqrt(2.0)*msb*msq*mtx))); + *rf = f5*mtb*sqrt(bb2/2)*((1.0/mup)); + + *spf = (f5*msd/(sqrt(2.0*bb2)*mtb))*(1.0+(msb/(2.0*mum))- + (msb*msq*msd*bb2/(4.0*mup*mum*mtx*bbx2))); + *smf = 0.0; + + return; +//get_ff_isgw_1p1 + +} + +void EvtISGWFF::EvtISGW1FF21S0 (EvtId parent,EvtId daugt, + double t, double mass, double *fppf, double *fpmf ) { + //added by Lange Jan4,2000 + static EvtId EM=EvtPDL::getId("e-"); + static EvtId EP=EvtPDL::getId("e+"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId MUP=EvtPDL::getId("mu+"); + static EvtId TAUM=EvtPDL::getId("tau-"); + static EvtId TAUP=EvtPDL::getId("tau+"); + + static EvtId BP=EvtPDL::getId("B+"); + static EvtId BM=EvtPDL::getId("B-"); + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + static EvtId DST0=EvtPDL::getId("D*0"); + static EvtId DSTB=EvtPDL::getId("anti-D*0"); + static EvtId DSTP=EvtPDL::getId("D*+"); + static EvtId DSTM=EvtPDL::getId("D*-"); + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + + static EvtId D1P1P=EvtPDL::getId("D_1+"); + static EvtId D1P1N=EvtPDL::getId("D_1-"); + static EvtId D1P10=EvtPDL::getId("D_10"); + static EvtId D1P1B=EvtPDL::getId("anti-D_10"); + + static EvtId D3P2P=EvtPDL::getId("D_2*+"); + static EvtId D3P2N=EvtPDL::getId("D_2*-"); + static EvtId D3P20=EvtPDL::getId("D_2*0"); + static EvtId D3P2B=EvtPDL::getId("anti-D_2*0"); + + static EvtId D3P1P=EvtPDL::getId("D'_1+"); + static EvtId D3P1N=EvtPDL::getId("D'_1-"); + static EvtId D3P10=EvtPDL::getId("D'_10"); + static EvtId D3P1B=EvtPDL::getId("anti-D'_10"); + + static EvtId D3P0P=EvtPDL::getId("D_0*+"); + static EvtId D3P0N=EvtPDL::getId("D_0*-"); + static EvtId D3P00=EvtPDL::getId("D_0*0"); + static EvtId D3P0B=EvtPDL::getId("anti-D_0*0"); + + static EvtId D21S0P=EvtPDL::getId("hi"); + static EvtId D21S0N=EvtPDL::getId("hi"); + static EvtId D21S00=EvtPDL::getId("hi"); + static EvtId D21S0B=EvtPDL::getId("hi"); + + static EvtId D23S1P=EvtPDL::getId("hi"); + static EvtId D23S1N=EvtPDL::getId("hi"); + static EvtId D23S10=EvtPDL::getId("hi"); + static EvtId D23S1B=EvtPDL::getId("hi"); + + static EvtId RHO2S0=EvtPDL::getId("rho(2S)0"); + static EvtId RHO2SP=EvtPDL::getId("rho(2S)+"); + static EvtId RHO2SM=EvtPDL::getId("rho(2S)-"); + static EvtId OMEG2S=EvtPDL::getId("omega(2S)"); + static EvtId ETA2S=EvtPDL::getId("eta(2S)"); + + static EvtId PI2S0=EvtPDL::getId("pi(2S)0"); + static EvtId PI2SP=EvtPDL::getId("pi(2S)+"); + static EvtId PI2SM=EvtPDL::getId("pi(2S)-"); + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + static EvtId RHOP=EvtPDL::getId("rho+"); + static EvtId RHOM=EvtPDL::getId("rho-"); + static EvtId RHO0=EvtPDL::getId("rho0"); + + static EvtId A2P=EvtPDL::getId("a_2+"); + static EvtId A2M=EvtPDL::getId("a_2-"); + static EvtId A20=EvtPDL::getId("a_20"); + + static EvtId A1P=EvtPDL::getId("a_1+"); + static EvtId A1M=EvtPDL::getId("a_1-"); + static EvtId A10=EvtPDL::getId("a_10"); + + static EvtId A0P=EvtPDL::getId("a_0+"); + static EvtId A0M=EvtPDL::getId("a_0-"); + static EvtId A00=EvtPDL::getId("a_00"); + + static EvtId B1P=EvtPDL::getId("b_1+"); + static EvtId B1M=EvtPDL::getId("b_1-"); + static EvtId B10=EvtPDL::getId("b_10"); + + static EvtId H1=EvtPDL::getId("h_1"); + static EvtId H1PR=EvtPDL::getId("h'_1"); + + static EvtId F1=EvtPDL::getId("f_1"); + static EvtId F1PR=EvtPDL::getId("f'_1"); + static EvtId F0=EvtPDL::getId("f_0"); + static EvtId F0PR=EvtPDL::getId("f'_0"); + static EvtId F2=EvtPDL::getId("f_2"); + static EvtId F2PR=EvtPDL::getId("f'_2"); + + static EvtId ETA=EvtPDL::getId("eta"); + static EvtId ETAPR=EvtPDL::getId("eta'"); + static EvtId OMEG=EvtPDL::getId("omega"); + + static EvtId KP=EvtPDL::getId("K+"); + static EvtId KM=EvtPDL::getId("K-"); + static EvtId K0=EvtPDL::getId("K0"); + static EvtId KB=EvtPDL::getId("anti-K0"); + static EvtId K0S=EvtPDL::getId("K_S0"); + static EvtId K0L=EvtPDL::getId("K_L0"); + + static EvtId KSTP=EvtPDL::getId("K*+"); + static EvtId KSTM=EvtPDL::getId("K*-"); + static EvtId KST0=EvtPDL::getId("K*0"); + static EvtId KSTB=EvtPDL::getId("anti-K*0"); + + static EvtId K1P=EvtPDL::getId("K_1+"); + static EvtId K1M=EvtPDL::getId("K_1-"); + static EvtId K10=EvtPDL::getId("K_10"); + static EvtId K1B=EvtPDL::getId("anti-K_10"); + + static EvtId K1STP=EvtPDL::getId("K'_1+"); + static EvtId K1STM=EvtPDL::getId("K'_1-"); + static EvtId K1ST0=EvtPDL::getId("K'_10"); + static EvtId K1STB=EvtPDL::getId("anti-K'_10"); + + static EvtId K2STP=EvtPDL::getId("K_2*+"); + static EvtId K2STM=EvtPDL::getId("K_2*-"); + static EvtId K2ST0=EvtPDL::getId("K_2*0"); + static EvtId K2STB=EvtPDL::getId("anti-K_2*0"); + + static EvtId K0STP=EvtPDL::getId("K_0*+"); + static EvtId K0STM=EvtPDL::getId("K_0*-"); + static EvtId K0ST0=EvtPDL::getId("K_0*0"); + static EvtId K0STB=EvtPDL::getId("anti-K_0*0"); + + static EvtId PHI=EvtPDL::getId("phi"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSM=EvtPDL::getId("D_s-"); + + static EvtId D1P1SP=EvtPDL::getId("D_s1+"); + static EvtId D1P1SN=EvtPDL::getId("D_s1-"); + + static EvtId D3P0SP=EvtPDL::getId("D_s0*+"); + static EvtId D3P0SN=EvtPDL::getId("D_s0*-"); + + static EvtId D3P1SP=EvtPDL::getId("D'_s1*+"); + static EvtId D3P1SN=EvtPDL::getId("D'_s1*-"); + + static EvtId D3P2SP=EvtPDL::getId("D_s2*+"); + static EvtId D3P2SN=EvtPDL::getId("D_s2*-"); + + static EvtId DSSTP=EvtPDL::getId("D_s*+"); + static EvtId DSSTM=EvtPDL::getId("D_s*-"); + + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + static EvtId BS0=EvtPDL::getId("B_s0"); + + double mtb; + double msd(0.0), mx(0.0), mb(0.0); + double msq(0.0), bx2(0.0),mtx; + double f3; + double msb(0.0); + double mum,mup,tm,bb2(0.0),bbx2; + + if (parent==BM||parent==BP||parent==B0||parent==B0B) { + msb=5.2; + msd=0.33; + bb2=0.41*0.41; + if (daugt==PI2S0||daugt==PI2SP||daugt==PI2SM||daugt==ETA2S){ + msq=0.33; + bx2=0.31*0.31; + } + else{ + if (daugt==D21S00||daugt==D21S0P||daugt==D21S0N||daugt==D21S0B) { + msq=1.82; + bx2=0.39*0.39; + } + else{ + report(ERROR,"EvtGen") << "Not implemented daugt in get_isgw1_ff_21S0.\n"; + } + } + } + else{ + report(ERROR,"EvtGen") << "Not implemented parent in get_isgw1_ff_21S0.\n"; + } + + mtb = msb + msd; + mtx = msq + msd; + + mb = EvtPDL::getMeanMass( parent ); + mx = mass; + + mup=1.0/(1.0/msq+1.0/msb); + mum=1.0/(1.0/msq-1.0/msb); + bbx2=0.5*(bb2+bx2); + tm=(mb-mx)*(mb-mx); + if (t>tm) t = 0.99*tm; + + double kap = 0.7*0.7; + f3 = sqrt(mtx/mtb)*pow(sqrt(bx2*bb2)/bbx2,3.0/2.0)* + exp(-1.0*((msd*msd*(tm-t)/(4.0*mtb*mtx*kap*bbx2)))); + + *fppf = f3*sqrt(3.0/8.0)*(msb/mup)*( ((bb2-bx2)/(bb2+bx2)) + + (((msq*msd*bb2)/(3.0*mum*mtx*bbx2))*((7.0*bx2-3.0*bb2)/ + (4.0*bbx2))) + + (((msd*msd*bx2*(tm-t))/(6.0*mtx*mtb*bbx2*kap*bbx2))* + (1.0 - ((msq*msd*bb2)/(2.0*mum*mtx*bbx2))))); + + *fpmf = 0.0; + return; +} //get_ff_isgw_21s0 + + +void EvtISGWFF::getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*){ + + report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtISGWFF.\n"; + ::abort(); + +} + diff --git a/TEvtGen/EvtGenModels/EvtISGWFF.hh b/TEvtGen/EvtGenModels/EvtISGWFF.hh new file mode 100644 index 00000000000..b272758b8ce --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtISGWFF.hh @@ -0,0 +1,75 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtISGWFF.hh +// +// Description:Form factor routines specific to EvtISGW +// +// Modification history: +// +// DJL/RYD September 25, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTISGWFF_HH +#define EVTISGWFF_HH + +#include "EvtGenBase/EvtSemiLeptonicFF.hh" + +class EvtId; + + +class EvtISGWFF : public EvtSemiLeptonicFF { + + void getscalarff( EvtId parent, EvtId daught, + double t, double mass, double *fpf, + double *f0f ); + void getvectorff( EvtId parent, EvtId daught, + double t, double mass, double *a1f, + double *a2f, double *vf, double *a0f ); + void gettensorff( EvtId parent, EvtId daught, + double t, double mass, double *hf, + double *kf, double *bpf, double *bmf ); + + void getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*); + + + // getscalarff, getvectorff, and gettensorff call the + // correct isgw form factor routine which computes + // form factors according to the ISGW paper. + + + void EvtISGW1FF3S1( EvtId parent, EvtId daught, + double t, double mass, double *ff, double *gf, + double *apf, double *amf); + void EvtISGW1FF23S1( EvtId parent, EvtId daught, + double t, double mass,double *fpf, double *gpf, + double *app, double *apm); + void EvtISGW1FF3P1( EvtId parent, EvtId daught, + double t, double mass,double *lf, double *qf, + double *cpf, double *cmf); + void EvtISGW1FF3P0( EvtId parent, EvtId daught, + double t, double mass, double *upf, double *umf); + void EvtISGW1FF1S0( EvtId parent, EvtId daught, + double t, double mass,double *fpf, double *fmf); + void EvtISGW1FF21S0( EvtId parent, EvtId daught, + double t, double mass, double *fppf, double *fpmf); + void EvtISGW1FF3P2( EvtId parent, EvtId daught, + double t, double mass, double *h, double *k, + double *bp, double *bm); + void EvtISGW1FF1P1( EvtId parent, EvtId daught, + double t, double mass, double *vf, double *rf, + double *spf, double *smf); + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtIntervalDecayAmp.hh b/TEvtGen/EvtGenModels/EvtIntervalDecayAmp.hh new file mode 100644 index 00000000000..6a919f4f5ca --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtIntervalDecayAmp.hh @@ -0,0 +1,201 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtIntervalDecayAmp.hh,v 1.12 2009/02/15 18:21:51 ryd Exp $ +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module creator: +// Alexei Dvoretskii, Caltech, 2001-2002. +//----------------------------------------------------------------------- + +// Decay model that uses the "amplitude on an interval" +// templatization + +#ifndef EVT_INTERVAL_DECAY_AMP +#define EVT_INTERVAL_DECAY_AMP + +#define VERBOSE true +#include +#include +#include +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtMacros.hh" +#include "EvtGenBase/EvtPdf.hh" +#include "EvtGenBase/EvtAmpFactory.hh" +#include "EvtGenBase/EvtMultiChannelParser.hh" +#include "EvtGenBase/EvtAmpPdf.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtCyclic3.hh" +#include "EvtGenBase/EvtReport.hh" + +template +class EvtIntervalDecayAmp : public EvtDecayAmp { + +public: + + EvtIntervalDecayAmp() + : _probMax(0.), _nScan(0), _fact(0) + {} + + EvtIntervalDecayAmp(const EvtIntervalDecayAmp& other) + : _probMax(other._probMax), _nScan(other._nScan), + COPY_PTR(_fact) + {} + + virtual ~EvtIntervalDecayAmp() + { + delete _fact; + } + + + // Initialize model + + virtual void init() + { + // Collect model parameters and parse them + + vector args; + int i; + for(i=0;i 0) setProbMax(_probMax); + else assert(0); + } + else { + + double factor = 1.2; // increase maximum probability by 20% + EvtAmpPdf pdf(*_fact->getAmp()); + EvtPdfSum* pc = _fact->getPC(); + EvtPdfDiv pdfdiv(pdf,*pc); + printf("Sampling %d points to find maximum\n",_nScan); + EvtPdfMax x = pdfdiv.findMax(*pc,_nScan); + _probMax = factor * x.value(); + printf("Found maximum %f\n",x.value()); + printf("Increase to %f\n",_probMax); + setProbMax(_probMax); + } + } + + virtual void decay(EvtParticle *p) + { + // Set things up in most general way + + //static EvtId B0=EvtPDL::getId("B0"); + //static EvtId B0B=EvtPDL::getId("anti-B0"); + EvtId B0=EvtPDL::getId("B0"); + EvtId B0B=EvtPDL::getId("anti-B0"); + double t; + EvtId other_b; + EvtComplex ampl(0.,0.); + + // Sample using pole-compensator pdf + + EvtPdfSum* pc = getPC(); + _x = pc->randomPoint(); + + if(_fact->isCPModel()) { + + // Time-dependent Dalitz plot changes + // Dec 2005 (ddujmic@slac.stanford.edu) + + EvtComplex A = _fact->getAmp()->evaluate(_x); + EvtComplex Abar = _fact->getAmpConj()->evaluate(_x); + + EvtCPUtil::OtherB(p,t,other_b); + + double dm = _fact->dm(); + double mixAmpli = _fact->mixAmpli(); + double mixPhase = _fact->mixPhase(); + EvtComplex qoverp( cos(mixPhase)*mixAmpli, sin(mixPhase)*mixAmpli); + EvtComplex poverq( cos(mixPhase)/mixAmpli, -sin(mixPhase)/mixAmpli); + + + if (other_b==B0B) ampl = A*cos(dm*t/(2*EvtConst::c)) + + EvtComplex(0.,1.)*Abar*sin(dm*t/(2*EvtConst::c))*qoverp; + if (other_b==B0) ampl = Abar*cos(dm*t/(2*EvtConst::c)) + + EvtComplex(0.,1.)*A*sin(dm*t/(2*EvtConst::c))*poverq; + + + } + else { + + ampl = amplNonCP(_x); + } + + // Pole-compensate + + double comp = sqrt(pc->evaluate(_x)); + assert(comp > 0); + vertex(ampl/comp); + + // Now generate random angles, rotate and setup + // the daughters + + std::vector v = initDaughters(_x); + + size_t N = p->getNDaug(); + if(v.size() != N) { + + report(INFO,"EvtGen") << "Number of daughters " << N << std::endl; + report(INFO,"EvtGen") << "Momentum vector size " << v.size() << std::endl; + assert(0); + } + + for(size_t i=0;igetDaug(i)->init(getDaugs()[i],v[i]); + } + } + + virtual EvtAmpFactory* createFactory(const EvtMultiChannelParser& parser) = 0; + virtual std::vector initDaughters(const T& p) const = 0; + + // provide access to the decay point and to the amplitude of any decay point. + // this is used by EvtBtoKD3P: + const T & x() const {return _x;} + EvtComplex amplNonCP(const T & x) {return _fact->getAmp()->evaluate(x);} + EvtPdfSum* getPC() {return _fact->getPC();} + +protected: + double _probMax; // Maximum probability + int _nScan; // Number of points for max prob DP scan + T _x; // Decay point + + EvtAmpFactory* _fact; // factory +}; + + +#endif + + + + diff --git a/TEvtGen/EvtGenModels/EvtItgAbsFunction.cxx b/TEvtGen/EvtGenModels/EvtItgAbsFunction.cxx new file mode 100644 index 00000000000..f78925f0341 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtItgAbsFunction.cxx @@ -0,0 +1,56 @@ +//-------------------------------------------------------------------------- +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtItgAbsFunction.hh +// +// Description: +// Abstraction of a generic function for use in integration methods elsewhere +// in this package. (Stolen and modified from the BaBar IntegrationUtils package +// - author: Phil Strother). +// +// Modification history: +// +// Jane Tinslay March 21, 2001 Module adapted for use in +// EvtGen +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenModels/EvtItgAbsFunction.hh" + +//------------- +// C Headers -- +//------------- +extern "C" { +} +#include "assert.h" +#include "EvtGenBase/EvtReport.hh" +using std::endl; + +EvtItgAbsFunction::EvtItgAbsFunction(double lowerRange, double upperRange): + _upperRange(upperRange), + _lowerRange(lowerRange){} + +EvtItgAbsFunction::~EvtItgAbsFunction( ) +{} + + +double +EvtItgAbsFunction::value( double x) const{ + if (x >= _lowerRange && x <= _upperRange) return myFunction(x); + report(ERROR,"EvtGen") << "Error in EvtItgAbsFunction::value. Given co-ordinate " << x + << " is outside of allowed range [" << _lowerRange << ", " + << _upperRange << "]. Returning 0.0" << endl; + return 0.0; // Never get here +} + +double +EvtItgAbsFunction::operator()(double x) const{ + return myFunction(x); +} diff --git a/TEvtGen/EvtGenModels/EvtItgAbsFunction.hh b/TEvtGen/EvtGenModels/EvtItgAbsFunction.hh new file mode 100644 index 00000000000..b6e7a5fe8f4 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtItgAbsFunction.hh @@ -0,0 +1,72 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtItgAbsFunction.hh +// +// Description: +// Abstraction of a generic function for use in integration methods elsewhere +// in this package. (Stolen and modified from the BaBar IntegrationUtils package +// - author: Phil Strother). +// +// Modification history: +// +// Jane Tinslay March 21, 2001 Module adapted for use in +// EvtGen +// +//------------------------------------------------------------------------ + +#ifndef EVTITGABSFUNCTION_HH +#define EVTITGABSFUNCTION_HH + +//------------- +// C Headers -- +//------------- +extern "C" { +} + +class EvtItgAbsFunction { + +public: + + // Constructors + + EvtItgAbsFunction(double lowerRange, double upperRange); + + // Destructor + virtual ~EvtItgAbsFunction( ); + + virtual double value( double x) const; + + virtual double operator()(double x) const; + + // Selectors (const) + + inline double upperRange() const {return _upperRange;} + inline double lowerRange() const {return _lowerRange;} + inline void getRange(double &lower,double &upper) const { lower = _lowerRange; upper = _upperRange; } + virtual void setCoeff(int, int, double)=0; + virtual double getCoeff(int, int)=0; + +protected: + + virtual double myFunction(double x) const=0; + void setRange(double x1,double x2) { _lowerRange=x1; _upperRange=x2; }; + +private: + + double _upperRange; + double _lowerRange; + + EvtItgAbsFunction( const EvtItgAbsFunction& ); // Copy Constructor + EvtItgAbsFunction& operator= ( const EvtItgAbsFunction& ); // Assignment op + +}; + +#endif // EVTITGABSFUNCTION_HH diff --git a/TEvtGen/EvtGenModels/EvtItgAbsIntegrator.cxx b/TEvtGen/EvtGenModels/EvtItgAbsIntegrator.cxx new file mode 100644 index 00000000000..cf41adb242e --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtItgAbsIntegrator.cxx @@ -0,0 +1,105 @@ +//-------------------------------------------------------------------------- +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtItgIntegrator.cc +// +// Description: +// Simpson integrator (Stolen and modified from +// the BaBar IntegrationUtils package - author: Phil Strother). +// +// Modification history: +// +// Jane Tinslay March 21, 2001 Module adapted for use in +// EvtGen +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenModels/EvtItgAbsIntegrator.hh" + +//------------- +// C Headers -- +//------------- +extern "C" { +} + +#include +#include + +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtItgAbsFunction.hh" +using std::endl; + + +EvtItgAbsIntegrator::EvtItgAbsIntegrator(const EvtItgAbsFunction &theFunction): + _myFunction(theFunction) +{} + +EvtItgAbsIntegrator::~EvtItgAbsIntegrator() +{} + +double +EvtItgAbsIntegrator::normalisation() const { + return evaluateIt(_myFunction.lowerRange(), _myFunction.upperRange()); +} + +double +EvtItgAbsIntegrator::evaluate(double lower, double upper) const{ + + double newLower(lower), newUpper(upper); + + boundsCheck(newLower, newUpper); + + return evaluateIt(newLower, newUpper); +} + +double +EvtItgAbsIntegrator::trapezoid(double lower, double higher, int n, double &result) const { + + if (n==1) return 0.5*(higher-lower)*(_myFunction(lower) + _myFunction(higher)); + + int it, j; + + for (it=1, j=1;j _myFunction.upperRange() ) { + report(WARNING,"EvtGen") << "Warning in EvtItgAbsIntegrator::evaluate. Upper bound " << upper << " of integral " + << " is greater than upper bound " << _myFunction.upperRange() + << " of function. No contribution from this range will be counted." << endl; + upper = _myFunction.upperRange(); + } + +} diff --git a/TEvtGen/EvtGenModels/EvtItgAbsIntegrator.hh b/TEvtGen/EvtGenModels/EvtItgAbsIntegrator.hh new file mode 100644 index 00000000000..9c45d00d17a --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtItgAbsIntegrator.hh @@ -0,0 +1,65 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtItgAbsIntegrator.hh +// +// Description: +// Abstraction of a generic integrator (Stolen and modified from +// the BaBar IntegrationUtils package - author: Phil Strother). +// +// Modification history: +// +// Jane Tinslay March 21, 2001 Module adapted for use in +// EvtGen +// +//------------------------------------------------------------------------ + +#ifndef EVTITGABSINTEGRATOR_HH +#define EVTITGABSINTEGRATOR_HH + + +#include "EvtGenModels/EvtItgAbsFunction.hh" + +class EvtItgAbsIntegrator { + +public: + + EvtItgAbsIntegrator(const EvtItgAbsFunction &); + + virtual ~EvtItgAbsIntegrator( ); + + double evaluate(double lower, double upper) const; + + double normalisation() const; + +protected: + + double trapezoid(double lower, double higher, int n, + double &result) const; + + virtual double evaluateIt(double lower, double higher) const=0; + + double myFunction(double x) const {return _myFunction(x);} + +private: + + const EvtItgAbsFunction &_myFunction; + + void boundsCheck(double &, double &) const; + + // Note: if your class needs a copy constructor or an assignment operator, + // make one of the following public and implement it. + EvtItgAbsIntegrator(); + EvtItgAbsIntegrator( const EvtItgAbsIntegrator& ); // Copy Constructor + EvtItgAbsIntegrator& operator= ( const EvtItgAbsIntegrator& ); // Assignment op + +}; + +#endif // EVTITGABSINTEGRATOR_HH diff --git a/TEvtGen/EvtGenModels/EvtItgFourCoeffFcn.cxx b/TEvtGen/EvtGenModels/EvtItgFourCoeffFcn.cxx new file mode 100644 index 00000000000..e6cef166d59 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtItgFourCoeffFcn.cxx @@ -0,0 +1,64 @@ +//-------------------------------------------------------------------------- +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtItgFourCoeffFcn.cc +// +// Description: +// Class describing a function with four vectors of coefficients. +// +// Modification history: +// +// Jane Tinslay March 21, 2001 Module created +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenModels/EvtItgFourCoeffFcn.hh" + +//------------- +// C Headers -- +//------------- +extern "C" { +} + +EvtItgFourCoeffFcn::EvtItgFourCoeffFcn( double (*theFunction)(double, const std::vector &, const std::vector &, const std::vector &, const std::vector &), double lowerRange, double upperRange, const std::vector &coeffs1, const std::vector &coeffs2, const std::vector &coeffs3, const std::vector &coeffs4): + EvtItgAbsFunction(lowerRange, upperRange), + _myFunction(theFunction), + _coeffs1(coeffs1), + _coeffs2(coeffs2), + _coeffs3(coeffs3), + _coeffs4(coeffs4) +{} + +EvtItgFourCoeffFcn::~EvtItgFourCoeffFcn( ) +{} + + +double +EvtItgFourCoeffFcn::myFunction(double x) const{ + return _myFunction(x, _coeffs1, _coeffs2, _coeffs3, _coeffs4); +} + +void +EvtItgFourCoeffFcn::setCoeff(int vect, int which, double value) +{ + if (vect == 1) _coeffs1[which] = value; + else if (vect == 2) _coeffs2[which] = value; + else if (vect == 3) _coeffs3[which] = value; + else if (vect == 4) _coeffs4[which] = value; +} + +double +EvtItgFourCoeffFcn::getCoeff(int vect, int which) +{ + if (vect == 1) return _coeffs1[which]; + else if (vect == 2) return _coeffs2[which]; + else if (vect == 3) return _coeffs3[which]; + else if (vect == 4) return _coeffs4[which]; + else {return 0;} +} diff --git a/TEvtGen/EvtGenModels/EvtItgFourCoeffFcn.hh b/TEvtGen/EvtGenModels/EvtItgFourCoeffFcn.hh new file mode 100644 index 00000000000..1b9e084648c --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtItgFourCoeffFcn.hh @@ -0,0 +1,60 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtItgFourCoeffFcn.hh +// +// Description: +// Class describing a function with Four vectors of coefficients. +// +// Modification history: +// +// Jane Tinslay March 21, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTITFOURCOEFFFCN_HH +#define EVTITFOURCOEFFFCN_HH + +#include +#include "EvtGenModels/EvtItgAbsFunction.hh" + +class EvtItgFourCoeffFcn: public EvtItgAbsFunction { + +public: + + EvtItgFourCoeffFcn( double (*theFunction)(double, const std::vector &, const std::vector &, const std::vector &, const std::vector &), + double lowerRange, double upperRange, const std::vector &coeffs1, const std::vector &coeffs2, const std::vector &coeffs3, const std::vector &coeffs4); + + virtual ~EvtItgFourCoeffFcn( ); + + virtual void setCoeff(int, int, double); + virtual double getCoeff(int, int); + +protected: + + virtual double myFunction(double x) const; + +private: + + // Data members + double (*_myFunction)(double x, const std::vector & coeffs1, const std::vector & coeffs2, const std::vector & coeffs3, const std::vector & coeffs4); + + // Note: if your class needs a copy constructor or an assignment operator, + // make one of the following public and implement it. + EvtItgFourCoeffFcn( const EvtItgFourCoeffFcn& ); //// Copy Constructor + EvtItgFourCoeffFcn& operator= ( const EvtItgFourCoeffFcn& ); // Assignment op + std::vector _coeffs1; + std::vector _coeffs2; + std::vector _coeffs3; + std::vector _coeffs4; + +}; + +#endif // EvtITGPTRFUNCTION_HH diff --git a/TEvtGen/EvtGenModels/EvtItgFunction.cxx b/TEvtGen/EvtGenModels/EvtItgFunction.cxx new file mode 100644 index 00000000000..8a43441fb06 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtItgFunction.cxx @@ -0,0 +1,54 @@ +//-------------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtItgFunction.cc,v 1.3 2004/12/21 22:16:02 ryd Exp $ +// +// Description: +// Class EvtItgFunction +// Implementation for the EvtItgFunction class. Defines the bounds +// checked value() function and the non-bounds checked operator() +// +// Environment: +// Software developed for the BaBar Detector at the SLAC B-Factory. +// +// Author List: +// Phil Strother Originator +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 LBNL +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +//----------------------- +// This Class's Header -- +//----------------------- +#include "EvtGenModels/EvtItgFunction.hh" + +//------------- +// C Headers -- +//------------- +extern "C" { +} + +//---------------- +// Constructors -- +//---------------- +EvtItgFunction::EvtItgFunction( double (*theFunction)(double), double lowerRange, double upperRange): + EvtItgAbsFunction(lowerRange, upperRange), + _myFunction(theFunction) +{} + + +//-------------- +// Destructor -- +//-------------- + +EvtItgFunction::~EvtItgFunction( ) +{} + + +double +EvtItgFunction::myFunction(double x) const{ + return _myFunction(x); +} + diff --git a/TEvtGen/EvtGenModels/EvtItgFunction.hh b/TEvtGen/EvtGenModels/EvtItgFunction.hh new file mode 100644 index 00000000000..845fc559ed0 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtItgFunction.hh @@ -0,0 +1,65 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software was developed for the BaBar collaboration. If you +// use all or part of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 LBNL +// +//------------------------------------------------------------------------ + +#ifndef EVTITGFUNCTION_HH +#define EVTITGFUNCTION_HH + +#include "EvtGenModels/EvtItgAbsFunction.hh" + +/** + * Copyright (C) 1998 LBNL + * + * Generic function where the pointer to the function is available. + * + * The function is taken as type pointer to function returning double and + * taking a double (the abscissa) and a const RWTValVector reference + * (the parameter values of the function) as arguments. + * + * @see EvtItgFunctionEvtItgFunction + * + * @version $Id: EvtItgFunction.hh,v 1.1 2002/04/19 20:07:47 lange Exp $ + * + * @author Phil Strother Originator + */ + +class EvtItgFunction: public EvtItgAbsFunction { + +public: + + // Constructors + EvtItgFunction( double (*theFunction)(double), + double lowerRange, double upperRange); + + + // Destructor + virtual ~EvtItgFunction( ); + + virtual void setCoeff(int, int, double) {}; + virtual double getCoeff(int, int) {return 0.0;}; + +protected: + + // Helper functions + + virtual double myFunction(double x) const; + +private: + + // Data members + double (*_myFunction)(double x); + + // Note: if your class needs a copy constructor or an assignment operator, + // make one of the following public and implement it. + EvtItgFunction( const EvtItgFunction& ); // Copy Constructor + EvtItgFunction& operator= ( const EvtItgFunction& ); // Assignment op +}; + +#endif // EvtITGFUNCTION_HH diff --git a/TEvtGen/EvtGenModels/EvtItgPtrFunction.cxx b/TEvtGen/EvtGenModels/EvtItgPtrFunction.cxx new file mode 100644 index 00000000000..2b4609b4fff --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtItgPtrFunction.cxx @@ -0,0 +1,66 @@ +//-------------------------------------------------------------------------- +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtItgPtrFunction.hh +// +// Description: +// Class describing a function with one vector of coefficients. (Stolen and +// modified from the BaBar IntegrationUtils package - author: Phil Strother). +// +// Modification history: +// +// Jane Tinslay March 21, 2001 Module adapted for use in +// EvtGen +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenModels/EvtItgPtrFunction.hh" + +//------------- +// C Headers -- +//------------- +extern "C" { +} + +//---------------- +// Constructors -- +//---------------- +EvtItgPtrFunction::EvtItgPtrFunction( double (*theFunction)(double, const std::vector &), double lowerRange, double upperRange, const std::vector &coeffs1): + EvtItgAbsFunction(lowerRange, upperRange), + _myFunction(theFunction), + _coeffs1(coeffs1) +{} + + +//-------------- +// Destructor -- +//-------------- + +EvtItgPtrFunction::~EvtItgPtrFunction( ) +{} + + +double +EvtItgPtrFunction::myFunction(double x) const{ + return _myFunction(x, _coeffs1); +} + +void +EvtItgPtrFunction::setCoeff(int vect, int which, double value) +{ + if (vect == 1) _coeffs1[which] = value; +} + +double +EvtItgPtrFunction::getCoeff(int vect, int which) +{ + if (vect == 1) return _coeffs1[which]; + else {return 0;} +} diff --git a/TEvtGen/EvtGenModels/EvtItgPtrFunction.hh b/TEvtGen/EvtGenModels/EvtItgPtrFunction.hh new file mode 100644 index 00000000000..ebdc213c864 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtItgPtrFunction.hh @@ -0,0 +1,59 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtItgPtrFunction.hh +// +// Description: +// Class describing a function with one vector of coefficients. (Stolen and +// modified from the BaBar IntegrationUtils package - author: Phil Strother). +// +// Modification history: +// +// Jane Tinslay March 21, 2001 Module adapted for use in +// EvtGen +// +//------------------------------------------------------------------------ + +#ifndef EVTITGPTRFUNCTION_HH +#define EVTITGPTRFUNCTION_HH + +#include +#include "EvtGenModels/EvtItgAbsFunction.hh" + +class EvtItgPtrFunction: public EvtItgAbsFunction { + +public: + + EvtItgPtrFunction( double (*theFunction)(double, const std::vector &), + double lowerRange, double upperRange, const std::vector &coeffs1); + + virtual ~EvtItgPtrFunction( ); + + virtual void setCoeff(int, int, double); + virtual double getCoeff(int, int); + +protected: + + virtual double myFunction(double x) const; + +private: + + // Data members + double (*_myFunction)(double x, const std::vector & coeffs1); + + // Note: if your class needs a copy constructor or an assignment operator, + // make one of the following public and implement it. + EvtItgPtrFunction( const EvtItgPtrFunction& ); //// Copy Constructor + EvtItgPtrFunction& operator= ( const EvtItgPtrFunction& ); // Assignment op + std::vector _coeffs1; + +}; + +#endif // EVTITGPTRFUNCTION_HH diff --git a/TEvtGen/EvtGenModels/EvtItgSimpsonIntegrator.cxx b/TEvtGen/EvtGenModels/EvtItgSimpsonIntegrator.cxx new file mode 100644 index 00000000000..a39159dad62 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtItgSimpsonIntegrator.cxx @@ -0,0 +1,99 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtItgSimpsonIntegrator.hh +// +// Description: +// Abstraction of a generic function for use in integration methods elsewhere +// in this package. (Stolen and modified from +// the BaBar IntegrationUtils package - author: Phil Strother). +// +// Modification history: +// +// Jane Tinslay March 21, 2001 Module adapted for use in +// EvtGen +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenModels/EvtItgSimpsonIntegrator.hh" + +//------------- +// C Headers -- +//------------- +extern "C" { +} + +//--------------- +// C++ Headers -- +//--------------- + +#include + +//------------------------------- +// Collaborating Class Headers -- +//------------------------------- + +#include "EvtGenModels/EvtItgAbsFunction.hh" +#include "EvtGenBase/EvtReport.hh" +using std::endl; + + +EvtItgSimpsonIntegrator::EvtItgSimpsonIntegrator(const EvtItgAbsFunction &theFunction, double precision, int maxLoop): + EvtItgAbsIntegrator(theFunction), + _precision(precision), + _maxLoop(maxLoop) +{} + + +//-------------- +// Destructor -- +//-------------- + +EvtItgSimpsonIntegrator::~EvtItgSimpsonIntegrator() +{} + +double +EvtItgSimpsonIntegrator::evaluateIt(double lower, double higher) const{ + + // report(INFO,"EvtGen")<<"in evaluate"< &, const std::vector &, const std::vector &), double lowerRange, double upperRange, const std::vector &coeffs1, const std::vector &coeffs2, const std::vector &coeffs3): + EvtItgAbsFunction(lowerRange, upperRange), + _myFunction(theFunction), + _coeffs1(coeffs1), + _coeffs2(coeffs2), + _coeffs3(coeffs3) +{} + +EvtItgThreeCoeffFcn::~EvtItgThreeCoeffFcn( ) +{} + + +double +EvtItgThreeCoeffFcn::myFunction(double x) const{ + return _myFunction(x, _coeffs1, _coeffs2, _coeffs3); +} + +void +EvtItgThreeCoeffFcn::setCoeff(int vect, int which, double value) +{ + if (vect == 1) _coeffs1[which] = value; + else if (vect == 2) _coeffs2[which] = value; + else if (vect == 3) _coeffs3[which] = value; +} + +double +EvtItgThreeCoeffFcn::getCoeff(int vect, int which) +{ + if (vect == 1) return _coeffs1[which]; + else if (vect == 2) return _coeffs2[which]; + else if (vect == 3) return _coeffs3[which]; + else {return 0;} +} diff --git a/TEvtGen/EvtGenModels/EvtItgThreeCoeffFcn.hh b/TEvtGen/EvtGenModels/EvtItgThreeCoeffFcn.hh new file mode 100644 index 00000000000..156e31e21db --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtItgThreeCoeffFcn.hh @@ -0,0 +1,66 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtItgThreeCoeffFcn.hh +// +// Description: +// Class describing a function with three vectors of coefficients. +// +// Modification history: +// +// Jane Tinslay March 21, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTITTHREECOEFFFCN_HH +#define EVTITTHREECOEFFFCN_HH + +#include + +//------------- +// C Headers -- +//------------- +extern "C" { +} + +#include "EvtGenModels/EvtItgAbsFunction.hh" + +class EvtItgThreeCoeffFcn: public EvtItgAbsFunction { + +public: + + EvtItgThreeCoeffFcn( double (*theFunction)(double, const std::vector &, const std::vector &, const std::vector &), + double lowerRange, double upperRange, const std::vector &coeffs1, const std::vector &coeffs2, const std::vector &coeffs3); + + + virtual ~EvtItgThreeCoeffFcn( ); + virtual void setCoeff(int, int, double); + virtual double getCoeff(int, int); + +protected: + + virtual double myFunction(double x) const; + +private: + + // Data members + double (*_myFunction)(double x, const std::vector & coeffs1, const std::vector & coeffs2, const std::vector & coeffs3); + + // Note: if your class needs a copy constructor or an assignment operator, + // make one of the following public and implement it. + EvtItgThreeCoeffFcn( const EvtItgThreeCoeffFcn& ); //// Copy Constructor + EvtItgThreeCoeffFcn& operator= ( const EvtItgThreeCoeffFcn& ); // Assignment op + std::vector _coeffs1; + std::vector _coeffs2; + std::vector _coeffs3; + +}; + +#endif // EvtITGPTRFUNCTION_HH diff --git a/TEvtGen/EvtGenModels/EvtItgTwoCoeffFcn.cxx b/TEvtGen/EvtGenModels/EvtItgTwoCoeffFcn.cxx new file mode 100644 index 00000000000..1ebd84091c7 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtItgTwoCoeffFcn.cxx @@ -0,0 +1,60 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtItgTwoCoeffFcn.cc +// +// Description: +// Class describing a function with two vectors of coefficients. +// +// Modification history: +// +// Jane Tinslay March 21, 2001 Module created +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenModels/EvtItgTwoCoeffFcn.hh" + +//------------- +// C Headers -- +//------------- +extern "C" { +} + +EvtItgTwoCoeffFcn::EvtItgTwoCoeffFcn( double (*theFunction)(double, const std::vector &, const std::vector &), double lowerRange, double upperRange, const std::vector &coeffs1, const std::vector &coeffs2): + EvtItgAbsFunction(lowerRange, upperRange), + _myFunction(theFunction), + _coeffs1(coeffs1), + _coeffs2(coeffs2) +{} + +EvtItgTwoCoeffFcn::~EvtItgTwoCoeffFcn( ) +{} + +double +EvtItgTwoCoeffFcn::myFunction(double x) const{ + return _myFunction(x, _coeffs1, _coeffs2); +} + +void +EvtItgTwoCoeffFcn::setCoeff(int vect, int which, double value) +{ + if (vect == 1) _coeffs1[which] = value; + else if (vect == 2) _coeffs2[which] = value; +} + +double +EvtItgTwoCoeffFcn::getCoeff(int vect, int which) +{ + if (vect == 1) return _coeffs1[which]; + else if (vect == 2) return _coeffs2[which]; + else {return 0;} +} + diff --git a/TEvtGen/EvtGenModels/EvtItgTwoCoeffFcn.hh b/TEvtGen/EvtGenModels/EvtItgTwoCoeffFcn.hh new file mode 100644 index 00000000000..b24fe6d83db --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtItgTwoCoeffFcn.hh @@ -0,0 +1,67 @@ +//-------------------------------------------------------------------------- +// +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Module: EvtItgTwoCoeffFcn.hh +// +// Description: +// Class describing a function with two vectors of coefficients. +// +// Modification history: +// +// Jane Tinslay March 21, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTITTWOCOEFFFCN_HH +#define EVTITTWOCOEFFFCN_HH + +#include + +//------------- +// C Headers -- +//------------- +extern "C" { +} + +#include "EvtGenModels/EvtItgAbsFunction.hh" + +class EvtItgTwoCoeffFcn: public EvtItgAbsFunction { + +public: + + EvtItgTwoCoeffFcn( double (*theFunction)(double, const std::vector &, const std::vector &), + double lowerRange, double upperRange, const std::vector &coeffs1, const std::vector &coeffs2); + + virtual ~EvtItgTwoCoeffFcn( ); + + virtual void setCoeff(int, int, double); + virtual double getCoeff(int, int); + + +protected: + + virtual double myFunction(double x) const; + +private: + + // Data members + double (*_myFunction)(double x, const std::vector & coeffs1, const std::vector & coeffs2); + + // Note: if your class needs a copy constructor or an assignment operator, + // make one of the following public and implement it. + EvtItgTwoCoeffFcn( const EvtItgTwoCoeffFcn& ); //// Copy Constructor + EvtItgTwoCoeffFcn& operator= ( const EvtItgTwoCoeffFcn& ); // Assignment op + + std::vector _coeffs1; + std::vector _coeffs2; + +}; + +#endif // EvtITGTWOCOEFFFUNCTION_HH diff --git a/TEvtGen/EvtGenModels/EvtJetSet.cxx b/TEvtGen/EvtGenModels/EvtJetSet.cxx new file mode 100644 index 00000000000..991a60a852a --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtJetSet.cxx @@ -0,0 +1,840 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtJetSet.cc +// +// Description: Routine to use JetSet for decaying particles. +// +// Modification history: +// +// RYD July 24, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtStringParticle.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtJetSet.hh" +#include "EvtGenBase/EvtReport.hh" +#include +#include "EvtGenBase/EvtId.hh" +#include +#include +#include +#include +#include +#include +#include +using std::endl; +using std::fstream; +using std::ios; +using std::ofstream; +using std::resetiosflags; +using std::setiosflags; +using std::setw; + + +int EvtJetSet::njetsetdecays=0; + EvtDecayBasePtr* EvtJetSet::jetsetdecays=0; +int EvtJetSet::ntable=0; + +int EvtJetSet::ncommand=0; +int EvtJetSet::lcommand=0; +std::string* EvtJetSet::commands=0; + +extern "C" { + extern void evtjetsetinit_(char* fname, int len); +} + + +extern "C" { + extern void jetset1_(int *,double *,int *,int *,int *, + double *,double *,double *,double *); +} + +extern "C" { + extern void lugive_(const char *cnfgstr,int length); +} + +extern "C" { + extern int lucomp_(int* kf); +} + + +EvtJetSet::EvtJetSet(){} + +EvtJetSet::~EvtJetSet(){ + + + int i; + + + //the deletion of commands is really uggly! + + if (njetsetdecays==0) { + delete [] commands; + commands=0; + return; + } + + for(i=0;igetId()); + + if (lucomp_(&istdheppar)==0){ + report(ERROR,"EvtGen") << "Jetset can not decay:" + <getId()).c_str()<mass(); + + EvtVector4R p4[20]; + + int i,more; + int ip=EvtPDL::getStdHep(p->getId()); + int ndaugjs; + int kf[100]; + EvtId evtnumstable[100],evtnumparton[100]; + int stableindex[100],partonindex[100]; + int numstable; + int numparton; + int km[100]; + EvtId type[MAX_DAUG]; + + jetSetInit(); + + double px[100],py[100],pz[100],e[100]; + + if ( p->getNDaug() != 0 ) { p->deleteDaughters(true);} + + int count=0; + + do{ + //report(INFO,"EvtGen") << "calling jetset " << ip<< " " << mp <=e[i]*e[i]){ + + e[i]=sqrt(px[i]*px[i]+py[i]*py[i]+pz[i]*pz[i])+0.0000000000001; + + } + + p4[i].set(e[i],px[i],py[i],pz[i]); + + + } + + int channel=EvtDecayTable::inChannelList(p->getId(),numstable,evtnumstable); + + + more=(channel!=-1); + + + + + count++; + + }while( more && (count<10000) ); + + if (count>9999) { + report(INFO,"EvtGen") << "Too many loops in EvtJetSet!!!"<makeDaughters(numstable,evtnumstable); + int ndaugFound=0; + for(i=0;igetDaug(i)->init(evtnumstable[i],p4[stableindex[i]]); + ndaugFound++; + } + if ( ndaugFound == 0 ) { + report(ERROR,"EvtGen") << "Jetset has failed to do a decay "; + report(ERROR,"EvtGen") << EvtPDL::name(p->getId()).c_str() << " " << p->mass()<makeDaughters(nprimary,type); + + p->getDaug(0)->init(STRNG,p4string); + + EvtVector4R p4partons[10]; + + for(i=0;igetDaug(0))->initPartons(numparton,p4partons,evtnumparton); + + + + nprimary=1; + + for(i=0;igetDaug(nprimary++)->init(evtnumstable[i],p4[stableindex[i]]); + } + } + + + int nsecond=0; + for(i=0;igetDaug(0)->makeDaughters(nsecond,type); + + EvtVector4R p4stringboost(p4string.get(0),-p4string.get(1), + -p4string.get(2),-p4string.get(3)); + + nsecond=0; + for(i=0;igetDaug(0)->getDaug(nsecond)->init(evtnumstable[i],p4[stableindex[i]]); + p->getDaug(0)->getDaug(nsecond)->setDiagonalSpinDensity(); + p->getDaug(0)->getDaug(nsecond)->decay(); + nsecond++; + } + } + + if ( nsecond == 0 ) { + report(ERROR,"EvtGen") << "Jetset has failed to do a decay "; + report(ERROR,"EvtGen") << EvtPDL::name(p->getId()).c_str() << " " << p->mass() <getNDaug(); + + int i; + + static EvtId Jpsi=EvtPDL::getId("J/psi"); + + for(i=0;igetDaug(i)->getId()==Jpsi){ + + EvtSpinDensity rho; + + rho.setDim(3); + rho.set(0,0,0.5); + rho.set(0,1,0.0); + rho.set(0,2,0.0); + + rho.set(1,0,0.0); + rho.set(1,1,1.0); + rho.set(1,2,0.0); + + rho.set(2,0,0.0); + rho.set(2,1,0.0); + rho.set(2,2,0.5); + + EvtVector4R p4Psi=p->getDaug(i)->getP4(); + + double alpha=atan2(p4Psi.get(2),p4Psi.get(1)); + double beta=acos(p4Psi.get(3)/p4Psi.d3mag()); + + + p->getDaug(i)->setSpinDensityForwardHelicityBasis(rho,alpha,beta,0.0); + setDaughterSpinDensity(i); + + } + } + +} + +void EvtJetSet::store(EvtDecayBase* jsdecay){ + + if (njetsetdecays==ntable){ + + EvtDecayBasePtr* newjetsetdecays=new EvtDecayBasePtr[2*ntable+10]; + int i; + for(i=0;i1000000.0) ctau=0.0; + + strcpy(sname,name.c_str()); + + i=0; + + while (sname[i]!=0){ + i++; + } + + // strip up to two + or - + + if(evtnum.getId()>=0) { + if (sname[i-1]=='+'||sname[i-1]=='-'){ + sname[i-1]=0; + i--; + } + if (sname[i-1]=='+'||sname[i-1]=='-'){ + sname[i-1]=0; + i--; + } + // strip 0 except for _0 and chi...0 + if (sname[i-1]=='0' && sname[i-2]!='_' && !(sname[0]=='c' && sname[1]=='h')){ + sname[i-1]=0; + i--; + } + } + + if (i>namelength) { + for(j=1;j=0) { + if (abs(EvtPDL::getStdHep(evtnum))==21) cchg=2; + if (abs(EvtPDL::getStdHep(evtnum))==90) cchg=-1; + if ((abs(EvtPDL::getStdHep(evtnum))<=8)&& + (abs(EvtPDL::getStdHep(evtnum))!=0)) cchg=1; + + } + + outdec << setw(5) << lundkc << " "; + outdec.width(namelength); + outdec << setiosflags(ios::left) << sname << resetiosflags(ios::left); + outdec << setw(3) << chg; + outdec << setw(3) << cchg; + outdec.width(3); + if (evtnum.getId()>=0) { + if (EvtPDL::chargeConj(evtnum)==evtnum) { + outdec << 0; + } + else{ + outdec << 1; + } + } + else{ + outdec << 0; + } + outdec.setf(ios::fixed); + outdec.precision(5); + outdec << setw(12) << mass; + outdec << setw(12) << width; + outdec.width(12); + if (fabs(width)<0.0000000001) { + outdec << 0.0 ; + } + else{ + outdec << maxwidth; + } + outdec << setw(14) << ctau; + outdec.width(3); + if (evtnum.getId()>=0) { + if (ctau>1.0 || rawbrfrsum<0.000001) { + stable=0; + } + } + outdec << stable; + outdec << endl; + outdec.width(0); + +} + +void EvtJetSet::WriteJetSetParticle(ofstream &outdec,EvtId ipar, + EvtId iparname,int &first){ + + int ijetset; + + double br_sum=0.0; + + for(ijetset=0;ijetsetgetParentId()==ipar){ + br_sum+=jetsetdecays[ijetset]->getBranchingFraction(); + } + if (jetsetdecays[ijetset]->getParentId()!= + EvtPDL::chargeConj(jetsetdecays[ijetset]->getParentId())&& + EvtPDL::chargeConj(jetsetdecays[ijetset]->getParentId())==ipar){ + br_sum+=jetsetdecays[ijetset]->getBranchingFraction(); + } + + + } + + double br_sum_true=br_sum; + + if (br_sum<0.000001) br_sum=1.0; + + for(ijetset=0;ijetsetgetParentId()==ipar){ + + double br=jetsetdecays[ijetset]->getBranchingFraction(); + + int i,daugs[5]; + EvtId cdaugs[5]; + + for(i=0;i<5;i++){ + + if(igetNDaug()){ + daugs[i]=EvtPDL::getStdHep( + jetsetdecays[ijetset]->getDaugs()[i]); + cdaugs[i]=EvtPDL::chargeConj(jetsetdecays[ijetset]->getDaugs()[i]); + } + else{ + daugs[i]=0; + } + } + + int channel; + + channel=EvtDecayTable::findChannel(EvtPDL::chargeConj(ipar), + jetsetdecays[ijetset]->getModelName(), + jetsetdecays[ijetset]->getNDaug(), + cdaugs, + jetsetdecays[ijetset]->getNArg(), + jetsetdecays[ijetset]->getArgsStr()); + + if (jetsetdecays[ijetset]->getModelName()=="JETSET"){ + + if (first) { + first=0; + WriteJetSetEntryHeader(outdec, + EvtPDL::getLundKC(iparname), + iparname, + EvtPDL::name(iparname), + EvtPDL::chg3(iparname), + 0,0,EvtPDL::getMeanMass(ipar), + EvtPDL::getWidth(ipar), + EvtPDL::getMeanMass(ipar)-EvtPDL::getMinMass(ipar), + EvtPDL::getctau(ipar),1,br_sum_true); + } + + int dflag=2; + + if (EvtPDL::getStdHep(ipar)<0) { + dflag=3; + for(i=0;igetNDaug();i++){ + daugs[i]=EvtPDL::getStdHep(cdaugs[i]); + } + + } + + //now lets check to make sure that jetset, lucomp, knows + //about all particles! + int unknown=0; + for(i=0;igetNDaug();i++){ + if (lucomp_(&daugs[i])==0) { + unknown=1; + report(ERROR,"EvtGen") << "JetSet (lucomp) does not " + << "know the particle:"<< + EvtPDL::name(jetsetdecays[ijetset]->getDaugs()[i]).c_str()<getParentId()).c_str()<<" -> "; + for(i=0;igetNDaug();i++){ + report(ERROR,"") << EvtPDL::name(jetsetdecays[ijetset]->getDaugs()[i]).c_str()<<" "; + } + report(ERROR,"")<=0) { + // dflag=1; + //report(INFO,"EvtGen") << EvtPDL::name(iparname) << " dflag=1 because channel>=0"<=0)){ + if (1){ + + outdec.width(10); + outdec <getArgs()[0]; + outdec.width(12); + if (fabs(br)<0.000000001) { + outdec <<"0.00000"; + } + else{ + outdec <
( EvtPDL::entries()) ;iipar++){ + + ipar=EvtId(iipar,iipar); + //no aliased particles! + std::string tempStr = EvtPDL::name(ipar); + EvtId realId = EvtPDL::getId(tempStr); + if ( realId.isAlias() != 0 ) continue; + if (lundkc==EvtPDL::getLundKC(ipar)){ + + nokcentry=0; + + int first=1; + + WriteJetSetParticle(outdec,ipar,ipar,first); + + + EvtId ipar2=EvtPDL::chargeConj(ipar); + + + if (ipar2!=ipar){ + WriteJetSetParticle(outdec,ipar2,ipar,first); + } + + if (first){ + WriteJetSetEntryHeader(outdec, + EvtPDL::getLundKC(ipar), + ipar, + EvtPDL::name(ipar), + EvtPDL::chg3(ipar), + 0,0,EvtPDL::getMeanMass(ipar), + EvtPDL::getWidth(ipar), + EvtPDL::getMeanMass(ipar)-EvtPDL::getMinMass(ipar), + EvtPDL::getctau(ipar),0,0.0); + + } + } + } + if (nokcentry){ + + WriteJetSetEntryHeader(outdec, + lundkc,EvtId(-1,-1)," ", + 0,0,0,EvtPDL::getMeanMass(ipar),0.0,0.0, + EvtPDL::getctau(ipar),0,0.0); + + } + } + outdec.close(); +} + +void EvtJetSet::jetSetInit(){ + + static int first=1; + + if (first){ + + first=0; + + report(INFO,"EvtGen") << "Will initialize JetSet."< + +class EvtJetSet:public EvtDecayIncoherent { + +public: + + EvtJetSet(); + virtual ~EvtJetSet(); + + std::string getName(); + EvtDecayBase* clone(); + void decay(EvtParticle *p); + + std::string commandName(); + void command(std::string cmd); + + void init(); + + void initProbMax(); + + //initialize jetset; sets up decay table and + //paramters. Static so it can be invoked from + //from EvtJscont. + static void jetSetInit(); + +private: + + void store(EvtDecayBase* jsdecay); + void fixPolarizations(EvtParticle* p); + static void MakeJetSetFile(char* fname); + static void WriteJetSetParticle(std::ofstream &outdec,EvtId ipar,EvtId iparname,int &first); + static void WriteJetSetEntryHeader(std::ofstream &outdec, int lundkc, + EvtId evtnum,std::string name, + int chg, int cchg, int spin2,double mass, + double width, double maxwidth,double ctau, + int stable,double rawbrfrsum); + + static int njetsetdecays; + static EvtDecayBasePtr* jetsetdecays; + static int ntable; + + static int ncommand; + static int lcommand; + static std::string* commands; + +}; + +#endif + + + + diff --git a/TEvtGen/EvtGenModels/EvtJetSetCDF.cxx b/TEvtGen/EvtGenModels/EvtJetSetCDF.cxx new file mode 100644 index 00000000000..b69d8352b2b --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtJetSetCDF.cxx @@ -0,0 +1,841 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtJetSet.cc +// +// Description: Routine to use JetSet for decaying particles. +// +// Modification history: +// +// RYD July 24, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtStringParticle.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtJetSetCDF.hh" +#include "EvtGenBase/EvtReport.hh" +#include +#include "EvtGenBase/EvtId.hh" +#include +#include +#include +#include +#include +#include +#include +using std::endl; +using std::fstream; +using std::ios; +using std::ofstream; +using std::resetiosflags; +using std::setiosflags; +using std::setw; + + +int EvtJetSetCDF::njetsetdecays=0; + EvtDecayBasePtr* EvtJetSetCDF::jetsetdecays=0; +int EvtJetSetCDF::ntable=0; + +int EvtJetSetCDF::ncommand=0; +int EvtJetSetCDF::lcommand=0; +std::string* EvtJetSetCDF::commands=0; + +extern "C" { + extern void evtjetsetcdfinit_(char* fname, int len); +} + + +extern "C" { + extern void jetsetcdf_(int *,double *,int *,int *,int *, + double *,double *,double *,double *); +} + +extern "C" { + extern void lygive_(const char *cnfgstr,int length); +} + +extern "C" { + extern int lycomp_(int* kf); +} + + +EvtJetSetCDF::EvtJetSetCDF(){} + +EvtJetSetCDF::~EvtJetSetCDF(){ + + + int i; + + + //the deletion of commands is really uggly! + + if (njetsetdecays==0) { + delete [] commands; + commands=0; + return; + } + + for(i=0;igetId()); + + if (lycomp_(&istdheppar)==0){ + report(ERROR,"EvtGen") << "Jetset can not decay:" + <getId()).c_str()<mass(); + + EvtVector4R p4[20]; + + int i,more; + int ip=EvtPDL::getStdHep(p->getId()); + int ndaugjs; + int kf[100]; + EvtId evtnumstable[100],evtnumparton[100]; + int stableindex[100],partonindex[100]; + int numstable; + int numparton; + int km[100]; + EvtId type[MAX_DAUG]; + + jetSetInit(); + + double px[100],py[100],pz[100],e[100]; + + if ( p->getNDaug() != 0 ) { p->deleteDaughters(true);} + + int count=0; + + do{ + //report(INFO,"EvtGen") << "calling jetset " << ip<< " " << mp <=e[i]*e[i]){ + + e[i]=sqrt(px[i]*px[i]+py[i]*py[i]+pz[i]*pz[i])+0.0000000000001; + + } + + p4[i].set(e[i],px[i],py[i],pz[i]); + + + } + + int channel=EvtDecayTable::inChannelList(p->getId(),numstable,evtnumstable); + + + more=(channel!=-1); + + + + + count++; + + }while( more && (count<10000) ); + + if (count>9999) { + report(INFO,"EvtGen") << "Too many loops in EvtJetSetCDF!!!"<makeDaughters(numstable,evtnumstable); + int ndaugFound=0; + for(i=0;igetDaug(i)->init(evtnumstable[i],p4[stableindex[i]]); + ndaugFound++; + } + if ( ndaugFound == 0 ) { + report(ERROR,"EvtGen") << "Jetset has failed to do a decay "; + report(ERROR,"EvtGen") << EvtPDL::name(p->getId()).c_str() << " " << p->mass()<makeDaughters(nprimary,type); + + p->getDaug(0)->init(STRNG,p4string); + + EvtVector4R p4partons[10]; + + for(i=0;igetDaug(0))->initPartons(numparton,p4partons,evtnumparton); + + + + nprimary=1; + + for(i=0;igetDaug(nprimary++)->init(evtnumstable[i],p4[stableindex[i]]); + } + } + + + int nsecond=0; + for(i=0;igetDaug(0)->makeDaughters(nsecond,type); + + EvtVector4R p4stringboost(p4string.get(0),-p4string.get(1), + -p4string.get(2),-p4string.get(3)); + + nsecond=0; + for(i=0;igetDaug(0)->getDaug(nsecond)->init(evtnumstable[i],p4[stableindex[i]]); + p->getDaug(0)->getDaug(nsecond)->setDiagonalSpinDensity(); + p->getDaug(0)->getDaug(nsecond)->decay(); + nsecond++; + } + } + + if ( nsecond == 0 ) { + report(ERROR,"EvtGen") << "Jetset has failed to do a decay "; + report(ERROR,"EvtGen") << EvtPDL::name(p->getId()).c_str() << " " << p->mass() <getNDaug(); + + int i; + + static EvtId Jpsi=EvtPDL::getId("J/psi"); + + for(i=0;igetDaug(i)->getId()==Jpsi){ + + EvtSpinDensity rho; + + rho.setDim(3); + rho.set(0,0,0.5); + rho.set(0,1,0.0); + rho.set(0,2,0.0); + + rho.set(1,0,0.0); + rho.set(1,1,1.0); + rho.set(1,2,0.0); + + rho.set(2,0,0.0); + rho.set(2,1,0.0); + rho.set(2,2,0.5); + + EvtVector4R p4Psi=p->getDaug(i)->getP4(); + + double alpha=atan2(p4Psi.get(2),p4Psi.get(1)); + double beta=acos(p4Psi.get(3)/p4Psi.d3mag()); + + + p->getDaug(i)->setSpinDensityForwardHelicityBasis(rho,alpha,beta,0.0); + setDaughterSpinDensity(i); + + } + } + +} + +void EvtJetSetCDF::store(EvtDecayBase* jsdecay){ + + if (njetsetdecays==ntable){ + + EvtDecayBasePtr* newjetsetdecays=new EvtDecayBasePtr[2*ntable+10]; + int i; + for(i=0;i1000000.0) ctau=0.0; + + strcpy(sname,name.c_str()); + + i=0; + + while (sname[i]!=0){ + i++; + } + + // strip up to two + or - + + if(evtnum.getId()>=0) { + if (sname[i-1]=='+'||sname[i-1]=='-'){ + sname[i-1]=0; + i--; + } + if (sname[i-1]=='+'||sname[i-1]=='-'){ + sname[i-1]=0; + i--; + } + // strip 0 except for _0 and chi...0 + if (sname[i-1]=='0' && sname[i-2]!='_' && !(sname[0]=='c' && sname[1]=='h')){ + sname[i-1]=0; + i--; + } + } + + if (i>namelength) { + for(j=1;j=0) { + if (abs(EvtPDL::getStdHep(evtnum))==21) cchg=2; + if (abs(EvtPDL::getStdHep(evtnum))==90) cchg=-1; + if ((abs(EvtPDL::getStdHep(evtnum))<=8)&& + (abs(EvtPDL::getStdHep(evtnum))!=0)) cchg=1; + + } + + outdec << setw(5) << lundkc << " "; + outdec.width(namelength); + outdec << setiosflags(ios::left) << sname << resetiosflags(ios::left); + outdec << setw(3) << chg; + outdec << setw(3) << cchg; + outdec.width(3); + if (evtnum.getId()>=0) { + if (EvtPDL::chargeConj(evtnum)==evtnum) { + outdec << 0; + } + else{ + outdec << 1; + } + } + else{ + outdec << 0; + } + outdec.setf(ios::fixed); + outdec.precision(5); + outdec << setw(12) << mass; + outdec << setw(12) << width; + outdec.width(12); + if (fabs(width)<0.0000000001) { + outdec << 0.0 ; + } + else{ + outdec << maxwidth; + } + outdec << setw(14) << ctau; + outdec.width(3); + if (evtnum.getId()>=0) { + if (ctau>1.0 || rawbrfrsum<0.000001) { + stable=0; + } + } + outdec << stable; + outdec << endl; + outdec.width(0); + +} + +void EvtJetSetCDF::WriteJetSetParticle(ofstream &outdec,EvtId ipar, + EvtId iparname,int &first){ + + int ijetset; + + double br_sum=0.0; + + for(ijetset=0;ijetsetgetParentId()==ipar){ + br_sum+=jetsetdecays[ijetset]->getBranchingFraction(); + } + if (jetsetdecays[ijetset]->getParentId()!= + EvtPDL::chargeConj(jetsetdecays[ijetset]->getParentId())&& + EvtPDL::chargeConj(jetsetdecays[ijetset]->getParentId())==ipar){ + br_sum+=jetsetdecays[ijetset]->getBranchingFraction(); + } + + + } + + double br_sum_true=br_sum; + + if (br_sum<0.000001) br_sum=1.0; + + for(ijetset=0;ijetsetgetParentId()==ipar){ + + double br=jetsetdecays[ijetset]->getBranchingFraction(); + + int i,daugs[5]; + EvtId cdaugs[5]; + + for(i=0;i<5;i++){ + + if(igetNDaug()){ + daugs[i]=EvtPDL::getStdHep( + jetsetdecays[ijetset]->getDaugs()[i]); + cdaugs[i]=EvtPDL::chargeConj(jetsetdecays[ijetset]->getDaugs()[i]); + } + else{ + daugs[i]=0; + } + } + + int channel; + + channel=EvtDecayTable::findChannel(EvtPDL::chargeConj(ipar), + jetsetdecays[ijetset]->getModelName(), + jetsetdecays[ijetset]->getNDaug(), + cdaugs, + jetsetdecays[ijetset]->getNArg(), + jetsetdecays[ijetset]->getArgsStr()); + + if (jetsetdecays[ijetset]->getModelName()=="JETSET"){ + + if (first) { + first=0; + WriteJetSetEntryHeader(outdec, + EvtPDL::getLundKC(iparname), + iparname, + EvtPDL::name(iparname), + EvtPDL::chg3(iparname), + 0,0,EvtPDL::getMeanMass(ipar), + EvtPDL::getWidth(ipar), + EvtPDL::getMeanMass(ipar)-EvtPDL::getMinMass(ipar), + EvtPDL::getctau(ipar),1,br_sum_true); + } + + int dflag=2; + + if (EvtPDL::getStdHep(ipar)<0) { + dflag=3; + for(i=0;igetNDaug();i++){ + daugs[i]=EvtPDL::getStdHep(cdaugs[i]); + } + + } + + //now lets check to make sure that jetset, lycomp, knows + //about all particles! + int unknown=0; + for(i=0;igetNDaug();i++){ + if (lycomp_(&daugs[i])==0) { + unknown=1; + report(ERROR,"EvtGen") << "JetSet (lycomp) does not " + << "know the particle:"<< + EvtPDL::name(jetsetdecays[ijetset]->getDaugs()[i]).c_str()<getParentId()).c_str()<<" -> "; + for(i=0;igetNDaug();i++){ + report(ERROR,"") << EvtPDL::name(jetsetdecays[ijetset]->getDaugs()[i]).c_str()<<" "; + } + report(ERROR,"")<=0) { + // dflag=1; + //report(INFO,"EvtGen") << EvtPDL::name(iparname) << " dflag=1 because channel>=0"<=0)){ + if (1){ + + outdec.width(10); + outdec <getArgs()[0]; + outdec.width(12); + if (fabs(br)<0.000000001) { + outdec <<"0.00000"; + } + else{ + outdec <
+ +class EvtJetSetCDF:public EvtDecayIncoherent { + +public: + + EvtJetSetCDF(); + virtual ~EvtJetSetCDF(); + + std::string getName(); + EvtDecayBase* clone(); + void decay(EvtParticle *p); + + std::string commandName(); + void command(std::string cmd); + + void init(); + + void initProbMax(); + + //initialize jetset; sets up decay table and + //paramters. Static so it can be invoked from + //from EvtJscont. + static void jetSetInit(); + +private: + + void store(EvtDecayBase* jsdecay); + void fixPolarizations(EvtParticle* p); + static void MakeJetSetFile(char* fname); + static void WriteJetSetParticle(std::ofstream &outdec,EvtId ipar,EvtId iparname,int &first); + static void WriteJetSetEntryHeader(std::ofstream &outdec, int lundkc, + EvtId evtnum,std::string name, + int chg, int cchg, int spin2,double mass, + double width, double maxwidth,double ctau, + int stable,double rawbrfrsum); + + static int njetsetdecays; + static EvtDecayBasePtr* jetsetdecays; + static int ntable; + + static int ncommand; + static int lcommand; + static std::string* commands; + +}; + +#endif + + + + diff --git a/TEvtGen/EvtGenModels/EvtJetSetCDFInit.F b/TEvtGen/EvtGenModels/EvtJetSetCDFInit.F new file mode 100644 index 00000000000..4c66891afbe --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtJetSetCDFInit.F @@ -0,0 +1,45 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See EvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: EvtJetSetInit.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C +C------------------------------------------------------------------------ + subroutine evtjetsetcdfinit(fname) + + implicit none + + external lydata + + character*(*) fname + + + open(54,STATUS='OLD',FILE=fname) + + call LYUPDA(2,54) + + close(54) + + +C call LYLIST(12) + + + end + + + + + + diff --git a/TEvtGen/EvtGenModels/EvtJetSetInit.F b/TEvtGen/EvtGenModels/EvtJetSetInit.F new file mode 100644 index 00000000000..b2cc5229316 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtJetSetInit.F @@ -0,0 +1,44 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See EvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: EvtJetSetInit.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C +C------------------------------------------------------------------------ + subroutine evtjetsetinit(fname) + + implicit none + + external ludata + + character*(*) fname + + + open(54,STATUS='OLD',FILE=fname) + + call LUUPDA(2,54) + + close(54) + + + + + end + + + + + + diff --git a/TEvtGen/EvtGenModels/EvtJscont.cxx b/TEvtGen/EvtGenModels/EvtJscont.cxx new file mode 100644 index 00000000000..6034ce8cbac --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtJscont.cxx @@ -0,0 +1,150 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtJscont.cc +// +// Description: Routine to generate e+e- --> q\barq via Jetset +// +// Modification history: +// +// PCK August 4, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtJscont.hh" +#include "EvtGenModels/EvtJetSet.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtReport.hh" +#include + + +extern "C" { + extern void continuum_(double *,int *,int *,int *, + double *,double *,double *,double *); +} + +extern "C" { + extern void lugive_(const char *cnfgstr,int length); +} + + +EvtJscont::~EvtJscont() {} + +std::string EvtJscont::getName(){ + + return "JSCONT"; + +} + +EvtDecayBase* EvtJscont::clone(){ + + return new EvtJscont; + +} + +void EvtJscont::init(){ + + // check that there is 1 argument + + checkNArg(1,2); + +} + + +void EvtJscont::initProbMax(){ + + noProbMax(); + +} + + +void EvtJscont::decay( EvtParticle *p){ + + EvtJetSet::jetSetInit(); + static int first=1; + + if (first){ + first=0; + + float val=0.6; + if ( getNArg()>1) { + val=getArg(1); + } + char vak[20]; + sprintf(vak,"PARJ(13)=%f",val); + std::string temp(vak); + lugive_(temp.c_str(),strlen(temp.c_str())); + } + EvtVector4R p4[100]; + + double energy=p->mass(); + + int flavor; + + int i,more; + int ndaugjs; + int kf[100]; + EvtId id[100]; + int type[MAX_DAUG]; + + flavor=(int)getArg(0); + + double px[100],py[100],pz[100],e[100]; + + if ( p->getNDaug() != 0 ) { return;} + do{ + + continuum_(&energy,&flavor,&ndaugjs,kf,px,py,pz,e); + + for(i=0;i=e[i]*e[i]){ + + e[i]=sqrt(px[i]*px[i]+py[i]*py[i]+pz[i]*pz[i])+0.0000000000001; + + } + + p4[i].set(e[i],px[i],py[i],pz[i]); + + } + + int channel=EvtDecayTable::inChannelList(p->getId(),ndaugjs,id); + + more=((channel!=-1)&&(channel!=p->getChannel())); + + + }while(more); + + p->makeDaughters(ndaugjs,id); + + for(i=0;igetDaug(i)->init( id[i], p4[i] ); + } + return ; +} + + + + diff --git a/TEvtGen/EvtGenModels/EvtJscont.hh b/TEvtGen/EvtGenModels/EvtJscont.hh new file mode 100644 index 00000000000..782cac6d03a --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtJscont.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtJscont.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTJSCONT_HH +#define EVTJSCONT_HH + +#include "EvtGenBase/EvtDecayIncoherent.hh" + +class EvtParticle; + +class EvtJscont:public EvtDecayIncoherent { + +public: + + EvtJscont() {} + virtual ~EvtJscont(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtJscontCDF.cxx b/TEvtGen/EvtGenModels/EvtJscontCDF.cxx new file mode 100644 index 00000000000..0f6dcacfc0d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtJscontCDF.cxx @@ -0,0 +1,149 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtJscontCDF.cc +// +// Description: Routine to generate e+e- --> q\barq via Jetset +// +// Modification history: +// +// PCK August 4, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtJscontCDF.hh" +#include "EvtGenModels/EvtJetSetCDF.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtReport.hh" +#include +using namespace std; + +extern "C" { + extern void continuumcdf_(double *,int *,int *,int *, + double *,double *,double *,double *); +} + +extern "C" { + extern void lygive_(const char *cnfgstr,int length); +} + + +EvtJscontCDF::~EvtJscontCDF() {} + +std::string EvtJscontCDF::getName(){ + + return "JSCONTCDF"; + +} + +EvtDecayBase* EvtJscontCDF::clone(){ + + return new EvtJscontCDF; + +} + +void EvtJscontCDF::init(){ + + // check that there are 1 argument + + checkNArg(1,2); + +} + + +void EvtJscontCDF::initProbMax(){ + + noProbMax(); + +} + + +void EvtJscontCDF::decay( EvtParticle *p){ + + EvtJetSetCDF::jetSetInit(); + static int first=1; + + if (first){ + first=0; + + float val=0.6; + if ( getNArg()>1) { + val=getArg(1); + } + char vak[20]; + sprintf(vak,"PARJ(13)=%f",val); + std::string temp(vak); + lygive_(temp.c_str(),strlen(temp.c_str())); + } + EvtVector4R p4[100]; + + double energy=p->mass(); + + int flavor; + + int i,more; + int ndaugjs; + int kf[100]; + EvtId id[100]; + int type[MAX_DAUG]; + + flavor=(int)getArg(0); + + double px[100],py[100],pz[100],e[100]; + + if ( p->getNDaug() != 0 ) { return;} + do{ + + continuumcdf_(&energy,&flavor,&ndaugjs,kf,px,py,pz,e); + + for(i=0;i=e[i]*e[i]){ + + e[i]=sqrt(px[i]*px[i]+py[i]*py[i]+pz[i]*pz[i])+0.0000000000001; + + } + + p4[i].set(e[i],px[i],py[i],pz[i]); + + } + + int channel=EvtDecayTable::inChannelList(p->getId(),ndaugjs,id); + + more=((channel!=-1)&&(channel!=p->getChannel())); + + + }while(more); + + p->makeDaughters(ndaugjs,id); + + for(i=0;igetDaug(i)->init( id[i], p4[i] ); + } + return ; +} + + + + diff --git a/TEvtGen/EvtGenModels/EvtJscontCDF.hh b/TEvtGen/EvtGenModels/EvtJscontCDF.hh new file mode 100644 index 00000000000..4eb5ef50559 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtJscontCDF.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtJscont.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTJSCONTCDF_HH +#define EVTJSCONTCDF_HH + +#include "EvtGenBase/EvtDecayIncoherent.hh" + +class EvtParticle; + +class EvtJscontCDF:public EvtDecayIncoherent { + +public: + + EvtJscontCDF() {} + virtual ~EvtJscontCDF(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtKKLambdaC.cxx b/TEvtGen/EvtGenModels/EvtKKLambdaC.cxx new file mode 100644 index 00000000000..51c7d21ff9a --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtKKLambdaC.cxx @@ -0,0 +1,90 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSLPole.cc +// +// Description: Routine to implement semileptonic decays according +// to light cone sum rules +// +// Modification history: +// +// DJL April 23, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtKKLambdaC.hh" +#include "EvtGenModels/EvtKKLambdaCFF.hh" +#include "EvtGenBase/EvtSemiLeptonicBaryonAmp.hh" +#include + +EvtKKLambdaC::~EvtKKLambdaC() {} + +std::string EvtKKLambdaC::getName(){ + + return "KK_LAMBDAC_SL"; + +} + + +EvtDecayBase* EvtKKLambdaC::clone(){ + + return new EvtKKLambdaC; + +} + +void EvtKKLambdaC::decay( EvtParticle *p ){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + _calcamp->CalcAmp(p,_amp2,_ffmodel); + return; +} + +void EvtKKLambdaC::initProbMax(){ + +EvtId parnum,mesnum,lnum,nunum; + +parnum = getParentId(); +mesnum = getDaug(0); +lnum = getDaug(1); +nunum = getDaug(2); + +//double mymaxprob = _calcamp->CalcMaxProb(parnum,mesnum, +// lnum,nunum,_ffmodel); + double mymaxprob=100.; +setProbMax(mymaxprob); + +} + + +void EvtKKLambdaC::init(){ + + checkNDaug(3); + + //We expect the parent to be a dirac + //and the daughters to be dirac lepton neutrino + + checkSpinParent(EvtSpinType::DIRAC); + checkSpinDaughter(0,EvtSpinType::DIRAC); + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + + _ffmodel = new EvtKKLambdaCFF(getNArg(),getArgs()); + + _calcamp = new EvtSemiLeptonicBaryonAmp; + +} + diff --git a/TEvtGen/EvtGenModels/EvtKKLambdaC.hh b/TEvtGen/EvtGenModels/EvtKKLambdaC.hh new file mode 100644 index 00000000000..2e8ac2bd0d7 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtKKLambdaC.hh @@ -0,0 +1,50 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtKKLambdaC.hh +// +// Description:Semileptonic decays with pole form form factors +// +// Modification history: +// +// DJL April 23, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTKKLAMBDAC_HH +#define EVTKKLAMBDAC_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" + +class Evtparticle; + +class EvtKKLambdaC:public EvtDecayAmp { + +public: + + EvtKKLambdaC() {} + virtual ~EvtKKLambdaC(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void initProbMax(); + void init(); + +private: + EvtSemiLeptonicFF *_ffmodel; + EvtSemiLeptonicAmp *_calcamp; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtKKLambdaCFF.cxx b/TEvtGen/EvtGenModels/EvtKKLambdaCFF.cxx new file mode 100644 index 00000000000..3875daaf5fd --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtKKLambdaCFF.cxx @@ -0,0 +1,76 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSLPoleFF.cc +// +// Description: Routine to implement semileptonic form factors +// according to the model SLPoles +// +// Modification history: +// +// DJL April 17,1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtKKLambdaCFF.hh" +#include +#include "EvtGenBase/EvtPDL.hh" +#include +#include + +EvtKKLambdaCFF::EvtKKLambdaCFF(int numarg, double *arglist) { + _nargs = numarg; + for (int i=0; i K* nu nubar +// +// Modification history: +// +// RYD September 29, 1997 Module created +// +//------------------------------------------------------------------------ +// +// Package: EVT +// Module: EvtKstarnunu +// +// +// Implementation: +// +// +// Author: RYD +// Created: Sept. 29 1997 +// +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenModels/EvtKstarnunu.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" + +EvtKstarnunu::~EvtKstarnunu() {} + +std::string EvtKstarnunu::getName(){ + + return "KSTARNUNU"; + +} + + +EvtDecayBase* EvtKstarnunu::clone(){ + + return new EvtKstarnunu; + +} + +void EvtKstarnunu::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(3); + + //We expect the parent to be a scalar + //and the daughters to be K neutrino netrino + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::NEUTRINO); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + +} + + +void EvtKstarnunu::decay(EvtParticle *p){ + + static EvtId NUE=EvtPDL::getId("nu_e"); + static EvtId NUM=EvtPDL::getId("nu_mu"); + static EvtId NUT=EvtPDL::getId("nu_tau"); + static EvtId NUEB=EvtPDL::getId("anti-nu_e"); + static EvtId NUMB=EvtPDL::getId("anti-nu_mu"); + static EvtId NUTB=EvtPDL::getId("anti-nu_tau"); + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + double m_b = p->mass(); + + EvtParticle *meson, *neutrino1, *neutrino2; + meson = p->getDaug(0); + neutrino1 = p->getDaug(1); + neutrino2 = p->getDaug(2); + EvtVector4R momnu1 = neutrino1->getP4(); + EvtVector4R momnu2 = neutrino2->getP4(); + EvtVector4R momkstar = meson->getP4(); + + double v0_0, a0_0, a1_0, a2_0; + double m2v0, m2a0, a1_b, a2_b; + v0_0 = 0.47; + a0_0 = 0.30; + a1_0 = 0.37; + a2_0 = 0.40; + m2v0 = 5.*5.; + m2a0 = 4.8*4.8; + a1_b = -0.023; + a2_b = 0.034; + + EvtVector4R q = momnu1+momnu2; + double q2 = q.mass2(); + + double v0, a1, a2; + v0 = v0_0/(1-q2/m2v0); + a1 = a1_0*(1+a1_b*q2); + a2 = a2_0*(1+a2_b*q2); + + EvtVector4R p4b; p4b.set(m_b,0.,0.,0.); // Do calcs in mother rest frame + + double m_k = meson->mass(); + + EvtTensor4C tds=(-2*v0/(m_b+m_k))*dual(directProd(p4b,momkstar)) + - EvtComplex(0.0,1.0)* + ( (m_b+m_k)*a1*EvtTensor4C::g() + - (a2/(m_b+m_k))*directProd(p4b-momkstar,p4b+momkstar)); + + EvtVector4C l; + + if (getDaug(1)==NUE||getDaug(1)==NUM||getDaug(1)==NUT) { + l=EvtLeptonVACurrent(neutrino1->spParentNeutrino(), + neutrino2->spParentNeutrino()); + } + if (getDaug(1)==NUEB||getDaug(1)==NUMB||getDaug(1)==NUTB) { + l=EvtLeptonVACurrent(neutrino2->spParentNeutrino(), + neutrino1->spParentNeutrino()); + } + + EvtVector4C et0,et1,et2; + et0 = tds.cont1( meson->epsParent(0).conj() ); + et1 = tds.cont1( meson->epsParent(1).conj() ); + et2 = tds.cont1( meson->epsParent(2).conj() ); + + vertex(0,l*et0); + vertex(1,l*et1); + vertex(2,l*et2); + + return; +} + diff --git a/TEvtGen/EvtGenModels/EvtKstarnunu.hh b/TEvtGen/EvtGenModels/EvtKstarnunu.hh new file mode 100644 index 00000000000..ad461b98def --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtKstarnunu.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtKstarnunu.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTKSTARNUNU_HH +#define EVTKSTARNUNU_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtKstarnunu:public EvtDecayAmp { + +public: + + EvtKstarnunu() {} + virtual ~EvtKstarnunu(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtKstarstargamma.cxx b/TEvtGen/EvtGenModels/EvtKstarstargamma.cxx new file mode 100644 index 00000000000..41e53ee7cb6 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtKstarstargamma.cxx @@ -0,0 +1,187 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2002 Caltech +// +// Module: EvtKstarstargamma.cc +// +// Description: Routine for the decau B->K**gamma +// +// Modification history: +// +// Ryd November 15, 2002 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtScalarParticle.hh" +#include "EvtGenBase/EvtVectorParticle.hh" +#include "EvtGenBase/EvtPhotonParticle.hh" +#include "EvtGenBase/EvtTensorParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtKstarstargamma.hh" +#include +#include "EvtGenBase/EvtEvalHelAmp.hh" +#include "EvtGenBase/EvtPropBreitWignerRel.hh" +#include "EvtGenBase/EvtTwoBodyVertex.hh" + +EvtKstarstargamma::~EvtKstarstargamma() {} + +std::string EvtKstarstargamma::getName(){ + + return "KSTARSTARGAMMA"; + +} + + +EvtDecayBase* EvtKstarstargamma::clone(){ + + return new EvtKstarstargamma; + +} + +void EvtKstarstargamma::init(){ + + // check that there are 0 arguments + checkNArg(0); + + // check that there are 3 daughters + checkNDaug(3); + + // check the parent and daughter spins + checkSpinParent(EvtSpinType::SCALAR); + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + checkSpinDaughter(2,EvtSpinType::PHOTON); +} + +void EvtKstarstargamma::initProbMax() { + + //setProbMax(1.0); + +} + +void EvtKstarstargamma::decay( EvtParticle *p){ + +/* + + The EvtEvalHelAmp is completely broken... + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle* kaon = p->getDaug(0); + EvtParticle* pion = p->getDaug(1); + EvtParticle* photon = p->getDaug(2); + + + EvtComplexPtrPtr Hd1=new EvtComplexPtr[5]; + Hd1[0]=new EvtComplex[2]; + Hd1[1]=new EvtComplex[2]; + Hd1[2]=new EvtComplex[2]; + Hd1[3]=new EvtComplex[2]; + Hd1[4]=new EvtComplex[2]; + + Hd1[0][0]=0.0; + Hd1[0][1]=0.0; + Hd1[1][0]=0.0; + Hd1[1][1]=0.0; + Hd1[2][0]=0.0; + Hd1[2][1]=0.0; + Hd1[3][0]=0.0; + Hd1[3][1]=1.0; + Hd1[4][0]=0.0; + Hd1[4][1]=0.0; + + EvtEvalHelAmp d1(EvtSpinType::SCALAR,EvtSpinType::TENSOR, + EvtSpinType::PHOTON,Hd1); + + EvtScalarParticle theB; + + theB.init(p->getId(),p->getP4Restframe()); + + EvtVector4R theKstarP4=kaon->getP4()+pion->getP4(); + + EvtTensorParticle theKstar; + theKstar.init(EvtPDL::getId(std::string("K_2*0")),theKstarP4); + + EvtPhotonParticle thePhoton; + thePhoton.init(EvtPDL::getId(std::string("K_2*0")),photon->getP4()); + + theKstar.addDaug(&theB); + thePhoton.addDaug(&theB); + + EvtAmp amp1; + + d1.evalAmp(&theB,amp1); + + EvtComplexPtrPtr Hd2=new EvtComplexPtr[1]; + Hd2[0]=new EvtComplex[1]; + + Hd2[0][0]=1.0; + + + EvtEvalHelAmp d2(EvtSpinType::TENSOR,EvtSpinType::SCALAR, + EvtSpinType::SCALAR,Hd2); + + + EvtVector4R theKstarP4boost(theKstarP4.get(0),-theKstarP4.get(1),-theKstarP4.get(2),-theKstarP4.get(3)); + + EvtScalarParticle theKaon; + theKaon.init(EvtPDL::getId(std::string("K+")),boostTo(kaon->getP4(),theKstarP4boost)); + + EvtScalarParticle thePion; + thePion.init(EvtPDL::getId(std::string("pi+")),boostTo(pion->getP4(),theKstarP4boost)); + + theKaon.addDaug(&theKstar); + thePion.addDaug(&theKstar); + + // Calculate the propagator + + double m = theKstarP4.mass(); + EvtTwoBodyVertex v(0.5,0.14,1.4,2); + EvtTwoBodyKine v1(0.5,0.14,m); + EvtPropBreitWignerRel prop(1.4,0.2); + + // Mass-dependent width correction and amplitude calculation + + double width = prop.g0() * v.widthFactor(v1); + prop.set_g0(width); + EvtComplex bwamp = prop.evaluate(m); + + + EvtAmp amp2; + + d2.evalAmp(&theKstar,amp2); + + vertex(0,bwamp*(amp1._amp[0]*amp2._amp[0]+ + amp1._amp[1]*amp2._amp[1]+ + amp1._amp[2]*amp2._amp[2]+ + amp1._amp[3]*amp2._amp[3]+ + amp1._amp[4]*amp2._amp[4])); + + vertex(1,bwamp*(amp1._amp[5]*amp2._amp[0]+ + amp1._amp[6]*amp2._amp[1]+ + amp1._amp[7]*amp2._amp[2]+ + amp1._amp[8]*amp2._amp[3]+ + amp1._amp[9]*amp2._amp[4])); + +*/ + + return; +} + + + + + diff --git a/TEvtGen/EvtGenModels/EvtKstarstargamma.hh b/TEvtGen/EvtGenModels/EvtKstarstargamma.hh new file mode 100644 index 00000000000..8dacdee29a3 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtKstarstargamma.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2002 Caltech +// +// Module: EvtGen/EvtKstarstargamma.hh +// +// Description: +// +// Modification history: +// +// RYD Nov 15, 2002 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTKSTARSTARGAMMA_HH +#define EVTKSTARSTARGAMMA_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtKstarstargamma:public EvtDecayAmp { + +public: + + EvtKstarstargamma() {} + virtual ~EvtKstarstargamma(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtLNuGamma.cxx b/TEvtGen/EvtGenModels/EvtLNuGamma.cxx new file mode 100644 index 00000000000..8ca530b8e8c --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtLNuGamma.cxx @@ -0,0 +1,173 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2001 Caltech +// +// Module: EvtLNuGamma.cc +// +// Description: B+ -> l+ nu gamma +// +// +// Modification history: +// +// Edward Chen April 24, 2001 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenModels/EvtLNuGamma.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtTensor4C.hh" + +EvtLNuGamma::EvtLNuGamma(){ + _fafvzero = false; +} + +EvtLNuGamma::~EvtLNuGamma() {} + +std::string EvtLNuGamma::getName(){ + + return "LNUGAMMA"; + +} + + +EvtDecayBase* EvtLNuGamma::clone(){ + + return new EvtLNuGamma; + +} + +void EvtLNuGamma::init(){ + + // check that there are 3 or 4 arguments + checkNArg(3,4); + checkNDaug(3); + + if (getNArg() == 4){ + // Argv[3] is a flag set to 0 if abs(f_a/f_v) is 1 + // and not set to 0 if f_a/f_v is set to 0. + if (getArg(3) > 0){ + _fafvzero = true; + } + else{ + _fafvzero = false; + } + } + else{ + _fafvzero = false; + } + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::DIRAC); + checkSpinDaughter(1,EvtSpinType::NEUTRINO); + checkSpinDaughter(2,EvtSpinType::PHOTON); +} + +void EvtLNuGamma::initProbMax(){ + + + setProbMax(7000.0); + +} + +void EvtLNuGamma::decay(EvtParticle *p){ + + static EvtId BM=EvtPDL::getId("B-"); + static EvtId DM=EvtPDL::getId("D-"); + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtComplex myI(0,1); + + EvtParticle *lept, *neut,*phot; + lept=p->getDaug(0); + neut=p->getDaug(1); + phot=p->getDaug(2); + + EvtVector4C lept1,lept2,photon1,photon2; + + if (p->getId()==BM||p->getId()==DM) { + lept1=EvtLeptonVACurrent(lept->spParent(0),neut->spParentNeutrino()); + lept2=EvtLeptonVACurrent(lept->spParent(1),neut->spParentNeutrino()); + } + else{ + lept1=EvtLeptonVACurrent(neut->spParentNeutrino(),lept->spParent(0)); + lept2=EvtLeptonVACurrent(neut->spParentNeutrino(),lept->spParent(1)); + } + + + + EvtVector4R photp = phot->getP4(); // Photon 4-momentum in parent rest frame + double photE = photp.get(0); // Photon energy in parent rest frame + + EvtVector4C photone1 = phot->epsParentPhoton(0).conj(); + EvtVector4C photone2 = phot->epsParentPhoton(1).conj(); + + EvtVector4R parVelocity(1,0,0,0); // Parent velocity in parent rest-frame + + double fv,fa; + + fv = getFormFactor(photE); + if (_fafvzero){ + fa = 0.0; + } + else if (p->getId()==BM||p->getId()==DM) { + fa = - fv; + } + else{ + fa = fv; + } + + EvtVector4C temp1a = dual(directProd(parVelocity,photp)).cont2(photone1); + EvtVector4C temp2a = dual(directProd(parVelocity,photp)).cont2(photone2); + + EvtVector4C temp1b = (photone1)*(parVelocity*photp); + EvtVector4C temp1c = (photp)*(photone1*parVelocity); + + EvtVector4C temp2b = (photone2)*(parVelocity*photp); + EvtVector4C temp2c = (photp)*(photone2*parVelocity); + + photon1 = (temp1a*fv) + (myI*fa*(temp1b - temp1c)); + photon2 = (temp2a*fv) + (myI*fa*(temp2b - temp2c)); + + vertex(0,0,lept1.cont(photon1)); + vertex(0,1,lept1.cont(photon2)); + vertex(1,0,lept2.cont(photon1)); + vertex(1,1,lept2.cont(photon2)); + + return; + +} + +double EvtLNuGamma::getFormFactor(double photonEnergy){ + // Arg[0] = photon mass cutoff (GeV) + // Arg[1] = R (GeV^(-1)) + // Arg[2] = m_b (GeV) + // Using Korchemsky et al. Phy Rev D 61 (2000) 114510 + // Up to a constant + + double formFactor = 0; + double qu = 2./3.; + double qb = -1./3.; + + if (photonEnergy > getArg(0)){ + formFactor = (1/photonEnergy) * ((qu*getArg(1)) - (qb/getArg(2))); + } + return formFactor; +} diff --git a/TEvtGen/EvtGenModels/EvtLNuGamma.hh b/TEvtGen/EvtGenModels/EvtLNuGamma.hh new file mode 100644 index 00000000000..6dba0035309 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtLNuGamma.hh @@ -0,0 +1,49 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2001 Caltech +// +// Module: EvtGen/EvtLNuGamma.hh +// +// Description: B+ -> l+ nu gamma. Form factor is tree level, from +// Korchemsky, Pirjol, and Yan,Phy Rev D 61 (200) 114510 +// +// +// Modification history: +// +// Edward Chen April 24, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTLNUGAMMA_HH +#define EVTLNUGAMMA_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtLNuGamma:public EvtDecayAmp { + +public: + + EvtLNuGamma(); + virtual ~EvtLNuGamma(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + double getFormFactor(double photonEnergy); + + bool _fafvzero; + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.cxx b/TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.cxx new file mode 100644 index 00000000000..d9db16beb98 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.cxx @@ -0,0 +1,136 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2003 Caltech +// +// Module: EvtGen/EvtRadiativeBaryonicPenguins.hh +// +// Description:Implementation of the decay B- -> lambda p_bar gamma according to +// Cheng, Yang; hep-ph/0201015 +// +// Modification history: +// +// JFS December 16th, 2003 Module created +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenModels/EvtLambdaP_BarGamma.hh" +#include "EvtGenBase/EvtGammaMatrix.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtSpinType.hh" +#include "EvtGenBase/EvtDiracParticle.hh" +#include "EvtGenBase/EvtPhotonParticle.hh" +#include +using std::cout; +using std::endl; + +EvtLambdaP_BarGamma::EvtLambdaP_BarGamma() : + _mLambdab ( 5.624), // Lambda_b mass + _mLambda0 ( 1.115684), // Lambda0 mass + _c7Eff ( -0.31), // Wilson coefficient + _mb ( 4.4), // running b mass + _mV ( 5.42), // pole mass vector current + _mA ( 5.86), // pole mass axial current + _GF ( 1.166E-5), // Fermi constant + _gLambdab ( 16), // coupling constant Lambda_b -> B- p + _e0 ( 1), // electromagnetic coupling (+1) + _g1 ( 0.64), // heavy-light form factors at q_mSqare + _g2 ( -0.10), + _f1 ( 0.64), + _f2 ( -0.31), + _VtbVtsStar ( 0.038) // |V_tb V_ts^*| +{ +} + + + +std::string EvtLambdaP_BarGamma::getName(){ + return "B_TO_LAMBDA_PBAR_GAMMA"; +} + +EvtDecayBase* EvtLambdaP_BarGamma::clone(){ + return new EvtLambdaP_BarGamma; +} + +void EvtLambdaP_BarGamma::init() { + // no arguments, daughter lambda p_bar gamma + checkNArg(0); + checkNDaug(3); + + checkSpinParent(EvtSpinType::SCALAR); + checkSpinDaughter(0, EvtSpinType::DIRAC); + checkSpinDaughter(1, EvtSpinType::DIRAC); + checkSpinDaughter(2, EvtSpinType::PHOTON); +} + + +// initialize phasespace and calculate the amplitude +void EvtLambdaP_BarGamma::decay(EvtParticle* p) { + EvtComplex I(0, 1); + + p->initializePhaseSpace(getNDaug(), getDaugs()); + + EvtDiracParticle* theLambda = static_cast(p->getDaug(0)); + EvtVector4R lambdaMomentum = theLambda->getP4Lab(); + + EvtDiracParticle* theAntiP = static_cast(p->getDaug(1)); + + EvtPhotonParticle* thePhoton = static_cast(p->getDaug(2)); + EvtVector4R photonMomentum = thePhoton->getP4Lab(); // get momentum in the same frame + + // loop over all possible spin states + for (int i=0; i<2; ++i) { + EvtDiracSpinor lambdaPol = theLambda->spParent(i); + for (int j=0; j<2; ++j) { + EvtDiracSpinor antiP_Pol = theAntiP->spParent(j); + for (int k=0; k<2; ++k) { + EvtVector4C photonPol = thePhoton->epsParentPhoton(k); // one of two possible polarization states + EvtGammaMatrix photonGamma; // sigma[mu][nu] * epsilon[mu] * k[nu] (watch lower indices) + for (int mu=0; mu<4; ++mu) + for (int nu=0; nu<4; ++nu) + photonGamma += EvtGammaMatrix::sigmaLower(mu, nu) * photonPol.get(mu) * photonMomentum.get(nu); + + EvtComplex amp = + -I*_gLambdab * lambdaPol.adjoint() * ((constA()*EvtGammaMatrix::id() + constB()*EvtGammaMatrix::g5()) + * photonGamma * (slash(lambdaMomentum) + slash(photonMomentum) + _mLambdab*EvtGammaMatrix::id()) + / ((lambdaMomentum + photonMomentum)*(lambdaMomentum + photonMomentum) - _mLambdab*_mLambdab) + * EvtGammaMatrix::g5() * antiP_Pol); + // use of parentheses so I do not have to define EvtDiracSpinor*EvtGammaMatrix, which shouldn't be defined to prevent errors in indexing + + vertex(i, j, k, amp); + } + } + } +} + +void EvtLambdaP_BarGamma::initProbMax() +{ + // setProbMax(1); + setProbMax(9.0000E-13); // found by trial and error +} + +// form factors at 0 +const double EvtLambdaP_BarGamma::f0(double fqm, int n){ + return fqm * pow(1 - pow(_mLambdab - _mLambda0, 2) / (_mV * _mV), n); +} + +const double EvtLambdaP_BarGamma::g0(double gqm, int n){ + return gqm * pow(1 - pow(_mLambdab - _mLambda0, 2) / (_mA * _mA), n); +} + + +const double EvtLambdaP_BarGamma::constA(){ + return _GF/sqrt(2.) * _e0 / (8 * EvtConst::pi*EvtConst::pi) * 2 * _c7Eff * _mb * _VtbVtsStar + * (f0(_f1) - f0(_f2)); +} + +const double EvtLambdaP_BarGamma::constB(){ + return _GF/sqrt(2.) * _e0 / (8 * EvtConst::pi*EvtConst::pi) * 2 * _c7Eff * _mb * _VtbVtsStar + * (g0(_g1) - (_mLambdab - _mLambda0) / (_mLambdab + _mLambda0) * g0(_g2)); +} diff --git a/TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.hh b/TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.hh new file mode 100644 index 00000000000..fbd5b4e244d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtLambdaP_BarGamma.hh @@ -0,0 +1,77 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2003 Caltech +// +// Module: EvtGen/EvtRadiativeBaryonicPenguins.hh +// +// Description:Implementation of the decay B- -> lambda p_bar gamma according to +// Cheng, Yang; hep-ph/0201015 +// +// Modification history: +// +// JFS December 16th, 2003 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTLAMBDAPBARGAMMA_HH +#define EVTLAMBDAPBARGAMMA_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtConst.hh" + +class EvtLambdaP_BarGamma : public EvtDecayAmp { + +public: + + EvtLambdaP_BarGamma(); + ~EvtLambdaP_BarGamma() {;} + + std::string getName(); + EvtDecayBase* clone(); + void decay(EvtParticle* p); + void init(); + void initProbMax(); + +private: + // some constants to make the code easier to read and maintain + // these three should be constants... (implementation of getMass() prohibits this) + double _mLambdab; // = 5.624; // Lambda_b mass + double _mLambda0; // = 1.115684; // Lambda0 mass + double _c7Eff; // = -0.31; // Wilson coefficient + double _mb; // = 4.4; // running b mass + double _mV; // = 5.42; // pole mass vector current + double _mA; // = 5.86; // pole mass axial current + double _GF; // = 1.166E-5; // Fermi constant + double _gLambdab; // = 16; // coupling constant Lambda_b -> B- p + double _e0; // = 1; // electromagnetic coupling (+1) + double _g1; // = 0.64; // heavy-light form factors at q_mSqare + double _g2; // = -0.10; + double _f1; // = 0.64; + double _f2; // = -0.31; + double _VtbVtsStar;// = 0.038; // |V_tb V_ts^*| + + // user never needs to call this -> private + // baryonic form factors f(p), g(p), at p=0 + const double f0(const double f_qm, int n=1); // calculate f(0) with f(q_max) + const double g0(const double f_qm, int n=1); // calculate g(0) with g(q_max) + + // shorthand for constants a and b in the formula + const double constA(); + const double constB(); + + // initialize phasespace and calculate the amplitude for one (i=0,1) state of the photon + EvtComplex calcAmpliude(const EvtParticle* p, const unsigned int polState); + +}; + + +#endif diff --git a/TEvtGen/EvtGenModels/EvtLb2Lll.cxx b/TEvtGen/EvtGenModels/EvtLb2Lll.cxx new file mode 100644 index 00000000000..9565db82a5f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtLb2Lll.cxx @@ -0,0 +1,630 @@ +//---------------------------------------------------------------------------------- +// +// Module: EvtLb2Lll.cpp +// +// Desription: Routine to implement Lambda_b0 -> Lambda_0 l+ l- decays accroding to +// several models: Chen. Geng. +// Aliev. Ozpineci. Savci. +// +// Modification history: +// +// 09/02/2009 PR Commented check for (anti-)Lambda0 names +// 15/09/2004 PR Module created according to PHSP model +// 20/02/2005 PR Added parameters, created matrix element (without polarization) +// 04/03/2005 PR LD contrib., corrected WC eff. according to Chen. Geng. +// +//---------------------------------------------------------------------------------- + +#ifdef WIN32 +#pragma warning( disable : 4786 ) +// Disable anoying warning about symbol size +#endif + +#include "EvtGenModels/EvtLb2Lll.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtDiracParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenBase/EvtGammaMatrix.hh" +#include +#include + +EvtLb2Lll::~EvtLb2Lll() {} + +EvtDecayBase* EvtLb2Lll::clone(){ + return new EvtLb2Lll; +} + +std::string EvtLb2Lll::getName(){ + return "Lb2Lll"; +} + +void EvtLb2Lll::init(){ + + if(getNArg()>8){ // Decay parameters + report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll generator expected max. 8 arguments but found: " << getNArg() << std::endl; + report(INFO ,"EvtGen") << " 1. Lambda_b0 polarization - zero is default" << std::endl; + report(INFO ,"EvtGen") << " 2. Model type - \"SM\" for Standard Model is default" << std::endl; + report(INFO ,"EvtGen") << " 3. Form-Factors - \"HQET\" is used by default" << std::endl; + report(INFO ,"EvtGen") << " 4. How to set polarization - \"ModifiedSpinors\" is default" << std::endl; + report(INFO ,"EvtGen") << " 5. Include long distance (LD) effects - \"SD\" (no) is default" << std::endl; + report(INFO ,"EvtGen") << " 6. NonFactorizable contribution (omega) to b->sg decay at q2=0 " << std::endl; + report(INFO ,"EvtGen") << " 7. Note on every x-th decay" << std::endl; + report(INFO ,"EvtGen") << " 8. Maximum probability - automatic by default" << std::endl; + ::abort(); + } + + if(getNDaug()!=3){ // Check that there are 3 daughters only + report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll generator expected 3 daughters but found: " << getNDaug() << std::endl; + ::abort(); + } + + // TODO: better check based on spin and falvour is needed to allow usage of aliases ! + if(EvtPDL::name(getParentId())=="Lambda_b0"){ // Check daughters of Lambda_b0 + report(INFO,"EvtGen") << " EvtLb2Lll generator found Lambda_b0" << std::endl; + //if(EvtPDL::name(getDaug(0))!="Lambda0"){ + // report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll generator expected Lambda0 daughter but found: " << EvtPDL::name(getDaug(0)) << std::endl; + // ::abort(); + //} + if(EvtPDL::name(getDaug(1))=="e-" && EvtPDL::name(getDaug(2))=="e+"){ + m_decayName="Lambda_b0 -> Lambda0 e- e+"; + report(INFO,"EvtGen") << " EvtLb2Lll generator found decay: Lambda_b0 -> Lambda0 e- e+" << std::endl; + }else if(EvtPDL::name(getDaug(1))=="mu-" && EvtPDL::name(getDaug(2))=="mu+"){ + m_decayName="Lambda_b0 -> Lambda0 mu- mu+"; + report(INFO,"EvtGen") << " EvtLb2Lll generator found decay: Lambda_b0 -> Lambda0 mu- mu+" << std::endl; + }else if(EvtPDL::name(getDaug(1))=="tau-" && EvtPDL::name(getDaug(2))=="tau+"){ + m_decayName="Lambda_b0 -> Lambda0 tau- tau+"; + report(INFO,"EvtGen") << " EvtLb2Lll generator found decay: Lambda_b0 -> Lambda0 tau- tau+" << std::endl; + }else{ + report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll generator expected lepton pair daughters but found: " << EvtPDL::name(getDaug(1)) << " " << EvtPDL::name(getDaug(2)) << std::endl; + ::abort(); + } + //TODO: The model is known not to work correctly for anti-Lambda_b0 (A_FB does not change its sign) + }else if(EvtPDL::name(getParentId())=="anti-Lambda_b0"){ // Check daughters of anti-Lambda_b0 + report(INFO,"EvtGen") << " EvtLb2Lll generator found anti-Lambda_b0" << std::endl; + //if(EvtPDL::name(getDaug(0))!="anti-Lambda0"){ + // report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll generator expected anti-Lambda0 daughter but found: " << EvtPDL::name(getDaug(0)) << std::endl; + // ::abort(); + //} + if(EvtPDL::name(getDaug(1))=="e+" && EvtPDL::name(getDaug(2))=="e-"){ + m_decayName="anti-Lambda_b0 -> anti-Lambda0 e+ e-"; + report(INFO,"EvtGen") << " EvtLb2Lll generator found decay: anti-Lambda_b0 -> anti-Lambda0 e+ e-" << std::endl; + }else if(EvtPDL::name(getDaug(1))=="mu+" && EvtPDL::name(getDaug(2))=="mu-"){ + m_decayName="anti-Lambda_b0 -> anti-Lambda0 mu+ mu-"; + report(INFO,"EvtGen") << " EvtLb2Lll generator found decay: anti-Lambda_b0 -> anti-Lambda0 mu+ mu-" << std::endl; + }else if(EvtPDL::name(getDaug(1))=="tau-" && EvtPDL::name(getDaug(2))=="tau+"){ + m_decayName="anti-Lambda_b0 -> anti-Lambda0 tau+ tau-"; + report(INFO,"EvtGen") << " EvtLb2Lll generator found decay: anti-Lambda_b0 -> anti-Lambda0 tau+ tau-" << std::endl; + }else{ + report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll generator expected lepton pair daughters but found: " << EvtPDL::name(getDaug(1)) << " " << EvtPDL::name(getDaug(2)) << std::endl; + ::abort(); + } + }else{ // This model is not intended for decay of anything else than (anti-)Lambda_b0 + report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll generator expected (anti-)Lambda_b0 parent but found: " << EvtPDL::name(getParentId()) << std::endl; + ::abort(); + } + + // Read and check all parameters + if(getNArg()>0){ + if(getArg(0)>1. || getArg(0)<-1.){ + report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll expects polarization to be in interval <-1,1>, not " << getArg(0) << std::endl; + ::abort(); + } + m_polarizationLambdab0 = getArg(0); + }else{ + m_polarizationLambdab0 = 0; + } + report(INFO,"EvtGen") << " EvtLb2Lll set Lambda_b0 polarization to " << m_polarizationLambdab0 << std::endl; + + if(getNArg()>1){ + if(getArgStr(1).substr(1,getArgStr(1).size()-2)!="SM" && + getArgStr(1).substr(1,getArgStr(1).size()-2)!="-C7_SM" && + getArgStr(1).substr(1,getArgStr(1).size()-2)!="SUSY-ChenGeng"){ + report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll doesn't know this physics model: " << getArgStr(1) << std::endl; + ::abort(); + } + m_HEPmodel = getArgStr(1).substr(1,getArgStr(1).size()-2); + }else{ + m_HEPmodel = "SM"; + } + report(INFO,"EvtGen") << " EvtLb2Lll will use this physics model: " << m_HEPmodel << std::endl; + + if(getNArg()>2){ + if(getArgStr(2).substr(1,getArgStr(2).size()-2)!="HQET" && + getArgStr(2).substr(1,getArgStr(2).size()-2)!="HQET-noF2" && + getArgStr(2).substr(1,11) !="HQET-delta="){ + report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll doesn't know this Form-Factors model: " << getArgStr(2) << std::endl; + ::abort(); + } + m_FFtype = getArgStr(2).substr(1,getArgStr(2).size()-2); + }else{ + m_FFtype = "HQET"; + } + report(INFO,"EvtGen") << " EvtLb2Lll will use this Form-Factors model: " << m_FFtype << std::endl; + + if(getNArg()>3){ + if(getArgStr(3).substr(1,getArgStr(3).size()-2)!="Unpolarized"){ + report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll doesn't know kind of introducing polarization: " << getArgStr(3) << std::endl; + ::abort(); + } + m_polarizationIntroduction = getArgStr(3).substr(1,getArgStr(3).size()-2); + }else{ + m_polarizationIntroduction = "Unpolarized"; + } + report(INFO,"EvtGen") << " EvtLb2Lll will use this kind of introducing polarization: " << m_polarizationIntroduction << std::endl; + + if(getNArg()>4){ + if(getArgStr(4).substr(1,getArgStr(4).size()-2)!="SD" && getArgStr(4).substr(1,getArgStr(4).size()-2)!="LD"){ + report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll didn't find SD or LD parameter: " << getArgStr(4) << std::endl; + ::abort(); + } + m_effectContribution = getArgStr(5).substr(1,getArgStr(4).size()-2); + }else{ + m_effectContribution = "SD"; + } + report(INFO,"EvtGen") << " EvtLb2Lll will include contribution from these effects: " << m_effectContribution << std::endl; + + if(getNArg()>5){ + if(fabs(getArg(5))>0.15){ + report(WARNING,"EvtGen") << " WARNING: EvtLb2Lll found very high contribution to b->sg decay at q2=0: " << getArg(5) << std::endl; + } + m_omega = getArg(5); + }else{ + m_omega = 0; + } + report(INFO,"EvtGen") << " EvtLb2Lll will use this contribution to b->sg decay at q2=0: " << m_omega << std::endl; + + if(getNArg()>6) m_noTries = (long)(getArg(6)); + else m_noTries = 0; + + if(getNArg()>7){ + if(getArg(7)<0.){ + report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll expects positive maximum probability not : " << getArg(7) << std::endl; + ::abort(); + } + m_maxProbability = getArg(7); + }else{ + m_maxProbability = 0.; + } + report(INFO,"EvtGen") << " EvtLb2Lll maximum probability was set to " << m_maxProbability << std::endl; + m_poleSize=0; + + // Initialize Wilson coeficients by Buras and Munz + // TODO: should have common W.C. source for all decays in EvtGen + m_WC.CalculateAllCoeficients(); + +} + +void EvtLb2Lll::initProbMax(){ + + report(INFO,"EvtGen") << " EvtLb2Lll is finding maximum probability ... " << std::endl; + + if(m_maxProbability==0){ + + EvtDiracParticle *parent = new EvtDiracParticle; + parent->noLifeTime(); + parent->init(getParentId(),EvtVector4R(EvtPDL::getMass(getParentId()),0,0,0)); + parent->setDiagonalSpinDensity(); + + EvtAmp amp; + EvtId daughters[3] = {getDaug(0),getDaug(1),getDaug(2)}; + amp.init(getParentId(),3,daughters); + parent->makeDaughters(3,daughters); + EvtParticle *lambda = parent->getDaug(0); + EvtParticle *lep1 = parent->getDaug(1); + EvtParticle *lep2 = parent->getDaug(2); + lambda -> noLifeTime(); + lep1 -> noLifeTime(); + lep2 -> noLifeTime(); + + EvtSpinDensity rho; + rho.setDiag(parent->getSpinStates()); + + double M0 = EvtPDL::getMass(getParentId()); + double mL = EvtPDL::getMass(getDaug(0)); + double m1 = EvtPDL::getMass(getDaug(1)); + double m2 = EvtPDL::getMass(getDaug(2)); + + double q2,pstar,elambda,theta; + double q2min = (m1+m2)*(m1+m2); + double q2max = (M0-mL)*(M0-mL); + + EvtVector4R p4lambda,p4lep1,p4lep2,boost; + + report(INFO,"EvtGen") << " EvtLb2Lll is probing whole phase space ..." << std::endl; + + int i,j; + double prob=0; + for(i=0;i<=100;i++){ + q2 = q2min+i*(q2max-q2min)/100.; + elambda = (M0*M0+mL*mL-q2)/2/M0; + if(i==0) pstar = 0; + else pstar = sqrt(q2-(m1+m2)*(m1+m2))*sqrt(q2-(m1-m2)*(m1-m2))/2/sqrt(q2); + boost.set(M0-elambda,0,0,+sqrt(elambda*elambda-mL*mL)); + p4lambda.set(elambda,0,0,-sqrt(elambda*elambda-mL*mL)); + for(j=0;j<=45;j++){ + theta = j*EvtConst::pi/45; + p4lep1.set(sqrt(pstar*pstar+m1*m1),0,+pstar*sin(theta),+pstar*cos(theta)); + p4lep2.set(sqrt(pstar*pstar+m2*m2),0,-pstar*sin(theta),-pstar*cos(theta)); + //std::cout << "p1: " << p4lep1 << " p2: " << p4lep2 << " pstar: " << pstar << std::endl; + p4lep1 = boostTo(p4lep1,boost); + p4lep2 = boostTo(p4lep1,boost); + lambda -> init(getDaug(0),p4lambda); + lep1 -> init(getDaug(1),p4lep1 ); + lep2 -> init(getDaug(2),p4lep2 ); + calcAmp(&,parent); + prob = rho.normalizedProb(amp.getSpinDensity()); + //std::cout << "q2: " << q2 << " \t theta: " << theta << " \t prob: " << prob << std::endl; + //std::cout << "p1: " << p4lep1 << " p2: " << p4lep2 << " q2-q2min: " << q2-(m1+m2)*(m1+m2) << std::endl; + if(prob>m_maxProbability){ + report(INFO,"EvtGen") << " - probability " << prob << " found at q2 = " << q2 << " (" << 100*(q2-q2min)/(q2max-q2min) << " %) and theta = " << theta*180/EvtConst::pi << std::endl; + m_maxProbability=prob; + } + } + //::abort(); + } + + //m_poleSize = 0.04*q2min; + m_maxProbability *= 1.2; + delete parent; + } + + setProbMax(m_maxProbability); + report(INFO,"EvtGen") << " EvtLb2Lll set up maximum probability to " << m_maxProbability << std::endl; + +} + +void EvtLb2Lll::decay(EvtParticle* parent){ + + //setWeight(parent->initializePhaseSpace(getNDaug(),getDaugs(),m_poleSize,1,2)); + parent->initializePhaseSpace(getNDaug(),getDaugs()); + calcAmp(&_amp2,parent); + +} + +void EvtLb2Lll::calcAmp(EvtAmp *amp,EvtParticle *parent){ + + static long noTries=0; + static double delta=0; + + EvtComplex Matrix[2][2][2][2]; + + EvtComplex i1(0,1); + + int i,j,spins[4]; + char ch; + + double r,M_L,M_Lb,M_s,M_c,M_b,q2,alpha,alpha_s,eta,M_W,M_t; + double M_psi[2]={0,0},Gamma_psi[2]={0,0},k_psi[2]={0,0}; + double F0_1,F0_2,a_F1,a_F2,b_F1,b_F2,F1,F2; + double f_1,f_2,f_3,g_1,g_2,g_3,f_1T,f_2T,f_3T,g_1T,g_2T,g_3T,f_TV,f_TS,g_TV,g_TS,f_T,g_T; + EvtComplex A1,A2,A3,B1,B2,B3,D1,D2,D3,E1,E2,E3,N1,N2,H1,H2; + EvtComplex C_SL,C_BR,C_LLtot,C_LRtot,C_LL,C_LR,C_RL,C_RR,C_LRLR,C_RLLR,C_LRRL,C_RLRL,C_T,C_TE; + EvtComplex Yld,C_7eff,C_9eff; + EvtComplex V_ts,V_tb; + + EvtVector4C lbar_Gmu_l[2][2],lbar_GmuG5_l[2][2],hbar_GmuPlusG5_h[2][2],hbar_GmuMinusG5_h[2][2],hbar_Gmu_h[2][2]; + EvtComplex lbar_l[2][2],lbar_G5_l[2][2],hbar_1PlusG5_h[2][2],hbar_1MinusG5_h[2][2],hbar_G5_h[2][2],hbar_h[2][2]; + EvtTensor4C lbar_Smunu_l[2][2],lbar_ESmunu_l[2][2],hbar_SmunuPlusG5_h[2][2],hbar_SmunuMinusG5_h[2][2],hbar_Smunu_h[2][2]; + EvtVector4R q_mu,P_mu; + + EvtDiracSpinor parent__spParent[2]; + + M_Lb = parent->mass(); + M_L = parent->getDaug(0)->mass(); + M_s = 0.13; + M_c = 1.35; + M_b = 4.8; + alpha = 1./137.036; + alpha_s = 0.217484; + eta = 0.556289; + M_W = 80.425; + M_t = 174.3; + M_psi[0] = 3.096916; + M_psi[1] = 3.686093; + if(m_decayName=="Lambda_b0 -> Lambda0 e- e+" || m_decayName=="anti-Lambda_b0 -> anti-Lambda0 e+ e-"){ + Gamma_psi[0] = 5.40; + Gamma_psi[1] = 2.12; + } + if(m_decayName=="Lambda_b0 -> Lambda0 mu- mu+" || m_decayName=="anti-Lambda_b0 -> anti-Lambda0 mu+ mu-"){ + Gamma_psi[0] = 5.35; + Gamma_psi[1] = 2.05; + } + if(m_decayName=="Lambda_b0 -> Lambda0 tau- tau+" || m_decayName=="anti-Lambda_b0 -> anti-Lambda0 tau+ tau-"){ + Gamma_psi[0] = 0.00; + Gamma_psi[1] = 0.79; + } + if(m_effectContribution=="LD"){ + k_psi[0] = 1.65; + k_psi[1] = 1.65; + } + //G_F = 1.16637e-5; + //V_tb = sqrt(1-pow(0.0413,2))*sqrt(1-pow(0.0037,2)); + //V_ts = -sqrt(1-pow(0.2243,2))*0.0413-0.2243*sqrt(1-pow(0.0413,2))*0.0037*(cos(60*EvtConst::pi/180)+i1*sin(60*EvtConst::pi/180)); + + P_mu = parent->getP4Restframe()+parent->getDaug(0)->getP4(); + q_mu = parent->getP4Restframe()-parent->getDaug(0)->getP4(); + q2 = q_mu.mass2(); + + if(m_noTries>0) if(!((++noTries)%m_noTries)) report(DEBUG,"EvtGen") << " EvtLb2Lll already finished " << noTries << " matrix element calculations" << std::endl; + + if(m_FFtype=="HQET"){ + r = M_L*M_L/M_Lb/M_Lb; + F0_1 = +0.462; + F0_2 = -0.077; + a_F1 = -0.0182; + a_F2 = -0.0685; + b_F1 = -0.000176; + b_F2 = +0.001460; + F1 = F0_1/(1.0-(q2/M_Lb/M_Lb)*(a_F1-b_F1*(q2/M_Lb/M_Lb))); + F2 = F0_2/(1.0-(q2/M_Lb/M_Lb)*(a_F2-b_F2*(q2/M_Lb/M_Lb))); + g_1 = f_1 = f_2T = g_2T = F1+sqrt(r)*F2; + //std::cout << " F1: " << F1 << " F2: " << F2 << " r: " << r << " M_L: " << M_L << " M_Lb: " << M_Lb << std::endl; + //std::cout << " sqrt(q2): " << sqrt(q2) << " q2: " << q2 << " M_Lb^2" << M_Lb*M_Lb << std::endl; + g_2 = f_2 = g_3 = f_3 = g_TV = f_TV = F2/M_Lb; + g_TS = f_TS = 0; + g_1T = f_1T = F2/M_Lb*q2; + g_3T = +F2/M_Lb*(M_Lb+M_L); + f_3T = -F2/M_Lb*(M_Lb-M_L); + f_T = f_2T-f_TS*q2; + g_T = g_2T-g_TS*q2; + }else if(strstr(m_FFtype.c_str(),"HQET-delta=")==m_FFtype.c_str()){ + //report(WARNING,"EvtGen") << " WARNING: HQET-delta FF model should be checked for correctness" << std::endl; + if(delta==0) sscanf(m_FFtype.c_str(),"%c%c%c%c%c%c%c%c%c%c%c%lf",&ch,&ch,&ch,&ch,&ch,&ch,&ch,&ch,&ch,&ch,&ch,&delta); + r = M_L*M_L/M_Lb/M_Lb; + F0_1 = +0.462; + F0_2 = -0.077; + a_F1 = -0.0182; + a_F2 = -0.0685; + b_F1 = -0.000176; + b_F2 = +0.001460; + F1 = F0_1/(1.0-(q2/M_Lb/M_Lb)*(a_F1-b_F1*(q2/M_Lb/M_Lb))); + F2 = F0_2/(1.0-(q2/M_Lb/M_Lb)*(a_F2-b_F2*(q2/M_Lb/M_Lb))); + g_1 = f_1 = f_2T = g_2T = F1+sqrt(r)*F2; + g_1 += delta*g_1; + f_1 -= delta*f_1; + g_2 = f_2 = g_3 = f_3 = g_TV = f_TV = F2/M_Lb; + g_TS = f_TS = 0; + g_1T = f_1T = F2/M_Lb*q2; + g_3T = +F2/M_Lb*(M_Lb+M_L); + f_3T = -F2/M_Lb*(M_Lb-M_L); + f_T = f_2T-f_TS*q2; + g_T = g_2T-g_TS*q2; + }else if(m_FFtype=="HQET-noF2"){ + //report(WARNING,"EvtGen") << " WARNING: HQET-noF2 FF model should be checked for correctness" << std::endl; + r = M_L*M_L/M_Lb/M_Lb; + F0_1 = +0.462; + a_F1 = -0.0182; + b_F1 = -0.000176; + F1 = F0_1/(1.0-(q2/M_Lb/M_Lb)*(a_F1-b_F1*(q2/M_Lb/M_Lb))); + g_1 = f_1 = f_2T = g_2T = F1; + g_2 = f_2 = g_3 = f_3 = g_TV = f_TV = 0; + g_TS = f_TS = 0; + g_1T = f_1T = 0; + g_3T = 0; + f_3T = 0; + f_T = f_2T-f_TS*q2; + g_T = g_2T-g_TS*q2; + }else{ // general relations for Form-Factors + f_1 = f_2 = f_3 = g_1 = g_2 = g_3 = f_3T = g_3T = f_TS = g_TS = f_T = g_T = f_TV = 0; + f_2T = f_T+f_TS*q2; + f_1T = (f_TV+f_TS*(M_L+M_Lb))*q2; + f_1T = -q2/(M_Lb-M_L)*f_3T; + g_2T = g_T+g_TS*q2; + g_1T = (g_TV-g_TS*(M_L-M_Lb))*q2; + g_1T = +q2/(M_Lb+M_L)*g_3T; + report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll - unknown Form-Factors model: " << m_FFtype << " - this should never happen !" << std::endl; + ::abort(); + } + + if(m_HEPmodel=="SM"){ + C_LL=C_LR=C_RL=C_RR=C_LRLR=C_RLLR=C_LRRL=C_RLRL=C_T=C_TE=EvtComplex(0,0); + Yld = m_WC.Yld(q2,k_psi,Gamma_psi,M_psi,2,m_WC.GetC1(),m_WC.GetC2(),m_WC.GetC3(),m_WC.GetC4(),m_WC.GetC5(),m_WC.GetC6(),1./alpha); + C_7eff = m_WC.GetC7eff0() + m_WC.C7b2sg(m_WC.GetStrongCouplingConst(),m_WC.GetEta(),m_WC.GetC2(),M_t,M_W) + m_omega*(m_WC.hzs(M_c/M_b,q2/M_b/M_b,M_b,M_b) + Yld); + C_9eff = Yld + m_WC.C9efftilda(M_c/M_b,q2/M_b/M_b,m_WC.GetStrongCouplingConst(),m_WC.GetC1(),m_WC.GetC2(),m_WC.GetC3(),m_WC.GetC4(),m_WC.GetC5(),m_WC.GetC6(),m_WC.GetC9tilda(),m_WC.GetRenormSchemePar()); + C_SL = -2*M_s*C_7eff; + C_BR = -2*M_b*C_7eff; + C_LLtot = C_9eff-m_WC.GetC10tilda()+C_LL; + C_LRtot = C_9eff+m_WC.GetC10tilda()+C_LR; + //std::cout << "Yld: " << Yld << " C7eff: " << C_7eff << " C_9eff: " << C_9eff << " Diff7: " << C_7eff-m_WC.GetC7eff0() << " Diff9: " << C_9eff-m_WC.GetC9tilda() << std::endl; + }else if(m_HEPmodel=="-C7_SM"){ + C_LL=C_LR=C_RL=C_RR=C_LRLR=C_RLLR=C_LRRL=C_RLRL=C_T=C_TE=EvtComplex(0,0); + Yld = m_WC.Yld(q2,k_psi,Gamma_psi,M_psi,2,m_WC.GetC1(),m_WC.GetC2(),m_WC.GetC3(),m_WC.GetC4(),m_WC.GetC5(),m_WC.GetC6(),1./alpha); + C_7eff = m_WC.GetC7eff0() + m_WC.C7b2sg(m_WC.GetStrongCouplingConst(),m_WC.GetEta(),m_WC.GetC2(),M_t,M_W) + m_omega*(m_WC.hzs(M_c/M_b,q2/M_b/M_b,M_b,M_b) + Yld); + C_9eff = Yld + m_WC.C9efftilda(M_c/M_b,q2/M_b/M_b,m_WC.GetStrongCouplingConst(),m_WC.GetC1(),m_WC.GetC2(),m_WC.GetC3(),m_WC.GetC4(),m_WC.GetC5(),m_WC.GetC6(),m_WC.GetC9tilda(),m_WC.GetRenormSchemePar()); + C_SL = +2*M_s*C_7eff; + C_BR = +2*M_b*C_7eff; + C_LLtot = C_9eff-m_WC.GetC10tilda()+C_LL; + C_LRtot = C_9eff+m_WC.GetC10tilda()+C_LR; + //std::cout << "Yld: " << Yld << " C7eff: " << C_7eff << " C_9eff: " << C_9eff << " Diff7: " << C_7eff-m_WC.GetC7eff0() << " Diff9: " << C_9eff-m_WC.GetC9tilda() << std::endl; + }else if(m_HEPmodel=="SUSY-ChenGeng"){ + //report(WARNING,"EvtGen") << " WARNING: SUSY-ChenGeng model should be checked for correctness" << std::endl; + C_LL=C_LR=C_RL=C_RR=C_LRLR=C_RLLR=C_LRRL=C_RLRL=C_T=C_TE=EvtComplex(0,0); + EvtComplex d_u23LL = 0.1; + EvtComplex d_u33RL = 0.65; + EvtComplex d_d23LR = 0.03*exp(i1*EvtConst::pi*2/5); + EvtComplex d_u23LR = -0.8*exp(i1*EvtConst::pi/4); + EvtComplex C_7susy = -1.75*d_u23LL - 0.25*d_u23LR - 10.3*d_d23LR; + EvtComplex C_9susy = 0.82*d_u23LR; + EvtComplex C_10susy = -9.37*d_u23LR + 1.4*d_u23LR*d_u33RL + 2.7*d_u23LL; + Yld = m_WC.Yld(q2,k_psi,Gamma_psi,M_psi,2,m_WC.GetC1(),m_WC.GetC2(),m_WC.GetC3(),m_WC.GetC4(),m_WC.GetC5(),m_WC.GetC6(),1./alpha); + C_7eff = m_WC.GetC7eff0() + C_7susy*pow(m_WC.GetEta(),16./23.) + m_WC.C7b2sg(m_WC.GetStrongCouplingConst(),m_WC.GetEta(),m_WC.GetC2(),M_t,M_W) + m_omega*(m_WC.hzs(M_c/M_b,q2/M_b/M_b,M_b,M_b) + Yld); + C_9eff = Yld + m_WC.C9efftilda(M_c/M_b,q2/M_b/M_b,m_WC.GetStrongCouplingConst(),m_WC.GetC1(),m_WC.GetC2(),m_WC.GetC3(),m_WC.GetC4(),m_WC.GetC5(),m_WC.GetC6(),m_WC.GetC9tilda()+C_9susy,m_WC.GetRenormSchemePar()); + C_SL = -2*M_s*C_7eff; + C_BR = -2*M_b*C_7eff; + C_LLtot = C_9eff-m_WC.GetC10tilda()-C_10susy+C_LL; + C_LRtot = C_9eff+m_WC.GetC10tilda()+C_10susy+C_LR; + //std::cout << "Yld: " << Yld << " C7eff: " << C_7eff << " C_9eff: " << C_9eff << " Diff7: " << C_7eff-m_WC.GetC7eff0() << " Diff9: " << C_9eff-m_WC.GetC9tilda() << std::endl; + }else{ + report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll - unknown physics model: " << m_HEPmodel << " - this should never happen !" << std::endl; + ::abort(); + } + + A1 = (f_1T-g_1T)*C_SL/q2 + (f_1T+g_1T)*C_BR/q2 + 0.5*(f_1-g_1)*(C_LLtot+C_LRtot) + 0.5*(f_1+g_1)*(C_RL+C_RR); + //std::cout << "f_1T: " << f_1T << " g_1T: " << g_1T << " C_SL: " << C_SL << " C_BR: " << C_BR << " f_1: " << f_1 << " g_1: " << g_1 << " C_LLtot: " << C_LLtot << " C_LRtot: " << C_LRtot << " C_RL: " << C_RL << " C_RR: " << C_RR << std::endl; + A2 = (f_2T-g_2T)*C_SL/q2 + (f_2T+g_2T)*C_BR/q2 + 0.5*(f_2-g_2)*(C_LLtot+C_LRtot) + 0.5*(f_2+g_2)*(C_RL+C_RR); + A3 = (f_3T-g_3T)*C_SL/q2 + (f_3T+g_3T)*C_BR/q2 + 0.5*(f_3-g_3)*(C_LLtot+C_LRtot) + 0.5*(f_3+g_3)*(C_RL+C_RR); + + B1 = (f_1T+g_1T)*C_SL/q2 + (f_1T-g_1T)*C_BR/q2 + 0.5*(f_1+g_1)*(C_LLtot+C_LRtot) + 0.5*(f_1-g_1)*(C_RL+C_RR); + B2 = (f_2T+g_2T)*C_SL/q2 + (f_2T-g_2T)*C_BR/q2 + 0.5*(f_2+g_2)*(C_LLtot+C_LRtot) + 0.5*(f_2-g_2)*(C_RL+C_RR); + B3 = (f_3T+g_3T)*C_SL/q2 + (f_3T-g_3T)*C_BR/q2 + 0.5*(f_3+g_3)*(C_LLtot+C_LRtot) + 0.5*(f_3-g_3)*(C_RL+C_RR); + + D1 = 0.5*(C_RR-C_RL)*(f_1+g_1) + 0.5*(C_LRtot-C_LLtot)*(f_1-g_1); + D2 = 0.5*(C_RR-C_RL)*(f_2+g_2) + 0.5*(C_LRtot-C_LLtot)*(f_2-g_2); + D3 = 0.5*(C_RR-C_RL)*(f_3+g_3) + 0.5*(C_LRtot-C_LLtot)*(f_3-g_3); + + E1 = 0.5*(C_RR-C_RL)*(f_1-g_1) + 0.5*(C_LRtot-C_LLtot)*(f_1+g_1); + E2 = 0.5*(C_RR-C_RL)*(f_2-g_2) + 0.5*(C_LRtot-C_LLtot)*(f_2+g_2); + E3 = 0.5*(C_RR-C_RL)*(f_3-g_3) + 0.5*(C_LRtot-C_LLtot)*(f_3+g_3); + + N1 = (f_1*(M_Lb+M_L)+f_3*q2)/M_b*(C_LRLR+C_RLLR+C_LRRL+C_RLRL); + N2 = (f_1*(M_Lb+M_L)+f_3*q2)/M_b*(C_LRLR+C_RLLR-C_LRRL-C_RLRL); + + H1 = (g_1*(M_Lb+M_L)-g_3*q2)/M_b*(C_LRLR-C_RLLR+C_LRRL-C_RLRL); + H2 = (g_1*(M_Lb+M_L)-g_3*q2)/M_b*(C_LRLR-C_RLLR-C_LRRL+C_RLRL); + + for(i=0;i<4;i++){ + lbar_Gmu_l [i/2][i%2] = EvtLeptonVCurrent(parent->getDaug(1)->spParent(i/2),parent->getDaug(2)->spParent(i%2)); + lbar_GmuG5_l [i/2][i%2] = EvtLeptonACurrent(parent->getDaug(1)->spParent(i/2),parent->getDaug(2)->spParent(i%2)); + lbar_l [i/2][i%2] = EvtLeptonSCurrent(parent->getDaug(1)->spParent(i/2),parent->getDaug(2)->spParent(i%2)); + lbar_G5_l [i/2][i%2] = EvtLeptonPCurrent(parent->getDaug(1)->spParent(i/2),parent->getDaug(2)->spParent(i%2)); + lbar_Smunu_l [i/2][i%2] = EvtLeptonTCurrent(parent->getDaug(1)->spParent(i/2),parent->getDaug(2)->spParent(i%2)); + lbar_ESmunu_l[i/2][i%2] = dual(EvtLeptonTCurrent(parent->getDaug(1)->spParent(i/2),parent->getDaug(2)->spParent(i%2))); + } + + // TODO: polarization not yet introduced + if(m_polarizationIntroduction=="SpinDensityMatrix"){ + //parent->setSpinDensityForward(); + parent__spParent[0]=parent->sp(0); + parent__spParent[1]=parent->sp(1); + }else if(m_polarizationIntroduction=="ModifiedSpinors"){ + parent__spParent[0]=parent->sp(0); + parent__spParent[1]=parent->sp(1); + }else if(m_polarizationIntroduction=="Unpolarized"){ + parent__spParent[0]=parent->sp(0); + parent__spParent[1]=parent->sp(1); + }else{ + report(ERROR,"EvtGen") << " ERROR: EvtLb2Lll - unknown polarization: " << m_polarizationIntroduction << " - this should never happen !" << std::endl; + ::abort(); + } + + for(i=0;i<4;i++){ + hbar_GmuPlusG5_h [i/2][i%2] = EvtLeptonVCurrent(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]) + EvtLeptonACurrent(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]); + hbar_GmuMinusG5_h [i/2][i%2] = EvtLeptonVACurrent(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]); + hbar_SmunuPlusG5_h [i/2][i%2] = EvtLeptonTCurrent(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]) + EvtLeptonTG5Current(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]); + hbar_SmunuMinusG5_h[i/2][i%2] = EvtLeptonTCurrent(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]) - EvtLeptonTG5Current(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]); + hbar_1PlusG5_h [i/2][i%2] = EvtLeptonSCurrent(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]) + EvtLeptonPCurrent(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]); + hbar_1MinusG5_h [i/2][i%2] = EvtLeptonSCurrent(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]) - EvtLeptonPCurrent(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]); + hbar_G5_h [i/2][i%2] = EvtLeptonPCurrent(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]); + hbar_h [i/2][i%2] = EvtLeptonSCurrent(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]); + hbar_Smunu_h [i/2][i%2] = EvtLeptonTCurrent(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]); + hbar_Gmu_h [i/2][i%2] = EvtLeptonVCurrent(parent->getDaug(0)->spParent(i/2),parent__spParent[i%2]); + } + + for(i=0;i<4;i++) for(j=0;j<4;j++) { + //std::cout << "--------------------------------------------------" << std::endl; + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + Matrix[j/2][j%2][i/2][i%2] += lbar_Gmu_l[i/2][i%2] * (A1*hbar_GmuPlusG5_h[j/2][j%2]+B1*hbar_GmuMinusG5_h[j/2][j%2]); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + //std::cout << "A1: " << A1 << " B1: " << B1 << " lbar_Gmu_l: " << lbar_Gmu_l[i/2][i%2] << + // " hbar_GmuPlusG5_h: " << hbar_GmuPlusG5_h[j/2][j%2] << " hbar_GmuMinusG5_h: " << hbar_GmuMinusG5_h[j/2][j%2] << + // " sp1: " << parent->getDaug(1)->spParent(i/2) << " sp2: " << parent->getDaug(1)->spParent(i%2) << std::endl; + Matrix[j/2][j%2][i/2][i%2] += lbar_Gmu_l[i/2][i%2] * (i1*A2*(hbar_SmunuPlusG5_h[j/2][j%2].cont2(q_mu))+B2*(hbar_SmunuMinusG5_h[j/2][j%2].cont2(q_mu))); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + Matrix[j/2][j%2][i/2][i%2] += lbar_Gmu_l[i/2][i%2] * ((A3*hbar_1PlusG5_h[j/2][j%2]+B3*hbar_1MinusG5_h[j/2][j%2])*q_mu); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + Matrix[j/2][j%2][i/2][i%2] += lbar_GmuG5_l[i/2][i%2] * (D1*hbar_GmuPlusG5_h[j/2][j%2]+E1*hbar_GmuMinusG5_h[j/2][j%2]); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + Matrix[j/2][j%2][i/2][i%2] += lbar_GmuG5_l[i/2][i%2] * (i1*D2*(hbar_SmunuPlusG5_h[j/2][j%2].cont2(q_mu))+E2*(hbar_SmunuMinusG5_h[j/2][j%2].cont2(q_mu))); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + Matrix[j/2][j%2][i/2][i%2] += lbar_GmuG5_l[i/2][i%2] * ((D3*hbar_1PlusG5_h[j/2][j%2]+E3*hbar_1MinusG5_h[j/2][j%2])*q_mu); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + Matrix[j/2][j%2][i/2][i%2] += lbar_l[i/2][i%2] * (N1*hbar_h[j/2][j%2]+H1*hbar_G5_h[j/2][j%2]); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + Matrix[j/2][j%2][i/2][i%2] += lbar_G5_l[i/2][i%2] * (N2*hbar_h[j/2][j%2]+H2*hbar_G5_h[j/2][j%2]); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + Matrix[j/2][j%2][i/2][i%2] += cont(lbar_Smunu_l[i/2][i%2] , 4*C_T*f_T*hbar_Smunu_h[j/2][j%2]); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + Matrix[j/2][j%2][i/2][i%2] += cont(lbar_Smunu_l[i/2][i%2] , -4*C_T*f_TV*i1*(directProd(q_mu,hbar_Gmu_h[j/2][j%2])-directProd(hbar_Gmu_h[j/2][j%2],q_mu))); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + Matrix[j/2][j%2][i/2][i%2] += cont(lbar_Smunu_l[i/2][i%2] , -4*C_T*f_TS*i1*(directProd(P_mu,q_mu)-directProd(q_mu,P_mu))*hbar_h[j/2][j%2]); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + Matrix[j/2][j%2][i/2][i%2] += cont(lbar_ESmunu_l[i/2][i%2] , 4*C_TE*f_T*i1*hbar_Smunu_h[j/2][j%2]); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + Matrix[j/2][j%2][i/2][i%2] += cont(lbar_ESmunu_l[i/2][i%2] , 4*C_TE*f_TV*(directProd(q_mu,hbar_Gmu_h[j/2][j%2])-directProd(hbar_Gmu_h[j/2][j%2],q_mu))); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + Matrix[j/2][j%2][i/2][i%2] += cont(lbar_ESmunu_l[i/2][i%2] , 4*C_TE*f_TS*(directProd(P_mu,q_mu)-directProd(q_mu,P_mu))*hbar_h[j/2][j%2]); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + //Matrix[j/2][j%2][i/2][i%2] *= G_F*alpha/4/sqrt(2)/EvtConst::pi*V_tb*conj(V_ts); + //std::cout << "Matrix = " << Matrix[j/2][j%2][i/2][i%2] << std::endl; + //std::cout << "--------------------------------------------------" << std::endl; + spins[0]=j%2; + spins[1]=j/2; + spins[2]=i/2; + spins[3]=i%2; + amp->vertex(spins,Matrix[j/2][j%2][i/2][i%2]); + } + + //std::cout << "==================================================" << std::endl; + //std::cout << "Lambda_b0: " << parent->getP4Restframe() << std::endl; + //std::cout << "Lambda0: " << parent->getDaug(0)->getP4() << std::endl; + //std::cout << "mu-: " << parent->getDaug(1)->getP4() << std::endl; + //std::cout << "mu+: " << parent->getDaug(2)->getP4() << std::endl; + //std::cout << "P_mu: " << P_mu << std::endl; + //std::cout << "q_mu: " << q_mu << std::endl; + //std::cout << "q2: " << q2 << std::endl; + //std::cout << "==================================================" << std::endl; + + return; +} + +EvtTensor4C EvtLb2Lll::EvtLeptonTG5Current(const EvtDiracSpinor &d,const EvtDiracSpinor &dp){ +// + + EvtTensor4C temp; + temp.zero(); + EvtComplex i2(0,0.5); + + static EvtGammaMatrix mat01=EvtGammaMatrix::g0()* + (EvtGammaMatrix::g0()*EvtGammaMatrix::g1()- + EvtGammaMatrix::g1()*EvtGammaMatrix::g0())*EvtGammaMatrix::g5(); + static EvtGammaMatrix mat02=EvtGammaMatrix::g0()* + (EvtGammaMatrix::g0()*EvtGammaMatrix::g2()- + EvtGammaMatrix::g2()*EvtGammaMatrix::g0())*EvtGammaMatrix::g5(); + static EvtGammaMatrix mat03=EvtGammaMatrix::g0()* + (EvtGammaMatrix::g0()*EvtGammaMatrix::g3()- + EvtGammaMatrix::g3()*EvtGammaMatrix::g0())*EvtGammaMatrix::g5(); + static EvtGammaMatrix mat12=EvtGammaMatrix::g0()* + (EvtGammaMatrix::g1()*EvtGammaMatrix::g2()- + EvtGammaMatrix::g2()*EvtGammaMatrix::g1())*EvtGammaMatrix::g5(); + static EvtGammaMatrix mat13=EvtGammaMatrix::g0()* + (EvtGammaMatrix::g1()*EvtGammaMatrix::g3()- + EvtGammaMatrix::g3()*EvtGammaMatrix::g1())*EvtGammaMatrix::g5(); + static EvtGammaMatrix mat23=EvtGammaMatrix::g0()* + (EvtGammaMatrix::g2()*EvtGammaMatrix::g3()- + EvtGammaMatrix::g3()*EvtGammaMatrix::g2())*EvtGammaMatrix::g5(); + + temp.set(0,1,i2*(d*(mat01*dp))); + temp.set(1,0,-temp.get(0,1)); + + temp.set(0,2,i2*(d*(mat02*dp))); + temp.set(2,0,-temp.get(0,2)); + + temp.set(0,3,i2*(d*(mat03*dp))); + temp.set(3,0,-temp.get(0,3)); + + temp.set(1,2,i2*(d*(mat12*dp))); + temp.set(2,1,-temp.get(1,2)); + + temp.set(1,3,i2*(d*(mat13*dp))); + temp.set(3,1,-temp.get(1,3)); + + temp.set(2,3,i2*(d*(mat23*dp))); + temp.set(3,2,-temp.get(2,3)); + + return temp; +} diff --git a/TEvtGen/EvtGenModels/EvtLb2Lll.hh b/TEvtGen/EvtGenModels/EvtLb2Lll.hh new file mode 100644 index 00000000000..5178a862a04 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtLb2Lll.hh @@ -0,0 +1,60 @@ +//---------------------------------------------------------------------------------- +// +// Module: EvtLb2Lll.hh +// +// Desription: Routine to implement Lambda_b0 -> Lambda_0 l+ l- decays accroding to +// several models: Chen. Geng. +// Aliev. Ozpineci. Savci. +// +// Modification history: +// +// 15/09/2004 PR Module created according to PHSP model +// 20/02/2005 PR Added parameters, created matrix element (without polarization) +// 04/03/2005 PR LD contrib., corrected WC eff. according to Chen. Geng. +// +//---------------------------------------------------------------------------------- + +#ifndef EVTLB2LLL_HH +#define EVTLB2LLL_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenModels/EvtWilsonCoeficients.hh" + +class EvtLb2Lll:public EvtDecayAmp { + +public: + + EvtLb2Lll() {} + virtual ~EvtLb2Lll(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + void calcAmp(EvtAmp *amp,EvtParticle *parent); + + EvtTensor4C EvtLeptonTG5Current(const EvtDiracSpinor &d,const EvtDiracSpinor &dp); + +private: + + double m_polarizationLambdab0; + double m_maxProbability; + double m_poleSize; + long m_noTries; + double m_omega; + + std::string m_decayName; + std::string m_polarizationIntroduction; + std::string m_HEPmodel; + std::string m_FFtype; + std::string m_effectContribution; + + EvtWilsonCoeficients m_WC; + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtLi2Spence.F b/TEvtGen/EvtGenModels/EvtLi2Spence.F new file mode 100644 index 00000000000..098f931a5e1 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtLi2Spence.F @@ -0,0 +1,92 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See EvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: EvtLi2Spence.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C +C------------------------------------------------------------------------ +C ----------------------------------------------------------------- + DOUBLE PRECISION FUNCTION LI2SPENCE(X) +C ************************************************************* +C REAL SPENCE FUNCTION OBTAINED FROM J. VAN DER BIJ +C ************************************************************* + IMPLICIT REAL*8 (A-Z) + COMPLEX*16 Y,Z,Z2,SP + REAL*8 XR,XI,R2 + REAL*8 A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,ZETA2 + DATA A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,ZETA2/ + 1 -0.250000000000000D0, + 2 -0.111111111111111D0, + 3 -0.010000000000000D0, + 4 -0.017006802721088D0, + 5 -0.019444444444444D0, + 6 -0.020661157024793D0, + 7 -0.021417300648069D0, + 8 -0.021948866377231D0, + 9 -0.022349233811171D0, + 1 -0.022663689135191D0, + 2 1.644934066848226D0/ + + LI2SPENCE=0 + XR=X + XI=0.0D0 + R2=XR*XR+XI*XI + IF(R2.GT.1.D0.AND.(XR/R2).GT.0.5D0)THEN + Y=(X-1.D0)/X + Z=-LOG(1.D0-Y) + Z2=Z*Z + SP=Z*(1.D0+A1*Z*(1.D0+A2*Z*(1.D0+A3*Z2*(1.D0+A4*Z2* + 1 (1.D0+A5*Z2*(1.D0+A6*Z2*(1.D0+A7*Z2*(1.D0+A8*Z2*(1.D0+A9*Z2* + 2 (1.D0+A10*Z2)))))))))) + 3 +ZETA2-LOG(X)*LOG(1.D0-X)+0.5D0*LOG(X)**2 + LI=DREAL(SP) + RETURN + ELSEIF(R2.GT.1.D0.AND.(XR/R2).LE.0.5D0)THEN + Y=1.D0/X + Z=-LOG(1.D0-Y) + Z2=Z*Z + SP=-Z*(1.D0+A1*Z*(1.D0+A2*Z*(1.D0+A3*Z2*(1.D0+A4*Z2* + 1 (1.D0+A5*Z2*(1.D0+A6*Z2*(1.D0+A7*Z2*(1.D0+A8*Z2*(1.D0+A9*Z2* + 2 (1.D0+A10*Z2)))))))))) + 3 -ZETA2-0.5D0*LOG(-X)**2 + LI=DREAL(SP) + RETURN + ELSEIF(R2.EQ.1.D0.AND.XI.EQ.0.D0)THEN + SP=ZETA2 + LI=DREAL(SP) + RETURN + ELSEIF(R2.LE.1.D0.AND.XR.GT.0.5D0)THEN + Y=1.D0-X + Z=-LOG(1.D0-Y) + Z2=Z*Z + SP=-Z*(1.D0+A1*Z*(1.D0+A2*Z*(1.D0+A3*Z2*(1.D0+A4*Z2* + 1 (1.D0+A5*Z2*(1.D0+A6*Z2*(1.D0+A7*Z2*(1.D0+A8*Z2*(1.D0+A9*Z2* + 2 (1.D0+A10*Z2)))))))))) + 3 +ZETA2-LOG(X)*LOG(1.D0-X) + LI=DREAL(SP) + RETURN + ELSEIF(R2.LE.1.D0.AND.XR.LE.0.5D0)THEN + Y=X + Z=-LOG(1.D0-Y) + Z2=Z*Z + SP=Z*(1.D0+A1*Z*(1.D0+A2*Z*(1.D0+A3*Z2*(1.D0+A4*Z2* + 1 (1.D0+A5*Z2*(1.D0+A6*Z2*(1.D0+A7*Z2*(1.D0+A8*Z2*(1.D0+A9*Z2* + 2 (1.D0+A10*Z2)))))))))) + LI2SPENCE=DREAL(SP) + RETURN + ENDIF + END +C ---------------------------------------------------------------------- + diff --git a/TEvtGen/EvtGenModels/EvtMelikhov.cxx b/TEvtGen/EvtGenModels/EvtMelikhov.cxx new file mode 100644 index 00000000000..b0564991659 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtMelikhov.cxx @@ -0,0 +1,73 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtMelikhov.cc +// +// Description: Routine to implement semileptonic B->D*lnu decays according +// to the model HQET +// +// Modification history: +// +// DJL April 20, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtMelikhov.hh" +#include "EvtGenModels/EvtMelikhovFF.hh" +#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh" +#include + +EvtMelikhov::~EvtMelikhov() {} + +std::string EvtMelikhov::getName(){ + + return "MELIKHOV"; +} + + +EvtDecayBase* EvtMelikhov::clone(){ + + return new EvtMelikhov; + +} + +void EvtMelikhov::decay( EvtParticle *p ){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + calcamp->CalcAmp(p,_amp2,Melikhovffmodel); +} + + +void EvtMelikhov::init(){ + + checkNArg(1); + checkNDaug(3); + + //We expect the parent to be a scalar + //and the daughters to be X lepton neutrino + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + + + Melikhovffmodel = new EvtMelikhovFF(getArg(0)); + calcamp = new EvtSemiLeptonicVectorAmp; + +} + diff --git a/TEvtGen/EvtGenModels/EvtMelikhov.hh b/TEvtGen/EvtGenModels/EvtMelikhov.hh new file mode 100644 index 00000000000..35984da277d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtMelikhov.hh @@ -0,0 +1,53 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtMelikhov.hh +// +// Description:Implementation of the Melikhov semileptonic model +// +// Modification history: +// +// DJL April 20, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTMELIKHOV_HH +#define EVTMELIKHOV_HH + +#include +#include + + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" + +class EvtParticle; + +class EvtMelikhov:public EvtDecayAmp { + +public: + + EvtMelikhov() {} + virtual ~EvtMelikhov(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + +private: + EvtSemiLeptonicFF *Melikhovffmodel; + EvtSemiLeptonicAmp *calcamp; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtMelikhovFF.cxx b/TEvtGen/EvtGenModels/EvtMelikhovFF.cxx new file mode 100644 index 00000000000..9182b36f74d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtMelikhovFF.cxx @@ -0,0 +1,134 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtMelikhovFF.cc +// +// Description: form factors for B->D*lnu according to HQET +// +// Modification history: +// +// DJL April 17, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtMelikhovFF.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include +#include "EvtGenBase/EvtPDL.hh" +#include + +EvtMelikhovFF::EvtMelikhovFF(double arg1) { + + whichfit = int(arg1+0.1); + return; +} + +void EvtMelikhovFF::getvectorff(EvtId parent,EvtId, + double t, double mass, double *a1f, + double *a2f, double *vf, double *a0f ){ + + double ma1(0.0),ra1(0.0),na1(0.0); + double ma2(0.0),ra2(0.0),na2(0.0); + double mv(0.0),rv(0.0),nv(0.0); + + if ( whichfit==1) { + ma1 = 7.07; + ra1 = 0.27; + na1 = 2.65; + ma2 = 6.13; + ra2 = 0.25; + na2 = 2.17; + mv = 6.28; + rv = 0.30; + nv = 2.36; + } + if ( whichfit==2) { + ma1 = 6.78; + ra1 = 0.20; + na1 = 2.65; + ma2 = 6.00; + ra2 = 0.19; + na2 = 2.34; + mv = 6.22; + rv = 0.20; + nv = 2.46; + } + if ( whichfit==3) { + ma1 = 6.50; + ra1 = 0.21; + na1 = 2.70; + ma2 = 5.90; + ra2 = 0.20; + na2 = 2.45; + mv = 5.90; + rv = 0.21; + nv = 2.35; + } + if ( whichfit==4) { + ma1 = 5.68; + ra1 = 0.29; + na1 = 1.67; + ma2 = 5.36; + ra2 = 0.28; + na2 = 1.67; + mv = 5.46; + rv = 0.29; + nv = 1.73; + } + + double mb=EvtPDL::getMeanMass(parent); + //double w = ((mb*mb)+(mass*mass)-t)/(2.0*mb*mass); + + double melr = mass/mb; + double mely = t/(mb*mb); + + + *a1f = ((1.0+melr*melr-mely)/(1+melr))*ra1/pow(1.0-(t/(ma1*ma1)),na1); + *a2f = (1+melr)*((1.0-melr*melr-mely)/((1+melr)*(1+melr)-mely)) + *ra2/pow(1.0-(t/(ma2*ma2)),na2); + *vf = (1+melr)*rv/pow(1.0-(t/(mv*mv)),nv); + *a0f = 0.0; + + return; + } + + +void EvtMelikhovFF::getscalarff(EvtId, EvtId, double, double, double*, + double*){ + + report(ERROR,"EvtGen") << "Not implemented :getvectorff in EvtMelikhovFF.\n"; + ::abort(); + +} + + + +void EvtMelikhovFF::gettensorff(EvtId, EvtId, double, double, double*, + double*, double*, double*){ + + report(ERROR,"EvtGen") << "Not implemented :gettensorff in EvtMelikhovFF.\n"; + ::abort(); + +} + + + +void EvtMelikhovFF::getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*){ + + report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtMelikhovFF.\n"; + ::abort(); + +} + diff --git a/TEvtGen/EvtGenModels/EvtMelikhovFF.hh b/TEvtGen/EvtGenModels/EvtMelikhovFF.hh new file mode 100644 index 00000000000..d28348afd4f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtMelikhovFF.hh @@ -0,0 +1,52 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtMelikhovFF.hh +// +// Description: Form factors for EvtMelikhov model +// +// Modification history: +// +// DJL April 20, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTMELIKHOVFF_HH +#define EVTMELIKHOVFF_HH + +#include "EvtGenBase/EvtSemiLeptonicFF.hh" + +class EvtId; + +class EvtMelikhovFF : public EvtSemiLeptonicFF { + +public: + EvtMelikhovFF(double par1); + void getvectorff( EvtId parent, EvtId daught, + double t, double mass, double *a1f, + double *a2f, double *vf, double *a0f ); + + void getscalarff(EvtId, EvtId, double, double, double*, + double*); + + void gettensorff(EvtId, EvtId, double, double, double*, + double*, double*, double*); + + void getbaryonff(EvtId, EvtId, double, double, double*, + double*, double*, double*); + + +private: + int whichfit; + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtModelReg.cxx b/TEvtGen/EvtGenModels/EvtModelReg.cxx new file mode 100644 index 00000000000..58fd8bea274 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtModelReg.cxx @@ -0,0 +1,300 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtModel.cc +// +// Description: +// +// Modification history: +// +// RYD September 25, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include +#include +#include "EvtGenBase/EvtModel.hh" + +#include "EvtGenModels/EvtTauVectornu.hh" +#include "EvtGenModels/EvtVVP.hh" +#include "EvtGenModels/EvtSLN.hh" +#include "EvtGenModels/EvtISGW2.hh" +#include "EvtGenModels/EvtMelikhov.hh" +#include "EvtGenModels/EvtSLPole.hh" +#include "EvtGenModels/EvtPropSLPole.hh" +#include "EvtGenModels/EvtSLBKPole.hh" +#include "EvtGenModels/EvtISGW.hh" +#include "EvtGenModels/EvtBHadronic.hh" +#include "EvtGenModels/EvtVSS.hh" +#include "EvtGenModels/EvtVSSMix.hh" +#include "EvtGenModels/EvtVSSBMixCPT.hh" +#include "EvtGenModels/EvtVSPPwave.hh" +#include "EvtGenModels/EvtGoityRoberts.hh" +#include "EvtGenModels/EvtSVS.hh" +#include "EvtGenModels/EvtTSS.hh" +#include "EvtGenModels/EvtTVSPwave.hh" +#include "EvtGenModels/EvtSVVHelAmp.hh" +#include "EvtGenModels/EvtSVPHelAmp.hh" +#include "EvtGenModels/EvtSVPCP.hh" +#include "EvtGenModels/EvtVVSPwave.hh" +#include "EvtGenModels/EvtDDalitz.hh" +#include "EvtGenModels/EvtOmegaDalitz.hh" +#include "EvtGenModels/EvtPi0Dalitz.hh" +#include "EvtGenModels/EvtEtaDalitz.hh" +#include "EvtGenModels/EvtPhsp.hh" +#include "EvtGenModels/EvtBtoXsgamma.hh" +#include "EvtGenModels/EvtBtoXsll.hh" +#include "EvtGenModels/EvtBtoXsEtap.hh" +#include "EvtGenModels/EvtSSSCP.hh" +#include "EvtGenModels/EvtSSSCPpng.hh" +#include "EvtGenModels/EvtSTSCP.hh" +#include "EvtGenModels/EvtSTS.hh" +#include "EvtGenModels/EvtSSSCPT.hh" +#include "EvtGenModels/EvtSVSCP.hh" +#include "EvtGenModels/EvtSSDCP.hh" +#include "EvtGenModels/EvtSVSNONCPEIGEN.hh" +#include "EvtGenModels/EvtSVVNONCPEIGEN.hh" +#include "EvtGenModels/EvtSVVCP.hh" +#include "EvtGenModels/EvtSVVCPLH.hh" +#include "EvtGenModels/EvtSVSCPLH.hh" +#include "EvtGenModels/EvtSll.hh" +#include "EvtGenModels/EvtVll.hh" +#include "EvtGenModels/EvtTaulnunu.hh" +#include "EvtGenModels/EvtTauHadnu.hh" +#include "EvtGenModels/EvtTauScalarnu.hh" +#include "EvtGenModels/EvtKstarnunu.hh" +#include "EvtGenModels/EvtbTosllBall.hh" +#include "EvtGenModels/EvtSingleParticle.hh" +#include "EvtGenModels/EvtVectorIsr.hh" +#include "EvtGenModels/EvtBToPlnuBK.hh" +#include "EvtGenModels/EvtBToVlnuBall.hh" + +#include "EvtGenModels/EvtSVVHelCPMix.hh" +#include "EvtGenModels/EvtLb2Lll.hh" +#include "EvtGenModels/EvtHypNonLepton.hh" + +#include "EvtGenModels/EvtbTosllAli.hh" +//#include "EvtGenModels/EvtBToDDalitzCPK.hh" +//#include "EvtGenModels/EvtPVVCPLH.hh" +//#include "EvtGenModels/EvtLambdaB2LambdaV.hh" +//#include "EvtGenModels/EvtSSD_DirectCP.hh" + +#include "EvtGenModels/EvtHQET.hh" +#include "EvtGenModels/EvtHQET2.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtHelAmp.hh" +#include "EvtGenModels/EvtPartWave.hh" + +#include "EvtGenModels/EvtBto2piCPiso.hh" +#include "EvtGenModels/EvtBtoKpiCPiso.hh" +#include "EvtGenModels/EvtSVSCPiso.hh" +#include "EvtGenModels/EvtVVpipi.hh" +#include "EvtGenModels/EvtY3SToY1SpipiMoxhay.hh" +#include "EvtGenModels/EvtYmSToYnSpipiCLEO.hh" +#include "EvtGenModels/EvtVVPIPI_WEIGHTED.hh" +#include "EvtGenModels/EvtVPHOtoVISRHi.hh" + +#include "EvtGenModels/EvtBTo4piCP.hh" +#include "EvtGenModels/EvtBTo3piCP.hh" +#include "EvtGenModels/EvtCBTo3piP00.hh" +#include "EvtGenModels/EvtCBTo3piMPP.hh" +#include "EvtGenModels/EvtBToKpipiCP.hh" +#include "EvtGenModels/EvtBsquark.hh" +#include "EvtGenModels/EvtPhiDalitz.hh" + +#include "EvtGenModels/EvtLNuGamma.hh" + +#include "EvtGenModels/EvtVub.hh" +//#include "EvtGenModels/EvtVubAFR.hh" +#include "EvtGenModels/EvtVubHybrid.hh" +#include "EvtGenModels/EvtVubNLO.hh" +#include "EvtGenModels/EvtVubBLNP.hh" +#include "EvtGenModels/EvtVubBLNPHybrid.hh" + +#include "EvtGenModels/EvtPto3P.hh" +#include "EvtGenModels/EvtBtoKD3P.hh" +#include "EvtGenModels/EvtKstarstargamma.hh" +#include "EvtGenModels/EvtFlatQ2.hh" +#include "EvtGenModels/EvtLambdaP_BarGamma.hh" +#include "EvtGenModels/EvtBBScalar.hh" +#include "EvtGenModels/EvtKKLambdaC.hh" +#include "EvtGenModels/EvtMultibody.hh" + +//#include "EvtGenModels/EvtJetSetCDF.hh" +//#include "EvtGenModels/EvtJscontCDF.hh" + + +//#ifndef EVTSTANDALONE +//#include "EvtGenModels/EvtJetSet.hh" +//#include "EvtGenModels/EvtJscont.hh" +//#else + #include "EvtGenModels/EvtPythia.hh" + #include "EvtGenModels/EvtPyGaGa.hh" + #include "EvtGenModels/EvtPycont.hh" +//#endif + +#include "EvtGenModels/EvtDMix.hh" +#include "EvtGenModels/EvtD0mixDalitz.hh" + +#include "EvtGenModels/EvtModelReg.hh" +using std::fstream; +using std::cout; +using std::endl; + +EvtModelReg::EvtModelReg(const std::list* extraModels) +{ + + EvtModel &modelist=EvtModel::instance(); + + if(extraModels){ + for(std::list::const_iterator it = extraModels->begin(); + it != extraModels->end(); ++it){ + modelist.registerModel(*it); + } + } + + modelist.registerModel(new EvtBBScalar); + modelist.registerModel(new EvtLambdaP_BarGamma); + modelist.registerModel(new EvtFlatQ2); + modelist.registerModel(new EvtTauHadnu); + modelist.registerModel(new EvtTauVectornu); + modelist.registerModel(new EvtVVP); + modelist.registerModel(new EvtSLN); + modelist.registerModel(new EvtISGW2); + modelist.registerModel(new EvtMelikhov); + modelist.registerModel(new EvtSLPole); + modelist.registerModel(new EvtPropSLPole); + modelist.registerModel(new EvtSLBKPole); + modelist.registerModel(new EvtHQET); + modelist.registerModel(new EvtHQET2); + modelist.registerModel(new EvtISGW); + modelist.registerModel(new EvtBHadronic); + modelist.registerModel(new EvtVSS); + modelist.registerModel(new EvtVSSMix); + modelist.registerModel(new EvtVSSBMixCPT); + modelist.registerModel(new EvtVSPPwave); + modelist.registerModel(new EvtGoityRoberts); + modelist.registerModel(new EvtSVS); + modelist.registerModel(new EvtTSS); + modelist.registerModel(new EvtTVSPwave); + modelist.registerModel(new EvtSVVHelAmp); + modelist.registerModel(new EvtSVPHelAmp); + modelist.registerModel(new EvtSVPCP); + modelist.registerModel(new EvtVVSPwave); + modelist.registerModel(new EvtDDalitz); + modelist.registerModel(new EvtOmegaDalitz); + modelist.registerModel(new EvtEtaDalitz); + modelist.registerModel(new EvtPhsp); + modelist.registerModel(new EvtBtoXsgamma); + modelist.registerModel(new EvtBtoXsll); + modelist.registerModel(new EvtBtoXsEtap); + modelist.registerModel(new EvtSSSCP); + modelist.registerModel(new EvtSSSCPpng); + modelist.registerModel(new EvtSTSCP); + modelist.registerModel(new EvtSTS); + modelist.registerModel(new EvtSSSCPT); + modelist.registerModel(new EvtSVSCP); + modelist.registerModel(new EvtSSDCP); + modelist.registerModel(new EvtSVSNONCPEIGEN); + modelist.registerModel(new EvtSVVNONCPEIGEN); + modelist.registerModel(new EvtSVVCP); + modelist.registerModel(new EvtSVVCPLH); + modelist.registerModel(new EvtSVSCPLH); + modelist.registerModel(new EvtSll); + modelist.registerModel(new EvtVll); + modelist.registerModel(new EvtTaulnunu); + modelist.registerModel(new EvtTauScalarnu); + modelist.registerModel(new EvtKstarnunu); + modelist.registerModel(new EvtbTosllBall); + modelist.registerModel(new EvtBto2piCPiso); + modelist.registerModel(new EvtBtoKpiCPiso); + modelist.registerModel(new EvtSVSCPiso); + modelist.registerModel(new EvtSingleParticle); + modelist.registerModel(new EvtVectorIsr); + modelist.registerModel(new EvtPi0Dalitz); + modelist.registerModel(new EvtHelAmp); + modelist.registerModel(new EvtPartWave); + modelist.registerModel(new EvtVVpipi); + modelist.registerModel(new EvtY3SToY1SpipiMoxhay); + modelist.registerModel(new EvtYmSToYnSpipiCLEO); + modelist.registerModel(new EvtBsquark); + modelist.registerModel(new EvtPhiDalitz); + modelist.registerModel(new EvtBToPlnuBK); + modelist.registerModel(new EvtBToVlnuBall); + modelist.registerModel(new EvtVVPIPI_WEIGHTED); + modelist.registerModel(new EvtVPHOtoVISRHi); + + modelist.registerModel(new EvtBTo4piCP); + modelist.registerModel(new EvtBTo3piCP); + modelist.registerModel(new EvtCBTo3piP00); + modelist.registerModel(new EvtCBTo3piMPP); + modelist.registerModel(new EvtBToKpipiCP); + + modelist.registerModel(new EvtLb2Lll); + modelist.registerModel(new EvtHypNonLepton); + modelist.registerModel(new EvtSVVHelCPMix); + + modelist.registerModel(new EvtLNuGamma); + modelist.registerModel(new EvtKstarstargamma); + + modelist.registerModel(new EvtVub); + //modelist.registerModel(new EvtVubAFR); + + modelist.registerModel(new EvtVubHybrid); + modelist.registerModel(new EvtVubNLO); + modelist.registerModel(new EvtVubBLNP); + modelist.registerModel(new EvtVubBLNPHybrid); + + modelist.registerModel(new EvtPto3P); + modelist.registerModel(new EvtBtoKD3P); + modelist.registerModel(new EvtKKLambdaC); + modelist.registerModel(new EvtMultibody); + modelist.registerModel(new EvtDMix); + modelist.registerModel(new EvtD0mixDalitz); + + //modelist.registerModel(new EvtJetSetCDF); + //modelist.registerModel(new EvtJscontCDF); + + modelist.registerModel(new EvtbTosllAli); + // modelist.registerModel(new EvtBToDDalitzCPK); + // modelist.registerModel(new EvtLambdaB2LambdaV); + // modelist.registerModel(new EvtLambda2PPiForLambdaB2LambdaV); + // modelist.registerModel(new EvtV2VpVmForLambdaB2LambdaV); + // modelist.registerModel(new EvtPVVCPLH); + // modelist.registerModel(new EvtSSD_DirectCP); + + +//#ifndef EVTSTANDALONE +// cout << "Will registerModel EvtJetSet"< + +class EvtModelReg{ + +public: + + EvtModelReg(const std::list* extraModels=0); + +private: + + +}; + + +#endif + + + diff --git a/TEvtGen/EvtGenModels/EvtMultibody.cxx b/TEvtGen/EvtGenModels/EvtMultibody.cxx new file mode 100644 index 00000000000..1aba0ba544f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtMultibody.cxx @@ -0,0 +1,75 @@ +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtResonance.hh" +#include "EvtGenBase/EvtResonance2.hh" +#include "EvtGenModels/EvtMultibody.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtdFunction.hh" +#include "EvtGenBase/EvtKine.hh" +#include "EvtGenBase/EvtParticle.hh" + +EvtMultibody::~EvtMultibody() +{ + if( _decayTree != NULL ) delete _decayTree; + _decayTree=NULL; + if( _ilist != NULL ) delete [] _ilist; + _ilist=NULL; +} + +std::string EvtMultibody::getName() +{ + return "D_MULTIBODY"; +} + +EvtDecayBase* EvtMultibody::clone() +{ + return new EvtMultibody; +} + +void EvtMultibody::init() +{ + int N = getNArg(); + + _decayTree = new EvtMTree( getDaugs(), getNDaug() ); + _ilist = new int[getNDaug()+1]; + + for(int i=0; iaddtree( getArgStr( ++i ) ); + } else { + report(ERROR,"EvtGen") + << "Syntax error at " << getArgStr( i ) << std::endl; + ::abort(); + } + } +} + +// Set the maximum probability amplitude - if function is left blank then the +// program will search for it. This however is not deterministic and therefore +// in the release cannot be in place. +void EvtMultibody::initProbMax() +{ + // setProbMax(1.0); +} + +void EvtMultibody::decay( EvtParticle *p ) +{ + // Initialize the phase space before doing anything else! + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtSpinAmp amp = _decayTree->amplitude( p ); + + vector index = amp.iterallowedinit(); + vector spins = amp.dims(); + + do { + for( size_t i=0; i pi pi pi0 +// +// Modification history: +// +// RYD November 24, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtVector3R.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtOmegaDalitz.hh" +#include "EvtGenBase/EvtReport.hh" +#include + +EvtOmegaDalitz::~EvtOmegaDalitz() {} + +std::string EvtOmegaDalitz::getName(){ + + return "OMEGA_DALITZ"; + +} + + +EvtDecayBase* EvtOmegaDalitz::clone(){ + + return new EvtOmegaDalitz; + +} + +void EvtOmegaDalitz::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(3); + + checkSpinParent(EvtSpinType::VECTOR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + checkSpinDaughter(2,EvtSpinType::SCALAR); + +} + +void EvtOmegaDalitz::initProbMax() { + + setProbMax( 1.0); + +} + +void EvtOmegaDalitz::decay( EvtParticle *p ){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtVector4C ep[3]; + + ep[0] = p->eps(0); + ep[1] = p->eps(1); + ep[2] = p->eps(2); + + EvtVector4R mompi1 = p->getDaug(0)->getP4(); + EvtVector4R mompi2 = p->getDaug(1)->getP4(); + + EvtVector3R p1(mompi1.get(1),mompi1.get(2),mompi1.get(3)); + EvtVector3R p2(mompi2.get(1),mompi2.get(2),mompi2.get(3)); + EvtVector3R q=cross(p2,p1); + + EvtVector3C e1(ep[0].get(1),ep[0].get(2),ep[0].get(3)); + EvtVector3C e2(ep[1].get(1),ep[1].get(2),ep[1].get(3)); + EvtVector3C e3(ep[2].get(1),ep[2].get(2),ep[2].get(3)); + + //This is an approximate formula of the maximum value that + //|q| can have. + double norm=1.14/(p->mass()*p->mass()/9.0-mompi1.mass2()); + + vertex(0,norm*e1*q); + vertex(1,norm*e2*q); + vertex(2,norm*e3*q); + + return ; + +} + diff --git a/TEvtGen/EvtGenModels/EvtOmegaDalitz.hh b/TEvtGen/EvtGenModels/EvtOmegaDalitz.hh new file mode 100644 index 00000000000..1692459ebd5 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtOmegaDalitz.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtOmegaDalitz.hh +// +// Description:Class to handle the omega -> pi pi pi dalitz decay. + +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTOMEGADALITZ_HH +#define EVTOMEGADALITZ_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtOmegaDalitz:public EvtDecayAmp { + +public: + + EvtOmegaDalitz() {} + virtual ~EvtOmegaDalitz(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void decay(EvtParticle *p); + void initProbMax(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtPFermi.cxx b/TEvtGen/EvtGenModels/EvtPFermi.cxx new file mode 100644 index 00000000000..4df434bd175 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPFermi.cxx @@ -0,0 +1,100 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// +// Description: +// DFN model: +// F(k+) = N (1-x)^a exp((1+a)x) ,x=k+/(mB-mb) +// the fermi motion distribution according to +// hep-ph/9905351 v2 +// BLNP model: +// F(wtilde,Lambda,b) = pow(_b,_b)/(tgamma(_b)*_Lambda)*pow(wtilde/_Lambda,_b-1)* +// exp(-_b*wtilde/Lambda); +// the leading order shape function (exp) (hep-ph/0504071) +// Environment: +// Software developed for the BaBar Detector at the SLAC B-Factory. +// +// Author List: +// Sven Menke (DFN model) +// Alexei Volk (BLNP model) +//----------------------------------------------------------------------- +//----------------------- +// This Class's Header -- +//----------------------- +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenModels/EvtPFermi.hh" +#include "EvtGenBase/EvtReport.hh" +//--------------- +// C Headers -- +//--------------- +#include +#include + +//---------------- +// Constructors -- +//---------------- + +//for DFN model +EvtPFermi::EvtPFermi(const double &a, const double &mB, const double &mb) +{ + _a = a; + _mb = mb; + _mB = mB; +} + +// for BLNP modell +EvtPFermi::EvtPFermi(const double &Lambda, const double &b) +{ + _Lambda = Lambda; + _b = b; +} + + +//-------------- +// Destructor -- +//-------------- + +EvtPFermi::~EvtPFermi( ) +{ +} + +//----------- +// Methods -- +//----------- + +double EvtPFermi::getFPFermi(const double &kplus) +{ + double FKplus; + double x = kplus/(_mB-_mb); + + if ( x >= 1) return 0; + if ( kplus <= -_mb) return 0; + + FKplus = pow(1-x,_a)*exp((1+_a)*x); + + return FKplus; +} + +// get value for the leading order exponential SF +double EvtPFermi::getSFBLNP(const double &what) +{ + double SF; + double massB = 5.2792; + + + if ( what > massB ) return 0; + if ( what < 0 ) return 0; + +#if defined(__SUNPRO_CC) + report(ERROR,"EvtGen") << "The tgamma function is not available on this platform\n"; + report(ERROR,"EvtGen") <<"Presumably, you are getting the wrong answer, so I abort.."; + ::abort(); +#else + SF = pow(_b,_b)/(tgamma(_b)*_Lambda)*pow(what/_Lambda,_b-1)*exp(-_b*what/_Lambda); +#endif + + return SF; +} + diff --git a/TEvtGen/EvtGenModels/EvtPFermi.hh b/TEvtGen/EvtGenModels/EvtPFermi.hh new file mode 100644 index 00000000000..40dd71b70f3 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPFermi.hh @@ -0,0 +1,71 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// +// Description: +// DFN model: +// F(k+) = N (1-x)^a exp((1+a)x) ,x=k+/(mB-mb) +// the fermi motion distribution according to +// hep-ph/9905351 v2 +// BLNP model: +// F(what,Lambda,b) = pow(_b,_b)/(tgamma(_b)*_Lambda)*pow(what/_Lambda,_b-1)* +// exp(-_b*what/Lambda); +// the leading order shape function (exp) (hep-ph/0504071) +// Environment: +// Software developed for the BaBar Detector at the SLAC B-Factory. +// +// Author List: +// Sven Menke (DFN model) +// Alexei Volk (BLNP model) +//----------------------------------------------------------------------- + +#ifndef EVTPFERMI_HH +#define EVTPFERMI_HH + +class EvtPFermi { + +public: + + // Constructors + + EvtPFermi(const double &a, const double &mB, const double &mb); + EvtPFermi(const double &Lambda, const double &b); + + // Destructor + + virtual ~EvtPFermi( ); + + // Operators + + // Selectors + + // Modifiers + + // Methods + + double getFPFermi(const double &kplus); + double getSFBLNP(const double &what); + +protected: + + // Helper functions + +private: + + // Friends + + // Data members + + double _a; + double _mb; + double _mB; + double _Lambda; + double _b; +}; + + +#endif // EVTPFERMI_HH + + diff --git a/TEvtGen/EvtGenModels/EvtPHOTOS.cxx b/TEvtGen/EvtGenModels/EvtPHOTOS.cxx new file mode 100644 index 00000000000..807eba30425 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPHOTOS.cxx @@ -0,0 +1,232 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtPHOTOS.cc +// +// Description: This routine takes the particle *p and applies +// the PHOTOS package to generate final state radiation +// on the produced mesons. +// +// Modification history: +// +// RYD October 1, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtIdSet.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPhotonParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtPHOTOS.hh" +#include "EvtGenBase/EvtReport.hh" +#include + +extern "C" void begevtgenstorex_(int *,int *,int *,int *, + int *,int *,int *,int *, + double *,double *,double *, + double *,double *,double *, + double *,double *,double *); + +extern "C" void begevtgengetx_(int *,int *,int *,int *, + int *,int *,int *,int *, + double *,double *,double *, + double *,double *,double *, + double *,double *,double *); + +extern "C" void heplst_(int *); + +extern "C" void photos_(int *); + +extern "C" void phoini_(); + + +EvtPHOTOS::EvtPHOTOS(std::string photontype){ + + _photontype=photontype; + +} + +void EvtPHOTOS::doRadCorr( EvtParticle *p){ + + static int first=1; + + //added by Lange Jan4,2000 + //allow to set photon tupe + static EvtId GAMM=EvtPDL::getId(_photontype); + + if (GAMM==EvtId(-1,-1)) { + report(ERROR,"EvtGen") << "In EvtPHOTOS::doRadCorr():Particle:"<< + _photontype<<" is not in EvtPDL"<getId() == vpho ) return; + if ( p->getNDaug() > 10 ) return; + + px=0.0; + py=0.0; + pz=0.0; + e=p->mass(); + m=p->mass(); + x=0.0; + y=0.0; + z=0.0; + t=0.0; + + entry=1; + eventnum=1; + numparticle=1; + istat=2; + partnum=EvtPDL::getStdHep(p->getId()); + mother=0; + daugfirst=2; + dauglast=1+p->getNDaug(); + + begevtgenstorex_(&entry,&eventnum,&numparticle,&istat,&partnum, + &mother,&daugfirst,&dauglast, + &px,&py,&pz,&e,&m,&x,&y,&z,&t); + + // std::cout << EvtPDL::name(p->getId()) <<" " ; + for(size_t i=0;igetNDaug();i++){ + + //No quarks to photos + if (quarks.contains(p->getDaug(i)->getId())==1) continue; + + px=p->getDaug(i)->getP4().get(1); + py=p->getDaug(i)->getP4().get(2); + pz=p->getDaug(i)->getP4().get(3); + e=p->getDaug(i)->getP4().get(0); + m=p->getDaug(i)->mass(); + x=0.0; + y=0.0; + z=0.0; + t=0.0; + + // std::cout << EvtPDL::name(p->getDaug(i)->getId()) << " " ; + entry+=1; + eventnum=1; + numparticle+=1; + istat=1; + partnum=EvtPDL::getStdHep(p->getDaug(i)->getId()); + mother=1; + daugfirst=0; + dauglast=0; + + begevtgenstorex_(&entry,&eventnum,&numparticle,&istat,&partnum, + &mother,&daugfirst,&dauglast, + &px,&py,&pz,&e,&m,&x,&y,&z,&t); + + + } + // std::cout << std::endl; + //can't use heplst since the common block used by the BaBar + //implementation of PHOTOS is renamed due to real*4 vs real*8 + //problems. + + //int mlst=1; + + //heplst_(&mlst); + + entry=1; + + // report(INFO,"EvtGen") << "Doing photos " << EvtPDL::name(p->getId()) << endl; + photos_(&entry); + // report(INFO,"EvtGen") << "done\n"; + begevtgengetx_(&entry,&eventnum,&numparticlephotos,&istat,&partnum, + &mother,&daugfirst,&dauglast, + &px,&py,&pz,&e,&m,&x,&y,&z,&t); + + + //report(INFO,"EvtGen") << "numparticlephotos:"<getNDaug();i++){ + + entry=i+2; + + begevtgengetx_(&entry,&eventnum,&np,&istat,&partnum, + &mother,&daugfirst,&dauglast, + &px,&py,&pz,&e,&m,&x,&y,&z,&t); + + //this is needed to ensure that photos does not + //change the masses. But it will violate energy conservation! + double mp=p->getDaug(i)->mass(); + e=sqrt(mp*mp+px*px+py*py+pz*pz); + + new4mom.set(e,px,py,pz); + + p->getDaug(i)->setP4WithFSR(new4mom); + + + + } + + for(entry=numparticle+1;entry<=numparticlephotos;entry++){ + + begevtgengetx_(&entry,&eventnum,&np,&istat,&partnum, + &mother,&daugfirst,&dauglast, + &px,&py,&pz,&e,&m,&x,&y,&z,&t); + + //Hack here to give the photon the mass of the generated particle + e=sqrt(mpho*mpho+px*px+py*py+pz*pz); + new4mom.set(e,px,py,pz); + + //new4mom.dump(); + + EvtPhotonParticle* gamma; + gamma=new EvtPhotonParticle; + gamma->init(GAMM,new4mom); + gamma->setFSRP4toZero(); + // report(INFO,"EvtGen") << gamma << " " << p << " "<< px << " " << py << " " << pz << " " << p->getNDaug() << " " << EvtPDL::name(p->getId())<<" " << entry << " " <addDaug(p); + +// p->getDaug(i)->set_type(EvtSpinType::PHOTON); + + } + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtPHOTOS.hh b/TEvtGen/EvtGenModels/EvtPHOTOS.hh new file mode 100644 index 00000000000..3a25244864c --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPHOTOS.hh @@ -0,0 +1,46 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtPHOTOS.hh +// +// Description: EvtGen's interface to PHOTOS for generation of +// QED final state radiation. +// +// Modification history: +// +// RYD March 24, 1998 Module created +// Lange April 25, 2002 - changed to derive from EvtAbsRadCorr +// +//------------------------------------------------------------------------ + +#ifndef EVTPHOTOS_HH +#define EVTPHOTOS_HH + +#include "EvtGenBase/EvtAbsRadCorr.hh" +#include + +class EvtParticle; + +class EvtPHOTOS : public EvtAbsRadCorr{ + +public: + + //The photon type to use + EvtPHOTOS(std::string photontype="gamma"); + + void doRadCorr(EvtParticle *p); + +private: + std::string _photontype; + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtPartWave.cxx b/TEvtGen/EvtGenModels/EvtPartWave.cxx new file mode 100644 index 00000000000..0efc949ced2 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPartWave.cxx @@ -0,0 +1,297 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech, UCSB +// +// Module: EvtHelAmp.cc +// +// Description: Decay model for implementation of generic 2 body +// decay specified by the partial wave amplitudes +// +// +// Modification history: +// +// fkw February 2, 2001 changes to satisfy KCC +// RYD September 7, 2000 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtPartWave.hh" +#include "EvtGenBase/EvtEvalHelAmp.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtKine.hh" +#include "EvtGenBase/EvtCGCoefSingle.hh" +#include +using std::endl; +EvtPartWave::~EvtPartWave() {} + +std::string EvtPartWave::getName(){ + + return "PARTWAVE"; + +} + + +EvtDecayBase* EvtPartWave::clone(){ + + return new EvtPartWave; + +} + +void EvtPartWave::init(){ + + checkNDaug(2); + + //find out how many states each particle have + int _nA=EvtSpinType::getSpinStates(EvtPDL::getSpinType(getParentId())); + int _nB=EvtSpinType::getSpinStates(EvtPDL::getSpinType(getDaug(0))); + int _nC=EvtSpinType::getSpinStates(EvtPDL::getSpinType(getDaug(1))); + + if (verbose()){ + report(INFO,"EvtGen")<<"_nA,_nB,_nC:" + <<_nA<<","<<_nB<<","<<_nC<abs(_JB2+_JC2)) Smax=abs(_JB2+_JC2); + int S; + for (S=Smin;S<=Smax;S+=2){ + _nL[_nPartialWaveAmp]=L; + _nS[_nPartialWaveAmp]=S; + + _nPartialWaveAmp++; + if (verbose()){ + report(INFO,"EvtGen")<<"M["<=abs(m1)){ + + EvtComplex tmp=sqrt(fkwTmp) + *c1.coef(S,m1,s2,s3,lambda2,-lambda3) + *c2.coef(s1,m1,L,S,0,m1)*_M[i]; + _HBC[ib][ic]+=tmp; + } + } + if (verbose()){ + report(INFO,"EvtGen")<<"_HBC["<1e-6){ + report(ERROR,"EvtGen")<<"In EvtPartWave for decay " + << EvtPDL::name(getParentId()) << " -> " + << EvtPDL::name(getDaug(0)) << " " + << EvtPDL::name(getDaug(1)) << std::endl; + report(ERROR,"EvtGen")<<"With arguments: "<probMax(); + + if (verbose()){ + report(INFO,"EvtGen")<<"Calculated probmax"<initializePhaseSpace(getNDaug(),getDaugs()); + + _evalHelAmp->evalAmp(p,_amp2); + + return; + +} + + + +void EvtPartWave::fillHelicity(int* lambda2,int n,int J2){ + + int i; + + //photon is special case! + if (n==2&&J2==2) { + lambda2[0]=2; + lambda2[1]=-2; + return; + } + + assert(n==J2+1); + + for(i=0;i +#include +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtPhiDalitz.hh" +#include "EvtGenBase/EvtReport.hh" +#include + +// Implementation of KLOE measurement +// PL B561: 55-60 (2003) + Erratum B609:449-450 (2005) +// or hep-ex/0303016v2 + + +EvtPhiDalitz::~EvtPhiDalitz() {} + +std::string EvtPhiDalitz::getName(){ + + return "PHI_DALITZ"; + +} + + +EvtDecayBase* EvtPhiDalitz::clone(){ + + return new EvtPhiDalitz; + +} + +void EvtPhiDalitz::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(3); + + checkSpinParent(EvtSpinType::VECTOR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + checkSpinDaughter(2,EvtSpinType::SCALAR); + + _mRho=0.7758; + _gRho=0.1439; + _aD=0.78; + _phiD=-2.47; + _aOmega=0.0071; + _phiOmega=-0.22; + + _locPip=-1; + _locPim=-1; + _locPi0=-1; + + for ( int i=0; i<3; i++) { + if ( getDaug(i) == EvtPDL::getId("pi+")) _locPip=i; + if ( getDaug(i) == EvtPDL::getId("pi-")) _locPim=i; + if ( getDaug(i) == EvtPDL::getId("pi0")) _locPi0=i; + } + if ( _locPip == -1 || _locPim == -1 || _locPi0 == -1 ) { + report(ERROR,"EvtGen") << getModelName() << "generator expects daughters to be pi+ pi- pi0\n"; + report(ERROR,"EvtGen") << "Found " << EvtPDL::name(getDaug(0)) << " " + << EvtPDL::name(getDaug(1)) << " " + << EvtPDL::name(getDaug(2)) << std::endl; + + } + + +} + + + + +void EvtPhiDalitz::decay( EvtParticle *p){ + + EvtId PIP=EvtPDL::getId("pi+"); + EvtId PIM=EvtPDL::getId("pi-"); + EvtId PIZ=EvtPDL::getId("pi0"); + EvtId OMEGA=EvtPDL::getId("omega"); + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtVector4R Ppip = p->getDaug(_locPip)->getP4(); + EvtVector4R Ppim = p->getDaug(_locPim)->getP4(); + EvtVector4R Ppi0 = p->getDaug(_locPi0)->getP4(); + EvtVector4R Qp = (Ppim + Ppi0); + EvtVector4R Qm = (Ppip + Ppi0); + EvtVector4R Q0 = (Ppip + Ppim); + double m2_pip = pow(EvtPDL::getMeanMass(PIP),2); + double m2_pim = pow(EvtPDL::getMeanMass(PIM),2); + double m2_pi0 = pow(EvtPDL::getMeanMass(PIZ),2); + double M2rhop = pow(_mRho,2); + double M2rhom = pow(_mRho,2); + double M2rho0 = pow(_mRho,2); + double M2omega = pow(EvtPDL::getMeanMass(OMEGA),2); + + double Wrhop = _gRho; + double Wrhom = _gRho; + double Wrho0 = _gRho; + double Womega = EvtPDL::getWidth(OMEGA); + + EvtComplex Atot(0,0); + + //Rho+ Risonance Amplitude + double Gp = Wrhop*pow(((Qp.mass2()-m2_pim-m2_pi0)/2-M2rhop/4)/(M2rhop/4-(m2_pim+m2_pi0)/2),3/2)*(M2rhop/Qp.mass2()); + EvtComplex Drhop((Qp.mass2()-M2rhop),Qp.mass()*Gp); + EvtComplex A1(M2rhop/Drhop); + + //Rho- Risonance Amplitude + double Gm = Wrhom*pow(((Qm.mass2()-m2_pip-m2_pi0)/2-M2rhom/4)/(M2rhom/4-(m2_pip+m2_pi0)/2),3/2)*(M2rhom/Qm.mass2()); + EvtComplex Drhom((Qm.mass2()-M2rhom),Qm.mass()*Gm); + EvtComplex A2(M2rhom/Drhom); + + //Rho0 Risonance Amplitude + double G0 = Wrho0*pow(((Q0.mass2()-m2_pip-m2_pim)/2-M2rho0/4)/(M2rho0/4-(m2_pip+m2_pim)/2),3/2)*(M2rho0/Q0.mass2()); + EvtComplex Drho0((Q0.mass2()-M2rho0),Q0.mass()*G0); + EvtComplex A3(M2rho0/Drho0); + + //Omega Risonance Amplitude + EvtComplex OmegaPhase(0,_phiOmega); + EvtComplex DOmega((Q0.mass2()-M2omega),Q0.mass()*Womega); + EvtComplex A4(_aOmega*M2omega*exp(OmegaPhase)/DOmega); + + //Direct Decay Amplitude + EvtComplex DirPhase(0,_phiD); + EvtComplex A5(_aD*exp(DirPhase)); + + Atot=A1+A2+A3+A4+A5; + + vertex(0,Atot); + vertex(1,Atot); + vertex(2,Atot); + + return ; + +} + + + + + + + diff --git a/TEvtGen/EvtGenModels/EvtPhiDalitz.hh b/TEvtGen/EvtGenModels/EvtPhiDalitz.hh new file mode 100644 index 00000000000..e488f5f9dee --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPhiDalitz.hh @@ -0,0 +1,36 @@ + +#ifndef EVTPHIDALITZ_HH +#define EVTPHIDALITZ_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtPhiDalitz:public EvtDecayAmp { + +public: + + EvtPhiDalitz() {} + virtual ~EvtPhiDalitz(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + + void decay(EvtParticle *p); + +private: + double _mRho; + double _gRho; + double _aD; + double _phiD; + double _aOmega; + double _phiOmega; + int _locPip; + int _locPim; + int _locPi0; + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtPhsp.cxx b/TEvtGen/EvtGenModels/EvtPhsp.cxx new file mode 100644 index 00000000000..5c500909cec --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPhsp.cxx @@ -0,0 +1,73 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtPhsp.cc +// +// Description: Routine to decay a particle according th phase space +// +// Modification history: +// +// RYD January 8, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtPhsp.hh" +#include + +EvtPhsp::~EvtPhsp() {} + +std::string EvtPhsp::getName(){ + + return "PHSP"; + +} + +EvtDecayBase* EvtPhsp::clone(){ + + return new EvtPhsp; + +} + + +void EvtPhsp::init(){ + + // check that there are 0 arguments + checkNArg(0); + +} + +void EvtPhsp::initProbMax(){ + + noProbMax(); + +} + +void EvtPhsp::decay( EvtParticle *p ){ + + //unneeded - lange - may13-02 + //if ( p->getNDaug() != 0 ) { + //Will end up here because maxrate multiplies by 1.2 + // report(DEBUG,"EvtGen") << "In EvtPhsp: has " + // <<" daugthers should not be here!"<initializePhaseSpace(getNDaug(),getDaugs()); + + return ; +} + + diff --git a/TEvtGen/EvtGenModels/EvtPhsp.hh b/TEvtGen/EvtGenModels/EvtPhsp.hh new file mode 100644 index 00000000000..09753c5650c --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPhsp.hh @@ -0,0 +1,50 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtPhsp.hh +// +// Description: +//Class to handle generic phase space decays not done +//in other decay models. +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTPHSP_HH +#define EVTPHSP_HH + +#include "EvtGenBase/EvtDecayIncoherent.hh" + +class EvtParticle; + +class EvtPhsp:public EvtDecayIncoherent { + +public: + + EvtPhsp() {} + virtual ~EvtPhsp(); + + std::string getName(); + + EvtDecayBase* clone(); + + void initProbMax(); + + void init(); + + void decay(EvtParticle *p); + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtPi0Dalitz.cxx b/TEvtGen/EvtGenModels/EvtPi0Dalitz.cxx new file mode 100644 index 00000000000..1e546ecb6f0 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPi0Dalitz.cxx @@ -0,0 +1,116 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtPi0Dalitz.cc +// +// Description: pi0 -> e+ e- gamma +// +// Modification history: +// +// DJL/RYD June 30, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtPi0Dalitz.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +using std::fstream; + +EvtPi0Dalitz::~EvtPi0Dalitz() {} + +std::string EvtPi0Dalitz::getName(){ + + return "PI0_DALITZ"; + +} + +EvtDecayBase* EvtPi0Dalitz::clone(){ + + return new EvtPi0Dalitz; + +} + + +void EvtPi0Dalitz::initProbMax(){ + + setProbMax(3.5); + +} + + +void EvtPi0Dalitz::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(3); + + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::DIRAC); + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::PHOTON); + +} + + +void EvtPi0Dalitz::decay( EvtParticle *p){ + + EvtParticle *ep, *em, *gamma; + setWeight(p->initializePhaseSpace(getNDaug(),getDaugs(),false, + 0.00000002,0,1)); + + ep=p->getDaug(0); + em=p->getDaug(1); + gamma=p->getDaug(2); + + // the next four lines generates events with a weight such that + // the efficiency for selecting them is good. The parameter below of + // 0.1 is the size of the peak at low q^2 (in arbitrary units). + // The value of 0.1 is appropriate for muons. + // when you use this remember to remove the cut on q^2! + + + //ep em invariant mass^2 + double m2=(ep->getP4()+em->getP4()).mass2(); + EvtVector4R q=ep->getP4()+em->getP4(); + //Just use the prob summed over spins... + + EvtTensor4C w,v; + + v=2.0*(gamma->getP4()*q)*directProd(q,gamma->getP4()) + - (gamma->getP4()*q)*(gamma->getP4()*q)*EvtTensor4C::g() + -m2*directProd(gamma->getP4(),gamma->getP4()); + + w=4.0*( directProd(ep->getP4(),em->getP4()) + directProd(em->getP4(),ep->getP4()) + -EvtTensor4C::g()*(ep->getP4()*em->getP4()-ep->getP4().mass2())); + + double prob=(real(cont(v,w)))/(m2*m2); + prob *=(1.0/( (0.768*0.768-m2)*(0.768*0.768-m2) + +0.768*0.768*0.151*0.151)); + + // report(INFO,"EvtGen") << "prob is "< +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtPropSLPole.hh" +#include "EvtGenModels/EvtSLPoleFF.hh" +#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicTensorAmp.hh" +#include "EvtGenBase/EvtIntervalFlatPdf.hh" +#include "EvtGenBase/EvtScalarParticle.hh" +#include "EvtGenBase/EvtVectorParticle.hh" +#include "EvtGenBase/EvtTensorParticle.hh" +#include "EvtGenBase/EvtTwoBodyVertex.hh" +#include "EvtGenBase/EvtPropBreitWignerRel.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtAmpPdf.hh" +#include "EvtGenBase/EvtMassAmp.hh" +#include "EvtGenBase/EvtSpinType.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include + +EvtPropSLPole::~EvtPropSLPole() {} + +std::string EvtPropSLPole::getName(){ + + return "PROPSLPOLE"; + +} + + +EvtDecayBase* EvtPropSLPole::clone(){ + + return new EvtPropSLPole; + +} + +void EvtPropSLPole::decay( EvtParticle *p ){ + + if(! _isProbMaxSet){ + + EvtId parnum,mesnum,lnum,nunum; + + parnum = getParentId(); + mesnum = getDaug(0); + lnum = getDaug(1); + nunum = getDaug(2); + + double mymaxprob = calcMaxProb(parnum,mesnum, + lnum,nunum,SLPoleffmodel); + + setProbMax(mymaxprob); + + _isProbMaxSet = true; + + } + + double minKstMass = EvtPDL::getMinMass(p->getDaug(0)->getId()); + double maxKstMass = EvtPDL::getMaxMass(p->getDaug(0)->getId()); + + EvtIntervalFlatPdf flat(minKstMass, maxKstMass); + EvtPdfGen gen(flat); + EvtPoint1D point = gen(); + + double massKst = point.value(); + + p->getDaug(0)->setMass(massKst); + p->initializePhaseSpace(getNDaug(),getDaugs()); + +// EvtVector4R p4meson = p->getDaug(0)->getP4(); + + calcamp->CalcAmp(p,_amp2,SLPoleffmodel); + + EvtParticle *mesonPart = p->getDaug(0); + + double meson_BWAmp = calBreitWigner(mesonPart, point); + + int list[2]; + list[0]=0; list[1]=0; + _amp2.vertex(0,0,_amp2.getAmp(list)*meson_BWAmp); + list[0]=0; list[1]=1; + _amp2.vertex(0,1,_amp2.getAmp(list)*meson_BWAmp); + + list[0]=1; list[1]=0; + _amp2.vertex(1,0,_amp2.getAmp(list)*meson_BWAmp); + list[0]=1; list[1]=1; + _amp2.vertex(1,1,_amp2.getAmp(list)*meson_BWAmp); + + list[0]=2; list[1]=0; + _amp2.vertex(2,0,_amp2.getAmp(list)*meson_BWAmp); + list[0]=2; list[1]=1; + _amp2.vertex(2,1,_amp2.getAmp(list)*meson_BWAmp); + + + return; + +} + +void EvtPropSLPole::initProbMax(){ + + _isProbMaxSet = false; + + return; + +} + + +void EvtPropSLPole::init(){ + + checkNDaug(3); + + //We expect the parent to be a scalar + //and the daughters to be X lepton neutrino + + checkSpinParent(EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + + EvtSpinType::spintype mesontype=EvtPDL::getSpinType(getDaug(0)); + + SLPoleffmodel = new EvtSLPoleFF(getNArg(),getArgs()); + + if ( mesontype==EvtSpinType::SCALAR ) { + calcamp = new EvtSemiLeptonicScalarAmp; + } + if ( mesontype==EvtSpinType::VECTOR ) { + calcamp = new EvtSemiLeptonicVectorAmp; + } + if ( mesontype==EvtSpinType::TENSOR ) { + calcamp = new EvtSemiLeptonicTensorAmp; + } + +} + + +double EvtPropSLPole::calBreitWignerBasic(double maxMass){ + + if ( _width< 0.0001) return 1.0; + //its not flat - but generated according to a BW + + double mMin=_massMin; + double mMax=_massMax; + if ( maxMass>-0.5 && maxMass< mMax) mMax=maxMass; + + double massGood = EvtRandom::Flat(mMin, mMax); + + double ampVal = sqrt(1.0/(pow(massGood-_mass, 2.0) + pow(_width, 2.0)/4.0)); + + return ampVal; + +} + + +double EvtPropSLPole::calBreitWigner(EvtParticle *pmeson, EvtPoint1D point){ + + EvtId mesnum = pmeson->getId(); + double _mass = EvtPDL::getMeanMass(mesnum); + double _width = EvtPDL::getWidth(mesnum); + double _maxRange = EvtPDL::getMaxRange(mesnum); + EvtSpinType::spintype mesontype=EvtPDL::getSpinType(mesnum); + _includeDecayFact=true; + _includeBirthFact=true; + _spin = mesontype; + _blatt = 3.0; + + double maxdelta = 15.0*_width; + + if ( _maxRange > 0.00001 ) { + _massMax=_mass+maxdelta; + _massMin=_mass-_maxRange; + } + else{ + _massMax=_mass+maxdelta; + _massMin=_mass-15.0*_width; + } + + _massMax=_mass+maxdelta; + if ( _massMin< 0. ) _massMin=0.; + + + EvtParticle* par=pmeson->getParent(); + double maxMass=-1.; + if ( par != 0 ) { + if ( par->hasValidP4() ) maxMass=par->mass(); + for ( size_t i=0;igetNDaug();i++) { + EvtParticle *tDaug=par->getDaug(i); + if ( pmeson != tDaug ) + maxMass-=EvtPDL::getMinMass(tDaug->getId()); + } + } + + EvtId *dauId=0; + double *dauMasses=0; + size_t nDaug = pmeson->getNDaug(); + if ( nDaug > 0) { + dauId=new EvtId[nDaug]; + dauMasses=new double[nDaug]; + for (size_t j=0;jgetDaug(j)->getId(); + dauMasses[j]=pmeson->getDaug(j)->mass(); + } + } + EvtId *parId=0; + EvtId *othDaugId=0; + EvtParticle *tempPar=pmeson->getParent(); + if (tempPar) { + parId=new EvtId(tempPar->getId()); + if ( tempPar->getNDaug()==2 ) { + if ( tempPar->getDaug(0) == pmeson ) othDaugId=new EvtId(tempPar->getDaug(1)->getId()); + else othDaugId=new EvtId(tempPar->getDaug(0)->getId()); + } + } + + if ( nDaug!=2) return calBreitWignerBasic(maxMass); + + if ( _width< 0.00001) return 1.0; + + //first figure out L - take the lowest allowed. + + EvtSpinType::spintype spinD1=EvtPDL::getSpinType(dauId[0]); + EvtSpinType::spintype spinD2=EvtPDL::getSpinType(dauId[1]); + + int t1=EvtSpinType::getSpin2(spinD1); + int t2=EvtSpinType::getSpin2(spinD2); + int t3=EvtSpinType::getSpin2(_spin); + + int Lmin=-10; + + // allow for special cases. + if (Lmin<-1 ) { + + //There are some things I don't know how to deal with + if ( t3>4) return calBreitWignerBasic(maxMass); + if ( t1>4) return calBreitWignerBasic(maxMass); + if ( t2>4) return calBreitWignerBasic(maxMass); + + //figure the min and max allowwed "spins" for the daughters state + Lmin=std::max(t3-t2-t1,std::max(t2-t3-t1,t1-t3-t2)); + if (Lmin<0) Lmin=0; + assert(Lmin==0||Lmin==2||Lmin==4); + } + + //double massD1=EvtPDL::getMeanMass(dauId[0]); + //double massD2=EvtPDL::getMeanMass(dauId[1]); + double massD1=dauMasses[0]; + double massD2=dauMasses[1]; + + // I'm not sure how to define the vertex factor here - so retreat to nonRel code. + if ( (massD1+massD2)> _mass ) return calBreitWignerBasic(maxMass); + + //parent vertex factor not yet implemented + double massOthD=-10.; + double massParent=-10.; + int birthl=-10; + if ( othDaugId) { + EvtSpinType::spintype spinOth=EvtPDL::getSpinType(*othDaugId); + EvtSpinType::spintype spinPar=EvtPDL::getSpinType(*parId); + + int tt1=EvtSpinType::getSpin2(spinOth); + int tt2=EvtSpinType::getSpin2(spinPar); + int tt3=EvtSpinType::getSpin2(_spin); + + //figure the min and max allowwed "spins" for the daughters state + if ( (tt1<=4) && ( tt2<=4) ) { + birthl=std::max(tt3-tt2-tt1,std::max(tt2-tt3-tt1,tt1-tt3-tt2)); + if (birthl<0) birthl=0; + + massOthD=EvtPDL::getMeanMass(*othDaugId); + massParent=EvtPDL::getMeanMass(*parId); + + } + + } + double massM=_massMax; + if ( (maxMass > -0.5) && (maxMass < massM) ) massM=maxMass; + + //special case... if the parent mass is _fixed_ we can do a little better + //and only for a two body decay as that seems to be where we have problems + + // Define relativistic propagator amplitude + + EvtTwoBodyVertex vd(massD1,massD2,_mass,Lmin/2); + vd.set_f(_blatt); + EvtPropBreitWignerRel bw(_mass,_width); + EvtMassAmp amp(bw,vd); +// if ( _fixMassForMax) amp.fixUpMassForMax(); +// else std::cout << "problem problem\n"; + if ( _includeDecayFact) { + amp.addDeathFact(); + amp.addDeathFactFF(); + } + if ( massParent>-1.) { + if ( _includeBirthFact ) { + + EvtTwoBodyVertex vb(_mass,massOthD,massParent,birthl/2); + amp.setBirthVtx(vb); + amp.addBirthFact(); + amp.addBirthFactFF(); + } + } + + EvtAmpPdf pdf(amp); + + double ampVal = sqrt(pdf.evaluate(point)); + + if ( parId) delete parId; + if ( othDaugId) delete othDaugId; + if ( dauId) delete [] dauId; + if ( dauMasses) delete [] dauMasses; + + return ampVal; + +} + + +double EvtPropSLPole::calcMaxProb( EvtId parent, EvtId meson, + EvtId lepton, EvtId nudaug, + EvtSemiLeptonicFF *FormFactors ) { + + //This routine takes the arguements parent, meson, and lepton + //number, and a form factor model, and returns a maximum + //probability for this semileptonic form factor model. A + //brute force method is used. The 2D cos theta lepton and + //q2 phase space is probed. + + //Start by declaring a particle at rest. + + //It only makes sense to have a scalar parent. For now. + //This should be generalized later. + + EvtScalarParticle *scalar_part; + EvtParticle *root_part; + + scalar_part=new EvtScalarParticle; + + //cludge to avoid generating random numbers! + scalar_part->noLifeTime(); + + EvtVector4R p_init; + + p_init.set(EvtPDL::getMass(parent),0.0,0.0,0.0); + scalar_part->init(parent,p_init); + root_part=(EvtParticle *)scalar_part; +// root_part->set_type(EvtSpinType::SCALAR); + root_part->setDiagonalSpinDensity(); + + EvtParticle *daughter, *lep, *trino; + + EvtAmp amp; + + EvtId listdaug[3]; + listdaug[0] = meson; + listdaug[1] = lepton; + listdaug[2] = nudaug; + + amp.init(parent,3,listdaug); + + root_part->makeDaughters(3,listdaug); + daughter=root_part->getDaug(0); + lep=root_part->getDaug(1); + trino=root_part->getDaug(2); + + EvtDecayBase *decayer; + decayer = EvtDecayTable::getDecayFunc(daughter); + if ( decayer ) { + daughter->makeDaughters(decayer->nRealDaughters(),decayer->getDaugs()); + for(int ii=0; iinRealDaughters(); ii++){ + daughter->getDaug(ii)->setMass(EvtPDL::getMeanMass(daughter->getDaug(ii)->getId())); + } + } + + //cludge to avoid generating random numbers! + daughter->noLifeTime(); + lep->noLifeTime(); + trino->noLifeTime(); + + //Initial particle is unpolarized, well it is a scalar so it is + //trivial + EvtSpinDensity rho; + rho.setDiag(root_part->getSpinStates()); + + double mass[3]; + + double m = root_part->mass(); + + EvtVector4R p4meson, p4lepton, p4nu, p4w; + double q2max; + + double q2, elepton, plepton; + int i,j; + double erho,prho,costl; + + double maxfoundprob = 0.0; + double prob = -10.0; + int massiter; + + for (massiter=0;massiter<3;massiter++){ + + mass[0] = EvtPDL::getMeanMass(meson); + mass[1] = EvtPDL::getMeanMass(lepton); + mass[2] = EvtPDL::getMeanMass(nudaug); + if ( massiter==1 ) { + mass[0] = EvtPDL::getMinMass(meson); + } + if ( massiter==2 ) { + mass[0] = EvtPDL::getMaxMass(meson); + if ( (mass[0]+mass[1]+mass[2])>m) mass[0]=m-mass[1]-mass[2]-0.00001; + } + + q2max = (m-mass[0])*(m-mass[0]); + + //loop over q2 + + for (i=0;i<25;i++) { + q2 = ((i+0.5)*q2max)/25.0; + + erho = ( m*m + mass[0]*mass[0] - q2 )/(2.0*m); + + prho = sqrt(erho*erho-mass[0]*mass[0]); + + p4meson.set(erho,0.0,0.0,-1.0*prho); + p4w.set(m-erho,0.0,0.0,prho); + + //This is in the W rest frame + elepton = (q2+mass[1]*mass[1])/(2.0*sqrt(q2)); + plepton = sqrt(elepton*elepton-mass[1]*mass[1]); + + double probctl[3]; + + for (j=0;j<3;j++) { + + costl = 0.99*(j - 1.0); + + //These are in the W rest frame. Need to boost out into + //the B frame. + p4lepton.set(elepton,0.0, + plepton*sqrt(1.0-costl*costl),plepton*costl); + p4nu.set(plepton,0.0, + -1.0*plepton*sqrt(1.0-costl*costl),-1.0*plepton*costl); + + EvtVector4R boost((m-erho),0.0,0.0,1.0*prho); + p4lepton=boostTo(p4lepton,boost); + p4nu=boostTo(p4nu,boost); + + //Now initialize the daughters... + + daughter->init(meson,p4meson); + lep->init(lepton,p4lepton); + trino->init(nudaug,p4nu); + + calcamp->CalcAmp(root_part,amp,FormFactors); + + EvtPoint1D *point = new EvtPoint1D(mass[0]); + + double meson_BWAmp = calBreitWigner(daughter, *point); + + int list[2]; + list[0]=0; list[1]=0; + amp.vertex(0,0,amp.getAmp(list)*meson_BWAmp); + list[0]=0; list[1]=1; + amp.vertex(0,1,amp.getAmp(list)*meson_BWAmp); + + list[0]=1; list[1]=0; + amp.vertex(1,0,amp.getAmp(list)*meson_BWAmp); + list[0]=1; list[1]=1; + amp.vertex(1,1,amp.getAmp(list)*meson_BWAmp); + + list[0]=2; list[1]=0; + amp.vertex(2,0,amp.getAmp(list)*meson_BWAmp); + list[0]=2; list[1]=1; + amp.vertex(2,1,amp.getAmp(list)*meson_BWAmp); + + //Now find the probability at this q2 and cos theta lepton point + //and compare to maxfoundprob. + + //Do a little magic to get the probability!! + prob = rho.normalizedProb(amp.getSpinDensity()); + + probctl[j]=prob; + } + + //probclt contains prob at ctl=-1,0,1. + //prob=a+b*ctl+c*ctl^2 + + double a=probctl[1]; + double b=0.5*(probctl[2]-probctl[0]); + double c=0.5*(probctl[2]+probctl[0])-probctl[1]; + + prob=probctl[0]; + if (probctl[1]>prob) prob=probctl[1]; + if (probctl[2]>prob) prob=probctl[2]; + + if (fabs(c)>1e-20){ + double ctlx=-0.5*b/c; + if (fabs(ctlx)<1.0){ + double probtmp=a+b*ctlx+c*ctlx*ctlx; + if (probtmp>prob) prob=probtmp; + } + + } + + //report(DEBUG,"EvtGen") << "prob,probctl:"< maxfoundprob ) { + maxfoundprob = prob; + } + + } + if ( EvtPDL::getWidth(meson) <= 0.0 ) { + //if the particle is narrow dont bother with changing the mass. + massiter = 4; + } + + } + root_part->deleteTree(); + + maxfoundprob *=1.1; + return maxfoundprob; + +} + diff --git a/TEvtGen/EvtGenModels/EvtPropSLPole.hh b/TEvtGen/EvtGenModels/EvtPropSLPole.hh new file mode 100644 index 00000000000..223142f1911 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPropSLPole.hh @@ -0,0 +1,69 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtPropSLPole.hh +// +// Description:Semileptonic decays with pole form form factors +// +// Modification history: +// +// DJL April 23, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTPROPSLPOLE_HH +#define EVTPROPSLPOLE_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" +#include "EvtGenBase/EvtPoint1D.hh" + +class Evtparticle; + +class EvtPropSLPole:public EvtDecayAmp { + +public: + + EvtPropSLPole() {} + virtual ~EvtPropSLPole(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void initProbMax(); + void init(); + + double calBreitWigner(EvtParticle *pmeson, EvtPoint1D point); + double calBreitWignerBasic(double maxMass); + + double calcMaxProb( EvtId parent, EvtId meson, EvtId lepton, EvtId nudaug, EvtSemiLeptonicFF *FormFactors ); + +private: + + bool _includeDecayFact; + bool _includeBirthFact; + double _mass; + double _massMin; + double _massMax; + double _width; + double _maxRange; + EvtSpinType::spintype _spin; + + double _blatt; + bool _isProbMaxSet; + + EvtSemiLeptonicFF *SLPoleffmodel; + EvtSemiLeptonicAmp *calcamp; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtPto3P.cxx b/TEvtGen/EvtGenModels/EvtPto3P.cxx new file mode 100644 index 00000000000..257f09ee563 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPto3P.cxx @@ -0,0 +1,116 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtPto3P.cc,v 1.13 2004/12/21 22:16:05 ryd Exp $ +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module creator: +// Alexei Dvoretskii, Caltech, 2001-2002. +//----------------------------------------------------------------------- +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtPto3P.hh" +#include "EvtGenBase/EvtPto3PAmpFactory.hh" +using namespace EvtCyclic3; + +EvtDalitzPlot EvtPto3P::dp() +{ + // There must be 3 daughters. All particles must be pseudoscalars. + // Charge must be conserved. Number of arguments must be non-zero. + + EvtId parent = getParentId(); + assert(getNDaug() == 3); + EvtId dau0 = getDaug(0); + EvtId dau1 = getDaug(1); + EvtId dau2 = getDaug(2); + + assert(EvtPDL::getSpinType(parent) == EvtSpinType::SCALAR); + assert(EvtPDL::getSpinType(dau0) == EvtSpinType::SCALAR); + assert(EvtPDL::getSpinType(dau1) == EvtSpinType::SCALAR); + assert(EvtPDL::getSpinType(dau2) == EvtSpinType::SCALAR); + assert(EvtPDL::chg3(parent) == EvtPDL::chg3(dau0) + EvtPDL::chg3(dau1) + EvtPDL::chg3(dau2)); + assert(getNArg() > 0); + + return EvtDalitzPlot(EvtPDL::getMass(dau0),EvtPDL::getMass(dau1),EvtPDL::getMass(dau2),EvtPDL::getMass(parent)); +} + +EvtAmpFactory* EvtPto3P::createFactory(const EvtMultiChannelParser& parser) +{ + // Compute the interval size + + EvtDalitzPlot plot = dp(); + EvtAmpFactory* fact = new EvtPto3PAmpFactory(plot); + fact->build(parser,10000); + return fact; +} + + +std::vector EvtPto3P::initDaughters(const EvtDalitzPoint& x) const +{ + std::vector v; + assert(x.isValid()); + + // Calculate in the r.f. of AB + + double eA = x.e(A,AB); + double eB = x.e(B,AB); + double eC = x.e(C,AB); + double pA = x.p(A,AB); + double pC = x.p(C,AB); + double cos = x.cosTh(CA,AB); + double sin = sqrt(1.0-cos*cos); + + EvtVector4R vA(eA,0,0,pA); + EvtVector4R vB(eB,0,0,-pA); + EvtVector4R vC(eC,0,pC*sin,pC*cos); + + // Boost from rest frame of AB to rest-frame of decaying particle + // vboost is the 4-momentum of frame being boosted from in the frame + // being boosted into. + + EvtVector4R vboost = vA + vB + vC; + vboost.set(1,-vboost.get(1)); + vboost.set(2,-vboost.get(2)); + vboost.set(3,-vboost.get(3)); + vA.applyBoostTo(vboost); + vB.applyBoostTo(vboost); + vC.applyBoostTo(vboost); + + // Rotate + + double alpha = EvtRandom::Flat( EvtConst::twoPi ); + double beta = acos(EvtRandom::Flat( -1.0, 1.0 )); + double gamma = EvtRandom::Flat( EvtConst::twoPi ); + + vA.applyRotateEuler( alpha, beta, gamma ); + vB.applyRotateEuler( alpha, beta, gamma ); + vC.applyRotateEuler( alpha, beta, gamma ); + + // Fill vector + + assert(v.size() == 0); + v.push_back(vA); + v.push_back(vB); + v.push_back(vC); + + return v; +} + + + + + + + + + + + diff --git a/TEvtGen/EvtGenModels/EvtPto3P.hh b/TEvtGen/EvtGenModels/EvtPto3P.hh new file mode 100644 index 00000000000..d7ec74b0c5d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPto3P.hh @@ -0,0 +1,44 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// $Id: EvtPto3P.hh,v 1.7 2006/10/02 01:07:49 lange Exp $ +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module creator: +// Alexei Dvoretskii, Caltech, 2001-2002. +//----------------------------------------------------------------------- + +#ifndef EVT_PTO3P_HH +#define EVT_PTO3P_HH + +#include +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenModels/EvtIntervalDecayAmp.hh" +#include "EvtGenBase/EvtDalitzPoint.hh" + + +class EvtPto3P : public EvtIntervalDecayAmp { + +public: + + EvtPto3P() {} + virtual ~EvtPto3P() {} + std::string getName() { return "PTO3P"; } + EvtDecayBase* clone() { return new EvtPto3P(); } + + + virtual EvtAmpFactory* createFactory(const EvtMultiChannelParser& parser); + virtual std::vector initDaughters(const EvtDalitzPoint& p) const; + + EvtDalitzPlot dp(); + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtPyGaGa.cxx b/TEvtGen/EvtGenModels/EvtPyGaGa.cxx new file mode 100644 index 00000000000..ccd5b5cdd40 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPyGaGa.cxx @@ -0,0 +1,123 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtPycont.cc +// +// Description: Routine to generate e+e- --> q\barq via Jetset +// +// Modification history: +// +// PCK August 4, 1997 Module created +// RS October 28, 2002 copied from EvtJscont.cc +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtDecayBase.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtPyGaGa.hh" +#include "EvtGenModels/EvtPythia.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtReport.hh" +#include +#include + +extern "C" { + extern void pystat_(int &); +} + +extern struct +{ + int dc[18]; +} decaych_; + +EvtPyGaGa::~EvtPyGaGa() +{ + int i=1; + pystat_(i); +} + +std::string EvtPyGaGa::getName() +{ + return "PYGAGA"; +} + +EvtDecayBase* EvtPyGaGa::clone() +{ + return new EvtPyGaGa; +} + +void EvtPyGaGa::init() +{ + // check that there are 1 argument + checkNArg(0); + for( int i=0; i<18; i++) + decaych_.dc[i]=0; +} + +void EvtPyGaGa::initProbMax() +{ + noProbMax(); +} + +void EvtPyGaGa::decay( EvtParticle *p) +{ + EvtPythia::pythiaInit(1); + EvtVector4R p4[100]; + + double energy=p->mass(); + + int i,more; + int ndaugjs; + int kf[100]; + EvtId id[100]; + int type[MAX_DAUG]; + + double px[100],py[100],pz[100],e[100]; + + if ( p->getNDaug() != 0 ) { return;} + do{ + EvtPythia::pythiacont(&energy,&ndaugjs,kf,px,py,pz,e); + + for(i=0;i=e[i]*e[i]) + e[i]=sqrt(px[i]*px[i]+py[i]*py[i]+pz[i]*pz[i])+0.0000000000001; + + p4[i].set(e[i],px[i],py[i],pz[i]); + + } + + int channel=EvtDecayTable::inChannelList(p->getId(),ndaugjs,id); + + more=((channel!=-1)&&(channel!=p->getChannel())); + + }while(more); + + p->makeDaughters(ndaugjs,id); + + for(i=0;igetDaug(i)->init( id[i], p4[i] ); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtPyGaGa.hh b/TEvtGen/EvtGenModels/EvtPyGaGa.hh new file mode 100644 index 00000000000..79d7d8da867 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPyGaGa.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: BelEvtGen/EvtJscont.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// RS October 28, 2002 copied from JETSET module +// +//------------------------------------------------------------------------ + +#ifndef EVTPYGAGA_HH +#define EVTPYGAGA_HH + +#include "EvtGenBase/EvtDecayIncoherent.hh" +#include "EvtGenBase/EvtParticle.hh" + +class EvtPyGaGa:public EvtDecayIncoherent { + +public: + + EvtPyGaGa() {} + virtual ~EvtPyGaGa(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtPycont.cxx b/TEvtGen/EvtGenModels/EvtPycont.cxx new file mode 100644 index 00000000000..76a9ccbb09d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPycont.cxx @@ -0,0 +1,151 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtPycont.cc +// +// Description: Routine to generate e+e- --> q\barq via Jetset +// +// Modification history: +// +// PCK August 4, 1997 Module created +// RS October 28, 2002 copied from EvtJscont.cc +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtPycont.hh" +#include "EvtGenModels/EvtPythia.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtReport.hh" +#include +#include +using std::endl; + +extern "C" { + extern void pystat_(int &); +} + +extern struct +{ + int dc[18]; +} decaych_; + + +EvtPycont::~EvtPycont() { + // int i=1; + // pystat_(i); +} + +std::string EvtPycont::getName() +{ + return "PYCONT"; +} + +EvtDecayBase* EvtPycont::clone() +{ + return new EvtPycont; +} + +void EvtPycont::init() +{ + // check that there are 1 argument + if ( getNArg() != 12 && getNArg() != 0 ) { + report(ERROR,"EvtGen") << "EvtPYCONT expects " + << " 12 arguments (d u s c b t e nu_e mu nu_mu tau nu_tau) but found: " + << getNArg() <mass(); + + int i,more; + int ndaugjs; + int kf[100]; + EvtId id[100]; + int type[MAX_DAUG]; + + double px[100],py[100],pz[100],e[100]; + + if ( p->getNDaug() != 0 ) { return;} + do{ + EvtPythia::pythiacont(&energy,&ndaugjs,kf,px,py,pz,e); + + for(i=0;i=e[i]*e[i]) + e[i]=sqrt(px[i]*px[i]+py[i]*py[i]+pz[i]*pz[i])+0.0000000000001; + + p4[i].set(e[i],px[i],py[i],pz[i]); + + } + + int channel=EvtDecayTable::inChannelList(p->getId(),ndaugjs,id); + + more=((channel!=-1)&&(channel!=p->getChannel())); + + }while(more); + + p->makeDaughters(ndaugjs,id); + + for(i=0;igetDaug(i)->init( id[i], p4[i] ); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtPycont.hh b/TEvtGen/EvtGenModels/EvtPycont.hh new file mode 100644 index 00000000000..95b8fc0e1b3 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPycont.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See BelEvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: BelEvtGen/EvtJscont.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// RS October 28, 2002 copied from JETSET module +// +//------------------------------------------------------------------------ + +#ifndef EVTPYCONT_HH +#define EVTPYCONT_HH + +#include "EvtGenBase/EvtDecayIncoherent.hh" +#include "EvtGenBase/EvtParticle.hh" + +class EvtPycont:public EvtDecayIncoherent { + +public: + + EvtPycont() {} + virtual ~EvtPycont(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtPythia.cxx b/TEvtGen/EvtGenModels/EvtPythia.cxx new file mode 100644 index 00000000000..1d0cdbb7e41 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtPythia.cxx @@ -0,0 +1,1095 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See BelEvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtJetSet.cc +// +// Description: Routine to use JetSet for decaying particles. +// +// Modification history: +// +// RYD July 24, 1997 Module created +// RS October 28, 2002 copied from JETSET module +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtStringParticle.hh" +#include "EvtGenBase/EvtDecayTable.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtPythia.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include +#include +#include +#include +#include +#include +using std::endl; +using std::fstream; +using std::ios; +using std::ofstream; +using std::resetiosflags; +using std::setiosflags; +using std::setw; + +using std::string; + +int EvtPythia::njetsetdecays=0; + EvtDecayBasePtr* EvtPythia::jetsetdecays=0; +int EvtPythia::ntable=0; + +int EvtPythia::ncommand=0; +int EvtPythia::lcommand=0; +std::string* EvtPythia::commands=0; + + +extern "C" { + extern void pycontinuum_(double *,int *, int *, + double *,double *,double *,double *); +} + +extern "C" { + extern void evtpythiainit_(const char* fname, int len); +} + +extern "C" { + extern void init_cont_(); +} + +extern "C" { + extern void pythiadec_(int *,double *,int *,int *,int *, + double *,double *,double *,double *); +} + +extern "C" { + extern void initpythia_(int *); +} + +extern "C" { + extern void pygive_(const char *cnfgstr,int length); +} + +extern "C" { + extern int pycomp_(int* kf); +} + +extern "C" { + extern void pylist_(int &); +} + + +EvtPythia::EvtPythia(){} + +EvtPythia::~EvtPythia(){ + + + int i; + + + //the deletion of commands is really uggly! + + if (njetsetdecays==0) { + delete [] commands; + commands=0; + return; + } + + for(i=0;igetId()); + + if (pycomp_(&istdheppar)==0){ + report(ERROR,"EvtGen") << "Pythia can not decay:" + <getId()).c_str()<mass(); + + EvtVector4R p4[20]; + + int i,more; + int ip=EvtPDL::getStdHep(p->getId()); + int ndaugjs; + int kf[100]; + EvtId evtnumstable[100],evtnumparton[100]; + int stableindex[100],partonindex[100]; + int numstable; + int numparton; + int km[100]; + EvtId type[MAX_DAUG]; + + pythiaInit(0); + + double px[100],py[100],pz[100],e[100]; + if ( p->getNDaug() != 0 ) { p->deleteDaughters(true);} + + int count=0; + + do{ + + pythiadec_(&ip,&mp,&ndaugjs,kf,km,px,py,pz,e); + + + numstable=0; + numparton=0; + + for(i=0;i=e[i]*e[i]){ + + e[i]=sqrt(px[i]*px[i]+py[i]*py[i]+pz[i]*pz[i])+0.0000000000001; + + } + + p4[i].set(e[i],px[i],py[i],pz[i]); + + + } + + int channel=EvtDecayTable::inChannelList(p->getId(),numstable,evtnumstable); + + + more=(channel!=-1); + + + + + count++; + + }while( more && (count<10000) ); + + if (count>9999) { + report(INFO,"EvtGen") << "Too many loops in EvtPythia!!!"<makeDaughters(numstable,evtnumstable); + + for(i=0;igetDaug(i)->init(evtnumstable[i],p4[stableindex[i]]); + } + + fixPolarizations(p); + + return ; + + } + else{ + + //have partons in JETSET + + EvtVector4R p4string(0.0,0.0,0.0,0.0); + + for(i=0;imakeDaughters(nprimary,type); + + p->getDaug(0)->init(STRNG,p4string); + + EvtVector4R p4partons[10]; + + for(i=0;igetDaug(0))->initPartons(numparton,p4partons,evtnumparton); + + + + nprimary=1; + + for(i=0;igetDaug(nprimary++)->init(evtnumstable[i],p4[stableindex[i]]); + } + } + + + int nsecond=0; + for(i=0;igetDaug(0)->makeDaughters(nsecond,type); + + nsecond=0; + for(i=0;igetDaug(0)->getDaug(nsecond)->init(evtnumstable[i],p4[stableindex[i]]); + p->getDaug(0)->getDaug(nsecond)->setDiagonalSpinDensity(); + p->getDaug(0)->getDaug(nsecond)->decay(); + nsecond++; + } + } + + fixPolarizations(p); + + return ; + + } + +} + +void EvtPythia::fixPolarizations(EvtParticle *p){ + + //special case for now to handle the J/psi polarization + + int ndaug=p->getNDaug(); + + int i; + + static EvtId Jpsi=EvtPDL::getId("J/psi"); + + for(i=0;igetDaug(i)->getId()==Jpsi){ + + EvtSpinDensity rho; + + rho.setDim(3); + rho.set(0,0,0.5); + rho.set(0,1,0.0); + rho.set(0,2,0.0); + + rho.set(1,0,0.0); + rho.set(1,1,1.0); + rho.set(1,2,0.0); + + rho.set(2,0,0.0); + rho.set(2,1,0.0); + rho.set(2,2,0.5); + + EvtVector4R p4Psi=p->getDaug(i)->getP4(); + + double alpha=atan2(p4Psi.get(2),p4Psi.get(1)); + double beta=acos(p4Psi.get(3)/p4Psi.d3mag()); + + + p->getDaug(i)->setSpinDensityForwardHelicityBasis(rho,alpha,beta,0.0); + setDaughterSpinDensity(i); + + } + } + +} + +void EvtPythia::store(EvtDecayBase* jsdecay){ + + if (njetsetdecays==ntable){ + + EvtDecayBasePtr* newjetsetdecays=new EvtDecayBasePtr[2*ntable+10]; + int i; + for(i=0;i1000000.0) ctau=0.0; + + strcpy(sname,name.c_str()); + + i=0; + + while (sname[i]!=0){ + i++; + } + + // strip up to two + or - + + if(evtnum.getId()>=0) { + if (sname[i-1]=='+'||sname[i-1]=='-'){ + sname[i-1]=0; + i--; + } + if (sname[i-1]=='+'||sname[i-1]=='-'){ + sname[i-1]=0; + i--; + } + // strip 0 except for _0 and chi...0 + if (sname[i-1]=='0' && sname[i-2]!='_' && !(sname[0]=='c' && sname[1]=='h')){ + sname[i-1]=0; + i--; + } + } + + if (i>namelength) { + for(j=1;j=0) { + if (abs(EvtPDL::getStdHep(evtnum))==21) cchg=2; + if (abs(EvtPDL::getStdHep(evtnum))==90) cchg=-1; + if ((abs(EvtPDL::getStdHep(evtnum))<=8)&& + (abs(EvtPDL::getStdHep(evtnum))!=0)) cchg=1; + + } + + // RS output format changed to new PYTHIA style + outdec << " " << setw(9) << lundkc; + outdec << " "; + outdec.width(namelength); + outdec << setiosflags(ios::left) + << sname; + // RS: name for cc paricle + if ((evtnum.getId()>=0) && (EvtPDL::chargeConj(evtnum)!=evtnum)) + { + outdec << " "; + outdec.width(namelength); + outdec << ccsname; + }else{ + // 2+16 spaces + outdec << " "; + } + + outdec << resetiosflags(ios::left); + outdec << setw(3) << chg; + outdec << setw(3) << cchg; + outdec.width(3); + if (evtnum.getId()>=0) { + if (EvtPDL::chargeConj(evtnum)==evtnum) { + outdec << 0; + } + else{ + outdec << 1; + } + } + else{ + outdec << 0; + } + outdec.setf(ios::fixed,ios::floatfield); + outdec.precision(5); + outdec << setw(12) << mass; + outdec.setf(ios::fixed,ios::floatfield); + outdec << setw(12) << width; + outdec.setf(ios::fixed,ios::floatfield); + outdec.width(12); + if (fabs(width)<0.0000000001) { + outdec << 0.0 ; + } + else{ + outdec << maxwidth; + } + // scientific notation ... outdec << setw(14) << ctau; + outdec.setf(ios::scientific,ios::floatfield); + outdec << " "; + outdec << ctau; + outdec.width(3); + if (evtnum.getId()>=0) { + if (ctau>1.0 || rawbrfrsum<0.000001) { + stable=0; + } + } + //resonance width treatment + outdec.width(3); + outdec << 0; + outdec.width(3); + outdec << stable; + outdec << endl; + outdec.width(0); + //outdec.setf(0,0); + +} + +void EvtPythia::WritePythiaParticle(ofstream &outdec,EvtId ipar, + EvtId iparname,int &first){ + + int ijetset; + + double br_sum=0.0; + + for(ijetset=0;ijetsetgetParentId()==ipar){ + br_sum+=jetsetdecays[ijetset]->getBranchingFraction(); + } + if (jetsetdecays[ijetset]->getParentId()!= + EvtPDL::chargeConj(jetsetdecays[ijetset]->getParentId())&& + EvtPDL::chargeConj(jetsetdecays[ijetset]->getParentId())==ipar){ + br_sum+=jetsetdecays[ijetset]->getBranchingFraction(); + } + + + } + + double br_sum_true=br_sum; + + if (br_sum<0.000001) br_sum=1.0; + + for(ijetset=0;ijetsetgetParentId()==ipar){ + + double br=jetsetdecays[ijetset]->getBranchingFraction(); + + int i,daugs[5]; + EvtId cdaugs[5]; + + for(i=0;i<5;i++){ + + if(igetNDaug()){ + daugs[i]=EvtPDL::getStdHep( + jetsetdecays[ijetset]->getDaugs()[i]); + cdaugs[i]=EvtPDL::chargeConj(jetsetdecays[ijetset]->getDaugs()[i]); + } + else{ + daugs[i]=0; + } + } + + int channel; + + channel=EvtDecayTable::findChannel(EvtPDL::chargeConj(ipar), + jetsetdecays[ijetset]->getModelName(), + jetsetdecays[ijetset]->getNDaug(), + cdaugs, + jetsetdecays[ijetset]->getNArg(), + jetsetdecays[ijetset]->getArgsStr()); + + if (jetsetdecays[ijetset]->getModelName()=="PYTHIA"){ + + if (first) { + first=0; + WritePythiaEntryHeader(outdec, + //EvtPDL::getLundKC(iparname), + EvtPDL::getStdHep(iparname), + iparname, + EvtPDL::name(iparname), + EvtPDL::chg3(iparname), + 0,0,EvtPDL::getMeanMass(ipar), + EvtPDL::getWidth(ipar), + EvtPDL::getMeanMass(ipar)-EvtPDL::getMinMass(ipar), + EvtPDL::getctau(ipar),1,br_sum_true); + } + + int dflag=2; + + if (EvtPDL::getStdHep(ipar)<0) { + dflag=3; + for(i=0;igetNDaug();i++){ + daugs[i]=EvtPDL::getStdHep(cdaugs[i]); + } + + } + + /* RS + PYTHIA allows to introduce new particles via a call to PYUPDA + so no need for this check any more + + //now lets check to make sure that jetset, lucomp, knows + //about all particles! + int unknown=0; + for(i=0;igetNDaug();i++){ + if (pycomp_(&daugs[i])==0) { + unknown=1; + report(ERROR,"EvtGen") << "Pythia (pycomp) does not " + << "know the particle:"<< + EvtPDL::name(jetsetdecays[ijetset]->getDaugs()[i])<getParentId())<<" -> "; + for(i=0;igetNDaug();i++){ + report(ERROR,"") << EvtPDL::name(jetsetdecays[ijetset]->getDaugs()[i])<<" "; + } + report(ERROR,"")<=0) { + // dflag=1; + //report(INFO,"EvtGen") << EvtPDL::name(iparname) << " dflag=1 because channel>=0"<=0)){ + if (1){ + + // RS changed format to new PYTHIA one + outdec << " "; + outdec.width(5); + outdec <getArgs()[0]; + outdec.width(12); + if (fabs(br)<0.000000001) { + outdec <<"0.00000"; + } + else{ + outdec <
+ +#include + +typedef EvtDecayBase* EvtDecayBasePtr; + +class EvtPythia:public EvtDecayIncoherent { + +public: + + EvtPythia(); + virtual ~EvtPythia(); + + std::string getName(); + EvtDecayBase* clone(); + void decay(EvtParticle *p); + + std::string commandName(); + void command(std::string cmd); + + void init(); + + void initProbMax(); + + //initialize jetset; sets up decay table and + //paramters. Static so it can be invoked from + //from EvtJscont. + static void pythiaInit(int f); + static void pythiacont(double *,int *, int *, + double *,double *,double *,double *); + +private: + + void store(EvtDecayBase* jsdecay); + void fixPolarizations(EvtParticle* p); + static void MakePythiaFile(char* fname); + static void WritePythiaParticle(std::ofstream &outdec,EvtId ipar,EvtId iparname,int &first); + static void WritePythiaEntryHeader(std::ofstream &outdec, int lundkc, + EvtId evtnum,std::string name, + int chg, int cchg, int spin2,double mass, + double width, double maxwidth,double ctau, + int stable,double rawbrfrsum); + static bool diquark(int); + static double NominalMass(int); + static int njetsetdecays; + static EvtDecayBasePtr* jetsetdecays; + static int ntable; + + static int ncommand; + static int lcommand; + static std::string* commands; +}; + +#endif + + + + diff --git a/TEvtGen/EvtGenModels/EvtSLBKPole.cxx b/TEvtGen/EvtGenModels/EvtSLBKPole.cxx new file mode 100644 index 00000000000..7a2b5cac784 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSLBKPole.cxx @@ -0,0 +1,100 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSLBKPole.cc +// +// Description: Routine to implement semileptonic decays according +// to light cone sum rules +// +// Modification history: +// +// liheng October 20, 2005 Module created +// +//------------------------------------------------------------------------ +// +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSLBKPole.hh"//modified +#include "EvtGenModels/EvtSLBKPoleFF.hh"//modified +#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicTensorAmp.hh" +#include + +EvtSLBKPole::~EvtSLBKPole() {} + +std::string EvtSLBKPole::getName(){ + + return "SLBKPOLE";//modified + +} + + +EvtDecayBase* EvtSLBKPole::clone(){//modified + + return new EvtSLBKPole; + +} + +void EvtSLBKPole::decay( EvtParticle *p ){//modified + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + calcamp->CalcAmp(p,_amp2,SLBKPoleffmodel);//modified + return; +} + +void EvtSLBKPole::initProbMax(){ + +EvtId parnum,mesnum,lnum,nunum; + +parnum = getParentId(); +mesnum = getDaug(0); +lnum = getDaug(1); +nunum = getDaug(2); + +double mymaxprob = calcamp->CalcMaxProb(parnum,mesnum, + lnum,nunum,SLBKPoleffmodel);//modified + +setProbMax(mymaxprob); + +} + + +void EvtSLBKPole::init(){//modified + + checkNDaug(3); + + //We expect the parent to be a scalar + //and the daughters to be X lepton neutrino + + checkSpinParent(EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + + EvtSpinType::spintype mesontype=EvtPDL::getSpinType(getDaug(0)); + + SLBKPoleffmodel = new EvtSLBKPoleFF(getNArg(),getArgs());//modified + + if ( mesontype==EvtSpinType::SCALAR ) { + calcamp = new EvtSemiLeptonicScalarAmp; + } + if ( mesontype==EvtSpinType::VECTOR ) { + calcamp = new EvtSemiLeptonicVectorAmp; + } + if ( mesontype==EvtSpinType::TENSOR ) { + calcamp = new EvtSemiLeptonicTensorAmp; + } + +} + diff --git a/TEvtGen/EvtGenModels/EvtSLBKPole.hh b/TEvtGen/EvtGenModels/EvtSLBKPole.hh new file mode 100644 index 00000000000..57f676b12d9 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSLBKPole.hh @@ -0,0 +1,51 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSLBKPole.hh +// +// Description:Semileptonic decays with pole form form factors, +// according to Becirevic and Kaidalov(BK) +// +// Modification history: +// +// liheng October 20, 2005 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSLBKPOLE_HH//modified +#define EVTSLBKPOLE_HH//modified + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh"//modified +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" + +class Evtparticle; + +class EvtSLBKPole:public EvtDecayAmp { + +public: + + EvtSLBKPole() {}//modified + virtual ~EvtSLBKPole();//modified + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void initProbMax(); + void init(); + +private: + EvtSemiLeptonicFF *SLBKPoleffmodel;//modified + EvtSemiLeptonicAmp *calcamp; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtSLBKPoleFF.cxx b/TEvtGen/EvtGenModels/EvtSLBKPoleFF.cxx new file mode 100644 index 00000000000..f63e5f5cc30 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSLBKPoleFF.cxx @@ -0,0 +1,232 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSLBKPoleFF.cc +// +// Description: Routine to implement semileptonic form factors +// according to the model SLBKPoles +// +// Modification history: +// +// liheng October 20,2005 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSLBKPoleFF.hh"//modified +#include +#include "EvtGenBase/EvtPDL.hh" +#include +#include + +EvtSLBKPoleFF::EvtSLBKPoleFF(int numarg, double *arglist) {//modified + numSLBKPoleargs = numarg;//modified + for (int i=0; i tau + nu +// +// Modification history: +// +// RYD/SHY April 23, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenModels/EvtSLN.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" + +EvtSLN::~EvtSLN() {} + +std::string EvtSLN::getName(){ + + return "SLN"; + +} + +EvtDecayBase* EvtSLN::clone(){ + + return new EvtSLN; + +} + + +void EvtSLN::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::DIRAC); + checkSpinDaughter(1,EvtSpinType::NEUTRINO); + +} + + +void EvtSLN::initProbMax(){ + + double M=EvtPDL::getMeanMass(getParentId()); + double m=EvtPDL::getMeanMass(getDaug(0)); + + double probMax=8.0*(M*M-m*m)*m*m; + + setProbMax(probMax); + +} + + +void EvtSLN::decay(EvtParticle *p){ + + static EvtId EM=EvtPDL::getId("e-"); + static EvtId MUM=EvtPDL::getId("mu-"); + static EvtId TAUM=EvtPDL::getId("tau-"); + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *l, *nul; + l= p->getDaug(0); + nul= p->getDaug(1); + + EvtVector4R p4_p; + p4_p.set(p->mass(),0.0,0.0,0.0); + + EvtVector4C l1, l2; + + if (getDaug(0)==TAUM || getDaug(0)==MUM || getDaug(0)==EM) { + l1=EvtLeptonVACurrent(l->spParent(0),nul->spParentNeutrino()); + l2=EvtLeptonVACurrent(l->spParent(1),nul->spParentNeutrino()); + } + else{ + l1=EvtLeptonVACurrent(nul->spParentNeutrino(),l->spParent(0)); + l2=EvtLeptonVACurrent(nul->spParentNeutrino(),l->spParent(1)); + } + + vertex(0,p4_p*l1); + vertex(1,p4_p*l2); + + return; + +} + + diff --git a/TEvtGen/EvtGenModels/EvtSLN.hh b/TEvtGen/EvtGenModels/EvtSLN.hh new file mode 100644 index 00000000000..75a185d656c --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSLN.hh @@ -0,0 +1,47 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSLN.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSLN_HH +#define EVTSLN_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +//Class to handle decays of the type SCALAR -> DIRAC NEUTRINO + +class EvtSLN:public EvtDecayAmp { + +public: + + EvtSLN() {} + virtual ~EvtSLN(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSLPole.cxx b/TEvtGen/EvtGenModels/EvtSLPole.cxx new file mode 100644 index 00000000000..acdbdae94fe --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSLPole.cxx @@ -0,0 +1,103 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSLPole.cc +// +// Description: Routine to implement semileptonic decays according +// to light cone sum rules +// +// Modification history: +// +// DJL April 23, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSLPole.hh" +#include "EvtGenModels/EvtSLPoleFF.hh" +#include "EvtGenBase/EvtSemiLeptonicScalarAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicVectorAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicTensorAmp.hh" +#include + +EvtSLPole::~EvtSLPole() {} + +std::string EvtSLPole::getName(){ + + return "SLPOLE"; + +} + + +EvtDecayBase* EvtSLPole::clone(){ + + return new EvtSLPole; + +} + +void EvtSLPole::decay( EvtParticle *p ){ + + p->initializePhaseSpace(getNDaug(),getDaugs(),_resetDaughterTree); + calcamp->CalcAmp(p,_amp2,SLPoleffmodel); + return; +} + +void EvtSLPole::initProbMax(){ + +EvtId parnum,mesnum,lnum,nunum; + +parnum = getParentId(); +mesnum = getDaug(0); +lnum = getDaug(1); +nunum = getDaug(2); + +double mymaxprob = calcamp->CalcMaxProb(parnum,mesnum, + lnum,nunum,SLPoleffmodel); + +setProbMax(mymaxprob); + +} + + +void EvtSLPole::init(){ + + checkNDaug(3); + + //We expect the parent to be a scalar + //and the daughters to be X lepton neutrino + + checkSpinParent(EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + + EvtSpinType::spintype mesontype=EvtPDL::getSpinType(getDaug(0)); + + SLPoleffmodel = new EvtSLPoleFF(getNArg(),getArgs()); + + if ( mesontype==EvtSpinType::SCALAR ) { + calcamp = new EvtSemiLeptonicScalarAmp; + } + if ( mesontype==EvtSpinType::VECTOR ) { + calcamp = new EvtSemiLeptonicVectorAmp; + } + if ( mesontype==EvtSpinType::TENSOR ) { + calcamp = new EvtSemiLeptonicTensorAmp; + } + + _resetDaughterTree=false; + if ( getArgStr(getNArg()-1) == "true") _resetDaughterTree=true; + +} + diff --git a/TEvtGen/EvtGenModels/EvtSLPole.hh b/TEvtGen/EvtGenModels/EvtSLPole.hh new file mode 100644 index 00000000000..1de7a92ae68 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSLPole.hh @@ -0,0 +1,53 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSLPole.hh +// +// Description:Semileptonic decays with pole form form factors +// +// Modification history: +// +// DJL April 23, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSLPOLE_HH +#define EVTSLPOLE_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtSemiLeptonicFF.hh" +#include "EvtGenBase/EvtSemiLeptonicAmp.hh" + +class Evtparticle; + +class EvtSLPole:public EvtDecayAmp { + +public: + + EvtSLPole() {} + virtual ~EvtSLPole(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void initProbMax(); + void init(); + +private: + EvtSemiLeptonicFF *SLPoleffmodel; + EvtSemiLeptonicAmp *calcamp; + //special case - reset the daughter masses + bool _resetDaughterTree; + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtSLPoleFF.cxx b/TEvtGen/EvtGenModels/EvtSLPoleFF.cxx new file mode 100644 index 00000000000..4a9d957875b --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSLPoleFF.cxx @@ -0,0 +1,170 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSLPoleFF.cc +// +// Description: Routine to implement semileptonic form factors +// according to the model SLPoles +// +// Modification history: +// +// DJL April 17,1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSLPoleFF.hh" +#include +#include "EvtGenBase/EvtPDL.hh" +#include +#include + +EvtSLPoleFF::EvtSLPoleFF(int numarg, double *arglist) { + //arg - maybe ignore the last argument - if odd ... Sigh + numSLPoleargs = numarg - (numarg % 2); + for (int i=0; i +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenModels/EvtSSDCP.hh" +#include +#include "EvtGenBase/EvtConst.hh" +using std::endl; + +EvtSSDCP::~EvtSSDCP() {} + +std::string EvtSSDCP::getName(){ + + return "SSD_CP"; + +} + + +EvtDecayBase* EvtSSDCP::clone(){ + + return new EvtSSDCP; + +} + +void EvtSSDCP::init(){ + + // check that there are 8 or 12 or 14 arguments + + checkNArg(14,12,8); + checkNDaug(2); + + EvtSpinType::spintype d1type=EvtPDL::getSpinType(getDaug(0)); + EvtSpinType::spintype d2type=EvtPDL::getSpinType(getDaug(1)); + + // Check it is a B0 or B0s + if ( ( getParentId() != EvtPDL::getId( "B0" ) ) + && ( getParentId() != EvtPDL::getId( "anti-B0" ) ) + && ( getParentId() != EvtPDL::getId( "B_s0" ) ) + && ( getParentId() != EvtPDL::getId( "anti-B_s0" ) ) ) { + report( ERROR , "EvtGen" ) << "EvtSSDCP only decays B0 and B0s" + << std::endl ; + ::abort() ; + } + + + if ( (!(d1type == EvtSpinType::SCALAR || d2type == EvtSpinType::SCALAR))|| + (!((d2type==EvtSpinType::SCALAR)||(d2type==EvtSpinType::VECTOR)||(d2type==EvtSpinType::TENSOR)))|| + (!((d1type==EvtSpinType::SCALAR)||(d1type==EvtSpinType::VECTOR)||(d1type==EvtSpinType::TENSOR))) + ) { + report(ERROR,"EvtGen") << "EvtSSDCP generator expected " + << "one of the daugters to be a scalar, the other either scalar, vector, or tensor, found:" + << EvtPDL::name(getDaug(0)).c_str()<<" and "<=12){ + _eigenstate=false; + _A_fbar=getArg(8)*EvtComplex(cos(getArg(9)),sin(getArg(9))); + _Abar_fbar=getArg(10)*EvtComplex(cos(getArg(11)),sin(getArg(11))); + } + else{ + //I'm somewhat confused about this. For a CP eigenstate set the + //amplitudes to the same. For a non CP eigenstate CPT invariance + //is enforced. (ryd) + if ( + (getDaug(0)==EvtPDL::chargeConj(getDaug(0))&& + getDaug(1)==EvtPDL::chargeConj(getDaug(1)))|| + (getDaug(0)==EvtPDL::chargeConj(getDaug(1))&& + getDaug(1)==EvtPDL::chargeConj(getDaug(0)))){ + _eigenstate=true; + }else{ + _eigenstate=false; + _A_fbar=conj(_Abar_f); + _Abar_fbar=conj(_A_f); + } + } + + //FS: new check for z + if (getNArg()==14){ //FS Set _z parameter if provided else set it 0 + _z=EvtComplex(getArg(12),getArg(13)); + } + else{ + _z=EvtComplex(0.0,0.0); + } + + // FS substituted next 2 lines... + + + // + // _gamma=EvtPDL::getctau(EvtPDL::getId("B0")); //units of 1/mm + //_dgamma=_gamma*0.5*_dgog; + // + // ...with: + + if ( ( getParentId() == EvtPDL::getId("B0") ) || + ( getParentId() == EvtPDL::getId("anti-B0") ) ) { + _gamma=1./EvtPDL::getctau(EvtPDL::getId("B0")); //gamma/c (1/mm) + } + else{ + _gamma=1./EvtPDL::getctau(EvtPDL::getId("B_s0")) ; + } + + _dgamma=_gamma*_dgog; //dgamma/c (1/mm) + + if (verbose()){ + report(INFO,"EvtGen") << "SSD_CP will generate CP/CPT violation:" + << endl << endl + << " " << EvtPDL::name(getParentId()).c_str() << " --> " + << EvtPDL::name(getDaug(0)).c_str() << " + " + << EvtPDL::name(getDaug(1)).c_str() << endl << endl + << "using parameters:" << endl << endl + << " delta(m) = " << _dm << " hbar/ps" << endl + << "dGamma = " << _dgamma <<" ps-1" <initializePhaseSpace(2, daugs); + + EvtComplex amp; + + + EvtCPUtil::OtherB(p,t,other_b,0.5); // t is c*Dt (mm) + + //if (flip) t=-t; + + //FS We assume DGamma=GammaLow-GammaHeavy and Dm=mHeavy-mLow + EvtComplex expL=exp(-EvtComplex(-0.25*_dgamma*t,0.5*_dm*t)); + EvtComplex expH=exp(EvtComplex(-0.25*_dgamma*t,0.5*_dm*t)); + //FS Definition of gp and gm + EvtComplex gp=0.5*(expL+expH); + EvtComplex gm=0.5*(expL-expH); + //FS Calculation os sqrt(1-z^2) + EvtComplex sqz=sqrt(abs(1-_z*_z))*exp(EvtComplex(0,arg(1-_z*_z)/2)); + + //EvtComplex BB=0.5*(expL+expH); // + //EvtComplex barBB=_qoverp*0.5*(expL-expH); // + //EvtComplex BbarB=_poverq*0.5*(expL-expH); // + //EvtComplex barBbarB=BB; // + // FS redefinition of these guys... (See BAD #188 eq.35 for ref.) + // q/p is taken as in the BaBar Phys. Book (opposite sign wrt ref.) + EvtComplex BB=gp+_z*gm; // + EvtComplex barBB=sqz*_qoverp*gm; // + EvtComplex BbarB=sqz*_poverq*gm; // + EvtComplex barBbarB=gp-_z*gm; // + + if (!flip){ + if (other_b==B0B||other_b==B0Bs){ + //at t=0 we have a B0 + //report(INFO,"EvtGen") << "B0B"<getP4Restframe(); + double m_parent=p4_parent.mass(); + + EvtSpinType::spintype d2type=EvtPDL::getSpinType(getDaug(1)); + + EvtVector4R momv; + EvtVector4R moms; + + if (d2type==EvtSpinType::SCALAR){ + d2type=EvtPDL::getSpinType(getDaug(0)); + d= p->getDaug(0); + momv = d->getP4(); + moms = p->getDaug(1)->getP4(); + } + else{ + d= p->getDaug(1); + momv = d->getP4(); + moms = p->getDaug(0)->getP4(); + } + + + + if (d2type==EvtSpinType::SCALAR) { + vertex(amp); + } + + if (d2type==EvtSpinType::VECTOR) { + + double norm=momv.mass()/(momv.d3mag()*p->mass()); + + //std::cout << amp << " " << norm << " " << p4_parent << d->getP4()<< std::endl; + // std::cout << EvtPDL::name(d->getId()) << " " << EvtPDL::name(p->getDaug(0)->getId()) << + // " 1and2 " << EvtPDL::name(p->getDaug(1)->getId()) << std::endl; + //std::cout << d->eps(0) << std::endl; + //std::cout << d->epsParent(0) << std::endl; + vertex(0,amp*norm*p4_parent*(d->epsParent(0))); + vertex(1,amp*norm*p4_parent*(d->epsParent(1))); + vertex(2,amp*norm*p4_parent*(d->epsParent(2))); + + } + + if (d2type==EvtSpinType::TENSOR) { + + double norm=d->mass()*d->mass()/(m_parent*d->getP4().d3mag()*d->getP4().d3mag()); + + + vertex(0,amp*norm*d->epsTensorParent(0).cont1(p4_parent)*p4_parent); + vertex(1,amp*norm*d->epsTensorParent(1).cont1(p4_parent)*p4_parent); + vertex(2,amp*norm*d->epsTensorParent(2).cont1(p4_parent)*p4_parent); + vertex(3,amp*norm*d->epsTensorParent(3).cont1(p4_parent)*p4_parent); + vertex(4,amp*norm*d->epsTensorParent(4).cont1(p4_parent)*p4_parent); + + } + + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtSSDCP.hh b/TEvtGen/EvtGenModels/EvtSSDCP.hh new file mode 100644 index 00000000000..72a2da3a70e --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSSDCP.hh @@ -0,0 +1,74 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 12001 Caltech +// +// Module: EvtGen/EvtSSDCP.hh +// +// Description: This module is part of the unification of simulation of CP violation in +// B decays. This model handles decays of the type B->SD where D is either +// a spin 0, 1, or 2 particle. See long writeup for more information. +// +// Modification history: +// +// DJL/RYD August 12, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSSDCP_HH +#define EVTSSDCP_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtSSDCP:public EvtDecayAmp { + +public: + + EvtSSDCP() {} + virtual ~EvtSSDCP(); + + std::string getName(); + EvtDecayBase* clone(); + + void initProbMax(); + void init(); + void decay(EvtParticle *p); + +private: + + //Arguments + + double _dm; + + double _dgog; + + EvtComplex _qoverp; + EvtComplex _poverq; + EvtComplex _z; //FS CPTV parameter + + // FS commented next line becuse not used + // int _cp; + + EvtComplex _A_f; + EvtComplex _Abar_f; + + EvtComplex _A_fbar; + EvtComplex _Abar_fbar; + + //Derived quantities + + double _gamma; + double _dgamma; + + bool _eigenstate; + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSSSCP.cxx b/TEvtGen/EvtGenModels/EvtSSSCP.cxx new file mode 100644 index 00000000000..d4faa8c5e63 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSSSCP.cxx @@ -0,0 +1,104 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSSSCP.cc +// +// Description: Routine to decay scalar -> 2 scalars +// +// Modification history: +// +// RYD November 24, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSSSCP.hh" +#include +#include "EvtGenBase/EvtConst.hh" + +EvtSSSCP::~EvtSSSCP() {} + +std::string EvtSSSCP::getName(){ + + return "SSS_CP"; + +} + + +EvtDecayBase* EvtSSSCP::clone(){ + + return new EvtSSSCP; + +} + +void EvtSSSCP::init(){ + + // check that there are 7 arguments + checkNArg(7); + checkNDaug(2); + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + +} + +void EvtSSSCP::initProbMax(){ + + //This is probably not quite right, but it should do as a start... + //Anders + + setProbMax(2*(getArg(3)*getArg(3)+getArg(5)*getArg(5))); + +} + +void EvtSSSCP::decay( EvtParticle *p ){ + + //added by Lange Jan4,2000 + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + double t; + EvtId other_b; + + EvtCPUtil::OtherB(p,t,other_b); + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + + EvtComplex amp; + + EvtComplex A,Abar; + + A=EvtComplex(getArg(3)*cos(getArg(4)),getArg(3)*sin(getArg(4))); + Abar=EvtComplex(getArg(5)*cos(getArg(6)),getArg(5)*sin(getArg(6))); + + if (other_b==B0B){ + amp=A*cos(getArg(1)*t/(2*EvtConst::c))+ + EvtComplex(cos(-2.0*getArg(0)),sin(-2.0*getArg(0)))* + getArg(2)*EvtComplex(0.0,1.0)*Abar*sin(getArg(1)*t/(2*EvtConst::c)); + } + if (other_b==B0){ + amp=A*EvtComplex(cos(2.0*getArg(0)),sin(2.0*getArg(0)))* + EvtComplex(0.0,1.0)*sin(getArg(1)*t/(2*EvtConst::c))+ + getArg(2)*Abar*cos(getArg(1)*t/(2*EvtConst::c)); + } + + vertex(amp); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtSSSCP.hh b/TEvtGen/EvtGenModels/EvtSSSCP.hh new file mode 100644 index 00000000000..977e9869dfb --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSSSCP.hh @@ -0,0 +1,46 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSSSCP.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSSSCP_HH +#define EVTSSSCP_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + + +class EvtSSSCP:public EvtDecayAmp { + +public: + + EvtSSSCP() {} + virtual ~EvtSSSCP(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSSSCPT.cxx b/TEvtGen/EvtGenModels/EvtSSSCPT.cxx new file mode 100644 index 00000000000..df78ba08369 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSSSCPT.cxx @@ -0,0 +1,99 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSSSCPT.cc +// +// Description: Routine to decay scalar -> 2 scalars (CPT) +// +// Modification history: +// +// SHY April 28, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSSSCPT.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtConst.hh" + +EvtSSSCPT::~EvtSSSCPT() {} + +std::string EvtSSSCPT::getName(){ + + return "SSS_CPT"; + +} + + +EvtDecayBase* EvtSSSCPT::clone(){ + + return new EvtSSSCPT; + +} + +void EvtSSSCPT::init(){ + + // check that there are 8 arguments + checkNArg(8); + checkNDaug(2); + +} + + +void EvtSSSCPT::decay( EvtParticle *p){ + + //added by Lange Jan4,2000 + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + + double t; + EvtId other_b; + + EvtCPUtil::OtherB(p,t,other_b); + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtComplex amp; + + EvtComplex A,Abar; + EvtComplex P,Q,D,Im; + + P=EvtComplex(cos(-getArg(0)),sin(-getArg(0))); + Q=EvtComplex(cos(getArg(0)),sin(getArg(0))); + D=EvtComplex(getArg(6)*cos(getArg(7)),getArg(6)*sin(getArg(7))); + Im=EvtComplex(0.0,1.0); + + A=EvtComplex(getArg(2)*cos(getArg(3)),getArg(2)*sin(getArg(3))); + Abar=EvtComplex(getArg(4)*cos(getArg(5)),getArg(4)*sin(getArg(5))); + + if (other_b==B0B){ + amp=A*cos(getArg(1)*t/(2*EvtConst::c))+ + Im*sin(getArg(1)*t/(2*EvtConst::c))* + (Q/P*A + 2.0*D*Abar); + } + if (other_b==B0){ + amp=Abar*cos(getArg(1)*t/(2*EvtConst::c))+ + Im*sin(getArg(1)*t/(2*EvtConst::c))* + (P/Q*A - 2.0*D*Abar); + } + + vertex(amp); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtSSSCPT.hh b/TEvtGen/EvtGenModels/EvtSSSCPT.hh new file mode 100644 index 00000000000..a970954b400 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSSSCPT.hh @@ -0,0 +1,43 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSSSCPT.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSSSCPT_HH +#define EVTSSSCPT_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtSSSCPT:public EvtDecayAmp { + +public: + + EvtSSSCPT() {} + virtual ~EvtSSSCPT(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSSSCPpng.cxx b/TEvtGen/EvtGenModels/EvtSSSCPpng.cxx new file mode 100644 index 00000000000..951f97d1b5b --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSSSCPpng.cxx @@ -0,0 +1,158 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSSSCPpng.cc +// +// Description: Routine to decay B -> 2 scalars taking into account penguin +// contributions (assuming single quark dominance for penguins) +// +// Modification history: +// +// RYD/NK December 3, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSSSCPpng.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtConst.hh" + +EvtSSSCPpng::~EvtSSSCPpng() {} + +std::string EvtSSSCPpng::getName(){ + + return "SSS_CP_PNG"; + +} + + +EvtDecayBase* EvtSSSCPpng::clone(){ + + return new EvtSSSCPpng; + +} + +void EvtSSSCPpng::init(){ + + // check that there are 7 arguments + checkNArg(7); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + +} + +void EvtSSSCPpng::initProbMax(){ + + setProbMax(getArg(5)*getArg(5)*(1 + getArg(6)*getArg(6))); + +} + +void EvtSSSCPpng::decay( EvtParticle *p ){ + + //added by Lange Jan4,2000 + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + double t; + EvtId other_b; + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtComplex amp; + + EvtComplex A,Abar; + //EvtComplex ACC, AbarCC; + +// assume single (top) quark dominance for the penguin. + +// old: a0=alpha, a1=dm, a2=1, a3=1, a4=0, a5=1, a6=0 +// new: a0=beta, a1=gamma, a2=delta, a3=dm, a4=1, a5=1=A_{T}, a6=A_{P}/A_{T} + +// e.g., for B -> pi pi +// A_{T} = |V_{ub} V_{ud}| T +// A_{P} = |V_{tb} V_{td}| P +// P and T are purely hadronic matrix elements +// P/T = 0.055, A_{P}/A_{T} = 0.2 (see Marrocchesi and Paver, hep-ph/9702353) + +// A = A_{T}( exp(i(beta+gamma)) + (A_{P}/A_{T}) exp(i(delta)) +// A_bar = same, except for the sign of the weak phases +// here, delta = delta_{p}-delta_{t} (rel. strong phase) + + A=getArg(5)*(EvtComplex(cos(-getArg(0)-getArg(1)),sin(-getArg(0)-getArg(1)))+getArg(6)*EvtComplex(cos(getArg(2)),sin(getArg(2)))); + + Abar=getArg(5)*(EvtComplex(cos(getArg(0)+getArg(1)),sin(getArg(0)+getArg(1)))+getArg(6)*EvtComplex(cos(getArg(2)),sin(getArg(2)))); + +// get fraction of B0 tags with these amplitudes + + //double xd = 0.65; + double ratio = 1/(1 + 0.65*0.65); + + EvtComplex rf, rbarf; + + rf = EvtComplex(cos(2.0*getArg(0)),sin(2.0*getArg(0)))*Abar/A; + rbarf = EvtComplex(1.0)/rf; + + double A2 = real(A)*real(A) + imag(A)*imag(A); + double Abar2 = real(Abar)*real(Abar) + imag(Abar)*imag(Abar); + + double rf2 = real(rf)*real(rf) + imag(rf)*imag(rf); + double rbarf2 = real(rbarf)*real(rbarf) + imag(rbarf)*imag(rbarf); + + //fraction of B0 _tags_ + double fract =(Abar2*(1+ rbarf2 + (1 - rbarf2)*ratio))/(Abar2*(1+ rbarf2 + (1 - rbarf2)*ratio) + A2*(1+ rf2 + (1 - rf2)*ratio)); + + EvtCPUtil::OtherB(p,t,other_b,fract); + +//this method works just as well -- NK +//randomly generate the tag (B0 or B0B) + +// double tag = EvtRandom::Flat(0.0,1.0); +// if (tag < 0.5) { +// +// EvtCPUtil::OtherB(p,t,other_b,1.0); +// other_b = B0; +// } +// else { +// +// EvtCPUtil::OtherB(p,t,other_b,0.0); +// other_b = B0B; +// } + +//mixing angle = -beta + + if (other_b==B0B){ + amp=A*cos(getArg(3)*t/(2*EvtConst::c))+ + EvtComplex(cos(2.0*getArg(0)),sin(2.0*getArg(0)))* + getArg(4)*EvtComplex(0.0,1.0)*Abar*sin(getArg(3)*t/(2*EvtConst::c)); + } + if (other_b==B0){ + amp=A*EvtComplex(cos(-2.0*getArg(0)),sin(-2.0*getArg(0)))* + EvtComplex(0.0,1.0)*sin(getArg(3)*t/(2*EvtConst::c))+ + getArg(4)*Abar*cos(getArg(3)*t/(2*EvtConst::c)); + } + + vertex(amp); + + return ; +} + + diff --git a/TEvtGen/EvtGenModels/EvtSSSCPpng.hh b/TEvtGen/EvtGenModels/EvtSSSCPpng.hh new file mode 100644 index 00000000000..7b6589f30b1 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSSSCPpng.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSSSCPpng.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSSSCPPNG_HH +#define EVTSSSCPPNG_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtSSSCPpng:public EvtDecayAmp { + +public: + + EvtSSSCPpng() {} + virtual ~EvtSSSCPpng(); + + std::string getName(); + EvtDecayBase* clone(); + + void initProbMax(); + + void init(); + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSTS.cxx b/TEvtGen/EvtGenModels/EvtSTS.cxx new file mode 100644 index 00000000000..7b013407a7a --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSTS.cxx @@ -0,0 +1,93 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSTS.cc +// +// Description: Routine to decay scalar -> tensor scalar. +// +// +// Modification history: +// +// RYD Aug 21, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSTS.hh" +#include "EvtGenBase/EvtId.hh" +#include + +EvtSTS::~EvtSTS() {} + +std::string EvtSTS::getName(){ + + return "STS"; + +} + + +EvtDecayBase* EvtSTS::clone(){ + + return new EvtSTS; + +} + +void EvtSTS::initProbMax(){ + + setProbMax(20.0); + +} + +void EvtSTS::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::TENSOR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + +} + + +void EvtSTS::decay( EvtParticle *p){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle* t1=p->getDaug(0); + + EvtVector4R momt = t1->getP4(); + EvtVector4R moms = p->getDaug(1)->getP4(); + double masst = t1->mass(); + + EvtVector4R p4_parent=momt+moms; + + double m_parent=p4_parent.mass(); + + double norm=masst*masst/(m_parent*momt.d3mag()*momt.d3mag()); + + vertex(0,norm*t1->epsTensorParent(0).cont1(p4_parent)*p4_parent); + vertex(1,norm*t1->epsTensorParent(1).cont1(p4_parent)*p4_parent); + vertex(2,norm*t1->epsTensorParent(2).cont1(p4_parent)*p4_parent); + vertex(3,norm*t1->epsTensorParent(3).cont1(p4_parent)*p4_parent); + vertex(4,norm*t1->epsTensorParent(4).cont1(p4_parent)*p4_parent); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtSTS.hh b/TEvtGen/EvtGenModels/EvtSTS.hh new file mode 100644 index 00000000000..a53c55f5367 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSTS.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSTS.hh +// +// Description:Performs the decay of a scalar -> tensor scalar +// +// Modification history: +// +// RYD August 21, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSTS_HH +#define EVTSTS_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtSTS:public EvtDecayAmp { + +public: + + EvtSTS() {} + virtual ~EvtSTS(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSTSCP.cxx b/TEvtGen/EvtGenModels/EvtSTSCP.cxx new file mode 100644 index 00000000000..731086c85b4 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSTSCP.cxx @@ -0,0 +1,126 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSTSCP.cc +// +// Description: Routine to decay scalar -> tensor scalar +// and has CP violation. +// +// Modification history: +// +// RYD June 19, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSTSCP.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtConst.hh" + +EvtSTSCP::~EvtSTSCP() {} + +std::string EvtSTSCP::getName(){ + + return "STS_CP"; + +} + +void EvtSTSCP::initProbMax(){ + + //This is probably not quite right, but it should do as a start... + //Anders + + setProbMax(20*(getArg(3)*getArg(3)+getArg(5)*getArg(5))); + +} + +EvtDecayBase* EvtSTSCP::clone(){ + + return new EvtSTSCP; + +} + +void EvtSTSCP::init(){ + + // check that there are 7 arguments + checkNArg(7); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::TENSOR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + +} + + +void EvtSTSCP::decay( EvtParticle *p){ + + //added by Lange Jan4,2000 + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + double t; + EvtId other_b; + + EvtParticle *t1; + p->initializePhaseSpace(getNDaug(),getDaugs()); + t1 = p->getDaug(0); + EvtVector4R momt = t1->getP4(); + EvtVector4R moms = p->getDaug(1)->getP4(); + double masst = t1->mass(); + + EvtCPUtil::OtherB(p,t,other_b); + + double m_parent = p->mass(); + + EvtComplex amp; + + EvtComplex A,Abar; + + A=EvtComplex(getArg(3)*cos(getArg(4)),getArg(3)*sin(getArg(4))); + Abar=EvtComplex(getArg(5)*cos(getArg(6)),getArg(5)*sin(getArg(6))); + + if (other_b==B0B){ + amp=A*cos(getArg(1)*t/(2*EvtConst::c))+ + EvtComplex(cos(-2.0*getArg(0)),sin(-2.0*getArg(0)))* + getArg(2)*EvtComplex(0.0,1.0)*Abar*sin(getArg(1)*t/(2*EvtConst::c)); + } + if (other_b==B0){ + amp=A*EvtComplex(cos(2.0*getArg(0)),sin(2.0*getArg(0)))* + EvtComplex(0.0,1.0)*sin(getArg(1)*t/(2*EvtConst::c))+ + getArg(2)*Abar*cos(getArg(1)*t/(2*EvtConst::c)); + } + + EvtVector4R p4_parent; + + p4_parent=momt+moms; + + double norm=masst*masst/(m_parent*momt.d3mag()*momt.d3mag()); + + + vertex(0,amp*norm*t1->epsTensorParent(0).cont1(p4_parent)*p4_parent); + vertex(1,amp*norm*t1->epsTensorParent(1).cont1(p4_parent)*p4_parent); + vertex(2,amp*norm*t1->epsTensorParent(2).cont1(p4_parent)*p4_parent); + vertex(3,amp*norm*t1->epsTensorParent(3).cont1(p4_parent)*p4_parent); + vertex(4,amp*norm*t1->epsTensorParent(4).cont1(p4_parent)*p4_parent); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtSTSCP.hh b/TEvtGen/EvtGenModels/EvtSTSCP.hh new file mode 100644 index 00000000000..a4f588d7ee9 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSTSCP.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSTSCP.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSTSCP_HH +#define EVTSTSCP_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtSTSCP:public EvtDecayAmp { + +public: + + EvtSTSCP() {} + virtual ~EvtSTSCP(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSVPCP.cxx b/TEvtGen/EvtGenModels/EvtSVPCP.cxx new file mode 100644 index 00000000000..82f46ec2733 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVPCP.cxx @@ -0,0 +1,163 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Module: EvtSVPCP.cc +// +// Description: Routine to decay scalar -> vectors+photon +// including CP violation effects +// +// Modification history: +// +// Maurizio pierini Nov 11, 2003 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtTensor3C.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenModels/EvtSVPCP.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include +#include "EvtGenBase/EvtConst.hh" + +EvtSVPCP::~EvtSVPCP() {} + +std::string EvtSVPCP::getName(){ + + return "SVP_CP"; + +} + + +EvtDecayBase* EvtSVPCP::clone(){ + + return new EvtSVPCP; + +} + +void EvtSVPCP::initProbMax(){ + + setProbMax(2*(getArg(3)*getArg(3)+getArg(5)*getArg(5))); + +} + + +void EvtSVPCP::init(){ + + // check that there are 7 arguments + checkNArg(7); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::PHOTON); + +} + +void EvtSVPCP::decay( EvtParticle *p ){ + + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + double t; + EvtId other_b; + + EvtCPUtil::OtherB(p,t,other_b); + + EvtComplex G1P,G1M, G1_T_even, G1_T_odd; + + double norm = getArg(3)*getArg(3)+getArg(5)*getArg(5); + + G1P=EvtComplex(getArg(3)*cos(getArg(4))/norm,getArg(3)*sin(getArg(4))/norm); + G1M=EvtComplex(getArg(5)*cos(getArg(6))/norm,getArg(5)*sin(getArg(6))/norm); + + G1_T_even = (G1P+G1M)/sqrt(2.0); + G1_T_odd = (G1P-G1M)/sqrt(2.0); + + EvtComplex lambda_km =EvtComplex(cos(-2*getArg(0)),sin(-2*getArg(0))); + + double cdmt=cos(getArg(1)*t/(2*EvtConst::c)); + double sdmt=sin(getArg(1)*t/(2*EvtConst::c)); + + EvtComplex cG1_T_even,cG1_T_odd; + + if (other_b==B0B){ + cG1_T_even = G1_T_even*(cdmt+lambda_km*EvtComplex(0.0,getArg(2)*sdmt)); + cG1_T_odd = G1_T_odd*(cdmt-lambda_km*EvtComplex(0.0,getArg(2)*sdmt)); + } + if (other_b==B0){ + cG1_T_even = G1_T_even*(cdmt+(1.0/lambda_km)*EvtComplex(0.0,getArg(2)*sdmt)); + cG1_T_odd =-G1_T_odd*(cdmt-(1.0/lambda_km)*EvtComplex(0.0,getArg(2)*sdmt)); + } + + EvtComplex hp, hm, h0; + + // This part is adopted from EvtSVVHel and since there is + // a photon that can not have helicity 0 this is put in by + // setting the h0 amplitude to 0. + hm=(cG1_T_even-cG1_T_odd)/sqrt(2.0); + hp=(cG1_T_even+cG1_T_odd)/sqrt(2.0); + h0=EvtComplex(0.0,0.0); + + EvtParticle *v1,*ph; + + p->initializePhaseSpace(getNDaug(),getDaugs()); + v1 = p->getDaug(0); + ph = p->getDaug(1); + EvtVector4R momv1 = v1->getP4(); + EvtVector4R momph = ph->getP4(); + + EvtTensor4C d,g; + + g.setdiag(1.0,-1.0,-1.0,-1.0); + + EvtVector4R v,vp; + + v=momv1/momv1.d3mag(); + vp=(momv1+momph)/(momv1+momph).mass(); + + d=((1.0/sqrt(3.0))*(h0-(hp+hm))*(-1.0/sqrt(3.0)))*g+ + ((1.0/sqrt(2.0))*(hp-hm)*EvtComplex(0.0,1.0)*(sqrt(1.0/2.0)))*dual(directProd(v,vp))+ + (sqrt(2.0/3.0)*(h0+0.5*(hp+hm))*sqrt(3.0/2.0))*(directProd(v,v)+(1.0/3.0)*g); + + EvtVector4C ep0,ep1,ep2; + + ep0=d.cont1(v1->eps(0).conj()); + ep1=d.cont1(v1->eps(1).conj()); + ep2=d.cont1(v1->eps(2).conj()); + + EvtVector4C ep20,ep21,ep22; + + ep20=ph->epsParentPhoton(0).conj(); + ep21=ph->epsParentPhoton(1).conj(); + + vertex(0,0,ep0*ep20); + vertex(0,1,ep0*ep21); + + vertex(1,0,ep1*ep20); + vertex(1,1,ep1*ep21); + + vertex(2,0,ep2*ep20); + vertex(2,1,ep2*ep21); + + + return ; + +} + diff --git a/TEvtGen/EvtGenModels/EvtSVPCP.hh b/TEvtGen/EvtGenModels/EvtSVPCP.hh new file mode 100644 index 00000000000..a0ac146537f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVPCP.hh @@ -0,0 +1,54 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// Module: EvtSVPCP.cc +// +// Description: Routine to decay scalar -> vectors+photon +// including CP violation effects +// +// Modification history: +// +// Maurizio pierini Nov 11, 2003 Module created +// +//------------------------------------------------------------------------ +// + +#ifndef EVTSVPCP_HH +#define EVTSVPCP_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +//Class to handle decays of the form SCALAR ->VECTOR PHOTON +//where the helicity amplitudes must be specified. The +//first and third arguements are the magnetudes of the H+ +//and H- helicity amplitudes respectively. The second and +//fourth arguements are the phases. +//Calls EvtSVPHel. + +class EvtSVPCP:public EvtDecayAmp { + +public: + + EvtSVPCP() {} + virtual ~EvtSVPCP(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + void decay(EvtParticle *p); + static void SVPHel(EvtParticle *parent,EvtAmp& amp,EvtId n_v1,EvtId n_v2, + const EvtComplex& hp,const EvtComplex& hm); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSVPHelAmp.cxx b/TEvtGen/EvtGenModels/EvtSVPHelAmp.cxx new file mode 100644 index 00000000000..937411cea99 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVPHelAmp.cxx @@ -0,0 +1,130 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSVPHelAmp.cc +// +// Description: Routine to decay scalar -> vectors+photon +// by specifying the helicity amplitudes +// +// Modification history: +// +// RYD July 26, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtComplex.hh" +#include "EvtGenModels/EvtSVPHelAmp.hh" +#include + +EvtSVPHelAmp::~EvtSVPHelAmp() {} + +std::string EvtSVPHelAmp::getName(){ + + return "SVP_HELAMP"; + +} + + +EvtDecayBase* EvtSVPHelAmp::clone(){ + + return new EvtSVPHelAmp; + +} + +void EvtSVPHelAmp::initProbMax(){ + + setProbMax(getArg(0)*getArg(0)+getArg(2)*getArg(2)); + +} + + +void EvtSVPHelAmp::init(){ + + // check that there are 4 arguments + checkNArg(4); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::PHOTON); + +} + +void EvtSVPHelAmp::decay( EvtParticle *p ){ + + EvtComplex hp(getArg(0)*cos(getArg(1)),getArg(0)*sin(getArg(1))); + EvtComplex hm(getArg(2)*cos(getArg(3)),getArg(2)*sin(getArg(3))); + + + // Routine to decay a vector into a vector and scalar. Started + // by ryd on Oct 17, 1996. + + + // This routine is adopted from EvtSVVHel and since there is + // a photon that can not have helicity 0 this is put in by + // setting the h0 amplitude to 0. + EvtComplex h0=EvtComplex(0.0,0.0); + + EvtParticle *v1,*ph; + + p->initializePhaseSpace(getNDaug(),getDaugs()); + v1 = p->getDaug(0); + ph = p->getDaug(1); + EvtVector4R momv1 = v1->getP4(); + EvtVector4R momph = ph->getP4(); + + EvtTensor4C d,g; + + g.setdiag(1.0,-1.0,-1.0,-1.0); + + EvtVector4R v,vp; + + v=momv1/momv1.d3mag(); + vp=(momv1+momph)/(momv1+momph).mass(); + + d=((1.0/sqrt(3.0))*(h0-(hp+hm))*(-1.0/sqrt(3.0)))*g+ + ((1.0/sqrt(2.0))*(hp-hm)*EvtComplex(0.0,1.0)*(sqrt(1.0/2.0)))*dual(directProd(v,vp))+ + (sqrt(2.0/3.0)*(h0+0.5*(hp+hm))*sqrt(3.0/2.0))*(directProd(v,v)+(1.0/3.0)*g); + + EvtVector4C ep0,ep1,ep2; + + ep0=d.cont1(v1->eps(0).conj()); + ep1=d.cont1(v1->eps(1).conj()); + ep2=d.cont1(v1->eps(2).conj()); + + EvtVector4C ep20,ep21,ep22; + + ep20=ph->epsParentPhoton(0).conj(); + ep21=ph->epsParentPhoton(1).conj(); + + vertex(0,0,ep0*ep20); + vertex(0,1,ep0*ep21); + + vertex(1,0,ep1*ep20); + vertex(1,1,ep1*ep21); + + vertex(2,0,ep2*ep20); + vertex(2,1,ep2*ep21); + + + return ; + +} + diff --git a/TEvtGen/EvtGenModels/EvtSVPHelAmp.hh b/TEvtGen/EvtGenModels/EvtSVPHelAmp.hh new file mode 100644 index 00000000000..8c2958c7fd0 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVPHelAmp.hh @@ -0,0 +1,51 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSVPHelAmp.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSVPHELAMP_HH +#define EVTSVPHELAMP_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +//Class to handle decays of the form SCALAR ->VECTOR PHOTON +//where the helicity amplitudes must be specified. The +//first and third arguements are the magnetudes of the H+ +//and H- helicity amplitudes respectively. The second and +//fourth arguements are the phases. +//Calls EvtSVPHel. + +class EvtSVPHelAmp:public EvtDecayAmp { + +public: + + EvtSVPHelAmp() {} + virtual ~EvtSVPHelAmp(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSVS.cxx b/TEvtGen/EvtGenModels/EvtSVS.cxx new file mode 100644 index 00000000000..a0e9806079a --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVS.cxx @@ -0,0 +1,88 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSVS.cc +// +// Description: Routine to decay scalar -> vector + scalar +// +// Modification history: +// +// RYD November 24, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenModels/EvtSVS.hh" +#include + +EvtSVS::~EvtSVS() {} + +std::string EvtSVS::getName(){ + + return "SVS"; + +} + + +EvtDecayBase* EvtSVS::clone(){ + + return new EvtSVS; + +} + +void EvtSVS::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + + +} + + + +void EvtSVS::initProbMax(){ + + setProbMax(1.0); + +} + +void EvtSVS::decay( EvtParticle *p){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *v; + v = p->getDaug(0); + double massv = v->mass(); + EvtVector4R momv = v->getP4(); + EvtVector4R moms = p->getDaug(1)->getP4(); + double m_parent = p->mass(); + EvtVector4R p4_parent = momv+moms; + + double norm=massv/(momv.d3mag()*m_parent); + p4_parent = norm*p4_parent; + vertex(0,p4_parent*(v->epsParent(0))); + vertex(1,p4_parent*(v->epsParent(1))); + vertex(2,p4_parent*(v->epsParent(2))); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtSVS.hh b/TEvtGen/EvtGenModels/EvtSVS.hh new file mode 100644 index 00000000000..ea393695a90 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVS.hh @@ -0,0 +1,47 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSVS.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSVS_HH +#define EVTSVS_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; +//Class to handle decays of the form SCALAR->VECTOR SCALAR +//Calls EvtScalarToVectorScalar. + +class EvtSVS:public EvtDecayAmp { + +public: + + EvtSVS() {} + virtual ~EvtSVS(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + + void initProbMax(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSVSCP.cxx b/TEvtGen/EvtGenModels/EvtSVSCP.cxx new file mode 100644 index 00000000000..3e1010c791c --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVSCP.cxx @@ -0,0 +1,121 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSVSCP.cc +// +// Description: Routine to decay scalar -> vectors scalar +// and has CP violation. +// +// Modification history: +// +// RYD Febuary 10, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSVSCP.hh" +#include +#include "EvtGenBase/EvtConst.hh" + +EvtSVSCP::~EvtSVSCP() {} + +std::string EvtSVSCP::getName(){ + + return "SVS_CP"; + +} + + +EvtDecayBase* EvtSVSCP::clone(){ + + return new EvtSVSCP; + +} + +void EvtSVSCP::init(){ + + // check that there are 7 arguments + checkNArg(7); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + + +} + + +void EvtSVSCP::initProbMax(){ + + //This is probably not quite right, but it should do as a start... + //Anders + + setProbMax(2*(getArg(3)*getArg(3)+getArg(5)*getArg(5))); + +} + + +void EvtSVSCP::decay( EvtParticle *p ){ + + //added by Lange Jan4,2000 + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + EvtParticle *v; + p->initializePhaseSpace(getNDaug(),getDaugs()); + v = p->getDaug(0); + EvtVector4R momv = v->getP4(); + EvtVector4R moms = p->getDaug(1)->getP4(); + double massv = v->mass(); + double t; + EvtId other_b; + + EvtCPUtil::OtherB(p,t,other_b); + + EvtComplex amp; + + EvtComplex A,Abar; + + A=EvtComplex(getArg(3)*cos(getArg(4)),getArg(3)*sin(getArg(4))); + Abar=EvtComplex(getArg(5)*cos(getArg(6)),getArg(5)*sin(getArg(6))); + + if (other_b==B0B){ + amp=A*cos(getArg(1)*t/(2*EvtConst::c))+ + EvtComplex(cos(-2.0*getArg(0)),sin(-2.0*getArg(0)))* + getArg(2)*EvtComplex(0.0,1.0)*Abar*sin(getArg(1)*t/(2*EvtConst::c)); + } + if (other_b==B0){ + amp=A*EvtComplex(cos(2.0*getArg(0)),sin(2.0*getArg(0)))* + EvtComplex(0.0,1.0)*sin(getArg(1)*t/(2*EvtConst::c))+ + getArg(2)*Abar*cos(getArg(1)*t/(2*EvtConst::c)); + } + + EvtVector4R p4_parent; + + p4_parent=momv+moms; + + double norm=massv/(momv.d3mag()*p4_parent.mass()); + + vertex(0,amp*norm*p4_parent*(v->epsParent(0))); + vertex(1,amp*norm*p4_parent*(v->epsParent(1))); + vertex(2,amp*norm*p4_parent*(v->epsParent(2))); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtSVSCP.hh b/TEvtGen/EvtGenModels/EvtSVSCP.hh new file mode 100644 index 00000000000..479acdb2b24 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVSCP.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSVSCP.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSVSCP_HH +#define EVTSVSCP_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtSVSCP:public EvtDecayAmp { + +public: + + EvtSVSCP() {} + virtual ~EvtSVSCP(); + + std::string getName(); + EvtDecayBase* clone(); + + void initProbMax(); + void init(); + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSVSCPLH.cxx b/TEvtGen/EvtGenModels/EvtSVSCPLH.cxx new file mode 100644 index 00000000000..c4814db3564 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVSCPLH.cxx @@ -0,0 +1,145 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2001 Caltech, UCSB +// +// Module: EvtSVSCPLH.cc +// +// Description: The decay of a scalar to a scalar and a vector particle are +// performed with CP violation and different widths for +// the cp even and odd states. E.g. B->J/psi K_S. +// +// Modification history: +// +// Ryd March 29, 2001 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSVSCPLH.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtVector4C.hh" +using std::endl; + +EvtSVSCPLH::~EvtSVSCPLH() {} + +std::string EvtSVSCPLH::getName(){ + + return "SVS_CPLH"; + +} + + +EvtDecayBase* EvtSVSCPLH::clone(){ + + return new EvtSVSCPLH; + +} + +void EvtSVSCPLH::init(){ + + // check that there are 8 arguments + checkNArg(8); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + + static double ctau=EvtPDL::getctau(EvtPDL::getId("B0")); + + // hbar/s + _dm=getArg(0); + _dgamma=EvtConst::c*getArg(1)/ctau; + + _qop=getArg(2)*exp(EvtComplex(0.0,getArg(3))); + + _poq=1.0/_qop; + + _Af=getArg(4)*exp(EvtComplex(0.0,getArg(5))); + _Abarf=getArg(6)*exp(EvtComplex(0.0,getArg(7))); + + if (verbose()){ + report(INFO,"EvtGen")<<":EvtSVSCPLH:dm="<<_dm<getP4Restframe();; + + double norm=p->getDaug(0)->mass()/(p->getDaug(0)->getP4().d3mag()*p4_parent.mass()); + + EvtParticle* v=p->getDaug(0); + + vertex(0,amp*norm*(p4_parent*(v->epsParent(0)))); + vertex(1,amp*norm*(p4_parent*(v->epsParent(1)))); + vertex(2,amp*norm*(p4_parent*(v->epsParent(2)))); + + + return ; +} + + + diff --git a/TEvtGen/EvtGenModels/EvtSVSCPLH.hh b/TEvtGen/EvtGenModels/EvtSVSCPLH.hh new file mode 100644 index 00000000000..2c7ace9860b --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVSCPLH.hh @@ -0,0 +1,62 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1999 Caltech, UCSB +// +// Module: EvtGen/EvtSVSCPLH.hh +// +// Description: +// +// Modification history: +// +// Ryd March 29, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSVSCPLH_HH +#define EVTSVSCPLH_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtComplex.hh" + +class EvtParticle; + +class EvtSVSCPLH:public EvtDecayAmp { + +public: + + EvtSVSCPLH() {} + virtual ~EvtSVSCPLH(); + + std::string getName(); + EvtDecayBase* clone(); + + void initProbMax(); + void init(); + + void decay(EvtParticle *p); + + +private: + + EvtComplex _Af,_Abarf; + EvtComplex _qop,_poq; + + double _dm; + double _dgamma; + + + + +}; + +#endif + + + + diff --git a/TEvtGen/EvtGenModels/EvtSVSCPiso.cxx b/TEvtGen/EvtGenModels/EvtSVSCPiso.cxx new file mode 100644 index 00000000000..94517abb854 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVSCPiso.cxx @@ -0,0 +1,311 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSVSCPiso.cc +// +// Description: Routine to decay scalar -> vectors scalar +// with CP violation and isospin amplitudes. +// More specifically, it is indended to handle +// decays like B->rho pi and B->a1 pi. +// +// Modification history: +// +// RYD/NK Febuary 16, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenModels/EvtSVSCPiso.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtConst.hh" + +EvtSVSCPiso::~EvtSVSCPiso() {} + +std::string EvtSVSCPiso::getName(){ + + return "SVS_CP_ISO"; + +} + + +EvtDecayBase* EvtSVSCPiso::clone(){ + + return new EvtSVSCPiso; + +} + +void EvtSVSCPiso::init(){ + + // check that there are 26 arguments + checkNArg(26); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + +} + + +void EvtSVSCPiso::initProbMax(){ + +//this might need some revision.. + +if ((EvtPDL::chg3(getDaug(0)) > 0) && (EvtPDL::chg3(getDaug(1)) == 0)) { + setProbMax(2.0*(getArg(3)*getArg(3) + 4.0*getArg(23)*getArg(23))); +} + +if ((EvtPDL::chg3(getDaug(0)) < 0) && (EvtPDL::chg3(getDaug(1)) == 0)) { + setProbMax(2.0*(getArg(5)*getArg(5) + 4.0*getArg(25)*getArg(25))); +} + +if ((EvtPDL::chg3(getDaug(0)) == 0) && (EvtPDL::chg3(getDaug(1)) > 0)) { + setProbMax(2.0*(getArg(7)*getArg(7) + 4.0*getArg(23)*getArg(23))); +} + +if ((EvtPDL::chg3(getDaug(0)) == 0) && (EvtPDL::chg3(getDaug(1)) < 0)) { + setProbMax(2.0*(getArg(9)*getArg(9) + 4.0*getArg(25)*getArg(25))); +} + +if ((EvtPDL::chg3(getDaug(0)) > 0) && (EvtPDL::chg3(getDaug(1)) < 0)) { + setProbMax(2.0*(getArg(11)*getArg(11) + getArg(23)*getArg(23) + + getArg(19)*getArg(19) + getArg(13)*getArg(13) + + getArg(25)*getArg(25) + getArg(21)*getArg(21))); +} + +if ((EvtPDL::chg3(getDaug(0)) < 0) && (EvtPDL::chg3(getDaug(1)) > 0)) { + setProbMax(2.0*(getArg(15)*getArg(15) + getArg(23)*getArg(23) + + getArg(19)*getArg(19) + getArg(17)*getArg(17) + + getArg(25)*getArg(25) + getArg(21)*getArg(21))); +} + +if ((EvtPDL::chg3(getDaug(0)) == 0) && (EvtPDL::chg3(getDaug(1)) == 0)) { + setProbMax(2.0*(getArg(7)*getArg(7) + getArg(3)*getArg(3) + getArg(11)*getArg(11) + + getArg(15)*getArg(15) + 4.0*getArg(19)*getArg(19) + getArg(9)*getArg(9)+ + getArg(5)*getArg(5) + getArg(13)*getArg(13) + getArg(17)*getArg(17) + + 4.0*getArg(21)*getArg(21))); +} + +} + + +void EvtSVSCPiso::decay( EvtParticle *p){ + + //added by Lange Jan4,2000 + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + double t; + EvtId other_b; + int charged(0); + + int first_time=0; + int flip=0; + EvtId ds[2]; + + +//randomly generate the tag (B0 or B0B) + + double tag = EvtRandom::Flat(0.0,1.0); + if (tag < 0.5) { + + EvtCPUtil::OtherB(p,t,other_b,1.0); + other_b = B0; + } + else { + + EvtCPUtil::OtherB(p,t,other_b,0.0); + other_b = B0B; + } + + if (p->getNDaug()==0) first_time=1; + + if (first_time){ + if (EvtRandom::Flat(0.0,1.0)getDaug(0)->getId()) flip=1; + } + + if (!flip) { + ds[0]=getDaug(0); + ds[1]=getDaug(1); + } + else{ + ds[0]=EvtPDL::chargeConj(getDaug(0)); + ds[1]=EvtPDL::chargeConj(getDaug(1)); + } + + p->initializePhaseSpace(getNDaug(),ds); + + EvtParticle *v,*s; + v=p->getDaug(0); + s=p->getDaug(1); + + EvtComplex amp; + + EvtComplex A_f,Abar_f; + EvtComplex A_fbar,Abar_fbar; + EvtComplex Apm, Apm_bar, Amp, Amp_bar; + + EvtComplex Tp0, Tp0_bar, T0p, T0p_bar,Tpm, Tpm_bar, Tmp, Tmp_bar; + EvtComplex P1, P1_bar, P0, P0_bar; + + Tp0 = EvtComplex(getArg(3)*cos(getArg(4)),getArg(3)*sin(getArg(4))); + Tp0_bar = EvtComplex(getArg(5)*cos(getArg(6)),getArg(5)*sin(getArg(6))); + T0p = EvtComplex(getArg(7)*cos(getArg(8)),getArg(7)*sin(getArg(8))); + T0p_bar = EvtComplex(getArg(9)*cos(getArg(10)),getArg(9)*sin(getArg(10))); + Tpm = EvtComplex(getArg(11)*cos(getArg(12)),getArg(11)*sin(getArg(12))); + Tpm_bar = EvtComplex(getArg(13)*cos(getArg(14)),getArg(13)*sin(getArg(14))); + Tmp = EvtComplex(getArg(15)*cos(getArg(16)),getArg(15)*sin(getArg(16))); + Tmp_bar = EvtComplex(getArg(17)*cos(getArg(18)),getArg(17)*sin(getArg(18))); + P0 = EvtComplex(getArg(19)*cos(getArg(20)),getArg(19)*sin(getArg(20))); + P0_bar = EvtComplex(getArg(21)*cos(getArg(22)),getArg(21)*sin(getArg(22))); + P1 = EvtComplex(getArg(23)*cos(getArg(24)),getArg(23)*sin(getArg(24))); + P1_bar = EvtComplex(getArg(25)*cos(getArg(26)),getArg(25)*sin(getArg(26))); + + +//***********************charged modes**************************** + + if ((EvtPDL::chg3(getDaug(0)) > 0 ) && (EvtPDL::chg3(getDaug(1)) == 0)) { + +//V+ S0, so T+0 + 2 P1 + + charged = 1; + A_f = Tp0 + 2.0*P1; + } + + if ((EvtPDL::chg3(getDaug(0)) < 0 ) && (EvtPDL::chg3(getDaug(1)) == 0)) { + +//V- S0, so T+0_bar + 2P1_bar + + charged = 1; + A_f = Tp0_bar + 2.0*P1_bar; + } + + if ((EvtPDL::chg3(getDaug(0)) == 0 ) && (EvtPDL::chg3(getDaug(1)) > 0)) { + +//V0 S+, so T0+ - 2 P1 + + charged = 1; + A_f = T0p - 2.0*P1; + } + + if ((EvtPDL::chg3(getDaug(0)) == 0 ) && (EvtPDL::chg3(getDaug(1)) < 0)) { + +//V0 S-, so T0+_bar - 2 P1_bar + + charged = 1; + A_f = T0p_bar - 2.0*P1_bar; + } + + +//***********************neutral modes*************************** + + +//V+ S-, so Af = T+- + P1 + P0 +Apm = Tpm + P1 + P0; +Apm_bar = Tpm_bar + P1_bar + P0_bar; + +//V- S+, so Af = T-+ - P1 + P0 +Amp = Tmp - P1 + P0; +Amp_bar = Tmp_bar - P1_bar + P0; + + + if ((EvtPDL::chg3(getDaug(0)) > 0 ) && (EvtPDL::chg3(getDaug(1)) < 0)) { + +//V+ S- + charged = 0; + A_f = Apm; + Abar_f = Apm_bar; + A_fbar = Amp; + Abar_fbar = Amp_bar; + + } + + if ((EvtPDL::chg3(getDaug(0)) < 0 ) && (EvtPDL::chg3(getDaug(1)) > 0)) { + +//V- S+ + charged = 0; + A_f = Amp; + Abar_f = Amp_bar; + A_fbar = Apm; + Abar_fbar = Apm_bar; + + } + + if ((EvtPDL::chg3(getDaug(0)) == 0 ) && (EvtPDL::chg3(getDaug(1)) == 0)) { + +//V0 S0 + charged = 0; + A_f = T0p + Tp0 - Tpm - Tmp - 2.0*P0 ; + Abar_f = T0p_bar + Tp0_bar - Tpm_bar - Tmp_bar - 2.0*P0_bar; + A_fbar = A_f; + Abar_fbar = Abar_f; + + } + +if (charged==0) { + + if (!flip) { + if (other_b==B0B){ + + amp=A_f*cos(getArg(1)*t/(2*EvtConst::c))+ + EvtComplex(cos(-2.0*getArg(0)),sin(-2.0*getArg(0)))* + EvtComplex(0.0,1.0)*Abar_f*sin(getArg(1)*t/(2*EvtConst::c)); + } + if (other_b==B0){ + + amp=A_f*EvtComplex(cos(2.0*getArg(0)),sin(2.0*getArg(0)))* + EvtComplex(0.0,1.0)*sin(getArg(1)*t/(2*EvtConst::c))+ + Abar_f*cos(getArg(1)*t/(2*EvtConst::c)); + } + } + else{ + if (other_b==B0B){ + + amp=A_fbar*cos(getArg(1)*t/(2*EvtConst::c))+ + EvtComplex(cos(-2.0*getArg(0)),sin(-2.0*getArg(0)))* + EvtComplex(0.0,1.0)*Abar_fbar*sin(getArg(1)*t/(2*EvtConst::c)); + } + if (other_b==B0){ + + amp=A_fbar*EvtComplex(cos(2.0*getArg(0)),sin(2.0*getArg(0)))* + EvtComplex(0.0,1.0)*sin(getArg(1)*t/(2*EvtConst::c))+ + Abar_fbar*cos(getArg(1)*t/(2*EvtConst::c)); + } + } + +} +else amp = A_f; + + EvtVector4R p4_parent; + + p4_parent=v->getP4()+s->getP4(); + + double norm=1.0/v->getP4().d3mag(); + + vertex(0,amp*norm*p4_parent*(v->epsParent(0))); + vertex(1,amp*norm*p4_parent*(v->epsParent(1))); + vertex(2,amp*norm*p4_parent*(v->epsParent(2))); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtSVSCPiso.hh b/TEvtGen/EvtGenModels/EvtSVSCPiso.hh new file mode 100644 index 00000000000..180756715e0 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVSCPiso.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSVSCPiso.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSVSCPISO_HH +#define EVTSVSCPISO_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtSVSCPiso:public EvtDecayAmp { + +public: + + EvtSVSCPiso() {} + virtual ~EvtSVSCPiso(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.cxx b/TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.cxx new file mode 100644 index 00000000000..62ea69717d0 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.cxx @@ -0,0 +1,147 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSVSNONCPEIGEN.cc +// +// Description: Routine to decay scalar -> vectors scalar +// and has CP violation. +// +// Modification history: +// +// RYD April 26, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenModels/EvtSVSNONCPEIGEN.hh" +#include +#include "EvtGenBase/EvtConst.hh" + +EvtSVSNONCPEIGEN::~EvtSVSNONCPEIGEN() {} + +std::string EvtSVSNONCPEIGEN::getName(){ + + return "SVS_NONCPEIGEN"; + +} + + +EvtDecayBase* EvtSVSNONCPEIGEN::clone(){ + + return new EvtSVSNONCPEIGEN; + +} + +void EvtSVSNONCPEIGEN::init(){ + + // check that there are 11 arguments + checkNArg(11,7); + checkNDaug(2); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + + _dm=getArg(1); + _phickm=2*getArg(0)+getArg(2); + + _A_f=EvtComplex(getArg(3)*cos(getArg(4)),getArg(3)*sin(getArg(4))); + _Abar_f=EvtComplex(getArg(5)*cos(getArg(6)),getArg(5)*sin(getArg(6))); + + _A_fbar=_Abar_f; + _Abar_fbar=_A_f; + + if (getNArg()==11){ + _A_fbar=EvtComplex(getArg(7)*cos(getArg(8)),getArg(7)*sin(getArg(8))); + _Abar_fbar=EvtComplex(getArg(9)*cos(getArg(10)),getArg(9)*sin(getArg(10))); + } +} + +void EvtSVSNONCPEIGEN::initProbMax() { + double theProbMax = + abs(_A_f) * abs(_A_f) + + abs(_Abar_f) * abs(_Abar_f) + + abs(_A_fbar) * abs(_A_fbar) + + abs(_Abar_fbar) * abs(_Abar_fbar); + + setProbMax(theProbMax); +} + +void EvtSVSNONCPEIGEN::decay( EvtParticle *p){ + + //added by Lange Jan4,2000 + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + double t; + EvtId other_b; + EvtId daugs[2]; + + // MB: flip selects the final of the decay + int flip = ((p->getId() == B0) ? 0 : 1); + daugs[0]=getDaug(0); + daugs[1]=getDaug(1); + p->initializePhaseSpace(2, daugs); + + EvtCPUtil::OtherB(p,t,other_b,0.5); + + EvtComplex amp; + double dmt2 = (_dm * t) / (2 * EvtConst::c); + EvtComplex ePlusIPhi(cos(_phickm), sin(_phickm)); + EvtComplex eMinusIPhi(cos(-_phickm), -sin(_phickm)); + + // flip == 0 : D-rho+ + // flip == 1 : D+rho- + + if (!flip) { + if (other_b==B0B){ + // At t=0 we have a B0 + amp = cos(dmt2)*_A_f + eMinusIPhi*EvtComplex(0.0,sin(dmt2))*_Abar_f; + } + if (other_b==B0){ + // At t=0 we have a B0bar + amp = ePlusIPhi*EvtComplex(0.0,sin(dmt2))*_A_f + cos(dmt2)*_Abar_f; + } + } + else{ + if (other_b==B0B){ + // At t=0 we have a B0 + amp = cos(dmt2)*_A_fbar + eMinusIPhi*EvtComplex(0.0,sin(dmt2))*_Abar_fbar; + } + if (other_b==B0){ + // At t=0 we have a B0bar + amp = ePlusIPhi*EvtComplex(0.0,sin(dmt2))*_A_fbar + cos(dmt2)*_Abar_fbar; + } + } + + + EvtParticle *v; + v= p->getDaug(0); + + EvtVector4R momv = p->getDaug(0)->getP4(); + EvtVector4R moms = p->getDaug(1)->getP4(); + EvtVector4R p4_parent=momv+moms; + + double norm=momv.mass()/(momv.d3mag()*p->mass()); + + vertex(0,amp*norm*p4_parent*(v->epsParent(0))); + vertex(1,amp*norm*p4_parent*(v->epsParent(1))); + vertex(2,amp*norm*p4_parent*(v->epsParent(2))); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.hh b/TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.hh new file mode 100644 index 00000000000..9430f44e1bd --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVSNONCPEIGEN.hh @@ -0,0 +1,56 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSVSNONCPEIGEN.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSVSNONCPEIGEN_HH +#define EVTSVSNONCPEIGEN_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtSVSNONCPEIGEN:public EvtDecayAmp { + +public: + + EvtSVSNONCPEIGEN() {} + virtual ~EvtSVSNONCPEIGEN(); + + std::string getName(); + EvtDecayBase* clone(); + + void initProbMax(); + void init(); + + void decay(EvtParticle *p); + +private: + + EvtComplex _A_f; + EvtComplex _Abar_f; + + EvtComplex _A_fbar; + EvtComplex _Abar_fbar; + + double _dm; + double _phickm; + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSVVCP.cxx b/TEvtGen/EvtGenModels/EvtSVVCP.cxx new file mode 100644 index 00000000000..9e4853c5883 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVVCP.cxx @@ -0,0 +1,118 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSVVCP.cc +// +// Description: The decay of a scalar to two vector particles are +// performed with CP violation. E.g. B->J/psi K*. +// +// Modification history: +// +// RYD January 19, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtSVVHelAmp.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSVVCP.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtConst.hh" + +EvtSVVCP::~EvtSVVCP() {} + +std::string EvtSVVCP::getName(){ + + return "SVV_CP"; + +} + + +EvtDecayBase* EvtSVVCP::clone(){ + + return new EvtSVVCP; + +} + +void EvtSVVCP::init(){ + + // check that there are 9 arguments + checkNArg(9); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::VECTOR); + +} + +void EvtSVVCP::initProbMax(){ + + //This is probably not quite right, but it should do as a start... + //Anders + + setProbMax(2*(getArg(3)*getArg(3)+getArg(5)*getArg(5)+getArg(7)*getArg(7))); + +} + +void EvtSVVCP::decay( EvtParticle *p){ + + //added by Lange Jan4,2000 + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + double t; + EvtId other_b; + + EvtCPUtil::OtherB(p,t,other_b); + + EvtComplex G0P,G1P,G1M; + + G1P=EvtComplex(getArg(3)*cos(getArg(4)),getArg(3)*sin(getArg(4))); + G0P=EvtComplex(getArg(5)*cos(getArg(6)),getArg(5)*sin(getArg(6))); + G1M=EvtComplex(getArg(7)*cos(getArg(8)),getArg(7)*sin(getArg(8))); + + EvtComplex lambda_km=EvtComplex(cos(-2*getArg(0)),sin(-2*getArg(0))); + + double cdmt=cos(getArg(1)*t/(2*EvtConst::c)); + double sdmt=sin(getArg(1)*t/(2*EvtConst::c)); + + EvtComplex cG0P,cG1P,cG1M; + + if (other_b==B0B){ + cG0P=G0P*(cdmt+lambda_km*EvtComplex(0.0,getArg(2)*sdmt)); + cG1P=G1P*(cdmt+lambda_km*EvtComplex(0.0,getArg(2)*sdmt)); + cG1M=G1M*(cdmt-lambda_km*EvtComplex(0.0,getArg(2)*sdmt)); + } + if (other_b==B0){ + cG0P=G0P*(cdmt+(1.0/lambda_km)*EvtComplex(0.0,getArg(2)*sdmt)); + cG1P=G1P*(cdmt+(1.0/lambda_km)*EvtComplex(0.0,getArg(2)*sdmt)); + cG1M=-G1M*(cdmt-(1.0/lambda_km)*EvtComplex(0.0,getArg(2)*sdmt)); + + } + + EvtComplex A0,AP,AM; + + A0=cG0P/sqrt(2.0); + AP=(cG1P+cG1M)/sqrt(2.0); + AM=(cG1P-cG1M)/sqrt(2.0); + + EvtSVVHelAmp::SVVHel(p,_amp2,getDaug(0),getDaug(1),AP,A0,AM); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtSVVCP.hh b/TEvtGen/EvtGenModels/EvtSVVCP.hh new file mode 100644 index 00000000000..67ef2b55422 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVVCP.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSVVCP.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSVVCP_HH +#define EVTSVVCP_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtSVVCP:public EvtDecayAmp { + +public: + + EvtSVVCP() {} + virtual ~EvtSVVCP(); + + std::string getName(); + EvtDecayBase* clone(); + + void initProbMax(); + void init(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSVVCPLH.cxx b/TEvtGen/EvtGenModels/EvtSVVCPLH.cxx new file mode 100644 index 00000000000..e92d2230993 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVVCPLH.cxx @@ -0,0 +1,133 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1999 Caltech, UCSB +// +// Module: EvtSVVCPLH.cc +// +// Description: The decay of a scalar to two vector particles are +// performed with CP violation and different widths for +// the cpe even and od states. E.g. Bs->J/psi phi. +// +// Modification history: +// +// RYD November 5, 1999 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtSVVHelAmp.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSVVCPLH.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtConst.hh" +using std::endl; + +EvtSVVCPLH::~EvtSVVCPLH() {} + +std::string EvtSVVCPLH::getName(){ + + return "SVV_CPLH"; + +} + + +EvtDecayBase* EvtSVVCPLH::clone(){ + + return new EvtSVVCPLH; + +} + +void EvtSVVCPLH::init(){ + + // check that there are 9 arguments + checkNArg(9); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::VECTOR); + +} + +void EvtSVVCPLH::initProbMax(){ + + //This is probably not quite right, but it should do as a start... + //Anders + + setProbMax(2*(getArg(3)*getArg(3)+getArg(5)*getArg(5)+getArg(7)*getArg(7))); + +} + +void EvtSVVCPLH::decay( EvtParticle *p){ + + //added by Lange Jan4,2000 + static EvtId BS0=EvtPDL::getId("B_s0"); + static EvtId BSB=EvtPDL::getId("anti-B_s0"); + + double t; + EvtId other_b; + + EvtCPUtil::OtherB(p,t,other_b); + + EvtComplex G0P,G1P,G1M; + + G1P=EvtComplex(getArg(3)*cos(getArg(4)),getArg(3)*sin(getArg(4))); + G0P=EvtComplex(getArg(5)*cos(getArg(6)),getArg(5)*sin(getArg(6))); + G1M=EvtComplex(getArg(7)*cos(getArg(8)),getArg(7)*sin(getArg(8))); + + EvtComplex lambda_km=EvtComplex(cos(2*getArg(0)),sin(2*getArg(0))); + + double cdmt=cos(getArg(1)*t/(2*EvtConst::c)); + double sdmt=sin(getArg(1)*t/(2*EvtConst::c)); + + EvtComplex cG0P,cG1P,cG1M; + + static double ctauL=EvtPDL::getctau(EvtPDL::getId("B_s0L")); + static double ctauH=EvtPDL::getctau(EvtPDL::getId("B_s0H")); + + //I'm not sure if the fabs() is right when t can be + //negative as in the case of Bs produced coherently. + double pt=1; + double mt=exp(-fabs(t*(ctauL-ctauH)/(ctauL*ctauH))); + + if (other_b==BSB){ + cG0P=pt*G0P*(cdmt+lambda_km*EvtComplex(0.0,getArg(2)*sdmt)); + cG1P=pt*G1P*(cdmt+lambda_km*EvtComplex(0.0,getArg(2)*sdmt)); + cG1M=mt*G1M*(cdmt-lambda_km*EvtComplex(0.0,getArg(2)*sdmt)); + } + else if (other_b==BS0){ + cG0P=pt*G0P*(cdmt+(1.0/lambda_km)*EvtComplex(0.0,getArg(2)*sdmt)); + cG1P=pt*G1P*(cdmt+(1.0/lambda_km)*EvtComplex(0.0,getArg(2)*sdmt)); + cG1M=-mt*G1M*(cdmt-(1.0/lambda_km)*EvtComplex(0.0,getArg(2)*sdmt)); + } + else{ + report(ERROR,"EvtGen") << "other_b was not BSB or BS0!"< 2 vectors +// by specifying the helicity amplitudes +// +// Modification history: +// +// RYD November 24, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtVector3C.hh" +#include "EvtGenBase/EvtVector3R.hh" +#include "EvtGenBase/EvtTensor3C.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSVVHelAmp.hh" +#include "EvtGenBase/EvtId.hh" +#include + +EvtSVVHelAmp::~EvtSVVHelAmp() {} + +std::string EvtSVVHelAmp::getName(){ + + return "SVV_HELAMP"; + +} + + +EvtDecayBase* EvtSVVHelAmp::clone(){ + + return new EvtSVVHelAmp; + +} + +void EvtSVVHelAmp::init(){ + + // check that there are 6 arguments + checkNArg(6); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::VECTOR); + +} + + +void EvtSVVHelAmp::initProbMax(){ + + setProbMax(getArg(0)*getArg(0)+getArg(2)*getArg(2)+getArg(4)*getArg(4)); + +} + + +void EvtSVVHelAmp::decay( EvtParticle *p){ + + SVVHel(p,_amp2,getDaug(0),getDaug(1), + EvtComplex(getArg(0)*cos(getArg(1)),getArg(0)*sin(getArg(1))), + EvtComplex(getArg(2)*cos(getArg(3)),getArg(2)*sin(getArg(3))), + EvtComplex(getArg(4)*cos(getArg(5)),getArg(4)*sin(getArg(5)))); + + return ; + +} + + +void EvtSVVHelAmp::SVVHel(EvtParticle *parent,EvtAmp& amp,EvtId n_v1,EvtId n_v2, + const EvtComplex& hp,const EvtComplex& h0, + const EvtComplex& hm){ + + // Routine to decay a vector into a vector and scalar. Started + // by ryd on Oct 17, 1996. + + int tndaug = 2; + EvtId tdaug[2]; + tdaug[0] = n_v1; + tdaug[1] = n_v2; + + + parent->initializePhaseSpace(tndaug,tdaug); + + EvtParticle *v1,*v2; + v1 = parent->getDaug(0); + v2 = parent->getDaug(1); + + EvtVector4R momv1 = v1->getP4(); + //EvtVector4R momv2 = v2->getP4(); + + EvtVector3R v1dir(momv1.get(1),momv1.get(2),momv1.get(3)); + v1dir=v1dir/v1dir.d3mag(); + + EvtComplex a=-0.5*(hp+hm); + EvtComplex b=EvtComplex(0.0,0.5)*(hp-hm); + EvtComplex c=h0+0.5*(hp+hm); + + EvtTensor3C M=a*EvtTensor3C::id()+ + b*eps(v1dir)+ + c*directProd(v1dir,v1dir); + + EvtVector3C t0=M.cont1(v1->eps(0).vec().conj()); + EvtVector3C t1=M.cont1(v1->eps(1).vec().conj()); + EvtVector3C t2=M.cont1(v1->eps(2).vec().conj()); + + EvtVector3C eps0=v2->eps(0).vec().conj(); + EvtVector3C eps1=v2->eps(1).vec().conj(); + EvtVector3C eps2=v2->eps(2).vec().conj(); + + amp.vertex(0,0,t0*eps0); + amp.vertex(0,1,t0*eps1); + amp.vertex(0,2,t0*eps2); + + amp.vertex(1,0,t1*eps0); + amp.vertex(1,1,t1*eps1); + amp.vertex(1,2,t1*eps2); + + amp.vertex(2,0,t2*eps0); + amp.vertex(2,1,t2*eps1); + amp.vertex(2,2,t2*eps2); + + return ; + +} + + diff --git a/TEvtGen/EvtGenModels/EvtSVVHelAmp.hh b/TEvtGen/EvtGenModels/EvtSVVHelAmp.hh new file mode 100644 index 00000000000..beb5cca3ae7 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVVHelAmp.hh @@ -0,0 +1,56 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSVVHelAmp.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSVVHELAMP_HH +#define EVTSVVHELAMP_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +//Class to handle decays of the form SCALAR -> VECTOR VECTOR +//according the the helicity amplitudes specified by the +//user. There are 6 arguements, orders as amplitude then +//phase for H+, H0, and H-, in that order. + +class EvtAmp; +class EvtParticle; +class EvtId; + +class EvtSVVHelAmp:public EvtDecayAmp { + +public: + + EvtSVVHelAmp() {} + virtual ~EvtSVVHelAmp(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void initProbMax(); + + void decay(EvtParticle *p); + + static void SVVHel(EvtParticle *parent,EvtAmp& amp,EvtId n_v1,EvtId n_v2, + const EvtComplex& hp, const EvtComplex& h0, + const EvtComplex& hm); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSVVHelCPMix.cxx b/TEvtGen/EvtGenModels/EvtSVVHelCPMix.cxx new file mode 100644 index 00000000000..ca0ce13f000 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVVHelCPMix.cxx @@ -0,0 +1,234 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSVVHelCPMix.cc +// +// Description: Routine to decay scalar -> 2 vectors +// by specifying the helicity amplitudes, taking appropriate +// weak phases into account to get mixing and CP violation through +// interference. Based on EvtSVVHelAmp. Particularly appropriate for +// Bs->J/Psi+Phi +// +// Modification history: +// +// RYD November 24, 1996 EvtSVVHelAmp Module +// CATMORE March 2004 Modified to EvtSVVHelCPMix +// +// Model takes the following as user-specified arguments: +// deltaM, averageM - mass diference and average of light and heavy mass eigenstates (real scalars) +// gamma, deltagamma - average width and width difference of the l and h eigenstates (real scalars) +// delta1, delta2 - strong phases (real scalars) +// direct weak phase (real scalar) (for Bs->JPsiPhi this will be zero) +// weak mixing phase (real scalar) (this is equal to 2*arg(Vts Vtb) for Bs->JPsiPhi) +// Magnitudes of helicity amplitudes as in SVV_HELAMP +// See Phys Rev D 34 p1404 - p1417 and chapters 5 and 7 of Physics Reports 370 p537-680 for more details +//------------------------------------------------------------------------ +// +#ifdef WIN32 + #pragma warning( disable : 4786 ) + // Disable anoying warning about symbol size +#endif +#include +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtVector3C.hh" +#include "EvtGenBase/EvtVector3R.hh" +#include "EvtGenBase/EvtTensor3C.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtSVVHelCPMix.hh" +#include "EvtGenBase/EvtId.hh" +#include + +EvtSVVHelCPMix::~EvtSVVHelCPMix() {} + +std::string EvtSVVHelCPMix::getName(){ + + return "SVVHELCPMIX"; + +} + + +EvtDecayBase* EvtSVVHelCPMix::clone(){ + + return new EvtSVVHelCPMix; + +} + +void EvtSVVHelCPMix::init(){ + + // check that there are 12 arguments + checkNArg(12); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::VECTOR); + + hp = EvtComplex(getArg(0)*cos(getArg(1)),getArg(0)*sin(getArg(1))); + h0 = EvtComplex(getArg(2)*cos(getArg(3)),getArg(2)*sin(getArg(3))); + hm = EvtComplex(getArg(4)*cos(getArg(5)),getArg(4)*sin(getArg(5))); + averageM = getArg(6); + deltaM = getArg(7); + gamma = getArg(8); + deltagamma = getArg(9); + weakmixingphase = EvtComplex(cos(getArg(10)),sin(getArg(10))); + weakdirectphase = EvtComplex(cos(getArg(11)),sin(getArg(11))); +} + + +void EvtSVVHelCPMix::initProbMax(){ + + setProbMax(getArg(0)*getArg(0)+getArg(2)*getArg(2)+getArg(4)*getArg(4)); + +} + + +void EvtSVVHelCPMix::decay( EvtParticle *p){ + + EvtParticle* parent = p; + EvtAmp& amp = _amp2; + EvtId n_v1 = getDaug(0); + EvtId n_v2 = getDaug(1); + + // Routine to decay a vector into a vector and scalar. Started + // by ryd on Oct 17, 1996. + // Modified by J.Catmore to take account of CP-violation and mixing + + int tndaug = 2; + EvtId tdaug[2]; + EvtId Bs=EvtPDL::getId("B_s0"); + EvtId antiBs=EvtPDL::getId("anti-B_s0"); + tdaug[0] = n_v1; + tdaug[1] = n_v2; + +// Phase space and kinematics + + parent->initializePhaseSpace(tndaug,tdaug); + + EvtParticle *v1,*v2; + v1 = parent->getDaug(0); + v2 = parent->getDaug(1); + + EvtVector4R momv1 = v1->getP4(); + EvtVector4R momv2 = v2->getP4(); + + EvtVector3R v1dir(momv1.get(1),momv1.get(2),momv1.get(3)); + v1dir=v1dir/v1dir.d3mag(); + +// Definition of quantities used in construction of complex amplitudes: + +EvtTensor3C M; // Tensor as defined in EvtGen manual, equ 117 +EvtComplex a,b,c; // Helicity amplitudes; EvtGen manual eqns 126-128, also see Phys Lett B 369 p144-150 eqn 15 +EvtComplex deltamu = EvtComplex(deltaM, -0.5*deltagamma); // See Phys Rev D 34 p1404 + +// conversion from times in mm/c to natural units [GeV]^-1 +double t = ((parent->getLifetime())/2.998e11)*6.58e-25; + +// The following two quantities defined in Phys Rev D 34 p1404 +EvtComplex fplus = EvtComplex(cos(averageM*t),-1.*sin(averageM*t))*exp(-(gamma/2.0)*t)* + (cos(0.5*deltaM*t)*cosh(0.25*deltagamma*t)+EvtComplex(0.0,sin(0.5*deltaM*t)*sinh(0.25*deltagamma*t))); +EvtComplex fminus = EvtComplex(cos(averageM*t), -1.*sin(averageM*t))*exp(-(gamma/2.0)*t)*EvtComplex(0.0,1.0)* + (sin(0.5*deltaM*t)*cosh(0.25*deltagamma*t)-EvtComplex(0.0,1.0)*sinh(0.25*deltagamma*t)*cos(0.5*deltaM*t)); + +// See EvtGen manual pp 106-107 + + a=-0.5*(hp+hm); + b=EvtComplex(0.0,0.5)*(hp-hm); + c=(h0+0.5*(hp+hm)); + + M=a*EvtTensor3C::id()+ + b*eps(v1dir)+ + c*directProd(v1dir,v1dir); + + EvtVector3C t0=M.cont1(v1->eps(0).vec().conj()); + EvtVector3C t1=M.cont1(v1->eps(1).vec().conj()); + EvtVector3C t2=M.cont1(v1->eps(2).vec().conj()); + + EvtVector3C eps0=v2->eps(0).vec().conj(); + EvtVector3C eps1=v2->eps(1).vec().conj(); + EvtVector3C eps2=v2->eps(2).vec().conj(); + +// We need two sets of equations, one for mesons which were in the Bs state at t=0, and another +// for those which were in the antiBs state. Each equation consists of a sum of amplitudes - mod-squaring gives the interference terms. + + EvtComplex amplSum00, amplSum01, amplSum02; + EvtComplex amplSum10, amplSum11, amplSum12; + EvtComplex amplSum20, amplSum21, amplSum22; + + // First the Bs state: + + if (parent->getId()==Bs) { + + amplSum00 = (fplus*weakdirectphase*t0*eps0) + (fminus*(1.0/weakdirectphase)*weakmixingphase*t0*eps0); + amplSum01 = (fplus*weakdirectphase*t0*eps1) + (fminus*(1.0/weakdirectphase)*weakmixingphase*t0*eps1); + amplSum02 = (fplus*weakdirectphase*t0*eps2) + (fminus*(1.0/weakdirectphase)*weakmixingphase*t0*eps2); + + amplSum10 = (fplus*weakdirectphase*t1*eps0) + (fminus*(1.0/weakdirectphase)*weakmixingphase*t1*eps0); + amplSum11 = (fplus*weakdirectphase*t1*eps1) + (fminus*(1.0/weakdirectphase)*weakmixingphase*t1*eps1); + amplSum12 = (fplus*weakdirectphase*t1*eps2) + (fminus*(1.0/weakdirectphase)*weakmixingphase*t1*eps2); + + amplSum20 = (fplus*weakdirectphase*t2*eps0) + (fminus*(1.0/weakdirectphase)*weakmixingphase*t2*eps0); + amplSum21 = (fplus*weakdirectphase*t2*eps1) + (fminus*(1.0/weakdirectphase)*weakmixingphase*t2*eps1); + amplSum22 = (fplus*weakdirectphase*t2*eps2) + (fminus*(1.0/weakdirectphase)*weakmixingphase*t2*eps2); + } + + // Now the anti-Bs state: + + if (parent->getId()==antiBs) { + + amplSum00 = (fminus*weakdirectphase*(1.0/weakmixingphase)*t0*eps0) + (fplus*(1.0/weakdirectphase)*t0*eps0); + amplSum01 = (fminus*weakdirectphase*(1.0/weakmixingphase)*t0*eps1) + (fplus*(1.0/weakdirectphase)*t0*eps1); + amplSum02 = (fminus*weakdirectphase*(1.0/weakmixingphase)*t0*eps2) + (fplus*(1.0/weakdirectphase)*t0*eps2); + + amplSum10 = (fminus*weakdirectphase*(1.0/weakmixingphase)*t1*eps0) + (fplus*(1.0/weakdirectphase)*t1*eps0); + amplSum11 = (fminus*weakdirectphase*(1.0/weakmixingphase)*t1*eps1) + (fplus*(1.0/weakdirectphase)*t1*eps1); + amplSum12 = (fminus*weakdirectphase*(1.0/weakmixingphase)*t1*eps2) + (fplus*(1.0/weakdirectphase)*t1*eps2); + + amplSum20 = (fminus*weakdirectphase*(1.0/weakmixingphase)*t2*eps0) + (fplus*(1.0/weakdirectphase)*t2*eps0); + amplSum21 = (fminus*weakdirectphase*(1.0/weakmixingphase)*t2*eps1) + (fplus*(1.0/weakdirectphase)*t2*eps1); + amplSum22 = (fminus*weakdirectphase*(1.0/weakmixingphase)*t2*eps2) + (fplus*(1.0/weakdirectphase)*t2*eps2); + + } + + // Now set the amplitude + + amp.vertex(0,0,amplSum00); + report(INFO,"EvtGen") << "00: " << amplSum00 << std::endl; + amp.vertex(0,1,amplSum01); + report(INFO,"EvtGen") << "01: " << amplSum01 << std::endl; + amp.vertex(0,2,amplSum02); + report(INFO,"EvtGen") << "02: " << amplSum02 << std::endl; + + amp.vertex(1,0,amplSum10); + report(INFO,"EvtGen") << "10: " << amplSum10 << std::endl; + amp.vertex(1,1,amplSum11); + report(INFO,"EvtGen") << "11: " << amplSum11 << std::endl; + amp.vertex(1,2,amplSum12); + report(INFO,"EvtGen") << "12: " << amplSum12 << std::endl; + + amp.vertex(2,0,amplSum20); + report(INFO,"EvtGen") << "20: " << amplSum20 << std::endl; + amp.vertex(2,1,amplSum21); + report(INFO,"EvtGen") << "21: " << amplSum21 << std::endl; + amp.vertex(2,2,amplSum22); + report(INFO,"EvtGen") << "22: " << amplSum22 << std::endl; + + return ; + +} + + diff --git a/TEvtGen/EvtGenModels/EvtSVVHelCPMix.hh b/TEvtGen/EvtGenModels/EvtSVVHelCPMix.hh new file mode 100644 index 00000000000..6dda8da8cc2 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVVHelCPMix.hh @@ -0,0 +1,65 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSVVHelCPMix.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module (SVV_HELAMP) created +// CATMORE March 2004 Amendments made t +//------------------------------------------------------------------------ + +#ifndef EVTSVVHELCPMIX_HH +#define EVTSVVHELCPMIX_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +//Class to handle decays of the form SCALAR -> VECTOR VECTOR +//according the the helicity amplitudes specified by the +//user. There are 6 arguements, orders as amplitude then +//phase for H+, H0, and H-, in that order. + +class EvtAmp; +class EvtParticle; +class EvtId; + +class EvtSVVHelCPMix:public EvtDecayAmp { + +public: + + EvtSVVHelCPMix() {} + virtual ~EvtSVVHelCPMix(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + + EvtComplex hp; + EvtComplex h0; + EvtComplex hm; + double averageM; + double deltaM; + double gamma; + double deltagamma; + EvtComplex strongphase1; + EvtComplex strongphase2; + EvtComplex weakmixingphase; + EvtComplex weakdirectphase; + + void initProbMax(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.cxx b/TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.cxx new file mode 100644 index 00000000000..bb58dfb1719 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.cxx @@ -0,0 +1,197 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2001 Royal Holloway, University of London +// +// Module: EvtSVVNONCPEIGEN.cc +// +// Description: Routine to decay scalar -> vector vector +// and has CP violation. +// +// This model does all the ckm-suppressed decays and mixing for you. It randomly 'overwrites' +// any reco or tagging state as set in the Y(4S) decay model (VSS_(B)MIX) with its own generated states. +// +// As such, the corresponding dec file requires only one decay-mode description, for example: +// Decay MyB0 +// 1.000 rho+ MyD*- SVV_NONCPEIGEN dm beta gamma 0.322 0.31 0.941 0 0.107 1.42 0.02 0 0.02 0 0.02 0 ; +// EndDecay +// and furthermore Y(4S) only needs to decay to B0's (or B0bar's). +// The decay above should be a CKM-favored mode (eg. B0->D*-rho+ or B0bar->D*+rho-). +// All ckm-suppressed decays and the mixing are derived from this line in the ::Decay function. +// +// There are 15 or 27 arguments. The first three are dm, phase1 +// and phase2. dm is the B0-B0bar mass difference. Phases 1 +// and 2 are the CKM weak phases relevant for the particular mode, +// eg for B-->DstRho phase1 is beta and phase2 is gamma. +// +// The next arguments are the 2 amplitudes (= 12 input parameters) +// in the order: A_f, Abar_f. In the example above, the 'A_f' amplitude now +// stands for the ckm-favored decay 'B0->D*-rho+', and 'Abar_f' stands for 'B0bar->D*-rho+' +// +// Each amplitude has its 3 helicity states in the order +, 0, -, which are each +// specified by a magnitude and a strong phase. +// +// The last 2 arguments A_fbar and Abar_fbar (=12 input parameters) are not necessary, +// but can included if one wants to set them differently from A_f, Abar_f. +// +// Mind you that Hbar_+- = H_-+ (ignoring the weak phase, which flips sign). +// It is custumary to select one set of helicity states (eg H_+-) and to adopt these for +// the CP-conjugate decays as well (ie. depict Hbar_-+ with H_+-), which is the interpretation +// we use for the input-parameters above. +// However, the angular decay in EvtGen is just a formula in which helicity amplitudes are 'plugged' in, +// making no difference between B0 or B0bar decays. In the model below we (thus) account for the +- +// flipping between B0 and B0bar. +// +// +// Modification history: +// Ajit Kurup 9 March 2001 Module created (from EvtSVSNONCPEIGEN) +// Max Baak 01/16/2004 Fix of Helicity amplitude ordering. +// Decay also works for B0bar decays. +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtCPUtil.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenModels/EvtSVVNONCPEIGEN.hh" +#include +#include "EvtGenModels/EvtSVVHelAmp.hh" +#include "EvtGenBase/EvtConst.hh" + +EvtSVVNONCPEIGEN::~EvtSVVNONCPEIGEN() {} + +std::string EvtSVVNONCPEIGEN::getName(){ + + return "SVV_NONCPEIGEN"; + +} + + +EvtDecayBase* EvtSVVNONCPEIGEN::clone(){ + + return new EvtSVVNONCPEIGEN; + +} + +void EvtSVVNONCPEIGEN::init(){ + + // check that there are 27 arguments + checkNArg(27,15); + checkNDaug(2); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::VECTOR); + + // The ordering of A_f is : + // A_f[0-2] = A_f + // A_f[3-5] = Abar_f + // A_f[6-8] = A_fbar + // A_f[9-11] = Abar_fbar + // + // Each of the 4 amplitudes include the 3 different helicity states in + // the order +, 0, -. See more about helicity amplitude ordering in ::decay + + int i=0; + int j=(getNArg()-3)/2; + + for(i=0; igetId() == B0) ? 0 : 1); + daugs[0]=getDaug(0); + daugs[1]=getDaug(1); + p->initializePhaseSpace(2,daugs); + + EvtCPUtil::OtherB(p,t,other_b,0.5); + + EvtComplex amp[3]; + + double dmt2 = getArg(0) * t / (2 * EvtConst::c); + double phiCKM = (2.0 * getArg(1) + getArg(2)); // 2b+g + EvtComplex ePlusIPhi(cos(phiCKM), sin(phiCKM)); + EvtComplex eMinusIPhi(cos(-phiCKM), sin(-phiCKM)); + + // flip == 0 : D*-rho+ + // flip == 1 : D*+rho- + + if (!flip) { + if (other_b==B0B){ + // At t=0 we have a B0 + for (int i=0; i<3; ++i) { + amp[i] = _A_f[i]*cos(dmt2) + eMinusIPhi*EvtComplex(0.0,sin(dmt2))*_A_f[i+3]; + } + } + if (other_b==B0){ + // At t=0 we have a B0bar + for(int i=0; i<3; ++i) { + amp[i] = _A_f[i]*ePlusIPhi*EvtComplex(0.0,sin(dmt2)) + _A_f[i+3]*cos(dmt2); + } + } + } else{ + if (other_b==B0B){ + // At t=0 we have a B0 + + // M.Baak 01/16/2004 + // Note: \bar{H}+- = H-+ + // If one wants to use the correct helicities for B0 and B0bar decays but the same formula-notation (as done in EvtSVV_HelAmp), + // count the B0bar helicities backwards. (Equivalently, one could flip the chi angle.) + + for(int i=0; i<3; ++i) { + amp[i] = _A_f[8-i]*cos(dmt2) + eMinusIPhi*EvtComplex(0.0,sin(dmt2))*_A_f[11-i]; + } + } + if (other_b==B0){ + // At t=0 we have a B0bar + for(int i=0; i<3; ++i) { + amp[i] = _A_f[8-i] * ePlusIPhi * EvtComplex(0.0,sin(dmt2)) + _A_f[11-i]*cos(dmt2); + } + } + } + + EvtSVVHelAmp::SVVHel(p,_amp2,daugs[0],daugs[1],amp[0],amp[1],amp[2]); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.hh b/TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.hh new file mode 100644 index 00000000000..ce7d02dd4ef --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSVVNONCPEIGEN.hh @@ -0,0 +1,48 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2001 Royal Holloway, University of London +// +// Module: EvtGen/EvtSVVNONCPEIGEN.hh +// +// Description: See EvtSVVNONCPEIGEN.cc +// +// Modification history: +// +// Ajit Kurup 9 March 2001 Module created (from EvtSVSNONCPEIGEN.hh) +// +//------------------------------------------------------------------------ + +#ifndef EVTSVVNONCPEIGEN_HH +#define EVTSVVNONCPEIGEN_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtSVVNONCPEIGEN:public EvtDecayAmp { + +public: + + EvtSVVNONCPEIGEN() {} + virtual ~EvtSVVNONCPEIGEN(); + + std::string getName(); + EvtDecayBase* clone(); + + void initProbMax(); + void init(); + + void decay(EvtParticle *p); + +private: + + EvtComplex _A_f[12]; +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtSingleParticle.cxx b/TEvtGen/EvtGenModels/EvtSingleParticle.cxx new file mode 100644 index 00000000000..8a94bc55586 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSingleParticle.cxx @@ -0,0 +1,152 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtSingleParticle.cc +// +// Description: Special model to generate single particles. +// +// Modification history: +// +// RYD Febuary 17,1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtSingleParticle.hh" +#include "EvtGenBase/EvtReport.hh" +#include +#include "EvtGenBase/EvtConst.hh" +using std::endl; + +EvtSingleParticle::~EvtSingleParticle() {} + +std::string EvtSingleParticle::getName(){ + + return "SINGLE"; + +} + +EvtDecayBase* EvtSingleParticle::clone(){ + + return new EvtSingleParticle(); + +} + +void EvtSingleParticle::init(){ + + + //turn off checks for charge conservation + disableCheckQ(); + + if ((getNArg()==6)||(getNArg()==4)||(getNArg()==2)) { + + if (getNArg()==6){ + //copy the arguments into eaiser to remember names! + + pmin=getArg(0); + pmax=getArg(1); + + cthetamin=getArg(2); + cthetamax=getArg(3); + + phimin=getArg(4); + phimax=getArg(5); + + } + + if (getNArg()==4){ + //copy the arguments into eaiser to remember names! + + pmin=getArg(0); + pmax=getArg(1); + + cthetamin=getArg(2); + cthetamax=getArg(3); + + phimin=0.0; + phimax=EvtConst::twoPi; + + } + + if (getNArg()==2){ + //copy the arguments into eaiser to remember names! + + pmin=getArg(0); + pmax=getArg(1); + + cthetamin=-1.0; + cthetamax=1.0; + + phimin=0.0; + phimax=EvtConst::twoPi; + + } + + + }else{ + + report(ERROR,"EvtGen") << "EvtSingleParticle generator expected " + << " 6, 4, or 2 arguments but found:"< p > " << pmin < costheta > " << cthetamin < phi > " << phimin <makeDaughters(getNDaug(),getDaugs()); + d=p->getDaug(0); + + //generate flat distribution in p + //we are now in the parents restframe! This means the + //restframe of the e+e- collison. + double pcm=EvtRandom::Flat(pmin,pmax); + //generate flat distribution in phi. + double phi=EvtRandom::Flat(phimin,phimax); + + double cthetalab; + + do{ + //generate flat distribution in costheta + double ctheta=EvtRandom::Flat(cthetamin,cthetamax); + double stheta=sqrt(1.0-ctheta*ctheta); + p4.set(sqrt(mass*mass+pcm*pcm),pcm*cos(phi)*stheta, + pcm*sin(phi)*stheta,pcm*ctheta); + + d->init( getDaug(0),p4); + + //get 4 vector in the lab frame! + EvtVector4R p4lab=d->getP4Lab(); + cthetalab=p4lab.get(3)/p4lab.d3mag(); + }while (cthetalab>cthetamax||cthetalab tau+ tau- +// +// Modification history: +// +// SHY April 23, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenModels/EvtSll.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" + +EvtSll::~EvtSll() {} + +std::string EvtSll::getName(){ + + return "SLL"; + +} + + +EvtDecayBase* EvtSll::clone(){ + + return new EvtSll; + +} + +void EvtSll::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(2); + + checkSpinParent(EvtSpinType::SCALAR); + + checkSpinDaughter(0,EvtSpinType::DIRAC); + checkSpinDaughter(1,EvtSpinType::DIRAC); + +} + +void EvtSll::decay(EvtParticle *p){ + + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *l1, *l2; + l1 = p->getDaug(0); + l2 = p->getDaug(1); + EvtVector4R p4_p; + p4_p.set(p->mass(),0.0,0.0,0.0); + + EvtVector4C l11, l12, l21, l22; + + l11=EvtLeptonVACurrent(l1->spParent(0),l2->spParent(0)); + l12=EvtLeptonVACurrent(l1->spParent(0),l2->spParent(1)); + l21=EvtLeptonVACurrent(l1->spParent(1),l2->spParent(0)); + l22=EvtLeptonVACurrent(l1->spParent(1),l2->spParent(1)); + + vertex(0,0,p4_p*l11); + vertex(0,1,p4_p*l12); + vertex(1,0,p4_p*l21); + vertex(1,1,p4_p*l22); + + return; + +} + diff --git a/TEvtGen/EvtGenModels/EvtSll.hh b/TEvtGen/EvtGenModels/EvtSll.hh new file mode 100644 index 00000000000..3598c796be7 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtSll.hh @@ -0,0 +1,46 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtSll.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTSLL_HH +#define EVTSLL_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +//Class to handle decays of the form SCALAR -> DIRAC DIRAC. + +class EvtSll:public EvtDecayAmp { + +public: + + EvtSll() {} + virtual ~EvtSll(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtTSS.cxx b/TEvtGen/EvtGenModels/EvtTSS.cxx new file mode 100644 index 00000000000..70c39e2505e --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtTSS.cxx @@ -0,0 +1,84 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtTSS.cc +// +// Description: Routine to decay tensor-> scalar scalar +// +// Modification history: +// +// RYD November 24, 1996 Module created +// +//------------------------------------------------------------------------ +// +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtTSS.hh" +#include + +EvtTSS::~EvtTSS() {} + +std::string EvtTSS::getName(){ + + return "TSS"; + +} + + +EvtDecayBase* EvtTSS::clone(){ + + return new EvtTSS; + +} + +void EvtTSS::init(){ + + // check that there are 0 arguments + checkNArg(0); + + checkNDaug(2); + + checkSpinParent(EvtSpinType::TENSOR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + + +} + +void EvtTSS::initProbMax() { + + setProbMax(1.0); + +} + +void EvtTSS::decay( EvtParticle *p){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtVector4R moms1 = p->getDaug(0)->getP4(); + + double norm = 1.0/(moms1.d3mag()*moms1.d3mag()); + + vertex(0,norm*(p->epsTensor(0).cont1(EvtVector4C(moms1))*(moms1))); + vertex(1,norm*(p->epsTensor(1).cont1(EvtVector4C(moms1))*(moms1))); + vertex(2,norm*(p->epsTensor(2).cont1(EvtVector4C(moms1))*(moms1))); + vertex(3,norm*(p->epsTensor(3).cont1(EvtVector4C(moms1))*(moms1))); + vertex(4,norm*(p->epsTensor(4).cont1(EvtVector4C(moms1))*(moms1))); + + return ; +} diff --git a/TEvtGen/EvtGenModels/EvtTSS.hh b/TEvtGen/EvtGenModels/EvtTSS.hh new file mode 100644 index 00000000000..5c1a9ba8f15 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtTSS.hh @@ -0,0 +1,47 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtTSS.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTTSS_HH +#define EVTTSS_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +//Class to handle decays of the form TENSOR -> SCALAR SCALAR. +//Calls EvtTensorToScalarScalar + +class EvtParticle; + +class EvtTSS:public EvtDecayAmp { + +public: + + EvtTSS() {} + virtual ~EvtTSS(); + + std::string getName(); + EvtDecayBase* clone(); + + void init(); + void decay(EvtParticle *p); + void initProbMax(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtTVSPwave.cxx b/TEvtGen/EvtGenModels/EvtTVSPwave.cxx new file mode 100644 index 00000000000..aab40802802 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtTVSPwave.cxx @@ -0,0 +1,131 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtTVSPwave.cc +// +// Description: Routine to decay tensor-> vector scalar +// by specifying the partial waves +// +// Modification history: +// +// DJL/RYD August 11, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtTVSPwave.hh" +#include + +EvtTVSPwave::~EvtTVSPwave() {} + +std::string EvtTVSPwave::getName(){ + + return "TVS_PWAVE"; + +} + + +EvtDecayBase* EvtTVSPwave::clone(){ + + return new EvtTVSPwave; + +} + +void EvtTVSPwave::init(){ + + // check that there are 6 arguments + checkNArg(6); + checkNDaug(2); + + checkSpinParent(EvtSpinType::TENSOR); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::SCALAR); +} + +void EvtTVSPwave::initProbMax(){ + + setProbMax(0.5); + + +} + +void EvtTVSPwave::decay( EvtParticle *p ){ + + EvtComplex ap(getArg(0)*cos(getArg(1)),getArg(0)*sin(getArg(1))); + EvtComplex ad(getArg(2)*cos(getArg(3)),getArg(2)*sin(getArg(3))); + EvtComplex af(getArg(4)*cos(getArg(5)),getArg(4)*sin(getArg(5))); + + if (ap!=EvtComplex(0.0,0.0)||af!=EvtComplex(0.0,0.0)) { + report(ERROR,"EvtGen") << "dfslkh8945wqh:In EvtTensorToVectorScalar.c\n"; + report(ERROR,"EvtGen") << "P or F wave not yet implemented!! (ryd) \n"; + } + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *v; + v = p->getDaug(0); + EvtVector4R momv = v->getP4(); + double massv = v->mass(); + + EvtComplex temp; + temp = ad; + double m_parent = p->mass(); + + EvtVector4R p_parent; + + p_parent.set(m_parent,0.0,0.0,0.0); + + EvtVector4C pep0,pep1,pep2,pep3,pep4; + EvtTensor4C pdual; + + EvtVector4C epsdual0,epsdual1,epsdual2; + + double norm=massv/(m_parent*momv.get(0)*momv.d3mag()*momv.d3mag()); + pdual=dual(directProd(norm*p_parent,momv)); + + epsdual0=pdual.cont1(v->epsParent(0).conj()); + epsdual1=pdual.cont1(v->epsParent(1).conj()); + epsdual2=pdual.cont1(v->epsParent(2).conj()); + + pep0=p->epsTensor(0).cont1(momv); + pep1=p->epsTensor(1).cont1(momv); + pep2=p->epsTensor(2).cont1(momv); + pep3=p->epsTensor(3).cont1(momv); + pep4=p->epsTensor(4).cont1(momv); + + vertex(0,0,pep0*epsdual0); + vertex(1,0,pep1*epsdual0); + vertex(2,0,pep2*epsdual0); + vertex(3,0,pep3*epsdual0); + vertex(4,0,pep4*epsdual0); + + vertex(0,1,pep0*epsdual1); + vertex(1,1,pep1*epsdual1); + vertex(2,1,pep2*epsdual1); + vertex(3,1,pep3*epsdual1); + vertex(4,1,pep4*epsdual1); + + vertex(0,2,pep0*epsdual2); + vertex(1,2,pep1*epsdual2); + vertex(2,2,pep2*epsdual2); + vertex(3,2,pep3*epsdual2); + vertex(4,2,pep4*epsdual2); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtTVSPwave.hh b/TEvtGen/EvtGenModels/EvtTVSPwave.hh new file mode 100644 index 00000000000..62148574e8f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtTVSPwave.hh @@ -0,0 +1,49 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtTVSPwave.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTTVSPWAVE_HH +#define EVTTVSPWAVE_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +//Class to handles decays of the form TENSOR -> VECTOR SCALAR, +//which proceed via S,P, or D partial waves. There are +//six arguements, which are the magnetude and phase of +//each partial wave (S, P then D). Calls EvtTensorToVectorScalar + +class EvtTVSPwave:public EvtDecayAmp { + +public: + + EvtTVSPwave() {} + virtual ~EvtTVSPwave(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtTauHadnu.cxx b/TEvtGen/EvtGenModels/EvtTauHadnu.cxx new file mode 100644 index 00000000000..b73effe1ad9 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtTauHadnu.cxx @@ -0,0 +1,265 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtTauHadnu.cc +// +// Description: The leptonic decay of the tau meson. +// E.g., tau- -> e- nueb nut +// +// Modification history: +// +// RYD January 17, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenModels/EvtTauHadnu.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtIdSet.hh" + +using namespace std; + +EvtTauHadnu::~EvtTauHadnu() {} + +std::string EvtTauHadnu::getName(){ + + return "TAUHADNU"; + +} + + +EvtDecayBase* EvtTauHadnu::clone(){ + + return new EvtTauHadnu; + +} + +void EvtTauHadnu::init() { + + // check that there are 0 arguments + + checkSpinParent(EvtSpinType::DIRAC); + + //the last daughter should be a neutrino + checkSpinDaughter(getNDaug()-1,EvtSpinType::NEUTRINO); + + int i; + for ( i=0; i<(getNDaug()-1);i++) { + checkSpinDaughter(i,EvtSpinType::SCALAR); + } + + bool validndaug=false; + + if ( getNDaug()==4 ) { + //pipinu + validndaug=true; + checkNArg(7); + _beta = getArg(0); + _mRho = getArg(1); + _gammaRho = getArg(2); + _mRhopr = getArg(3); + _gammaRhopr = getArg(4); + _mA1 = getArg(5); + _gammaA1 = getArg(6); + } + if ( getNDaug()==3 ) { + //pipinu + validndaug=true; + checkNArg(5); + _beta = getArg(0); + _mRho = getArg(1); + _gammaRho = getArg(2); + _mRhopr = getArg(3); + _gammaRhopr = getArg(4); + } + if ( getNDaug()==2 ) { + //pipinu + validndaug=true; + checkNArg(0); + } + + if ( !validndaug ) { + report(ERROR,"EvtGen") << "Have not yet implemented this final state in TAUHADNUKS model" << endl; + report(ERROR,"EvtGen") << "Ndaug="<initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *nut; + nut = p->getDaug(getNDaug()-1); + EvtVector4R momscalar = p->getDaug(0)->getP4(); + + //get the leptonic current + EvtVector4C tau1, tau2; + + if (p->getId()==TAUM) { + tau1=EvtLeptonVACurrent(nut->spParentNeutrino(),p->sp(0)); + tau2=EvtLeptonVACurrent(nut->spParentNeutrino(),p->sp(1)); + } + else{ + tau1=EvtLeptonVACurrent(p->sp(0),nut->spParentNeutrino()); + tau2=EvtLeptonVACurrent(p->sp(1),nut->spParentNeutrino()); + } + + EvtVector4C hadCurr; + bool foundHadCurr=false; + if ( getNDaug() == 2 ) { + hadCurr = p->getDaug(0)->getP4(); + foundHadCurr=true; + } + if ( getNDaug() == 3 ) { + + //pi pi0 nu with rho and rhopr resonance + if ( thePis.contains(getDaug(0)) && + thePis.contains(getDaug(1)) ) { + + EvtVector4R q1 = p->getDaug(0)->getP4(); + EvtVector4R q2 = p->getDaug(1)->getP4(); + double m1 = q1.mass(); + double m2 = q2.mass(); + + hadCurr = Fpi( (q1+q2).mass2(), m1, m2 ) * (q1-q2); + + foundHadCurr = true; + } + + } + if ( getNDaug() == 4 ) { + if ( thePis.contains(getDaug(0)) && + thePis.contains(getDaug(1)) && + thePis.contains(getDaug(2)) ) { + //figure out which is the different charged pi + //want it to be q3 + + int diffPi(0),samePi1(0),samePi2(0); + if ( getDaug(0) == getDaug(1) ) {diffPi=2; samePi1=0; samePi2=1;} + if ( getDaug(0) == getDaug(2) ) {diffPi=1; samePi1=0; samePi2=2;} + if ( getDaug(1) == getDaug(2) ) {diffPi=0; samePi1=1; samePi2=2;} + + EvtVector4R q1=p->getDaug(samePi1)->getP4(); + EvtVector4R q2=p->getDaug(samePi2)->getP4(); + EvtVector4R q3=p->getDaug(diffPi)->getP4(); + + double m1 = q1.mass(); + double m2 = q2.mass(); + double m3 = q3.mass(); + + EvtVector4R Q = q1 + q2 + q3; + double Q2 = Q.mass2(); + double _mA12 = _mA1*_mA1; + + double _gammaA1X = _gammaA1 * gFunc( Q2, samePi1 )/gFunc( _mA12, samePi1 ); + + EvtComplex denBW_A1( _mA12 - Q2, -1.*_mA1*_gammaA1X ); + EvtComplex BW_A1 = _mA12 / denBW_A1; + + hadCurr = BW_A1 * ( ((q1-q3)-(Q*(Q*(q1-q3))/Q2)) * Fpi( (q1+q3).mass2(), m1, m3) + + ((q2-q3)-(Q*(Q*(q2-q3))/Q2)) * Fpi( (q2+q3).mass2(), m2, m3) ); + + foundHadCurr = true; + + } + + + } + + + + if ( !foundHadCurr ) { + report(ERROR,"EvtGen") << "Have not yet implemented this final state in TAUHADNUKS model" << endl; + report(ERROR,"EvtGen") << "Ndaug="< pow( xm1+xm2, 2.) ) { + double qs = sqrt( fabs( (s-pow(xm1+xm2,2.)) * (s-pow(xm1-xm2,2.)) ) ) / sqrt(s); + double qm = sqrt( fabs( (m2-pow(xm1+xm2,2.)) * (m2-pow(xm1-xm2,2.)) ) ) / m; + + gamma *= m2/s * pow( qs/qm, 3.); + } + else + gamma = 0.; + + EvtComplex denBW( m2 - s, -1.* sqrt(s) * gamma ); + + + return m2 / denBW; +} + + + + + diff --git a/TEvtGen/EvtGenModels/EvtTauHadnu.hh b/TEvtGen/EvtGenModels/EvtTauHadnu.hh new file mode 100644 index 00000000000..ee246eb0a37 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtTauHadnu.hh @@ -0,0 +1,57 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtTauHadnu.hh +// +// Description: +// +// Modification history: +// +// Lange Oct 26, 2002 Created +// +//------------------------------------------------------------------------ + +#ifndef EVTTAUHADNUKS_HH +#define EVTTAUHADNUKS_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtTauHadnu : public EvtDecayAmp { + +public: + + EvtTauHadnu() {} + virtual ~EvtTauHadnu(); + + std::string getName(); + EvtDecayBase* clone(); + + void initProbMax(); + void init(); + void decay(EvtParticle *p); + +private: + double _beta; + double _mRho; + double _gammaRho; + double _mRhopr; + double _gammaRhopr; + double _mA1; + double _gammaA1; + + double gFunc(double m2,int dupD); + EvtComplex Fpi( double s, double xm1, double xm2 ); + EvtComplex BW( double s, double m, double gamma, double xm1, double xm2 ); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtTauScalarnu.cxx b/TEvtGen/EvtGenModels/EvtTauScalarnu.cxx new file mode 100644 index 00000000000..c2473889b8a --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtTauScalarnu.cxx @@ -0,0 +1,94 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtTauScalarnu.cc +// +// Description: The leptonic decay of the tau meson. +// E.g., tau- -> e- nueb nut +// +// Modification history: +// +// RYD January 17, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenModels/EvtTauScalarnu.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" + +EvtTauScalarnu::~EvtTauScalarnu() {} + +std::string EvtTauScalarnu::getName(){ + + return "TAUSCALARNU"; + +} + + +EvtDecayBase* EvtTauScalarnu::clone(){ + + return new EvtTauScalarnu; + +} + +void EvtTauScalarnu::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(2); + + checkSpinParent(EvtSpinType::DIRAC); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::NEUTRINO); + +} + +void EvtTauScalarnu::initProbMax(){ + + setProbMax(90.0); + +} + +void EvtTauScalarnu::decay(EvtParticle *p){ + + static EvtId TAUM=EvtPDL::getId("tau-"); + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *nut; + nut = p->getDaug(1); + EvtVector4R momscalar = p->getDaug(0)->getP4(); + + EvtVector4C tau1, tau2; + + if (p->getId()==TAUM) { + tau1=EvtLeptonVACurrent(nut->spParentNeutrino(),p->sp(0)); + tau2=EvtLeptonVACurrent(nut->spParentNeutrino(),p->sp(1)); + } + else{ + tau1=EvtLeptonVACurrent(p->sp(0),nut->spParentNeutrino()); + tau2=EvtLeptonVACurrent(p->sp(1),nut->spParentNeutrino()); + } + + vertex(0,tau1*momscalar); + vertex(1,tau2*momscalar); + + return; + +} + diff --git a/TEvtGen/EvtGenModels/EvtTauScalarnu.hh b/TEvtGen/EvtGenModels/EvtTauScalarnu.hh new file mode 100644 index 00000000000..977214f6d34 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtTauScalarnu.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtTauScalarnu.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTTAUSCALARNU_HH +#define EVTTAUSCALARNU_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtTauScalarnu:public EvtDecayAmp { + +public: + + EvtTauScalarnu() {} + virtual ~EvtTauScalarnu(); + + std::string getName(); + EvtDecayBase* clone(); + + void initProbMax(); + void init(); + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtTauVectornu.cxx b/TEvtGen/EvtGenModels/EvtTauVectornu.cxx new file mode 100644 index 00000000000..2475719fd0d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtTauVectornu.cxx @@ -0,0 +1,99 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtTauVectornu.cc +// +// Description: The vector decay of the tau meson. +// E.g., tau- -> rho- + nut +// +// Modification history: +// +// RYD/SHY April 23, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenModels/EvtTauVectornu.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" + +EvtTauVectornu::~EvtTauVectornu() {} + +std::string EvtTauVectornu::getName(){ + + return "TAUVECTORNU"; + +} + + +EvtDecayBase* EvtTauVectornu::clone(){ + + return new EvtTauVectornu; + +} + +void EvtTauVectornu::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(2); + + checkSpinParent(EvtSpinType::DIRAC); + + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::NEUTRINO); +} + +void EvtTauVectornu::initProbMax(){ + + setProbMax(55.0); + +} + +void EvtTauVectornu::decay(EvtParticle *p){ + + static EvtId TAUM=EvtPDL::getId("tau-"); + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *v, *nut; + v=p->getDaug(0); + nut=p->getDaug(1); + double mvec = v->mass(); + EvtVector4C tau1, tau2; + + if (p->getId()==TAUM) { + tau1=EvtLeptonVACurrent(nut->spParentNeutrino(),p->sp(0)); + tau2=EvtLeptonVACurrent(nut->spParentNeutrino(),p->sp(1)); + } + else{ + tau1=EvtLeptonVACurrent(p->sp(0),nut->spParentNeutrino()); + tau2=EvtLeptonVACurrent(p->sp(1),nut->spParentNeutrino()); + } + + double norm=mvec*sqrt(mvec); + + vertex(0,0,norm*tau1*(v->epsParent(0).conj())); + vertex(0,1,norm*tau1*(v->epsParent(1).conj())); + vertex(0,2,norm*tau1*(v->epsParent(2).conj())); + vertex(1,0,norm*tau2*(v->epsParent(0).conj())); + vertex(1,1,norm*tau2*(v->epsParent(1).conj())); + vertex(1,2,norm*tau2*(v->epsParent(2).conj())); + + return; + +} + diff --git a/TEvtGen/EvtGenModels/EvtTauVectornu.hh b/TEvtGen/EvtGenModels/EvtTauVectornu.hh new file mode 100644 index 00000000000..f4a4a285d9f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtTauVectornu.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtTauVectornu.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTTAUVECTORNU_HH +#define EVTTAUVECTORNU_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtTauVectornu:public EvtDecayAmp { + +public: + + EvtTauVectornu() {} + virtual ~EvtTauVectornu(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtTaulnunu.cxx b/TEvtGen/EvtGenModels/EvtTaulnunu.cxx new file mode 100644 index 00000000000..d27eaa25625 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtTaulnunu.cxx @@ -0,0 +1,105 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtTaulnunu.cc +// +// Description: The leptonic decay of the tau meson. +// E.g., tau- -> e- nueb nut +// +// Modification history: +// +// RYD January 17, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenModels/EvtTaulnunu.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" + +EvtTaulnunu::~EvtTaulnunu() {} + +std::string EvtTaulnunu::getName(){ + + return "TAULNUNU"; + +} + + +EvtDecayBase* EvtTaulnunu::clone(){ + + return new EvtTaulnunu; + +} + +void EvtTaulnunu::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(3); + + checkSpinParent(EvtSpinType::DIRAC); + + checkSpinDaughter(0,EvtSpinType::DIRAC); + checkSpinDaughter(1,EvtSpinType::NEUTRINO); + checkSpinDaughter(2,EvtSpinType::NEUTRINO); + +} + +void EvtTaulnunu::initProbMax(){ + + setProbMax(650.0); + +} + +void EvtTaulnunu::decay(EvtParticle *p){ + static EvtId TAUM=EvtPDL::getId("tau-"); + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *l, *nul, *nut; + + l = p->getDaug(0); + nul = p->getDaug(1); + nut = p->getDaug(2); + + EvtVector4C l1, l2, tau1, tau2; + + if (p->getId()==TAUM) { + + tau1=EvtLeptonVACurrent(nut->spParentNeutrino(),p->sp(0)); + tau2=EvtLeptonVACurrent(nut->spParentNeutrino(),p->sp(1)); + l1=EvtLeptonVACurrent(l->spParent(0),nul->spParentNeutrino()); + l2=EvtLeptonVACurrent(l->spParent(1),nul->spParentNeutrino()); + + } + else{ + tau1=EvtLeptonVACurrent(p->sp(0),nut->spParentNeutrino()); + tau2=EvtLeptonVACurrent(p->sp(1),nut->spParentNeutrino()); + l1=EvtLeptonVACurrent(nul->spParentNeutrino(),l->spParent(0)); + l2=EvtLeptonVACurrent(nul->spParentNeutrino(),l->spParent(1)); + } + + vertex(0,0,tau1*l1); + vertex(0,1,tau1*l2); + vertex(1,0,tau2*l1); + vertex(1,1,tau2*l2); + + return; + +} + diff --git a/TEvtGen/EvtGenModels/EvtTaulnunu.hh b/TEvtGen/EvtGenModels/EvtTaulnunu.hh new file mode 100644 index 00000000000..733da66bb41 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtTaulnunu.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtTaulnunu.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTTAULNUNU_HH +#define EVTTAULNUNU_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtTaulnunu:public EvtDecayAmp { + +public: + + EvtTaulnunu() {} + virtual ~EvtTaulnunu(); + + std::string getName(); + EvtDecayBase* clone(); + + void initProbMax(); + void init(); + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtVPHOtoV.cxx b/TEvtGen/EvtGenModels/EvtVPHOtoV.cxx new file mode 100644 index 00000000000..d958d9f924f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVPHOtoV.cxx @@ -0,0 +1,87 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2004 Cornell +// +// Module: EvtVPHOtoV.cc +// +// Description: Routine to decay vpho -> vector +// +// Modification history: +// +// Ryd March 9, 2004 Module created +// +//------------------------------------------------------------------------ +// +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtVPHOtoV.hh" +#include + +EvtVPHOtoV::~EvtVPHOtoV() {} + +std::string EvtVPHOtoV::getName(){ + + return "VPHOTOV"; + +} + + +EvtDecayBase* EvtVPHOtoV::clone(){ + + return new EvtVPHOtoV; + +} + +void EvtVPHOtoV::init(){ + + // check that there are 0 arguments + checkNArg(0); + + // check that there are 1 daughters + checkNDaug(1); + + // check the parent and daughter spins + checkSpinParent(EvtSpinType::VECTOR); + checkSpinDaughter(0,EvtSpinType::VECTOR); +} + +void EvtVPHOtoV::initProbMax() { + + setProbMax(1.0); + +} + +void EvtVPHOtoV::decay( EvtParticle *p){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle* d=p->getDaug(0); + + d->setP4(p->getP4Restframe()); + + vertex(0,0,p->eps(0)*p->epsParent(0).conj()); + vertex(1,0,p->eps(1)*p->epsParent(0).conj()); + vertex(2,0,p->eps(2)*p->epsParent(0).conj()); + + vertex(0,1,p->eps(0)*p->epsParent(1).conj()); + vertex(1,1,p->eps(1)*p->epsParent(1).conj()); + vertex(2,1,p->eps(2)*p->epsParent(1).conj()); + + vertex(0,2,p->eps(0)*p->epsParent(2).conj()); + vertex(1,2,p->eps(1)*p->epsParent(2).conj()); + vertex(2,2,p->eps(2)*p->epsParent(2).conj()); + + return; +} + diff --git a/TEvtGen/EvtGenModels/EvtVPHOtoV.hh b/TEvtGen/EvtGenModels/EvtVPHOtoV.hh new file mode 100644 index 00000000000..8458f6a7451 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVPHOtoV.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2004 Cornell +// +// Module: EvtGen/EvtVPHOtoV.hh +// +// Description: +// +// Modification history: +// +// Ryd March 9, 2004 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVPHOTOV_HH +#define EVTVPHOTOV_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtVPHOtoV:public EvtDecayAmp { + +public: + + EvtVPHOtoV() {} + virtual ~EvtVPHOtoV(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtVPHOtoVISR.cxx b/TEvtGen/EvtGenModels/EvtVPHOtoVISR.cxx new file mode 100644 index 00000000000..b80d1089bcc --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVPHOtoVISR.cxx @@ -0,0 +1,194 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2004 Cornell +// +// Module: EvtVPHOtoVISR.cc +// +// Description: Routine to decay vpho -> vector ISR photon +// +// Modification history: +// +// Ryd March 20, 2004 Module created +// +//------------------------------------------------------------------------ +// +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenModels/EvtVPHOtoVISR.hh" +#include + +EvtVPHOtoVISR::~EvtVPHOtoVISR() {} + +std::string EvtVPHOtoVISR::getName(){ + + return "VPHOTOVISR"; + +} + + +EvtDecayBase* EvtVPHOtoVISR::clone(){ + + return new EvtVPHOtoVISR; + +} + +void EvtVPHOtoVISR::init(){ + + // check that there are 0 or 2 arguments + checkNArg(0,2); + + // check that there are 2 daughters + checkNDaug(2); + + // check the parent and daughter spins + checkSpinParent(EvtSpinType::VECTOR); + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::PHOTON); +} + +void EvtVPHOtoVISR::initProbMax() { + + //setProbMax(100000.0); + +} + +void EvtVPHOtoVISR::decay( EvtParticle *p){ + + //take photon along z-axis, either forward or backward. + //Implement this as generating the photon momentum along + //the z-axis uniformly + + double w=p->mass(); + double s=w*w; + + double L=2.0*log(w/0.000511); + double alpha=1/137.0; + double beta=(L-1)*2.0*alpha/EvtConst::pi; + + //This uses the fact that there is a daughter of the + //psi(3770) + assert(p->getDaug(0)->getDaug(0)!=0); + double md=EvtPDL::getMeanMass(p->getDaug(0)->getDaug(0)->getId()); + + static double mD0=EvtPDL::getMeanMass(EvtPDL::getId("D0")); + static double mDp=EvtPDL::getMeanMass(EvtPDL::getId("D+")); + + double pgmax=(s-4.0*md*md)/(2.0*w); + + assert(pgmax>0.0); + + double pgz=0.99*pgmax*exp(log(EvtRandom::Flat(1.0))/beta); + + if (EvtRandom::Flat(1.0)<0.5) pgz=-pgz; + + double k=fabs(pgz); + + EvtVector4R p4g(k,0.0,0.0,pgz); + + EvtVector4R p4res=p->getP4Restframe()-p4g; + + double mres=p4res.mass(); + + double ed=mres/2.0; + + assert(ed>md); + + double pd=sqrt(ed*ed-md*md); + + + //std::cout << "k, mres, w, md, ed, pd:"<getDaug(0)->init(getDaug(0),p4res); + p->getDaug(1)->init(getDaug(1),p4g); + + + double sigma=beta*pow(2/w,beta)*(1+alpha*(1.5*L-2.0+EvtConst::pi*EvtConst::pi/3.0)/EvtConst::pi); + + double m=EvtPDL::getMeanMass(p->getDaug(0)->getId()); + double Gamma=EvtPDL::getWidth(p->getDaug(0)->getId()); + + //mres is the energy of the psi(3770) + + double p0=0.0; + if (ed>mD0) p0=sqrt(ed*ed-mD0*mD0); + double pp=0.0; + if (ed>mDp) pp=sqrt(ed*ed-mDp*mDp); + + double p0norm=sqrt(0.25*m*m-mD0*mD0); + double ppnorm=sqrt(0.25*m*m-mDp*mDp); + + double r0=12.7; + double rp=12.7; + + if (getNArg()==2){ + r0=getArg(0); + rp=getArg(1); + } + + double GammaTot=Gamma*(pp*pp*pp/(1+pp*pp*rp*rp)+p0*p0*p0/(1+p0*p0*r0*r0))/ + (ppnorm*ppnorm*ppnorm/(1+ppnorm*ppnorm*rp*rp)+ + p0norm*p0norm*p0norm/(1+p0norm*p0norm*r0*r0)); + + + sigma*=pd*pd*pd/((mres-m)*(mres-m)+0.25*GammaTot*GammaTot); + + assert(sigma>0.0); + + static double sigmax=sigma; + + if (sigma>sigmax){ + sigmax=sigma; + } + + + + static int count=0; + + count++; + + //if (count%10000==0){ + // std::cout << "sigma :"<eps(0)*p->epsParent(0).conj()); + vertex(1,0,0,norm*p->eps(1)*p->epsParent(0).conj()); + vertex(2,0,0,norm*p->eps(2)*p->epsParent(0).conj()); + + vertex(0,1,0,norm*p->eps(0)*p->epsParent(1).conj()); + vertex(1,1,0,norm*p->eps(1)*p->epsParent(1).conj()); + vertex(2,1,0,norm*p->eps(2)*p->epsParent(1).conj()); + + vertex(0,2,0,norm*p->eps(0)*p->epsParent(2).conj()); + vertex(1,2,0,norm*p->eps(1)*p->epsParent(2).conj()); + vertex(2,2,0,norm*p->eps(2)*p->epsParent(2).conj()); + + vertex(0,0,1,norm*p->eps(0)*p->epsParent(0).conj()); + vertex(1,0,1,norm*p->eps(1)*p->epsParent(0).conj()); + vertex(2,0,1,norm*p->eps(2)*p->epsParent(0).conj()); + + vertex(0,1,1,norm*p->eps(0)*p->epsParent(1).conj()); + vertex(1,1,1,norm*p->eps(1)*p->epsParent(1).conj()); + vertex(2,1,1,norm*p->eps(2)*p->epsParent(1).conj()); + + vertex(0,2,1,norm*p->eps(0)*p->epsParent(2).conj()); + vertex(1,2,1,norm*p->eps(1)*p->epsParent(2).conj()); + vertex(2,2,1,norm*p->eps(2)*p->epsParent(2).conj()); + + return; +} + diff --git a/TEvtGen/EvtGenModels/EvtVPHOtoVISR.hh b/TEvtGen/EvtGenModels/EvtVPHOtoVISR.hh new file mode 100644 index 00000000000..42f3148b370 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVPHOtoVISR.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2004 Cornell +// +// Module: EvtGen/EvtVPHOtoVISR.hh +// +// Description: +// +// Modification history: +// +// Ryd March 20, 2004 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVPHOTOVISR_HH +#define EVTVPHOTOVISR_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtVPHOtoVISR:public EvtDecayAmp { + +public: + + EvtVPHOtoVISR() {} + virtual ~EvtVPHOtoVISR(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtVPHOtoVISRHi.cxx b/TEvtGen/EvtGenModels/EvtVPHOtoVISRHi.cxx new file mode 100644 index 00000000000..badc3f66f3f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVPHOtoVISRHi.cxx @@ -0,0 +1,325 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2004 Cornell +// +// Module: EvtVPHOtoVISR.cc +// +// Description: Routine to decay vpho -> (DDx) + ISR photon from 3.9 to 4.3 GeV, using CLEO-c data (Brian Lang) +// +// Modification history: +// +// Ryd March 20, 2004 Module created +// +//------------------------------------------------------------------------ +// +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenModels/EvtVPHOtoVISRHi.hh" +#include + +using std::endl; + +EvtVPHOtoVISRHi::~EvtVPHOtoVISRHi() {} + +std::string EvtVPHOtoVISRHi::getName(){ + + return "VPHOTOVISRHI"; + +} + + +EvtDecayBase* EvtVPHOtoVISRHi::clone(){ + + return new EvtVPHOtoVISRHi; + +} + +void EvtVPHOtoVISRHi::init(){ + + // check that there are 0 or 1 arguments + checkNArg(0,1); + + // check that there are 2 daughters + checkNDaug(2); + + // check the parent and daughter spins + checkSpinParent(EvtSpinType::VECTOR); + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::PHOTON); +} + +void EvtVPHOtoVISRHi::initProbMax() { + + setProbMax(20.0); + +} + +void EvtVPHOtoVISRHi::decay( EvtParticle *p){ + //take photon along z-axis, either forward or backward. + //Implement this as generating the photon momentum along + //the z-axis uniformly + double power=1; + if (getNArg()==1) power=getArg(0); + // define particle names + static EvtId D0=EvtPDL::getId("D0"); + static EvtId D0B=EvtPDL::getId("anti-D0"); + static EvtId DP=EvtPDL::getId("D+"); + static EvtId DM=EvtPDL::getId("D-"); + static EvtId DSM=EvtPDL::getId("D_s-"); + static EvtId DSP=EvtPDL::getId("D_s+"); + static EvtId DSMS=EvtPDL::getId("D_s*-"); + static EvtId DSPS=EvtPDL::getId("D_s*+"); + static EvtId D0S=EvtPDL::getId("D*0"); + static EvtId D0BS=EvtPDL::getId("anti-D*0"); + static EvtId DPS=EvtPDL::getId("D*+"); + static EvtId DMS=EvtPDL::getId("D*-"); + // setup some parameters + double w=p->mass(); + double s=w*w; + double L=2.0*log(w/0.000511); + double alpha=1/137.0; + double beta=(L-1)*2.0*alpha/EvtConst::pi; + // make sure only 2 or 3 body are present + assert (p->getDaug(0)->getNDaug() == 2 || p->getDaug(0)->getNDaug() == 3); + + // determine minimum rest mass of parent + double md1 = EvtPDL::getMeanMass(p->getDaug(0)->getDaug(0)->getId()); + double md2 = EvtPDL::getMeanMass(p->getDaug(0)->getDaug(1)->getId()); + double minResMass = md1+md2; + if (p->getDaug(0)->getNDaug() == 3) { + double md3 = EvtPDL::getMeanMass(p->getDaug(0)->getDaug(2)->getId()); + minResMass = minResMass + md3; + } + + // calculate the maximum energy of the ISR photon + double pgmax=(s-minResMass*minResMass)/(2.0*w); + double pgz=0.99*pgmax*exp(log(EvtRandom::Flat(1.0))/(beta*power)); + if (EvtRandom::Flat(1.0)<0.5) pgz=-pgz; + + double k=fabs(pgz); + // print of ISR energy + // std::cout << "Energy ISR :"<< k <getP4Restframe()-p4g; + + double mres=p4res.mass(); + + // set masses + p->getDaug(0)->init(getDaug(0),p4res); + p->getDaug(1)->init(getDaug(1),p4g); + + + // determine XS - langbw + // very crude way of determining XS just a simple straight line Approx. + // this was determined by eye. + // lots of cout statements to make plots to check that things are working as expected + double sigma=9.0; + if (mres<=3.9) sigma = 0.00001; + + bool sigmacomputed(false); + + // DETERMINE XS FOR D*D* + if (p->getDaug(0)->getNDaug() == 2 + &&((p->getDaug(0)->getDaug(0)->getId()==D0S + && p->getDaug(0)->getDaug(1)->getId()==D0BS) + ||(p->getDaug(0)->getDaug(0)->getId()==DPS + && p->getDaug(0)->getDaug(1)->getId()==DMS))){ + if(mres>4.18) { + sigma*=5./9.*(1.-1.*sqrt((4.18-mres)*(4.18-mres))/(4.3-4.18)); + } + else if(mres>4.07 && mres<=4.18) { + sigma*=5./9.; + } + else if (mres<=4.07&&mres>4.03) + { + sigma*=(5./9. - 1.5/9.*sqrt((4.07-mres)*(4.07-mres))/(4.07-4.03)); + } + else if (mres<=4.03&& mres>=4.013) + { + sigma*=(3.5/9. - 3.5/9.*sqrt((4.03-mres)*(4.03-mres))/(4.03-4.013)); + } + else{ + sigma=0.00001; + } + sigmacomputed = true; +// std::cout << "DSDSXS "<getDaug(0)->getNDaug() == 2 && ((p->getDaug(0)->getDaug(0)->getId()==D0S + && p->getDaug(0)->getDaug(1)->getId()==D0B) + ||(p->getDaug(0)->getDaug(0)->getId()==DPS + && p->getDaug(0)->getDaug(1)->getId()==DM) + ||(p->getDaug(0)->getDaug(0)->getId()==D0BS + && p->getDaug(0)->getDaug(1)->getId()==D0) + ||(p->getDaug(0)->getDaug(0)->getId()==DMS + && p->getDaug(0)->getDaug(1)->getId()==DP)) ) + { + if(mres>=4.2){ + sigma*=1.5/9.; + } + else if( mres>4.06 && mres<4.2){ + sigma*=((1.5/9.+2.5/9.*sqrt((4.2-mres)*(4.2-mres))/(4.2-4.06))); + } + else if(mres>=4.015 && mres<4.06){ + sigma*=((4./9.+3./9.*sqrt((4.06-mres)*(4.06-mres))/(4.06-4.015))); + } + else if (mres<4.015 && mres>=3.9){ + sigma*=((7./9.-7/9.*sqrt((4.015-mres)*(4.015-mres))/(4.015-3.9))); + } + else { + sigma = 0.00001; + } + sigmacomputed = true; +// std::cout << "DSDXS "<getDaug(0)->getDaug(0)->getId()==DSPS && p->getDaug(0)->getDaug(1)->getId()==DSMS))) + { + if(mres>(2.112+2.112)){ + sigma=0.4; + } + else { +// sigma=0.4; +// sigma = 0 surely below Ds*Ds* threshold? - ponyisi + sigma=0.00001; + } + sigmacomputed = true; +// std::cout << "DsSDsSXS "<getDaug(0)->getNDaug() == 2 && ((p->getDaug(0)->getDaug(0)->getId()==DSPS + && p->getDaug(0)->getDaug(1)->getId()==DSM) + || (p->getDaug(0)->getDaug(0)->getId()==DSMS + && p->getDaug(0)->getDaug(1)->getId()==DSP))) + { + if(mres>4.26){ + sigma=0.05; + } + else if (mres>4.18 && mres<=4.26){ + sigma*=1./9.*(0.05+0.95*sqrt((4.26-mres)*(4.26-mres))/(4.26-4.18)); + } + else if (mres>4.16 && mres<=4.18){ + sigma*=1/9.; + } + else if (mres<=4.16 && mres>4.08){ + sigma*=1/9.*(1-sqrt((4.16-mres)*(4.16-mres))/(4.16-4.08)); + } + else if (mres<=(4.08)){ + sigma=0.00001; + } + sigmacomputed = true; +// std::cout << "DsSDsXS "<getDaug(0)->getNDaug() == 2 && ((p->getDaug(0)->getDaug(0)->getId()==D0 + && p->getDaug(0)->getDaug(1)->getId()==D0B) + ||(p->getDaug(0)->getDaug(0)->getId()==DP + && p->getDaug(0)->getDaug(1)->getId()==DM))){ + sigma*=0.4/9.; + sigmacomputed = true; +// std::cout << "DDXS "<getDaug(0)->getNDaug() == 2 && ((p->getDaug(0)->getDaug(0)->getId()==DSP && p->getDaug(0)->getDaug(1)->getId()==DSM))){ + sigma*=0.2/9.; + sigmacomputed = true; +// std::cout << "DsDsXS "<getDaug(0)->getNDaug() == 3){ + if(mres>4.03){ + sigma*=0.5/9.; + } + else { + sigma=0.00001; + } + sigmacomputed = true; +// std::cout << "DSDpiXS "<sigmax){ +// sigmax=sigma; +// } + + static int count=0; + + count++; + +// if (count%10000==0){ +// std::cout << "sigma :"<getDaug(0); + + + vertex(0,0,0,norm*p->eps(0)*p->epsParent(0).conj()); + vertex(1,0,0,norm*p->eps(1)*p->epsParent(0).conj()); + vertex(2,0,0,norm*p->eps(2)*p->epsParent(0).conj()); + + vertex(0,1,0,norm*p->eps(0)*p->epsParent(1).conj()); + vertex(1,1,0,norm*p->eps(1)*p->epsParent(1).conj()); + vertex(2,1,0,norm*p->eps(2)*p->epsParent(1).conj()); + + vertex(0,2,0,norm*p->eps(0)*p->epsParent(2).conj()); + vertex(1,2,0,norm*p->eps(1)*p->epsParent(2).conj()); + vertex(2,2,0,norm*p->eps(2)*p->epsParent(2).conj()); + + vertex(0,0,1,norm*p->eps(0)*p->epsParent(0).conj()); + vertex(1,0,1,norm*p->eps(1)*p->epsParent(0).conj()); + vertex(2,0,1,norm*p->eps(2)*p->epsParent(0).conj()); + + vertex(0,1,1,norm*p->eps(0)*p->epsParent(1).conj()); + vertex(1,1,1,norm*p->eps(1)*p->epsParent(1).conj()); + vertex(2,1,1,norm*p->eps(2)*p->epsParent(1).conj()); + + vertex(0,2,1,norm*p->eps(0)*p->epsParent(2).conj()); + vertex(1,2,1,norm*p->eps(1)*p->epsParent(2).conj()); + vertex(2,2,1,norm*p->eps(2)*p->epsParent(2).conj()); + + return; +} diff --git a/TEvtGen/EvtGenModels/EvtVPHOtoVISRHi.hh b/TEvtGen/EvtGenModels/EvtVPHOtoVISRHi.hh new file mode 100644 index 00000000000..5d2d67d532d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVPHOtoVISRHi.hh @@ -0,0 +1,45 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2004 Cornell +// +// Module: EvtGen/EvtVPHOtoVISRHi.hh +// +// Description: +// +// Modification history: +// +// Ryd March 20, 2004 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVPHOTOVISRHI_HH +#define EVTVPHOTOVISRHI_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include + +class EvtParticle; + +class EvtVPHOtoVISRHi:public EvtDecayAmp { + +public: + + EvtVPHOtoVISRHi() {} + virtual ~EvtVPHOtoVISRHi(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtVSPPwave.cxx b/TEvtGen/EvtGenModels/EvtVSPPwave.cxx new file mode 100644 index 00000000000..e734ee4f650 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVSPPwave.cxx @@ -0,0 +1,104 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVSPPwave.cc +// +// Description: Routine to decay vector-> scalar photon in P-wave +// +// Modification history: +// +// RYD November 24, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtVSPPwave.hh" +#include "EvtGenBase/EvtReport.hh" +#include +#include "EvtGenBase/EvtVector4C.hh" + +EvtVSPPwave::~EvtVSPPwave() {} + +std::string EvtVSPPwave::getName(){ + + return "VSP_PWAVE"; + +} + + +EvtDecayBase* EvtVSPPwave::clone(){ + + return new EvtVSPPwave; + +} + +void EvtVSPPwave::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(2); + + checkSpinParent(EvtSpinType::VECTOR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::PHOTON); + +} + +void EvtVSPPwave::initProbMax(){ + + setProbMax(1); +} + +void EvtVSPPwave::decay( EvtParticle *p){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *gamma; + gamma = p->getDaug(1); + + double m_p=p->mass(); + EvtVector4R momgamma = gamma->getP4(); + + //work in the parent ,p, rest frame. + EvtVector4R p4_p; + p4_p.set(m_p, 0.0, 0.0, 0.0 ); + + // Put phase space results into the daughters. + + EvtTensor4C tds; + + double norm=1/(m_p*momgamma.d3mag()); + + tds = dual(directProd(norm*p4_p,momgamma)); + + vertex(0,0,(tds.cont1( p->eps(0))).cont( + gamma->epsParentPhoton(0).conj() ) ); + vertex(0,1,(tds.cont1( p->eps(0))).cont( + gamma->epsParentPhoton(1).conj() ) ); + + vertex(1,0,(tds.cont1( p->eps(1))).cont( + gamma->epsParentPhoton(0).conj() ) ); + vertex(1,1,(tds.cont1( p->eps(1))).cont( + gamma->epsParentPhoton(1).conj() ) ); + + vertex(2,0,(tds.cont1( p->eps(2))).cont( + gamma->epsParentPhoton(0).conj() ) ); + vertex(2,1,(tds.cont1( p->eps(2))).cont( + gamma->epsParentPhoton(1).conj() ) ); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtVSPPwave.hh b/TEvtGen/EvtGenModels/EvtVSPPwave.hh new file mode 100644 index 00000000000..91669927aff --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVSPPwave.hh @@ -0,0 +1,46 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVSPPwave.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVSPPWAVE_HH +#define EVTVSPPWAVE_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtVSPPwave:public EvtDecayAmp { + +public: + + EvtVSPPwave() {} + virtual ~EvtVSPPwave(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +}; + +#endif + + diff --git a/TEvtGen/EvtGenModels/EvtVSS.cxx b/TEvtGen/EvtGenModels/EvtVSS.cxx new file mode 100644 index 00000000000..cebf62eada2 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVSS.cxx @@ -0,0 +1,79 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVSS.cc +// +// Description: Routine to decay vector-> scalar scalar +// +// Modification history: +// +// RYD November 24, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtVSS.hh" +#include + +EvtVSS::~EvtVSS() {} + +std::string EvtVSS::getName(){ + + return "VSS"; + +} + + +EvtDecayBase* EvtVSS::clone(){ + + return new EvtVSS; + +} + +void EvtVSS::init(){ + + // check that there are 0 arguments + checkNArg(0); + + // check that there are 2 daughters + checkNDaug(2); + + // check the parent and daughter spins + checkSpinParent(EvtSpinType::VECTOR); + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); +} + +void EvtVSS::initProbMax() { + + setProbMax(1.0); + +} + +void EvtVSS::decay( EvtParticle *p){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtVector4R pDaug = p->getDaug(0)->getP4(); + + double norm=1.0/pDaug.d3mag(); + + for (int i=0; i<3; i++) vertex(i,norm*pDaug*(p->eps(i))); + + return; +} + diff --git a/TEvtGen/EvtGenModels/EvtVSS.hh b/TEvtGen/EvtGenModels/EvtVSS.hh new file mode 100644 index 00000000000..a3ce024b2cc --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVSS.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVSS.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVSS_HH +#define EVTVSS_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtVSS:public EvtDecayAmp { + +public: + + EvtVSS() {} + virtual ~EvtVSS(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtVSSBMixCPT.cxx b/TEvtGen/EvtGenModels/EvtVSSBMixCPT.cxx new file mode 100644 index 00000000000..bd37a11a610 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVSSBMixCPT.cxx @@ -0,0 +1,309 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2002 INFN-Pisa +// +// Module: EvtVSSBMixCPT.cc +// +// Description: +// Routine to decay vector-> scalar scalar with coherent BB-like mixing +// including CPT effects +// Based on VSSBMIX +// +// Modification history: +// +// F. Sandrelli, Fernando M-V March 03, 2002 +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenModels/EvtVSSBMixCPT.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtRandom.hh" +using std::endl; + +EvtVSSBMixCPT::~EvtVSSBMixCPT() {} + +std::string EvtVSSBMixCPT::getName(){ + return "VSS_BMIX"; +} + + +EvtDecayBase* EvtVSSBMixCPT::clone(){ + return new EvtVSSBMixCPT; +} + +void EvtVSSBMixCPT::init(){ + + if ( getNArg()>4) checkNArg(14,12,8); + + if (getNArg()<1) { + report(ERROR,"EvtGen") << "EvtVSSBMix generator expected " + << " at least 1 argument (deltam) but found:"< 1 ) { + dgog=getArg(1); + _dGamma=dgog*gamma; + } + // q/p + _qoverp = EvtComplex(1.0,0.0); + if ( getNArg() > 2){ + _qoverp = EvtComplex(getArg(2),0.0); + } + if ( getNArg() > 3) { + _qoverp = getArg(2)*EvtComplex(cos(getArg(3)),sin(getArg(3))); + } + _poverq=1.0/_qoverp; + + // decay amplitudes + _A_f=EvtComplex(1.0,0.0); + _Abar_f=EvtComplex(0.0,0.0); + _A_fbar=_Abar_f; // CPT conservation + _Abar_fbar=_A_f; // CPT conservation + if ( getNArg() > 4){ + _A_f=getArg(4)*EvtComplex(cos(getArg(5)),sin(getArg(5))); // this allows for DCSD + _Abar_f=getArg(6)*EvtComplex(cos(getArg(7)),sin(getArg(7))); // this allows for DCSD + if ( getNArg() > 8 ){ + // CPT violation in decay + _A_fbar=getArg(8)*EvtComplex(cos(getArg(9)),sin(getArg(9))); + _Abar_fbar=getArg(10)*EvtComplex(cos(getArg(11)),sin(getArg(11))); + } else { + // CPT conservation in decay + _A_fbar=_Abar_f; + _Abar_fbar=_A_f; + } + } + + // CPT violation in mixing + _z = EvtComplex(0.0,0.0); + if ( getNArg() > 12 ){ + _z = EvtComplex(getArg(12),getArg(13)); + } + + + // some printout + double tau= 1e12*EvtPDL::getctau(getDaug(0))/EvtConst::c; // in ps + double dm= 1e-12*getArg(0); // B0/anti-B0 mass difference in hbar/ps + double x= dm*tau; + double y= dgog*0.5; //y=dgamma/(2*gamma) + double qop2 = abs(_qoverp*_qoverp); + _chib0_b0bar=qop2*(x*x+y*y)/(qop2*(x*x+y*y)+2+x*x-y*y); // does not include CPT in mixing + _chib0bar_b0=(1/qop2)*(x*x+y*y)/((1/qop2)*(x*x+y*y)+2+x*x-y*y); // does not include CPT in mixing + + if ( verbose() ) { + report(INFO,"EvtGen") << "VSS_BMIXCPT will generate mixing and CPT/CP effects in mixing:" + << endl << endl + << " " << EvtPDL::name(getParentId()).c_str() << " --> " + << EvtPDL::name(getDaug(0)).c_str() << " + " + << EvtPDL::name(getDaug(1)).c_str() << endl << endl + << "using parameters:" << endl << endl + << " delta(m) = " << dm << " hbar/ps" << endl + << " _freq = " << _freq << " hbar/mm" << endl + << " dgog = " << dgog <B0bar) = " << _chib0_b0bar << endl + << " chi(B0bar->B0) = " << _chib0bar_b0 << endl + << " Af = " << _A_f << endl + << " Abarf = " << _Abar_f << endl + << " Afbar = " << _A_fbar << endl + << " Abarfbar = " << _Abar_fbar << endl + << endl; + } +} + +void EvtVSSBMixCPT::initProbMax(){ + // this value is ok for reasonable values of all the parameters + setProbMax(4.0); +} + +void EvtVSSBMixCPT::decay( EvtParticle *p ){ + + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + // generate a final state according to phase space + + double rndm= EvtRandom::random(); + + if ( getNDaug()==4) { + EvtId tempDaug[2]; + + if ( rndm < 0.5 ) { tempDaug[0]=getDaug(0); tempDaug[1]=getDaug(3); } + else{ tempDaug[0]=getDaug(2); tempDaug[1]=getDaug(1); } + + p->initializePhaseSpace(2,tempDaug); + } + else{ //nominal case. + p->initializePhaseSpace(2,getDaugs()); + } + + EvtParticle *s1,*s2; + + s1 = p->getDaug(0); + s2 = p->getDaug(1); + //delete any daughters - if there are daughters, they + //are from the initialization and will be redone later + if ( s1->getNDaug() > 0 ) { s1->deleteDaughters();} + if ( s2->getNDaug() > 0 ) { s2->deleteDaughters();} + + EvtVector4R p1= s1->getP4(); + EvtVector4R p2= s2->getP4(); + + // throw a random number to decide if this final state should be mixed + rndm= EvtRandom::random(); + int mixed= (rndm < 0.5) ? 1 : 0; + + // if this decay is mixed, choose one of the 2 possible final states + // with equal probability (re-using the same random number) + if(mixed==1) { + EvtId mixedId= (rndm < 0.25) ? getDaug(0) : getDaug(1); + EvtId mixedId2= mixedId; + if (getNDaug()==4&&rndm<0.25) mixedId2=getDaug(2); + if (getNDaug()==4&&rndm>0.25) mixedId2=getDaug(3); + s1->init(mixedId, p1); + s2->init(mixedId2, p2); + } + + + // if this decay is unmixed, choose one of the 2 possible final states + // with equal probability (re-using the same random number) + if(mixed==0) { + EvtId unmixedId = (rndm < 0.75) ? getDaug(0) : getDaug(1); + EvtId unmixedId2= (rndm < 0.75) ? getDaug(1) : getDaug(0); + if (getNDaug()==4&&rndm<0.75) unmixedId2=getDaug(3); + if (getNDaug()==4&&rndm>0.75) unmixedId2=getDaug(2); + s1->init(unmixedId, p1); + s2->init(unmixedId2, p2); + } + + // choose a decay time for each final state particle using the + // lifetime (which must be the same for both particles) in pdt.table + // and calculate the lifetime difference for this event + s1->setLifetime(); + s2->setLifetime(); + double dct= s1->getLifetime() - s2->getLifetime(); // in mm + + // Convention: _dGamma=GammaLight-GammaHeavy + EvtComplex exp1(-0.25*_dGamma*dct,0.5*_freq*dct); + + /* + //Find the flavor of the B that decayed first. + EvtId firstDec = (dct > 0 ) ? s2->getId() : s1->getId(); + + //This tags the flavor of the other particle at that time. + EvtId stateAtDeltaTeq0 = ( firstDec==B0 ) ? B0B : B0; + */ + EvtId stateAtDeltaTeq0 = (s2->getId()==B0) ? B0B : B0; + + // calculate the oscillation amplitude, based on wether this event is mixed or not + EvtComplex osc_amp; + + //define some useful functions: (see BAD #188 eq. 39 for ref.) + EvtComplex gp=0.5*(exp(-1.0*exp1)+exp(exp1)); + EvtComplex gm=0.5*(exp(-1.0*exp1)-exp(exp1)); + EvtComplex sqz=sqrt(abs(1-_z*_z))*exp(EvtComplex(0,arg(1-_z*_z)/2)); + + EvtComplex BB=gp+_z*gm; // + EvtComplex barBB=-sqz*_qoverp*gm; // + EvtComplex BbarB=-sqz*_poverq*gm; // + EvtComplex barBbarB=gp-_z*gm; // + + // + if ( !mixed&&stateAtDeltaTeq0==B0 ) { + osc_amp= BB*_A_f+barBB*_Abar_f; + } + if ( !mixed&&stateAtDeltaTeq0==B0B ) { + osc_amp= barBbarB*_Abar_fbar+BbarB*_A_fbar; + } + + if ( mixed&&stateAtDeltaTeq0==B0 ) { + osc_amp=barBB*_Abar_fbar+BB*_A_fbar; + } + if ( mixed&&stateAtDeltaTeq0==B0B ) { + osc_amp=BbarB*_A_f+barBbarB*_Abar_f; + } + + // store the amplitudes for each parent spin basis state + double norm=1.0/p1.d3mag(); + vertex(0,norm*osc_amp*p1*(p->eps(0))); + vertex(1,norm*osc_amp*p1*(p->eps(1))); + vertex(2,norm*osc_amp*p1*(p->eps(2))); + + return ; +} + + + + + + + diff --git a/TEvtGen/EvtGenModels/EvtVSSBMixCPT.hh b/TEvtGen/EvtGenModels/EvtVSSBMixCPT.hh new file mode 100644 index 00000000000..68955a98193 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVSSBMixCPT.hh @@ -0,0 +1,61 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2002 INFN-Pisa +// +// Module: EvtGen/EvtVSSBMixCPT.hh +// +// Description: +// Routine to decay vector-> scalar scalar with coherent BB-like mixing +// including CPT effects +// Based on VSSBMIX +// +// Modification history: +// +// F. Sandrelli, Fernando M-V March 03, 2002 +// +//------------------------------------------------------------------------ + +#ifndef EVTVSSBMIXCPT_HH +#define EVTVSSBMIXCPT_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtComplex.hh" + +class EvtVSSBMixCPT : public EvtDecayAmp { +public: + EvtVSSBMixCPT() {} + virtual ~EvtVSSBMixCPT(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + + int nRealDaughters() {return 2;} +private: + double _freq; // mixing frequency in hbar/mm + double _dGamma; + EvtComplex _qoverp; + EvtComplex _poverq; + EvtComplex _z; + double _chib0_b0bar; + double _chib0bar_b0; + + EvtComplex _A_f; + EvtComplex _Abar_f; + + EvtComplex _A_fbar; + EvtComplex _Abar_fbar; + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtVSSMix.cxx b/TEvtGen/EvtGenModels/EvtVSSMix.cxx new file mode 100644 index 00000000000..092aa623a58 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVSSMix.cxx @@ -0,0 +1,110 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVSSMix.cc +// +// Description: Routine to decay vector-> scalar scalar +// +// Modification history: +// +// RYD November 24, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenModels/EvtVSSMix.hh" +#include "EvtGenBase/EvtId.hh" +#include +#include "EvtGenBase/EvtConst.hh" + +EvtVSSMix::~EvtVSSMix() {} + +std::string EvtVSSMix::getName(){ + + return "VSS_MIX"; + +} + + +EvtDecayBase* EvtVSSMix::clone(){ + + return new EvtVSSMix; + +} + +void EvtVSSMix::init(){ + + // check that there are 1 arguments + checkNArg(1); + checkNDaug(2); + + checkSpinParent(EvtSpinType::VECTOR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::SCALAR); + +} + +void EvtVSSMix::initProbMax(){ + + setProbMax(0.5); + +} + +void EvtVSSMix::decay( EvtParticle *p ){ + + //added by Lange Jan4,2000 + static EvtId B0=EvtPDL::getId("B0"); + static EvtId B0B=EvtPDL::getId("anti-B0"); + + p->initializePhaseSpace(getNDaug(),getDaugs()); + EvtParticle *s1,*s2; + s1 = p->getDaug(0); + s2 = p->getDaug(1); + EvtVector4R s1mom = s1->getP4(); + + double t1,t2,dm; + + s1->setLifetime(); + s2->setLifetime(); + + t1=s1->getLifetime(); + t2=s2->getLifetime(); + + //dm should probably be a parameter to this model. + + dm=getArg(0)/EvtConst::c; + + EvtId d1,d2; + + d1=s1->getId(); + d2=s2->getId(); + + double mix_amp=0.; + if (d1==B0&&d2==B0B) mix_amp=cos(0.5*dm*(t1-t2)); + if (d1==B0B&&d2==B0) mix_amp=cos(0.5*dm*(t1-t2)); + if (d1==B0&&d2==B0) mix_amp=sin(0.5*dm*(t1-t2)); + if (d1==B0B&&d2==B0B) mix_amp=sin(0.5*dm*(t1-t2)); + + double norm=1.0/s1mom.d3mag(); + + vertex(0,norm*mix_amp*s1mom*(p->eps(0))); + vertex(1,norm*mix_amp*s1mom*(p->eps(1))); + vertex(2,norm*mix_amp*s1mom*(p->eps(2))); + + return ; +} + diff --git a/TEvtGen/EvtGenModels/EvtVSSMix.hh b/TEvtGen/EvtGenModels/EvtVSSMix.hh new file mode 100644 index 00000000000..0747a8fd4dd --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVSSMix.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVSSMix.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVSSMIX_HH +#define EVTVSSMIX_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtVSSMix:public EvtDecayAmp { + +public: + + EvtVSSMix() {} + virtual ~EvtVSSMix(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtVVP.cxx b/TEvtGen/EvtGenModels/EvtVVP.cxx new file mode 100644 index 00000000000..bb51ce8ef5d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVVP.cxx @@ -0,0 +1,103 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVVP.cc +// +// Description: The decay Vector -> Vector gamma +// E.g., CHI1->PSI GAMMA +// +// Modification history: +// +// RYD September 5, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtVector3C.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenModels/EvtVVP.hh" +#include "EvtGenBase/EvtReport.hh" + +EvtVVP::~EvtVVP() {} + +std::string EvtVVP::getName(){ + + return "VVP"; + +} + + +EvtDecayBase* EvtVVP::clone(){ + + return new EvtVVP; + +} + +void EvtVVP::init(){ + + // check that there are 8 arguments + + checkNArg(8); + checkNDaug(2); + + checkSpinParent(EvtSpinType::VECTOR); + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::PHOTON); +} + +void EvtVVP::initProbMax(){ + + setProbMax(4.0); + +} + +void EvtVVP::decay(EvtParticle *p){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *v,*ph; + + v = p->getDaug(0); + ph = p->getDaug(1); + + EvtVector3C epsp[3]; + EvtVector3C epsv[3]; + EvtVector3C epsph[2]; + + epsp[0]=p->eps(0).vec(); + epsp[1]=p->eps(1).vec(); + epsp[2]=p->eps(2).vec(); + + epsv[0]=v->eps(0).vec().conj(); + epsv[1]=v->eps(1).vec().conj(); + epsv[2]=v->eps(2).vec().conj(); + + epsph[0]=ph->epsParentPhoton(0).vec().conj(); + epsph[1]=ph->epsParentPhoton(1).vec().conj(); + + int i,j,k; + for(i=0;i<3;i++){ + for(j=0;j<3;j++){ + for(k=0;k<2;k++){ + vertex(i,j,k,epsp[i].cross(epsv[j])*epsph[k]); + } + } + } + + return; + +} + diff --git a/TEvtGen/EvtGenModels/EvtVVP.hh b/TEvtGen/EvtGenModels/EvtVVP.hh new file mode 100644 index 00000000000..88f8929718a --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVVP.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVVP.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVVP_HH +#define EVTVVP_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtVVP:public EvtDecayAmp { + +public: + + EvtVVP() {} + virtual ~EvtVVP(); + + std::string getName(); + EvtDecayBase* clone(); + + void initProbMax(); + void init(); + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtVVPIPI_WEIGHTED.cxx b/TEvtGen/EvtGenModels/EvtVVPIPI_WEIGHTED.cxx new file mode 100644 index 00000000000..b8279384b1e --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVVPIPI_WEIGHTED.cxx @@ -0,0 +1,135 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVVSPwave.cc +// +// Description: Routine to decay vector-> vector pi pi where the +// decay is S-wave dominated. +// +// Modification history: +// +// Jim Hunt June 4, 2008 Module Created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtVVPIPI_WEIGHTED.hh" +#include +using std::endl; + +EvtVVPIPI_WEIGHTED::~EvtVVPIPI_WEIGHTED() {} + +std::string EvtVVPIPI_WEIGHTED::getName(){ + + return "VVPIPI_WEIGHTED"; + +} + + +EvtDecayBase* EvtVVPIPI_WEIGHTED::clone(){ + + return new EvtVVPIPI_WEIGHTED; + +} + +void EvtVVPIPI_WEIGHTED::init(){ + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(3); + + checkSpinParent(EvtSpinType::VECTOR); + checkSpinDaughter(0,EvtSpinType::VECTOR); + + + + if ((!(getDaug(1)==PIP&&getDaug(2)==PIM))&& + (!(getDaug(1)==PI0&&getDaug(2)==PI0))) { + report(ERROR,"EvtGen") << "EvtVVPIPI_WEIGHTED generator expected " + << " pi+ and pi- (or pi0 and pi0) " + << "as 2nd and 3rd daughter. "<initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *jpsi,*pi1,*pi2; + + jpsi=psi_prime->getDaug(0); + pi1=psi_prime->getDaug(1); + pi2=psi_prime->getDaug(2); + +// Put phase space results into the daughters. + + EvtVector4C ep0,ep1,ep2; + + ep0=psi_prime->eps(0); + ep1=psi_prime->eps(1); + ep2=psi_prime->eps(2); + + EvtVector4C e0,e1,e2; + + e0 = jpsi->epsParent(0); + e1 = jpsi->epsParent(1); + e2 = jpsi->epsParent(2); + + double mass2 = (pi1->getP4()+pi2->getP4()).mass2(); + + double fac = mass2-4*pi1->mass()*pi2->mass(); + + fac *= reweight_event(sqrt(mass2)); + + vertex(0,0,fac*(ep0*e0.conj())); + vertex(0,1,fac*(ep0*e1.conj())); + vertex(0,2,fac*(ep0*e2.conj())); + + vertex(1,0,fac*(ep1*e0.conj())); + vertex(1,1,fac*(ep1*e1.conj())); + vertex(1,2,fac*(ep1*e2.conj())); + + vertex(2,0,fac*(ep2*e0.conj())); + vertex(2,1,fac*(ep2*e1.conj())); + vertex(2,2,fac*(ep2*e2.conj())); + + return ; + +} + diff --git a/TEvtGen/EvtGenModels/EvtVVPIPI_WEIGHTED.hh b/TEvtGen/EvtGenModels/EvtVVPIPI_WEIGHTED.hh new file mode 100644 index 00000000000..e94d789de27 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVVPIPI_WEIGHTED.hh @@ -0,0 +1,46 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVVpipi.hh +// +// Description: For decays of a vector to a vector and 2 pions, +// the decay is assumed to be dominated by S-wave. +// +// Modification history: +// +// Jim Hunt June 4, 2008 Module Created +// +//------------------------------------------------------------------------ + +#ifndef EVTVVPIPI_WEIGHTED_HH +#define EVTVVPIPI_WEIGHTED_HH + +#include "EvtGenBase/EvtDecayAmp.hh" +#include + +class EvtParticle; + +class EvtVVPIPI_WEIGHTED:public EvtDecayAmp { + +public: + + EvtVVPIPI_WEIGHTED() {} + virtual ~EvtVVPIPI_WEIGHTED(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtVVSPwave.cxx b/TEvtGen/EvtGenModels/EvtVVSPwave.cxx new file mode 100644 index 00000000000..ebdeb0790be --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVVSPwave.cxx @@ -0,0 +1,114 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVVSPwave.cc +// +// Description: Routine to decay vector-> vector scalar in Partial-wave +// Routine to decay a vector into a vector and scalar. Started +// by ryd on Aug 20, 1996. +// +// Modification history: +// +// RYD November 24, 1996 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtVVSPwave.hh" +#include +using std::endl; + +EvtVVSPwave::~EvtVVSPwave() {} + +std::string EvtVVSPwave::getName(){ + + return "VVS_PWAVE"; + +} + + +EvtDecayBase* EvtVVSPwave::clone(){ + + return new EvtVVSPwave; + +} + +void EvtVVSPwave::init(){ + + // check that there are 6 arguments + checkNArg(6); + checkNDaug(2); + + checkSpinParent(EvtSpinType::VECTOR); + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::SCALAR); +} + +void EvtVVSPwave::initProbMax() { + + //probmax is 1.0 for all possible decays I think! + + setProbMax(1.0); + +} + +void EvtVVSPwave::decay( EvtParticle *p){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtComplex as(getArg(0)*cos(getArg(1)),getArg(0)*sin(getArg(1))); + EvtComplex ap(getArg(2)*cos(getArg(3)),getArg(2)*sin(getArg(3))); + EvtComplex ad(getArg(4)*cos(getArg(5)),getArg(4)*sin(getArg(5))); + + if (ap!=EvtComplex(0.0,0.0)) { + report(ERROR,"EvtGen") << "In EvtVectorToVectorScalar.cc"<getDaug(0); + s=p->getDaug(1); + + EvtTensor4C d,g; + + g.setdiag(1.0,-1.0,-1.0,-1.0); + + d=ad*((1.0/(v->getP4().d3mag()*v->getP4().d3mag()))*directProd(v->getP4(),v->getP4())+(1/3.0)*g)+ + as*g; + + EvtVector4C ep0,ep1,ep2; + + ep0=d.cont1(p->eps(0)); + ep1=d.cont1(p->eps(1)); + ep2=d.cont1(p->eps(2)); + + vertex(0,0,ep0.cont(v->eps(0).conj())); + vertex(0,1,ep0.cont(v->eps(1).conj())); + vertex(0,2,ep0.cont(v->eps(2).conj())); + + vertex(1,0,ep1.cont(v->eps(0).conj())); + vertex(1,1,ep1.cont(v->eps(1).conj())); + vertex(1,2,ep1.cont(v->eps(2).conj())); + + vertex(2,0,ep2.cont(v->eps(0).conj())); + vertex(2,1,ep2.cont(v->eps(1).conj())); + vertex(2,2,ep2.cont(v->eps(2).conj())); + + return ; + +} diff --git a/TEvtGen/EvtGenModels/EvtVVSPwave.hh b/TEvtGen/EvtGenModels/EvtVVSPwave.hh new file mode 100644 index 00000000000..af2d056e2b8 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVVSPwave.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVVSPwave.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVVSPWAVE_HH +#define EVTVVSPWAVE_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtVVSPwave:public EvtDecayAmp { + +public: + + EvtVVSPwave() {} + virtual ~EvtVVSPwave(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtVVpipi.cxx b/TEvtGen/EvtGenModels/EvtVVpipi.cxx new file mode 100644 index 00000000000..4b144a06d40 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVVpipi.cxx @@ -0,0 +1,120 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVVSPwave.cc +// +// Description: Routine to decay vector-> vector pi pi where the +// decay is S-wave dominated. +// +// Modification history: +// +// RYD December 11, 1999 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtVVpipi.hh" +#include +using std::endl; + +EvtVVpipi::~EvtVVpipi() {} + +std::string EvtVVpipi::getName(){ + + return "VVPIPI"; + +} + + +EvtDecayBase* EvtVVpipi::clone(){ + + return new EvtVVpipi; + +} + +void EvtVVpipi::init(){ + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(3); + + checkSpinParent(EvtSpinType::VECTOR); + checkSpinDaughter(0,EvtSpinType::VECTOR); + + + + if ((!(getDaug(1)==PIP&&getDaug(2)==PIM))&& + (!(getDaug(1)==PI0&&getDaug(2)==PI0))) { + report(ERROR,"EvtGen") << "EvtVVpipi generator expected " + << " pi+ and pi- (or pi0 and pi0) " + << "as 2nd and 3rd daughter. "<initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *v,*s1,*s2; + + v=p->getDaug(0); + s1=p->getDaug(1); + s2=p->getDaug(2); + +// Put phase space results into the daughters. + + EvtVector4C ep0,ep1,ep2; + + ep0=p->eps(0); + ep1=p->eps(1); + ep2=p->eps(2); + + double fac=(s1->getP4()+s2->getP4()).mass2()-4*s1->mass()*s2->mass(); + + vertex(0,0,fac*(ep0*v->epsParent(0).conj())); + vertex(0,1,fac*(ep0*v->epsParent(1).conj())); + vertex(0,2,fac*(ep0*v->epsParent(2).conj())); + + vertex(1,0,fac*(ep1*v->epsParent(0).conj())); + vertex(1,1,fac*(ep1*v->epsParent(1).conj())); + vertex(1,2,fac*(ep1*v->epsParent(2).conj())); + + vertex(2,0,fac*(ep2*v->epsParent(0).conj())); + vertex(2,1,fac*(ep2*v->epsParent(1).conj())); + vertex(2,2,fac*(ep2*v->epsParent(2).conj())); + + return ; + +} + + + + diff --git a/TEvtGen/EvtGenModels/EvtVVpipi.hh b/TEvtGen/EvtGenModels/EvtVVpipi.hh new file mode 100644 index 00000000000..25606470d45 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVVpipi.hh @@ -0,0 +1,46 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVVpipi.hh +// +// Description: For decays of a vector to a vector and 2 pions, +// the decay is assumed to be dominated by S-wave. +// +// Modification history: +// +// RYD/CAHN December 10, 1999 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVVPIPI_HH +#define EVTVVPIPI_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtVVpipi:public EvtDecayAmp { + +public: + + EvtVVpipi() {} + virtual ~EvtVVpipi(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtVectorIsr.cxx b/TEvtGen/EvtGenModels/EvtVectorIsr.cxx new file mode 100644 index 00000000000..40223d66f9f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVectorIsr.cxx @@ -0,0 +1,427 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVectorIsr.cc +// +// Description: +// This is a special decay model to generate e+e- -> phi gamma + soft gammas +// using soft collinear ISR calculation from AfkQed +// This is implemented as a decay of the VPHO. +// +// Modification history: +// +// Joe Izen Oct, 2005 Soft Colinear Photons (secondary ISR) ported from AfkQed +// Joe Izen Dec 16, 2002 Fix cos_theta distribution - prevents boom at cos_theta=+/-1 +// RYD/Adriano June 16, 1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include + +#include +#include +#include +#include + + +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPhotonParticle.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtAbsLineShape.hh" +#include "EvtGenModels/EvtVectorIsr.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtAbsLineShape.hh" +#include +#include "EvtGenBase/EvtVector4C.hh" + +EvtVectorIsr::~EvtVectorIsr() {} + +std::string EvtVectorIsr::getName(){ + + return "VECTORISR"; +} + +EvtDecayBase* EvtVectorIsr::clone(){ + + return new EvtVectorIsr; +} + +void EvtVectorIsr::init(){ + + // check that there are 2 arguments + + checkNDaug(2); + + checkSpinParent(EvtSpinType::VECTOR); + checkSpinDaughter(0,EvtSpinType::VECTOR); + checkSpinDaughter(1,EvtSpinType::PHOTON); + + int narg = getNArg(); + if ( narg > 4 ) checkNArg(4); + + csfrmn=1.; + csbkmn=1.; + fmax=1.2; + firstorder=false; + + if ( narg > 0 ) csfrmn=getArg(0); + if ( narg > 1 ) csbkmn=getArg(1); + if ( narg > 2 ) fmax=getArg(2); + if ( narg > 3 ) firstorder=true; +} + + +void EvtVectorIsr::initProbMax(){ + + noProbMax(); +} + +void EvtVectorIsr::decay( EvtParticle *p ){ + + //the elctron mass + double electMass=EvtPDL::getMeanMass(EvtPDL::getId("e-")); + + static EvtId gammaId=EvtPDL::getId("gamma"); + + EvtParticle *phi; + EvtParticle *gamma; + + //4-mom of the two colinear photons to the decay of the vphoton + EvtVector4R p4softg1(0.,0.,0.,0.); + EvtVector4R p4softg2(0.,0.,0.,0.); + + + //get pointers to the daughters set + //get masses/initial phase space - will overwrite the + //p4s below to get the kinematic distributions correct + p->initializePhaseSpace(getNDaug(),getDaugs()); + phi=p->getDaug(0); + gamma=p->getDaug(1); + + //Generate soft colinear photons and the electron and positron energies after emission. + //based on method of AfkQed and notes of Vladimir Druzhinin. + // + //function ckhrad(eb,q2m,r1,r2,e01,e02,f_col) + //eb: energy of incoming electrons in CM frame + //q2m: minimum invariant mass of the virtual photon after soft colinear photon emission + //returned arguments + //e01,e02: energies of e+ and e- after soft colinear photon emission + //fcol: weighting factor for Born cross section for use in an accept/reject test. + + + double wcm=p->mass(); + double eb=0.5*wcm; + + //TO guarantee the collinear photons are softer than the ISR photon, require q2m > m*wcm + double q2m=phi->mass()*wcm; + double f_col(0.); + double e01(0.); + double e02(0.); + double ebeam=eb; + double wcm_new = wcm; + double s_new = wcm*wcm; + + double fran = 1.; + double f = 0; + int m = 0; + double largest_f=0;//only used when determining max weight for this vector particle mass + + if (!firstorder){ + while (fran > f){ + m++; + + int n=0; + while (f_col == 0.){ + n++; + ckhrad(eb,q2m,e01,e02,f_col); + if (n > 10000){ + report(INFO,"EvtGen") << "EvtVectorIsr is having problems. Called ckhrad 10000 times.\n"; + assert(0); + } + } + + //Effective beam energy after soft photon emission (neglecting electron mass) + ebeam = sqrt(e01*e02); + wcm_new = 2*ebeam; + s_new = wcm_new*wcm_new; + + //The Vector mass should never be greater than wcm_new + if (phi->mass() > wcm_new){ + report(INFO,"EvtGen") << "EvtVectorIsr finds Vector mass="<mass()<<" > Weff=" << wcm_new<<". Should not happen\n"; + assert(0); + } + + //Determine Born cross section @ wcm_new for e+e- -> gamma V. We aren't interested in the absolute normalization + //Just the functional dependence. Assuming a narrow resonance when determining cs_Born + double cs_Born = 1.; + if (EvtPDL::getMaxRange(phi->getId()) > 0.) { + double x0 = 1 - EvtPDL::getMeanMass(phi->getId())*EvtPDL::getMeanMass(phi->getId())/s_new; + + //L = log(s/(electMass*electMass) + double L = 2.*log(wcm_new/electMass); + + // W(x0) is actually 2*alpha/pi times the following + double W = (L-1.)*(1. - x0 +0.5*x0*x0); + + //Born cross section is actually 12*pi*pi*Gammaee/EvtPDL::getMeanMass(phi->getId()) times the following + //(we'd need the full W(x0) as well) + cs_Born = W/s_new; + } + + f = cs_Born*f_col; + + //if fmax was set properly, f should NEVER be larger than fmax + if (f > fmax && fmax > 0.){ + report(INFO,"EvtGen") << "EvtVectorIsr finds a problem with fmax, the maximum weight setting\n" + << "fmax is the third decay argument in the .dec file. VectorIsr attempts to set it reasonably if it wasn't provided\n" + << "To determine a more appropriate value, build GeneratorQAApp, and set the third argument for this decay <0.\n" + << "If you haven't been providing the first 2 arguments, set them to be 1. 1.). The program will report\n" + << "the largest weight it finds. You should set fmax to be slightly larger.\n" + << "Alternatively try the following values for various vector particles: " + << "phi->1.15 J/psi-psi(4415)->0.105\n" + << "The current value of f and fmax for " << EvtPDL::name(phi->getId()) << " are " << f << " " << fmax << "\n" + << "Will now assert\n"; + assert(0); + } + + + if (fmax > 0.) { + fran = fmax*EvtRandom::Flat(0.0,1.0); + } + + else { + //determine max weight for this vector particle mass + if (f>largest_f) { + largest_f = f; + report(INFO,"EvtGen") << m << " " << EvtPDL::name(phi->getId()) << " " + << "vector_mass " + << " " << EvtPDL::getMeanMass(phi->getId()) << " fmax should be at least " << largest_f + << ". f_col cs_B = " << f_col << " " << cs_Born + << std::endl; + } + if (m%10000 == 0) { + report(INFO,"EvtGen") << m << " " << EvtPDL::name(phi->getId()) << " " + << "vector_mass " + << " " << EvtPDL::getMeanMass(phi->getId()) << " fmax should be at least " << largest_f + << ". f_col cs_B = " << f_col << " " << cs_Born + << std::endl; + } + + f_col = 0.; + f = 0.; + //determine max weight for this vector particle mass + } + + if (m > 100000){ + + if (fmax > 0.) report(INFO,"EvtGen") << "EvtVectorIsr is having problems. Check the fmax value - the 3rd argument in the .dec file\n" + << "Recommended values for various vector particles: " + << "phi->1.15 J/psi-psi(4415)->0.105 " + << "Upsilon(1S,2S,3S)->0.14\n"; + assert(0); + } + }//while (fran > f) + + }//if (firstorder) + + //Compute parameters for boost to/from the system after colinear radiation + + double bet_l; + double gam_l; + double betgam_l; + + double csfrmn_new; + double csbkmn_new; + + if (firstorder){ + bet_l = 0.; + gam_l = 1.; + betgam_l = 0.; + csfrmn_new = csfrmn; + csbkmn_new = csbkmn; + } else { + double xx = e02/e01; + double sq_xx = sqrt(xx); + bet_l = (1.-xx)/(1.+xx); + gam_l = (1.+xx)/(2.*sq_xx); + betgam_l = (1.-xx)/(2.*sq_xx); + + //Boost photon cos_theta limits in lab to limits in the system after colinear rad + csfrmn_new=(csfrmn - bet_l)/(1. - bet_l*csfrmn); + csbkmn_new=(csbkmn - bet_l)/(1. - bet_l*csbkmn); + } + +// //generate kinematics according to Bonneau-Martin article +// //Nucl. Phys. B27 (1971) 381-397 + + // For backward compatibility with .dec files before SP5, the backward cos limit for + //the ISR photon is actually given as *minus* the actual limit. Sorry, this wouldn't be + //my choice. -Joe + + //gamma momentum in the vpho restframe *after* soft colinear radiation + double pg = (s_new - phi->mass()*phi->mass())/(2.*wcm_new); + + + //calculate the beta of incoming electrons after colinear rad in the frame where e= and e- have equal momentum + double beta=electMass/ebeam; //electMass/Ebeam = 1/gamma + beta=sqrt(1. - beta*beta); //sqrt (1 - (1/gamma)**2) + + double ymax=log((1.+beta*csfrmn_new)/(1.-beta*csfrmn_new)); + double ymin=log((1.-beta*csbkmn_new)/(1.+beta*csbkmn_new)); + + // photon theta distributed as 2*beta/(1-beta**2*cos(theta)**2) + double y=(ymax-ymin)*EvtRandom::Flat(0.0,1.0) + ymin; + double cs=exp(y); + cs=(cs - 1.)/(cs + 1.)/beta; + double sn=sqrt(1-cs*cs); + + double fi=EvtRandom::Flat(EvtConst::twoPi); + + //four-vector for the phi + double phi_p0 = sqrt(phi->mass()*phi->mass()+pg*pg); + double phi_p3 = -pg*cs; + + + //boost back to frame before colinear radiation. + EvtVector4R p4phi(gam_l*phi_p0 + betgam_l*phi_p3, + -pg*sn*cos(fi), + -pg*sn*sin(fi), + betgam_l*phi_p0 + gam_l*phi_p3); + + double isr_p0 = pg; + double isr_p3 = -phi_p3; + EvtVector4R p4gamma(gam_l*isr_p0 + betgam_l*isr_p3, + -p4phi.get(1), + -p4phi.get(2), + betgam_l*isr_p0 + gam_l*isr_p3); + + + //four-vectors of the collinear photons + if (!firstorder) { + p4softg1.set(0, eb-e02); p4softg1.set(3, e02-eb); + p4softg2.set(0, eb-e01); p4softg2.set(3, eb-e01); + } + + //save momenta for particles + phi->init( getDaug(0),p4phi); + gamma->init( getDaug(1),p4gamma); + + + //add the two colinear photons as vphoton daughters + EvtPhotonParticle *softg1=new EvtPhotonParticle;; + EvtPhotonParticle *softg2=new EvtPhotonParticle;; + softg1->init(gammaId,p4softg1); + softg2->init(gammaId,p4softg2); + softg1->addDaug(p); + softg2->addDaug(p); + + //try setting the spin density matrix of the phi + //get polarization vector for phi in its parents restframe. + EvtVector4C phi0=phi->epsParent(0); + EvtVector4C phi1=phi->epsParent(1); + EvtVector4C phi2=phi->epsParent(2); + + //get polarization vector for a photon in its parents restframe. + EvtVector4C gamma0=gamma->epsParentPhoton(0); + EvtVector4C gamma1=gamma->epsParentPhoton(1); + + EvtComplex r1p=phi0*gamma0; + EvtComplex r2p=phi1*gamma0; + EvtComplex r3p=phi2*gamma0; + + + EvtComplex r1m=phi0*gamma1; + EvtComplex r2m=phi1*gamma1; + EvtComplex r3m=phi2*gamma1; + + EvtComplex rho33=r3p*conj(r3p)+r3m*conj(r3m); + EvtComplex rho22=r2p*conj(r2p)+r2m*conj(r2m); + EvtComplex rho11=r1p*conj(r1p)+r1m*conj(r1m); + + EvtComplex rho13=r3p*conj(r1p)+r3m*conj(r1m); + EvtComplex rho12=r2p*conj(r1p)+r2m*conj(r1m); + EvtComplex rho23=r3p*conj(r2p)+r3m*conj(r2m); + + EvtComplex rho31=conj(rho13); + EvtComplex rho32=conj(rho23); + EvtComplex rho21=conj(rho12); + + + EvtSpinDensity rho; + rho.setDim(3); + + rho.set(0,0,rho11); + rho.set(0,1,rho12); + rho.set(0,2,rho13); + rho.set(1,0,rho21); + rho.set(1,1,rho22); + rho.set(1,2,rho23); + rho.set(2,0,rho31); + rho.set(2,1,rho32); + rho.set(2,2,rho33); + + setDaughterSpinDensity(0); + phi->setSpinDensityForward(rho); + + return ; +} + +double EvtVectorIsr::ckhrad1(double xx, double a, double b){ + //port of AfkQed/ckhrad.F function ckhrad1 + double yy = xx*xx; + double zz = 1. - 2*xx + yy; + return 0.5* (1. + yy + zz/(a-1.) + 0.25*b*( -0.5*(1. + 3*yy)*log(xx)) - zz ); +} + +void EvtVectorIsr::ckhrad(const double& e_beam,const double& q2_min,double& e01,double& e02,double& f){ + //port of AfkQed/ckhrad.F subroutine ckhrad + const double adp = 1. / 137.0359895 / EvtConst::pi; + const double pi2 = EvtConst::pi*EvtConst::pi; + // const double dme = 0.00051099906; + const double dme = EvtPDL::getMeanMass(EvtPDL::getId("e-")); + + double r1=EvtRandom::Flat();//Generates Flat from 0 - 1 + double r2=EvtRandom::Flat(); + + double sss = 4.*e_beam*e_beam; + double biglog = log(sss/(dme*dme)); + double beta = 2.*adp*(biglog - 1.); + double betae_lab = beta; + double p3 = adp*(pi2/3. - 0.5); + double p12 = adp*adp * (11./8. - 2.*pi2/3.); + double coefener = 1. + 0.75*betae_lab + p3; + double coef1 = coefener + 0.125*pi2*beta*beta; + double coef2 = p12* biglog*biglog; + double facts = coef1 + coef2; + + double y1_min = 0; + double e1min = 0.25 * q2_min/e_beam; + double y1_max = pow( 1. - e1min/e_beam, 0.5*beta ); + double y1 = y1_min +r1 *(y1_max - y1_min); + e01 = e_beam *(1. - pow(y1, 2./beta) ); + + double y2_min = 0.; + double e2min = 0.25 * q2_min/e01; + double y2_max = pow( 1. - e2min/e_beam, 0.5*beta); + double y2 = y2_min +r2 *(y2_max - y2_min); + e02 = e_beam *(1. - pow(y2, 2./beta) ); + + + double xx1 = e01/e_beam; + double xx2 = e02/e_beam; + + f = y1_max * y2_max * ckhrad1(xx1,biglog,betae_lab) * ckhrad1(xx2,biglog,betae_lab) * facts; + + return; + } + diff --git a/TEvtGen/EvtGenModels/EvtVectorIsr.hh b/TEvtGen/EvtGenModels/EvtVectorIsr.hh new file mode 100644 index 00000000000..023d4404852 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVectorIsr.hh @@ -0,0 +1,75 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVectorIsr2.hh +// +// Description: +// This is a special decay model to generate e+e- -> phi gamma + soft gammas +// using soft collinear ISR calculation from AfkQed +// This is implemented as a decay of the VPHO. +// +// Modification history: +// +// Joe Izen Oct, 2005 Soft Colinear Photons (secondary ISR) ported from AfkQed +// Joe Izen Dec 16, 2002 Fix cos_theta distribution - prevents boom at cos_theta=+/-1 +// RYD/Adriano June 16, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVECTORISR_HH +#define EVTVECTORISR_HH + +#include "EvtGenBase/EvtDecayIncoherent.hh" + +class EvtParticle; + + +class EvtVectorIsr:public EvtDecayIncoherent { + +public: + + EvtVectorIsr() {} + virtual ~EvtVectorIsr(); + + + std::string getName(); + + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + + void init(); + + void initProbMax(); + + double ckhrad1(double xx, double a, double b); + + void ckhrad(const double& e_beam,const double& q2_min,double& e01,double& e02,double& f); + + +private: + + double csfrmn,csbkmn; + double fmax; + bool firstorder; +}; + +#endif + + + + + + + + + + + diff --git a/TEvtGen/EvtGenModels/EvtVll.cxx b/TEvtGen/EvtGenModels/EvtVll.cxx new file mode 100644 index 00000000000..f3e517eca5b --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVll.cxx @@ -0,0 +1,124 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVll.cc +// +// Description: The decay of a vector meson to two leptons, +// or generally, two spin 1/2 particles. +// E.g., J/psi -> e+ e- +// +// Modification history: +// +// RYD January 17, 1997 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenModels/EvtVll.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" + +EvtVll::~EvtVll() {} + +std::string EvtVll::getName(){ + + return "VLL"; + +} + + +EvtDecayBase* EvtVll::clone(){ + + return new EvtVll; + +} + +void EvtVll::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(2); + + checkSpinParent(EvtSpinType::VECTOR); + + checkSpinDaughter(0,EvtSpinType::DIRAC); + checkSpinDaughter(1,EvtSpinType::DIRAC); + +} + +void EvtVll::initProbMax(){ + + setProbMax(1.0); + +} + +void EvtVll::decay(EvtParticle *p){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *l1, *l2; + l1 = p->getDaug(0); + l2 = p->getDaug(1); + + EvtVector4C l11, l12, l21, l22; + l11=EvtLeptonVCurrent(l1->spParent(0),l2->spParent(0)); + l12=EvtLeptonVCurrent(l1->spParent(0),l2->spParent(1)); + l21=EvtLeptonVCurrent(l1->spParent(1),l2->spParent(0)); + l22=EvtLeptonVCurrent(l1->spParent(1),l2->spParent(1)); + + EvtVector4C eps0=p->eps(0); + EvtVector4C eps1=p->eps(1); + EvtVector4C eps2=p->eps(2); + + double M2=p->mass(); + M2*=M2; + double m2=l1->mass(); + m2*=m2; + + double norm=1.0/sqrt(2*M2+4*m2-4*m2*m2/M2); + + vertex(0,0,0,norm*(eps0*l11)); + vertex(0,0,1,norm*(eps0*l12)); + vertex(0,1,0,norm*(eps0*l21)); + vertex(0,1,1,norm*(eps0*l22)); + + vertex(1,0,0,norm*(eps1*l11)); + vertex(1,0,1,norm*(eps1*l12)); + vertex(1,1,0,norm*(eps1*l21)); + vertex(1,1,1,norm*(eps1*l22)); + + vertex(2,0,0,norm*(eps2*l11)); + vertex(2,0,1,norm*(eps2*l12)); + vertex(2,1,0,norm*(eps2*l21)); + vertex(2,1,1,norm*(eps2*l22)); + + return; + +} + + + + + + + + + + + + + diff --git a/TEvtGen/EvtGenModels/EvtVll.hh b/TEvtGen/EvtGenModels/EvtVll.hh new file mode 100644 index 00000000000..6e40d404bdc --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVll.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVll.hh +// +// Description: +// +// Modification history: +// +// DJL/RYD August 11, 1998 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVLL_HH +#define EVTVLL_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtVll:public EvtDecayAmp { + +public: + + EvtVll() {} + virtual ~EvtVll(); + + std::string getName(); + EvtDecayBase* clone(); + + void initProbMax(); + void init(); + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtVtoSll.cxx b/TEvtGen/EvtGenModels/EvtVtoSll.cxx new file mode 100644 index 00000000000..9e5c2282cdb --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVtoSll.cxx @@ -0,0 +1,134 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVll.cc +// +// Description: The decay of a vector meson to a scalar and a +// lepton pair. E.g. D_s*+ -> D_s+ e+ e- +// +// +// Modification history: +// +// RYD February 28, 2009 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenModels/EvtVtoSll.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" + +EvtVtoSll::~EvtVtoSll() {} + +std::string EvtVtoSll::getName(){ + + return "VTOSLL"; + +} + + +EvtDecayBase* EvtVtoSll::clone(){ + + return new EvtVtoSll; + +} + +void EvtVtoSll::init(){ + + // check that there are 0 arguments + checkNArg(0); + checkNDaug(3); + + checkSpinParent(EvtSpinType::VECTOR); + + checkSpinDaughter(0,EvtSpinType::SCALAR); + checkSpinDaughter(1,EvtSpinType::DIRAC); + checkSpinDaughter(2,EvtSpinType::DIRAC); + +} + +void EvtVtoSll::initProbMax(){ + + //setProbMax(1.0); + +} + +void EvtVtoSll::decay(EvtParticle *p){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *l1, *l2; + l1 = p->getDaug(1); + l2 = p->getDaug(2); + + EvtVector4C l11, l12, l21, l22; + l11=EvtLeptonVCurrent(l1->spParent(0),l2->spParent(0)); + l12=EvtLeptonVCurrent(l1->spParent(0),l2->spParent(1)); + l21=EvtLeptonVCurrent(l1->spParent(1),l2->spParent(0)); + l22=EvtLeptonVCurrent(l1->spParent(1),l2->spParent(1)); + + EvtVector4C eps0=p->eps(0); + EvtVector4C eps1=p->eps(1); + EvtVector4C eps2=p->eps(2); + + EvtVector4R P=p->getP4Restframe(); + EvtVector4R k=l1->getP4()+l2->getP4(); + double k2=k*k; + + EvtTensor4C T(dual(directProd(P,(1.0/k2)*k))); + + + + double M2=p->mass(); + M2*=M2; + double m2=l1->mass(); + m2*=m2; + + double norm=1.0/sqrt(2*M2+4*m2-4*m2*m2/M2); + + vertex(0,0,0,norm*(eps0*T.cont2(l11))); + vertex(0,0,1,norm*(eps0*T.cont2(l12))); + vertex(0,1,0,norm*(eps0*T.cont2(l21))); + vertex(0,1,1,norm*(eps0*T.cont2(l22))); + + vertex(1,0,0,norm*(eps1*T.cont2(l11))); + vertex(1,0,1,norm*(eps1*T.cont2(l12))); + vertex(1,1,0,norm*(eps1*T.cont2(l21))); + vertex(1,1,1,norm*(eps1*T.cont2(l22))); + + vertex(2,0,0,norm*(eps2*T.cont2(l11))); + vertex(2,0,1,norm*(eps2*T.cont2(l12))); + vertex(2,1,0,norm*(eps2*T.cont2(l21))); + vertex(2,1,1,norm*(eps2*T.cont2(l22))); + + return; + +} + + + + + + + + + + + + + diff --git a/TEvtGen/EvtGenModels/EvtVtoSll.hh b/TEvtGen/EvtGenModels/EvtVtoSll.hh new file mode 100644 index 00000000000..869fc3a62c3 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVtoSll.hh @@ -0,0 +1,44 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVtoSll.hh +// +// Description: +// +// Modification history: +// +// RYD Feb. 28, 2009 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVTOSLL_HH +#define EVTVTOSLL_HH + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtVtoSll:public EvtDecayAmp { + +public: + + EvtVtoSll() {} + virtual ~EvtVtoSll(); + + std::string getName(); + EvtDecayBase* clone(); + + void initProbMax(); + void init(); + void decay(EvtParticle *p); + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtVub.cxx b/TEvtGen/EvtGenModels/EvtVub.cxx new file mode 100644 index 00000000000..567e7fbb501 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVub.cxx @@ -0,0 +1,399 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVub.cc +// +// Description: Routine to decay a particle according th phase space +// +// Modification history: +// +// Sven Menke January 17, 2001 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtVub.hh" +#include +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenModels/EvtPFermi.hh" +#include "EvtGenModels/EvtVubdGamma.hh" +#include "EvtGenBase/EvtRandom.hh" +using std::endl; + +EvtVub::~EvtVub() { + if (_dGamma) delete _dGamma; + if (_masses) delete [] _masses; + if (_weights) delete [] _weights; +} + +std::string EvtVub::getName(){ + + return "VUB"; + +} + +EvtDecayBase* EvtVub::clone(){ + + return new EvtVub; + +} + + +void EvtVub::init(){ + + // check that there are at least 6 arguments + + if (getNArg()<6) { + + report(ERROR,"EvtGen") << "EvtVub generator expected " + << " at least 6 arguments (mb,a,alpha_s,Nbins,m1,w1,...) but found: " + <0 && _masses[i] <= _masses[i-1]) { + report(ERROR,"EvtGen") << "EvtVub generator expected " + << " mass bins in ascending order!" + << "Will terminate execution!"<= 0, but found: " + <<_weights[i] < maxw ) maxw = _weights[i]; + } + if (maxw == 0) { + report(ERROR,"EvtGen") << "EvtVub generator expected at least one " + << " weight > 0, but found none! " + << "Will terminate execution!"< u-bar specflav l+ nu + + EvtParticle *xuhad, *lepton, *neutrino; + EvtVector4R p4; + // R. Faccini 21/02/03 + // move the reweighting up , before also shooting the fermi distribution + double x,z,p2; + double sh=0.0; + double mB,ml,xlow,xhigh,qplus; + double El=0.0; + double Eh=0.0; + double kplus; + const double lp2epsilon=-10; + bool rew(true); + while(rew){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + xuhad=p->getDaug(0); + lepton=p->getDaug(1); + neutrino=p->getDaug(2); + + mB = p->mass(); + ml = lepton->mass(); + + xlow = -_mb; + xhigh = mB-_mb; + + + // Fermi motion does not need to be computed inside the + // tryit loop as m_b in Gamma0 does not need to be replaced by (m_b+kplus). + // The difference however should be of the Order (lambda/m_b)^2 which is + // beyond the considered orders in the paper anyway ... + + // for alpha_S = 0 and a mass cut on X_u not all values of kplus are + // possible. The maximum value is mB/2-_mb + sqrt(mB^2/4-_masses[0]^2) + kplus = 2*xhigh; + + while( kplus >= xhigh || kplus <= xlow + || (_alphas == 0 && kplus >= mB/2-_mb + + sqrt(mB*mB/4-_masses[0]*_masses[0]))) { + kplus = findPFermi(); //_pFermi->shoot(); + kplus = xlow + kplus*(xhigh-xlow); + } + qplus = mB-_mb-kplus; + if( (mB-qplus)/2.<=ml)continue; + + int tryit = 1; + while (tryit) { + + x = EvtRandom::Flat(); + z = EvtRandom::Flat(0,2); + p2=EvtRandom::Flat(); + p2 = pow(10.0,lp2epsilon*p2); + + El = x*(mB-qplus)/2; + if ( El > ml && El < mB/2) { + + Eh = z*(mB-qplus)/2+qplus; + if ( Eh > 0 && Eh < mB ) { + + sh = p2*pow(mB-qplus,2)+2*qplus*(Eh-qplus)+qplus*qplus; + if ( sh > _masses[0]*_masses[0] + && mB*mB + sh - 2*mB*Eh > ml*ml) { + + double xran = EvtRandom::Flat(); + + double y = _dGamma->getdGdxdzdp(x,z,p2)/_dGMax*p2; + + if ( y > 1 ) report(WARNING,"EvtGen")<<"EvtVub decay probability > 1 found: " << y << endl; + if ( y >= xran ) tryit = 0; + } + } + } + } + // reweight the Mx distribution + if(_nbins>0){ + double xran1 = EvtRandom::Flat(); + double m = sqrt(sh);j=0; + while ( j < _nbins && m > _masses[j] ) j++; + double w = _weights[j-1]; + if ( w >= xran1 ) rew = false; + } else { + rew = false; + } + + } + + // o.k. we have the three kineamtic variables + // now calculate a flat cos Theta_H [-1,1] distribution of the + // hadron flight direction w.r.t the B flight direction + // because the B is a scalar and should decay isotropic. + // Then chose a flat Phi_H [0,2Pi] w.r.t the B flight direction + // and and a flat Phi_L [0,2Pi] in the W restframe w.r.t the + // W flight direction. + + double ctH = EvtRandom::Flat(-1,1); + double phH = EvtRandom::Flat(0,2*EvtConst::pi); + double phL = EvtRandom::Flat(0,2*EvtConst::pi); + + // now compute the four vectors in the B Meson restframe + + double ptmp,sttmp; + // calculate the hadron 4 vector in the B Meson restframe + + sttmp = sqrt(1-ctH*ctH); + ptmp = sqrt(Eh*Eh-sh); + double pHB[4] = {Eh,ptmp*sttmp*cos(phH),ptmp*sttmp*sin(phH),ptmp*ctH}; + p4.set(pHB[0],pHB[1],pHB[2],pHB[3]); + xuhad->init( getDaug(0), p4); + + if (_storeQplus ) { + // cludge to store the hidden parameter q+ with the decay; + // the lifetime of the Xu is abused for this purpose. + // tau = 1 ps corresponds to ctau = 0.3 mm -> in order to + // stay well below BaBars sensitivity we take q+/(10000 GeV) which + // goes up to 0.0005 in the most extreme cases as ctau in mm. + // To extract q+ back from the StdHepTrk its necessary to get + // delta_ctau = Xu->anyDaughter->getVertexTime()-Xu->getVertexTime() + // where these pseudo calls refere to the StdHep time stored at + // the production vertex in the lab for each particle. The boost + // has to be reversed and the result is: + // + // q+ = delta_ctau * 10000 GeV/mm * Mass_Xu/Energy_Xu + // + xuhad->setLifetime(qplus/10000.); + } + + // calculate the W 4 vector in the B Meson restrframe + + double apWB = ptmp; + double pWB[4] = {mB-Eh,-pHB[1],-pHB[2],-pHB[3]}; + + // first go in the W restframe and calculate the lepton and + // the neutrino in the W frame + + double mW2 = mB*mB + sh - 2*mB*Eh; + double beta = ptmp/pWB[0]; + double gamma = pWB[0]/sqrt(mW2); + + double pLW[4]; + + ptmp = (mW2-ml*ml)/2/sqrt(mW2); + pLW[0] = sqrt(ml*ml + ptmp*ptmp); + + double ctL = (El - gamma*pLW[0])/beta/gamma/ptmp; + if ( ctL < -1 ) ctL = -1; + if ( ctL > 1 ) ctL = 1; + sttmp = sqrt(1-ctL*ctL); + + // eX' = eZ x eW + double xW[3] = {-pWB[2],pWB[1],0}; + // eZ' = eW + double zW[3] = {pWB[1]/apWB,pWB[2]/apWB,pWB[3]/apWB}; + + double lx = sqrt(xW[0]*xW[0]+xW[1]*xW[1]); + for (j=0;j<2;j++) + xW[j] /= lx; + + // eY' = eZ' x eX' + double yW[3] = {-pWB[1]*pWB[3],-pWB[2]*pWB[3],pWB[1]*pWB[1]+pWB[2]*pWB[2]}; + double ly = sqrt(yW[0]*yW[0]+yW[1]*yW[1]+yW[2]*yW[2]); + for (j=0;j<3;j++) + yW[j] /= ly; + + // p_lep = |p_lep| * ( sin(Theta) * cos(Phi) * eX' + // + sin(Theta) * sin(Phi) * eY' + // + cos(Theta) * eZ') + for (j=0;j<3;j++) + pLW[j+1] = sttmp*cos(phL)*ptmp*xW[j] + + sttmp*sin(phL)*ptmp*yW[j] + + ctL *ptmp*zW[j]; + + double apLW = ptmp; + + // boost them back in the B Meson restframe + double appLB = beta*gamma*pLW[0] + gamma*ctL*apLW; + + ptmp = sqrt(El*El-ml*ml); + double ctLL = appLB/ptmp; + + if ( ctLL > 1 ) ctLL = 1; + if ( ctLL < -1 ) ctLL = -1; + + double pLB[4] = {El,0,0,0}; + double pNB[4] = {pWB[0]-El,0,0,0}; + + for (j=1;j<4;j++) { + pLB[j] = pLW[j] + (ctLL*ptmp - ctL*apLW)/apWB*pWB[j]; + pNB[j] = pWB[j] - pLB[j]; + } + + p4.set(pLB[0],pLB[1],pLB[2],pLB[3]); + lepton->init( getDaug(1), p4); + + p4.set(pNB[0],pNB[1],pNB[2],pNB[3]); + neutrino->init( getDaug(2), p4); + + return ; +} + + +double EvtVub::findPFermi() { + + double ranNum=EvtRandom::Flat(); + double oOverBins= 1.0/(float(_pf.size())); + int nBinsBelow = 0; // largest k such that I[k] is known to be <= rand + int nBinsAbove = _pf.size(); // largest k such that I[k] is known to be > rand + int middle; + + while (nBinsAbove > nBinsBelow+1) { + middle = (nBinsAbove + nBinsBelow+1)>>1; + if (ranNum >= _pf[middle]) { + nBinsBelow = middle; + } else { + nBinsAbove = middle; + } + } + + double bSize = _pf[nBinsAbove] - _pf[nBinsBelow]; + // binMeasure is always aProbFunc[nBinsBelow], + + if ( bSize == 0 ) { + // rand lies right in a bin of measure 0. Simply return the center + // of the range of that bin. (Any value between k/N and (k+1)/N is + // equally good, in this rare case.) + return (nBinsBelow + .5) * oOverBins; + } + + double bFract = (ranNum - _pf[nBinsBelow]) / bSize; + + return (nBinsBelow + bFract) * oOverBins; + +} diff --git a/TEvtGen/EvtGenModels/EvtVub.hh b/TEvtGen/EvtGenModels/EvtVub.hh new file mode 100644 index 00000000000..a5c1e5fd846 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVub.hh @@ -0,0 +1,67 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVub.hh +// +// Description: +// Class to generate inclusive B to X_u l nu decays according to various +// decay models. Implemtented are ACCM, parton-model and a QCD model. +// +// Modification history: +// +// Sven Menke January 17, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVUB_HH +#define EVTVUB_HH + +#include "EvtGenBase/EvtDecayIncoherent.hh" + +#include + +class EvtParticle; +class EvtVubdGamma; + +class EvtVub:public EvtDecayIncoherent { + +public: + + EvtVub() : _masses(0) , _weights(0) , _dGamma(0) {} + virtual ~EvtVub(); + + std::string getName(); + + EvtDecayBase* clone(); + + void initProbMax(); + + void init(); + + void decay(EvtParticle *p); + +private: + + double _mb; // the b-quark pole mass in GeV (try 4.65 to 4.9) + double _a; // Parameter for the Fermi Motion (1.29 is good) + double _alphas; // Strong Coupling at m_b (around 0.24) + double _dGMax; // max dGamma*p2 value; + int _nbins; + int _storeQplus; + double * _masses; + double * _weights; + + EvtVubdGamma *_dGamma; // calculates the decay rate + double findPFermi(); + std::vector _pf; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtVubAC.cxx b/TEvtGen/EvtGenModels/EvtVubAC.cxx new file mode 100644 index 00000000000..cbbc3f9eaef --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVubAC.cxx @@ -0,0 +1,8848 @@ + +////////////////////////////////////////////////////////////////////// +// +// Module: EvtVubAC.cc +// Analytic Coupling Model (based on hep-ph/0608047 by Aglietti, Ferrera and Ricciardi) +// Author: Michael Sigamani May 2008 +// +/////////////////////////////////////////////////////////////// + +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtVubAC.hh" +#include +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenModels/EvtPFermi.hh" +#include "EvtGenBase/EvtRandom.hh" + +using std::cout; +using std::endl; + +EvtVubAC::~EvtVubAC() { +} + +std::string EvtVubAC::getName(){ + return "VUB_AC"; +} + + EvtDecayBase *EvtVubAC::clone() { + return new EvtVubAC; +} + +void EvtVubAC::init() { + + // get parameters (declared in the header file) + + // B Meson mass + mB = 5.2792; + + // Perturbative quantities + CF = 4.0/3.0; + CA = 3.0; + double nf = 3.0; + + //Constants + alphaSmZ = getArg(0); + c = 0.04; + q = 0.01; + k = 0.02; + + beta0 = (11.0/3.0*CA - 2.0/3.0*nf)/(4*M_PI); + alphaSmB = 0.22*alphaSmZ/0.1189; + + gvars.push_back(0.0); // 0 + gvars.push_back(0.0); // 1 + gvars.push_back(0.0); // 2 + gvars.push_back(alphaSmB); // 3 + gvars.push_back(alphaSmZ); // 4 + gvars.push_back(mB); // 5 + gvars.push_back(beta0); // 6 + gvars.push_back(c); // 7 + gvars.push_back(q); // 8 + gvars.push_back(k); // 9 + + // check that there are 3 daughters and 1 argument + checkNDaug(3); + checkNArg(1); + +} + +void EvtVubAC::initProbMax() { + noProbMax(); +} + +void EvtVubAC::decay(EvtParticle *Bmeson) { + + int j; + + EvtParticle *xuhad, *lepton, *neutrino; + EvtVector4R p4; + double u, w, xb, Pp, Pm, pdf, ml, PX(0.0), EX(0.0), sh(0.0), El(0.0) ; + + Bmeson->initializePhaseSpace(getNDaug(), getDaugs()); + + xuhad = Bmeson->getDaug(0); + lepton = Bmeson->getDaug(1); + neutrino = Bmeson ->getDaug(2); + + ml = lepton->mass(); + + bool tryit = true; + while (tryit) { + + double mpi = 0.14; + u = EvtRandom::Flat(0.0,1.0); + w = EvtRandom::Flat(0.0,2.0); + xb = EvtRandom::Flat(0.0,1.0); + + EX = w*mB/2.0; + PX = EX*(1.0-u)/(u+1.0); + El = (1.0-xb)*mB/2.0; + Pp = (EX-PX); + Pm = (EX+PX); + sh = Pm*Pp; + + if ( ((w*u)/(1.0+u) < xb) && (xb < w/(1.0+u)) && (max(0, w - 1.0) < u) && (sh > 4.0*mpi*mpi) && ( El > ml ) ){ + + pdf = rate(u,w,xb); + double testRan = EvtRandom::Flat(0.0,24.2); + if (pdf >= testRan) tryit = false; + } + + } + + // o.k. we have the three kinemtic variables + // now calculate a flat cos Theta_H [-1,1] distribution of the + // hadron flight direction w.r.t the B flight direction + // because the B is a scalar and should decay isotropic. + // Then chose a flat Phi_H [0,2Pi] w.r.t the B flight direction + // and and a flat Phi_L [0,2Pi] in the W restframe w.r.t the + // W flight direction. + + double ctH = EvtRandom::Flat(-1,1); + double phH = EvtRandom::Flat(0,2*M_PI); + double phL = EvtRandom::Flat(0,2*M_PI); + + // now compute the four vectors in the B Meson restframe + + double ptmp,sttmp; + // calculate the hadron 4 vector in the B Meson restframe + + sttmp = sqrt(1-ctH*ctH); + ptmp = sqrt(EX*EX-sh); + double pHB[4] = {EX,ptmp*sttmp*cos(phH),ptmp*sttmp*sin(phH),ptmp*ctH}; + p4.set(pHB[0],pHB[1],pHB[2],pHB[3]); + xuhad->init( getDaug(0), p4); + + // calculate the W 4 vector in the B Meson restrframe + + double apWB = ptmp; + double pWB[4] = {mB-EX,-pHB[1],-pHB[2],-pHB[3]}; + + // first go in the W restframe and calculate the lepton and + // the neutrino in the W frame + + double mW2 = mB*mB + sh - 2*mB*EX; + double beta = ptmp/pWB[0]; + double gamma = pWB[0]/sqrt(mW2); + + double pLW[4]; + + ptmp = (mW2-ml*ml)/2/sqrt(mW2); + pLW[0] = sqrt(ml*ml + ptmp*ptmp); + + double ctL = (El - gamma*pLW[0])/beta/gamma/ptmp; + if ( ctL < -1 ) ctL = -1; + if ( ctL > 1 ) ctL = 1; + sttmp = sqrt(1-ctL*ctL); + + // eX' = eZ x eW + double xW[3] = {-pWB[2],pWB[1],0}; + // eZ' = eW + double zW[3] = {pWB[1]/apWB,pWB[2]/apWB,pWB[3]/apWB}; + + double lx = sqrt(xW[0]*xW[0]+xW[1]*xW[1]); + for (j=0;j<2;j++) + xW[j] /= lx; + + // eY' = eZ' x eX' + double yW[3] = {-pWB[1]*pWB[3],-pWB[2]*pWB[3],pWB[1]*pWB[1]+pWB[2]*pWB[2]}; + double ly = sqrt(yW[0]*yW[0]+yW[1]*yW[1]+yW[2]*yW[2]); + for (j=0;j<3;j++) + yW[j] /= ly; + + // p_lep = |p_lep| * ( sin(Theta) * cos(Phi) * eX' + // + sin(Theta) * sin(Phi) * eY' + // + cos(Theta) * eZ') + for (j=0;j<3;j++) + pLW[j+1] = sttmp*cos(phL)*ptmp*xW[j] + + sttmp*sin(phL)*ptmp*yW[j] + + ctL *ptmp*zW[j]; + + double apLW = ptmp; + + // boost them back in the B Meson restframe + + double appLB = beta*gamma*pLW[0] + gamma*ctL*apLW; + + ptmp = sqrt(El*El-ml*ml); + double ctLL = appLB/ptmp; + + if ( ctLL > 1 ) ctLL = 1; + if ( ctLL < -1 ) ctLL = -1; + + double pLB[4] = {El,0,0,0}; + double pNB[4] = {pWB[0]-El,0,0,0}; + + for (j=1;j<4;j++) { + pLB[j] = pLW[j] + (ctLL*ptmp - ctL*apLW)/apWB*pWB[j]; + pNB[j] = pWB[j] - pLB[j]; + } + + p4.set(pLB[0],pLB[1],pLB[2],pLB[3]); + lepton->init( getDaug(1), p4); + + p4.set(pNB[0],pNB[1],pNB[2],pNB[3]); + neutrino->init( getDaug(2), p4); + + return ; + +} + +double EvtVubAC::rate(double u, double w, double xb) { +std::vector vars(11); +vars[0] = u; +vars[1] = w; +vars[2] = xb; +double dGam = Coeff(u,w,xb)*Sigma(wreg(w/(1+u)),ularge(u)) + d(u,w,xb); + +return dGam; +} + +double EvtVubAC::PolyLog(double v, double z) { + +if (z >= 1) cout << "Error in EvtVubAC: 2nd argument to PolyLog is >= 1." << endl; + +double sum = 0.0; +for (int k=1; k<101; k++) { +sum = sum + pow(z,k)/pow(k,v); +} +return sum; +} + +double EvtVubAC::max(double ub, double lb) { +if (ub > lb) +return ub; +else +return lb; +} + +double EvtVubAC::wreg(double w) { +std::vector vars(11); +vars[1] = w; +for (int j=3;j<11;j++) {vars[j] = gvars[j];} +double K=(1+c)/(1+c+pow(c,2)); +return K*(c+pow(w,2)/(w+c)); +} + +double EvtVubAC::ureg(double u) { +std::vector vars(11); +vars[0] = u; +for (int j=3;j<11;j++) {vars[j] = gvars[j];} +return q + u*u/(u+q); +} + +double EvtVubAC::ularge(double u) { +std::vector vars(11); +vars[0] = u; +for (int j=3;j<11;j++) {vars[j] = gvars[j];} +return u - k*u*u; +} + +double EvtVubAC::alphaS(double Q) { +std::vector vars(11); +for (int j=3;j<11;j++) {vars[j] = gvars[j];} + +double a =1.0/(log(Q*Q/FindRoot(alphaSmZ))); +double b= FindRoot(alphaSmZ)/(FindRoot(alphaSmZ) - Q*Q); +double ans = 1.0/beta0*( a + b ); + +return ans; +} + +double EvtVubAC::Coeff(double u, double w, double xb) { +std::vector vars(11); +vars[0] = u; +vars[1] = w; +vars[2] = xb; + +for (int j=3;j<11;j++) {vars[j] = gvars[j];} + +double coeff = Coeff0(w,xb) + alphaS(mB*wreg(w/(1+u)))*Coeff1(w,xb); +return coeff; +} + +double EvtVubAC::Coeff0(double w, double xb) { +std::vector vars(11); +vars[1] = w; +vars[2] = xb; +for (int j=3;j<11;j++) {vars[j] = gvars[j];} +return 12.0*(1+xb-w)*(w-xb); +} + +double EvtVubAC::Coeff1(double w, double xb) { +std::vector vars(11); +vars[1] = w; +vars[2] = xb; +for (int j=3;j<11;j++) {vars[j] = gvars[j];} +double a = 1+xb-w; +double b = -PolyLog(2,1-w)-3.0/2.0*log(wreg(w)) - 1.0/2.0*w*f(w) - 35.0/8.0 + (M_PI*M_PI)/6.0; +double c = 1.0/2.0*xb*f(wreg(w)); + +double ans = 12.0*CF/M_PI*(w-xb)*((a*b)+c); + +return ans; +} + +double EvtVubAC::d(double u, double w, double xb) { +std::vector vars(11); +vars[0] = u; +vars[1] = w; +vars[2] = xb; +for (int j=3;j<11;j++) {vars[j] = gvars[j];} + +return alphaS(mB*wreg(w/(1.0+u)))*CF/M_PI*d1(u,w,xb); + +} + +double EvtVubAC::d1(double u, double w, double xb) { +std::vector vars(11); +vars[0] = u; +vars[1] = w; +vars[2] = xb; +for (int j=3;j<11;j++) {vars[j] = gvars[j];} + +double a = 3*pow(w,4)*(24+3*w-8*xb)/(4*pow(1+u,5)); +double b = 9*pow(w,4)*(24+3*w-8*xb)/(8*pow(1+u,4)); +double c = 9*(-12+w)*pow(-2+w,2)*pow(w-2*xb,2)/(16*pow(1-u,3)); +double cc = 9*(-12+w)*pow(-2+w,2)*pow(w-2*xb,2)/(32*pow(1-u,2)); +double d = 3*pow(w,2)*(32-47*w-8*w*w+16*xb+20*w*xb+w*w*xb+8*xb*xb-3*w*xb*xb)/(8*pow(1+u,2)); +double e = 1/(8*pow(1+u,3))*(3*w*w*(-64+94*w+40*w*w+3*pow(w,3)-32*xb-40*xb*w-10*w*w*xb-16*xb*xb+6*w*xb*xb)); +double f = 1/(64*(1+u))*(3*(640*w-368*w*w-200*w*w*w-16*pow(w,4)+3*pow(w,5)-384*xb+320*w*xb+528*w*w*xb+112*pow(w,3)*xb-16*pow(w,4)*xb-256*xb*xb-48*w*xb*xb-224*pow(w,2)*pow(xb,2)+24*pow(w,3)*pow(xb,2))); +double g = 1/(64*(1-u))*(3*(-256*w+528*w*w-200*pow(w,3)-16*pow(w,4)+3*pow(w,5)+512*xb-1472*w*xb+528*pow(w,2)*xb+112*pow(w,3)*xb-16*pow(w,4)*xb+640*xb*xb-48*w*xb*xb-224*pow(w,2)*pow(xb,2)+24*pow(w,3)*pow(xb,2))); +double h = 9*pow(w,5)*log(ureg(u))/(4*pow(1+u,6)); +double i = 9*pow(w,5)*log(ureg(u))/(2*pow(1+u,5)); +double ii = 9*(-12+w)*pow(-2+w,2)*pow(w-2*xb,2)*log(ureg(u))/(16*pow(1-u,4)); +double j = 9*(-12+w)*pow(-2+w,2)*pow(w-2*xb,2)*log(ureg(u))/(16*pow(1-u,3)); +double k = (3*pow(w,3)*(-10+16*w+pow(w,2)+8*xb-2*w*xb-2*pow(xb,2))*log(ureg(u)))/(8*pow(1+u,3)); +double l = (3*pow(w,3)*(-10+16*w+7*pow(w,2)+8*xb-2*w*xb-2*pow(xb,2))*log(ureg(u)))/(8*pow(1+u,4)); +double m = 1/(64*pow(1+u,2))*(3*w*(-144*w+208*pow(w,2)+16*pow(w,3)+pow(w,4)-64*xb-80*w*xb-16*pow(w,2)*xb-8*pow(w,3)*xb+48*xb*xb-96*w*xb*xb+16*pow(w,2)*pow(xb,2))*log(ureg(u))); +double n = 1/(64*pow(1-u,2))*(3*(-256*w+624*pow(w,2)-304*pow(w,3)+16*pow(w,4)+pow(w,5)+512*xb-1856*w*xb+944*pow(w,2)*xb-16*pow(w,3)*xb-8*pow(w,4)*xb+1024*xb*xb-464*w*xb*xb-96*pow(w,2)*pow(xb,2)+16*pow(w,3)*pow(xb,2))*log(ureg(u))); + +double rem = -a + b - c +cc - d - e + f + g - h +i -ii +j +k -l -m +n; + +return rem; +} + +double EvtVubAC::f(double w) { +std::vector vars(11); +vars[1] = w; +for (int j=3;j<11;j++) {vars[j] = gvars[j];} + if (w != 1) + return log(w)/(1-w); + else + return -1; +} + +double EvtVubAC::Lambda2(double x, const double alphaSmZ) { +std::vector vars(11); +for (int j=3;j<11;j++) {vars[j] = gvars[j];} +double alphaSmB = 0.22*alphaSmZ/0.1189; +double func = (1/beta0)*(1/log(mB*mB/x)+x/(x-mB*mB))-alphaSmB; +return func; +} + +double EvtVubAC::FindRoot(const double alphaSmZ){ +std::vector vars(11); +for (int j=3;j<11;j++) {vars[j] = gvars[j];} + double root; + const double precision=1e-8; + Bisect(0.0,1.0, precision, root, alphaSmZ); +return root; +} + +int EvtVubAC::Bisect(double x1,double x2, double precision,double& root, const double alphaSmZ){ +std::vector vars(11); + +for (int j=3;j<11;j++) {vars[j] = gvars[j];} + + if( Lambda2(x1,alphaSmZ)*Lambda2(x2,alphaSmZ) > 0 ){ + root = 0; + return 0; + + } else { + + double x = 0.5*(x1+x2); + + if( fabs(Lambda2(x,alphaSmZ)) < precision){ + root = x; + return 1; + } else { + + if( Lambda2(x1,alphaSmZ)*Lambda2(x,alphaSmZ) < 0 ){ + return Bisect(x1,x,precision,root,alphaSmZ); + + } else { + return Bisect(x,x2,precision,root, alphaSmZ); + + } + } + } +} + +//Bi-Linear interpolation function for sigma() + +double EvtVubAC::Sigma(double x1, double x2){ +double ans; +int j = 0; +int k = 0; +int JMAX = 20; +int KMAX = 6282; + + if (x1 < 0.04 | x1 > 1.0 | x2 > 0.9981306360766614) { + + cout<<"Input variables are not in range"<ularge[KMAX-1] ){k=KMAX;} + else{ + for (int z=0; z<=KMAX; z++){ + if ( (ularge[z] <= x2) && ( x2 < ularge[z+1]) ) { k=z; break;} + } + } + + //Calculate sigma() using Bi-Linear interpolaion + + double y0, y1, y2, y3; + double t, u; + + if ( k==KMAX) { + ans = sigma[k][j]; + } + + else { + y0 = sigma[k][j]; + y1 = sigma[k][j+1]; + y2 = sigma[k+1][j+1]; + y3 = sigma[k+1][j]; + + t = (x1-wreg[j])/(wreg[j+1]-wreg[j]); + u = (x2-ularge[k])/(ularge[k+1]-ularge[k]); + + ans = (1-t)*(1-u)*y0+t*(1-u)*y1 +t*u*y2+(1-t)*u*y3; + } + } +return ans; +} diff --git a/TEvtGen/EvtGenModels/EvtVubAC.hh b/TEvtGen/EvtGenModels/EvtVubAC.hh new file mode 100644 index 00000000000..9fa1b84cdd9 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVubAC.hh @@ -0,0 +1,74 @@ +////////////////////////////////////////////////////////////////////// +// +// Module: EvtVubAC.hh +// +////////////////////////////////////////////////////////////////// + +#ifndef EVTVUBAC_HH +#define EVTVUBAC_HH + +#include "EvtGenBase/EvtDecayIncoherent.hh" +#include + +class EvtParticle; +class RandGeneral; +class EvtVubdGamma; + +class EvtVubAC:public EvtDecayIncoherent { + +public: + + EvtVubAC() {} + virtual ~EvtVubAC(); + + std::string getName(); + + EvtDecayBase* clone(); + + void initProbMax(); + + void init(); + + void decay(EvtParticle *Bmeson); + +private: + // Input parameters + double mB; + double lambda2; + + double alphaSmZ; + double alphaSmB; + double c; + double q; + double k; + + double CF; + double CA; + + double beta0; + + std::vector gvars; + + double rate(double u, double w, double xb); + double wreg(double w); + double alphaS(double Q); + double PolyLog(double v, double z); + double ureg(double u); + double ularge(double u); + double Coeff(double u, double w, double xb); + double Coeff1(double w, double xb); + double Coeff0(double w, double xb); + double Sigma(double x1, double x2); + double max(double ub, double lb); + double d1(double u, double w, double xb); + double d(double u, double w, double xb); + double f(double w); + double Lambda2(double x, double alphaSmZ); + int Bisect(double x1, double x2,double precision,double& root,const double alphaSmZ); + double FindRoot(const double alphaSmZ); + +}; + +#endif + + diff --git a/TEvtGen/EvtGenModels/EvtVubBLNP.cxx b/TEvtGen/EvtGenModels/EvtVubBLNP.cxx new file mode 100644 index 00000000000..d465926138d --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVubBLNP.cxx @@ -0,0 +1,925 @@ + +////////////////////////////////////////////////////////////////////// +// +// Module: EvtVubBLNP.cc +// +// Description: Modeled on Riccardo Faccini's EvtVubNLO module +// +// tripleDiff from BLNP's notebook (based on BLNP4, hep-ph/0504071) +// +////////////////////////////////////////////////////////////////// + +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtVubBLNP.hh" +#include +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenModels/EvtItgSimpsonIntegrator.hh" +#include "EvtGenModels/EvtItgPtrFunction.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenModels/EvtPFermi.hh" + +// For incomplete gamma function +#include "math.h" +#include "signal.h" +#define ITMAX 100 +#define EPS 3.0e-7 +#define FPMIN 1.0e-30 + +using std::cout; +using std::endl; + +EvtVubBLNP::~EvtVubBLNP() { +} + +std::string EvtVubBLNP::getName(){ + return "VUB_BLNP"; +} + +EvtDecayBase *EvtVubBLNP::clone() { + + return new EvtVubBLNP; + +} + +void EvtVubBLNP::init() { + + // get parameters (declared in the header file) + + // Input parameters + mBB = 5.2792; + lambda2 = 0.12; + + // Shape function parameters + b = getArg(0); + Lambda = getArg(1); + Ecut = 1.8; + wzero = mBB - 2*Ecut; + + // SF and SSF modes + itype = (int)getArg(5); + dtype = getArg(5); + isubl = (int)getArg(6); + + // flags + flag1 = (int)getArg(7); + flag2 = (int)getArg(8); + flag3 = (int)getArg(9); + + // Quark mass + mb = 4.61; + + + // hidden parameter what and SF stuff + const double xlow = 0; + const double xhigh = mBB; + const int aSize = 10000; + EvtPFermi pFermi(Lambda,b); + // pf is the cumulative distribution normalized to 1. + _pf.resize(aSize); + for(int i=0;iinitializePhaseSpace(getNDaug(), getDaugs()); + + xuhad = Bmeson->getDaug(0); + lepton = Bmeson->getDaug(1); + neutrino = Bmeson ->getDaug(2); + + mBB = Bmeson->mass(); + ml = lepton->mass(); + + + + // get SF value + xlow = 0; + xhigh = mBB; + // the case for alphas = 0 is not considered + what = 2*xhigh; + while( what > xhigh || what < xlow ) { + what = findBLNPWhat(); + what = xlow + what*(xhigh-xlow); + } + + + + bool tryit = true; + + while (tryit) { + + // generate pp between 0 and + // Flat(min, max) gives R(max - min) + min, where R = random btwn 0 and 1 + + Pp = EvtRandom::Flat(0, mBB); // P+ = EX - |PX| + Pl = EvtRandom::Flat(0, mBB); // mBB - 2El + Pm = EvtRandom::Flat(0, mBB); // P- = EX + |PX| + + sh = Pm*Pp; + EX = 0.5*(Pm + Pp); + PX = 0.5*(Pm - Pp); + qsq = (mBB - Pp)*(mBB - Pm); + El = 0.5*(mBB - Pl); + + // Need maximum rate. Waiting for Mr. Paz to give it to me. + // Meanwhile, use this. + ratemax = 3.0; // From trial and error - most events below 3.0 + + // kinematic bounds (Eq. 2) + mpi = 0.14; + if ((Pp > 0)&&(Pp <= Pl)&&(Pl <= Pm)&&(Pm < mBB)&&(El > ml)&&(sh > 4*mpi*mpi)) { + + // Probability of pass proportional to PDF + pdf = rate3(Pp, Pl, Pm); + double testRan = EvtRandom::Flat(0., ratemax); + if (pdf >= testRan) tryit = false; + } + } + // o.k. we have the three kineamtic variables + // now calculate a flat cos Theta_H [-1,1] distribution of the + // hadron flight direction w.r.t the B flight direction + // because the B is a scalar and should decay isotropic. + // Then chose a flat Phi_H [0,2Pi] w.r.t the B flight direction + // and and a flat Phi_L [0,2Pi] in the W restframe w.r.t the + // W flight direction. + + double ctH = EvtRandom::Flat(-1,1); + double phH = EvtRandom::Flat(0,2*M_PI); + double phL = EvtRandom::Flat(0,2*M_PI); + + // now compute the four vectors in the B Meson restframe + + double ptmp,sttmp; + // calculate the hadron 4 vector in the B Meson restframe + + sttmp = sqrt(1-ctH*ctH); + ptmp = sqrt(EX*EX-sh); + double pHB[4] = {EX,ptmp*sttmp*cos(phH),ptmp*sttmp*sin(phH),ptmp*ctH}; + p4.set(pHB[0],pHB[1],pHB[2],pHB[3]); + xuhad->init( getDaug(0), p4); + + + bool _storeWhat(true); + + if (_storeWhat ) { + // cludge to store the hidden parameter what with the decay; + // the lifetime of the Xu is abused for this purpose. + // tau = 1 ps corresponds to ctau = 0.3 mm -> in order to + // stay well below BaBars sensitivity we take what/(10000 GeV). + // To extract what back from the StdHepTrk its necessary to get + // delta_ctau = Xu->decayVtx()->point().distanceTo(XuDaughter->decayVtx()->point()); + // + // what = delta_ctau * 100000 * Mass_Xu/Momentum_Xu + // + xuhad->setLifetime(what/10000.); + } + + + // calculate the W 4 vector in the B Meson restrframe + + double apWB = ptmp; + double pWB[4] = {mBB-EX,-pHB[1],-pHB[2],-pHB[3]}; + + // first go in the W restframe and calculate the lepton and + // the neutrino in the W frame + + double mW2 = mBB*mBB + sh - 2*mBB*EX; + double beta = ptmp/pWB[0]; + double gamma = pWB[0]/sqrt(mW2); + + double pLW[4]; + + ptmp = (mW2-ml*ml)/2/sqrt(mW2); + pLW[0] = sqrt(ml*ml + ptmp*ptmp); + + double ctL = (El - gamma*pLW[0])/beta/gamma/ptmp; + if ( ctL < -1 ) ctL = -1; + if ( ctL > 1 ) ctL = 1; + sttmp = sqrt(1-ctL*ctL); + + // eX' = eZ x eW + double xW[3] = {-pWB[2],pWB[1],0}; + // eZ' = eW + double zW[3] = {pWB[1]/apWB,pWB[2]/apWB,pWB[3]/apWB}; + + double lx = sqrt(xW[0]*xW[0]+xW[1]*xW[1]); + for (j=0;j<2;j++) + xW[j] /= lx; + + // eY' = eZ' x eX' + double yW[3] = {-pWB[1]*pWB[3],-pWB[2]*pWB[3],pWB[1]*pWB[1]+pWB[2]*pWB[2]}; + double ly = sqrt(yW[0]*yW[0]+yW[1]*yW[1]+yW[2]*yW[2]); + for (j=0;j<3;j++) + yW[j] /= ly; + + // p_lep = |p_lep| * ( sin(Theta) * cos(Phi) * eX' + // + sin(Theta) * sin(Phi) * eY' + // + cos(Theta) * eZ') + for (j=0;j<3;j++) + pLW[j+1] = sttmp*cos(phL)*ptmp*xW[j] + + sttmp*sin(phL)*ptmp*yW[j] + + ctL *ptmp*zW[j]; + + double apLW = ptmp; + + // boost them back in the B Meson restframe + + double appLB = beta*gamma*pLW[0] + gamma*ctL*apLW; + + ptmp = sqrt(El*El-ml*ml); + double ctLL = appLB/ptmp; + + if ( ctLL > 1 ) ctLL = 1; + if ( ctLL < -1 ) ctLL = -1; + + double pLB[4] = {El,0,0,0}; + double pNB[4] = {pWB[0]-El,0,0,0}; + + for (j=1;j<4;j++) { + pLB[j] = pLW[j] + (ctLL*ptmp - ctL*apLW)/apWB*pWB[j]; + pNB[j] = pWB[j] - pLB[j]; + } + + p4.set(pLB[0],pLB[1],pLB[2],pLB[3]); + lepton->init( getDaug(1), p4); + + p4.set(pNB[0],pNB[1],pNB[2],pNB[3]); + neutrino->init( getDaug(2), p4); + + return ; + +} + +double EvtVubBLNP::rate3(double Pp, double Pl, double Pm) { + + // rate3 in units of GF^2*Vub^2/pi^3 + + double factor = 1.0/16*(mBB-Pp)*U1lo(muh, mui)*pow( (Pm - Pp)/(mBB - Pp), alo(muh, mui)); + + double doneJS = DoneJS(Pp, Pm, mui); + double done1 = Done1(Pp, Pm, mui); + double done2 = Done2(Pp, Pm, mui); + double done3 = Done3(Pp, Pm, mui); + + // The EvtSimpsonIntegrator returns zero for bad integrals. + // So if any of the integrals are zero (ie bad), return zero. + // This will cause pdf = 0, so the event will not pass. + // I hope this will not introduce a bias. + if (doneJS*done1*done2*done3 == 0.0) { + //cout << "Integral failed: (Pp, Pm, Pl) = (" << Pp << ", " << Pm << ", " << Pl << ")" << endl; + return 0.0; + } + // if (doneJS*done1*done2*done3 != 0.0) { + // cout << "Integral OK: (Pp, Pm, Pl) = (" << Pp << ", " << Pm << ", " << Pl << ")" << endl; + //} + + double f1 = F1(Pp, Pm, muh, mui, mubar, doneJS, done1); + double f2 = F2(Pp, Pm, muh, mui, mubar, done3); + double f3 = F3(Pp, Pm, muh, mui, mubar, done2); + double answer = factor*( (mBB + Pl - Pp - Pm)*(Pm - Pl)*f1 + 2*(Pl - Pp)*(Pm - Pl)*f2 + (mBB - Pm)*(Pm - Pp)*f3 ); + return answer; + +} + +double EvtVubBLNP::F1(double Pp, double Pm, double muh, double mui, double mubar, double doneJS, double done1) { + + std::vector vars(12); + vars[0] = Pp; + vars[1] = Pm; + for (int j=2;j<12;j++) {vars[j] = gvars[j];} + + double y = (Pm - Pp)/(mBB - Pp); + double ah = CF*alphas(muh, vars)/4/M_PI; + double ai = CF*alphas(mui, vars)/4/M_PI; + double abar = CF*alphas(mubar, vars)/4/M_PI; + double lambda1 = -mupisq; + + double t1 = -4*ai/(Pp - Lbar)*(2*log((Pp - Lbar)/mui) + 1); + double t2 = 1 + dU1nlo(muh, mui) + anlo(muh, mui)*log(y); + double t3 = -4.0*pow(log(y*mb/muh),2) + 10.0*log(y*mb/muh) - 4.0*log(y) - 2.0*log(y)/(1-y) - 4.0*PolyLog(2, 1-y) - M_PI*M_PI/6.0 - 12.0; + double t4 = 2*pow( log(y*mb*Pp/(mui*mui)), 2) - 3*log(y*mb*Pp/(mui*mui)) + 7 - M_PI*M_PI; + + double t5 = -wS(Pp) + 2*t(Pp) + (1.0/y - 1.0)*(u(Pp) - v(Pp)); + double t6 = -(lambda1 + 3.0*lambda2)/3.0 + 1.0/pow(y,2)*(4.0/3.0*lambda1 - 2.0*lambda2); + + double shapePp = Shat(Pp, vars); + + double answer = (t2 + ah*t3 + ai*t4)*shapePp + ai*doneJS + 1/(mBB - Pp)*(flag2*abar*done1 + flag1*t5) + 1/pow(mBB - Pp, 2)*flag3*shapePp*t6; + if (Pp > Lbar + mui/exp(0.5)) answer = answer + t1; + return answer; + +} + +double EvtVubBLNP::F2(double Pp, double Pm, double muh, double mui, double mubar, double done3) { + + std::vector vars(12); + vars[0] = Pp; + vars[1] = Pm; + for (int j=2;j<12;j++) {vars[j] = gvars[j];} + + double y = (Pm - Pp)/(mBB - Pp); + double lambda1 = -mupisq; + double ah = CF*alphas(muh, vars)/4/M_PI; + double abar = CF*alphas(mubar, vars)/4/M_PI; + + double t6 = -wS(Pp) - 2*t(Pp) + 1.0/y*(t(Pp) + v(Pp)); + double t7 = 1/pow(y,2)*(2.0/3.0*lambda1 + 4.0*lambda2) - 1/y*(2.0/3.0*lambda1 + 3.0/2.0*lambda2); + + double shapePp = Shat(Pp, vars); + + double answer = ah*log(y)/(1-y)*shapePp + 1/(mBB - Pp)*(flag2*abar*0.5*done3 + flag1/y*t6) + 1.0/pow(mBB - Pp,2)*flag3*shapePp*t7; + return answer; + +} + +double EvtVubBLNP::F3(double Pp, double Pm, double muh, double mui, double mubar, double done2) { + + std::vector vars(12); + vars[0] = Pp; + vars[1] = Pm; + for (int j=2;j<12;j++) {vars[j] = gvars[j];} + + double y = (Pm - Pp)/(mBB - Pp); + double lambda1 = -mupisq; + double abar = CF*alphas(mubar, vars)/4/M_PI; + + double t7 = 1.0/pow(y,2)*(-2.0/3.0*lambda1 + lambda2); + + double shapePp = Shat(Pp, vars); + + double answer = 1.0/(Pm - Pp)*flag2*0.5*y*abar*done2 + 1.0/pow(mBB-Pp,2)*flag3*shapePp*t7; + return answer; + +} + +double EvtVubBLNP::DoneJS(double Pp, double Pm, double mui) { + + std::vector vars(12); + vars[0] = Pp; + vars[1] = Pm; + for (int j=2;j<12;j++) {vars[j] = gvars[j];} + + double lowerlim = 0.001*Pp; + double upperlim = (1.0-0.001)*Pp; + + EvtItgPtrFunction *func = new EvtItgPtrFunction(&IntJS, lowerlim, upperlim, vars); + EvtItgSimpsonIntegrator *integ = new EvtItgSimpsonIntegrator(*func, precision, maxLoop); + double myintegral = integ->evaluate(lowerlim, upperlim); + delete integ; + delete func; + return myintegral; + +} + +double EvtVubBLNP::Done1(double Pp, double Pm, double mui) { + + std::vector vars(12); + vars[0] = Pp; + vars[1] = Pm; + for (int j=2;j<12;j++) {vars[j] = gvars[j];} + + double lowerlim = 0.001*Pp; + double upperlim = (1.0-0.001)*Pp; + + EvtItgPtrFunction *func = new EvtItgPtrFunction(&Int1, lowerlim, upperlim, vars); + EvtItgSimpsonIntegrator *integ = new EvtItgSimpsonIntegrator(*func, precision, maxLoop); + double myintegral = integ->evaluate(lowerlim, upperlim); + delete integ; + delete func; + return myintegral; + +} + +double EvtVubBLNP::Done2(double Pp, double Pm, double mui) { + + std::vector vars(12); + vars[0] = Pp; + vars[1] = Pm; + for (int j=2;j<12;j++) {vars[j] = gvars[j];} + + double lowerlim = 0.001*Pp; + double upperlim = (1.0-0.001)*Pp; + + EvtItgPtrFunction *func = new EvtItgPtrFunction(&Int2, lowerlim, upperlim, vars); + EvtItgSimpsonIntegrator *integ = new EvtItgSimpsonIntegrator(*func, precision, maxLoop); + double myintegral = integ->evaluate(lowerlim, upperlim); + delete integ; + delete func; + return myintegral; + +} + +double EvtVubBLNP::Done3(double Pp, double Pm, double mui) { + + std::vector vars(12); + vars[0] = Pp; + vars[1] = Pm; + for (int j=2;j<12;j++) {vars[j] = gvars[j];} + + double lowerlim = 0.001*Pp; + double upperlim = (1.0-0.001)*Pp; + + EvtItgPtrFunction *func = new EvtItgPtrFunction(&Int3, lowerlim, upperlim, vars); + EvtItgSimpsonIntegrator *integ = new EvtItgSimpsonIntegrator(*func, precision, maxLoop); + double myintegral = integ->evaluate(lowerlim, upperlim); + delete integ; + delete func; + return myintegral; + +} + +double EvtVubBLNP::Int1(double what, const std::vector &vars) { + return Shat(what, vars)*g1(what, vars); +} + +double EvtVubBLNP::Int2(double what, const std::vector &vars) { + return Shat(what, vars)*g2(what, vars); +} + +double EvtVubBLNP::Int3(double what, const std::vector &vars) { + return Shat(what, vars)*g3(what, vars); +} + +double EvtVubBLNP::IntJS(double what, const std::vector &vars) { + + double Pp = vars[0]; + double Pm = vars[1]; + double mui = vars[2]; + double mBB = vars[5]; + double mb = vars[6]; + double y = (Pm - Pp)/(mBB - Pp); + + return 1/(Pp-what)*(Shat(what, vars) - Shat(Pp, vars))*(4*log(y*mb*(Pp-what)/(mui*mui)) - 3); +} + +double EvtVubBLNP::g1(double w, const std::vector &vars) { + + double Pp = vars[0]; + double Pm = vars[1]; + double mBB = vars[5]; + double y = (Pm - Pp)/(mBB - Pp); + double x = (Pp - w)/(mBB - Pp); + + double q1 = (1+x)*(1+x)*y*(x+y); + double q2 = y*(-9 + 10*y) + x*x*(-12.0 + 13.0*y) + 2*x*(-8.0 + 6*y + 3*y*y); + double q3 = 4/x*log(y + y/x); + double q4 = 3.0*pow(x,4)*(-2.0 + y) - 2*pow(y,3) - 4*pow(x,3)*(2.0+y) - 2*x*y*y*(4+y) - x*x*y*(12 + 4*y + y*y); + double q5 = log(1 + y/x); + + double answer = q2/q1 - q3 - 2*q4*q5/(q1*y*x); + return answer; + +} + +double EvtVubBLNP::g2(double w, const std::vector &vars) { + + double Pp = vars[0]; + double Pm = vars[1]; + double mBB = vars[5]; + double y = (Pm - Pp)/(mBB - Pp); + double x = (Pp - w)/(mBB - Pp); + + double q1 = (1+x)*(1+x)*pow(y,3)*(x+y); + double q2 = 10.0*pow(x,4) + y*y + 3.0*pow(x,2)*y*(10.0+y) + pow(x,3)*(12.0+19.0*y) + x*y*(8.0 + 4.0*y + y*y); + double q3 = 5*pow(x,4) + 2.0*y*y + 6.0*pow(x,3)*(1.0+2.0*y) + 4.0*x*y*(1+2.0*y) + x*x*y*(18.0+5.0*y); + double q4 = log(1 + y/x); + + double answer = 2.0/q1*( y*q2 - 2*x*q3*q4); + return answer; + +} + +double EvtVubBLNP::g3(double w, const std::vector &vars) { + + double Pp = vars[0]; + double Pm = vars[1]; + double mBB = vars[5]; + double y = (Pm - Pp)/(mBB - Pp); + double x = (Pp - w)/(mBB - Pp); + + double q1 = (1+x)*(1+x)*pow(y,3)*(x+y); + double q2 = 2.0*pow(y,3)*(-11.0+2.0*y) - 10.0*pow(x,4)*(6 - 6*y + y*y) + x*y*y*(-94.0 + 29.0*y + 2.0*y*y) + 2.0*x*x*y*(-72.0 +18.0*y + 13.0*y*y) - x*x*x*(72.0 + 42.0*y - 70.0*y*y + 3.0*y*y*y); + double q3 = -6.0*x*(-5.0+y)*pow(y,3) + 4*pow(y,4) + 5*pow(x,5)*(6-6*y + y*y) - 4*x*x*y*y*(-20.0 + 6*y + y*y) + pow(x,3)*y*(90.0 - 10.0*y - 28.0*y*y + y*y*y) + pow(x,4)*(36.0 + 36.0*y - 50.0*y*y + 4*y*y*y); + double q4 = log(1 + y/x); + + double answer = q2/q1 + 2/q1/y*q3*q4; + return answer; + +} + + +double EvtVubBLNP::Shat(double w, const std::vector &vars) { + + double mui = vars[2]; + double b = vars[3]; + double Lambda = vars[4]; + double wzero = vars[7]; + int itype = (int)vars[11]; + + double norm = 0.0; + double shape = 0.0; + + if (itype == 1) { + + double Lambar = (Lambda/b)*(Gamma(1+b)-Gamma(1+b,b*wzero/Lambda))/(Gamma(b) - Gamma(b, b*wzero/Lambda)); + double muf = wzero - Lambar; + double mupisq = 3*pow(Lambda,2)/pow(b,2)*(Gamma(2+b) - Gamma(2+b, b*wzero/Lambda))/(Gamma(b) - Gamma(b, b*wzero/Lambda)) - 3*Lambar*Lambar; + norm = Mzero(muf, mui, mupisq, vars)*Gamma(b)/(Gamma(b) - Gamma(b, b*wzero/Lambda)); + shape = pow(b,b)/Lambda/Gamma(b)*pow(w/Lambda, b-1)*exp(-b*w/Lambda); + } + + if (itype == 2) { + double dcoef = pow( Gamma(0.5*(1+b))/Gamma(0.5*b), 2); + double t1 = wzero*wzero*dcoef/(Lambda*Lambda); + double Lambar = Lambda*(Gamma(0.5*(1+b)) - Gamma(0.5*(1+b),t1))/pow(dcoef, 0.5)/(Gamma(0.5*b) - Gamma(0.5*b, t1)); + double muf = wzero - Lambar; + double mupisq = 3*Lambda*Lambda*( Gamma(1+0.5*b) - Gamma(1+0.5*b, t1))/dcoef/(Gamma(0.5*b) - Gamma(0.5*b, t1)) - 3*Lambar*Lambar; + norm = Mzero(muf, mui, mupisq, vars)*Gamma(0.5*b)/(Gamma(0.5*b) - Gamma(0.5*b, wzero*wzero*dcoef/(Lambda*Lambda))); + shape = 2*pow(dcoef, 0.5*b)/Lambda/Gamma(0.5*b)*pow(w/Lambda, b-1)*exp(-dcoef*w*w/(Lambda*Lambda)); + } + + double answer = norm*shape; + return answer; +} + +double EvtVubBLNP::Mzero(double muf, double mu, double mupisq, const std::vector &vars) { + + double CF = 4.0/3.0; + double amu = CF*alphas(mu, vars)/M_PI; + double answer = 1 - amu*( pow(log(muf/mu), 2) + log(muf/mu) + M_PI*M_PI/24.0) + amu*(log(muf/mu) - 0.5)*mupisq/(3*muf*muf); + return answer; + +} + +double EvtVubBLNP::wS(double w) { + + double answer = (Lbar - w)*Shat(w, gvars); + return answer; +} + +double EvtVubBLNP::t(double w) { + + double t1 = -3*lambda2/mupisq*(Lbar - w)*Shat(w, gvars); + double myf = myfunction(w, Lbar, moment2); + double myBIK = myfunctionBIK(w, Lbar, moment2); + double answer = t1; + + if (isubl == 1) answer = t1; + if (isubl == 3) answer = t1 - myf; + if (isubl == 4) answer = t1 + myf; + if (isubl == 5) answer = t1 - myBIK; + if (isubl == 6) answer = t1 + myBIK; + + return answer; +} + +double EvtVubBLNP::u(double w) { + + double u1 = -2*(Lbar - w)*Shat(w, gvars); + double myf = myfunction(w, Lbar, moment2); + double myBIK = myfunctionBIK(w, Lbar, moment2); + double answer = u1; + + if (isubl == 1) answer = u1; + if (isubl == 3) answer = u1 + myf; + if (isubl == 4) answer = u1 - myf; + if (isubl == 5) answer = u1 + myBIK; + if (isubl == 6) answer = u1 - myBIK; + + return answer; +} + +double EvtVubBLNP::v(double w) { + + double v1 = 3*lambda2/mupisq*(Lbar - w)*Shat(w, gvars); + double myf = myfunction(w, Lbar, moment2); + double myBIK = myfunctionBIK(w, Lbar, moment2); + double answer = v1; + + if (isubl == 1) answer = v1; + if (isubl == 3) answer = v1 - myf; + if (isubl == 4) answer = v1 + myf; + if (isubl == 5) answer = v1 - myBIK; + if (isubl == 6) answer = v1 + myBIK; + + return answer; +} + +double EvtVubBLNP::myfunction(double w, double Lbar, double mom2) { + + double bval = 5.0; + double x = w/Lbar; + double factor = 0.5*mom2*pow(bval/Lbar, 3); + double answer = factor*exp(-bval*x)*(1 - 2*bval*x + 0.5*bval*bval*x*x); + return answer; + +} + +double EvtVubBLNP::myfunctionBIK(double w, double Lbar, double mom2) { + + double aval = 10.0; + double normBIK = (4 - M_PI)*M_PI*M_PI/8/(2-M_PI)/aval + 1; + double z = 3*M_PI*w/8/Lbar; + double q = M_PI*M_PI*2*pow(M_PI*aval, 0.5)*exp(-aval*z*z)/(4*M_PI - 8)*(1 - 2*pow(aval/M_PI, 0.5)*z) + 8/pow(1+z*z, 4)*(z*log(z) + 0.5*z*(1+z*z) - M_PI/4*(1-z*z)); + double answer = q/normBIK; + return answer; + +} + +double EvtVubBLNP::dU1nlo(double muh, double mui) { + + double ai = alphas(mui, gvars); + double ah = alphas(muh, gvars); + + double q1 = (ah - ai)/(4*M_PI*beta0); + double q2 = log(mb/muh)*Gamma1 + gp1; + double q3 = 4*beta1*(log(mb/muh)*Gamma0 + gp0) + Gamma2*(1-ai/ah); + double q4 = beta1*beta1*Gamma0*(-1.0 + ai/ah)/(4*pow(beta0,3)); + double q5 = -beta2*Gamma0*(1.0 + ai/ah) + beta1*Gamma1*(3 - ai/ah); + double q6 = beta1*beta1*Gamma0*(ah - ai)/beta0 - beta2*Gamma0*ah + beta1*Gamma1*ai; + + double answer = q1*(q2 - q3/4/beta0 + q4 + q5/(4*beta0*beta0)) + 1/(8*M_PI*beta0*beta0*beta0)*log(ai/ah)*q6; + return answer; +} + +double EvtVubBLNP::U1lo(double muh, double mui) { + double epsilon = 0.0; + double answer = pow(mb/muh, -2*aGamma(muh, mui, epsilon))*exp(2*Sfun(muh, mui, epsilon) - 2*agp(muh, mui, epsilon)); + return answer; +} + +double EvtVubBLNP::Sfun(double mu1, double mu2, double epsilon) { + double a1 = alphas(mu1, gvars)/4/M_PI; + double a2 = alphas(mu2, gvars)/alphas(mu1, gvars); + + double answer = S0(a1,a2) + S1(a1,a2) + epsilon*S2(a1,a2); + return answer; + +} + +double EvtVubBLNP::S0(double a1, double r) { + double answer = -Gamma0/(4.0*beta0*beta0*a1)*(-1.0 + 1.0/r + log(r)); + return answer; +} + +double EvtVubBLNP::S1(double a1, double r) { + double answer = Gamma0/(4*beta0*beta0)*(0.5*log(r)*log(r)*beta1/beta0 + (Gamma1/Gamma0 - beta1/beta0)*(1 - r + log(r))); + return answer; +} + +double EvtVubBLNP::S2(double a1, double r) { + + double w1 = pow(beta1,2)/pow(beta0,2) - beta2/beta0 - beta1*Gamma1/(beta0*Gamma0) + Gamma2/Gamma0; + double w2 = pow(beta1,2)/pow(beta0,2) - beta2/beta0; + double w3 = beta1*Gamma1/(beta0*Gamma0) - beta2/beta0; + double w4 = a1*Gamma0/(4*beta0*beta0); + + double answer = w4*(-0.5*pow(1-r,2)*w1 + w2*(1-r)*log(r) + w3*(1-r+r*log(r))); + return answer; +} + +double EvtVubBLNP::aGamma(double mu1, double mu2, double epsilon) { + double a1 = alphas(mu1, gvars); + double a2 = alphas(mu2, gvars); + double answer = Gamma0/(2*beta0)*log(a2/a1) + epsilon*(a2-a1)/(8.0*M_PI)*(Gamma1/beta0 - beta1*Gamma0/(beta0*beta0)); + return answer; +} + +double EvtVubBLNP::agp(double mu1, double mu2, double epsilon) { + double a1 = alphas(mu1, gvars); + double a2 = alphas(mu2, gvars); + double answer = gp0/(2*beta0)*log(a2/a1) + epsilon*(a2-a1)/(8.0*M_PI)*(gp1/beta0 - beta1*gp0/(beta0*beta0)); + return answer; +} + +double EvtVubBLNP::alo(double muh, double mui) { return -2.0*aGamma(muh, mui, 0);} + +double EvtVubBLNP::anlo(double muh, double mui) { // d/depsilon of aGamma + + double ah = alphas(muh, gvars); + double ai = alphas(mui, gvars); + double answer = (ah-ai)/(8.0*M_PI)*(Gamma1/beta0 - beta1*Gamma0/(beta0*beta0)); + return answer; +} + +double EvtVubBLNP::alphas(double mu, const std::vector &vars) { + + // Note: Lambda4 and Lambda5 depend on mbMS = 4.25 + // So if you change mbMS, then you will have to recalculate them. + + double beta0 = vars[8]; + double beta1 = vars[9]; + double beta2 = vars[10]; + + double Lambda4 = 0.298791; + double lg = 2*log(mu/Lambda4); + double answer = 4*M_PI/(beta0*lg)*( 1 - beta1*log(lg)/(beta0*beta0*lg) + beta1*beta1/(beta0*beta0*beta0*beta0*lg*lg)*( (log(lg) - 0.5)*(log(lg) - 0.5) - 5.0/4.0 + beta2*beta0/(beta1*beta1))); + return answer; + +} + +double EvtVubBLNP::PolyLog(double v, double z) { + + if (z >= 1) cout << "Error in EvtVubBLNP: 2nd argument to PolyLog is >= 1." << endl; + + double sum = 0.0; + for (int k=1; k<101; k++) { + sum = sum + pow(z,k)/pow(k,v); + } + return sum; +} + +double EvtVubBLNP::Gamma(double z) +{ + if (z<=0) return 0; + + double v = lgamma(z); + return exp(v); +} + +double EvtVubBLNP::Gamma(double a, double x) +{ + double LogGamma; + /* if (x<0.0 || a<= 0.0) raise(SIGFPE);*/ + if(x<0.0) x=0.0; + if(a<=0.0)a=1.e-50; + LogGamma = lgamma(a); + if (x < (a+1.0)) + return gamser(a,x,LogGamma); + else + return 1.0-gammcf(a,x,LogGamma); +} + +/* ------------------Incomplete gamma function-----------------*/ +/* ------------------via its series representation-------------*/ + +double EvtVubBLNP::gamser(double a, double x, double LogGamma) +{ + double n; + double ap,del,sum; + + ap=a; + del=sum=1.0/a; + for (n=1;n rand + int middle; + + while (nBinsAbove > nBinsBelow+1) { + middle = (nBinsAbove + nBinsBelow+1)>>1; + if (ranNum >= _pf[middle]) { + nBinsBelow = middle; + } else { + nBinsAbove = middle; + } + } + + double bSize = _pf[nBinsAbove] - _pf[nBinsBelow]; + // binMeasure is always aProbFunc[nBinsBelow], + + if ( bSize == 0 ) { + // rand lies right in a bin of measure 0. Simply return the center + // of the range of that bin. (Any value between k/N and (k+1)/N is + // equally good, in this rare case.) + return (nBinsBelow + .5) * oOverBins; + } + + double bFract = (ranNum - _pf[nBinsBelow]) / bSize; + + return (nBinsBelow + bFract) * oOverBins; + +} diff --git a/TEvtGen/EvtGenModels/EvtVubBLNP.hh b/TEvtGen/EvtGenModels/EvtVubBLNP.hh new file mode 100644 index 00000000000..adf01eee27a --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVubBLNP.hh @@ -0,0 +1,142 @@ + +////////////////////////////////////////////////////////////////////// +// +// Module: EvtVubBLNP.hh +// +// Description: Modeled on Riccardo Faccini's EvtVubNLO module +// author: sheila date: October 2005 +// +// tripleDiff from BLNP's notebook, based on hep-ph/0504071 +// +////////////////////////////////////////////////////////////////// + + +#ifndef EVTVUBBLNP_HH +#define EVTVUBBLNP_HH + +#include +#include "EvtGenBase/EvtDecayIncoherent.hh" + +class EvtParticle; + +class EvtVubBLNP:public EvtDecayIncoherent { + +public: + + EvtVubBLNP() {} + virtual ~EvtVubBLNP(); + + std::string getName(); + + EvtDecayBase* clone(); + + void initProbMax(); + + void init(); + + void decay(EvtParticle *Bmeson); + +private: + + // Input parameters + double mBB; + double lambda2; + + // Shape function parameters + double b; + double Lambda; + double Ecut; + double wzero; + + // SF and SSF modes + int itype; + double dtype; + int isubl; + + // flags + int flag1; + int flag2; + int flag3; + + // Quark mass + double mb; + + // Matching scales + double muh; + double mui; + double mubar; + + // Perturbative quantities + double CF; + double CA; + + double beta0; + double beta1; + double beta2; + + double zeta3; + + double Gamma0; + double Gamma1; + double Gamma2; + + double gp0; + double gp1; + + double Lbar; + double mupisq; + double moment2; + + int flagpower; + int flag2loop; + + int maxLoop; + double precision; + + std::vector gvars; + + double rate3(double Pp, double Pl, double Pm); + double F1(double Pp, double Pm, double muh, double mui, double mubar, double doneJS, double done1); + double F2(double Pp, double Pm, double muh, double mui, double mubar, double done3); + double F3(double Pp, double Pm, double muh, double mui, double mubar, double done2); + double DoneJS(double Pp, double Pm, double mui); + double Done1(double Pp, double Pm, double mui); + double Done2(double Pp, double Pm, double mui); + double Done3(double Pp, double Pm, double mui); + static double IntJS(double what, const std::vector &vars); + static double Int1(double what, const std::vector &vars); + static double Int2(double what, const std::vector &vars); + static double Int3(double what, const std::vector &vars); + static double g1(double w, const std::vector &vars); + static double g2(double w, const std::vector &vars); + static double g3(double w, const std::vector &vars); + static double Shat(double w, const std::vector &vars); + static double Mzero(double muf, double mu, double mupisq, const std::vector &vars); + double wS(double w); + double t(double w); + double u(double w); + double v(double w); + double myfunction(double w, double Lbar, double mom2); + double myfunctionBIK(double w, double Lbar, double mom2); + double dU1nlo(double muh, double mui); + double U1lo(double muh, double mui); + double Sfun(double mu1, double mu2, double epsilon); + double S0(double a1, double r); + double S1(double a1, double r); + double S2(double a1, double r); + double aGamma(double mu1, double mu2, double epsilon); + double agp(double mu1, double mu2, double epsilon); + double alo(double muh, double mui); + double anlo(double muh, double mui); // d/depsilon of aGamma + static double alphas(double mu, const std::vector &vars); + double PolyLog(double v, double z); + static double Gamma(double z); + static double Gamma(double a, double x); + static double gamser(double a, double x, double LogGamma); + static double gammcf(double a, double x, double LogGamma); + double findBLNPWhat(); + std::vector _pf; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtVubBLNPHybrid.cxx b/TEvtGen/EvtGenModels/EvtVubBLNPHybrid.cxx new file mode 100644 index 00000000000..3e72fa1b2ab --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVubBLNPHybrid.cxx @@ -0,0 +1,1069 @@ + +////////////////////////////////////////////////////////////////////// +// +// Module: EvtVubBLNPHybrid.cc +// +// Description: Modeled on Riccardo Faccini's EvtVubNLO module +// +// tripleDiff from BLNP's notebook (based on BLNP4, hep-ph/0504071) +// +////////////////////////////////////////////////////////////////// + +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtVubBLNPHybrid.hh" +#include +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenModels/EvtItgSimpsonIntegrator.hh" +#include "EvtGenModels/EvtItgPtrFunction.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenModels/EvtPFermi.hh" + +// For incomplete gamma function +#include "math.h" +#include "signal.h" +#define ITMAX 100 +#define EPS 3.0e-7 +#define FPMIN 1.0e-30 + +using std::cout; +using std::endl; + +EvtVubBLNPHybrid::EvtVubBLNPHybrid() + : _noHybrid(false), _storeWhat(true), + _nbins_mX(0), _nbins_q2(0), _nbins_El(0), _nbins(0), + _masscut(0.28), _bins_mX(0), _bins_q2(0), _bins_El(0), + _weights(0) +{} + + +EvtVubBLNPHybrid::~EvtVubBLNPHybrid() { + delete [] _bins_mX; + delete [] _bins_q2; + delete [] _bins_El; + delete [] _weights; +} + +std::string EvtVubBLNPHybrid::getName(){ + return "VUB_BLNPHYBRID"; +} + +EvtDecayBase *EvtVubBLNPHybrid::clone() { + + return new EvtVubBLNPHybrid; + +} + +void EvtVubBLNPHybrid::init() { + + // check that there are at least 3 arguments + if (getNArg() < EvtVubBLNPHybrid::nParameters) { + report(ERROR,"EvtVubBLNPHybrid") << "EvtVubBLNPHybrid generator expected " + << "at least " << EvtVubBLNPHybrid::nParameters + << " arguments but found: " << getNArg() + << "\nWill terminate execution!"< Xu l nu events " + << "without using the hybrid reweighting." + << endl; + _noHybrid = true; + } else if (getNArg() < EvtVubBLNPHybrid::nParameters+EvtVubBLNPHybrid::nVariables) { + report(ERROR,"EvtVubBLNPHybrid") << "EvtVubBLNPHybrid could not read number of bins for " + << "all variables used in the reweighting\n" + << "Will terminate execution!" << endl; + ::abort(); + } + + + + // get parameters (declared in the header file) + + // Input parameters + mBB = 5.2792; + lambda2 = 0.12; + + // Shape function parameters + b = getArg(0); + Lambda = getArg(1); + Ecut = 1.8; + wzero = mBB - 2*Ecut; + + // SF and SSF modes + itype = (int)getArg(5); + dtype = getArg(5); + isubl = (int)getArg(6); + + // flags + flag1 = (int)getArg(7); + flag2 = (int)getArg(8); + flag3 = (int)getArg(9); + + // Quark mass + mb = 4.61; + + + // hidden parameter what and SF stuff + const double xlow = 0; + const double xhigh = mBB; + const int aSize = 10000; + EvtPFermi pFermi(Lambda,b); + // pf is the cumulative distribution normalized to 1. + _pf.resize(aSize); + for(int i=0;iinitializePhaseSpace(getNDaug(), getDaugs()); + + xuhad = Bmeson->getDaug(0); + lepton = Bmeson->getDaug(1); + neutrino = Bmeson ->getDaug(2); + + mBB = Bmeson->mass(); + ml = lepton->mass(); + + + + // get SF value + xlow = 0; + xhigh = mBB; + // the case for alphas = 0 is not considered + what = 2*xhigh; + while( what > xhigh || what < xlow ) { + what = findBLNPWhat(); + what = xlow + what*(xhigh-xlow); + } + + + + bool tryit = true; + + while (tryit) { + + // generate pp between 0 and + // Flat(min, max) gives R(max - min) + min, where R = random btwn 0 and 1 + + Pp = EvtRandom::Flat(0, mBB); // P+ = EX - |PX| + Pl = EvtRandom::Flat(0, mBB); // mBB - 2El + Pm = EvtRandom::Flat(0, mBB); // P- = EX + |PX| + + sh = Pm*Pp; + EX = 0.5*(Pm + Pp); + PX = 0.5*(Pm - Pp); + qsq = (mBB - Pp)*(mBB - Pm); + El = 0.5*(mBB - Pl); + + // Need maximum rate. Waiting for Mr. Paz to give it to me. + // Meanwhile, use this. + ratemax = 3.0; // From trial and error - most events below 3.0 + + // kinematic bounds (Eq. 2) + mpi = 0.14; + if ((Pp > 0)&&(Pp <= Pl)&&(Pl <= Pm)&&(Pm < mBB)&&(El > ml)&&(sh > 4*mpi*mpi)) { + + // Probability of pass proportional to PDF + pdf = rate3(Pp, Pl, Pm); + double testRan = EvtRandom::Flat(0., ratemax); + if (pdf >= testRan) tryit = false; + } + } + + // compute all kinematic variables needed for reweighting + mX = sqrt(sh); + + // Reweighting in bins of mX, q2, El + if (_nbins>0) { + double xran1 = EvtRandom::Flat(); + double w = 1.0; + if (!_noHybrid) w = getWeight(mX, qsq, El); + if ( w >= xran1 ) rew = false; + } + else { + rew = false; + } + } + // o.k. we have the three kineamtic variables + // now calculate a flat cos Theta_H [-1,1] distribution of the + // hadron flight direction w.r.t the B flight direction + // because the B is a scalar and should decay isotropic. + // Then chose a flat Phi_H [0,2Pi] w.r.t the B flight direction + // and and a flat Phi_L [0,2Pi] in the W restframe w.r.t the + // W flight direction. + + double ctH = EvtRandom::Flat(-1,1); + double phH = EvtRandom::Flat(0,2*M_PI); + double phL = EvtRandom::Flat(0,2*M_PI); + + // now compute the four vectors in the B Meson restframe + + double ptmp,sttmp; + // calculate the hadron 4 vector in the B Meson restframe + + sttmp = sqrt(1-ctH*ctH); + ptmp = sqrt(EX*EX-sh); + double pHB[4] = {EX,ptmp*sttmp*cos(phH),ptmp*sttmp*sin(phH),ptmp*ctH}; + p4.set(pHB[0],pHB[1],pHB[2],pHB[3]); + xuhad->init( getDaug(0), p4); + + + if (_storeWhat ) { + // cludge to store the hidden parameter what with the decay; + // the lifetime of the Xu is abused for this purpose. + // tau = 1 ps corresponds to ctau = 0.3 mm -> in order to + // stay well below BaBars sensitivity we take what/(10000 GeV). + // To extract what back from the StdHepTrk its necessary to get + // delta_ctau = Xu->decayVtx()->point().distanceTo(XuDaughter->decayVtx()->point()); + // + // what = delta_ctau * 100000 * Mass_Xu/Momentum_Xu + // + xuhad->setLifetime(what/10000.); + } + + + // calculate the W 4 vector in the B Meson restrframe + + double apWB = ptmp; + double pWB[4] = {mBB-EX,-pHB[1],-pHB[2],-pHB[3]}; + + // first go in the W restframe and calculate the lepton and + // the neutrino in the W frame + + double mW2 = mBB*mBB + sh - 2*mBB*EX; + double beta = ptmp/pWB[0]; + double gamma = pWB[0]/sqrt(mW2); + + double pLW[4]; + + ptmp = (mW2-ml*ml)/2/sqrt(mW2); + pLW[0] = sqrt(ml*ml + ptmp*ptmp); + + double ctL = (El - gamma*pLW[0])/beta/gamma/ptmp; + if ( ctL < -1 ) ctL = -1; + if ( ctL > 1 ) ctL = 1; + sttmp = sqrt(1-ctL*ctL); + + // eX' = eZ x eW + double xW[3] = {-pWB[2],pWB[1],0}; + // eZ' = eW + double zW[3] = {pWB[1]/apWB,pWB[2]/apWB,pWB[3]/apWB}; + + double lx = sqrt(xW[0]*xW[0]+xW[1]*xW[1]); + for (j=0;j<2;j++) + xW[j] /= lx; + + // eY' = eZ' x eX' + double yW[3] = {-pWB[1]*pWB[3],-pWB[2]*pWB[3],pWB[1]*pWB[1]+pWB[2]*pWB[2]}; + double ly = sqrt(yW[0]*yW[0]+yW[1]*yW[1]+yW[2]*yW[2]); + for (j=0;j<3;j++) + yW[j] /= ly; + + // p_lep = |p_lep| * ( sin(Theta) * cos(Phi) * eX' + // + sin(Theta) * sin(Phi) * eY' + // + cos(Theta) * eZ') + for (j=0;j<3;j++) + pLW[j+1] = sttmp*cos(phL)*ptmp*xW[j] + + sttmp*sin(phL)*ptmp*yW[j] + + ctL *ptmp*zW[j]; + + double apLW = ptmp; + + // boost them back in the B Meson restframe + + double appLB = beta*gamma*pLW[0] + gamma*ctL*apLW; + + ptmp = sqrt(El*El-ml*ml); + double ctLL = appLB/ptmp; + + if ( ctLL > 1 ) ctLL = 1; + if ( ctLL < -1 ) ctLL = -1; + + double pLB[4] = {El,0,0,0}; + double pNB[4] = {pWB[0]-El,0,0,0}; + + for (j=1;j<4;j++) { + pLB[j] = pLW[j] + (ctLL*ptmp - ctL*apLW)/apWB*pWB[j]; + pNB[j] = pWB[j] - pLB[j]; + } + + p4.set(pLB[0],pLB[1],pLB[2],pLB[3]); + lepton->init( getDaug(1), p4); + + p4.set(pNB[0],pNB[1],pNB[2],pNB[3]); + neutrino->init( getDaug(2), p4); + + return ; + +} + +double EvtVubBLNPHybrid::rate3(double Pp, double Pl, double Pm) { + + // rate3 in units of GF^2*Vub^2/pi^3 + + double factor = 1.0/16*(mBB-Pp)*U1lo(muh, mui)*pow( (Pm - Pp)/(mBB - Pp), alo(muh, mui)); + + double doneJS = DoneJS(Pp, Pm, mui); + double done1 = Done1(Pp, Pm, mui); + double done2 = Done2(Pp, Pm, mui); + double done3 = Done3(Pp, Pm, mui); + + // The EvtSimpsonIntegrator returns zero for bad integrals. + // So if any of the integrals are zero (ie bad), return zero. + // This will cause pdf = 0, so the event will not pass. + // I hope this will not introduce a bias. + if (doneJS*done1*done2*done3 == 0.0) { + //cout << "Integral failed: (Pp, Pm, Pl) = (" << Pp << ", " << Pm << ", " << Pl << ")" << endl; + return 0.0; + } + // if (doneJS*done1*done2*done3 != 0.0) { + // cout << "Integral OK: (Pp, Pm, Pl) = (" << Pp << ", " << Pm << ", " << Pl << ")" << endl; + //} + + double f1 = F1(Pp, Pm, muh, mui, mubar, doneJS, done1); + double f2 = F2(Pp, Pm, muh, mui, mubar, done3); + double f3 = F3(Pp, Pm, muh, mui, mubar, done2); + double answer = factor*( (mBB + Pl - Pp - Pm)*(Pm - Pl)*f1 + 2*(Pl - Pp)*(Pm - Pl)*f2 + (mBB - Pm)*(Pm - Pp)*f3 ); + return answer; + +} + +double EvtVubBLNPHybrid::F1(double Pp, double Pm, double muh, double mui, double mubar, double doneJS, double done1) { + + std::vector vars(12); + vars[0] = Pp; + vars[1] = Pm; + for (int j=2;j<12;j++) {vars[j] = gvars[j];} + + double y = (Pm - Pp)/(mBB - Pp); + double ah = CF*alphas(muh, vars)/4/M_PI; + double ai = CF*alphas(mui, vars)/4/M_PI; + double abar = CF*alphas(mubar, vars)/4/M_PI; + double lambda1 = -mupisq; + + double t1 = -4*ai/(Pp - Lbar)*(2*log((Pp - Lbar)/mui) + 1); + double t2 = 1 + dU1nlo(muh, mui) + anlo(muh, mui)*log(y); + double t3 = -4.0*pow(log(y*mb/muh),2) + 10.0*log(y*mb/muh) - 4.0*log(y) - 2.0*log(y)/(1-y) - 4.0*PolyLog(2, 1-y) - M_PI*M_PI/6.0 - 12.0; + double t4 = 2*pow( log(y*mb*Pp/(mui*mui)), 2) - 3*log(y*mb*Pp/(mui*mui)) + 7 - M_PI*M_PI; + + double t5 = -wS(Pp) + 2*t(Pp) + (1.0/y - 1.0)*(u(Pp) - v(Pp)); + double t6 = -(lambda1 + 3.0*lambda2)/3.0 + 1.0/pow(y,2)*(4.0/3.0*lambda1 - 2.0*lambda2); + + double shapePp = Shat(Pp, vars); + + double answer = (t2 + ah*t3 + ai*t4)*shapePp + ai*doneJS + 1/(mBB - Pp)*(flag2*abar*done1 + flag1*t5) + 1/pow(mBB - Pp, 2)*flag3*shapePp*t6; + if (Pp > Lbar + mui/exp(0.5)) answer = answer + t1; + return answer; + +} + +double EvtVubBLNPHybrid::F2(double Pp, double Pm, double muh, double mui, double mubar, double done3) { + + std::vector vars(12); + vars[0] = Pp; + vars[1] = Pm; + for (int j=2;j<12;j++) {vars[j] = gvars[j];} + + double y = (Pm - Pp)/(mBB - Pp); + double lambda1 = -mupisq; + double ah = CF*alphas(muh, vars)/4/M_PI; + double abar = CF*alphas(mubar, vars)/4/M_PI; + + double t6 = -wS(Pp) - 2*t(Pp) + 1.0/y*(t(Pp) + v(Pp)); + double t7 = 1/pow(y,2)*(2.0/3.0*lambda1 + 4.0*lambda2) - 1/y*(2.0/3.0*lambda1 + 3.0/2.0*lambda2); + + double shapePp = Shat(Pp, vars); + + double answer = ah*log(y)/(1-y)*shapePp + 1/(mBB - Pp)*(flag2*abar*0.5*done3 + flag1/y*t6) + 1.0/pow(mBB - Pp,2)*flag3*shapePp*t7; + return answer; + +} + +double EvtVubBLNPHybrid::F3(double Pp, double Pm, double muh, double mui, double mubar, double done2) { + + std::vector vars(12); + vars[0] = Pp; + vars[1] = Pm; + for (int j=2;j<12;j++) {vars[j] = gvars[j];} + + double y = (Pm - Pp)/(mBB - Pp); + double lambda1 = -mupisq; + double abar = CF*alphas(mubar, vars)/4/M_PI; + + double t7 = 1.0/pow(y,2)*(-2.0/3.0*lambda1 + lambda2); + + double shapePp = Shat(Pp, vars); + + double answer = 1.0/(Pm - Pp)*flag2*0.5*y*abar*done2 + 1.0/pow(mBB-Pp,2)*flag3*shapePp*t7; + return answer; + +} + +double EvtVubBLNPHybrid::DoneJS(double Pp, double Pm, double mui) { + + std::vector vars(12); + vars[0] = Pp; + vars[1] = Pm; + for (int j=2;j<12;j++) {vars[j] = gvars[j];} + + double lowerlim = 0.001*Pp; + double upperlim = (1.0-0.001)*Pp; + + EvtItgPtrFunction *func = new EvtItgPtrFunction(&IntJS, lowerlim, upperlim, vars); + EvtItgSimpsonIntegrator *integ = new EvtItgSimpsonIntegrator(*func, precision, maxLoop); + double myintegral = integ->evaluate(lowerlim, upperlim); + delete integ; + delete func; + return myintegral; + +} + +double EvtVubBLNPHybrid::Done1(double Pp, double Pm, double mui) { + + std::vector vars(12); + vars[0] = Pp; + vars[1] = Pm; + for (int j=2;j<12;j++) {vars[j] = gvars[j];} + + double lowerlim = 0.001*Pp; + double upperlim = (1.0-0.001)*Pp; + + EvtItgPtrFunction *func = new EvtItgPtrFunction(&Int1, lowerlim, upperlim, vars); + EvtItgSimpsonIntegrator *integ = new EvtItgSimpsonIntegrator(*func, precision, maxLoop); + double myintegral = integ->evaluate(lowerlim, upperlim); + delete integ; + delete func; + return myintegral; + +} + +double EvtVubBLNPHybrid::Done2(double Pp, double Pm, double mui) { + + std::vector vars(12); + vars[0] = Pp; + vars[1] = Pm; + for (int j=2;j<12;j++) {vars[j] = gvars[j];} + + double lowerlim = 0.001*Pp; + double upperlim = (1.0-0.001)*Pp; + + EvtItgPtrFunction *func = new EvtItgPtrFunction(&Int2, lowerlim, upperlim, vars); + EvtItgSimpsonIntegrator *integ = new EvtItgSimpsonIntegrator(*func, precision, maxLoop); + double myintegral = integ->evaluate(lowerlim, upperlim); + delete integ; + delete func; + return myintegral; + +} + +double EvtVubBLNPHybrid::Done3(double Pp, double Pm, double mui) { + + std::vector vars(12); + vars[0] = Pp; + vars[1] = Pm; + for (int j=2;j<12;j++) {vars[j] = gvars[j];} + + double lowerlim = 0.001*Pp; + double upperlim = (1.0-0.001)*Pp; + + EvtItgPtrFunction *func = new EvtItgPtrFunction(&Int3, lowerlim, upperlim, vars); + EvtItgSimpsonIntegrator *integ = new EvtItgSimpsonIntegrator(*func, precision, maxLoop); + double myintegral = integ->evaluate(lowerlim, upperlim); + delete integ; + delete func; + return myintegral; + +} + +double EvtVubBLNPHybrid::Int1(double what, const std::vector &vars) { + return Shat(what, vars)*g1(what, vars); +} + +double EvtVubBLNPHybrid::Int2(double what, const std::vector &vars) { + return Shat(what, vars)*g2(what, vars); +} + +double EvtVubBLNPHybrid::Int3(double what, const std::vector &vars) { + return Shat(what, vars)*g3(what, vars); +} + +double EvtVubBLNPHybrid::IntJS(double what, const std::vector &vars) { + + double Pp = vars[0]; + double Pm = vars[1]; + double mui = vars[2]; + double mBB = vars[5]; + double mb = vars[6]; + double y = (Pm - Pp)/(mBB - Pp); + + return 1/(Pp-what)*(Shat(what, vars) - Shat(Pp, vars))*(4*log(y*mb*(Pp-what)/(mui*mui)) - 3); +} + +double EvtVubBLNPHybrid::g1(double w, const std::vector &vars) { + + double Pp = vars[0]; + double Pm = vars[1]; + double mBB = vars[5]; + double y = (Pm - Pp)/(mBB - Pp); + double x = (Pp - w)/(mBB - Pp); + + double q1 = (1+x)*(1+x)*y*(x+y); + double q2 = y*(-9 + 10*y) + x*x*(-12.0 + 13.0*y) + 2*x*(-8.0 + 6*y + 3*y*y); + double q3 = 4/x*log(y + y/x); + double q4 = 3.0*pow(x,4)*(-2.0 + y) - 2*pow(y,3) - 4*pow(x,3)*(2.0+y) - 2*x*y*y*(4+y) - x*x*y*(12 + 4*y + y*y); + double q5 = log(1 + y/x); + + double answer = q2/q1 - q3 - 2*q4*q5/(q1*y*x); + return answer; + +} + +double EvtVubBLNPHybrid::g2(double w, const std::vector &vars) { + + double Pp = vars[0]; + double Pm = vars[1]; + double mBB = vars[5]; + double y = (Pm - Pp)/(mBB - Pp); + double x = (Pp - w)/(mBB - Pp); + + double q1 = (1+x)*(1+x)*pow(y,3)*(x+y); + double q2 = 10.0*pow(x,4) + y*y + 3.0*pow(x,2)*y*(10.0+y) + pow(x,3)*(12.0+19.0*y) + x*y*(8.0 + 4.0*y + y*y); + double q3 = 5*pow(x,4) + 2.0*y*y + 6.0*pow(x,3)*(1.0+2.0*y) + 4.0*x*y*(1+2.0*y) + x*x*y*(18.0+5.0*y); + double q4 = log(1 + y/x); + + double answer = 2.0/q1*( y*q2 - 2*x*q3*q4); + return answer; + +} + +double EvtVubBLNPHybrid::g3(double w, const std::vector &vars) { + + double Pp = vars[0]; + double Pm = vars[1]; + double mBB = vars[5]; + double y = (Pm - Pp)/(mBB - Pp); + double x = (Pp - w)/(mBB - Pp); + + double q1 = (1+x)*(1+x)*pow(y,3)*(x+y); + double q2 = 2.0*pow(y,3)*(-11.0+2.0*y) - 10.0*pow(x,4)*(6 - 6*y + y*y) + x*y*y*(-94.0 + 29.0*y + 2.0*y*y) + 2.0*x*x*y*(-72.0 +18.0*y + 13.0*y*y) - x*x*x*(72.0 + 42.0*y - 70.0*y*y + 3.0*y*y*y); + double q3 = -6.0*x*(-5.0+y)*pow(y,3) + 4*pow(y,4) + 5*pow(x,5)*(6-6*y + y*y) - 4*x*x*y*y*(-20.0 + 6*y + y*y) + pow(x,3)*y*(90.0 - 10.0*y - 28.0*y*y + y*y*y) + pow(x,4)*(36.0 + 36.0*y - 50.0*y*y + 4*y*y*y); + double q4 = log(1 + y/x); + + double answer = q2/q1 + 2/q1/y*q3*q4; + return answer; + +} + + +double EvtVubBLNPHybrid::Shat(double w, const std::vector &vars) { + + double mui = vars[2]; + double b = vars[3]; + double Lambda = vars[4]; + double wzero = vars[7]; + int itype = (int)vars[11]; + + double norm = 0.0; + double shape = 0.0; + + if (itype == 1) { + + double Lambar = (Lambda/b)*(Gamma(1+b)-Gamma(1+b,b*wzero/Lambda))/(Gamma(b) - Gamma(b, b*wzero/Lambda)); + double muf = wzero - Lambar; + double mupisq = 3*pow(Lambda,2)/pow(b,2)*(Gamma(2+b) - Gamma(2+b, b*wzero/Lambda))/(Gamma(b) - Gamma(b, b*wzero/Lambda)) - 3*Lambar*Lambar; + norm = Mzero(muf, mui, mupisq, vars)*Gamma(b)/(Gamma(b) - Gamma(b, b*wzero/Lambda)); + shape = pow(b,b)/Lambda/Gamma(b)*pow(w/Lambda, b-1)*exp(-b*w/Lambda); + } + + if (itype == 2) { + double dcoef = pow( Gamma(0.5*(1+b))/Gamma(0.5*b), 2); + double t1 = wzero*wzero*dcoef/(Lambda*Lambda); + double Lambar = Lambda*(Gamma(0.5*(1+b)) - Gamma(0.5*(1+b),t1))/pow(dcoef, 0.5)/(Gamma(0.5*b) - Gamma(0.5*b, t1)); + double muf = wzero - Lambar; + double mupisq = 3*Lambda*Lambda*( Gamma(1+0.5*b) - Gamma(1+0.5*b, t1))/dcoef/(Gamma(0.5*b) - Gamma(0.5*b, t1)) - 3*Lambar*Lambar; + norm = Mzero(muf, mui, mupisq, vars)*Gamma(0.5*b)/(Gamma(0.5*b) - Gamma(0.5*b, wzero*wzero*dcoef/(Lambda*Lambda))); + shape = 2*pow(dcoef, 0.5*b)/Lambda/Gamma(0.5*b)*pow(w/Lambda, b-1)*exp(-dcoef*w*w/(Lambda*Lambda)); + } + + double answer = norm*shape; + return answer; +} + +double EvtVubBLNPHybrid::Mzero(double muf, double mu, double mupisq, const std::vector &vars) { + + double CF = 4.0/3.0; + double amu = CF*alphas(mu, vars)/M_PI; + double answer = 1 - amu*( pow(log(muf/mu), 2) + log(muf/mu) + M_PI*M_PI/24.0) + amu*(log(muf/mu) - 0.5)*mupisq/(3*muf*muf); + return answer; + +} + +double EvtVubBLNPHybrid::wS(double w) { + + double answer = (Lbar - w)*Shat(w, gvars); + return answer; +} + +double EvtVubBLNPHybrid::t(double w) { + + double t1 = -3*lambda2/mupisq*(Lbar - w)*Shat(w, gvars); + double myf = myfunction(w, Lbar, moment2); + double myBIK = myfunctionBIK(w, Lbar, moment2); + double answer = t1; + + if (isubl == 1) answer = t1; + if (isubl == 3) answer = t1 - myf; + if (isubl == 4) answer = t1 + myf; + if (isubl == 5) answer = t1 - myBIK; + if (isubl == 6) answer = t1 + myBIK; + + return answer; +} + +double EvtVubBLNPHybrid::u(double w) { + + double u1 = -2*(Lbar - w)*Shat(w, gvars); + double myf = myfunction(w, Lbar, moment2); + double myBIK = myfunctionBIK(w, Lbar, moment2); + double answer = u1; + + if (isubl == 1) answer = u1; + if (isubl == 3) answer = u1 + myf; + if (isubl == 4) answer = u1 - myf; + if (isubl == 5) answer = u1 + myBIK; + if (isubl == 6) answer = u1 - myBIK; + + return answer; +} + +double EvtVubBLNPHybrid::v(double w) { + + double v1 = 3*lambda2/mupisq*(Lbar - w)*Shat(w, gvars); + double myf = myfunction(w, Lbar, moment2); + double myBIK = myfunctionBIK(w, Lbar, moment2); + double answer = v1; + + if (isubl == 1) answer = v1; + if (isubl == 3) answer = v1 - myf; + if (isubl == 4) answer = v1 + myf; + if (isubl == 5) answer = v1 - myBIK; + if (isubl == 6) answer = v1 + myBIK; + + return answer; +} + +double EvtVubBLNPHybrid::myfunction(double w, double Lbar, double mom2) { + + double bval = 5.0; + double x = w/Lbar; + double factor = 0.5*mom2*pow(bval/Lbar, 3); + double answer = factor*exp(-bval*x)*(1 - 2*bval*x + 0.5*bval*bval*x*x); + return answer; + +} + +double EvtVubBLNPHybrid::myfunctionBIK(double w, double Lbar, double mom2) { + + double aval = 10.0; + double normBIK = (4 - M_PI)*M_PI*M_PI/8/(2-M_PI)/aval + 1; + double z = 3*M_PI*w/8/Lbar; + double q = M_PI*M_PI*2*pow(M_PI*aval, 0.5)*exp(-aval*z*z)/(4*M_PI - 8)*(1 - 2*pow(aval/M_PI, 0.5)*z) + 8/pow(1+z*z, 4)*(z*log(z) + 0.5*z*(1+z*z) - M_PI/4*(1-z*z)); + double answer = q/normBIK; + return answer; + +} + +double EvtVubBLNPHybrid::dU1nlo(double muh, double mui) { + + double ai = alphas(mui, gvars); + double ah = alphas(muh, gvars); + + double q1 = (ah - ai)/(4*M_PI*beta0); + double q2 = log(mb/muh)*Gamma1 + gp1; + double q3 = 4*beta1*(log(mb/muh)*Gamma0 + gp0) + Gamma2*(1-ai/ah); + double q4 = beta1*beta1*Gamma0*(-1.0 + ai/ah)/(4*pow(beta0,3)); + double q5 = -beta2*Gamma0*(1.0 + ai/ah) + beta1*Gamma1*(3 - ai/ah); + double q6 = beta1*beta1*Gamma0*(ah - ai)/beta0 - beta2*Gamma0*ah + beta1*Gamma1*ai; + + double answer = q1*(q2 - q3/4/beta0 + q4 + q5/(4*beta0*beta0)) + 1/(8*M_PI*beta0*beta0*beta0)*log(ai/ah)*q6; + return answer; +} + +double EvtVubBLNPHybrid::U1lo(double muh, double mui) { + double epsilon = 0.0; + double answer = pow(mb/muh, -2*aGamma(muh, mui, epsilon))*exp(2*Sfun(muh, mui, epsilon) - 2*agp(muh, mui, epsilon)); + return answer; +} + +double EvtVubBLNPHybrid::Sfun(double mu1, double mu2, double epsilon) { + double a1 = alphas(mu1, gvars)/4/M_PI; + double a2 = alphas(mu2, gvars)/alphas(mu1, gvars); + + double answer = S0(a1,a2) + S1(a1,a2) + epsilon*S2(a1,a2); + return answer; + +} + +double EvtVubBLNPHybrid::S0(double a1, double r) { + double answer = -Gamma0/(4.0*beta0*beta0*a1)*(-1.0 + 1.0/r + log(r)); + return answer; +} + +double EvtVubBLNPHybrid::S1(double a1, double r) { + double answer = Gamma0/(4*beta0*beta0)*(0.5*log(r)*log(r)*beta1/beta0 + (Gamma1/Gamma0 - beta1/beta0)*(1 - r + log(r))); + return answer; +} + +double EvtVubBLNPHybrid::S2(double a1, double r) { + + double w1 = pow(beta1,2)/pow(beta0,2) - beta2/beta0 - beta1*Gamma1/(beta0*Gamma0) + Gamma2/Gamma0; + double w2 = pow(beta1,2)/pow(beta0,2) - beta2/beta0; + double w3 = beta1*Gamma1/(beta0*Gamma0) - beta2/beta0; + double w4 = a1*Gamma0/(4*beta0*beta0); + + double answer = w4*(-0.5*pow(1-r,2)*w1 + w2*(1-r)*log(r) + w3*(1-r+r*log(r))); + return answer; +} + +double EvtVubBLNPHybrid::aGamma(double mu1, double mu2, double epsilon) { + double a1 = alphas(mu1, gvars); + double a2 = alphas(mu2, gvars); + double answer = Gamma0/(2*beta0)*log(a2/a1) + epsilon*(a2-a1)/(8.0*M_PI)*(Gamma1/beta0 - beta1*Gamma0/(beta0*beta0)); + return answer; +} + +double EvtVubBLNPHybrid::agp(double mu1, double mu2, double epsilon) { + double a1 = alphas(mu1, gvars); + double a2 = alphas(mu2, gvars); + double answer = gp0/(2*beta0)*log(a2/a1) + epsilon*(a2-a1)/(8.0*M_PI)*(gp1/beta0 - beta1*gp0/(beta0*beta0)); + return answer; +} + +double EvtVubBLNPHybrid::alo(double muh, double mui) { return -2.0*aGamma(muh, mui, 0);} + +double EvtVubBLNPHybrid::anlo(double muh, double mui) { // d/depsilon of aGamma + + double ah = alphas(muh, gvars); + double ai = alphas(mui, gvars); + double answer = (ah-ai)/(8.0*M_PI)*(Gamma1/beta0 - beta1*Gamma0/(beta0*beta0)); + return answer; +} + +double EvtVubBLNPHybrid::alphas(double mu, const std::vector &vars) { + + // Note: Lambda4 and Lambda5 depend on mbMS = 4.25 + // So if you change mbMS, then you will have to recalculate them. + + double beta0 = vars[8]; + double beta1 = vars[9]; + double beta2 = vars[10]; + + double Lambda4 = 0.298791; + double lg = 2*log(mu/Lambda4); + double answer = 4*M_PI/(beta0*lg)*( 1 - beta1*log(lg)/(beta0*beta0*lg) + beta1*beta1/(beta0*beta0*beta0*beta0*lg*lg)*( (log(lg) - 0.5)*(log(lg) - 0.5) - 5.0/4.0 + beta2*beta0/(beta1*beta1))); + return answer; + +} + +double EvtVubBLNPHybrid::PolyLog(double v, double z) { + + if (z >= 1) cout << "Error in EvtVubBLNPHybrid: 2nd argument to PolyLog is >= 1." << endl; + + double sum = 0.0; + for (int k=1; k<101; k++) { + sum = sum + pow(z,k)/pow(k,v); + } + return sum; +} + +double EvtVubBLNPHybrid::Gamma(double z) +{ + if (z<=0) return 0; + + double v = lgamma(z); + return exp(v); +} + +double EvtVubBLNPHybrid::Gamma(double a, double x) +{ + double LogGamma; + /* if (x<0.0 || a<= 0.0) raise(SIGFPE);*/ + if(x<0.0) x=0.0; + if(a<=0.0)a=1.e-50; + LogGamma = lgamma(a); + if (x < (a+1.0)) + return gamser(a,x,LogGamma); + else + return 1.0-gammcf(a,x,LogGamma); +} + +/* ------------------Incomplete gamma function-----------------*/ +/* ------------------via its series representation-------------*/ + +double EvtVubBLNPHybrid::gamser(double a, double x, double LogGamma) +{ + double n; + double ap,del,sum; + + ap=a; + del=sum=1.0/a; + for (n=1;n rand + int middle; + + while (nBinsAbove > nBinsBelow+1) { + middle = (nBinsAbove + nBinsBelow+1)>>1; + if (ranNum >= _pf[middle]) { + nBinsBelow = middle; + } else { + nBinsAbove = middle; + } + } + + double bSize = _pf[nBinsAbove] - _pf[nBinsBelow]; + // binMeasure is always aProbFunc[nBinsBelow], + + if ( bSize == 0 ) { + // rand lies right in a bin of measure 0. Simply return the center + // of the range of that bin. (Any value between k/N and (k+1)/N is + // equally good, in this rare case.) + return (nBinsBelow + .5) * oOverBins; + } + + double bFract = (ranNum - _pf[nBinsBelow]) / bSize; + + return (nBinsBelow + bFract) * oOverBins; + +} + +double EvtVubBLNPHybrid::getWeight(double mX, double q2, double El) { + + int ibin_mX = -1; + int ibin_q2 = -1; + int ibin_El = -1; + + for (int i = 0; i < _nbins_mX; i++) { + if (mX >= _bins_mX[i]) ibin_mX = i; + } + for (int i = 0; i < _nbins_q2; i++) { + if (q2 >= _bins_q2[i]) ibin_q2 = i; + } + for (int i = 0; i < _nbins_El; i++) { + if (El >= _bins_El[i]) ibin_El = i; + } + int ibin = ibin_mX + ibin_q2*_nbins_mX + ibin_El*_nbins_mX*_nbins_q2; + + if ( (ibin_mX < 0) || (ibin_q2 < 0) || (ibin_El < 0) ) { + report(ERROR,"EvtVubHybrid") << "Cannot determine hybrid weight " + << "for this event " + << "-> assign weight = 0" << endl; + return 0.0; + } + + return _weights[ibin]; +} + + +void EvtVubBLNPHybrid::readWeights(int startArg) { + _weights = new double[_nbins]; + + double maxw = 0.0; + for (int i = 0; i < _nbins; i++, startArg++) { + _weights[i] = getArg(startArg); + if (_weights[i] > maxw) maxw = _weights[i]; + } + + if (maxw == 0) { + report(ERROR,"EvtVubBLNPHybrid") << "EvtVub generator expected at least one " + << " weight > 0, but found none! " + << "Will terminate execution!"< +#include "EvtGenBase/EvtDecayIncoherent.hh" + +class EvtParticle; + +class EvtVubBLNPHybrid:public EvtDecayIncoherent { + +public: + + EvtVubBLNPHybrid(); + virtual ~EvtVubBLNPHybrid(); + + std::string getName(); + + EvtDecayBase* clone(); + + void initProbMax(); + + void init(); + + void decay(EvtParticle *Bmeson); + + void readWeights(int startArg=0); + + double getWeight(double mX, double q2, double El); + +private: + //Input for hybrid modell + enum { nParameters = 10, nVariables = 3 }; + bool _noHybrid; + bool _storeWhat; + int _nbins_mX; + int _nbins_q2; + int _nbins_El; + int _nbins; + double _masscut; + double * _bins_mX; + double * _bins_q2; + double * _bins_El; + double * _weights; + + // Input parameters + double mBB; + double lambda2; + + // Shape function parameters + double b; + double Lambda; + double Ecut; + double wzero; + + // SF and SSF modes + int itype; + double dtype; + int isubl; + + // flags + int flag1; + int flag2; + int flag3; + + // Quark mass + double mb; + + // Matching scales + double muh; + double mui; + double mubar; + + // Perturbative quantities + double CF; + double CA; + + double beta0; + double beta1; + double beta2; + + double zeta3; + + double Gamma0; + double Gamma1; + double Gamma2; + + double gp0; + double gp1; + + double Lbar; + double mupisq; + double moment2; + + int flagpower; + int flag2loop; + + int maxLoop; + double precision; + + std::vector gvars; + + double rate3(double Pp, double Pl, double Pm); + double F1(double Pp, double Pm, double muh, double mui, double mubar, double doneJS, double done1); + double F2(double Pp, double Pm, double muh, double mui, double mubar, double done3); + double F3(double Pp, double Pm, double muh, double mui, double mubar, double done2); + double DoneJS(double Pp, double Pm, double mui); + double Done1(double Pp, double Pm, double mui); + double Done2(double Pp, double Pm, double mui); + double Done3(double Pp, double Pm, double mui); + static double IntJS(double what, const std::vector &vars); + static double Int1(double what, const std::vector &vars); + static double Int2(double what, const std::vector &vars); + static double Int3(double what, const std::vector &vars); + static double g1(double w, const std::vector &vars); + static double g2(double w, const std::vector &vars); + static double g3(double w, const std::vector &vars); + static double Shat(double w, const std::vector &vars); + static double Mzero(double muf, double mu, double mupisq, const std::vector &vars); + double wS(double w); + double t(double w); + double u(double w); + double v(double w); + double myfunction(double w, double Lbar, double mom2); + double myfunctionBIK(double w, double Lbar, double mom2); + double dU1nlo(double muh, double mui); + double U1lo(double muh, double mui); + double Sfun(double mu1, double mu2, double epsilon); + double S0(double a1, double r); + double S1(double a1, double r); + double S2(double a1, double r); + double aGamma(double mu1, double mu2, double epsilon); + double agp(double mu1, double mu2, double epsilon); + double alo(double muh, double mui); + double anlo(double muh, double mui); // d/depsilon of aGamma + static double alphas(double mu, const std::vector &vars); + double PolyLog(double v, double z); + static double Gamma(double z); + static double Gamma(double a, double x); + static double gamser(double a, double x, double LogGamma); + static double gammcf(double a, double x, double LogGamma); + double findBLNPWhat(); + std::vector _pf; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtVubHybrid.cxx b/TEvtGen/EvtGenModels/EvtVubHybrid.cxx new file mode 100644 index 00000000000..49c2dee0fd5 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVubHybrid.cxx @@ -0,0 +1,477 @@ +//--------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVubHybrid.cc +// +// Description: Routine to decay a particle according to phase space. +// +// Modification history: +// +// Jochen Dingfelder February 1, 2005 Created Module as update of the +// original module EvtVub by Sven Menke +//--------------------------------------------------------------------------- +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtVubHybrid.hh" +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenModels/EvtPFermi.hh" +#include "EvtGenModels/EvtVubdGamma.hh" +#include "EvtGenBase/EvtRandom.hh" + +#include +#include +#include +using std::ifstream; +using std::cout; +using std::endl; + + +// _noHybrid will be set TRUE if the DECAY.DEC file has no binning or weights +// _storeQplus should alwasy be TRUE: writes out Fermi motion parameter + +EvtVubHybrid::EvtVubHybrid() + : _noHybrid(false), _storeQplus(true), + _mb(4.62), _a(2.27), _alphas(0.22), _dGMax(3.), + _nbins_mX(0), _nbins_q2(0), _nbins_El(0), _nbins(0), + _masscut(0.28), _bins_mX(0), _bins_q2(0), _bins_El(0), + _weights(0), _dGamma(0) +{} + +EvtVubHybrid::~EvtVubHybrid() { + delete _dGamma; + delete [] _bins_mX; + delete [] _bins_q2; + delete [] _bins_El; + delete [] _weights; + +} + +std::string EvtVubHybrid::getName(){ + + return "VUBHYBRID"; + +} + +EvtDecayBase* EvtVubHybrid::clone(){ + + return new EvtVubHybrid; + +} + +void EvtVubHybrid::init(){ + + // check that there are at least 3 arguments + if (getNArg() < EvtVubHybrid::nParameters) { + report(ERROR,"EvtVubHybrid") << "EvtVub generator expected " + << "at least " << EvtVubHybrid::nParameters + << " arguments but found: " << getNArg() + << "\nWill terminate execution!"< Xu l nu events " + << "without using the hybrid reweighting." + << endl; + _noHybrid = true; + } else if (getNArg() < EvtVubHybrid::nParameters+EvtVubHybrid::nVariables) { + report(ERROR,"EvtVubHybrid") << "EvtVub could not read number of bins for " + << "all variables used in the reweighting\n" + << "Will terminate execution!" << endl; + ::abort(); + } + + // check that there are 3 daughters + checkNDaug(3); + + // read minimum required parameters from decay.dec + _mb = getArg(0); + _a = getArg(1); + _alphas = getArg(2); + + // the maximum dGamma*p2 value depends on alpha_s only: + const double dGMax0 = 3.; + _dGMax = 0.21344+8.905*_alphas; + if ( _dGMax < dGMax0 ) _dGMax = dGMax0; + + // for the Fermi Motion we need a B-Meson mass - but it's not critical + // to get an exact value; in order to stay in the phase space for + // B+- and B0 use the smaller mass + + static double mB0 = EvtPDL::getMaxMass(EvtPDL::getId("B0")); + static double mBP = EvtPDL::getMaxMass(EvtPDL::getId("B+")); + static double mB = (mB0 u-bar specflav l+ nu + + EvtParticle *xuhad, *lepton, *neutrino; + EvtVector4R p4; + // R. Faccini 21/02/03 + // move the reweighting up , before also shooting the fermi distribution + double x,z,p2; + double sh=0.0; + double mB,ml,xlow,xhigh,qplus; + double El=0.0; + double Eh=0.0; + double kplus; + double q2, mX; + + const double lp2epsilon=-10; + bool rew(true); + while(rew){ + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + xuhad=p->getDaug(0); + lepton=p->getDaug(1); + neutrino=p->getDaug(2); + + mB = p->mass(); + ml = lepton->mass(); + + xlow = -_mb; + xhigh = mB-_mb; + + // Fermi motion does not need to be computed inside the + // tryit loop as m_b in Gamma0 does not need to be replaced by (m_b+kplus). + // The difference however should be of the Order (lambda/m_b)^2 which is + // beyond the considered orders in the paper anyway ... + + // for alpha_S = 0 and a mass cut on X_u not all values of kplus are + // possible. The maximum value is mB/2-_mb + sqrt(mB^2/4-_masscut^2) + kplus = 2*xhigh; + + while( kplus >= xhigh || kplus <= xlow + || (_alphas == 0 && kplus >= mB/2-_mb + + sqrt(mB*mB/4-_masscut*_masscut))) { + kplus = findPFermi(); //_pFermi->shoot(); + kplus = xlow + kplus*(xhigh-xlow); + } + qplus = mB-_mb-kplus; + if( (mB-qplus)/2.<=ml) continue; + + int tryit = 1; + while (tryit) { + + x = EvtRandom::Flat(); + z = EvtRandom::Flat(0,2); + p2=EvtRandom::Flat(); + p2 = pow(10,lp2epsilon*p2); + + El = x*(mB-qplus)/2; + if ( El > ml && El < mB/2) { + + Eh = z*(mB-qplus)/2+qplus; + if ( Eh > 0 && Eh < mB ) { + + sh = p2*pow(mB-qplus,2)+2*qplus*(Eh-qplus)+qplus*qplus; + if ( sh > _masscut*_masscut + && mB*mB + sh - 2*mB*Eh > ml*ml) { + + double xran = EvtRandom::Flat(); + + double y = _dGamma->getdGdxdzdp(x,z,p2)/_dGMax*p2; + + if ( y > 1 ) report(WARNING,"EvtVubHybrid") <<"EvtVubHybrid decay probability > 1 found: " << y << endl; + if ( y >= xran ) tryit = 0; + } + } + } + } + + // compute all kinematic variables needed for reweighting (J. Dingfelder) + mX = sqrt(sh); + q2 = mB*mB + sh - 2*mB*Eh; + + // Reweighting in bins of mX, q2, El (J. Dingfelder) + if (_nbins>0) { + double xran1 = EvtRandom::Flat(); + double w = 1.0; + if (!_noHybrid) w = getWeight(mX, q2, El); + if ( w >= xran1 ) rew = false; + } + else { + rew = false; + } + } + + // o.k. we have the three kineamtic variables + // now calculate a flat cos Theta_H [-1,1] distribution of the + // hadron flight direction w.r.t the B flight direction + // because the B is a scalar and should decay isotropic. + // Then chose a flat Phi_H [0,2Pi] w.r.t the B flight direction + // and and a flat Phi_L [0,2Pi] in the W restframe w.r.t the + // W flight direction. + + double ctH = EvtRandom::Flat(-1,1); + double phH = EvtRandom::Flat(0,2*M_PI); + double phL = EvtRandom::Flat(0,2*M_PI); + + // now compute the four vectors in the B Meson restframe + + double ptmp,sttmp; + // calculate the hadron 4 vector in the B Meson restframe + + sttmp = sqrt(1-ctH*ctH); + ptmp = sqrt(Eh*Eh-sh); + double pHB[4] = {Eh,ptmp*sttmp*cos(phH),ptmp*sttmp*sin(phH),ptmp*ctH}; + p4.set(pHB[0],pHB[1],pHB[2],pHB[3]); + xuhad->init( getDaug(0), p4); + + if (_storeQplus ) { + // cludge to store the hidden parameter q+ with the decay; + // the lifetime of the Xu is abused for this purpose. + // tau = 1 ps corresponds to ctau = 0.3 mm -> in order to + // stay well below BaBars sensitivity we take q+/(10000 GeV) which + // goes up to 0.0005 in the most extreme cases as ctau in mm. + // To extract q+ back from the StdHepTrk its necessary to get + // delta_ctau = Xu->anyDaughter->getVertexTime()-Xu->getVertexTime() + // where these pseudo calls refere to the StdHep time stored at + // the production vertex in the lab for each particle. The boost + // has to be reversed and the result is: + // + // q+ = delta_ctau * 10000 GeV/mm * Mass_Xu/Energy_Xu + // + xuhad->setLifetime(qplus/10000.); + } + + // calculate the W 4 vector in the B Meson restrframe + + double apWB = ptmp; + double pWB[4] = {mB-Eh,-pHB[1],-pHB[2],-pHB[3]}; + + // first go in the W restframe and calculate the lepton and + // the neutrino in the W frame + + double mW2 = mB*mB + sh - 2*mB*Eh; + double beta = ptmp/pWB[0]; + double gamma = pWB[0]/sqrt(mW2); + + double pLW[4]; + + ptmp = (mW2-ml*ml)/2/sqrt(mW2); + pLW[0] = sqrt(ml*ml + ptmp*ptmp); + + double ctL = (El - gamma*pLW[0])/beta/gamma/ptmp; + if ( ctL < -1 ) ctL = -1; + if ( ctL > 1 ) ctL = 1; + sttmp = sqrt(1-ctL*ctL); + + // eX' = eZ x eW + double xW[3] = {-pWB[2],pWB[1],0}; + // eZ' = eW + double zW[3] = {pWB[1]/apWB,pWB[2]/apWB,pWB[3]/apWB}; + + double lx = sqrt(xW[0]*xW[0]+xW[1]*xW[1]); + for (j=0;j<2;j++) + xW[j] /= lx; + + // eY' = eZ' x eX' + double yW[3] = {-pWB[1]*pWB[3],-pWB[2]*pWB[3],pWB[1]*pWB[1]+pWB[2]*pWB[2]}; + double ly = sqrt(yW[0]*yW[0]+yW[1]*yW[1]+yW[2]*yW[2]); + for (j=0;j<3;j++) + yW[j] /= ly; + + // p_lep = |p_lep| * ( sin(Theta) * cos(Phi) * eX' + // + sin(Theta) * sin(Phi) * eY' + // + cos(Theta) * eZ') + for (j=0;j<3;j++) + pLW[j+1] = sttmp*cos(phL)*ptmp*xW[j] + + sttmp*sin(phL)*ptmp*yW[j] + + ctL *ptmp*zW[j]; + + double apLW = ptmp; + // calculate the neutrino 4 vector in the W restframe + //double pNW[4] = {sqrt(mW2)-pLW[0],-pLW[1],-pLW[2],-pLW[3]}; + + // boost them back in the B Meson restframe + + double appLB = beta*gamma*pLW[0] + gamma*ctL*apLW; + + ptmp = sqrt(El*El-ml*ml); + double ctLL = appLB/ptmp; + + if ( ctLL > 1 ) ctLL = 1; + if ( ctLL < -1 ) ctLL = -1; + + double pLB[4] = {El,0,0,0}; + double pNB[4] = {pWB[0]-El,0,0,0}; + + for (j=1;j<4;j++) { + pLB[j] = pLW[j] + (ctLL*ptmp - ctL*apLW)/apWB*pWB[j]; + pNB[j] = pWB[j] - pLB[j]; + } + + p4.set(pLB[0],pLB[1],pLB[2],pLB[3]); + lepton->init( getDaug(1), p4); + + p4.set(pNB[0],pNB[1],pNB[2],pNB[3]); + neutrino->init( getDaug(2), p4); + + return ; +} + + +double EvtVubHybrid::findPFermi() { + + double ranNum=EvtRandom::Flat(); + double oOverBins= 1.0/(float(_pf.size())); + int nBinsBelow = 0; // largest k such that I[k] is known to be <= rand + int nBinsAbove = _pf.size(); // largest k such that I[k] is known to be > rand + int middle; + + while (nBinsAbove > nBinsBelow+1) { + middle = (nBinsAbove + nBinsBelow+1)>>1; + if (ranNum >= _pf[middle]) { + nBinsBelow = middle; + } else { + nBinsAbove = middle; + } + } + + double bSize = _pf[nBinsAbove] - _pf[nBinsBelow]; + // binMeasure is always aProbFunc[nBinsBelow], + + if ( bSize == 0 ) { + // rand lies right in a bin of measure 0. Simply return the center + // of the range of that bin. (Any value between k/N and (k+1)/N is + // equally good, in this rare case.) + return (nBinsBelow + .5) * oOverBins; + } + + double bFract = (ranNum - _pf[nBinsBelow]) / bSize; + + return (nBinsBelow + bFract) * oOverBins; + +} + + +double EvtVubHybrid::getWeight(double mX, double q2, double El) { + + int ibin_mX = -1; + int ibin_q2 = -1; + int ibin_El = -1; + + for (int i = 0; i < _nbins_mX; i++) { + if (mX >= _bins_mX[i]) ibin_mX = i; + } + for (int i = 0; i < _nbins_q2; i++) { + if (q2 >= _bins_q2[i]) ibin_q2 = i; + } + for (int i = 0; i < _nbins_El; i++) { + if (El >= _bins_El[i]) ibin_El = i; + } + int ibin = ibin_mX + ibin_q2*_nbins_mX + ibin_El*_nbins_mX*_nbins_q2; + + if ( (ibin_mX < 0) || (ibin_q2 < 0) || (ibin_El < 0) ) { + report(ERROR,"EvtVubHybrid") << "Cannot determine hybrid weight " + << "for this event " + << "-> assign weight = 0" << endl; + return 0.0; + } + + return _weights[ibin]; +} + + +void EvtVubHybrid::readWeights(int startArg) { + _weights = new double[_nbins]; + + double maxw = 0.0; + for (int i = 0; i < _nbins; i++, startArg++) { + _weights[i] = getArg(startArg); + if (_weights[i] > maxw) maxw = _weights[i]; + } + + if (maxw == 0) { + report(ERROR,"EvtVubHybrid") << "EvtVub generator expected at least one " + << " weight > 0, but found none! " + << "Will terminate execution!"< + +class EvtParticle; +class EvtVubdGamma; +class RandGeneral; + +class EvtVubHybrid:public EvtDecayIncoherent { + +public: + + EvtVubHybrid(); + virtual ~EvtVubHybrid(); + + std::string getName(); + + EvtDecayBase* clone(); + + void initProbMax(); + + void init(); + + void decay(EvtParticle *p); + + void readWeights(int startArg=0); + + double getWeight(double mX, double q2, double El); + +private: + double findPFermi(); + + enum { nParameters = 3, nVariables = 3 }; + + bool _noHybrid; + bool _storeQplus; + + double _mb; // the b-quark pole mass in GeV (try 4.65 to 4.9) + double _a; // Parameter for the Fermi Motion (1.29 is good) + double _alphas; // Strong Coupling at m_b (around 0.24) + double _dGMax; // max dGamma*p2 value; + int _nbins_mX; + int _nbins_q2; + int _nbins_El; + int _nbins; + double _masscut; + double * _bins_mX; + double * _bins_q2; + double * _bins_El; + double * _weights; + EvtVubdGamma *_dGamma; // calculates the decay rate + std::vector _pf; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtVubNLO.cxx b/TEvtGen/EvtGenModels/EvtVubNLO.cxx new file mode 100644 index 00000000000..6b1ba572534 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVubNLO.cxx @@ -0,0 +1,654 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtVubNLO.cc +// +// Description: Routine to decay B->Xulnu according to Bosch, Lange, Neubert, and Paz hep-ph/0402094 +// Equation numbers refer to this paper +// +// Modification history: +// +// Riccardo Faccini Feb. 11, 2004 +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtVubNLO.hh" +#include +#include "EvtGenBase/EvtVector4R.hh" +#include "EvtGenModels/EvtItgSimpsonIntegrator.hh" +#include "EvtGenModels/EvtBtoXsgammaFermiUtil.hh" +#include "EvtGenModels/EvtItgPtrFunction.hh" +#include "EvtGenModels/EvtPFermi.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenBase/EvtDiLog.hh" + +using std::cout; +using std::endl; + +EvtVubNLO::~EvtVubNLO() { + delete [] _masses; + delete [] _weights; + cout <<" max pdf : "<<_gmax< sCoeffs(11); + sCoeffs[3] = _b; + sCoeffs[4] = _mb; + sCoeffs[5] = _mB; + sCoeffs[6] = _idSF; + sCoeffs[7] = lambda_SF(); + sCoeffs[8] = mu_h(); + sCoeffs[9] = mu_i(); + sCoeffs[10] = 1.; + _SFNorm = SFNorm(sCoeffs) ; // SF normalization; + + + cout << " pdf 0.66, 1.32 , 4.32 "<0 && _masses[i] <= _masses[i-1]) { + report(ERROR,"EvtGen") << "EvtVubNLO generator expected " + << " mass bins in ascending order!" + << "Will terminate execution!"<= 0, but found: " + <<_weights[i] < maxw ) maxw = _weights[i]; + } + if (maxw == 0) { + report(ERROR,"EvtGen") << "EvtVubNLO generator expected at least one " + << " weight > 0, but found none! " + << "Will terminate execution!"< u-bar specflav l+ nu + + EvtParticle *xuhad, *lepton, *neutrino; + EvtVector4R p4; + + double pp,pm,pl,ml,El(0.0),Eh(0.0),sh(0.0); + + + + p->initializePhaseSpace(getNDaug(),getDaugs()); + + xuhad=p->getDaug(0); + lepton=p->getDaug(1); + neutrino=p->getDaug(2); + + _mB = p->mass(); + ml = lepton->mass(); + + bool tryit = true; + + while (tryit) { + // pm=(E_H+P_H) + pm= EvtRandom::Flat(0.,1); + pm= pow(pm,1./3.)*_mB; + // pl=mB-2*El + pl = EvtRandom::Flat(0.,1); + pl=sqrt(pl)*pm; + // pp=(E_H-P_H) + pp = EvtRandom::Flat(0.,pl); + + _ntot++; + + El = (_mB-pl)/2.; + Eh = (pp+pm)/2; + sh = pp*pm; + + double pdf(0.); + if (ppml&& sh > _masses[0]*_masses[0]&& _mB*_mB + sh - 2*_mB*Eh > ml*ml) { + double xran = EvtRandom::Flat(0,_dGMax); + pdf = tripleDiff(pp,pl,pm); // triple differential distribution + // cout <<" P+,P-,Pl,Pdf= "<_dGMax){ + report(ERROR,"EvtGen") << "EvtVubNLO pdf above maximum: " <= xran ) tryit = false; + + if(pdf>_gmax)_gmax=pdf; + } else { + // cout <<" EvtVubNLO incorrect kinematics sh= "<0){ + _ngood++; + double xran1 = EvtRandom::Flat(); + double m = sqrt(sh);j=0; + while ( j < _nbins && m > _masses[j] ) j++; + double w = _weights[j-1]; + if ( w < xran1 ) tryit = true;// through away this candidate + } + } + + // cout <<" max prob "<init( getDaug(0), p4); + + + // calculate the W 4 vector in the B Meson restrframe + + double apWB = ptmp; + double pWB[4] = {_mB-Eh,-pHB[1],-pHB[2],-pHB[3]}; + + // first go in the W restframe and calculate the lepton and + // the neutrino in the W frame + + double mW2 = _mB*_mB + sh - 2*_mB*Eh; + // if(mW2<0.1){ + // cout <<" low Q2! "< 1 ) ctL = 1; + sttmp = sqrt(1-ctL*ctL); + + // eX' = eZ x eW + double xW[3] = {-pWB[2],pWB[1],0}; + // eZ' = eW + double zW[3] = {pWB[1]/apWB,pWB[2]/apWB,pWB[3]/apWB}; + + double lx = sqrt(xW[0]*xW[0]+xW[1]*xW[1]); + for (j=0;j<2;j++) + xW[j] /= lx; + + // eY' = eZ' x eX' + double yW[3] = {-pWB[1]*pWB[3],-pWB[2]*pWB[3],pWB[1]*pWB[1]+pWB[2]*pWB[2]}; + double ly = sqrt(yW[0]*yW[0]+yW[1]*yW[1]+yW[2]*yW[2]); + for (j=0;j<3;j++) + yW[j] /= ly; + + // p_lep = |p_lep| * ( sin(Theta) * cos(Phi) * eX' + // + sin(Theta) * sin(Phi) * eY' + // + cos(Theta) * eZ') + for (j=0;j<3;j++) + pLW[j+1] = sttmp*cos(phL)*ptmp*xW[j] + + sttmp*sin(phL)*ptmp*yW[j] + + ctL *ptmp*zW[j]; + + double apLW = ptmp; + + // boost them back in the B Meson restframe + + double appLB = beta*gamma*pLW[0] + gamma*ctL*apLW; + + ptmp = sqrt(El*El-ml*ml); + double ctLL = appLB/ptmp; + + if ( ctLL > 1 ) ctLL = 1; + if ( ctLL < -1 ) ctLL = -1; + + double pLB[4] = {El,0,0,0}; + double pNB[8] = {pWB[0]-El,0,0,0}; + + for (j=1;j<4;j++) { + pLB[j] = pLW[j] + (ctLL*ptmp - ctL*apLW)/apWB*pWB[j]; + pNB[j] = pWB[j] - pLB[j]; + } + + p4.set(pLB[0],pLB[1],pLB[2],pLB[3]); + lepton->init( getDaug(1), p4); + + p4.set(pNB[0],pNB[1],pNB[2],pNB[3]); + neutrino->init( getDaug(2), p4); + + return ; +} + +double +EvtVubNLO::tripleDiff ( double pp, double pl, double pm){ + + std::vector sCoeffs(11); + sCoeffs[0] = pp; + sCoeffs[1] = pl; + sCoeffs[2] = pm; + sCoeffs[3] = _b; + sCoeffs[4] = _mb; + sCoeffs[5] = _mB; + sCoeffs[6] = _idSF; + sCoeffs[7] = lambda_SF(); + sCoeffs[8] = mu_h(); + sCoeffs[9] = mu_i(); + sCoeffs[10] = _SFNorm; // SF normalization; + + + double c1=(_mB+pl-pp-pm)*(pm-pl); + double c2=2*(pl-pp)*(pm-pl); + double c3=(_mB-pm)*(pm-pp); + double aF1=F10(sCoeffs); + double aF2=F20(sCoeffs); + double aF3=F30(sCoeffs); + double td0=c1*aF1+c2*aF2+c3*aF3; + + + EvtItgPtrFunction *func = new EvtItgPtrFunction(&integrand, 0., _mB, sCoeffs); + EvtItgAbsIntegrator *jetSF = new EvtItgSimpsonIntegrator(*func,0.01,25); + double smallfrac=0.000001;// stop a bit before the end to avoid problems with numerical integration + double tdInt = jetSF->evaluate(0,pp*(1-smallfrac)); + delete jetSF; + + double SU=U1lo(mu_h(),mu_i())*pow((pm-pp)/(_mB-pp),alo(mu_h(),mu_i())); + double TD=(_mB-pp)*SU*(td0+tdInt); + + return TD; + +} + +double +EvtVubNLO::integrand(double omega, const std::vector &coeffs){ + //double pp=coeffs[0]; + double c1=(coeffs[5]+coeffs[1]-coeffs[0]-coeffs[2])*(coeffs[2]-coeffs[1]); + double c2=2*(coeffs[1]-coeffs[0])*(coeffs[2]-coeffs[1]); + double c3=(coeffs[5]-coeffs[2])*(coeffs[2]-coeffs[0]); + + return c1*F1Int(omega,coeffs)+c2*F2Int(omega,coeffs)+c3*F3Int(omega,coeffs); +} + +double +EvtVubNLO::F10(const std::vector &coeffs){ + double pp=coeffs[0]; + double y=(coeffs[2]-coeffs[0])/(coeffs[5]-coeffs[0]); + double mui=coeffs[9]; + double muh=coeffs[8]; + double z=1-y; + double result= U1nlo(muh,mui)/ U1lo(muh,mui); + + result += anlo(muh,mui)*log(y); + + result += C_F(muh)*(-4*pow(log(y*coeffs[4]/muh),2)+10*log(y*coeffs[4]/muh)-4*log(y)-2*log(y)/(1-y)-4.0*EvtDiLog::DiLog(z)-pow(EvtConst::pi,2)/6.-12 ); + + result += C_F(mui)*(2*pow(log(y*coeffs[4]*pp/pow(mui,2)),2)-3*log(y*coeffs[4]*pp/pow(mui,2))+7-pow(EvtConst::pi,2) ); + result *=shapeFunction(pp,coeffs); + // changes due to SSF + result += (-subS(coeffs)+2*subT(coeffs)+(subU(coeffs)-subV(coeffs))*(1/y-1.))/(coeffs[5]-pp); + result += shapeFunction(pp,coeffs)/pow((coeffs[5]-coeffs[0]),2)*(-5*(lambda1()+3*lambda2())/6+2*(2*lambda1()/3-lambda2())/pow(y,2)); + // result += (subS(coeffs)+subT(coeffs)+(subU(coeffs)-subV(coeffs))/y)/(coeffs[5]-pp); + // this part has been added after Feb '05 + + //result += shapeFunction(pp,coeffs)/pow((coeffs[5]-coeffs[0]),2)*((lambda1()+3*lambda2())/6+2*(2*lambda1()/3-lambda2())/pow(y,2)); + return result; +} + +double +EvtVubNLO::F1Int(double omega,const std::vector &coeffs){ + double pp=coeffs[0]; + double y=(coeffs[2]-coeffs[0])/(coeffs[5]-coeffs[0]); + // mubar == mui + return C_F(coeffs[9])*( + (shapeFunction(omega,coeffs)-shapeFunction(pp,coeffs))*(4*log(y*coeffs[4]*(pp-omega)/pow(coeffs[9],2))-3)/(pp-omega)+ + (g1(y,(pp-omega)/(coeffs[5]-coeffs[0]))/(coeffs[5]-pp)*shapeFunction(omega,coeffs)) + ); +} + +double +EvtVubNLO::F20(const std::vector &coeffs){ + double pp=coeffs[0]; + double y=(coeffs[2]-coeffs[0])/(coeffs[5]-coeffs[0]); + double result= C_F(coeffs[8])*log(y)/(1-y)*shapeFunction(pp,coeffs)- + 1/y*(subS(coeffs)+2*subT(coeffs)-(subT(coeffs)+subV(coeffs))/y)/(coeffs[5]-pp); + // added after Feb '05 + result += shapeFunction(pp,coeffs)/pow((coeffs[5]-coeffs[0])*y,2)*(2*lambda1()/3+4*lambda2()-y*(7/6*lambda1()+3*lambda2())); + return result; +} + +double +EvtVubNLO::F2Int(double omega,const std::vector &coeffs){ + double pp=coeffs[0]; + double y=(coeffs[2]-coeffs[0])/(coeffs[5]-coeffs[0]); + return C_F(coeffs[9])*g3(y,(pp-omega)/(coeffs[5]-coeffs[0]))*shapeFunction(omega,coeffs)/(coeffs[5]-pp); +} + +double +EvtVubNLO::F30(const std::vector &coeffs){ + double y=(coeffs[2]-coeffs[0])/(coeffs[5]-coeffs[0]); + return shapeFunction(coeffs[0],coeffs)/pow((coeffs[5]-coeffs[0])*y,2)*(-2*lambda1()/3+lambda2()); +} + +double +EvtVubNLO::F3Int(double omega,const std::vector &coeffs){ + double pp=coeffs[0]; + double y=(coeffs[2]-coeffs[0])/(coeffs[5]-coeffs[0]); + return C_F(coeffs[9])*g3(y,(pp-omega)/(coeffs[5]-coeffs[0]))/2*shapeFunction(omega,coeffs)/(coeffs[2]-coeffs[0]); +} + +double +EvtVubNLO::g1(double y, double x){ + double result=(y*(-9+10*y)+x*x*(-12+13*y)+2*x*(-8+6*y+3*y*y))/y/pow(1+x,2)/(x+y); + result -= 4*log((1+1/x)*y)/x; + result -=2*log(1+y/x)*(3*pow(x,4)*(-2+y)-2*pow(y,3)-4*pow(x,3)*(2+y)-2*x*y*y*(4+y)-x*x*y*(12+4*y+y*y))/x/pow((1+x)*y,2)/(x+y); + return result; +} + +double +EvtVubNLO::g2(double y, double x){ + double result=y*(10*pow(x,4)+y*y+3*x*x*y*(10+y)+pow(x,3)*(12+19*y)+x*y*(8+4*y+y*y)); + result -= 2*x*log(1+y/x)*(5*pow(x,4)+2*y*y+6*pow(x,3)*(1+2*y)+4*y*x*(1+2*y)+x*x*y*(18+5*y)); + result *= 2/(pow(y*(1+x),2)*y*(x+y)); + return result; +} + +double +EvtVubNLO::g3(double y, double x){ + double result=(2*pow(y,3)*(-11+2*y)-10*pow(x,4)*(6-6*y+y*y)+x*y*y*(-94+29*y+2*y*y)+2*x*x*y*(-72+18*y+13*y*y)-pow(x,3)*(72+42*y-70*y*y+3*pow(y,3)))/(pow(y*(1+x),2)*y*(x+y)); + result += 2*log(1+y/x)*(-6*x*pow(y,3)*(-5+y)+4*pow(y,4)+5*pow(x,5)*(6-6*y+y*y)-4*pow(x*y,2)*(-20+6*y+y*y)+pow(x,3)*y*(90-10*y-28*y*y+pow(y,3))+pow(x,4)*(36+36*y-50*y*y+4*pow(y,3)))/(pow((1+x)*y*y,2)*(x+y)); + return result; +} + +/* old version (before Feb 05 notebook from NNeubert + +double +EvtVubNLO::F1Int(double omega,const std::vector &coeffs){ + double pp=coeffs[0]; + double y=(coeffs[2]-coeffs[0])/(coeffs[5]-coeffs[0]); + // mubar == mui + return C_F(coeffs[9])*( + (shapeFunction(omega,coeffs)-shapeFunction(pp,coeffs))*(4*log(y*coeffs[4]*(pp-omega)/pow(coeffs[9],2))-3)/(pp-omega)- + (1./y/(coeffs[5]-pp)*shapeFunction(omega,coeffs)*(5-6*y+4*(3-y)*log((pp-omega)/y/coeffs[4]))) + ); +} + + +double +EvtVubNLO::F2Int(double omega,const std::vector &coeffs){ + double pp=coeffs[0]; + double y=(coeffs[2]-coeffs[0])/(coeffs[5]-coeffs[0]); + return C_F(coeffs[9])*shapeFunction(omega,coeffs)*(2-11/y-4/y*log((pp-omega)/y/coeffs[4]))/(coeffs[5]-pp); +} + +double +EvtVubNLO::F3(const std::vector &coeffs){ + return C_F(coeffs[9])*shapeFunction(omega,coeffs)/(coeffs[2]-coeffs[0]); +} +*/ + +double EvtVubNLO::SFNorm( const std::vector &coeffs){ + + double omega0=1.68;//normalization scale (mB-2*1.8) + if(_idSF==1){ // exponential SF + double omega0=1.68;//normalization scale (mB-2*1.8) + return M0(mu_i(),omega0)*pow(_b,_b)/lambda_SF()/ (Gamma(_b)-Gamma(_b,_b*omega0/lambda_SF())); + } else if(_idSF==2){ // Gaussian SF + double c=cGaus(_b); + return M0(mu_i(),omega0)*2/lambda_SF()/pow(c,-(1+_b)/2.)/ + (Gamma((1+_b)/2)-Gamma((1+_b)/2,pow(omega0/lambda_SF(),2)*c)); + } else { + report(ERROR,"EvtGen") << "unknown SF "<<_idSF< &sCoeffs){ + if( sCoeffs[6]==1){ + return sCoeffs[10]*expShapeFunction(omega, sCoeffs); + } else if( sCoeffs[6]==2) { + return sCoeffs[10]*gausShapeFunction(omega, sCoeffs); + } else { + report(ERROR,"EvtGen") << "EvtVubNLO : unknown shape function # " + < &c){ return (lambda_bar(1.68)-c[0])*shapeFunction(c[0],c);} +double +EvtVubNLO::subT(const std::vector &c){ return -3*lambda2()*subS(c)/mu_pi2(1.68);} +double +EvtVubNLO::subU(const std::vector &c){ return -2*subS(c);} +double +EvtVubNLO::subV(const std::vector &c){ return -subT(c);} + + +double +EvtVubNLO::lambda_bar(double omega0){ + if(_lbar<0){ + if(_idSF==1){ // exponential SF + double rat=omega0*_b/lambda_SF(); + _lbar=lambda_SF()/_b*(Gamma(1+_b)-Gamma(1+_b,rat))/(Gamma(_b)-Gamma(_b,rat)); + } else if(_idSF==2){ // Gaussian SF + double c=cGaus(_b); + _lbar=lambda_SF()*(Gamma(1+_b/2)-Gamma(1+_b/2,pow(omega0/lambda_SF(),2)*c))/(Gamma((1+_b)/2)-Gamma((1+_b)/2,pow(omega0/lambda_SF(),2)*c))/sqrt(c); + } + } + return _lbar; +} + + +double +EvtVubNLO::mu_pi2(double omega0){ + if(_mupi2<0){ + if(_idSF==1){ // exponential SF + double rat=omega0*_b/lambda_SF(); + _mupi2= 3*(pow(lambda_SF()/_b,2)*(Gamma(2+_b)-Gamma(2+_b,rat))/(Gamma(_b)-Gamma(_b,rat))-pow(lambda_bar(omega0),2)); + } else if(_idSF==2){ // Gaussian SF + double c=cGaus(_b); + double m1=Gamma((3+_b)/2)-Gamma((3+_b)/2,pow(omega0/lambda_SF(),2)*c); + double m2=Gamma(1+_b/2)-Gamma(1+_b/2,pow(omega0/lambda_SF(),2)*c); + double m3=Gamma((1+_b)/2)-Gamma((1+_b)/2,pow(omega0/lambda_SF(),2)*c); + _mupi2= 3*pow(lambda_SF(),2)*(m1/m3-pow(m2/m3,2))/c; + } + } + return _mupi2; +} + +double +EvtVubNLO::M0(double mui,double omega0){ + double mf=omega0-lambda_bar(omega0); + return 1+4*C_F(mui)*(-pow(log(mf/mui),2)-log(mf/mui)-pow(EvtConst::pi/2,2)/6.+mu_pi2(omega0)/3/pow(mf,2)*(log(mf/mui)-0.5)); +} + +double +EvtVubNLO::alphas(double mu){ + double Lambda4=0.302932; + double lg=2*log(mu/Lambda4); + return 4*EvtConst::pi/lg/beta0()*(1-beta1()*log(lg)/pow(beta0(),2)/lg+pow(beta1()/lg,2)/pow(beta0(),4)*(pow(log(lg)-0.5,2)-1.25+beta2()*beta0()/pow(beta1(),2))); +} + +double +EvtVubNLO::gausShapeFunction ( double omega, const std::vector &sCoeffs){ + double b=sCoeffs[3]; + double l=sCoeffs[7]; + double wL=omega/l; + + return pow(wL,b)*exp(-cGaus(b)*wL*wL); +} + +double +EvtVubNLO::expShapeFunction ( double omega, const std::vector &sCoeffs){ + double b=sCoeffs[3]; + double l=sCoeffs[7]; + double wL=omega/l; + + return pow(wL,b-1)*exp(-b*wL); +} + +double +EvtVubNLO::Gamma(double z) { + + std::vector gammaCoeffs(6); + gammaCoeffs[0]=76.18009172947146; + gammaCoeffs[1]=-86.50532032941677; + gammaCoeffs[2]=24.01409824083091; + gammaCoeffs[3]=-1.231739572450155; + gammaCoeffs[4]=0.1208650973866179e-2; + gammaCoeffs[5]=-0.5395239384953e-5; + + //Lifted from Numerical Recipies in C + double x, y, tmp, ser; + + int j; + y = z; + x = z; + + tmp = x + 5.5; + tmp = tmp - (x+0.5)*log(tmp); + ser=1.000000000190015; + + for (j=0;j<6;j++) { + y = y +1.0; + ser = ser + gammaCoeffs[j]/y; + } + + return exp(-tmp+log(2.5066282746310005*ser/x)); + +} + + + +double +EvtVubNLO::Gamma(double z, double tmin) { + std::vector c(1); + c[0]=z; + EvtItgPtrFunction *func = new EvtItgPtrFunction(&dgamma, tmin, 100., c); + EvtItgAbsIntegrator *jetSF = new EvtItgSimpsonIntegrator(*func,0.001); + return jetSF->evaluate(tmin,100.); +} diff --git a/TEvtGen/EvtGenModels/EvtVubNLO.hh b/TEvtGen/EvtGenModels/EvtVubNLO.hh new file mode 100644 index 00000000000..d0db5b634f8 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVubNLO.hh @@ -0,0 +1,164 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVubNLO.hh +// +// Description: +// Class to generate inclusive B to X_u l nu decays according to various +// decay models. Implemtented are ACCM, parton-model and a QCD model. +// +// Modification history: +// +// Sven Menke January 17, 2001 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTVUBNLO_HH +#define EVTVUBNLO_HH + +#include +#include "EvtGenBase/EvtDecayIncoherent.hh" + +class EvtParticle; +class RandGeneral; + +class EvtVubNLO:public EvtDecayIncoherent { + +public: + + EvtVubNLO() {} + virtual ~EvtVubNLO(); + + std::string getName(); + + EvtDecayBase* clone(); + + void initProbMax(); + + void init(); + + void decay(EvtParticle *p); + + +private: + + // cache + double _lbar; + double _mupi2; + + double _mb; // the b-quark pole mass in GeV + double _mB; + double _lambdaSF; + double _b; // Parameter for the Fermi Motion + double _kpar; + double _mui; // renormalization scale (preferred value=1.5 GeV) + double _SFNorm; // SF normalization + double _dGMax; // max dGamma*p2 value; + int _nbins; + int _idSF;// which shape function? + double * _masses; + double * _weights; + + double _gmax; + int _ngood,_ntot; + + + double tripleDiff(double pp, double pl, double pm); + double SFNorm(const std::vector &coeffs); + static double integrand(double omega, const std::vector &coeffs); + double F10(const std::vector &coeffs); + static double F1Int(double omega,const std::vector &coeffs); + double F20(const std::vector &coeffs); + static double F2Int(double omega,const std::vector &coeffs); + double F30(const std::vector &coeffs); + static double F3Int(double omega,const std::vector &coeffs); + static double g1(double y, double z); + static double g2(double y, double z); + static double g3(double y, double z); + + static double Gamma(double z);// Euler Gamma Function + static double dgamma(double t, const std::vector &c){ return pow(t,c[0]-1)*exp(-t);} + static double Gamma(double z, double tmax); + + // theory parameters + inline double mu_i(){return _mui;} // intermediate scale + inline double mu_bar(){return _mui;} + inline double mu_h(){return _mb/sqrt(2.0);} // high scale + inline double lambda1(){return -_mupi2;} + + // expansion coefficients for RGE + static double beta0(int nf=4){return 11.-2./3.*nf;} + static double beta1(int nf=4){return 34.*3.-38./3.*nf;} + static double beta2(int nf=4){return 1428.5-5033./18.*nf+325./54.*nf*nf;} + static double gamma0(){return 16./3.;} + static double gamma1(int nf=4){return 4./3.*(49.85498-40./9.*nf);} + static double gamma2(int nf=4){return 64./3.*(55.07242-8.58691*nf-nf*nf/27.);} /* zeta3=1.20206 */ + static double gammap0(){return -20./3.;} + static double gammap1(int nf=4){return -32./3.*(6.92653-0.9899*nf);} /* ?? zeta3=1.202 */ + + + // running constants + + static double alphas(double mu) ; + static double C_F(double mu){return (4.0/3.0)*alphas(mu)/4./EvtConst::pi;} + + // Shape Functions + + inline double lambda_SF(){ return _lambdaSF;} + double lambda_bar(double omega0); + inline double lambda2(){return 0.12;} + double mu_pi2(double omega0); + inline double lambda(double mu=0){ return _mB-_mb;} + + // specail for gaussian SF + static double cGaus(double b){return pow(Gamma(1+b/2.)/Gamma((1+b)/2.),2);} + + double M0(double mui,double omega0); + static double shapeFunction(double omega, const std::vector &coeffs); + static double expShapeFunction(double omega, const std::vector &coeffs); + static double gausShapeFunction(double omega, const std::vector &coeffs); + // SSF (not yet implemented) + double subS(const std::vector &coeffs ); + double subT(const std::vector &coeffs); + double subU(const std::vector &coeffs); + double subV(const std::vector &coeffs); + + + // Sudakov + + inline double S0(double a, double r){return -gamma0()/4/a/pow(beta0(),2)*(1/r-1+log(r));} + inline double S1(double a, double r){return gamma0()/4./pow(beta0(),2)*( + pow(log(r),2)*beta1()/2./beta0()+(gamma1()/gamma0()-beta1()/beta0())*(1.-r+log(r)) + );} + inline double S2(double a, double r){return gamma0()*a/4./pow(beta0(),2)*( + -0.5*pow((1-r),2)*( + pow(beta1()/beta0(),2)-beta2()/beta0()-beta1()/beta0()*gamma1()/gamma0()+gamma2()/gamma0() + ) + +(pow(beta1()/beta0(),2)-beta2()/beta0())*(1-r)*log(r) + +(beta1()/beta0()*gamma1()/gamma0()-beta2()/beta0())*(1-r+r*log(r)) + );} + inline double dSudakovdepsi(double mu1, double mu2){return S2(alphas(mu1)/(4*EvtConst::pi),alphas(mu2)/alphas(mu1));} + inline double Sudakov(double mu1, double mu2, double epsi=0){double fp(4*EvtConst::pi);return S0(alphas(mu1)/fp,alphas(mu2)/alphas(mu1))+S1(alphas(mu1)/fp,alphas(mu2)/alphas(mu1))+epsi*dSudakovdepsi(mu1,mu2);} + + // RG + inline double dGdepsi(double mu1, double mu2){return 1./8./EvtConst::pi*(alphas(mu2)-alphas(mu1))*(gamma1()/beta0()-beta1()*gamma0()/pow(beta0(),2));} + inline double aGamma(double mu1, double mu2, double epsi=0){return gamma0()/2/beta0()*log(alphas(mu2)/alphas(mu1))+epsi*dGdepsi( mu1, mu2);} + inline double dgpdepsi(double mu1, double mu2){return 1./8./EvtConst::pi*(alphas(mu2)-alphas(mu1))*(gammap1()/beta0()-beta1()*gammap0()/pow(beta0(),2));} + inline double agammap(double mu1, double mu2, double epsi=0){return gammap0()/2/beta0()*log(alphas(mu2)/alphas(mu1))+epsi*dgpdepsi( mu1, mu2);} + inline double U1(double mu1, double mu2, double epsi=0){return exp(2*(Sudakov(mu1,mu2,epsi)-agammap(mu1,mu2,epsi)-aGamma(mu1,mu2,epsi)*log(_mb/mu1)));} + inline double U1lo(double mu1, double mu2){return U1(mu1,mu2);} + inline double U1nlo(double mu1, double mu2){return U1(mu1,mu2)*(1+2*(dSudakovdepsi(mu1,mu2)-dgpdepsi( mu1, mu2)-log(_mb/mu1)*dGdepsi( mu1, mu2)));} + inline double alo(double mu1, double mu2){return -2*aGamma(mu1,mu2);} + inline double anlo(double mu1, double mu2){return -2*dGdepsi(mu1,mu2);} + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtVubdGamma.cxx b/TEvtGen/EvtGenModels/EvtVubdGamma.cxx new file mode 100644 index 00000000000..bdef4fea992 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVubdGamma.cxx @@ -0,0 +1,267 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// +// Description: +// 3 2 2 +// d Gamma / _ _ _2 mb _2 mb +// ---------- = 12 Gamma | (1+x-z)(z-x-p ) -- W + (1-z+p ) -- W +// _ 2 0 \ 2 1 2 2 +// dx dz dp 2 +// _ _ _2 mb 2 \. +// + [x(z-x)-p ] -- (W + 2mb W + mb W ) | +// 4 3 4 5 / +// +// with +// 2 E 2 +// l _2 p 2 v.p _ +// x = ------ , p = --- , z = ------ , x = 1-x +// mb 2 mb +// mb +// +// the triple differential decay rate according to +// hep-ph/9905351 v2 +// +// Environment: +// Software developed for the BaBar Detector at the SLAC B-Factory. +// +// Author List: +// Sven Menke +// +//----------------------------------------------------------------------- +//----------------------- +// This Class's Header -- +//----------------------- +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenModels/EvtVubdGamma.hh" +#include "EvtGenBase/EvtDiLog.hh" + +//--------------- +// C Headers -- +//--------------- +#include + +//---------------- +// Constructors -- +//---------------- + +EvtVubdGamma::EvtVubdGamma(const double &alphas) +{ + _alphas = alphas; + + // the range for the delta distribution in p2 is from _epsilon1 to + // _epsilon2. It was checked with the single differential formulae + // in the paper that these values are small enough to imitate p2 = 0 + // for the regular terms. + // The ()* distributions, however need further treatment. In order to + // generate the correct spectrum in z a threshold need to be computed + // from the desired value of the coupling alphas. The idea is that + // for z=1 p2=0 is not allowed and therefore the part of dGamma proportional + // to delta(p2) should go to 0 for z->1. + // Using equation (3.1) and (3.2) it is possible to find the correct value + // for log(_epsilon3) from this requirement. + + _epsilon1 = 1e-10; + _epsilon2 = 1e-5; + if ( alphas > 0 ) { + double lne3 = 9./16.-2*EvtConst::pi*EvtConst::pi/3.+6*EvtConst::pi/4/alphas; if ( lne3 > 0 ) + lne3 = -7./4. - sqrt(lne3); + else + lne3 = -7./4.; + _epsilon3 = exp(lne3); + } + else + _epsilon3 = 1; +} + +//-------------- +// Destructor -- +//-------------- + +EvtVubdGamma::~EvtVubdGamma( ) +{ +} + +//----------- +// Methods -- +//----------- + +double EvtVubdGamma::getdGdxdzdp(const double &x, const double &z, const double &p2) +{ + // check phase space + + double xb = (1-x); + + if ( x < 0 || x > 1 || z < xb || z > (1+xb) ) + return 0; + + double p2min = (0>z-1.?0:z-1.); + double p2max = (1.-x)*(z-1.+x); + + if (p2 < p2min || p2 > p2max) + return 0; + + // // check the phase space + // return 1.; + + double dG; + + if ( p2 >_epsilon1 && p2< _epsilon2) { + + double W1 = getW1delta(x,z); + double W4plus5 = getW4plus5delta(x,z); + + dG = 12. * delta(p2,p2min,p2max) * ((1.+xb-z) * (z-xb) * W1 + + xb*(z-xb) * (W4plus5)); + } + else { + + double W1 = getW1nodelta(x,z,p2); + double W2 = getW2nodelta(x,z,p2); + double W3 = getW3nodelta(x,z,p2); + double W4 = getW4nodelta(x,z,p2); + double W5 = getW5nodelta(x,z,p2); + + dG = 12. * ((1.+xb-z) * (z-xb-p2) * W1 + + (1.-z+p2) * W2 + + (xb*(z-xb)-p2) * (W3+W4+W5)); + } + return dG; +} + +double EvtVubdGamma::delta(const double &x, const double &xmin, const double &xmax) +{ + if ( xmin > 0 || xmax < 0 ) return 0.; + if ( _epsilon1 < x && x < _epsilon2 ) return 1./(_epsilon2-_epsilon1); + return 0.0; +} + +double EvtVubdGamma::getW1delta(const double &, const double &z) +{ + double mz = 1.-z; + + double lz; + if (z == 1) lz = -1.; + else lz = log(z)/(1.-z); + + // ddilog_(&z) is actually the dilog of (1-z) in maple, + // also in Neuberts paper the limit dilog(1) = pi^2/6 is used + // this corresponds to maple's dilog(0), so + // I take ddilog_(&mz) where mz=1-z in order to satisfy Neubert's definition + // and to compare with Maple the argument in maple should be (1-mz) ... + + double dl = 4.*EvtDiLog::DiLog(mz) + 4.*pow(EvtConst::pi,2)/3.; + + double w = -(8.*pow(log(z),2) - 10.*log(z) + 2.*lz + dl + 5.) + + (8.*log(z)-7.)*log(_epsilon3) - 2.*pow(log(_epsilon3),2); + + return (1. + w*_alphas/3./EvtConst::pi); +} + +double EvtVubdGamma::getW1nodelta(const double &, const double &z, const double &p2) +{ + + double z2 = z*z; + double t2 = 1.-4.*p2/z2; + double t = sqrt(t2); + + double w = 0; + if ( p2 > _epsilon2 ) + w += 4./p2*(log((1.+t)/(1.-t))/t + log(p2/z2)) + + 1. - (8.-z)*(2.-z)/z2/t2 + + ((2.-z)/2./z+(8.-z)*(2.-z)/2./z2/t2)*log((1.+t)/(1.-t))/t; + if ( p2 > _epsilon3 ) + w += (8.*log(z)-7.)/p2 - 4.*log(p2)/p2; + + return w*_alphas/3./EvtConst::pi; +} + +double EvtVubdGamma::getW2nodelta(const double &, const double &z, const double &p2) +{ + + double z2 = z*z; + double t2 = 1.-4.*p2/z2; + double t = sqrt(t2); + double w11 = (32.-8.*z+z2)/4./z/t2; + + double w = 0; + if ( p2 > _epsilon2 ) + w -= (z*t2/8. + (4.-z)/4. + w11/2.)*log((1.+t)/(1.-t))/t; + if ( p2 > _epsilon2 ) + w += (8.-z)/4. + w11; + + return (w*_alphas/3./EvtConst::pi); +} + +double EvtVubdGamma::getW3nodelta(const double &, const double &z, const double &p2) +{ + double z2 = z*z; + double t2 = 1.-4.*p2/z2; + double t4 = t2*t2; + double t = sqrt(t2); + + double w = 0; + + if ( p2 > _epsilon2 ) + w += (z*t2/16. + 5.*(4.-z)/16. - (64.+56.*z-7.*z2)/16./z/t2 + + 3.*(12.-z)/16./t4) * log((1.+t)/(1.-t))/t; + if ( p2 > _epsilon2 ) + w += -(8.-3.*z)/8. + (32.+22.*z-3.*z2)/4./z/t2 - 3.*(12.-z)/8./t4; + + return (w*_alphas/3./EvtConst::pi); +} + +double EvtVubdGamma::getW4nodelta(const double &, const double &z, const double &p2) +{ + double z2 = z*z; + double t2 = 1.-4.*p2/z2; + double t4 = t2*t2; + double t = sqrt(t2); + + double w = 0; + + if ( p2 > _epsilon2 ) + w -= ((8.-3.*z)/4./z - (22.-3.*z)/2./z/t2 + 3.*(12.-z)/4./z/t4) + * log((1.+t)/(1.-t))/t; + if ( p2 > _epsilon2 ) + w += -1. - (32.-5.*z)/2./z/t2 + 3.*(12.-z)/2./z/t4 ; + + return w*_alphas/3./EvtConst::pi; +} + +double EvtVubdGamma::getW4plus5delta(const double &, const double &z) +{ + + double w = 0; + + if ( z == 1 ) + w = -2; + else + w = 2.*log(z)/(1.-z); + + return (w*_alphas/3./EvtConst::pi); +} + +double EvtVubdGamma::getW5nodelta(const double &, const double &z, const double &p2) +{ + double z2 = z*z; + double t2 = 1.-4.*p2/z2; + double t4 = t2*t2; + double t = sqrt(t2); + + double w = 0; + if ( p2 > _epsilon2 ) + w += (1./4./z - (2.-z)/2./z2/t2 + 3.*(12.-z)/4./z2/t4) + * log((1.+t)/(1.-t))/t; + if ( p2 > _epsilon2 ) + w += -(8.+z)/2./z2/t2 - 3.*(12.-z)/2./z2/t4; + + return (w*_alphas/3./EvtConst::pi); + +} + + + diff --git a/TEvtGen/EvtGenModels/EvtVubdGamma.hh b/TEvtGen/EvtGenModels/EvtVubdGamma.hh new file mode 100644 index 00000000000..17b859ab1c2 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtVubdGamma.hh @@ -0,0 +1,95 @@ +//----------------------------------------------------------------------- +// File and Version Information: +// +// Copyright Information: See EvtGen/COPYRIGHT +// +// +// Description: +// 3 2 2 +// d Gamma / _ _ _2 mb _2 mb +// ---------- = 12 Gamma | (1+x-z)(z-x-p ) -- W + (1-z+p ) -- W +// _ 2 0 \ 2 1 2 2 +// dx dz dp 2 +// _ _ _2 mb 2 \. +// + [x(z-x)-p ] -- (W + 2mb W + mb W ) | +// 4 3 4 5 / +// +// with +// 2 E 2 +// l _2 p 2 v.p _ +// x = ------ , p = --- , z = ------ , x = 1-x +// mb 2 mb +// mb +// +// the triple differential decay rate according to +// hep-ph/9905351 v2 +// +// Environment: +// Software developed for the BaBar Detector at the SLAC B-Factory. +// +// Author List: +// Sven Menke +// +//----------------------------------------------------------------------- + +#ifndef EVTVUBDGAMMA_HH +#define EVTVUBDGAMMA_HH + +class EvtVubdGamma { + +public: + + // Constructors + + EvtVubdGamma(const double &alphas); + + // Destructor + + virtual ~EvtVubdGamma( ); + + // Operators + + // Selectors + + // Modifiers + + // Methods + + double getdGdxdzdp(const double &x, const double &z, const double &p2); + +protected: + + // Helper functions + + double delta(const double &x, const double &xmin, const double &xmax); + + double getW1nodelta(const double &x, const double &z, const double &p2); + + double getW2nodelta(const double &x, const double &z, const double &p2); + + double getW3nodelta(const double &x, const double &z, const double &p2); + + double getW4nodelta(const double &x, const double &z, const double &p2); + + double getW5nodelta(const double &x, const double &z, const double &p2); + + double getW1delta(const double &x, const double &z); + + double getW4plus5delta(const double &x, const double &z); + +private: + + // Friends + + // Data members + + double _alphas; + double _epsilon1; + double _epsilon2; + double _epsilon3; +}; + + +#endif // EVTVUBDGAMMA_HH + + diff --git a/TEvtGen/EvtGenModels/EvtWilsonCoeficients.cxx b/TEvtGen/EvtGenModels/EvtWilsonCoeficients.cxx new file mode 100644 index 00000000000..301bec1e6fc --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtWilsonCoeficients.cxx @@ -0,0 +1,387 @@ +//--------------------------------------------------------------------------------- +// +// Wilson coeficients according to A.J.Buras and M.Munz, Phys.Rev. D52, 186. (1995) +// Thanks to N. Nikitine for example code for Pythia +// Coeficient C8eff and C2 correction to C7eff taken from: +// A.J.Buras, M.Misiak, M.Munz, S.Pokorski, Nucl.Phys. B424, 374 (1994) +// +// Used constants come from PDG 2004 +// +// P. Reznicek 18.02.2005 +// +// 04/03/2005 PR Added h-function +// +//--------------------------------------------------------------------------------- + +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtWilsonCoeficients.hh" +#include + +// including EvtLi2Spence.F +extern "C" { + extern double li2spence_(double*); +} + +EvtWilsonCoeficients::EvtWilsonCoeficients(){ + int i,j; + double tmpa[8]={14./23.,16./23.,6./23.,-12./23.,0.4086,-0.4230,-0.8994,0.1456}; + double tmph[8]={2.2996,-1.0880,-3./7.,-1./14.,-0.6494,-0.0380,-0.0186,-0.0057}; + double tmpp[8]={0,0,-80./203.,8./33.,0.0433,0.1384,0.1648,-0.0073}; + double tmps[8]={0,0,-0.2009,-0.3579,0.0490,-0.3616,-0.3554,0.0072}; + double tmpq[8]={0,0,0,0,0.0318,0.0918,-0.2700,0.0059}; + double tmpg[8]={313063./363036.,0,0,0,-0.9135,0.0873,-0.0571,-0.0209}; + double tmpk[6][8]={{0,0,1./2.,-1./2.,0,0,0,0}, + {0,0,1./2.,+1./2.,0,0,0,0}, + {0,0,-1./14.,+1./6.,0.0510,-0.1403,-0.0113,0.0054}, + {0,0,-1./14.,-1./6.,0.0984,+0.1214,+0.0156,0.0026}, + {0,0,0,0,-0.0397,0.0117,-0.0025,+0.0304}, + {0,0,0,0,+0.0335,0.0239,-0.0462,-0.0112}}; + double tmpr[2][8]={{0,0,+0.8966,-0.1960,-0.2011,0.1328,-0.0292,-0.1858}, + {0,0,-0.1193,+0.1003,-0.0473,0.2323,-0.0133,-0.1799}}; + for(i=0;i<8;i++){ + a[i]=tmpa[i]; + h[i]=tmph[i]; + p[i]=tmpp[i]; + s[i]=tmps[i]; + q[i]=tmpq[i]; + g[i]=tmpg[i]; + for(j=0;j<6;j++) k[j][i]=tmpk[j][i]; + for(j=0;j<2;j++) r[j][i]=tmpr[j][i]; + } + m_n_f=5; + m_Lambda=0.2167; + m_alphaMZ=0.1187; + m_mu=4.8; + m_M_Z=91.1876; + m_M_t=174.3; + m_M_W=80.425; + m_alphaS=0; + m_eta=0; + m_sin2W=0.23120; + m_ialpha=137.036; + m_C1=m_C2=m_C3=m_C4=m_C5=m_C6=m_C7=m_C7eff0=m_C8=m_C8eff0=m_C9=m_C9tilda=m_C10=m_C10tilda=m_P0=0; + m_A=m_B=m_C=m_D=m_E=m_F=m_Y=m_Z=m_PE=0; + m_ksi=0; +} + +void EvtWilsonCoeficients::SetRenormalizationScheme(std::string scheme){ + if(scheme=="NDR") m_ksi=0; + else if(scheme=="HV") m_ksi=1; + else{ + report(ERROR,"EvtGen") << "ERROR: EvtWilsonCoeficients knows only NDR and HV schemes !" << std::endl; + ::abort(); + } +} + +double EvtWilsonCoeficients::alphaS(double mu=4.8,int n_f=5,double Lambda=0.2167){ +// calculate strong coupling constant for n_f flavours and scale mu + double beta0=11.-2./3.*n_f; + double beta1=51.-19./3.*n_f; + double beta2=2857.-5033./9.*n_f+325./27.*n_f*n_f; + double lnratio=log(mu*mu/Lambda/Lambda); + double aS=4.*EvtConst::pi/beta0/lnratio*(1.-2*beta1/beta0/beta0*log(lnratio)/lnratio+ + 4*beta1*beta1/beta0/beta0/beta0/beta0/lnratio/lnratio*((log(lnratio)-0.5)*(log(lnratio)-0.5)+beta2*beta0/8/beta1/beta1-5./4.)); + return aS; +} + +double EvtWilsonCoeficients::Lambda(double alpha=0.1187,int n_f=5,double mu=91.1876,double epsilon=0.00005,int maxstep=1000){ +// calculate Lambda matching alphaS using simple iterative method + int i; + double difference=0; + double Lambda=mu*0.9999999999; + double step=-mu/20; + for(i=0;i=epsilon;i++){ + report(DEBUG,"EvtGen") << " Difference of alpha_S from " << alpha << " is " << difference << " at Lambda = " << Lambda << std::endl; + if(alphaS(mu,n_f,Lambda)>alpha){ + if(step>0) step*=-0.4; + if(alphaS(mu,n_f,Lambda+step-epsilon)= " << epsilon << " after " << i << " steps !" << std::endl; + ::abort(); + return -1; + }else{ + report(INFO,"EvtGen") << " For alpha_s = " << alphaS(mu,n_f,Lambda) << " was found Lambda = " << Lambda << std::endl; + return Lambda; + } +} + +double EvtWilsonCoeficients::eta(double mu=4.8,int n_f=5,double Lambda=0.2167,double M_W=80.425){ + return alphaS(M_W,n_f,Lambda)/alphaS(mu,n_f,Lambda); +} + + +EvtComplex EvtWilsonCoeficients::C1(double mu=4.8,int n_f=5,double Lambda=0.2167,double M_W=80.425){ + int i; + EvtComplex myC1(0,0); + for(i=0;i<8;i++) myC1+=k[0][i]*pow(eta(mu,n_f,Lambda,M_W),a[i]); + return myC1; +} + +EvtComplex EvtWilsonCoeficients::C2(double mu=4.8,int n_f=5,double Lambda=0.2167,double M_W=80.425){ + int i; + EvtComplex myC2(0,0); + for(i=0;i<8;i++) myC2+=k[1][i]*pow(eta(mu,n_f,Lambda,M_W),a[i]); + return myC2; +} + +EvtComplex EvtWilsonCoeficients::C3(double mu=4.8,int n_f=5,double Lambda=0.2167,double M_W=80.425){ + int i; + EvtComplex myC3(0,0); + for(i=0;i<8;i++) myC3+=k[2][i]*pow(eta(mu,n_f,Lambda,M_W),a[i]); + return myC3; +} + +EvtComplex EvtWilsonCoeficients::C4(double mu=4.8,int n_f=5,double Lambda=0.2167,double M_W=80.425){ + int i; + EvtComplex myC4(0,0); + for(i=0;i<8;i++) myC4+=k[3][i]*pow(eta(mu,n_f,Lambda,M_W),a[i]); + return myC4; +} + +EvtComplex EvtWilsonCoeficients::C5(double mu=4.8,int n_f=5,double Lambda=0.2167,double M_W=80.425){ + int i; + EvtComplex myC5(0,0); + for(i=0;i<8;i++) myC5+=k[4][i]*pow(eta(mu,n_f,Lambda,M_W),a[i]); + return myC5; +} + +EvtComplex EvtWilsonCoeficients::C6(double mu=4.8,int n_f=5,double Lambda=0.2167,double M_W=80.425){ + int i; + EvtComplex myC6(0,0); + for(i=0;i<8;i++) myC6+=k[5][i]*pow(eta(mu,n_f,Lambda,M_W),a[i]); + return myC6; +} + + +EvtComplex EvtWilsonCoeficients::C7(double M_t=174.3,double M_W=80.425){ + return EvtComplex(-0.5*A(M_t*M_t/M_W/M_W),0); +} + +EvtComplex EvtWilsonCoeficients::C8(double M_t=174.3,double M_W=80.425){ + return EvtComplex(-0.5*F(M_t*M_t/M_W/M_W),0); +} + +EvtComplex EvtWilsonCoeficients::C7eff0(double mu=4.8,int n_f=5,double Lambda=0.2167,double M_t=174.3,double M_W=80.425){ + int i; + EvtComplex myC7eff(0,0); + for(i=0;i<8;i++) myC7eff+=h[i]*pow(eta(mu,n_f,Lambda,M_W),a[i]); + myC7eff*=C2(mu,n_f,Lambda,M_W); + myC7eff+=pow(eta(mu,n_f,Lambda,M_W),16./23.)*C7(M_t,M_W); + myC7eff+=8./3.*(pow(eta(mu,n_f,Lambda,M_W),14./23.)-pow(eta(mu,n_f,Lambda,M_W),16./23.))*C8(M_t,M_W); + return myC7eff; +} + +EvtComplex EvtWilsonCoeficients::C8eff0(double mu=4.8,int n_f=5,double Lambda=0.2167,double M_t=174.3,double M_W=80.425){ + int i; + EvtComplex myC8eff(0,0); + for(i=0;i<8;i++) myC8eff+=g[i]*pow(eta(mu,n_f,Lambda,M_W),a[i]); + myC8eff+=pow(eta(mu,n_f,Lambda,M_W),14./23.)*C8(M_t,M_W); + return myC8eff; +} + + +EvtComplex EvtWilsonCoeficients::C10tilda(double sin2W=0.23120,double M_t=174.3,double M_W=80.425){ + return EvtComplex(-Y(M_t*M_t/M_W/M_W)/sin2W,0); +} + +EvtComplex EvtWilsonCoeficients::C10(double sin2W=0.23120,double M_t=174.3,double M_W=80.425,double ialpha=137.036){ + return ( 1./2/EvtConst::pi/ialpha*C10tilda(sin2W,M_t,M_W) ); +} + + +double EvtWilsonCoeficients::A(double x){ + return ( x*(8*x*x+5*x-7)/12/pow(x-1,3) + x*x*(2-3*x)*log(x)/2/pow(x-1,4) ); +} + +double EvtWilsonCoeficients::B(double x){ + return ( x/4/(1-x) + x/4/(x-1)/(x-1)*log(x) ); +} + +double EvtWilsonCoeficients::C(double x){ + return ( x*(x-6)/8/(x-1) + x*(3*x+2)/8/(x-1)/(x-1)*log(x) ); +} + +double EvtWilsonCoeficients::D(double x){ + return ( (-19*x*x*x+25*x*x)/36/pow(x-1,3) + x*x*(5*x*x-2*x-6)/18/pow(x-1,4)*log(x) - 4./9*log(x) ); +} + +double EvtWilsonCoeficients::E(double x){ + return ( x*(18-11*x-x*x)/12/pow(1-x,3) + x*x*(15-16*x+4*x*x)/6/pow(1-x,4)*log(x) - 2./3*log(x) ); +} + +double EvtWilsonCoeficients::F(double x){ + return ( x*(x*x-5*x-2)/4/pow(x-1,3) + 3*x*x/2/pow(x-1,4)*log(x) ); +} + +double EvtWilsonCoeficients::Y(double x){ + return (C(x)-B(x)); +} + +double EvtWilsonCoeficients::Z(double x){ + return (C(x)+1./4*D(x)); +} + + +EvtComplex EvtWilsonCoeficients::C9(int ksi=0,double mu=4.8,int n_f=5,double Lambda=0.2167,double sin2W=0.23120,double M_t=174.3,double M_W=80.425,double ialpha=137.036){ + return ( 1./2/EvtConst::pi/ialpha*C9tilda(ksi,mu,n_f,Lambda,sin2W,M_t,M_W) ); +} + +EvtComplex EvtWilsonCoeficients::C9tilda(int ksi=0,double mu=4.8,int n_f=5,double Lambda=0.2167,double sin2W=0.23120,double M_t=174.3,double M_W=80.425){ + return ( P0(ksi,mu,n_f,Lambda,M_W) + Y(M_t*M_t/M_W/M_W)/sin2W - 4*Z(M_t*M_t/M_W/M_W) + PE(mu,n_f,Lambda,M_W)*E(M_t*M_t/M_W/M_W) ); +} + +EvtComplex EvtWilsonCoeficients::P0(int ksi=0,double mu=4.8,int n_f=5,double Lambda=0.2167,double M_W=80.425){ + int i; + EvtComplex myP0(0,0); + for(i=0;i<8;i++) myP0+=p[i]*pow(eta(mu,n_f,Lambda,M_W),a[i]+1); + myP0=EvtConst::pi/alphaS(M_W,n_f,Lambda)*(-0.1875+myP0); + myP0+=1.2468-ksi*4./9.*(3*C1(mu,n_f,Lambda,M_W)+C2(mu,n_f,Lambda,M_W)-C3(mu,n_f,Lambda,M_W)-3*C4(mu,n_f,Lambda,M_W)); + for(i=0;i<8;i++) myP0+=pow(eta(mu,n_f,Lambda,M_W),a[i])*(r[ksi][i]+s[i]*eta(mu,n_f,Lambda,M_W)); + return myP0; +} + +double EvtWilsonCoeficients::PE(double mu=4.8,int n_f=5,double Lambda=0.2167,double M_W=80.425){ + int i; + double myPE=0.1405; + for(i=0;i<8;i++) myPE+=q[i]*pow(eta(mu,n_f,Lambda,M_W),a[i]+1); + return myPE; +} + + +void EvtWilsonCoeficients::CalculateAllCoeficients(){ + m_Lambda=Lambda(m_alphaMZ,m_n_f,m_M_Z); + m_C1=C1(m_mu,m_n_f,m_Lambda,m_M_W); + m_C2=C2(m_mu,m_n_f,m_Lambda,m_M_W); + m_C3=C3(m_mu,m_n_f,m_Lambda,m_M_W); + m_C4=C4(m_mu,m_n_f,m_Lambda,m_M_W); + m_C5=C5(m_mu,m_n_f,m_Lambda,m_M_W); + m_C6=C6(m_mu,m_n_f,m_Lambda,m_M_W); + m_C7=C7(m_M_t,m_M_W); + m_C8=C8(m_M_t,m_M_W); + m_C7eff0=C7eff0(m_mu,m_n_f,m_Lambda,m_M_t,m_M_W); + m_C8eff0=C8eff0(m_mu,m_n_f,m_Lambda,m_M_t,m_M_W); + m_C10tilda=C10tilda(m_sin2W,m_M_t,m_M_W); + m_C10=C10(m_sin2W,m_M_t,m_M_W,m_ialpha); + m_A=A(m_M_t*m_M_t/m_M_W/m_M_W); + m_B=B(m_M_t*m_M_t/m_M_W/m_M_W); + m_C=C(m_M_t*m_M_t/m_M_W/m_M_W); + m_D=D(m_M_t*m_M_t/m_M_W/m_M_W); + m_E=E(m_M_t*m_M_t/m_M_W/m_M_W); + m_F=F(m_M_t*m_M_t/m_M_W/m_M_W); + m_Y=Y(m_M_t*m_M_t/m_M_W/m_M_W); + m_Z=Z(m_M_t*m_M_t/m_M_W/m_M_W); + m_C9=C9(m_ksi,m_mu,m_n_f,m_Lambda,m_sin2W,m_M_t,m_M_W,m_ialpha); + m_C9tilda=C9tilda(m_ksi,m_mu,m_n_f,m_Lambda,m_sin2W,m_M_t,m_M_W); + m_P0=P0(m_ksi,m_mu,m_n_f,m_Lambda,m_M_W); + m_PE=PE(m_mu,m_n_f,m_Lambda,m_M_W); + m_alphaS=alphaS(m_mu,m_n_f,m_Lambda); + m_eta=eta(m_mu,m_n_f,m_Lambda,m_M_W); + report(INFO,"EvtGen") << " +---------------------------------------" << std::endl; + report(INFO,"EvtGen") << " | Table of Wilson coeficients:" << std::endl; + report(INFO,"EvtGen") << " +---------------------------------------" << std::endl; + report(INFO,"EvtGen") << " | C1 = " << m_C1 << std::endl; + report(INFO,"EvtGen") << " | C2 = " << m_C2 << std::endl; + report(INFO,"EvtGen") << " | C3 = " << m_C3 << std::endl; + report(INFO,"EvtGen") << " | C4 = " << m_C4 << std::endl; + report(INFO,"EvtGen") << " | C5 = " << m_C5 << std::endl; + report(INFO,"EvtGen") << " | C6 = " << m_C6 << std::endl; + report(INFO,"EvtGen") << " | C7 = " << m_C7 << std::endl; + report(INFO,"EvtGen") << " | C7eff0 = " << m_C7eff0 << std::endl; + report(INFO,"EvtGen") << " | C8 = " << m_C8 << std::endl; + report(INFO,"EvtGen") << " | C8eff0 = " << m_C8eff0 << std::endl; + report(INFO,"EvtGen") << " | C9 = " << m_C9 << std::endl; + report(INFO,"EvtGen") << " | C10 = " << m_C10 << std::endl; + report(INFO,"EvtGen") << " +---------------------------------------" << std::endl; + report(INFO,"EvtGen") << " | Other constants:" << std::endl; + report(INFO,"EvtGen") << " +---------------------------------------" << std::endl; + report(INFO,"EvtGen") << " | Scale = " << m_mu << " GeV" << std::endl; + report(INFO,"EvtGen") << " | Number of effective flavors = " << m_n_f << std::endl; + report(INFO,"EvtGen") << " | Corresponding to aS(M_Z)" << "=" << m_alphaMZ << " Lambda = " << m_Lambda << " GeV" << std::endl; + report(INFO,"EvtGen") << " | Strong coupling constant = " << m_alphaS << std::endl; + report(INFO,"EvtGen") << " | Electromagnetic constant = 1/" << m_ialpha << std::endl; + report(INFO,"EvtGen") << " | Top mass = " << m_M_t << " GeV" << std::endl; + report(INFO,"EvtGen") << " | W-boson mass = " << m_M_W << " GeV" << std::endl; + report(INFO,"EvtGen") << " | Z-boson mass = " << m_M_Z << " GeV" << std::endl; + report(INFO,"EvtGen") << " | Sinus squared of Weinberg angle = " << m_sin2W << std::endl; + report(INFO,"EvtGen") << " +---------------------------------------" << std::endl; + report(DEBUG,"EvtGen") << " | Intermediate functions:" << std::endl; + report(DEBUG,"EvtGen") << " +---------------------------------------" << std::endl; + report(DEBUG,"EvtGen") << " | A = " << m_A << std::endl; + report(DEBUG,"EvtGen") << " | B = " << m_B << std::endl; + report(DEBUG,"EvtGen") << " | C = " << m_C << std::endl; + report(DEBUG,"EvtGen") << " | D = " << m_D << std::endl; + report(DEBUG,"EvtGen") << " | E = " << m_E << std::endl; + report(DEBUG,"EvtGen") << " | F = " << m_F << std::endl; + report(DEBUG,"EvtGen") << " | Y = " << m_Y << std::endl; + report(DEBUG,"EvtGen") << " | Z = " << m_Z << std::endl; + report(DEBUG,"EvtGen") << " | eta = " << m_eta << std::endl; + report(DEBUG,"EvtGen") << " | C9~ = " << m_C9tilda << std::endl; + report(DEBUG,"EvtGen") << " | C10~ = " << m_C10tilda << std::endl; + report(DEBUG,"EvtGen") << " | P0 = " << m_P0 << std::endl; + report(DEBUG,"EvtGen") << " | PE = " << m_PE << std::endl; + report(DEBUG,"EvtGen") << " +--------------------------------------" << std::endl; +} + +EvtComplex EvtWilsonCoeficients::hzs(double z,double shat,double mu=4.8,double M_b=4.8){ + EvtComplex i1(0,1); + double x=4.*z*z/shat; + if(x==0) return (8./27. - 8./9.*log(M_b/mu) - 4./9.*log(shat) + 4./9.*i1*EvtConst::pi); + else if(x>1) return (8./27. - 8./9.*log(M_b/mu) - 8./9.*log(z) + 4./9.*x - 2./9.*(2.+x)*sqrt(x-1.) * 2*atan(1./sqrt(x-1.))); + else return (8./27. - 8./9.*log(M_b/mu) - 8./9.*log(z) + 4./9.*x - 2./9.*(2.+x)*sqrt(1.-x) * (log(fabs(sqrt(1.-x)+1)/fabs(sqrt(1.-x)-1))-i1*EvtConst::pi)); +} + +double EvtWilsonCoeficients::fz(double z){ + return (1. - 8.*z*z + 8.*pow(z,6.) - pow(z,8.) - 24.*pow(z,4.)*log(z)); +} + +double EvtWilsonCoeficients::kappa(double z,double alpha_S){ + return (1. - 2.*alpha_S/3./EvtConst::pi*((EvtConst::pi*EvtConst::pi-31./4.)*(1.-z)*(1.-z) + 1.5) ); +} + +double EvtWilsonCoeficients::etatilda(double shat,double alpha_S){ + return (1. + alpha_S/EvtConst::pi*omega(shat)); +} + +double EvtWilsonCoeficients::omega(double shat){ + double o=0; + o -= (2./9.)*EvtConst::pi*EvtConst::pi; + o -= (4./3.)*li2spence_(&shat); + o -= (2./3.)*log(shat)*log(1.-shat); + o -= log(1.-shat)*(5.+4.*shat)/(3.+6.*shat); + o -= log(shat)*2.*shat*(1.+shat)*(1.-2.*shat)/3./(1.-shat)/(1.-shat)/(1.+2.*shat); + o += (5.+9.*shat-6.*shat*shat)/6./(1.-shat)/(1.+2.*shat); + return o; +} + +EvtComplex EvtWilsonCoeficients::C9efftilda(double z,double shat,double alpha_S,EvtComplex c1,EvtComplex c2,EvtComplex c3,EvtComplex c4,EvtComplex c5,EvtComplex c6,EvtComplex c9tilda,int ksi=0){ + EvtComplex c(0,0); + c += (c9tilda+ksi*4./9.*(3.*c1+c2-c3-3.*c4))*etatilda(shat,alpha_S); + c += hzs(z,shat)*(3.*c1+c2+3.*c3+c4+3.*c5+c6); + c -= 0.5*hzs(1,shat)*(4.*c3+4.*c4+3.*c5+c6); + c -= 0.5*hzs(0,shat)*(c3+3.*c4); + c += 2./9.*(3.*c3+c4+3.*c5+c6); + return c; +} + +EvtComplex EvtWilsonCoeficients::C7b2sg(double alpha_S,double et,EvtComplex c2,double M_t=174.3,double M_W=80.425){ + EvtComplex i1(0,1); + return (i1*alpha_S*(2./9.*pow(et,14./23.)*(0.5*F(M_t*M_t/M_W/M_W)-0.1687)-0.03*c2)); +} + +EvtComplex EvtWilsonCoeficients::Yld(double q2,double *ki,double *Gi,double *Mi,int ni,EvtComplex c1,EvtComplex c2,EvtComplex c3,EvtComplex c4,EvtComplex c5,EvtComplex c6,double ialpha=137.036){ + EvtComplex i1(0,1); + EvtComplex y(0,0); + int i; + for(i=0;i C7eff + EvtComplex C7(double M_t,double M_W); + EvtComplex C8(double M_t,double M_W); + EvtComplex C7eff0(double mu,int n_f,double Lambda,double M_t,double M_W); + EvtComplex C8eff0(double mu,int n_f,double Lambda,double M_t,double M_W); + // Wilson coeficient C10 + EvtComplex C10tilda(double sin2W,double M_t,double M_W); + EvtComplex C10(double sin2W,double M_t,double M_W,double ialpha); + // Wilson coeficient C9 + double PE(double mu,int n_f,double Lambda,double M_W); + EvtComplex P0(int ksi,double mu,int n_f,double Lambda,double M_W); + EvtComplex C9tilda(int ksi,double mu,int n_f,double Lambda,double sin2W,double M_t,double M_W); + EvtComplex C9(int ksi,double mu,int n_f,double Lambda,double sin2W,double M_t,double M_W,double ialpha); + + // Intermediate functions A-F,Y,Z + double A(double x); + double B(double x); + double C(double x); + double D(double x); + double E(double x); + double F(double x); + double Y(double x); + double Z(double x); + + // Mode decay specific functions + EvtComplex hzs(double z,double shat,double mu,double M_b); + double fz(double z); + double kappa(double z,double alpha_S); + double etatilda(double shat,double alpha_S); + double omega(double shat); + EvtComplex C9efftilda(double z,double shat,double alpha_S,EvtComplex c1,EvtComplex c2,EvtComplex c3,EvtComplex c4,EvtComplex c5,EvtComplex c6,EvtComplex c9tilda,int ksi); + EvtComplex C7b2sg(double alpha_S,double et,EvtComplex c2,double M_t,double M_W); + EvtComplex Yld(double q2,double ki[],double Gi[],double Mi[],int ni,EvtComplex c1,EvtComplex c2,EvtComplex c3,EvtComplex c4,EvtComplex c5,EvtComplex c6,double ialpha); + + // User function + void CalculateAllCoeficients(); + // Set parameters + void SetLambda(double lambda) { m_Lambda=lambda; } + void CalculateLambda(double epsilon,int maxstep) { m_Lambda=Lambda(m_alphaMZ,m_n_f,m_mu,epsilon,maxstep); } + void SetStrongCouplingAtZMass(double alphaMZ) { m_alphaMZ=alphaMZ; } + void SetScale(double mu) { m_mu=mu; } + void SetNumberOfFlavours(int n_f) { m_n_f=n_f; } + void SetZMass(double M_Z) { m_M_Z=M_Z; } + void SetWMass(double M_W) { m_M_W=M_W; } + void SetTopMass(double M_t) { m_M_t=M_t; } + void SetSin2WeinbergAngle(double sin2W) { m_sin2W=sin2W;} + void SetInvElMagCoupling(double ialpha) { m_ialpha=ialpha; } + void SetRenormalizationScheme(std::string scheme); + // Get parameters + double GetLambda() { return m_Lambda; } + double GetStrongCouplingAtZMass() { return m_alphaMZ; } + double GetStrongCouplingConst() { return m_alphaS; } + double GetScale() { return m_mu; } + int GetNumberOfFlavours() { return m_n_f; } + int GetRenormSchemePar() { return m_ksi; } + double GetZMass() { return m_M_Z; } + double GetWMass() { return m_M_W; } + double GetTopMass() { return m_M_t; } + double GetSin2WeinbergAngle() { return m_sin2W;} + double GetInvElMagCoupling() { return m_ialpha; } + double GetEta() { return m_eta; } + // Get results + double GetA() { return m_A; } + double GetB() { return m_B; } + double GetC() { return m_C; } + double GetD() { return m_D; } + double GetE() { return m_E; } + double GetF() { return m_F; } + double GetY() { return m_Y; } + double GetZ() { return m_Z; } + EvtComplex GetC1() { return m_C1; } + EvtComplex GetC2() { return m_C2; } + EvtComplex GetC3() { return m_C3; } + EvtComplex GetC4() { return m_C4; } + EvtComplex GetC5() { return m_C5; } + EvtComplex GetC6() { return m_C6; } + EvtComplex GetC7() { return m_C7; } + EvtComplex GetC8() { return m_C8; } + EvtComplex GetC9() { return m_C9; } + EvtComplex GetC10() { return m_C10; } + EvtComplex GetC7eff0() { return m_C7eff0; } + EvtComplex GetC8eff0() { return m_C8eff0; } + EvtComplex GetC9tilda() { return m_C9tilda; } + EvtComplex GetC10tilda() { return m_C10tilda; } + EvtComplex GetP0() { return m_P0; } + double GetPE() { return m_PE; } + +private: + + int m_n_f,m_ksi; + double m_Lambda,m_alphaMZ,m_mu,m_M_Z,m_M_t,m_M_W,m_alphaS,m_eta,m_sin2W,m_ialpha; + EvtComplex m_C1,m_C2,m_C3,m_C4,m_C5,m_C6,m_C7,m_C7eff0,m_C8,m_C8eff0,m_C9,m_C9tilda,m_C10,m_C10tilda,m_P0; + double m_A,m_B,m_C,m_D,m_E,m_F,m_Y,m_Z,m_PE; + + double k[6][8],a[8],h[8],p[8],r[2][8],s[8],q[8],g[8]; + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtY3SToY1SpipiMoxhay.cxx b/TEvtGen/EvtGenModels/EvtY3SToY1SpipiMoxhay.cxx new file mode 100644 index 00000000000..bd35e1f7fb0 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtY3SToY1SpipiMoxhay.cxx @@ -0,0 +1,151 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVVpipiMoxhay.hh +// +// Description: This model is based on the proposal by Tuan and Lipkin +// (Phys.Lett.B206:349-353,1988) and the subsequent model +// by Moxhay (Phys.Rev.D39:3497,1989) for the dipion spectrum +// in Y(3S) -> pi+ pi- Y(1S). Please Note: in Moxhay's paper, +// he wrote the fitted value of the parameter Im(B)/A as +// -0.2983. However, using his quoted value leads to the wrong +// spectrum. Changing the sign of his quoted Im(B)/A fixes the +// shape and reproduces his result. Therefore, please pass +// Im(B)/A = 0.2983 and Re(B)/A = 0.2196 to get the correct shape +// based on his fit to the CLEO data. +// +// Example: +// +// Decay Upsilon(3S) +// 1.0000 Upsilon pi+ pi- Y3STOY1SPIPIMOXHAY 0.2196 0.2983; +// Enddecay +// +// --> the order of parameters is: Re(B)/A Im(B)/A +// +// Modification history: +// +// SEKULA November 02, 2007 Module created +// +//------------------------------------------------------------------------ + + +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtY3SToY1SpipiMoxhay.hh" +#include +using std::endl; + +EvtY3SToY1SpipiMoxhay::~EvtY3SToY1SpipiMoxhay() {} + +std::string EvtY3SToY1SpipiMoxhay::getName(){ + + return "Y3STOY1SPIPIMOXHAY"; + +} + + +EvtDecayBase* EvtY3SToY1SpipiMoxhay::clone(){ + + return new EvtY3SToY1SpipiMoxhay; + +} + +void EvtY3SToY1SpipiMoxhay::init(){ + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + // check that there are 2 arguments + checkNArg(2); + checkNDaug(3); + + checkSpinParent(EvtSpinType::VECTOR); + checkSpinDaughter(0,EvtSpinType::VECTOR); + + + + if ((!(getDaug(1)==PIP&&getDaug(2)==PIM))&& + (!(getDaug(1)==PI0&&getDaug(2)==PI0))) { + report(ERROR,"EvtGen") << "EvtY3SToY1SpipiMoxhay generator expected " + << " pi+ and pi- (or pi0 and pi0) " + << "as 2nd and 3rd daughter. "<initializePhaseSpace(getNDaug(),getDaugs()); + + EvtParticle *v,*s1,*s2; + + v=p->getDaug(0); + s1=p->getDaug(1); + s2=p->getDaug(2); + + + // setup the parameters needed for this model + double g_spp = 0.64; + double lambda = -0.73; + double m_sigma = 0.71; + double f_pi = 0.094; + double m_pi = s1->getP4().mass(); + + double MV1 = p->getP4().mass(); + double MV2 = v->getP4().mass(); + + double q = (s1->getP4()+s2->getP4()).mass(); + + double EV2 = (MV1*MV1 - MV2*MV2 - q*q)/(2.0 * q); + + double ReB_over_A = getArg(0); + double ImB_over_A = getArg(1); + + + EvtComplex Xi; + + Xi = EvtComplex( 2.0/EvtConst::pi * ( 1.0 - sqrt(1.0 - 4*m_pi*m_pi/(q*q)) * log( (sqrt(q*q) + sqrt(q*q-4.0*m_pi*m_pi))/(2*m_pi) )), + sqrt(1.0 - 4*m_pi*m_pi/(q*q))); + + // The form factor + EvtComplex F; + + F = (g_spp*g_spp + lambda*(m_sigma*m_sigma - q*q)) / ( ( (m_sigma*m_sigma - q*q)*(1.0 - lambda*Xi) - (g_spp*g_spp*Xi) ) * 1.0/(8.0 * EvtConst::pi * f_pi*f_pi) * q * q ); + + EvtComplex B_over_A; + B_over_A = EvtComplex(ReB_over_A, ImB_over_A); + + // The dGamma/d(M_pipi) spectrum + EvtComplex dGdMpp; + + dGdMpp = abs2((q*q*F - B_over_A)) * q * sqrt(q*q - 4 * m_pi *m_pi) * sqrt(EV2 * EV2 - MV2*MV2); + + + setProb( real(dGdMpp) ); + return ; + +} + + + + diff --git a/TEvtGen/EvtGenModels/EvtY3SToY1SpipiMoxhay.hh b/TEvtGen/EvtGenModels/EvtY3SToY1SpipiMoxhay.hh new file mode 100644 index 00000000000..15c4017c161 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtY3SToY1SpipiMoxhay.hh @@ -0,0 +1,63 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtVVpipiMoxhay.hh +// +// Description: This model is based on the proposal by Tuan and Lipkin +// (Phys.Lett.B206:349-353,1988) and the subsequent model +// by Moxhay (Phys.Rev.D39:3497,1989) for the dipion spectrum +// in Y(3S) -> pi+ pi- Y(1S). Please Note: in Moxhay's paper, +// he wrote the fitted value of the parameter Im(B)/A as +// -0.2983. However, using his quoted value leads to the wrong +// spectrum. Changing the sign of his quoted Im(B)/A fixes the +// shape and reproduces his result. Therefore, please pass +// Im(B)/A = 0.2983 and Re(B)/A = 0.2196 to get the correct shape +// based on his fit to the CLEO data. +// +// Example: +// +// Decay Upsilon(3S) +// 1.0000 Upsilon pi+ pi- Y3STOY1SPIPIMOXHAY 0.2196 0.2983; +// Enddecay +// +// --> the order of parameters is: Re(B)/A Im(B)/A +// +// +// Modification history: +// +// SEKULA November 02, 2007 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTY3STOY1SPIPIMOXHAY_HH +#define EVTY3STOY1SPIPIMOXHAY_HH + +#include "EvtGenBase/EvtDecayProb.hh" + +class EvtParticle; + +class EvtY3SToY1SpipiMoxhay:public EvtDecayProb { + +public: + + EvtY3SToY1SpipiMoxhay() {} + virtual ~EvtY3SToY1SpipiMoxhay(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtYmSToYnSpipiCLEO.cxx b/TEvtGen/EvtGenModels/EvtYmSToYnSpipiCLEO.cxx new file mode 100644 index 00000000000..71bb3c1d405 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtYmSToYnSpipiCLEO.cxx @@ -0,0 +1,283 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtYmSToYnSpipiCLEO.hh +// +// Description: This model is based on matrix element method used by +// CLEO in Phys.Rev.D76:072001,2007 to model the dipion mass +// and helicity angle distribution in the decays Y(mS) -> pi pi Y(nS), +// where m,n are integers and m>n and m<4. +// This model has two parameters, Re(B/A) and Im(B/A), which +// are coefficients of the matrix element's terms determined by +// the CLEO fits. +// +// Example: +// +// Decay Upsilon(3S) +// 1.0000 Upsilon pi+ pi- YMSTOYNSPIPICLEO -2.523 1.189; +// Enddecay +// Decay Upsilon(3S) +// 1.0000 Upsilon(2S) pi+ pi- YMSTOYNSPIPICLEO -0.395 0.001; +// Enddecay +// Decay Upsilon(2S) +// 1.0000 Upsilon pi+ pi- YMSTOYNSPIPICLEO -0.753 0.000; +// Enddecay +// +// --> the order of parameters is: Re(B/A) Im(B/A) +// +// Modification history: +// +// SEKULA Jan. 28, 2008 Module created +// +//------------------------------------------------------------------------ + + +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtRandom.hh" +#include "EvtGenModels/EvtYmSToYnSpipiCLEO.hh" +#include +using std::endl; + +EvtYmSToYnSpipiCLEO::~EvtYmSToYnSpipiCLEO() {} + +std::string EvtYmSToYnSpipiCLEO::getName(){ + + return "YMSTOYNSPIPICLEO"; + +} + + +EvtDecayBase* EvtYmSToYnSpipiCLEO::clone(){ + + return new EvtYmSToYnSpipiCLEO; + +} + +void EvtYmSToYnSpipiCLEO::init(){ + + static EvtId PIP=EvtPDL::getId("pi+"); + static EvtId PIM=EvtPDL::getId("pi-"); + static EvtId PI0=EvtPDL::getId("pi0"); + + // check that there are 2 arguments + checkNArg(2); + checkNDaug(3); + + checkSpinParent(EvtSpinType::VECTOR); + checkSpinDaughter(0,EvtSpinType::VECTOR); + + + + if ((!(getDaug(1)==PIP&&getDaug(2)==PIM))&& + (!(getDaug(1)==PI0&&getDaug(2)==PI0))) { + report(ERROR,"EvtGen") << "EvtYmSToYnSpipiCLEO generator expected " + << " pi+ and pi- (or pi0 and pi0) " + << "as 2nd and 3rd daughter. "< Y(nS) X, X -> pi+ pi- (pi0 pi0) + // + // The CLEO analysis assumed such an intermediate process + // were occurring, and wrote down the matrix element + // and its components according to this assumption. + // + // + + + double ReB_over_A = getArg(0); + double ImB_over_A = getArg(1); + + p->makeDaughters(getNDaug(),getDaugs()); + EvtParticle *v,*s1,*s2; + v=p->getDaug(0); + s1=p->getDaug(1); + s2=p->getDaug(2); + + double m_pi = s1->getP4().mass(); + double M_mS = p->getP4().mass(); + double M_nS = v->getP4().mass(); + +// // report(INFO,"EvtYmSToYnSpipiCLEO") << "M_nS = " << v->getP4().mass() << endl; + + EvtVector4R P_nS; + EvtVector4R P_pi1; + EvtVector4R P_pi2; + + // Perform a simple accept/reject until we get a configuration of the + // dipion system that passes + bool acceptX = false; + + while( false == acceptX ) + { + + // Begin by generating a random X mass between the kinematic + // boundaries, 2*m_pi and M(mS) - M(nS) + + double mX = EvtRandom::Flat(2.0 * m_pi, M_mS-M_nS); + + // report(INFO,"EvtYmSToYnSpipiCLEO") << "m_X = " << mX << endl; + + // Now create a two-body decay from the Y(mS) in its rest frame + // of Y(mS) -> Y(nS) + X + + double masses[2]; + masses[0] = M_nS; + masses[1] = mX; + + EvtVector4R p4[2]; + + EvtGenKine::PhaseSpace( 2, masses, p4, M_mS ); + + P_nS = p4[0]; + EvtVector4R P_X = p4[1]; + + // Now create the four-vectors for the two pions in the X + // rest frame, X -> pi pi + + masses[0] = s1->mass(); + masses[1] = s2->mass(); + + EvtGenKine::PhaseSpace( 2, masses, p4, P_X.mass() ); + + // compute cos(theta), the polar helicity angle between a pi+ and + // the direction opposite the Y(mS) in the X rest frame. If the pions are pi0s, then + // choose the one where cos(theta) = [0:1]. + + EvtVector4R P_YmS_X = boostTo(p->getP4(), P_X); + double costheta = - p4[0].dot(P_YmS_X)/(p4[0].d3mag()*P_YmS_X.d3mag()); + if (EvtPDL::name(s1->getId()) == "pi0") { + if (costheta < 0) { + costheta = - p4[1].dot(P_YmS_X)/(p4[1].d3mag()*P_YmS_X.d3mag()); + } + } + if (EvtPDL::name(s1->getId()) == "pi-") { + costheta = - p4[1].dot(P_YmS_X)/(p4[1].d3mag()*P_YmS_X.d3mag()); + } + + // // report(INFO,"EvtYmSToYnSpipiCLEO") << "cos(theta) = " << costheta << endl; + + + + // Now boost the pion four vectors into the Y(mS) rest frame + P_pi1 = boostTo(p4[0],P_YmS_X); + P_pi2 = boostTo(p4[1],P_YmS_X); + + // Use a simple accept-reject to test this dipion system + + // Now compute the components of the matrix-element squared + // + // M(x,y)^2 = Q(x,y)^2 + |B/A|^2 * E1E2(x,y)^2 + 2*Re(B/A)*Q(x,y)*E1E2(x,y) + // + // x=m_pipi^2 and y = cos(theta), and where + // + // Q(x,y) = (x^2 + 2*m_pi^2) + // + // E1E2(x,y) = (1/4) * ( (E1 + E2)^2 - (E2 - E1)^2_max * cos(theta)^2 ) + // + // and E1 + E2 = M_mS - M_nS and (E2 - E1)_max is the maximal difference + // in the energy of the two pions allowed for a given mX value. + // + + double Q = (mX*mX - 2.0 * m_pi * m_pi); + + double deltaEmax = + - 2.0 * + sqrt( P_nS.get(0)*P_nS.get(0) - M_nS*M_nS ) * + sqrt( 0.25 - pow(m_pi/mX,2.0)); + + double sumE = (M_mS*M_mS - M_nS*M_nS + mX*mX)/(2.0 * M_mS); + + double E1E2 = 0.25 * ( pow(sumE, 2.0) - pow( deltaEmax * costheta, 2.0) ); + + double M2 = Q*Q + (pow(ReB_over_A,2.0) + pow(ImB_over_A,2.0)) * E1E2*E1E2 + 2.0 * ReB_over_A * Q * E1E2; + + // phase space factor + // + // this is given as d(PS) = C * p(*)_X * p(X)_{pi+} * d(cosTheta) * d(m_X) + // + // where C is a normalization constant, p(*)_X is the X momentum magnitude in the + // Y(mS) rest frame, and p(X)_{pi+} is the pi+/pi0 momentum in the X rest frame + // + + double dPS = + sqrt( (M_mS*M_mS - pow(M_nS + mX,2.0)) * (M_mS*M_mS - pow(M_nS - mX,2.0)) ) * // p(*)_X + sqrt(mX*mX - 4*m_pi*m_pi); // p(X)_{pi} + + // the double-differential decay rate dG/(dcostheta dmX) + double dG = M2 * dPS; + + // Throw a uniform random number from 0 --> probMax and do accept/reject on this + + double rnd = EvtRandom::Flat(0.0,getProbMax(0.0)); + + if (rnd < dG) + acceptX = true; + + } + + + // initialize the daughters + v->init( getDaugs()[0], P_nS); + s1->init( getDaugs()[1], P_pi1); + s2->init( getDaugs()[2], P_pi2); + +// report(INFO,"EvtYmSToYnSpipiCLEO") << "M_nS = " << v->getP4().mass() << endl; +// report(INFO,"EvtYmSToYnSpipiCLEO") << "m_pi = " << s1->getP4().mass() << endl; +// report(INFO,"EvtYmSToYnSpipiCLEO") << "m_pi = " << s2->getP4().mass() << endl; +// report(INFO,"EvtYmSToYnSpipiCLEO") << "M2 = " << M2 << endl; + + // Pass the polarization of the parent Upsilon + EvtVector4C ep0,ep1,ep2; + + ep0=p->eps(0); + ep1=p->eps(1); + ep2=p->eps(2); + + + vertex(0,0,(ep0*v->epsParent(0).conj())); + vertex(0,1,(ep0*v->epsParent(1).conj())); + vertex(0,2,(ep0*v->epsParent(2).conj())); + + vertex(1,0,(ep1*v->epsParent(0).conj())); + vertex(1,1,(ep1*v->epsParent(1).conj())); + vertex(1,2,(ep1*v->epsParent(2).conj())); + + vertex(2,0,(ep2*v->epsParent(0).conj())); + vertex(2,1,(ep2*v->epsParent(1).conj())); + vertex(2,2,(ep2*v->epsParent(2).conj())); + + + return ; + +} + + + + diff --git a/TEvtGen/EvtGenModels/EvtYmSToYnSpipiCLEO.hh b/TEvtGen/EvtGenModels/EvtYmSToYnSpipiCLEO.hh new file mode 100644 index 00000000000..36392e28741 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtYmSToYnSpipiCLEO.hh @@ -0,0 +1,67 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtYmSToYnSpipiCLEO.hh +// +// Description: This model is based on matrix element method used by +// CLEO in Phys.Rev.D76:072001,2007 to model the dipion mass +// and helicity angle distribution in the decays Y(mS) -> pi pi Y(nS), +// where m,n are integers and m>n and m<4. +// This model has two parameters, Re(B/A) and Im(B/A), which +// are coefficients of the matrix element's terms determined by +// the CLEO fits. +// +// Example: +// +// Decay Upsilon(3S) +// 1.0000 Upsilon pi+ pi- YMSTOYNSPIPICLEO -2.523 1.189; +// Enddecay +// Decay Upsilon(3S) +// 1.0000 Upsilon(2S) pi+ pi- YMSTOYNSPIPICLEO -0.395 0.001; +// Enddecay +// Decay Upsilon(2S) +// 1.0000 Upsilon pi+ pi- YMSTOYNSPIPICLEO -0.753 0.000; +// Enddecay +// +// --> the order of parameters is: Re(B/A) Im(B/A) +// +// Modification history: +// +// SEKULA Jan. 28, 2008 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTYMSTOYNSPIPICLEO_HH +#define EVTYMSTOYNSPIPICLEO_HH + +// #include "EvtGenBase/EvtDecayProb.hh" +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtParticle; + +class EvtYmSToYnSpipiCLEO:public EvtDecayAmp { + //EvtDecayProb { + +public: + + EvtYmSToYnSpipiCLEO() {} + virtual ~EvtYmSToYnSpipiCLEO(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtbTosllAli.cxx b/TEvtGen/EvtGenModels/EvtbTosllAli.cxx new file mode 100644 index 00000000000..26bb9018dfd --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtbTosllAli.cxx @@ -0,0 +1,115 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2003 Caltech, UCSB +// +// Module: EvtbTosllAli.cc +// +// Description: Routine to implement b->sll decays according to Ali '02 et al. +// +// Modification history: +// +// Ryd March 30, 2003 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtbTosllAli.hh" +#include "EvtGenModels/EvtbTosllAliFF.hh" +#include "EvtGenModels/EvtbTosllAmp.hh" +#include "EvtGenModels/EvtbTosllScalarAmp.hh" +#include "EvtGenModels/EvtbTosllVectorAmp.hh" + +#include +using std::endl; + +EvtbTosllAli::~EvtbTosllAli() {} + +std::string EvtbTosllAli::getName(){ + + return "BTOSLLALI"; +} + + +EvtDecayBase* EvtbTosllAli::clone(){ + + return new EvtbTosllAli; + +} + +void EvtbTosllAli::decay( EvtParticle *p ){ + + setWeight(p->initializePhaseSpace(getNDaug(),getDaugs(),_poleSize,1,2)); + + _calcamp->CalcAmp(p,_amp2,_aliffmodel); + +} + + +void EvtbTosllAli::initProbMax(){ + + EvtId parnum,mesnum,l1num,l2num; + + parnum = getParentId(); + mesnum = getDaug(0); + l1num = getDaug(1); + l2num = getDaug(2); + + //This routine sets the _poleSize. + double mymaxprob = _calcamp->CalcMaxProb(parnum,mesnum, + l1num,l2num, + _aliffmodel,_poleSize); + + setProbMax(mymaxprob); + +} + + +void EvtbTosllAli::init(){ + + checkNArg(0); + checkNDaug(3); + + //We expect the parent to be a scalar + //and the daughters to be X lepton+ lepton- + + checkSpinParent(EvtSpinType::SCALAR); + + EvtSpinType::spintype mesontype=EvtPDL::getSpinType(getDaug(0)); + + if ( !(mesontype == EvtSpinType::VECTOR|| + mesontype == EvtSpinType::SCALAR)) { + report(ERROR,"EvtGen") << "EvtbTosllAli generator expected " + << " a SCALAR or VECTOR 1st daughter, found:"<< + EvtPDL::name(getDaug(0)).c_str()<sll decays according to Ali '01 et al. +// +// Modification history: +// +// Ryd March 30, 2003 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOSLLALI_HH +#define EVTBTOSLLALI_HH + + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtbTosllFF; +class EvtbTosllAmp; +class EvtParticle; + +class EvtbTosllAli:public EvtDecayAmp { + +public: + + EvtbTosllAli(): _aliffmodel(0), _calcamp(0) {} + virtual ~EvtbTosllAli(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +private: + EvtbTosllFF *_aliffmodel; + EvtbTosllAmp *_calcamp; + double _poleSize; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtbTosllAliFF.cxx b/TEvtGen/EvtGenModels/EvtbTosllAliFF.cxx new file mode 100644 index 00000000000..87a8011328f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtbTosllAliFF.cxx @@ -0,0 +1,71 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech, UCSB +// +// Module: +// Description: Form factors for b->sll according to Ali '02 et al. +// PRD 66 34002 +// +// Modification history: +// +// Ryd March 30, 2003 Module created +// +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtbTosllAliFF.hh" +#include + +EvtbTosllAliFF::EvtbTosllAliFF(){} + + +void EvtbTosllAliFF::getScalarFF(EvtId parent, EvtId daught, + double t, double /*mass*/, + double& fp,double& f0,double& ft){ + + double m=EvtPDL::getMeanMass(parent); + //double md=EvtPDL::getMeanMass(daught); + + double shat=t/(m*m); + double shat2=shat*shat; + double shat3=shat2*shat; + + fp = 0.278*exp(1.568*shat+0.470*shat2+0.885*shat3); + f0 = 0.278*exp(0.740*shat+0.080*shat2+0.425*shat3); + ft = 0.300*exp(1.600*shat+0.501*shat2+0.796*shat3); + +} + + +void EvtbTosllAliFF::getVectorFF(EvtId parent, EvtId daught, + double t, double /*mass*/, + double& a1,double& a2,double& a0, double& v, + double& t1, double& t2, double& t3 ){ + + + double m=EvtPDL::getMeanMass(parent); + + double shat=t/(m*m); + double shat2=shat*shat; + + //this is Ali 'minimum allowed form factors' + a1=0.294*exp(0.656*shat+0.456*shat2); + a2=0.246*exp(1.237*shat+0.822*shat2); + a0=0.412*exp(1.543*shat+0.954*shat2); + v=0.399*exp(1.537*shat+1.123*shat2); + + t1=0.334*exp(1.575*shat+1.140*shat2); + t2=0.334*exp(0.562*shat+0.481*shat2); + t3=0.234*exp(1.230*shat+1.089*shat2); + +} + + diff --git a/TEvtGen/EvtGenModels/EvtbTosllAliFF.hh b/TEvtGen/EvtGenModels/EvtbTosllAliFF.hh new file mode 100644 index 00000000000..e3710a2ccf9 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtbTosllAliFF.hh @@ -0,0 +1,48 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: +// Description: Form factors for b->sll according to Ali '02 et al. +// PRD 66 34002 +// +// Modification history: +// +// Ryd March 30, 2003 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOSLLALIFF_HH +#define EVTBTOSLLALIFF_HH + +#include "EvtGenModels/EvtbTosllFF.hh" + +class EvtId; + + +class EvtbTosllAliFF : public EvtbTosllFF { + +public: + + EvtbTosllAliFF(); + + void getScalarFF(EvtId parent, EvtId daught,double t, double mass, + double& fp,double& f0,double& ft); + void getVectorFF(EvtId parent, EvtId daught,double t, double mass, + double& a1,double& a2,double& a0, double& v, + double& t1, double& t2, double& t3 ); + + + +private: + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtbTosllAmp.cxx b/TEvtGen/EvtGenModels/EvtbTosllAmp.cxx new file mode 100644 index 00000000000..0686dee73ef --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtbTosllAmp.cxx @@ -0,0 +1,696 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtbTosllAmp.cc +// +// Description: Routine to implement semileptonic decays to pseudo-scalar +// mesons. +// +// Modification history: +// +// DJL April 17,1998 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenModels/EvtbTosllAmp.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtAmp.hh" +#include "EvtGenBase/EvtScalarParticle.hh" +#include "EvtGenBase/EvtVectorParticle.hh" +#include "EvtGenBase/EvtDiLog.hh" + +double EvtbTosllAmp::CalcMaxProb( EvtId parent, EvtId meson, + EvtId lepton1, EvtId lepton2, + EvtbTosllFF *FormFactors, + double& poleSize) { + + //This routine takes the arguements parent, meson, and lepton + //number, and a form factor model, and returns a maximum + //probability for this semileptonic form factor model. A + //brute force method is used. The 2D cos theta lepton and + //q2 phase space is probed. + + //Start by declaring a particle at rest. + + //It only makes sense to have a scalar parent. For now. + //This should be generalized later. + + EvtScalarParticle *scalar_part; + EvtParticle *root_part; + + scalar_part=new EvtScalarParticle; + + //cludge to avoid generating random numbers! + scalar_part->noLifeTime(); + + EvtVector4R p_init; + + p_init.set(EvtPDL::getMass(parent),0.0,0.0,0.0); + scalar_part->init(parent,p_init); + root_part=(EvtParticle *)scalar_part; + root_part->setDiagonalSpinDensity(); + + EvtParticle *daughter, *lep1, *lep2; + + EvtAmp amp; + + EvtId listdaug[3]; + listdaug[0] = meson; + listdaug[1] = lepton1; + listdaug[2] = lepton2; + + amp.init(parent,3,listdaug); + + root_part->makeDaughters(3,listdaug); + daughter=root_part->getDaug(0); + lep1=root_part->getDaug(1); + lep2=root_part->getDaug(2); + + //cludge to avoid generating random numbers! + daughter->noLifeTime(); + lep1->noLifeTime(); + lep2->noLifeTime(); + + + //Initial particle is unpolarized, well it is a scalar so it is + //trivial + EvtSpinDensity rho; + rho.setDiag(root_part->getSpinStates()); + + double mass[3]; + + double m = root_part->mass(); + + EvtVector4R p4meson, p4lepton1, p4lepton2, p4w; + double q2max; + + double q2, elepton, plepton; + int i,j; + double erho,prho,costl; + + double maxfoundprob = 0.0; + double prob = -10.0; + int massiter; + + double maxpole=0; + + for (massiter=0;massiter<3;massiter++){ + + mass[0] = EvtPDL::getMeanMass(meson); + mass[1] = EvtPDL::getMeanMass(lepton1); + mass[2] = EvtPDL::getMeanMass(lepton2); + if ( massiter==1 ) { + mass[0] = EvtPDL::getMinMass(meson); + } + if ( massiter==2 ) { + mass[0] = EvtPDL::getMaxMass(meson); + if ( (mass[0]+mass[1]+mass[2])>m) mass[0]=m-mass[1]-mass[2]-0.00001; + } + + q2max = (m-mass[0])*(m-mass[0]); + + //loop over q2 + //cout << "m " << m << "mass[0] " << mass[0] << " q2max "<< q2max << endl; + for (i=0;i<25;i++) { + //want to avoid picking up the tail of the photon propagator + q2 = ((i+1.5)*q2max)/26.0; + + if (i==0) q2=4*(mass[1]*mass[1]); + + erho = ( m*m + mass[0]*mass[0] - q2 )/(2.0*m); + + prho = sqrt(erho*erho-mass[0]*mass[0]); + + p4meson.set(erho,0.0,0.0,-1.0*prho); + p4w.set(m-erho,0.0,0.0,prho); + + //This is in the W rest frame + elepton = (q2+mass[1]*mass[1])/(2.0*sqrt(q2)); + plepton = sqrt(elepton*elepton-mass[1]*mass[1]); + + double probctl[3]; + + for (j=0;j<3;j++) { + + costl = 0.99*(j - 1.0); + + //These are in the W rest frame. Need to boost out into + //the B frame. + p4lepton1.set(elepton,0.0, + plepton*sqrt(1.0-costl*costl),plepton*costl); + p4lepton2.set(elepton,0.0, + -1.0*plepton*sqrt(1.0-costl*costl),-1.0*plepton*costl); + + EvtVector4R boost((m-erho),0.0,0.0,1.0*prho); + p4lepton1=boostTo(p4lepton1,boost); + p4lepton2=boostTo(p4lepton2,boost); + + //Now initialize the daughters... + + daughter->init(meson,p4meson); + lep1->init(lepton1,p4lepton1); + lep2->init(lepton2,p4lepton2); + + CalcAmp(root_part,amp,FormFactors); + + //Now find the probability at this q2 and cos theta lepton point + //and compare to maxfoundprob. + + //Do a little magic to get the probability!! + + //cout <<"amp:"<prob) prob=probctl[1]; + if (probctl[2]>prob) prob=probctl[2]; + + if (fabs(c)>1e-20){ + double ctlx=-0.5*b/c; + if (fabs(ctlx)<1.0){ + double probtmp=a+b*ctlx+c*ctlx*ctlx; + if (probtmp>prob) prob=probtmp; + } + + } + + //report(DEBUG,"EvtGen") << "prob,probctl:"< maxfoundprob ) { + maxfoundprob = prob; + } + + //cout << "q2,maxfoundprob:"<deleteTree(); + + poleSize=0.04*(maxpole/maxfoundprob)*4*(mass[1]*mass[1]); + + //poleSize=0.002; + + //cout <<"maxfoundprob,maxpole,poleSize:"< 0.25) + { + c7eff = A7; + return c7eff; + } + + + + + // change energy scale to 5.0 for full NNLO calculation below shat = 0.25 + muscale = 5.0; + alphas = 0.215; + A7 = -0.312 + 0.008; + A8 = -0.148; + A9 = 4.174 + (-0.035); + A10 = -4.592 + 0.379; + C1 = -0.487; + C2 = 1.024; + T9 = 0.374 + 0.252; + U9 = 0.033 + 0.015; + W9 = 0.032 + 0.012; + Lmu = log(muscale/mbeff); + + EvtComplex F71; + EvtComplex f71; + EvtComplex k7100(-0.68192,-0.074998); + EvtComplex k7101(0.0,0.0); + EvtComplex k7110(-0.23935,-0.12289); + EvtComplex k7111(0.0027424,0.019676); + EvtComplex k7120(-0.0018555,-0.175); + EvtComplex k7121(0.022864,0.011456); + EvtComplex k7130(0.28248,-0.12783); + EvtComplex k7131(0.029027,-0.0082265); + f71 = k7100 + k7101*logshat + shat*(k7110 + k7111*logshat) + + shat*shat*(k7120 + k7121*logshat) + + shat*shat*shat*(k7130 + k7131*logshat); + F71 = (-208.0/243.0)*Lmu + f71; + + EvtComplex F72; + EvtComplex f72; + EvtComplex k7200(4.0915,0.44999); + EvtComplex k7201(0.0,0.0); + EvtComplex k7210(1.4361,0.73732); + EvtComplex k7211(-0.016454,-0.11806); + EvtComplex k7220(0.011133,1.05); + EvtComplex k7221(-0.13718,-0.068733); + EvtComplex k7230(-1.6949,0.76698); + EvtComplex k7231(-0.17416,0.049359); + f72 = k7200 + k7201*logshat + shat*(k7210 + k7211*logshat) + + shat*shat*(k7220 + k7221*logshat) + + shat*shat*shat*(k7230 + k7231*logshat); + F72 = (416.0/81.0)*Lmu + f72; + + EvtComplex F78; + F78 = (-32.0/9.0)*Lmu + 8.0*EvtConst::pi*EvtConst::pi/27.0 + (-44.0/9.0) + + (-8.0*EvtConst::pi/9.0)*uniti + + (4.0/3.0*EvtConst::pi*EvtConst::pi - 40.0/3.0)*shat + + (32.0*EvtConst::pi*EvtConst::pi/9.0 - 316.0/9.0)*shat*shat + + (200.0*EvtConst::pi*EvtConst::pi/27.0 - 658.0/9.0)*shat*shat*shat + + (-8.0*logshat/9.0)*(shat + shat*shat + shat*shat*shat); + + c7eff = A7 - alphas/(4.0*EvtConst::pi)*(C1*F71 + C2*F72 + A8*F78); + + return c7eff; +} + + +EvtComplex EvtbTosllAmp::GetC9Eff(double q2, bool nnlo, bool btod) +{ + + if (!nnlo) return 4.344; + double mbeff = 4.8; + double shat = q2/mbeff/mbeff; + double logshat; + logshat = log(shat); + double mchat = 0.29; + + + double muscale; + muscale = 2.5; + double alphas; + alphas = 0.267; + double A7; + A7 = -0.353 + 0.023; + double A8; + A8 = -0.164; + double A9; + A9 = 4.287 + (-0.218); + double A10; + A10 = -4.592 + 0.379; + double C1; + C1 = -0.697; + double C2; + C2 = 1.046; + double T9; + T9 = 0.114 + 0.280; + double U9; + U9 = 0.045 + 0.023; + double W9; + W9 = 0.044 + 0.016; + + double Lmu; + Lmu = log(muscale/mbeff); + + + EvtComplex uniti(0.0,1.0); + + EvtComplex hc; + double xarg; + xarg = 4.0*mchat/shat; + hc = -4.0/9.0*log(mchat*mchat) + 8.0/27.0 + 4.0*xarg/9.0; + +if (xarg < 1.0) + { + hc = hc - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))* + (log(fabs((sqrt(1.0 - xarg)+1.0)/(sqrt(1.0 - xarg) - 1.0))) - + uniti*EvtConst::pi); + } + else + { + hc = hc - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))* + 2.0*atan(1.0/sqrt(xarg - 1.0)); + } + + EvtComplex h1; + xarg = 4.0/shat; + h1 = 8.0/27.0 + 4.0*xarg/9.0; + if (xarg < 1.0) + { + h1 = h1 - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))* + (log(fabs((sqrt(1.0 - xarg)+1.0)/(sqrt(1.0 - xarg) - 1.0))) - + uniti*EvtConst::pi); + } + else + { + h1 = h1 - 2.0/9.0*(2.0 + xarg)*sqrt(fabs(1.0 - xarg))* + 2.0*atan(1.0/sqrt(xarg - 1.0)); + } + + + EvtComplex h0; + h0 = 8.0/27.0 - 4.0*log(2.0)/9.0 + 4.0*uniti*EvtConst::pi/9.0; + + + // X=V_{ud}^* V_ub / V_{td}^* V_tb * (4/3 C_1 +C_2) * (h(\hat m_c^2, hat s)- + // h(\hat m_u^2, hat s)) + EvtComplex Vudstar(1.0 - 0.2279*0.2279/2.0, 0.0); + EvtComplex Vub((0.118+0.273)/2.0, -1.0*(0.305+0.393)/2.0); + EvtComplex Vtdstar(1.0 - (0.118+0.273)/2.0,(0.305+0.393)/2.0); + EvtComplex Vtb(1.0,0.0); + + EvtComplex Xd; + Xd = (Vudstar * Vub / Vtdstar * Vtb) * (4.0/3.0*C1 + C2) * (hc - h0); + + + EvtComplex c9eff=4.344; + if (shat > 0.25) + { + c9eff = A9 + T9*hc + U9*h1 + W9*h0; + if (btod) + { + c9eff += Xd; + } + + return c9eff; + } + + // change energy scale to 5.0 for full NNLO calculation below shat = 0.25 + muscale = 5.0; + alphas = 0.215; + A9 = 4.174 + (-0.035); + C1 = -0.487; + C2 = 1.024; + A8 = -0.148; + T9 = 0.374 + 0.252; + U9 = 0.033 + 0.015; + W9 = 0.032 + 0.012; + Lmu = log(muscale/mbeff); + + EvtComplex F91; + EvtComplex f91; + EvtComplex k9100(-11.973,0.16371); + EvtComplex k9101(-0.081271,-0.059691); + EvtComplex k9110(-28.432,-0.25044); + EvtComplex k9111(-0.040243,0.016442); + EvtComplex k9120(-57.114,-0.86486); + EvtComplex k9121(-0.035191,0.027909); + EvtComplex k9130(-128.8,-2.5243); + EvtComplex k9131(-0.017587,0.050639); + f91 = k9100 + k9101*logshat + shat*(k9110 + k9111*logshat) + + shat*shat*(k9120 + k9121*logshat) + + shat*shat*shat*(k9130 + k9131*logshat); + F91 = (-1424.0/729.0 + 16.0*uniti*EvtConst::pi/243.0 + + 64.0/27.0*log(mchat))*Lmu - 16.0*Lmu*logshat/243.0 + + (16.0/1215.0 - 32.0/135.0/mchat/mchat)*Lmu*shat + + (4.0/2835.0 - 8.0/315.0/mchat/mchat/mchat/mchat)*Lmu*shat*shat + + (16.0/76545.0 - 32.0/8505.0/mchat/mchat/mchat/mchat/mchat/mchat)* + Lmu*shat*shat*shat -256.0*Lmu*Lmu/243.0 + f91; + + EvtComplex F92; + EvtComplex f92; + EvtComplex k9200(6.6338,-0.98225); + EvtComplex k9201(0.48763,0.35815); + EvtComplex k9210(3.3585,1.5026); + EvtComplex k9211(0.24146,-0.098649); + EvtComplex k9220(-1.1906,5.1892); + EvtComplex k9221(0.21115,-0.16745); + EvtComplex k9230(-17.12,15.146); + EvtComplex k9231(0.10552,-0.30383); + f92 = k9200 + k9201*logshat + shat*(k9210 + k9211*logshat) + + shat*shat*(k9220 + k9221*logshat) + + shat*shat*shat*(k9230 + k9231*logshat); + F92 = (256.0/243.0 - 32.0*uniti*EvtConst::pi/81.0 + - 128.0/9.0*log(mchat))*Lmu + 32.0*Lmu*logshat/81.0 + + (-32.0/405.0 + 64.0/45.0/mchat/mchat)*Lmu*shat + + (-8.0/945.0 + 16.0/105.0/mchat/mchat/mchat/mchat)*Lmu*shat*shat + + (-32.0/25515.0 + 64.0/2835.0/mchat/mchat/mchat/mchat/mchat/mchat)* + Lmu*shat*shat*shat + 512.0*Lmu*Lmu/81.0 + f92; + + EvtComplex F98; + F98 = 104.0/9.0 - 32.0*EvtConst::pi*EvtConst::pi/27.0 + + (1184.0/27.0 - 40.0*EvtConst::pi*EvtConst::pi/9.0)*shat + + (14212.0/135.0 - 32.0*EvtConst::pi*EvtConst::pi/3.0)*shat*shat + + (193444.0/945.0 - 560.0*EvtConst::pi*EvtConst::pi/27.0)*shat*shat*shat + + 16.0*logshat/9.0*(1.0 + shat + shat*shat + shat*shat*shat); + + Xd = (Vudstar * Vub / Vtdstar * Vtb) * (4.0/3.0*C1 + C2) * (hc - h0); + + c9eff = A9 + T9*hc + U9*h1 + W9*h0 - + alphas/(4.0*EvtConst::pi)*(C1*F91 + C2*F92 + A8*F98); + if (btod) + { + c9eff += Xd; + } + + return c9eff; +} + +EvtComplex EvtbTosllAmp::GetC10Eff(double /*q2*/, bool nnlo) +{ + + if (!nnlo) return -4.669; + double A10; + A10 = -4.592 + 0.379; + + EvtComplex c10eff; + c10eff = A10; + + return c10eff; +} + +double EvtbTosllAmp::dGdsProb(double mb, double ms, double ml, + double s) +{ + // Compute the decay probability density function given a value of s + // according to Ali's paper + + + double delta, lambda, prob; + double f1, f2, f3, f4; + double msh, mlh, sh; + + mlh = ml / mb; + msh = ms / mb; + sh = s / (mb*mb); + + EvtComplex c9eff = EvtbTosllAmp::GetC9Eff(sh*mb); + EvtComplex c7eff = EvtbTosllAmp::GetC7Eff(sh*mb); + EvtComplex c10eff = EvtbTosllAmp::GetC10Eff(sh*mb); + + double alphas = 0.119/ + (1 + 0.119*log(pow(4.8,2)/pow(91.1867,2))*23.0/12.0/EvtConst::pi); + double omega9 = -2.0/9.0*EvtConst::pi*EvtConst::pi - 4.0/3.0*EvtDiLog::DiLog(sh) + - 2.0/3.0*log(sh)*log(1.0-sh) + - (5.0+4.0*sh)/(3.0*(1.0+2.0*sh)) * log(1.0-sh) + - 2.0*sh*(1.0+sh)*(1.0-2.0*sh) + /(3.0*pow(1.0-sh,2)*(1.0+2.0*sh)) * log(sh) + + (5.0+9.0*sh-6.0*sh*sh)/(6.0*(1.0-sh)*(1.0+2.0*sh)); + double eta9 = 1.0 + alphas*omega9/EvtConst::pi; + double omega7 = -8.0/3.0*log(4.8/mb) + -4.0/3.0*EvtDiLog::DiLog(sh) + -2.0/9.0*EvtConst::pi*EvtConst::pi + -2.0/3.0*log(sh)*log(1.0-sh) + -log(1-sh)*(8.0+sh)/(2.0+sh)/3.0 + -2.0/3.0*sh*(2.0 - 2.0*sh - sh*sh)*log(sh)/pow((1.0 - sh),2)/(2.0 + sh) + -(16.0 - 11.0*sh - 17.0*sh*sh)/18.0/(2.0 + sh)/(1.0 - sh); + double eta7 = 1.0 + alphas*omega7/EvtConst::pi; + + double omega79 = -4.0/3.0*log(4.8/mb) + -4.0/3.0*EvtDiLog::DiLog(sh) + -2.0/9.0*EvtConst::pi*EvtConst::pi + -2.0/3.0*log(sh)*log(1.0-sh) + -1.0/9.0*(2.0+7.0*sh)*log(1.0 - sh)/sh + -2.0/9.0*sh*(3.0 - 2.0*sh)*log(sh)/pow((1.0 - sh),2) + +1.0/18.0*(5.0 - 9.0*sh)/(1.0 - sh); + double eta79 = 1.0 + alphas*omega79/EvtConst::pi; + + double c7c9 = abs(c7eff)*real(c9eff); + c7c9 *= pow(eta79,2); + double c7c7 = pow(abs(c7eff),2); + c7c7 *= pow(eta7,2); + + double c9c9plusc10c10 = pow(abs(c9eff),2) + pow(abs(c10eff),2); + c9c9plusc10c10 *= pow(eta9,2); + double c9c9minusc10c10 = pow(abs(c9eff),2) - pow(abs(c10eff),2); + c9c9minusc10c10 *= pow(eta9,2); + + lambda = 1.0 + sh*sh + pow(msh,4) - 2.0*(sh + sh*msh*msh + msh*msh); + + f1 = pow(1.0-msh*msh,2) - sh*(1.0 + msh*msh); + f2 = 2.0*(1.0 + msh*msh) * pow(1.0-msh*msh,2) + - sh*(1.0 + 14.0*msh*msh + pow(msh,4)) - sh*sh*(1.0 + msh*msh); + f3 = pow(1.0-msh*msh,2) + sh*(1.0 + msh*msh) - 2.0*sh*sh + + lambda*2.0*mlh*mlh/sh; + f4 = 1.0 - sh + msh*msh; + + delta = ( 12.0*c7c9*f1 + 4.0*c7c7*f2/sh ) * (1.0 + 2.0*mlh*mlh/sh) + + c9c9plusc10c10*f3 + + 6.0*mlh*mlh*c9c9minusc10c10*f4; + + prob = sqrt(lambda*(1.0 - 4.0*mlh*mlh/sh)) * delta; + + return prob; +} + +double EvtbTosllAmp::dGdsdupProb(double mb, double ms, double ml, + double s, double u) +{ + // Compute the decay probability density function given a value of s and u + // according to Ali's paper + + double prob; + double f1sp, f2sp, f3sp; + + double sh = s / (mb*mb); + + EvtComplex c9eff = EvtbTosllAmp::GetC9Eff(sh*mb); + EvtComplex c7eff = EvtbTosllAmp::GetC7Eff(sh*mb); + EvtComplex c10eff = EvtbTosllAmp::GetC10Eff(sh*mb); + + double alphas = 0.119/ + (1 + 0.119*log(pow(4.8,2)/pow(91.1867,2))*23.0/12.0/EvtConst::pi); + double omega9 = - 2.0/9.0*EvtConst::pi*EvtConst::pi - 4.0/3.0*EvtDiLog::DiLog(sh) + - 2.0/3.0*log(sh)*log(1.0-sh) + - (5.0+4.0*sh)/(3.0*(1.0+2.0*sh)) * log(1.0-sh) + - 2.0*sh*(1.0+sh)*(1.0-2.0*sh) + /(3.0*pow(1.0-sh,2)*(1.0+2.0*sh)) * log(sh) + + (5.0+9.0*sh-6.0*sh*sh)/(6.0*(1.0-sh)*(1.0+2.0*sh)); + double eta9 = 1.0 + alphas*omega9/EvtConst::pi; + double omega7 = -8.0/3.0*log(4.8/mb) + -4.0/3.0*EvtDiLog::DiLog(sh) + -2.0/9.0*EvtConst::pi*EvtConst::pi + -2.0/3.0*log(sh)*log(1.0-sh) + -log(1-sh)*(8.0+sh)/(2.0+sh)/3.0 + -2.0/3.0*sh*(2.0 - 2.0*sh - sh*sh)*log(sh)/pow((1.0 - sh),2)/(2.0 + sh) + -(16.0 - 11.0*sh - 17.0*sh*sh)/18.0/(2.0 + sh)/(1.0 - sh); + double eta7 = 1.0 + alphas*omega7/EvtConst::pi; + + double omega79 = -4.0/3.0*log(4.8/mb) + -4.0/3.0*EvtDiLog::DiLog(sh) + -2.0/9.0*EvtConst::pi*EvtConst::pi + -2.0/3.0*log(sh)*log(1.0-sh) + -1.0/9.0*(2.0+7.0*sh)*log(1.0 - sh)/sh + -2.0/9.0*sh*(3.0 - 2.0*sh)*log(sh)/pow((1.0 - sh),2) + +1.0/18.0*(5.0 - 9.0*sh)/(1.0 - sh); + double eta79 = 1.0 + alphas*omega79/EvtConst::pi; + + double c7c9 = abs(c7eff)*real(c9eff); + c7c9 *= pow(eta79,2); + double c7c7 = pow(abs(c7eff),2); + c7c7 *= pow(eta7,2); + + double c9c9plusc10c10 = pow(abs(c9eff),2) + pow(abs(c10eff),2); + c9c9plusc10c10 *= pow(eta9,2); + double c9c9minusc10c10 = pow(abs(c9eff),2) - pow(abs(c10eff),2); + c9c9minusc10c10 *= pow(eta9,2); + double c7c10 = abs(c7eff)*real(c10eff); + c7c10 *= eta7; c7c10 *= eta9; + double c9c10 = real(c9eff)*real(c10eff); + c9c10 *= pow(eta9,2); + + f1sp = ( pow(mb*mb-ms*ms,2) - s*s) * c9c9plusc10c10 + + 4.0*( pow(mb,4) - ms*ms*mb*mb - pow(ms,4)*(1.0 - ms*ms/(mb*mb)) + - 8.0*s*ms*ms - s*s*(1.0 + ms*ms/(mb*mb) ))*mb*mb*c7c7/s + // kludged mass term + *(1.0 + 2.0*ml*ml/s) + - 8.0*(s*(mb*mb + ms*ms) - pow(mb*mb-ms*ms,2)) * c7c9 + // kludged mass term + *(1.0 + 2.0*ml*ml/s); + + f2sp = 4.0*s*c9c10 + 8.0*(mb*mb + ms*ms)*c7c10; + f3sp = - (c9c9plusc10c10) + + 4.0*(1.0 + pow(ms/mb,4)) * mb*mb*c7c7/s + // kludged mass term + *(1.0 + 2.0*ml*ml/s); + + prob = (f1sp + f2sp*u + f3sp*u*u)/ pow(mb,3); + + return prob; +} + + + + + + + + + + + + + diff --git a/TEvtGen/EvtGenModels/EvtbTosllAmp.hh b/TEvtGen/EvtGenModels/EvtbTosllAmp.hh new file mode 100644 index 00000000000..6863a64b455 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtbTosllAmp.hh @@ -0,0 +1,59 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtbTosllAmp.hh +// +// Description: +// +// Modification history: +// +// RYD January 30 2000 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOSLLAMP_HH +#define EVTBTOSLLAMP_HH + +class EvtAmp; +class EvtId; +class EvtbTosllFF; +class EvtParticle; +class EvtComplex; + +class EvtbTosllAmp{ + + public: + + //Daughters are initialized and have been added to the parent. + //No need to carry around the daughters seperately! + + virtual void CalcAmp( EvtParticle *parent, EvtAmp& amp, + EvtbTosllFF *formFactors )=0; + + double CalcMaxProb( EvtId parent, EvtId meson, EvtId lepton, + EvtId nudaug, EvtbTosllFF *formFactors, + double& poleSize); + + EvtComplex GetC7Eff(double q2, bool nnlo=true); + EvtComplex GetC9Eff(double q2, bool nnlo=true, bool btod=false); + EvtComplex GetC10Eff(double q2, bool nnlo=true); + + double dGdsProb(double mb, double ms, double ml, + double s); + + double dGdsdupProb(double mb, double ms, double ml, + double s, double u); + +}; + +#endif + + + diff --git a/TEvtGen/EvtGenModels/EvtbTosllBall.cxx b/TEvtGen/EvtGenModels/EvtbTosllBall.cxx new file mode 100644 index 00000000000..370046a65ef --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtbTosllBall.cxx @@ -0,0 +1,143 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech, UCSB +// +// Module: EvtbTosllBall.cc +// +// Description: Routine to implement b->sll decays according to Ball et al. +// +// Modification history: +// +// Ryd January 5, 2000 Module created +// +// jjhollar October 7, 2005 Option to select form factors at runtime +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenModels/EvtbTosllBall.hh" +#include "EvtGenModels/EvtbTosllBallFF.hh" +#include "EvtGenModels/EvtbTosllAmp.hh" +#include "EvtGenModels/EvtbTosllScalarAmp.hh" +#include "EvtGenModels/EvtbTosllVectorAmp.hh" + +#include +using std::endl; + +EvtbTosllBall::~EvtbTosllBall() { + delete _calcamp; + delete _ballffmodel; +} + +std::string EvtbTosllBall::getName(){ + + return "BTOSLLBALL"; +} + + +EvtDecayBase* EvtbTosllBall::clone(){ + + return new EvtbTosllBall; + +} + +void EvtbTosllBall::decay( EvtParticle *p ){ + + setWeight(p->initializePhaseSpace(getNDaug(),getDaugs(),_poleSize,1,2)); + + _calcamp->CalcAmp(p,_amp2,_ballffmodel); + +} + + +void EvtbTosllBall::initProbMax(){ + + EvtId parnum,mesnum,l1num,l2num; + + parnum = getParentId(); + mesnum = getDaug(0); + l1num = getDaug(1); + l2num = getDaug(2); + + //This routine sets the _poleSize. + double mymaxprob = _calcamp->CalcMaxProb(parnum,mesnum, + l1num,l2num, + _ballffmodel,_poleSize); + + setProbMax(mymaxprob); + +} + + +void EvtbTosllBall::init(){ + + // First choose form factors from the .DEC file + // 1 = Ali-Ball '01 LCSR + // 2 = Ali-Ball '99 LCSR + // 3 = Colangelo 3pt QCD + // 4 = Melikhov Lattice/Quark dispersion + // 5 = ??? + // 6 = Ball-Zwicky '05 LCSR (mb = 480) + // 7 = Ball-Zwicky '05 LCSR (mb = 460 - pseudoscalar modes only) + + // The default is Ali '01 + int theFormFactorModel = 1; + + if(getNArg() == 1) + theFormFactorModel = (int)getArg(0); + + checkNDaug(3); + + //We expect the parent to be a scalar + //and the daughters to be X lepton+ lepton- + + checkSpinParent(EvtSpinType::SCALAR); + + EvtSpinType::spintype mesontype=EvtPDL::getSpinType(getDaug(0)); + + if ( !(mesontype == EvtSpinType::VECTOR|| + mesontype == EvtSpinType::SCALAR)) { + report(ERROR,"EvtGen") << "EvtbTosllBall generator expected " + << " a SCALAR or VECTOR 1st daughter, found:"<< + EvtPDL::name(getDaug(0)).c_str()<sll decays according to Ball et al. +// +// Modification history: +// +// Ryd January 5, 2000 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOSLLBALL_HH +#define EVTBTOSLLBALL_HH + + +#include "EvtGenBase/EvtDecayAmp.hh" + +class EvtbTosllFF; +class EvtbTosllAmp; +class EvtParticle; + +class EvtbTosllBall:public EvtDecayAmp { + +public: + + EvtbTosllBall() : _calcamp(0), _ballffmodel(0) {} + virtual ~EvtbTosllBall(); + + std::string getName(); + EvtDecayBase* clone(); + + void decay(EvtParticle *p); + void init(); + void initProbMax(); + +private: + EvtbTosllAmp *_calcamp; + EvtbTosllFF *_ballffmodel; + double _poleSize; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtbTosllBallFF.cxx b/TEvtGen/EvtGenModels/EvtbTosllBallFF.cxx new file mode 100644 index 00000000000..42c66d50620 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtbTosllBallFF.cxx @@ -0,0 +1,381 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech, UCSB +// +// Module: +// Description: Form factors for b->sll according to Ali, Ball et al. +// hep-ph/9910221v2 +// +// Modification history: +// +// Ryd January 5, 2000 Module created +// +// jjhollar October 7 2005 Add Ball & Zwicky '05 LCSR +// ofte August 2006 Add some more pi l l FF models +//------------------------------------------------------------------------ +#include "EvtGenBase/EvtPatches.hh" + +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenModels/EvtbTosllBallFF.hh" +#include + +EvtbTosllBallFF::EvtbTosllBallFF(int ffmodel) +{ + _theFFModel = ffmodel; +} + + +void EvtbTosllBallFF::getScalarFF(EvtId parent, EvtId daught, + double t, double /*mass*/, + double& fp,double& f0,double& ft){ + + int model = _theFFModel; + + double m=EvtPDL::getMeanMass(parent); + double md=EvtPDL::getMeanMass(daught); + + double shat=t/(m*m); + double shat2=shat*shat; + double shat3=shat2*shat; + + if (daught == EvtPDL::getId(std::string("K+")) || + daught == EvtPDL::getId(std::string("K-")) || + daught == EvtPDL::getId(std::string("K_S0")) || + daught == EvtPDL::getId(std::string("K0")) || + daught == EvtPDL::getId(std::string("anti-K0")) || + daught == EvtPDL::getId(std::string("K_L0")) + ) + { + // B --> K form factors + if (model == 1) { + //this is Ali-Ball '01 (or really Ali-Ball'99 minimum allowed) + fp = 0.278*exp(1.568*shat+0.470*shat2+0.885*shat3); + f0 = 0.278*exp(0.740*shat+0.080*shat2+0.425*shat3); + ft = 0.300*exp(1.600*shat+0.501*shat2+0.796*shat3); + } + if (model == 2) { + //this is Ali-Ball '99 (central values) + fp = 0.319*exp(1.465*shat+0.372*shat2+0.782*shat3); + f0 = 0.319*exp(0.633*shat-0.095*shat2+0.591*shat3); + ft = 0.355*exp(1.478*shat+0.373*shat2+0.700*shat3); + } + if (model == 3) { + //QCD sum rules (Colangelo et al) + fp = 0.25/(1.-t/(5.0*5.0)); + f0 = 0.25/(1.-t/(7.0*7.0)); + ft = - 0.14/((1.0 - t/(5.0*5.0))*(1.0 - t/(7.0*7.0))); + } + if (model == 4) { + // Quark model (Melikhov et al - hep-ph/9711362) + fp = 0.36/(1. - 0.048*t + 0.00063*t*t); + double fm = -0.30/(1. - 0.050*t + 0.00061*t*t); + f0 = fp + fm*(t/(m*m - md*md)); + ft = -(m+md)*0.06/(1 -0.049*t + 0.00064*t*t); + } + if (model == 5) { + fp = 0.341/(1. - 1.41*shat + 0.406*shat*shat); + f0 = 0.341/(1. - 0.41*shat -0.361*shat*shat); + ft = 0.374/(1. - 1.42*shat + 0.434*shat*shat); + } + if (model == 6) { + // Ball-Zwicky LCSR '05 "set 2" (mb = 4.8) + fp = (0.1616 / (1. - (t/29.30))) + + (0.1730 / (1. - (t/29.30)) / (1. - (t/29.30))); + f0 = (0.3302 / (1. - (t/37.46/37.46))); + ft = (0.1614 / (1. - (t/29.30))) + + (0.1981 / (1. - (t/29.30)) / (1. - (t/29.30))); + } + if (model == 7){ + // Ball-Zwicky LCSR '05 "set 4" (mb = 4.6) + fp = (0.1903 / (1. - (t/29.30))) + + (0.1478 / (1. - (t/29.30)) / (1. - (t/29.30))); + f0 = (0.3338 / (1. - (t/38.98/38.98))); + ft = (0.1851 / (1. - (t/29.30))) + + (0.1905 / (1. - (t/29.30)) / (1. - (t/29.30))); + } + } + else if (daught == EvtPDL::getId(std::string("pi+")) || + daught == EvtPDL::getId(std::string("pi-")) || + daught == EvtPDL::getId(std::string("pi0")) + ) + { + if(model == 1){ + // B --> pi form factors from Ball-Zwicky'01 (tabulated in hep-ph/0306251) + fp = 0.261/(1. - 2.03*shat + 1.293*shat*shat); + f0 = 0.261/(1. - 0.27*shat -0.752*shat*shat); + ft = 0.296/(1. - 1.28*shat + 0.193*shat*shat); + } + + // The following two (2) and (3) should preferably be replaced with + // something better. ft not provided by the papers, and the ft formula + // (from Colangelo'96 (hep-ph/9510403v2) equation (5.1)) seem to be no good. + // if (model == 2) { + // // LatticeQCD: Okamoto'04 + // // ... with f_T from eq. (5.1) of Colangelo'95 + // fp = 0.23/((1.-shat)*(1.-0.63*shat)); + // f0 = 0.23/((1.-shat)/1.18); + // ft = ( -(m+md)/(2*m) )/ (fp - (m*m-md*md) * ((f0-fp)/t) ); + // } + // if (model == 3) { + // // LatticeQCD: Shigemitsu'04 + // // ... with f_T from eq. (5.1) of Colangelo'95 + // fp = 0.42*(1.0-0.41)/((1.-shat)*(1.-0.63*shat)); + // f0 = 0.42*(1.0-0.41)/((1.-shat)/1.18); + // ft = ( -(m+md)/(2*m) )/ (fp - (m*m-md*md) * ((f0-fp)/t) ); + // } + + if (model == 4) { + // Quark model - B -> pi set 1 (Melikhov-Nikitin'96) + fp = 0.29/pow((1.-t/(6.48*6.48)),2.54); + double fm = -0.26/pow((1.-t/(6.34*6.34)),2.49); + f0 = fp + fm*(t/(m*m - md*md)); + ft = -(m+md)*0.05/pow((1.-t/(6.47*6.47)),2.50); + } + if (model == 5) { + // Melikhov-Stech '00. (hep-ph/0001113) + // relativistic dispersion approach based on constituent quark picture + fp = 0.29/((1.-shat)*(1.-0.48*shat)); + f0 = 0.29/(1.-0.76*shat +0.28*shat*shat); + ft = 0.28/((1.-shat)*(1.-0.48*shat)); + } + if(model == 6){ + // Ball-Zwicky LCSR '05 "set 2" (mb = 4.8) + fp = (0.744 / (1. - (t/(5.32*5.32)))) + (-0.486 / (1. - (t/40.73))); + f0 = (0.258 / (1. - (t/33.81))); + ft = (1.387 / (1. - (t/(5.32*5.32)))) + (-1.134 / (1. - (t/32.22))); + } + if(model == 7){ + // Ball-Zwicky LCSR '05 "set 4" (mb = 4.6) + fp = (0.944 / (1. - (t/(5.32*5.32)))) + (-0.669 / (1. - (t/34.27))); + f0 = (0.270 / (1. - (t/33.63))); + ft = (0.152 / (1. - (t/(5.32*5.32)))) + + (0.122 / (1. - (t/28.40)) / (1. - (t/28.40))); + } + } + else if (daught == EvtPDL::getId(std::string("eta")) || + daught == EvtPDL::getId(std::string("eta'")) + ) + { + if(model == 1){ + // B --> eta form factors + fp = 0.261/(1. - 2.03*shat + 1.293*shat*shat); + f0 = 0.261/(1. - 0.27*shat -0.752*shat*shat); + ft = 0.296/(1. - 1.28*shat + 0.193*shat*shat); + } + if(model == 6){ + // Ball-Zwicky LCSR '05 "set 2" (mb = 4.8) + fp = (0.1220 / (1. - (t/28.40))) + + (0.1553 / (1. - (t/28.40)) / (1. - (t/28.40))); + f0 = (0.2734 / (1. - (t/31.03/31.03))); + ft = (0.1108 / (1. - (t/28.40))) + + (0.1752 / (1. - (t/28.40)) / (1. - (t/28.40))); + } + if(model == 7){ + // Ball-Zwicky LCSR '05 "set 2" (mb = 4.8) + fp = (0.1380 / (1. - (t/28.40))) + + (0.1462 / (1. - (t/28.40)) / (1. - (t/28.40))); + f0 = (0.2799 / (1. - (t/30.46/30.46))); + ft = (0.1160 / (1. - (t/28.40))) + + (0.1841 / (1. - (t/28.40)) / (1. - (t/28.40))); + } + } + + // cout << "shat "< rho form factors + a1 = 0.261/(1. - 0.29*shat - 0.415*shat*shat); + a2 = 0.223/(1. - 0.93*shat - 0.092*shat*shat); + a0 = 0.372/(1. - 1.40*shat + 0.437*shat*shat); + v = 0.338/(1. - 1.37*shat + 0.315*shat*shat); + t1 = 0.285/(1. - 1.41*shat + 0.361*shat*shat); + t2 = 0.285/(1. - 0.28*shat - 0.500*shat*shat); + t3 = 0.202/(1. - 1.06*shat - 0.076*shat*shat); + } + if(model == 6){ + // Ball-Zwicky LCSR '05 (mb = 4.8) + a1 = 0.240 / (1. - (t/37.51)); + a2 = (0.009 / (1. - (t/40.82))) + + (0.212 / (1. - (t/40.82)) / (1. - (t/40.82))); + a0 = (1.527 / (1. - (t/(5.28*5.28)))) + + (-1.220 / (1. - (t/33.36))); + v = (1.045 / (1. - (t/(5.32*5.32)))) + + (-0.721 / (1. - (t/38.34))); + t1 = (0.897 / (1. - (t/(5.32*5.32)))) + + (-0.629 / (1 - (t/38.04))); + t2 = 0.267 / (1. - (t/38.59)); + t3 = (0.022 / (1. - (t/40.88))) + + (0.246 / (1. - (t/40.88)) / (1. - (t/40.88))); + } + } + else if (daught == EvtPDL::getId(std::string("omega")) + ) + { + if(model == 1){ + // B --> rho form factors + a1 = 0.261/(1. - 0.29*shat - 0.415*shat*shat); + a2 = 0.223/(1. - 0.93*shat - 0.092*shat*shat); + a0 = 0.372/(1. - 1.40*shat + 0.437*shat*shat); + v = 0.338/(1. - 1.37*shat + 0.315*shat*shat); + t1 = 0.285/(1. - 1.41*shat + 0.361*shat*shat); + t2 = 0.285/(1. - 0.28*shat - 0.500*shat*shat); + t3 = 0.202/(1. - 1.06*shat - 0.076*shat*shat); + } + if(model == 6){ + // Ball-Zwicky LCSR '05 (mb = 4.8) + a1 = -0.217 / (1. - (t/37.01)); + a2 = (0.006 / (1. - (t/41.24))) + + (0.192 / (1. - (t/41.24)) / (1. - (t/41.24))); + a0 = (1.321 / (1. - (t/(5.28*5.28)))) + + (-1.040 / (1. - (t/34.47))); + v = (1.006 / (1. - (t/(5.32*5.32)))) + + (-0.713 / (1. - (t/37.45))); + t1 = (0.865 / (1. - (t/(5.32*5.32)))) + + (-0.622 / (1 - (t/37.19))); + t2 = 0.242 / (1. - (t/37.95)); + t3 = (0.023 / (1. - (t/40.87))) + + (0.220 / (1. - (t/40.87)) / (1. - (t/40.87))); + } + } + else if (daught == EvtPDL::getId(std::string("phi")) + ) + { + if(model == 6){ + // Ball-Zwicky LCSR '05 (mb = 4.8) + a1 = 0.308 / (1. - (t/36.54)); + a2 = (-0.054 / (1. - (t/48.94))) + + (0.288 / (1. - (t/48.94)) / (1. - (t/48.94))); + a0 = (3.310 / (1. - (t/(5.28*5.28)))) + + (-2.835 / (1. - (t/31.57))); + v = (1.484 / (1. - (t/(5.32*5.32)))) + + (-1.049 / (1. - (t/39.52))); + t1 = (1.303 / (1. - (t/(5.32*5.32)))) + + (-0.954 / (1 - (t/38.28))); + t2 = 0.349 / (1. - (t/37.21)); + t3 = (0.027 / (1. - (t/45.56))) + + (0.321 / (1. - (t/45.56)) / (1. - (t/45.56))); + } + } + +} + + + + + + + diff --git a/TEvtGen/EvtGenModels/EvtbTosllBallFF.hh b/TEvtGen/EvtGenModels/EvtbTosllBallFF.hh new file mode 100644 index 00000000000..811af38ecd1 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtbTosllBallFF.hh @@ -0,0 +1,48 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: +// Description: Form factors for b->sll according to Ali, Ball et al. +// hep-ph/9910221v2 +// +// Modification history: +// +// Ryd January 5, 2000 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOSLLBALLFF_HH +#define EVTBTOSLLBALLFF_HH + +#include "EvtGenModels/EvtbTosllFF.hh" + +class EvtId; + + +class EvtbTosllBallFF : public EvtbTosllFF { + +public: + + EvtbTosllBallFF(int); + + void getScalarFF(EvtId parent, EvtId daught,double t, double mass, + double& fp,double& f0,double& ft); + void getVectorFF(EvtId parent, EvtId daught,double t, double mass, + double& a1,double& a2,double& a0, double& v, + double& t1, double& t2, double& t3 ); + + + +private: + int _theFFModel; +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtbTosllFF.hh b/TEvtGen/EvtGenModels/EvtbTosllFF.hh new file mode 100644 index 00000000000..540c7ed966b --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtbTosllFF.hh @@ -0,0 +1,39 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech +// +// Module: +// This is the base class for form factors in b->sll transitions. +// +// Description: +// +// Modification history: +// +// RYD January 5, 2000 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOSLLFF_HH +#define EVTBTOSLLFF_HH + +class EvtId; + +class EvtbTosllFF{ + + public: + + virtual void getScalarFF(EvtId parent, EvtId daught,double t, double mass, + double& fp,double& f0,double& ft) {return;} + virtual void getVectorFF(EvtId parent, EvtId daught,double t, double mass, + double& a1,double& a2,double& a0, double& v, + double& t1, double& t2, double& t3 ) {return;} + +}; + +#endif diff --git a/TEvtGen/EvtGenModels/EvtbTosllScalarAmp.cxx b/TEvtGen/EvtGenModels/EvtbTosllScalarAmp.cxx new file mode 100644 index 00000000000..52294f9e74f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtbTosllScalarAmp.cxx @@ -0,0 +1,183 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech, UCSB +// +// Module: EvtbTosllScalarAmp.cc +// +// Description: Routine to implement bTosll decays to pseudo-scalar +// mesons. +// +// Modification history: +// +// Ryd January 5,2000 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtConst.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenModels/EvtbTosllScalarAmp.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtIdSet.hh" +#include "EvtGenBase/EvtAmp.hh" +#include "EvtGenModels/EvtbTosllAmp.hh" +#include "EvtGenModels/EvtbTosllFF.hh" + +void EvtbTosllScalarAmp::CalcAmp( EvtParticle *parent, + EvtAmp& amp, + EvtbTosllFF *formFactors ) { + + //Add the lepton and neutrino 4 momenta to find q2 + + EvtVector4R q = parent->getDaug(1)->getP4() + + parent->getDaug(2)->getP4(); + double q2 = (q.mass2()); + + double fp(0.),f0(0.),ft(0.); + double mesonmass = parent->getDaug(0)->mass(); + double parentmass = parent->mass(); + + formFactors->getScalarFF(parent->getId(), + parent->getDaug(0)->getId(), + q2, + mesonmass, + fp,f0,ft); + + EvtId daught = parent->getDaug(0)->getId(); + bool btod = false; + bool nnlo = true; + if (daught == EvtPDL::getId(std::string("pi+")) || + daught == EvtPDL::getId(std::string("pi-")) || + daught == EvtPDL::getId(std::string("pi0")) || + daught == EvtPDL::getId(std::string("eta")) || + daught == EvtPDL::getId(std::string("eta'")) + ) btod = true; + + + EvtVector4R p4b; + p4b.set(parent->mass(),0.0,0.0,0.0); + + EvtVector4C l11,l12; + EvtVector4C l21,l22; + + EvtVector4C a11,a12; + EvtVector4C a21,a22; + + EvtId l_num = parent->getDaug(1)->getId(); + + EvtVector4C T1,T2; + + EvtVector4R phat=p4b/parentmass; + EvtVector4R qhat=q/parentmass; + + EvtComplex c7eff = EvtbTosllAmp::GetC7Eff(q2,nnlo); + EvtComplex c9eff = EvtbTosllAmp::GetC9Eff(q2,nnlo,btod); + EvtComplex c10eff = EvtbTosllAmp::GetC10Eff(q2,nnlo); + + //double mbhat=1; + double mbhat=4.4/(parentmass); + //double mkhat = 0.15; + double mkhat=mesonmass/(parentmass); + double shat=q2/(parentmass*parentmass); + + double fm=(f0-fp)*(1-mkhat*mkhat)/shat; + + EvtComplex aprime; + aprime = c9eff*fp+2.0*mbhat*c7eff*ft/(1+mkhat); + EvtComplex bprime; + bprime = c9eff*fm-2*mbhat*c7eff*ft*(1-mkhat)/shat; + + EvtComplex cprime; + cprime = c10eff*fp; + EvtComplex dprime; + dprime = c10eff*fm; + + static EvtIdSet leptons("e-","mu-","tau-"); + static EvtIdSet antileptons("e+","mu+","tau+"); + + if (leptons.contains(l_num)){ + + T1=aprime*phat+bprime*qhat; + T2=cprime*phat+dprime*qhat; + + l11=EvtLeptonVCurrent(parent->getDaug(1)->spParent(0), + parent->getDaug(2)->spParent(0)); + l21=EvtLeptonVCurrent(parent->getDaug(1)->spParent(1), + parent->getDaug(2)->spParent(0)); + l12=EvtLeptonVCurrent(parent->getDaug(1)->spParent(0), + parent->getDaug(2)->spParent(1)); + l22=EvtLeptonVCurrent(parent->getDaug(1)->spParent(1), + parent->getDaug(2)->spParent(1)); + a11=EvtLeptonACurrent(parent->getDaug(1)->spParent(0), + parent->getDaug(2)->spParent(0)); + a21=EvtLeptonACurrent(parent->getDaug(1)->spParent(1), + parent->getDaug(2)->spParent(0)); + a12=EvtLeptonACurrent(parent->getDaug(1)->spParent(0), + parent->getDaug(2)->spParent(1)); + a22=EvtLeptonACurrent(parent->getDaug(1)->spParent(1), + parent->getDaug(2)->spParent(1)); + } + else{ + if (antileptons.contains(l_num)){ + + T1=aprime*phat+bprime*qhat; + T2=cprime*phat+dprime*qhat; + + l11=EvtLeptonVCurrent(parent->getDaug(1)->spParent(1), + parent->getDaug(2)->spParent(1)); + l21=EvtLeptonVCurrent(parent->getDaug(1)->spParent(0), + parent->getDaug(2)->spParent(1)); + l12=EvtLeptonVCurrent(parent->getDaug(1)->spParent(1), + parent->getDaug(2)->spParent(0)); + l22=EvtLeptonVCurrent(parent->getDaug(1)->spParent(0), + parent->getDaug(2)->spParent(0)); + + a11=EvtLeptonACurrent(parent->getDaug(1)->spParent(1), + parent->getDaug(2)->spParent(1)); + a21=EvtLeptonACurrent(parent->getDaug(1)->spParent(0), + parent->getDaug(2)->spParent(1)); + a12=EvtLeptonACurrent(parent->getDaug(1)->spParent(1), + parent->getDaug(2)->spParent(0)); + a22=EvtLeptonACurrent(parent->getDaug(1)->spParent(0), + parent->getDaug(2)->spParent(0)); + + } + else{ + report(ERROR,"EvtGen") << "Wrong lepton number\n"; + } + } + + amp.vertex(0,0,l11*T1+a11*T2); + amp.vertex(0,1,l12*T1+a12*T2); + amp.vertex(1,0,l21*T1+a21*T2); + amp.vertex(1,1,l22*T1+a22*T2); + +} + + + + + + + + + + + + + + + diff --git a/TEvtGen/EvtGenModels/EvtbTosllScalarAmp.hh b/TEvtGen/EvtGenModels/EvtbTosllScalarAmp.hh new file mode 100644 index 00000000000..807cb1bd5e4 --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtbTosllScalarAmp.hh @@ -0,0 +1,46 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtbTosllScalarAmp.hh +// +// Description: +// +// Modification history: +// +// RYD January 5, 2000 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOSLLSCALARAMP_HH +#define EVTBTOSLLSCALARAMP_HH + +#include "EvtGenModels/EvtbTosllAmp.hh" +class EvtParticle; +class EvtAmp; +class bTosllFF; + +class EvtbTosllScalarAmp : public EvtbTosllAmp { + +public: + + EvtbTosllScalarAmp(double c7, double c9, double c10):_c7(c7),_c9(c9),_c10(c10){} + + //Daughters are initialized and have been added to the parent. + //No need to carry around the daughters seperately! + void CalcAmp( EvtParticle *parent, EvtAmp& amp, + EvtbTosllFF *formFactors ); + +private: + double _c7,_c9,_c10; + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/EvtbTosllVectorAmp.cxx b/TEvtGen/EvtGenModels/EvtbTosllVectorAmp.cxx new file mode 100644 index 00000000000..c820ab65f6c --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtbTosllVectorAmp.cxx @@ -0,0 +1,224 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 2000 Caltech, UCSB +// +// Module: EvtbTosllVectorAmp.cc +// +// Description: Routine to implement bTosll decays to vector +// mesons. +// +// Modification history: +// +// Ryd January 5,2000 Module created +// +//------------------------------------------------------------------------ +// +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtPatches.hh" +#include "EvtGenBase/EvtParticle.hh" +#include "EvtGenBase/EvtGenKine.hh" +#include "EvtGenBase/EvtPDL.hh" +#include "EvtGenBase/EvtReport.hh" +#include "EvtGenBase/EvtVector4C.hh" +#include "EvtGenBase/EvtTensor4C.hh" +#include "EvtGenBase/EvtDiracSpinor.hh" +#include "EvtGenModels/EvtbTosllVectorAmp.hh" +#include "EvtGenBase/EvtId.hh" +#include "EvtGenBase/EvtIdSet.hh" +#include "EvtGenBase/EvtAmp.hh" +#include "EvtGenModels/EvtbTosllAmp.hh" +#include "EvtGenModels/EvtbTosllFF.hh" + +void EvtbTosllVectorAmp::CalcAmp( EvtParticle *parent, + EvtAmp& amp, + EvtbTosllFF *formFactors ) { + + //Add the lepton and neutrino 4 momenta to find q2 + + EvtVector4R q = parent->getDaug(1)->getP4() + + parent->getDaug(2)->getP4(); + double q2 = (q.mass2()); + + + double a1,a2,a0,v,t1,t2,t3; + double mesonmass = parent->getDaug(0)->mass(); + double parentmass = parent->mass(); + + formFactors->getVectorFF(parent->getId(), + parent->getDaug(0)->getId(), + q2, + mesonmass, + a1,a2,a0,v,t1,t2,t3); + + + EvtId daught = parent->getDaug(0)->getId(); + bool btod = false; + bool nnlo = true; + if + ( + daught == EvtPDL::getId(std::string("rho+")) || + daught == EvtPDL::getId(std::string("rho-")) || + daught == EvtPDL::getId(std::string("rho0")) || + daught == EvtPDL::getId(std::string("omega")) + ) + btod = true; + + EvtVector4R p4b; + p4b.set(parent->mass(),0.0,0.0,0.0); + EvtVector4R p4meson = parent->getDaug(0)->getP4(); + + EvtVector4C l11,l12; + EvtVector4C l21,l22; + + EvtVector4C a11,a12; + EvtVector4C a21,a22; + + EvtId parentID = parent->getId(); + + //EvtId l_num = parent->getDaug(1)->getId(); + + EvtVector4R pbhat=p4b/parentmass; + EvtVector4R qhat=q/parentmass; + EvtVector4R pkstarhat=p4meson/parentmass; + EvtVector4R phat=pbhat+pkstarhat; + + EvtComplex c7eff = EvtbTosllAmp::GetC7Eff(q2,nnlo); + EvtComplex c9eff = EvtbTosllAmp::GetC9Eff(q2,nnlo,btod); + EvtComplex c10eff = EvtbTosllAmp::GetC10Eff(q2,nnlo); + EvtComplex uniti(0.0,1.0); + + double mhatb=4.4/(parentmass); + double mhatkstar=mesonmass/(parentmass); + double shat=q2/(parentmass*parentmass); + + + EvtComplex a; + a=c9eff*v*2/(1+mhatkstar)+4*mhatb*c7eff*t1/shat; + EvtComplex b; + b=(1+mhatkstar)*(c9eff*a1+2*mhatb*(1-mhatkstar)*c7eff*t2/shat); + EvtComplex c; + c=((1-mhatkstar)*c9eff*a2+ + 2*mhatb*c7eff*(t3+(1-mhatkstar*mhatkstar)*t2/shat))/ + (1-mhatkstar*mhatkstar); + EvtComplex d; + d=(c9eff*((1+mhatkstar)*a1-(1-mhatkstar)*a2-2*mhatkstar*a0) + -2*mhatb*c7eff*t3)/shat; + EvtComplex e; + e=2*c10eff*v/(1+mhatkstar); + EvtComplex f; + f=(1+mhatkstar)*c10eff*a1; + EvtComplex g; + g=c10eff*a2/(1+mhatkstar); + EvtComplex h; + h=c10eff*((1+mhatkstar)*a1-(1-mhatkstar)*a2-2*mhatkstar*a0)/shat; + + EvtTensor4C T1,T2; + + static EvtIdSet bmesons("B-","anti-B0","anti-B_s0"); + static EvtIdSet bbarmesons("B+","B0","B_s0"); + + EvtParticle* lepPlus=0; + EvtParticle* lepMinus=0; + + int charge1 = EvtPDL::chg3(parent->getDaug(1)->getId()); + int charge2 = EvtPDL::chg3(parent->getDaug(2)->getId()); + + lepPlus = (charge1 > charge2) ? parent->getDaug(1) : parent->getDaug(2); + lepMinus = (charge1 < charge2) ? parent->getDaug(1) : parent->getDaug(2); + + if (bmesons.contains(parentID)) { + + T1=a*dual(directProd(pbhat,pkstarhat)) + -b*uniti*EvtTensor4C::g() + +c*uniti*directProd(pbhat,phat) + +d*uniti*directProd(pbhat,qhat); + + T2=e*dual(directProd(pbhat,pkstarhat)) + -f*uniti*EvtTensor4C::g() + +g*uniti*directProd(pbhat,phat) + +h*uniti*directProd(pbhat,qhat); + + l11=EvtLeptonVCurrent(lepPlus->spParent(0), + lepMinus->spParent(0)); + l21=EvtLeptonVCurrent(lepPlus->spParent(1), + lepMinus->spParent(0)); + l12=EvtLeptonVCurrent(lepPlus->spParent(0), + lepMinus->spParent(1)); + l22=EvtLeptonVCurrent(lepPlus->spParent(1), + lepMinus->spParent(1)); + + a11=EvtLeptonACurrent(lepPlus->spParent(0), + lepMinus->spParent(0)); + a21=EvtLeptonACurrent(lepPlus->spParent(1), + lepMinus->spParent(0)); + a12=EvtLeptonACurrent(lepPlus->spParent(0), + lepMinus->spParent(1)); + a22=EvtLeptonACurrent(lepPlus->spParent(1), + lepMinus->spParent(1)); + + } else { + + if (bbarmesons.contains(parentID)) { + + T1=-a*dual(directProd(pbhat,pkstarhat)) + -b*uniti*EvtTensor4C::g() + +c*uniti*directProd(pbhat,phat) + +d*uniti*directProd(pbhat,qhat); + + T2=-e*dual(directProd(pbhat,pkstarhat)) + -f*uniti*EvtTensor4C::g() + +g*uniti*directProd(pbhat,phat) + +h*uniti*directProd(pbhat,qhat); + + l11=EvtLeptonVCurrent(lepPlus->spParent(1), + lepMinus->spParent(1)); + l21=EvtLeptonVCurrent(lepPlus->spParent(0), + lepMinus->spParent(1)); + l12=EvtLeptonVCurrent(lepPlus->spParent(1), + lepMinus->spParent(0)); + l22=EvtLeptonVCurrent(lepPlus->spParent(0), + lepMinus->spParent(0)); + + a11=EvtLeptonACurrent(lepPlus->spParent(1), + lepMinus->spParent(1)); + a21=EvtLeptonACurrent(lepPlus->spParent(0), + lepMinus->spParent(1)); + a12=EvtLeptonACurrent(lepPlus->spParent(1), + lepMinus->spParent(0)); + a22=EvtLeptonACurrent(lepPlus->spParent(0), + lepMinus->spParent(0)); + + } + else{ + report(ERROR,"EvtGen") << "Wrong lepton number\n"; + } + } + + + int i; + + for(i=0;i<3;i++){ + EvtVector4C eps=parent->getDaug(0)->epsParent(i).conj(); + + EvtVector4C E1=T1.cont1(eps); + EvtVector4C E2=T2.cont1(eps); + + amp.vertex(i,0,0,l11*E1+a11*E2); + amp.vertex(i,0,1,l12*E1+a12*E2); + amp.vertex(i,1,0,l21*E1+a21*E2); + amp.vertex(i,1,1,l22*E1+a22*E2); + } +} + + + + + + + diff --git a/TEvtGen/EvtGenModels/EvtbTosllVectorAmp.hh b/TEvtGen/EvtGenModels/EvtbTosllVectorAmp.hh new file mode 100644 index 00000000000..d77760d6c5f --- /dev/null +++ b/TEvtGen/EvtGenModels/EvtbTosllVectorAmp.hh @@ -0,0 +1,48 @@ +//-------------------------------------------------------------------------- +// +// Environment: +// This software is part of the EvtGen package developed jointly +// for the BaBar and CLEO collaborations. If you use all or part +// of it, please give an appropriate acknowledgement. +// +// Copyright Information: See EvtGen/COPYRIGHT +// Copyright (C) 1998 Caltech, UCSB +// +// Module: EvtGen/EvtbTosllVectorAmp.hh +// +// Description: +// +// Modification history: +// +// RYD January 5, 2000 Module created +// +//------------------------------------------------------------------------ + +#ifndef EVTBTOSLLVECTORAMP_HH +#define EVTBTOSLLVECTORAMP_HH + +#include "EvtGenModels/EvtbTosllAmp.hh" + +class EvtAmp; +class EvtParticle; +class EvtbTosllFF; + +class EvtbTosllVectorAmp : public EvtbTosllAmp { + +public: + + EvtbTosllVectorAmp(double c7, double c9, double c10):_c7(c7),_c9(c9),_c10(c10){} + + //Daughters are initialized and have been added to the parent. + //No need to carry around the daughters seperately! + void CalcAmp( EvtParticle *parent, EvtAmp& amp, + EvtbTosllFF *formFactors ); + +private: + + double _c7,_c9,_c10; + +}; + +#endif + diff --git a/TEvtGen/EvtGenModels/Makefile b/TEvtGen/EvtGenModels/Makefile new file mode 100644 index 00000000000..b4046a505dc --- /dev/null +++ b/TEvtGen/EvtGenModels/Makefile @@ -0,0 +1,15839 @@ + +#New EvtGen makefile October 5, 1998 +#Authors David Lange and Anders Ryd +#include $(ROOTSYS)/test/Makefile.arch + +include $(ROOTSYS)/etc/vmc/Makefile.linux + +SRCSC= $(wildcard *.cc) +SRCSF= $(wildcard *.F) + +OBJSC = $(SRCSC:%.cc=%.o) +OBJSF = $(SRCSF:%.F=%.o) + +OBJS = $(OBJSC) +OBJS += $(OBJSF) + +LIBOBJS=$(OBJS) + +include ../EvtGen/config.mk + +lib: depend comp ar shar +#lib: comp ar + + +comp:$(OBJS) + +clean: + rm -f *.o ../EvtGen/libEvtGenModels.a ../EvtGen/libEvtGenModels.so + +depend: + @echo "Checking makedepend in EvtGenModels" + @makedepend -- $(EVTDEPINC) -- $(SRCSC) $(SRCSF) + + +#.cc.o: +# $(EVTCXX) $(EVTCXXFLAGS) -c $< + +#.cc.o: +# $(CXX) $(CXXFLAGS) $(EVTCXXFLAGS) -c $< + + +CXXFLAGS = $(CXXOPTS) $(CLIBCXXOPTS) -I. -I$(ROOTSYS)/include -I$(GEANTSYS)/TGeant3 -fPIC + +.cc.o: + @$(CXX) $(CXXFLAGS) $(EVTCXXFLAGS) -c $< + +#.F.o: +# $(EVTF77) $(EVTF77FLAGS) -c $< +# $(EVTF77) $(CXXFLAGS) $(EVTF77FLAGS) -c $< + +FFLAGS = $(FOPT) $(CLIBFOPT) -I. -I$(GEANTSYS)/minicern -fPIC + +.F.o: + @$(F77) $(FFLAGS) $(EVTF77FLAGS) -c $< + +ar: + @if (test -f ../libEvtGenModels.a ) then (rm ../libEvtGenModels.a) fi + @ar rv ../EvtGen/libEvtGenModels.a $(LIBOBJS) >& /dev/null + @echo "Done making libEvtGenModels.a" + +shar: + @$(CXX) $(CXXFLAGS) $(SOFLAGS) -o ../EvtGen/libEvtGenModels.so $(LIBOBJS) -L/home/fionda/cern/alice/v4-16-Rev-13_G3v1-10_Rv5-23-04/lib/tgt_linux/ -llhapdf -lpythia6 -lphotos -L/home/fionda/cern/root/v5-23-04/lib $(EVTSYSLIB) -lgfortran + @echo "Done making libEvtGenModels.so" +# DO NOT DELETE THIS LINE -- make depend depends on it. + +EvtBBScalar.o: ../EvtGenBase/EvtPatches.hh ../EvtGenModels/EvtBBScalar.hh +EvtBBScalar.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtBBScalar.o: ../EvtGenBase/EvtId.hh /usr/include/c++/3.4.6/iostream +EvtBBScalar.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBBScalar.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBBScalar.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBBScalar.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtBBScalar.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtBBScalar.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBBScalar.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtBBScalar.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBBScalar.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtBBScalar.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtBBScalar.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtBBScalar.o: /usr/include/libio.h /usr/include/_G_config.h +EvtBBScalar.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtBBScalar.o: /usr/include/gconv.h +EvtBBScalar.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBBScalar.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtBBScalar.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBBScalar.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBBScalar.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBBScalar.o: /usr/include/libintl.h +EvtBBScalar.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBBScalar.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBBScalar.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBBScalar.o: /usr/include/pthread.h /usr/include/sched.h +EvtBBScalar.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBBScalar.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBBScalar.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtBBScalar.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtBBScalar.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtBBScalar.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtBBScalar.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBBScalar.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBBScalar.o: /usr/include/stdint.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBBScalar.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBBScalar.o: /usr/include/c++/3.4.6/exception +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBBScalar.o: /usr/include/c++/3.4.6/climits +EvtBBScalar.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBBScalar.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBBScalar.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBBScalar.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBBScalar.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBBScalar.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBBScalar.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBBScalar.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBBScalar.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBBScalar.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBBScalar.o: /usr/include/c++/3.4.6/limits +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBBScalar.o: /usr/include/c++/3.4.6/algorithm +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBBScalar.o: /usr/include/c++/3.4.6/streambuf +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBBScalar.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBBScalar.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBBScalar.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBBScalar.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBBScalar.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBBScalar.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBBScalar.o: /usr/include/c++/3.4.6/locale +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBBScalar.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtBBScalar.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtBBScalar.o: /usr/include/c++/3.4.6/vector +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/vector.tcc ../EvtGenBase/EvtAmp.hh +EvtBBScalar.o: ../EvtGenBase/EvtComplex.hh /usr/include/math.h +EvtBBScalar.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtBBScalar.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtConst.hh +EvtBBScalar.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtBBScalar.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtBBScalar.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBBScalar.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtBBScalar.o: ../EvtGenBase/EvtSpinDensity.hh +EvtBBScalar.o: ../EvtGenBase/EvtScalarParticle.hh +EvtBBScalar.o: ../EvtGenBase/EvtDiracParticle.hh +EvtBBScalar.o: ../EvtGenBase/EvtDiracSpinor.hh ../EvtGenBase/EvtVector3R.hh +EvtBBScalar.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtBBScalar.o: /usr/include/c++/3.4.6/bitset ../EvtGenBase/EvtGammaMatrix.hh +EvtBBScalar.o: ../EvtGenBase/EvtTensor4C.hh /usr/include/c++/3.4.6/cmath +EvtBBScalar.o: /usr/include/c++/3.4.6/bits/cmath.tcc +EvtBHadronic.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBHadronic.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBHadronic.o: /usr/include/gnu/stubs.h +EvtBHadronic.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBHadronic.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtBHadronic.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtBHadronic.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBHadronic.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBHadronic.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtBHadronic.o: /usr/include/c++/3.4.6/iosfwd +EvtBHadronic.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBHadronic.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtBHadronic.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtBHadronic.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtBHadronic.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtBHadronic.o: /usr/include/libio.h /usr/include/_G_config.h +EvtBHadronic.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtBHadronic.o: /usr/include/gconv.h +EvtBHadronic.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBHadronic.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtBHadronic.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBHadronic.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBHadronic.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBHadronic.o: /usr/include/libintl.h +EvtBHadronic.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBHadronic.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBHadronic.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBHadronic.o: /usr/include/pthread.h /usr/include/sched.h +EvtBHadronic.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBHadronic.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBHadronic.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtBHadronic.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtBHadronic.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtBHadronic.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtBHadronic.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBHadronic.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBHadronic.o: /usr/include/stdint.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBHadronic.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBHadronic.o: /usr/include/c++/3.4.6/exception +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBHadronic.o: /usr/include/c++/3.4.6/climits +EvtBHadronic.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBHadronic.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBHadronic.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBHadronic.o: /usr/include/c++/3.4.6/new +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBHadronic.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBHadronic.o: /usr/include/c++/3.4.6/cassert +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBHadronic.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBHadronic.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBHadronic.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBHadronic.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBHadronic.o: /usr/include/c++/3.4.6/limits +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBHadronic.o: /usr/include/c++/3.4.6/algorithm +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBHadronic.o: /usr/include/c++/3.4.6/streambuf +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBHadronic.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBHadronic.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBHadronic.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBHadronic.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBHadronic.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBHadronic.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBHadronic.o: /usr/include/c++/3.4.6/locale +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBHadronic.o: /usr/include/c++/3.4.6/typeinfo +EvtBHadronic.o: /usr/include/c++/3.4.6/istream +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtBHadronic.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtBHadronic.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtBHadronic.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtBHadronic.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtBHadronic.o: ../EvtGenBase/EvtReport.hh ../EvtGenModels/EvtISGW2FF.hh +EvtBHadronic.o: ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtBHadronic.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtBHadronic.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtBHadronic.o: /usr/include/c++/3.4.6/vector +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBHadronic.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBHadronic.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBHadronic.o: ../EvtGenBase/EvtTensor4C.hh ../EvtGenBase/EvtVector4C.hh +EvtBHadronic.o: ../EvtGenBase/EvtVector3C.hh ../EvtGenBase/EvtVector3R.hh +EvtBHadronic.o: ../EvtGenModels/EvtBHadronic.hh ../EvtGenBase/EvtDecayAmp.hh +EvtBHadronic.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtBsquark.o: ../EvtGenBase/EvtPatches.hh /usr/include/c++/3.4.6/iostream +EvtBsquark.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBsquark.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBsquark.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBsquark.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtBsquark.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtBsquark.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBsquark.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtBsquark.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBsquark.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtBsquark.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtBsquark.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtBsquark.o: /usr/include/libio.h /usr/include/_G_config.h +EvtBsquark.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtBsquark.o: /usr/include/gconv.h +EvtBsquark.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBsquark.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtBsquark.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBsquark.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBsquark.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBsquark.o: /usr/include/libintl.h +EvtBsquark.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBsquark.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBsquark.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBsquark.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtBsquark.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtBsquark.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtBsquark.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtBsquark.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtBsquark.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtBsquark.o: /usr/include/ctype.h /usr/include/endian.h +EvtBsquark.o: /usr/include/bits/endian.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBsquark.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBsquark.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtBsquark.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBsquark.o: /usr/include/c++/3.4.6/exception +EvtBsquark.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBsquark.o: /usr/include/c++/3.4.6/climits +EvtBsquark.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBsquark.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBsquark.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBsquark.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBsquark.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBsquark.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBsquark.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBsquark.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBsquark.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBsquark.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBsquark.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBsquark.o: /usr/include/c++/3.4.6/limits +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBsquark.o: /usr/include/c++/3.4.6/algorithm +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBsquark.o: /usr/include/c++/3.4.6/streambuf +EvtBsquark.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBsquark.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBsquark.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBsquark.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBsquark.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBsquark.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBsquark.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBsquark.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBsquark.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBsquark.o: /usr/include/c++/3.4.6/locale +EvtBsquark.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBsquark.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtBsquark.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtBsquark.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtBsquark.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtBsquark.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtBsquark.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtBsquark.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtBsquark.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtBsquark.o: ../EvtGenBase/EvtDiracParticle.hh +EvtBsquark.o: ../EvtGenBase/EvtDiracSpinor.hh ../EvtGenBase/EvtVector3R.hh +EvtBsquark.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtBsquark.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBsquark.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBsquark.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBsquark.o: ../EvtGenBase/EvtIdSet.hh ../EvtGenBase/EvtGenKine.hh +EvtBsquark.o: ../EvtGenModels/EvtBsquark.hh ../EvtGenBase/EvtDecayProb.hh +EvtBsquark.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtGammaMatrix.hh +EvtBto2piCPiso.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBto2piCPiso.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBto2piCPiso.o: /usr/include/gnu/stubs.h +EvtBto2piCPiso.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBto2piCPiso.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtBto2piCPiso.o: ../EvtGenBase/EvtVector4R.hh +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/iostream +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/iosfwd +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/cstring +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtBto2piCPiso.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtBto2piCPiso.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtBto2piCPiso.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtBto2piCPiso.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtBto2piCPiso.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBto2piCPiso.o: /usr/include/bits/stdio_lim.h +EvtBto2piCPiso.o: /usr/include/bits/sys_errlist.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBto2piCPiso.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBto2piCPiso.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBto2piCPiso.o: /usr/include/libintl.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBto2piCPiso.o: /usr/include/pthread.h /usr/include/sched.h +EvtBto2piCPiso.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBto2piCPiso.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBto2piCPiso.o: /usr/include/bits/pthreadtypes.h +EvtBto2piCPiso.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtBto2piCPiso.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtBto2piCPiso.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtBto2piCPiso.o: /usr/include/ctype.h /usr/include/endian.h +EvtBto2piCPiso.o: /usr/include/bits/endian.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBto2piCPiso.o: /usr/include/stdint.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/exception +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/climits +EvtBto2piCPiso.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBto2piCPiso.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBto2piCPiso.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/new +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/cassert +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/limits +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/algorithm +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/streambuf +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/locale +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/typeinfo +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/istream +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtBto2piCPiso.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtBto2piCPiso.o: /usr/include/bits/mathcalls.h +EvtBto2piCPiso.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtBto2piCPiso.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtBto2piCPiso.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtBto2piCPiso.o: ../EvtGenBase/EvtRandom.hh ../EvtGenBase/EvtGenKine.hh +EvtBto2piCPiso.o: ../EvtGenBase/EvtCPUtil.hh ../EvtGenBase/EvtPDL.hh +EvtBto2piCPiso.o: ../EvtGenBase/EvtPartProp.hh +EvtBto2piCPiso.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/vector +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBto2piCPiso.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBto2piCPiso.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBto2piCPiso.o: ../EvtGenModels/EvtBto2piCPiso.hh +EvtBto2piCPiso.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtBto2piCPiso.o: ../EvtGenBase/EvtAmp.hh +EvtBTo3piCP.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBTo3piCP.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBTo3piCP.o: /usr/include/gnu/stubs.h +EvtBTo3piCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBTo3piCP.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtBTo3piCP.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtBTo3piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtBTo3piCP.o: /usr/include/c++/3.4.6/iosfwd +EvtBTo3piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtBTo3piCP.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtBTo3piCP.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtBTo3piCP.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtBTo3piCP.o: /usr/include/libio.h /usr/include/_G_config.h +EvtBTo3piCP.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtBTo3piCP.o: /usr/include/gconv.h +EvtBTo3piCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBTo3piCP.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBTo3piCP.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBTo3piCP.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBTo3piCP.o: /usr/include/libintl.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBTo3piCP.o: /usr/include/pthread.h /usr/include/sched.h +EvtBTo3piCP.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBTo3piCP.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBTo3piCP.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtBTo3piCP.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtBTo3piCP.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtBTo3piCP.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBTo3piCP.o: /usr/include/stdint.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/exception +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/climits +EvtBTo3piCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBTo3piCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBTo3piCP.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBTo3piCP.o: /usr/include/c++/3.4.6/new +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/cassert +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/limits +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/algorithm +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBTo3piCP.o: /usr/include/c++/3.4.6/streambuf +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBTo3piCP.o: /usr/include/c++/3.4.6/locale +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBTo3piCP.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtBTo3piCP.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtBTo3piCP.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtBTo3piCP.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtBTo3piCP.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtBTo3piCP.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtCPUtil.hh +EvtBTo3piCP.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtBTo3piCP.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBTo3piCP.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBTo3piCP.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBTo3piCP.o: ../EvtGenModels/EvtBTo3piCP.hh ../EvtGenBase/EvtDecayAmp.hh +EvtBTo3piCP.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtBTo4piCP.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBTo4piCP.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBTo4piCP.o: /usr/include/gnu/stubs.h +EvtBTo4piCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBTo4piCP.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtBTo4piCP.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtBTo4piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtBTo4piCP.o: /usr/include/c++/3.4.6/iosfwd +EvtBTo4piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtBTo4piCP.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtBTo4piCP.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtBTo4piCP.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtBTo4piCP.o: /usr/include/libio.h /usr/include/_G_config.h +EvtBTo4piCP.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtBTo4piCP.o: /usr/include/gconv.h +EvtBTo4piCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBTo4piCP.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBTo4piCP.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBTo4piCP.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBTo4piCP.o: /usr/include/libintl.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBTo4piCP.o: /usr/include/pthread.h /usr/include/sched.h +EvtBTo4piCP.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBTo4piCP.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBTo4piCP.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtBTo4piCP.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtBTo4piCP.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtBTo4piCP.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBTo4piCP.o: /usr/include/stdint.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/exception +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/climits +EvtBTo4piCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBTo4piCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBTo4piCP.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBTo4piCP.o: /usr/include/c++/3.4.6/new +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/cassert +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/limits +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/algorithm +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBTo4piCP.o: /usr/include/c++/3.4.6/streambuf +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBTo4piCP.o: /usr/include/c++/3.4.6/locale +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBTo4piCP.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtBTo4piCP.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtBTo4piCP.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtBTo4piCP.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtBTo4piCP.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtBTo4piCP.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtBTo4piCP.o: ../EvtGenBase/EvtCPUtil.hh ../EvtGenBase/EvtPDL.hh +EvtBTo4piCP.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtBTo4piCP.o: /usr/include/c++/3.4.6/vector +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBTo4piCP.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBTo4piCP.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBTo4piCP.o: ../EvtGenModels/EvtBTo4piCP.hh ../EvtGenBase/EvtDecayAmp.hh +EvtBTo4piCP.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtPatches.hh /usr/include/assert.h +EvtBtoKD3P.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBtoKD3P.o: /usr/include/gnu/stubs.h ../EvtGenModels/EvtBtoKD3P.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtId.hh /usr/include/c++/3.4.6/iostream +EvtBtoKD3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtBtoKD3P.o: /usr/include/c++/3.4.6/iosfwd +EvtBtoKD3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtBtoKD3P.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBtoKD3P.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtBtoKD3P.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtBtoKD3P.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtBtoKD3P.o: /usr/include/libio.h /usr/include/_G_config.h +EvtBtoKD3P.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtBtoKD3P.o: /usr/include/gconv.h +EvtBtoKD3P.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBtoKD3P.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBtoKD3P.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBtoKD3P.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBtoKD3P.o: /usr/include/libintl.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBtoKD3P.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtBtoKD3P.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtBtoKD3P.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtBtoKD3P.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtBtoKD3P.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtBtoKD3P.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtBtoKD3P.o: /usr/include/ctype.h /usr/include/endian.h +EvtBtoKD3P.o: /usr/include/bits/endian.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBtoKD3P.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/exception +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/climits +EvtBtoKD3P.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBtoKD3P.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBtoKD3P.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBtoKD3P.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/cassert +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/limits +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/algorithm +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBtoKD3P.o: /usr/include/c++/3.4.6/streambuf +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBtoKD3P.o: /usr/include/c++/3.4.6/locale +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBtoKD3P.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtBtoKD3P.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtBtoKD3P.o: /usr/include/c++/3.4.6/vector +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/vector.tcc ../EvtGenBase/EvtAmp.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtComplex.hh /usr/include/math.h +EvtBtoKD3P.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtBtoKD3P.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtConst.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtDecayTable.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtParticleDecayList.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtParticleDecay.hh ../EvtGenBase/EvtParticle.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtVector4R.hh ../EvtGenBase/EvtSpinDensity.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtRandom.hh ../EvtGenModels/EvtPto3P.hh +EvtBtoKD3P.o: ../EvtGenModels/EvtIntervalDecayAmp.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtMacros.hh ../EvtGenBase/EvtPdf.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtValError.hh ../EvtGenBase/EvtPredGen.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtStreamInputIterator.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtStreamAdapter.hh +EvtBtoKD3P.o: /usr/include/c++/3.4.6/iterator +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stream_iterator.h +EvtBtoKD3P.o: ../EvtGenBase/EvtPdfMax.hh ../EvtGenBase/EvtAmpFactory.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtAmplitudeSum.hh ../EvtGenBase/EvtAmplitude.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtPdfSum.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtMultiChannelParser.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtAmpPdf.hh ../EvtGenBase/EvtCPUtil.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtAbsLineShape.hh ../EvtGenBase/EvtStringHash.hh +EvtBtoKD3P.o: /usr/include/c++/3.4.6/map +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBtoKD3P.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBtoKD3P.o: ../EvtGenBase/EvtCyclic3.hh ../EvtGenBase/EvtDalitzPoint.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtDalitzCoord.hh ../EvtGenBase/EvtDalitzPlot.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtTwoBodyVertex.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtTwoBodyKine.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtBlattWeisskopf.hh +EvtBtoKD3P.o: ../EvtGenBase/EvtDecayMode.hh +EvtBtoKpiCPiso.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBtoKpiCPiso.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBtoKpiCPiso.o: /usr/include/gnu/stubs.h +EvtBtoKpiCPiso.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBtoKpiCPiso.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtBtoKpiCPiso.o: ../EvtGenBase/EvtVector4R.hh +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/iostream +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/iosfwd +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/cstring +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtBtoKpiCPiso.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtBtoKpiCPiso.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtBtoKpiCPiso.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtBtoKpiCPiso.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtBtoKpiCPiso.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBtoKpiCPiso.o: /usr/include/bits/stdio_lim.h +EvtBtoKpiCPiso.o: /usr/include/bits/sys_errlist.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBtoKpiCPiso.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBtoKpiCPiso.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBtoKpiCPiso.o: /usr/include/libintl.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBtoKpiCPiso.o: /usr/include/pthread.h /usr/include/sched.h +EvtBtoKpiCPiso.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBtoKpiCPiso.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBtoKpiCPiso.o: /usr/include/bits/pthreadtypes.h +EvtBtoKpiCPiso.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtBtoKpiCPiso.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtBtoKpiCPiso.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtBtoKpiCPiso.o: /usr/include/ctype.h /usr/include/endian.h +EvtBtoKpiCPiso.o: /usr/include/bits/endian.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBtoKpiCPiso.o: /usr/include/stdint.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/exception +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/climits +EvtBtoKpiCPiso.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBtoKpiCPiso.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBtoKpiCPiso.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/new +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/cassert +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/limits +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/algorithm +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/streambuf +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/locale +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/typeinfo +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/istream +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtBtoKpiCPiso.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtBtoKpiCPiso.o: /usr/include/bits/mathcalls.h +EvtBtoKpiCPiso.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtBtoKpiCPiso.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtBtoKpiCPiso.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtBtoKpiCPiso.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtBtoKpiCPiso.o: ../EvtGenBase/EvtPartProp.hh +EvtBtoKpiCPiso.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/vector +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBtoKpiCPiso.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBtoKpiCPiso.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBtoKpiCPiso.o: ../EvtGenModels/EvtBtoKpiCPiso.hh +EvtBtoKpiCPiso.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtBtoKpiCPiso.o: ../EvtGenBase/EvtAmp.hh +EvtBToKpipiCP.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBToKpipiCP.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBToKpipiCP.o: /usr/include/gnu/stubs.h +EvtBToKpipiCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBToKpipiCP.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtBToKpipiCP.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/iosfwd +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/cstring +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtBToKpipiCP.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtBToKpipiCP.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtBToKpipiCP.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtBToKpipiCP.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtBToKpipiCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBToKpipiCP.o: /usr/include/bits/stdio_lim.h +EvtBToKpipiCP.o: /usr/include/bits/sys_errlist.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBToKpipiCP.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBToKpipiCP.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBToKpipiCP.o: /usr/include/libintl.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBToKpipiCP.o: /usr/include/pthread.h /usr/include/sched.h +EvtBToKpipiCP.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBToKpipiCP.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBToKpipiCP.o: /usr/include/bits/pthreadtypes.h +EvtBToKpipiCP.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtBToKpipiCP.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtBToKpipiCP.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtBToKpipiCP.o: /usr/include/ctype.h /usr/include/endian.h +EvtBToKpipiCP.o: /usr/include/bits/endian.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBToKpipiCP.o: /usr/include/stdint.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/exception +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/climits +EvtBToKpipiCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBToKpipiCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBToKpipiCP.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/new +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/cassert +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/limits +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/algorithm +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/streambuf +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/locale +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/typeinfo +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/istream +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtBToKpipiCP.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtBToKpipiCP.o: /usr/include/bits/mathcalls.h +EvtBToKpipiCP.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtBToKpipiCP.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtBToKpipiCP.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtBToKpipiCP.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtCPUtil.hh +EvtBToKpipiCP.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtBToKpipiCP.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/vector +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBToKpipiCP.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBToKpipiCP.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBToKpipiCP.o: ../EvtGenModels/EvtBToKpipiCP.hh +EvtBToKpipiCP.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtBToKpipiCP.o: ../EvtGenBase/EvtAmp.hh +EvtBToPlnuBK.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBToPlnuBK.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBToPlnuBK.o: /usr/include/gnu/stubs.h +EvtBToPlnuBK.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBToPlnuBK.o: /usr/include/assert.h ../EvtGenBase/EvtParticle.hh +EvtBToPlnuBK.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/iosfwd +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtBToPlnuBK.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtBToPlnuBK.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtBToPlnuBK.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtBToPlnuBK.o: /usr/include/libio.h /usr/include/_G_config.h +EvtBToPlnuBK.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtBToPlnuBK.o: /usr/include/gconv.h +EvtBToPlnuBK.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBToPlnuBK.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBToPlnuBK.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBToPlnuBK.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBToPlnuBK.o: /usr/include/libintl.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBToPlnuBK.o: /usr/include/pthread.h /usr/include/sched.h +EvtBToPlnuBK.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBToPlnuBK.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBToPlnuBK.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtBToPlnuBK.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtBToPlnuBK.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtBToPlnuBK.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBToPlnuBK.o: /usr/include/stdint.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/exception +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/climits +EvtBToPlnuBK.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBToPlnuBK.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBToPlnuBK.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/new +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/cassert +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/limits +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/algorithm +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/streambuf +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/locale +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/typeinfo +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/istream +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtBToPlnuBK.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtBToPlnuBK.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtBToPlnuBK.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtBToPlnuBK.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtBToPlnuBK.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtBToPlnuBK.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtBToPlnuBK.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/vector +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBToPlnuBK.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBToPlnuBK.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBToPlnuBK.o: ../EvtGenModels/EvtBToPlnuBK.hh ../EvtGenBase/EvtDecayAmp.hh +EvtBToPlnuBK.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtBToPlnuBK.o: ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtBToPlnuBK.o: ../EvtGenBase/EvtSemiLeptonicAmp.hh +EvtBToPlnuBK.o: ../EvtGenModels/EvtBToPlnuBKFF.hh +EvtBToPlnuBK.o: ../EvtGenBase/EvtSemiLeptonicScalarAmp.hh +EvtBToPlnuBKFF.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtReport.hh +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/iostream +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBToPlnuBKFF.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBToPlnuBKFF.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/cstring +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/cstddef +EvtBToPlnuBKFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBToPlnuBKFF.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtBToPlnuBKFF.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtBToPlnuBKFF.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtBToPlnuBKFF.o: /usr/include/libio.h /usr/include/_G_config.h +EvtBToPlnuBKFF.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtBToPlnuBKFF.o: /usr/include/gconv.h +EvtBToPlnuBKFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBToPlnuBKFF.o: /usr/include/bits/stdio_lim.h +EvtBToPlnuBKFF.o: /usr/include/bits/sys_errlist.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBToPlnuBKFF.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBToPlnuBKFF.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBToPlnuBKFF.o: /usr/include/libintl.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBToPlnuBKFF.o: /usr/include/pthread.h /usr/include/sched.h +EvtBToPlnuBKFF.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBToPlnuBKFF.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBToPlnuBKFF.o: /usr/include/bits/pthreadtypes.h +EvtBToPlnuBKFF.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtBToPlnuBKFF.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtBToPlnuBKFF.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtBToPlnuBKFF.o: /usr/include/ctype.h /usr/include/endian.h +EvtBToPlnuBKFF.o: /usr/include/bits/endian.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBToPlnuBKFF.o: /usr/include/stdint.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/exception +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/climits +EvtBToPlnuBKFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBToPlnuBKFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBToPlnuBKFF.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBToPlnuBKFF.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/limits +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/algorithm +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/streambuf +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/locale +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/typeinfo +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/istream +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtBToPlnuBKFF.o: ../EvtGenModels/EvtBToPlnuBKFF.hh +EvtBToPlnuBKFF.o: ../EvtGenBase/EvtSemiLeptonicFF.hh ../EvtGenBase/EvtId.hh +EvtBToPlnuBKFF.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtBToPlnuBKFF.o: ../EvtGenBase/EvtSpinType.hh +EvtBToPlnuBKFF.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/vector +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBToPlnuBKFF.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBToPlnuBKFF.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBToPlnuBKFF.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtBToPlnuBKFF.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtbTosllAli.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtbTosllAli.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtbTosllAli.o: /usr/include/gnu/stubs.h +EvtbTosllAli.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtbTosllAli.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtbTosllAli.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtbTosllAli.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtbTosllAli.o: /usr/include/c++/3.4.6/iosfwd +EvtbTosllAli.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtbTosllAli.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtbTosllAli.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtbTosllAli.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtbTosllAli.o: /usr/include/libio.h /usr/include/_G_config.h +EvtbTosllAli.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtbTosllAli.o: /usr/include/gconv.h +EvtbTosllAli.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtbTosllAli.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtbTosllAli.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtbTosllAli.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtbTosllAli.o: /usr/include/libintl.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtbTosllAli.o: /usr/include/pthread.h /usr/include/sched.h +EvtbTosllAli.o: /usr/include/time.h /usr/include/bits/sched.h +EvtbTosllAli.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtbTosllAli.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtbTosllAli.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtbTosllAli.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtbTosllAli.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtbTosllAli.o: /usr/include/stdint.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/exception_defines.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/exception +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/climits +EvtbTosllAli.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtbTosllAli.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtbTosllAli.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtbTosllAli.o: /usr/include/c++/3.4.6/new +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/debug/debug.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/cassert +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/limits +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/algorithm +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtbTosllAli.o: /usr/include/c++/3.4.6/streambuf +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtbTosllAli.o: /usr/include/c++/3.4.6/locale +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtbTosllAli.o: /usr/include/c++/3.4.6/typeinfo +EvtbTosllAli.o: /usr/include/c++/3.4.6/istream +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtbTosllAli.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtbTosllAli.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtbTosllAli.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtbTosllAli.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtbTosllAli.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtbTosllAli.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtbTosllAli.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtbTosllAli.o: /usr/include/c++/3.4.6/vector +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtbTosllAli.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtbTosllAli.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtbTosllAli.o: ../EvtGenModels/EvtbTosllAli.hh ../EvtGenBase/EvtDecayAmp.hh +EvtbTosllAli.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtbTosllAli.o: ../EvtGenModels/EvtbTosllAliFF.hh +EvtbTosllAli.o: ../EvtGenModels/EvtbTosllFF.hh +EvtbTosllAli.o: ../EvtGenModels/EvtbTosllAmp.hh +EvtbTosllAli.o: ../EvtGenModels/EvtbTosllScalarAmp.hh +EvtbTosllAli.o: ../EvtGenModels/EvtbTosllVectorAmp.hh +EvtbTosllAliFF.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtPDL.hh +EvtbTosllAliFF.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtSpinType.hh +EvtbTosllAliFF.o: ../EvtGenBase/EvtReport.hh /usr/include/c++/3.4.6/iostream +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtbTosllAliFF.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtbTosllAliFF.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/cstring +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/cstddef +EvtbTosllAliFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtbTosllAliFF.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtbTosllAliFF.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtbTosllAliFF.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtbTosllAliFF.o: /usr/include/libio.h /usr/include/_G_config.h +EvtbTosllAliFF.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtbTosllAliFF.o: /usr/include/gconv.h +EvtbTosllAliFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtbTosllAliFF.o: /usr/include/bits/stdio_lim.h +EvtbTosllAliFF.o: /usr/include/bits/sys_errlist.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtbTosllAliFF.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtbTosllAliFF.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtbTosllAliFF.o: /usr/include/libintl.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtbTosllAliFF.o: /usr/include/pthread.h /usr/include/sched.h +EvtbTosllAliFF.o: /usr/include/time.h /usr/include/bits/sched.h +EvtbTosllAliFF.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtbTosllAliFF.o: /usr/include/bits/pthreadtypes.h +EvtbTosllAliFF.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtbTosllAliFF.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtbTosllAliFF.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtbTosllAliFF.o: /usr/include/ctype.h /usr/include/endian.h +EvtbTosllAliFF.o: /usr/include/bits/endian.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtbTosllAliFF.o: /usr/include/stdint.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/exception_defines.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/exception +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/climits +EvtbTosllAliFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtbTosllAliFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtbTosllAliFF.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtbTosllAliFF.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/debug/debug.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/limits +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/algorithm +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/streambuf +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/locale +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/typeinfo +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/istream +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtbTosllAliFF.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/vector +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtbTosllAliFF.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtbTosllAliFF.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtbTosllAliFF.o: ../EvtGenModels/EvtbTosllAliFF.hh +EvtbTosllAliFF.o: ../EvtGenModels/EvtbTosllFF.hh /usr/include/math.h +EvtbTosllAliFF.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtbTosllAliFF.o: /usr/include/bits/mathcalls.h +EvtbTosllAmp.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtParticle.hh +EvtbTosllAmp.o: /usr/include/assert.h /usr/include/features.h +EvtbTosllAmp.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h +EvtbTosllAmp.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtbTosllAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtbTosllAmp.o: /usr/include/c++/3.4.6/iosfwd +EvtbTosllAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtbTosllAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtbTosllAmp.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtbTosllAmp.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtbTosllAmp.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtbTosllAmp.o: /usr/include/libio.h /usr/include/_G_config.h +EvtbTosllAmp.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtbTosllAmp.o: /usr/include/gconv.h +EvtbTosllAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtbTosllAmp.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtbTosllAmp.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtbTosllAmp.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtbTosllAmp.o: /usr/include/libintl.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtbTosllAmp.o: /usr/include/pthread.h /usr/include/sched.h +EvtbTosllAmp.o: /usr/include/time.h /usr/include/bits/sched.h +EvtbTosllAmp.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtbTosllAmp.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtbTosllAmp.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtbTosllAmp.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtbTosllAmp.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtbTosllAmp.o: /usr/include/stdint.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/exception_defines.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/exception +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/climits +EvtbTosllAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtbTosllAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtbTosllAmp.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtbTosllAmp.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/debug/debug.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/cassert +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/limits +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/algorithm +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtbTosllAmp.o: /usr/include/c++/3.4.6/streambuf +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtbTosllAmp.o: /usr/include/c++/3.4.6/locale +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtbTosllAmp.o: /usr/include/c++/3.4.6/typeinfo +EvtbTosllAmp.o: /usr/include/c++/3.4.6/istream +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtbTosllAmp.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtbTosllAmp.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtbTosllAmp.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtbTosllAmp.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtbTosllAmp.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtbTosllAmp.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtbTosllAmp.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtbTosllAmp.o: /usr/include/c++/3.4.6/vector +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtbTosllAmp.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtbTosllAmp.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtbTosllAmp.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtbTosllAmp.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtTensor4C.hh +EvtbTosllAmp.o: ../EvtGenBase/EvtDiracSpinor.hh +EvtbTosllAmp.o: ../EvtGenModels/EvtbTosllAmp.hh ../EvtGenBase/EvtAmp.hh +EvtbTosllAmp.o: ../EvtGenBase/EvtScalarParticle.hh +EvtbTosllAmp.o: ../EvtGenBase/EvtVectorParticle.hh ../EvtGenBase/EvtDiLog.hh +EvtbTosllBall.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtbTosllBall.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtbTosllBall.o: /usr/include/gnu/stubs.h +EvtbTosllBall.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtbTosllBall.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtbTosllBall.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtbTosllBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtbTosllBall.o: /usr/include/c++/3.4.6/iosfwd +EvtbTosllBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/cstring +EvtbTosllBall.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtbTosllBall.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtbTosllBall.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtbTosllBall.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtbTosllBall.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtbTosllBall.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtbTosllBall.o: /usr/include/bits/stdio_lim.h +EvtbTosllBall.o: /usr/include/bits/sys_errlist.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtbTosllBall.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtbTosllBall.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtbTosllBall.o: /usr/include/libintl.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtbTosllBall.o: /usr/include/pthread.h /usr/include/sched.h +EvtbTosllBall.o: /usr/include/time.h /usr/include/bits/sched.h +EvtbTosllBall.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtbTosllBall.o: /usr/include/bits/pthreadtypes.h +EvtbTosllBall.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtbTosllBall.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtbTosllBall.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtbTosllBall.o: /usr/include/ctype.h /usr/include/endian.h +EvtbTosllBall.o: /usr/include/bits/endian.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtbTosllBall.o: /usr/include/stdint.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/exception_defines.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/exception +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/climits +EvtbTosllBall.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtbTosllBall.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtbTosllBall.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtbTosllBall.o: /usr/include/c++/3.4.6/new +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/debug/debug.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/cassert +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/limits +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/algorithm +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtbTosllBall.o: /usr/include/c++/3.4.6/streambuf +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtbTosllBall.o: /usr/include/c++/3.4.6/locale +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtbTosllBall.o: /usr/include/c++/3.4.6/typeinfo +EvtbTosllBall.o: /usr/include/c++/3.4.6/istream +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtbTosllBall.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtbTosllBall.o: /usr/include/bits/mathcalls.h +EvtbTosllBall.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtbTosllBall.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtbTosllBall.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtbTosllBall.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtbTosllBall.o: ../EvtGenBase/EvtPartProp.hh +EvtbTosllBall.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtbTosllBall.o: /usr/include/c++/3.4.6/vector +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtbTosllBall.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtbTosllBall.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtbTosllBall.o: ../EvtGenModels/EvtbTosllBall.hh +EvtbTosllBall.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtbTosllBall.o: ../EvtGenBase/EvtAmp.hh ../EvtGenModels/EvtbTosllBallFF.hh +EvtbTosllBall.o: ../EvtGenModels/EvtbTosllFF.hh +EvtbTosllBall.o: ../EvtGenModels/EvtbTosllAmp.hh +EvtbTosllBall.o: ../EvtGenModels/EvtbTosllScalarAmp.hh +EvtbTosllBall.o: ../EvtGenModels/EvtbTosllVectorAmp.hh +EvtbTosllBallFF.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtPDL.hh +EvtbTosllBallFF.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtSpinType.hh +EvtbTosllBallFF.o: ../EvtGenBase/EvtReport.hh /usr/include/c++/3.4.6/iostream +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtbTosllBallFF.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtbTosllBallFF.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/cstring +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/cstddef +EvtbTosllBallFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtbTosllBallFF.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtbTosllBallFF.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtbTosllBallFF.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtbTosllBallFF.o: /usr/include/libio.h /usr/include/_G_config.h +EvtbTosllBallFF.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtbTosllBallFF.o: /usr/include/gconv.h +EvtbTosllBallFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtbTosllBallFF.o: /usr/include/bits/stdio_lim.h +EvtbTosllBallFF.o: /usr/include/bits/sys_errlist.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtbTosllBallFF.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtbTosllBallFF.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtbTosllBallFF.o: /usr/include/libintl.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtbTosllBallFF.o: /usr/include/pthread.h /usr/include/sched.h +EvtbTosllBallFF.o: /usr/include/time.h /usr/include/bits/sched.h +EvtbTosllBallFF.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtbTosllBallFF.o: /usr/include/bits/pthreadtypes.h +EvtbTosllBallFF.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtbTosllBallFF.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtbTosllBallFF.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtbTosllBallFF.o: /usr/include/ctype.h /usr/include/endian.h +EvtbTosllBallFF.o: /usr/include/bits/endian.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtbTosllBallFF.o: /usr/include/stdint.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/exception_defines.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/exception +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/climits +EvtbTosllBallFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtbTosllBallFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtbTosllBallFF.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtbTosllBallFF.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/debug/debug.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/string +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/memory +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/limits +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/algorithm +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/streambuf +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/locale +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/typeinfo +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/istream +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtbTosllBallFF.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/vector +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtbTosllBallFF.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtbTosllBallFF.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtbTosllBallFF.o: ../EvtGenModels/EvtbTosllBallFF.hh +EvtbTosllBallFF.o: ../EvtGenModels/EvtbTosllFF.hh /usr/include/math.h +EvtbTosllBallFF.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtbTosllBallFF.o: /usr/include/bits/mathcalls.h +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtConst.hh +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtbTosllScalarAmp.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtbTosllScalarAmp.o: /usr/include/gnu/stubs.h ../EvtGenBase/EvtVector4R.hh +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/iostream +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/ostream +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/ios +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/iosfwd +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/cstring +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/cstddef +EvtbTosllScalarAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtbTosllScalarAmp.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtbTosllScalarAmp.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtbTosllScalarAmp.o: /usr/include/bits/wordsize.h +EvtbTosllScalarAmp.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtbTosllScalarAmp.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtbTosllScalarAmp.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtbTosllScalarAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtbTosllScalarAmp.o: /usr/include/bits/stdio_lim.h +EvtbTosllScalarAmp.o: /usr/include/bits/sys_errlist.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtbTosllScalarAmp.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtbTosllScalarAmp.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtbTosllScalarAmp.o: /usr/include/libintl.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtbTosllScalarAmp.o: /usr/include/pthread.h /usr/include/sched.h +EvtbTosllScalarAmp.o: /usr/include/time.h /usr/include/bits/sched.h +EvtbTosllScalarAmp.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtbTosllScalarAmp.o: /usr/include/bits/pthreadtypes.h +EvtbTosllScalarAmp.o: /usr/include/bits/initspin.h +EvtbTosllScalarAmp.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtbTosllScalarAmp.o: /usr/include/bits/posix_opt.h +EvtbTosllScalarAmp.o: /usr/include/bits/confname.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtbTosllScalarAmp.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/cwchar +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/exception_defines.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/exception +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/climits +EvtbTosllScalarAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtbTosllScalarAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtbTosllScalarAmp.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtbTosllScalarAmp.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/debug/debug.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/cassert +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/string +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/memory +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/limits +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/algorithm +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/streambuf +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/locale +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/typeinfo +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/istream +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtbTosllScalarAmp.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtbTosllScalarAmp.o: /usr/include/bits/mathdef.h +EvtbTosllScalarAmp.o: /usr/include/bits/mathcalls.h +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtSpinDensity.hh +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtId.hh +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtPartProp.hh +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/vector +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtStringHash.hh +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/map +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtbTosllScalarAmp.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtVector4C.hh +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtVector3C.hh +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtVector3R.hh +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtTensor4C.hh +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtDiracSpinor.hh +EvtbTosllScalarAmp.o: ../EvtGenModels/EvtbTosllScalarAmp.hh +EvtbTosllScalarAmp.o: ../EvtGenModels/EvtbTosllAmp.hh +EvtbTosllScalarAmp.o: ../EvtGenBase/EvtIdSet.hh ../EvtGenBase/EvtAmp.hh +EvtbTosllScalarAmp.o: ../EvtGenModels/EvtbTosllFF.hh +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtPatches.hh +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtbTosllVectorAmp.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtbTosllVectorAmp.o: /usr/include/gnu/stubs.h ../EvtGenBase/EvtVector4R.hh +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/iostream +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/ostream +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/ios +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/iosfwd +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/cstring +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/cstddef +EvtbTosllVectorAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtbTosllVectorAmp.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtbTosllVectorAmp.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtbTosllVectorAmp.o: /usr/include/bits/wordsize.h +EvtbTosllVectorAmp.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtbTosllVectorAmp.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtbTosllVectorAmp.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtbTosllVectorAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtbTosllVectorAmp.o: /usr/include/bits/stdio_lim.h +EvtbTosllVectorAmp.o: /usr/include/bits/sys_errlist.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtbTosllVectorAmp.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtbTosllVectorAmp.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtbTosllVectorAmp.o: /usr/include/libintl.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtbTosllVectorAmp.o: /usr/include/pthread.h /usr/include/sched.h +EvtbTosllVectorAmp.o: /usr/include/time.h /usr/include/bits/sched.h +EvtbTosllVectorAmp.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtbTosllVectorAmp.o: /usr/include/bits/pthreadtypes.h +EvtbTosllVectorAmp.o: /usr/include/bits/initspin.h +EvtbTosllVectorAmp.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtbTosllVectorAmp.o: /usr/include/bits/posix_opt.h +EvtbTosllVectorAmp.o: /usr/include/bits/confname.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtbTosllVectorAmp.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/cwchar +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/exception_defines.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/exception +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/climits +EvtbTosllVectorAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtbTosllVectorAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtbTosllVectorAmp.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtbTosllVectorAmp.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/debug/debug.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/cassert +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/string +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/memory +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/limits +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/algorithm +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/streambuf +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/locale +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/typeinfo +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/istream +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtbTosllVectorAmp.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtbTosllVectorAmp.o: /usr/include/bits/mathdef.h +EvtbTosllVectorAmp.o: /usr/include/bits/mathcalls.h +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtSpinDensity.hh +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/vector +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtStringHash.hh +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/map +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtbTosllVectorAmp.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtVector4C.hh +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtVector3C.hh +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtVector3R.hh +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtTensor4C.hh +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtDiracSpinor.hh +EvtbTosllVectorAmp.o: ../EvtGenModels/EvtbTosllVectorAmp.hh +EvtbTosllVectorAmp.o: ../EvtGenModels/EvtbTosllAmp.hh +EvtbTosllVectorAmp.o: ../EvtGenBase/EvtIdSet.hh ../EvtGenBase/EvtAmp.hh +EvtbTosllVectorAmp.o: ../EvtGenModels/EvtbTosllFF.hh +EvtBToVlnuBall.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBToVlnuBall.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBToVlnuBall.o: /usr/include/gnu/stubs.h +EvtBToVlnuBall.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBToVlnuBall.o: /usr/include/assert.h ../EvtGenBase/EvtParticle.hh +EvtBToVlnuBall.o: ../EvtGenBase/EvtVector4R.hh +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/iostream +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/iosfwd +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/cstring +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtBToVlnuBall.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtBToVlnuBall.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtBToVlnuBall.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtBToVlnuBall.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtBToVlnuBall.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBToVlnuBall.o: /usr/include/bits/stdio_lim.h +EvtBToVlnuBall.o: /usr/include/bits/sys_errlist.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBToVlnuBall.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBToVlnuBall.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBToVlnuBall.o: /usr/include/libintl.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBToVlnuBall.o: /usr/include/pthread.h /usr/include/sched.h +EvtBToVlnuBall.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBToVlnuBall.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBToVlnuBall.o: /usr/include/bits/pthreadtypes.h +EvtBToVlnuBall.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtBToVlnuBall.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtBToVlnuBall.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtBToVlnuBall.o: /usr/include/ctype.h /usr/include/endian.h +EvtBToVlnuBall.o: /usr/include/bits/endian.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBToVlnuBall.o: /usr/include/stdint.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/exception +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/climits +EvtBToVlnuBall.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBToVlnuBall.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBToVlnuBall.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/new +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/cassert +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/limits +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/algorithm +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/streambuf +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/locale +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/typeinfo +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/istream +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtBToVlnuBall.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtBToVlnuBall.o: /usr/include/bits/mathcalls.h +EvtBToVlnuBall.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtBToVlnuBall.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtBToVlnuBall.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtBToVlnuBall.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtBToVlnuBall.o: ../EvtGenBase/EvtPartProp.hh +EvtBToVlnuBall.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/vector +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBToVlnuBall.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBToVlnuBall.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBToVlnuBall.o: ../EvtGenModels/EvtBToVlnuBall.hh +EvtBToVlnuBall.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtBToVlnuBall.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtBToVlnuBall.o: ../EvtGenBase/EvtSemiLeptonicAmp.hh +EvtBToVlnuBall.o: ../EvtGenModels/EvtBToVlnuBallFF.hh +EvtBToVlnuBall.o: ../EvtGenBase/EvtSemiLeptonicVectorAmp.hh +EvtBToVlnuBall.o: ../EvtGenBase/EvtSemiLeptonicScalarAmp.hh +EvtBToVlnuBallFF.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtReport.hh +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/iostream +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBToVlnuBallFF.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBToVlnuBallFF.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/cstring +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/cstddef +EvtBToVlnuBallFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBToVlnuBallFF.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtBToVlnuBallFF.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtBToVlnuBallFF.o: /usr/include/bits/wordsize.h +EvtBToVlnuBallFF.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtBToVlnuBallFF.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtBToVlnuBallFF.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtBToVlnuBallFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBToVlnuBallFF.o: /usr/include/bits/stdio_lim.h +EvtBToVlnuBallFF.o: /usr/include/bits/sys_errlist.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBToVlnuBallFF.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBToVlnuBallFF.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBToVlnuBallFF.o: /usr/include/libintl.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBToVlnuBallFF.o: /usr/include/pthread.h /usr/include/sched.h +EvtBToVlnuBallFF.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBToVlnuBallFF.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBToVlnuBallFF.o: /usr/include/bits/pthreadtypes.h +EvtBToVlnuBallFF.o: /usr/include/bits/initspin.h +EvtBToVlnuBallFF.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtBToVlnuBallFF.o: /usr/include/bits/posix_opt.h +EvtBToVlnuBallFF.o: /usr/include/bits/confname.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtBToVlnuBallFF.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/cwchar +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/exception +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/climits +EvtBToVlnuBallFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBToVlnuBallFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBToVlnuBallFF.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBToVlnuBallFF.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/string +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/memory +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/limits +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/algorithm +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/streambuf +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/locale +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/typeinfo +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/istream +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtBToVlnuBallFF.o: ../EvtGenModels/EvtBToVlnuBallFF.hh +EvtBToVlnuBallFF.o: ../EvtGenBase/EvtSemiLeptonicFF.hh ../EvtGenBase/EvtId.hh +EvtBToVlnuBallFF.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtBToVlnuBallFF.o: ../EvtGenBase/EvtSpinType.hh +EvtBToVlnuBallFF.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/vector +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBToVlnuBallFF.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBToVlnuBallFF.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBToVlnuBallFF.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtBToVlnuBallFF.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtBtoXsEtap.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBtoXsEtap.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBtoXsEtap.o: /usr/include/gnu/stubs.h +EvtBtoXsEtap.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBtoXsEtap.o: ../EvtGenBase/EvtRandom.hh ../EvtGenBase/EvtParticle.hh +EvtBtoXsEtap.o: /usr/include/assert.h ../EvtGenBase/EvtVector4R.hh +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/iostream +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/iosfwd +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtBtoXsEtap.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtBtoXsEtap.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtBtoXsEtap.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtBtoXsEtap.o: /usr/include/libio.h /usr/include/_G_config.h +EvtBtoXsEtap.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtBtoXsEtap.o: /usr/include/gconv.h +EvtBtoXsEtap.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBtoXsEtap.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBtoXsEtap.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBtoXsEtap.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBtoXsEtap.o: /usr/include/libintl.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBtoXsEtap.o: /usr/include/pthread.h /usr/include/sched.h +EvtBtoXsEtap.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBtoXsEtap.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBtoXsEtap.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtBtoXsEtap.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtBtoXsEtap.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtBtoXsEtap.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBtoXsEtap.o: /usr/include/stdint.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/exception +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/climits +EvtBtoXsEtap.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBtoXsEtap.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBtoXsEtap.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/new +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/cassert +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/limits +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/algorithm +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/streambuf +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/locale +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/typeinfo +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/istream +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtBtoXsEtap.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtBtoXsEtap.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtBtoXsEtap.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtBtoXsEtap.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtBtoXsEtap.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtBtoXsEtap.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtBtoXsEtap.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/vector +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBtoXsEtap.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBtoXsEtap.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBtoXsEtap.o: ../EvtGenModels/EvtBtoXsEtap.hh +EvtBtoXsEtap.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtBtoXsEtap.o: ../EvtGenBase/EvtDecayBase.hh +EvtBtoXsgammaAbsModel.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBtoXsgammaAbsModel.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBtoXsgammaAbsModel.o: /usr/include/gnu/stubs.h +EvtBtoXsgammaAbsModel.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBtoXsgammaAbsModel.o: ../EvtGenModels/EvtBtoXsgammaAbsModel.hh +EvtBtoXsgammaAliGreub.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBtoXsgammaAliGreub.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBtoXsgammaAliGreub.o: /usr/include/gnu/stubs.h +EvtBtoXsgammaAliGreub.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBtoXsgammaAliGreub.o: ../EvtGenBase/EvtRandom.hh +EvtBtoXsgammaAliGreub.o: ../EvtGenModels/EvtBtoXsgammaAliGreub.hh +EvtBtoXsgammaAliGreub.o: ../EvtGenModels/EvtBtoXsgammaAbsModel.hh +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/string +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/cstring +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/climits +EvtBtoXsgammaAliGreub.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBtoXsgammaAliGreub.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBtoXsgammaAliGreub.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/new +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/exception +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/iosfwd +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtBtoXsgammaAliGreub.o: /usr/include/bits/types.h +EvtBtoXsgammaAliGreub.o: /usr/include/bits/wordsize.h +EvtBtoXsgammaAliGreub.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtBtoXsgammaAliGreub.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtBtoXsgammaAliGreub.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtBtoXsgammaAliGreub.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBtoXsgammaAliGreub.o: /usr/include/bits/stdio_lim.h +EvtBtoXsgammaAliGreub.o: /usr/include/bits/sys_errlist.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBtoXsgammaAliGreub.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBtoXsgammaAliGreub.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBtoXsgammaAliGreub.o: /usr/include/libintl.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBtoXsgammaAliGreub.o: /usr/include/pthread.h /usr/include/sched.h +EvtBtoXsgammaAliGreub.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBtoXsgammaAliGreub.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBtoXsgammaAliGreub.o: /usr/include/bits/pthreadtypes.h +EvtBtoXsgammaAliGreub.o: /usr/include/bits/initspin.h +EvtBtoXsgammaAliGreub.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtBtoXsgammaAliGreub.o: /usr/include/bits/posix_opt.h +EvtBtoXsgammaAliGreub.o: /usr/include/bits/confname.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtBtoXsgammaAliGreub.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/cwchar +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/memory +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/limits +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/algorithm +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBtoXsgammaAliGreub.o: ../EvtGenBase/EvtConst.hh +EvtBtoXsgammaAliGreub.o: ../EvtGenBase/EvtParticle.hh +EvtBtoXsgammaAliGreub.o: ../EvtGenBase/EvtVector4R.hh +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/iostream +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/ostream +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/ios +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/streambuf +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/locale +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/typeinfo +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/istream +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtBtoXsgammaAliGreub.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtBtoXsgammaAliGreub.o: /usr/include/bits/mathdef.h +EvtBtoXsgammaAliGreub.o: /usr/include/bits/mathcalls.h +EvtBtoXsgammaAliGreub.o: ../EvtGenBase/EvtSpinDensity.hh +EvtBtoXsgammaAliGreub.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtId.hh +EvtBtoXsgammaAliGreub.o: ../EvtGenBase/EvtSpinType.hh +EvtBtoXsgammaAliGreub.o: ../EvtGenBase/EvtReport.hh +EvtBtoXsgammaAliGreub.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtBtoXsgammaAliGreub.o: ../EvtGenBase/EvtPartProp.hh +EvtBtoXsgammaAliGreub.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/vector +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBtoXsgammaAliGreub.o: ../EvtGenBase/EvtStringHash.hh +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/map +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBtoXsgammaAliGreub.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBtoXsgamma.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBtoXsgamma.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBtoXsgamma.o: /usr/include/gnu/stubs.h +EvtBtoXsgamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBtoXsgamma.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtBtoXsgamma.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/iosfwd +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/cstring +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtBtoXsgamma.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtBtoXsgamma.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtBtoXsgamma.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtBtoXsgamma.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtBtoXsgamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBtoXsgamma.o: /usr/include/bits/stdio_lim.h +EvtBtoXsgamma.o: /usr/include/bits/sys_errlist.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBtoXsgamma.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBtoXsgamma.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBtoXsgamma.o: /usr/include/libintl.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBtoXsgamma.o: /usr/include/pthread.h /usr/include/sched.h +EvtBtoXsgamma.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBtoXsgamma.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBtoXsgamma.o: /usr/include/bits/pthreadtypes.h +EvtBtoXsgamma.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtBtoXsgamma.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtBtoXsgamma.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtBtoXsgamma.o: /usr/include/ctype.h /usr/include/endian.h +EvtBtoXsgamma.o: /usr/include/bits/endian.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBtoXsgamma.o: /usr/include/stdint.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/exception +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/climits +EvtBtoXsgamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBtoXsgamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBtoXsgamma.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/new +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/cassert +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/limits +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/algorithm +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/streambuf +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/locale +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/typeinfo +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/istream +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtBtoXsgamma.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtBtoXsgamma.o: /usr/include/bits/mathcalls.h +EvtBtoXsgamma.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtBtoXsgamma.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtBtoXsgamma.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtBtoXsgamma.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtBtoXsgamma.o: ../EvtGenBase/EvtPartProp.hh +EvtBtoXsgamma.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/vector +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBtoXsgamma.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBtoXsgamma.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBtoXsgamma.o: ../EvtGenModels/EvtBtoXsgamma.hh +EvtBtoXsgamma.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtBtoXsgamma.o: ../EvtGenBase/EvtDecayBase.hh +EvtBtoXsgamma.o: ../EvtGenModels/EvtBtoXsgammaAliGreub.hh +EvtBtoXsgamma.o: ../EvtGenModels/EvtBtoXsgammaAbsModel.hh +EvtBtoXsgamma.o: ../EvtGenModels/EvtBtoXsgammaKagan.hh +EvtBtoXsgamma.o: ../EvtGenModels/EvtBtoXsgammaFixedMass.hh +EvtBtoXsgamma.o: ../EvtGenModels/EvtBtoXsgammaFlatEnergy.hh +EvtBtoXsgammaFermiUtil.o: ../EvtGenBase/EvtPatches.hh +EvtBtoXsgammaFermiUtil.o: ../EvtGenModels/EvtBtoXsgammaFermiUtil.hh +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/vector +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBtoXsgammaFermiUtil.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBtoXsgammaFermiUtil.o: /usr/include/gnu/stubs.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/cstring +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/cstddef +EvtBtoXsgammaFermiUtil.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBtoXsgammaFermiUtil.o: /usr/include/string.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/climits +EvtBtoXsgammaFermiUtil.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBtoXsgammaFermiUtil.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBtoXsgammaFermiUtil.o: /usr/include/limits.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/cstdlib +EvtBtoXsgammaFermiUtil.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/exception +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/iosfwd +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtBtoXsgammaFermiUtil.o: /usr/include/bits/types.h +EvtBtoXsgammaFermiUtil.o: /usr/include/bits/wordsize.h +EvtBtoXsgammaFermiUtil.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtBtoXsgammaFermiUtil.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtBtoXsgammaFermiUtil.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtBtoXsgammaFermiUtil.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBtoXsgammaFermiUtil.o: /usr/include/bits/stdio_lim.h +EvtBtoXsgammaFermiUtil.o: /usr/include/bits/sys_errlist.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/clocale +EvtBtoXsgammaFermiUtil.o: /usr/include/locale.h /usr/include/bits/locale.h +EvtBtoXsgammaFermiUtil.o: /usr/include/langinfo.h /usr/include/nl_types.h +EvtBtoXsgammaFermiUtil.o: /usr/include/iconv.h /usr/include/libintl.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBtoXsgammaFermiUtil.o: /usr/include/pthread.h /usr/include/sched.h +EvtBtoXsgammaFermiUtil.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBtoXsgammaFermiUtil.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBtoXsgammaFermiUtil.o: /usr/include/bits/pthreadtypes.h +EvtBtoXsgammaFermiUtil.o: /usr/include/bits/initspin.h +EvtBtoXsgammaFermiUtil.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtBtoXsgammaFermiUtil.o: /usr/include/bits/posix_opt.h +EvtBtoXsgammaFermiUtil.o: /usr/include/bits/confname.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtBtoXsgammaFermiUtil.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/cwchar +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/cassert +EvtBtoXsgammaFermiUtil.o: /usr/include/assert.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBtoXsgammaFermiUtil.o: ../EvtGenModels/EvtItgTwoCoeffFcn.hh +EvtBtoXsgammaFermiUtil.o: ../EvtGenModels/EvtItgAbsFunction.hh +EvtBtoXsgammaFermiUtil.o: ../EvtGenModels/EvtBtoXsgammaRootFinder.hh +EvtBtoXsgammaFermiUtil.o: ../EvtGenModels/EvtItgFunction.hh +EvtBtoXsgammaFermiUtil.o: ../EvtGenBase/EvtConst.hh +EvtBtoXsgammaFermiUtil.o: ../EvtGenBase/EvtReport.hh +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/iostream +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/ostream +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/ios +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/string +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/memory +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/limits +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/algorithm +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/streambuf +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/cwctype +EvtBtoXsgammaFermiUtil.o: /usr/include/wctype.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/locale +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/typeinfo +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/istream +EvtBtoXsgammaFermiUtil.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtBtoXsgammaFermiUtil.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtBtoXsgammaFermiUtil.o: /usr/include/bits/mathdef.h +EvtBtoXsgammaFermiUtil.o: /usr/include/bits/mathcalls.h +EvtBtoXsgammaFixedMass.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBtoXsgammaFixedMass.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBtoXsgammaFixedMass.o: /usr/include/gnu/stubs.h +EvtBtoXsgammaFixedMass.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBtoXsgammaFixedMass.o: ../EvtGenModels/EvtBtoXsgamma.hh +EvtBtoXsgammaFixedMass.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtBtoXsgammaFixedMass.o: ../EvtGenBase/EvtDecayBase.hh +EvtBtoXsgammaFixedMass.o: ../EvtGenBase/EvtId.hh +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/iostream +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/ostream +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/ios +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/iosfwd +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/cstring +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/cstddef +EvtBtoXsgammaFixedMass.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtBtoXsgammaFixedMass.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtBtoXsgammaFixedMass.o: /usr/include/bits/wordsize.h +EvtBtoXsgammaFixedMass.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtBtoXsgammaFixedMass.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtBtoXsgammaFixedMass.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtBtoXsgammaFixedMass.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBtoXsgammaFixedMass.o: /usr/include/bits/stdio_lim.h +EvtBtoXsgammaFixedMass.o: /usr/include/bits/sys_errlist.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/clocale +EvtBtoXsgammaFixedMass.o: /usr/include/locale.h /usr/include/bits/locale.h +EvtBtoXsgammaFixedMass.o: /usr/include/langinfo.h /usr/include/nl_types.h +EvtBtoXsgammaFixedMass.o: /usr/include/iconv.h /usr/include/libintl.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBtoXsgammaFixedMass.o: /usr/include/pthread.h /usr/include/sched.h +EvtBtoXsgammaFixedMass.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBtoXsgammaFixedMass.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBtoXsgammaFixedMass.o: /usr/include/bits/pthreadtypes.h +EvtBtoXsgammaFixedMass.o: /usr/include/bits/initspin.h +EvtBtoXsgammaFixedMass.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtBtoXsgammaFixedMass.o: /usr/include/bits/posix_opt.h +EvtBtoXsgammaFixedMass.o: /usr/include/bits/confname.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtBtoXsgammaFixedMass.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/cwchar +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/exception +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/climits +EvtBtoXsgammaFixedMass.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBtoXsgammaFixedMass.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBtoXsgammaFixedMass.o: /usr/include/limits.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/cstdlib +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/new +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/cassert +EvtBtoXsgammaFixedMass.o: /usr/include/assert.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/string +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/memory +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/limits +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/algorithm +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/streambuf +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/cwctype +EvtBtoXsgammaFixedMass.o: /usr/include/wctype.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/locale +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/typeinfo +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/istream +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtBtoXsgammaFixedMass.o: ../EvtGenBase/EvtSpinType.hh +EvtBtoXsgammaFixedMass.o: ../EvtGenBase/EvtReport.hh +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/vector +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBtoXsgammaFixedMass.o: ../EvtGenBase/EvtParticle.hh +EvtBtoXsgammaFixedMass.o: ../EvtGenBase/EvtVector4R.hh /usr/include/math.h +EvtBtoXsgammaFixedMass.o: /usr/include/bits/huge_val.h +EvtBtoXsgammaFixedMass.o: /usr/include/bits/mathdef.h +EvtBtoXsgammaFixedMass.o: /usr/include/bits/mathcalls.h +EvtBtoXsgammaFixedMass.o: ../EvtGenBase/EvtSpinDensity.hh +EvtBtoXsgammaFixedMass.o: ../EvtGenBase/EvtComplex.hh +EvtBtoXsgammaFixedMass.o: ../EvtGenBase/EvtConst.hh +EvtBtoXsgammaFixedMass.o: ../EvtGenModels/EvtBtoXsgammaFixedMass.hh +EvtBtoXsgammaFixedMass.o: ../EvtGenModels/EvtBtoXsgammaAbsModel.hh +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/fstream +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/basic_file.h +EvtBtoXsgammaFixedMass.o: /usr/include/c++/3.4.6/bits/fstream.tcc +EvtBtoXsgammaFlatEnergy.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/gnu/stubs.h +EvtBtoXsgammaFlatEnergy.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBtoXsgammaFlatEnergy.o: ../EvtGenModels/EvtBtoXsgamma.hh +EvtBtoXsgammaFlatEnergy.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtBtoXsgammaFlatEnergy.o: ../EvtGenBase/EvtDecayBase.hh +EvtBtoXsgammaFlatEnergy.o: ../EvtGenBase/EvtId.hh +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/iostream +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/ostream +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/ios +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/iosfwd +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/cstring +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/cstddef +EvtBtoXsgammaFlatEnergy.o: /usr/include/string.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/bits/types.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/bits/wordsize.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtBtoXsgammaFlatEnergy.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/bits/stdio_lim.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/bits/sys_errlist.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/clocale +EvtBtoXsgammaFlatEnergy.o: /usr/include/locale.h /usr/include/bits/locale.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/langinfo.h /usr/include/nl_types.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/iconv.h /usr/include/libintl.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/pthread.h /usr/include/sched.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/bits/pthreadtypes.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/bits/initspin.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/bits/sigthread.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/unistd.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/bits/posix_opt.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/bits/confname.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/cwchar +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/exception +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/climits +EvtBtoXsgammaFlatEnergy.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBtoXsgammaFlatEnergy.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/limits.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/cstdlib +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/new +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/cassert +EvtBtoXsgammaFlatEnergy.o: /usr/include/assert.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/string +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/memory +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/limits +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/algorithm +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/streambuf +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/cwctype +EvtBtoXsgammaFlatEnergy.o: /usr/include/wctype.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/locale +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/typeinfo +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/istream +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtBtoXsgammaFlatEnergy.o: ../EvtGenBase/EvtSpinType.hh +EvtBtoXsgammaFlatEnergy.o: ../EvtGenBase/EvtReport.hh +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/vector +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBtoXsgammaFlatEnergy.o: ../EvtGenBase/EvtParticle.hh +EvtBtoXsgammaFlatEnergy.o: ../EvtGenBase/EvtVector4R.hh /usr/include/math.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/bits/huge_val.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/bits/mathdef.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/bits/mathcalls.h +EvtBtoXsgammaFlatEnergy.o: ../EvtGenBase/EvtSpinDensity.hh +EvtBtoXsgammaFlatEnergy.o: ../EvtGenBase/EvtComplex.hh +EvtBtoXsgammaFlatEnergy.o: ../EvtGenBase/EvtConst.hh +EvtBtoXsgammaFlatEnergy.o: ../EvtGenModels/EvtBtoXsgammaFlatEnergy.hh +EvtBtoXsgammaFlatEnergy.o: ../EvtGenModels/EvtBtoXsgammaAbsModel.hh +EvtBtoXsgammaFlatEnergy.o: ../EvtGenBase/EvtRandom.hh +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/fstream +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/basic_file.h +EvtBtoXsgammaFlatEnergy.o: /usr/include/c++/3.4.6/bits/fstream.tcc +EvtBtoXsgammaKagan.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBtoXsgammaKagan.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBtoXsgammaKagan.o: /usr/include/gnu/stubs.h +EvtBtoXsgammaKagan.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBtoXsgammaKagan.o: ../EvtGenModels/EvtBtoXsgamma.hh +EvtBtoXsgammaKagan.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtBtoXsgammaKagan.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtId.hh +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/iostream +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/ostream +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/ios +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/iosfwd +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/cstring +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtBtoXsgammaKagan.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtBtoXsgammaKagan.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtBtoXsgammaKagan.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtBtoXsgammaKagan.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtBtoXsgammaKagan.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBtoXsgammaKagan.o: /usr/include/bits/stdio_lim.h +EvtBtoXsgammaKagan.o: /usr/include/bits/sys_errlist.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBtoXsgammaKagan.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBtoXsgammaKagan.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBtoXsgammaKagan.o: /usr/include/libintl.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBtoXsgammaKagan.o: /usr/include/pthread.h /usr/include/sched.h +EvtBtoXsgammaKagan.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBtoXsgammaKagan.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBtoXsgammaKagan.o: /usr/include/bits/pthreadtypes.h +EvtBtoXsgammaKagan.o: /usr/include/bits/initspin.h +EvtBtoXsgammaKagan.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtBtoXsgammaKagan.o: /usr/include/bits/posix_opt.h +EvtBtoXsgammaKagan.o: /usr/include/bits/confname.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtBtoXsgammaKagan.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/cwchar +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/exception +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/climits +EvtBtoXsgammaKagan.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBtoXsgammaKagan.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBtoXsgammaKagan.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/new +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/string +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/memory +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/limits +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/algorithm +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/streambuf +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/locale +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/typeinfo +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/istream +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtBtoXsgammaKagan.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/vector +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBtoXsgammaKagan.o: ../EvtGenBase/EvtParticle.hh +EvtBtoXsgammaKagan.o: ../EvtGenBase/EvtVector4R.hh /usr/include/math.h +EvtBtoXsgammaKagan.o: /usr/include/bits/huge_val.h +EvtBtoXsgammaKagan.o: /usr/include/bits/mathdef.h +EvtBtoXsgammaKagan.o: /usr/include/bits/mathcalls.h +EvtBtoXsgammaKagan.o: ../EvtGenBase/EvtSpinDensity.hh +EvtBtoXsgammaKagan.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtBtoXsgammaKagan.o: ../EvtGenBase/EvtRandom.hh +EvtBtoXsgammaKagan.o: ../EvtGenModels/EvtBtoXsgammaKagan.hh +EvtBtoXsgammaKagan.o: ../EvtGenModels/EvtBtoXsgammaAbsModel.hh +EvtBtoXsgammaKagan.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtBtoXsgammaKagan.o: ../EvtGenBase/EvtPartProp.hh +EvtBtoXsgammaKagan.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtBtoXsgammaKagan.o: ../EvtGenBase/EvtStringHash.hh +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/map +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBtoXsgammaKagan.o: ../EvtGenModels/EvtItgSimpsonIntegrator.hh +EvtBtoXsgammaKagan.o: ../EvtGenModels/EvtItgAbsIntegrator.hh +EvtBtoXsgammaKagan.o: ../EvtGenModels/EvtItgAbsFunction.hh +EvtBtoXsgammaKagan.o: ../EvtGenModels/EvtItgFunction.hh +EvtBtoXsgammaKagan.o: ../EvtGenModels/EvtItgPtrFunction.hh +EvtBtoXsgammaKagan.o: ../EvtGenModels/EvtItgTwoCoeffFcn.hh +EvtBtoXsgammaKagan.o: ../EvtGenModels/EvtItgThreeCoeffFcn.hh +EvtBtoXsgammaKagan.o: ../EvtGenModels/EvtItgFourCoeffFcn.hh +EvtBtoXsgammaKagan.o: ../EvtGenModels/EvtBtoXsgammaFermiUtil.hh +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/fstream +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/basic_file.h +EvtBtoXsgammaKagan.o: /usr/include/c++/3.4.6/bits/fstream.tcc +EvtBtoXsgammaRootFinder.o: ../EvtGenBase/EvtPatches.hh +EvtBtoXsgammaRootFinder.o: ../EvtGenModels/EvtBtoXsgammaRootFinder.hh +EvtBtoXsgammaRootFinder.o: ../EvtGenModels/EvtItgTwoCoeffFcn.hh +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/vector +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBtoXsgammaRootFinder.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBtoXsgammaRootFinder.o: /usr/include/gnu/stubs.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/cstring +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/cstddef +EvtBtoXsgammaRootFinder.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBtoXsgammaRootFinder.o: /usr/include/string.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/climits +EvtBtoXsgammaRootFinder.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBtoXsgammaRootFinder.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBtoXsgammaRootFinder.o: /usr/include/limits.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/cstdlib +EvtBtoXsgammaRootFinder.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/exception +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/iosfwd +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtBtoXsgammaRootFinder.o: /usr/include/bits/types.h +EvtBtoXsgammaRootFinder.o: /usr/include/bits/wordsize.h +EvtBtoXsgammaRootFinder.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtBtoXsgammaRootFinder.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtBtoXsgammaRootFinder.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtBtoXsgammaRootFinder.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBtoXsgammaRootFinder.o: /usr/include/bits/stdio_lim.h +EvtBtoXsgammaRootFinder.o: /usr/include/bits/sys_errlist.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/clocale +EvtBtoXsgammaRootFinder.o: /usr/include/locale.h /usr/include/bits/locale.h +EvtBtoXsgammaRootFinder.o: /usr/include/langinfo.h /usr/include/nl_types.h +EvtBtoXsgammaRootFinder.o: /usr/include/iconv.h /usr/include/libintl.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBtoXsgammaRootFinder.o: /usr/include/pthread.h /usr/include/sched.h +EvtBtoXsgammaRootFinder.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBtoXsgammaRootFinder.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBtoXsgammaRootFinder.o: /usr/include/bits/pthreadtypes.h +EvtBtoXsgammaRootFinder.o: /usr/include/bits/initspin.h +EvtBtoXsgammaRootFinder.o: /usr/include/bits/sigthread.h +EvtBtoXsgammaRootFinder.o: /usr/include/unistd.h +EvtBtoXsgammaRootFinder.o: /usr/include/bits/posix_opt.h +EvtBtoXsgammaRootFinder.o: /usr/include/bits/confname.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtBtoXsgammaRootFinder.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/cwchar +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/cassert +EvtBtoXsgammaRootFinder.o: /usr/include/assert.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBtoXsgammaRootFinder.o: ../EvtGenModels/EvtItgAbsFunction.hh +EvtBtoXsgammaRootFinder.o: ../EvtGenModels/EvtItgSimpsonIntegrator.hh +EvtBtoXsgammaRootFinder.o: ../EvtGenModels/EvtItgAbsIntegrator.hh +EvtBtoXsgammaRootFinder.o: ../EvtGenBase/EvtReport.hh +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/iostream +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/ostream +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/ios +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/string +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/memory +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/limits +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/algorithm +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/streambuf +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/cwctype +EvtBtoXsgammaRootFinder.o: /usr/include/wctype.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/locale +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/typeinfo +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/istream +EvtBtoXsgammaRootFinder.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtBtoXsgammaRootFinder.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtBtoXsgammaRootFinder.o: /usr/include/bits/mathdef.h +EvtBtoXsgammaRootFinder.o: /usr/include/bits/mathcalls.h +EvtBtoXsll.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBtoXsll.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBtoXsll.o: /usr/include/gnu/stubs.h +EvtBtoXsll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBtoXsll.o: ../EvtGenBase/EvtRandom.hh ../EvtGenBase/EvtParticle.hh +EvtBtoXsll.o: /usr/include/assert.h ../EvtGenBase/EvtVector4R.hh +EvtBtoXsll.o: /usr/include/c++/3.4.6/iostream +EvtBtoXsll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtBtoXsll.o: /usr/include/c++/3.4.6/iosfwd +EvtBtoXsll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtBtoXsll.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtBtoXsll.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtBtoXsll.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtBtoXsll.o: /usr/include/libio.h /usr/include/_G_config.h +EvtBtoXsll.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtBtoXsll.o: /usr/include/gconv.h +EvtBtoXsll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBtoXsll.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBtoXsll.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBtoXsll.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBtoXsll.o: /usr/include/libintl.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBtoXsll.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtBtoXsll.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtBtoXsll.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtBtoXsll.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtBtoXsll.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtBtoXsll.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtBtoXsll.o: /usr/include/ctype.h /usr/include/endian.h +EvtBtoXsll.o: /usr/include/bits/endian.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBtoXsll.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/exception +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/climits +EvtBtoXsll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBtoXsll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBtoXsll.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBtoXsll.o: /usr/include/c++/3.4.6/new +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/cassert +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/limits +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/algorithm +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBtoXsll.o: /usr/include/c++/3.4.6/streambuf +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBtoXsll.o: /usr/include/c++/3.4.6/locale +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBtoXsll.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtBtoXsll.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtBtoXsll.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtBtoXsll.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtBtoXsll.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtBtoXsll.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtBtoXsll.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtBtoXsll.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBtoXsll.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBtoXsll.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBtoXsll.o: ../EvtGenModels/EvtbTosllAmp.hh ../EvtGenModels/EvtBtoXsll.hh +EvtBtoXsll.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtBtoXsll.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenModels/EvtBtoXsllUtil.hh +EvtBtoXsllUtil.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtBtoXsllUtil.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtBtoXsllUtil.o: /usr/include/gnu/stubs.h +EvtBtoXsllUtil.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtBtoXsllUtil.o: ../EvtGenBase/EvtRandom.hh ../EvtGenBase/EvtParticle.hh +EvtBtoXsllUtil.o: /usr/include/assert.h ../EvtGenBase/EvtVector4R.hh +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/iostream +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/iosfwd +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/cstring +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtBtoXsllUtil.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtBtoXsllUtil.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtBtoXsllUtil.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtBtoXsllUtil.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtBtoXsllUtil.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtBtoXsllUtil.o: /usr/include/bits/stdio_lim.h +EvtBtoXsllUtil.o: /usr/include/bits/sys_errlist.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtBtoXsllUtil.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtBtoXsllUtil.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtBtoXsllUtil.o: /usr/include/libintl.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtBtoXsllUtil.o: /usr/include/pthread.h /usr/include/sched.h +EvtBtoXsllUtil.o: /usr/include/time.h /usr/include/bits/sched.h +EvtBtoXsllUtil.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtBtoXsllUtil.o: /usr/include/bits/pthreadtypes.h +EvtBtoXsllUtil.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtBtoXsllUtil.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtBtoXsllUtil.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtBtoXsllUtil.o: /usr/include/ctype.h /usr/include/endian.h +EvtBtoXsllUtil.o: /usr/include/bits/endian.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtBtoXsllUtil.o: /usr/include/stdint.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/exception_defines.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/exception +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/climits +EvtBtoXsllUtil.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtBtoXsllUtil.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtBtoXsllUtil.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/new +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/debug/debug.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/cassert +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/limits +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/algorithm +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/streambuf +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/locale +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/typeinfo +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/istream +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtBtoXsllUtil.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtBtoXsllUtil.o: /usr/include/bits/mathcalls.h +EvtBtoXsllUtil.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtBtoXsllUtil.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtBtoXsllUtil.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtBtoXsllUtil.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtBtoXsllUtil.o: ../EvtGenBase/EvtPartProp.hh +EvtBtoXsllUtil.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/vector +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtBtoXsllUtil.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtBtoXsllUtil.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtBtoXsllUtil.o: ../EvtGenModels/EvtBtoXsllUtil.hh +EvtBtoXsllUtil.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtBtoXsllUtil.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtDiLog.hh +EvtCBTo3piMPP.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtCBTo3piMPP.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtCBTo3piMPP.o: /usr/include/gnu/stubs.h +EvtCBTo3piMPP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtCBTo3piMPP.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtCBTo3piMPP.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/iosfwd +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/cstring +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtCBTo3piMPP.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtCBTo3piMPP.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtCBTo3piMPP.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtCBTo3piMPP.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtCBTo3piMPP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtCBTo3piMPP.o: /usr/include/bits/stdio_lim.h +EvtCBTo3piMPP.o: /usr/include/bits/sys_errlist.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtCBTo3piMPP.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtCBTo3piMPP.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtCBTo3piMPP.o: /usr/include/libintl.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtCBTo3piMPP.o: /usr/include/pthread.h /usr/include/sched.h +EvtCBTo3piMPP.o: /usr/include/time.h /usr/include/bits/sched.h +EvtCBTo3piMPP.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtCBTo3piMPP.o: /usr/include/bits/pthreadtypes.h +EvtCBTo3piMPP.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtCBTo3piMPP.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtCBTo3piMPP.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtCBTo3piMPP.o: /usr/include/ctype.h /usr/include/endian.h +EvtCBTo3piMPP.o: /usr/include/bits/endian.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtCBTo3piMPP.o: /usr/include/stdint.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/exception_defines.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/exception +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/climits +EvtCBTo3piMPP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtCBTo3piMPP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtCBTo3piMPP.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/new +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/debug/debug.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/cassert +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/limits +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/algorithm +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/streambuf +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/locale +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/typeinfo +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/istream +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtCBTo3piMPP.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtCBTo3piMPP.o: /usr/include/bits/mathcalls.h +EvtCBTo3piMPP.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtCBTo3piMPP.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtCBTo3piMPP.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtCBTo3piMPP.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtCBTo3piMPP.o: ../EvtGenBase/EvtPartProp.hh +EvtCBTo3piMPP.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/vector +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtCBTo3piMPP.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtCBTo3piMPP.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtCBTo3piMPP.o: ../EvtGenModels/EvtCBTo3piMPP.hh +EvtCBTo3piMPP.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtCBTo3piMPP.o: ../EvtGenBase/EvtAmp.hh +EvtCBTo3piP00.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtCBTo3piP00.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtCBTo3piP00.o: /usr/include/gnu/stubs.h +EvtCBTo3piP00.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtCBTo3piP00.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtCBTo3piP00.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/iosfwd +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/cstring +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtCBTo3piP00.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtCBTo3piP00.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtCBTo3piP00.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtCBTo3piP00.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtCBTo3piP00.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtCBTo3piP00.o: /usr/include/bits/stdio_lim.h +EvtCBTo3piP00.o: /usr/include/bits/sys_errlist.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtCBTo3piP00.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtCBTo3piP00.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtCBTo3piP00.o: /usr/include/libintl.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtCBTo3piP00.o: /usr/include/pthread.h /usr/include/sched.h +EvtCBTo3piP00.o: /usr/include/time.h /usr/include/bits/sched.h +EvtCBTo3piP00.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtCBTo3piP00.o: /usr/include/bits/pthreadtypes.h +EvtCBTo3piP00.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtCBTo3piP00.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtCBTo3piP00.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtCBTo3piP00.o: /usr/include/ctype.h /usr/include/endian.h +EvtCBTo3piP00.o: /usr/include/bits/endian.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtCBTo3piP00.o: /usr/include/stdint.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/exception_defines.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/exception +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/climits +EvtCBTo3piP00.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtCBTo3piP00.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtCBTo3piP00.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/new +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/debug/debug.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/cassert +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/limits +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/algorithm +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/streambuf +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/locale +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/typeinfo +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/istream +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtCBTo3piP00.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtCBTo3piP00.o: /usr/include/bits/mathcalls.h +EvtCBTo3piP00.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtCBTo3piP00.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtCBTo3piP00.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtCBTo3piP00.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtCBTo3piP00.o: ../EvtGenBase/EvtPartProp.hh +EvtCBTo3piP00.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/vector +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtCBTo3piP00.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtCBTo3piP00.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtCBTo3piP00.o: ../EvtGenModels/EvtCBTo3piP00.hh +EvtCBTo3piP00.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtCBTo3piP00.o: ../EvtGenBase/EvtAmp.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtParticle.hh +EvtD0mixDalitz.o: /usr/include/assert.h /usr/include/features.h +EvtD0mixDalitz.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h +EvtD0mixDalitz.o: ../EvtGenBase/EvtVector4R.hh +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/iostream +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/iosfwd +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/cstring +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/cstddef +EvtD0mixDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtD0mixDalitz.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtD0mixDalitz.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtD0mixDalitz.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtD0mixDalitz.o: /usr/include/libio.h /usr/include/_G_config.h +EvtD0mixDalitz.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtD0mixDalitz.o: /usr/include/gconv.h +EvtD0mixDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtD0mixDalitz.o: /usr/include/bits/stdio_lim.h +EvtD0mixDalitz.o: /usr/include/bits/sys_errlist.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtD0mixDalitz.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtD0mixDalitz.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtD0mixDalitz.o: /usr/include/libintl.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtD0mixDalitz.o: /usr/include/pthread.h /usr/include/sched.h +EvtD0mixDalitz.o: /usr/include/time.h /usr/include/bits/sched.h +EvtD0mixDalitz.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtD0mixDalitz.o: /usr/include/bits/pthreadtypes.h +EvtD0mixDalitz.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtD0mixDalitz.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtD0mixDalitz.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtD0mixDalitz.o: /usr/include/ctype.h /usr/include/endian.h +EvtD0mixDalitz.o: /usr/include/bits/endian.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtD0mixDalitz.o: /usr/include/stdint.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/exception_defines.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/exception +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/climits +EvtD0mixDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtD0mixDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtD0mixDalitz.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtD0mixDalitz.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/debug/debug.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/cassert +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/limits +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/algorithm +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/streambuf +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/locale +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/typeinfo +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/istream +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtD0mixDalitz.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtD0mixDalitz.o: /usr/include/bits/mathcalls.h +EvtD0mixDalitz.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/vector +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtD0mixDalitz.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtD0mixDalitz.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtD0mixDalitz.o: ../EvtGenBase/EvtRandom.hh ../EvtGenBase/EvtResonance.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtDalitzPlot.hh ../EvtGenBase/EvtCyclic3.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtTwoBodyVertex.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtTwoBodyKine.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtBlattWeisskopf.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtDecayMode.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtDalitzReso.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtDalitzPoint.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtDalitzCoord.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtD0mixDalitz.o: ../EvtGenBase/EvtAmp.hh ../EvtGenModels/EvtD0mixDalitz.hh +EvtDDalitz.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtDDalitz.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtDDalitz.o: /usr/include/gnu/stubs.h +EvtDDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtDDalitz.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtDDalitz.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtDDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtDDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtDDalitz.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtDDalitz.o: /usr/include/c++/3.4.6/iosfwd +EvtDDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtDDalitz.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtDDalitz.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtDDalitz.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtDDalitz.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtDDalitz.o: /usr/include/libio.h /usr/include/_G_config.h +EvtDDalitz.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtDDalitz.o: /usr/include/gconv.h +EvtDDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtDDalitz.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtDDalitz.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtDDalitz.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtDDalitz.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtDDalitz.o: /usr/include/libintl.h +EvtDDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtDDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtDDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtDDalitz.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtDDalitz.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtDDalitz.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtDDalitz.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtDDalitz.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtDDalitz.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtDDalitz.o: /usr/include/ctype.h /usr/include/endian.h +EvtDDalitz.o: /usr/include/bits/endian.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtDDalitz.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtDDalitz.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtDDalitz.o: /usr/include/c++/3.4.6/exception_defines.h +EvtDDalitz.o: /usr/include/c++/3.4.6/exception +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtDDalitz.o: /usr/include/c++/3.4.6/climits +EvtDDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtDDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtDDalitz.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtDDalitz.o: /usr/include/c++/3.4.6/new +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtDDalitz.o: /usr/include/c++/3.4.6/debug/debug.h +EvtDDalitz.o: /usr/include/c++/3.4.6/cassert +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtDDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtDDalitz.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtDDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtDDalitz.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtDDalitz.o: /usr/include/c++/3.4.6/limits +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtDDalitz.o: /usr/include/c++/3.4.6/algorithm +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtDDalitz.o: /usr/include/c++/3.4.6/streambuf +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtDDalitz.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtDDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtDDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtDDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtDDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtDDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtDDalitz.o: /usr/include/c++/3.4.6/locale +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtDDalitz.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtDDalitz.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtDDalitz.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtDDalitz.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtDDalitz.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtDDalitz.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtDDalitz.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtDDalitz.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtDDalitz.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtDDalitz.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtDDalitz.o: ../EvtGenBase/EvtResonance.hh ../EvtGenBase/EvtResonance2.hh +EvtDDalitz.o: ../EvtGenModels/EvtDDalitz.hh ../EvtGenBase/EvtDecayAmp.hh +EvtDDalitz.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtDDalitz.o: ../EvtGenBase/EvtFlatte.hh ../EvtGenBase/EvtDecayTable.hh +EvtDDalitz.o: ../EvtGenBase/EvtParticleDecayList.hh +EvtDDalitz.o: ../EvtGenBase/EvtParticleDecay.hh +EvtDMix.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtDMix.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtDMix.o: /usr/include/gnu/stubs.h +EvtDMix.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtDMix.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtDMix.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtDMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtDMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtDMix.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtDMix.o: /usr/include/c++/3.4.6/iosfwd +EvtDMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtDMix.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtDMix.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtDMix.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtDMix.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtDMix.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h +EvtDMix.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtDMix.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtDMix.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtDMix.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtDMix.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtDMix.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtDMix.o: /usr/include/libintl.h +EvtDMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtDMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtDMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtDMix.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtDMix.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtDMix.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtDMix.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtDMix.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtDMix.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtDMix.o: /usr/include/ctype.h /usr/include/endian.h +EvtDMix.o: /usr/include/bits/endian.h /usr/include/c++/3.4.6/bits/stringfwd.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtDMix.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtDMix.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtDMix.o: /usr/include/c++/3.4.6/exception_defines.h +EvtDMix.o: /usr/include/c++/3.4.6/exception +EvtDMix.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtDMix.o: /usr/include/c++/3.4.6/climits +EvtDMix.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtDMix.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtDMix.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtDMix.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtDMix.o: /usr/include/c++/3.4.6/debug/debug.h +EvtDMix.o: /usr/include/c++/3.4.6/cassert +EvtDMix.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtDMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtDMix.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtDMix.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtDMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtDMix.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtDMix.o: /usr/include/c++/3.4.6/limits +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtDMix.o: /usr/include/c++/3.4.6/algorithm +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtDMix.o: /usr/include/c++/3.4.6/streambuf +EvtDMix.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtDMix.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtDMix.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtDMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtDMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtDMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtDMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtDMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtDMix.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtDMix.o: /usr/include/c++/3.4.6/locale +EvtDMix.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtDMix.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtDMix.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtDMix.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtDMix.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtDMix.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtDMix.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtDMix.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtDMix.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtDMix.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtDMix.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtDMix.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtDMix.o: ../EvtGenModels/EvtDMix.hh ../EvtGenBase/EvtDecayIncoherent.hh +EvtDMix.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtRandom.hh +EvtEtaDalitz.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtEtaDalitz.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtEtaDalitz.o: /usr/include/gnu/stubs.h +EvtEtaDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtEtaDalitz.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtEtaDalitz.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtEtaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtEtaDalitz.o: /usr/include/c++/3.4.6/iosfwd +EvtEtaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtEtaDalitz.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtEtaDalitz.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtEtaDalitz.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtEtaDalitz.o: /usr/include/libio.h /usr/include/_G_config.h +EvtEtaDalitz.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtEtaDalitz.o: /usr/include/gconv.h +EvtEtaDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtEtaDalitz.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtEtaDalitz.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtEtaDalitz.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtEtaDalitz.o: /usr/include/libintl.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtEtaDalitz.o: /usr/include/pthread.h /usr/include/sched.h +EvtEtaDalitz.o: /usr/include/time.h /usr/include/bits/sched.h +EvtEtaDalitz.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtEtaDalitz.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtEtaDalitz.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtEtaDalitz.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtEtaDalitz.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtEtaDalitz.o: /usr/include/stdint.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/exception_defines.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/exception +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/climits +EvtEtaDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtEtaDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtEtaDalitz.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtEtaDalitz.o: /usr/include/c++/3.4.6/new +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/debug/debug.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/cassert +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/limits +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/algorithm +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtEtaDalitz.o: /usr/include/c++/3.4.6/streambuf +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtEtaDalitz.o: /usr/include/c++/3.4.6/locale +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtEtaDalitz.o: /usr/include/c++/3.4.6/typeinfo +EvtEtaDalitz.o: /usr/include/c++/3.4.6/istream +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtEtaDalitz.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtEtaDalitz.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtEtaDalitz.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtEtaDalitz.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtEtaDalitz.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtEtaDalitz.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtEtaDalitz.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtEtaDalitz.o: /usr/include/c++/3.4.6/vector +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtEtaDalitz.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtEtaDalitz.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtEtaDalitz.o: ../EvtGenModels/EvtEtaDalitz.hh ../EvtGenBase/EvtDecayAmp.hh +EvtEtaDalitz.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtFlatQ2.o: ../EvtGenBase/EvtPatches.hh ../EvtGenModels/EvtFlatQ2.hh +EvtFlatQ2.o: ../EvtGenBase/EvtDecayProb.hh ../EvtGenBase/EvtDecayBase.hh +EvtFlatQ2.o: ../EvtGenBase/EvtId.hh /usr/include/c++/3.4.6/iostream +EvtFlatQ2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtFlatQ2.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtFlatQ2.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtFlatQ2.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtFlatQ2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtFlatQ2.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtFlatQ2.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtFlatQ2.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtFlatQ2.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtFlatQ2.o: /usr/include/libio.h /usr/include/_G_config.h +EvtFlatQ2.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtFlatQ2.o: /usr/include/gconv.h +EvtFlatQ2.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtFlatQ2.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtFlatQ2.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtFlatQ2.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtFlatQ2.o: /usr/include/libintl.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtFlatQ2.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtFlatQ2.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtFlatQ2.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtFlatQ2.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtFlatQ2.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtFlatQ2.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtFlatQ2.o: /usr/include/ctype.h /usr/include/endian.h +EvtFlatQ2.o: /usr/include/bits/endian.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtFlatQ2.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/exception_defines.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/exception +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/climits +EvtFlatQ2.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtFlatQ2.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtFlatQ2.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtFlatQ2.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/debug/debug.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/limits +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/algorithm +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtFlatQ2.o: /usr/include/c++/3.4.6/streambuf +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtFlatQ2.o: /usr/include/c++/3.4.6/locale +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtFlatQ2.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtFlatQ2.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtFlatQ2.o: /usr/include/c++/3.4.6/vector +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtFlatQ2.o: /usr/include/c++/3.4.6/fstream +EvtFlatQ2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/basic_file.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/fstream.tcc +EvtFlatQ2.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtParticle.hh +EvtFlatQ2.o: ../EvtGenBase/EvtVector4R.hh /usr/include/math.h +EvtFlatQ2.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtFlatQ2.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtFlatQ2.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtFlatQ2.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtFlatQ2.o: ../EvtGenBase/EvtAbsLineShape.hh ../EvtGenBase/EvtStringHash.hh +EvtFlatQ2.o: /usr/include/c++/3.4.6/map +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtFlatQ2.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtFlatQ2.o: ../EvtGenBase/EvtDiracSpinor.hh ../EvtGenBase/EvtVector3R.hh +EvtFlatQ2.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtFlatQ2.o: ../EvtGenBase/EvtTensor4C.hh +EvtGoityRoberts.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtGoityRoberts.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtGoityRoberts.o: /usr/include/gnu/stubs.h +EvtGoityRoberts.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtGoityRoberts.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtGoityRoberts.o: ../EvtGenBase/EvtVector4R.hh +EvtGoityRoberts.o: /usr/include/c++/3.4.6/iostream +EvtGoityRoberts.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtGoityRoberts.o: /usr/include/c++/3.4.6/iosfwd +EvtGoityRoberts.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/cstring +EvtGoityRoberts.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtGoityRoberts.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtGoityRoberts.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtGoityRoberts.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtGoityRoberts.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtGoityRoberts.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtGoityRoberts.o: /usr/include/bits/stdio_lim.h +EvtGoityRoberts.o: /usr/include/bits/sys_errlist.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtGoityRoberts.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtGoityRoberts.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtGoityRoberts.o: /usr/include/libintl.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtGoityRoberts.o: /usr/include/pthread.h /usr/include/sched.h +EvtGoityRoberts.o: /usr/include/time.h /usr/include/bits/sched.h +EvtGoityRoberts.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtGoityRoberts.o: /usr/include/bits/pthreadtypes.h +EvtGoityRoberts.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtGoityRoberts.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtGoityRoberts.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtGoityRoberts.o: /usr/include/ctype.h /usr/include/endian.h +EvtGoityRoberts.o: /usr/include/bits/endian.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtGoityRoberts.o: /usr/include/stdint.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/exception_defines.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/exception +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/climits +EvtGoityRoberts.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtGoityRoberts.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtGoityRoberts.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtGoityRoberts.o: /usr/include/c++/3.4.6/new +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/debug/debug.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/cassert +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/string +EvtGoityRoberts.o: /usr/include/c++/3.4.6/memory +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/limits +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/algorithm +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtGoityRoberts.o: /usr/include/c++/3.4.6/streambuf +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtGoityRoberts.o: /usr/include/c++/3.4.6/locale +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtGoityRoberts.o: /usr/include/c++/3.4.6/typeinfo +EvtGoityRoberts.o: /usr/include/c++/3.4.6/istream +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtGoityRoberts.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtGoityRoberts.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtGoityRoberts.o: ../EvtGenBase/EvtSpinDensity.hh +EvtGoityRoberts.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtGoityRoberts.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtGoityRoberts.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtGoityRoberts.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtGoityRoberts.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtGoityRoberts.o: /usr/include/c++/3.4.6/vector +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtGoityRoberts.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtGoityRoberts.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtGoityRoberts.o: ../EvtGenModels/EvtGoityRoberts.hh +EvtGoityRoberts.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtGoityRoberts.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtTensor4C.hh +EvtGoityRoberts.o: ../EvtGenBase/EvtDiracSpinor.hh +EvtGoityRoberts.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtVector4C.hh +EvtGoityRoberts.o: ../EvtGenBase/EvtVector3C.hh +EvtHelAmp.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtHelAmp.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtHelAmp.o: /usr/include/gnu/stubs.h +EvtHelAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtHelAmp.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtHelAmp.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtHelAmp.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtHelAmp.o: /usr/include/c++/3.4.6/iosfwd +EvtHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtHelAmp.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtHelAmp.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtHelAmp.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtHelAmp.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtHelAmp.o: /usr/include/libio.h /usr/include/_G_config.h +EvtHelAmp.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtHelAmp.o: /usr/include/gconv.h +EvtHelAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtHelAmp.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtHelAmp.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtHelAmp.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtHelAmp.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtHelAmp.o: /usr/include/libintl.h +EvtHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtHelAmp.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtHelAmp.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtHelAmp.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtHelAmp.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtHelAmp.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtHelAmp.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtHelAmp.o: /usr/include/ctype.h /usr/include/endian.h +EvtHelAmp.o: /usr/include/bits/endian.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtHelAmp.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtHelAmp.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtHelAmp.o: /usr/include/c++/3.4.6/exception_defines.h +EvtHelAmp.o: /usr/include/c++/3.4.6/exception +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtHelAmp.o: /usr/include/c++/3.4.6/climits +EvtHelAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtHelAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtHelAmp.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtHelAmp.o: /usr/include/c++/3.4.6/new +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtHelAmp.o: /usr/include/c++/3.4.6/debug/debug.h +EvtHelAmp.o: /usr/include/c++/3.4.6/cassert +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtHelAmp.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtHelAmp.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtHelAmp.o: /usr/include/c++/3.4.6/limits +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtHelAmp.o: /usr/include/c++/3.4.6/algorithm +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtHelAmp.o: /usr/include/c++/3.4.6/streambuf +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtHelAmp.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtHelAmp.o: /usr/include/c++/3.4.6/locale +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtHelAmp.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtHelAmp.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtHelAmp.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtHelAmp.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtHelAmp.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtHelAmp.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtHelAmp.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtHelAmp.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtHelAmp.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtHelAmp.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtHelAmp.o: ../EvtGenModels/EvtHelAmp.hh ../EvtGenBase/EvtDecayAmp.hh +EvtHelAmp.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtHelAmp.o: ../EvtGenBase/EvtEvalHelAmp.hh +EvtHQET2.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtHQET2.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtHQET2.o: /usr/include/gnu/stubs.h +EvtHQET2.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtHQET2.o: /usr/include/assert.h ../EvtGenBase/EvtParticle.hh +EvtHQET2.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtHQET2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtHQET2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtHQET2.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtHQET2.o: /usr/include/c++/3.4.6/iosfwd +EvtHQET2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtHQET2.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtHQET2.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtHQET2.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtHQET2.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtHQET2.o: /usr/include/libio.h /usr/include/_G_config.h +EvtHQET2.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtHQET2.o: /usr/include/gconv.h +EvtHQET2.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtHQET2.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtHQET2.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtHQET2.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtHQET2.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtHQET2.o: /usr/include/libintl.h +EvtHQET2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtHQET2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtHQET2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtHQET2.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtHQET2.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtHQET2.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtHQET2.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtHQET2.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtHQET2.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtHQET2.o: /usr/include/ctype.h /usr/include/endian.h +EvtHQET2.o: /usr/include/bits/endian.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtHQET2.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtHQET2.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtHQET2.o: /usr/include/c++/3.4.6/exception_defines.h +EvtHQET2.o: /usr/include/c++/3.4.6/exception +EvtHQET2.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtHQET2.o: /usr/include/c++/3.4.6/climits +EvtHQET2.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtHQET2.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtHQET2.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtHQET2.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtHQET2.o: /usr/include/c++/3.4.6/debug/debug.h +EvtHQET2.o: /usr/include/c++/3.4.6/cassert +EvtHQET2.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtHQET2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtHQET2.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtHQET2.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtHQET2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtHQET2.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtHQET2.o: /usr/include/c++/3.4.6/limits +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtHQET2.o: /usr/include/c++/3.4.6/algorithm +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtHQET2.o: /usr/include/c++/3.4.6/streambuf +EvtHQET2.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtHQET2.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtHQET2.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtHQET2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtHQET2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtHQET2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtHQET2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtHQET2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtHQET2.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtHQET2.o: /usr/include/c++/3.4.6/locale +EvtHQET2.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtHQET2.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtHQET2.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtHQET2.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtHQET2.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtHQET2.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtHQET2.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtHQET2.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtHQET2.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtHQET2.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtHQET2.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtHQET2.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtHQET2.o: ../EvtGenModels/EvtHQET2.hh ../EvtGenBase/EvtDecayAmp.hh +EvtHQET2.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtHQET2.o: ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtHQET2.o: ../EvtGenBase/EvtSemiLeptonicAmp.hh ../EvtGenModels/EvtHQET2FF.hh +EvtHQET2.o: ../EvtGenBase/EvtSemiLeptonicVectorAmp.hh +EvtHQET2.o: ../EvtGenBase/EvtSemiLeptonicScalarAmp.hh +EvtHQET2FF.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtReport.hh +EvtHQET2FF.o: /usr/include/c++/3.4.6/iostream +EvtHQET2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtHQET2FF.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtHQET2FF.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtHQET2FF.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtHQET2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtHQET2FF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtHQET2FF.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtHQET2FF.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtHQET2FF.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtHQET2FF.o: /usr/include/libio.h /usr/include/_G_config.h +EvtHQET2FF.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtHQET2FF.o: /usr/include/gconv.h +EvtHQET2FF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtHQET2FF.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtHQET2FF.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtHQET2FF.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtHQET2FF.o: /usr/include/libintl.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtHQET2FF.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtHQET2FF.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtHQET2FF.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtHQET2FF.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtHQET2FF.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtHQET2FF.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtHQET2FF.o: /usr/include/ctype.h /usr/include/endian.h +EvtHQET2FF.o: /usr/include/bits/endian.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtHQET2FF.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/exception_defines.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/exception +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/climits +EvtHQET2FF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtHQET2FF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtHQET2FF.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtHQET2FF.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/debug/debug.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/limits +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/algorithm +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtHQET2FF.o: /usr/include/c++/3.4.6/streambuf +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtHQET2FF.o: /usr/include/c++/3.4.6/locale +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtHQET2FF.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtHQET2FF.o: ../EvtGenModels/EvtHQET2FF.hh +EvtHQET2FF.o: ../EvtGenBase/EvtSemiLeptonicFF.hh ../EvtGenBase/EvtId.hh +EvtHQET2FF.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtHQET2FF.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtHQET2FF.o: /usr/include/c++/3.4.6/vector +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtHQET2FF.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtHQET2FF.o: /usr/include/c++/3.4.6/bits/stl_multimap.h /usr/include/math.h +EvtHQET2FF.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtHQET2FF.o: /usr/include/bits/mathcalls.h +EvtHQET.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtHQET.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtHQET.o: /usr/include/gnu/stubs.h +EvtHQET.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtHQET.o: /usr/include/assert.h ../EvtGenBase/EvtParticle.hh +EvtHQET.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtHQET.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtHQET.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtHQET.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtHQET.o: /usr/include/c++/3.4.6/iosfwd +EvtHQET.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtHQET.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtHQET.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtHQET.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtHQET.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtHQET.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h +EvtHQET.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtHQET.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtHQET.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtHQET.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtHQET.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtHQET.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtHQET.o: /usr/include/libintl.h +EvtHQET.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtHQET.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtHQET.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtHQET.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtHQET.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtHQET.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtHQET.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtHQET.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtHQET.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtHQET.o: /usr/include/ctype.h /usr/include/endian.h +EvtHQET.o: /usr/include/bits/endian.h /usr/include/c++/3.4.6/bits/stringfwd.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtHQET.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtHQET.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtHQET.o: /usr/include/c++/3.4.6/exception_defines.h +EvtHQET.o: /usr/include/c++/3.4.6/exception +EvtHQET.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtHQET.o: /usr/include/c++/3.4.6/climits +EvtHQET.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtHQET.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtHQET.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtHQET.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtHQET.o: /usr/include/c++/3.4.6/debug/debug.h +EvtHQET.o: /usr/include/c++/3.4.6/cassert +EvtHQET.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtHQET.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtHQET.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtHQET.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtHQET.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtHQET.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtHQET.o: /usr/include/c++/3.4.6/limits +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtHQET.o: /usr/include/c++/3.4.6/algorithm +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtHQET.o: /usr/include/c++/3.4.6/streambuf +EvtHQET.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtHQET.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtHQET.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtHQET.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtHQET.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtHQET.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtHQET.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtHQET.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtHQET.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtHQET.o: /usr/include/c++/3.4.6/locale +EvtHQET.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtHQET.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtHQET.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtHQET.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtHQET.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtHQET.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtHQET.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtHQET.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtHQET.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtHQET.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtHQET.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtHQET.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtHQET.o: ../EvtGenModels/EvtHQET.hh ../EvtGenBase/EvtDecayAmp.hh +EvtHQET.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtHQET.o: ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtHQET.o: ../EvtGenBase/EvtSemiLeptonicAmp.hh ../EvtGenModels/EvtHQETFF.hh +EvtHQET.o: ../EvtGenBase/EvtSemiLeptonicVectorAmp.hh +EvtHQET.o: ../EvtGenBase/EvtSemiLeptonicScalarAmp.hh +EvtHQETFF.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtReport.hh +EvtHQETFF.o: /usr/include/c++/3.4.6/iostream +EvtHQETFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtHQETFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtHQETFF.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtHQETFF.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtHQETFF.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtHQETFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtHQETFF.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtHQETFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtHQETFF.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtHQETFF.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtHQETFF.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtHQETFF.o: /usr/include/libio.h /usr/include/_G_config.h +EvtHQETFF.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtHQETFF.o: /usr/include/gconv.h +EvtHQETFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtHQETFF.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtHQETFF.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtHQETFF.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtHQETFF.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtHQETFF.o: /usr/include/libintl.h +EvtHQETFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtHQETFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtHQETFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtHQETFF.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtHQETFF.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtHQETFF.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtHQETFF.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtHQETFF.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtHQETFF.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtHQETFF.o: /usr/include/ctype.h /usr/include/endian.h +EvtHQETFF.o: /usr/include/bits/endian.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtHQETFF.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtHQETFF.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtHQETFF.o: /usr/include/c++/3.4.6/exception_defines.h +EvtHQETFF.o: /usr/include/c++/3.4.6/exception +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtHQETFF.o: /usr/include/c++/3.4.6/climits +EvtHQETFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtHQETFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtHQETFF.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtHQETFF.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtHQETFF.o: /usr/include/c++/3.4.6/debug/debug.h +EvtHQETFF.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtHQETFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtHQETFF.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtHQETFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtHQETFF.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtHQETFF.o: /usr/include/c++/3.4.6/limits +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtHQETFF.o: /usr/include/c++/3.4.6/algorithm +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtHQETFF.o: /usr/include/c++/3.4.6/streambuf +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtHQETFF.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtHQETFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtHQETFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtHQETFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtHQETFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtHQETFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtHQETFF.o: /usr/include/c++/3.4.6/locale +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtHQETFF.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtHQETFF.o: ../EvtGenModels/EvtHQETFF.hh ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtHQETFF.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtPDL.hh +EvtHQETFF.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtSpinType.hh +EvtHQETFF.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtHQETFF.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtHQETFF.o: /usr/include/c++/3.4.6/bits/stl_multimap.h /usr/include/math.h +EvtHQETFF.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtHQETFF.o: /usr/include/bits/mathcalls.h +EvtHypNonLepton.o: ../EvtGenModels/EvtHypNonLepton.hh +EvtHypNonLepton.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtHypNonLepton.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtId.hh +EvtHypNonLepton.o: /usr/include/c++/3.4.6/iostream +EvtHypNonLepton.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtHypNonLepton.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtHypNonLepton.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtHypNonLepton.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtHypNonLepton.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/cstring +EvtHypNonLepton.o: /usr/include/c++/3.4.6/cstddef +EvtHypNonLepton.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtHypNonLepton.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtHypNonLepton.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtHypNonLepton.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtHypNonLepton.o: /usr/include/libio.h /usr/include/_G_config.h +EvtHypNonLepton.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtHypNonLepton.o: /usr/include/gconv.h +EvtHypNonLepton.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtHypNonLepton.o: /usr/include/bits/stdio_lim.h +EvtHypNonLepton.o: /usr/include/bits/sys_errlist.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtHypNonLepton.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtHypNonLepton.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtHypNonLepton.o: /usr/include/libintl.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtHypNonLepton.o: /usr/include/pthread.h /usr/include/sched.h +EvtHypNonLepton.o: /usr/include/time.h /usr/include/bits/sched.h +EvtHypNonLepton.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtHypNonLepton.o: /usr/include/bits/pthreadtypes.h +EvtHypNonLepton.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtHypNonLepton.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtHypNonLepton.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtHypNonLepton.o: /usr/include/ctype.h /usr/include/endian.h +EvtHypNonLepton.o: /usr/include/bits/endian.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtHypNonLepton.o: /usr/include/stdint.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/exception_defines.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/exception +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/climits +EvtHypNonLepton.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtHypNonLepton.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtHypNonLepton.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtHypNonLepton.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/debug/debug.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/string +EvtHypNonLepton.o: /usr/include/c++/3.4.6/memory +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/limits +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/algorithm +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtHypNonLepton.o: /usr/include/c++/3.4.6/streambuf +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtHypNonLepton.o: /usr/include/c++/3.4.6/locale +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtHypNonLepton.o: /usr/include/c++/3.4.6/typeinfo +EvtHypNonLepton.o: /usr/include/c++/3.4.6/istream +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtHypNonLepton.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtHypNonLepton.o: /usr/include/c++/3.4.6/vector +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtHypNonLepton.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtComplex.hh +EvtHypNonLepton.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtHypNonLepton.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtHypNonLepton.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtParticle.hh +EvtHypNonLepton.o: ../EvtGenBase/EvtVector4R.hh +EvtHypNonLepton.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtPDL.hh +EvtHypNonLepton.o: ../EvtGenBase/EvtPartProp.hh +EvtHypNonLepton.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtHypNonLepton.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtHypNonLepton.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtHypNonLepton.o: ../EvtGenBase/EvtDiracSpinor.hh +EvtHypNonLepton.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtTensor4C.hh +EvtHypNonLepton.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtHypNonLepton.o: ../EvtGenBase/EvtGammaMatrix.hh +EvtISGW2.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtISGW2.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtISGW2.o: /usr/include/gnu/stubs.h +EvtISGW2.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtISGW2.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtISGW2.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtISGW2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtISGW2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtISGW2.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtISGW2.o: /usr/include/c++/3.4.6/iosfwd +EvtISGW2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtISGW2.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtISGW2.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtISGW2.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtISGW2.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtISGW2.o: /usr/include/libio.h /usr/include/_G_config.h +EvtISGW2.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtISGW2.o: /usr/include/gconv.h +EvtISGW2.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtISGW2.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtISGW2.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtISGW2.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtISGW2.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtISGW2.o: /usr/include/libintl.h +EvtISGW2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtISGW2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtISGW2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtISGW2.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtISGW2.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtISGW2.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtISGW2.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtISGW2.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtISGW2.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtISGW2.o: /usr/include/ctype.h /usr/include/endian.h +EvtISGW2.o: /usr/include/bits/endian.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtISGW2.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtISGW2.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtISGW2.o: /usr/include/c++/3.4.6/exception_defines.h +EvtISGW2.o: /usr/include/c++/3.4.6/exception +EvtISGW2.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtISGW2.o: /usr/include/c++/3.4.6/climits +EvtISGW2.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtISGW2.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtISGW2.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtISGW2.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtISGW2.o: /usr/include/c++/3.4.6/debug/debug.h +EvtISGW2.o: /usr/include/c++/3.4.6/cassert +EvtISGW2.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtISGW2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtISGW2.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtISGW2.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtISGW2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtISGW2.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtISGW2.o: /usr/include/c++/3.4.6/limits +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtISGW2.o: /usr/include/c++/3.4.6/algorithm +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtISGW2.o: /usr/include/c++/3.4.6/streambuf +EvtISGW2.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtISGW2.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtISGW2.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtISGW2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtISGW2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtISGW2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtISGW2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtISGW2.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtISGW2.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtISGW2.o: /usr/include/c++/3.4.6/locale +EvtISGW2.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtISGW2.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtISGW2.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtISGW2.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtISGW2.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtISGW2.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtISGW2.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtISGW2.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtISGW2.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtISGW2.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtISGW2.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtISGW2.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtISGW2.o: ../EvtGenModels/EvtISGW2.hh ../EvtGenBase/EvtDecayAmp.hh +EvtISGW2.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtISGW2.o: ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtISGW2.o: ../EvtGenBase/EvtSemiLeptonicAmp.hh ../EvtGenBase/EvtIdSet.hh +EvtISGW2.o: ../EvtGenModels/EvtISGW2FF.hh +EvtISGW2.o: ../EvtGenBase/EvtSemiLeptonicScalarAmp.hh +EvtISGW2.o: ../EvtGenBase/EvtSemiLeptonicVectorAmp.hh +EvtISGW2.o: ../EvtGenBase/EvtSemiLeptonicTensorAmp.hh +EvtISGW2FF.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtReport.hh +EvtISGW2FF.o: /usr/include/c++/3.4.6/iostream +EvtISGW2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtISGW2FF.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtISGW2FF.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtISGW2FF.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtISGW2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtISGW2FF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtISGW2FF.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtISGW2FF.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtISGW2FF.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtISGW2FF.o: /usr/include/libio.h /usr/include/_G_config.h +EvtISGW2FF.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtISGW2FF.o: /usr/include/gconv.h +EvtISGW2FF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtISGW2FF.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtISGW2FF.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtISGW2FF.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtISGW2FF.o: /usr/include/libintl.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtISGW2FF.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtISGW2FF.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtISGW2FF.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtISGW2FF.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtISGW2FF.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtISGW2FF.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtISGW2FF.o: /usr/include/ctype.h /usr/include/endian.h +EvtISGW2FF.o: /usr/include/bits/endian.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtISGW2FF.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/exception_defines.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/exception +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/climits +EvtISGW2FF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtISGW2FF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtISGW2FF.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtISGW2FF.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/debug/debug.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/limits +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/algorithm +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtISGW2FF.o: /usr/include/c++/3.4.6/streambuf +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtISGW2FF.o: /usr/include/c++/3.4.6/locale +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtISGW2FF.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtISGW2FF.o: ../EvtGenModels/EvtISGW2FF.hh +EvtISGW2FF.o: ../EvtGenBase/EvtSemiLeptonicFF.hh ../EvtGenBase/EvtId.hh +EvtISGW2FF.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtISGW2FF.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtISGW2FF.o: /usr/include/c++/3.4.6/vector +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtISGW2FF.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtISGW2FF.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtISGW2FF.o: ../EvtGenBase/EvtIdSet.hh ../EvtGenBase/EvtConst.hh +EvtISGW2FF.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtISGW2FF.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtISGW.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtISGW.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtISGW.o: /usr/include/gnu/stubs.h +EvtISGW.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtISGW.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtISGW.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtISGW.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtISGW.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtISGW.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtISGW.o: /usr/include/c++/3.4.6/iosfwd +EvtISGW.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtISGW.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtISGW.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtISGW.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtISGW.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtISGW.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h +EvtISGW.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtISGW.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtISGW.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtISGW.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtISGW.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtISGW.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtISGW.o: /usr/include/libintl.h +EvtISGW.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtISGW.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtISGW.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtISGW.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtISGW.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtISGW.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtISGW.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtISGW.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtISGW.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtISGW.o: /usr/include/ctype.h /usr/include/endian.h +EvtISGW.o: /usr/include/bits/endian.h /usr/include/c++/3.4.6/bits/stringfwd.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtISGW.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtISGW.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtISGW.o: /usr/include/c++/3.4.6/exception_defines.h +EvtISGW.o: /usr/include/c++/3.4.6/exception +EvtISGW.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtISGW.o: /usr/include/c++/3.4.6/climits +EvtISGW.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtISGW.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtISGW.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtISGW.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtISGW.o: /usr/include/c++/3.4.6/debug/debug.h +EvtISGW.o: /usr/include/c++/3.4.6/cassert +EvtISGW.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtISGW.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtISGW.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtISGW.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtISGW.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtISGW.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtISGW.o: /usr/include/c++/3.4.6/limits +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtISGW.o: /usr/include/c++/3.4.6/algorithm +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtISGW.o: /usr/include/c++/3.4.6/streambuf +EvtISGW.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtISGW.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtISGW.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtISGW.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtISGW.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtISGW.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtISGW.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtISGW.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtISGW.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtISGW.o: /usr/include/c++/3.4.6/locale +EvtISGW.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtISGW.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtISGW.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtISGW.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtISGW.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtISGW.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtISGW.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtISGW.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtISGW.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtISGW.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtISGW.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtISGW.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtISGW.o: ../EvtGenModels/EvtISGW.hh ../EvtGenBase/EvtDecayAmp.hh +EvtISGW.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtISGW.o: ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtISGW.o: ../EvtGenBase/EvtSemiLeptonicAmp.hh ../EvtGenModels/EvtISGWFF.hh +EvtISGW.o: ../EvtGenBase/EvtSemiLeptonicScalarAmp.hh +EvtISGW.o: ../EvtGenBase/EvtSemiLeptonicVectorAmp.hh +EvtISGW.o: ../EvtGenBase/EvtSemiLeptonicTensorAmp.hh +EvtISGWFF.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtReport.hh +EvtISGWFF.o: /usr/include/c++/3.4.6/iostream +EvtISGWFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtISGWFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtISGWFF.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtISGWFF.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtISGWFF.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtISGWFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtISGWFF.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtISGWFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtISGWFF.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtISGWFF.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtISGWFF.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtISGWFF.o: /usr/include/libio.h /usr/include/_G_config.h +EvtISGWFF.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtISGWFF.o: /usr/include/gconv.h +EvtISGWFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtISGWFF.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtISGWFF.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtISGWFF.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtISGWFF.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtISGWFF.o: /usr/include/libintl.h +EvtISGWFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtISGWFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtISGWFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtISGWFF.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtISGWFF.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtISGWFF.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtISGWFF.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtISGWFF.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtISGWFF.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtISGWFF.o: /usr/include/ctype.h /usr/include/endian.h +EvtISGWFF.o: /usr/include/bits/endian.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtISGWFF.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtISGWFF.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtISGWFF.o: /usr/include/c++/3.4.6/exception_defines.h +EvtISGWFF.o: /usr/include/c++/3.4.6/exception +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtISGWFF.o: /usr/include/c++/3.4.6/climits +EvtISGWFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtISGWFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtISGWFF.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtISGWFF.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtISGWFF.o: /usr/include/c++/3.4.6/debug/debug.h +EvtISGWFF.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtISGWFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtISGWFF.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtISGWFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtISGWFF.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtISGWFF.o: /usr/include/c++/3.4.6/limits +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtISGWFF.o: /usr/include/c++/3.4.6/algorithm +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtISGWFF.o: /usr/include/c++/3.4.6/streambuf +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtISGWFF.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtISGWFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtISGWFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtISGWFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtISGWFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtISGWFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtISGWFF.o: /usr/include/c++/3.4.6/locale +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtISGWFF.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtISGWFF.o: ../EvtGenModels/EvtISGWFF.hh ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtISGWFF.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtPDL.hh +EvtISGWFF.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtSpinType.hh +EvtISGWFF.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtISGWFF.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtISGWFF.o: /usr/include/c++/3.4.6/bits/stl_multimap.h /usr/include/math.h +EvtISGWFF.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtISGWFF.o: /usr/include/bits/mathcalls.h +EvtItgAbsFunction.o: ../EvtGenBase/EvtPatches.hh +EvtItgAbsFunction.o: ../EvtGenModels/EvtItgAbsFunction.hh +EvtItgAbsFunction.o: /usr/include/assert.h /usr/include/features.h +EvtItgAbsFunction.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h +EvtItgAbsFunction.o: ../EvtGenBase/EvtReport.hh +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/iostream +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/ostream +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/cstring +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/cstddef +EvtItgAbsFunction.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtItgAbsFunction.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtItgAbsFunction.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtItgAbsFunction.o: /usr/include/bits/wordsize.h +EvtItgAbsFunction.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtItgAbsFunction.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtItgAbsFunction.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtItgAbsFunction.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtItgAbsFunction.o: /usr/include/bits/stdio_lim.h +EvtItgAbsFunction.o: /usr/include/bits/sys_errlist.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtItgAbsFunction.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtItgAbsFunction.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtItgAbsFunction.o: /usr/include/libintl.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtItgAbsFunction.o: /usr/include/pthread.h /usr/include/sched.h +EvtItgAbsFunction.o: /usr/include/time.h /usr/include/bits/sched.h +EvtItgAbsFunction.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtItgAbsFunction.o: /usr/include/bits/pthreadtypes.h +EvtItgAbsFunction.o: /usr/include/bits/initspin.h +EvtItgAbsFunction.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtItgAbsFunction.o: /usr/include/bits/posix_opt.h +EvtItgAbsFunction.o: /usr/include/bits/confname.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtItgAbsFunction.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/cwchar +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/exception_defines.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/exception +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/climits +EvtItgAbsFunction.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtItgAbsFunction.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtItgAbsFunction.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtItgAbsFunction.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/debug/debug.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/cassert +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/string +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/memory +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/limits +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/algorithm +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/streambuf +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/locale +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/typeinfo +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/istream +EvtItgAbsFunction.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtItgAbsIntegrator.o: ../EvtGenBase/EvtPatches.hh +EvtItgAbsIntegrator.o: ../EvtGenModels/EvtItgAbsIntegrator.hh +EvtItgAbsIntegrator.o: ../EvtGenModels/EvtItgAbsFunction.hh +EvtItgAbsIntegrator.o: /usr/include/math.h /usr/include/features.h +EvtItgAbsIntegrator.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h +EvtItgAbsIntegrator.o: /usr/include/bits/huge_val.h +EvtItgAbsIntegrator.o: /usr/include/bits/mathdef.h +EvtItgAbsIntegrator.o: /usr/include/bits/mathcalls.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/iostream +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/ostream +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/ios +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/iosfwd +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/cstring +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/cstddef +EvtItgAbsIntegrator.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtItgAbsIntegrator.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtItgAbsIntegrator.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtItgAbsIntegrator.o: /usr/include/bits/wordsize.h +EvtItgAbsIntegrator.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtItgAbsIntegrator.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtItgAbsIntegrator.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtItgAbsIntegrator.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtItgAbsIntegrator.o: /usr/include/bits/stdio_lim.h +EvtItgAbsIntegrator.o: /usr/include/bits/sys_errlist.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtItgAbsIntegrator.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtItgAbsIntegrator.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtItgAbsIntegrator.o: /usr/include/libintl.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtItgAbsIntegrator.o: /usr/include/pthread.h /usr/include/sched.h +EvtItgAbsIntegrator.o: /usr/include/time.h /usr/include/bits/sched.h +EvtItgAbsIntegrator.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtItgAbsIntegrator.o: /usr/include/bits/pthreadtypes.h +EvtItgAbsIntegrator.o: /usr/include/bits/initspin.h +EvtItgAbsIntegrator.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtItgAbsIntegrator.o: /usr/include/bits/posix_opt.h +EvtItgAbsIntegrator.o: /usr/include/bits/confname.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtItgAbsIntegrator.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/cwchar +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/exception_defines.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/exception +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/climits +EvtItgAbsIntegrator.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtItgAbsIntegrator.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtItgAbsIntegrator.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtItgAbsIntegrator.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/debug/debug.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/string +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/memory +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/limits +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/algorithm +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/streambuf +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/locale +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/typeinfo +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/istream +EvtItgAbsIntegrator.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtItgAbsIntegrator.o: ../EvtGenBase/EvtReport.hh +EvtItgFourCoeffFcn.o: ../EvtGenBase/EvtPatches.hh +EvtItgFourCoeffFcn.o: ../EvtGenModels/EvtItgFourCoeffFcn.hh +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/vector +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/exception_defines.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtItgFourCoeffFcn.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtItgFourCoeffFcn.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/cstring +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/cstddef +EvtItgFourCoeffFcn.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtItgFourCoeffFcn.o: /usr/include/string.h /usr/include/c++/3.4.6/climits +EvtItgFourCoeffFcn.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtItgFourCoeffFcn.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtItgFourCoeffFcn.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtItgFourCoeffFcn.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/exception +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/iosfwd +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtItgFourCoeffFcn.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtItgFourCoeffFcn.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtItgFourCoeffFcn.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtItgFourCoeffFcn.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtItgFourCoeffFcn.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtItgFourCoeffFcn.o: /usr/include/bits/stdio_lim.h +EvtItgFourCoeffFcn.o: /usr/include/bits/sys_errlist.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtItgFourCoeffFcn.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtItgFourCoeffFcn.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtItgFourCoeffFcn.o: /usr/include/libintl.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtItgFourCoeffFcn.o: /usr/include/pthread.h /usr/include/sched.h +EvtItgFourCoeffFcn.o: /usr/include/time.h /usr/include/bits/sched.h +EvtItgFourCoeffFcn.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtItgFourCoeffFcn.o: /usr/include/bits/pthreadtypes.h +EvtItgFourCoeffFcn.o: /usr/include/bits/initspin.h +EvtItgFourCoeffFcn.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtItgFourCoeffFcn.o: /usr/include/bits/posix_opt.h +EvtItgFourCoeffFcn.o: /usr/include/bits/confname.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtItgFourCoeffFcn.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/cwchar +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/debug/debug.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtItgFourCoeffFcn.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtItgFourCoeffFcn.o: ../EvtGenModels/EvtItgAbsFunction.hh +EvtItgFunction.o: ../EvtGenBase/EvtPatches.hh +EvtItgFunction.o: ../EvtGenModels/EvtItgFunction.hh +EvtItgFunction.o: ../EvtGenModels/EvtItgAbsFunction.hh +EvtItgPtrFunction.o: ../EvtGenBase/EvtPatches.hh +EvtItgPtrFunction.o: ../EvtGenModels/EvtItgPtrFunction.hh +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/vector +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/exception_defines.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtItgPtrFunction.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtItgPtrFunction.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/cstring +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/cstddef +EvtItgPtrFunction.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtItgPtrFunction.o: /usr/include/string.h /usr/include/c++/3.4.6/climits +EvtItgPtrFunction.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtItgPtrFunction.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtItgPtrFunction.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtItgPtrFunction.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/exception +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/iosfwd +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtItgPtrFunction.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtItgPtrFunction.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtItgPtrFunction.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtItgPtrFunction.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtItgPtrFunction.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtItgPtrFunction.o: /usr/include/bits/stdio_lim.h +EvtItgPtrFunction.o: /usr/include/bits/sys_errlist.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtItgPtrFunction.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtItgPtrFunction.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtItgPtrFunction.o: /usr/include/libintl.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtItgPtrFunction.o: /usr/include/pthread.h /usr/include/sched.h +EvtItgPtrFunction.o: /usr/include/time.h /usr/include/bits/sched.h +EvtItgPtrFunction.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtItgPtrFunction.o: /usr/include/bits/pthreadtypes.h +EvtItgPtrFunction.o: /usr/include/bits/initspin.h +EvtItgPtrFunction.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtItgPtrFunction.o: /usr/include/bits/posix_opt.h +EvtItgPtrFunction.o: /usr/include/bits/confname.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtItgPtrFunction.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/cwchar +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/debug/debug.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtItgPtrFunction.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtItgPtrFunction.o: ../EvtGenModels/EvtItgAbsFunction.hh +EvtItgSimpsonIntegrator.o: ../EvtGenBase/EvtPatches.hh +EvtItgSimpsonIntegrator.o: ../EvtGenModels/EvtItgSimpsonIntegrator.hh +EvtItgSimpsonIntegrator.o: ../EvtGenModels/EvtItgAbsIntegrator.hh +EvtItgSimpsonIntegrator.o: ../EvtGenModels/EvtItgAbsFunction.hh +EvtItgSimpsonIntegrator.o: /usr/include/math.h /usr/include/features.h +EvtItgSimpsonIntegrator.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h +EvtItgSimpsonIntegrator.o: /usr/include/bits/huge_val.h +EvtItgSimpsonIntegrator.o: /usr/include/bits/mathdef.h +EvtItgSimpsonIntegrator.o: /usr/include/bits/mathcalls.h +EvtItgSimpsonIntegrator.o: ../EvtGenBase/EvtReport.hh +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/iostream +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/ostream +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/ios +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/iosfwd +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/cstring +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/cstddef +EvtItgSimpsonIntegrator.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtItgSimpsonIntegrator.o: /usr/include/string.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtItgSimpsonIntegrator.o: /usr/include/bits/types.h +EvtItgSimpsonIntegrator.o: /usr/include/bits/wordsize.h +EvtItgSimpsonIntegrator.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtItgSimpsonIntegrator.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtItgSimpsonIntegrator.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtItgSimpsonIntegrator.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtItgSimpsonIntegrator.o: /usr/include/bits/stdio_lim.h +EvtItgSimpsonIntegrator.o: /usr/include/bits/sys_errlist.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/clocale +EvtItgSimpsonIntegrator.o: /usr/include/locale.h /usr/include/bits/locale.h +EvtItgSimpsonIntegrator.o: /usr/include/langinfo.h /usr/include/nl_types.h +EvtItgSimpsonIntegrator.o: /usr/include/iconv.h /usr/include/libintl.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtItgSimpsonIntegrator.o: /usr/include/pthread.h /usr/include/sched.h +EvtItgSimpsonIntegrator.o: /usr/include/time.h /usr/include/bits/sched.h +EvtItgSimpsonIntegrator.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtItgSimpsonIntegrator.o: /usr/include/bits/pthreadtypes.h +EvtItgSimpsonIntegrator.o: /usr/include/bits/initspin.h +EvtItgSimpsonIntegrator.o: /usr/include/bits/sigthread.h +EvtItgSimpsonIntegrator.o: /usr/include/unistd.h +EvtItgSimpsonIntegrator.o: /usr/include/bits/posix_opt.h +EvtItgSimpsonIntegrator.o: /usr/include/bits/confname.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtItgSimpsonIntegrator.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/cwchar +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/exception_defines.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/exception +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/climits +EvtItgSimpsonIntegrator.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtItgSimpsonIntegrator.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtItgSimpsonIntegrator.o: /usr/include/limits.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/cstdlib +EvtItgSimpsonIntegrator.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/debug/debug.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/cassert +EvtItgSimpsonIntegrator.o: /usr/include/assert.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/string +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/memory +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/limits +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/algorithm +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/streambuf +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/cwctype +EvtItgSimpsonIntegrator.o: /usr/include/wctype.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/locale +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/typeinfo +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/istream +EvtItgSimpsonIntegrator.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtItgThreeCoeffFcn.o: ../EvtGenBase/EvtPatches.hh +EvtItgThreeCoeffFcn.o: ../EvtGenModels/EvtItgThreeCoeffFcn.hh +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/vector +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/exception_defines.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtItgThreeCoeffFcn.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtItgThreeCoeffFcn.o: /usr/include/gnu/stubs.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/cstring +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/cstddef +EvtItgThreeCoeffFcn.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtItgThreeCoeffFcn.o: /usr/include/string.h /usr/include/c++/3.4.6/climits +EvtItgThreeCoeffFcn.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtItgThreeCoeffFcn.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtItgThreeCoeffFcn.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtItgThreeCoeffFcn.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/exception +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/iosfwd +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtItgThreeCoeffFcn.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtItgThreeCoeffFcn.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtItgThreeCoeffFcn.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtItgThreeCoeffFcn.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtItgThreeCoeffFcn.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtItgThreeCoeffFcn.o: /usr/include/bits/stdio_lim.h +EvtItgThreeCoeffFcn.o: /usr/include/bits/sys_errlist.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtItgThreeCoeffFcn.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtItgThreeCoeffFcn.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtItgThreeCoeffFcn.o: /usr/include/libintl.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtItgThreeCoeffFcn.o: /usr/include/pthread.h /usr/include/sched.h +EvtItgThreeCoeffFcn.o: /usr/include/time.h /usr/include/bits/sched.h +EvtItgThreeCoeffFcn.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtItgThreeCoeffFcn.o: /usr/include/bits/pthreadtypes.h +EvtItgThreeCoeffFcn.o: /usr/include/bits/initspin.h +EvtItgThreeCoeffFcn.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtItgThreeCoeffFcn.o: /usr/include/bits/posix_opt.h +EvtItgThreeCoeffFcn.o: /usr/include/bits/confname.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtItgThreeCoeffFcn.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/cwchar +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/debug/debug.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtItgThreeCoeffFcn.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtItgThreeCoeffFcn.o: ../EvtGenModels/EvtItgAbsFunction.hh +EvtItgTwoCoeffFcn.o: ../EvtGenBase/EvtPatches.hh +EvtItgTwoCoeffFcn.o: ../EvtGenModels/EvtItgTwoCoeffFcn.hh +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/vector +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/exception_defines.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtItgTwoCoeffFcn.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtItgTwoCoeffFcn.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/cstring +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/cstddef +EvtItgTwoCoeffFcn.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtItgTwoCoeffFcn.o: /usr/include/string.h /usr/include/c++/3.4.6/climits +EvtItgTwoCoeffFcn.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtItgTwoCoeffFcn.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtItgTwoCoeffFcn.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtItgTwoCoeffFcn.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/exception +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/iosfwd +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtItgTwoCoeffFcn.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtItgTwoCoeffFcn.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtItgTwoCoeffFcn.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtItgTwoCoeffFcn.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtItgTwoCoeffFcn.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtItgTwoCoeffFcn.o: /usr/include/bits/stdio_lim.h +EvtItgTwoCoeffFcn.o: /usr/include/bits/sys_errlist.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtItgTwoCoeffFcn.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtItgTwoCoeffFcn.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtItgTwoCoeffFcn.o: /usr/include/libintl.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtItgTwoCoeffFcn.o: /usr/include/pthread.h /usr/include/sched.h +EvtItgTwoCoeffFcn.o: /usr/include/time.h /usr/include/bits/sched.h +EvtItgTwoCoeffFcn.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtItgTwoCoeffFcn.o: /usr/include/bits/pthreadtypes.h +EvtItgTwoCoeffFcn.o: /usr/include/bits/initspin.h +EvtItgTwoCoeffFcn.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtItgTwoCoeffFcn.o: /usr/include/bits/posix_opt.h +EvtItgTwoCoeffFcn.o: /usr/include/bits/confname.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtItgTwoCoeffFcn.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/cwchar +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/debug/debug.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtItgTwoCoeffFcn.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtItgTwoCoeffFcn.o: ../EvtGenModels/EvtItgAbsFunction.hh +EvtJetSet.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtParticle.hh +EvtJetSet.o: /usr/include/assert.h /usr/include/features.h +EvtJetSet.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h +EvtJetSet.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtJetSet.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtJetSet.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtJetSet.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtJetSet.o: /usr/include/c++/3.4.6/iosfwd +EvtJetSet.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtJetSet.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtJetSet.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtJetSet.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtJetSet.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtJetSet.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtJetSet.o: /usr/include/libio.h /usr/include/_G_config.h +EvtJetSet.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtJetSet.o: /usr/include/gconv.h +EvtJetSet.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtJetSet.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtJetSet.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtJetSet.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtJetSet.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtJetSet.o: /usr/include/libintl.h +EvtJetSet.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtJetSet.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtJetSet.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtJetSet.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtJetSet.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtJetSet.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtJetSet.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtJetSet.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtJetSet.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtJetSet.o: /usr/include/ctype.h /usr/include/endian.h +EvtJetSet.o: /usr/include/bits/endian.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtJetSet.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtJetSet.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtJetSet.o: /usr/include/c++/3.4.6/exception_defines.h +EvtJetSet.o: /usr/include/c++/3.4.6/exception +EvtJetSet.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtJetSet.o: /usr/include/c++/3.4.6/climits +EvtJetSet.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtJetSet.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtJetSet.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtJetSet.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtJetSet.o: /usr/include/c++/3.4.6/debug/debug.h +EvtJetSet.o: /usr/include/c++/3.4.6/cassert +EvtJetSet.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtJetSet.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtJetSet.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtJetSet.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtJetSet.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtJetSet.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtJetSet.o: /usr/include/c++/3.4.6/limits +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtJetSet.o: /usr/include/c++/3.4.6/algorithm +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtJetSet.o: /usr/include/c++/3.4.6/streambuf +EvtJetSet.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtJetSet.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtJetSet.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtJetSet.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtJetSet.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtJetSet.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtJetSet.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtJetSet.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtJetSet.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtJetSet.o: /usr/include/c++/3.4.6/locale +EvtJetSet.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtJetSet.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtJetSet.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtJetSet.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtJetSet.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtJetSet.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtJetSet.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtJetSet.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtStringParticle.hh +EvtJetSet.o: ../EvtGenBase/EvtDecayTable.hh ../EvtGenBase/EvtDecayBase.hh +EvtJetSet.o: /usr/include/c++/3.4.6/vector +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtJetSet.o: ../EvtGenBase/EvtParticleDecayList.hh +EvtJetSet.o: ../EvtGenBase/EvtParticleDecay.hh ../EvtGenBase/EvtPDL.hh +EvtJetSet.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtJetSet.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtJetSet.o: ../EvtGenModels/EvtJetSet.hh ../EvtGenBase/EvtDecayIncoherent.hh +EvtJetSet.o: /usr/include/c++/3.4.6/iomanip /usr/include/c++/3.4.6/functional +EvtJetSet.o: /usr/include/c++/3.4.6/fstream +EvtJetSet.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/basic_file.h +EvtJetSet.o: /usr/include/c++/3.4.6/bits/fstream.tcc +EvtJetSetCDF.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtParticle.hh +EvtJetSetCDF.o: /usr/include/assert.h /usr/include/features.h +EvtJetSetCDF.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h +EvtJetSetCDF.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtJetSetCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtJetSetCDF.o: /usr/include/c++/3.4.6/iosfwd +EvtJetSetCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtJetSetCDF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtJetSetCDF.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtJetSetCDF.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtJetSetCDF.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtJetSetCDF.o: /usr/include/libio.h /usr/include/_G_config.h +EvtJetSetCDF.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtJetSetCDF.o: /usr/include/gconv.h +EvtJetSetCDF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtJetSetCDF.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtJetSetCDF.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtJetSetCDF.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtJetSetCDF.o: /usr/include/libintl.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtJetSetCDF.o: /usr/include/pthread.h /usr/include/sched.h +EvtJetSetCDF.o: /usr/include/time.h /usr/include/bits/sched.h +EvtJetSetCDF.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtJetSetCDF.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtJetSetCDF.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtJetSetCDF.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtJetSetCDF.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtJetSetCDF.o: /usr/include/stdint.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/exception_defines.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/exception +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/climits +EvtJetSetCDF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtJetSetCDF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtJetSetCDF.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtJetSetCDF.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/debug/debug.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/cassert +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/limits +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/algorithm +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtJetSetCDF.o: /usr/include/c++/3.4.6/streambuf +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtJetSetCDF.o: /usr/include/c++/3.4.6/locale +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtJetSetCDF.o: /usr/include/c++/3.4.6/typeinfo +EvtJetSetCDF.o: /usr/include/c++/3.4.6/istream +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtJetSetCDF.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtJetSetCDF.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtJetSetCDF.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtJetSetCDF.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtJetSetCDF.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtStringParticle.hh +EvtJetSetCDF.o: ../EvtGenBase/EvtDecayTable.hh ../EvtGenBase/EvtDecayBase.hh +EvtJetSetCDF.o: /usr/include/c++/3.4.6/vector +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtJetSetCDF.o: ../EvtGenBase/EvtParticleDecayList.hh +EvtJetSetCDF.o: ../EvtGenBase/EvtParticleDecay.hh ../EvtGenBase/EvtPDL.hh +EvtJetSetCDF.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtJetSetCDF.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtJetSetCDF.o: ../EvtGenModels/EvtJetSetCDF.hh +EvtJetSetCDF.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtJetSetCDF.o: /usr/include/c++/3.4.6/iomanip +EvtJetSetCDF.o: /usr/include/c++/3.4.6/functional +EvtJetSetCDF.o: /usr/include/c++/3.4.6/fstream +EvtJetSetCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/basic_file.h +EvtJetSetCDF.o: /usr/include/c++/3.4.6/bits/fstream.tcc +EvtJscont.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtJscont.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtJscont.o: /usr/include/gnu/stubs.h +EvtJscont.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtJscont.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtJscont.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtJscont.o: /usr/include/libio.h /usr/include/_G_config.h +EvtJscont.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtJscont.o: /usr/include/gconv.h +EvtJscont.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtJscont.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtJscont.o: /usr/include/string.h ../EvtGenBase/EvtParticle.hh +EvtJscont.o: /usr/include/assert.h ../EvtGenBase/EvtVector4R.hh +EvtJscont.o: /usr/include/c++/3.4.6/iostream +EvtJscont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtJscont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtJscont.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtJscont.o: /usr/include/c++/3.4.6/iosfwd +EvtJscont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtJscont.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtJscont.o: /usr/include/c++/3.4.6/cstdio /usr/include/c++/3.4.6/clocale +EvtJscont.o: /usr/include/locale.h /usr/include/bits/locale.h +EvtJscont.o: /usr/include/langinfo.h /usr/include/nl_types.h +EvtJscont.o: /usr/include/iconv.h /usr/include/libintl.h +EvtJscont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtJscont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtJscont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtJscont.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtJscont.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtJscont.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtJscont.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtJscont.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtJscont.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtJscont.o: /usr/include/ctype.h /usr/include/endian.h +EvtJscont.o: /usr/include/bits/endian.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtJscont.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtJscont.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtJscont.o: /usr/include/c++/3.4.6/exception_defines.h +EvtJscont.o: /usr/include/c++/3.4.6/exception +EvtJscont.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtJscont.o: /usr/include/c++/3.4.6/climits +EvtJscont.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtJscont.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtJscont.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtJscont.o: /usr/include/c++/3.4.6/new +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtJscont.o: /usr/include/c++/3.4.6/debug/debug.h +EvtJscont.o: /usr/include/c++/3.4.6/cassert +EvtJscont.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtJscont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtJscont.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtJscont.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtJscont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtJscont.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtJscont.o: /usr/include/c++/3.4.6/limits +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtJscont.o: /usr/include/c++/3.4.6/algorithm +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtJscont.o: /usr/include/c++/3.4.6/streambuf +EvtJscont.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtJscont.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtJscont.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtJscont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtJscont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtJscont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtJscont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtJscont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtJscont.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtJscont.o: /usr/include/c++/3.4.6/locale +EvtJscont.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtJscont.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtJscont.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtJscont.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtJscont.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtJscont.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtJscont.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtJscont.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtDecayTable.hh +EvtJscont.o: ../EvtGenBase/EvtDecayBase.hh /usr/include/c++/3.4.6/vector +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtJscont.o: ../EvtGenBase/EvtParticleDecayList.hh +EvtJscont.o: ../EvtGenBase/EvtParticleDecay.hh ../EvtGenBase/EvtPDL.hh +EvtJscont.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtJscont.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtJscont.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtJscont.o: ../EvtGenModels/EvtJscont.hh ../EvtGenBase/EvtDecayIncoherent.hh +EvtJscont.o: ../EvtGenModels/EvtJetSet.hh +EvtJscontCDF.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtJscontCDF.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtJscontCDF.o: /usr/include/gnu/stubs.h +EvtJscontCDF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtJscontCDF.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtJscontCDF.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtJscontCDF.o: /usr/include/libio.h /usr/include/_G_config.h +EvtJscontCDF.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtJscontCDF.o: /usr/include/gconv.h +EvtJscontCDF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtJscontCDF.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtJscontCDF.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtJscontCDF.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtJscontCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtJscontCDF.o: /usr/include/c++/3.4.6/iosfwd +EvtJscontCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtJscontCDF.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtJscontCDF.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtJscontCDF.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtJscontCDF.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtJscontCDF.o: /usr/include/libintl.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtJscontCDF.o: /usr/include/pthread.h /usr/include/sched.h +EvtJscontCDF.o: /usr/include/time.h /usr/include/bits/sched.h +EvtJscontCDF.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtJscontCDF.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtJscontCDF.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtJscontCDF.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtJscontCDF.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtJscontCDF.o: /usr/include/stdint.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/exception_defines.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/exception +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/climits +EvtJscontCDF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtJscontCDF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtJscontCDF.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtJscontCDF.o: /usr/include/c++/3.4.6/new +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/debug/debug.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/cassert +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/limits +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/algorithm +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtJscontCDF.o: /usr/include/c++/3.4.6/streambuf +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtJscontCDF.o: /usr/include/c++/3.4.6/locale +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtJscontCDF.o: /usr/include/c++/3.4.6/typeinfo +EvtJscontCDF.o: /usr/include/c++/3.4.6/istream +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtJscontCDF.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtJscontCDF.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtJscontCDF.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtJscontCDF.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtJscontCDF.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtDecayTable.hh +EvtJscontCDF.o: ../EvtGenBase/EvtDecayBase.hh /usr/include/c++/3.4.6/vector +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtJscontCDF.o: ../EvtGenBase/EvtParticleDecayList.hh +EvtJscontCDF.o: ../EvtGenBase/EvtParticleDecay.hh ../EvtGenBase/EvtPDL.hh +EvtJscontCDF.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtJscontCDF.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtJscontCDF.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtJscontCDF.o: ../EvtGenModels/EvtJscontCDF.hh +EvtJscontCDF.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtJscontCDF.o: ../EvtGenModels/EvtJetSetCDF.hh +EvtKKLambdaC.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtKKLambdaC.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtKKLambdaC.o: /usr/include/gnu/stubs.h +EvtKKLambdaC.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtKKLambdaC.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtKKLambdaC.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtKKLambdaC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtKKLambdaC.o: /usr/include/c++/3.4.6/iosfwd +EvtKKLambdaC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtKKLambdaC.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtKKLambdaC.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtKKLambdaC.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtKKLambdaC.o: /usr/include/libio.h /usr/include/_G_config.h +EvtKKLambdaC.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtKKLambdaC.o: /usr/include/gconv.h +EvtKKLambdaC.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtKKLambdaC.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtKKLambdaC.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtKKLambdaC.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtKKLambdaC.o: /usr/include/libintl.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtKKLambdaC.o: /usr/include/pthread.h /usr/include/sched.h +EvtKKLambdaC.o: /usr/include/time.h /usr/include/bits/sched.h +EvtKKLambdaC.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtKKLambdaC.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtKKLambdaC.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtKKLambdaC.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtKKLambdaC.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtKKLambdaC.o: /usr/include/stdint.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/exception_defines.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/exception +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/climits +EvtKKLambdaC.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtKKLambdaC.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtKKLambdaC.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtKKLambdaC.o: /usr/include/c++/3.4.6/new +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/debug/debug.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/cassert +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/limits +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/algorithm +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtKKLambdaC.o: /usr/include/c++/3.4.6/streambuf +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtKKLambdaC.o: /usr/include/c++/3.4.6/locale +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtKKLambdaC.o: /usr/include/c++/3.4.6/typeinfo +EvtKKLambdaC.o: /usr/include/c++/3.4.6/istream +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtKKLambdaC.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtKKLambdaC.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtKKLambdaC.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtKKLambdaC.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtKKLambdaC.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtKKLambdaC.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtKKLambdaC.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtKKLambdaC.o: /usr/include/c++/3.4.6/vector +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtKKLambdaC.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtKKLambdaC.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtKKLambdaC.o: ../EvtGenModels/EvtKKLambdaC.hh ../EvtGenBase/EvtDecayAmp.hh +EvtKKLambdaC.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtKKLambdaC.o: ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtKKLambdaC.o: ../EvtGenBase/EvtSemiLeptonicAmp.hh +EvtKKLambdaC.o: ../EvtGenModels/EvtKKLambdaCFF.hh +EvtKKLambdaC.o: ../EvtGenBase/EvtSemiLeptonicBaryonAmp.hh +EvtKKLambdaCFF.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtReport.hh +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/iostream +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtKKLambdaCFF.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtKKLambdaCFF.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/cstring +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/cstddef +EvtKKLambdaCFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtKKLambdaCFF.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtKKLambdaCFF.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtKKLambdaCFF.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtKKLambdaCFF.o: /usr/include/libio.h /usr/include/_G_config.h +EvtKKLambdaCFF.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtKKLambdaCFF.o: /usr/include/gconv.h +EvtKKLambdaCFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtKKLambdaCFF.o: /usr/include/bits/stdio_lim.h +EvtKKLambdaCFF.o: /usr/include/bits/sys_errlist.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtKKLambdaCFF.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtKKLambdaCFF.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtKKLambdaCFF.o: /usr/include/libintl.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtKKLambdaCFF.o: /usr/include/pthread.h /usr/include/sched.h +EvtKKLambdaCFF.o: /usr/include/time.h /usr/include/bits/sched.h +EvtKKLambdaCFF.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtKKLambdaCFF.o: /usr/include/bits/pthreadtypes.h +EvtKKLambdaCFF.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtKKLambdaCFF.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtKKLambdaCFF.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtKKLambdaCFF.o: /usr/include/ctype.h /usr/include/endian.h +EvtKKLambdaCFF.o: /usr/include/bits/endian.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtKKLambdaCFF.o: /usr/include/stdint.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/exception_defines.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/exception +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/climits +EvtKKLambdaCFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtKKLambdaCFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtKKLambdaCFF.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtKKLambdaCFF.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/debug/debug.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/limits +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/algorithm +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/streambuf +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/locale +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/typeinfo +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/istream +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtKKLambdaCFF.o: ../EvtGenModels/EvtKKLambdaCFF.hh +EvtKKLambdaCFF.o: ../EvtGenBase/EvtSemiLeptonicFF.hh ../EvtGenBase/EvtId.hh +EvtKKLambdaCFF.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtKKLambdaCFF.o: ../EvtGenBase/EvtSpinType.hh +EvtKKLambdaCFF.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/vector +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtKKLambdaCFF.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtKKLambdaCFF.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtKKLambdaCFF.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtKKLambdaCFF.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtKstarnunu.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtKstarnunu.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtKstarnunu.o: /usr/include/gnu/stubs.h +EvtKstarnunu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/iostream +EvtKstarnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtKstarnunu.o: /usr/include/c++/3.4.6/iosfwd +EvtKstarnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtKstarnunu.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtKstarnunu.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtKstarnunu.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtKstarnunu.o: /usr/include/libio.h /usr/include/_G_config.h +EvtKstarnunu.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtKstarnunu.o: /usr/include/gconv.h +EvtKstarnunu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtKstarnunu.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtKstarnunu.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtKstarnunu.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtKstarnunu.o: /usr/include/libintl.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtKstarnunu.o: /usr/include/pthread.h /usr/include/sched.h +EvtKstarnunu.o: /usr/include/time.h /usr/include/bits/sched.h +EvtKstarnunu.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtKstarnunu.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtKstarnunu.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtKstarnunu.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtKstarnunu.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtKstarnunu.o: /usr/include/stdint.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/exception_defines.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/exception +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/climits +EvtKstarnunu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtKstarnunu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtKstarnunu.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtKstarnunu.o: /usr/include/c++/3.4.6/new +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/debug/debug.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/limits +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/algorithm +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtKstarnunu.o: /usr/include/c++/3.4.6/streambuf +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtKstarnunu.o: /usr/include/c++/3.4.6/locale +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtKstarnunu.o: /usr/include/c++/3.4.6/typeinfo +EvtKstarnunu.o: /usr/include/c++/3.4.6/istream +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtKstarnunu.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtKstarnunu.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtKstarnunu.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtKstarnunu.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtKstarnunu.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtKstarnunu.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtKstarnunu.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtKstarnunu.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtKstarnunu.o: /usr/include/c++/3.4.6/vector +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtKstarnunu.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtKstarnunu.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtKstarnunu.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtDiracSpinor.hh +EvtKstarnunu.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtTensor4C.hh +EvtKstarnunu.o: ../EvtGenModels/EvtKstarnunu.hh ../EvtGenBase/EvtDecayAmp.hh +EvtKstarnunu.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtKstarnunu.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtKstarstargamma.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtKstarstargamma.o: /usr/include/gnu/stubs.h +EvtKstarstargamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtKstarstargamma.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtKstarstargamma.o: ../EvtGenBase/EvtVector4R.hh +EvtKstarstargamma.o: /usr/include/c++/3.4.6/iostream +EvtKstarstargamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/ostream +EvtKstarstargamma.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtKstarstargamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/cstring +EvtKstarstargamma.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtKstarstargamma.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtKstarstargamma.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtKstarstargamma.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtKstarstargamma.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtKstarstargamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtKstarstargamma.o: /usr/include/bits/stdio_lim.h +EvtKstarstargamma.o: /usr/include/bits/sys_errlist.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtKstarstargamma.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtKstarstargamma.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtKstarstargamma.o: /usr/include/libintl.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtKstarstargamma.o: /usr/include/pthread.h /usr/include/sched.h +EvtKstarstargamma.o: /usr/include/time.h /usr/include/bits/sched.h +EvtKstarstargamma.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtKstarstargamma.o: /usr/include/bits/pthreadtypes.h +EvtKstarstargamma.o: /usr/include/bits/initspin.h +EvtKstarstargamma.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtKstarstargamma.o: /usr/include/bits/posix_opt.h +EvtKstarstargamma.o: /usr/include/bits/confname.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtKstarstargamma.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/cwchar +EvtKstarstargamma.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/exception_defines.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/exception +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/climits +EvtKstarstargamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtKstarstargamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtKstarstargamma.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtKstarstargamma.o: /usr/include/c++/3.4.6/new +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/debug/debug.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/cassert +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/string +EvtKstarstargamma.o: /usr/include/c++/3.4.6/memory +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/limits +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/algorithm +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtKstarstargamma.o: /usr/include/c++/3.4.6/streambuf +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtKstarstargamma.o: /usr/include/c++/3.4.6/locale +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtKstarstargamma.o: /usr/include/c++/3.4.6/typeinfo +EvtKstarstargamma.o: /usr/include/c++/3.4.6/istream +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtKstarstargamma.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtKstarstargamma.o: /usr/include/bits/mathdef.h +EvtKstarstargamma.o: /usr/include/bits/mathcalls.h +EvtKstarstargamma.o: ../EvtGenBase/EvtSpinDensity.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtReport.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtScalarParticle.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtVectorParticle.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtVector4C.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtVector3C.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtVector3R.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtPhotonParticle.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtTensorParticle.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtTensor4C.hh ../EvtGenBase/EvtGenKine.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtKstarstargamma.o: /usr/include/c++/3.4.6/vector +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtKstarstargamma.o: ../EvtGenBase/EvtStringHash.hh +EvtKstarstargamma.o: /usr/include/c++/3.4.6/map +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtKstarstargamma.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtKstarstargamma.o: ../EvtGenModels/EvtKstarstargamma.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtDecayAmp.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtEvalHelAmp.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtPropBreitWignerRel.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtPropagator.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtAmplitude.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtPoint1D.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtTwoBodyVertex.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtTwoBodyKine.hh +EvtKstarstargamma.o: ../EvtGenBase/EvtBlattWeisskopf.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtPatches.hh +EvtLambdaP_BarGamma.o: ../EvtGenModels/EvtLambdaP_BarGamma.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtDecayAmp.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtId.hh +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/iostream +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtLambdaP_BarGamma.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtLambdaP_BarGamma.o: /usr/include/gnu/stubs.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/ostream +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/ios +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/iosfwd +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/cstring +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/cstddef +EvtLambdaP_BarGamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtLambdaP_BarGamma.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtLambdaP_BarGamma.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtLambdaP_BarGamma.o: /usr/include/bits/wordsize.h +EvtLambdaP_BarGamma.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtLambdaP_BarGamma.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtLambdaP_BarGamma.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtLambdaP_BarGamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtLambdaP_BarGamma.o: /usr/include/bits/stdio_lim.h +EvtLambdaP_BarGamma.o: /usr/include/bits/sys_errlist.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtLambdaP_BarGamma.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtLambdaP_BarGamma.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtLambdaP_BarGamma.o: /usr/include/libintl.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtLambdaP_BarGamma.o: /usr/include/pthread.h /usr/include/sched.h +EvtLambdaP_BarGamma.o: /usr/include/time.h /usr/include/bits/sched.h +EvtLambdaP_BarGamma.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtLambdaP_BarGamma.o: /usr/include/bits/pthreadtypes.h +EvtLambdaP_BarGamma.o: /usr/include/bits/initspin.h +EvtLambdaP_BarGamma.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtLambdaP_BarGamma.o: /usr/include/bits/posix_opt.h +EvtLambdaP_BarGamma.o: /usr/include/bits/confname.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtLambdaP_BarGamma.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/cwchar +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/exception_defines.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/exception +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/climits +EvtLambdaP_BarGamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtLambdaP_BarGamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtLambdaP_BarGamma.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtLambdaP_BarGamma.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/debug/debug.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/string +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/memory +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/limits +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/algorithm +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/streambuf +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/locale +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/typeinfo +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/istream +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtSpinType.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtReport.hh +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/vector +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtComplex.hh +EvtLambdaP_BarGamma.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtLambdaP_BarGamma.o: /usr/include/bits/mathdef.h +EvtLambdaP_BarGamma.o: /usr/include/bits/mathcalls.h +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtPDL.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtPartProp.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtStringHash.hh +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/map +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtLambdaP_BarGamma.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtParticle.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtVector4R.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtSpinDensity.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtGammaMatrix.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtDiracSpinor.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtVector3R.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtDiracParticle.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtPhotonParticle.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtVector4C.hh +EvtLambdaP_BarGamma.o: ../EvtGenBase/EvtVector3C.hh +EvtLb2Lll.o: ../EvtGenModels/EvtLb2Lll.hh ../EvtGenBase/EvtDecayAmp.hh +EvtLb2Lll.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtPatches.hh +EvtLb2Lll.o: ../EvtGenBase/EvtId.hh /usr/include/c++/3.4.6/iostream +EvtLb2Lll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtLb2Lll.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtLb2Lll.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtLb2Lll.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtLb2Lll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtLb2Lll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtLb2Lll.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtLb2Lll.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtLb2Lll.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtLb2Lll.o: /usr/include/libio.h /usr/include/_G_config.h +EvtLb2Lll.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtLb2Lll.o: /usr/include/gconv.h +EvtLb2Lll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtLb2Lll.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtLb2Lll.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtLb2Lll.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtLb2Lll.o: /usr/include/libintl.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtLb2Lll.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtLb2Lll.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtLb2Lll.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtLb2Lll.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtLb2Lll.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtLb2Lll.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtLb2Lll.o: /usr/include/ctype.h /usr/include/endian.h +EvtLb2Lll.o: /usr/include/bits/endian.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtLb2Lll.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/exception_defines.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/exception +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/climits +EvtLb2Lll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtLb2Lll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtLb2Lll.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtLb2Lll.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/debug/debug.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/limits +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/algorithm +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtLb2Lll.o: /usr/include/c++/3.4.6/streambuf +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtLb2Lll.o: /usr/include/c++/3.4.6/locale +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtLb2Lll.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtLb2Lll.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtLb2Lll.o: /usr/include/c++/3.4.6/vector +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/vector.tcc ../EvtGenBase/EvtAmp.hh +EvtLb2Lll.o: ../EvtGenBase/EvtComplex.hh /usr/include/math.h +EvtLb2Lll.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtLb2Lll.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtConst.hh +EvtLb2Lll.o: ../EvtGenBase/EvtTensor4C.hh ../EvtGenBase/EvtDiracSpinor.hh +EvtLb2Lll.o: ../EvtGenBase/EvtVector4R.hh ../EvtGenBase/EvtVector3R.hh +EvtLb2Lll.o: ../EvtGenModels/EvtWilsonCoeficients.hh +EvtLb2Lll.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtSpinDensity.hh +EvtLb2Lll.o: ../EvtGenBase/EvtDiracParticle.hh ../EvtGenBase/EvtPDL.hh +EvtLb2Lll.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtLb2Lll.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtLb2Lll.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtLb2Lll.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtLb2Lll.o: ../EvtGenBase/EvtGammaMatrix.hh +EvtLNuGamma.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtLNuGamma.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtLNuGamma.o: /usr/include/gnu/stubs.h +EvtLNuGamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/iostream +EvtLNuGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtLNuGamma.o: /usr/include/c++/3.4.6/iosfwd +EvtLNuGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtLNuGamma.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtLNuGamma.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtLNuGamma.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtLNuGamma.o: /usr/include/libio.h /usr/include/_G_config.h +EvtLNuGamma.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtLNuGamma.o: /usr/include/gconv.h +EvtLNuGamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtLNuGamma.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtLNuGamma.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtLNuGamma.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtLNuGamma.o: /usr/include/libintl.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtLNuGamma.o: /usr/include/pthread.h /usr/include/sched.h +EvtLNuGamma.o: /usr/include/time.h /usr/include/bits/sched.h +EvtLNuGamma.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtLNuGamma.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtLNuGamma.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtLNuGamma.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtLNuGamma.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtLNuGamma.o: /usr/include/stdint.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/exception_defines.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/exception +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/climits +EvtLNuGamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtLNuGamma.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtLNuGamma.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtLNuGamma.o: /usr/include/c++/3.4.6/new +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/debug/debug.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/limits +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/algorithm +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtLNuGamma.o: /usr/include/c++/3.4.6/streambuf +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtLNuGamma.o: /usr/include/c++/3.4.6/locale +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtLNuGamma.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtLNuGamma.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtLNuGamma.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtLNuGamma.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtLNuGamma.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtLNuGamma.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtLNuGamma.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtLNuGamma.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtLNuGamma.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtLNuGamma.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtLNuGamma.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtLNuGamma.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenModels/EvtLNuGamma.hh +EvtLNuGamma.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtLNuGamma.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtDiracSpinor.hh +EvtLNuGamma.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtVector4C.hh +EvtLNuGamma.o: ../EvtGenBase/EvtVector3C.hh ../EvtGenBase/EvtTensor4C.hh +EvtMelikhov.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtMelikhov.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtMelikhov.o: /usr/include/gnu/stubs.h +EvtMelikhov.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtMelikhov.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtMelikhov.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtMelikhov.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtMelikhov.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtMelikhov.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtMelikhov.o: /usr/include/c++/3.4.6/iosfwd +EvtMelikhov.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtMelikhov.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtMelikhov.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtMelikhov.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtMelikhov.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtMelikhov.o: /usr/include/libio.h /usr/include/_G_config.h +EvtMelikhov.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtMelikhov.o: /usr/include/gconv.h +EvtMelikhov.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtMelikhov.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtMelikhov.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtMelikhov.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtMelikhov.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtMelikhov.o: /usr/include/libintl.h +EvtMelikhov.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtMelikhov.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtMelikhov.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtMelikhov.o: /usr/include/pthread.h /usr/include/sched.h +EvtMelikhov.o: /usr/include/time.h /usr/include/bits/sched.h +EvtMelikhov.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtMelikhov.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtMelikhov.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtMelikhov.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtMelikhov.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtMelikhov.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtMelikhov.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtMelikhov.o: /usr/include/stdint.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtMelikhov.o: /usr/include/c++/3.4.6/exception_defines.h +EvtMelikhov.o: /usr/include/c++/3.4.6/exception +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtMelikhov.o: /usr/include/c++/3.4.6/climits +EvtMelikhov.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtMelikhov.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtMelikhov.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtMelikhov.o: /usr/include/c++/3.4.6/new +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtMelikhov.o: /usr/include/c++/3.4.6/debug/debug.h +EvtMelikhov.o: /usr/include/c++/3.4.6/cassert +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtMelikhov.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtMelikhov.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtMelikhov.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtMelikhov.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtMelikhov.o: /usr/include/c++/3.4.6/limits +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtMelikhov.o: /usr/include/c++/3.4.6/algorithm +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtMelikhov.o: /usr/include/c++/3.4.6/streambuf +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtMelikhov.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtMelikhov.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtMelikhov.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtMelikhov.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtMelikhov.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtMelikhov.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtMelikhov.o: /usr/include/c++/3.4.6/locale +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtMelikhov.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtMelikhov.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtMelikhov.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtMelikhov.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtMelikhov.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtMelikhov.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtMelikhov.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtMelikhov.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtMelikhov.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtMelikhov.o: ../EvtGenModels/EvtMelikhov.hh /usr/include/c++/3.4.6/fstream +EvtMelikhov.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/basic_file.h +EvtMelikhov.o: /usr/include/c++/3.4.6/bits/fstream.tcc +EvtMelikhov.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtMelikhov.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtMelikhov.o: ../EvtGenBase/EvtSemiLeptonicAmp.hh +EvtMelikhov.o: ../EvtGenModels/EvtMelikhovFF.hh +EvtMelikhov.o: ../EvtGenBase/EvtSemiLeptonicVectorAmp.hh +EvtMelikhovFF.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtReport.hh +EvtMelikhovFF.o: /usr/include/c++/3.4.6/iostream +EvtMelikhovFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtMelikhovFF.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtMelikhovFF.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtMelikhovFF.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtMelikhovFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/cstring +EvtMelikhovFF.o: /usr/include/c++/3.4.6/cstddef +EvtMelikhovFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtMelikhovFF.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtMelikhovFF.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtMelikhovFF.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtMelikhovFF.o: /usr/include/libio.h /usr/include/_G_config.h +EvtMelikhovFF.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtMelikhovFF.o: /usr/include/gconv.h +EvtMelikhovFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtMelikhovFF.o: /usr/include/bits/stdio_lim.h +EvtMelikhovFF.o: /usr/include/bits/sys_errlist.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtMelikhovFF.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtMelikhovFF.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtMelikhovFF.o: /usr/include/libintl.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtMelikhovFF.o: /usr/include/pthread.h /usr/include/sched.h +EvtMelikhovFF.o: /usr/include/time.h /usr/include/bits/sched.h +EvtMelikhovFF.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtMelikhovFF.o: /usr/include/bits/pthreadtypes.h +EvtMelikhovFF.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtMelikhovFF.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtMelikhovFF.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtMelikhovFF.o: /usr/include/ctype.h /usr/include/endian.h +EvtMelikhovFF.o: /usr/include/bits/endian.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtMelikhovFF.o: /usr/include/stdint.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/exception_defines.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/exception +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/climits +EvtMelikhovFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtMelikhovFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtMelikhovFF.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtMelikhovFF.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/debug/debug.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/limits +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/algorithm +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtMelikhovFF.o: /usr/include/c++/3.4.6/streambuf +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtMelikhovFF.o: /usr/include/c++/3.4.6/locale +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtMelikhovFF.o: /usr/include/c++/3.4.6/typeinfo +EvtMelikhovFF.o: /usr/include/c++/3.4.6/istream +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtMelikhovFF.o: ../EvtGenModels/EvtMelikhovFF.hh +EvtMelikhovFF.o: ../EvtGenBase/EvtSemiLeptonicFF.hh ../EvtGenBase/EvtId.hh +EvtMelikhovFF.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtMelikhovFF.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtMelikhovFF.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtMelikhovFF.o: ../EvtGenBase/EvtSpinType.hh +EvtMelikhovFF.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtMelikhovFF.o: /usr/include/c++/3.4.6/vector +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtMelikhovFF.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtMelikhovFF.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtModelReg.o: ../EvtGenBase/EvtPatches.hh /usr/include/c++/3.4.6/iostream +EvtModelReg.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtModelReg.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtModelReg.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtModelReg.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtModelReg.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtModelReg.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtModelReg.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtModelReg.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtModelReg.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtModelReg.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtModelReg.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtModelReg.o: /usr/include/libio.h /usr/include/_G_config.h +EvtModelReg.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtModelReg.o: /usr/include/gconv.h +EvtModelReg.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtModelReg.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtModelReg.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtModelReg.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtModelReg.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtModelReg.o: /usr/include/libintl.h +EvtModelReg.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtModelReg.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtModelReg.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtModelReg.o: /usr/include/pthread.h /usr/include/sched.h +EvtModelReg.o: /usr/include/time.h /usr/include/bits/sched.h +EvtModelReg.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtModelReg.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtModelReg.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtModelReg.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtModelReg.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtModelReg.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtModelReg.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtModelReg.o: /usr/include/stdint.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtModelReg.o: /usr/include/c++/3.4.6/exception_defines.h +EvtModelReg.o: /usr/include/c++/3.4.6/exception +EvtModelReg.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtModelReg.o: /usr/include/c++/3.4.6/climits +EvtModelReg.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtModelReg.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtModelReg.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtModelReg.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtModelReg.o: /usr/include/c++/3.4.6/debug/debug.h +EvtModelReg.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtModelReg.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtModelReg.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtModelReg.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtModelReg.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtModelReg.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtModelReg.o: /usr/include/c++/3.4.6/limits +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtModelReg.o: /usr/include/c++/3.4.6/algorithm +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtModelReg.o: /usr/include/c++/3.4.6/streambuf +EvtModelReg.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtModelReg.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtModelReg.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtModelReg.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtModelReg.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtModelReg.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtModelReg.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtModelReg.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtModelReg.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtModelReg.o: /usr/include/c++/3.4.6/locale +EvtModelReg.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtModelReg.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtModelReg.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtModelReg.o: /usr/include/c++/3.4.6/iomanip +EvtModelReg.o: /usr/include/c++/3.4.6/functional +EvtModelReg.o: /usr/include/c++/3.4.6/fstream +EvtModelReg.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/basic_file.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/fstream.tcc +EvtModelReg.o: ../EvtGenBase/EvtModel.hh ../EvtGenBase/EvtDecayBase.hh +EvtModelReg.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtModelReg.o: ../EvtGenBase/EvtReport.hh /usr/include/c++/3.4.6/vector +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtModelReg.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtModelReg.o: ../EvtGenModels/EvtTauVectornu.hh ../EvtGenBase/EvtDecayAmp.hh +EvtModelReg.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtComplex.hh +EvtModelReg.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtModelReg.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtModelReg.o: ../EvtGenBase/EvtConst.hh ../EvtGenModels/EvtVVP.hh +EvtModelReg.o: ../EvtGenModels/EvtSLN.hh ../EvtGenModels/EvtISGW2.hh +EvtModelReg.o: ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtModelReg.o: ../EvtGenBase/EvtSemiLeptonicAmp.hh +EvtModelReg.o: ../EvtGenModels/EvtMelikhov.hh ../EvtGenModels/EvtSLPole.hh +EvtModelReg.o: ../EvtGenModels/EvtPropSLPole.hh ../EvtGenBase/EvtPoint1D.hh +EvtModelReg.o: ../EvtGenModels/EvtSLBKPole.hh ../EvtGenModels/EvtISGW.hh +EvtModelReg.o: ../EvtGenModels/EvtBHadronic.hh ../EvtGenModels/EvtVSS.hh +EvtModelReg.o: ../EvtGenModels/EvtVSSMix.hh ../EvtGenModels/EvtVSSBMixCPT.hh +EvtModelReg.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtModelReg.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenModels/EvtVSPPwave.hh +EvtModelReg.o: ../EvtGenModels/EvtGoityRoberts.hh ../EvtGenModels/EvtSVS.hh +EvtModelReg.o: ../EvtGenModels/EvtTSS.hh ../EvtGenModels/EvtTVSPwave.hh +EvtModelReg.o: ../EvtGenModels/EvtSVVHelAmp.hh +EvtModelReg.o: ../EvtGenModels/EvtSVPHelAmp.hh ../EvtGenModels/EvtSVPCP.hh +EvtModelReg.o: ../EvtGenModels/EvtVVSPwave.hh ../EvtGenModels/EvtDDalitz.hh +EvtModelReg.o: ../EvtGenBase/EvtFlatte.hh ../EvtGenModels/EvtOmegaDalitz.hh +EvtModelReg.o: ../EvtGenModels/EvtPi0Dalitz.hh ../EvtGenBase/EvtDecayProb.hh +EvtModelReg.o: ../EvtGenModels/EvtEtaDalitz.hh ../EvtGenModels/EvtPhsp.hh +EvtModelReg.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtModelReg.o: ../EvtGenModels/EvtBtoXsgamma.hh ../EvtGenModels/EvtBtoXsll.hh +EvtModelReg.o: ../EvtGenModels/EvtBtoXsEtap.hh ../EvtGenModels/EvtSSSCP.hh +EvtModelReg.o: ../EvtGenModels/EvtSSSCPpng.hh ../EvtGenModels/EvtSTSCP.hh +EvtModelReg.o: ../EvtGenModels/EvtSTS.hh ../EvtGenModels/EvtSSSCPT.hh +EvtModelReg.o: ../EvtGenModels/EvtSVSCP.hh ../EvtGenModels/EvtSSDCP.hh +EvtModelReg.o: ../EvtGenModels/EvtSVSNONCPEIGEN.hh +EvtModelReg.o: ../EvtGenModels/EvtSVVNONCPEIGEN.hh +EvtModelReg.o: ../EvtGenModels/EvtSVVCP.hh ../EvtGenModels/EvtSVVCPLH.hh +EvtModelReg.o: ../EvtGenModels/EvtSVSCPLH.hh ../EvtGenModels/EvtSll.hh +EvtModelReg.o: ../EvtGenModels/EvtVll.hh ../EvtGenModels/EvtTaulnunu.hh +EvtModelReg.o: ../EvtGenModels/EvtTauHadnu.hh +EvtModelReg.o: ../EvtGenModels/EvtTauScalarnu.hh +EvtModelReg.o: ../EvtGenModels/EvtKstarnunu.hh +EvtModelReg.o: ../EvtGenModels/EvtbTosllBall.hh +EvtModelReg.o: ../EvtGenModels/EvtSingleParticle.hh +EvtModelReg.o: ../EvtGenModels/EvtVectorIsr.hh +EvtModelReg.o: ../EvtGenModels/EvtBToPlnuBK.hh +EvtModelReg.o: ../EvtGenModels/EvtBToVlnuBall.hh +EvtModelReg.o: ../EvtGenModels/EvtSVVHelCPMix.hh ../EvtGenModels/EvtLb2Lll.hh +EvtModelReg.o: ../EvtGenBase/EvtTensor4C.hh ../EvtGenBase/EvtDiracSpinor.hh +EvtModelReg.o: ../EvtGenBase/EvtVector3R.hh +EvtModelReg.o: ../EvtGenModels/EvtWilsonCoeficients.hh +EvtModelReg.o: ../EvtGenModels/EvtHypNonLepton.hh +EvtModelReg.o: ../EvtGenModels/EvtbTosllAli.hh ../EvtGenModels/EvtHQET.hh +EvtModelReg.o: ../EvtGenModels/EvtHQET2.hh ../EvtGenBase/EvtPDL.hh +EvtModelReg.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtModelReg.o: ../EvtGenModels/EvtHelAmp.hh ../EvtGenModels/EvtPartWave.hh +EvtModelReg.o: ../EvtGenModels/EvtBto2piCPiso.hh +EvtModelReg.o: ../EvtGenModels/EvtBtoKpiCPiso.hh +EvtModelReg.o: ../EvtGenModels/EvtSVSCPiso.hh ../EvtGenModels/EvtVVpipi.hh +EvtModelReg.o: ../EvtGenModels/EvtY3SToY1SpipiMoxhay.hh +EvtModelReg.o: ../EvtGenModels/EvtYmSToYnSpipiCLEO.hh +EvtModelReg.o: ../EvtGenModels/EvtVVPIPI_WEIGHTED.hh +EvtModelReg.o: ../EvtGenModels/EvtVPHOtoVISRHi.hh +EvtModelReg.o: ../EvtGenModels/EvtBTo4piCP.hh ../EvtGenModels/EvtBTo3piCP.hh +EvtModelReg.o: ../EvtGenModels/EvtCBTo3piP00.hh +EvtModelReg.o: ../EvtGenModels/EvtCBTo3piMPP.hh +EvtModelReg.o: ../EvtGenModels/EvtBToKpipiCP.hh ../EvtGenModels/EvtBsquark.hh +EvtModelReg.o: ../EvtGenModels/EvtPhiDalitz.hh ../EvtGenModels/EvtLNuGamma.hh +EvtModelReg.o: ../EvtGenModels/EvtVub.hh ../EvtGenModels/EvtVubHybrid.hh +EvtModelReg.o: ../EvtGenModels/EvtVubNLO.hh ../EvtGenModels/EvtVubBLNP.hh +EvtModelReg.o: ../EvtGenModels/EvtVubBLNPHybrid.hh +EvtModelReg.o: ../EvtGenModels/EvtPto3P.hh +EvtModelReg.o: ../EvtGenModels/EvtIntervalDecayAmp.hh +EvtModelReg.o: ../EvtGenBase/EvtMacros.hh ../EvtGenBase/EvtPdf.hh +EvtModelReg.o: ../EvtGenBase/EvtValError.hh ../EvtGenBase/EvtPredGen.hh +EvtModelReg.o: ../EvtGenBase/EvtStreamInputIterator.hh +EvtModelReg.o: ../EvtGenBase/EvtStreamAdapter.hh +EvtModelReg.o: /usr/include/c++/3.4.6/iterator +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stream_iterator.h +EvtModelReg.o: ../EvtGenBase/EvtPdfMax.hh ../EvtGenBase/EvtRandom.hh +EvtModelReg.o: ../EvtGenBase/EvtAmpFactory.hh +EvtModelReg.o: ../EvtGenBase/EvtAmplitudeSum.hh ../EvtGenBase/EvtAmplitude.hh +EvtModelReg.o: ../EvtGenBase/EvtPdfSum.hh +EvtModelReg.o: ../EvtGenBase/EvtMultiChannelParser.hh +EvtModelReg.o: ../EvtGenBase/EvtAmpPdf.hh ../EvtGenBase/EvtCPUtil.hh +EvtModelReg.o: ../EvtGenBase/EvtCyclic3.hh ../EvtGenBase/EvtDalitzPoint.hh +EvtModelReg.o: ../EvtGenBase/EvtDalitzCoord.hh ../EvtGenBase/EvtDalitzPlot.hh +EvtModelReg.o: ../EvtGenBase/EvtTwoBodyVertex.hh +EvtModelReg.o: ../EvtGenBase/EvtTwoBodyKine.hh +EvtModelReg.o: ../EvtGenBase/EvtBlattWeisskopf.hh +EvtModelReg.o: ../EvtGenBase/EvtDecayMode.hh ../EvtGenModels/EvtBtoKD3P.hh +EvtModelReg.o: ../EvtGenModels/EvtKstarstargamma.hh +EvtModelReg.o: ../EvtGenModels/EvtFlatQ2.hh +EvtModelReg.o: ../EvtGenModels/EvtLambdaP_BarGamma.hh +EvtModelReg.o: ../EvtGenModels/EvtBBScalar.hh +EvtModelReg.o: ../EvtGenBase/EvtScalarParticle.hh +EvtModelReg.o: ../EvtGenBase/EvtDiracParticle.hh ../EvtGenBase/EvtVector4C.hh +EvtModelReg.o: ../EvtGenBase/EvtVector3C.hh /usr/include/c++/3.4.6/bitset +EvtModelReg.o: ../EvtGenModels/EvtKKLambdaC.hh +EvtModelReg.o: ../EvtGenModels/EvtMultibody.hh ../EvtGenBase/EvtMTree.hh +EvtModelReg.o: ../EvtGenBase/EvtSpinAmp.hh /usr/include/c++/3.4.6/cstdarg +EvtModelReg.o: ../EvtGenBase/EvtMNode.hh ../EvtGenBase/EvtSymTable.hh +EvtModelReg.o: ../EvtGenBase/EvtMParticle.hh ../EvtGenBase/EvtMRes.hh +EvtModelReg.o: ../EvtGenModels/EvtJetSetCDF.hh +EvtModelReg.o: ../EvtGenModels/EvtJscontCDF.hh ../EvtGenModels/EvtPythia.hh +EvtModelReg.o: ../EvtGenModels/EvtPyGaGa.hh ../EvtGenModels/EvtPycont.hh +EvtModelReg.o: ../EvtGenModels/EvtDMix.hh ../EvtGenModels/EvtD0mixDalitz.hh +EvtModelReg.o: ../EvtGenBase/EvtDalitzReso.hh ../EvtGenModels/EvtModelReg.hh +EvtModelReg.o: /usr/include/c++/3.4.6/list +EvtModelReg.o: /usr/include/c++/3.4.6/bits/stl_list.h +EvtModelReg.o: /usr/include/c++/3.4.6/bits/list.tcc +EvtMultibody.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtGenKine.hh +EvtMultibody.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtMultibody.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtMultibody.o: /usr/include/c++/3.4.6/iostream +EvtMultibody.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtMultibody.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtMultibody.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtMultibody.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtMultibody.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtMultibody.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtMultibody.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtMultibody.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtMultibody.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtMultibody.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtMultibody.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtMultibody.o: /usr/include/libio.h /usr/include/_G_config.h +EvtMultibody.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtMultibody.o: /usr/include/gconv.h +EvtMultibody.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtMultibody.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtMultibody.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtMultibody.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtMultibody.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtMultibody.o: /usr/include/libintl.h +EvtMultibody.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtMultibody.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtMultibody.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtMultibody.o: /usr/include/pthread.h /usr/include/sched.h +EvtMultibody.o: /usr/include/time.h /usr/include/bits/sched.h +EvtMultibody.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtMultibody.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtMultibody.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtMultibody.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtMultibody.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtMultibody.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtMultibody.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtMultibody.o: /usr/include/stdint.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtMultibody.o: /usr/include/c++/3.4.6/exception_defines.h +EvtMultibody.o: /usr/include/c++/3.4.6/exception +EvtMultibody.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtMultibody.o: /usr/include/c++/3.4.6/climits +EvtMultibody.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtMultibody.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtMultibody.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtMultibody.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtMultibody.o: /usr/include/c++/3.4.6/debug/debug.h +EvtMultibody.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtMultibody.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtMultibody.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtMultibody.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtMultibody.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtMultibody.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtMultibody.o: /usr/include/c++/3.4.6/limits +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtMultibody.o: /usr/include/c++/3.4.6/algorithm +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtMultibody.o: /usr/include/c++/3.4.6/streambuf +EvtMultibody.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtMultibody.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtMultibody.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtMultibody.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtMultibody.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtMultibody.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtMultibody.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtMultibody.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtMultibody.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtMultibody.o: /usr/include/c++/3.4.6/locale +EvtMultibody.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtMultibody.o: /usr/include/c++/3.4.6/typeinfo +EvtMultibody.o: /usr/include/c++/3.4.6/istream +EvtMultibody.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtMultibody.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtMultibody.o: /usr/include/c++/3.4.6/vector +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtMultibody.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtMultibody.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtMultibody.o: ../EvtGenBase/EvtResonance.hh ../EvtGenBase/EvtVector4R.hh +EvtMultibody.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtMultibody.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtMultibody.o: ../EvtGenBase/EvtResonance2.hh +EvtMultibody.o: ../EvtGenModels/EvtMultibody.hh ../EvtGenBase/EvtMTree.hh +EvtMultibody.o: ../EvtGenBase/EvtSpinAmp.hh ../EvtGenBase/EvtComplex.hh +EvtMultibody.o: ../EvtGenBase/EvtConst.hh /usr/include/c++/3.4.6/cstdarg +EvtMultibody.o: ../EvtGenBase/EvtMNode.hh ../EvtGenBase/EvtSymTable.hh +EvtMultibody.o: ../EvtGenBase/EvtMParticle.hh ../EvtGenBase/EvtMRes.hh +EvtMultibody.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtMultibody.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtdFunction.hh +EvtMultibody.o: ../EvtGenBase/EvtKine.hh ../EvtGenBase/EvtParticle.hh +EvtMultibody.o: ../EvtGenBase/EvtSpinDensity.hh +EvtOmegaDalitz.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtOmegaDalitz.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtOmegaDalitz.o: /usr/include/gnu/stubs.h +EvtOmegaDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtOmegaDalitz.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtOmegaDalitz.o: ../EvtGenBase/EvtVector4R.hh +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/iostream +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/iosfwd +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/cstring +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtOmegaDalitz.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtOmegaDalitz.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtOmegaDalitz.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtOmegaDalitz.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtOmegaDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtOmegaDalitz.o: /usr/include/bits/stdio_lim.h +EvtOmegaDalitz.o: /usr/include/bits/sys_errlist.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtOmegaDalitz.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtOmegaDalitz.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtOmegaDalitz.o: /usr/include/libintl.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtOmegaDalitz.o: /usr/include/pthread.h /usr/include/sched.h +EvtOmegaDalitz.o: /usr/include/time.h /usr/include/bits/sched.h +EvtOmegaDalitz.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtOmegaDalitz.o: /usr/include/bits/pthreadtypes.h +EvtOmegaDalitz.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtOmegaDalitz.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtOmegaDalitz.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtOmegaDalitz.o: /usr/include/ctype.h /usr/include/endian.h +EvtOmegaDalitz.o: /usr/include/bits/endian.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtOmegaDalitz.o: /usr/include/stdint.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/exception_defines.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/exception +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/climits +EvtOmegaDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtOmegaDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtOmegaDalitz.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/new +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/debug/debug.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/cassert +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/limits +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/algorithm +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/streambuf +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/locale +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/typeinfo +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/istream +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtOmegaDalitz.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtOmegaDalitz.o: /usr/include/bits/mathcalls.h +EvtOmegaDalitz.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtOmegaDalitz.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtOmegaDalitz.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtOmegaDalitz.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtTensor4C.hh +EvtOmegaDalitz.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtOmegaDalitz.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtPDL.hh +EvtOmegaDalitz.o: ../EvtGenBase/EvtPartProp.hh +EvtOmegaDalitz.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/vector +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtOmegaDalitz.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtOmegaDalitz.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtOmegaDalitz.o: ../EvtGenModels/EvtOmegaDalitz.hh +EvtOmegaDalitz.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtOmegaDalitz.o: ../EvtGenBase/EvtAmp.hh +EvtPartWave.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtPartWave.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtPartWave.o: /usr/include/gnu/stubs.h +EvtPartWave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtPartWave.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtPartWave.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtPartWave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtPartWave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtPartWave.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtPartWave.o: /usr/include/c++/3.4.6/iosfwd +EvtPartWave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtPartWave.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtPartWave.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtPartWave.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtPartWave.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtPartWave.o: /usr/include/libio.h /usr/include/_G_config.h +EvtPartWave.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtPartWave.o: /usr/include/gconv.h +EvtPartWave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtPartWave.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtPartWave.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtPartWave.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtPartWave.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtPartWave.o: /usr/include/libintl.h +EvtPartWave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtPartWave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtPartWave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtPartWave.o: /usr/include/pthread.h /usr/include/sched.h +EvtPartWave.o: /usr/include/time.h /usr/include/bits/sched.h +EvtPartWave.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtPartWave.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtPartWave.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtPartWave.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtPartWave.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtPartWave.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtPartWave.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtPartWave.o: /usr/include/stdint.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtPartWave.o: /usr/include/c++/3.4.6/exception_defines.h +EvtPartWave.o: /usr/include/c++/3.4.6/exception +EvtPartWave.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtPartWave.o: /usr/include/c++/3.4.6/climits +EvtPartWave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtPartWave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtPartWave.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtPartWave.o: /usr/include/c++/3.4.6/new +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtPartWave.o: /usr/include/c++/3.4.6/debug/debug.h +EvtPartWave.o: /usr/include/c++/3.4.6/cassert +EvtPartWave.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtPartWave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtPartWave.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtPartWave.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtPartWave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtPartWave.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtPartWave.o: /usr/include/c++/3.4.6/limits +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtPartWave.o: /usr/include/c++/3.4.6/algorithm +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtPartWave.o: /usr/include/c++/3.4.6/streambuf +EvtPartWave.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtPartWave.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtPartWave.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtPartWave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtPartWave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtPartWave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtPartWave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtPartWave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtPartWave.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtPartWave.o: /usr/include/c++/3.4.6/locale +EvtPartWave.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtPartWave.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtPartWave.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtPartWave.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtPartWave.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtPartWave.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtPartWave.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtPartWave.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtPartWave.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtPartWave.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtPartWave.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtPartWave.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtPartWave.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtPartWave.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtTensor4C.hh +EvtPartWave.o: ../EvtGenModels/EvtPartWave.hh ../EvtGenBase/EvtDecayAmp.hh +EvtPartWave.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtPartWave.o: ../EvtGenBase/EvtEvalHelAmp.hh ../EvtGenBase/EvtKine.hh +EvtPartWave.o: ../EvtGenBase/EvtCGCoefSingle.hh +EvtPFermi.o: ../EvtGenBase/EvtPatches.hh ../EvtGenModels/EvtPFermi.hh +EvtPFermi.o: ../EvtGenBase/EvtReport.hh /usr/include/c++/3.4.6/iostream +EvtPFermi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtPFermi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtPFermi.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtPFermi.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtPFermi.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtPFermi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtPFermi.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtPFermi.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtPFermi.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtPFermi.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtPFermi.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtPFermi.o: /usr/include/libio.h /usr/include/_G_config.h +EvtPFermi.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtPFermi.o: /usr/include/gconv.h +EvtPFermi.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtPFermi.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtPFermi.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtPFermi.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtPFermi.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtPFermi.o: /usr/include/libintl.h +EvtPFermi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtPFermi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtPFermi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtPFermi.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtPFermi.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtPFermi.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtPFermi.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtPFermi.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtPFermi.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtPFermi.o: /usr/include/ctype.h /usr/include/endian.h +EvtPFermi.o: /usr/include/bits/endian.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtPFermi.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtPFermi.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtPFermi.o: /usr/include/c++/3.4.6/exception_defines.h +EvtPFermi.o: /usr/include/c++/3.4.6/exception +EvtPFermi.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtPFermi.o: /usr/include/c++/3.4.6/climits +EvtPFermi.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtPFermi.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtPFermi.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtPFermi.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtPFermi.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtPFermi.o: /usr/include/c++/3.4.6/debug/debug.h +EvtPFermi.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtPFermi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtPFermi.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtPFermi.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtPFermi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtPFermi.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtPFermi.o: /usr/include/c++/3.4.6/limits +EvtPFermi.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtPFermi.o: /usr/include/c++/3.4.6/algorithm +EvtPFermi.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtPFermi.o: /usr/include/c++/3.4.6/streambuf +EvtPFermi.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtPFermi.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtPFermi.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtPFermi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtPFermi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtPFermi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtPFermi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtPFermi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtPFermi.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtPFermi.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtPFermi.o: /usr/include/c++/3.4.6/locale +EvtPFermi.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtPFermi.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtPFermi.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtPFermi.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtPFermi.o: /usr/include/bits/mathcalls.h +EvtPhiDalitz.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtPhiDalitz.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtPhiDalitz.o: /usr/include/gnu/stubs.h +EvtPhiDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtPhiDalitz.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtPhiDalitz.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtPhiDalitz.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtPhiDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtPhiDalitz.o: /usr/include/c++/3.4.6/iosfwd +EvtPhiDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtPhiDalitz.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtPhiDalitz.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtPhiDalitz.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtPhiDalitz.o: /usr/include/libio.h /usr/include/_G_config.h +EvtPhiDalitz.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtPhiDalitz.o: /usr/include/gconv.h +EvtPhiDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtPhiDalitz.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtPhiDalitz.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtPhiDalitz.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtPhiDalitz.o: /usr/include/libintl.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtPhiDalitz.o: /usr/include/pthread.h /usr/include/sched.h +EvtPhiDalitz.o: /usr/include/time.h /usr/include/bits/sched.h +EvtPhiDalitz.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtPhiDalitz.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtPhiDalitz.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtPhiDalitz.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtPhiDalitz.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtPhiDalitz.o: /usr/include/stdint.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/exception_defines.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/exception +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/climits +EvtPhiDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtPhiDalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtPhiDalitz.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtPhiDalitz.o: /usr/include/c++/3.4.6/new +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/debug/debug.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/limits +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/algorithm +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtPhiDalitz.o: /usr/include/c++/3.4.6/streambuf +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtPhiDalitz.o: /usr/include/c++/3.4.6/locale +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtPhiDalitz.o: /usr/include/c++/3.4.6/typeinfo +EvtPhiDalitz.o: /usr/include/c++/3.4.6/istream +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtPhiDalitz.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtSpinDensity.hh +EvtPhiDalitz.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtPhiDalitz.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtPhiDalitz.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtPhiDalitz.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtPhiDalitz.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtPhiDalitz.o: /usr/include/c++/3.4.6/vector +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtPhiDalitz.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtPhiDalitz.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtPhiDalitz.o: ../EvtGenModels/EvtPhiDalitz.hh ../EvtGenBase/EvtDecayAmp.hh +EvtPhiDalitz.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtPHOTOS.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtIdSet.hh +EvtPHOTOS.o: ../EvtGenBase/EvtId.hh /usr/include/c++/3.4.6/iostream +EvtPHOTOS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtPHOTOS.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtPHOTOS.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtPHOTOS.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtPHOTOS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtPHOTOS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtPHOTOS.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtPHOTOS.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtPHOTOS.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtPHOTOS.o: /usr/include/libio.h /usr/include/_G_config.h +EvtPHOTOS.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtPHOTOS.o: /usr/include/gconv.h +EvtPHOTOS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtPHOTOS.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtPHOTOS.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtPHOTOS.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtPHOTOS.o: /usr/include/libintl.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtPHOTOS.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtPHOTOS.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtPHOTOS.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtPHOTOS.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtPHOTOS.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtPHOTOS.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtPHOTOS.o: /usr/include/ctype.h /usr/include/endian.h +EvtPHOTOS.o: /usr/include/bits/endian.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtPHOTOS.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/exception_defines.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/exception +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/climits +EvtPHOTOS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtPHOTOS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtPHOTOS.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtPHOTOS.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/debug/debug.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/limits +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/algorithm +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtPHOTOS.o: /usr/include/c++/3.4.6/streambuf +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtPHOTOS.o: /usr/include/c++/3.4.6/locale +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtPHOTOS.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtPHOTOS.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtPHOTOS.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtPHOTOS.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtPHOTOS.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtPHOTOS.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtSpinType.hh +EvtPHOTOS.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtPhotonParticle.hh +EvtPHOTOS.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtPHOTOS.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtPDL.hh +EvtPHOTOS.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtPHOTOS.o: /usr/include/c++/3.4.6/vector +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtPHOTOS.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtPHOTOS.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtPHOTOS.o: ../EvtGenModels/EvtPHOTOS.hh ../EvtGenBase/EvtAbsRadCorr.hh +EvtPhsp.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtPhsp.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtPhsp.o: /usr/include/gnu/stubs.h +EvtPhsp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtPhsp.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtPhsp.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtPhsp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtPhsp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtPhsp.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtPhsp.o: /usr/include/c++/3.4.6/iosfwd +EvtPhsp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtPhsp.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtPhsp.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtPhsp.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtPhsp.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtPhsp.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h +EvtPhsp.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtPhsp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtPhsp.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtPhsp.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtPhsp.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtPhsp.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtPhsp.o: /usr/include/libintl.h +EvtPhsp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtPhsp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtPhsp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtPhsp.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtPhsp.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtPhsp.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtPhsp.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtPhsp.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtPhsp.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtPhsp.o: /usr/include/ctype.h /usr/include/endian.h +EvtPhsp.o: /usr/include/bits/endian.h /usr/include/c++/3.4.6/bits/stringfwd.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtPhsp.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtPhsp.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtPhsp.o: /usr/include/c++/3.4.6/exception_defines.h +EvtPhsp.o: /usr/include/c++/3.4.6/exception +EvtPhsp.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtPhsp.o: /usr/include/c++/3.4.6/climits +EvtPhsp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtPhsp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtPhsp.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtPhsp.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtPhsp.o: /usr/include/c++/3.4.6/debug/debug.h +EvtPhsp.o: /usr/include/c++/3.4.6/cassert +EvtPhsp.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtPhsp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtPhsp.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtPhsp.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtPhsp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtPhsp.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtPhsp.o: /usr/include/c++/3.4.6/limits +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtPhsp.o: /usr/include/c++/3.4.6/algorithm +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtPhsp.o: /usr/include/c++/3.4.6/streambuf +EvtPhsp.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtPhsp.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtPhsp.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtPhsp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtPhsp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtPhsp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtPhsp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtPhsp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtPhsp.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtPhsp.o: /usr/include/c++/3.4.6/locale +EvtPhsp.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtPhsp.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtPhsp.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtPhsp.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtPhsp.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtPhsp.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtPhsp.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtPhsp.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtPhsp.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtPhsp.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtPhsp.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtPhsp.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtPhsp.o: ../EvtGenModels/EvtPhsp.hh ../EvtGenBase/EvtDecayIncoherent.hh +EvtPhsp.o: ../EvtGenBase/EvtDecayBase.hh +EvtPi0Dalitz.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtPi0Dalitz.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtPi0Dalitz.o: /usr/include/gnu/stubs.h +EvtPi0Dalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/fstream /usr/include/c++/3.4.6/istream +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtPi0Dalitz.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtPi0Dalitz.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtPi0Dalitz.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtPi0Dalitz.o: /usr/include/libio.h /usr/include/_G_config.h +EvtPi0Dalitz.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtPi0Dalitz.o: /usr/include/gconv.h +EvtPi0Dalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtPi0Dalitz.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtPi0Dalitz.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtPi0Dalitz.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtPi0Dalitz.o: /usr/include/libintl.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtPi0Dalitz.o: /usr/include/pthread.h /usr/include/sched.h +EvtPi0Dalitz.o: /usr/include/time.h /usr/include/bits/sched.h +EvtPi0Dalitz.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtPi0Dalitz.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtPi0Dalitz.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtPi0Dalitz.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtPi0Dalitz.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtPi0Dalitz.o: /usr/include/stdint.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/exception_defines.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/exception +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/climits +EvtPi0Dalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtPi0Dalitz.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtPi0Dalitz.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/new +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/debug/debug.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/limits +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/algorithm +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/streambuf +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/locale +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/typeinfo +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/ostream +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/basic_file.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/fstream.tcc +EvtPi0Dalitz.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtParticle.hh +EvtPi0Dalitz.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtPi0Dalitz.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtPi0Dalitz.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtPi0Dalitz.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtPi0Dalitz.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtPi0Dalitz.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtPi0Dalitz.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtPi0Dalitz.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/vector +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtPi0Dalitz.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtPi0Dalitz.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtPi0Dalitz.o: ../EvtGenModels/EvtPi0Dalitz.hh ../EvtGenBase/EvtDecayProb.hh +EvtPi0Dalitz.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtVector4C.hh +EvtPi0Dalitz.o: ../EvtGenBase/EvtVector3C.hh ../EvtGenBase/EvtVector3R.hh +EvtPi0Dalitz.o: ../EvtGenBase/EvtDiracSpinor.hh ../EvtGenBase/EvtTensor4C.hh +EvtPropSLPole.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtPropSLPole.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtPropSLPole.o: /usr/include/gnu/stubs.h +EvtPropSLPole.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtPropSLPole.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtPropSLPole.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtPropSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtPropSLPole.o: /usr/include/c++/3.4.6/iosfwd +EvtPropSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/cstring +EvtPropSLPole.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtPropSLPole.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtPropSLPole.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtPropSLPole.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtPropSLPole.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtPropSLPole.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtPropSLPole.o: /usr/include/bits/stdio_lim.h +EvtPropSLPole.o: /usr/include/bits/sys_errlist.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtPropSLPole.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtPropSLPole.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtPropSLPole.o: /usr/include/libintl.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtPropSLPole.o: /usr/include/pthread.h /usr/include/sched.h +EvtPropSLPole.o: /usr/include/time.h /usr/include/bits/sched.h +EvtPropSLPole.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtPropSLPole.o: /usr/include/bits/pthreadtypes.h +EvtPropSLPole.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtPropSLPole.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtPropSLPole.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtPropSLPole.o: /usr/include/ctype.h /usr/include/endian.h +EvtPropSLPole.o: /usr/include/bits/endian.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtPropSLPole.o: /usr/include/stdint.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/exception_defines.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/exception +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/climits +EvtPropSLPole.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtPropSLPole.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtPropSLPole.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtPropSLPole.o: /usr/include/c++/3.4.6/new +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/debug/debug.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/cassert +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/limits +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/algorithm +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtPropSLPole.o: /usr/include/c++/3.4.6/streambuf +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtPropSLPole.o: /usr/include/c++/3.4.6/locale +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtPropSLPole.o: /usr/include/c++/3.4.6/typeinfo +EvtPropSLPole.o: /usr/include/c++/3.4.6/istream +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtPropSLPole.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtPropSLPole.o: /usr/include/bits/mathcalls.h +EvtPropSLPole.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtPropSLPole.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtPropSLPole.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtPropSLPole.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtPropSLPole.o: ../EvtGenBase/EvtPartProp.hh +EvtPropSLPole.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtPropSLPole.o: /usr/include/c++/3.4.6/vector +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtPropSLPole.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtPropSLPole.o: ../EvtGenModels/EvtPropSLPole.hh +EvtPropSLPole.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtPropSLPole.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtPropSLPole.o: ../EvtGenBase/EvtSemiLeptonicAmp.hh +EvtPropSLPole.o: ../EvtGenBase/EvtPoint1D.hh ../EvtGenModels/EvtSLPoleFF.hh +EvtPropSLPole.o: ../EvtGenBase/EvtSemiLeptonicScalarAmp.hh +EvtPropSLPole.o: ../EvtGenBase/EvtSemiLeptonicVectorAmp.hh +EvtPropSLPole.o: ../EvtGenBase/EvtSemiLeptonicTensorAmp.hh +EvtPropSLPole.o: ../EvtGenBase/EvtIntervalFlatPdf.hh ../EvtGenBase/EvtPdf.hh +EvtPropSLPole.o: ../EvtGenBase/EvtValError.hh ../EvtGenBase/EvtPredGen.hh +EvtPropSLPole.o: ../EvtGenBase/EvtStreamInputIterator.hh +EvtPropSLPole.o: ../EvtGenBase/EvtStreamAdapter.hh +EvtPropSLPole.o: /usr/include/c++/3.4.6/iterator +EvtPropSLPole.o: /usr/include/c++/3.4.6/bits/stream_iterator.h +EvtPropSLPole.o: ../EvtGenBase/EvtPdfMax.hh ../EvtGenBase/EvtMacros.hh +EvtPropSLPole.o: ../EvtGenBase/EvtRandom.hh +EvtPropSLPole.o: ../EvtGenBase/EvtScalarParticle.hh +EvtPropSLPole.o: ../EvtGenBase/EvtVectorParticle.hh +EvtPropSLPole.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtPropSLPole.o: ../EvtGenBase/EvtVector3R.hh +EvtPropSLPole.o: ../EvtGenBase/EvtTensorParticle.hh +EvtPropSLPole.o: ../EvtGenBase/EvtTensor4C.hh +EvtPropSLPole.o: ../EvtGenBase/EvtTwoBodyVertex.hh +EvtPropSLPole.o: ../EvtGenBase/EvtTwoBodyKine.hh +EvtPropSLPole.o: ../EvtGenBase/EvtBlattWeisskopf.hh +EvtPropSLPole.o: ../EvtGenBase/EvtPropBreitWignerRel.hh +EvtPropSLPole.o: ../EvtGenBase/EvtPropagator.hh ../EvtGenBase/EvtAmplitude.hh +EvtPropSLPole.o: ../EvtGenBase/EvtAmpPdf.hh ../EvtGenBase/EvtMassAmp.hh +EvtPropSLPole.o: ../EvtGenBase/EvtDecayTable.hh +EvtPropSLPole.o: ../EvtGenBase/EvtParticleDecayList.hh +EvtPropSLPole.o: ../EvtGenBase/EvtParticleDecay.hh +EvtPto3P.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtPDL.hh +EvtPto3P.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtSpinType.hh +EvtPto3P.o: ../EvtGenBase/EvtReport.hh /usr/include/c++/3.4.6/iostream +EvtPto3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtPto3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtPto3P.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtPto3P.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtPto3P.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtPto3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtPto3P.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtPto3P.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtPto3P.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtPto3P.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtPto3P.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtPto3P.o: /usr/include/libio.h /usr/include/_G_config.h +EvtPto3P.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtPto3P.o: /usr/include/gconv.h +EvtPto3P.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtPto3P.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtPto3P.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtPto3P.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtPto3P.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtPto3P.o: /usr/include/libintl.h +EvtPto3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtPto3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtPto3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtPto3P.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtPto3P.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtPto3P.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtPto3P.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtPto3P.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtPto3P.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtPto3P.o: /usr/include/ctype.h /usr/include/endian.h +EvtPto3P.o: /usr/include/bits/endian.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtPto3P.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtPto3P.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtPto3P.o: /usr/include/c++/3.4.6/exception_defines.h +EvtPto3P.o: /usr/include/c++/3.4.6/exception +EvtPto3P.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtPto3P.o: /usr/include/c++/3.4.6/climits +EvtPto3P.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtPto3P.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtPto3P.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtPto3P.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtPto3P.o: /usr/include/c++/3.4.6/debug/debug.h +EvtPto3P.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtPto3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtPto3P.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtPto3P.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtPto3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtPto3P.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtPto3P.o: /usr/include/c++/3.4.6/limits +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtPto3P.o: /usr/include/c++/3.4.6/algorithm +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtPto3P.o: /usr/include/c++/3.4.6/streambuf +EvtPto3P.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtPto3P.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtPto3P.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtPto3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtPto3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtPto3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtPto3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtPto3P.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtPto3P.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtPto3P.o: /usr/include/c++/3.4.6/locale +EvtPto3P.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtPto3P.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtPto3P.o: /usr/include/c++/3.4.6/bits/istream.tcc ../EvtGenBase/EvtId.hh +EvtPto3P.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtPto3P.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtPto3P.o: ../EvtGenModels/EvtPto3P.hh ../EvtGenBase/EvtVector4R.hh +EvtPto3P.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtPto3P.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtPto3P.o: ../EvtGenModels/EvtIntervalDecayAmp.hh +EvtPto3P.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtPto3P.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtComplex.hh +EvtPto3P.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtParticle.hh +EvtPto3P.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtMacros.hh +EvtPto3P.o: ../EvtGenBase/EvtPdf.hh ../EvtGenBase/EvtValError.hh +EvtPto3P.o: ../EvtGenBase/EvtPredGen.hh +EvtPto3P.o: ../EvtGenBase/EvtStreamInputIterator.hh +EvtPto3P.o: ../EvtGenBase/EvtStreamAdapter.hh /usr/include/c++/3.4.6/iterator +EvtPto3P.o: /usr/include/c++/3.4.6/bits/stream_iterator.h +EvtPto3P.o: ../EvtGenBase/EvtPdfMax.hh ../EvtGenBase/EvtRandom.hh +EvtPto3P.o: ../EvtGenBase/EvtAmpFactory.hh ../EvtGenBase/EvtAmplitudeSum.hh +EvtPto3P.o: ../EvtGenBase/EvtAmplitude.hh ../EvtGenBase/EvtPdfSum.hh +EvtPto3P.o: ../EvtGenBase/EvtMultiChannelParser.hh ../EvtGenBase/EvtAmpPdf.hh +EvtPto3P.o: ../EvtGenBase/EvtCPUtil.hh ../EvtGenBase/EvtCyclic3.hh +EvtPto3P.o: ../EvtGenBase/EvtDalitzPoint.hh ../EvtGenBase/EvtDalitzCoord.hh +EvtPto3P.o: ../EvtGenBase/EvtDalitzPlot.hh ../EvtGenBase/EvtTwoBodyVertex.hh +EvtPto3P.o: ../EvtGenBase/EvtTwoBodyKine.hh +EvtPto3P.o: ../EvtGenBase/EvtBlattWeisskopf.hh ../EvtGenBase/EvtDecayMode.hh +EvtPto3P.o: ../EvtGenBase/EvtPto3PAmpFactory.hh +EvtPycont.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtPycont.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtPycont.o: /usr/include/gnu/stubs.h +EvtPycont.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtPycont.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtPycont.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtPycont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtPycont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtPycont.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtPycont.o: /usr/include/c++/3.4.6/iosfwd +EvtPycont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtPycont.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtPycont.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtPycont.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtPycont.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtPycont.o: /usr/include/libio.h /usr/include/_G_config.h +EvtPycont.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtPycont.o: /usr/include/gconv.h +EvtPycont.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtPycont.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtPycont.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtPycont.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtPycont.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtPycont.o: /usr/include/libintl.h +EvtPycont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtPycont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtPycont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtPycont.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtPycont.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtPycont.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtPycont.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtPycont.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtPycont.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtPycont.o: /usr/include/ctype.h /usr/include/endian.h +EvtPycont.o: /usr/include/bits/endian.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtPycont.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtPycont.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtPycont.o: /usr/include/c++/3.4.6/exception_defines.h +EvtPycont.o: /usr/include/c++/3.4.6/exception +EvtPycont.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtPycont.o: /usr/include/c++/3.4.6/climits +EvtPycont.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtPycont.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtPycont.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtPycont.o: /usr/include/c++/3.4.6/new +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtPycont.o: /usr/include/c++/3.4.6/debug/debug.h +EvtPycont.o: /usr/include/c++/3.4.6/cassert +EvtPycont.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtPycont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtPycont.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtPycont.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtPycont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtPycont.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtPycont.o: /usr/include/c++/3.4.6/limits +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtPycont.o: /usr/include/c++/3.4.6/algorithm +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtPycont.o: /usr/include/c++/3.4.6/streambuf +EvtPycont.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtPycont.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtPycont.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtPycont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtPycont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtPycont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtPycont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtPycont.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtPycont.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtPycont.o: /usr/include/c++/3.4.6/locale +EvtPycont.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtPycont.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtPycont.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtPycont.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtPycont.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtPycont.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtPycont.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtPycont.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtDecayTable.hh +EvtPycont.o: ../EvtGenBase/EvtDecayBase.hh /usr/include/c++/3.4.6/vector +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtPycont.o: ../EvtGenBase/EvtParticleDecayList.hh +EvtPycont.o: ../EvtGenBase/EvtParticleDecay.hh ../EvtGenBase/EvtPDL.hh +EvtPycont.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtPycont.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtPycont.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtPycont.o: ../EvtGenModels/EvtPycont.hh ../EvtGenBase/EvtDecayIncoherent.hh +EvtPycont.o: ../EvtGenModels/EvtPythia.hh +EvtPyGaGa.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtPyGaGa.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtPyGaGa.o: /usr/include/gnu/stubs.h +EvtPyGaGa.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtPyGaGa.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtPyGaGa.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtPyGaGa.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtPyGaGa.o: /usr/include/c++/3.4.6/iosfwd +EvtPyGaGa.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtPyGaGa.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtPyGaGa.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtPyGaGa.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtPyGaGa.o: /usr/include/libio.h /usr/include/_G_config.h +EvtPyGaGa.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtPyGaGa.o: /usr/include/gconv.h +EvtPyGaGa.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtPyGaGa.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtPyGaGa.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtPyGaGa.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtPyGaGa.o: /usr/include/libintl.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtPyGaGa.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtPyGaGa.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtPyGaGa.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtPyGaGa.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtPyGaGa.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtPyGaGa.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtPyGaGa.o: /usr/include/ctype.h /usr/include/endian.h +EvtPyGaGa.o: /usr/include/bits/endian.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtPyGaGa.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/exception_defines.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/exception +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/climits +EvtPyGaGa.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtPyGaGa.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtPyGaGa.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtPyGaGa.o: /usr/include/c++/3.4.6/new +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/debug/debug.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/cassert +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/limits +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/algorithm +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtPyGaGa.o: /usr/include/c++/3.4.6/streambuf +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtPyGaGa.o: /usr/include/c++/3.4.6/locale +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtPyGaGa.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtPyGaGa.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtPyGaGa.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtPyGaGa.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtPyGaGa.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtPyGaGa.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtDecayTable.hh +EvtPyGaGa.o: ../EvtGenBase/EvtDecayBase.hh /usr/include/c++/3.4.6/vector +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtPyGaGa.o: ../EvtGenBase/EvtParticleDecayList.hh +EvtPyGaGa.o: ../EvtGenBase/EvtParticleDecay.hh ../EvtGenBase/EvtPDL.hh +EvtPyGaGa.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtPyGaGa.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtPyGaGa.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtPyGaGa.o: ../EvtGenModels/EvtPyGaGa.hh ../EvtGenBase/EvtDecayIncoherent.hh +EvtPyGaGa.o: ../EvtGenModels/EvtPythia.hh +EvtPythia.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtParticle.hh +EvtPythia.o: /usr/include/assert.h /usr/include/features.h +EvtPythia.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h +EvtPythia.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtPythia.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtPythia.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtPythia.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtPythia.o: /usr/include/c++/3.4.6/iosfwd +EvtPythia.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtPythia.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtPythia.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtPythia.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtPythia.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtPythia.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtPythia.o: /usr/include/libio.h /usr/include/_G_config.h +EvtPythia.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtPythia.o: /usr/include/gconv.h +EvtPythia.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtPythia.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtPythia.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtPythia.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtPythia.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtPythia.o: /usr/include/libintl.h +EvtPythia.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtPythia.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtPythia.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtPythia.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtPythia.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtPythia.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtPythia.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtPythia.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtPythia.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtPythia.o: /usr/include/ctype.h /usr/include/endian.h +EvtPythia.o: /usr/include/bits/endian.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtPythia.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtPythia.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtPythia.o: /usr/include/c++/3.4.6/exception_defines.h +EvtPythia.o: /usr/include/c++/3.4.6/exception +EvtPythia.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtPythia.o: /usr/include/c++/3.4.6/climits +EvtPythia.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtPythia.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtPythia.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtPythia.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtPythia.o: /usr/include/c++/3.4.6/debug/debug.h +EvtPythia.o: /usr/include/c++/3.4.6/cassert +EvtPythia.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtPythia.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtPythia.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtPythia.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtPythia.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtPythia.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtPythia.o: /usr/include/c++/3.4.6/limits +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtPythia.o: /usr/include/c++/3.4.6/algorithm +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtPythia.o: /usr/include/c++/3.4.6/streambuf +EvtPythia.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtPythia.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtPythia.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtPythia.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtPythia.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtPythia.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtPythia.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtPythia.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtPythia.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtPythia.o: /usr/include/c++/3.4.6/locale +EvtPythia.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtPythia.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtPythia.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtPythia.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtPythia.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtPythia.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtPythia.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtPythia.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtStringParticle.hh +EvtPythia.o: ../EvtGenBase/EvtDecayTable.hh ../EvtGenBase/EvtDecayBase.hh +EvtPythia.o: /usr/include/c++/3.4.6/vector +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtPythia.o: ../EvtGenBase/EvtParticleDecayList.hh +EvtPythia.o: ../EvtGenBase/EvtParticleDecay.hh ../EvtGenBase/EvtPDL.hh +EvtPythia.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtPythia.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtPythia.o: ../EvtGenModels/EvtPythia.hh ../EvtGenBase/EvtDecayIncoherent.hh +EvtPythia.o: /usr/include/c++/3.4.6/iomanip /usr/include/c++/3.4.6/functional +EvtPythia.o: /usr/include/c++/3.4.6/fstream +EvtPythia.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/basic_file.h +EvtPythia.o: /usr/include/c++/3.4.6/bits/fstream.tcc +EvtSingleParticle.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSingleParticle.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSingleParticle.o: /usr/include/gnu/stubs.h +EvtSingleParticle.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSingleParticle.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSingleParticle.o: ../EvtGenBase/EvtVector4R.hh +EvtSingleParticle.o: /usr/include/c++/3.4.6/iostream +EvtSingleParticle.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/ostream +EvtSingleParticle.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtSingleParticle.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/cstring +EvtSingleParticle.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtSingleParticle.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtSingleParticle.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtSingleParticle.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtSingleParticle.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtSingleParticle.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSingleParticle.o: /usr/include/bits/stdio_lim.h +EvtSingleParticle.o: /usr/include/bits/sys_errlist.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSingleParticle.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSingleParticle.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSingleParticle.o: /usr/include/libintl.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSingleParticle.o: /usr/include/pthread.h /usr/include/sched.h +EvtSingleParticle.o: /usr/include/time.h /usr/include/bits/sched.h +EvtSingleParticle.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtSingleParticle.o: /usr/include/bits/pthreadtypes.h +EvtSingleParticle.o: /usr/include/bits/initspin.h +EvtSingleParticle.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtSingleParticle.o: /usr/include/bits/posix_opt.h +EvtSingleParticle.o: /usr/include/bits/confname.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtSingleParticle.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/cwchar +EvtSingleParticle.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/exception +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/climits +EvtSingleParticle.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSingleParticle.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSingleParticle.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSingleParticle.o: /usr/include/c++/3.4.6/new +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/cassert +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/string +EvtSingleParticle.o: /usr/include/c++/3.4.6/memory +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/limits +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/algorithm +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSingleParticle.o: /usr/include/c++/3.4.6/streambuf +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSingleParticle.o: /usr/include/c++/3.4.6/locale +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSingleParticle.o: /usr/include/c++/3.4.6/typeinfo +EvtSingleParticle.o: /usr/include/c++/3.4.6/istream +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtSingleParticle.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtSingleParticle.o: /usr/include/bits/mathdef.h +EvtSingleParticle.o: /usr/include/bits/mathcalls.h +EvtSingleParticle.o: ../EvtGenBase/EvtSpinDensity.hh +EvtSingleParticle.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSingleParticle.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSingleParticle.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtRandom.hh +EvtSingleParticle.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSingleParticle.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtSingleParticle.o: /usr/include/c++/3.4.6/vector +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSingleParticle.o: ../EvtGenBase/EvtStringHash.hh +EvtSingleParticle.o: /usr/include/c++/3.4.6/map +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSingleParticle.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSingleParticle.o: ../EvtGenModels/EvtSingleParticle.hh +EvtSingleParticle.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtSingleParticle.o: ../EvtGenBase/EvtDecayBase.hh +EvtSLBKPole.o: /usr/include/stdlib.h /usr/include/features.h +EvtSLBKPole.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h +EvtSLBKPole.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSLBKPole.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSLBKPole.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSLBKPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSLBKPole.o: /usr/include/c++/3.4.6/iosfwd +EvtSLBKPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSLBKPole.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSLBKPole.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSLBKPole.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSLBKPole.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSLBKPole.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSLBKPole.o: /usr/include/gconv.h +EvtSLBKPole.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSLBKPole.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSLBKPole.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSLBKPole.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSLBKPole.o: /usr/include/libintl.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSLBKPole.o: /usr/include/pthread.h /usr/include/sched.h +EvtSLBKPole.o: /usr/include/time.h /usr/include/bits/sched.h +EvtSLBKPole.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtSLBKPole.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtSLBKPole.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtSLBKPole.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtSLBKPole.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSLBKPole.o: /usr/include/stdint.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/exception +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/climits +EvtSLBKPole.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSLBKPole.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSLBKPole.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSLBKPole.o: /usr/include/c++/3.4.6/new +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/cassert +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/limits +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/algorithm +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSLBKPole.o: /usr/include/c++/3.4.6/streambuf +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSLBKPole.o: /usr/include/c++/3.4.6/locale +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSLBKPole.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSLBKPole.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSLBKPole.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSLBKPole.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSLBKPole.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSLBKPole.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtSLBKPole.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSLBKPole.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSLBKPole.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSLBKPole.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSLBKPole.o: ../EvtGenModels/EvtSLBKPole.hh ../EvtGenBase/EvtDecayAmp.hh +EvtSLBKPole.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtPatches.hh +EvtSLBKPole.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtSLBKPole.o: ../EvtGenBase/EvtSemiLeptonicAmp.hh +EvtSLBKPole.o: ../EvtGenModels/EvtSLBKPoleFF.hh +EvtSLBKPole.o: ../EvtGenBase/EvtSemiLeptonicScalarAmp.hh +EvtSLBKPole.o: ../EvtGenBase/EvtSemiLeptonicVectorAmp.hh +EvtSLBKPole.o: ../EvtGenBase/EvtSemiLeptonicTensorAmp.hh +EvtSLBKPoleFF.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtReport.hh +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/iostream +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSLBKPoleFF.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSLBKPoleFF.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/cstring +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/cstddef +EvtSLBKPoleFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSLBKPoleFF.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSLBKPoleFF.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSLBKPoleFF.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSLBKPoleFF.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSLBKPoleFF.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSLBKPoleFF.o: /usr/include/gconv.h +EvtSLBKPoleFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSLBKPoleFF.o: /usr/include/bits/stdio_lim.h +EvtSLBKPoleFF.o: /usr/include/bits/sys_errlist.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSLBKPoleFF.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSLBKPoleFF.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSLBKPoleFF.o: /usr/include/libintl.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSLBKPoleFF.o: /usr/include/pthread.h /usr/include/sched.h +EvtSLBKPoleFF.o: /usr/include/time.h /usr/include/bits/sched.h +EvtSLBKPoleFF.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtSLBKPoleFF.o: /usr/include/bits/pthreadtypes.h +EvtSLBKPoleFF.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSLBKPoleFF.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSLBKPoleFF.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSLBKPoleFF.o: /usr/include/ctype.h /usr/include/endian.h +EvtSLBKPoleFF.o: /usr/include/bits/endian.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSLBKPoleFF.o: /usr/include/stdint.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/exception +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/climits +EvtSLBKPoleFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSLBKPoleFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSLBKPoleFF.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSLBKPoleFF.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/limits +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/algorithm +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/streambuf +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/locale +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/typeinfo +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/istream +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtSLBKPoleFF.o: ../EvtGenModels/EvtSLBKPoleFF.hh +EvtSLBKPoleFF.o: ../EvtGenBase/EvtSemiLeptonicFF.hh ../EvtGenBase/EvtId.hh +EvtSLBKPoleFF.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSLBKPoleFF.o: ../EvtGenBase/EvtSpinType.hh +EvtSLBKPoleFF.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/vector +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSLBKPoleFF.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSLBKPoleFF.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSLBKPoleFF.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtSLBKPoleFF.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtSll.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSll.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSll.o: /usr/include/gnu/stubs.h +EvtSll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSll.o: /usr/include/c++/3.4.6/iostream +EvtSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSll.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSll.o: /usr/include/c++/3.4.6/iosfwd +EvtSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSll.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSll.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSll.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSll.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSll.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h +EvtSll.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtSll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSll.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSll.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSll.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSll.o: /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h +EvtSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSll.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtSll.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtSll.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtSll.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSll.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSll.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSll.o: /usr/include/ctype.h /usr/include/endian.h +EvtSll.o: /usr/include/bits/endian.h /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSll.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSll.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSll.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtSll.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSll.o: /usr/include/c++/3.4.6/exception +EvtSll.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSll.o: /usr/include/c++/3.4.6/climits +EvtSll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSll.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSll.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSll.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSll.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSll.o: /usr/include/c++/3.4.6/debug/debug.h /usr/include/c++/3.4.6/cassert +EvtSll.o: /usr/include/assert.h /usr/include/c++/3.4.6/bits/localefwd.h +EvtSll.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSll.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSll.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSll.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSll.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSll.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSll.o: /usr/include/c++/3.4.6/limits +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSll.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSll.o: /usr/include/c++/3.4.6/algorithm +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSll.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSll.o: /usr/include/c++/3.4.6/streambuf +EvtSll.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSll.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSll.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSll.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSll.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSll.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSll.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSll.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSll.o: /usr/include/c++/3.4.6/locale +EvtSll.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSll.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSll.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtSll.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtSll.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtSll.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtSll.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtSll.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtSll.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtSll.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSll.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSll.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSll.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSll.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSll.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSll.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenModels/EvtSll.hh +EvtSll.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtSll.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtDiracSpinor.hh +EvtSll.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtVector4C.hh +EvtSll.o: ../EvtGenBase/EvtVector3C.hh +EvtSLN.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSLN.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSLN.o: /usr/include/gnu/stubs.h +EvtSLN.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSLN.o: /usr/include/c++/3.4.6/iostream +EvtSLN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSLN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSLN.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSLN.o: /usr/include/c++/3.4.6/iosfwd +EvtSLN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSLN.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSLN.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSLN.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSLN.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSLN.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h +EvtSLN.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtSLN.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSLN.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSLN.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSLN.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSLN.o: /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h +EvtSLN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSLN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSLN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSLN.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtSLN.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtSLN.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtSLN.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSLN.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSLN.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSLN.o: /usr/include/ctype.h /usr/include/endian.h +EvtSLN.o: /usr/include/bits/endian.h /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSLN.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSLN.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtSLN.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSLN.o: /usr/include/c++/3.4.6/exception +EvtSLN.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSLN.o: /usr/include/c++/3.4.6/climits +EvtSLN.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSLN.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSLN.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSLN.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSLN.o: /usr/include/c++/3.4.6/debug/debug.h /usr/include/c++/3.4.6/cassert +EvtSLN.o: /usr/include/assert.h /usr/include/c++/3.4.6/bits/localefwd.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSLN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSLN.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSLN.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSLN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSLN.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSLN.o: /usr/include/c++/3.4.6/limits +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSLN.o: /usr/include/c++/3.4.6/algorithm +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSLN.o: /usr/include/c++/3.4.6/streambuf +EvtSLN.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSLN.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSLN.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSLN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSLN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSLN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSLN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSLN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSLN.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSLN.o: /usr/include/c++/3.4.6/locale +EvtSLN.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSLN.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSLN.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtSLN.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtSLN.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtSLN.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtSLN.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtSLN.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtSLN.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtSLN.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSLN.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSLN.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSLN.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSLN.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenModels/EvtSLN.hh +EvtSLN.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtSLN.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtDiracSpinor.hh +EvtSLN.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtVector4C.hh +EvtSLN.o: ../EvtGenBase/EvtVector3C.hh +EvtSLPole.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSLPole.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSLPole.o: /usr/include/gnu/stubs.h +EvtSLPole.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSLPole.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSLPole.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSLPole.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSLPole.o: /usr/include/c++/3.4.6/iosfwd +EvtSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSLPole.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSLPole.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSLPole.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSLPole.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSLPole.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSLPole.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSLPole.o: /usr/include/gconv.h +EvtSLPole.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSLPole.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSLPole.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSLPole.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSLPole.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSLPole.o: /usr/include/libintl.h +EvtSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSLPole.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtSLPole.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtSLPole.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtSLPole.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSLPole.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSLPole.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSLPole.o: /usr/include/ctype.h /usr/include/endian.h +EvtSLPole.o: /usr/include/bits/endian.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSLPole.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSLPole.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtSLPole.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSLPole.o: /usr/include/c++/3.4.6/exception +EvtSLPole.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSLPole.o: /usr/include/c++/3.4.6/climits +EvtSLPole.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSLPole.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSLPole.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSLPole.o: /usr/include/c++/3.4.6/new +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSLPole.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSLPole.o: /usr/include/c++/3.4.6/cassert +EvtSLPole.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSLPole.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSLPole.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSLPole.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSLPole.o: /usr/include/c++/3.4.6/limits +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSLPole.o: /usr/include/c++/3.4.6/algorithm +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSLPole.o: /usr/include/c++/3.4.6/streambuf +EvtSLPole.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSLPole.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSLPole.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSLPole.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSLPole.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSLPole.o: /usr/include/c++/3.4.6/locale +EvtSLPole.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSLPole.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSLPole.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSLPole.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSLPole.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSLPole.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSLPole.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSLPole.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtSLPole.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSLPole.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSLPole.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSLPole.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSLPole.o: ../EvtGenModels/EvtSLPole.hh ../EvtGenBase/EvtDecayAmp.hh +EvtSLPole.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtSLPole.o: ../EvtGenBase/EvtSemiLeptonicFF.hh +EvtSLPole.o: ../EvtGenBase/EvtSemiLeptonicAmp.hh +EvtSLPole.o: ../EvtGenModels/EvtSLPoleFF.hh +EvtSLPole.o: ../EvtGenBase/EvtSemiLeptonicScalarAmp.hh +EvtSLPole.o: ../EvtGenBase/EvtSemiLeptonicVectorAmp.hh +EvtSLPole.o: ../EvtGenBase/EvtSemiLeptonicTensorAmp.hh +EvtSLPoleFF.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtReport.hh +EvtSLPoleFF.o: /usr/include/c++/3.4.6/iostream +EvtSLPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSLPoleFF.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSLPoleFF.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtSLPoleFF.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtSLPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSLPoleFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSLPoleFF.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSLPoleFF.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSLPoleFF.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSLPoleFF.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSLPoleFF.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSLPoleFF.o: /usr/include/gconv.h +EvtSLPoleFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSLPoleFF.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSLPoleFF.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSLPoleFF.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSLPoleFF.o: /usr/include/libintl.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSLPoleFF.o: /usr/include/pthread.h /usr/include/sched.h +EvtSLPoleFF.o: /usr/include/time.h /usr/include/bits/sched.h +EvtSLPoleFF.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtSLPoleFF.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtSLPoleFF.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtSLPoleFF.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtSLPoleFF.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSLPoleFF.o: /usr/include/stdint.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/exception +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/climits +EvtSLPoleFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSLPoleFF.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSLPoleFF.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSLPoleFF.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/limits +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/algorithm +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSLPoleFF.o: /usr/include/c++/3.4.6/streambuf +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSLPoleFF.o: /usr/include/c++/3.4.6/locale +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSLPoleFF.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtSLPoleFF.o: ../EvtGenModels/EvtSLPoleFF.hh +EvtSLPoleFF.o: ../EvtGenBase/EvtSemiLeptonicFF.hh ../EvtGenBase/EvtId.hh +EvtSLPoleFF.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSLPoleFF.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtSLPoleFF.o: /usr/include/c++/3.4.6/vector +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSLPoleFF.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSLPoleFF.o: /usr/include/c++/3.4.6/bits/stl_multimap.h /usr/include/math.h +EvtSLPoleFF.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSLPoleFF.o: /usr/include/bits/mathcalls.h +EvtSSDCP.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSSDCP.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSSDCP.o: /usr/include/gnu/stubs.h +EvtSSDCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSSDCP.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSSDCP.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSSDCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSSDCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSSDCP.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSSDCP.o: /usr/include/c++/3.4.6/iosfwd +EvtSSDCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSSDCP.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSSDCP.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSSDCP.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSSDCP.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSSDCP.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSSDCP.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSSDCP.o: /usr/include/gconv.h +EvtSSDCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSSDCP.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSSDCP.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSSDCP.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSSDCP.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSSDCP.o: /usr/include/libintl.h +EvtSSDCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSSDCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSSDCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSSDCP.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtSSDCP.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtSSDCP.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtSSDCP.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSSDCP.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSSDCP.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSSDCP.o: /usr/include/ctype.h /usr/include/endian.h +EvtSSDCP.o: /usr/include/bits/endian.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSSDCP.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSSDCP.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtSSDCP.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSSDCP.o: /usr/include/c++/3.4.6/exception +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSSDCP.o: /usr/include/c++/3.4.6/climits +EvtSSDCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSSDCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSSDCP.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSSDCP.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSSDCP.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSSDCP.o: /usr/include/c++/3.4.6/cassert +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSSDCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSSDCP.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSSDCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSSDCP.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSSDCP.o: /usr/include/c++/3.4.6/limits +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSSDCP.o: /usr/include/c++/3.4.6/algorithm +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSSDCP.o: /usr/include/c++/3.4.6/streambuf +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSSDCP.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSSDCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSSDCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSSDCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSSDCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSSDCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSSDCP.o: /usr/include/c++/3.4.6/locale +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSSDCP.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSSDCP.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSSDCP.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSSDCP.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSSDCP.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSSDCP.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtRandom.hh +EvtSSDCP.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtCPUtil.hh +EvtSSDCP.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSSDCP.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSSDCP.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSSDCP.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSSDCP.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtSSDCP.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtTensor4C.hh +EvtSSDCP.o: ../EvtGenModels/EvtSSDCP.hh ../EvtGenBase/EvtDecayAmp.hh +EvtSSDCP.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtSSSCP.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSSSCP.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSSSCP.o: /usr/include/gnu/stubs.h +EvtSSSCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSSSCP.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSSSCP.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSSSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSSSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSSSCP.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSSSCP.o: /usr/include/c++/3.4.6/iosfwd +EvtSSSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSSSCP.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSSSCP.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSSSCP.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSSSCP.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSSSCP.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSSSCP.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSSSCP.o: /usr/include/gconv.h +EvtSSSCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSSSCP.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSSSCP.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSSSCP.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSSSCP.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSSSCP.o: /usr/include/libintl.h +EvtSSSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSSSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSSSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSSSCP.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtSSSCP.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtSSSCP.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtSSSCP.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSSSCP.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSSSCP.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSSSCP.o: /usr/include/ctype.h /usr/include/endian.h +EvtSSSCP.o: /usr/include/bits/endian.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSSSCP.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSSSCP.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtSSSCP.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSSSCP.o: /usr/include/c++/3.4.6/exception +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSSSCP.o: /usr/include/c++/3.4.6/climits +EvtSSSCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSSSCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSSSCP.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSSSCP.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSSSCP.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSSSCP.o: /usr/include/c++/3.4.6/cassert +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSSSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSSSCP.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSSSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSSSCP.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSSSCP.o: /usr/include/c++/3.4.6/limits +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSSSCP.o: /usr/include/c++/3.4.6/algorithm +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSSSCP.o: /usr/include/c++/3.4.6/streambuf +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSSSCP.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSSSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSSSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSSSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSSSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSSSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSSSCP.o: /usr/include/c++/3.4.6/locale +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSSSCP.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSSSCP.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSSSCP.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSSSCP.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSSSCP.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSSSCP.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtSSSCP.o: ../EvtGenBase/EvtCPUtil.hh ../EvtGenBase/EvtPDL.hh +EvtSSSCP.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtSSSCP.o: /usr/include/c++/3.4.6/vector +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSSSCP.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSSSCP.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSSSCP.o: ../EvtGenModels/EvtSSSCP.hh ../EvtGenBase/EvtDecayAmp.hh +EvtSSSCP.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtSSSCPpng.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSSSCPpng.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSSSCPpng.o: /usr/include/gnu/stubs.h +EvtSSSCPpng.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSSSCPpng.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSSSCPpng.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSSSCPpng.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSSSCPpng.o: /usr/include/c++/3.4.6/iosfwd +EvtSSSCPpng.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSSSCPpng.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSSSCPpng.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSSSCPpng.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSSSCPpng.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSSSCPpng.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSSSCPpng.o: /usr/include/gconv.h +EvtSSSCPpng.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSSSCPpng.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSSSCPpng.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSSSCPpng.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSSSCPpng.o: /usr/include/libintl.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSSSCPpng.o: /usr/include/pthread.h /usr/include/sched.h +EvtSSSCPpng.o: /usr/include/time.h /usr/include/bits/sched.h +EvtSSSCPpng.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtSSSCPpng.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtSSSCPpng.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtSSSCPpng.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtSSSCPpng.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSSSCPpng.o: /usr/include/stdint.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/exception +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/climits +EvtSSSCPpng.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSSSCPpng.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSSSCPpng.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSSSCPpng.o: /usr/include/c++/3.4.6/new +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/cassert +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/limits +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/algorithm +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSSSCPpng.o: /usr/include/c++/3.4.6/streambuf +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSSSCPpng.o: /usr/include/c++/3.4.6/locale +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSSSCPpng.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSSSCPpng.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSSSCPpng.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSSSCPpng.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSSSCPpng.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSSSCPpng.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtRandom.hh +EvtSSSCPpng.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtCPUtil.hh +EvtSSSCPpng.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSSSCPpng.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSSSCPpng.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSSSCPpng.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSSSCPpng.o: ../EvtGenModels/EvtSSSCPpng.hh ../EvtGenBase/EvtDecayAmp.hh +EvtSSSCPpng.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtSSSCPT.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSSSCPT.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSSSCPT.o: /usr/include/gnu/stubs.h +EvtSSSCPT.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSSSCPT.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSSSCPT.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSSSCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSSSCPT.o: /usr/include/c++/3.4.6/iosfwd +EvtSSSCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSSSCPT.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSSSCPT.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSSSCPT.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSSSCPT.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSSSCPT.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSSSCPT.o: /usr/include/gconv.h +EvtSSSCPT.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSSSCPT.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSSSCPT.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSSSCPT.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSSSCPT.o: /usr/include/libintl.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSSSCPT.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtSSSCPT.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtSSSCPT.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtSSSCPT.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSSSCPT.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSSSCPT.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSSSCPT.o: /usr/include/ctype.h /usr/include/endian.h +EvtSSSCPT.o: /usr/include/bits/endian.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSSSCPT.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/exception +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/climits +EvtSSSCPT.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSSSCPT.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSSSCPT.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSSSCPT.o: /usr/include/c++/3.4.6/new +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/cassert +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/limits +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/algorithm +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSSSCPT.o: /usr/include/c++/3.4.6/streambuf +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSSSCPT.o: /usr/include/c++/3.4.6/locale +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSSSCPT.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSSSCPT.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSSSCPT.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSSSCPT.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSSSCPT.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSSSCPT.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtSSSCPT.o: ../EvtGenBase/EvtCPUtil.hh ../EvtGenBase/EvtPDL.hh +EvtSSSCPT.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtSSSCPT.o: /usr/include/c++/3.4.6/vector +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSSSCPT.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSSSCPT.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSSSCPT.o: ../EvtGenModels/EvtSSSCPT.hh ../EvtGenBase/EvtDecayAmp.hh +EvtSSSCPT.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtSTS.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSTS.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSTS.o: /usr/include/gnu/stubs.h +EvtSTS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSTS.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSTS.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSTS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSTS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSTS.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSTS.o: /usr/include/c++/3.4.6/iosfwd +EvtSTS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSTS.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSTS.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSTS.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSTS.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSTS.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h +EvtSTS.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtSTS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSTS.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSTS.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSTS.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSTS.o: /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h +EvtSTS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSTS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSTS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSTS.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtSTS.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtSTS.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtSTS.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSTS.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSTS.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSTS.o: /usr/include/ctype.h /usr/include/endian.h +EvtSTS.o: /usr/include/bits/endian.h /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSTS.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSTS.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtSTS.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSTS.o: /usr/include/c++/3.4.6/exception +EvtSTS.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSTS.o: /usr/include/c++/3.4.6/climits +EvtSTS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSTS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSTS.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSTS.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSTS.o: /usr/include/c++/3.4.6/debug/debug.h /usr/include/c++/3.4.6/cassert +EvtSTS.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSTS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSTS.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSTS.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSTS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSTS.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSTS.o: /usr/include/c++/3.4.6/limits +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSTS.o: /usr/include/c++/3.4.6/algorithm +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSTS.o: /usr/include/c++/3.4.6/streambuf +EvtSTS.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSTS.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSTS.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSTS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSTS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSTS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSTS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSTS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSTS.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSTS.o: /usr/include/c++/3.4.6/locale +EvtSTS.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSTS.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSTS.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSTS.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSTS.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSTS.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSTS.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSTS.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtSTS.o: ../EvtGenBase/EvtTensor4C.hh ../EvtGenBase/EvtVector4C.hh +EvtSTS.o: ../EvtGenBase/EvtVector3C.hh ../EvtGenBase/EvtVector3R.hh +EvtSTS.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSTS.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSTS.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSTS.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSTS.o: ../EvtGenModels/EvtSTS.hh ../EvtGenBase/EvtDecayAmp.hh +EvtSTS.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtSTSCP.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSTSCP.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSTSCP.o: /usr/include/gnu/stubs.h +EvtSTSCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSTSCP.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSTSCP.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSTSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSTSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSTSCP.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSTSCP.o: /usr/include/c++/3.4.6/iosfwd +EvtSTSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSTSCP.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSTSCP.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSTSCP.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSTSCP.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSTSCP.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSTSCP.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSTSCP.o: /usr/include/gconv.h +EvtSTSCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSTSCP.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSTSCP.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSTSCP.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSTSCP.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSTSCP.o: /usr/include/libintl.h +EvtSTSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSTSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSTSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSTSCP.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtSTSCP.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtSTSCP.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtSTSCP.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSTSCP.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSTSCP.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSTSCP.o: /usr/include/ctype.h /usr/include/endian.h +EvtSTSCP.o: /usr/include/bits/endian.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSTSCP.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSTSCP.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtSTSCP.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSTSCP.o: /usr/include/c++/3.4.6/exception +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSTSCP.o: /usr/include/c++/3.4.6/climits +EvtSTSCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSTSCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSTSCP.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSTSCP.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSTSCP.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSTSCP.o: /usr/include/c++/3.4.6/cassert +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSTSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSTSCP.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSTSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSTSCP.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSTSCP.o: /usr/include/c++/3.4.6/limits +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSTSCP.o: /usr/include/c++/3.4.6/algorithm +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSTSCP.o: /usr/include/c++/3.4.6/streambuf +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSTSCP.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSTSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSTSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSTSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSTSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSTSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSTSCP.o: /usr/include/c++/3.4.6/locale +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSTSCP.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSTSCP.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSTSCP.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSTSCP.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSTSCP.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSTSCP.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtSTSCP.o: ../EvtGenBase/EvtCPUtil.hh ../EvtGenBase/EvtTensor4C.hh +EvtSTSCP.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtSTSCP.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtPDL.hh +EvtSTSCP.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtSTSCP.o: /usr/include/c++/3.4.6/vector +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSTSCP.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSTSCP.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSTSCP.o: ../EvtGenModels/EvtSTSCP.hh ../EvtGenBase/EvtDecayAmp.hh +EvtSTSCP.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtSVPCP.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSVPCP.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSVPCP.o: /usr/include/gnu/stubs.h +EvtSVPCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSVPCP.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSVPCP.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSVPCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSVPCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSVPCP.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSVPCP.o: /usr/include/c++/3.4.6/iosfwd +EvtSVPCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSVPCP.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSVPCP.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSVPCP.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSVPCP.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSVPCP.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSVPCP.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSVPCP.o: /usr/include/gconv.h +EvtSVPCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSVPCP.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSVPCP.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSVPCP.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSVPCP.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSVPCP.o: /usr/include/libintl.h +EvtSVPCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSVPCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSVPCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSVPCP.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtSVPCP.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtSVPCP.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtSVPCP.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSVPCP.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSVPCP.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSVPCP.o: /usr/include/ctype.h /usr/include/endian.h +EvtSVPCP.o: /usr/include/bits/endian.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSVPCP.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSVPCP.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtSVPCP.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSVPCP.o: /usr/include/c++/3.4.6/exception +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSVPCP.o: /usr/include/c++/3.4.6/climits +EvtSVPCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSVPCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSVPCP.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSVPCP.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSVPCP.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSVPCP.o: /usr/include/c++/3.4.6/cassert +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSVPCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSVPCP.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSVPCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSVPCP.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSVPCP.o: /usr/include/c++/3.4.6/limits +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSVPCP.o: /usr/include/c++/3.4.6/algorithm +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSVPCP.o: /usr/include/c++/3.4.6/streambuf +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSVPCP.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSVPCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSVPCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSVPCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSVPCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSVPCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSVPCP.o: /usr/include/c++/3.4.6/locale +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSVPCP.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSVPCP.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSVPCP.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSVPCP.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSVPCP.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSVPCP.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtSVPCP.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSVPCP.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSVPCP.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSVPCP.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSVPCP.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtSVPCP.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtTensor4C.hh +EvtSVPCP.o: ../EvtGenBase/EvtTensor3C.hh ../EvtGenModels/EvtSVPCP.hh +EvtSVPCP.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtSVPCP.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtCPUtil.hh +EvtSVPHelAmp.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSVPHelAmp.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSVPHelAmp.o: /usr/include/gnu/stubs.h +EvtSVPHelAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSVPHelAmp.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSVPHelAmp.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/iosfwd +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSVPHelAmp.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSVPHelAmp.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSVPHelAmp.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSVPHelAmp.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSVPHelAmp.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSVPHelAmp.o: /usr/include/gconv.h +EvtSVPHelAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSVPHelAmp.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSVPHelAmp.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSVPHelAmp.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSVPHelAmp.o: /usr/include/libintl.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSVPHelAmp.o: /usr/include/pthread.h /usr/include/sched.h +EvtSVPHelAmp.o: /usr/include/time.h /usr/include/bits/sched.h +EvtSVPHelAmp.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtSVPHelAmp.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtSVPHelAmp.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtSVPHelAmp.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtSVPHelAmp.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSVPHelAmp.o: /usr/include/stdint.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/exception +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/climits +EvtSVPHelAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSVPHelAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSVPHelAmp.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/new +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/cassert +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/limits +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/algorithm +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/streambuf +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/locale +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/typeinfo +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/istream +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSVPHelAmp.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSVPHelAmp.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSVPHelAmp.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSVPHelAmp.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSVPHelAmp.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtSVPHelAmp.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSVPHelAmp.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/vector +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSVPHelAmp.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSVPHelAmp.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSVPHelAmp.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtSVPHelAmp.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtTensor4C.hh +EvtSVPHelAmp.o: ../EvtGenModels/EvtSVPHelAmp.hh ../EvtGenBase/EvtDecayAmp.hh +EvtSVPHelAmp.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtSVS.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSVS.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSVS.o: /usr/include/gnu/stubs.h +EvtSVS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSVS.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSVS.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSVS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSVS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSVS.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSVS.o: /usr/include/c++/3.4.6/iosfwd +EvtSVS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSVS.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSVS.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSVS.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSVS.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSVS.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h +EvtSVS.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtSVS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSVS.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSVS.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSVS.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSVS.o: /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h +EvtSVS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSVS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSVS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSVS.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtSVS.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtSVS.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtSVS.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSVS.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSVS.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSVS.o: /usr/include/ctype.h /usr/include/endian.h +EvtSVS.o: /usr/include/bits/endian.h /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSVS.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSVS.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtSVS.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSVS.o: /usr/include/c++/3.4.6/exception +EvtSVS.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSVS.o: /usr/include/c++/3.4.6/climits +EvtSVS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSVS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSVS.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSVS.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSVS.o: /usr/include/c++/3.4.6/debug/debug.h /usr/include/c++/3.4.6/cassert +EvtSVS.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSVS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSVS.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSVS.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSVS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSVS.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSVS.o: /usr/include/c++/3.4.6/limits +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSVS.o: /usr/include/c++/3.4.6/algorithm +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSVS.o: /usr/include/c++/3.4.6/streambuf +EvtSVS.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSVS.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSVS.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSVS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSVS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSVS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSVS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSVS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSVS.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSVS.o: /usr/include/c++/3.4.6/locale +EvtSVS.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSVS.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSVS.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSVS.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSVS.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSVS.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSVS.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSVS.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtSVS.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSVS.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSVS.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSVS.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSVS.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtSVS.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenModels/EvtSVS.hh +EvtSVS.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtSVS.o: ../EvtGenBase/EvtAmp.hh +EvtSVSCP.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSVSCP.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSVSCP.o: /usr/include/gnu/stubs.h +EvtSVSCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSVSCP.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSVSCP.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSVSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSVSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSVSCP.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSVSCP.o: /usr/include/c++/3.4.6/iosfwd +EvtSVSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSVSCP.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSVSCP.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSVSCP.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSVSCP.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSVSCP.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSVSCP.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSVSCP.o: /usr/include/gconv.h +EvtSVSCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSVSCP.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSVSCP.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSVSCP.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSVSCP.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSVSCP.o: /usr/include/libintl.h +EvtSVSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSVSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSVSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSVSCP.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtSVSCP.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtSVSCP.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtSVSCP.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSVSCP.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSVSCP.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSVSCP.o: /usr/include/ctype.h /usr/include/endian.h +EvtSVSCP.o: /usr/include/bits/endian.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSVSCP.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSVSCP.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtSVSCP.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSVSCP.o: /usr/include/c++/3.4.6/exception +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSVSCP.o: /usr/include/c++/3.4.6/climits +EvtSVSCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSVSCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSVSCP.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSVSCP.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSVSCP.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSVSCP.o: /usr/include/c++/3.4.6/cassert +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSVSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSVSCP.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSVSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSVSCP.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSVSCP.o: /usr/include/c++/3.4.6/limits +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSVSCP.o: /usr/include/c++/3.4.6/algorithm +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSVSCP.o: /usr/include/c++/3.4.6/streambuf +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSVSCP.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSVSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSVSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSVSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSVSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSVSCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSVSCP.o: /usr/include/c++/3.4.6/locale +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSVSCP.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSVSCP.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSVSCP.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSVSCP.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSVSCP.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSVSCP.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtSVSCP.o: ../EvtGenBase/EvtCPUtil.hh ../EvtGenBase/EvtVector4C.hh +EvtSVSCP.o: ../EvtGenBase/EvtVector3C.hh ../EvtGenBase/EvtVector3R.hh +EvtSVSCP.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSVSCP.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSVSCP.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSVSCP.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSVSCP.o: ../EvtGenModels/EvtSVSCP.hh ../EvtGenBase/EvtDecayAmp.hh +EvtSVSCP.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtSVSCPiso.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSVSCPiso.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSVSCPiso.o: /usr/include/gnu/stubs.h +EvtSVSCPiso.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSVSCPiso.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSVSCPiso.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSVSCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSVSCPiso.o: /usr/include/c++/3.4.6/iosfwd +EvtSVSCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSVSCPiso.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSVSCPiso.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSVSCPiso.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSVSCPiso.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSVSCPiso.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSVSCPiso.o: /usr/include/gconv.h +EvtSVSCPiso.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSVSCPiso.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSVSCPiso.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSVSCPiso.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSVSCPiso.o: /usr/include/libintl.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSVSCPiso.o: /usr/include/pthread.h /usr/include/sched.h +EvtSVSCPiso.o: /usr/include/time.h /usr/include/bits/sched.h +EvtSVSCPiso.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtSVSCPiso.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtSVSCPiso.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtSVSCPiso.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtSVSCPiso.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSVSCPiso.o: /usr/include/stdint.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/exception +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/climits +EvtSVSCPiso.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSVSCPiso.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSVSCPiso.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSVSCPiso.o: /usr/include/c++/3.4.6/new +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/cassert +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/limits +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/algorithm +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSVSCPiso.o: /usr/include/c++/3.4.6/streambuf +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSVSCPiso.o: /usr/include/c++/3.4.6/locale +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSVSCPiso.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSVSCPiso.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSVSCPiso.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSVSCPiso.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSVSCPiso.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSVSCPiso.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtRandom.hh +EvtSVSCPiso.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtCPUtil.hh +EvtSVSCPiso.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSVSCPiso.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSVSCPiso.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSVSCPiso.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSVSCPiso.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtSVSCPiso.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenModels/EvtSVSCPiso.hh +EvtSVSCPiso.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtSVSCPiso.o: ../EvtGenBase/EvtAmp.hh +EvtSVSCPLH.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSVSCPLH.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSVSCPLH.o: /usr/include/gnu/stubs.h +EvtSVSCPLH.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSVSCPLH.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSVSCPLH.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSVSCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSVSCPLH.o: /usr/include/c++/3.4.6/iosfwd +EvtSVSCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSVSCPLH.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSVSCPLH.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSVSCPLH.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSVSCPLH.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSVSCPLH.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSVSCPLH.o: /usr/include/gconv.h +EvtSVSCPLH.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSVSCPLH.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSVSCPLH.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSVSCPLH.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSVSCPLH.o: /usr/include/libintl.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSVSCPLH.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtSVSCPLH.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtSVSCPLH.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtSVSCPLH.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSVSCPLH.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSVSCPLH.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSVSCPLH.o: /usr/include/ctype.h /usr/include/endian.h +EvtSVSCPLH.o: /usr/include/bits/endian.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSVSCPLH.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/exception +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/climits +EvtSVSCPLH.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSVSCPLH.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSVSCPLH.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSVSCPLH.o: /usr/include/c++/3.4.6/new +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/cassert +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/limits +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/algorithm +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSVSCPLH.o: /usr/include/c++/3.4.6/streambuf +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSVSCPLH.o: /usr/include/c++/3.4.6/locale +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSVSCPLH.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSVSCPLH.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSVSCPLH.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSVSCPLH.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSVSCPLH.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSVSCPLH.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtSVSCPLH.o: ../EvtGenBase/EvtCPUtil.hh ../EvtGenBase/EvtPDL.hh +EvtSVSCPLH.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtSVSCPLH.o: /usr/include/c++/3.4.6/vector +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSVSCPLH.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSVSCPLH.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSVSCPLH.o: ../EvtGenModels/EvtSVSCPLH.hh ../EvtGenBase/EvtDecayAmp.hh +EvtSVSCPLH.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtSVSCPLH.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtSVSCPLH.o: ../EvtGenBase/EvtVector3R.hh +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSVSNONCPEIGEN.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSVSNONCPEIGEN.o: /usr/include/gnu/stubs.h +EvtSVSNONCPEIGEN.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtVector4R.hh +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/iostream +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/iosfwd +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/cstring +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtSVSNONCPEIGEN.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtSVSNONCPEIGEN.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtSVSNONCPEIGEN.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtSVSNONCPEIGEN.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtSVSNONCPEIGEN.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSVSNONCPEIGEN.o: /usr/include/bits/stdio_lim.h +EvtSVSNONCPEIGEN.o: /usr/include/bits/sys_errlist.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSVSNONCPEIGEN.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSVSNONCPEIGEN.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSVSNONCPEIGEN.o: /usr/include/libintl.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSVSNONCPEIGEN.o: /usr/include/pthread.h /usr/include/sched.h +EvtSVSNONCPEIGEN.o: /usr/include/time.h /usr/include/bits/sched.h +EvtSVSNONCPEIGEN.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtSVSNONCPEIGEN.o: /usr/include/bits/pthreadtypes.h +EvtSVSNONCPEIGEN.o: /usr/include/bits/initspin.h +EvtSVSNONCPEIGEN.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtSVSNONCPEIGEN.o: /usr/include/bits/posix_opt.h +EvtSVSNONCPEIGEN.o: /usr/include/bits/confname.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtSVSNONCPEIGEN.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/cwchar +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/exception +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/climits +EvtSVSNONCPEIGEN.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSVSNONCPEIGEN.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSVSNONCPEIGEN.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/new +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/cassert +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/string +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/memory +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/limits +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/algorithm +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/streambuf +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/locale +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/typeinfo +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/istream +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtSVSNONCPEIGEN.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtSVSNONCPEIGEN.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtSpinDensity.hh +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtRandom.hh +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtCPUtil.hh +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/vector +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSVSNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtVector3R.hh +EvtSVSNONCPEIGEN.o: ../EvtGenModels/EvtSVSNONCPEIGEN.hh +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtDecayAmp.hh +EvtSVSNONCPEIGEN.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtSVVCP.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSVVCP.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSVVCP.o: /usr/include/gnu/stubs.h +EvtSVVCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSVVCP.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSVVCP.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSVVCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSVVCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSVVCP.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSVVCP.o: /usr/include/c++/3.4.6/iosfwd +EvtSVVCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSVVCP.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSVVCP.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSVVCP.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSVVCP.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSVVCP.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSVVCP.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSVVCP.o: /usr/include/gconv.h +EvtSVVCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSVVCP.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSVVCP.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSVVCP.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSVVCP.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSVVCP.o: /usr/include/libintl.h +EvtSVVCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSVVCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSVVCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSVVCP.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtSVVCP.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtSVVCP.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtSVVCP.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSVVCP.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSVVCP.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSVVCP.o: /usr/include/ctype.h /usr/include/endian.h +EvtSVVCP.o: /usr/include/bits/endian.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSVVCP.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSVVCP.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtSVVCP.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSVVCP.o: /usr/include/c++/3.4.6/exception +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSVVCP.o: /usr/include/c++/3.4.6/climits +EvtSVVCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSVVCP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSVVCP.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSVVCP.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSVVCP.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSVVCP.o: /usr/include/c++/3.4.6/cassert +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSVVCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSVVCP.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSVVCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSVVCP.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSVVCP.o: /usr/include/c++/3.4.6/limits +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSVVCP.o: /usr/include/c++/3.4.6/algorithm +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSVVCP.o: /usr/include/c++/3.4.6/streambuf +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSVVCP.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSVVCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSVVCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSVVCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSVVCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSVVCP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSVVCP.o: /usr/include/c++/3.4.6/locale +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSVVCP.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSVVCP.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSVVCP.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSVVCP.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSVVCP.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSVVCP.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtSVVCP.o: ../EvtGenBase/EvtCPUtil.hh ../EvtGenBase/EvtPDL.hh +EvtSVVCP.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtSVVCP.o: /usr/include/c++/3.4.6/vector +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSVVCP.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSVVCP.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSVVCP.o: ../EvtGenModels/EvtSVVHelAmp.hh ../EvtGenBase/EvtDecayAmp.hh +EvtSVVCP.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtSVVCP.o: ../EvtGenModels/EvtSVVCP.hh +EvtSVVCPLH.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSVVCPLH.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSVVCPLH.o: /usr/include/gnu/stubs.h +EvtSVVCPLH.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSVVCPLH.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSVVCPLH.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSVVCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSVVCPLH.o: /usr/include/c++/3.4.6/iosfwd +EvtSVVCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSVVCPLH.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSVVCPLH.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSVVCPLH.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSVVCPLH.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSVVCPLH.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSVVCPLH.o: /usr/include/gconv.h +EvtSVVCPLH.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSVVCPLH.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSVVCPLH.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSVVCPLH.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSVVCPLH.o: /usr/include/libintl.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSVVCPLH.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtSVVCPLH.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtSVVCPLH.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtSVVCPLH.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSVVCPLH.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSVVCPLH.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSVVCPLH.o: /usr/include/ctype.h /usr/include/endian.h +EvtSVVCPLH.o: /usr/include/bits/endian.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSVVCPLH.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/exception +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/climits +EvtSVVCPLH.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSVVCPLH.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSVVCPLH.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSVVCPLH.o: /usr/include/c++/3.4.6/new +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/cassert +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/limits +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/algorithm +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSVVCPLH.o: /usr/include/c++/3.4.6/streambuf +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSVVCPLH.o: /usr/include/c++/3.4.6/locale +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSVVCPLH.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSVVCPLH.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSVVCPLH.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSVVCPLH.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSVVCPLH.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSVVCPLH.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtSVVCPLH.o: ../EvtGenBase/EvtCPUtil.hh ../EvtGenBase/EvtPDL.hh +EvtSVVCPLH.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtSVVCPLH.o: /usr/include/c++/3.4.6/vector +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSVVCPLH.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSVVCPLH.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSVVCPLH.o: ../EvtGenModels/EvtSVVHelAmp.hh ../EvtGenBase/EvtDecayAmp.hh +EvtSVVCPLH.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtSVVCPLH.o: ../EvtGenModels/EvtSVVCPLH.hh +EvtSVVHelAmp.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSVVHelAmp.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSVVHelAmp.o: /usr/include/gnu/stubs.h +EvtSVVHelAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSVVHelAmp.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSVVHelAmp.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/iosfwd +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtSVVHelAmp.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSVVHelAmp.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSVVHelAmp.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSVVHelAmp.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSVVHelAmp.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSVVHelAmp.o: /usr/include/gconv.h +EvtSVVHelAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSVVHelAmp.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSVVHelAmp.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSVVHelAmp.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSVVHelAmp.o: /usr/include/libintl.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSVVHelAmp.o: /usr/include/pthread.h /usr/include/sched.h +EvtSVVHelAmp.o: /usr/include/time.h /usr/include/bits/sched.h +EvtSVVHelAmp.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtSVVHelAmp.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtSVVHelAmp.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtSVVHelAmp.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtSVVHelAmp.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSVVHelAmp.o: /usr/include/stdint.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/exception +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/climits +EvtSVVHelAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSVVHelAmp.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSVVHelAmp.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/new +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/cassert +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/limits +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/algorithm +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/streambuf +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/locale +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/typeinfo +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/istream +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtSVVHelAmp.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtSVVHelAmp.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtSVVHelAmp.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSVVHelAmp.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSVVHelAmp.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtSVVHelAmp.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSVVHelAmp.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/vector +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSVVHelAmp.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSVVHelAmp.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSVVHelAmp.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtSVVHelAmp.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtTensor4C.hh +EvtSVVHelAmp.o: ../EvtGenBase/EvtTensor3C.hh ../EvtGenModels/EvtSVVHelAmp.hh +EvtSVVHelAmp.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtSVVHelAmp.o: ../EvtGenBase/EvtAmp.hh +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/iostream +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSVVHelCPMix.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSVVHelCPMix.o: /usr/include/gnu/stubs.h /usr/include/c++/3.4.6/ostream +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/ios /usr/include/c++/3.4.6/iosfwd +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/cstring +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/cstddef +EvtSVVHelCPMix.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSVVHelCPMix.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtSVVHelCPMix.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtSVVHelCPMix.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtSVVHelCPMix.o: /usr/include/libio.h /usr/include/_G_config.h +EvtSVVHelCPMix.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtSVVHelCPMix.o: /usr/include/gconv.h +EvtSVVHelCPMix.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSVVHelCPMix.o: /usr/include/bits/stdio_lim.h +EvtSVVHelCPMix.o: /usr/include/bits/sys_errlist.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSVVHelCPMix.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSVVHelCPMix.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSVVHelCPMix.o: /usr/include/libintl.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSVVHelCPMix.o: /usr/include/pthread.h /usr/include/sched.h +EvtSVVHelCPMix.o: /usr/include/time.h /usr/include/bits/sched.h +EvtSVVHelCPMix.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtSVVHelCPMix.o: /usr/include/bits/pthreadtypes.h +EvtSVVHelCPMix.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtSVVHelCPMix.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtSVVHelCPMix.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtSVVHelCPMix.o: /usr/include/ctype.h /usr/include/endian.h +EvtSVVHelCPMix.o: /usr/include/bits/endian.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtSVVHelCPMix.o: /usr/include/stdint.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/exception +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/climits +EvtSVVHelCPMix.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSVVHelCPMix.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSVVHelCPMix.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSVVHelCPMix.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/limits +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/algorithm +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/streambuf +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/locale +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/typeinfo +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/istream +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/fstream +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/basic_file.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/fstream.tcc +EvtSVVHelCPMix.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtSVVHelCPMix.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtSVVHelCPMix.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtSVVHelCPMix.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtSVVHelCPMix.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtSVVHelCPMix.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtSVVHelCPMix.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtSVVHelCPMix.o: ../EvtGenBase/EvtPartProp.hh +EvtSVVHelCPMix.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/vector +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSVVHelCPMix.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSVVHelCPMix.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSVVHelCPMix.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtSVVHelCPMix.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtTensor4C.hh +EvtSVVHelCPMix.o: ../EvtGenBase/EvtTensor3C.hh +EvtSVVHelCPMix.o: ../EvtGenModels/EvtSVVHelCPMix.hh +EvtSVVHelCPMix.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtSVVHelCPMix.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtAmp.hh +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtSVVNONCPEIGEN.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtSVVNONCPEIGEN.o: /usr/include/gnu/stubs.h +EvtSVVNONCPEIGEN.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtVector4R.hh +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/iostream +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/iosfwd +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/cstring +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtSVVNONCPEIGEN.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtSVVNONCPEIGEN.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtSVVNONCPEIGEN.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtSVVNONCPEIGEN.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtSVVNONCPEIGEN.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtSVVNONCPEIGEN.o: /usr/include/bits/stdio_lim.h +EvtSVVNONCPEIGEN.o: /usr/include/bits/sys_errlist.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtSVVNONCPEIGEN.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtSVVNONCPEIGEN.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtSVVNONCPEIGEN.o: /usr/include/libintl.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtSVVNONCPEIGEN.o: /usr/include/pthread.h /usr/include/sched.h +EvtSVVNONCPEIGEN.o: /usr/include/time.h /usr/include/bits/sched.h +EvtSVVNONCPEIGEN.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtSVVNONCPEIGEN.o: /usr/include/bits/pthreadtypes.h +EvtSVVNONCPEIGEN.o: /usr/include/bits/initspin.h +EvtSVVNONCPEIGEN.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtSVVNONCPEIGEN.o: /usr/include/bits/posix_opt.h +EvtSVVNONCPEIGEN.o: /usr/include/bits/confname.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtSVVNONCPEIGEN.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/cwchar +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/exception_defines.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/exception +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/climits +EvtSVVNONCPEIGEN.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtSVVNONCPEIGEN.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtSVVNONCPEIGEN.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/new +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/debug/debug.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/cassert +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/string +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/memory +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/limits +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/algorithm +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/streambuf +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/locale +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/typeinfo +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/istream +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtSVVNONCPEIGEN.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtSVVNONCPEIGEN.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtSpinDensity.hh +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtRandom.hh +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtCPUtil.hh +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/vector +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtSVVNONCPEIGEN.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtVector3R.hh +EvtSVVNONCPEIGEN.o: ../EvtGenModels/EvtSVVNONCPEIGEN.hh +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtDecayAmp.hh +EvtSVVNONCPEIGEN.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtSVVNONCPEIGEN.o: ../EvtGenModels/EvtSVVHelAmp.hh +EvtTauHadnu.o: /usr/include/stdlib.h /usr/include/features.h +EvtTauHadnu.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h +EvtTauHadnu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/iostream +EvtTauHadnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtTauHadnu.o: /usr/include/c++/3.4.6/iosfwd +EvtTauHadnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtTauHadnu.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtTauHadnu.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtTauHadnu.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtTauHadnu.o: /usr/include/libio.h /usr/include/_G_config.h +EvtTauHadnu.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtTauHadnu.o: /usr/include/gconv.h +EvtTauHadnu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtTauHadnu.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtTauHadnu.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtTauHadnu.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtTauHadnu.o: /usr/include/libintl.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtTauHadnu.o: /usr/include/pthread.h /usr/include/sched.h +EvtTauHadnu.o: /usr/include/time.h /usr/include/bits/sched.h +EvtTauHadnu.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtTauHadnu.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtTauHadnu.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtTauHadnu.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtTauHadnu.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtTauHadnu.o: /usr/include/stdint.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/exception_defines.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/exception +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/climits +EvtTauHadnu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtTauHadnu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtTauHadnu.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtTauHadnu.o: /usr/include/c++/3.4.6/new +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/debug/debug.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/limits +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/algorithm +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtTauHadnu.o: /usr/include/c++/3.4.6/streambuf +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtTauHadnu.o: /usr/include/c++/3.4.6/locale +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtTauHadnu.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtTauHadnu.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtTauHadnu.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtTauHadnu.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtTauHadnu.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtTauHadnu.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtTauHadnu.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtTauHadnu.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtTauHadnu.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtTauHadnu.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtTauHadnu.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtTauHadnu.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenModels/EvtTauHadnu.hh +EvtTauHadnu.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtTauHadnu.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtAmp.hh +EvtTauHadnu.o: ../EvtGenBase/EvtDiracSpinor.hh ../EvtGenBase/EvtVector3R.hh +EvtTauHadnu.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtTauHadnu.o: ../EvtGenBase/EvtIdSet.hh +EvtTaulnunu.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtTaulnunu.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtTaulnunu.o: /usr/include/gnu/stubs.h +EvtTaulnunu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/iostream +EvtTaulnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtTaulnunu.o: /usr/include/c++/3.4.6/iosfwd +EvtTaulnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtTaulnunu.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtTaulnunu.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtTaulnunu.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtTaulnunu.o: /usr/include/libio.h /usr/include/_G_config.h +EvtTaulnunu.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtTaulnunu.o: /usr/include/gconv.h +EvtTaulnunu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtTaulnunu.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtTaulnunu.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtTaulnunu.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtTaulnunu.o: /usr/include/libintl.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtTaulnunu.o: /usr/include/pthread.h /usr/include/sched.h +EvtTaulnunu.o: /usr/include/time.h /usr/include/bits/sched.h +EvtTaulnunu.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtTaulnunu.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtTaulnunu.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtTaulnunu.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtTaulnunu.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtTaulnunu.o: /usr/include/stdint.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/exception_defines.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/exception +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/climits +EvtTaulnunu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtTaulnunu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtTaulnunu.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtTaulnunu.o: /usr/include/c++/3.4.6/new +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/debug/debug.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/limits +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/algorithm +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtTaulnunu.o: /usr/include/c++/3.4.6/streambuf +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtTaulnunu.o: /usr/include/c++/3.4.6/locale +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtTaulnunu.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtTaulnunu.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtTaulnunu.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtTaulnunu.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtTaulnunu.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtTaulnunu.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtTaulnunu.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtTaulnunu.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtTaulnunu.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtTaulnunu.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtTaulnunu.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtTaulnunu.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenModels/EvtTaulnunu.hh +EvtTaulnunu.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtTaulnunu.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtDiracSpinor.hh +EvtTaulnunu.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtVector4C.hh +EvtTaulnunu.o: ../EvtGenBase/EvtVector3C.hh +EvtTauScalarnu.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtTauScalarnu.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtTauScalarnu.o: /usr/include/gnu/stubs.h +EvtTauScalarnu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/iostream +EvtTauScalarnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtTauScalarnu.o: /usr/include/c++/3.4.6/iosfwd +EvtTauScalarnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/cstring +EvtTauScalarnu.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtTauScalarnu.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtTauScalarnu.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtTauScalarnu.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtTauScalarnu.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtTauScalarnu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtTauScalarnu.o: /usr/include/bits/stdio_lim.h +EvtTauScalarnu.o: /usr/include/bits/sys_errlist.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtTauScalarnu.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtTauScalarnu.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtTauScalarnu.o: /usr/include/libintl.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtTauScalarnu.o: /usr/include/pthread.h /usr/include/sched.h +EvtTauScalarnu.o: /usr/include/time.h /usr/include/bits/sched.h +EvtTauScalarnu.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtTauScalarnu.o: /usr/include/bits/pthreadtypes.h +EvtTauScalarnu.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtTauScalarnu.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtTauScalarnu.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtTauScalarnu.o: /usr/include/ctype.h /usr/include/endian.h +EvtTauScalarnu.o: /usr/include/bits/endian.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtTauScalarnu.o: /usr/include/stdint.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/exception_defines.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/exception +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/climits +EvtTauScalarnu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtTauScalarnu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtTauScalarnu.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtTauScalarnu.o: /usr/include/c++/3.4.6/new +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/debug/debug.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/limits +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/algorithm +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtTauScalarnu.o: /usr/include/c++/3.4.6/streambuf +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtTauScalarnu.o: /usr/include/c++/3.4.6/locale +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtTauScalarnu.o: /usr/include/c++/3.4.6/typeinfo +EvtTauScalarnu.o: /usr/include/c++/3.4.6/istream +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtTauScalarnu.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtTauScalarnu.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtTauScalarnu.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtTauScalarnu.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtTauScalarnu.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtTauScalarnu.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtTauScalarnu.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtTauScalarnu.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtTauScalarnu.o: /usr/include/c++/3.4.6/vector +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtTauScalarnu.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtTauScalarnu.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtTauScalarnu.o: ../EvtGenBase/EvtGenKine.hh +EvtTauScalarnu.o: ../EvtGenModels/EvtTauScalarnu.hh +EvtTauScalarnu.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtTauScalarnu.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtDiracSpinor.hh +EvtTauScalarnu.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtVector4C.hh +EvtTauScalarnu.o: ../EvtGenBase/EvtVector3C.hh +EvtTauVectornu.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtTauVectornu.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtTauVectornu.o: /usr/include/gnu/stubs.h +EvtTauVectornu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/iostream +EvtTauVectornu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtTauVectornu.o: /usr/include/c++/3.4.6/iosfwd +EvtTauVectornu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/cstring +EvtTauVectornu.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtTauVectornu.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtTauVectornu.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtTauVectornu.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtTauVectornu.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtTauVectornu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtTauVectornu.o: /usr/include/bits/stdio_lim.h +EvtTauVectornu.o: /usr/include/bits/sys_errlist.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtTauVectornu.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtTauVectornu.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtTauVectornu.o: /usr/include/libintl.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtTauVectornu.o: /usr/include/pthread.h /usr/include/sched.h +EvtTauVectornu.o: /usr/include/time.h /usr/include/bits/sched.h +EvtTauVectornu.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtTauVectornu.o: /usr/include/bits/pthreadtypes.h +EvtTauVectornu.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtTauVectornu.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtTauVectornu.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtTauVectornu.o: /usr/include/ctype.h /usr/include/endian.h +EvtTauVectornu.o: /usr/include/bits/endian.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtTauVectornu.o: /usr/include/stdint.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/exception_defines.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/exception +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/climits +EvtTauVectornu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtTauVectornu.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtTauVectornu.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtTauVectornu.o: /usr/include/c++/3.4.6/new +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/debug/debug.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/limits +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/algorithm +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtTauVectornu.o: /usr/include/c++/3.4.6/streambuf +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtTauVectornu.o: /usr/include/c++/3.4.6/locale +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtTauVectornu.o: /usr/include/c++/3.4.6/typeinfo +EvtTauVectornu.o: /usr/include/c++/3.4.6/istream +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtTauVectornu.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtTauVectornu.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtTauVectornu.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtTauVectornu.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtTauVectornu.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtTauVectornu.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtTauVectornu.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtTauVectornu.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtTauVectornu.o: /usr/include/c++/3.4.6/vector +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtTauVectornu.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtTauVectornu.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtTauVectornu.o: ../EvtGenBase/EvtGenKine.hh +EvtTauVectornu.o: ../EvtGenModels/EvtTauVectornu.hh +EvtTauVectornu.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtTauVectornu.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtDiracSpinor.hh +EvtTauVectornu.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtVector4C.hh +EvtTauVectornu.o: ../EvtGenBase/EvtVector3C.hh +EvtTSS.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtTSS.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtTSS.o: /usr/include/gnu/stubs.h +EvtTSS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtTSS.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtComplex.hh +EvtTSS.o: /usr/include/c++/3.4.6/iostream +EvtTSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtTSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtTSS.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtTSS.o: /usr/include/c++/3.4.6/iosfwd +EvtTSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtTSS.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtTSS.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtTSS.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtTSS.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtTSS.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h +EvtTSS.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtTSS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtTSS.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtTSS.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtTSS.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtTSS.o: /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h +EvtTSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtTSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtTSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtTSS.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtTSS.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtTSS.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtTSS.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtTSS.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtTSS.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtTSS.o: /usr/include/ctype.h /usr/include/endian.h +EvtTSS.o: /usr/include/bits/endian.h /usr/include/c++/3.4.6/bits/stringfwd.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtTSS.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtTSS.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtTSS.o: /usr/include/c++/3.4.6/exception_defines.h +EvtTSS.o: /usr/include/c++/3.4.6/exception +EvtTSS.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtTSS.o: /usr/include/c++/3.4.6/climits +EvtTSS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtTSS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtTSS.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtTSS.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtTSS.o: /usr/include/c++/3.4.6/debug/debug.h /usr/include/c++/3.4.6/cassert +EvtTSS.o: /usr/include/assert.h /usr/include/c++/3.4.6/bits/localefwd.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtTSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtTSS.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtTSS.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtTSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtTSS.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtTSS.o: /usr/include/c++/3.4.6/limits +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtTSS.o: /usr/include/c++/3.4.6/algorithm +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtTSS.o: /usr/include/c++/3.4.6/streambuf +EvtTSS.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtTSS.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtTSS.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtTSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtTSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtTSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtTSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtTSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtTSS.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtTSS.o: /usr/include/c++/3.4.6/locale +EvtTSS.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtTSS.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtTSS.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtTSS.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtTSS.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtConst.hh +EvtTSS.o: ../EvtGenBase/EvtVector3C.hh ../EvtGenBase/EvtVector3R.hh +EvtTSS.o: ../EvtGenBase/EvtVector4R.hh ../EvtGenBase/EvtParticle.hh +EvtTSS.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtId.hh +EvtTSS.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtTSS.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtTSS.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtTSS.o: /usr/include/c++/3.4.6/vector +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtTSS.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtTSS.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtTSS.o: ../EvtGenBase/EvtTensor4C.hh ../EvtGenModels/EvtTSS.hh +EvtTSS.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtTSS.o: ../EvtGenBase/EvtAmp.hh +EvtTVSPwave.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtTVSPwave.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtTVSPwave.o: /usr/include/gnu/stubs.h +EvtTVSPwave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtTVSPwave.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtTVSPwave.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtTVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtTVSPwave.o: /usr/include/c++/3.4.6/iosfwd +EvtTVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtTVSPwave.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtTVSPwave.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtTVSPwave.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtTVSPwave.o: /usr/include/libio.h /usr/include/_G_config.h +EvtTVSPwave.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtTVSPwave.o: /usr/include/gconv.h +EvtTVSPwave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtTVSPwave.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtTVSPwave.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtTVSPwave.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtTVSPwave.o: /usr/include/libintl.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtTVSPwave.o: /usr/include/pthread.h /usr/include/sched.h +EvtTVSPwave.o: /usr/include/time.h /usr/include/bits/sched.h +EvtTVSPwave.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtTVSPwave.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtTVSPwave.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtTVSPwave.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtTVSPwave.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtTVSPwave.o: /usr/include/stdint.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/exception_defines.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/exception +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/climits +EvtTVSPwave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtTVSPwave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtTVSPwave.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtTVSPwave.o: /usr/include/c++/3.4.6/new +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/debug/debug.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/cassert +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/limits +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/algorithm +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtTVSPwave.o: /usr/include/c++/3.4.6/streambuf +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtTVSPwave.o: /usr/include/c++/3.4.6/locale +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtTVSPwave.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtTVSPwave.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtTVSPwave.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtTVSPwave.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtTVSPwave.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtTVSPwave.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtTVSPwave.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtTVSPwave.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtTVSPwave.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtTVSPwave.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtTVSPwave.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtTVSPwave.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtTensor4C.hh +EvtTVSPwave.o: ../EvtGenModels/EvtTVSPwave.hh ../EvtGenBase/EvtDecayAmp.hh +EvtTVSPwave.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtVectorIsr.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVectorIsr.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVectorIsr.o: /usr/include/gnu/stubs.h +EvtVectorIsr.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVectorIsr.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtVectorIsr.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/iostream +EvtVectorIsr.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVectorIsr.o: /usr/include/c++/3.4.6/iosfwd +EvtVectorIsr.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVectorIsr.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVectorIsr.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVectorIsr.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVectorIsr.o: /usr/include/libio.h /usr/include/_G_config.h +EvtVectorIsr.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtVectorIsr.o: /usr/include/gconv.h +EvtVectorIsr.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVectorIsr.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVectorIsr.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVectorIsr.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVectorIsr.o: /usr/include/libintl.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVectorIsr.o: /usr/include/pthread.h /usr/include/sched.h +EvtVectorIsr.o: /usr/include/time.h /usr/include/bits/sched.h +EvtVectorIsr.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtVectorIsr.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtVectorIsr.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtVectorIsr.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtVectorIsr.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVectorIsr.o: /usr/include/stdint.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/exception +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/climits +EvtVectorIsr.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVectorIsr.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVectorIsr.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVectorIsr.o: /usr/include/c++/3.4.6/new +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/limits +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/algorithm +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVectorIsr.o: /usr/include/c++/3.4.6/streambuf +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVectorIsr.o: /usr/include/c++/3.4.6/locale +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVectorIsr.o: /usr/include/c++/3.4.6/typeinfo +EvtVectorIsr.o: /usr/include/c++/3.4.6/istream +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtVectorIsr.o: /usr/include/c++/3.4.6/iomanip +EvtVectorIsr.o: /usr/include/c++/3.4.6/functional +EvtVectorIsr.o: /usr/include/c++/3.4.6/sstream +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/sstream.tcc +EvtVectorIsr.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtVectorIsr.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtVectorIsr.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtVectorIsr.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtVectorIsr.o: ../EvtGenBase/EvtPhotonParticle.hh +EvtVectorIsr.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtVectorIsr.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtRandom.hh +EvtVectorIsr.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVectorIsr.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtVectorIsr.o: /usr/include/c++/3.4.6/vector +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVectorIsr.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVectorIsr.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVectorIsr.o: ../EvtGenModels/EvtVectorIsr.hh +EvtVectorIsr.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtVectorIsr.o: ../EvtGenBase/EvtDecayBase.hh +EvtVll.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVll.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVll.o: /usr/include/gnu/stubs.h +EvtVll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVll.o: /usr/include/c++/3.4.6/iostream +EvtVll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVll.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVll.o: /usr/include/c++/3.4.6/iosfwd +EvtVll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVll.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVll.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVll.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVll.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVll.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h +EvtVll.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtVll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVll.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVll.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVll.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVll.o: /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h +EvtVll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVll.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtVll.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtVll.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtVll.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtVll.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtVll.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtVll.o: /usr/include/ctype.h /usr/include/endian.h +EvtVll.o: /usr/include/bits/endian.h /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVll.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVll.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVll.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtVll.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVll.o: /usr/include/c++/3.4.6/exception +EvtVll.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVll.o: /usr/include/c++/3.4.6/climits +EvtVll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVll.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVll.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVll.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVll.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVll.o: /usr/include/c++/3.4.6/debug/debug.h /usr/include/c++/3.4.6/cassert +EvtVll.o: /usr/include/assert.h /usr/include/c++/3.4.6/bits/localefwd.h +EvtVll.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVll.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVll.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVll.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVll.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVll.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVll.o: /usr/include/c++/3.4.6/limits +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVll.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVll.o: /usr/include/c++/3.4.6/algorithm +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVll.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVll.o: /usr/include/c++/3.4.6/streambuf +EvtVll.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVll.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVll.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVll.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVll.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVll.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVll.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVll.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVll.o: /usr/include/c++/3.4.6/locale +EvtVll.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVll.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtVll.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtVll.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtVll.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtVll.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtVll.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtVll.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtVll.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtVll.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVll.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVll.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVll.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVll.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVll.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVll.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenModels/EvtVll.hh +EvtVll.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtVll.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtDiracSpinor.hh +EvtVll.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtVector4C.hh +EvtVll.o: ../EvtGenBase/EvtVector3C.hh +EvtVPHOtoV.o: /usr/include/stdlib.h /usr/include/features.h +EvtVPHOtoV.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h +EvtVPHOtoV.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVPHOtoV.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVPHOtoV.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtVPHOtoV.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVPHOtoV.o: /usr/include/c++/3.4.6/iosfwd +EvtVPHOtoV.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVPHOtoV.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVPHOtoV.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVPHOtoV.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVPHOtoV.o: /usr/include/libio.h /usr/include/_G_config.h +EvtVPHOtoV.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtVPHOtoV.o: /usr/include/gconv.h +EvtVPHOtoV.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVPHOtoV.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVPHOtoV.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVPHOtoV.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVPHOtoV.o: /usr/include/libintl.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVPHOtoV.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtVPHOtoV.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtVPHOtoV.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtVPHOtoV.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtVPHOtoV.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtVPHOtoV.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtVPHOtoV.o: /usr/include/ctype.h /usr/include/endian.h +EvtVPHOtoV.o: /usr/include/bits/endian.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVPHOtoV.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/exception +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/climits +EvtVPHOtoV.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVPHOtoV.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVPHOtoV.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVPHOtoV.o: /usr/include/c++/3.4.6/new +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/cassert +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/limits +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/algorithm +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVPHOtoV.o: /usr/include/c++/3.4.6/streambuf +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVPHOtoV.o: /usr/include/c++/3.4.6/locale +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVPHOtoV.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtVPHOtoV.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtVPHOtoV.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtVPHOtoV.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtVPHOtoV.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVPHOtoV.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVPHOtoV.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVPHOtoV.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVPHOtoV.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVPHOtoV.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVPHOtoV.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtVPHOtoV.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenModels/EvtVPHOtoV.hh +EvtVPHOtoV.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtVPHOtoV.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtAmp.hh +EvtVPHOtoVISR.o: /usr/include/stdlib.h /usr/include/features.h +EvtVPHOtoVISR.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h +EvtVPHOtoVISR.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVPHOtoVISR.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVPHOtoVISR.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/iosfwd +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/cstring +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtVPHOtoVISR.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtVPHOtoVISR.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtVPHOtoVISR.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtVPHOtoVISR.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtVPHOtoVISR.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVPHOtoVISR.o: /usr/include/bits/stdio_lim.h +EvtVPHOtoVISR.o: /usr/include/bits/sys_errlist.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVPHOtoVISR.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVPHOtoVISR.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVPHOtoVISR.o: /usr/include/libintl.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVPHOtoVISR.o: /usr/include/pthread.h /usr/include/sched.h +EvtVPHOtoVISR.o: /usr/include/time.h /usr/include/bits/sched.h +EvtVPHOtoVISR.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtVPHOtoVISR.o: /usr/include/bits/pthreadtypes.h +EvtVPHOtoVISR.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtVPHOtoVISR.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtVPHOtoVISR.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtVPHOtoVISR.o: /usr/include/ctype.h /usr/include/endian.h +EvtVPHOtoVISR.o: /usr/include/bits/endian.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVPHOtoVISR.o: /usr/include/stdint.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/exception +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/climits +EvtVPHOtoVISR.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVPHOtoVISR.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVPHOtoVISR.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/new +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/cassert +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/limits +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/algorithm +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/streambuf +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/locale +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/typeinfo +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/istream +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtVPHOtoVISR.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtVPHOtoVISR.o: /usr/include/bits/mathcalls.h +EvtVPHOtoVISR.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtVPHOtoVISR.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtVPHOtoVISR.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtVPHOtoVISR.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtVPHOtoVISR.o: ../EvtGenBase/EvtPartProp.hh +EvtVPHOtoVISR.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/vector +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVPHOtoVISR.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVPHOtoVISR.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVPHOtoVISR.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtVPHOtoVISR.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtRandom.hh +EvtVPHOtoVISR.o: ../EvtGenModels/EvtVPHOtoVISR.hh +EvtVPHOtoVISR.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtVPHOtoVISR.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtAmp.hh +EvtVPHOtoVISRHi.o: /usr/include/stdlib.h /usr/include/features.h +EvtVPHOtoVISRHi.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h +EvtVPHOtoVISRHi.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVPHOtoVISRHi.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVPHOtoVISRHi.o: ../EvtGenBase/EvtVector4R.hh +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/iostream +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/iosfwd +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/cstring +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtVPHOtoVISRHi.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtVPHOtoVISRHi.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtVPHOtoVISRHi.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtVPHOtoVISRHi.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtVPHOtoVISRHi.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVPHOtoVISRHi.o: /usr/include/bits/stdio_lim.h +EvtVPHOtoVISRHi.o: /usr/include/bits/sys_errlist.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVPHOtoVISRHi.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVPHOtoVISRHi.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVPHOtoVISRHi.o: /usr/include/libintl.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVPHOtoVISRHi.o: /usr/include/pthread.h /usr/include/sched.h +EvtVPHOtoVISRHi.o: /usr/include/time.h /usr/include/bits/sched.h +EvtVPHOtoVISRHi.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtVPHOtoVISRHi.o: /usr/include/bits/pthreadtypes.h +EvtVPHOtoVISRHi.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtVPHOtoVISRHi.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtVPHOtoVISRHi.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtVPHOtoVISRHi.o: /usr/include/ctype.h /usr/include/endian.h +EvtVPHOtoVISRHi.o: /usr/include/bits/endian.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVPHOtoVISRHi.o: /usr/include/stdint.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/exception +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/climits +EvtVPHOtoVISRHi.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVPHOtoVISRHi.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVPHOtoVISRHi.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/new +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/cassert +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/string +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/memory +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/limits +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/algorithm +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/streambuf +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/locale +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/typeinfo +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/istream +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtVPHOtoVISRHi.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtVPHOtoVISRHi.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtVPHOtoVISRHi.o: ../EvtGenBase/EvtSpinDensity.hh +EvtVPHOtoVISRHi.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtVPHOtoVISRHi.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVPHOtoVISRHi.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVPHOtoVISRHi.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVPHOtoVISRHi.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/vector +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVPHOtoVISRHi.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVPHOtoVISRHi.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVPHOtoVISRHi.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtVPHOtoVISRHi.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtRandom.hh +EvtVPHOtoVISRHi.o: ../EvtGenModels/EvtVPHOtoVISRHi.hh +EvtVPHOtoVISRHi.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtVPHOtoVISRHi.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtAmp.hh +EvtVSPPwave.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVSPPwave.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVSPPwave.o: /usr/include/gnu/stubs.h +EvtVSPPwave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVSPPwave.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVSPPwave.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtVSPPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVSPPwave.o: /usr/include/c++/3.4.6/iosfwd +EvtVSPPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVSPPwave.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVSPPwave.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVSPPwave.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVSPPwave.o: /usr/include/libio.h /usr/include/_G_config.h +EvtVSPPwave.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtVSPPwave.o: /usr/include/gconv.h +EvtVSPPwave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVSPPwave.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVSPPwave.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVSPPwave.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVSPPwave.o: /usr/include/libintl.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVSPPwave.o: /usr/include/pthread.h /usr/include/sched.h +EvtVSPPwave.o: /usr/include/time.h /usr/include/bits/sched.h +EvtVSPPwave.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtVSPPwave.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtVSPPwave.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtVSPPwave.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtVSPPwave.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVSPPwave.o: /usr/include/stdint.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/exception +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/climits +EvtVSPPwave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVSPPwave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVSPPwave.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVSPPwave.o: /usr/include/c++/3.4.6/new +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/cassert +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/limits +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/algorithm +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVSPPwave.o: /usr/include/c++/3.4.6/streambuf +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVSPPwave.o: /usr/include/c++/3.4.6/locale +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVSPPwave.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtVSPPwave.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtVSPPwave.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtVSPPwave.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtVSPPwave.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVSPPwave.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVSPPwave.o: ../EvtGenBase/EvtTensor4C.hh ../EvtGenBase/EvtPDL.hh +EvtVSPPwave.o: ../EvtGenBase/EvtPartProp.hh ../EvtGenBase/EvtAbsLineShape.hh +EvtVSPPwave.o: /usr/include/c++/3.4.6/vector +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVSPPwave.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVSPPwave.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVSPPwave.o: ../EvtGenModels/EvtVSPPwave.hh ../EvtGenBase/EvtDecayAmp.hh +EvtVSPPwave.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtVSPPwave.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtVSPPwave.o: ../EvtGenBase/EvtVector3R.hh +EvtVSSBMixCPT.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVSSBMixCPT.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVSSBMixCPT.o: /usr/include/gnu/stubs.h +EvtVSSBMixCPT.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVSSBMixCPT.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtParticle.hh +EvtVSSBMixCPT.o: /usr/include/assert.h ../EvtGenBase/EvtVector4R.hh +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/iostream +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/iosfwd +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/cstring +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtVSSBMixCPT.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtVSSBMixCPT.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtVSSBMixCPT.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtVSSBMixCPT.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtVSSBMixCPT.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVSSBMixCPT.o: /usr/include/bits/stdio_lim.h +EvtVSSBMixCPT.o: /usr/include/bits/sys_errlist.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVSSBMixCPT.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVSSBMixCPT.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVSSBMixCPT.o: /usr/include/libintl.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVSSBMixCPT.o: /usr/include/pthread.h /usr/include/sched.h +EvtVSSBMixCPT.o: /usr/include/time.h /usr/include/bits/sched.h +EvtVSSBMixCPT.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtVSSBMixCPT.o: /usr/include/bits/pthreadtypes.h +EvtVSSBMixCPT.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtVSSBMixCPT.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtVSSBMixCPT.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtVSSBMixCPT.o: /usr/include/ctype.h /usr/include/endian.h +EvtVSSBMixCPT.o: /usr/include/bits/endian.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVSSBMixCPT.o: /usr/include/stdint.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/exception +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/climits +EvtVSSBMixCPT.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVSSBMixCPT.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVSSBMixCPT.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/new +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/cassert +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/limits +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/algorithm +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/streambuf +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/locale +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/typeinfo +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/istream +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtVSSBMixCPT.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtVSSBMixCPT.o: /usr/include/bits/mathcalls.h +EvtVSSBMixCPT.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtVSSBMixCPT.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVSSBMixCPT.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVSSBMixCPT.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVSSBMixCPT.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/vector +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVSSBMixCPT.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVSSBMixCPT.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVSSBMixCPT.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtVSSBMixCPT.o: ../EvtGenBase/EvtVector3R.hh +EvtVSSBMixCPT.o: ../EvtGenModels/EvtVSSBMixCPT.hh +EvtVSSBMixCPT.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtVSSBMixCPT.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtRandom.hh +EvtVSS.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVSS.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVSS.o: /usr/include/gnu/stubs.h +EvtVSS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVSS.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVSS.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtVSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVSS.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVSS.o: /usr/include/c++/3.4.6/iosfwd +EvtVSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVSS.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVSS.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVSS.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVSS.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVSS.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h +EvtVSS.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtVSS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVSS.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVSS.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVSS.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVSS.o: /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h +EvtVSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVSS.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtVSS.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtVSS.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtVSS.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtVSS.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtVSS.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtVSS.o: /usr/include/ctype.h /usr/include/endian.h +EvtVSS.o: /usr/include/bits/endian.h /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVSS.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVSS.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtVSS.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVSS.o: /usr/include/c++/3.4.6/exception +EvtVSS.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVSS.o: /usr/include/c++/3.4.6/climits +EvtVSS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVSS.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVSS.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVSS.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVSS.o: /usr/include/c++/3.4.6/debug/debug.h /usr/include/c++/3.4.6/cassert +EvtVSS.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVSS.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVSS.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVSS.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVSS.o: /usr/include/c++/3.4.6/limits +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVSS.o: /usr/include/c++/3.4.6/algorithm +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVSS.o: /usr/include/c++/3.4.6/streambuf +EvtVSS.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVSS.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVSS.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVSS.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVSS.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVSS.o: /usr/include/c++/3.4.6/locale +EvtVSS.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVSS.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtVSS.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtVSS.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtVSS.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtVSS.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtVSS.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVSS.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVSS.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVSS.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVSS.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVSS.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVSS.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtVSS.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenModels/EvtVSS.hh +EvtVSS.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtVSS.o: ../EvtGenBase/EvtAmp.hh +EvtVSSMix.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVSSMix.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVSSMix.o: /usr/include/gnu/stubs.h +EvtVSSMix.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVSSMix.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVSSMix.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtVSSMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVSSMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVSSMix.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVSSMix.o: /usr/include/c++/3.4.6/iosfwd +EvtVSSMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVSSMix.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVSSMix.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVSSMix.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVSSMix.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVSSMix.o: /usr/include/libio.h /usr/include/_G_config.h +EvtVSSMix.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtVSSMix.o: /usr/include/gconv.h +EvtVSSMix.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVSSMix.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVSSMix.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVSSMix.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVSSMix.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVSSMix.o: /usr/include/libintl.h +EvtVSSMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVSSMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVSSMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVSSMix.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtVSSMix.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtVSSMix.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtVSSMix.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtVSSMix.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtVSSMix.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtVSSMix.o: /usr/include/ctype.h /usr/include/endian.h +EvtVSSMix.o: /usr/include/bits/endian.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVSSMix.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVSSMix.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtVSSMix.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVSSMix.o: /usr/include/c++/3.4.6/exception +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVSSMix.o: /usr/include/c++/3.4.6/climits +EvtVSSMix.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVSSMix.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVSSMix.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVSSMix.o: /usr/include/c++/3.4.6/new +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVSSMix.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVSSMix.o: /usr/include/c++/3.4.6/cassert +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVSSMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVSSMix.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVSSMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVSSMix.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVSSMix.o: /usr/include/c++/3.4.6/limits +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVSSMix.o: /usr/include/c++/3.4.6/algorithm +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVSSMix.o: /usr/include/c++/3.4.6/streambuf +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVSSMix.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVSSMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVSSMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVSSMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVSSMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVSSMix.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVSSMix.o: /usr/include/c++/3.4.6/locale +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVSSMix.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtVSSMix.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtVSSMix.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtVSSMix.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtVSSMix.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVSSMix.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVSSMix.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVSSMix.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVSSMix.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVSSMix.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVSSMix.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtVSSMix.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenModels/EvtVSSMix.hh +EvtVSSMix.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtVSSMix.o: ../EvtGenBase/EvtAmp.hh +EvtVtoSll.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVtoSll.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVtoSll.o: /usr/include/gnu/stubs.h +EvtVtoSll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVtoSll.o: /usr/include/c++/3.4.6/iostream +EvtVtoSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVtoSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVtoSll.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVtoSll.o: /usr/include/c++/3.4.6/iosfwd +EvtVtoSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVtoSll.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVtoSll.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVtoSll.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVtoSll.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVtoSll.o: /usr/include/libio.h /usr/include/_G_config.h +EvtVtoSll.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtVtoSll.o: /usr/include/gconv.h +EvtVtoSll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVtoSll.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVtoSll.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVtoSll.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVtoSll.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVtoSll.o: /usr/include/libintl.h +EvtVtoSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVtoSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVtoSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVtoSll.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtVtoSll.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtVtoSll.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtVtoSll.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtVtoSll.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtVtoSll.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtVtoSll.o: /usr/include/ctype.h /usr/include/endian.h +EvtVtoSll.o: /usr/include/bits/endian.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVtoSll.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVtoSll.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtVtoSll.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVtoSll.o: /usr/include/c++/3.4.6/exception +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVtoSll.o: /usr/include/c++/3.4.6/climits +EvtVtoSll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVtoSll.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVtoSll.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVtoSll.o: /usr/include/c++/3.4.6/new +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVtoSll.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVtoSll.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVtoSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVtoSll.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVtoSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVtoSll.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVtoSll.o: /usr/include/c++/3.4.6/limits +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVtoSll.o: /usr/include/c++/3.4.6/algorithm +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVtoSll.o: /usr/include/c++/3.4.6/streambuf +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVtoSll.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVtoSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVtoSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVtoSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVtoSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVtoSll.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVtoSll.o: /usr/include/c++/3.4.6/locale +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVtoSll.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtVtoSll.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtVtoSll.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtVtoSll.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtVtoSll.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtComplex.hh +EvtVtoSll.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtVtoSll.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtVtoSll.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVtoSll.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVtoSll.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVtoSll.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVtoSll.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenModels/EvtVtoSll.hh +EvtVtoSll.o: ../EvtGenBase/EvtDecayAmp.hh ../EvtGenBase/EvtDecayBase.hh +EvtVtoSll.o: ../EvtGenBase/EvtAmp.hh ../EvtGenBase/EvtDiracSpinor.hh +EvtVtoSll.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtVector4C.hh +EvtVtoSll.o: ../EvtGenBase/EvtVector3C.hh ../EvtGenBase/EvtTensor4C.hh +EvtVubAC.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVubAC.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVubAC.o: /usr/include/gnu/stubs.h +EvtVubAC.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVubAC.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVubAC.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtVubAC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVubAC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVubAC.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVubAC.o: /usr/include/c++/3.4.6/iosfwd +EvtVubAC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVubAC.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVubAC.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVubAC.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVubAC.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVubAC.o: /usr/include/libio.h /usr/include/_G_config.h +EvtVubAC.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtVubAC.o: /usr/include/gconv.h +EvtVubAC.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVubAC.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVubAC.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVubAC.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVubAC.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVubAC.o: /usr/include/libintl.h +EvtVubAC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVubAC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVubAC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVubAC.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtVubAC.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtVubAC.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtVubAC.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtVubAC.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtVubAC.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtVubAC.o: /usr/include/ctype.h /usr/include/endian.h +EvtVubAC.o: /usr/include/bits/endian.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVubAC.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVubAC.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtVubAC.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVubAC.o: /usr/include/c++/3.4.6/exception +EvtVubAC.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVubAC.o: /usr/include/c++/3.4.6/climits +EvtVubAC.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVubAC.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVubAC.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVubAC.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVubAC.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVubAC.o: /usr/include/c++/3.4.6/cassert +EvtVubAC.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVubAC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVubAC.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVubAC.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVubAC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVubAC.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVubAC.o: /usr/include/c++/3.4.6/limits +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVubAC.o: /usr/include/c++/3.4.6/algorithm +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVubAC.o: /usr/include/c++/3.4.6/streambuf +EvtVubAC.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVubAC.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVubAC.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVubAC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVubAC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVubAC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVubAC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVubAC.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVubAC.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVubAC.o: /usr/include/c++/3.4.6/locale +EvtVubAC.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVubAC.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtVubAC.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtVubAC.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtVubAC.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtVubAC.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtVubAC.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVubAC.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVubAC.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVubAC.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVubAC.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVubAC.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVubAC.o: ../EvtGenModels/EvtVubAC.hh ../EvtGenBase/EvtDecayIncoherent.hh +EvtVubAC.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenModels/EvtPFermi.hh +EvtVubAC.o: ../EvtGenBase/EvtRandom.hh +EvtVubBLNP.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVubBLNP.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVubBLNP.o: /usr/include/gnu/stubs.h +EvtVubBLNP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVubBLNP.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVubBLNP.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtVubBLNP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVubBLNP.o: /usr/include/c++/3.4.6/iosfwd +EvtVubBLNP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVubBLNP.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVubBLNP.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVubBLNP.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVubBLNP.o: /usr/include/libio.h /usr/include/_G_config.h +EvtVubBLNP.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtVubBLNP.o: /usr/include/gconv.h +EvtVubBLNP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVubBLNP.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVubBLNP.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVubBLNP.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVubBLNP.o: /usr/include/libintl.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVubBLNP.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtVubBLNP.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtVubBLNP.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtVubBLNP.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtVubBLNP.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtVubBLNP.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtVubBLNP.o: /usr/include/ctype.h /usr/include/endian.h +EvtVubBLNP.o: /usr/include/bits/endian.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVubBLNP.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/exception +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/climits +EvtVubBLNP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVubBLNP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVubBLNP.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVubBLNP.o: /usr/include/c++/3.4.6/new +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/cassert +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/limits +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/algorithm +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVubBLNP.o: /usr/include/c++/3.4.6/streambuf +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVubBLNP.o: /usr/include/c++/3.4.6/locale +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVubBLNP.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtVubBLNP.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtVubBLNP.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtVubBLNP.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtVubBLNP.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVubBLNP.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVubBLNP.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVubBLNP.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVubBLNP.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVubBLNP.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVubBLNP.o: ../EvtGenModels/EvtVubBLNP.hh +EvtVubBLNP.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtVubBLNP.o: ../EvtGenBase/EvtDecayBase.hh +EvtVubBLNP.o: ../EvtGenModels/EvtItgSimpsonIntegrator.hh +EvtVubBLNP.o: ../EvtGenModels/EvtItgAbsIntegrator.hh +EvtVubBLNP.o: ../EvtGenModels/EvtItgAbsFunction.hh +EvtVubBLNP.o: ../EvtGenModels/EvtItgPtrFunction.hh ../EvtGenBase/EvtRandom.hh +EvtVubBLNP.o: ../EvtGenModels/EvtPFermi.hh +EvtVubBLNPHybrid.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVubBLNPHybrid.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVubBLNPHybrid.o: /usr/include/gnu/stubs.h +EvtVubBLNPHybrid.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVubBLNPHybrid.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVubBLNPHybrid.o: ../EvtGenBase/EvtVector4R.hh +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/iostream +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/iosfwd +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/cstring +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtVubBLNPHybrid.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtVubBLNPHybrid.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtVubBLNPHybrid.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtVubBLNPHybrid.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtVubBLNPHybrid.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVubBLNPHybrid.o: /usr/include/bits/stdio_lim.h +EvtVubBLNPHybrid.o: /usr/include/bits/sys_errlist.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVubBLNPHybrid.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVubBLNPHybrid.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVubBLNPHybrid.o: /usr/include/libintl.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVubBLNPHybrid.o: /usr/include/pthread.h /usr/include/sched.h +EvtVubBLNPHybrid.o: /usr/include/time.h /usr/include/bits/sched.h +EvtVubBLNPHybrid.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtVubBLNPHybrid.o: /usr/include/bits/pthreadtypes.h +EvtVubBLNPHybrid.o: /usr/include/bits/initspin.h +EvtVubBLNPHybrid.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtVubBLNPHybrid.o: /usr/include/bits/posix_opt.h +EvtVubBLNPHybrid.o: /usr/include/bits/confname.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtVubBLNPHybrid.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/cwchar +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/exception +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/climits +EvtVubBLNPHybrid.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVubBLNPHybrid.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVubBLNPHybrid.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/new +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/cassert +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/string +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/memory +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/limits +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/algorithm +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/streambuf +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/locale +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/typeinfo +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/istream +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtVubBLNPHybrid.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtVubBLNPHybrid.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtVubBLNPHybrid.o: ../EvtGenBase/EvtSpinDensity.hh +EvtVubBLNPHybrid.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtVubBLNPHybrid.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVubBLNPHybrid.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVubBLNPHybrid.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVubBLNPHybrid.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/vector +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVubBLNPHybrid.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVubBLNPHybrid.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVubBLNPHybrid.o: ../EvtGenModels/EvtVubBLNPHybrid.hh +EvtVubBLNPHybrid.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtVubBLNPHybrid.o: ../EvtGenBase/EvtDecayBase.hh +EvtVubBLNPHybrid.o: ../EvtGenModels/EvtItgSimpsonIntegrator.hh +EvtVubBLNPHybrid.o: ../EvtGenModels/EvtItgAbsIntegrator.hh +EvtVubBLNPHybrid.o: ../EvtGenModels/EvtItgAbsFunction.hh +EvtVubBLNPHybrid.o: ../EvtGenModels/EvtItgPtrFunction.hh +EvtVubBLNPHybrid.o: ../EvtGenBase/EvtRandom.hh ../EvtGenModels/EvtPFermi.hh +EvtVub.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVub.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVub.o: /usr/include/gnu/stubs.h +EvtVub.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVub.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVub.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtVub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVub.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVub.o: /usr/include/c++/3.4.6/iosfwd +EvtVub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVub.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVub.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVub.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVub.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVub.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h +EvtVub.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtVub.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVub.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVub.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVub.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVub.o: /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h +EvtVub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVub.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtVub.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtVub.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtVub.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtVub.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtVub.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtVub.o: /usr/include/ctype.h /usr/include/endian.h +EvtVub.o: /usr/include/bits/endian.h /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVub.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVub.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVub.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtVub.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVub.o: /usr/include/c++/3.4.6/exception +EvtVub.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVub.o: /usr/include/c++/3.4.6/climits +EvtVub.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVub.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVub.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVub.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVub.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVub.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVub.o: /usr/include/c++/3.4.6/debug/debug.h /usr/include/c++/3.4.6/cassert +EvtVub.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVub.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVub.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVub.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVub.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVub.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVub.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVub.o: /usr/include/c++/3.4.6/limits +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVub.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVub.o: /usr/include/c++/3.4.6/algorithm +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVub.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVub.o: /usr/include/c++/3.4.6/streambuf +EvtVub.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVub.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVub.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVub.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVub.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVub.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVub.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVub.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVub.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVub.o: /usr/include/c++/3.4.6/locale +EvtVub.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVub.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtVub.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtVub.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtVub.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtVub.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtVub.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVub.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVub.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVub.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVub.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVub.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVub.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVub.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVub.o: ../EvtGenModels/EvtVub.hh ../EvtGenBase/EvtDecayIncoherent.hh +EvtVub.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenModels/EvtPFermi.hh +EvtVub.o: ../EvtGenModels/EvtVubdGamma.hh ../EvtGenBase/EvtRandom.hh +EvtVubdGamma.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtConst.hh +EvtVubdGamma.o: ../EvtGenModels/EvtVubdGamma.hh ../EvtGenBase/EvtDiLog.hh +EvtVubdGamma.o: /usr/include/math.h /usr/include/features.h +EvtVubdGamma.o: /usr/include/sys/cdefs.h /usr/include/gnu/stubs.h +EvtVubdGamma.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtVubdGamma.o: /usr/include/bits/mathcalls.h +EvtVubHybrid.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVubHybrid.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVubHybrid.o: /usr/include/gnu/stubs.h +EvtVubHybrid.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVubHybrid.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVubHybrid.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtVubHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVubHybrid.o: /usr/include/c++/3.4.6/iosfwd +EvtVubHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVubHybrid.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVubHybrid.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVubHybrid.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVubHybrid.o: /usr/include/libio.h /usr/include/_G_config.h +EvtVubHybrid.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtVubHybrid.o: /usr/include/gconv.h +EvtVubHybrid.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVubHybrid.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVubHybrid.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVubHybrid.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVubHybrid.o: /usr/include/libintl.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVubHybrid.o: /usr/include/pthread.h /usr/include/sched.h +EvtVubHybrid.o: /usr/include/time.h /usr/include/bits/sched.h +EvtVubHybrid.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtVubHybrid.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtVubHybrid.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtVubHybrid.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtVubHybrid.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVubHybrid.o: /usr/include/stdint.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/exception +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/climits +EvtVubHybrid.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVubHybrid.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVubHybrid.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVubHybrid.o: /usr/include/c++/3.4.6/new +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/cassert +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/limits +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/algorithm +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVubHybrid.o: /usr/include/c++/3.4.6/streambuf +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVubHybrid.o: /usr/include/c++/3.4.6/locale +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVubHybrid.o: /usr/include/c++/3.4.6/typeinfo +EvtVubHybrid.o: /usr/include/c++/3.4.6/istream +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtVubHybrid.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtVubHybrid.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtVubHybrid.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtVubHybrid.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVubHybrid.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVubHybrid.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVubHybrid.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtVubHybrid.o: /usr/include/c++/3.4.6/vector +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVubHybrid.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVubHybrid.o: ../EvtGenModels/EvtVubHybrid.hh +EvtVubHybrid.o: ../EvtGenBase/EvtDecayIncoherent.hh +EvtVubHybrid.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenModels/EvtPFermi.hh +EvtVubHybrid.o: ../EvtGenModels/EvtVubdGamma.hh ../EvtGenBase/EvtRandom.hh +EvtVubHybrid.o: /usr/include/c++/3.4.6/fstream +EvtVubHybrid.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/basic_file.h +EvtVubHybrid.o: /usr/include/c++/3.4.6/bits/fstream.tcc +EvtVubNLO.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVubNLO.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVubNLO.o: /usr/include/gnu/stubs.h +EvtVubNLO.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVubNLO.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVubNLO.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtVubNLO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVubNLO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVubNLO.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVubNLO.o: /usr/include/c++/3.4.6/iosfwd +EvtVubNLO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVubNLO.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVubNLO.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVubNLO.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVubNLO.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVubNLO.o: /usr/include/libio.h /usr/include/_G_config.h +EvtVubNLO.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtVubNLO.o: /usr/include/gconv.h +EvtVubNLO.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVubNLO.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVubNLO.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVubNLO.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVubNLO.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVubNLO.o: /usr/include/libintl.h +EvtVubNLO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVubNLO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVubNLO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVubNLO.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtVubNLO.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtVubNLO.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtVubNLO.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtVubNLO.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtVubNLO.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtVubNLO.o: /usr/include/ctype.h /usr/include/endian.h +EvtVubNLO.o: /usr/include/bits/endian.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVubNLO.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVubNLO.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtVubNLO.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVubNLO.o: /usr/include/c++/3.4.6/exception +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVubNLO.o: /usr/include/c++/3.4.6/climits +EvtVubNLO.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVubNLO.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVubNLO.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVubNLO.o: /usr/include/c++/3.4.6/new +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVubNLO.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVubNLO.o: /usr/include/c++/3.4.6/cassert +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVubNLO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVubNLO.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVubNLO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVubNLO.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVubNLO.o: /usr/include/c++/3.4.6/limits +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVubNLO.o: /usr/include/c++/3.4.6/algorithm +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVubNLO.o: /usr/include/c++/3.4.6/streambuf +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVubNLO.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVubNLO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVubNLO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVubNLO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVubNLO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVubNLO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVubNLO.o: /usr/include/c++/3.4.6/locale +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVubNLO.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtVubNLO.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtVubNLO.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtVubNLO.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtVubNLO.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVubNLO.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVubNLO.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVubNLO.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVubNLO.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVubNLO.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVubNLO.o: ../EvtGenModels/EvtVubNLO.hh ../EvtGenBase/EvtDecayIncoherent.hh +EvtVubNLO.o: ../EvtGenBase/EvtDecayBase.hh +EvtVubNLO.o: ../EvtGenModels/EvtItgSimpsonIntegrator.hh +EvtVubNLO.o: ../EvtGenModels/EvtItgAbsIntegrator.hh +EvtVubNLO.o: ../EvtGenModels/EvtItgAbsFunction.hh +EvtVubNLO.o: ../EvtGenModels/EvtBtoXsgammaFermiUtil.hh +EvtVubNLO.o: ../EvtGenModels/EvtItgPtrFunction.hh +EvtVubNLO.o: ../EvtGenModels/EvtPFermi.hh ../EvtGenBase/EvtRandom.hh +EvtVubNLO.o: ../EvtGenBase/EvtDiLog.hh +EvtVVP.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVVP.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVVP.o: /usr/include/gnu/stubs.h +EvtVVP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVVP.o: /usr/include/c++/3.4.6/iostream +EvtVVP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVVP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVVP.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVVP.o: /usr/include/c++/3.4.6/iosfwd +EvtVVP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVVP.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVVP.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVVP.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVVP.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVVP.o: /usr/include/libio.h /usr/include/_G_config.h /usr/include/wchar.h +EvtVVP.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtVVP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVVP.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVVP.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVVP.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVVP.o: /usr/include/nl_types.h /usr/include/iconv.h /usr/include/libintl.h +EvtVVP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVVP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVVP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVVP.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtVVP.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtVVP.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtVVP.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtVVP.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtVVP.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtVVP.o: /usr/include/ctype.h /usr/include/endian.h +EvtVVP.o: /usr/include/bits/endian.h /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVVP.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVVP.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtVVP.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVVP.o: /usr/include/c++/3.4.6/exception +EvtVVP.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVVP.o: /usr/include/c++/3.4.6/climits +EvtVVP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVVP.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVVP.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVVP.o: /usr/include/c++/3.4.6/new /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVVP.o: /usr/include/c++/3.4.6/debug/debug.h /usr/include/c++/3.4.6/cassert +EvtVVP.o: /usr/include/assert.h /usr/include/c++/3.4.6/bits/localefwd.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVVP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVVP.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVVP.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVVP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVVP.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVVP.o: /usr/include/c++/3.4.6/limits +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVVP.o: /usr/include/c++/3.4.6/algorithm +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVVP.o: /usr/include/c++/3.4.6/streambuf +EvtVVP.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVVP.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVVP.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVVP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVVP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVVP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVVP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVVP.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVVP.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVVP.o: /usr/include/c++/3.4.6/locale +EvtVVP.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVVP.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtVVP.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtVVP.o: ../EvtGenBase/EvtVector3C.hh ../EvtGenBase/EvtComplex.hh +EvtVVP.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtVVP.o: /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h +EvtVVP.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtVector3R.hh +EvtVVP.o: ../EvtGenBase/EvtParticle.hh ../EvtGenBase/EvtVector4R.hh +EvtVVP.o: ../EvtGenBase/EvtSpinDensity.hh ../EvtGenBase/EvtId.hh +EvtVVP.o: ../EvtGenBase/EvtSpinType.hh ../EvtGenBase/EvtReport.hh +EvtVVP.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVVP.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVVP.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVVP.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVVP.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtVector4C.hh +EvtVVP.o: ../EvtGenModels/EvtVVP.hh ../EvtGenBase/EvtDecayAmp.hh +EvtVVP.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtVVpipi.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVVpipi.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVVpipi.o: /usr/include/gnu/stubs.h +EvtVVpipi.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVVpipi.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVVpipi.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtVVpipi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVVpipi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVVpipi.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVVpipi.o: /usr/include/c++/3.4.6/iosfwd +EvtVVpipi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVVpipi.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVVpipi.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVVpipi.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVVpipi.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVVpipi.o: /usr/include/libio.h /usr/include/_G_config.h +EvtVVpipi.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtVVpipi.o: /usr/include/gconv.h +EvtVVpipi.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVVpipi.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVVpipi.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVVpipi.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVVpipi.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVVpipi.o: /usr/include/libintl.h +EvtVVpipi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVVpipi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVVpipi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVVpipi.o: /usr/include/pthread.h /usr/include/sched.h /usr/include/time.h +EvtVVpipi.o: /usr/include/bits/sched.h /usr/include/signal.h +EvtVVpipi.o: /usr/include/bits/sigset.h /usr/include/bits/pthreadtypes.h +EvtVVpipi.o: /usr/include/bits/initspin.h /usr/include/bits/sigthread.h +EvtVVpipi.o: /usr/include/unistd.h /usr/include/bits/posix_opt.h +EvtVVpipi.o: /usr/include/bits/confname.h /usr/include/c++/3.4.6/cctype +EvtVVpipi.o: /usr/include/ctype.h /usr/include/endian.h +EvtVVpipi.o: /usr/include/bits/endian.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVVpipi.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVVpipi.o: /usr/include/stdint.h /usr/include/c++/3.4.6/bits/functexcept.h +EvtVVpipi.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVVpipi.o: /usr/include/c++/3.4.6/exception +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVVpipi.o: /usr/include/c++/3.4.6/climits +EvtVVpipi.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVVpipi.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVVpipi.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVVpipi.o: /usr/include/c++/3.4.6/new +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVVpipi.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVVpipi.o: /usr/include/c++/3.4.6/cassert +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVVpipi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVVpipi.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVVpipi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVVpipi.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVVpipi.o: /usr/include/c++/3.4.6/limits +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVVpipi.o: /usr/include/c++/3.4.6/algorithm +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVVpipi.o: /usr/include/c++/3.4.6/streambuf +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVVpipi.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVVpipi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVVpipi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVVpipi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVVpipi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVVpipi.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVVpipi.o: /usr/include/c++/3.4.6/locale +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVVpipi.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtVVpipi.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtVVpipi.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtVVpipi.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtVVpipi.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVVpipi.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVVpipi.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVVpipi.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVVpipi.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVVpipi.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVVpipi.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtVVpipi.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtTensor4C.hh +EvtVVpipi.o: ../EvtGenModels/EvtVVpipi.hh ../EvtGenBase/EvtDecayAmp.hh +EvtVVpipi.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVVPIPI_WEIGHTED.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVVPIPI_WEIGHTED.o: /usr/include/gnu/stubs.h +EvtVVPIPI_WEIGHTED.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtVector4R.hh +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/iostream +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/ostream +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/ios +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/iosfwd +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/cstring +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtVVPIPI_WEIGHTED.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtVVPIPI_WEIGHTED.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtVVPIPI_WEIGHTED.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtVVPIPI_WEIGHTED.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtVVPIPI_WEIGHTED.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVVPIPI_WEIGHTED.o: /usr/include/bits/stdio_lim.h +EvtVVPIPI_WEIGHTED.o: /usr/include/bits/sys_errlist.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVVPIPI_WEIGHTED.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVVPIPI_WEIGHTED.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVVPIPI_WEIGHTED.o: /usr/include/libintl.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVVPIPI_WEIGHTED.o: /usr/include/pthread.h /usr/include/sched.h +EvtVVPIPI_WEIGHTED.o: /usr/include/time.h /usr/include/bits/sched.h +EvtVVPIPI_WEIGHTED.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtVVPIPI_WEIGHTED.o: /usr/include/bits/pthreadtypes.h +EvtVVPIPI_WEIGHTED.o: /usr/include/bits/initspin.h +EvtVVPIPI_WEIGHTED.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtVVPIPI_WEIGHTED.o: /usr/include/bits/posix_opt.h +EvtVVPIPI_WEIGHTED.o: /usr/include/bits/confname.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtVVPIPI_WEIGHTED.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/cwchar +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/exception +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/climits +EvtVVPIPI_WEIGHTED.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVVPIPI_WEIGHTED.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVVPIPI_WEIGHTED.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/new +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/cassert +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/string +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/memory +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/limits +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/algorithm +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/streambuf +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/locale +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/typeinfo +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/istream +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtVVPIPI_WEIGHTED.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtVVPIPI_WEIGHTED.o: /usr/include/bits/mathdef.h +EvtVVPIPI_WEIGHTED.o: /usr/include/bits/mathcalls.h +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtSpinDensity.hh +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/vector +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtStringHash.hh +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/map +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVVPIPI_WEIGHTED.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtVector4C.hh +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtVector3C.hh +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtVector3R.hh +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtTensor4C.hh +EvtVVPIPI_WEIGHTED.o: ../EvtGenModels/EvtVVPIPI_WEIGHTED.hh +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtDecayAmp.hh +EvtVVPIPI_WEIGHTED.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtVVSPwave.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtVVSPwave.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtVVSPwave.o: /usr/include/gnu/stubs.h +EvtVVSPwave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtVVSPwave.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtVVSPwave.o: ../EvtGenBase/EvtVector4R.hh /usr/include/c++/3.4.6/iostream +EvtVVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/ostream /usr/include/c++/3.4.6/ios +EvtVVSPwave.o: /usr/include/c++/3.4.6/iosfwd +EvtVVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/cstring /usr/include/c++/3.4.6/cstddef +EvtVVSPwave.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtVVSPwave.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtVVSPwave.o: /usr/include/bits/wordsize.h /usr/include/bits/typesizes.h +EvtVVSPwave.o: /usr/include/libio.h /usr/include/_G_config.h +EvtVVSPwave.o: /usr/include/wchar.h /usr/include/bits/wchar.h +EvtVVSPwave.o: /usr/include/gconv.h +EvtVVSPwave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtVVSPwave.o: /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtVVSPwave.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtVVSPwave.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtVVSPwave.o: /usr/include/libintl.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtVVSPwave.o: /usr/include/pthread.h /usr/include/sched.h +EvtVVSPwave.o: /usr/include/time.h /usr/include/bits/sched.h +EvtVVSPwave.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtVVSPwave.o: /usr/include/bits/pthreadtypes.h /usr/include/bits/initspin.h +EvtVVSPwave.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtVVSPwave.o: /usr/include/bits/posix_opt.h /usr/include/bits/confname.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtVVSPwave.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/cwchar /usr/include/c++/3.4.6/ctime +EvtVVSPwave.o: /usr/include/stdint.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/exception_defines.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/exception +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/climits +EvtVVSPwave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtVVSPwave.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtVVSPwave.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtVVSPwave.o: /usr/include/c++/3.4.6/new +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/debug/debug.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/cassert +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/string /usr/include/c++/3.4.6/memory +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/limits +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/algorithm +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtVVSPwave.o: /usr/include/c++/3.4.6/streambuf +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtVVSPwave.o: /usr/include/c++/3.4.6/locale +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtVVSPwave.o: /usr/include/c++/3.4.6/typeinfo /usr/include/c++/3.4.6/istream +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/istream.tcc /usr/include/math.h +EvtVVSPwave.o: /usr/include/bits/huge_val.h /usr/include/bits/mathdef.h +EvtVVSPwave.o: /usr/include/bits/mathcalls.h ../EvtGenBase/EvtSpinDensity.hh +EvtVVSPwave.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtVVSPwave.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtVVSPwave.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtVVSPwave.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtVVSPwave.o: ../EvtGenBase/EvtAbsLineShape.hh /usr/include/c++/3.4.6/vector +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtVVSPwave.o: ../EvtGenBase/EvtStringHash.hh /usr/include/c++/3.4.6/map +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtVVSPwave.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtVVSPwave.o: ../EvtGenBase/EvtVector4C.hh ../EvtGenBase/EvtVector3C.hh +EvtVVSPwave.o: ../EvtGenBase/EvtVector3R.hh ../EvtGenBase/EvtTensor4C.hh +EvtVVSPwave.o: ../EvtGenModels/EvtVVSPwave.hh ../EvtGenBase/EvtDecayAmp.hh +EvtVVSPwave.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +EvtWilsonCoeficients.o: ../EvtGenBase/EvtPatches.hh ../EvtGenBase/EvtConst.hh +EvtWilsonCoeficients.o: ../EvtGenBase/EvtReport.hh +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/iostream +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtWilsonCoeficients.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtWilsonCoeficients.o: /usr/include/gnu/stubs.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/ostream +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/ios +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/iosfwd +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/cstring +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/cstddef +EvtWilsonCoeficients.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtWilsonCoeficients.o: /usr/include/string.h /usr/include/c++/3.4.6/cstdio +EvtWilsonCoeficients.o: /usr/include/stdio.h /usr/include/bits/types.h +EvtWilsonCoeficients.o: /usr/include/bits/wordsize.h +EvtWilsonCoeficients.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtWilsonCoeficients.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtWilsonCoeficients.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtWilsonCoeficients.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtWilsonCoeficients.o: /usr/include/bits/stdio_lim.h +EvtWilsonCoeficients.o: /usr/include/bits/sys_errlist.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtWilsonCoeficients.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtWilsonCoeficients.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtWilsonCoeficients.o: /usr/include/libintl.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtWilsonCoeficients.o: /usr/include/pthread.h /usr/include/sched.h +EvtWilsonCoeficients.o: /usr/include/time.h /usr/include/bits/sched.h +EvtWilsonCoeficients.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtWilsonCoeficients.o: /usr/include/bits/pthreadtypes.h +EvtWilsonCoeficients.o: /usr/include/bits/initspin.h +EvtWilsonCoeficients.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtWilsonCoeficients.o: /usr/include/bits/posix_opt.h +EvtWilsonCoeficients.o: /usr/include/bits/confname.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtWilsonCoeficients.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/cwchar +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/exception_defines.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/exception +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/climits +EvtWilsonCoeficients.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtWilsonCoeficients.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtWilsonCoeficients.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtWilsonCoeficients.o: /usr/include/stdlib.h /usr/include/c++/3.4.6/new +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/debug/debug.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/cassert /usr/include/assert.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/string +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/memory +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/limits +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/algorithm +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/streambuf +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/locale +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/typeinfo +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/istream +EvtWilsonCoeficients.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtWilsonCoeficients.o: ../EvtGenModels/EvtWilsonCoeficients.hh +EvtWilsonCoeficients.o: ../EvtGenBase/EvtComplex.hh /usr/include/math.h +EvtWilsonCoeficients.o: /usr/include/bits/huge_val.h +EvtWilsonCoeficients.o: /usr/include/bits/mathdef.h +EvtWilsonCoeficients.o: /usr/include/bits/mathcalls.h +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/gnu/stubs.h +EvtY3SToY1SpipiMoxhay.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtVector4R.hh +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/iostream +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/ostream +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/ios +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/iosfwd +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/cstring +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/bits/types.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/bits/wordsize.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtY3SToY1SpipiMoxhay.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/bits/stdio_lim.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/bits/sys_errlist.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/libintl.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/pthread.h /usr/include/sched.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/time.h /usr/include/bits/sched.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/bits/pthreadtypes.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/bits/initspin.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/bits/posix_opt.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/bits/confname.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/cwchar +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/exception_defines.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/exception +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/climits +EvtY3SToY1SpipiMoxhay.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtY3SToY1SpipiMoxhay.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/new +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/debug/debug.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/cassert +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/string +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/memory +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/limits +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/algorithm +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/streambuf +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/locale +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/typeinfo +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/istream +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtY3SToY1SpipiMoxhay.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/bits/mathdef.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/bits/mathcalls.h +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtSpinDensity.hh +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtComplex.hh +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtConst.hh ../EvtGenBase/EvtId.hh +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtSpinType.hh +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtReport.hh +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtGenKine.hh ../EvtGenBase/EvtPDL.hh +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtPartProp.hh +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/vector +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtStringHash.hh +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/map +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtY3SToY1SpipiMoxhay.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtVector4C.hh +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtVector3C.hh +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtVector3R.hh +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtTensor4C.hh +EvtY3SToY1SpipiMoxhay.o: ../EvtGenModels/EvtY3SToY1SpipiMoxhay.hh +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtDecayProb.hh +EvtY3SToY1SpipiMoxhay.o: ../EvtGenBase/EvtDecayBase.hh +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtPatches.hh /usr/include/stdlib.h +EvtYmSToYnSpipiCLEO.o: /usr/include/features.h /usr/include/sys/cdefs.h +EvtYmSToYnSpipiCLEO.o: /usr/include/gnu/stubs.h +EvtYmSToYnSpipiCLEO.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stddef.h +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtParticle.hh /usr/include/assert.h +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtVector4R.hh +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/iostream +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++config.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/os_defines.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/ostream +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/ios +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/iosfwd +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++locale.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/cstring +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/cstddef /usr/include/string.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/cstdio /usr/include/stdio.h +EvtYmSToYnSpipiCLEO.o: /usr/include/bits/types.h /usr/include/bits/wordsize.h +EvtYmSToYnSpipiCLEO.o: /usr/include/bits/typesizes.h /usr/include/libio.h +EvtYmSToYnSpipiCLEO.o: /usr/include/_G_config.h /usr/include/wchar.h +EvtYmSToYnSpipiCLEO.o: /usr/include/bits/wchar.h /usr/include/gconv.h +EvtYmSToYnSpipiCLEO.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/stdarg.h +EvtYmSToYnSpipiCLEO.o: /usr/include/bits/stdio_lim.h +EvtYmSToYnSpipiCLEO.o: /usr/include/bits/sys_errlist.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/clocale /usr/include/locale.h +EvtYmSToYnSpipiCLEO.o: /usr/include/bits/locale.h /usr/include/langinfo.h +EvtYmSToYnSpipiCLEO.o: /usr/include/nl_types.h /usr/include/iconv.h +EvtYmSToYnSpipiCLEO.o: /usr/include/libintl.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++io.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/gthr-default.h +EvtYmSToYnSpipiCLEO.o: /usr/include/pthread.h /usr/include/sched.h +EvtYmSToYnSpipiCLEO.o: /usr/include/time.h /usr/include/bits/sched.h +EvtYmSToYnSpipiCLEO.o: /usr/include/signal.h /usr/include/bits/sigset.h +EvtYmSToYnSpipiCLEO.o: /usr/include/bits/pthreadtypes.h +EvtYmSToYnSpipiCLEO.o: /usr/include/bits/initspin.h +EvtYmSToYnSpipiCLEO.o: /usr/include/bits/sigthread.h /usr/include/unistd.h +EvtYmSToYnSpipiCLEO.o: /usr/include/bits/posix_opt.h +EvtYmSToYnSpipiCLEO.o: /usr/include/bits/confname.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/cctype /usr/include/ctype.h +EvtYmSToYnSpipiCLEO.o: /usr/include/endian.h /usr/include/bits/endian.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stringfwd.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/postypes.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/cwchar +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/ctime /usr/include/stdint.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/functexcept.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/exception_defines.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/exception +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/char_traits.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_algobase.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/climits +EvtYmSToYnSpipiCLEO.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/limits.h +EvtYmSToYnSpipiCLEO.o: /usr/lib/gcc/i386-redhat-linux/3.4.6/include/syslimits.h +EvtYmSToYnSpipiCLEO.o: /usr/include/limits.h /usr/include/c++/3.4.6/cstdlib +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/new +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_pair.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/type_traits.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_types.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_iterator_base_funcs.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/concept_check.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_iterator.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/debug/debug.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/cassert +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/localefwd.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/ios_base.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/atomicity.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/atomic_word.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/locale_classes.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/string +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/memory +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/allocator.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/c++allocator.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/ext/new_allocator.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_construct.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_uninitialized.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_raw_storage_iter.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/limits +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_function.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/basic_string.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/algorithm +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_algo.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_heap.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_tempbuf.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/basic_string.tcc +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/streambuf +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/streambuf.tcc +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/basic_ios.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/streambuf_iterator.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/locale_facets.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/cwctype /usr/include/wctype.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_base.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/ctype_inline.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/codecvt.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/codecvt_specializations.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/time_members.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/i386-redhat-linux/bits/messages_members.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/basic_ios.tcc +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/ostream.tcc +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/locale +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/locale_facets.tcc +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/typeinfo +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/istream +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/istream.tcc +EvtYmSToYnSpipiCLEO.o: /usr/include/math.h /usr/include/bits/huge_val.h +EvtYmSToYnSpipiCLEO.o: /usr/include/bits/mathdef.h +EvtYmSToYnSpipiCLEO.o: /usr/include/bits/mathcalls.h +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtSpinDensity.hh +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtComplex.hh ../EvtGenBase/EvtConst.hh +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtId.hh ../EvtGenBase/EvtSpinType.hh +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtReport.hh ../EvtGenBase/EvtGenKine.hh +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtPDL.hh ../EvtGenBase/EvtPartProp.hh +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtAbsLineShape.hh +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/vector +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_vector.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_bvector.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/vector.tcc +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtStringHash.hh +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/map +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_tree.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/cpp_type_traits.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_map.h +EvtYmSToYnSpipiCLEO.o: /usr/include/c++/3.4.6/bits/stl_multimap.h +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtVector4C.hh +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtVector3C.hh +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtVector3R.hh +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtTensor4C.hh +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtRandom.hh +EvtYmSToYnSpipiCLEO.o: ../EvtGenModels/EvtYmSToYnSpipiCLEO.hh +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtDecayAmp.hh +EvtYmSToYnSpipiCLEO.o: ../EvtGenBase/EvtDecayBase.hh ../EvtGenBase/EvtAmp.hh +rly.o: ../EvtGenBase/EvtRandom.hh +begevtgenget.o: ../EvtGenModels/stdhep.inc +begevtgengetx.o: ../EvtGenModels/stdhep.inc +begevtgenstore.o: ../EvtGenModels/stdhep.inc +begevtgenstorex.o: ../EvtGenModels/stdhep.inc +EvtBTo3pi.o: ../EvtGenModels/EvtBTo3pi.inc +EvtBTo3piMPP.o: ../EvtGenModels/EvtBTo3pi.inc +EvtBTo3piP00.o: ../EvtGenModels/EvtBTo3pi.inc +EvtBToKpipi.o: ../EvtGenModels/EvtBTo3pi.inc diff --git a/TEvtGen/EvtGenModels/Pythia.F b/TEvtGen/EvtGenModels/Pythia.F new file mode 100644 index 00000000000..e4779709ca9 --- /dev/null +++ b/TEvtGen/EvtGenModels/Pythia.F @@ -0,0 +1,351 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See BelEvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: EvtJetSetInit.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C RS October 28, 2002 copied and modified from Jetset +C +C------------------------------------------------------------------------ + SUBROUTINE EVTPYTHIAINIT(FNAME) + IMPLICIT NONE + EXTERNAL PYDATA + + CHARACTER*(*) FNAME + + PRINT *,'PYUPDA : : ',FNAME + OPEN(54,STATUS='OLD',FILE=FNAME) + CALL PYUPDA(3,54) + CLOSE(54) + WRITE (*,*) 'PYUPDA DONE' + RETURN + END + SUBROUTINE INITPYTHIA(GAGA) + IMPLICIT NONE + INTEGER PYCOMP + EXTERNAL PYDATA,PYCOMP + LOGICAL FIRST + SAVE FIRST + DATA FIRST / .TRUE. / + DOUBLE PRECISION MAXIMUM + COMMON/CBBEAM/MAXIMUM + INTEGER IDC,GAGA +C...Decay information. + INTEGER MDCY,MDME,KFDP + DOUBLE PRECISION BRAT + COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5) + + CHARACTER CH1*16,CH2*16 + + INTEGER DC,CDC +C order of DC is d u s c b t b' t' ... +C ... e nu_e mu nu_mu tau nu_tau tau' nu_tau' + COMMON/DECAYCH/DC(18) + + IF(FIRST) THEN + MAXIMUM=10.6 + WRITE (*,*) "Decay of Z0/gamma to" +C... Only allow Z0 decay to quarks (i.e. no leptonic final states). +C RS veto also b quarks + DO IDC=MDCY(23,2),MDCY(23,2)+MDCY(23,3)-1 +C first switch channel off + MDME(IDC,1)=MIN(0,MDME(IDC,1)) + CDC=IABS(KFDP(IDC,1)) +C then switch on again if requested + CALL PYNAME(CDC,CH1) + CALL PYNAME(-CDC,CH2) + IF(DC(CDC).EQ.1) THEN + MDME(IDC,1)=1 + WRITE (*,*) " ",ch1,"+ ",ch2," ALLOWED" + ELSE + WRITE (*,*) " ",ch1,"+ ",ch2," DISABLED" + ENDIF + ENDDO +C CALL PYSTAT(2) + + IF(GAGA.EQ.0) THEN + CALL PYINIT('CMS','E+','E-',MAXIMUM) + ELSE + CALL PYINIT('CMS','GAMMA/E+','GAMMA/E-',MAXIMUM) + ENDIF +C CALL PYLIST(0) +C WRITE (*,*) 'done PYTHIA initialization'// +C > ' with varying beam energy' +C WRITE (*,*) 'maximum allowed energy is ',MAXIMUM,' GeV' + FIRST=.FALSE. + ENDIF + RETURN + END + +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See BelEvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: continuum.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C 26-Sep-2002 - RS : changed to PYTHIA +C +C------------------------------------------------------------------------ + SUBROUTINE PYCONTINUUM(ENERGY,NDAUG,KF,PX,PY,PZ,E) + IMPLICIT NONE + DOUBLE PRECISION MAXIMUM + COMMON/CBBEAM/MAXIMUM + + DOUBLE PRECISION P,V + COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5) + + INTEGER MSTU,MSTJ + DOUBLE PRECISION PARU,PARJ + COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + + INTEGER MSTP,MSTI + DOUBLE PRECISION PARP,PARI + COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200) +C...Decay information. + INTEGER MDCY,MDME,KFDP + DOUBLE PRECISION BRAT + COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5) + + INTEGER N,NPAD,K,IMSTJ + + REAL*8 PXSUM,PYSUM,PZSUM + + REAL*8 ENERGY + + INTEGER PYCOMP + EXTERNAL PYCOMP + + INTEGER KF(100),I,NDAUG + REAL*8 PX(100),PY(100),PZ(100),E(100) + +C RS Particles should not decay at this stage +C but remember the previous setting + IMSTJ=MSTJ(21) + MSTJ(21)=0 + +C IF(FLAVOR.NE.LastProdFLav) THEN +C... Only allow Z0 decay to decay to certain flavour +C DO IDC=MDCY(23,2),MDCY(23,2)+MDCY(23,3)-1 +C IF(IABS(KFDP(IDC,1)).NE.Flavor) +C > MDME(IDC,1)=MIN(0,MDME(IDC,1)) +C ENDDO +C ENDIF + + 4 PARP(171)=Energy/Maximum + CALL PYEVNT + +C--- only primary quarks and stable particles remain in the event record + CALL PYEDIT(5) + +C RS and allow decays + MSTJ(21)=IMSTJ + + NDAUG=0 +C sum to check that we preserve momentum + PXSUM=0.0 + PYSUM=0.0 + PZSUM=0.0 + + DO 1,I=1,N + NDAUG=NDAUG+1 + KF(NDAUG)=K(I,2) + PX(NDAUG)=P(I,1) + PY(NDAUG)=P(I,2) + PZ(NDAUG)=P(I,3) + E(NDAUG) =P(I,4) + IF(K(I,1).LT.10)THEN + PXSUM=PXSUM+PX(NDAUG) + PYSUM=PYSUM+PY(NDAUG) + PZSUM=PZSUM+PZ(NDAUG) + ENDIF +1 CONTINUE + + IF (ABS(PXSUM).GT.0.001.OR. + + ABS(PYSUM).GT.0.001.OR. + + ABS(PZSUM).GT.0.001) THEN + + + PRINT *, 'Momentum not conserved in jetset fragmentation:' + PRINT *,'dPx:',pxsum,' dPy:',pysum,' dPz:',pzsum + + CALL PYLIST(2) + + GOTO 4 + + ENDIF + RETURN + END +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See BelEvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: jetset1.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C 26-Sep-2002 - RS : changed to PYTHIA +C +C------------------------------------------------------------------------ + SUBROUTINE PYTHIADEC(IP,M,NDAUG,KF,KM,PX,PY,PZ,E) + +C +C interface to JETSET 7.4 to have one particle decayed +C including possibly fragmentation, if the decay products include +C partons. +C + IMPLICIT NONE + + INTEGER MSTU,MSTJ + DOUBLE PRECISION PARU,PARJ + COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /PYDAT1/ + DOUBLE PRECISION P,V + COMMON/PYJETS/N,NPAD,K(4000,5),P(4000,5),V(4000,5) + + INTEGER N,NPAD,K + + INTEGER NDMAX + PARAMETER (NDMAX=100) + + INTEGER PYCOMP + EXTERNAL PYCOMP + + INTEGER IP,KF(NDMAX),I,NDAUG,KM(NDMAX) + INTEGER KP,KID,IPART1,IPART + REAL*8 M,PX(NDMAX),PY(NDMAX),PZ(NDMAX),E(NDMAX) + + INTEGER IP1,IMSTJ + DOUBLE PRECISION QMAX + +C CALL PY1ENT(1,IP,M,0D0,0D0) + + K(1,1)=1 + K(1,2)=ip + P(1,5)=m + P(1,4)=m + P(1,1)=0.0 + P(1,2)=0.0 + P(1,3)=0.0 + n=1 + +C RS Particles should not decay at this stage +C but remember the previous setting + IMSTJ=MSTJ(21) + MSTJ(21)=0 + + CALL PYDECY(1) + +C RS and allow decays + MSTJ(21)=IMSTJ + + + + +C code copied from LUEXEC to avoid error with shower +C switched on +C...Decay products may develop a shower. + IF(MSTJ(92).GT.0) THEN + IP1=MSTJ(92) + QMAX=SQRT(MAX(0.,(P(IP1,4)+P(IP1+1,4))**2-(P(IP1,1)+P(IP1+1, + & 1))**2-(P(IP1,2)+P(IP1+1,2))**2-(P(IP1,3)+P(IP1+1,3))**2)) + CALL PYSHOW(IP1,IP1+1,QMAX) + CALL PYPREP(IP1) + MSTJ(92)=0 + ELSEIF(MSTJ(92).LT.0) THEN + IP1=-MSTJ(92) + CALL PYSHOW(IP1,-3,P(IP,5)) + CALL PYPREP(IP1) + MSTJ(92)=0 + ENDIF + +c +c for debugging: +c call lulist(1) +c + mstj(21)=0 + call pyexec + mstj(21)=2 + +c find partons, delete secondary partons, set mother pointers + + ndaug = 0 + ipart1 = 1 + ipart = 1 + + do 10 i=2,n + kp = k(i,3) + kid = k(i,2) + if (abs(kid) .ge. 1 .and. abs(kid) .le. 8 + 1 .or. kid .eq. 21 + 2 .or. kid .ge. 91 .and. kid .le. 94) then + if (ipart1 .eq. 1) ipart1 = i + ipart = i + if (kp .ne. 1) goto 10 + kp = 0 + else + if (kp .gt. ipart) then + goto 10 + elseif (kp .ge. ipart1) then + kp = ipart1-1 + else + kp = 0 + endif + endif + ndaug = ndaug + 1 + km(ndaug)=kp + kf(ndaug)=kid + px(ndaug)=p(i,1) + py(ndaug)=p(i,2) + pz(ndaug)=p(i,3) + e(ndaug)=p(i,4) + +C print '( 2I5,I12,4F12.4 )',ndaug,km(ndaug),kf(ndaug), +C 1 px(ndaug),py(ndaug),pz(ndaug),e(ndaug) + + 10 CONTINUE + +C NDAUG=0 +C DO I=2,N +C NDAUG = NDAUG + 1 +C KM(NDAUG)=K(I,3) +C KF(NDAUG)=K(I,2) +C PX(NDAUG)=P(I,1) +C PY(NDAUG)=P(I,2) +C PZ(NDAUG)=P(I,3) +C E(NDAUG)=P(I,4) +C ENDDO + + + RETURN + END diff --git a/TEvtGen/EvtGenModels/begevtgenget.F b/TEvtGen/EvtGenModels/begevtgenget.F new file mode 100644 index 00000000000..7e2090c5c13 --- /dev/null +++ b/TEvtGen/EvtGenModels/begevtgenget.F @@ -0,0 +1,55 @@ + subroutine begevtgenget(entry,eventnum,numparticle,istat, + + partnum,mother,daugfirst,dauglast, + + px,py,pz,e,m,x,y,z,t) +* +* Copyright Information: See EvtGen/COPYRIGHT +* +* routine to read from the stdhep common block from +* evtgen (C++). This routine allows the C++ program not to +* have to mess with common blocks. +* +* Anders Ryd, Oct 1 Created. +* +* + implicit none +#include "EvtGenModels/stdhep.inc" + + integer entry,eventnum,numparticle,istat,partnum + integer mother,daugfirst,dauglast + + integer stdhepnum + + double precision px,py,pz,e,m,x,y,z,t + + stdhepnum=partnum + + + + eventnum=nevhep + numparticle=nhep + istat=isthep(entry) + stdhepnum=idhep(entry) + mother=jmohep(1,entry) + daugfirst=jdahep(1,entry) + dauglast=jdahep(2,entry) + px=phep(1,entry) + py=phep(2,entry) + pz=phep(3,entry) + e=phep(4,entry) + m=phep(5,entry) + x=vhep(1,entry) + y=vhep(2,entry) + z=vhep(3,entry) + t=vhep(4,entry) + + return + + end + + + + + + + + diff --git a/TEvtGen/EvtGenModels/begevtgengetx.F b/TEvtGen/EvtGenModels/begevtgengetx.F new file mode 100644 index 00000000000..e41a3194c9e --- /dev/null +++ b/TEvtGen/EvtGenModels/begevtgengetx.F @@ -0,0 +1,76 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See EvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: begevtgengetx.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C +C------------------------------------------------------------------------ + subroutine begevtgengetx(entry,eventnum,numparticle,istat, + + partnum,mother,daugfirst,dauglast, + + px,py,pz,e,m,x,y,z,t) +* +* routine to read from the stdhep common block from +* evtgen (C++). This routine allows the C++ program not to +* have to mess with common blocks. +* +* Anders Ryd, Oct 1 Created. +* +* + implicit none + +C INTEGER NMXHEP +C PARAMETER (NMXHEP=4000) !!! KRAL - NEW SIZE +C +C INTEGER IDHEP,ISTHEP,JDAHEP,JMOHEP,NEVHEP,NHEP +C real PHEP,VHEP !!! Kral - double precision for STDHEP v3.0 +C COMMON/XHEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), +C &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) +C SAVE /XHEPEVT/ + +#include "EvtGenModels/stdhep.inc" + + integer entry,eventnum,numparticle,istat,partnum + integer mother,daugfirst,dauglast + + integer stdhepnum + + double precision px,py,pz,e,m,x,y,z,t + + stdhepnum=partnum + + + + eventnum=nevhep + numparticle=nhep + istat=isthep(entry) + stdhepnum=idhep(entry) + mother=jmohep(1,entry) + daugfirst=jdahep(1,entry) + dauglast=jdahep(2,entry) + px=phep(1,entry) + py=phep(2,entry) + pz=phep(3,entry) + e=phep(4,entry) + m=phep(5,entry) + x=vhep(1,entry) + y=vhep(2,entry) + z=vhep(3,entry) + t=vhep(4,entry) + + return + + end + + diff --git a/TEvtGen/EvtGenModels/begevtgenstore.F b/TEvtGen/EvtGenModels/begevtgenstore.F new file mode 100644 index 00000000000..b2fdd45f649 --- /dev/null +++ b/TEvtGen/EvtGenModels/begevtgenstore.F @@ -0,0 +1,134 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See EvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: begevtgenstore.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C +C------------------------------------------------------------------------ + subroutine begevtgenstore(nument,eventnum,numparticle,istat, + + partnum,motherfirst,motherlast, + + daugfirst,dauglast, + + px,py,pz,e,m,x,y,z,t) +* +* routine to fill the stdhep common blocks from +* evtgen (C++). This routine allows the C++ program not to +* have to mess with common blocks. +* +* Anders Ryd, Dec 96 Created. +* +* + implicit none +#include "EvtGenModels/stdhep.inc" + + integer nument,eventnum,numparticle,istat,partnum + integer motherfirst,motherlast,daugfirst,dauglast + + integer stdhepnum + + double precision px,py,pz,e,m,x,y,z,t + + stdhepnum=partnum + + if (istat.eq.1) then + +c make the quarks unstable so that geant will not try +c to put them through the detector simulation! + + if ( + + stdhepnum.eq.-1.or. + + stdhepnum.eq. 1.or. + + stdhepnum.eq.-2.or. + + stdhepnum.eq. 2.or. + + stdhepnum.eq.-3.or. + + stdhepnum.eq. 3.or. + + stdhepnum.eq.-4.or. + + stdhepnum.eq. 4.or. + + stdhepnum.eq.-5.or. + + stdhepnum.eq. 5.or. + + stdhepnum.eq.-6.or. + + stdhepnum.eq. 6) then + istat=2 + endif + + + + +c if ( +c + stdhepnum.ne.-1.and. +c + stdhepnum.ne. 1.and. +c + stdhepnum.ne.-2.and. +c + stdhepnum.ne. 2.and. +c + stdhepnum.ne.-3.and. +c + stdhepnum.ne. 3.and. +c + stdhepnum.ne.-4.and. +c + stdhepnum.ne. 4.and. +c + stdhepnum.ne.-5.and. +c + stdhepnum.ne. 5.and. +c + stdhepnum.ne.-6.and. +c + stdhepnum.ne. 6.and. +c + stdhepnum.ne.-11.and. +c + stdhepnum.ne.11.and. +c + stdhepnum.ne.-13.and. +c + stdhepnum.ne.13.and. +c + stdhepnum.ne.12.and. +c + stdhepnum.ne.-12.and. +c + stdhepnum.ne.14.and. +c + stdhepnum.ne.-14.and. +c + stdhepnum.ne.16.and. +c + stdhepnum.ne.-16.and. +c + stdhepnum.ne.2212.and. +c + stdhepnum.ne.-2212.and. +c + stdhepnum.ne.2112.and. +c + stdhepnum.ne.-2112.and. +c + stdhepnum.ne.211.and. +c + stdhepnum.ne.-211.and. +c + stdhepnum.ne.321.and. +c + stdhepnum.ne.-321.and. +c + stdhepnum.ne.130.and. +c + stdhepnum.ne.310.and. +c + stdhepnum.ne.22) then +c +c print *,'particle stdhep:',stdhepnum,' is stable' +c +c endif + + endif + + nevhep=eventnum + nhep=numparticle + isthep(nument)=istat + idhep(nument)=stdhepnum + jmohep(1,nument)=motherfirst + jmohep(2,nument)=motherlast + jdahep(1,nument)=daugfirst + jdahep(2,nument)=dauglast + phep(1,nument)=px + phep(2,nument)=py + phep(3,nument)=pz + phep(4,nument)=e + phep(5,nument)=m + vhep(1,nument)=x + vhep(2,nument)=y + vhep(3,nument)=z + vhep(4,nument)=t + + return + + end + + + + + diff --git a/TEvtGen/EvtGenModels/begevtgenstorex.F b/TEvtGen/EvtGenModels/begevtgenstorex.F new file mode 100644 index 00000000000..35239caf2b7 --- /dev/null +++ b/TEvtGen/EvtGenModels/begevtgenstorex.F @@ -0,0 +1,76 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See EvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: begevtgenstorex.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C +C------------------------------------------------------------------------ + subroutine begevtgenstorex(entry,eventnum,numparticle,istat, + + partnum,mother,daugfirst,dauglast, + + px,py,pz,e,m,x,y,z,t) + implicit none +* +* routine to fill the stdhep common blocks from +* evtgen (C++). This routine allows the C++ program not to +* have to mess with common blocks. +* +* Anders Ryd, Dec 96 Created. +* +* +#include "EvtGenModels/stdhep.inc" + + logical qedrad + integer ph_nmxhep ! this is parameter nmxhep in photos/photos_make +* ! Renamed here to avoid name conflict in stdhep.inc + parameter (ph_nmxhep=10000) + common / phoqed / qedrad(ph_nmxhep) + + integer entry,eventnum,numparticle,istat,partnum + integer mother,daugfirst,dauglast + integer stdhepnum, i + double precision px,py,pz,e,m,x,y,z,t + + stdhepnum=partnum + + nevhep=eventnum + nhep=numparticle + isthep(entry)=istat + idhep(entry)=stdhepnum + jmohep(1,entry)=mother + jmohep(2,entry)=0 + jdahep(1,entry)=daugfirst + jdahep(2,entry)=dauglast + phep(1,entry)=px + phep(2,entry)=py + phep(3,entry)=pz + phep(4,entry)=e + phep(5,entry)=m + vhep(1,entry)=x + vhep(2,entry)=y + vhep(3,entry)=z + vhep(4,entry)=t + + qedrad(entry)=.true. + if (daugfirst.gt.0 .and. dauglast.gt.0) THEN + do i=daugfirst, dauglast + qedrad(i) = .true. + end do + end if + + return + + end + + diff --git a/TEvtGen/EvtGenModels/continuum.F b/TEvtGen/EvtGenModels/continuum.F new file mode 100644 index 00000000000..fe9f89b816a --- /dev/null +++ b/TEvtGen/EvtGenModels/continuum.F @@ -0,0 +1,123 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See EvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: continuum.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C +C------------------------------------------------------------------------ + subroutine continuum(energy,flavor,ndaug,kf,px,py,pz,e) + + implicit none + + common/lujets/n,k(4000,5),p(4000,5),v(4000,5) + + integer n,k + real p,v + + real*8 pxsum,pysum,pzsum + + real*8 energy + + real senergy + + integer lucomp + external lucomp + + integer flavor,kf(100),i,ndaug,istart + real*8 px(100),py(100),pz(100),e(100) + + senergy=energy + +C if(flavor.ne.0) kf_user=flavor +C flavor = kf_user + + +C call lueevt(kf_user,senergy) ! e+e- --> qq shower parton model + 4 call lueevt(flavor,senergy) ! e+e- --> qq shower parton model + +C call lulist(1) + + ndaug=0 + +C--- Save the primary quarks + + do 1,i=1,n + if(abs(k(i,2)).gt.6) goto 1 + if(k(i,2).eq.0) goto 1 + if(k(i,3).ne.0) goto 1 + ndaug=ndaug+1 + kf(ndaug)=k(i,2) + px(ndaug)=p(i,1) + py(ndaug)=p(i,2) + pz(ndaug)=p(i,3) + e(ndaug) =p(i,4) +1 continue + +C sum to check that we preserve momentum + pxsum=0.0 + pysum=0.0 + pzsum=0.0 + + istart=0 + + do 2, i=1,n + if(k(i,3).le.0.and.k(i,2).ne.22) goto 2 +c if particle is jet or cluster + + if (k(i,2).eq.22.and.istart.eq.0) goto 22 + if ( k(i,3).le.0) goto 2 + + if(k(k(i,3),2).eq.92.or.k(k(i,3),2).eq.91) goto 22 + + goto 2 + + 22 continue +C Copy particle. If parent is cluster or string or photon if +C before first cluster or string. Uggly... + if (k(i,2).ne.22) istart=1 + ndaug = ndaug + 1 + kf(ndaug)=k(i,2) + px(ndaug)=p(i,1) + py(ndaug)=p(i,2) + pz(ndaug)=p(i,3) + pxsum=pxsum+px(ndaug) + pysum=pysum+py(ndaug) + pzsum=pzsum+pz(ndaug) + e(ndaug) =p(i,4) + 2 continue + + + if (abs(pxsum).gt.0.001.or. + + abs(pysum).gt.0.001.or. + + abs(pzsum).gt.0.001) then + + + print *, 'Momentum not conserved in jetset fragmentation:' + print *,'dPx:',pxsum,' dPy:',pysum,' dPz:',pzsum + + call lulist(1) + + goto 4 + + endif + + return + end + + + + + + diff --git a/TEvtGen/EvtGenModels/continuumCDF.F b/TEvtGen/EvtGenModels/continuumCDF.F new file mode 100644 index 00000000000..b5d1735b78f --- /dev/null +++ b/TEvtGen/EvtGenModels/continuumCDF.F @@ -0,0 +1,123 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See EvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: continuum.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C +C------------------------------------------------------------------------ + subroutine continuumcdf(energy,flavor,ndaug,kf,px,py,pz,e) + + implicit none + + common/lyjets/n,k(4000,5),p(4000,5),v(4000,5) + + integer n,k + real p,v + + real*8 pxsum,pysum,pzsum + + real*8 energy + + real senergy + + integer lycomp + external lycomp + + integer flavor,kf(100),i,ndaug,istart + real*8 px(100),py(100),pz(100),e(100) + + senergy=energy + +C if(flavor.ne.0) kf_user=flavor +C flavor = kf_user + + +C call lyeevt(kf_user,senergy) ! e+e- --> qq shower parton model + 4 call lyeevt(flavor,senergy) ! e+e- --> qq shower parton model + +C call lylist(1) + + ndaug=0 + +C--- Save the primary quarks + + do 1,i=1,n + if(abs(k(i,2)).gt.6) goto 1 + if(k(i,2).eq.0) goto 1 + if(k(i,3).ne.0) goto 1 + ndaug=ndaug+1 + kf(ndaug)=k(i,2) + px(ndaug)=p(i,1) + py(ndaug)=p(i,2) + pz(ndaug)=p(i,3) + e(ndaug) =p(i,4) +1 continue + +C sum to check that we preserve momentum + pxsum=0.0 + pysum=0.0 + pzsum=0.0 + + istart=0 + + do 2, i=1,n + if(k(i,3).le.0.and.k(i,2).ne.22) goto 2 +c if particle is jet or cluster + + if (k(i,2).eq.22.and.istart.eq.0) goto 22 + if ( k(i,3).le.0) goto 2 + + if(k(k(i,3),2).eq.92.or.k(k(i,3),2).eq.91) goto 22 + + goto 2 + + 22 continue +C Copy particle. If parent is cluster or string or photon if +C before first cluster or string. Uggly... + if (k(i,2).ne.22) istart=1 + ndaug = ndaug + 1 + kf(ndaug)=k(i,2) + px(ndaug)=p(i,1) + py(ndaug)=p(i,2) + pz(ndaug)=p(i,3) + pxsum=pxsum+px(ndaug) + pysum=pysum+py(ndaug) + pzsum=pzsum+pz(ndaug) + e(ndaug) =p(i,4) + 2 continue + + + if (abs(pxsum).gt.0.001.or. + + abs(pysum).gt.0.001.or. + + abs(pzsum).gt.0.001) then + + + print *, 'Momentum not conserved in jetset fragmentation:' + print *,'dPx:',pxsum,' dPy:',pysum,' dPz:',pzsum + + call lylist(1) + + goto 4 + + endif + + return + end + + + + + + diff --git a/TEvtGen/EvtGenModels/jetset1.F b/TEvtGen/EvtGenModels/jetset1.F new file mode 100644 index 00000000000..fbeb8935d2c --- /dev/null +++ b/TEvtGen/EvtGenModels/jetset1.F @@ -0,0 +1,138 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See EvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: jetset1.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C +C------------------------------------------------------------------------ + subroutine jetset1(ip,m,ndaug,kf,km,px,py,pz,e) + +C +C interface to JETSET 7.4 to have one particle decayed +C including possibly fragmentation, if the decay products include +C partons. +C + + implicit none + + INTEGER MSTU,MSTJ + REAL PARU,PARJ + COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /LUDAT1/ + + common/lujets/n,k(4000,5),p(4000,5),v(4000,5) + + integer n,k + real p,v + + integer ndmax + parameter (ndmax=100) + + integer lucomp + external lucomp + + integer ip,kf(ndmax),i,ndaug,km(ndmax) + integer kp,kid,ipart1,ipart + real*8 m,px(ndmax),py(ndmax),pz(ndmax),e(ndmax) + + integer ip1 + real qmax + +c used to use lu1ent both since it does not set the mass +c of the daughter we have to manipulate the common blocks our +c self. ryd April 25-1999 + +c call lu1ent(1,ip,0.0,0.0,0.0) + + K(1,1)=1 + K(1,2)=ip + P(1,5)=m + P(1,4)=m + P(1,1)=0.0 + P(1,2)=0.0 + P(1,3)=0.0 + n=1 + + +c now we can decay this particle + call ludecy(1) + +C code copied from LUEXEC to avoid error with shower +C switched on +C...Decay products may develop a shower. + IF(MSTJ(92).GT.0) THEN + IP1=MSTJ(92) + QMAX=SQRT(MAX(0.,(P(IP1,4)+P(IP1+1,4))**2-(P(IP1,1)+P(IP1+1, + & 1))**2-(P(IP1,2)+P(IP1+1,2))**2-(P(IP1,3)+P(IP1+1,3))**2)) + CALL LUSHOW(IP1,IP1+1,QMAX) + CALL LUPREP(IP1) + MSTJ(92)=0 + ELSEIF(MSTJ(92).LT.0) THEN + IP1=-MSTJ(92) + CALL LUSHOW(IP1,-3,P(IP1,5)) + CALL LUPREP(IP1) + MSTJ(92)=0 + ENDIF + +c +c for debugging: +c call lulist(1) +c + mstj(21)=0 + call luexec + mstj(21)=2 + +c find partons, delete secondary partons, set mother pointers + + ndaug = 0 + ipart1 = 1 + ipart = 1 + + do 10 i=2,n + kp = k(i,3) + kid = k(i,2) + if (abs(kid) .ge. 1 .and. abs(kid) .le. 8 + 1 .or. kid .eq. 21 + 2 .or. kid .ge. 91 .and. kid .le. 94) then + if (ipart1 .eq. 1) ipart1 = i + ipart = i + if (kp .ne. 1) goto 10 + kp = 0 + else + if (kp .gt. ipart) then + goto 10 + elseif (kp .ge. ipart1) then + kp = ipart1-1 + else + kp = 0 + endif + endif + ndaug = ndaug + 1 + km(ndaug)=kp + kf(ndaug)=kid + px(ndaug)=p(i,1) + py(ndaug)=p(i,2) + pz(ndaug)=p(i,3) + e(ndaug)=p(i,4) +c +c for debugging: +c print '( 2I5,I12,4F12.4 )',ndaug,km(ndaug),kf(ndaug), +c 1 px(ndaug),py(ndaug),pz(ndaug),e(ndaug) +c + 10 continue + + end + + diff --git a/TEvtGen/EvtGenModels/jetset7410CDF.F b/TEvtGen/EvtGenModels/jetset7410CDF.F new file mode 100644 index 00000000000..a2276171dd5 --- /dev/null +++ b/TEvtGen/EvtGenModels/jetset7410CDF.F @@ -0,0 +1,11712 @@ +C********************************************************************* +C* This version of Jetset 7.4 was altered by +C* +C* Frank Wuerthwein (fkw@fnal.gov) 3/22/00 +C* +C* to be compatible with Pythia 6.115 . +C* Changes are in LYGIVE to adjust common blocks to PYTHIA 6.115 +C* This involves array sizes, double precision, and some rearrangement +C* of common block content for the common blocks: +C* PYSUBS, PYPARS, PYINT1,2,3,4,5,6,7 +C* LYLOGO is only affected by the switch to DOUBLE PRECISION. +C* +C* The switch to double precission is implemented such that only the +C* REAL 's in PYxxxx commons are explicitly defined as DOUPLE PRECISION. +C* All of Jetset remains REAL rather than DOUBLE PRECISION . +C* +C* WARNING +C* +C* All common blocks and symbol names were renamed to avoid possible +C* conflicts with other instances of JETSET (J. Beringer, 4/6/2006). +C* +C********************************************************************* +C* ** +C* December 1993 ** +C* ** +C* The Lund Monte Carlo for Jet Fragmentation and e+e- Physics ** +C* ** +C* JETSET version 7.4 ** +C* ** +C* Torbjorn Sjostrand ** +C* Department of theoretical physics 2 ** +C* University of Lund ** +C* Solvegatan 14A, S-223 62 Lund, Sweden ** +C* E-mail torbjorn@thep.lu.se ** +C* phone +46 - 46 - 222 48 16 ** +C* ** +C* LYSHOW is written together with Mats Bengtsson ** +C* ** +C* The latest program version and documentation is found on WWW ** +C* http://thep.lu.se/tf2/staff/torbjorn/Welcome.html ** +C* ** +C* Copyright Torbjorn Sjostrand and CERN, Geneva 1993 ** +C* ** +C********************************************************************* +C********************************************************************* +C * +C List of subprograms in order of appearance, with main purpose * +C (S = subroutine, F = function, B = block data) * +C * +C S LY1ENT to fill one entry (= parton or particle) * +C S LY2ENT to fill two entries * +C S LY3ENT to fill three entries * +C S LY4ENT to fill four entries * +C S LYJOIN to connect entries with colour flow information * +C S LYGIVE to fill (or query) commonblock variables * +C S LYEXEC to administrate fragmentation and decay chain * +C S LYPREP to rearrange showered partons along strings * +C S LYSTRF to do string fragmentation of jet system * +C S LYINDF to do independent fragmentation of one or many jets * +C S LYDECY to do the decay of a particle * +C S LYKFDI to select parton and hadron flavours in fragm * +C S LYPTDI to select transverse momenta in fragm * +C S LYZDIS to select longitudinal scaling variable in fragm * +C S LYSHOW to do timelike parton shower evolution * +C S LYBOEI to include Bose-Einstein effects (crudely) * +C F UYMASS to give the mass of a particle or parton * +C S LYNAME to give the name of a particle or parton * +C F LYCHGE to give three times the electric charge * +C F LYCOMP to compress standard KF flavour code to internal KC * +C S LYERRM to write error messages and abort faulty run * +C F UYALEM to give the alpha_electromagnetic value * +C F UYALPS to give the alpha_strong value * +C F UYANGL to give the angle from known x and y components * +C F RLY to provide a random number generator * +C S RLYGET to save the state of the random number generator * +C S RLYSET to set the state of the random number generator * +C S LYROBO to rotate and/or boost an event * +C S LYEDIT to remove unwanted entries from record * +C S LYLIST to list event record or particle data * +C S LYLOGO to write a logo for JETSET and PYTHIA * +C S LYUPDA to update particle data * +C F KLY to provide integer-valued event information * +C F PLY to provide real-valued event information * +C S LYSPHE to perform sphericity analysis * +C S LYTHRU to perform thrust analysis * +C S LYCLUS to perform three-dimensional cluster analysis * +C S LYCELL to perform cluster analysis in (eta, phi, E_T) * +C S LYJMAS to give high and low jet mass of event * +C S LYFOWO to give Fox-Wolfram moments * +C S LYTABU to analyze events, with tabular output * +C * +C S LYEEVT to administrate the generation of an e+e- event * +C S LYXTOT to give the total cross-section at given CM energy * +C S LYRADK to generate initial state photon radiation * +C S LYXKFL to select flavour of primary qqbar pair * +C S LYXJET to select (matrix element) jet multiplicity * +C S LYX3JT to select kinematics of three-jet event * +C S LYX4JT to select kinematics of four-jet event * +C S LYXDIF to select angular orientation of event * +C S LYONIA to perform generation of onium decay to gluons * +C * +C S LYHEPC to convert between /LYJETS/ and /XHEPEVT/ records * +C S LYTEST to test the proper functioning of the package * +C B LYDATA to contain default values and particle data * +C * +C********************************************************************* + + SUBROUTINE LY1ENT(IP,KF,PE,THE,PHI) + +C...Purpose: to store one parton/particle in commonblock LUJETS. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + +C...Standard checks. + MSTU(28)=0 + IF(MSTU(12).GE.1) CALL LYLIST(0) + IPA=MAX(1,IABS(IP)) + IF(IPA.GT.MSTU(4)) CALL LYERRM(21, + &'(LY1ENT:) writing outside LUJETS memory') + KC=LYCOMP(KF) + IF(KC.EQ.0) CALL LYERRM(12,'(LY1ENT:) unknown flavour code') + +C...Find mass. Reset K, P and V vectors. + PM=0. + IF(MSTU(10).EQ.1) PM=P(IPA,5) + IF(MSTU(10).GE.2) PM=UYMASS(KF) + DO 100 J=1,5 + K(IPA,J)=0 + P(IPA,J)=0. + V(IPA,J)=0. + 100 CONTINUE + +C...Store parton/particle in K and P vectors. + K(IPA,1)=1 + IF(IP.LT.0) K(IPA,1)=2 + K(IPA,2)=KF + P(IPA,5)=PM + P(IPA,4)=MAX(PE,PM) + PA=SQRT(P(IPA,4)**2-P(IPA,5)**2) + P(IPA,1)=PA*SIN(THE)*COS(PHI) + P(IPA,2)=PA*SIN(THE)*SIN(PHI) + P(IPA,3)=PA*COS(THE) + +C...Set N. Optionally fragment/decay. + N=IPA + IF(IP.EQ.0) CALL LYEXEC + + RETURN + END + +C********************************************************************* + + SUBROUTINE LY2ENT(IP,KF1,KF2,PECM) + +C...Purpose: to store two partons/particles in their CM frame, +C...with the first along the +z axis. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + +C...Standard checks. + MSTU(28)=0 + IF(MSTU(12).GE.1) CALL LYLIST(0) + IPA=MAX(1,IABS(IP)) + IF(IPA.GT.MSTU(4)-1) CALL LYERRM(21, + &'(LY2ENT:) writing outside LUJETS memory') + KC1=LYCOMP(KF1) + KC2=LYCOMP(KF2) + IF(KC1.EQ.0.OR.KC2.EQ.0) CALL LYERRM(12, + &'(LY2ENT:) unknown flavour code') + +C...Find masses. Reset K, P and V vectors. + PM1=0. + IF(MSTU(10).EQ.1) PM1=P(IPA,5) + IF(MSTU(10).GE.2) PM1=UYMASS(KF1) + PM2=0. + IF(MSTU(10).EQ.1) PM2=P(IPA+1,5) + IF(MSTU(10).GE.2) PM2=UYMASS(KF2) + DO 110 I=IPA,IPA+1 + DO 100 J=1,5 + K(I,J)=0 + P(I,J)=0. + V(I,J)=0. + 100 CONTINUE + 110 CONTINUE + +C...Check flavours. + KQ1=KCHG(KC1,2)*ISIGN(1,KF1) + KQ2=KCHG(KC2,2)*ISIGN(1,KF2) + IF(MSTU(19).EQ.1) THEN + MSTU(19)=0 + ELSE + IF(KQ1+KQ2.NE.0.AND.KQ1+KQ2.NE.4) CALL LYERRM(2, + & '(LY2ENT:) unphysical flavour combination') + ENDIF + K(IPA,2)=KF1 + K(IPA+1,2)=KF2 + +C...Store partons/particles in K vectors for normal case. + IF(IP.GE.0) THEN + K(IPA,1)=1 + IF(KQ1.NE.0.AND.KQ2.NE.0) K(IPA,1)=2 + K(IPA+1,1)=1 + +C...Store partons in K vectors for parton shower evolution. + ELSE + K(IPA,1)=3 + K(IPA+1,1)=3 + K(IPA,4)=MSTU(5)*(IPA+1) + K(IPA,5)=K(IPA,4) + K(IPA+1,4)=MSTU(5)*IPA + K(IPA+1,5)=K(IPA+1,4) + ENDIF + +C...Check kinematics and store partons/particles in P vectors. + IF(PECM.LE.PM1+PM2) CALL LYERRM(13, + &'(LY2ENT:) energy smaller than sum of masses') + PA=SQRT(MAX(0.,(PECM**2-PM1**2-PM2**2)**2-(2.*PM1*PM2)**2))/ + &(2.*PECM) + P(IPA,3)=PA + P(IPA,4)=SQRT(PM1**2+PA**2) + P(IPA,5)=PM1 + P(IPA+1,3)=-PA + P(IPA+1,4)=SQRT(PM2**2+PA**2) + P(IPA+1,5)=PM2 + +C...Set N. Optionally fragment/decay. + N=IPA+1 + IF(IP.EQ.0) CALL LYEXEC + + RETURN + END + +C********************************************************************* + + SUBROUTINE LY3ENT(IP,KF1,KF2,KF3,PECM,X1,X3) + +C...Purpose: to store three partons or particles in their CM frame, +C...with the first along the +z axis and the third in the (x,z) +C...plane with x > 0. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + +C...Standard checks. + MSTU(28)=0 + IF(MSTU(12).GE.1) CALL LYLIST(0) + IPA=MAX(1,IABS(IP)) + IF(IPA.GT.MSTU(4)-2) CALL LYERRM(21, + &'(LY3ENT:) writing outside LUJETS memory') + KC1=LYCOMP(KF1) + KC2=LYCOMP(KF2) + KC3=LYCOMP(KF3) + IF(KC1.EQ.0.OR.KC2.EQ.0.OR.KC3.EQ.0) CALL LYERRM(12, + &'(LY3ENT:) unknown flavour code') + +C...Find masses. Reset K, P and V vectors. + PM1=0. + IF(MSTU(10).EQ.1) PM1=P(IPA,5) + IF(MSTU(10).GE.2) PM1=UYMASS(KF1) + PM2=0. + IF(MSTU(10).EQ.1) PM2=P(IPA+1,5) + IF(MSTU(10).GE.2) PM2=UYMASS(KF2) + PM3=0. + IF(MSTU(10).EQ.1) PM3=P(IPA+2,5) + IF(MSTU(10).GE.2) PM3=UYMASS(KF3) + DO 110 I=IPA,IPA+2 + DO 100 J=1,5 + K(I,J)=0 + P(I,J)=0. + V(I,J)=0. + 100 CONTINUE + 110 CONTINUE + +C...Check flavours. + KQ1=KCHG(KC1,2)*ISIGN(1,KF1) + KQ2=KCHG(KC2,2)*ISIGN(1,KF2) + KQ3=KCHG(KC3,2)*ISIGN(1,KF3) + IF(MSTU(19).EQ.1) THEN + MSTU(19)=0 + ELSEIF(KQ1.EQ.0.AND.KQ2.EQ.0.AND.KQ3.EQ.0) THEN + ELSEIF(KQ1.NE.0.AND.KQ2.EQ.2.AND.(KQ1+KQ3.EQ.0.OR. + &KQ1+KQ3.EQ.4)) THEN + ELSE + CALL LYERRM(2,'(LY3ENT:) unphysical flavour combination') + ENDIF + K(IPA,2)=KF1 + K(IPA+1,2)=KF2 + K(IPA+2,2)=KF3 + +C...Store partons/particles in K vectors for normal case. + IF(IP.GE.0) THEN + K(IPA,1)=1 + IF(KQ1.NE.0.AND.(KQ2.NE.0.OR.KQ3.NE.0)) K(IPA,1)=2 + K(IPA+1,1)=1 + IF(KQ2.NE.0.AND.KQ3.NE.0) K(IPA+1,1)=2 + K(IPA+2,1)=1 + +C...Store partons in K vectors for parton shower evolution. + ELSE + K(IPA,1)=3 + K(IPA+1,1)=3 + K(IPA+2,1)=3 + KCS=4 + IF(KQ1.EQ.-1) KCS=5 + K(IPA,KCS)=MSTU(5)*(IPA+1) + K(IPA,9-KCS)=MSTU(5)*(IPA+2) + K(IPA+1,KCS)=MSTU(5)*(IPA+2) + K(IPA+1,9-KCS)=MSTU(5)*IPA + K(IPA+2,KCS)=MSTU(5)*IPA + K(IPA+2,9-KCS)=MSTU(5)*(IPA+1) + ENDIF + +C...Check kinematics. + MKERR=0 + IF(0.5*X1*PECM.LE.PM1.OR.0.5*(2.-X1-X3)*PECM.LE.PM2.OR. + &0.5*X3*PECM.LE.PM3) MKERR=1 + PA1=SQRT(MAX(1E-10,(0.5*X1*PECM)**2-PM1**2)) + PA2=SQRT(MAX(1E-10,(0.5*(2.-X1-X3)*PECM)**2-PM2**2)) + PA3=SQRT(MAX(1E-10,(0.5*X3*PECM)**2-PM3**2)) + CTHE2=(PA3**2-PA1**2-PA2**2)/(2.*PA1*PA2) + CTHE3=(PA2**2-PA1**2-PA3**2)/(2.*PA1*PA3) + IF(ABS(CTHE2).GE.1.001.OR.ABS(CTHE3).GE.1.001) MKERR=1 + CTHE3=MAX(-1.,MIN(1.,CTHE3)) + IF(MKERR.NE.0) CALL LYERRM(13, + &'(LY3ENT:) unphysical kinematical variable setup') + +C...Store partons/particles in P vectors. + P(IPA,3)=PA1 + P(IPA,4)=SQRT(PA1**2+PM1**2) + P(IPA,5)=PM1 + P(IPA+2,1)=PA3*SQRT(1.-CTHE3**2) + P(IPA+2,3)=PA3*CTHE3 + P(IPA+2,4)=SQRT(PA3**2+PM3**2) + P(IPA+2,5)=PM3 + P(IPA+1,1)=-P(IPA+2,1) + P(IPA+1,3)=-P(IPA,3)-P(IPA+2,3) + P(IPA+1,4)=SQRT(P(IPA+1,1)**2+P(IPA+1,3)**2+PM2**2) + P(IPA+1,5)=PM2 + +C...Set N. Optionally fragment/decay. + N=IPA+2 + IF(IP.EQ.0) CALL LYEXEC + + RETURN + END + +C********************************************************************* + + SUBROUTINE LY4ENT(IP,KF1,KF2,KF3,KF4,PECM,X1,X2,X4,X12,X14) + +C...Purpose: to store four partons or particles in their CM frame, with +C...the first along the +z axis, the last in the xz plane with x > 0 +C...and the second having y < 0 and y > 0 with equal probability. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + +C...Standard checks. + MSTU(28)=0 + IF(MSTU(12).GE.1) CALL LYLIST(0) + IPA=MAX(1,IABS(IP)) + IF(IPA.GT.MSTU(4)-3) CALL LYERRM(21, + &'(LY4ENT:) writing outside LUJETS momory') + KC1=LYCOMP(KF1) + KC2=LYCOMP(KF2) + KC3=LYCOMP(KF3) + KC4=LYCOMP(KF4) + IF(KC1.EQ.0.OR.KC2.EQ.0.OR.KC3.EQ.0.OR.KC4.EQ.0) CALL LYERRM(12, + &'(LY4ENT:) unknown flavour code') + +C...Find masses. Reset K, P and V vectors. + PM1=0. + IF(MSTU(10).EQ.1) PM1=P(IPA,5) + IF(MSTU(10).GE.2) PM1=UYMASS(KF1) + PM2=0. + IF(MSTU(10).EQ.1) PM2=P(IPA+1,5) + IF(MSTU(10).GE.2) PM2=UYMASS(KF2) + PM3=0. + IF(MSTU(10).EQ.1) PM3=P(IPA+2,5) + IF(MSTU(10).GE.2) PM3=UYMASS(KF3) + PM4=0. + IF(MSTU(10).EQ.1) PM4=P(IPA+3,5) + IF(MSTU(10).GE.2) PM4=UYMASS(KF4) + DO 110 I=IPA,IPA+3 + DO 100 J=1,5 + K(I,J)=0 + P(I,J)=0. + V(I,J)=0. + 100 CONTINUE + 110 CONTINUE + +C...Check flavours. + KQ1=KCHG(KC1,2)*ISIGN(1,KF1) + KQ2=KCHG(KC2,2)*ISIGN(1,KF2) + KQ3=KCHG(KC3,2)*ISIGN(1,KF3) + KQ4=KCHG(KC4,2)*ISIGN(1,KF4) + IF(MSTU(19).EQ.1) THEN + MSTU(19)=0 + ELSEIF(KQ1.EQ.0.AND.KQ2.EQ.0.AND.KQ3.EQ.0.AND.KQ4.EQ.0) THEN + ELSEIF(KQ1.NE.0.AND.KQ2.EQ.2.AND.KQ3.EQ.2.AND.(KQ1+KQ4.EQ.0.OR. + &KQ1+KQ4.EQ.4)) THEN + ELSEIF(KQ1.NE.0.AND.KQ1+KQ2.EQ.0.AND.KQ3.NE.0.AND.KQ3+KQ4.EQ.0.) + &THEN + ELSE + CALL LYERRM(2,'(LY4ENT:) unphysical flavour combination') + ENDIF + K(IPA,2)=KF1 + K(IPA+1,2)=KF2 + K(IPA+2,2)=KF3 + K(IPA+3,2)=KF4 + +C...Store partons/particles in K vectors for normal case. + IF(IP.GE.0) THEN + K(IPA,1)=1 + IF(KQ1.NE.0.AND.(KQ2.NE.0.OR.KQ3.NE.0.OR.KQ4.NE.0)) K(IPA,1)=2 + K(IPA+1,1)=1 + IF(KQ2.NE.0.AND.KQ1+KQ2.NE.0.AND.(KQ3.NE.0.OR.KQ4.NE.0)) + & K(IPA+1,1)=2 + K(IPA+2,1)=1 + IF(KQ3.NE.0.AND.KQ4.NE.0) K(IPA+2,1)=2 + K(IPA+3,1)=1 + +C...Store partons for parton shower evolution from q-g-g-qbar or +C...g-g-g-g event. + ELSEIF(KQ1+KQ2.NE.0) THEN + K(IPA,1)=3 + K(IPA+1,1)=3 + K(IPA+2,1)=3 + K(IPA+3,1)=3 + KCS=4 + IF(KQ1.EQ.-1) KCS=5 + K(IPA,KCS)=MSTU(5)*(IPA+1) + K(IPA,9-KCS)=MSTU(5)*(IPA+3) + K(IPA+1,KCS)=MSTU(5)*(IPA+2) + K(IPA+1,9-KCS)=MSTU(5)*IPA + K(IPA+2,KCS)=MSTU(5)*(IPA+3) + K(IPA+2,9-KCS)=MSTU(5)*(IPA+1) + K(IPA+3,KCS)=MSTU(5)*IPA + K(IPA+3,9-KCS)=MSTU(5)*(IPA+2) + +C...Store partons for parton shower evolution from q-qbar-q-qbar event. + ELSE + K(IPA,1)=3 + K(IPA+1,1)=3 + K(IPA+2,1)=3 + K(IPA+3,1)=3 + K(IPA,4)=MSTU(5)*(IPA+1) + K(IPA,5)=K(IPA,4) + K(IPA+1,4)=MSTU(5)*IPA + K(IPA+1,5)=K(IPA+1,4) + K(IPA+2,4)=MSTU(5)*(IPA+3) + K(IPA+2,5)=K(IPA+2,4) + K(IPA+3,4)=MSTU(5)*(IPA+2) + K(IPA+3,5)=K(IPA+3,4) + ENDIF + +C...Check kinematics. + MKERR=0 + IF(0.5*X1*PECM.LE.PM1.OR.0.5*X2*PECM.LE.PM2.OR.0.5*(2.-X1-X2-X4)* + &PECM.LE.PM3.OR.0.5*X4*PECM.LE.PM4) MKERR=1 + PA1=SQRT(MAX(1E-10,(0.5*X1*PECM)**2-PM1**2)) + PA2=SQRT(MAX(1E-10,(0.5*X2*PECM)**2-PM2**2)) + PA4=SQRT(MAX(1E-10,(0.5*X4*PECM)**2-PM4**2)) + X24=X1+X2+X4-1.-X12-X14+(PM3**2-PM1**2-PM2**2-PM4**2)/PECM**2 + CTHE4=(X1*X4-2.*X14)*PECM**2/(4.*PA1*PA4) + IF(ABS(CTHE4).GE.1.002) MKERR=1 + CTHE4=MAX(-1.,MIN(1.,CTHE4)) + STHE4=SQRT(1.-CTHE4**2) + CTHE2=(X1*X2-2.*X12)*PECM**2/(4.*PA1*PA2) + IF(ABS(CTHE2).GE.1.002) MKERR=1 + CTHE2=MAX(-1.,MIN(1.,CTHE2)) + STHE2=SQRT(1.-CTHE2**2) + CPHI2=((X2*X4-2.*X24)*PECM**2-4.*PA2*CTHE2*PA4*CTHE4)/ + &MAX(1E-8*PECM**2,4.*PA2*STHE2*PA4*STHE4) + IF(ABS(CPHI2).GE.1.05) MKERR=1 + CPHI2=MAX(-1.,MIN(1.,CPHI2)) + IF(MKERR.EQ.1) CALL LYERRM(13, + &'(LY4ENT:) unphysical kinematical variable setup') + +C...Store partons/particles in P vectors. + P(IPA,3)=PA1 + P(IPA,4)=SQRT(PA1**2+PM1**2) + P(IPA,5)=PM1 + P(IPA+3,1)=PA4*STHE4 + P(IPA+3,3)=PA4*CTHE4 + P(IPA+3,4)=SQRT(PA4**2+PM4**2) + P(IPA+3,5)=PM4 + P(IPA+1,1)=PA2*STHE2*CPHI2 + P(IPA+1,2)=PA2*STHE2*SQRT(1.-CPHI2**2)*(-1.)**INT(RLY(0)+0.5) + P(IPA+1,3)=PA2*CTHE2 + P(IPA+1,4)=SQRT(PA2**2+PM2**2) + P(IPA+1,5)=PM2 + P(IPA+2,1)=-P(IPA+1,1)-P(IPA+3,1) + P(IPA+2,2)=-P(IPA+1,2) + P(IPA+2,3)=-P(IPA,3)-P(IPA+1,3)-P(IPA+3,3) + P(IPA+2,4)=SQRT(P(IPA+2,1)**2+P(IPA+2,2)**2+P(IPA+2,3)**2+PM3**2) + P(IPA+2,5)=PM3 + +C...Set N. Optionally fragment/decay. + N=IPA+3 + IF(IP.EQ.0) CALL LYEXEC + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYJOIN(NJOIN,IJOIN) + +C...Purpose: to connect a sequence of partons with colour flow indices, +C...as required for subsequent shower evolution (or other operations). + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + DIMENSION IJOIN(*) + +C...Check that partons are of right types to be connected. + IF(NJOIN.LT.2) GOTO 120 + KQSUM=0 + DO 100 IJN=1,NJOIN + I=IJOIN(IJN) + IF(I.LE.0.OR.I.GT.N) GOTO 120 + IF(K(I,1).LT.1.OR.K(I,1).GT.3) GOTO 120 + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0) GOTO 120 + KQ=KCHG(KC,2)*ISIGN(1,K(I,2)) + IF(KQ.EQ.0) GOTO 120 + IF(IJN.NE.1.AND.IJN.NE.NJOIN.AND.KQ.NE.2) GOTO 120 + IF(KQ.NE.2) KQSUM=KQSUM+KQ + IF(IJN.EQ.1) KQS=KQ + 100 CONTINUE + IF(KQSUM.NE.0) GOTO 120 + +C...Connect the partons sequentially (closing for gluon loop). + KCS=(9-KQS)/2 + IF(KQS.EQ.2) KCS=INT(4.5+RLY(0)) + DO 110 IJN=1,NJOIN + I=IJOIN(IJN) + K(I,1)=3 + IF(IJN.NE.1) IP=IJOIN(IJN-1) + IF(IJN.EQ.1) IP=IJOIN(NJOIN) + IF(IJN.NE.NJOIN) IN=IJOIN(IJN+1) + IF(IJN.EQ.NJOIN) IN=IJOIN(1) + K(I,KCS)=MSTU(5)*IN + K(I,9-KCS)=MSTU(5)*IP + IF(IJN.EQ.1.AND.KQS.NE.2) K(I,9-KCS)=0 + IF(IJN.EQ.NJOIN.AND.KQS.NE.2) K(I,KCS)=0 + 110 CONTINUE + +C...Error exit: no action taken. + RETURN + 120 CALL LYERRM(12, + &'(LYJOIN:) given entries can not be joined by one string') + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYGIVE(CHIN) + +C...Purpose: to set values of commonblock variables (also in PYTHIA!). + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + COMMON/LYDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5) + COMMON/LYDAT4/CHAF(500) + CHARACTER CHAF*8 + COMMON/LYDATR/MRLU(6),RRLU(100) +c DOUBLE PRECISION KFIN,CKIN +c COMMON/PYSUBS/MSEL,MSELPD,MSUB(500),KFIN(2,-40:40),CKIN(200) +c DOUBLE PRECISION PARP,PARI +c COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200) +c DOUBLE PRECISION VINT +c COMMON/PYINT1/MINT(400),VINT(400) +c DOUBLE PRECISION KFPR,COEF +c COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2) +c DOUBLE PRECISION XSFX,SIGH +c COMMON/PYINT3/XSFX(2,-40:40),ISIG(1000,3),SIGH(1000) +c DOUBLE PRECISION WIDS +c COMMON/PYINT4/MWID(500),WIDS(500,5) +c DOUBLE PRECISION XSEC +c COMMON/PYINT5/NGENPD,NGEN(0:500,3),XSEC(0:500,3) +c CHARACTER PROC*28 +c COMMON/PYINT6/PROC(0:500) +c DOUBLE PRECISION SIGT +c COMMON/PYINT7/SIGT(0:6,0:6,0:5) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/,/LYDAT3/,/LYDAT4/,/LYDATR/ +c SAVE /PYSUBS/,/PYPARS/,/PYINT1/,/PYINT2/,/PYINT3/,/PYINT4/, +c &/PYINT5/,/PYINT6/,/PYINT7/ + CHARACTER CHIN*(*),CHFIX*104,CHBIT*104,CHOLD*8,CHNEW*8,CHOLD2*28, + &CHNEW2*28,CHNAM*4,CHVAR(19)*4,CHALP(2)*26,CHIND*8,CHINI*10, + &CHINR*16 + DIMENSION MSVAR(43,8) + +C...For each variable to be translated give: name, +C...integer/real/character, no. of indices, lower&upper index bounds. +cfkw 3/29/00 I changed the dimension of CHVAR such that it includes only +cfkw variables names from LUxxxx common blocks. +cfkw However, I left MSVAR untouched out of fear of screwing it +cfkw up royally !!! + DATA CHVAR/'N','K','P','V','MSTU','PARU','MSTJ','PARJ','KCHG', + &'PMAS','PARF','VCKM','MDCY','MDME','BRAT','KFDP','CHAF','MRLU', + &'RRLU'/ +c ,'MSEL','MSUB','KFIN','CKIN','MSTP','PARP','MSTI','PARI', +c &'MINT','VINT','ISET','KFPR','COEF','ICOL','XSFX','ISIG','SIGH', +c &'WIDP','WIDE','WIDS','NGEN','XSEC','PROC','SIGT'/ + DATA ((MSVAR(I,J),J=1,8),I=1,43)/ 1,7*0, 1,2,1,4000,1,5,2*0, + & 2,2,1,4000,1,5,2*0, 2,2,1,4000,1,5,2*0, 1,1,1,200,4*0, + & 2,1,1,200,4*0, 1,1,1,200,4*0, 2,1,1,200,4*0, + & 1,2,1,500,1,3,2*0, 2,2,1,500,1,4,2*0, 2,1,1,2000,4*0, + & 2,2,1,4,1,4,2*0, 1,2,1,500,1,3,2*0, 1,2,1,2000,1,2,2*0, + & 2,1,1,2000,4*0, 1,2,1,2000,1,5,2*0, 3,1,1,500,4*0, + & 1,1,1,6,4*0, 2,1,1,100,4*0, + & 1,7*0, 1,1,1,200,4*0, 1,2,1,2,-40,40,2*0, 2,1,1,200,4*0, + & 1,1,1,200,4*0, 2,1,1,200,4*0, 1,1,1,200,4*0, 2,1,1,200,4*0, + & 1,1,1,400,4*0, 2,1,1,400,4*0, 1,1,1,200,4*0, + & 1,2,1,200,1,2,2*0, 2,2,1,200,1,20,2*0, 1,3,1,40,1,4,1,2, + & 2,2,1,2,-40,40,2*0, 1,2,1,1000,1,3,2*0, 2,1,1,1000,4*0, + & 2,2,21,40,0,40,2*0, 2,2,21,40,0,40,2*0, 2,2,21,40,1,3,2*0, + & 1,2,0,200,1,3,2*0, 2,2,0,200,1,3,2*0, 4,1,0,200,4*0, + & 2,3,0,6,0,6,0,5/ + DATA CHALP/'abcdefghijklmnopqrstuvwxyz', + &'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/ + +C...Length of character variable. Subdivide it into instructions. + IF(MSTU(12).GE.1) CALL LYLIST(0) + CHBIT=CHIN//' ' + LBIT=101 + 100 LBIT=LBIT-1 + IF(CHBIT(LBIT:LBIT).EQ.' ') GOTO 100 + LTOT=0 + DO 110 LCOM=1,LBIT + IF(CHBIT(LCOM:LCOM).EQ.' ') GOTO 110 + LTOT=LTOT+1 + CHFIX(LTOT:LTOT)=CHBIT(LCOM:LCOM) + 110 CONTINUE + LLOW=0 + 120 LHIG=LLOW+1 + 130 LHIG=LHIG+1 + IF(LHIG.LE.LTOT.AND.CHFIX(LHIG:LHIG).NE.';') GOTO 130 + LBIT=LHIG-LLOW-1 + CHBIT(1:LBIT)=CHFIX(LLOW+1:LHIG-1) + +C...Identify commonblock variable. + LNAM=1 + 140 LNAM=LNAM+1 + IF(CHBIT(LNAM:LNAM).NE.'('.AND.CHBIT(LNAM:LNAM).NE.'='.AND. + &LNAM.LE.4) GOTO 140 + CHNAM=CHBIT(1:LNAM-1)//' ' + DO 160 LCOM=1,LNAM-1 + DO 150 LALP=1,26 + IF(CHNAM(LCOM:LCOM).EQ.CHALP(1)(LALP:LALP)) CHNAM(LCOM:LCOM)= + &CHALP(2)(LALP:LALP) + 150 CONTINUE + 160 CONTINUE + IVAR=0 +c DO 170 IV=1,43 + DO 170 IV=1,19 + IF(CHNAM.EQ.CHVAR(IV)) IVAR=IV + 170 CONTINUE + IF(IVAR.EQ.0) THEN + CALL LYERRM(18,'(LYGIVE:) do not recognize variable '//CHNAM) + LLOW=LHIG + IF(LLOW.LT.LTOT) GOTO 120 + RETURN + ENDIF + +C...Identify any indices. + I1=0 + I2=0 + I3=0 + NINDX=0 + IF(CHBIT(LNAM:LNAM).EQ.'(') THEN + LIND=LNAM + 180 LIND=LIND+1 + IF(CHBIT(LIND:LIND).NE.')'.AND.CHBIT(LIND:LIND).NE.',') GOTO 180 + CHIND=' ' + IF((CHBIT(LNAM+1:LNAM+1).EQ.'C'.OR.CHBIT(LNAM+1:LNAM+1).EQ.'c'). + & AND.(IVAR.EQ.9.OR.IVAR.EQ.10.OR.IVAR.EQ.13.OR.IVAR.EQ.17)) THEN + CHIND(LNAM-LIND+11:8)=CHBIT(LNAM+2:LIND-1) + READ(CHIND,'(I8)') KF + I1=LYCOMP(KF) + ELSEIF(CHBIT(LNAM+1:LNAM+1).EQ.'C'.OR.CHBIT(LNAM+1:LNAM+1).EQ. + & 'c') THEN + CALL LYERRM(18,'(LYGIVE:) not allowed to use C index for '// + & CHNAM) + LLOW=LHIG + IF(LLOW.LT.LTOT) GOTO 120 + RETURN + ELSE + CHIND(LNAM-LIND+10:8)=CHBIT(LNAM+1:LIND-1) + READ(CHIND,'(I8)') I1 + ENDIF + LNAM=LIND + IF(CHBIT(LNAM:LNAM).EQ.')') LNAM=LNAM+1 + NINDX=1 + ENDIF + IF(CHBIT(LNAM:LNAM).EQ.',') THEN + LIND=LNAM + 190 LIND=LIND+1 + IF(CHBIT(LIND:LIND).NE.')'.AND.CHBIT(LIND:LIND).NE.',') GOTO 190 + CHIND=' ' + CHIND(LNAM-LIND+10:8)=CHBIT(LNAM+1:LIND-1) + READ(CHIND,'(I8)') I2 + LNAM=LIND + IF(CHBIT(LNAM:LNAM).EQ.')') LNAM=LNAM+1 + NINDX=2 + ENDIF + IF(CHBIT(LNAM:LNAM).EQ.',') THEN + LIND=LNAM + 200 LIND=LIND+1 + IF(CHBIT(LIND:LIND).NE.')'.AND.CHBIT(LIND:LIND).NE.',') GOTO 200 + CHIND=' ' + CHIND(LNAM-LIND+10:8)=CHBIT(LNAM+1:LIND-1) + READ(CHIND,'(I8)') I3 + LNAM=LIND+1 + NINDX=3 + ENDIF + +C...Check that indices allowed. + IERR=0 + IF(NINDX.NE.MSVAR(IVAR,2)) IERR=1 + IF(NINDX.GE.1.AND.(I1.LT.MSVAR(IVAR,3).OR.I1.GT.MSVAR(IVAR,4))) + &IERR=2 + IF(NINDX.GE.2.AND.(I2.LT.MSVAR(IVAR,5).OR.I2.GT.MSVAR(IVAR,6))) + &IERR=3 + IF(NINDX.EQ.3.AND.(I3.LT.MSVAR(IVAR,7).OR.I3.GT.MSVAR(IVAR,8))) + &IERR=4 + IF(CHBIT(LNAM:LNAM).NE.'=') IERR=5 + IF(IERR.GE.1) THEN + CALL LYERRM(18,'(LYGIVE:) unallowed indices for '// + & CHBIT(1:LNAM-1)) + LLOW=LHIG + IF(LLOW.LT.LTOT) GOTO 120 + RETURN + ENDIF + +C...Save old value of variable. + IF(IVAR.EQ.1) THEN + IOLD=N + ELSEIF(IVAR.EQ.2) THEN + IOLD=K(I1,I2) + ELSEIF(IVAR.EQ.3) THEN + ROLD=P(I1,I2) + ELSEIF(IVAR.EQ.4) THEN + ROLD=V(I1,I2) + ELSEIF(IVAR.EQ.5) THEN + IOLD=MSTU(I1) + ELSEIF(IVAR.EQ.6) THEN + ROLD=PARU(I1) + ELSEIF(IVAR.EQ.7) THEN + IOLD=MSTJ(I1) + ELSEIF(IVAR.EQ.8) THEN + ROLD=PARJ(I1) + ELSEIF(IVAR.EQ.9) THEN + IOLD=KCHG(I1,I2) + ELSEIF(IVAR.EQ.10) THEN + ROLD=PMAS(I1,I2) + ELSEIF(IVAR.EQ.11) THEN + ROLD=PARF(I1) + ELSEIF(IVAR.EQ.12) THEN + ROLD=VCKM(I1,I2) + ELSEIF(IVAR.EQ.13) THEN + IOLD=MDCY(I1,I2) + ELSEIF(IVAR.EQ.14) THEN + IOLD=MDME(I1,I2) + ELSEIF(IVAR.EQ.15) THEN + ROLD=BRAT(I1) + ELSEIF(IVAR.EQ.16) THEN + IOLD=KFDP(I1,I2) + ELSEIF(IVAR.EQ.17) THEN + CHOLD=CHAF(I1) + ELSEIF(IVAR.EQ.18) THEN + IOLD=MRLU(I1) + ELSEIF(IVAR.EQ.19) THEN + ROLD=RRLU(I1) +cfkw 3/29/00 comment out all variables that exist only in PYxxxx commons +cfkw as those commons are commented above anyway. +c ELSEIF(IVAR.EQ.20) THEN +c IOLD=MSEL +c ELSEIF(IVAR.EQ.21) THEN +c IOLD=MSUB(I1) +c ELSEIF(IVAR.EQ.22) THEN +c IOLD=KFIN(I1,I2) +c ELSEIF(IVAR.EQ.23) THEN +c ROLD=CKIN(I1) +c ELSEIF(IVAR.EQ.24) THEN +c IOLD=MSTP(I1) +c ELSEIF(IVAR.EQ.25) THEN +c ROLD=PARP(I1) +c ELSEIF(IVAR.EQ.26) THEN +c IOLD=MSTI(I1) +c ELSEIF(IVAR.EQ.27) THEN +c ROLD=PARI(I1) +c ELSEIF(IVAR.EQ.28) THEN +c IOLD=MINT(I1) +c ELSEIF(IVAR.EQ.29) THEN +c ROLD=VINT(I1) +c ELSEIF(IVAR.EQ.30) THEN +c IOLD=ISET(I1) +c ELSEIF(IVAR.EQ.31) THEN +c IOLD=KFPR(I1,I2) +c ELSEIF(IVAR.EQ.32) THEN +c ROLD=COEF(I1,I2) +c ELSEIF(IVAR.EQ.33) THEN +c IOLD=ICOL(I1,I2,I3) +c ELSEIF(IVAR.EQ.34) THEN +c ROLD=XSFX(I1,I2) +c ELSEIF(IVAR.EQ.35) THEN +c IOLD=ISIG(I1,I2) +c ELSEIF(IVAR.EQ.36) THEN +c ROLD=SIGH(I1) +c ELSEIF(IVAR.EQ.37) THEN +c ROLD=WIDP(I1,I2) +c ELSEIF(IVAR.EQ.38) THEN +c ROLD=WIDE(I1,I2) +c ELSEIF(IVAR.EQ.39) THEN +c ROLD=WIDS(I1,I2) +c ELSEIF(IVAR.EQ.40) THEN +c IOLD=NGEN(I1,I2) +c ELSEIF(IVAR.EQ.41) THEN +c ROLD=XSEC(I1,I2) +c ELSEIF(IVAR.EQ.42) THEN +c CHOLD2=PROC(I1) +c ELSEIF(IVAR.EQ.43) THEN +c ROLD=SIGT(I1,I2,I3) + ELSE + CALL LYERRM(18,'(LYGIVE:) IVAR screwup '//CHNAM) + ENDIF + +C...Print current value of variable. Loop back. + IF(LNAM.GE.LBIT) THEN + CHBIT(LNAM:14)=' ' + CHBIT(15:60)=' has the value ' + IF(MSVAR(IVAR,1).EQ.1) THEN + WRITE(CHBIT(51:60),'(I10)') IOLD + ELSEIF(MSVAR(IVAR,1).EQ.2) THEN + WRITE(CHBIT(47:60),'(F14.5)') ROLD + ELSEIF(MSVAR(IVAR,1).EQ.3) THEN + CHBIT(53:60)=CHOLD + ELSE + CHBIT(33:60)=CHOLD + ENDIF + IF(MSTU(13).GE.1) WRITE(MSTU(11),5000) CHBIT(1:60) + LLOW=LHIG + IF(LLOW.LT.LTOT) GOTO 120 + RETURN + ENDIF + +C...Read in new variable value. + IF(MSVAR(IVAR,1).EQ.1) THEN + CHINI=' ' + CHINI(LNAM-LBIT+11:10)=CHBIT(LNAM+1:LBIT) + READ(CHINI,'(I10)') INEW + ELSEIF(MSVAR(IVAR,1).EQ.2) THEN + CHINR=' ' + CHINR(LNAM-LBIT+17:16)=CHBIT(LNAM+1:LBIT) + READ(CHINR,'(F16.2)') RNEW + ELSEIF(MSVAR(IVAR,1).EQ.3) THEN + CHNEW=CHBIT(LNAM+1:LBIT)//' ' + ELSE + CHNEW2=CHBIT(LNAM+1:LBIT)//' ' + ENDIF + +C...Store new variable value. + IF(IVAR.EQ.1) THEN + N=INEW + ELSEIF(IVAR.EQ.2) THEN + K(I1,I2)=INEW + ELSEIF(IVAR.EQ.3) THEN + P(I1,I2)=RNEW + ELSEIF(IVAR.EQ.4) THEN + V(I1,I2)=RNEW + ELSEIF(IVAR.EQ.5) THEN + MSTU(I1)=INEW + ELSEIF(IVAR.EQ.6) THEN + PARU(I1)=RNEW + ELSEIF(IVAR.EQ.7) THEN + MSTJ(I1)=INEW + ELSEIF(IVAR.EQ.8) THEN + PARJ(I1)=RNEW + ELSEIF(IVAR.EQ.9) THEN + KCHG(I1,I2)=INEW + ELSEIF(IVAR.EQ.10) THEN + PMAS(I1,I2)=RNEW + ELSEIF(IVAR.EQ.11) THEN + PARF(I1)=RNEW + ELSEIF(IVAR.EQ.12) THEN + VCKM(I1,I2)=RNEW + ELSEIF(IVAR.EQ.13) THEN + MDCY(I1,I2)=INEW + ELSEIF(IVAR.EQ.14) THEN + MDME(I1,I2)=INEW + ELSEIF(IVAR.EQ.15) THEN + BRAT(I1)=RNEW + ELSEIF(IVAR.EQ.16) THEN + KFDP(I1,I2)=INEW + ELSEIF(IVAR.EQ.17) THEN + CHAF(I1)=CHNEW + ELSEIF(IVAR.EQ.18) THEN + MRLU(I1)=INEW + ELSEIF(IVAR.EQ.19) THEN + RRLU(I1)=RNEW +cfkw 3/29/00 comment out all variables that exist only in PYxxxx commons +cfkw as those commons are commented above anyway. +c ELSEIF(IVAR.EQ.20) THEN +c MSEL=INEW +c ELSEIF(IVAR.EQ.21) THEN +c MSUB(I1)=INEW +c ELSEIF(IVAR.EQ.22) THEN +c KFIN(I1,I2)=INEW +c ELSEIF(IVAR.EQ.23) THEN +c CKIN(I1)=RNEW +c ELSEIF(IVAR.EQ.24) THEN +c MSTP(I1)=INEW +c ELSEIF(IVAR.EQ.25) THEN +c PARP(I1)=RNEW +c ELSEIF(IVAR.EQ.26) THEN +c MSTI(I1)=INEW +c ELSEIF(IVAR.EQ.27) THEN +c PARI(I1)=RNEW +c ELSEIF(IVAR.EQ.28) THEN +c MINT(I1)=INEW +c ELSEIF(IVAR.EQ.29) THEN +c VINT(I1)=RNEW +c ELSEIF(IVAR.EQ.30) THEN +c ISET(I1)=INEW +c ELSEIF(IVAR.EQ.31) THEN +c KFPR(I1,I2)=INEW +c ELSEIF(IVAR.EQ.32) THEN +c COEF(I1,I2)=RNEW +c ELSEIF(IVAR.EQ.33) THEN +c ICOL(I1,I2,I3)=INEW +c ELSEIF(IVAR.EQ.34) THEN +c XSFX(I1,I2)=RNEW +c ELSEIF(IVAR.EQ.35) THEN +c ISIG(I1,I2)=INEW +c ELSEIF(IVAR.EQ.36) THEN +c SIGH(I1)=RNEW +c ELSEIF(IVAR.EQ.37) THEN +c WIDP(I1,I2)=RNEW +c ELSEIF(IVAR.EQ.38) THEN +c WIDE(I1,I2)=RNEW +c ELSEIF(IVAR.EQ.39) THEN +c WIDS(I1,I2)=RNEW +c ELSEIF(IVAR.EQ.40) THEN +c NGEN(I1,I2)=INEW +c ELSEIF(IVAR.EQ.41) THEN +c XSEC(I1,I2)=RNEW +c ELSEIF(IVAR.EQ.42) THEN +c PROC(I1)=CHNEW2 +c ELSEIF(IVAR.EQ.43) THEN +c SIGT(I1,I2,I3)=RNEW + ELSE + CALL LYERRM(18,'(LYGIVE:) IVAR screwup '//CHNAM) + ENDIF + +C...Write old and new value. Loop back. + CHBIT(LNAM:14)=' ' + CHBIT(15:60)=' changed from to ' + IF(MSVAR(IVAR,1).EQ.1) THEN + WRITE(CHBIT(33:42),'(I10)') IOLD + WRITE(CHBIT(51:60),'(I10)') INEW + IF(MSTU(13).GE.1) WRITE(MSTU(11),5000) CHBIT(1:60) + ELSEIF(MSVAR(IVAR,1).EQ.2) THEN + WRITE(CHBIT(29:42),'(F14.5)') ROLD + WRITE(CHBIT(47:60),'(F14.5)') RNEW + IF(MSTU(13).GE.1) WRITE(MSTU(11),5000) CHBIT(1:60) + ELSEIF(MSVAR(IVAR,1).EQ.3) THEN + CHBIT(35:42)=CHOLD + CHBIT(53:60)=CHNEW + IF(MSTU(13).GE.1) WRITE(MSTU(11),5000) CHBIT(1:60) + ELSE + CHBIT(15:88)=' changed from '//CHOLD2//' to '//CHNEW2 + IF(MSTU(13).GE.1) WRITE(MSTU(11),5100) CHBIT(1:88) + ENDIF + LLOW=LHIG + IF(LLOW.LT.LTOT) GOTO 120 + +C...Format statement for output on unit MSTU(11) (by default 6). + 5000 FORMAT(5X,A60) + 5100 FORMAT(5X,A88) + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYEXEC + +C...Purpose: to administrate the fragmentation and decay chain. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + COMMON/LYDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/,/LYDAT3/ + DIMENSION PS(2,6) + +C...Initialize and reset. + MSTU(24)=0 + IF(MSTU(12).GE.1) CALL LYLIST(0) + MSTU(31)=MSTU(31)+1 + MSTU(1)=0 + MSTU(2)=0 + MSTU(3)=0 + IF(MSTU(17).LE.0) MSTU(90)=0 + MCONS=1 + +C...Sum up momentum, energy and charge for starting entries. + NSAV=N + DO 110 I=1,2 + DO 100 J=1,6 + PS(I,J)=0. + 100 CONTINUE + 110 CONTINUE + DO 130 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 130 + DO 120 J=1,4 + PS(1,J)=PS(1,J)+P(I,J) + 120 CONTINUE + PS(1,6)=PS(1,6)+LYCHGE(K(I,2)) + 130 CONTINUE + PARU(21)=PS(1,4) + +C...Prepare system for subsequent fragmentation/decay. + CALL LYPREP(0) + +C...Loop through jet fragmentation and particle decays. + MBE=0 + 140 MBE=MBE+1 + IP=0 + 150 IP=IP+1 + KC=0 + IF(K(IP,1).GT.0.AND.K(IP,1).LE.10) KC=LYCOMP(K(IP,2)) + IF(KC.EQ.0) THEN + +C...Particle decay if unstable and allowed. Save long-lived particle +C...decays until second pass after Bose-Einstein effects. + ELSEIF(KCHG(KC,2).EQ.0) THEN + IF(MSTJ(21).GE.1.AND.MDCY(KC,1).GE.1.AND.(MSTJ(51).LE.0.OR.MBE + & .EQ.2.OR.PMAS(KC,2).GE.PARJ(91).OR.IABS(K(IP,2)).EQ.311)) + & CALL LYDECY(IP) + +C...Decay products may develop a shower. + IF(MSTJ(92).GT.0) THEN + IP1=MSTJ(92) + QMAX=SQRT(MAX(0.,(P(IP1,4)+P(IP1+1,4))**2-(P(IP1,1)+P(IP1+1, + & 1))**2-(P(IP1,2)+P(IP1+1,2))**2-(P(IP1,3)+P(IP1+1,3))**2)) + CALL LYSHOW(IP1,IP1+1,QMAX) + CALL LYPREP(IP1) + MSTJ(92)=0 + ELSEIF(MSTJ(92).LT.0) THEN + IP1=-MSTJ(92) + CALL LYSHOW(IP1,-3,P(IP,5)) + CALL LYPREP(IP1) + MSTJ(92)=0 + ENDIF + +C...Jet fragmentation: string or independent fragmentation. + ELSEIF(K(IP,1).EQ.1.OR.K(IP,1).EQ.2) THEN + MFRAG=MSTJ(1) + IF(MFRAG.GE.1.AND.K(IP,1).EQ.1) MFRAG=2 + IF(MSTJ(21).GE.2.AND.K(IP,1).EQ.2.AND.N.GT.IP) THEN + IF(K(IP+1,1).EQ.1.AND.K(IP+1,3).EQ.K(IP,3).AND. + & K(IP,3).GT.0.AND.K(IP,3).LT.IP) THEN + IF(KCHG(LYCOMP(K(K(IP,3),2)),2).EQ.0) MFRAG=MIN(1,MFRAG) + ENDIF + ENDIF + IF(MFRAG.EQ.1) CALL LYSTRF(IP) + IF(MFRAG.EQ.2) CALL LYINDF(IP) + IF(MFRAG.EQ.2.AND.K(IP,1).EQ.1) MCONS=0 + IF(MFRAG.EQ.2.AND.(MSTJ(3).LE.0.OR.MOD(MSTJ(3),5).EQ.0)) MCONS=0 + ENDIF + +C...Loop back if enough space left in LUJETS and no error abort. + IF(MSTU(24).NE.0.AND.MSTU(21).GE.2) THEN + ELSEIF(IP.LT.N.AND.N.LT.MSTU(4)-20-MSTU(32)) THEN + GOTO 150 + ELSEIF(IP.LT.N) THEN + CALL LYERRM(11,'(LYEXEC:) no more memory left in LUJETS') + ENDIF + +C...Include simple Bose-Einstein effect parametrization if desired. + IF(MBE.EQ.1.AND.MSTJ(51).GE.1) THEN + CALL LYBOEI(NSAV) + GOTO 140 + ENDIF + +C...Check that momentum, energy and charge were conserved. + DO 170 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 170 + DO 160 J=1,4 + PS(2,J)=PS(2,J)+P(I,J) + 160 CONTINUE + PS(2,6)=PS(2,6)+LYCHGE(K(I,2)) + 170 CONTINUE + PDEV=(ABS(PS(2,1)-PS(1,1))+ABS(PS(2,2)-PS(1,2))+ABS(PS(2,3)- + &PS(1,3))+ABS(PS(2,4)-PS(1,4)))/(1.+ABS(PS(2,4))+ABS(PS(1,4))) + IF(MCONS.EQ.1.AND.PDEV.GT.PARU(11)) CALL LYERRM(15, + &'(LYEXEC:) four-momentum was not conserved') + IF(MCONS.EQ.1.AND.ABS(PS(2,6)-PS(1,6)).GT.0.1) CALL LYERRM(15, + &'(LYEXEC:) charge was not conserved') + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYPREP(IP) + +C...Purpose: to rearrange partons along strings, to allow small systems +C...to collapse into one or two particles and to check flavours. + IMPLICIT DOUBLE PRECISION(D) + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + COMMON/LYDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/,/LYDAT3/ + DIMENSION DPS(5),DPC(5),UE(3) + +C...Rearrange parton shower product listing along strings: begin loop. + I1=N + DO 130 MQGST=1,2 + DO 120 I=MAX(1,IP),N + IF(K(I,1).NE.3) GOTO 120 + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0) GOTO 120 + KQ=KCHG(KC,2) + IF(KQ.EQ.0.OR.(MQGST.EQ.1.AND.KQ.EQ.2)) GOTO 120 + +C...Pick up loose string end. + KCS=4 + IF(KQ*ISIGN(1,K(I,2)).LT.0) KCS=5 + IA=I + NSTP=0 + 100 NSTP=NSTP+1 + IF(NSTP.GT.4*N) THEN + CALL LYERRM(14,'(LYPREP:) caught in infinite loop') + RETURN + ENDIF + +C...Copy undecayed parton. + IF(K(IA,1).EQ.3) THEN + IF(I1.GE.MSTU(4)-MSTU(32)-5) THEN + CALL LYERRM(11,'(LYPREP:) no more memory left in LUJETS') + RETURN + ENDIF + I1=I1+1 + K(I1,1)=2 + IF(NSTP.GE.2.AND.IABS(K(IA,2)).NE.21) K(I1,1)=1 + K(I1,2)=K(IA,2) + K(I1,3)=IA + K(I1,4)=0 + K(I1,5)=0 + DO 110 J=1,5 + P(I1,J)=P(IA,J) + V(I1,J)=V(IA,J) + 110 CONTINUE + K(IA,1)=K(IA,1)+10 + IF(K(I1,1).EQ.1) GOTO 120 + ENDIF + +C...Go to next parton in colour space. + IB=IA + IF(MOD(K(IB,KCS)/MSTU(5)**2,2).EQ.0.AND.MOD(K(IB,KCS),MSTU(5)) + &.NE.0) THEN + IA=MOD(K(IB,KCS),MSTU(5)) + K(IB,KCS)=K(IB,KCS)+MSTU(5)**2 + MREV=0 + ELSE + IF(K(IB,KCS).GE.2*MSTU(5)**2.OR.MOD(K(IB,KCS)/MSTU(5),MSTU(5)) + & .EQ.0) KCS=9-KCS + IA=MOD(K(IB,KCS)/MSTU(5),MSTU(5)) + K(IB,KCS)=K(IB,KCS)+2*MSTU(5)**2 + MREV=1 + ENDIF + IF(IA.LE.0.OR.IA.GT.N) THEN + CALL LYERRM(12,'(LYPREP:) colour rearrangement failed') + RETURN + ENDIF + IF(MOD(K(IA,4)/MSTU(5),MSTU(5)).EQ.IB.OR.MOD(K(IA,5)/MSTU(5), + &MSTU(5)).EQ.IB) THEN + IF(MREV.EQ.1) KCS=9-KCS + IF(MOD(K(IA,KCS)/MSTU(5),MSTU(5)).NE.IB) KCS=9-KCS + K(IA,KCS)=K(IA,KCS)+2*MSTU(5)**2 + ELSE + IF(MREV.EQ.0) KCS=9-KCS + IF(MOD(K(IA,KCS),MSTU(5)).NE.IB) KCS=9-KCS + K(IA,KCS)=K(IA,KCS)+MSTU(5)**2 + ENDIF + IF(IA.NE.I) GOTO 100 + K(I1,1)=1 + 120 CONTINUE + 130 CONTINUE + N=I1 + IF(MSTJ(14).LT.0) RETURN + +C...Find lowest-mass colour singlet jet system, OK if above threshold. + IF(MSTJ(14).EQ.0) GOTO 320 + NS=N + 140 NSIN=N-NS + PDM=1.+PARJ(32) + IC=0 + DO 190 I=MAX(1,IP),NS + IF(K(I,1).NE.1.AND.K(I,1).NE.2) THEN + ELSEIF(K(I,1).EQ.2.AND.IC.EQ.0) THEN + NSIN=NSIN+1 + IC=I + DO 150 J=1,4 + DPS(J)=P(I,J) + 150 CONTINUE + MSTJ(93)=1 + DPS(5)=UYMASS(K(I,2)) + ELSEIF(K(I,1).EQ.2) THEN + DO 160 J=1,4 + DPS(J)=DPS(J)+P(I,J) + 160 CONTINUE + ELSEIF(IC.NE.0.AND.KCHG(LYCOMP(K(I,2)),2).NE.0) THEN + DO 170 J=1,4 + DPS(J)=DPS(J)+P(I,J) + 170 CONTINUE + MSTJ(93)=1 + DPS(5)=DPS(5)+UYMASS(K(I,2)) + PD=SQRT(MAX(0D0,DPS(4)**2-DPS(1)**2-DPS(2)**2-DPS(3)**2))-DPS(5) + IF(PD.LT.PDM) THEN + PDM=PD + DO 180 J=1,5 + DPC(J)=DPS(J) + 180 CONTINUE + IC1=IC + IC2=I + ENDIF + IC=0 + ELSE + NSIN=NSIN+1 + ENDIF + 190 CONTINUE + IF(PDM.GE.PARJ(32)) GOTO 320 + +C...Fill small-mass system as cluster. + NSAV=N + PECM=SQRT(MAX(0D0,DPC(4)**2-DPC(1)**2-DPC(2)**2-DPC(3)**2)) + K(N+1,1)=11 + K(N+1,2)=91 + K(N+1,3)=IC1 + K(N+1,4)=N+2 + K(N+1,5)=N+3 + P(N+1,1)=DPC(1) + P(N+1,2)=DPC(2) + P(N+1,3)=DPC(3) + P(N+1,4)=DPC(4) + P(N+1,5)=PECM + +C...Form two particles from flavours of lowest-mass system, if feasible. + K(N+2,1)=1 + K(N+3,1)=1 + IF(MSTU(16).NE.2) THEN + K(N+2,3)=N+1 + K(N+3,3)=N+1 + ELSE + K(N+2,3)=IC1 + K(N+3,3)=IC2 + ENDIF + K(N+2,4)=0 + K(N+3,4)=0 + K(N+2,5)=0 + K(N+3,5)=0 + IF(IABS(K(IC1,2)).NE.21) THEN + KC1=LYCOMP(K(IC1,2)) + KC2=LYCOMP(K(IC2,2)) + IF(KC1.EQ.0.OR.KC2.EQ.0) GOTO 320 + KQ1=KCHG(KC1,2)*ISIGN(1,K(IC1,2)) + KQ2=KCHG(KC2,2)*ISIGN(1,K(IC2,2)) + IF(KQ1+KQ2.NE.0) GOTO 320 + 200 CALL LYKFDI(K(IC1,2),0,KFLN,K(N+2,2)) + CALL LYKFDI(K(IC2,2),-KFLN,KFLDMP,K(N+3,2)) + IF(K(N+2,2).EQ.0.OR.K(N+3,2).EQ.0) GOTO 200 + ELSE + IF(IABS(K(IC2,2)).NE.21) GOTO 320 + 210 CALL LYKFDI(1+INT((2.+PARJ(2))*RLY(0)),0,KFLN,KFDMP) + CALL LYKFDI(KFLN,0,KFLM,K(N+2,2)) + CALL LYKFDI(-KFLN,-KFLM,KFLDMP,K(N+3,2)) + IF(K(N+2,2).EQ.0.OR.K(N+3,2).EQ.0) GOTO 210 + ENDIF + P(N+2,5)=UYMASS(K(N+2,2)) + P(N+3,5)=UYMASS(K(N+3,2)) + IF(P(N+2,5)+P(N+3,5)+PARJ(64).GE.PECM.AND.NSIN.EQ.1) GOTO 320 + IF(P(N+2,5)+P(N+3,5)+PARJ(64).GE.PECM) GOTO 260 + +C...Perform two-particle decay of jet system, if possible. + IF(PECM.GE.0.02*DPC(4)) THEN + PA=SQRT((PECM**2-(P(N+2,5)+P(N+3,5))**2)*(PECM**2- + & (P(N+2,5)-P(N+3,5))**2))/(2.*PECM) + UE(3)=2.*RLY(0)-1. + PHI=PARU(2)*RLY(0) + UE(1)=SQRT(1.-UE(3)**2)*COS(PHI) + UE(2)=SQRT(1.-UE(3)**2)*SIN(PHI) + DO 220 J=1,3 + P(N+2,J)=PA*UE(J) + P(N+3,J)=-PA*UE(J) + 220 CONTINUE + P(N+2,4)=SQRT(PA**2+P(N+2,5)**2) + P(N+3,4)=SQRT(PA**2+P(N+3,5)**2) + MSTU(33)=1 + CALL LUDBRB(N+2,N+3,0.,0.,DPC(1)/DPC(4),DPC(2)/DPC(4), + & DPC(3)/DPC(4)) + ELSE + NP=0 + DO 230 I=IC1,IC2 + IF(K(I,1).EQ.1.OR.K(I,1).EQ.2) NP=NP+1 + 230 CONTINUE + HA=P(IC1,4)*P(IC2,4)-P(IC1,1)*P(IC2,1)-P(IC1,2)*P(IC2,2)- + & P(IC1,3)*P(IC2,3) + IF(NP.GE.3.OR.HA.LE.1.25*P(IC1,5)*P(IC2,5)) GOTO 260 + HD1=0.5*(P(N+2,5)**2-P(IC1,5)**2) + HD2=0.5*(P(N+3,5)**2-P(IC2,5)**2) + HR=SQRT(MAX(0.,((HA-HD1-HD2)**2-(P(N+2,5)*P(N+3,5))**2)/ + & (HA**2-(P(IC1,5)*P(IC2,5))**2)))-1. + HC=P(IC1,5)**2+2.*HA+P(IC2,5)**2 + HK1=((P(IC2,5)**2+HA)*HR+HD1-HD2)/HC + HK2=((P(IC1,5)**2+HA)*HR+HD2-HD1)/HC + DO 240 J=1,4 + P(N+2,J)=(1.+HK1)*P(IC1,J)-HK2*P(IC2,J) + P(N+3,J)=(1.+HK2)*P(IC2,J)-HK1*P(IC1,J) + 240 CONTINUE + ENDIF + DO 250 J=1,4 + V(N+1,J)=V(IC1,J) + V(N+2,J)=V(IC1,J) + V(N+3,J)=V(IC2,J) + 250 CONTINUE + V(N+1,5)=0. + V(N+2,5)=0. + V(N+3,5)=0. + N=N+3 + GOTO 300 + +C...Else form one particle from the flavours available, if possible. + 260 K(N+1,5)=N+2 + IF(IABS(K(IC1,2)).GT.100.AND.IABS(K(IC2,2)).GT.100) THEN + GOTO 320 + ELSEIF(IABS(K(IC1,2)).NE.21) THEN + CALL LYKFDI(K(IC1,2),K(IC2,2),KFLDMP,K(N+2,2)) + ELSE + KFLN=1+INT((2.+PARJ(2))*RLY(0)) + CALL LYKFDI(KFLN,-KFLN,KFLDMP,K(N+2,2)) + ENDIF + IF(K(N+2,2).EQ.0) GOTO 260 + P(N+2,5)=UYMASS(K(N+2,2)) + +C...Find parton/particle which combines to largest extra mass. + IR=0 + HA=0. + HSM=0. + DO 280 MCOMB=1,3 + IF(IR.NE.0) GOTO 280 + DO 270 I=MAX(1,IP),N + IF(K(I,1).LE.0.OR.K(I,1).GT.10.OR.(I.GE.IC1.AND.I.LE.IC2 + &.AND.K(I,1).GE.1.AND.K(I,1).LE.2)) GOTO 270 + IF(MCOMB.EQ.1) KCI=LYCOMP(K(I,2)) + IF(MCOMB.EQ.1.AND.KCI.EQ.0) GOTO 270 + IF(MCOMB.EQ.1.AND.KCHG(KCI,2).EQ.0.AND.I.LE.NS) GOTO 270 + IF(MCOMB.EQ.2.AND.IABS(K(I,2)).GT.10.AND.IABS(K(I,2)).LE.100) + &GOTO 270 + HCR=DPC(4)*P(I,4)-DPC(1)*P(I,1)-DPC(2)*P(I,2)-DPC(3)*P(I,3) + HSR=2.*HCR+PECM**2-P(N+2,5)**2-2.*P(N+2,5)*P(I,5) + IF(HSR.GT.HSM) THEN + IR=I + HA=HCR + HSM=HSR + ENDIF + 270 CONTINUE + 280 CONTINUE + +C...Shuffle energy and momentum to put new particle on mass shell. + IF(IR.NE.0) THEN + HB=PECM**2+HA + HC=P(N+2,5)**2+HA + HD=P(IR,5)**2+HA + HK2=0.5*(HB*SQRT(MAX(0.,((HB+HC)**2-4.*(HB+HD)*P(N+2,5)**2)/ + & (HA**2-(PECM*P(IR,5))**2)))-(HB+HC))/(HB+HD) + HK1=(0.5*(P(N+2,5)**2-PECM**2)+HD*HK2)/HB + DO 290 J=1,4 + P(N+2,J)=(1.+HK1)*DPC(J)-HK2*P(IR,J) + P(IR,J)=(1.+HK2)*P(IR,J)-HK1*DPC(J) + V(N+1,J)=V(IC1,J) + V(N+2,J)=V(IC1,J) + 290 CONTINUE + V(N+1,5)=0. + V(N+2,5)=0. + N=N+2 + ELSE + CALL LYERRM(3,'(LYPREP:) no match for collapsing cluster') + RETURN + ENDIF + +C...Mark collapsed system and store daughter pointers. Iterate. + 300 DO 310 I=IC1,IC2 + IF((K(I,1).EQ.1.OR.K(I,1).EQ.2).AND.KCHG(LYCOMP(K(I,2)),2).NE.0) + &THEN + K(I,1)=K(I,1)+10 + IF(MSTU(16).NE.2) THEN + K(I,4)=NSAV+1 + K(I,5)=NSAV+1 + ELSE + K(I,4)=NSAV+2 + K(I,5)=N + ENDIF + ENDIF + 310 CONTINUE + IF(N.LT.MSTU(4)-MSTU(32)-5) GOTO 140 + +C...Check flavours and invariant masses in parton systems. + 320 NP=0 + KFN=0 + KQS=0 + NJU=0 + DO 330 J=1,5 + DPS(J)=0. + 330 CONTINUE + DO 360 I=MAX(1,IP),N + IF(K(I,1).EQ.41) NJU=NJU+1 + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 360 + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0) GOTO 360 + KQ=KCHG(KC,2)*ISIGN(1,K(I,2)) + IF(KQ.EQ.0) GOTO 360 + NP=NP+1 + IF(KQ.NE.2) THEN + KFN=KFN+1 + KQS=KQS+KQ + MSTJ(93)=1 + DPS(5)=DPS(5)+UYMASS(K(I,2)) + ENDIF + DO 340 J=1,4 + DPS(J)=DPS(J)+P(I,J) + 340 CONTINUE + IF(K(I,1).EQ.1) THEN + NFERR=0 + IF(NJU.EQ.0.AND.NP.NE.1) THEN + IF(KFN.EQ.1.OR.KFN.GE.3.OR.KQS.NE.0) NFERR=1 + ELSEIF(NJU.EQ.1) THEN + IF(KFN.NE.3.OR.IABS(KQS).NE.3) NFERR=1 + ELSEIF(NJU.EQ.2) THEN + IF(KFN.NE.4.OR.KQS.NE.0) NFERR=1 + ELSEIF(NJU.GE.3) THEN + NFERR=1 + ENDIF + IF(NFERR.EQ.1) CALL + & LYERRM(2,'(LYPREP:) unphysical flavour combination') + IF(NP.NE.1.AND.DPS(4)**2-DPS(1)**2-DPS(2)**2-DPS(3)**2.LT. + & (0.9*PARJ(32)+DPS(5))**2) CALL LYERRM(3, + & '(LYPREP:) too small mass in jet system') + NP=0 + KFN=0 + KQS=0 + NJU=0 + DO 350 J=1,5 + DPS(J)=0. + 350 CONTINUE + ENDIF + 360 CONTINUE + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYSTRF(IP) +C...Purpose: to handle the fragmentation of an arbitrary colour singlet +C...jet system according to the Lund string fragmentation model. + IMPLICIT DOUBLE PRECISION(D) + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + DIMENSION DPS(5),KFL(3),PMQ(3),PX(3),PY(3),GAM(3),IE(2),PR(2), + &IN(9),DHM(4),DHG(4),DP(5,5),IRANK(2),MJU(4),IJU(3),PJU(5,5), + &TJU(5),KFJH(2),NJS(2),KFJS(2),PJS(4,5),MSTU9T(8),PARU9T(8) + +C...Function: four-product of two vectors. + FOUR(I,J)=P(I,4)*P(J,4)-P(I,1)*P(J,1)-P(I,2)*P(J,2)-P(I,3)*P(J,3) + DFOUR(I,J)=DP(I,4)*DP(J,4)-DP(I,1)*DP(J,1)-DP(I,2)*DP(J,2)- + &DP(I,3)*DP(J,3) + +C...Reset counters. Identify parton system. + MSTJ(91)=0 + NSAV=N + MSTU90=MSTU(90) + NP=0 + KQSUM=0 + DO 100 J=1,5 + DPS(J)=0D0 + 100 CONTINUE + MJU(1)=0 + MJU(2)=0 + I=IP-1 + 110 I=I+1 + IF(I.GT.MIN(N,MSTU(4)-MSTU(32))) THEN + CALL LYERRM(12,'(LYSTRF:) failed to reconstruct jet system') + IF(MSTU(21).GE.1) RETURN + ENDIF + IF(K(I,1).NE.1.AND.K(I,1).NE.2.AND.K(I,1).NE.41) GOTO 110 + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0) GOTO 110 + KQ=KCHG(KC,2)*ISIGN(1,K(I,2)) + IF(KQ.EQ.0) GOTO 110 + IF(N+5*NP+11.GT.MSTU(4)-MSTU(32)-5) THEN + CALL LYERRM(11,'(LYSTRF:) no more memory left in LUJETS') + IF(MSTU(21).GE.1) RETURN + ENDIF + +C...Take copy of partons to be considered. Check flavour sum. + NP=NP+1 + DO 120 J=1,5 + K(N+NP,J)=K(I,J) + P(N+NP,J)=P(I,J) + IF(J.NE.4) DPS(J)=DPS(J)+P(I,J) + 120 CONTINUE + DPS(4)=DPS(4)+SQRT(DBLE(P(I,1))**2+DBLE(P(I,2))**2+ + &DBLE(P(I,3))**2+DBLE(P(I,5))**2) + K(N+NP,3)=I + IF(KQ.NE.2) KQSUM=KQSUM+KQ + IF(K(I,1).EQ.41) THEN + KQSUM=KQSUM+2*KQ + IF(KQSUM.EQ.KQ) MJU(1)=N+NP + IF(KQSUM.NE.KQ) MJU(2)=N+NP + ENDIF + IF(K(I,1).EQ.2.OR.K(I,1).EQ.41) GOTO 110 + IF(KQSUM.NE.0) THEN + CALL LYERRM(12,'(LYSTRF:) unphysical flavour combination') + IF(MSTU(21).GE.1) RETURN + ENDIF + +C...Boost copied system to CM frame (for better numerical precision). + IF(ABS(DPS(3)).LT.0.99D0*DPS(4)) THEN + MBST=0 + MSTU(33)=1 + CALL LUDBRB(N+1,N+NP,0.,0.,-DPS(1)/DPS(4),-DPS(2)/DPS(4), + & -DPS(3)/DPS(4)) + ELSE + MBST=1 + HHBZ=SQRT(MAX(1D-6,DPS(4)+DPS(3))/MAX(1D-6,DPS(4)-DPS(3))) + DO 130 I=N+1,N+NP + HHPMT=P(I,1)**2+P(I,2)**2+P(I,5)**2 + IF(P(I,3).GT.0.) THEN + HHPEZ=(P(I,4)+P(I,3))/HHBZ + P(I,3)=0.5*(HHPEZ-HHPMT/HHPEZ) + P(I,4)=0.5*(HHPEZ+HHPMT/HHPEZ) + ELSE + HHPEZ=(P(I,4)-P(I,3))*HHBZ + P(I,3)=-0.5*(HHPEZ-HHPMT/HHPEZ) + P(I,4)=0.5*(HHPEZ+HHPMT/HHPEZ) + ENDIF + 130 CONTINUE + ENDIF + +C...Search for very nearby partons that may be recombined. + NTRYR=0 + PARU12=PARU(12) + PARU13=PARU(13) + MJU(3)=MJU(1) + MJU(4)=MJU(2) + NR=NP + 140 IF(NR.GE.3) THEN + PDRMIN=2.*PARU12 + DO 150 I=N+1,N+NR + IF(I.EQ.N+NR.AND.IABS(K(N+1,2)).NE.21) GOTO 150 + I1=I+1 + IF(I.EQ.N+NR) I1=N+1 + IF(K(I,1).EQ.41.OR.K(I1,1).EQ.41) GOTO 150 + IF(MJU(1).NE.0.AND.I1.LT.MJU(1).AND.IABS(K(I1,2)).NE.21) + & GOTO 150 + IF(MJU(2).NE.0.AND.I.GT.MJU(2).AND.IABS(K(I,2)).NE.21) GOTO 150 + PAP=SQRT((P(I,1)**2+P(I,2)**2+P(I,3)**2)*(P(I1,1)**2+ + & P(I1,2)**2+P(I1,3)**2)) + PVP=P(I,1)*P(I1,1)+P(I,2)*P(I1,2)+P(I,3)*P(I1,3) + PDR=4.*(PAP-PVP)**2/MAX(1E-6,PARU13**2*PAP+2.*(PAP-PVP)) + IF(PDR.LT.PDRMIN) THEN + IR=I + PDRMIN=PDR + ENDIF + 150 CONTINUE + +C...Recombine very nearby partons to avoid machine precision problems. + IF(PDRMIN.LT.PARU12.AND.IR.EQ.N+NR) THEN + DO 160 J=1,4 + P(N+1,J)=P(N+1,J)+P(N+NR,J) + 160 CONTINUE + P(N+1,5)=SQRT(MAX(0.,P(N+1,4)**2-P(N+1,1)**2-P(N+1,2)**2- + & P(N+1,3)**2)) + NR=NR-1 + GOTO 140 + ELSEIF(PDRMIN.LT.PARU12) THEN + DO 170 J=1,4 + P(IR,J)=P(IR,J)+P(IR+1,J) + 170 CONTINUE + P(IR,5)=SQRT(MAX(0.,P(IR,4)**2-P(IR,1)**2-P(IR,2)**2- + & P(IR,3)**2)) + DO 190 I=IR+1,N+NR-1 + K(I,2)=K(I+1,2) + DO 180 J=1,5 + P(I,J)=P(I+1,J) + 180 CONTINUE + 190 CONTINUE + IF(IR.EQ.N+NR-1) K(IR,2)=K(N+NR,2) + NR=NR-1 + IF(MJU(1).GT.IR) MJU(1)=MJU(1)-1 + IF(MJU(2).GT.IR) MJU(2)=MJU(2)-1 + GOTO 140 + ENDIF + ENDIF + NTRYR=NTRYR+1 + +C...Reset particle counter. Skip ahead if no junctions are present; +C...this is usually the case! + NRS=MAX(5*NR+11,NP) + NTRY=0 + 200 NTRY=NTRY+1 + IF(NTRY.GT.100.AND.NTRYR.LE.4) THEN + PARU12=4.*PARU12 + PARU13=2.*PARU13 + GOTO 140 + ELSEIF(NTRY.GT.100) THEN + CALL LYERRM(14,'(LYSTRF:) caught in infinite loop') + IF(MSTU(21).GE.1) RETURN + ENDIF + I=N+NRS + MSTU(90)=MSTU90 + IF(MJU(1).EQ.0.AND.MJU(2).EQ.0) GOTO 580 + DO 570 JT=1,2 + NJS(JT)=0 + IF(MJU(JT).EQ.0) GOTO 570 + JS=3-2*JT + +C...Find and sum up momentum on three sides of junction. Check flavours. + DO 220 IU=1,3 + IJU(IU)=0 + DO 210 J=1,5 + PJU(IU,J)=0. + 210 CONTINUE + 220 CONTINUE + IU=0 + DO 240 I1=N+1+(JT-1)*(NR-1),N+NR+(JT-1)*(1-NR),JS + IF(K(I1,2).NE.21.AND.IU.LE.2) THEN + IU=IU+1 + IJU(IU)=I1 + ENDIF + DO 230 J=1,4 + PJU(IU,J)=PJU(IU,J)+P(I1,J) + 230 CONTINUE + 240 CONTINUE + DO 250 IU=1,3 + PJU(IU,5)=SQRT(PJU(IU,1)**2+PJU(IU,2)**2+PJU(IU,3)**2) + 250 CONTINUE + IF(K(IJU(3),2)/100.NE.10*K(IJU(1),2)+K(IJU(2),2).AND. + &K(IJU(3),2)/100.NE.10*K(IJU(2),2)+K(IJU(1),2)) THEN + CALL LYERRM(12,'(LYSTRF:) unphysical flavour combination') + IF(MSTU(21).GE.1) RETURN + ENDIF + +C...Calculate (approximate) boost to rest frame of junction. + T12=(PJU(1,1)*PJU(2,1)+PJU(1,2)*PJU(2,2)+PJU(1,3)*PJU(2,3))/ + &(PJU(1,5)*PJU(2,5)) + T13=(PJU(1,1)*PJU(3,1)+PJU(1,2)*PJU(3,2)+PJU(1,3)*PJU(3,3))/ + &(PJU(1,5)*PJU(3,5)) + T23=(PJU(2,1)*PJU(3,1)+PJU(2,2)*PJU(3,2)+PJU(2,3)*PJU(3,3))/ + &(PJU(2,5)*PJU(3,5)) + T11=SQRT((2./3.)*(1.-T12)*(1.-T13)/(1.-T23)) + T22=SQRT((2./3.)*(1.-T12)*(1.-T23)/(1.-T13)) + TSQ=SQRT((2.*T11*T22+T12-1.)*(1.+T12)) + T1F=(TSQ-T22*(1.+T12))/(1.-T12**2) + T2F=(TSQ-T11*(1.+T12))/(1.-T12**2) + DO 260 J=1,3 + TJU(J)=-(T1F*PJU(1,J)/PJU(1,5)+T2F*PJU(2,J)/PJU(2,5)) + 260 CONTINUE + TJU(4)=SQRT(1.+TJU(1)**2+TJU(2)**2+TJU(3)**2) + DO 270 IU=1,3 + PJU(IU,5)=TJU(4)*PJU(IU,4)-TJU(1)*PJU(IU,1)-TJU(2)*PJU(IU,2)- + &TJU(3)*PJU(IU,3) + 270 CONTINUE + +C...Put junction at rest if motion could give inconsistencies. + IF(PJU(1,5)+PJU(2,5).GT.PJU(1,4)+PJU(2,4)) THEN + DO 280 J=1,3 + TJU(J)=0. + 280 CONTINUE + TJU(4)=1. + PJU(1,5)=PJU(1,4) + PJU(2,5)=PJU(2,4) + PJU(3,5)=PJU(3,4) + ENDIF + +C...Start preparing for fragmentation of two strings from junction. + ISTA=I + DO 550 IU=1,2 + NS=JS*(IJU(IU+1)-IJU(IU)) + +C...Junction strings: find longitudinal string directions. + DO 310 IS=1,NS + IS1=IJU(IU)+IS-1 + IS2=IJU(IU)+IS + DO 290 J=1,5 + DP(1,J)=0.5*P(IS1,J) + IF(IS.EQ.1) DP(1,J)=P(IS1,J) + DP(2,J)=0.5*P(IS2,J) + IF(IS.EQ.NS) DP(2,J)=-PJU(IU,J) + 290 CONTINUE + IF(IS.EQ.NS) DP(2,4)=SQRT(PJU(IU,1)**2+PJU(IU,2)**2+PJU(IU,3)**2) + IF(IS.EQ.NS) DP(2,5)=0. + DP(3,5)=DFOUR(1,1) + DP(4,5)=DFOUR(2,2) + DHKC=DFOUR(1,2) + IF(DP(3,5)+2.*DHKC+DP(4,5).LE.0.) THEN + DP(1,4)=SQRT(DP(1,1)**2+DP(1,2)**2+DP(1,3)**2) + DP(2,4)=SQRT(DP(2,1)**2+DP(2,2)**2+DP(2,3)**2) + DP(3,5)=0D0 + DP(4,5)=0D0 + DHKC=DFOUR(1,2) + ENDIF + DHKS=SQRT(DHKC**2-DP(3,5)*DP(4,5)) + DHK1=0.5*((DP(4,5)+DHKC)/DHKS-1.) + DHK2=0.5*((DP(3,5)+DHKC)/DHKS-1.) + IN1=N+NR+4*IS-3 + P(IN1,5)=SQRT(DP(3,5)+2.*DHKC+DP(4,5)) + DO 300 J=1,4 + P(IN1,J)=(1.+DHK1)*DP(1,J)-DHK2*DP(2,J) + P(IN1+1,J)=(1.+DHK2)*DP(2,J)-DHK1*DP(1,J) + 300 CONTINUE + 310 CONTINUE + +C...Junction strings: initialize flavour, momentum and starting pos. + ISAV=I + MSTU91=MSTU(90) + 320 NTRY=NTRY+1 + IF(NTRY.GT.100.AND.NTRYR.LE.4) THEN + PARU12=4.*PARU12 + PARU13=2.*PARU13 + GOTO 140 + ELSEIF(NTRY.GT.100) THEN + CALL LYERRM(14,'(LYSTRF:) caught in infinite loop') + IF(MSTU(21).GE.1) RETURN + ENDIF + I=ISAV + MSTU(90)=MSTU91 + IRANKJ=0 + IE(1)=K(N+1+(JT/2)*(NP-1),3) + IN(4)=N+NR+1 + IN(5)=IN(4)+1 + IN(6)=N+NR+4*NS+1 + DO 340 JQ=1,2 + DO 330 IN1=N+NR+2+JQ,N+NR+4*NS-2+JQ,4 + P(IN1,1)=2-JQ + P(IN1,2)=JQ-1 + P(IN1,3)=1. + 330 CONTINUE + 340 CONTINUE + KFL(1)=K(IJU(IU),2) + PX(1)=0. + PY(1)=0. + GAM(1)=0. + DO 350 J=1,5 + PJU(IU+3,J)=0. + 350 CONTINUE + +C...Junction strings: find initial transverse directions. + DO 360 J=1,4 + DP(1,J)=P(IN(4),J) + DP(2,J)=P(IN(4)+1,J) + DP(3,J)=0. + DP(4,J)=0. + 360 CONTINUE + DP(1,4)=SQRT(DP(1,1)**2+DP(1,2)**2+DP(1,3)**2) + DP(2,4)=SQRT(DP(2,1)**2+DP(2,2)**2+DP(2,3)**2) + DP(5,1)=DP(1,1)/DP(1,4)-DP(2,1)/DP(2,4) + DP(5,2)=DP(1,2)/DP(1,4)-DP(2,2)/DP(2,4) + DP(5,3)=DP(1,3)/DP(1,4)-DP(2,3)/DP(2,4) + IF(DP(5,1)**2.LE.DP(5,2)**2+DP(5,3)**2) DP(3,1)=1. + IF(DP(5,1)**2.GT.DP(5,2)**2+DP(5,3)**2) DP(3,3)=1. + IF(DP(5,2)**2.LE.DP(5,1)**2+DP(5,3)**2) DP(4,2)=1. + IF(DP(5,2)**2.GT.DP(5,1)**2+DP(5,3)**2) DP(4,3)=1. + DHC12=DFOUR(1,2) + DHCX1=DFOUR(3,1)/DHC12 + DHCX2=DFOUR(3,2)/DHC12 + DHCXX=1D0/SQRT(1D0+2D0*DHCX1*DHCX2*DHC12) + DHCY1=DFOUR(4,1)/DHC12 + DHCY2=DFOUR(4,2)/DHC12 + DHCYX=DHCXX*(DHCX1*DHCY2+DHCX2*DHCY1)*DHC12 + DHCYY=1D0/SQRT(1D0+2D0*DHCY1*DHCY2*DHC12-DHCYX**2) + DO 370 J=1,4 + DP(3,J)=DHCXX*(DP(3,J)-DHCX2*DP(1,J)-DHCX1*DP(2,J)) + P(IN(6),J)=DP(3,J) + P(IN(6)+1,J)=DHCYY*(DP(4,J)-DHCY2*DP(1,J)-DHCY1*DP(2,J)- + &DHCYX*DP(3,J)) + 370 CONTINUE + +C...Junction strings: produce new particle, origin. + 380 I=I+1 + IF(2*I-NSAV.GE.MSTU(4)-MSTU(32)-5) THEN + CALL LYERRM(11,'(LYSTRF:) no more memory left in LUJETS') + IF(MSTU(21).GE.1) RETURN + ENDIF + IRANKJ=IRANKJ+1 + K(I,1)=1 + K(I,3)=IE(1) + K(I,4)=0 + K(I,5)=0 + +C...Junction strings: generate flavour, hadron, pT, z and Gamma. + 390 CALL LYKFDI(KFL(1),0,KFL(3),K(I,2)) + IF(K(I,2).EQ.0) GOTO 320 + IF(MSTJ(12).GE.3.AND.IRANKJ.EQ.1.AND.IABS(KFL(1)).LE.10.AND. + &IABS(KFL(3)).GT.10) THEN + IF(RLY(0).GT.PARJ(19)) GOTO 390 + ENDIF + P(I,5)=UYMASS(K(I,2)) + CALL LYPTDI(KFL(1),PX(3),PY(3)) + PR(1)=P(I,5)**2+(PX(1)+PX(3))**2+(PY(1)+PY(3))**2 + CALL LYZDIS(KFL(1),KFL(3),PR(1),Z) + IF(IABS(KFL(1)).GE.4.AND.IABS(KFL(1)).LE.8.AND. + &MSTU(90).LT.8) THEN + MSTU(90)=MSTU(90)+1 + MSTU(90+MSTU(90))=I + PARU(90+MSTU(90))=Z + ENDIF + GAM(3)=(1.-Z)*(GAM(1)+PR(1)/Z) + DO 400 J=1,3 + IN(J)=IN(3+J) + 400 CONTINUE + +C...Junction strings: stepping within or from 'low' string region easy. + IF(IN(1)+1.EQ.IN(2).AND.Z*P(IN(1)+2,3)*P(IN(2)+2,3)* + &P(IN(1),5)**2.GE.PR(1)) THEN + P(IN(1)+2,4)=Z*P(IN(1)+2,3) + P(IN(2)+2,4)=PR(1)/(P(IN(1)+2,4)*P(IN(1),5)**2) + DO 410 J=1,4 + P(I,J)=(PX(1)+PX(3))*P(IN(3),J)+(PY(1)+PY(3))*P(IN(3)+1,J) + 410 CONTINUE + GOTO 500 + ELSEIF(IN(1)+1.EQ.IN(2)) THEN + P(IN(2)+2,4)=P(IN(2)+2,3) + P(IN(2)+2,1)=1. + IN(2)=IN(2)+4 + IF(IN(2).GT.N+NR+4*NS) GOTO 320 + IF(FOUR(IN(1),IN(2)).LE.1E-2) THEN + P(IN(1)+2,4)=P(IN(1)+2,3) + P(IN(1)+2,1)=0. + IN(1)=IN(1)+4 + ENDIF + ENDIF + +C...Junction strings: find new transverse directions. + 420 IF(IN(1).GT.N+NR+4*NS.OR.IN(2).GT.N+NR+4*NS.OR. + &IN(1).GT.IN(2)) GOTO 320 + IF(IN(1).NE.IN(4).OR.IN(2).NE.IN(5)) THEN + DO 430 J=1,4 + DP(1,J)=P(IN(1),J) + DP(2,J)=P(IN(2),J) + DP(3,J)=0. + DP(4,J)=0. + 430 CONTINUE + DP(1,4)=SQRT(DP(1,1)**2+DP(1,2)**2+DP(1,3)**2) + DP(2,4)=SQRT(DP(2,1)**2+DP(2,2)**2+DP(2,3)**2) + DHC12=DFOUR(1,2) + IF(DHC12.LE.1E-2) THEN + P(IN(1)+2,4)=P(IN(1)+2,3) + P(IN(1)+2,1)=0. + IN(1)=IN(1)+4 + GOTO 420 + ENDIF + IN(3)=N+NR+4*NS+5 + DP(5,1)=DP(1,1)/DP(1,4)-DP(2,1)/DP(2,4) + DP(5,2)=DP(1,2)/DP(1,4)-DP(2,2)/DP(2,4) + DP(5,3)=DP(1,3)/DP(1,4)-DP(2,3)/DP(2,4) + IF(DP(5,1)**2.LE.DP(5,2)**2+DP(5,3)**2) DP(3,1)=1. + IF(DP(5,1)**2.GT.DP(5,2)**2+DP(5,3)**2) DP(3,3)=1. + IF(DP(5,2)**2.LE.DP(5,1)**2+DP(5,3)**2) DP(4,2)=1. + IF(DP(5,2)**2.GT.DP(5,1)**2+DP(5,3)**2) DP(4,3)=1. + DHCX1=DFOUR(3,1)/DHC12 + DHCX2=DFOUR(3,2)/DHC12 + DHCXX=1D0/SQRT(1D0+2D0*DHCX1*DHCX2*DHC12) + DHCY1=DFOUR(4,1)/DHC12 + DHCY2=DFOUR(4,2)/DHC12 + DHCYX=DHCXX*(DHCX1*DHCY2+DHCX2*DHCY1)*DHC12 + DHCYY=1D0/SQRT(1D0+2D0*DHCY1*DHCY2*DHC12-DHCYX**2) + DO 440 J=1,4 + DP(3,J)=DHCXX*(DP(3,J)-DHCX2*DP(1,J)-DHCX1*DP(2,J)) + P(IN(3),J)=DP(3,J) + P(IN(3)+1,J)=DHCYY*(DP(4,J)-DHCY2*DP(1,J)-DHCY1*DP(2,J)- + & DHCYX*DP(3,J)) + 440 CONTINUE +C...Express pT with respect to new axes, if sensible. + PXP=-(PX(3)*FOUR(IN(6),IN(3))+PY(3)*FOUR(IN(6)+1,IN(3))) + PYP=-(PX(3)*FOUR(IN(6),IN(3)+1)+PY(3)*FOUR(IN(6)+1,IN(3)+1)) + IF(ABS(PXP**2+PYP**2-PX(3)**2-PY(3)**2).LT.0.01) THEN + PX(3)=PXP + PY(3)=PYP + ENDIF + ENDIF + +C...Junction strings: sum up known four-momentum, coefficients for m2. + DO 470 J=1,4 + DHG(J)=0. + P(I,J)=PX(1)*P(IN(6),J)+PY(1)*P(IN(6)+1,J)+PX(3)*P(IN(3),J)+ + &PY(3)*P(IN(3)+1,J) + DO 450 IN1=IN(4),IN(1)-4,4 + P(I,J)=P(I,J)+P(IN1+2,3)*P(IN1,J) + 450 CONTINUE + DO 460 IN2=IN(5),IN(2)-4,4 + P(I,J)=P(I,J)+P(IN2+2,3)*P(IN2,J) + 460 CONTINUE + 470 CONTINUE + DHM(1)=FOUR(I,I) + DHM(2)=2.*FOUR(I,IN(1)) + DHM(3)=2.*FOUR(I,IN(2)) + DHM(4)=2.*FOUR(IN(1),IN(2)) + +C...Junction strings: find coefficients for Gamma expression. + DO 490 IN2=IN(1)+1,IN(2),4 + DO 480 IN1=IN(1),IN2-1,4 + DHC=2.*FOUR(IN1,IN2) + DHG(1)=DHG(1)+P(IN1+2,1)*P(IN2+2,1)*DHC + IF(IN1.EQ.IN(1)) DHG(2)=DHG(2)-P(IN2+2,1)*DHC + IF(IN2.EQ.IN(2)) DHG(3)=DHG(3)+P(IN1+2,1)*DHC + IF(IN1.EQ.IN(1).AND.IN2.EQ.IN(2)) DHG(4)=DHG(4)-DHC + 480 CONTINUE + 490 CONTINUE + +C...Junction strings: solve (m2, Gamma) equation system for energies. + DHS1=DHM(3)*DHG(4)-DHM(4)*DHG(3) + IF(ABS(DHS1).LT.1E-4) GOTO 320 + DHS2=DHM(4)*(GAM(3)-DHG(1))-DHM(2)*DHG(3)-DHG(4)* + &(P(I,5)**2-DHM(1))+DHG(2)*DHM(3) + DHS3=DHM(2)*(GAM(3)-DHG(1))-DHG(2)*(P(I,5)**2-DHM(1)) + P(IN(2)+2,4)=0.5*(SQRT(MAX(0D0,DHS2**2-4.*DHS1*DHS3))/ABS(DHS1)- + &DHS2/DHS1) + IF(DHM(2)+DHM(4)*P(IN(2)+2,4).LE.0.) GOTO 320 + P(IN(1)+2,4)=(P(I,5)**2-DHM(1)-DHM(3)*P(IN(2)+2,4))/ + &(DHM(2)+DHM(4)*P(IN(2)+2,4)) + +C...Junction strings: step to new region if necessary. + IF(P(IN(2)+2,4).GT.P(IN(2)+2,3)) THEN + P(IN(2)+2,4)=P(IN(2)+2,3) + P(IN(2)+2,1)=1. + IN(2)=IN(2)+4 + IF(IN(2).GT.N+NR+4*NS) GOTO 320 + IF(FOUR(IN(1),IN(2)).LE.1E-2) THEN + P(IN(1)+2,4)=P(IN(1)+2,3) + P(IN(1)+2,1)=0. + IN(1)=IN(1)+4 + ENDIF + GOTO 420 + ELSEIF(P(IN(1)+2,4).GT.P(IN(1)+2,3)) THEN + P(IN(1)+2,4)=P(IN(1)+2,3) + P(IN(1)+2,1)=0. + IN(1)=IN(1)+JS + GOTO 820 + ENDIF + +C...Junction strings: particle four-momentum, remainder, loop back. + 500 DO 510 J=1,4 + P(I,J)=P(I,J)+P(IN(1)+2,4)*P(IN(1),J)+P(IN(2)+2,4)*P(IN(2),J) + PJU(IU+3,J)=PJU(IU+3,J)+P(I,J) + 510 CONTINUE + IF(P(I,4).LT.P(I,5)) GOTO 320 + PJU(IU+3,5)=TJU(4)*PJU(IU+3,4)-TJU(1)*PJU(IU+3,1)- + &TJU(2)*PJU(IU+3,2)-TJU(3)*PJU(IU+3,3) + IF(PJU(IU+3,5).LT.PJU(IU,5)) THEN + KFL(1)=-KFL(3) + PX(1)=-PX(3) + PY(1)=-PY(3) + GAM(1)=GAM(3) + IF(IN(3).NE.IN(6)) THEN + DO 520 J=1,4 + P(IN(6),J)=P(IN(3),J) + P(IN(6)+1,J)=P(IN(3)+1,J) + 520 CONTINUE + ENDIF + DO 530 JQ=1,2 + IN(3+JQ)=IN(JQ) + P(IN(JQ)+2,3)=P(IN(JQ)+2,3)-P(IN(JQ)+2,4) + P(IN(JQ)+2,1)=P(IN(JQ)+2,1)-(3-2*JQ)*P(IN(JQ)+2,4) + 530 CONTINUE + GOTO 380 + ENDIF + +C...Junction strings: save quantities left after each string. + IF(IABS(KFL(1)).GT.10) GOTO 320 + I=I-1 + KFJH(IU)=KFL(1) + DO 540 J=1,4 + PJU(IU+3,J)=PJU(IU+3,J)-P(I+1,J) + 540 CONTINUE + 550 CONTINUE + +C...Junction strings: put together to new effective string endpoint. + NJS(JT)=I-ISTA + KFJS(JT)=K(K(MJU(JT+2),3),2) + KFLS=2*INT(RLY(0)+3.*PARJ(4)/(1.+3.*PARJ(4)))+1 + IF(KFJH(1).EQ.KFJH(2)) KFLS=3 + IF(ISTA.NE.I) KFJS(JT)=ISIGN(1000*MAX(IABS(KFJH(1)), + &IABS(KFJH(2)))+100*MIN(IABS(KFJH(1)),IABS(KFJH(2)))+ + &KFLS,KFJH(1)) + DO 560 J=1,4 + PJS(JT,J)=PJU(1,J)+PJU(2,J)+P(MJU(JT),J) + PJS(JT+2,J)=PJU(4,J)+PJU(5,J) + 560 CONTINUE + PJS(JT,5)=SQRT(MAX(0.,PJS(JT,4)**2-PJS(JT,1)**2-PJS(JT,2)**2- + &PJS(JT,3)**2)) + 570 CONTINUE + +C...Open versus closed strings. Choose breakup region for latter. + 580 IF(MJU(1).NE.0.AND.MJU(2).NE.0) THEN + NS=MJU(2)-MJU(1) + NB=MJU(1)-N + ELSEIF(MJU(1).NE.0) THEN + NS=N+NR-MJU(1) + NB=MJU(1)-N + ELSEIF(MJU(2).NE.0) THEN + NS=MJU(2)-N + NB=1 + ELSEIF(IABS(K(N+1,2)).NE.21) THEN + NS=NR-1 + NB=1 + ELSE + NS=NR+1 + W2SUM=0. + DO 590 IS=1,NR + P(N+NR+IS,1)=0.5*FOUR(N+IS,N+IS+1-NR*(IS/NR)) + W2SUM=W2SUM+P(N+NR+IS,1) + 590 CONTINUE + W2RAN=RLY(0)*W2SUM + NB=0 + 600 NB=NB+1 + W2SUM=W2SUM-P(N+NR+NB,1) + IF(W2SUM.GT.W2RAN.AND.NB.LT.NR) GOTO 600 + ENDIF + +C...Find longitudinal string directions (i.e. lightlike four-vectors). + DO 630 IS=1,NS + IS1=N+IS+NB-1-NR*((IS+NB-2)/NR) + IS2=N+IS+NB-NR*((IS+NB-1)/NR) + DO 610 J=1,5 + DP(1,J)=P(IS1,J) + IF(IABS(K(IS1,2)).EQ.21) DP(1,J)=0.5*DP(1,J) + IF(IS1.EQ.MJU(1)) DP(1,J)=PJS(1,J)-PJS(3,J) + DP(2,J)=P(IS2,J) + IF(IABS(K(IS2,2)).EQ.21) DP(2,J)=0.5*DP(2,J) + IF(IS2.EQ.MJU(2)) DP(2,J)=PJS(2,J)-PJS(4,J) + 610 CONTINUE + DP(3,5)=DFOUR(1,1) + DP(4,5)=DFOUR(2,2) + DHKC=DFOUR(1,2) + IF(DP(3,5)+2.*DHKC+DP(4,5).LE.0.) THEN + DP(3,5)=DP(1,5)**2 + DP(4,5)=DP(2,5)**2 + DP(1,4)=SQRT(DP(1,1)**2+DP(1,2)**2+DP(1,3)**2+DP(1,5)**2) + DP(2,4)=SQRT(DP(2,1)**2+DP(2,2)**2+DP(2,3)**2+DP(2,5)**2) + DHKC=DFOUR(1,2) + ENDIF + DHKS=SQRT(DHKC**2-DP(3,5)*DP(4,5)) + DHK1=0.5*((DP(4,5)+DHKC)/DHKS-1.) + DHK2=0.5*((DP(3,5)+DHKC)/DHKS-1.) + IN1=N+NR+4*IS-3 + P(IN1,5)=SQRT(DP(3,5)+2.*DHKC+DP(4,5)) + DO 620 J=1,4 + P(IN1,J)=(1.+DHK1)*DP(1,J)-DHK2*DP(2,J) + P(IN1+1,J)=(1.+DHK2)*DP(2,J)-DHK1*DP(1,J) + 620 CONTINUE + 630 CONTINUE + +C...Begin initialization: sum up energy, set starting position. + ISAV=I + MSTU91=MSTU(90) + 640 NTRY=NTRY+1 + IF(NTRY.GT.100.AND.NTRYR.LE.4) THEN + PARU12=4.*PARU12 + PARU13=2.*PARU13 + GOTO 140 + ELSEIF(NTRY.GT.100) THEN + CALL LYERRM(14,'(LYSTRF:) caught in infinite loop') + IF(MSTU(21).GE.1) RETURN + ENDIF + I=ISAV + MSTU(90)=MSTU91 + DO 660 J=1,4 + P(N+NRS,J)=0. + DO 650 IS=1,NR + P(N+NRS,J)=P(N+NRS,J)+P(N+IS,J) + 650 CONTINUE + 660 CONTINUE + DO 680 JT=1,2 + IRANK(JT)=0 + IF(MJU(JT).NE.0) IRANK(JT)=NJS(JT) + IF(NS.GT.NR) IRANK(JT)=1 + IE(JT)=K(N+1+(JT/2)*(NP-1),3) + IN(3*JT+1)=N+NR+1+4*(JT/2)*(NS-1) + IN(3*JT+2)=IN(3*JT+1)+1 + IN(3*JT+3)=N+NR+4*NS+2*JT-1 + DO 670 IN1=N+NR+2+JT,N+NR+4*NS-2+JT,4 + P(IN1,1)=2-JT + P(IN1,2)=JT-1 + P(IN1,3)=1. + 670 CONTINUE + 680 CONTINUE + +C...Initialize flavour and pT variables for open string. + IF(NS.LT.NR) THEN + PX(1)=0. + PY(1)=0. + IF(NS.EQ.1.AND.MJU(1)+MJU(2).EQ.0) CALL LYPTDI(0,PX(1),PY(1)) + PX(2)=-PX(1) + PY(2)=-PY(1) + DO 690 JT=1,2 + KFL(JT)=K(IE(JT),2) + IF(MJU(JT).NE.0) KFL(JT)=KFJS(JT) + MSTJ(93)=1 + PMQ(JT)=UYMASS(KFL(JT)) + GAM(JT)=0. + 690 CONTINUE + +C...Closed string: random initial breakup flavour, pT and vertex. + ELSE + KFL(3)=INT(1.+(2.+PARJ(2))*RLY(0))*(-1)**INT(RLY(0)+0.5) + CALL LYKFDI(KFL(3),0,KFL(1),KDUMP) + KFL(2)=-KFL(1) + IF(IABS(KFL(1)).GT.10.AND.RLY(0).GT.0.5) THEN + KFL(2)=-(KFL(1)+ISIGN(10000,KFL(1))) + ELSEIF(IABS(KFL(1)).GT.10) THEN + KFL(1)=-(KFL(2)+ISIGN(10000,KFL(2))) + ENDIF + CALL LYPTDI(KFL(1),PX(1),PY(1)) + PX(2)=-PX(1) + PY(2)=-PY(1) + PR3=MIN(25.,0.1*P(N+NR+1,5)**2) + 700 CALL LYZDIS(KFL(1),KFL(2),PR3,Z) + ZR=PR3/(Z*P(N+NR+1,5)**2) + IF(ZR.GE.1.) GOTO 700 + DO 710 JT=1,2 + MSTJ(93)=1 + PMQ(JT)=UYMASS(KFL(JT)) + GAM(JT)=PR3*(1.-Z)/Z + IN1=N+NR+3+4*(JT/2)*(NS-1) + P(IN1,JT)=1.-Z + P(IN1,3-JT)=JT-1 + P(IN1,3)=(2-JT)*(1.-Z)+(JT-1)*Z + P(IN1+1,JT)=ZR + P(IN1+1,3-JT)=2-JT + P(IN1+1,3)=(2-JT)*(1.-ZR)+(JT-1)*ZR + 710 CONTINUE + ENDIF + +C...Find initial transverse directions (i.e. spacelike four-vectors). + DO 750 JT=1,2 + IF(JT.EQ.1.OR.NS.EQ.NR-1) THEN + IN1=IN(3*JT+1) + IN3=IN(3*JT+3) + DO 720 J=1,4 + DP(1,J)=P(IN1,J) + DP(2,J)=P(IN1+1,J) + DP(3,J)=0. + DP(4,J)=0. + 720 CONTINUE + DP(1,4)=SQRT(DP(1,1)**2+DP(1,2)**2+DP(1,3)**2) + DP(2,4)=SQRT(DP(2,1)**2+DP(2,2)**2+DP(2,3)**2) + DP(5,1)=DP(1,1)/DP(1,4)-DP(2,1)/DP(2,4) + DP(5,2)=DP(1,2)/DP(1,4)-DP(2,2)/DP(2,4) + DP(5,3)=DP(1,3)/DP(1,4)-DP(2,3)/DP(2,4) + IF(DP(5,1)**2.LE.DP(5,2)**2+DP(5,3)**2) DP(3,1)=1. + IF(DP(5,1)**2.GT.DP(5,2)**2+DP(5,3)**2) DP(3,3)=1. + IF(DP(5,2)**2.LE.DP(5,1)**2+DP(5,3)**2) DP(4,2)=1. + IF(DP(5,2)**2.GT.DP(5,1)**2+DP(5,3)**2) DP(4,3)=1. + DHC12=DFOUR(1,2) + DHCX1=DFOUR(3,1)/DHC12 + DHCX2=DFOUR(3,2)/DHC12 + DHCXX=1D0/SQRT(1D0+2D0*DHCX1*DHCX2*DHC12) + DHCY1=DFOUR(4,1)/DHC12 + DHCY2=DFOUR(4,2)/DHC12 + DHCYX=DHCXX*(DHCX1*DHCY2+DHCX2*DHCY1)*DHC12 + DHCYY=1D0/SQRT(1D0+2D0*DHCY1*DHCY2*DHC12-DHCYX**2) + DO 730 J=1,4 + DP(3,J)=DHCXX*(DP(3,J)-DHCX2*DP(1,J)-DHCX1*DP(2,J)) + P(IN3,J)=DP(3,J) + P(IN3+1,J)=DHCYY*(DP(4,J)-DHCY2*DP(1,J)-DHCY1*DP(2,J)- + & DHCYX*DP(3,J)) + 730 CONTINUE + ELSE + DO 740 J=1,4 + P(IN3+2,J)=P(IN3,J) + P(IN3+3,J)=P(IN3+1,J) + 740 CONTINUE + ENDIF + 750 CONTINUE + +C...Remove energy used up in junction string fragmentation. + IF(MJU(1)+MJU(2).GT.0) THEN + DO 770 JT=1,2 + IF(NJS(JT).EQ.0) GOTO 770 + DO 760 J=1,4 + P(N+NRS,J)=P(N+NRS,J)-PJS(JT+2,J) + 760 CONTINUE + 770 CONTINUE + ENDIF + +C...Produce new particle: side, origin. + 780 I=I+1 + IF(2*I-NSAV.GE.MSTU(4)-MSTU(32)-5) THEN + CALL LYERRM(11,'(LYSTRF:) no more memory left in LUJETS') + IF(MSTU(21).GE.1) RETURN + ENDIF + JT=1.5+RLY(0) + IF(IABS(KFL(3-JT)).GT.10) JT=3-JT + IF(IABS(KFL(3-JT)).GE.4.AND.IABS(KFL(3-JT)).LE.8) JT=3-JT + JR=3-JT + JS=3-2*JT + IRANK(JT)=IRANK(JT)+1 + K(I,1)=1 + K(I,3)=IE(JT) + K(I,4)=0 + K(I,5)=0 + +C...Generate flavour, hadron and pT. + 790 CALL LYKFDI(KFL(JT),0,KFL(3),K(I,2)) + IF(K(I,2).EQ.0) GOTO 640 + IF(MSTJ(12).GE.3.AND.IRANK(JT).EQ.1.AND.IABS(KFL(JT)).LE.10.AND. + &IABS(KFL(3)).GT.10) THEN + IF(RLY(0).GT.PARJ(19)) GOTO 790 + ENDIF + P(I,5)=UYMASS(K(I,2)) + CALL LYPTDI(KFL(JT),PX(3),PY(3)) + PR(JT)=P(I,5)**2+(PX(JT)+PX(3))**2+(PY(JT)+PY(3))**2 + +C...Final hadrons for small invariant mass. + MSTJ(93)=1 + PMQ(3)=UYMASS(KFL(3)) + PARJST=PARJ(33) + IF(MSTJ(11).EQ.2) PARJST=PARJ(34) + WMIN=PARJST+PMQ(1)+PMQ(2)+PARJ(36)*PMQ(3) + IF(IABS(KFL(JT)).GT.10.AND.IABS(KFL(3)).GT.10) WMIN= + &WMIN-0.5*PARJ(36)*PMQ(3) + WREM2=FOUR(N+NRS,N+NRS) + IF(WREM2.LT.0.10) GOTO 640 + IF(WREM2.LT.MAX(WMIN*(1.+(2.*RLY(0)-1.)*PARJ(37)), + &PARJ(32)+PMQ(1)+PMQ(2))**2) GOTO 940 + +C...Choose z, which gives Gamma. Shift z for heavy flavours. + CALL LYZDIS(KFL(JT),KFL(3),PR(JT),Z) + IF(IABS(KFL(JT)).GE.4.AND.IABS(KFL(JT)).LE.8.AND. + &MSTU(90).LT.8) THEN + MSTU(90)=MSTU(90)+1 + MSTU(90+MSTU(90))=I + PARU(90+MSTU(90))=Z + ENDIF + KFL1A=IABS(KFL(1)) + KFL2A=IABS(KFL(2)) + IF(MAX(MOD(KFL1A,10),MOD(KFL1A/1000,10),MOD(KFL2A,10), + &MOD(KFL2A/1000,10)).GE.4) THEN + PR(JR)=(PMQ(JR)+PMQ(3))**2+(PX(JR)-PX(3))**2+(PY(JR)-PY(3))**2 + PW12=SQRT(MAX(0.,(WREM2-PR(1)-PR(2))**2-4.*PR(1)*PR(2))) + Z=(WREM2+PR(JT)-PR(JR)+PW12*(2.*Z-1.))/(2.*WREM2) + PR(JR)=(PMQ(JR)+PARJST)**2+(PX(JR)-PX(3))**2+(PY(JR)-PY(3))**2 + IF((1.-Z)*(WREM2-PR(JT)/Z).LT.PR(JR)) GOTO 940 + ENDIF + GAM(3)=(1.-Z)*(GAM(JT)+PR(JT)/Z) + DO 800 J=1,3 + IN(J)=IN(3*JT+J) + 800 CONTINUE + +C...Stepping within or from 'low' string region easy. + IF(IN(1)+1.EQ.IN(2).AND.Z*P(IN(1)+2,3)*P(IN(2)+2,3)* + &P(IN(1),5)**2.GE.PR(JT)) THEN + P(IN(JT)+2,4)=Z*P(IN(JT)+2,3) + P(IN(JR)+2,4)=PR(JT)/(P(IN(JT)+2,4)*P(IN(1),5)**2) + DO 810 J=1,4 + P(I,J)=(PX(JT)+PX(3))*P(IN(3),J)+(PY(JT)+PY(3))*P(IN(3)+1,J) + 810 CONTINUE + GOTO 900 + ELSEIF(IN(1)+1.EQ.IN(2)) THEN + P(IN(JR)+2,4)=P(IN(JR)+2,3) + P(IN(JR)+2,JT)=1. + IN(JR)=IN(JR)+4*JS + IF(JS*IN(JR).GT.JS*IN(4*JR)) GOTO 640 + IF(FOUR(IN(1),IN(2)).LE.1E-2) THEN + P(IN(JT)+2,4)=P(IN(JT)+2,3) + P(IN(JT)+2,JT)=0. + IN(JT)=IN(JT)+4*JS + ENDIF + ENDIF + +C...Find new transverse directions (i.e. spacelike string vectors). + 820 IF(JS*IN(1).GT.JS*IN(3*JR+1).OR.JS*IN(2).GT.JS*IN(3*JR+2).OR. + &IN(1).GT.IN(2)) GOTO 640 + IF(IN(1).NE.IN(3*JT+1).OR.IN(2).NE.IN(3*JT+2)) THEN + DO 830 J=1,4 + DP(1,J)=P(IN(1),J) + DP(2,J)=P(IN(2),J) + DP(3,J)=0. + DP(4,J)=0. + 830 CONTINUE + DP(1,4)=SQRT(DP(1,1)**2+DP(1,2)**2+DP(1,3)**2) + DP(2,4)=SQRT(DP(2,1)**2+DP(2,2)**2+DP(2,3)**2) + DHC12=DFOUR(1,2) + IF(DHC12.LE.1E-2) THEN + P(IN(JT)+2,4)=P(IN(JT)+2,3) + P(IN(JT)+2,JT)=0. + IN(JT)=IN(JT)+4*JS + GOTO 820 + ENDIF + IN(3)=N+NR+4*NS+5 + DP(5,1)=DP(1,1)/DP(1,4)-DP(2,1)/DP(2,4) + DP(5,2)=DP(1,2)/DP(1,4)-DP(2,2)/DP(2,4) + DP(5,3)=DP(1,3)/DP(1,4)-DP(2,3)/DP(2,4) + IF(DP(5,1)**2.LE.DP(5,2)**2+DP(5,3)**2) DP(3,1)=1. + IF(DP(5,1)**2.GT.DP(5,2)**2+DP(5,3)**2) DP(3,3)=1. + IF(DP(5,2)**2.LE.DP(5,1)**2+DP(5,3)**2) DP(4,2)=1. + IF(DP(5,2)**2.GT.DP(5,1)**2+DP(5,3)**2) DP(4,3)=1. + DHCX1=DFOUR(3,1)/DHC12 + DHCX2=DFOUR(3,2)/DHC12 + DHCXX=1D0/SQRT(1D0+2D0*DHCX1*DHCX2*DHC12) + DHCY1=DFOUR(4,1)/DHC12 + DHCY2=DFOUR(4,2)/DHC12 + DHCYX=DHCXX*(DHCX1*DHCY2+DHCX2*DHCY1)*DHC12 + DHCYY=1D0/SQRT(1D0+2D0*DHCY1*DHCY2*DHC12-DHCYX**2) + DO 840 J=1,4 + DP(3,J)=DHCXX*(DP(3,J)-DHCX2*DP(1,J)-DHCX1*DP(2,J)) + P(IN(3),J)=DP(3,J) + P(IN(3)+1,J)=DHCYY*(DP(4,J)-DHCY2*DP(1,J)-DHCY1*DP(2,J)- + & DHCYX*DP(3,J)) + 840 CONTINUE +C...Express pT with respect to new axes, if sensible. + PXP=-(PX(3)*FOUR(IN(3*JT+3),IN(3))+PY(3)* + & FOUR(IN(3*JT+3)+1,IN(3))) + PYP=-(PX(3)*FOUR(IN(3*JT+3),IN(3)+1)+PY(3)* + & FOUR(IN(3*JT+3)+1,IN(3)+1)) + IF(ABS(PXP**2+PYP**2-PX(3)**2-PY(3)**2).LT.0.01) THEN + PX(3)=PXP + PY(3)=PYP + ENDIF + ENDIF + +C...Sum up known four-momentum. Gives coefficients for m2 expression. + DO 870 J=1,4 + DHG(J)=0. + P(I,J)=PX(JT)*P(IN(3*JT+3),J)+PY(JT)*P(IN(3*JT+3)+1,J)+ + &PX(3)*P(IN(3),J)+PY(3)*P(IN(3)+1,J) + DO 850 IN1=IN(3*JT+1),IN(1)-4*JS,4*JS + P(I,J)=P(I,J)+P(IN1+2,3)*P(IN1,J) + 850 CONTINUE + DO 860 IN2=IN(3*JT+2),IN(2)-4*JS,4*JS + P(I,J)=P(I,J)+P(IN2+2,3)*P(IN2,J) + 860 CONTINUE + 870 CONTINUE + DHM(1)=FOUR(I,I) + DHM(2)=2.*FOUR(I,IN(1)) + DHM(3)=2.*FOUR(I,IN(2)) + DHM(4)=2.*FOUR(IN(1),IN(2)) + +C...Find coefficients for Gamma expression. + DO 890 IN2=IN(1)+1,IN(2),4 + DO 880 IN1=IN(1),IN2-1,4 + DHC=2.*FOUR(IN1,IN2) + DHG(1)=DHG(1)+P(IN1+2,JT)*P(IN2+2,JT)*DHC + IF(IN1.EQ.IN(1)) DHG(2)=DHG(2)-JS*P(IN2+2,JT)*DHC + IF(IN2.EQ.IN(2)) DHG(3)=DHG(3)+JS*P(IN1+2,JT)*DHC + IF(IN1.EQ.IN(1).AND.IN2.EQ.IN(2)) DHG(4)=DHG(4)-DHC + 880 CONTINUE + 890 CONTINUE + +C...Solve (m2, Gamma) equation system for energies taken. + DHS1=DHM(JR+1)*DHG(4)-DHM(4)*DHG(JR+1) + IF(ABS(DHS1).LT.1E-4) GOTO 640 + DHS2=DHM(4)*(GAM(3)-DHG(1))-DHM(JT+1)*DHG(JR+1)-DHG(4)* + &(P(I,5)**2-DHM(1))+DHG(JT+1)*DHM(JR+1) + DHS3=DHM(JT+1)*(GAM(3)-DHG(1))-DHG(JT+1)*(P(I,5)**2-DHM(1)) + P(IN(JR)+2,4)=0.5*(SQRT(MAX(0D0,DHS2**2-4.*DHS1*DHS3))/ABS(DHS1)- + &DHS2/DHS1) + IF(DHM(JT+1)+DHM(4)*P(IN(JR)+2,4).LE.0.) GOTO 640 + P(IN(JT)+2,4)=(P(I,5)**2-DHM(1)-DHM(JR+1)*P(IN(JR)+2,4))/ + &(DHM(JT+1)+DHM(4)*P(IN(JR)+2,4)) + +C...Step to new region if necessary. + IF(P(IN(JR)+2,4).GT.P(IN(JR)+2,3)) THEN + P(IN(JR)+2,4)=P(IN(JR)+2,3) + P(IN(JR)+2,JT)=1. + IN(JR)=IN(JR)+4*JS + IF(JS*IN(JR).GT.JS*IN(4*JR)) GOTO 640 + IF(FOUR(IN(1),IN(2)).LE.1E-2) THEN + P(IN(JT)+2,4)=P(IN(JT)+2,3) + P(IN(JT)+2,JT)=0. + IN(JT)=IN(JT)+4*JS + ENDIF + GOTO 820 + ELSEIF(P(IN(JT)+2,4).GT.P(IN(JT)+2,3)) THEN + P(IN(JT)+2,4)=P(IN(JT)+2,3) + P(IN(JT)+2,JT)=0. + IN(JT)=IN(JT)+4*JS + GOTO 820 + ENDIF + +C...Four-momentum of particle. Remaining quantities. Loop back. + 900 DO 910 J=1,4 + P(I,J)=P(I,J)+P(IN(1)+2,4)*P(IN(1),J)+P(IN(2)+2,4)*P(IN(2),J) + P(N+NRS,J)=P(N+NRS,J)-P(I,J) + 910 CONTINUE + IF(P(I,4).LT.P(I,5)) GOTO 640 + KFL(JT)=-KFL(3) + PMQ(JT)=PMQ(3) + PX(JT)=-PX(3) + PY(JT)=-PY(3) + GAM(JT)=GAM(3) + IF(IN(3).NE.IN(3*JT+3)) THEN + DO 920 J=1,4 + P(IN(3*JT+3),J)=P(IN(3),J) + P(IN(3*JT+3)+1,J)=P(IN(3)+1,J) + 920 CONTINUE + ENDIF + DO 930 JQ=1,2 + IN(3*JT+JQ)=IN(JQ) + P(IN(JQ)+2,3)=P(IN(JQ)+2,3)-P(IN(JQ)+2,4) + P(IN(JQ)+2,JT)=P(IN(JQ)+2,JT)-JS*(3-2*JQ)*P(IN(JQ)+2,4) + 930 CONTINUE + GOTO 780 + +C...Final hadron: side, flavour, hadron, mass. + 940 I=I+1 + K(I,1)=1 + K(I,3)=IE(JR) + K(I,4)=0 + K(I,5)=0 + CALL LYKFDI(KFL(JR),-KFL(3),KFLDMP,K(I,2)) + IF(K(I,2).EQ.0) GOTO 640 + P(I,5)=UYMASS(K(I,2)) + PR(JR)=P(I,5)**2+(PX(JR)-PX(3))**2+(PY(JR)-PY(3))**2 + +C...Final two hadrons: find common setup of four-vectors. + JQ=1 + IF(P(IN(4)+2,3)*P(IN(5)+2,3)*FOUR(IN(4),IN(5)).LT.P(IN(7),3)* + &P(IN(8),3)*FOUR(IN(7),IN(8))) JQ=2 + DHC12=FOUR(IN(3*JQ+1),IN(3*JQ+2)) + DHR1=FOUR(N+NRS,IN(3*JQ+2))/DHC12 + DHR2=FOUR(N+NRS,IN(3*JQ+1))/DHC12 + IF(IN(4).NE.IN(7).OR.IN(5).NE.IN(8)) THEN + PX(3-JQ)=-FOUR(N+NRS,IN(3*JQ+3))-PX(JQ) + PY(3-JQ)=-FOUR(N+NRS,IN(3*JQ+3)+1)-PY(JQ) + PR(3-JQ)=P(I+(JT+JQ-3)**2-1,5)**2+(PX(3-JQ)+(2*JQ-3)*JS* + & PX(3))**2+(PY(3-JQ)+(2*JQ-3)*JS*PY(3))**2 + ENDIF + +C...Solve kinematics for final two hadrons, if possible. + WREM2=WREM2+(PX(1)+PX(2))**2+(PY(1)+PY(2))**2 + FD=(SQRT(PR(1))+SQRT(PR(2)))/SQRT(WREM2) + IF(MJU(1)+MJU(2).NE.0.AND.I.EQ.ISAV+2.AND.FD.GE.1.) GOTO 200 + IF(FD.GE.1.) GOTO 640 + FA=WREM2+PR(JT)-PR(JR) + IF(MSTJ(11).NE.2) PREV=0.5*EXP(MAX(-50.,LOG(FD)*PARJ(38)* + &(PR(1)+PR(2))**2)) + IF(MSTJ(11).EQ.2) PREV=0.5*FD**PARJ(39) + FB=SIGN(SQRT(MAX(0.,FA**2-4.*WREM2*PR(JT))),JS*(RLY(0)-PREV)) + KFL1A=IABS(KFL(1)) + KFL2A=IABS(KFL(2)) + IF(MAX(MOD(KFL1A,10),MOD(KFL1A/1000,10),MOD(KFL2A,10), + &MOD(KFL2A/1000,10)).GE.6) FB=SIGN(SQRT(MAX(0.,FA**2- + &4.*WREM2*PR(JT))),FLOAT(JS)) + DO 950 J=1,4 + P(I-1,J)=(PX(JT)+PX(3))*P(IN(3*JQ+3),J)+(PY(JT)+PY(3))* + &P(IN(3*JQ+3)+1,J)+0.5*(DHR1*(FA+FB)*P(IN(3*JQ+1),J)+ + &DHR2*(FA-FB)*P(IN(3*JQ+2),J))/WREM2 + P(I,J)=P(N+NRS,J)-P(I-1,J) + 950 CONTINUE + IF(P(I-1,4).LT.P(I-1,5).OR.P(I,4).LT.P(I,5)) GOTO 640 + +C...Mark jets as fragmented and give daughter pointers. + N=I-NRS+1 + DO 960 I=NSAV+1,NSAV+NP + IM=K(I,3) + K(IM,1)=K(IM,1)+10 + IF(MSTU(16).NE.2) THEN + K(IM,4)=NSAV+1 + K(IM,5)=NSAV+1 + ELSE + K(IM,4)=NSAV+2 + K(IM,5)=N + ENDIF + 960 CONTINUE + +C...Document string system. Move up particles. + NSAV=NSAV+1 + K(NSAV,1)=11 + K(NSAV,2)=92 + K(NSAV,3)=IP + K(NSAV,4)=NSAV+1 + K(NSAV,5)=N + DO 970 J=1,4 + P(NSAV,J)=DPS(J) + V(NSAV,J)=V(IP,J) + 970 CONTINUE + P(NSAV,5)=SQRT(MAX(0D0,DPS(4)**2-DPS(1)**2-DPS(2)**2-DPS(3)**2)) + V(NSAV,5)=0. + DO 990 I=NSAV+1,N + DO 980 J=1,5 + K(I,J)=K(I+NRS-1,J) + P(I,J)=P(I+NRS-1,J) + V(I,J)=0. + 980 CONTINUE + 990 CONTINUE + MSTU91=MSTU(90) + DO 1000 IZ=MSTU90+1,MSTU91 + MSTU9T(IZ)=MSTU(90+IZ)-NRS+1-NSAV+N + PARU9T(IZ)=PARU(90+IZ) + 1000 CONTINUE + MSTU(90)=MSTU90 + +C...Order particles in rank along the chain. Update mother pointer. + DO 1020 I=NSAV+1,N + DO 1010 J=1,5 + K(I-NSAV+N,J)=K(I,J) + P(I-NSAV+N,J)=P(I,J) + 1010 CONTINUE + 1020 CONTINUE + I1=NSAV + DO 1050 I=N+1,2*N-NSAV + IF(K(I,3).NE.IE(1)) GOTO 1050 + I1=I1+1 + DO 1030 J=1,5 + K(I1,J)=K(I,J) + P(I1,J)=P(I,J) + 1030 CONTINUE + IF(MSTU(16).NE.2) K(I1,3)=NSAV + DO 1040 IZ=MSTU90+1,MSTU91 + IF(MSTU9T(IZ).EQ.I) THEN + MSTU(90)=MSTU(90)+1 + MSTU(90+MSTU(90))=I1 + PARU(90+MSTU(90))=PARU9T(IZ) + ENDIF + 1040 CONTINUE + 1050 CONTINUE + DO 1080 I=2*N-NSAV,N+1,-1 + IF(K(I,3).EQ.IE(1)) GOTO 1080 + I1=I1+1 + DO 1060 J=1,5 + K(I1,J)=K(I,J) + P(I1,J)=P(I,J) + 1060 CONTINUE + IF(MSTU(16).NE.2) K(I1,3)=NSAV + DO 1070 IZ=MSTU90+1,MSTU91 + IF(MSTU9T(IZ).EQ.I) THEN + MSTU(90)=MSTU(90)+1 + MSTU(90+MSTU(90))=I1 + PARU(90+MSTU(90))=PARU9T(IZ) + ENDIF + 1070 CONTINUE + 1080 CONTINUE + +C...Boost back particle system. Set production vertices. + IF(MBST.EQ.0) THEN + MSTU(33)=1 + CALL LUDBRB(NSAV+1,N,0.,0.,DPS(1)/DPS(4),DPS(2)/DPS(4), + & DPS(3)/DPS(4)) + ELSE + DO 1090 I=NSAV+1,N + HHPMT=P(I,1)**2+P(I,2)**2+P(I,5)**2 + IF(P(I,3).GT.0.) THEN + HHPEZ=(P(I,4)+P(I,3))*HHBZ + P(I,3)=0.5*(HHPEZ-HHPMT/HHPEZ) + P(I,4)=0.5*(HHPEZ+HHPMT/HHPEZ) + ELSE + HHPEZ=(P(I,4)-P(I,3))/HHBZ + P(I,3)=-0.5*(HHPEZ-HHPMT/HHPEZ) + P(I,4)=0.5*(HHPEZ+HHPMT/HHPEZ) + ENDIF + 1090 CONTINUE + ENDIF + DO 1110 I=NSAV+1,N + DO 1100 J=1,4 + V(I,J)=V(IP,J) + 1100 CONTINUE + 1110 CONTINUE + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYINDF(IP) + +C...Purpose: to handle the fragmentation of a jet system (or a single +C...jet) according to independent fragmentation models. + IMPLICIT DOUBLE PRECISION(D) + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + DIMENSION DPS(5),PSI(4),NFI(3),NFL(3),IFET(3),KFLF(3), + &KFLO(2),PXO(2),PYO(2),WO(2) + +C...Reset counters. Identify parton system and take copy. Check flavour. + NSAV=N + MSTU90=MSTU(90) + NJET=0 + KQSUM=0 + DO 100 J=1,5 + DPS(J)=0. + 100 CONTINUE + I=IP-1 + 110 I=I+1 + IF(I.GT.MIN(N,MSTU(4)-MSTU(32))) THEN + CALL LYERRM(12,'(LYINDF:) failed to reconstruct jet system') + IF(MSTU(21).GE.1) RETURN + ENDIF + IF(K(I,1).NE.1.AND.K(I,1).NE.2) GOTO 110 + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0) GOTO 110 + KQ=KCHG(KC,2)*ISIGN(1,K(I,2)) + IF(KQ.EQ.0) GOTO 110 + NJET=NJET+1 + IF(KQ.NE.2) KQSUM=KQSUM+KQ + DO 120 J=1,5 + K(NSAV+NJET,J)=K(I,J) + P(NSAV+NJET,J)=P(I,J) + DPS(J)=DPS(J)+P(I,J) + 120 CONTINUE + K(NSAV+NJET,3)=I + IF(K(I,1).EQ.2.OR.(MSTJ(3).LE.5.AND.N.GT.I.AND. + &K(I+1,1).EQ.2)) GOTO 110 + IF(NJET.NE.1.AND.KQSUM.NE.0) THEN + CALL LYERRM(12,'(LYINDF:) unphysical flavour combination') + IF(MSTU(21).GE.1) RETURN + ENDIF + +C...Boost copied system to CM frame. Find CM energy and sum flavours. + IF(NJET.NE.1) THEN + MSTU(33)=1 + CALL LUDBRB(NSAV+1,NSAV+NJET,0.,0.,-DPS(1)/DPS(4), + & -DPS(2)/DPS(4),-DPS(3)/DPS(4)) + ENDIF + PECM=0. + DO 130 J=1,3 + NFI(J)=0 + 130 CONTINUE + DO 140 I=NSAV+1,NSAV+NJET + PECM=PECM+P(I,4) + KFA=IABS(K(I,2)) + IF(KFA.LE.3) THEN + NFI(KFA)=NFI(KFA)+ISIGN(1,K(I,2)) + ELSEIF(KFA.GT.1000) THEN + KFLA=MOD(KFA/1000,10) + KFLB=MOD(KFA/100,10) + IF(KFLA.LE.3) NFI(KFLA)=NFI(KFLA)+ISIGN(1,K(I,2)) + IF(KFLB.LE.3) NFI(KFLB)=NFI(KFLB)+ISIGN(1,K(I,2)) + ENDIF + 140 CONTINUE + +C...Loop over attempts made. Reset counters. + NTRY=0 + 150 NTRY=NTRY+1 + IF(NTRY.GT.200) THEN + CALL LYERRM(14,'(LYINDF:) caught in infinite loop') + IF(MSTU(21).GE.1) RETURN + ENDIF + N=NSAV+NJET + MSTU(90)=MSTU90 + DO 160 J=1,3 + NFL(J)=NFI(J) + IFET(J)=0 + KFLF(J)=0 + 160 CONTINUE + +C...Loop over jets to be fragmented. + DO 230 IP1=NSAV+1,NSAV+NJET + MSTJ(91)=0 + NSAV1=N + MSTU91=MSTU(90) + +C...Initial flavour and momentum values. Jet along +z axis. + KFLH=IABS(K(IP1,2)) + IF(KFLH.GT.10) KFLH=MOD(KFLH/1000,10) + KFLO(2)=0 + WF=P(IP1,4)+SQRT(P(IP1,1)**2+P(IP1,2)**2+P(IP1,3)**2) + +C...Initial values for quark or diquark jet. + 170 IF(IABS(K(IP1,2)).NE.21) THEN + NSTR=1 + KFLO(1)=K(IP1,2) + CALL LYPTDI(0,PXO(1),PYO(1)) + WO(1)=WF + +C...Initial values for gluon treated like random quark jet. + ELSEIF(MSTJ(2).LE.2) THEN + NSTR=1 + IF(MSTJ(2).EQ.2) MSTJ(91)=1 + KFLO(1)=INT(1.+(2.+PARJ(2))*RLY(0))*(-1)**INT(RLY(0)+0.5) + CALL LYPTDI(0,PXO(1),PYO(1)) + WO(1)=WF + +C...Initial values for gluon treated like quark-antiquark jet pair, +C...sharing energy according to Altarelli-Parisi splitting function. + ELSE + NSTR=2 + IF(MSTJ(2).EQ.4) MSTJ(91)=1 + KFLO(1)=INT(1.+(2.+PARJ(2))*RLY(0))*(-1)**INT(RLY(0)+0.5) + KFLO(2)=-KFLO(1) + CALL LYPTDI(0,PXO(1),PYO(1)) + PXO(2)=-PXO(1) + PYO(2)=-PYO(1) + WO(1)=WF*RLY(0)**(1./3.) + WO(2)=WF-WO(1) + ENDIF + +C...Initial values for rank, flavour, pT and W+. + DO 220 ISTR=1,NSTR + 180 I=N + MSTU(90)=MSTU91 + IRANK=0 + KFL1=KFLO(ISTR) + PX1=PXO(ISTR) + PY1=PYO(ISTR) + W=WO(ISTR) + +C...New hadron. Generate flavour and hadron species. + 190 I=I+1 + IF(I.GE.MSTU(4)-MSTU(32)-NJET-5) THEN + CALL LYERRM(11,'(LYINDF:) no more memory left in LUJETS') + IF(MSTU(21).GE.1) RETURN + ENDIF + IRANK=IRANK+1 + K(I,1)=1 + K(I,3)=IP1 + K(I,4)=0 + K(I,5)=0 + 200 CALL LYKFDI(KFL1,0,KFL2,K(I,2)) + IF(K(I,2).EQ.0) GOTO 180 + IF(MSTJ(12).GE.3.AND.IRANK.EQ.1.AND.IABS(KFL1).LE.10.AND. + &IABS(KFL2).GT.10) THEN + IF(RLY(0).GT.PARJ(19)) GOTO 200 + ENDIF + +C...Find hadron mass. Generate four-momentum. + P(I,5)=UYMASS(K(I,2)) + CALL LYPTDI(KFL1,PX2,PY2) + P(I,1)=PX1+PX2 + P(I,2)=PY1+PY2 + PR=P(I,5)**2+P(I,1)**2+P(I,2)**2 + CALL LYZDIS(KFL1,KFL2,PR,Z) + MZSAV=0 + IF(IABS(KFL1).GE.4.AND.IABS(KFL1).LE.8.AND.MSTU(90).LT.8) THEN + MZSAV=1 + MSTU(90)=MSTU(90)+1 + MSTU(90+MSTU(90))=I + PARU(90+MSTU(90))=Z + ENDIF + P(I,3)=0.5*(Z*W-PR/MAX(1E-4,Z*W)) + P(I,4)=0.5*(Z*W+PR/MAX(1E-4,Z*W)) + IF(MSTJ(3).GE.1.AND.IRANK.EQ.1.AND.KFLH.GE.4.AND. + &P(I,3).LE.0.001) THEN + IF(W.GE.P(I,5)+0.5*PARJ(32)) GOTO 180 + P(I,3)=0.0001 + P(I,4)=SQRT(PR) + Z=P(I,4)/W + ENDIF + +C...Remaining flavour and momentum. + KFL1=-KFL2 + PX1=-PX2 + PY1=-PY2 + W=(1.-Z)*W + DO 210 J=1,5 + V(I,J)=0. + 210 CONTINUE + +C...Check if pL acceptable. Go back for new hadron if enough energy. + IF(MSTJ(3).GE.0.AND.P(I,3).LT.0.) THEN + I=I-1 + IF(MZSAV.EQ.1) MSTU(90)=MSTU(90)-1 + ENDIF + IF(W.GT.PARJ(31)) GOTO 190 + N=I + 220 CONTINUE + IF(MOD(MSTJ(3),5).EQ.4.AND.N.EQ.NSAV1) WF=WF+0.1*PARJ(32) + IF(MOD(MSTJ(3),5).EQ.4.AND.N.EQ.NSAV1) GOTO 170 + +C...Rotate jet to new direction. + THE=UYANGL(P(IP1,3),SQRT(P(IP1,1)**2+P(IP1,2)**2)) + PHI=UYANGL(P(IP1,1),P(IP1,2)) + MSTU(33)=1 + CALL LUDBRB(NSAV1+1,N,THE,PHI,0D0,0D0,0D0) + K(K(IP1,3),4)=NSAV1+1 + K(K(IP1,3),5)=N + +C...End of jet generation loop. Skip conservation in some cases. + 230 CONTINUE + IF(NJET.EQ.1.OR.MSTJ(3).LE.0) GOTO 490 + IF(MOD(MSTJ(3),5).NE.0.AND.N-NSAV-NJET.LT.2) GOTO 150 + +C...Subtract off produced hadron flavours, finished if zero. + DO 240 I=NSAV+NJET+1,N + KFA=IABS(K(I,2)) + KFLA=MOD(KFA/1000,10) + KFLB=MOD(KFA/100,10) + KFLC=MOD(KFA/10,10) + IF(KFLA.EQ.0) THEN + IF(KFLB.LE.3) NFL(KFLB)=NFL(KFLB)-ISIGN(1,K(I,2))*(-1)**KFLB + IF(KFLC.LE.3) NFL(KFLC)=NFL(KFLC)+ISIGN(1,K(I,2))*(-1)**KFLB + ELSE + IF(KFLA.LE.3) NFL(KFLA)=NFL(KFLA)-ISIGN(1,K(I,2)) + IF(KFLB.LE.3) NFL(KFLB)=NFL(KFLB)-ISIGN(1,K(I,2)) + IF(KFLC.LE.3) NFL(KFLC)=NFL(KFLC)-ISIGN(1,K(I,2)) + ENDIF + 240 CONTINUE + NREQ=(IABS(NFL(1))+IABS(NFL(2))+IABS(NFL(3))-IABS(NFL(1)+ + &NFL(2)+NFL(3)))/2+IABS(NFL(1)+NFL(2)+NFL(3))/3 + IF(NREQ.EQ.0) GOTO 320 + +C...Take away flavour of low-momentum particles until enough freedom. + NREM=0 + 250 IREM=0 + P2MIN=PECM**2 + DO 260 I=NSAV+NJET+1,N + P2=P(I,1)**2+P(I,2)**2+P(I,3)**2 + IF(K(I,1).EQ.1.AND.P2.LT.P2MIN) IREM=I + IF(K(I,1).EQ.1.AND.P2.LT.P2MIN) P2MIN=P2 + 260 CONTINUE + IF(IREM.EQ.0) GOTO 150 + K(IREM,1)=7 + KFA=IABS(K(IREM,2)) + KFLA=MOD(KFA/1000,10) + KFLB=MOD(KFA/100,10) + KFLC=MOD(KFA/10,10) + IF(KFLA.GE.4.OR.KFLB.GE.4) K(IREM,1)=8 + IF(K(IREM,1).EQ.8) GOTO 250 + IF(KFLA.EQ.0) THEN + ISGN=ISIGN(1,K(IREM,2))*(-1)**KFLB + IF(KFLB.LE.3) NFL(KFLB)=NFL(KFLB)+ISGN + IF(KFLC.LE.3) NFL(KFLC)=NFL(KFLC)-ISGN + ELSE + IF(KFLA.LE.3) NFL(KFLA)=NFL(KFLA)+ISIGN(1,K(IREM,2)) + IF(KFLB.LE.3) NFL(KFLB)=NFL(KFLB)+ISIGN(1,K(IREM,2)) + IF(KFLC.LE.3) NFL(KFLC)=NFL(KFLC)+ISIGN(1,K(IREM,2)) + ENDIF + NREM=NREM+1 + NREQ=(IABS(NFL(1))+IABS(NFL(2))+IABS(NFL(3))-IABS(NFL(1)+ + &NFL(2)+NFL(3)))/2+IABS(NFL(1)+NFL(2)+NFL(3))/3 + IF(NREQ.GT.NREM) GOTO 250 + DO 270 I=NSAV+NJET+1,N + IF(K(I,1).EQ.8) K(I,1)=1 + 270 CONTINUE + +C...Find combination of existing and new flavours for hadron. + 280 NFET=2 + IF(NFL(1)+NFL(2)+NFL(3).NE.0) NFET=3 + IF(NREQ.LT.NREM) NFET=1 + IF(IABS(NFL(1))+IABS(NFL(2))+IABS(NFL(3)).EQ.0) NFET=0 + DO 290 J=1,NFET + IFET(J)=1+(IABS(NFL(1))+IABS(NFL(2))+IABS(NFL(3)))*RLY(0) + KFLF(J)=ISIGN(1,NFL(1)) + IF(IFET(J).GT.IABS(NFL(1))) KFLF(J)=ISIGN(2,NFL(2)) + IF(IFET(J).GT.IABS(NFL(1))+IABS(NFL(2))) KFLF(J)=ISIGN(3,NFL(3)) + 290 CONTINUE + IF(NFET.EQ.2.AND.(IFET(1).EQ.IFET(2).OR.KFLF(1)*KFLF(2).GT.0)) + &GOTO 280 + IF(NFET.EQ.3.AND.(IFET(1).EQ.IFET(2).OR.IFET(1).EQ.IFET(3).OR. + &IFET(2).EQ.IFET(3).OR.KFLF(1)*KFLF(2).LT.0.OR.KFLF(1)*KFLF(3) + &.LT.0.OR.KFLF(1)*(NFL(1)+NFL(2)+NFL(3)).LT.0)) GOTO 280 + IF(NFET.EQ.0) KFLF(1)=1+INT((2.+PARJ(2))*RLY(0)) + IF(NFET.EQ.0) KFLF(2)=-KFLF(1) + IF(NFET.EQ.1) KFLF(2)=ISIGN(1+INT((2.+PARJ(2))*RLY(0)),-KFLF(1)) + IF(NFET.LE.2) KFLF(3)=0 + IF(KFLF(3).NE.0) THEN + KFLFC=ISIGN(1000*MAX(IABS(KFLF(1)),IABS(KFLF(3)))+ + & 100*MIN(IABS(KFLF(1)),IABS(KFLF(3)))+1,KFLF(1)) + IF(KFLF(1).EQ.KFLF(3).OR.(1.+3.*PARJ(4))*RLY(0).GT.1.) + & KFLFC=KFLFC+ISIGN(2,KFLFC) + ELSE + KFLFC=KFLF(1) + ENDIF + CALL LYKFDI(KFLFC,KFLF(2),KFLDMP,KF) + IF(KF.EQ.0) GOTO 280 + DO 300 J=1,MAX(2,NFET) + NFL(IABS(KFLF(J)))=NFL(IABS(KFLF(J)))-ISIGN(1,KFLF(J)) + 300 CONTINUE + +C...Store hadron at random among free positions. + NPOS=MIN(1+INT(RLY(0)*NREM),NREM) + DO 310 I=NSAV+NJET+1,N + IF(K(I,1).EQ.7) NPOS=NPOS-1 + IF(K(I,1).EQ.1.OR.NPOS.NE.0) GOTO 310 + K(I,1)=1 + K(I,2)=KF + P(I,5)=UYMASS(K(I,2)) + P(I,4)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2+P(I,5)**2) + 310 CONTINUE + NREM=NREM-1 + NREQ=(IABS(NFL(1))+IABS(NFL(2))+IABS(NFL(3))-IABS(NFL(1)+ + &NFL(2)+NFL(3)))/2+IABS(NFL(1)+NFL(2)+NFL(3))/3 + IF(NREM.GT.0) GOTO 280 + +C...Compensate for missing momentum in global scheme (3 options). + 320 IF(MOD(MSTJ(3),5).NE.0.AND.MOD(MSTJ(3),5).NE.4) THEN + DO 340 J=1,3 + PSI(J)=0. + DO 330 I=NSAV+NJET+1,N + PSI(J)=PSI(J)+P(I,J) + 330 CONTINUE + 340 CONTINUE + PSI(4)=PSI(1)**2+PSI(2)**2+PSI(3)**2 + PWS=0. + DO 350 I=NSAV+NJET+1,N + IF(MOD(MSTJ(3),5).EQ.1) PWS=PWS+P(I,4) + IF(MOD(MSTJ(3),5).EQ.2) PWS=PWS+SQRT(P(I,5)**2+(PSI(1)*P(I,1)+ + & PSI(2)*P(I,2)+PSI(3)*P(I,3))**2/PSI(4)) + IF(MOD(MSTJ(3),5).EQ.3) PWS=PWS+1. + 350 CONTINUE + DO 370 I=NSAV+NJET+1,N + IF(MOD(MSTJ(3),5).EQ.1) PW=P(I,4) + IF(MOD(MSTJ(3),5).EQ.2) PW=SQRT(P(I,5)**2+(PSI(1)*P(I,1)+ + & PSI(2)*P(I,2)+PSI(3)*P(I,3))**2/PSI(4)) + IF(MOD(MSTJ(3),5).EQ.3) PW=1. + DO 360 J=1,3 + P(I,J)=P(I,J)-PSI(J)*PW/PWS + 360 CONTINUE + P(I,4)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2+P(I,5)**2) + 370 CONTINUE + +C...Compensate for missing momentum withing each jet separately. + ELSEIF(MOD(MSTJ(3),5).EQ.4) THEN + DO 390 I=N+1,N+NJET + K(I,1)=0 + DO 380 J=1,5 + P(I,J)=0. + 380 CONTINUE + 390 CONTINUE + DO 410 I=NSAV+NJET+1,N + IR1=K(I,3) + IR2=N+IR1-NSAV + K(IR2,1)=K(IR2,1)+1 + PLS=(P(I,1)*P(IR1,1)+P(I,2)*P(IR1,2)+P(I,3)*P(IR1,3))/ + & (P(IR1,1)**2+P(IR1,2)**2+P(IR1,3)**2) + DO 400 J=1,3 + P(IR2,J)=P(IR2,J)+P(I,J)-PLS*P(IR1,J) + 400 CONTINUE + P(IR2,4)=P(IR2,4)+P(I,4) + P(IR2,5)=P(IR2,5)+PLS + 410 CONTINUE + PSS=0. + DO 420 I=N+1,N+NJET + IF(K(I,1).NE.0) PSS=PSS+P(I,4)/(PECM*(0.8*P(I,5)+0.2)) + 420 CONTINUE + DO 440 I=NSAV+NJET+1,N + IR1=K(I,3) + IR2=N+IR1-NSAV + PLS=(P(I,1)*P(IR1,1)+P(I,2)*P(IR1,2)+P(I,3)*P(IR1,3))/ + & (P(IR1,1)**2+P(IR1,2)**2+P(IR1,3)**2) + DO 430 J=1,3 + P(I,J)=P(I,J)-P(IR2,J)/K(IR2,1)+(1./(P(IR2,5)*PSS)-1.)*PLS* + & P(IR1,J) + 430 CONTINUE + P(I,4)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2+P(I,5)**2) + 440 CONTINUE + ENDIF + +C...Scale momenta for energy conservation. + IF(MOD(MSTJ(3),5).NE.0) THEN + PMS=0. + PES=0. + PQS=0. + DO 450 I=NSAV+NJET+1,N + PMS=PMS+P(I,5) + PES=PES+P(I,4) + PQS=PQS+P(I,5)**2/P(I,4) + 450 CONTINUE + IF(PMS.GE.PECM) GOTO 150 + NECO=0 + 460 NECO=NECO+1 + PFAC=(PECM-PQS)/(PES-PQS) + PES=0. + PQS=0. + DO 480 I=NSAV+NJET+1,N + DO 470 J=1,3 + P(I,J)=PFAC*P(I,J) + 470 CONTINUE + P(I,4)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2+P(I,5)**2) + PES=PES+P(I,4) + PQS=PQS+P(I,5)**2/P(I,4) + 480 CONTINUE + IF(NECO.LT.10.AND.ABS(PECM-PES).GT.2E-6*PECM) GOTO 460 + ENDIF + +C...Origin of produced particles and parton daughter pointers. + 490 DO 500 I=NSAV+NJET+1,N + IF(MSTU(16).NE.2) K(I,3)=NSAV+1 + IF(MSTU(16).EQ.2) K(I,3)=K(K(I,3),3) + 500 CONTINUE + DO 510 I=NSAV+1,NSAV+NJET + I1=K(I,3) + K(I1,1)=K(I1,1)+10 + IF(MSTU(16).NE.2) THEN + K(I1,4)=NSAV+1 + K(I1,5)=NSAV+1 + ELSE + K(I1,4)=K(I1,4)-NJET+1 + K(I1,5)=K(I1,5)-NJET+1 + IF(K(I1,5).LT.K(I1,4)) THEN + K(I1,4)=0 + K(I1,5)=0 + ENDIF + ENDIF + 510 CONTINUE + +C...Document independent fragmentation system. Remove copy of jets. + NSAV=NSAV+1 + K(NSAV,1)=11 + K(NSAV,2)=93 + K(NSAV,3)=IP + K(NSAV,4)=NSAV+1 + K(NSAV,5)=N-NJET+1 + DO 520 J=1,4 + P(NSAV,J)=DPS(J) + V(NSAV,J)=V(IP,J) + 520 CONTINUE + P(NSAV,5)=SQRT(MAX(0D0,DPS(4)**2-DPS(1)**2-DPS(2)**2-DPS(3)**2)) + V(NSAV,5)=0. + DO 540 I=NSAV+NJET,N + DO 530 J=1,5 + K(I-NJET+1,J)=K(I,J) + P(I-NJET+1,J)=P(I,J) + V(I-NJET+1,J)=V(I,J) + 530 CONTINUE + 540 CONTINUE + N=N-NJET+1 + DO 550 IZ=MSTU90+1,MSTU(90) + MSTU(90+IZ)=MSTU(90+IZ)-NJET+1 + 550 CONTINUE + +C...Boost back particle system. Set production vertices. + IF(NJET.NE.1) CALL LUDBRB(NSAV+1,N,0.,0.,DPS(1)/DPS(4), + &DPS(2)/DPS(4),DPS(3)/DPS(4)) + DO 570 I=NSAV+1,N + DO 560 J=1,4 + V(I,J)=V(IP,J) + 560 CONTINUE + 570 CONTINUE + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYDECY(IP) + +C...Purpose: to handle the decay of unstable particles. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + COMMON/LYDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/,/LYDAT3/ + DIMENSION VDCY(4),KFLO(4),KFL1(4),PV(10,5),RORD(10),UE(3),BE(3), + &WTCOR(10),PTAU(4),PCMTAU(4) + DOUBLE PRECISION DBETAU(3) + DATA WTCOR/2.,5.,15.,60.,250.,1500.,1.2E4,1.2E5,150.,16./ + +C...Functions: momentum in two-particle decays, four-product and +C...matrix element times phase space in weak decays. + PAWT(A,B,C)=SQRT(ABS((A**2-(B+C)**2)*(A**2-(B-C)**2)))/(2.*A) +C...........added ABS because would go 10**-7 LT 0 (precision thing?) +C...........once per few 10**5 events -- jmiles 22.June.02 + FOUR(I,J)=P(I,4)*P(J,4)-P(I,1)*P(J,1)-P(I,2)*P(J,2)-P(I,3)*P(J,3) + HMEPS(HA)=((1.-HRQ-HA)**2+3.*HA*(1.+HRQ-HA))* + &SQRT((1.-HRQ-HA)**2-4.*HRQ*HA) + +C...Initial values. + NTRY=0 + NSAV=N + KFA=IABS(K(IP,2)) + KFS=ISIGN(1,K(IP,2)) + KC=LYCOMP(KFA) + MSTJ(92)=0 + +C...Choose lifetime and determine decay vertex. + IF(K(IP,1).EQ.5) THEN + V(IP,5)=0. + ELSEIF(K(IP,1).NE.4) THEN + V(IP,5)=-PMAS(KC,4)*LOG(RLY(0)) + ENDIF + DO 100 J=1,4 + VDCY(J)=V(IP,J)+V(IP,5)*P(IP,J)/P(IP,5) + 100 CONTINUE + +C...Determine whether decay allowed or not. + MOUT=0 + IF(MSTJ(22).EQ.2) THEN + IF(PMAS(KC,4).GT.PARJ(71)) MOUT=1 + ELSEIF(MSTJ(22).EQ.3) THEN + IF(VDCY(1)**2+VDCY(2)**2+VDCY(3)**2.GT.PARJ(72)**2) MOUT=1 + ELSEIF(MSTJ(22).EQ.4) THEN + IF(VDCY(1)**2+VDCY(2)**2.GT.PARJ(73)**2) MOUT=1 + IF(ABS(VDCY(3)).GT.PARJ(74)) MOUT=1 + ENDIF + IF(MOUT.EQ.1.AND.K(IP,1).NE.5) THEN + K(IP,1)=4 + RETURN + ENDIF + +C...Interface to external tau decay library (for tau polarization). + IF(KFA.EQ.15.AND.MSTJ(28).GE.1) THEN + +C...Starting values for pointers and momenta. + ITAU=IP + DO 110 J=1,4 + PTAU(J)=P(ITAU,J) + PCMTAU(J)=P(ITAU,J) + 110 CONTINUE + +C...Iterate to find position and code of mother of tau. + IMTAU=ITAU + 120 IMTAU=K(IMTAU,3) + + IF(IMTAU.EQ.0) THEN +C...If no known origin then impossible to do anything further. + KFORIG=0 + IORIG=0 + + ELSEIF(K(IMTAU,2).EQ.K(ITAU,2)) THEN +C...If tau -> tau + gamma then add gamma energy and loop. + IF(K(K(IMTAU,4),2).EQ.22) THEN + DO 130 J=1,4 + PCMTAU(J)=PCMTAU(J)+P(K(IMTAU,4),J) + 130 CONTINUE + ELSEIF(K(K(IMTAU,5),2).EQ.22) THEN + DO 140 J=1,4 + PCMTAU(J)=PCMTAU(J)+P(K(IMTAU,5),J) + 140 CONTINUE + ENDIF + GOTO 120 + + ELSEIF(IABS(K(IMTAU,2)).GT.100) THEN +C...If coming from weak decay of hadron then W is not stored in record, +C...but can be reconstructed by adding neutrino momentum. + KFORIG=-ISIGN(24,K(ITAU,2)) + IORIG=0 + DO 160 II=K(IMTAU,4),K(IMTAU,5) + IF(K(II,2)*ISIGN(1,K(ITAU,2)).EQ.-16) THEN + DO 150 J=1,4 + PCMTAU(J)=PCMTAU(J)+P(II,J) + 150 CONTINUE + ENDIF + 160 CONTINUE + + ELSE +C...If coming from resonance decay then find latest copy of this +C...resonance (may not completely agree). + KFORIG=K(IMTAU,2) + IORIG=IMTAU + DO 170 II=IMTAU+1,IP-1 + IF(K(II,2).EQ.KFORIG.AND.K(II,3).EQ.IORIG.AND. + & ABS(P(II,5)-P(IORIG,5)).LT.1E-5*P(IORIG,5)) IORIG=II + 170 CONTINUE + DO 180 J=1,4 + PCMTAU(J)=P(IORIG,J) + 180 CONTINUE + ENDIF + +C...Boost tau to rest frame of production process (where known) +C...and rotate it to sit along +z axis. + DO 190 J=1,3 + DBETAU(J)=PCMTAU(J)/PCMTAU(4) + 190 CONTINUE + IF(KFORIG.NE.0) CALL LUDBRB(ITAU,ITAU,0.,0.,-DBETAU(1), + & -DBETAU(2),-DBETAU(3)) + PHITAU=UYANGL(P(ITAU,1),P(ITAU,2)) + CALL LUDBRB(ITAU,ITAU,0.,-PHITAU,0D0,0D0,0D0) + THETAU=UYANGL(P(ITAU,3),P(ITAU,1)) + CALL LUDBRB(ITAU,ITAU,-THETAU,0.,0D0,0D0,0D0) + +C...Call tau decay routine (if meaningful) and fill extra info. + IF(KFORIG.NE.0.OR.MSTJ(28).EQ.2) THEN + CALL LYTAUD(ITAU,IORIG,KFORIG,NDECAY) + DO 200 II=NSAV+1,NSAV+NDECAY + K(II,1)=1 + K(II,3)=IP + K(II,4)=0 + K(II,5)=0 + 200 CONTINUE + N=NSAV+NDECAY + ENDIF + +C...Boost back decay tau and decay products. + DO 210 J=1,4 + P(ITAU,J)=PTAU(J) + 210 CONTINUE + IF(KFORIG.NE.0.OR.MSTJ(28).EQ.2) THEN + CALL LUDBRB(NSAV+1,N,THETAU,PHITAU,0D0,0D0,0D0) + IF(KFORIG.NE.0) CALL LUDBRB(NSAV+1,N,0.,0.,DBETAU(1), + & DBETAU(2),DBETAU(3)) + +C...Skip past ordinary tau decay treatment. + MMAT=0 + MBST=0 + ND=0 + GOTO 660 + ENDIF + ENDIF + +C...B-B~ mixing: flip sign of meson appropriately. + MMIX=0 + IF((KFA.EQ.511.OR.KFA.EQ.531).AND.MSTJ(26).GE.1) THEN + XBBMIX=PARJ(76) + IF(KFA.EQ.531) XBBMIX=PARJ(77) + IF(SIN(0.5*XBBMIX*V(IP,5)/PMAS(KC,4))**2.GT.RLY(0)) MMIX=1 + IF(MMIX.EQ.1) KFS=-KFS + ENDIF + +C...Check existence of decay channels. Particle/antiparticle rules. + KCA=KC + IF(MDCY(KC,2).GT.0) THEN + MDMDCY=MDME(MDCY(KC,2),2) + IF(MDMDCY.GT.80.AND.MDMDCY.LE.90) KCA=MDMDCY + ENDIF + IF(MDCY(KCA,2).LE.0.OR.MDCY(KCA,3).LE.0) THEN + CALL LYERRM(9,'(LYDECY:) no decay channel defined') + RETURN + ENDIF + IF(MOD(KFA/1000,10).EQ.0.AND.(KCA.EQ.85.OR.KCA.EQ.87)) KFS=-KFS + IF(KCHG(KC,3).EQ.0) THEN + KFSP=1 + KFSN=0 + IF(RLY(0).GT.0.5) KFS=-KFS + ELSEIF(KFS.GT.0) THEN + KFSP=1 + KFSN=0 + ELSE + KFSP=0 + KFSN=1 + ENDIF + +C...Sum branching ratios of allowed decay channels. + 220 NOPE=0 + BRSU=0. + DO 230 IDL=MDCY(KCA,2),MDCY(KCA,2)+MDCY(KCA,3)-1 + IF(MDME(IDL,1).NE.1.AND.KFSP*MDME(IDL,1).NE.2.AND. + &KFSN*MDME(IDL,1).NE.3) GOTO 230 + IF(MDME(IDL,2).GT.100) GOTO 230 + NOPE=NOPE+1 + BRSU=BRSU+BRAT(IDL) + 230 CONTINUE + IF(NOPE.EQ.0) THEN + CALL LYERRM(2,'(LYDECY:) all decay channels closed by user') + RETURN + ENDIF + +C...Select decay channel among allowed ones. + 240 RBR=BRSU*RLY(0) + IDL=MDCY(KCA,2)-1 + 250 IDL=IDL+1 + IF(MDME(IDL,1).NE.1.AND.KFSP*MDME(IDL,1).NE.2.AND. + &KFSN*MDME(IDL,1).NE.3) THEN + IF(IDL.LT.MDCY(KCA,2)+MDCY(KCA,3)-1) GOTO 250 + ELSEIF(MDME(IDL,2).GT.100) THEN + IF(IDL.LT.MDCY(KCA,2)+MDCY(KCA,3)-1) GOTO 250 + ELSE + IDC=IDL + RBR=RBR-BRAT(IDL) + IF(IDL.LT.MDCY(KCA,2)+MDCY(KCA,3)-1.AND.RBR.GT.0.) GOTO 250 + ENDIF + +C...Start readout of decay channel: matrix element, reset counters. + MMAT=MDME(IDC,2) + 260 NTRY=NTRY+1 + IF(NTRY.GT.1000) THEN + CALL LYERRM(14,'(LYDECY:) caught in infinite loop') + IF(MSTU(21).GE.1) RETURN + ENDIF + I=N + NP=0 + NQ=0 + MBST=0 + IF(MMAT.GE.11.AND.MMAT.NE.46.AND.P(IP,4).GT.20.*P(IP,5)) MBST=1 + DO 270 J=1,4 + PV(1,J)=0. + IF(MBST.EQ.0) PV(1,J)=P(IP,J) + 270 CONTINUE + IF(MBST.EQ.1) PV(1,4)=P(IP,5) + PV(1,5)=P(IP,5) + PS=0. + PSQ=0. + MREM=0 + MHADDY=0 + IF(KFA.GT.80) MHADDY=1 + +C...Read out decay products. Convert to standard flavour code. + JTMAX=5 + IF(MDME(IDC+1,2).EQ.101) JTMAX=10 + DO 280 JT=1,JTMAX + IF(JT.LE.5) KP=KFDP(IDC,JT) + IF(JT.GE.6) KP=KFDP(IDC+1,JT-5) + IF(KP.EQ.0) GOTO 280 + KPA=IABS(KP) + KCP=LYCOMP(KPA) + IF(KPA.GT.80) MHADDY=1 + IF(KCHG(KCP,3).EQ.0.AND.KPA.NE.81.AND.KPA.NE.82) THEN + KFP=KP + ELSEIF(KPA.NE.81.AND.KPA.NE.82) THEN + KFP=KFS*KP + ELSEIF(KPA.EQ.81.AND.MOD(KFA/1000,10).EQ.0) THEN + KFP=-KFS*MOD(KFA/10,10) + ELSEIF(KPA.EQ.81.AND.MOD(KFA/100,10).GE.MOD(KFA/10,10)) THEN + KFP=KFS*(100*MOD(KFA/10,100)+3) + ELSEIF(KPA.EQ.81) THEN + KFP=KFS*(1000*MOD(KFA/10,10)+100*MOD(KFA/100,10)+1) + ELSEIF(KP.EQ.82) THEN + CALL LYKFDI(-KFS*INT(1.+(2.+PARJ(2))*RLY(0)),0,KFP,KDUMP) + IF(KFP.EQ.0) GOTO 260 + MSTJ(93)=1 + IF(PV(1,5).LT.PARJ(32)+2.*UYMASS(KFP)) GOTO 260 + ELSEIF(KP.EQ.-82) THEN + KFP=-KFP + IF(IABS(KFP).GT.10) KFP=KFP+ISIGN(10000,KFP) + ENDIF + IF(KPA.EQ.81.OR.KPA.EQ.82) KCP=LYCOMP(KFP) + +C...Add decay product to event record or to quark flavour list. + KFPA=IABS(KFP) + KQP=KCHG(KCP,2) + IF(MMAT.GE.11.AND.MMAT.LE.30.AND.KQP.NE.0) THEN + NQ=NQ+1 + KFLO(NQ)=KFP + MSTJ(93)=2 + PSQ=PSQ+UYMASS(KFLO(NQ)) + ELSEIF((MMAT.EQ.42.OR.MMAT.EQ.43.OR.MMAT.EQ.48).AND.NP.EQ.3.AND. + &MOD(NQ,2).EQ.1) THEN + NQ=NQ-1 + PS=PS-P(I,5) + K(I,1)=1 + KFI=K(I,2) + CALL LYKFDI(KFP,KFI,KFLDMP,K(I,2)) + IF(K(I,2).EQ.0) GOTO 260 + MSTJ(93)=1 + P(I,5)=UYMASS(K(I,2)) + PS=PS+P(I,5) + ELSE + I=I+1 + NP=NP+1 + IF(MMAT.NE.33.AND.KQP.NE.0) NQ=NQ+1 + IF(MMAT.EQ.33.AND.KQP.NE.0.AND.KQP.NE.2) NQ=NQ+1 + K(I,1)=1+MOD(NQ,2) + IF(MMAT.EQ.4.AND.JT.LE.2.AND.KFP.EQ.21) K(I,1)=2 + IF(MMAT.EQ.4.AND.JT.EQ.3) K(I,1)=1 + K(I,2)=KFP + K(I,3)=IP + K(I,4)=0 + K(I,5)=0 + P(I,5)=UYMASS(KFP) + IF(MMAT.EQ.45.AND.KFPA.EQ.89) P(I,5)=PARJ(32) + PS=PS+P(I,5) + ENDIF + 280 CONTINUE + +C...Check masses for resonance decays. + IF(MHADDY.EQ.0) THEN + IF(PS+PARJ(64).GT.PV(1,5)) GOTO 240 + ENDIF + +C...Choose decay multiplicity in phase space model. + 290 IF(MMAT.GE.11.AND.MMAT.LE.30) THEN + PSP=PS + CNDE=PARJ(61)*LOG(MAX((PV(1,5)-PS-PSQ)/PARJ(62),1.1)) + IF(MMAT.EQ.12) CNDE=CNDE+PARJ(63) + 300 NTRY=NTRY+1 + IF(NTRY.GT.1000) THEN + CALL LYERRM(14,'(LYDECY:) caught in infinite loop') + IF(MSTU(21).GE.1) RETURN + ENDIF + IF(MMAT.LE.20) THEN + GAUSS=SQRT(-2.*CNDE*LOG(MAX(1E-10,RLY(0))))* + & SIN(PARU(2)*RLY(0)) + ND=0.5+0.5*NP+0.25*NQ+CNDE+GAUSS + IF(ND.LT.NP+NQ/2.OR.ND.LT.2.OR.ND.GT.10) GOTO 300 + IF(MMAT.EQ.13.AND.ND.EQ.2) GOTO 300 + IF(MMAT.EQ.14.AND.ND.LE.3) GOTO 300 + IF(MMAT.EQ.15.AND.ND.LE.4) GOTO 300 + ELSE + ND=MMAT-20 + ENDIF + +C...Form hadrons from flavour content. + DO 310 JT=1,4 + KFL1(JT)=KFLO(JT) + 310 CONTINUE + IF(ND.EQ.NP+NQ/2) GOTO 330 + DO 320 I=N+NP+1,N+ND-NQ/2 + JT=1+INT((NQ-1)*RLY(0)) + CALL LYKFDI(KFL1(JT),0,KFL2,K(I,2)) + IF(K(I,2).EQ.0) GOTO 300 + KFL1(JT)=-KFL2 + 320 CONTINUE + 330 JT=2 + JT2=3 + JT3=4 + IF(NQ.EQ.4.AND.RLY(0).LT.PARJ(66)) JT=4 + IF(JT.EQ.4.AND.ISIGN(1,KFL1(1)*(10-IABS(KFL1(1))))* + & ISIGN(1,KFL1(JT)*(10-IABS(KFL1(JT)))).GT.0) JT=3 + IF(JT.EQ.3) JT2=2 + IF(JT.EQ.4) JT3=2 + CALL LYKFDI(KFL1(1),KFL1(JT),KFLDMP,K(N+ND-NQ/2+1,2)) + IF(K(N+ND-NQ/2+1,2).EQ.0) GOTO 300 + IF(NQ.EQ.4) CALL LYKFDI(KFL1(JT2),KFL1(JT3),KFLDMP,K(N+ND,2)) + IF(NQ.EQ.4.AND.K(N+ND,2).EQ.0) GOTO 300 + +C...Check that sum of decay product masses not too large. + PS=PSP + DO 340 I=N+NP+1,N+ND + K(I,1)=1 + K(I,3)=IP + K(I,4)=0 + K(I,5)=0 + P(I,5)=UYMASS(K(I,2)) + PS=PS+P(I,5) + 340 CONTINUE + IF(PS+PARJ(64).GT.PV(1,5)) GOTO 300 + +C...Rescale energy to subtract off spectator quark mass. + ELSEIF((MMAT.EQ.31.OR.MMAT.EQ.33.OR.MMAT.EQ.44.OR.MMAT.EQ.45) + &.AND.NP.GE.3) THEN + PS=PS-P(N+NP,5) + PQT=(P(N+NP,5)+PARJ(65))/PV(1,5) + DO 350 J=1,5 + P(N+NP,J)=PQT*PV(1,J) + PV(1,J)=(1.-PQT)*PV(1,J) + 350 CONTINUE + IF(PS+PARJ(64).GT.PV(1,5)) GOTO 260 + ND=NP-1 + MREM=1 + +C...Phase space factors imposed in W decay. + ELSEIF(MMAT.EQ.46) THEN + MSTJ(93)=1 + PSMC=UYMASS(K(N+1,2)) + MSTJ(93)=1 + PSMC=PSMC+UYMASS(K(N+2,2)) + IF(MAX(PS,PSMC)+PARJ(32).GT.PV(1,5)) GOTO 240 + HR1=(P(N+1,5)/PV(1,5))**2 + HR2=(P(N+2,5)/PV(1,5))**2 + IF((1.-HR1-HR2)*(2.+HR1+HR2)*SQRT((1.-HR1-HR2)**2-4.*HR1*HR2) + & .LT.2.*RLY(0)) GOTO 240 + ND=NP + +C...Fully specified final state: check mass broadening effects. + ELSE + IF(NP.GE.2.AND.PS+PARJ(64).GT.PV(1,5)) GOTO 260 + ND=NP + ENDIF + +C...Select W mass in decay Q -> W + q, without W propagator. + IF(MMAT.EQ.45.AND.MSTJ(25).LE.0) THEN + HLQ=(PARJ(32)/PV(1,5))**2 + HUQ=(1.-(P(N+2,5)+PARJ(64))/PV(1,5))**2 + HRQ=(P(N+2,5)/PV(1,5))**2 + 360 HW=HLQ+RLY(0)*(HUQ-HLQ) + IF(HMEPS(HW).LT.RLY(0)) GOTO 360 + P(N+1,5)=PV(1,5)*SQRT(HW) + +C...Ditto, including W propagator. Divide mass range into three regions. + ELSEIF(MMAT.EQ.45) THEN + HQW=(PV(1,5)/PMAS(24,1))**2 + HLW=(PARJ(32)/PMAS(24,1))**2 + HUW=((PV(1,5)-P(N+2,5)-PARJ(64))/PMAS(24,1))**2 + HRQ=(P(N+2,5)/PV(1,5))**2 + HG=PMAS(24,2)/PMAS(24,1) + HATL=ATAN((HLW-1.)/HG) + HM=MIN(1.,HUW-0.001) + HMV1=HMEPS(HM/HQW)/((HM-1.)**2+HG**2) + 370 HM=HM-HG + HMV2=HMEPS(HM/HQW)/((HM-1.)**2+HG**2) + IF(HMV2.GT.HMV1.AND.HM-HG.GT.HLW) THEN + HMV1=HMV2 + GOTO 370 + ENDIF + HMV=MIN(2.*HMV1,HMEPS(HM/HQW)/HG**2) + HM1=1.-SQRT(1./HMV-HG**2) + IF(HM1.GT.HLW.AND.HM1.LT.HM) THEN + HM=HM1 + ELSEIF(HMV2.LE.HMV1) THEN + HM=MAX(HLW,HM-MIN(0.1,1.-HM)) + ENDIF + HATM=ATAN((HM-1.)/HG) + HWT1=(HATM-HATL)/HG + HWT2=HMV*(MIN(1.,HUW)-HM) + HWT3=0. + IF(HUW.GT.1.) THEN + HATU=ATAN((HUW-1.)/HG) + HMP1=HMEPS(1./HQW) + HWT3=HMP1*HATU/HG + ENDIF + +C...Select mass region and W mass there. Accept according to weight. + 380 HREG=RLY(0)*(HWT1+HWT2+HWT3) + IF(HREG.LE.HWT1) THEN + HW=1.+HG*TAN(HATL+RLY(0)*(HATM-HATL)) + HACC=HMEPS(HW/HQW) + ELSEIF(HREG.LE.HWT1+HWT2) THEN + HW=HM+RLY(0)*(MIN(1.,HUW)-HM) + HACC=HMEPS(HW/HQW)/((HW-1.)**2+HG**2)/HMV + ELSE + HW=1.+HG*TAN(RLY(0)*HATU) + HACC=HMEPS(HW/HQW)/HMP1 + ENDIF + IF(HACC.LT.RLY(0)) GOTO 380 + P(N+1,5)=PMAS(24,1)*SQRT(HW) + ENDIF + +C...Determine position of grandmother, number of sisters, Q -> W sign. + NM=0 + KFAS=0 + MSGN=0 + IF(MMAT.EQ.3.OR.MMAT.EQ.46) THEN + IM=K(IP,3) + IF(IM.LT.0.OR.IM.GE.IP) IM=0 + IF(MMAT.EQ.46.AND.MSTJ(27).EQ.1) THEN + IM=0 + ELSEIF(MMAT.EQ.46.AND.MSTJ(27).GE.2.AND.IM.NE.0) THEN + IF(K(IM,2).EQ.94) THEN + IM=K(K(IM,3),3) + IF(IM.LT.0.OR.IM.GE.IP) IM=0 + ENDIF + ENDIF + IF(IM.NE.0) KFAM=IABS(K(IM,2)) + IF(IM.NE.0.AND.MMAT.EQ.3) THEN + DO 390 IL=MAX(IP-2,IM+1),MIN(IP+2,N) + IF(K(IL,3).EQ.IM) NM=NM+1 + IF(K(IL,3).EQ.IM.AND.IL.NE.IP) ISIS=IL + 390 CONTINUE + IF(NM.NE.2.OR.KFAM.LE.100.OR.MOD(KFAM,10).NE.1.OR. + & MOD(KFAM/1000,10).NE.0) NM=0 + IF(NM.EQ.2) THEN + KFAS=IABS(K(ISIS,2)) + IF((KFAS.LE.100.OR.MOD(KFAS,10).NE.1.OR. + & MOD(KFAS/1000,10).NE.0).AND.KFAS.NE.22) NM=0 + ENDIF + ELSEIF(IM.NE.0.AND.MMAT.EQ.46) THEN + MSGN=ISIGN(1,K(IM,2)*K(IP,2)) + IF(KFAM.GT.100.AND.MOD(KFAM/1000,10).EQ.0) MSGN= + & MSGN*(-1)**MOD(KFAM/100,10) + ENDIF + ENDIF + +C...Kinematics of one-particle decays. + IF(ND.EQ.1) THEN + DO 400 J=1,4 + P(N+1,J)=P(IP,J) + 400 CONTINUE + GOTO 660 + ENDIF + +C...Calculate maximum weight ND-particle decay. + PV(ND,5)=P(N+ND,5) + IF(ND.GE.3) THEN + WTMAX=1./WTCOR(ND-2) + PMAX=PV(1,5)-PS+P(N+ND,5) + PMIN=0. + DO 410 IL=ND-1,1,-1 + PMAX=PMAX+P(N+IL,5) + PMIN=PMIN+P(N+IL+1,5) + WTMAX=WTMAX*PAWT(PMAX,PMIN,P(N+IL,5)) + 410 CONTINUE + ENDIF + +C...Find virtual gamma mass in Dalitz decay. + 420 IF(ND.EQ.2) THEN + ELSEIF(MMAT.EQ.2) THEN + PMES=4.*PMAS(11,1)**2 + PMRHO2=PMAS(131,1)**2 + PGRHO2=PMAS(131,2)**2 + 430 PMST=PMES*(P(IP,5)**2/PMES)**RLY(0) + WT=(1+0.5*PMES/PMST)*SQRT(MAX(0.,1.-PMES/PMST))* + & (1.-PMST/P(IP,5)**2)**3*(1.+PGRHO2/PMRHO2)/ + & ((1.-PMST/PMRHO2)**2+PGRHO2/PMRHO2) + IF(WT.LT.RLY(0)) GOTO 430 + PV(2,5)=MAX(2.00001*PMAS(11,1),SQRT(PMST)) + +C...M-generator gives weight. If rejected, try again. + ELSE + 440 RORD(1)=1. + DO 470 IL1=2,ND-1 + RSAV=RLY(0) + DO 450 IL2=IL1-1,1,-1 + IF(RSAV.LE.RORD(IL2)) GOTO 460 + RORD(IL2+1)=RORD(IL2) + 450 CONTINUE + 460 RORD(IL2+1)=RSAV + 470 CONTINUE + RORD(ND)=0. + WT=1. + DO 480 IL=ND-1,1,-1 + PV(IL,5)=PV(IL+1,5)+P(N+IL,5)+(RORD(IL)-RORD(IL+1))*(PV(1,5)-PS) + WT=WT*PAWT(PV(IL,5),PV(IL+1,5),P(N+IL,5)) + 480 CONTINUE + IF(WT.LT.RLY(0)*WTMAX) GOTO 440 + ENDIF + +C...Perform two-particle decays in respective CM frame. + 490 DO 510 IL=1,ND-1 + PA=PAWT(PV(IL,5),PV(IL+1,5),P(N+IL,5)) + UE(3)=2.*RLY(0)-1. + PHI=PARU(2)*RLY(0) + UE(1)=SQRT(1.-UE(3)**2)*COS(PHI) + UE(2)=SQRT(1.-UE(3)**2)*SIN(PHI) + DO 500 J=1,3 + P(N+IL,J)=PA*UE(J) + PV(IL+1,J)=-PA*UE(J) + 500 CONTINUE + P(N+IL,4)=SQRT(PA**2+P(N+IL,5)**2) + PV(IL+1,4)=SQRT(PA**2+PV(IL+1,5)**2) + 510 CONTINUE + +C...Lorentz transform decay products to lab frame. + DO 520 J=1,4 + P(N+ND,J)=PV(ND,J) + 520 CONTINUE + DO 560 IL=ND-1,1,-1 + DO 530 J=1,3 + BE(J)=PV(IL,J)/PV(IL,4) + 530 CONTINUE + GA=PV(IL,4)/PV(IL,5) + DO 550 I=N+IL,N+ND + BEP=BE(1)*P(I,1)+BE(2)*P(I,2)+BE(3)*P(I,3) + DO 540 J=1,3 + P(I,J)=P(I,J)+GA*(GA*BEP/(1.+GA)+P(I,4))*BE(J) + 540 CONTINUE + P(I,4)=GA*(P(I,4)+BEP) + 550 CONTINUE + 560 CONTINUE + +C...Check that no infinite loop in matrix element weight. + NTRY=NTRY+1 + IF(NTRY.GT.800) GOTO 590 + +C...Matrix elements for omega and phi decays. + IF(MMAT.EQ.1) THEN + WT=(P(N+1,5)*P(N+2,5)*P(N+3,5))**2-(P(N+1,5)*FOUR(N+2,N+3))**2 + & -(P(N+2,5)*FOUR(N+1,N+3))**2-(P(N+3,5)*FOUR(N+1,N+2))**2 + & +2.*FOUR(N+1,N+2)*FOUR(N+1,N+3)*FOUR(N+2,N+3) + IF(MAX(WT*WTCOR(9)/P(IP,5)**6,0.001).LT.RLY(0)) GOTO 420 + +C...Matrix elements for pi0 or eta Dalitz decay to gamma e+ e-. + ELSEIF(MMAT.EQ.2) THEN + FOUR12=FOUR(N+1,N+2) + FOUR13=FOUR(N+1,N+3) + WT=(PMST-0.5*PMES)*(FOUR12**2+FOUR13**2)+ + & PMES*(FOUR12*FOUR13+FOUR12**2+FOUR13**2) + IF(WT.LT.RLY(0)*0.25*PMST*(P(IP,5)**2-PMST)**2) GOTO 490 + +C...Matrix element for S0 -> S1 + V1 -> S1 + S2 + S3 (S scalar, +C...V vector), of form cos**2(theta02) in V1 rest frame, and for +C...S0 -> gamma + V1 -> gamma + S2 + S3, of form sin**2(theta02). + ELSEIF(MMAT.EQ.3.AND.NM.EQ.2) THEN + FOUR10=FOUR(IP,IM) + FOUR12=FOUR(IP,N+1) + FOUR02=FOUR(IM,N+1) + PMS1=P(IP,5)**2 + PMS0=P(IM,5)**2 + PMS2=P(N+1,5)**2 + IF(KFAS.NE.22) HNUM=(FOUR10*FOUR12-PMS1*FOUR02)**2 + IF(KFAS.EQ.22) HNUM=PMS1*(2.*FOUR10*FOUR12*FOUR02- + & PMS1*FOUR02**2-PMS0*FOUR12**2-PMS2*FOUR10**2+PMS1*PMS0*PMS2) + HNUM=MAX(1E-6*PMS1**2*PMS0*PMS2,HNUM) + HDEN=(FOUR10**2-PMS1*PMS0)*(FOUR12**2-PMS1*PMS2) + IF(HNUM.LT.RLY(0)*HDEN) GOTO 490 + +C...Matrix element for "onium" -> g + g + g or gamma + g + g. + ELSEIF(MMAT.EQ.4) THEN + HX1=2.*FOUR(IP,N+1)/P(IP,5)**2 + HX2=2.*FOUR(IP,N+2)/P(IP,5)**2 + HX3=2.*FOUR(IP,N+3)/P(IP,5)**2 + WT=((1.-HX1)/(HX2*HX3))**2+((1.-HX2)/(HX1*HX3))**2+ + & ((1.-HX3)/(HX1*HX2))**2 + IF(WT.LT.2.*RLY(0)) GOTO 420 + IF(K(IP+1,2).EQ.22.AND.(1.-HX1)*P(IP,5)**2.LT.4.*PARJ(32)**2) + & GOTO 420 + +C...Effective matrix element for nu spectrum in tau -> nu + hadrons. + ELSEIF(MMAT.EQ.41) THEN + HX1=2.*FOUR(IP,N+1)/P(IP,5)**2 + HXM=MIN(0.75,2.*(1.-PS/P(IP,5))) + IF(HX1*(3.-2.*HX1).LT.RLY(0)*HXM*(3.-2.*HXM)) GOTO 420 + +C...Matrix elements for weak decays (only semileptonic for c and b) + ELSEIF((MMAT.EQ.42.OR.MMAT.EQ.43.OR.MMAT.EQ.44.OR.MMAT.EQ.48) + &.AND.ND.EQ.3) THEN + IF(MBST.EQ.0) WT=FOUR(IP,N+1)*FOUR(N+2,N+3) + IF(MBST.EQ.1) WT=P(IP,5)*P(N+1,4)*FOUR(N+2,N+3) + IF(WT.LT.RLY(0)*P(IP,5)*PV(1,5)**3/WTCOR(10)) GOTO 420 + ELSEIF(MMAT.EQ.42.OR.MMAT.EQ.43.OR.MMAT.EQ.44.OR.MMAT.EQ.48) THEN + DO 580 J=1,4 + P(N+NP+1,J)=0. + DO 570 IS=N+3,N+NP + P(N+NP+1,J)=P(N+NP+1,J)+P(IS,J) + 570 CONTINUE + 580 CONTINUE + IF(MBST.EQ.0) WT=FOUR(IP,N+1)*FOUR(N+2,N+NP+1) + IF(MBST.EQ.1) WT=P(IP,5)*P(N+1,4)*FOUR(N+2,N+NP+1) + IF(WT.LT.RLY(0)*P(IP,5)*PV(1,5)**3/WTCOR(10)) GOTO 420 + +C...Angular distribution in W decay. + ELSEIF(MMAT.EQ.46.AND.MSGN.NE.0) THEN + IF(MSGN.GT.0) WT=FOUR(IM,N+1)*FOUR(N+2,IP+1) + IF(MSGN.LT.0) WT=FOUR(IM,N+2)*FOUR(N+1,IP+1) + IF(WT.LT.RLY(0)*P(IM,5)**4/WTCOR(10)) GOTO 490 + ENDIF + +C...Scale back energy and reattach spectator. + 590 IF(MREM.EQ.1) THEN + DO 600 J=1,5 + PV(1,J)=PV(1,J)/(1.-PQT) + 600 CONTINUE + ND=ND+1 + MREM=0 + ENDIF + +C...Low invariant mass for system with spectator quark gives particle, +C...not two jets. Readjust momenta accordingly. + IF((MMAT.EQ.31.OR.MMAT.EQ.45).AND.ND.EQ.3) THEN + MSTJ(93)=1 + PM2=UYMASS(K(N+2,2)) + MSTJ(93)=1 + PM3=UYMASS(K(N+3,2)) + IF(P(N+2,5)**2+P(N+3,5)**2+2.*FOUR(N+2,N+3).GE. + & (PARJ(32)+PM2+PM3)**2) GOTO 660 + K(N+2,1)=1 + KFTEMP=K(N+2,2) + CALL LYKFDI(KFTEMP,K(N+3,2),KFLDMP,K(N+2,2)) + IF(K(N+2,2).EQ.0) GOTO 260 + P(N+2,5)=UYMASS(K(N+2,2)) + PS=P(N+1,5)+P(N+2,5) + PV(2,5)=P(N+2,5) + MMAT=0 + ND=2 + GOTO 490 + ELSEIF(MMAT.EQ.44) THEN + MSTJ(93)=1 + PM3=UYMASS(K(N+3,2)) + MSTJ(93)=1 + PM4=UYMASS(K(N+4,2)) + IF(P(N+3,5)**2+P(N+4,5)**2+2.*FOUR(N+3,N+4).GE. + & (PARJ(32)+PM3+PM4)**2) GOTO 630 + K(N+3,1)=1 + KFTEMP=K(N+3,2) + CALL LYKFDI(KFTEMP,K(N+4,2),KFLDMP,K(N+3,2)) + IF(K(N+3,2).EQ.0) GOTO 260 + P(N+3,5)=UYMASS(K(N+3,2)) + DO 610 J=1,3 + P(N+3,J)=P(N+3,J)+P(N+4,J) + 610 CONTINUE + P(N+3,4)=SQRT(P(N+3,1)**2+P(N+3,2)**2+P(N+3,3)**2+P(N+3,5)**2) + HA=P(N+1,4)**2-P(N+2,4)**2 + HB=HA-(P(N+1,5)**2-P(N+2,5)**2) + HC=(P(N+1,1)-P(N+2,1))**2+(P(N+1,2)-P(N+2,2))**2+ + & (P(N+1,3)-P(N+2,3))**2 + HD=(PV(1,4)-P(N+3,4))**2 + HE=HA**2-2.*HD*(P(N+1,4)**2+P(N+2,4)**2)+HD**2 + HF=HD*HC-HB**2 + HG=HD*HC-HA*HB + HH=(SQRT(HG**2+HE*HF)-HG)/(2.*HF) + DO 620 J=1,3 + PCOR=HH*(P(N+1,J)-P(N+2,J)) + P(N+1,J)=P(N+1,J)+PCOR + P(N+2,J)=P(N+2,J)-PCOR + 620 CONTINUE + P(N+1,4)=SQRT(P(N+1,1)**2+P(N+1,2)**2+P(N+1,3)**2+P(N+1,5)**2) + P(N+2,4)=SQRT(P(N+2,1)**2+P(N+2,2)**2+P(N+2,3)**2+P(N+2,5)**2) + ND=ND-1 + ENDIF + +C...Check invariant mass of W jets. May give one particle or start over. + 630 IF((MMAT.EQ.42.OR.MMAT.EQ.43.OR.MMAT.EQ.44.OR.MMAT.EQ.48) + &.AND.IABS(K(N+1,2)).LT.10) THEN + PMR=SQRT(MAX(0.,P(N+1,5)**2+P(N+2,5)**2+2.*FOUR(N+1,N+2))) + MSTJ(93)=1 + PM1=UYMASS(K(N+1,2)) + MSTJ(93)=1 + PM2=UYMASS(K(N+2,2)) + IF(PMR.GT.PARJ(32)+PM1+PM2) GOTO 640 + KFLDUM=INT(1.5+RLY(0)) + CALL LYKFDI(K(N+1,2),-ISIGN(KFLDUM,K(N+1,2)),KFLDMP,KF1) + CALL LYKFDI(K(N+2,2),-ISIGN(KFLDUM,K(N+2,2)),KFLDMP,KF2) + IF(KF1.EQ.0.OR.KF2.EQ.0) GOTO 260 + PSM=UYMASS(KF1)+UYMASS(KF2) + IF((MMAT.EQ.42.OR.MMAT.EQ.48).AND.PMR.GT.PARJ(64)+PSM) GOTO 640 + IF(MMAT.GE.43.AND.PMR.GT.0.2*PARJ(32)+PSM) GOTO 640 + IF(MMAT.EQ.48) GOTO 420 + IF(ND.EQ.4.OR.KFA.EQ.15) GOTO 260 + K(N+1,1)=1 + KFTEMP=K(N+1,2) + CALL LYKFDI(KFTEMP,K(N+2,2),KFLDMP,K(N+1,2)) + IF(K(N+1,2).EQ.0) GOTO 260 + P(N+1,5)=UYMASS(K(N+1,2)) + K(N+2,2)=K(N+3,2) + P(N+2,5)=P(N+3,5) + PS=P(N+1,5)+P(N+2,5) + IF(PS+PARJ(64).GT.PV(1,5)) GOTO 260 + PV(2,5)=P(N+3,5) + MMAT=0 + ND=2 + GOTO 490 + ENDIF + +C...Phase space decay of partons from W decay. + 640 IF((MMAT.EQ.42.OR.MMAT.EQ.48).AND.IABS(K(N+1,2)).LT.10) THEN + KFLO(1)=K(N+1,2) + KFLO(2)=K(N+2,2) + K(N+1,1)=K(N+3,1) + K(N+1,2)=K(N+3,2) + DO 650 J=1,5 + PV(1,J)=P(N+1,J)+P(N+2,J) + P(N+1,J)=P(N+3,J) + 650 CONTINUE + PV(1,5)=PMR + N=N+1 + NP=0 + NQ=2 + PS=0. + MSTJ(93)=2 + PSQ=UYMASS(KFLO(1)) + MSTJ(93)=2 + PSQ=PSQ+UYMASS(KFLO(2)) + MMAT=11 + GOTO 290 + ENDIF + +C...Boost back for rapidly moving particle. + 660 N=N+ND + IF(MBST.EQ.1) THEN + DO 670 J=1,3 + BE(J)=P(IP,J)/P(IP,4) + 670 CONTINUE + GA=P(IP,4)/P(IP,5) + DO 690 I=NSAV+1,N + BEP=BE(1)*P(I,1)+BE(2)*P(I,2)+BE(3)*P(I,3) + DO 680 J=1,3 + P(I,J)=P(I,J)+GA*(GA*BEP/(1.+GA)+P(I,4))*BE(J) + 680 CONTINUE + P(I,4)=GA*(P(I,4)+BEP) + 690 CONTINUE + ENDIF + +C...Fill in position of decay vertex. + DO 710 I=NSAV+1,N + DO 700 J=1,4 + V(I,J)=VDCY(J) + 700 CONTINUE + V(I,5)=0. + 710 CONTINUE + +C...Set up for parton shower evolution from jets. + IF(MSTJ(23).GE.1.AND.MMAT.EQ.4.AND.K(NSAV+1,2).EQ.21) THEN + K(NSAV+1,1)=3 + K(NSAV+2,1)=3 + K(NSAV+3,1)=3 + K(NSAV+1,4)=MSTU(5)*(NSAV+2) + K(NSAV+1,5)=MSTU(5)*(NSAV+3) + K(NSAV+2,4)=MSTU(5)*(NSAV+3) + K(NSAV+2,5)=MSTU(5)*(NSAV+1) + K(NSAV+3,4)=MSTU(5)*(NSAV+1) + K(NSAV+3,5)=MSTU(5)*(NSAV+2) + MSTJ(92)=-(NSAV+1) + ELSEIF(MSTJ(23).GE.1.AND.MMAT.EQ.4) THEN + K(NSAV+2,1)=3 + K(NSAV+3,1)=3 + K(NSAV+2,4)=MSTU(5)*(NSAV+3) + K(NSAV+2,5)=MSTU(5)*(NSAV+3) + K(NSAV+3,4)=MSTU(5)*(NSAV+2) + K(NSAV+3,5)=MSTU(5)*(NSAV+2) + MSTJ(92)=NSAV+2 + ELSEIF(MSTJ(23).GE.1.AND.(MMAT.EQ.32.OR.MMAT.EQ.44.OR.MMAT.EQ.46) + &.AND.IABS(K(NSAV+1,2)).LE.10.AND.IABS(K(NSAV+2,2)).LE.10) THEN + K(NSAV+1,1)=3 + K(NSAV+2,1)=3 + K(NSAV+1,4)=MSTU(5)*(NSAV+2) + K(NSAV+1,5)=MSTU(5)*(NSAV+2) + K(NSAV+2,4)=MSTU(5)*(NSAV+1) + K(NSAV+2,5)=MSTU(5)*(NSAV+1) + MSTJ(92)=NSAV+1 + ELSEIF(MSTJ(23).GE.1.AND.(MMAT.EQ.32.OR.MMAT.EQ.44.OR.MMAT.EQ.46) + &.AND.IABS(K(NSAV+1,2)).LE.20.AND.IABS(K(NSAV+2,2)).LE.20) THEN + MSTJ(92)=NSAV+1 + ELSEIF(MSTJ(23).GE.1.AND.MMAT.EQ.33.AND.IABS(K(NSAV+2,2)).EQ.21) + &THEN + K(NSAV+1,1)=3 + K(NSAV+2,1)=3 + K(NSAV+3,1)=3 + KCP=LYCOMP(K(NSAV+1,2)) + KQP=KCHG(KCP,2)*ISIGN(1,K(NSAV+1,2)) + JCON=4 + IF(KQP.LT.0) JCON=5 + K(NSAV+1,JCON)=MSTU(5)*(NSAV+2) + K(NSAV+2,9-JCON)=MSTU(5)*(NSAV+1) + K(NSAV+2,JCON)=MSTU(5)*(NSAV+3) + K(NSAV+3,9-JCON)=MSTU(5)*(NSAV+2) + MSTJ(92)=NSAV+1 + ELSEIF(MSTJ(23).GE.1.AND.MMAT.EQ.33) THEN + K(NSAV+1,1)=3 + K(NSAV+3,1)=3 + K(NSAV+1,4)=MSTU(5)*(NSAV+3) + K(NSAV+1,5)=MSTU(5)*(NSAV+3) + K(NSAV+3,4)=MSTU(5)*(NSAV+1) + K(NSAV+3,5)=MSTU(5)*(NSAV+1) + MSTJ(92)=NSAV+1 + +C...Set up for parton shower evolution in t -> W + b. + ELSEIF(MSTJ(27).GE.1.AND.MMAT.EQ.45.AND.ND.EQ.3) THEN + K(NSAV+2,1)=3 + K(NSAV+3,1)=3 + K(NSAV+2,4)=MSTU(5)*(NSAV+3) + K(NSAV+2,5)=MSTU(5)*(NSAV+3) + K(NSAV+3,4)=MSTU(5)*(NSAV+2) + K(NSAV+3,5)=MSTU(5)*(NSAV+2) + MSTJ(92)=NSAV+1 + ENDIF + +C...Mark decayed particle; special option for B-B~ mixing. + IF(K(IP,1).EQ.5) K(IP,1)=15 + IF(K(IP,1).LE.10) K(IP,1)=11 + IF(MMIX.EQ.1.AND.MSTJ(26).EQ.2.AND.K(IP,1).EQ.11) K(IP,1)=12 + K(IP,4)=NSAV+1 + K(IP,5)=N + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYKFDI(KFL1,KFL2,KFL3,KF) + +C...Purpose: to generate a new flavour pair and combine off a hadron. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYDAT1/,/LYDAT2/ + +C...Default flavour values. Input consistency checks. + KF1A=IABS(KFL1) + KF2A=IABS(KFL2) + KFL3=0 + KF=0 + IF(KF1A.EQ.0) RETURN + IF(KF2A.NE.0) THEN + IF(KF1A.LE.10.AND.KF2A.LE.10.AND.KFL1*KFL2.GT.0) RETURN + IF(KF1A.GT.10.AND.KF2A.GT.10) RETURN + IF((KF1A.GT.10.OR.KF2A.GT.10).AND.KFL1*KFL2.LT.0) RETURN + ENDIF + +C...Check if tabulated flavour probabilities are to be used. + IF(MSTJ(15).EQ.1) THEN + KTAB1=-1 + IF(KF1A.GE.1.AND.KF1A.LE.6) KTAB1=KF1A + KFL1A=MOD(KF1A/1000,10) + KFL1B=MOD(KF1A/100,10) + KFL1S=MOD(KF1A,10) + IF(KFL1A.GE.1.AND.KFL1A.LE.4.AND.KFL1B.GE.1.AND.KFL1B.LE.4) + & KTAB1=6+KFL1A*(KFL1A-2)+2*KFL1B+(KFL1S-1)/2 + IF(KFL1A.GE.1.AND.KFL1A.LE.4.AND.KFL1A.EQ.KFL1B) KTAB1=KTAB1-1 + IF(KF1A.GE.1.AND.KF1A.LE.6) KFL1A=KF1A + KTAB2=0 + IF(KF2A.NE.0) THEN + KTAB2=-1 + IF(KF2A.GE.1.AND.KF2A.LE.6) KTAB2=KF2A + KFL2A=MOD(KF2A/1000,10) + KFL2B=MOD(KF2A/100,10) + KFL2S=MOD(KF2A,10) + IF(KFL2A.GE.1.AND.KFL2A.LE.4.AND.KFL2B.GE.1.AND.KFL2B.LE.4) + & KTAB2=6+KFL2A*(KFL2A-2)+2*KFL2B+(KFL2S-1)/2 + IF(KFL2A.GE.1.AND.KFL2A.LE.4.AND.KFL2A.EQ.KFL2B) KTAB2=KTAB2-1 + ENDIF + IF(KTAB1.GE.0.AND.KTAB2.GE.0) GOTO 150 + ENDIF + +C...Parameters and breaking diquark parameter combinations. + 100 PAR2=PARJ(2) + PAR3=PARJ(3) + PAR4=3.*PARJ(4) + IF(MSTJ(12).GE.2) THEN + PAR3M=SQRT(PARJ(3)) + PAR4M=1./(3.*SQRT(PARJ(4))) + PARDM=PARJ(7)/(PARJ(7)+PAR3M*PARJ(6)) + PARS0=PARJ(5)*(2.+(1.+PAR2*PAR3M*PARJ(7))*(1.+PAR4M)) + PARS1=PARJ(7)*PARS0/(2.*PAR3M)+PARJ(5)*(PARJ(6)*(1.+PAR4M)+ + & PAR2*PAR3M*PARJ(6)*PARJ(7)) + PARS2=PARJ(5)*2.*PARJ(6)*PARJ(7)*(PAR2*PARJ(7)+(1.+PAR4M)/PAR3M) + PARSM=MAX(PARS0,PARS1,PARS2) + PAR4=PAR4*(1.+PARSM)/(1.+PARSM/(3.*PAR4M)) + ENDIF + +C...Choice of whether to generate meson or baryon. + 110 MBARY=0 + KFDA=0 + IF(KF1A.LE.10) THEN + IF(KF2A.EQ.0.AND.MSTJ(12).GE.1.AND.(1.+PARJ(1))*RLY(0).GT.1.) + & MBARY=1 + IF(KF2A.GT.10) MBARY=2 + IF(KF2A.GT.10.AND.KF2A.LE.10000) KFDA=KF2A + ELSE + MBARY=2 + IF(KF1A.LE.10000) KFDA=KF1A + ENDIF + +C...Possibility of process diquark -> meson + new diquark. + IF(KFDA.NE.0.AND.MSTJ(12).GE.2) THEN + KFLDA=MOD(KFDA/1000,10) + KFLDB=MOD(KFDA/100,10) + KFLDS=MOD(KFDA,10) + WTDQ=PARS0 + IF(MAX(KFLDA,KFLDB).EQ.3) WTDQ=PARS1 + IF(MIN(KFLDA,KFLDB).EQ.3) WTDQ=PARS2 + IF(KFLDS.EQ.1) WTDQ=WTDQ/(3.*PAR4M) + IF((1.+WTDQ)*RLY(0).GT.1.) MBARY=-1 + IF(MBARY.EQ.-1.AND.KF2A.NE.0) RETURN + ENDIF + +C...Flavour for meson, possibly with new flavour. + IF(MBARY.LE.0) THEN + KFS=ISIGN(1,KFL1) + IF(MBARY.EQ.0) THEN + IF(KF2A.EQ.0) KFL3=ISIGN(1+INT((2.+PAR2)*RLY(0)),-KFL1) + KFLA=MAX(KF1A,KF2A+IABS(KFL3)) + KFLB=MIN(KF1A,KF2A+IABS(KFL3)) + IF(KFLA.NE.KF1A) KFS=-KFS + +C...Splitting of diquark into meson plus new diquark. + ELSE + KFL1A=MOD(KF1A/1000,10) + KFL1B=MOD(KF1A/100,10) + 120 KFL1D=KFL1A+INT(RLY(0)+0.5)*(KFL1B-KFL1A) + KFL1E=KFL1A+KFL1B-KFL1D + IF((KFL1D.EQ.3.AND.RLY(0).GT.PARDM).OR.(KFL1E.EQ.3.AND. + & RLY(0).LT.PARDM)) THEN + KFL1D=KFL1A+KFL1B-KFL1D + KFL1E=KFL1A+KFL1B-KFL1E + ENDIF + KFL3A=1+INT((2.+PAR2*PAR3M*PARJ(7))*RLY(0)) + IF((KFL1E.NE.KFL3A.AND.RLY(0).GT.(1.+PAR4M)/MAX(2.,1.+PAR4M)) + & .OR.(KFL1E.EQ.KFL3A.AND.RLY(0).GT.2./MAX(2.,1.+PAR4M))) + & GOTO 120 + KFLDS=3 + IF(KFL1E.NE.KFL3A) KFLDS=2*INT(RLY(0)+1./(1.+PAR4M))+1 + KFL3=ISIGN(10000+1000*MAX(KFL1E,KFL3A)+100*MIN(KFL1E,KFL3A)+ + & KFLDS,-KFL1) + KFLA=MAX(KFL1D,KFL3A) + KFLB=MIN(KFL1D,KFL3A) + IF(KFLA.NE.KFL1D) KFS=-KFS + ENDIF + +C...Form meson, with spin and flavour mixing for diagonal states. + IF(KFLA.LE.2) KMUL=INT(PARJ(11)+RLY(0)) + IF(KFLA.EQ.3) KMUL=INT(PARJ(12)+RLY(0)) + IF(KFLA.GE.4) KMUL=INT(PARJ(13)+RLY(0)) + IF(KMUL.EQ.0.AND.PARJ(14).GT.0.) THEN + IF(RLY(0).LT.PARJ(14)) KMUL=2 + ELSEIF(KMUL.EQ.1.AND.PARJ(15)+PARJ(16)+PARJ(17).GT.0.) THEN + RMUL=RLY(0) + IF(RMUL.LT.PARJ(15)) KMUL=3 + IF(KMUL.EQ.1.AND.RMUL.LT.PARJ(15)+PARJ(16)) KMUL=4 + IF(KMUL.EQ.1.AND.RMUL.LT.PARJ(15)+PARJ(16)+PARJ(17)) KMUL=5 + ENDIF + KFLS=3 + IF(KMUL.EQ.0.OR.KMUL.EQ.3) KFLS=1 + IF(KMUL.EQ.5) KFLS=5 + IF(KFLA.NE.KFLB) THEN + KF=(100*KFLA+10*KFLB+KFLS)*KFS*(-1)**KFLA + ELSE + RMIX=RLY(0) + IMIX=2*KFLA+10*KMUL + IF(KFLA.LE.3) KF=110*(1+INT(RMIX+PARF(IMIX-1))+ + & INT(RMIX+PARF(IMIX)))+KFLS + IF(KFLA.GE.4) KF=110*KFLA+KFLS + ENDIF + IF(KMUL.EQ.2.OR.KMUL.EQ.3) KF=KF+ISIGN(10000,KF) + IF(KMUL.EQ.4) KF=KF+ISIGN(20000,KF) + +C...Optional extra suppression of eta and eta'. + IF(KF.EQ.221) THEN + IF(RLY(0).GT.PARJ(25)) GOTO 110 + ELSEIF(KF.EQ.331) THEN + IF(RLY(0).GT.PARJ(26)) GOTO 110 + ENDIF + +C...Generate diquark flavour. + ELSE + 130 IF(KF1A.LE.10.AND.KF2A.EQ.0) THEN + KFLA=KF1A + 140 KFLB=1+INT((2.+PAR2*PAR3)*RLY(0)) + KFLC=1+INT((2.+PAR2*PAR3)*RLY(0)) + KFLDS=1 + IF(KFLB.GE.KFLC) KFLDS=3 + IF(KFLDS.EQ.1.AND.PAR4*RLY(0).GT.1.) GOTO 140 + IF(KFLDS.EQ.3.AND.PAR4.LT.RLY(0)) GOTO 140 + KFL3=ISIGN(1000*MAX(KFLB,KFLC)+100*MIN(KFLB,KFLC)+KFLDS,KFL1) + +C...Take diquark flavour from input. + ELSEIF(KF1A.LE.10) THEN + KFLA=KF1A + KFLB=MOD(KF2A/1000,10) + KFLC=MOD(KF2A/100,10) + KFLDS=MOD(KF2A,10) + +C...Generate (or take from input) quark to go with diquark. + ELSE + IF(KF2A.EQ.0) KFL3=ISIGN(1+INT((2.+PAR2)*RLY(0)),KFL1) + KFLA=KF2A+IABS(KFL3) + KFLB=MOD(KF1A/1000,10) + KFLC=MOD(KF1A/100,10) + KFLDS=MOD(KF1A,10) + ENDIF + +C...SU(6) factors for formation of baryon. Try again if fails. + KBARY=KFLDS + IF(KFLDS.EQ.3.AND.KFLB.NE.KFLC) KBARY=5 + IF(KFLA.NE.KFLB.AND.KFLA.NE.KFLC) KBARY=KBARY+1 + WT=PARF(60+KBARY)+PARJ(18)*PARF(70+KBARY) + IF(MBARY.EQ.1.AND.MSTJ(12).GE.2) THEN + WTDQ=PARS0 + IF(MAX(KFLB,KFLC).EQ.3) WTDQ=PARS1 + IF(MIN(KFLB,KFLC).EQ.3) WTDQ=PARS2 + IF(KFLDS.EQ.1) WTDQ=WTDQ/(3.*PAR4M) + IF(KFLDS.EQ.1) WT=WT*(1.+WTDQ)/(1.+PARSM/(3.*PAR4M)) + IF(KFLDS.EQ.3) WT=WT*(1.+WTDQ)/(1.+PARSM) + ENDIF + IF(KF2A.EQ.0.AND.WT.LT.RLY(0)) GOTO 130 + +C...Form baryon. Distinguish Lambda- and Sigmalike baryons. + KFLD=MAX(KFLA,KFLB,KFLC) + KFLF=MIN(KFLA,KFLB,KFLC) + KFLE=KFLA+KFLB+KFLC-KFLD-KFLF + KFLS=2 + IF((PARF(60+KBARY)+PARJ(18)*PARF(70+KBARY))*RLY(0).GT. + & PARF(60+KBARY)) KFLS=4 + KFLL=0 + IF(KFLS.EQ.2.AND.KFLD.GT.KFLE.AND.KFLE.GT.KFLF) THEN + IF(KFLDS.EQ.1.AND.KFLA.EQ.KFLD) KFLL=1 + IF(KFLDS.EQ.1.AND.KFLA.NE.KFLD) KFLL=INT(0.25+RLY(0)) + IF(KFLDS.EQ.3.AND.KFLA.NE.KFLD) KFLL=INT(0.75+RLY(0)) + ENDIF + IF(KFLL.EQ.0) KF=ISIGN(1000*KFLD+100*KFLE+10*KFLF+KFLS,KFL1) + IF(KFLL.EQ.1) KF=ISIGN(1000*KFLD+100*KFLF+10*KFLE+KFLS,KFL1) + ENDIF + RETURN + +C...Use tabulated probabilities to select new flavour and hadron. + 150 IF(KTAB2.EQ.0.AND.MSTJ(12).LE.0) THEN + KT3L=1 + KT3U=6 + ELSEIF(KTAB2.EQ.0.AND.KTAB1.GE.7.AND.MSTJ(12).LE.1) THEN + KT3L=1 + KT3U=6 + ELSEIF(KTAB2.EQ.0) THEN + KT3L=1 + KT3U=22 + ELSE + KT3L=KTAB2 + KT3U=KTAB2 + ENDIF + RFL=0. + DO 170 KTS=0,2 + DO 160 KT3=KT3L,KT3U + RFL=RFL+PARF(120+80*KTAB1+25*KTS+KT3) + 160 CONTINUE + 170 CONTINUE + RFL=RLY(0)*RFL + DO 190 KTS=0,2 + KTABS=KTS + DO 180 KT3=KT3L,KT3U + KTAB3=KT3 + RFL=RFL-PARF(120+80*KTAB1+25*KTS+KT3) + IF(RFL.LE.0.) GOTO 200 + 180 CONTINUE + 190 CONTINUE + 200 CONTINUE + +C...Reconstruct flavour of produced quark/diquark. + IF(KTAB3.LE.6) THEN + KFL3A=KTAB3 + KFL3B=0 + KFL3=ISIGN(KFL3A,KFL1*(2*KTAB1-13)) + ELSE + KFL3A=1 + IF(KTAB3.GE.8) KFL3A=2 + IF(KTAB3.GE.11) KFL3A=3 + IF(KTAB3.GE.16) KFL3A=4 + KFL3B=(KTAB3-6-KFL3A*(KFL3A-2))/2 + KFL3=1000*KFL3A+100*KFL3B+1 + IF(KFL3A.EQ.KFL3B.OR.KTAB3.NE.6+KFL3A*(KFL3A-2)+2*KFL3B) KFL3= + & KFL3+2 + KFL3=ISIGN(KFL3,KFL1*(13-2*KTAB1)) + ENDIF + +C...Reconstruct meson code. + IF(KFL3A.EQ.KFL1A.AND.KFL3B.EQ.KFL1B.AND.(KFL3A.LE.3.OR. + &KFL3B.NE.0)) THEN + RFL=RLY(0)*(PARF(143+80*KTAB1+25*KTABS)+PARF(144+80*KTAB1+ + & 25*KTABS)+PARF(145+80*KTAB1+25*KTABS)) + KF=110+2*KTABS+1 + IF(RFL.GT.PARF(143+80*KTAB1+25*KTABS)) KF=220+2*KTABS+1 + IF(RFL.GT.PARF(143+80*KTAB1+25*KTABS)+PARF(144+80*KTAB1+ + & 25*KTABS)) KF=330+2*KTABS+1 + ELSEIF(KTAB1.LE.6.AND.KTAB3.LE.6) THEN + KFLA=MAX(KTAB1,KTAB3) + KFLB=MIN(KTAB1,KTAB3) + KFS=ISIGN(1,KFL1) + IF(KFLA.NE.KF1A) KFS=-KFS + KF=(100*KFLA+10*KFLB+2*KTABS+1)*KFS*(-1)**KFLA + ELSEIF(KTAB1.GE.7.AND.KTAB3.GE.7) THEN + KFS=ISIGN(1,KFL1) + IF(KFL1A.EQ.KFL3A) THEN + KFLA=MAX(KFL1B,KFL3B) + KFLB=MIN(KFL1B,KFL3B) + IF(KFLA.NE.KFL1B) KFS=-KFS + ELSEIF(KFL1A.EQ.KFL3B) THEN + KFLA=KFL3A + KFLB=KFL1B + KFS=-KFS + ELSEIF(KFL1B.EQ.KFL3A) THEN + KFLA=KFL1A + KFLB=KFL3B + ELSEIF(KFL1B.EQ.KFL3B) THEN + KFLA=MAX(KFL1A,KFL3A) + KFLB=MIN(KFL1A,KFL3A) + IF(KFLA.NE.KFL1A) KFS=-KFS + ELSE + CALL LYERRM(2,'(LYKFDI:) no matching flavours for qq -> qq') + GOTO 100 + ENDIF + KF=(100*KFLA+10*KFLB+2*KTABS+1)*KFS*(-1)**KFLA + +C...Reconstruct baryon code. + ELSE + IF(KTAB1.GE.7) THEN + KFLA=KFL3A + KFLB=KFL1A + KFLC=KFL1B + ELSE + KFLA=KFL1A + KFLB=KFL3A + KFLC=KFL3B + ENDIF + KFLD=MAX(KFLA,KFLB,KFLC) + KFLF=MIN(KFLA,KFLB,KFLC) + KFLE=KFLA+KFLB+KFLC-KFLD-KFLF + IF(KTABS.EQ.0) KF=ISIGN(1000*KFLD+100*KFLF+10*KFLE+2,KFL1) + IF(KTABS.GE.1) KF=ISIGN(1000*KFLD+100*KFLE+10*KFLF+2*KTABS,KFL1) + ENDIF + +C...Check that constructed flavour code is an allowed one. + IF(KFL2.NE.0) KFL3=0 + KC=LYCOMP(KF) + IF(KC.EQ.0) THEN + CALL LYERRM(2,'(LYKFDI:) user-defined flavour probabilities '// + & 'failed') + GOTO 100 + ENDIF + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYPTDI(KFL,PX,PY) + +C...Purpose: to generate transverse momentum according to a Gaussian. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /LYDAT1/ + +C...Generate p_T and azimuthal angle, gives p_x and p_y. + KFLA=IABS(KFL) + PT=PARJ(21)*SQRT(-LOG(MAX(1E-10,RLY(0)))) + IF(PARJ(23).GT.RLY(0)) PT=PARJ(24)*PT + IF(MSTJ(91).EQ.1) PT=PARJ(22)*PT + IF(KFLA.EQ.0.AND.MSTJ(13).LE.0) PT=0. + PHI=PARU(2)*RLY(0) + PX=PT*COS(PHI) + PY=PT*SIN(PHI) + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYZDIS(KFL1,KFL2,PR,Z) + +C...Purpose: to generate the longitudinal splitting variable z. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYDAT1/,/LYDAT2/ + +C...Check if heavy flavour fragmentation. + KFLA=IABS(KFL1) + KFLB=IABS(KFL2) + KFLH=KFLA + IF(KFLA.GE.10) KFLH=MOD(KFLA/1000,10) + +C...Lund symmetric scaling function: determine parameters of shape. + IF(MSTJ(11).EQ.1.OR.(MSTJ(11).EQ.3.AND.KFLH.LE.3).OR. + &MSTJ(11).GE.4) THEN + FA=PARJ(41) + IF(MSTJ(91).EQ.1) FA=PARJ(43) + IF(KFLB.GE.10) FA=FA+PARJ(45) + FBB=PARJ(42) + IF(MSTJ(91).EQ.1) FBB=PARJ(44) + FB=FBB*PR + FC=1. + IF(KFLA.GE.10) FC=FC-PARJ(45) + IF(KFLB.GE.10) FC=FC+PARJ(45) + IF(MSTJ(11).GE.4.AND.KFLH.GE.4.AND.KFLH.LE.5) THEN + FRED=PARJ(46) + IF(MSTJ(11).EQ.5.AND.KFLH.EQ.5) FRED=PARJ(47) + FC=FC+FRED*FBB*PARF(100+KFLH)**2 + ELSEIF(MSTJ(11).GE.4.AND.KFLH.GE.6.AND.KFLH.LE.8) THEN + FRED=PARJ(46) + IF(MSTJ(11).EQ.5) FRED=PARJ(48) + FC=FC+FRED*FBB*PMAS(KFLH,1)**2 + ENDIF + MC=1 + IF(ABS(FC-1.).GT.0.01) MC=2 + +C...Determine position of maximum. Special cases for a = 0 or a = c. + IF(FA.LT.0.02) THEN + MA=1 + ZMAX=1. + IF(FC.GT.FB) ZMAX=FB/FC + ELSEIF(ABS(FC-FA).LT.0.01) THEN + MA=2 + ZMAX=FB/(FB+FC) + ELSE + MA=3 + ZMAX=0.5*(FB+FC-SQRT((FB-FC)**2+4.*FA*FB))/(FC-FA) + IF(ZMAX.GT.0.9999.AND.FB.GT.100.) ZMAX=MIN(ZMAX,1.-FA/FB) + ENDIF + +C...Subdivide z range if distribution very peaked near endpoint. + MMAX=2 + IF(ZMAX.LT.0.1) THEN + MMAX=1 + ZDIV=2.75*ZMAX + IF(MC.EQ.1) THEN + FINT=1.-LOG(ZDIV) + ELSE + ZDIVC=ZDIV**(1.-FC) + FINT=1.+(1.-1./ZDIVC)/(FC-1.) + ENDIF + ELSEIF(ZMAX.GT.0.85.AND.FB.GT.1.) THEN + MMAX=3 + FSCB=SQRT(4.+(FC/FB)**2) + ZDIV=FSCB-1./ZMAX-(FC/FB)*LOG(ZMAX*0.5*(FSCB+FC/FB)) + IF(MA.GE.2) ZDIV=ZDIV+(FA/FB)*LOG(1.-ZMAX) + ZDIV=MIN(ZMAX,MAX(0.,ZDIV)) + FINT=1.+FB*(1.-ZDIV) + ENDIF + +C...Choice of z, preweighted for peaks at low or high z. + 100 Z=RLY(0) + FPRE=1. + IF(MMAX.EQ.1) THEN + IF(FINT*RLY(0).LE.1.) THEN + Z=ZDIV*Z + ELSEIF(MC.EQ.1) THEN + Z=ZDIV**Z + FPRE=ZDIV/Z + ELSE + Z=(ZDIVC+Z*(1.-ZDIVC))**(1./(1.-FC)) + FPRE=(ZDIV/Z)**FC + ENDIF + ELSEIF(MMAX.EQ.3) THEN + IF(FINT*RLY(0).LE.1.) THEN + Z=ZDIV+LOG(Z)/FB + FPRE=EXP(FB*(Z-ZDIV)) + ELSE + Z=ZDIV+Z*(1.-ZDIV) + ENDIF + ENDIF + +C...Weighting according to correct formula. + IF(Z.LE.0..OR.Z.GE.1.) GOTO 100 + FEXP=FC*LOG(ZMAX/Z)+FB*(1./ZMAX-1./Z) + IF(MA.GE.2) FEXP=FEXP+FA*LOG((1.-Z)/(1.-ZMAX)) + FVAL=EXP(MAX(-50.,MIN(50.,FEXP))) + IF(FVAL.LT.RLY(0)*FPRE) GOTO 100 + +C...Generate z according to Field-Feynman, SLAC, (1-z)**c OR z**c. + ELSE + FC=PARJ(50+MAX(1,KFLH)) + IF(MSTJ(91).EQ.1) FC=PARJ(59) + 110 Z=RLY(0) + IF(FC.GE.0..AND.FC.LE.1.) THEN + IF(FC.GT.RLY(0)) Z=1.-Z**(1./3.) + ELSEIF(FC.GT.-1.AND.FC.LT.0.) THEN + IF(-4.*FC*Z*(1.-Z)**2.LT.RLY(0)*((1.-Z)**2-FC*Z)**2) GOTO 110 + ELSE + IF(FC.GT.0.) Z=1.-Z**(1./FC) + IF(FC.LT.0.) Z=Z**(-1./FC) + ENDIF + ENDIF + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYSHOW(IP1,IP2,QMAX) + +C...Purpose: to generate timelike parton showers from given partons. + IMPLICIT DOUBLE PRECISION(D) + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + DIMENSION PMTH(5,50),PS(5),PMA(4),PMSD(4),IEP(4),IPA(4), + &KFLA(4),KFLD(4),KFL(4),ITRY(4),ISI(4),ISL(4),DP(4),DPT(5,4), + &KSH(0:40),KCII(2),NIIS(2),IIIS(2,2),THEIIS(2,2),PHIIIS(2,2), + &ISII(2) + +C...Initialization of cutoff masses etc. + IF(MSTJ(41).LE.0.OR.(MSTJ(41).EQ.1.AND.QMAX.LE.PARJ(82)).OR. + &QMAX.LE.MIN(PARJ(82),PARJ(83))) RETURN + DO 100 IFL=0,40 + KSH(IFL)=0 + 100 CONTINUE + KSH(21)=1 + PMTH(1,21)=UYMASS(21) + PMTH(2,21)=SQRT(PMTH(1,21)**2+0.25*PARJ(82)**2) + PMTH(3,21)=2.*PMTH(2,21) + PMTH(4,21)=PMTH(3,21) + PMTH(5,21)=PMTH(3,21) + PMTH(1,22)=UYMASS(22) + PMTH(2,22)=SQRT(PMTH(1,22)**2+0.25*PARJ(83)**2) + PMTH(3,22)=2.*PMTH(2,22) + PMTH(4,22)=PMTH(3,22) + PMTH(5,22)=PMTH(3,22) + PMQTH1=PARJ(82) + IF(MSTJ(41).GE.2) PMQTH1=MIN(PARJ(82),PARJ(83)) + PMQTH2=PMTH(2,21) + IF(MSTJ(41).GE.2) PMQTH2=MIN(PMTH(2,21),PMTH(2,22)) + DO 110 IFL=1,8 + KSH(IFL)=1 + PMTH(1,IFL)=UYMASS(IFL) + PMTH(2,IFL)=SQRT(PMTH(1,IFL)**2+0.25*PMQTH1**2) + PMTH(3,IFL)=PMTH(2,IFL)+PMQTH2 + PMTH(4,IFL)=SQRT(PMTH(1,IFL)**2+0.25*PARJ(82)**2)+PMTH(2,21) + PMTH(5,IFL)=SQRT(PMTH(1,IFL)**2+0.25*PARJ(83)**2)+PMTH(2,22) + 110 CONTINUE + DO 120 IFL=11,17,2 + IF(MSTJ(41).GE.2) KSH(IFL)=1 + PMTH(1,IFL)=UYMASS(IFL) + PMTH(2,IFL)=SQRT(PMTH(1,IFL)**2+0.25*PARJ(83)**2) + PMTH(3,IFL)=PMTH(2,IFL)+PMTH(2,22) + PMTH(4,IFL)=PMTH(3,IFL) + PMTH(5,IFL)=PMTH(3,IFL) + 120 CONTINUE + PT2MIN=MAX(0.5*PARJ(82),1.1*PARJ(81))**2 + ALAMS=PARJ(81)**2 + ALFM=LOG(PT2MIN/ALAMS) + +C...Store positions of shower initiating partons. + IF(IP1.GT.0.AND.IP1.LE.MIN(N,MSTU(4)-MSTU(32)).AND.IP2.EQ.0) THEN + NPA=1 + IPA(1)=IP1 + ELSEIF(MIN(IP1,IP2).GT.0.AND.MAX(IP1,IP2).LE.MIN(N,MSTU(4)- + &MSTU(32))) THEN + NPA=2 + IPA(1)=IP1 + IPA(2)=IP2 + ELSEIF(IP1.GT.0.AND.IP1.LE.MIN(N,MSTU(4)-MSTU(32)).AND.IP2.LT.0 + &.AND.IP2.GE.-3) THEN + NPA=IABS(IP2) + DO 130 I=1,NPA + IPA(I)=IP1+I-1 + 130 CONTINUE + ELSE + CALL LYERRM(12, + & '(LYSHOW:) failed to reconstruct showering system') + IF(MSTU(21).GE.1) RETURN + ENDIF + +C...Check on phase space available for emission. + IREJ=0 + DO 140 J=1,5 + PS(J)=0. + 140 CONTINUE + PM=0. + DO 160 I=1,NPA + KFLA(I)=IABS(K(IPA(I),2)) + PMA(I)=P(IPA(I),5) +C...Special cutoff masses for t, l, h with variable masses. + IFLA=KFLA(I) + IF(KFLA(I).GE.6.AND.KFLA(I).LE.8) THEN + IFLA=37+KFLA(I)+ISIGN(2,K(IPA(I),2)) + PMTH(1,IFLA)=PMA(I) + PMTH(2,IFLA)=SQRT(PMTH(1,IFLA)**2+0.25*PMQTH1**2) + PMTH(3,IFLA)=PMTH(2,IFLA)+PMQTH2 + PMTH(4,IFLA)=SQRT(PMTH(1,IFLA)**2+0.25*PARJ(82)**2)+PMTH(2,21) + PMTH(5,IFLA)=SQRT(PMTH(1,IFLA)**2+0.25*PARJ(83)**2)+PMTH(2,22) + ENDIF + IF(KFLA(I).LE.40) THEN + IF(KSH(KFLA(I)).EQ.1) PMA(I)=PMTH(3,IFLA) + ENDIF + PM=PM+PMA(I) + IF(KFLA(I).GT.40) THEN + IREJ=IREJ+1 + ELSE + IF(KSH(KFLA(I)).EQ.0.OR.PMA(I).GT.QMAX) IREJ=IREJ+1 + ENDIF + DO 150 J=1,4 + PS(J)=PS(J)+P(IPA(I),J) + 150 CONTINUE + 160 CONTINUE + IF(IREJ.EQ.NPA) RETURN + PS(5)=SQRT(MAX(0.,PS(4)**2-PS(1)**2-PS(2)**2-PS(3)**2)) + IF(NPA.EQ.1) PS(5)=PS(4) + IF(PS(5).LE.PM+PMQTH1) RETURN + +C...Check if 3-jet matrix elements to be used. + M3JC=0 + IF(NPA.EQ.2.AND.MSTJ(47).GE.1) THEN + IF(KFLA(1).GE.1.AND.KFLA(1).LE.8.AND.KFLA(2).GE.1.AND. + & KFLA(2).LE.8) M3JC=1 + IF((KFLA(1).EQ.11.OR.KFLA(1).EQ.13.OR.KFLA(1).EQ.15.OR. + & KFLA(1).EQ.17).AND.KFLA(2).EQ.KFLA(1)) M3JC=1 + IF((KFLA(1).EQ.11.OR.KFLA(1).EQ.13.OR.KFLA(1).EQ.15.OR. + & KFLA(1).EQ.17).AND.KFLA(2).EQ.KFLA(1)+1) M3JC=1 + IF((KFLA(1).EQ.12.OR.KFLA(1).EQ.14.OR.KFLA(1).EQ.16.OR. + & KFLA(1).EQ.18).AND.KFLA(2).EQ.KFLA(1)-1) M3JC=1 + IF(MSTJ(47).EQ.2.OR.MSTJ(47).EQ.4) M3JC=1 + M3JCM=0 + IF(M3JC.EQ.1.AND.MSTJ(47).GE.3.AND.KFLA(1).EQ.KFLA(2)) THEN + M3JCM=1 + QME=(2.*PMTH(1,KFLA(1))/PS(5))**2 + ENDIF + ENDIF + +C...Find if interference with initial state partons. + MIIS=0 + IF(MSTJ(50).GE.1.AND.MSTJ(50).LE.3.AND.NPA.EQ.2) MIIS=MSTJ(50) + IF(MIIS.NE.0) THEN + DO 180 I=1,2 + KCII(I)=0 + KCA=LYCOMP(KFLA(I)) + IF(KCA.NE.0) KCII(I)=KCHG(KCA,2)*ISIGN(1,K(IPA(I),2)) + NIIS(I)=0 + IF(KCII(I).NE.0) THEN + DO 170 J=1,2 + ICSI=MOD(K(IPA(I),3+J)/MSTU(5),MSTU(5)) + IF(ICSI.GT.0.AND.ICSI.NE.IPA(1).AND.ICSI.NE.IPA(2).AND. + & (KCII(I).EQ.(-1)**(J+1).OR.KCII(I).EQ.2)) THEN + NIIS(I)=NIIS(I)+1 + IIIS(I,NIIS(I))=ICSI + ENDIF + 170 CONTINUE + ENDIF + 180 CONTINUE + IF(NIIS(1)+NIIS(2).EQ.0) MIIS=0 + ENDIF + +C...Boost interfering initial partons to rest frame +C...and reconstruct their polar and azimuthal angles. + IF(MIIS.NE.0) THEN + DO 200 I=1,2 + DO 190 J=1,5 + K(N+I,J)=K(IPA(I),J) + P(N+I,J)=P(IPA(I),J) + V(N+I,J)=0. + 190 CONTINUE + 200 CONTINUE + DO 220 I=3,2+NIIS(1) + DO 210 J=1,5 + K(N+I,J)=K(IIIS(1,I-2),J) + P(N+I,J)=P(IIIS(1,I-2),J) + V(N+I,J)=0. + 210 CONTINUE + 220 CONTINUE + DO 240 I=3+NIIS(1),2+NIIS(1)+NIIS(2) + DO 230 J=1,5 + K(N+I,J)=K(IIIS(2,I-2-NIIS(1)),J) + P(N+I,J)=P(IIIS(2,I-2-NIIS(1)),J) + V(N+I,J)=0. + 230 CONTINUE + 240 CONTINUE + CALL LUDBRB(N+1,N+2+NIIS(1)+NIIS(2),0.,0.,-DBLE(PS(1)/PS(4)), + & -DBLE(PS(2)/PS(4)),-DBLE(PS(3)/PS(4))) + PHI=UYANGL(P(N+1,1),P(N+1,2)) + CALL LUDBRB(N+1,N+2+NIIS(1)+NIIS(2),0.,-PHI,0D0,0D0,0D0) + THE=UYANGL(P(N+1,3),P(N+1,1)) + CALL LUDBRB(N+1,N+2+NIIS(1)+NIIS(2),-THE,0.,0D0,0D0,0D0) + DO 250 I=3,2+NIIS(1) + THEIIS(1,I-2)=UYANGL(P(N+I,3),SQRT(P(N+I,1)**2+P(N+I,2)**2)) + PHIIIS(1,I-2)=UYANGL(P(N+I,1),P(N+I,2)) + 250 CONTINUE + DO 260 I=3+NIIS(1),2+NIIS(1)+NIIS(2) + THEIIS(2,I-2-NIIS(1))=PARU(1)-UYANGL(P(N+I,3), + & SQRT(P(N+I,1)**2+P(N+I,2)**2)) + PHIIIS(2,I-2-NIIS(1))=UYANGL(P(N+I,1),P(N+I,2)) + 260 CONTINUE + ENDIF + +C...Define imagined single initiator of shower for parton system. + NS=N + IF(N.GT.MSTU(4)-MSTU(32)-5) THEN + CALL LYERRM(11,'(LYSHOW:) no more memory left in LUJETS') + IF(MSTU(21).GE.1) RETURN + ENDIF + IF(NPA.GE.2) THEN + K(N+1,1)=11 + K(N+1,2)=21 + K(N+1,3)=0 + K(N+1,4)=0 + K(N+1,5)=0 + P(N+1,1)=0. + P(N+1,2)=0. + P(N+1,3)=0. + P(N+1,4)=PS(5) + P(N+1,5)=PS(5) + V(N+1,5)=PS(5)**2 + N=N+1 + ENDIF + +C...Loop over partons that may branch. + NEP=NPA + IM=NS + IF(NPA.EQ.1) IM=NS-1 + 270 IM=IM+1 + IF(N.GT.NS) THEN + IF(IM.GT.N) GOTO 510 + KFLM=IABS(K(IM,2)) + IF(KFLM.GT.40) GOTO 270 + IF(KSH(KFLM).EQ.0) GOTO 270 + IFLM=KFLM + IF(KFLM.GE.6.AND.KFLM.LE.8) IFLM=37+KFLM+ISIGN(2,K(IM,2)) + IF(P(IM,5).LT.PMTH(2,IFLM)) GOTO 270 + IGM=K(IM,3) + ELSE + IGM=-1 + ENDIF + IF(N+NEP.GT.MSTU(4)-MSTU(32)-5) THEN + CALL LYERRM(11,'(LYSHOW:) no more memory left in LUJETS') + IF(MSTU(21).GE.1) RETURN + ENDIF + +C...Position of aunt (sister to branching parton). +C...Origin and flavour of daughters. + IAU=0 + IF(IGM.GT.0) THEN + IF(K(IM-1,3).EQ.IGM) IAU=IM-1 + IF(N.GE.IM+1.AND.K(IM+1,3).EQ.IGM) IAU=IM+1 + ENDIF + IF(IGM.GE.0) THEN + K(IM,4)=N+1 + DO 280 I=1,NEP + K(N+I,3)=IM + 280 CONTINUE + ELSE + K(N+1,3)=IPA(1) + ENDIF + IF(IGM.LE.0) THEN + DO 290 I=1,NEP + K(N+I,2)=K(IPA(I),2) + 290 CONTINUE + ELSEIF(KFLM.NE.21) THEN + K(N+1,2)=K(IM,2) + K(N+2,2)=K(IM,5) + ELSEIF(K(IM,5).EQ.21) THEN + K(N+1,2)=21 + K(N+2,2)=21 + ELSE + K(N+1,2)=K(IM,5) + K(N+2,2)=-K(IM,5) + ENDIF + +C...Reset flags on daughers and tries made. + DO 300 IP=1,NEP + K(N+IP,1)=3 + K(N+IP,4)=0 + K(N+IP,5)=0 + KFLD(IP)=IABS(K(N+IP,2)) + IF(KCHG(LYCOMP(KFLD(IP)),2).EQ.0) K(N+IP,1)=1 + ITRY(IP)=0 + ISL(IP)=0 + ISI(IP)=0 + IF(KFLD(IP).LE.40) THEN + IF(KSH(KFLD(IP)).EQ.1) ISI(IP)=1 + ENDIF + 300 CONTINUE + ISLM=0 + +C...Maximum virtuality of daughters. + IF(IGM.LE.0) THEN + DO 310 I=1,NPA + IF(NPA.GE.3) P(N+I,4)=(PS(4)*P(IPA(I),4)-PS(1)*P(IPA(I),1)- + & PS(2)*P(IPA(I),2)-PS(3)*P(IPA(I),3))/PS(5) + P(N+I,5)=MIN(QMAX,PS(5)) + IF(NPA.GE.3) P(N+I,5)=MIN(P(N+I,5),P(N+I,4)) + IF(ISI(I).EQ.0) P(N+I,5)=P(IPA(I),5) + 310 CONTINUE + ELSE + IF(MSTJ(43).LE.2) PEM=V(IM,2) + IF(MSTJ(43).GE.3) PEM=P(IM,4) + P(N+1,5)=MIN(P(IM,5),V(IM,1)*PEM) + P(N+2,5)=MIN(P(IM,5),(1.-V(IM,1))*PEM) + IF(K(N+2,2).EQ.22) P(N+2,5)=PMTH(1,22) + ENDIF + DO 320 I=1,NEP + PMSD(I)=P(N+I,5) + IF(ISI(I).EQ.1) THEN + IFLD=KFLD(I) + IF(KFLD(I).GE.6.AND.KFLD(I).LE.8) IFLD=37+KFLD(I)+ + & ISIGN(2,K(N+I,2)) + IF(P(N+I,5).LE.PMTH(3,IFLD)) P(N+I,5)=PMTH(1,IFLD) + ENDIF + V(N+I,5)=P(N+I,5)**2 + 320 CONTINUE + +C...Choose one of the daughters for evolution. + 330 INUM=0 + IF(NEP.EQ.1) INUM=1 + DO 340 I=1,NEP + IF(INUM.EQ.0.AND.ISL(I).EQ.1) INUM=I + 340 CONTINUE + DO 350 I=1,NEP + IF(INUM.EQ.0.AND.ITRY(I).EQ.0.AND.ISI(I).EQ.1) THEN + IFLD=KFLD(I) + IF(KFLD(I).GE.6.AND.KFLD(I).LE.8) IFLD=37+KFLD(I)+ + & ISIGN(2,K(N+I,2)) + IF(P(N+I,5).GE.PMTH(2,IFLD)) INUM=I + ENDIF + 350 CONTINUE + IF(INUM.EQ.0) THEN + RMAX=0. + DO 360 I=1,NEP + IF(ISI(I).EQ.1.AND.PMSD(I).GE.PMQTH2) THEN + RPM=P(N+I,5)/PMSD(I) + IFLD=KFLD(I) + IF(KFLD(I).GE.6.AND.KFLD(I).LE.8) IFLD=37+KFLD(I)+ + & ISIGN(2,K(N+I,2)) + IF(RPM.GT.RMAX.AND.P(N+I,5).GE.PMTH(2,IFLD)) THEN + RMAX=RPM + INUM=I + ENDIF + ENDIF + 360 CONTINUE + ENDIF + +C...Store information on choice of evolving daughter. + INUM=MAX(1,INUM) + IEP(1)=N+INUM + DO 370 I=2,NEP + IEP(I)=IEP(I-1)+1 + IF(IEP(I).GT.N+NEP) IEP(I)=N+1 + 370 CONTINUE + DO 380 I=1,NEP + KFL(I)=IABS(K(IEP(I),2)) + 380 CONTINUE + ITRY(INUM)=ITRY(INUM)+1 + IF(ITRY(INUM).GT.200) THEN + CALL LYERRM(14,'(LYSHOW:) caught in infinite loop') + IF(MSTU(21).GE.1) RETURN + ENDIF + Z=0.5 + IF(KFL(1).GT.40) GOTO 430 + IF(KSH(KFL(1)).EQ.0) GOTO 430 + IFL=KFL(1) + IF(KFL(1).GE.6.AND.KFL(1).LE.8) IFL=37+KFL(1)+ + &ISIGN(2,K(IEP(1),2)) + IF(P(IEP(1),5).LT.PMTH(2,IFL)) GOTO 430 + +C...Select side for interference with initial state partons. + IF(MIIS.GE.1.AND.IEP(1).LE.NS+3) THEN + III=IEP(1)-NS-1 + ISII(III)=0 + IF(IABS(KCII(III)).EQ.1.AND.NIIS(III).EQ.1) THEN + ISII(III)=1 + ELSEIF(KCII(III).EQ.2.AND.NIIS(III).EQ.1) THEN + IF(RLY(0).GT.0.5) ISII(III)=1 + ELSEIF(KCII(III).EQ.2.AND.NIIS(III).EQ.2) THEN + ISII(III)=1 + IF(RLY(0).GT.0.5) ISII(III)=2 + ENDIF + ENDIF + +C...Calculate allowed z range. + IF(NEP.EQ.1) THEN + PMED=PS(4) + ELSEIF(IGM.EQ.0.OR.MSTJ(43).LE.2) THEN + PMED=P(IM,5) + ELSE + IF(INUM.EQ.1) PMED=V(IM,1)*PEM + IF(INUM.EQ.2) PMED=(1.-V(IM,1))*PEM + ENDIF + IF(MOD(MSTJ(43),2).EQ.1) THEN + ZC=PMTH(2,21)/PMED + ZCE=PMTH(2,22)/PMED + ELSE + ZC=0.5*(1.-SQRT(MAX(0.,1.-(2.*PMTH(2,21)/PMED)**2))) + IF(ZC.LT.1E-4) ZC=(PMTH(2,21)/PMED)**2 + ZCE=0.5*(1.-SQRT(MAX(0.,1.-(2.*PMTH(2,22)/PMED)**2))) + IF(ZCE.LT.1E-4) ZCE=(PMTH(2,22)/PMED)**2 + ENDIF + ZC=MIN(ZC,0.491) + ZCE=MIN(ZCE,0.491) + IF((MSTJ(41).EQ.1.AND.ZC.GT.0.49).OR.(MSTJ(41).GE.2.AND. + &MIN(ZC,ZCE).GT.0.49)) THEN + P(IEP(1),5)=PMTH(1,IFL) + V(IEP(1),5)=P(IEP(1),5)**2 + GOTO 430 + ENDIF + +C...Integral of Altarelli-Parisi z kernel for QCD. + IF(MSTJ(49).EQ.0.AND.KFL(1).EQ.21) THEN + FBR=6.*LOG((1.-ZC)/ZC)+MSTJ(45)*(0.5-ZC) + ELSEIF(MSTJ(49).EQ.0) THEN + FBR=(8./3.)*LOG((1.-ZC)/ZC) + +C...Integral of Altarelli-Parisi z kernel for scalar gluon. + ELSEIF(MSTJ(49).EQ.1.AND.KFL(1).EQ.21) THEN + FBR=(PARJ(87)+MSTJ(45)*PARJ(88))*(1.-2.*ZC) + ELSEIF(MSTJ(49).EQ.1) THEN + FBR=(1.-2.*ZC)/3. + IF(IGM.EQ.0.AND.M3JC.EQ.1) FBR=4.*FBR + +C...Integral of Altarelli-Parisi z kernel for Abelian vector gluon. + ELSEIF(KFL(1).EQ.21) THEN + FBR=6.*MSTJ(45)*(0.5-ZC) + ELSE + FBR=2.*LOG((1.-ZC)/ZC) + ENDIF + +C...Reset QCD probability for lepton. + IF(KFL(1).GE.11.AND.KFL(1).LE.18) FBR=0. + +C...Integral of Altarelli-Parisi kernel for photon emission. + IF(MSTJ(41).GE.2.AND.KFL(1).GE.1.AND.KFL(1).LE.18) THEN + FBRE=(KCHG(KFL(1),1)/3.)**2*2.*LOG((1.-ZCE)/ZCE) + IF(MSTJ(41).EQ.10) FBRE=PARJ(84)*FBRE + ENDIF + +C...Inner veto algorithm starts. Find maximum mass for evolution. + 390 PMS=V(IEP(1),5) + IF(IGM.GE.0) THEN + PM2=0. + DO 400 I=2,NEP + PM=P(IEP(I),5) + IF(KFL(I).LE.40) THEN + IFLI=KFL(I) + IF(KFL(I).GE.6.AND.KFL(I).LE.8) IFLI=37+KFL(I)+ + & ISIGN(2,K(IEP(I),2)) + IF(KSH(KFL(I)).EQ.1) PM=PMTH(2,IFLI) + ENDIF + PM2=PM2+PM + 400 CONTINUE + PMS=MIN(PMS,(P(IM,5)-PM2)**2) + ENDIF + +C...Select mass for daughter in QCD evolution. + B0=27./6. + DO 410 IFF=4,MSTJ(45) + IF(PMS.GT.4.*PMTH(2,IFF)**2) B0=(33.-2.*IFF)/6. + 410 CONTINUE + IF(FBR.LT.1E-3) THEN + PMSQCD=0. + ELSEIF(MSTJ(44).LE.0) THEN + PMSQCD=PMS*EXP(MAX(-50.,LOG(RLY(0))*PARU(2)/(PARU(111)*FBR))) + ELSEIF(MSTJ(44).EQ.1) THEN + PMSQCD=4.*ALAMS*(0.25*PMS/ALAMS)**(RLY(0)**(B0/FBR)) + ELSE + PMSQCD=PMS*EXP(MAX(-50.,ALFM*B0*LOG(RLY(0))/FBR)) + ENDIF + IF(ZC.GT.0.49.OR.PMSQCD.LE.PMTH(4,IFL)**2) PMSQCD=PMTH(2,IFL)**2 + V(IEP(1),5)=PMSQCD + MCE=1 + +C...Select mass for daughter in QED evolution. + IF(MSTJ(41).GE.2.AND.KFL(1).GE.1.AND.KFL(1).LE.18) THEN + PMSQED=PMS*EXP(MAX(-50.,LOG(RLY(0))*PARU(2)/(PARU(101)*FBRE))) + IF(ZCE.GT.0.49.OR.PMSQED.LE.PMTH(5,IFL)**2) PMSQED= + & PMTH(2,IFL)**2 + IF(PMSQED.GT.PMSQCD) THEN + V(IEP(1),5)=PMSQED + MCE=2 + ENDIF + ENDIF + +C...Check whether daughter mass below cutoff. + P(IEP(1),5)=SQRT(V(IEP(1),5)) + IF(P(IEP(1),5).LE.PMTH(3,IFL)) THEN + P(IEP(1),5)=PMTH(1,IFL) + V(IEP(1),5)=P(IEP(1),5)**2 + GOTO 430 + ENDIF + +C...Select z value of branching: q -> qgamma. + IF(MCE.EQ.2) THEN + Z=1.-(1.-ZCE)*(ZCE/(1.-ZCE))**RLY(0) + IF(1.+Z**2.LT.2.*RLY(0)) GOTO 390 + K(IEP(1),5)=22 + +C...Select z value of branching: q -> qg, g -> gg, g -> qqbar. + ELSEIF(MSTJ(49).NE.1.AND.KFL(1).NE.21) THEN + Z=1.-(1.-ZC)*(ZC/(1.-ZC))**RLY(0) + IF(1.+Z**2.LT.2.*RLY(0)) GOTO 390 + K(IEP(1),5)=21 + ELSEIF(MSTJ(49).EQ.0.AND.MSTJ(45)*(0.5-ZC).LT.RLY(0)*FBR) THEN + Z=(1.-ZC)*(ZC/(1.-ZC))**RLY(0) + IF(RLY(0).GT.0.5) Z=1.-Z + IF((1.-Z*(1.-Z))**2.LT.RLY(0)) GOTO 390 + K(IEP(1),5)=21 + ELSEIF(MSTJ(49).NE.1) THEN + Z=ZC+(1.-2.*ZC)*RLY(0) + IF(Z**2+(1.-Z)**2.LT.RLY(0)) GOTO 390 + KFLB=1+INT(MSTJ(45)*RLY(0)) + PMQ=4.*PMTH(2,KFLB)**2/V(IEP(1),5) + IF(PMQ.GE.1.) GOTO 390 + PMQ0=4.*PMTH(2,21)**2/V(IEP(1),5) + IF(MOD(MSTJ(43),2).EQ.0.AND.(1.+0.5*PMQ)*SQRT(1.-PMQ).LT. + & RLY(0)*(1.+0.5*PMQ0)*SQRT(1.-PMQ0)) GOTO 390 + K(IEP(1),5)=KFLB + +C...Ditto for scalar gluon model. + ELSEIF(KFL(1).NE.21) THEN + Z=1.-SQRT(ZC**2+RLY(0)*(1.-2.*ZC)) + K(IEP(1),5)=21 + ELSEIF(RLY(0)*(PARJ(87)+MSTJ(45)*PARJ(88)).LE.PARJ(87)) THEN + Z=ZC+(1.-2.*ZC)*RLY(0) + K(IEP(1),5)=21 + ELSE + Z=ZC+(1.-2.*ZC)*RLY(0) + KFLB=1+INT(MSTJ(45)*RLY(0)) + PMQ=4.*PMTH(2,KFLB)**2/V(IEP(1),5) + IF(PMQ.GE.1.) GOTO 390 + K(IEP(1),5)=KFLB + ENDIF + IF(MCE.EQ.1.AND.MSTJ(44).GE.2) THEN + IF(Z*(1.-Z)*V(IEP(1),5).LT.PT2MIN) GOTO 390 + IF(ALFM/LOG(V(IEP(1),5)*Z*(1.-Z)/ALAMS).LT.RLY(0)) GOTO 390 + ENDIF + +C...Check if z consistent with chosen m. + IF(KFL(1).EQ.21) THEN + KFLGD1=IABS(K(IEP(1),5)) + KFLGD2=KFLGD1 + ELSE + KFLGD1=KFL(1) + KFLGD2=IABS(K(IEP(1),5)) + ENDIF + IF(NEP.EQ.1) THEN + PED=PS(4) + ELSEIF(NEP.GE.3) THEN + PED=P(IEP(1),4) + ELSEIF(IGM.EQ.0.OR.MSTJ(43).LE.2) THEN + PED=0.5*(V(IM,5)+V(IEP(1),5)-PM2**2)/P(IM,5) + ELSE + IF(IEP(1).EQ.N+1) PED=V(IM,1)*PEM + IF(IEP(1).EQ.N+2) PED=(1.-V(IM,1))*PEM + ENDIF + IF(MOD(MSTJ(43),2).EQ.1) THEN + IFLGD1=KFLGD1 + IF(KFLGD1.GE.6.AND.KFLGD1.LE.8) IFLGD1=IFL + PMQTH3=0.5*PARJ(82) + IF(KFLGD2.EQ.22) PMQTH3=0.5*PARJ(83) + PMQ1=(PMTH(1,IFLGD1)**2+PMQTH3**2)/V(IEP(1),5) + PMQ2=(PMTH(1,KFLGD2)**2+PMQTH3**2)/V(IEP(1),5) + ZD=SQRT(MAX(0.,(1.-V(IEP(1),5)/PED**2)*((1.-PMQ1-PMQ2)**2- + & 4.*PMQ1*PMQ2))) + ZH=1.+PMQ1-PMQ2 + ELSE + ZD=SQRT(MAX(0.,1.-V(IEP(1),5)/PED**2)) + ZH=1. + ENDIF + ZL=0.5*(ZH-ZD) + ZU=0.5*(ZH+ZD) + IF(Z.LT.ZL.OR.Z.GT.ZU) GOTO 390 + IF(KFL(1).EQ.21) V(IEP(1),3)=LOG(ZU*(1.-ZL)/MAX(1E-20,ZL* + &(1.-ZU))) + IF(KFL(1).NE.21) V(IEP(1),3)=LOG((1.-ZL)/MAX(1E-10,1.-ZU)) + +C...Width suppression for q -> q + g. + IF(MSTJ(40).NE.0.AND.KFL(1).NE.21) THEN + IF(IGM.EQ.0) THEN + EGLU=0.5*PS(5)*(1.-Z)*(1.+V(IEP(1),5)/V(NS+1,5)) + ELSE + EGLU=PMED*(1.-Z) + ENDIF + CHI=PARJ(89)**2/(PARJ(89)**2+EGLU**2) + IF(MSTJ(40).EQ.1) THEN + IF(CHI.LT.RLY(0)) GOTO 390 + ELSEIF(MSTJ(40).EQ.2) THEN + IF(1.-CHI.LT.RLY(0)) GOTO 390 + ENDIF + ENDIF + +C...Three-jet matrix element correction. + IF(IGM.EQ.0.AND.M3JC.EQ.1) THEN + X1=Z*(1.+V(IEP(1),5)/V(NS+1,5)) + X2=1.-V(IEP(1),5)/V(NS+1,5) + X3=(1.-X1)+(1.-X2) + IF(MCE.EQ.2) THEN + KI1=K(IPA(INUM),2) + KI2=K(IPA(3-INUM),2) + QF1=KCHG(IABS(KI1),1)*ISIGN(1,KI1)/3. + QF2=KCHG(IABS(KI2),1)*ISIGN(1,KI2)/3. + WSHOW=QF1**2*(1.-X1)/X3*(1.+(X1/(2.-X2))**2)+ + & QF2**2*(1.-X2)/X3*(1.+(X2/(2.-X1))**2) + WME=(QF1*(1.-X1)/X3-QF2*(1.-X2)/X3)**2*(X1**2+X2**2) + ELSEIF(MSTJ(49).NE.1) THEN + WSHOW=1.+(1.-X1)/X3*(X1/(2.-X2))**2+ + & (1.-X2)/X3*(X2/(2.-X1))**2 + WME=X1**2+X2**2 + IF(M3JCM.EQ.1) WME=WME-QME*X3-0.5*QME**2- + & (0.5*QME+0.25*QME**2)*((1.-X2)/MAX(1E-7,1.-X1)+ + & (1.-X1)/MAX(1E-7,1.-X2)) + ELSE + WSHOW=4.*X3*((1.-X1)/(2.-X2)**2+(1.-X2)/(2.-X1)**2) + WME=X3**2 + IF(MSTJ(102).GE.2) WME=X3**2-2.*(1.+X3)*(1.-X1)*(1.-X2)* + & PARJ(171) + ENDIF + IF(WME.LT.RLY(0)*WSHOW) GOTO 390 + +C...Impose angular ordering by rejection of nonordered emission. + ELSEIF(MCE.EQ.1.AND.IGM.GT.0.AND.MSTJ(42).GE.2) THEN + MAOM=1 + ZM=V(IM,1) + IF(IEP(1).EQ.N+2) ZM=1.-V(IM,1) + THE2ID=Z*(1.-Z)*(ZM*P(IM,4))**2/V(IEP(1),5) + IAOM=IM + 420 IF(K(IAOM,5).EQ.22) THEN + IAOM=K(IAOM,3) + IF(K(IAOM,3).LE.NS) MAOM=0 + IF(MAOM.EQ.1) GOTO 420 + ENDIF + IF(MAOM.EQ.1) THEN + THE2IM=V(IAOM,1)*(1.-V(IAOM,1))*P(IAOM,4)**2/V(IAOM,5) + IF(THE2ID.LT.THE2IM) GOTO 390 + ENDIF + ENDIF + +C...Impose user-defined maximum angle at first branching. + IF(MSTJ(48).EQ.1) THEN + IF(NEP.EQ.1.AND.IM.EQ.NS) THEN + THE2ID=Z*(1.-Z)*PS(4)**2/V(IEP(1),5) + IF(THE2ID.LT.1./PARJ(85)**2) GOTO 390 + ELSEIF(NEP.EQ.2.AND.IEP(1).EQ.NS+2) THEN + THE2ID=Z*(1.-Z)*(0.5*P(IM,4))**2/V(IEP(1),5) + IF(THE2ID.LT.1./PARJ(85)**2) GOTO 390 + ELSEIF(NEP.EQ.2.AND.IEP(1).EQ.NS+3) THEN + THE2ID=Z*(1.-Z)*(0.5*P(IM,4))**2/V(IEP(1),5) + IF(THE2ID.LT.1./PARJ(86)**2) GOTO 390 + ENDIF + ENDIF + +C...Impose angular constraint in first branching from interference +C...with initial state partons. + IF(MIIS.GE.2.AND.IEP(1).LE.NS+3) THEN + THE2D=MAX((1.-Z)/Z,Z/(1.-Z))*V(IEP(1),5)/(0.5*P(IM,4))**2 + IF(IEP(1).EQ.NS+2.AND.ISII(1).GE.1) THEN + IF(THE2D.GT.THEIIS(1,ISII(1))**2) GOTO 390 + ELSEIF(IEP(1).EQ.NS+3.AND.ISII(2).GE.1) THEN + IF(THE2D.GT.THEIIS(2,ISII(2))**2) GOTO 390 + ENDIF + ENDIF + +C...End of inner veto algorithm. Check if only one leg evolved so far. + 430 V(IEP(1),1)=Z + ISL(1)=0 + ISL(2)=0 + IF(NEP.EQ.1) GOTO 460 + IF(NEP.EQ.2.AND.P(IEP(1),5)+P(IEP(2),5).GE.P(IM,5)) GOTO 330 + DO 440 I=1,NEP + IF(ITRY(I).EQ.0.AND.KFLD(I).LE.40) THEN + IF(KSH(KFLD(I)).EQ.1) THEN + IFLD=KFLD(I) + IF(KFLD(I).GE.6.AND.KFLD(I).LE.8) IFLD=37+KFLD(I)+ + & ISIGN(2,K(N+I,2)) + IF(P(N+I,5).GE.PMTH(2,IFLD)) GOTO 330 + ENDIF + ENDIF + 440 CONTINUE + +C...Check if chosen multiplet m1,m2,z1,z2 is physical. + IF(NEP.EQ.3) THEN + PA1S=(P(N+1,4)+P(N+1,5))*(P(N+1,4)-P(N+1,5)) + PA2S=(P(N+2,4)+P(N+2,5))*(P(N+2,4)-P(N+2,5)) + PA3S=(P(N+3,4)+P(N+3,5))*(P(N+3,4)-P(N+3,5)) + PTS=0.25*(2.*PA1S*PA2S+2.*PA1S*PA3S+2.*PA2S*PA3S- + & PA1S**2-PA2S**2-PA3S**2)/PA1S + IF(PTS.LE.0.) GOTO 330 + ELSEIF(IGM.EQ.0.OR.MSTJ(43).LE.2.OR.MOD(MSTJ(43),2).EQ.0) THEN + DO 450 I1=N+1,N+2 + KFLDA=IABS(K(I1,2)) + IF(KFLDA.GT.40) GOTO 450 + IF(KSH(KFLDA).EQ.0) GOTO 450 + IFLDA=KFLDA + IF(KFLDA.GE.6.AND.KFLDA.LE.8) IFLDA=37+KFLDA+ + & ISIGN(2,K(I1,2)) + IF(P(I1,5).LT.PMTH(2,IFLDA)) GOTO 450 + IF(KFLDA.EQ.21) THEN + KFLGD1=IABS(K(I1,5)) + KFLGD2=KFLGD1 + ELSE + KFLGD1=KFLDA + KFLGD2=IABS(K(I1,5)) + ENDIF + I2=2*N+3-I1 + IF(IGM.EQ.0.OR.MSTJ(43).LE.2) THEN + PED=0.5*(V(IM,5)+V(I1,5)-V(I2,5))/P(IM,5) + ELSE + IF(I1.EQ.N+1) ZM=V(IM,1) + IF(I1.EQ.N+2) ZM=1.-V(IM,1) + PML=SQRT((V(IM,5)-V(N+1,5)-V(N+2,5))**2- + & 4.*V(N+1,5)*V(N+2,5)) + PED=PEM*(0.5*(V(IM,5)-PML+V(I1,5)-V(I2,5))+PML*ZM)/V(IM,5) + ENDIF + IF(MOD(MSTJ(43),2).EQ.1) THEN + PMQTH3=0.5*PARJ(82) + IF(KFLGD2.EQ.22) PMQTH3=0.5*PARJ(83) + IFLGD1=KFLGD1 + IF(KFLGD1.GE.6.AND.KFLGD1.LE.8) IFLGD1=IFLDA + PMQ1=(PMTH(1,IFLGD1)**2+PMQTH3**2)/V(I1,5) + PMQ2=(PMTH(1,KFLGD2)**2+PMQTH3**2)/V(I1,5) + ZD=SQRT(MAX(0.,(1.-V(I1,5)/PED**2)*((1.-PMQ1-PMQ2)**2- + & 4.*PMQ1*PMQ2))) + ZH=1.+PMQ1-PMQ2 + ELSE + ZD=SQRT(MAX(0.,1.-V(I1,5)/PED**2)) + ZH=1. + ENDIF + ZL=0.5*(ZH-ZD) + ZU=0.5*(ZH+ZD) + IF(I1.EQ.N+1.AND.(V(I1,1).LT.ZL.OR.V(I1,1).GT.ZU)) ISL(1)=1 + IF(I1.EQ.N+2.AND.(V(I1,1).LT.ZL.OR.V(I1,1).GT.ZU)) ISL(2)=1 + IF(KFLDA.EQ.21) V(I1,4)=LOG(ZU*(1.-ZL)/MAX(1E-20,ZL*(1.-ZU))) + IF(KFLDA.NE.21) V(I1,4)=LOG((1.-ZL)/MAX(1E-10,1.-ZU)) + 450 CONTINUE + IF(ISL(1).EQ.1.AND.ISL(2).EQ.1.AND.ISLM.NE.0) THEN + ISL(3-ISLM)=0 + ISLM=3-ISLM + ELSEIF(ISL(1).EQ.1.AND.ISL(2).EQ.1) THEN + ZDR1=MAX(0.,V(N+1,3)/MAX(1E-6,V(N+1,4))-1.) + ZDR2=MAX(0.,V(N+2,3)/MAX(1E-6,V(N+2,4))-1.) + IF(ZDR2.GT.RLY(0)*(ZDR1+ZDR2)) ISL(1)=0 + IF(ISL(1).EQ.1) ISL(2)=0 + IF(ISL(1).EQ.0) ISLM=1 + IF(ISL(2).EQ.0) ISLM=2 + ENDIF + IF(ISL(1).EQ.1.OR.ISL(2).EQ.1) GOTO 330 + ENDIF + IFLD1=KFLD(1) + IF(KFLD(1).GE.6.AND.KFLD(1).LE.8) IFLD1=37+KFLD(1)+ + &ISIGN(2,K(N+1,2)) + IFLD2=KFLD(2) + IF(KFLD(2).GE.6.AND.KFLD(2).LE.8) IFLD2=37+KFLD(2)+ + &ISIGN(2,K(N+2,2)) + IF(IGM.GT.0.AND.MOD(MSTJ(43),2).EQ.1.AND.(P(N+1,5).GE. + &PMTH(2,IFLD1).OR.P(N+2,5).GE.PMTH(2,IFLD2))) THEN + PMQ1=V(N+1,5)/V(IM,5) + PMQ2=V(N+2,5)/V(IM,5) + ZD=SQRT(MAX(0.,(1.-V(IM,5)/PEM**2)*((1.-PMQ1-PMQ2)**2- + & 4.*PMQ1*PMQ2))) + ZH=1.+PMQ1-PMQ2 + ZL=0.5*(ZH-ZD) + ZU=0.5*(ZH+ZD) + IF(V(IM,1).LT.ZL.OR.V(IM,1).GT.ZU) GOTO 330 + ENDIF + +C...Accepted branch. Construct four-momentum for initial partons. + 460 MAZIP=0 + MAZIC=0 + IF(NEP.EQ.1) THEN + P(N+1,1)=0. + P(N+1,2)=0. + P(N+1,3)=SQRT(MAX(0.,(P(IPA(1),4)+P(N+1,5))*(P(IPA(1),4)- + & P(N+1,5)))) + P(N+1,4)=P(IPA(1),4) + V(N+1,2)=P(N+1,4) + ELSEIF(IGM.EQ.0.AND.NEP.EQ.2) THEN + PED1=0.5*(V(IM,5)+V(N+1,5)-V(N+2,5))/P(IM,5) + P(N+1,1)=0. + P(N+1,2)=0. + P(N+1,3)=SQRT(MAX(0.,(PED1+P(N+1,5))*(PED1-P(N+1,5)))) + P(N+1,4)=PED1 + P(N+2,1)=0. + P(N+2,2)=0. + P(N+2,3)=-P(N+1,3) + P(N+2,4)=P(IM,5)-PED1 + V(N+1,2)=P(N+1,4) + V(N+2,2)=P(N+2,4) + ELSEIF(NEP.EQ.3) THEN + P(N+1,1)=0. + P(N+1,2)=0. + P(N+1,3)=SQRT(MAX(0.,PA1S)) + P(N+2,1)=SQRT(PTS) + P(N+2,2)=0. + P(N+2,3)=0.5*(PA3S-PA2S-PA1S)/P(N+1,3) + P(N+3,1)=-P(N+2,1) + P(N+3,2)=0. + P(N+3,3)=-(P(N+1,3)+P(N+2,3)) + V(N+1,2)=P(N+1,4) + V(N+2,2)=P(N+2,4) + V(N+3,2)=P(N+3,4) + +C...Construct transverse momentum for ordinary branching in shower. + ELSE + ZM=V(IM,1) + PZM=SQRT(MAX(0.,(PEM+P(IM,5))*(PEM-P(IM,5)))) + PMLS=(V(IM,5)-V(N+1,5)-V(N+2,5))**2-4.*V(N+1,5)*V(N+2,5) + IF(PZM.LE.0.) THEN + PTS=0. + ELSEIF(MOD(MSTJ(43),2).EQ.1) THEN + PTS=(PEM**2*(ZM*(1.-ZM)*V(IM,5)-(1.-ZM)*V(N+1,5)- + & ZM*V(N+2,5))-0.25*PMLS)/PZM**2 + ELSE + PTS=PMLS*(ZM*(1.-ZM)*PEM**2/V(IM,5)-0.25)/PZM**2 + ENDIF + PT=SQRT(MAX(0.,PTS)) + +C...Find coefficient of azimuthal asymmetry due to gluon polarization. + HAZIP=0. + IF(MSTJ(49).NE.1.AND.MOD(MSTJ(46),2).EQ.1.AND.K(IM,2).EQ.21. + & AND.IAU.NE.0) THEN + IF(K(IGM,3).NE.0) MAZIP=1 + ZAU=V(IGM,1) + IF(IAU.EQ.IM+1) ZAU=1.-V(IGM,1) + IF(MAZIP.EQ.0) ZAU=0. + IF(K(IGM,2).NE.21) THEN + HAZIP=2.*ZAU/(1.+ZAU**2) + ELSE + HAZIP=(ZAU/(1.-ZAU*(1.-ZAU)))**2 + ENDIF + IF(K(N+1,2).NE.21) THEN + HAZIP=HAZIP*(-2.*ZM*(1.-ZM))/(1.-2.*ZM*(1.-ZM)) + ELSE + HAZIP=HAZIP*(ZM*(1.-ZM)/(1.-ZM*(1.-ZM)))**2 + ENDIF + ENDIF + +C...Find coefficient of azimuthal asymmetry due to soft gluon +C...interference. + HAZIC=0. + IF(MSTJ(49).NE.2.AND.MSTJ(46).GE.2.AND.(K(N+1,2).EQ.21.OR. + & K(N+2,2).EQ.21).AND.IAU.NE.0) THEN + IF(K(IGM,3).NE.0) MAZIC=N+1 + IF(K(IGM,3).NE.0.AND.K(N+1,2).NE.21) MAZIC=N+2 + IF(K(IGM,3).NE.0.AND.K(N+1,2).EQ.21.AND.K(N+2,2).EQ.21.AND. + & ZM.GT.0.5) MAZIC=N+2 + IF(K(IAU,2).EQ.22) MAZIC=0 + ZS=ZM + IF(MAZIC.EQ.N+2) ZS=1.-ZM + ZGM=V(IGM,1) + IF(IAU.EQ.IM-1) ZGM=1.-V(IGM,1) + IF(MAZIC.EQ.0) ZGM=1. + IF(MAZIC.NE.0) HAZIC=(P(IM,5)/P(IGM,5))* + & SQRT((1.-ZS)*(1.-ZGM)/(ZS*ZGM)) + HAZIC=MIN(0.95,HAZIC) + ENDIF + ENDIF + +C...Construct kinematics for ordinary branching in shower. + 470 IF(NEP.EQ.2.AND.IGM.GT.0) THEN + IF(MOD(MSTJ(43),2).EQ.1) THEN + P(N+1,4)=PEM*V(IM,1) + ELSE + P(N+1,4)=PEM*(0.5*(V(IM,5)-SQRT(PMLS)+V(N+1,5)-V(N+2,5))+ + & SQRT(PMLS)*ZM)/V(IM,5) + ENDIF + PHI=PARU(2)*RLY(0) + P(N+1,1)=PT*COS(PHI) + P(N+1,2)=PT*SIN(PHI) + IF(PZM.GT.0.) THEN + P(N+1,3)=0.5*(V(N+2,5)-V(N+1,5)-V(IM,5)+2.*PEM*P(N+1,4))/PZM + ELSE + P(N+1,3)=0. + ENDIF + P(N+2,1)=-P(N+1,1) + P(N+2,2)=-P(N+1,2) + P(N+2,3)=PZM-P(N+1,3) + P(N+2,4)=PEM-P(N+1,4) + IF(MSTJ(43).LE.2) THEN + V(N+1,2)=(PEM*P(N+1,4)-PZM*P(N+1,3))/P(IM,5) + V(N+2,2)=(PEM*P(N+2,4)-PZM*P(N+2,3))/P(IM,5) + ENDIF + ENDIF + +C...Rotate and boost daughters. + IF(IGM.GT.0) THEN + IF(MSTJ(43).LE.2) THEN + BEX=P(IGM,1)/P(IGM,4) + BEY=P(IGM,2)/P(IGM,4) + BEZ=P(IGM,3)/P(IGM,4) + GA=P(IGM,4)/P(IGM,5) + GABEP=GA*(GA*(BEX*P(IM,1)+BEY*P(IM,2)+BEZ*P(IM,3))/(1.+GA)- + & P(IM,4)) + ELSE + BEX=0. + BEY=0. + BEZ=0. + GA=1. + GABEP=0. + ENDIF + THE=UYANGL(P(IM,3)+GABEP*BEZ,SQRT((P(IM,1)+GABEP*BEX)**2+ + & (P(IM,2)+GABEP*BEY)**2)) + PHI=UYANGL(P(IM,1)+GABEP*BEX,P(IM,2)+GABEP*BEY) + DO 480 I=N+1,N+2 + DP(1)=COS(THE)*COS(PHI)*P(I,1)-SIN(PHI)*P(I,2)+ + & SIN(THE)*COS(PHI)*P(I,3) + DP(2)=COS(THE)*SIN(PHI)*P(I,1)+COS(PHI)*P(I,2)+ + & SIN(THE)*SIN(PHI)*P(I,3) + DP(3)=-SIN(THE)*P(I,1)+COS(THE)*P(I,3) + DP(4)=P(I,4) + DBP=BEX*DP(1)+BEY*DP(2)+BEZ*DP(3) + DGABP=GA*(GA*DBP/(1D0+GA)+DP(4)) + P(I,1)=DP(1)+DGABP*BEX + P(I,2)=DP(2)+DGABP*BEY + P(I,3)=DP(3)+DGABP*BEZ + P(I,4)=GA*(DP(4)+DBP) + 480 CONTINUE + ENDIF + +C...Weight with azimuthal distribution, if required. + IF(MAZIP.NE.0.OR.MAZIC.NE.0) THEN + DO 490 J=1,3 + DPT(1,J)=P(IM,J) + DPT(2,J)=P(IAU,J) + DPT(3,J)=P(N+1,J) + 490 CONTINUE + DPMA=DPT(1,1)*DPT(2,1)+DPT(1,2)*DPT(2,2)+DPT(1,3)*DPT(2,3) + DPMD=DPT(1,1)*DPT(3,1)+DPT(1,2)*DPT(3,2)+DPT(1,3)*DPT(3,3) + DPMM=DPT(1,1)**2+DPT(1,2)**2+DPT(1,3)**2 + DO 500 J=1,3 + DPT(4,J)=DPT(2,J)-DPMA*DPT(1,J)/DPMM + DPT(5,J)=DPT(3,J)-DPMD*DPT(1,J)/DPMM + 500 CONTINUE + DPT(4,4)=SQRT(DPT(4,1)**2+DPT(4,2)**2+DPT(4,3)**2) + DPT(5,4)=SQRT(DPT(5,1)**2+DPT(5,2)**2+DPT(5,3)**2) + IF(MIN(DPT(4,4),DPT(5,4)).GT.0.1*PARJ(82)) THEN + CAD=(DPT(4,1)*DPT(5,1)+DPT(4,2)*DPT(5,2)+ + & DPT(4,3)*DPT(5,3))/(DPT(4,4)*DPT(5,4)) + IF(MAZIP.NE.0) THEN + IF(1.+HAZIP*(2.*CAD**2-1.).LT.RLY(0)*(1.+ABS(HAZIP))) + & GOTO 470 + ENDIF + IF(MAZIC.NE.0) THEN + IF(MAZIC.EQ.N+2) CAD=-CAD + IF((1.-HAZIC)*(1.-HAZIC*CAD)/(1.+HAZIC**2-2.*HAZIC*CAD) + & .LT.RLY(0)) GOTO 470 + ENDIF + ENDIF + ENDIF + +C...Azimuthal anisotropy due to interference with initial state partons. + IF(MOD(MIIS,2).EQ.1.AND.IGM.EQ.NS+1.AND.(K(N+1,2).EQ.21.OR. + &K(N+2,2).EQ.21)) THEN + III=IM-NS-1 + IF(ISII(III).GE.1) THEN + IAZIID=N+1 + IF(K(N+1,2).NE.21) IAZIID=N+2 + IF(K(N+1,2).EQ.21.AND.K(N+2,2).EQ.21.AND. + & P(N+1,4).GT.P(N+2,4)) IAZIID=N+2 + THEIID=UYANGL(P(IAZIID,3),SQRT(P(IAZIID,1)**2+P(IAZIID,2)**2)) + IF(III.EQ.2) THEIID=PARU(1)-THEIID + PHIIID=UYANGL(P(IAZIID,1),P(IAZIID,2)) + HAZII=MIN(0.95,THEIID/THEIIS(III,ISII(III))) + CAD=COS(PHIIID-PHIIIS(III,ISII(III))) + PHIREL=ABS(PHIIID-PHIIIS(III,ISII(III))) + IF(PHIREL.GT.PARU(1)) PHIREL=PARU(2)-PHIREL + IF((1.-HAZII)*(1.-HAZII*CAD)/(1.+HAZII**2-2.*HAZII*CAD) + & .LT.RLY(0)) GOTO 470 + ENDIF + ENDIF + +C...Continue loop over partons that may branch, until none left. + IF(IGM.GE.0) K(IM,1)=14 + N=N+NEP + NEP=2 + IF(N.GT.MSTU(4)-MSTU(32)-5) THEN + CALL LYERRM(11,'(LYSHOW:) no more memory left in LUJETS') + IF(MSTU(21).GE.1) N=NS + IF(MSTU(21).GE.1) RETURN + ENDIF + GOTO 270 + +C...Set information on imagined shower initiator. + 510 IF(NPA.GE.2) THEN + K(NS+1,1)=11 + K(NS+1,2)=94 + K(NS+1,3)=IP1 + IF(IP2.GT.0.AND.IP2.LT.IP1) K(NS+1,3)=IP2 + K(NS+1,4)=NS+2 + K(NS+1,5)=NS+1+NPA + IIM=1 + ELSE + IIM=0 + ENDIF + +C...Reconstruct string drawing information. + DO 520 I=NS+1+IIM,N + IF(K(I,1).LE.10.AND.K(I,2).EQ.22) THEN + K(I,1)=1 + ELSEIF(K(I,1).LE.10.AND.IABS(K(I,2)).GE.11.AND. + &IABS(K(I,2)).LE.18) THEN + K(I,1)=1 + ELSEIF(K(I,1).LE.10) THEN + K(I,4)=MSTU(5)*(K(I,4)/MSTU(5)) + K(I,5)=MSTU(5)*(K(I,5)/MSTU(5)) + ELSEIF(K(MOD(K(I,4),MSTU(5))+1,2).NE.22) THEN + ID1=MOD(K(I,4),MSTU(5)) + IF(K(I,2).GE.1.AND.K(I,2).LE.8) ID1=MOD(K(I,4),MSTU(5))+1 + ID2=2*MOD(K(I,4),MSTU(5))+1-ID1 + K(I,4)=MSTU(5)*(K(I,4)/MSTU(5))+ID1 + K(I,5)=MSTU(5)*(K(I,5)/MSTU(5))+ID2 + K(ID1,4)=K(ID1,4)+MSTU(5)*I + K(ID1,5)=K(ID1,5)+MSTU(5)*ID2 + K(ID2,4)=K(ID2,4)+MSTU(5)*ID1 + K(ID2,5)=K(ID2,5)+MSTU(5)*I + ELSE + ID1=MOD(K(I,4),MSTU(5)) + ID2=ID1+1 + K(I,4)=MSTU(5)*(K(I,4)/MSTU(5))+ID1 + K(I,5)=MSTU(5)*(K(I,5)/MSTU(5))+ID1 + IF(IABS(K(I,2)).LE.10.OR.K(ID1,1).GE.11) THEN + K(ID1,4)=K(ID1,4)+MSTU(5)*I + K(ID1,5)=K(ID1,5)+MSTU(5)*I + ELSE + K(ID1,4)=0 + K(ID1,5)=0 + ENDIF + K(ID2,4)=0 + K(ID2,5)=0 + ENDIF + 520 CONTINUE + +C...Transformation from CM frame. + IF(NPA.GE.2) THEN + BEX=PS(1)/PS(4) + BEY=PS(2)/PS(4) + BEZ=PS(3)/PS(4) + GA=PS(4)/PS(5) + GABEP=GA*(GA*(BEX*P(IPA(1),1)+BEY*P(IPA(1),2)+BEZ*P(IPA(1),3)) + & /(1.+GA)-P(IPA(1),4)) + ELSE + BEX=0. + BEY=0. + BEZ=0. + GABEP=0. + ENDIF + THE=UYANGL(P(IPA(1),3)+GABEP*BEZ,SQRT((P(IPA(1),1) + &+GABEP*BEX)**2+(P(IPA(1),2)+GABEP*BEY)**2)) + PHI=UYANGL(P(IPA(1),1)+GABEP*BEX,P(IPA(1),2)+GABEP*BEY) + IF(NPA.EQ.3) THEN + CHI=UYANGL(COS(THE)*COS(PHI)*(P(IPA(2),1)+GABEP*BEX)+COS(THE)* + & SIN(PHI)*(P(IPA(2),2)+GABEP*BEY)-SIN(THE)*(P(IPA(2),3)+GABEP* + & BEZ),-SIN(PHI)*(P(IPA(2),1)+GABEP*BEX)+COS(PHI)*(P(IPA(2),2)+ + & GABEP*BEY)) + MSTU(33)=1 + CALL LUDBRB(NS+1,N,0.,CHI,0D0,0D0,0D0) + ENDIF + DBEX=DBLE(BEX) + DBEY=DBLE(BEY) + DBEZ=DBLE(BEZ) + MSTU(33)=1 + CALL LUDBRB(NS+1,N,THE,PHI,DBEX,DBEY,DBEZ) + +C...Decay vertex of shower. + DO 540 I=NS+1,N + DO 530 J=1,5 + V(I,J)=V(IP1,J) + 530 CONTINUE + 540 CONTINUE + +C...Delete trivial shower, else connect initiators. + IF(N.EQ.NS+NPA+IIM) THEN + N=NS + ELSE + DO 550 IP=1,NPA + K(IPA(IP),1)=14 + K(IPA(IP),4)=K(IPA(IP),4)+NS+IIM+IP + K(IPA(IP),5)=K(IPA(IP),5)+NS+IIM+IP + K(NS+IIM+IP,3)=IPA(IP) + IF(IIM.EQ.1.AND.MSTU(16).NE.2) K(NS+IIM+IP,3)=NS+1 + IF(K(NS+IIM+IP,1).NE.1) THEN + K(NS+IIM+IP,4)=MSTU(5)*IPA(IP)+K(NS+IIM+IP,4) + K(NS+IIM+IP,5)=MSTU(5)*IPA(IP)+K(NS+IIM+IP,5) + ENDIF + 550 CONTINUE + ENDIF + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYBOEI(NSAV) + +C...Purpose: to modify event so as to approximately take into account +C...Bose-Einstein effects according to a simple phenomenological +C...parametrization. + IMPLICIT DOUBLE PRECISION(D) + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /LYJETS/,/LYDAT1/ + DIMENSION DPS(4),KFBE(9),NBE(0:9),BEI(100) + DATA KFBE/211,-211,111,321,-321,130,310,221,331/ + +C...Boost event to overall CM frame. Calculate CM energy. + IF((MSTJ(51).NE.1.AND.MSTJ(51).NE.2).OR.N-NSAV.LE.1) RETURN + DO 100 J=1,4 + DPS(J)=0. + 100 CONTINUE + DO 120 I=1,N + KFA=IABS(K(I,2)) + IF(K(I,1).LE.10.AND.((KFA.GT.10.AND.KFA.LE.20).OR.KFA.EQ.22).AND. + &K(I,3).GT.0) THEN + KFMA=IABS(K(K(I,3),2)) + IF(KFMA.GT.10.AND.KFMA.LE.80) K(I,1)=-K(I,1) + ELSEIF(KFA.EQ.22.AND.K(I,3).EQ.0) THEN + K(I,1)=-K(I,1) + ENDIF + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 120 + DO 110 J=1,4 + DPS(J)=DPS(J)+P(I,J) + 110 CONTINUE + 120 CONTINUE + CALL LUDBRB(0,0,0.,0.,-DPS(1)/DPS(4),-DPS(2)/DPS(4), + &-DPS(3)/DPS(4)) + PECM=0. + DO 130 I=1,N + IF(K(I,1).GE.1.AND.K(I,1).LE.10) PECM=PECM+P(I,4) + 130 CONTINUE + +C...Reserve copy of particles by species at end of record. + NBE(0)=N+MSTU(3) + DO 160 IBE=1,MIN(9,MSTJ(52)) + NBE(IBE)=NBE(IBE-1) + DO 150 I=NSAV+1,N + IF(K(I,2).NE.KFBE(IBE)) GOTO 150 + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 150 + IF(NBE(IBE).GE.MSTU(4)-MSTU(32)-5) THEN + CALL LYERRM(11,'(LYBOEI:) no more memory left in LUJETS') + RETURN + ENDIF + NBE(IBE)=NBE(IBE)+1 + K(NBE(IBE),1)=I + DO 140 J=1,3 + P(NBE(IBE),J)=0. + 140 CONTINUE + 150 CONTINUE + 160 CONTINUE + IF(NBE(MIN(9,MSTJ(52)))-NBE(0).LE.1) GOTO 280 + +C...Tabulate integral for subsequent momentum shift. + DO 220 IBE=1,MIN(9,MSTJ(52)) + IF(IBE.NE.1.AND.IBE.NE.4.AND.IBE.LE.7) GOTO 180 + IF(IBE.EQ.1.AND.MAX(NBE(1)-NBE(0),NBE(2)-NBE(1),NBE(3)-NBE(2)) + &.LE.1) GOTO 180 + IF(IBE.EQ.4.AND.MAX(NBE(4)-NBE(3),NBE(5)-NBE(4),NBE(6)-NBE(5), + &NBE(7)-NBE(6)).LE.1) GOTO 180 + IF(IBE.GE.8.AND.NBE(IBE)-NBE(IBE-1).LE.1) GOTO 180 + IF(IBE.EQ.1) PMHQ=2.*UYMASS(211) + IF(IBE.EQ.4) PMHQ=2.*UYMASS(321) + IF(IBE.EQ.8) PMHQ=2.*UYMASS(221) + IF(IBE.EQ.9) PMHQ=2.*UYMASS(331) + QDEL=0.1*MIN(PMHQ,PARJ(93)) + IF(MSTJ(51).EQ.1) THEN + NBIN=MIN(100,NINT(9.*PARJ(93)/QDEL)) + BEEX=EXP(0.5*QDEL/PARJ(93)) + BERT=EXP(-QDEL/PARJ(93)) + ELSE + NBIN=MIN(100,NINT(3.*PARJ(93)/QDEL)) + ENDIF + DO 170 IBIN=1,NBIN + QBIN=QDEL*(IBIN-0.5) + BEI(IBIN)=QDEL*(QBIN**2+QDEL**2/12.)/SQRT(QBIN**2+PMHQ**2) + IF(MSTJ(51).EQ.1) THEN + BEEX=BEEX*BERT + BEI(IBIN)=BEI(IBIN)*BEEX + ELSE + BEI(IBIN)=BEI(IBIN)*EXP(-(QBIN/PARJ(93))**2) + ENDIF + IF(IBIN.GE.2) BEI(IBIN)=BEI(IBIN)+BEI(IBIN-1) + 170 CONTINUE + +C...Loop through particle pairs and find old relative momentum. + 180 DO 210 I1M=NBE(IBE-1)+1,NBE(IBE)-1 + I1=K(I1M,1) + DO 200 I2M=I1M+1,NBE(IBE) + I2=K(I2M,1) + Q2OLD=MAX(0.,(P(I1,4)+P(I2,4))**2-(P(I1,1)+P(I2,1))**2-(P(I1,2)+ + &P(I2,2))**2-(P(I1,3)+P(I2,3))**2-(P(I1,5)+P(I2,5))**2) + QOLD=SQRT(Q2OLD) + +C...Calculate new relative momentum. + IF(QOLD.LT.1E-3*QDEL) THEN + GOTO 200 + ELSEIF(QOLD.LE.QDEL) THEN + QMOV=QOLD/3. + ELSEIF(QOLD.LT.(NBIN-0.1)*QDEL) THEN + RBIN=QOLD/QDEL + IBIN=RBIN + RINP=(RBIN**3-IBIN**3)/(3*IBIN*(IBIN+1)+1) + QMOV=(BEI(IBIN)+RINP*(BEI(IBIN+1)-BEI(IBIN)))* + & SQRT(Q2OLD+PMHQ**2)/Q2OLD + ELSE + QMOV=BEI(NBIN)*SQRT(Q2OLD+PMHQ**2)/Q2OLD + ENDIF + Q2NEW=Q2OLD*(QOLD/(QOLD+3.*PARJ(92)*QMOV))**(2./3.) + +C...Calculate and save shift to be performed on three-momenta. + HC1=(P(I1,4)+P(I2,4))**2-(Q2OLD-Q2NEW) + HC2=(Q2OLD-Q2NEW)*(P(I1,4)-P(I2,4))**2 + HA=0.5*(1.-SQRT(HC1*Q2NEW/(HC1*Q2OLD-HC2))) + DO 190 J=1,3 + PD=HA*(P(I2,J)-P(I1,J)) + P(I1M,J)=P(I1M,J)+PD + P(I2M,J)=P(I2M,J)-PD + 190 CONTINUE + 200 CONTINUE + 210 CONTINUE + 220 CONTINUE + +C...Shift momenta and recalculate energies. + DO 240 IM=NBE(0)+1,NBE(MIN(9,MSTJ(52))) + I=K(IM,1) + DO 230 J=1,3 + P(I,J)=P(I,J)+P(IM,J) + 230 CONTINUE + P(I,4)=SQRT(P(I,5)**2+P(I,1)**2+P(I,2)**2+P(I,3)**2) + 240 CONTINUE + +C...Rescale all momenta for energy conservation. + PES=0. + PQS=0. + DO 250 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 250 + PES=PES+P(I,4) + PQS=PQS+P(I,5)**2/P(I,4) + 250 CONTINUE + FAC=(PECM-PQS)/(PES-PQS) + DO 270 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 270 + DO 260 J=1,3 + P(I,J)=FAC*P(I,J) + 260 CONTINUE + P(I,4)=SQRT(P(I,5)**2+P(I,1)**2+P(I,2)**2+P(I,3)**2) + 270 CONTINUE + +C...Boost back to correct reference frame. + 280 CALL LUDBRB(0,0,0.,0.,DPS(1)/DPS(4),DPS(2)/DPS(4),DPS(3)/DPS(4)) + DO 290 I=1,N + IF(K(I,1).LT.0) K(I,1)=-K(I,1) + 290 CONTINUE + + RETURN + END + +C********************************************************************* + + FUNCTION UYMASS(KF) + +C...Purpose: to give the mass of a particle/parton. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYDAT1/,/LYDAT2/ + +C...Reset variables. Compressed code. + UYMASS=0. + KFA=IABS(KF) + KC=LYCOMP(KF) + IF(KC.EQ.0) RETURN + PARF(106)=PMAS(6,1) + PARF(107)=PMAS(7,1) + PARF(108)=PMAS(8,1) + +C...Guarantee use of constituent masses for internal checks. + IF((MSTJ(93).EQ.1.OR.MSTJ(93).EQ.2).AND.KFA.LE.10) THEN + UYMASS=PARF(100+KFA) + IF(MSTJ(93).EQ.2) UYMASS=MAX(0.,UYMASS-PARF(121)) + +C...Masses that can be read directly off table. + ELSEIF(KFA.LE.100.OR.KC.LE.80.OR.KC.GT.100) THEN + UYMASS=PMAS(KC,1) + +C...Find constituent partons and their masses. + ELSE + KFLA=MOD(KFA/1000,10) + KFLB=MOD(KFA/100,10) + KFLC=MOD(KFA/10,10) + KFLS=MOD(KFA,10) + KFLR=MOD(KFA/10000,10) + PMA=PARF(100+KFLA) + PMB=PARF(100+KFLB) + PMC=PARF(100+KFLC) + +C...Construct masses for various meson, diquark and baryon cases. + IF(KFLA.EQ.0.AND.KFLR.EQ.0.AND.KFLS.LE.3) THEN + IF(KFLS.EQ.1) PMSPL=-3./(PMB*PMC) + IF(KFLS.GE.3) PMSPL=1./(PMB*PMC) + UYMASS=PARF(111)+PMB+PMC+PARF(113)*PARF(101)**2*PMSPL + ELSEIF(KFLA.EQ.0) THEN + KMUL=2 + IF(KFLS.EQ.1) KMUL=3 + IF(KFLR.EQ.2) KMUL=4 + IF(KFLS.EQ.5) KMUL=5 + UYMASS=PARF(113+KMUL)+PMB+PMC + ELSEIF(KFLC.EQ.0) THEN + IF(KFLS.EQ.1) PMSPL=-3./(PMA*PMB) + IF(KFLS.EQ.3) PMSPL=1./(PMA*PMB) + UYMASS=2.*PARF(112)/3.+PMA+PMB+PARF(114)*PARF(101)**2*PMSPL + IF(MSTJ(93).EQ.1) UYMASS=PMA+PMB + IF(MSTJ(93).EQ.2) UYMASS=MAX(0.,UYMASS-PARF(122)- + & 2.*PARF(112)/3.) + ELSE + IF(KFLS.EQ.2.AND.KFLA.EQ.KFLB) THEN + PMSPL=1./(PMA*PMB)-2./(PMA*PMC)-2./(PMB*PMC) + ELSEIF(KFLS.EQ.2.AND.KFLB.GE.KFLC) THEN + PMSPL=-2./(PMA*PMB)-2./(PMA*PMC)+1./(PMB*PMC) + ELSEIF(KFLS.EQ.2) THEN + PMSPL=-3./(PMB*PMC) + ELSE + PMSPL=1./(PMA*PMB)+1./(PMA*PMC)+1./(PMB*PMC) + ENDIF + UYMASS=PARF(112)+PMA+PMB+PMC+PARF(114)*PARF(101)**2*PMSPL + ENDIF + ENDIF + +C...Optional mass broadening according to truncated Breit-Wigner +C...(either in m or in m^2). + IF(MSTJ(24).GE.1.AND.PMAS(KC,2).GT.1E-4) THEN + IF(MSTJ(24).EQ.1.OR.(MSTJ(24).EQ.2.AND.KFA.GT.100)) THEN + UYMASS=UYMASS+0.5*PMAS(KC,2)*TAN((2.*RLY(0)-1.)* + & ATAN(2.*PMAS(KC,3)/PMAS(KC,2))) + ELSE + PM0=UYMASS + PMLOW=ATAN((MAX(0.,PM0-PMAS(KC,3))**2-PM0**2)/ + & (PM0*PMAS(KC,2))) + PMUPP=ATAN(((PM0+PMAS(KC,3))**2-PM0**2)/(PM0*PMAS(KC,2))) + UYMASS=SQRT(MAX(0.,PM0**2+PM0*PMAS(KC,2)*TAN(PMLOW+ + & (PMUPP-PMLOW)*RLY(0)))) + ENDIF + ENDIF + MSTJ(93)=0 + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYNAME(KF,CHAU) + +C...Purpose: to give the particle/parton name as a character string. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + COMMON/LYDAT4/CHAF(500) + CHARACTER CHAF*8 + SAVE /LYDAT1/,/LYDAT2/,/LYDAT4/ + CHARACTER CHAU*16 + +C...Initial values. Charge. Subdivide code. + CHAU=' ' + KFA=IABS(KF) + KC=LYCOMP(KF) + IF(KC.EQ.0) RETURN + KQ=LYCHGE(KF) + KFLA=MOD(KFA/1000,10) + KFLB=MOD(KFA/100,10) + KFLC=MOD(KFA/10,10) + KFLS=MOD(KFA,10) + KFLR=MOD(KFA/10000,10) + +C...Read out root name and spin for simple particle. + IF(KFA.LE.100.OR.(KFA.GT.100.AND.KC.GT.100)) THEN + CHAU=CHAF(KC) + LEN=0 + DO 100 LEM=1,8 + IF(CHAU(LEM:LEM).NE.' ') LEN=LEM + 100 CONTINUE + +C...Construct root name for diquark. Add on spin. + ELSEIF(KFLC.EQ.0) THEN + CHAU(1:2)=CHAF(KFLA)(1:1)//CHAF(KFLB)(1:1) + IF(KFLS.EQ.1) CHAU(3:4)='_0' + IF(KFLS.EQ.3) CHAU(3:4)='_1' + LEN=4 + +C...Construct root name for heavy meson. Add on spin and heavy flavour. + ELSEIF(KFLA.EQ.0) THEN + IF(KFLB.EQ.5) CHAU(1:1)='B' + IF(KFLB.EQ.6) CHAU(1:1)='T' + IF(KFLB.EQ.7) CHAU(1:1)='L' + IF(KFLB.EQ.8) CHAU(1:1)='H' + LEN=1 + IF(KFLR.EQ.0.AND.KFLS.EQ.1) THEN + ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.3) THEN + CHAU(2:2)='*' + LEN=2 + ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.3) THEN + CHAU(2:3)='_1' + LEN=3 + ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.1) THEN + CHAU(2:4)='*_0' + LEN=4 + ELSEIF(KFLR.EQ.2) THEN + CHAU(2:4)='*_1' + LEN=4 + ELSEIF(KFLS.EQ.5) THEN + CHAU(2:4)='*_2' + LEN=4 + ENDIF + IF(KFLC.GE.3.AND.KFLR.EQ.0.AND.KFLS.LE.3) THEN + CHAU(LEN+1:LEN+2)='_'//CHAF(KFLC)(1:1) + LEN=LEN+2 + ELSEIF(KFLC.GE.3) THEN + CHAU(LEN+1:LEN+1)=CHAF(KFLC)(1:1) + LEN=LEN+1 + ENDIF + +C...Construct root name and spin for heavy baryon. + ELSE + IF(KFLB.LE.2.AND.KFLC.LE.2) THEN + CHAU='Sigma ' + IF(KFLC.GT.KFLB) CHAU='Lambda' + IF(KFLS.EQ.4) CHAU='Sigma*' + LEN=5 + IF(CHAU(6:6).NE.' ') LEN=6 + ELSEIF(KFLB.LE.2.OR.KFLC.LE.2) THEN + CHAU='Xi ' + IF(KFLA.GT.KFLB.AND.KFLB.GT.KFLC) CHAU='Xi''' + IF(KFLS.EQ.4) CHAU='Xi*' + LEN=2 + IF(CHAU(3:3).NE.' ') LEN=3 + ELSE + CHAU='Omega ' + IF(KFLA.GT.KFLB.AND.KFLB.GT.KFLC) CHAU='Omega''' + IF(KFLS.EQ.4) CHAU='Omega*' + LEN=5 + IF(CHAU(6:6).NE.' ') LEN=6 + ENDIF + +C...Add on heavy flavour content for heavy baryon. + CHAU(LEN+1:LEN+2)='_'//CHAF(KFLA)(1:1) + LEN=LEN+2 + IF(KFLB.GE.KFLC.AND.KFLC.GE.4) THEN + CHAU(LEN+1:LEN+2)=CHAF(KFLB)(1:1)//CHAF(KFLC)(1:1) + LEN=LEN+2 + ELSEIF(KFLB.GE.KFLC.AND.KFLB.GE.4) THEN + CHAU(LEN+1:LEN+1)=CHAF(KFLB)(1:1) + LEN=LEN+1 + ELSEIF(KFLC.GT.KFLB.AND.KFLB.GE.4) THEN + CHAU(LEN+1:LEN+2)=CHAF(KFLC)(1:1)//CHAF(KFLB)(1:1) + LEN=LEN+2 + ELSEIF(KFLC.GT.KFLB.AND.KFLC.GE.4) THEN + CHAU(LEN+1:LEN+1)=CHAF(KFLC)(1:1) + LEN=LEN+1 + ENDIF + ENDIF + +C...Add on bar sign for antiparticle (where necessary). + IF(KF.GT.0.OR.LEN.EQ.0) THEN + ELSEIF(KFA.GT.10.AND.KFA.LE.40.AND.KQ.NE.0.AND.MOD(KQ,3).EQ.0) + &THEN + ELSEIF(KFA.EQ.89.OR.(KFA.GE.91.AND.KFA.LE.99)) THEN + ELSEIF(KFA.GT.100.AND.KFLA.EQ.0.AND.KQ.NE.0) THEN + ELSEIF(MSTU(15).LE.1) THEN + CHAU(LEN+1:LEN+1)='~' + LEN=LEN+1 + ELSE + CHAU(LEN+1:LEN+3)='bar' + LEN=LEN+3 + ENDIF + +C...Add on charge where applicable (conventional cases skipped). + IF(KQ.EQ.6) CHAU(LEN+1:LEN+2)='++' + IF(KQ.EQ.-6) CHAU(LEN+1:LEN+2)='--' + IF(KQ.EQ.3) CHAU(LEN+1:LEN+1)='+' + IF(KQ.EQ.-3) CHAU(LEN+1:LEN+1)='-' + IF(KQ.EQ.0.AND.(KFA.LE.22.OR.LEN.EQ.0)) THEN + ELSEIF(KQ.EQ.0.AND.(KFA.GE.81.AND.KFA.LE.100)) THEN + ELSEIF(KFA.EQ.28.OR.KFA.EQ.29) THEN + ELSEIF(KFA.GT.100.AND.KFLA.EQ.0.AND.KFLB.EQ.KFLC.AND. + &KFLB.NE.1) THEN + ELSEIF(KQ.EQ.0) THEN + CHAU(LEN+1:LEN+1)='0' + ENDIF + + RETURN + END + +C********************************************************************* + + FUNCTION LYCHGE(KF) + +C...Purpose: to give three times the charge for a particle/parton. + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYDAT2/ + +C...Initial values. Simple case of direct readout. + LYCHGE=0 + KFA=IABS(KF) + KC=LYCOMP(KFA) + IF(KC.EQ.0) THEN + ELSEIF(KFA.LE.100.OR.KC.LE.80.OR.KC.GT.100) THEN + LYCHGE=KCHG(KC,1) + +C...Construction from quark content for heavy meson, diquark, baryon. + ELSEIF(MOD(KFA/1000,10).EQ.0) THEN + LYCHGE=(KCHG(MOD(KFA/100,10),1)-KCHG(MOD(KFA/10,10),1))* + & (-1)**MOD(KFA/100,10) + ELSEIF(MOD(KFA/10,10).EQ.0) THEN + LYCHGE=KCHG(MOD(KFA/1000,10),1)+KCHG(MOD(KFA/100,10),1) + ELSE + LYCHGE=KCHG(MOD(KFA/1000,10),1)+KCHG(MOD(KFA/100,10),1)+ + & KCHG(MOD(KFA/10,10),1) + ENDIF + +C...Add on correct sign. + LYCHGE=LYCHGE*ISIGN(1,KF) + + RETURN + END + +C********************************************************************* + integer function lycomp_beg(kfa) +* +* +* called by modified LYCOMP_BEG to add user defined particles +* +* added ASLUND backward compatibility Dec 1994 +* added LYCOMP_BEG=410+abs(KF)/100 000 July 1994 +* added UPS 4S,5S Jan 1994 +* added all bb-onia below threshold Jun 97 RW +* +* NOTE: ASLUND version maps LYCOMP_BEG = 400 + KFA/1 000 000 +* +* Doug Wright Oct 1994 +* R.Waldi Nov 1997 + + implicit none + +C #include "beget.inc" (Don't need beget.inc) 1/16/98 + + integer N_BB + PARAMETER (N_BB = 22) + integer KF_BB(N_BB),KC_BB(N_BB),I + + DATA KF_BB +* UPS(3S),UPS(4S),UPS(5S),UPS_1(1D),UPS_2(1D),UPS_3(1D) + 1 / 60553, 70553, 80553, 120553, 30555, 557, +* UPS_1(2D),UPS_2(2D),UPS_3(2D),chi_0b(2P),chi_1b(2P),chi_2b(2P) + 1 130553, 50555, 10557, 30551, 50553, 10555, +* h_b(2P),chi_0b(3P),chi_1b(3P),chi_2b(3P),h_b(3P),eta_b(2S), + 1 40553, 50551, 110553, 20555, 100553, 20551, +* eta_b(3S),eta_2b(1D),eta_2b(2D),eta_c(2S) + 1 40551, 40555, 60555, 20441/ + DATA KC_BB +* UPS(3S),UPS(4S),UPS(5S),UPS_1(1D),UPS_2(1D),UPS_3(1D) + 1 / 403, 404, 405, 416, 417, 418, +* UPS_1(2D),UPS_2(2D),UPS_3(2D),chi_0b(2P),chi_1b(2P),chi_2b(2P) + 1 419, 420, 421, 410, 411, 412, +* h_b(2P),chi_0b(3P),chi_1b(3P),chi_2b(3P),h_b(3P),eta_b(2S), + 1 422, 413, 414, 415, 423, 401, +* eta_b(3S),eta_2b(1D),eta_2b(2D),eta_c(2S) + 1 402, 424, 425, 460/ + + integer kfa + + LYCOMP_BEG = 0 + IF( KFA.GE.1000000) THEN ! for ASLUND backward compatibility + LYCOMP_BEG = 400 + MOD(KFA/1 000 000,100) +c ELSEIF(KFA.GE.100000) THEN +c LYCOMP_BEG = 410 + MOD(KFA/100 000, 90) + ELSE + DO 100 I=1,N_BB + IF(KFA.eq.KF_BB(I)) THEN + LYCOMP_BEG = KC_BB(I) + GOTO 110 + ENDIF + 100 CONTINUE + 110 CONTINUE + ENDIF + end + +C********************************************************************* + + FUNCTION LYCOMP(KF) + implicit none +*****-*****************************************************************-******* +C...Purpose: to compress the standard KF codes for use in mass and decay +C...arrays; also to check whether a given code actually is defined. +C.. History: +C +C 12-Aug-1997 - Lockman : implicit none added; save KFTAB, KCTAB +C... modified R.Waldi/92-07.v7.4:97-06 beget conv./stdhep, 97/11 evtgen +C 11-Sep-2000 - Mark Ian Williams added X_su/d/s for BtoXsgamma model +*****-*****************************************************************-******* + integer kf + integer lycomp, lycomp_beg + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYDAT2/ + integer kchg + real*4 pmas, parf, vckm +* DIMENSION KFTAB(25),KCTAB(25) + integer KFTAB(25),KCTAB(25) + save KFTAB, KCTAB + integer kfa, ikf, kfla, kflb, kflc, kfls, kflr + DATA KFTAB/211,111,221,311,321,130,310,213,113,223, + &313,323,2112,2212,210,2110,2210,110,220,330,440,30443,30553,0,0/ + DATA KCTAB/101,111,112,102,103,221,222,121,131,132, + &122,123,332,333,281,282,283,284,285,286,287,231,235,0,0/ + +C...Starting values. + LYCOMP=lycomp_beg(KF) + IF (LYCOMP .NE. 0) RETURN + + KFA=IABS(KF) + +C...Subdivide KF code into constituent pieces. + + KFLR=MOD(KFA/10000,10) + KFLA=MOD(KFA/1000,10) + KFLB=MOD(KFA/100,10) + KFLC=MOD(KFA/10,10) + KFLS=MOD(KFA,10) + +C...Hardwire the return code for -42 since EvtJetSet updates the particles +C too late for the Xu- decays to be recognized + IF (KF.EQ.-42) THEN + LYCOMP=KFA + RETURN + ENDIF + +C...Allow for massive sbar-u, sbar-d, sbar-s systems + IF (KFA.EQ.30343.OR.KFA.EQ.30353.OR.KFA.EQ.30363) THEN + LYCOMP=451+KFLC + RETURN + ENDIF + +C...Simple cases: direct translation or table. + IF(KFA.EQ.0.OR.KFA.GE.100000) THEN + RETURN + ELSEIF(KFA.LE.100) THEN + LYCOMP=KFA + IF(KF.LT.0.AND.KCHG(KFA,3).EQ.0) LYCOMP=0 + RETURN + ELSE + DO 100 IKF=1,23 + IF(KFA.EQ.KFTAB(IKF)) THEN + LYCOMP=KCTAB(IKF) + IF(KF.LT.0.AND.KCHG(LYCOMP,3).EQ.0) LYCOMP=0 + RETURN + ENDIF + 100 CONTINUE + ENDIF + +C...Mesons. + IF(KFA-10000*KFLR.LT.1000) THEN + IF(KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.0.OR.KFLC.EQ.9) THEN + ELSEIF(KFLB.LT.KFLC) THEN + ELSEIF(KF.LT.0.AND.KFLB.EQ.KFLC) THEN + ELSEIF(KFLB.EQ.KFLC) THEN + IF(KFLR.EQ.0.AND.KFLS.EQ.1) THEN + LYCOMP=110+KFLB + ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.3) THEN + LYCOMP=130+KFLB + ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.3) THEN + LYCOMP=150+KFLB + ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.1) THEN + LYCOMP=170+KFLB + ELSEIF(KFLR.EQ.2.AND.KFLS.EQ.3) THEN + LYCOMP=190+KFLB + ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.5) THEN + LYCOMP=210+KFLB + ENDIF + ELSEIF(KFLB.LE.5) THEN + IF(KFLR.EQ.0.AND.KFLS.EQ.1) THEN + LYCOMP=100+((KFLB-1)*(KFLB-2))/2+KFLC + ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.3) THEN + LYCOMP=120+((KFLB-1)*(KFLB-2))/2+KFLC + ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.3) THEN + LYCOMP=140+((KFLB-1)*(KFLB-2))/2+KFLC + ELSEIF(KFLR.EQ.1.AND.KFLS.EQ.1) THEN + LYCOMP=160+((KFLB-1)*(KFLB-2))/2+KFLC + ELSEIF(KFLR.EQ.2.AND.KFLS.EQ.3) THEN + LYCOMP=180+((KFLB-1)*(KFLB-2))/2+KFLC + ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.5) THEN + LYCOMP=200+((KFLB-1)*(KFLB-2))/2+KFLC + ENDIF + ELSEIF((KFLS.EQ.1.AND.KFLR.LE.1).OR.(KFLS.EQ.3.AND.KFLR.LE.2) + & .OR.(KFLS.EQ.5.AND.KFLR.EQ.0)) THEN + LYCOMP=80+KFLB + ENDIF + +C...Diquarks. + ELSEIF((KFLR.EQ.0.OR.KFLR.EQ.1).AND.KFLC.EQ.0) THEN + IF(KFLS.NE.1.AND.KFLS.NE.3) THEN + ELSEIF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9) THEN + ELSEIF(KFLA.LT.KFLB) THEN + ELSEIF(KFLS.EQ.1.AND.KFLA.EQ.KFLB) THEN + ELSE + LYCOMP=90 + ENDIF + +C...Spin 1/2 baryons. + ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.2) THEN + IF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.9) THEN + ELSEIF(KFLA.LE.KFLC.OR.KFLA.LT.KFLB) THEN + ELSEIF(KFLA.GE.6.OR.KFLB.GE.4.OR.KFLC.GE.4) THEN + LYCOMP=80+KFLA + ELSEIF(KFLB.LT.KFLC) THEN + LYCOMP=300+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLC*(KFLC-1))/2+KFLB + ELSE + LYCOMP=330+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLB*(KFLB-1))/2+KFLC + ENDIF + +C...Spin 3/2 baryons. + ELSEIF(KFLR.EQ.0.AND.KFLS.EQ.4) THEN + IF(KFLA.EQ.9.OR.KFLB.EQ.0.OR.KFLB.EQ.9.OR.KFLC.EQ.9) THEN + ELSEIF(KFLA.LT.KFLB.OR.KFLB.LT.KFLC) THEN + ELSEIF(KFLA.GE.6.OR.KFLB.GE.4) THEN + LYCOMP=80+KFLA + ELSE + LYCOMP=360+((KFLA+1)*KFLA*(KFLA-1))/6+(KFLB*(KFLB-1))/2+KFLC + ENDIF + ENDIF + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYERRM(MERR,CHMESS) + +C...Purpose: to inform user of errors in program execution. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /LYJETS/,/LYDAT1/ + CHARACTER CHMESS*(*) + +C...Write first few warnings, then be silent. + IF(MERR.LE.10) THEN + MSTU(27)=MSTU(27)+1 + MSTU(28)=MERR + IF(MSTU(25).EQ.1.AND.MSTU(27).LE.MSTU(26)) WRITE(MSTU(11),5000) + & MERR,MSTU(31),CHMESS + +C...Write first few errors, then be silent or stop program. + ELSEIF(MERR.LE.20) THEN + MSTU(23)=MSTU(23)+1 + MSTU(24)=MERR-10 + IF(MSTU(21).GE.1.AND.MSTU(23).LE.MSTU(22)) WRITE(MSTU(11),5100) + & MERR-10,MSTU(31),CHMESS + IF(MSTU(21).GE.2.AND.MSTU(23).GT.MSTU(22)) THEN + WRITE(MSTU(11),5100) MERR-10,MSTU(31),CHMESS + WRITE(MSTU(11),5200) + IF(MERR.NE.17) CALL LYLIST(2) + STOP + ENDIF + +C...Stop program in case of irreparable error. + ELSE + WRITE(MSTU(11),5300) MERR-20,MSTU(31),CHMESS + STOP + ENDIF + +C...Formats for output. + 5000 FORMAT(/5X,'Advisory warning type',I2,' given after',I6, + &' LYEXEC calls:'/5X,A) + 5100 FORMAT(/5X,'Error type',I2,' has occured after',I6, + &' LYEXEC calls:'/5X,A) + 5200 FORMAT(5X,'Execution will be stopped after listing of last ', + &'event!') + 5300 FORMAT(/5X,'Fatal error type',I2,' has occured after',I6, + &' LYEXEC calls:'/5X,A/5X,'Execution will now be stopped!') + + RETURN + END + +C********************************************************************* + + FUNCTION UYALEM(Q2) + +C...Purpose: to calculate the running alpha_electromagnetic. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /LYDAT1/ + +C...Calculate real part of photon vacuum polarization. +C...For leptons simplify by using asymptotic (Q^2 >> m^2) expressions. +C...For hadrons use parametrization of H. Burkhardt et al. +C...See R. Kleiss et al, CERN 89-08, vol. 3, pp. 129-131. + AEMPI=PARU(101)/(3.*PARU(1)) + IF(MSTU(101).LE.0.OR.Q2.LT.2E-6) THEN + RPIGG=0. + ELSEIF(MSTU(101).EQ.2.AND.Q2.LT.PARU(104)) THEN + RPIGG=0. + ELSEIF(MSTU(101).EQ.2) THEN + RPIGG=1.-PARU(101)/PARU(103) + ELSEIF(Q2.LT.0.09) THEN + RPIGG=AEMPI*(13.4916+LOG(Q2))+0.00835*LOG(1.+Q2) + ELSEIF(Q2.LT.9.) THEN + RPIGG=AEMPI*(16.3200+2.*LOG(Q2))+0.00238*LOG(1.+3.927*Q2) + ELSEIF(Q2.LT.1E4) THEN + RPIGG=AEMPI*(13.4955+3.*LOG(Q2))+0.00165+0.00299*LOG(1.+Q2) + ELSE + RPIGG=AEMPI*(13.4955+3.*LOG(Q2))+0.00221+0.00293*LOG(1.+Q2) + ENDIF + +C...Calculate running alpha_em. + UYALEM=PARU(101)/(1.-RPIGG) + PARU(108)=UYALEM + + RETURN + END + +C********************************************************************* + + FUNCTION UYALPS(Q2) + +C...Purpose: to give the value of alpha_strong. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYDAT1/,/LYDAT2/ + +C...Constant alpha_strong trivial. + IF(MSTU(111).LE.0) THEN + UYALPS=PARU(111) + MSTU(118)=MSTU(112) + PARU(117)=0. + PARU(118)=PARU(111) + RETURN + ENDIF + +C...Find effective Q2, number of flavours and Lambda. + Q2EFF=Q2 + IF(MSTU(115).GE.2) Q2EFF=MAX(Q2,PARU(114)) + NF=MSTU(112) + ALAM2=PARU(112)**2 + 100 IF(NF.GT.MAX(2,MSTU(113))) THEN + Q2THR=PARU(113)*PMAS(NF,1)**2 + IF(Q2EFF.LT.Q2THR) THEN + NF=NF-1 + ALAM2=ALAM2*(Q2THR/ALAM2)**(2./(33.-2.*NF)) + GOTO 100 + ENDIF + ENDIF + 110 IF(NF.LT.MIN(8,MSTU(114))) THEN + Q2THR=PARU(113)*PMAS(NF+1,1)**2 + IF(Q2EFF.GT.Q2THR) THEN + NF=NF+1 + ALAM2=ALAM2*(ALAM2/Q2THR)**(2./(33.-2.*NF)) + GOTO 110 + ENDIF + ENDIF + IF(MSTU(115).EQ.1) Q2EFF=Q2EFF+ALAM2 + PARU(117)=SQRT(ALAM2) + +C...Evaluate first or second order alpha_strong. + B0=(33.-2.*NF)/6. + ALGQ=LOG(MAX(1.0001,Q2EFF/ALAM2)) + IF(MSTU(111).EQ.1) THEN + UYALPS=MIN(PARU(115),PARU(2)/(B0*ALGQ)) + ELSE + B1=(153.-19.*NF)/6. + UYALPS=MIN(PARU(115),PARU(2)/(B0*ALGQ)*(1.-B1*LOG(ALGQ)/ + & (B0**2*ALGQ))) + ENDIF + MSTU(118)=NF + PARU(118)=UYALPS + + RETURN + END + +C********************************************************************* + + FUNCTION UYANGL(X,Y) + +C...Purpose: to reconstruct an angle from given x and y coordinates. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /LYDAT1/ + + UYANGL=0. + R=SQRT(X**2+Y**2) + IF(R.LT.1E-20) RETURN + IF(ABS(X)/R.LT.0.8) THEN + UYANGL=SIGN(ACOS(X/R),Y) + ELSE + UYANGL=ASIN(Y/R) + IF(X.LT.0..AND.UYANGL.GE.0.) THEN + UYANGL=PARU(1)-UYANGL + ELSEIF(X.LT.0.) THEN + UYANGL=-PARU(1)-UYANGL + ENDIF + ENDIF + + RETURN + END + +C********************************************************************* +c +c FUNCTION RLU(IDUMMY) +c +cC...Purpose: to generate random numbers uniformly distributed between +cC...0 and 1, excluding the endpoints. +c COMMON/LYDATR/MRLU(6),RRLU(100) +c SAVE /LYDATR/ +c EQUIVALENCE (MRLU1,MRLU(1)),(MRLU2,MRLU(2)),(MRLU3,MRLU(3)), +c &(MRLU4,MRLU(4)),(MRLU5,MRLU(5)),(MRLU6,MRLU(6)), +c &(RRLU98,RRLU(98)),(RRLU99,RRLU(99)),(RRLU00,RRLU(100)) +c +cC...Initialize generation from given seed. +c IF(MRLU2.EQ.0) THEN +c IJ=MOD(MRLU1/30082,31329) +c KL=MOD(MRLU1,30082) +c I=MOD(IJ/177,177)+2 +c J=MOD(IJ,177)+2 +c K=MOD(KL/169,178)+1 +c L=MOD(KL,169) +c DO 110 II=1,97 +c S=0. +c T=0.5 +c DO 100 JJ=1,24 +c M=MOD(MOD(I*J,179)*K,179) +c I=J +c J=K +c K=M +c L=MOD(53*L+1,169) +c IF(MOD(L*M,64).GE.32) S=S+T +c T=0.5*T +c 100 CONTINUE +c RRLU(II)=S +c 110 CONTINUE +c TWOM24=1. +c DO 120 I24=1,24 +c TWOM24=0.5*TWOM24 +c 120 CONTINUE +c RRLU98=362436.*TWOM24 +c RRLU99=7654321.*TWOM24 +c RRLU00=16777213.*TWOM24 +c MRLU2=1 +c MRLU3=0 +c MRLU4=97 +c MRLU5=33 +c ENDIF +c +cC...Generate next random number. +c 130 RUNI=RRLU(MRLU4)-RRLU(MRLU5) +c IF(RUNI.LT.0.) RUNI=RUNI+1. +c RRLU(MRLU4)=RUNI +c MRLU4=MRLU4-1 +c IF(MRLU4.EQ.0) MRLU4=97 +c MRLU5=MRLU5-1 +c IF(MRLU5.EQ.0) MRLU5=97 +c RRLU98=RRLU98-RRLU99 +c IF(RRLU98.LT.0.) RRLU98=RRLU98+RRLU00 +c RUNI=RUNI-RRLU98 +c IF(RUNI.LT.0.) RUNI=RUNI+1. +c IF(RUNI.LE.0.OR.RUNI.GE.1.) GOTO 130 +c +cC...Update counters. Random number to output. +c MRLU3=MRLU3+1 +c IF(MRLU3.EQ.1000000000) THEN +c MRLU2=MRLU2+1 +c MRLU3=0 +c ENDIF +c RLU=RUNI +c +c RETURN +c END +c +C********************************************************************* + + SUBROUTINE RLYGET(LFN,MOVE) + +C...Purpose: to dump the state of the random number generator on a file +C...for subsequent startup from this state onwards. + COMMON/LYDATR/MRLU(6),RRLU(100) + SAVE /LYDATR/ + CHARACTER CHERR*8 + +C...Backspace required number of records (or as many as there are). + IF(MOVE.LT.0) THEN + NBCK=MIN(MRLU(6),-MOVE) + DO 100 IBCK=1,NBCK + BACKSPACE(LFN,ERR=110,IOSTAT=IERR) + 100 CONTINUE + MRLU(6)=MRLU(6)-NBCK + ENDIF + +C...Unformatted write on unit LFN. + WRITE(LFN,ERR=110,IOSTAT=IERR) (MRLU(I1),I1=1,5), + &(RRLU(I2),I2=1,100) + MRLU(6)=MRLU(6)+1 + RETURN + +C...Write error. + 110 WRITE(CHERR,'(I8)') IERR + CALL LYERRM(18,'(RLYGET:) error when accessing file, IOSTAT ='// + &CHERR) + + RETURN + END + +C********************************************************************* + + SUBROUTINE RLYSET(LFN,MOVE) + +C...Purpose: to read a state of the random number generator from a file +C...for subsequent generation from this state onwards. + COMMON/LYDATR/MRLU(6),RRLU(100) + SAVE /LYDATR/ + CHARACTER CHERR*8 + +C...Backspace required number of records (or as many as there are). + IF(MOVE.LT.0) THEN + NBCK=MIN(MRLU(6),-MOVE) + DO 100 IBCK=1,NBCK + BACKSPACE(LFN,ERR=120,IOSTAT=IERR) + 100 CONTINUE + MRLU(6)=MRLU(6)-NBCK + ENDIF + +C...Unformatted read from unit LFN. + NFOR=1+MAX(0,MOVE) + DO 110 IFOR=1,NFOR + READ(LFN,ERR=120,IOSTAT=IERR) (MRLU(I1),I1=1,5), + &(RRLU(I2),I2=1,100) + 110 CONTINUE + MRLU(6)=MRLU(6)+NFOR + RETURN + +C...Write error. + 120 WRITE(CHERR,'(I8)') IERR + CALL LYERRM(18,'(RLYSET:) error when accessing file, IOSTAT ='// + &CHERR) + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYROBO(THE,PHI,BEX,BEY,BEZ) + +C...Purpose: to perform rotations and boosts. + IMPLICIT DOUBLE PRECISION(D) + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /LYJETS/,/LYDAT1/ + DIMENSION ROT(3,3),PR(3),VR(3),DP(4),DV(4) + +C...Find range of rotation/boost. Convert boost to double precision. + IMIN=1 + IF(MSTU(1).GT.0) IMIN=MSTU(1) + IMAX=N + IF(MSTU(2).GT.0) IMAX=MSTU(2) + DBX=BEX + DBY=BEY + DBZ=BEZ + GOTO 120 + +C...Entry for specific range and double precision boost. + ENTRY LUDBRB(IMI,IMA,THE,PHI,DBEX,DBEY,DBEZ) + IMIN=IMI + IF(IMIN.LE.0) IMIN=1 + IMAX=IMA + IF(IMAX.LE.0) IMAX=N + DBX=DBEX + DBY=DBEY + DBZ=DBEZ + +C...Optional resetting of V (when not set before.) + IF(MSTU(33).NE.0) THEN + DO 110 I=MIN(IMIN,MSTU(4)),MIN(IMAX,MSTU(4)) + DO 100 J=1,5 + V(I,J)=0. + 100 CONTINUE + 110 CONTINUE + MSTU(33)=0 + ENDIF + +C...Check range of rotation/boost. + 120 IF(IMIN.GT.MSTU(4).OR.IMAX.GT.MSTU(4)) THEN + CALL LYERRM(11,'(LYROBO:) range outside LUJETS memory') + RETURN + ENDIF + +C...Rotate, typically from z axis to direction (theta,phi). + IF(THE**2+PHI**2.GT.1E-20) THEN + ROT(1,1)=COS(THE)*COS(PHI) + ROT(1,2)=-SIN(PHI) + ROT(1,3)=SIN(THE)*COS(PHI) + ROT(2,1)=COS(THE)*SIN(PHI) + ROT(2,2)=COS(PHI) + ROT(2,3)=SIN(THE)*SIN(PHI) + ROT(3,1)=-SIN(THE) + ROT(3,2)=0. + ROT(3,3)=COS(THE) + DO 150 I=IMIN,IMAX + IF(K(I,1).LE.0) GOTO 150 + DO 130 J=1,3 + PR(J)=P(I,J) + VR(J)=V(I,J) + 130 CONTINUE + DO 140 J=1,3 + P(I,J)=ROT(J,1)*PR(1)+ROT(J,2)*PR(2)+ROT(J,3)*PR(3) + V(I,J)=ROT(J,1)*VR(1)+ROT(J,2)*VR(2)+ROT(J,3)*VR(3) + 140 CONTINUE + 150 CONTINUE + ENDIF + +C...Boost, typically from rest to momentum/energy=beta. + IF(DBX**2+DBY**2+DBZ**2.GT.1E-20) THEN + DB=SQRT(DBX**2+DBY**2+DBZ**2) + IF(DB.GT.0.99999999D0) THEN +C...Rescale boost vector if too close to unity. + CALL LYERRM(3,'(LYROBO:) boost vector too large') + DBX=DBX*(0.99999999D0/DB) + DBY=DBY*(0.99999999D0/DB) + DBZ=DBZ*(0.99999999D0/DB) + DB=0.99999999D0 + ENDIF + DGA=1D0/SQRT(1D0-DB**2) + DO 170 I=IMIN,IMAX + IF(K(I,1).LE.0) GOTO 170 + DO 160 J=1,4 + DP(J)=P(I,J) + DV(J)=V(I,J) + 160 CONTINUE + DBP=DBX*DP(1)+DBY*DP(2)+DBZ*DP(3) + DGABP=DGA*(DGA*DBP/(1D0+DGA)+DP(4)) + P(I,1)=DP(1)+DGABP*DBX + P(I,2)=DP(2)+DGABP*DBY + P(I,3)=DP(3)+DGABP*DBZ + P(I,4)=DGA*(DP(4)+DBP) + DBV=DBX*DV(1)+DBY*DV(2)+DBZ*DV(3) + DGABV=DGA*(DGA*DBV/(1D0+DGA)+DV(4)) + V(I,1)=DV(1)+DGABV*DBX + V(I,2)=DV(2)+DGABV*DBY + V(I,3)=DV(3)+DGABV*DBZ + V(I,4)=DGA*(DV(4)+DBV) + 170 CONTINUE + ENDIF + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYEDIT(MEDIT) + +C...Purpose: to perform global manipulations on the event record, +C...in particular to exclude unstable or undetectable partons/particles. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + DIMENSION NS(2),PTS(2),PLS(2) + +C...Remove unwanted partons/particles. + IF((MEDIT.GE.0.AND.MEDIT.LE.3).OR.MEDIT.EQ.5) THEN + IMAX=N + IF(MSTU(2).GT.0) IMAX=MSTU(2) + I1=MAX(1,MSTU(1))-1 + DO 110 I=MAX(1,MSTU(1)),IMAX + IF(K(I,1).EQ.0.OR.K(I,1).GT.20) GOTO 110 + IF(MEDIT.EQ.1) THEN + IF(K(I,1).GT.10) GOTO 110 + ELSEIF(MEDIT.EQ.2) THEN + IF(K(I,1).GT.10) GOTO 110 + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR.KC.EQ.18) + & GOTO 110 + ELSEIF(MEDIT.EQ.3) THEN + IF(K(I,1).GT.10) GOTO 110 + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0) GOTO 110 + IF(KCHG(KC,2).EQ.0.AND.LYCHGE(K(I,2)).EQ.0) GOTO 110 + ELSEIF(MEDIT.EQ.5) THEN + IF(K(I,1).EQ.13.OR.K(I,1).EQ.14) GOTO 110 + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0) GOTO 110 + IF(K(I,1).GE.11.AND.KCHG(KC,2).EQ.0) GOTO 110 + ENDIF + +C...Pack remaining partons/particles. Origin no longer known. + I1=I1+1 + DO 100 J=1,5 + K(I1,J)=K(I,J) + P(I1,J)=P(I,J) + V(I1,J)=V(I,J) + 100 CONTINUE + K(I1,3)=0 + 110 CONTINUE + IF(I1.LT.N) MSTU(3)=0 + IF(I1.LT.N) MSTU(70)=0 + N=I1 + +C...Selective removal of class of entries. New position of retained. + ELSEIF(MEDIT.GE.11.AND.MEDIT.LE.15) THEN + I1=0 + DO 120 I=1,N + K(I,3)=MOD(K(I,3),MSTU(5)) + IF(MEDIT.EQ.11.AND.K(I,1).LT.0) GOTO 120 + IF(MEDIT.EQ.12.AND.K(I,1).EQ.0) GOTO 120 + IF(MEDIT.EQ.13.AND.(K(I,1).EQ.11.OR.K(I,1).EQ.12.OR. + & K(I,1).EQ.15).AND.K(I,2).NE.94) GOTO 120 + IF(MEDIT.EQ.14.AND.(K(I,1).EQ.13.OR.K(I,1).EQ.14.OR. + & K(I,2).EQ.94)) GOTO 120 + IF(MEDIT.EQ.15.AND.K(I,1).GE.21) GOTO 120 + I1=I1+1 + K(I,3)=K(I,3)+MSTU(5)*I1 + 120 CONTINUE + +C...Find new event history information and replace old. + DO 140 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.20.OR.K(I,3)/MSTU(5).EQ.0) GOTO 140 + ID=I + 130 IM=MOD(K(ID,3),MSTU(5)) + IF(MEDIT.EQ.13.AND.IM.GT.0.AND.IM.LE.N) THEN + IF((K(IM,1).EQ.11.OR.K(IM,1).EQ.12.OR.K(IM,1).EQ.15).AND. + & K(IM,2).NE.94) THEN + ID=IM + GOTO 130 + ENDIF + ELSEIF(MEDIT.EQ.14.AND.IM.GT.0.AND.IM.LE.N) THEN + IF(K(IM,1).EQ.13.OR.K(IM,1).EQ.14.OR.K(IM,2).EQ.94) THEN + ID=IM + GOTO 130 + ENDIF + ENDIF + K(I,3)=MSTU(5)*(K(I,3)/MSTU(5)) + IF(IM.NE.0) K(I,3)=K(I,3)+K(IM,3)/MSTU(5) + IF(K(I,1).NE.3.AND.K(I,1).NE.13.AND.K(I,1).NE.14) THEN + IF(K(I,4).GT.0.AND.K(I,4).LE.MSTU(4)) K(I,4)= + & K(K(I,4),3)/MSTU(5) + IF(K(I,5).GT.0.AND.K(I,5).LE.MSTU(4)) K(I,5)= + & K(K(I,5),3)/MSTU(5) + ELSE + KCM=MOD(K(I,4)/MSTU(5),MSTU(5)) + IF(KCM.GT.0.AND.KCM.LE.MSTU(4)) KCM=K(KCM,3)/MSTU(5) + KCD=MOD(K(I,4),MSTU(5)) + IF(KCD.GT.0.AND.KCD.LE.MSTU(4)) KCD=K(KCD,3)/MSTU(5) + K(I,4)=MSTU(5)**2*(K(I,4)/MSTU(5)**2)+MSTU(5)*KCM+KCD + KCM=MOD(K(I,5)/MSTU(5),MSTU(5)) + IF(KCM.GT.0.AND.KCM.LE.MSTU(4)) KCM=K(KCM,3)/MSTU(5) + KCD=MOD(K(I,5),MSTU(5)) + IF(KCD.GT.0.AND.KCD.LE.MSTU(4)) KCD=K(KCD,3)/MSTU(5) + K(I,5)=MSTU(5)**2*(K(I,5)/MSTU(5)**2)+MSTU(5)*KCM+KCD + ENDIF + 140 CONTINUE + +C...Pack remaining entries. + I1=0 + MSTU90=MSTU(90) + MSTU(90)=0 + DO 170 I=1,N + IF(K(I,3)/MSTU(5).EQ.0) GOTO 170 + I1=I1+1 + DO 150 J=1,5 + K(I1,J)=K(I,J) + P(I1,J)=P(I,J) + V(I1,J)=V(I,J) + 150 CONTINUE + K(I1,3)=MOD(K(I1,3),MSTU(5)) + DO 160 IZ=1,MSTU90 + IF(I.EQ.MSTU(90+IZ)) THEN + MSTU(90)=MSTU(90)+1 + MSTU(90+MSTU(90))=I1 + PARU(90+MSTU(90))=PARU(90+IZ) + ENDIF + 160 CONTINUE + 170 CONTINUE + IF(I1.LT.N) MSTU(3)=0 + IF(I1.LT.N) MSTU(70)=0 + N=I1 + +C...Fill in some missing daughter pointers (lost in colour flow). + ELSEIF(MEDIT.EQ.16) THEN + DO 190 I=1,N + IF(K(I,1).LE.10.OR.K(I,1).GT.20) GOTO 190 + IF(K(I,4).NE.0.OR.K(I,5).NE.0) GOTO 190 +C...Find daughters who point to mother. + DO 180 I1=I+1,N + IF(K(I1,3).NE.I) THEN + ELSEIF(K(I,4).EQ.0) THEN + K(I,4)=I1 + ELSE + K(I,5)=I1 + ENDIF + 180 CONTINUE + IF(K(I,5).EQ.0) K(I,5)=K(I,4) + IF(K(I,4).NE.0) GOTO 190 +C...Find daughters who point to documentation version of mother. + IM=K(I,3) + IF(IM.LE.0.OR.IM.GE.I) GOTO 190 + IF(K(IM,1).LE.20.OR.K(IM,1).GT.30) GOTO 190 + IF(K(IM,2).NE.K(I,2).OR.ABS(P(IM,5)-P(I,5)).GT.1E-2) GOTO 190 + DO 182 I1=I+1,N + IF(K(I1,3).NE.IM) THEN + ELSEIF(K(I,4).EQ.0) THEN + K(I,4)=I1 + ELSE + K(I,5)=I1 + ENDIF + 182 CONTINUE + IF(K(I,5).EQ.0) K(I,5)=K(I,4) + IF(K(I,4).NE.0) GOTO 190 +C...Find daughters who point to documentation daughters who, +C...in their turn, point to documentation mother. + ID1=IM + ID2=IM + DO 184 I1=IM+1,I-1 + IF(K(I1,3).EQ.IM.AND.K(I1,1).GT.20.AND.K(I1,1).LE.30) THEN + ID2=I1 + IF(ID1.EQ.IM) ID1=I1 + ENDIF + 184 CONTINUE + DO 186 I1=I+1,N + IF(K(I1,3).NE.ID1.AND.K(I1,3).NE.ID2) THEN + ELSEIF(K(I,4).EQ.0) THEN + K(I,4)=I1 + ELSE + K(I,5)=I1 + ENDIF + 186 CONTINUE + IF(K(I,5).EQ.0) K(I,5)=K(I,4) + 190 CONTINUE + +C...Save top entries at bottom of LUJETS commonblock. + ELSEIF(MEDIT.EQ.21) THEN + IF(2*N.GE.MSTU(4)) THEN + CALL LYERRM(11,'(LYEDIT:) no more memory left in LUJETS') + RETURN + ENDIF + DO 210 I=1,N + DO 200 J=1,5 + K(MSTU(4)-I,J)=K(I,J) + P(MSTU(4)-I,J)=P(I,J) + V(MSTU(4)-I,J)=V(I,J) + 200 CONTINUE + 210 CONTINUE + MSTU(32)=N + +C...Restore bottom entries of commonblock LUJETS to top. + ELSEIF(MEDIT.EQ.22) THEN + DO 230 I=1,MSTU(32) + DO 220 J=1,5 + K(I,J)=K(MSTU(4)-I,J) + P(I,J)=P(MSTU(4)-I,J) + V(I,J)=V(MSTU(4)-I,J) + 220 CONTINUE + 230 CONTINUE + N=MSTU(32) + +C...Mark primary entries at top of commonblock LUJETS as untreated. + ELSEIF(MEDIT.EQ.23) THEN + I1=0 + DO 240 I=1,N + KH=K(I,3) + IF(KH.GE.1) THEN + IF(K(KH,1).GT.20) KH=0 + ENDIF + IF(KH.NE.0) GOTO 250 + I1=I1+1 + IF(K(I,1).GT.10.AND.K(I,1).LE.20) K(I,1)=K(I,1)-10 + 240 CONTINUE + 250 N=I1 + +C...Place largest axis along z axis and second largest in xy plane. + ELSEIF(MEDIT.EQ.31.OR.MEDIT.EQ.32) THEN + CALL LUDBRB(1,N+MSTU(3),0.,-UYANGL(P(MSTU(61),1), + & P(MSTU(61),2)),0D0,0D0,0D0) + CALL LUDBRB(1,N+MSTU(3),-UYANGL(P(MSTU(61),3), + & P(MSTU(61),1)),0.,0D0,0D0,0D0) + CALL LUDBRB(1,N+MSTU(3),0.,-UYANGL(P(MSTU(61)+1,1), + & P(MSTU(61)+1,2)),0D0,0D0,0D0) + IF(MEDIT.EQ.31) RETURN + +C...Rotate to put slim jet along +z axis. + DO 260 IS=1,2 + NS(IS)=0 + PTS(IS)=0. + PLS(IS)=0. + 260 CONTINUE + DO 270 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 270 + IF(MSTU(41).GE.2) THEN + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR. + & KC.EQ.18) GOTO 270 + IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LYCHGE(K(I,2)).EQ.0) + & GOTO 270 + ENDIF + IS=2.-SIGN(0.5,P(I,3)) + NS(IS)=NS(IS)+1 + PTS(IS)=PTS(IS)+SQRT(P(I,1)**2+P(I,2)**2) + 270 CONTINUE + IF(NS(1)*PTS(2)**2.LT.NS(2)*PTS(1)**2) + & CALL LUDBRB(1,N+MSTU(3),PARU(1),0.,0D0,0D0,0D0) + +C...Rotate to put second largest jet into -z,+x quadrant. + DO 280 I=1,N + IF(P(I,3).GE.0.) GOTO 280 + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 280 + IF(MSTU(41).GE.2) THEN + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR. + & KC.EQ.18) GOTO 280 + IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LYCHGE(K(I,2)).EQ.0) + & GOTO 280 + ENDIF + IS=2.-SIGN(0.5,P(I,1)) + PLS(IS)=PLS(IS)-P(I,3) + 280 CONTINUE + IF(PLS(2).GT.PLS(1)) CALL LUDBRB(1,N+MSTU(3),0.,PARU(1), + & 0D0,0D0,0D0) + ENDIF + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYLIST(MLIST) + +C...Purpose: to give program heading, or list an event, or particle +C...data, or current parameter values. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + COMMON/LYDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/,/LYDAT3/ + CHARACTER CHAP*16,CHAC*16,CHAN*16,CHAD(5)*16,CHDL(7)*4 + DIMENSION PS(6) + DATA CHDL/'(())',' ','()','!!','<>','==','(==)'/ + +C...Initialization printout: version number and date of last change. + IF(MLIST.EQ.0.OR.MSTU(12).EQ.1) THEN + CALL LYLOGO + MSTU(12)=0 + IF(MLIST.EQ.0) RETURN + ENDIF + +C...List event data, including additional lines after N. + IF(MLIST.GE.1.AND.MLIST.LE.3) THEN + IF(MLIST.EQ.1) WRITE(MSTU(11),5100) + IF(MLIST.EQ.2) WRITE(MSTU(11),5200) + IF(MLIST.EQ.3) WRITE(MSTU(11),5300) + LMX=12 + IF(MLIST.GE.2) LMX=16 + ISTR=0 + IMAX=N + IF(MSTU(2).GT.0) IMAX=MSTU(2) + DO 120 I=MAX(1,MSTU(1)),MAX(IMAX,N+MAX(0,MSTU(3))) + IF((I.GT.IMAX.AND.I.LE.N).OR.K(I,1).LT.0) GOTO 120 + +C...Get particle name, pad it and check it is not too long. + CALL LYNAME(K(I,2),CHAP) + LEN=0 + DO 100 LEM=1,16 + IF(CHAP(LEM:LEM).NE.' ') LEN=LEM + 100 CONTINUE + MDL=(K(I,1)+19)/10 + LDL=0 + IF(MDL.EQ.2.OR.MDL.GE.8) THEN + CHAC=CHAP + IF(LEN.GT.LMX) CHAC(LMX:LMX)='?' + ELSE + LDL=1 + IF(MDL.EQ.1.OR.MDL.EQ.7) LDL=2 + IF(LEN.EQ.0) THEN + CHAC=CHDL(MDL)(1:2*LDL)//' ' + ELSE + CHAC=CHDL(MDL)(1:LDL)//CHAP(1:MIN(LEN,LMX-2*LDL))// + & CHDL(MDL)(LDL+1:2*LDL)//' ' + IF(LEN+2*LDL.GT.LMX) CHAC(LMX:LMX)='?' + ENDIF + ENDIF + +C...Add information on string connection. + IF(K(I,1).EQ.1.OR.K(I,1).EQ.2.OR.K(I,1).EQ.11.OR.K(I,1).EQ.12) + & THEN + KC=LYCOMP(K(I,2)) + KCC=0 + IF(KC.NE.0) KCC=KCHG(KC,2) + IF(IABS(K(I,2)).EQ.39) THEN + IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='X' + ELSEIF(KCC.NE.0.AND.ISTR.EQ.0) THEN + ISTR=1 + IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='A' + ELSEIF(KCC.NE.0.AND.(K(I,1).EQ.2.OR.K(I,1).EQ.12)) THEN + IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='I' + ELSEIF(KCC.NE.0) THEN + ISTR=0 + IF(LEN+2*LDL+3.LE.LMX) CHAC(LMX-1:LMX-1)='V' + ENDIF + ENDIF + +C...Write data for particle/jet. + IF(MLIST.EQ.1.AND.ABS(P(I,4)).LT.9999.) THEN + WRITE(MSTU(11),5400) I,CHAC(1:12),(K(I,J1),J1=1,3), + & (P(I,J2),J2=1,5) + ELSEIF(MLIST.EQ.1.AND.ABS(P(I,4)).LT.99999.) THEN + WRITE(MSTU(11),5500) I,CHAC(1:12),(K(I,J1),J1=1,3), + & (P(I,J2),J2=1,5) + ELSEIF(MLIST.EQ.1) THEN + WRITE(MSTU(11),5600) I,CHAC(1:12),(K(I,J1),J1=1,3), + & (P(I,J2),J2=1,5) + ELSEIF(MSTU(5).EQ.10000.AND.(K(I,1).EQ.3.OR.K(I,1).EQ.13.OR. + & K(I,1).EQ.14)) THEN + WRITE(MSTU(11),5700) I,CHAC,(K(I,J1),J1=1,3), + & K(I,4)/100000000,MOD(K(I,4)/10000,10000),MOD(K(I,4),10000), + & K(I,5)/100000000,MOD(K(I,5)/10000,10000),MOD(K(I,5),10000), + & (P(I,J2),J2=1,5) + ELSE + WRITE(MSTU(11),5800) I,CHAC,(K(I,J1),J1=1,5),(P(I,J2),J2=1,5) + ENDIF + IF(MLIST.EQ.3) WRITE(MSTU(11),5900) (V(I,J),J=1,5) + +C...Insert extra separator lines specified by user. + IF(MSTU(70).GE.1) THEN + ISEP=0 + DO 110 J=1,MIN(10,MSTU(70)) + IF(I.EQ.MSTU(70+J)) ISEP=1 + 110 CONTINUE + IF(ISEP.EQ.1.AND.MLIST.EQ.1) WRITE(MSTU(11),6000) + IF(ISEP.EQ.1.AND.MLIST.GE.2) WRITE(MSTU(11),6100) + ENDIF + 120 CONTINUE + +C...Sum of charges and momenta. + DO 130 J=1,6 + PS(J)=PLY(0,J) + 130 CONTINUE + IF(MLIST.EQ.1.AND.ABS(PS(4)).LT.9999.) THEN + WRITE(MSTU(11),6200) PS(6),(PS(J),J=1,5) + ELSEIF(MLIST.EQ.1.AND.ABS(PS(4)).LT.99999.) THEN + WRITE(MSTU(11),6300) PS(6),(PS(J),J=1,5) + ELSEIF(MLIST.EQ.1) THEN + WRITE(MSTU(11),6400) PS(6),(PS(J),J=1,5) + ELSE + WRITE(MSTU(11),6500) PS(6),(PS(J),J=1,5) + ENDIF + +C...Give simple list of KF codes defined in program. + ELSEIF(MLIST.EQ.11) THEN + WRITE(MSTU(11),6600) + DO 140 KF=1,40 + CALL LYNAME(KF,CHAP) + CALL LYNAME(-KF,CHAN) + IF(CHAP.NE.' '.AND.CHAN.EQ.' ') WRITE(MSTU(11),6700) KF,CHAP + IF(CHAN.NE.' ') WRITE(MSTU(11),6700) KF,CHAP,-KF,CHAN + 140 CONTINUE + DO 170 KFLS=1,3,2 + DO 160 KFLA=1,8 + DO 150 KFLB=1,KFLA-(3-KFLS)/2 + KF=1000*KFLA+100*KFLB+KFLS + CALL LYNAME(KF,CHAP) + CALL LYNAME(-KF,CHAN) + WRITE(MSTU(11),6700) KF,CHAP,-KF,CHAN + 150 CONTINUE + 160 CONTINUE + 170 CONTINUE + KF=130 + CALL LYNAME(KF,CHAP) + WRITE(MSTU(11),6700) KF,CHAP + KF=310 + CALL LYNAME(KF,CHAP) + WRITE(MSTU(11),6700) KF,CHAP + DO 200 KMUL=0,5 + KFLS=3 + IF(KMUL.EQ.0.OR.KMUL.EQ.3) KFLS=1 + IF(KMUL.EQ.5) KFLS=5 + KFLR=0 + IF(KMUL.EQ.2.OR.KMUL.EQ.3) KFLR=1 + IF(KMUL.EQ.4) KFLR=2 + DO 190 KFLB=1,8 + DO 180 KFLC=1,KFLB-1 + KF=10000*KFLR+100*KFLB+10*KFLC+KFLS + CALL LYNAME(KF,CHAP) + CALL LYNAME(-KF,CHAN) + WRITE(MSTU(11),6700) KF,CHAP,-KF,CHAN + 180 CONTINUE + KF=10000*KFLR+110*KFLB+KFLS + CALL LYNAME(KF,CHAP) + WRITE(MSTU(11),6700) KF,CHAP + 190 CONTINUE + 200 CONTINUE + KF=30443 + CALL LYNAME(KF,CHAP) + WRITE(MSTU(11),6700) KF,CHAP + KF=30553 + CALL LYNAME(KF,CHAP) + WRITE(MSTU(11),6700) KF,CHAP + DO 240 KFLSP=1,3 + KFLS=2+2*(KFLSP/3) + DO 230 KFLA=1,8 + DO 220 KFLB=1,KFLA + DO 210 KFLC=1,KFLB + IF(KFLSP.EQ.1.AND.(KFLA.EQ.KFLB.OR.KFLB.EQ.KFLC)) GOTO 210 + IF(KFLSP.EQ.2.AND.KFLA.EQ.KFLC) GOTO 210 + IF(KFLSP.EQ.1) KF=1000*KFLA+100*KFLC+10*KFLB+KFLS + IF(KFLSP.GE.2) KF=1000*KFLA+100*KFLB+10*KFLC+KFLS + CALL LYNAME(KF,CHAP) + CALL LYNAME(-KF,CHAN) + WRITE(MSTU(11),6700) KF,CHAP,-KF,CHAN + 210 CONTINUE + 220 CONTINUE + 230 CONTINUE + 240 CONTINUE + +C...List parton/particle data table. Check whether to be listed. + ELSEIF(MLIST.EQ.12) THEN + WRITE(MSTU(11),6800) + MSTJ24=MSTJ(24) + MSTJ(24)=0 + KFMAX=30553 + IF(MSTU(2).NE.0) KFMAX=MSTU(2) + DO 270 KF=MAX(1,MSTU(1)),KFMAX + KC=LYCOMP(KF) + IF(KC.EQ.0) GOTO 270 + IF(MSTU(14).EQ.0.AND.KF.GT.100.AND.KC.LE.100) GOTO 270 + IF(MSTU(14).GT.0.AND.KF.GT.100.AND.MAX(MOD(KF/1000,10), + & MOD(KF/100,10)).GT.MSTU(14)) GOTO 270 + IF(MSTU(14).GT.0.AND.KF.GT.100.AND.KC.EQ.90) GOTO 270 + +C...Find particle name and mass. Print information. + CALL LYNAME(KF,CHAP) + IF(KF.LE.100.AND.CHAP.EQ.' '.AND.MDCY(KC,2).EQ.0) GOTO 270 + CALL LYNAME(-KF,CHAN) + PM=UYMASS(KF) + WRITE(MSTU(11),6900) KF,KC,CHAP,CHAN,KCHG(KC,1),KCHG(KC,2), + & KCHG(KC,3),PM,PMAS(KC,2),PMAS(KC,3),PMAS(KC,4),MDCY(KC,1) + +C...Particle decay: channel number, branching ration, matrix element, +C...decay products. + IF(KF.GT.100.AND.KC.LE.100) GOTO 270 + DO 260 IDC=MDCY(KC,2),MDCY(KC,2)+MDCY(KC,3)-1 + DO 250 J=1,5 + CALL LYNAME(KFDP(IDC,J),CHAD(J)) + 250 CONTINUE + WRITE(MSTU(11),7000) IDC,MDME(IDC,1),MDME(IDC,2),BRAT(IDC), + & (CHAD(J),J=1,5) + 260 CONTINUE + 270 CONTINUE + MSTJ(24)=MSTJ24 + +C...List parameter value table. + ELSEIF(MLIST.EQ.13) THEN + WRITE(MSTU(11),7100) + DO 280 I=1,200 + WRITE(MSTU(11),7200) I,MSTU(I),PARU(I),MSTJ(I),PARJ(I),PARF(I) + 280 CONTINUE + ENDIF + +C...Format statements for output on unit MSTU(11) (by default 6). + 5100 FORMAT(///28X,'Event listing (summary)'//4X,'I particle/jet KS', + &5X,'KF orig p_x p_y p_z E m'/) + 5200 FORMAT(///28X,'Event listing (standard)'//4X,'I particle/jet', + &' K(I,1) K(I,2) K(I,3) K(I,4) K(I,5) P(I,1)', + &' P(I,2) P(I,3) P(I,4) P(I,5)'/) + 5300 FORMAT(///28X,'Event listing (with vertices)'//4X,'I particle/j', + &'et K(I,1) K(I,2) K(I,3) K(I,4) K(I,5) P(I,1)', + &' P(I,2) P(I,3) P(I,4) P(I,5)'/73X, + &'V(I,1) V(I,2) V(I,3) V(I,4) V(I,5)'/) + 5400 FORMAT(1X,I4,2X,A12,1X,I2,1X,I6,1X,I4,5F9.3) + 5500 FORMAT(1X,I4,2X,A12,1X,I2,1X,I6,1X,I4,5F9.2) + 5600 FORMAT(1X,I4,2X,A12,1X,I2,1X,I6,1X,I4,5F9.1) + 5700 FORMAT(1X,I4,2X,A16,1X,I3,1X,I8,2X,I4,2(3X,I1,2I4),5F13.5) + 5800 FORMAT(1X,I4,2X,A16,1X,I3,1X,I8,2X,I4,2(3X,I9),5F13.5) + 5900 FORMAT(66X,5(1X,F12.3)) + 6000 FORMAT(1X,78('=')) + 6100 FORMAT(1X,130('=')) + 6200 FORMAT(19X,'sum:',F6.2,5X,5F9.3) + 6300 FORMAT(19X,'sum:',F6.2,5X,5F9.2) + 6400 FORMAT(19X,'sum:',F6.2,5X,5F9.1) + 6500 FORMAT(19X,'sum charge:',F6.2,3X,'sum momentum and inv. mass:', + &5F13.5) + 6600 FORMAT(///20X,'List of KF codes in program'/) + 6700 FORMAT(4X,I6,4X,A16,6X,I6,4X,A16) + 6800 FORMAT(///30X,'Particle/parton data table'//5X,'KF',5X,'KC',4X, + &'particle',8X,'antiparticle',6X,'chg col anti',8X,'mass',7X, + &'width',7X,'w-cut',5X,'lifetime',1X,'decay'/11X,'IDC',1X,'on/off', + &1X,'ME',3X,'Br.rat.',4X,'decay products') + 6900 FORMAT(/1X,I6,3X,I4,4X,A16,A16,3I5,1X,F12.5,2(1X,F11.5), + &2X,F12.5,3X,I2) + 7000 FORMAT(10X,I4,2X,I3,2X,I3,2X,F8.5,4X,5A16) + 7100 FORMAT(///20X,'Parameter value table'//4X,'I',3X,'MSTU(I)', + &8X,'PARU(I)',3X,'MSTJ(I)',8X,'PARJ(I)',8X,'PARF(I)') + 7200 FORMAT(1X,I4,1X,I9,1X,F14.5,1X,I9,1X,F14.5,1X,F14.5) + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYLOGO + +C...Purpose: to write logo for JETSET and PYTHIA programs. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) +c DOUBLE PRECISION PARP,PARI +c COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200) + SAVE /LYDAT1/ +c SAVE /PYPARS/ + CHARACTER MONTH(12)*3, LOGO(48)*32, REFER(22)*36, LINE*79, + &VERS*1, SUBV*3, DATE*2, YEAR*4 + +C...Data on months, logo, titles, and references. + DATA MONTH/'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep', + &'Oct','Nov','Dec'/ + DATA (LOGO(J),J=1,10)/ + &'PPP Y Y TTTTT H H III A ', + &'P P Y Y T H H I A A ', + &'PPP Y T HHHHH I AAAAA', + &'P Y T H H I A A', + &'P Y T H H III A A', + &'JJJJ EEEE TTTTT SSS EEEE TTTTT', + &' J E T S E T ', + &' J EEE T SSS EEE T ', + &'J J E T S E T ', + &' JJ EEEE T SSS EEEE T '/ + DATA (LOGO(J),J=11,29)/ + &' *......* ', + &' *:::!!:::::::::::* ', + &' *::::::!!::::::::::::::* ', + &' *::::::::!!::::::::::::::::* ', + &' *:::::::::!!:::::::::::::::::* ', + &' *:::::::::!!:::::::::::::::::* ', + &' *::::::::!!::::::::::::::::*! ', + &' *::::::!!::::::::::::::* !! ', + &' !! *:::!!:::::::::::* !! ', + &' !! !* -><- * !! ', + &' !! !! !! ', + &' !! !! !! ', + &' !! !! ', + &' !! ep !! ', + &' !! !! ', + &' !! pp !! ', + &' !! e+e- !! ', + &' !! !! ', + &' !! '/ + DATA (LOGO(J),J=30,48)/ + &'Welcome to the Lund Monte Carlo!', + &' ', + &' This jetset version x.xxx ', + &'can coexist with xx xxx 199x', + &' PYTHIA !!! ', + &' it was altered by fkw x.xxx ', + &' on 3.29.00 xx xxx 199x', + &' to this effect !!! ', + &' Main author: ', + &' Torbjorn Sjostrand ', + &' Dept. of theoretical physics 2 ', + &' University of Lund ', + &' Solvegatan 14A ', + &' S-223 62 Lund, Sweden ', + &' phone: +46 - 46 - 222 48 16 ', + &' E-mail: torbjorn@thep.lu.se ', + &' ', + &' Copyright Torbjorn Sjostrand ', + &' and CERN, Geneva 1993 '/ + DATA (REFER(J),J=1,6)/ + &'The latest program versions and docu', + &'mentation is found on WWW address ', + &'http://thep.lu.se/tf2/staff/torbjorn', + &'/Welcome.html ', + &' ', + &' This is fkw version !!! '/ + DATA (REFER(J),J=7,22)/ + &'When you cite these programs, priori', + &'ty should always be given to the ', + &'latest published description. Curren', + &'tly this is ', + &'T. Sjostrand, Computer Physics Commu', + &'n. 82 (1994) 74. ', + &'The most recent long description (un', + &'published) is ', + &'T. Sjostrand, LU TP 95-20 and CERN-T', + &'H.7112/93 (revised August 1995). ', + &'Also remember that the programs, to ', + &'a large extent, represent original ', + &'physics research. Other publications', + &' of special relevance to your ', + &'studies may therefore deserve separa', + &'te mention. '/ + +C...Check if PYTHIA linked. +c IF(MSTP(183)/10.NE.199) THEN + LOGO(32)=' Warning: this is jetset7.4_fkw ' + LOGO(33)='All refs to pythia were excised!' +c ELSE +c WRITE(VERS,'(I1)') MSTP(181) +c LOGO(32)(26:26)=VERS +c WRITE(SUBV,'(I3)') MSTP(182) +c LOGO(32)(28:30)=SUBV +c WRITE(DATE,'(I2)') MSTP(185) +c LOGO(33)(22:23)=DATE +c LOGO(33)(25:27)=MONTH(MSTP(184)) +c WRITE(YEAR,'(I4)') MSTP(183) +c LOGO(33)(29:32)=YEAR +c ENDIF + +C...Check if JETSET linked. + IF(MSTU(183)/10.NE.199) THEN + LOGO(35)=' Error: JETSET is not loaded! ' + LOGO(36)='Did you remember to link LYDATA?' + ELSE + WRITE(VERS,'(I1)') MSTU(181) + LOGO(35)(26:26)=VERS + WRITE(SUBV,'(I3)') MSTU(182) + LOGO(35)(28:30)=SUBV + WRITE(DATE,'(I2)') MSTU(185) + LOGO(36)(22:23)=DATE + LOGO(36)(25:27)=MONTH(MSTU(184)) + WRITE(YEAR,'(I4)') MSTU(183) + LOGO(36)(29:32)=YEAR + ENDIF + +C...Loop over lines in header. Define page feed and side borders. + DO 100 ILIN=1,48 + LINE=' ' + IF(ILIN.EQ.1) THEN + LINE(1:1)='1' + ELSE + LINE(2:3)='**' + LINE(78:79)='**' + ENDIF + +C...Separator lines and logos. + IF(ILIN.EQ.2.OR.ILIN.EQ.3.OR.ILIN.EQ.47.OR.ILIN.EQ.48) THEN + LINE(4:77)='***********************************************'// + & '***************************' + ELSEIF(ILIN.GE.6.AND.ILIN.LE.10) THEN + LINE(6:37)=LOGO(ILIN-5) + LINE(44:75)=LOGO(ILIN) + ELSEIF(ILIN.GE.13.AND.ILIN.LE.31) THEN + LINE(6:37)=LOGO(ILIN-2) + LINE(44:75)=LOGO(ILIN+17) + ELSEIF(ILIN.GE.34.AND.ILIN.LE.44) THEN + LINE(5:40)=REFER(2*ILIN-67) + LINE(41:76)=REFER(2*ILIN-66) + ENDIF + +C...Write lines to appropriate unit. + IF(MSTU(183)/10.EQ.199) THEN + WRITE(MSTU(11),'(A79)') LINE + ELSE + WRITE(*,'(A79)') LINE + ENDIF + 100 CONTINUE + +C...Check that matching subversions are linked. +c IF(MSTU(183)/10.EQ.199.AND.MSTP(183)/10.EQ.199) THEN +c IF(MSTU(182).LT.MSTP(186)) WRITE(MSTU(11), + WRITE(MSTU(11), + & '(/'' Warning: Jetset7.4_fkw independent of PYTHIA!''/)') +c IF(MSTP(182).LT.MSTU(186)) WRITE(MSTU(11), +c & '(/'' Warning: PYTHIA subversion too old for JETSET''/)') +c ENDIF + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYUPDA(MUPDA,LFN) + +C...Purpose: to facilitate the updating of particle and decay data. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + COMMON/LYDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5) + COMMON/LYDAT4/CHAF(500) + CHARACTER CHAF*8 + SAVE /LYDAT1/,/LYDAT2/,/LYDAT3/,/LYDAT4/ + CHARACTER CHINL*80,CHKC*4,CHVAR(19)*9,CHLIN*72, + &CHBLK(20)*72,CHOLD*12,CHTMP*12,CHNEW*12,CHCOM*12 + DATA CHVAR/ 'KCHG(I,1)','KCHG(I,2)','KCHG(I,3)','PMAS(I,1)', + &'PMAS(I,2)','PMAS(I,3)','PMAS(I,4)','MDCY(I,1)','MDCY(I,2)', + &'MDCY(I,3)','MDME(I,1)','MDME(I,2)','BRAT(I) ','KFDP(I,1)', + &'KFDP(I,2)','KFDP(I,3)','KFDP(I,4)','KFDP(I,5)','CHAF(I) '/ + +C...Write information on file for editing. + IF(MSTU(12).GE.1) CALL LYLIST(0) + IF(MUPDA.EQ.1) THEN + DO 110 KC=1,MSTU(6) + WRITE(LFN,5000) KC,CHAF(KC),(KCHG(KC,J1),J1=1,3), + & (PMAS(KC,J2),J2=1,4),MDCY(KC,1) + DO 100 IDC=MDCY(KC,2),MDCY(KC,2)+MDCY(KC,3)-1 + WRITE(LFN,5100) MDME(IDC,1),MDME(IDC,2),BRAT(IDC), + & (KFDP(IDC,J),J=1,5) + 100 CONTINUE + 110 CONTINUE + +C...Reset variables and read information from edited file. + ELSEIF(MUPDA.EQ.2) THEN + DO 130 I=1,MSTU(7) + MDME(I,1)=1 + MDME(I,2)=0 + BRAT(I)=0. + DO 120 J=1,5 + KFDP(I,J)=0 + 120 CONTINUE + 130 CONTINUE + KC=0 + IDC=0 + NDC=0 + 140 READ(LFN,5200,END=150) CHINL + IF(CHINL(2:5).NE.' ') THEN + CHKC=CHINL(2:5) + IF(KC.NE.0) THEN + MDCY(KC,2)=0 + IF(NDC.NE.0) MDCY(KC,2)=IDC+1-NDC + MDCY(KC,3)=NDC + ENDIF + READ(CHKC,5300) KC + IF(KC.LE.0.OR.KC.GT.MSTU(6)) CALL LYERRM(27, + & '(LYUPDA:) Read KC code illegal, KC ='//CHKC) + READ(CHINL,5000) KCR,CHAF(KC),(KCHG(KC,J1),J1=1,3), + & (PMAS(KC,J2),J2=1,4),MDCY(KC,1) + NDC=0 + ELSE + IDC=IDC+1 + NDC=NDC+1 + IF(IDC.GE.MSTU(7)) CALL LYERRM(27, + & '(LYUPDA:) Decay data arrays full by KC ='//CHKC) + READ(CHINL,5100) MDME(IDC,1),MDME(IDC,2),BRAT(IDC), + & (KFDP(IDC,J),J=1,5) + ENDIF + GOTO 140 + 150 MDCY(KC,2)=0 + IF(NDC.NE.0) MDCY(KC,2)=IDC+1-NDC + MDCY(KC,3)=NDC + +C...Perform possible tests that new information is consistent. + MSTJ24=MSTJ(24) + MSTJ(24)=0 + DO 180 KC=1,MSTU(6) + WRITE(CHKC,5300) KC + IF(MIN(PMAS(KC,1),PMAS(KC,2),PMAS(KC,3),PMAS(KC,1)-PMAS(KC,3), + & PMAS(KC,4)).LT.0..OR.MDCY(KC,3).LT.0) CALL LYERRM(17, + & '(LYUPDA:) Mass/width/life/(# channels) wrong for KC ='//CHKC) + BRSUM=0. + DO 170 IDC=MDCY(KC,2),MDCY(KC,2)+MDCY(KC,3)-1 + IF(MDME(IDC,2).GT.80) GOTO 170 + KQ=KCHG(KC,1) + PMS=PMAS(KC,1)-PMAS(KC,3)-PARJ(64) + MERR=0 + DO 160 J=1,5 + KP=KFDP(IDC,J) + IF(KP.EQ.0.OR.KP.EQ.81.OR.IABS(KP).EQ.82) THEN + ELSEIF(LYCOMP(KP).EQ.0) THEN + MERR=3 + ELSE + KQ=KQ-LYCHGE(KP) + PMS=PMS-UYMASS(KP) + ENDIF + 160 CONTINUE + IF(KQ.NE.0) MERR=MAX(2,MERR) + IF(KFDP(IDC,2).NE.0.AND.(KC.LE.20.OR.KC.GT.40).AND. + & (KC.LE.80.OR.KC.GT.100).AND.MDME(IDC,2).NE.34.AND. + & MDME(IDC,2).NE.61.AND.PMS.LT.0.) MERR=MAX(1,MERR) + IF(MERR.EQ.3) CALL LYERRM(17, + & '(LYUPDA:) Unknown particle code in decay of KC ='//CHKC) + IF(MERR.EQ.2) CALL LYERRM(17, + & '(LYUPDA:) Charge not conserved in decay of KC ='//CHKC) + IF(MERR.EQ.1) CALL LYERRM(7, + & '(LYUPDA:) Kinematically unallowed decay of KC ='//CHKC) + BRSUM=BRSUM+BRAT(IDC) + 170 CONTINUE + WRITE(CHTMP,5500) BRSUM + IF(ABS(BRSUM).GT.0.0005.AND.ABS(BRSUM-1.).GT.0.0005) CALL + & LYERRM(7,'(LYUPDA:) Sum of branching ratios is '//CHTMP(5:12)// + & ' for KC ='//CHKC) + 180 CONTINUE + MSTJ(24)=MSTJ24 + +C...Initialize writing of DATA statements for inclusion in program. + ELSEIF(MUPDA.EQ.3) THEN + DO 250 IVAR=1,19 + NDIM=MSTU(6) + IF(IVAR.GE.11.AND.IVAR.LE.18) NDIM=MSTU(7) + NLIN=1 + CHLIN=' ' + CHLIN(7:35)='DATA ('//CHVAR(IVAR)//',I= 1, )/' + LLIN=35 + CHOLD='START' + +C...Loop through variables for conversion to characters. + DO 230 IDIM=1,NDIM + IF(IVAR.EQ.1) WRITE(CHTMP,5400) KCHG(IDIM,1) + IF(IVAR.EQ.2) WRITE(CHTMP,5400) KCHG(IDIM,2) + IF(IVAR.EQ.3) WRITE(CHTMP,5400) KCHG(IDIM,3) + IF(IVAR.EQ.4) WRITE(CHTMP,5500) PMAS(IDIM,1) + IF(IVAR.EQ.5) WRITE(CHTMP,5500) PMAS(IDIM,2) + IF(IVAR.EQ.6) WRITE(CHTMP,5500) PMAS(IDIM,3) + IF(IVAR.EQ.7) WRITE(CHTMP,5500) PMAS(IDIM,4) + IF(IVAR.EQ.8) WRITE(CHTMP,5400) MDCY(IDIM,1) + IF(IVAR.EQ.9) WRITE(CHTMP,5400) MDCY(IDIM,2) + IF(IVAR.EQ.10) WRITE(CHTMP,5400) MDCY(IDIM,3) + IF(IVAR.EQ.11) WRITE(CHTMP,5400) MDME(IDIM,1) + IF(IVAR.EQ.12) WRITE(CHTMP,5400) MDME(IDIM,2) + IF(IVAR.EQ.13) WRITE(CHTMP,5500) BRAT(IDIM) + IF(IVAR.EQ.14) WRITE(CHTMP,5400) KFDP(IDIM,1) + IF(IVAR.EQ.15) WRITE(CHTMP,5400) KFDP(IDIM,2) + IF(IVAR.EQ.16) WRITE(CHTMP,5400) KFDP(IDIM,3) + IF(IVAR.EQ.17) WRITE(CHTMP,5400) KFDP(IDIM,4) + IF(IVAR.EQ.18) WRITE(CHTMP,5400) KFDP(IDIM,5) + IF(IVAR.EQ.19) CHTMP=CHAF(IDIM) + +C...Length of variable, trailing decimal zeros, quotation marks. + LLOW=1 + LHIG=1 + DO 190 LL=1,12 + IF(CHTMP(13-LL:13-LL).NE.' ') LLOW=13-LL + IF(CHTMP(LL:LL).NE.' ') LHIG=LL + 190 CONTINUE + CHNEW=CHTMP(LLOW:LHIG)//' ' + LNEW=1+LHIG-LLOW + IF((IVAR.GE.4.AND.IVAR.LE.7).OR.IVAR.EQ.13) THEN + LNEW=LNEW+1 + 200 LNEW=LNEW-1 + IF(CHNEW(LNEW:LNEW).EQ.'0') GOTO 200 + IF(LNEW.EQ.1) CHNEW(1:2)='0.' + IF(LNEW.EQ.1) LNEW=2 + ELSEIF(IVAR.EQ.19) THEN + DO 210 LL=LNEW,1,-1 + IF(CHNEW(LL:LL).EQ.'''') THEN + CHTMP=CHNEW + CHNEW=CHTMP(1:LL)//''''//CHTMP(LL+1:11) + LNEW=LNEW+1 + ENDIF + 210 CONTINUE + CHTMP=CHNEW + CHNEW(1:LNEW+2)=''''//CHTMP(1:LNEW)//'''' + LNEW=LNEW+2 + ENDIF + +C...Form composite character string, often including repetition counter. + IF(CHNEW.NE.CHOLD) THEN + NRPT=1 + CHOLD=CHNEW + CHCOM=CHNEW + LCOM=LNEW + ELSE + LRPT=LNEW+1 + IF(NRPT.GE.2) LRPT=LNEW+3 + IF(NRPT.GE.10) LRPT=LNEW+4 + IF(NRPT.GE.100) LRPT=LNEW+5 + IF(NRPT.GE.1000) LRPT=LNEW+6 + LLIN=LLIN-LRPT + NRPT=NRPT+1 + WRITE(CHTMP,5400) NRPT + LRPT=1 + IF(NRPT.GE.10) LRPT=2 + IF(NRPT.GE.100) LRPT=3 + IF(NRPT.GE.1000) LRPT=4 + CHCOM(1:LRPT+1+LNEW)=CHTMP(13-LRPT:12)//'*'//CHNEW(1:LNEW) + LCOM=LRPT+1+LNEW + ENDIF + +C...Add characters to end of line, to new line (after storing old line), +C...or to new block of lines (after writing old block). + IF(LLIN+LCOM.LE.70) THEN + CHLIN(LLIN+1:LLIN+LCOM+1)=CHCOM(1:LCOM)//',' + LLIN=LLIN+LCOM+1 + ELSEIF(NLIN.LE.19) THEN + CHLIN(LLIN+1:72)=' ' + CHBLK(NLIN)=CHLIN + NLIN=NLIN+1 + CHLIN(6:6+LCOM+1)='&'//CHCOM(1:LCOM)//',' + LLIN=6+LCOM+1 + ELSE + CHLIN(LLIN:72)='/'//' ' + CHBLK(NLIN)=CHLIN + WRITE(CHTMP,5400) IDIM-NRPT + CHBLK(1)(30:33)=CHTMP(9:12) + DO 220 ILIN=1,NLIN + WRITE(LFN,5600) CHBLK(ILIN) + 220 CONTINUE + NLIN=1 + CHLIN=' ' + CHLIN(7:35+LCOM+1)='DATA ('//CHVAR(IVAR)//',I= , )/'// + & CHCOM(1:LCOM)//',' + WRITE(CHTMP,5400) IDIM-NRPT+1 + CHLIN(25:28)=CHTMP(9:12) + LLIN=35+LCOM+1 + ENDIF + 230 CONTINUE + +C...Write final block of lines. + CHLIN(LLIN:72)='/'//' ' + CHBLK(NLIN)=CHLIN + WRITE(CHTMP,5400) NDIM + CHBLK(1)(30:33)=CHTMP(9:12) + DO 240 ILIN=1,NLIN + WRITE(LFN,5600) CHBLK(ILIN) + 240 CONTINUE + 250 CONTINUE + ENDIF + +C...Formats for reading and writing particle data. + 5000 FORMAT(1X,I4,2X,A8,3I3,3F12.5,2X,F12.5,I3) + 5100 FORMAT(5X,2I5,F12.5,5I8) + 5200 FORMAT(A80) + 5300 FORMAT(I4) + 5400 FORMAT(I12) + 5500 FORMAT(F12.5) + 5600 FORMAT(A72) + + RETURN + END + +C********************************************************************* + + FUNCTION KLY(I,J) + +C...Purpose: to provide various integer-valued event related data. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + +C...Default value. For I=0 number of entries, number of stable entries +C...or 3 times total charge. + KLY=0 + IF(I.LT.0.OR.I.GT.MSTU(4).OR.J.LE.0) THEN + ELSEIF(I.EQ.0.AND.J.EQ.1) THEN + KLY=N + ELSEIF(I.EQ.0.AND.(J.EQ.2.OR.J.EQ.6)) THEN + DO 100 I1=1,N + IF(J.EQ.2.AND.K(I1,1).GE.1.AND.K(I1,1).LE.10) KLY=KLY+1 + IF(J.EQ.6.AND.K(I1,1).GE.1.AND.K(I1,1).LE.10) KLY=KLY+ + & LYCHGE(K(I1,2)) + 100 CONTINUE + ELSEIF(I.EQ.0) THEN + +C...For I > 0 direct readout of K matrix or charge. + ELSEIF(J.LE.5) THEN + KLY=K(I,J) + ELSEIF(J.EQ.6) THEN + KLY=LYCHGE(K(I,2)) + +C...Status (existing/fragmented/decayed), parton/hadron separation. + ELSEIF(J.LE.8) THEN + IF(K(I,1).GE.1.AND.K(I,1).LE.10) KLY=1 + IF(J.EQ.8) KLY=KLY*K(I,2) + ELSEIF(J.LE.12) THEN + KFA=IABS(K(I,2)) + KC=LYCOMP(KFA) + KQ=0 + IF(KC.NE.0) KQ=KCHG(KC,2) + IF(J.EQ.9.AND.KC.NE.0.AND.KQ.NE.0) KLY=K(I,2) + IF(J.EQ.10.AND.KC.NE.0.AND.KQ.EQ.0) KLY=K(I,2) + IF(J.EQ.11) KLY=KC + IF(J.EQ.12) KLY=KQ*ISIGN(1,K(I,2)) + +C...Heaviest flavour in hadron/diquark. + ELSEIF(J.EQ.13) THEN + KFA=IABS(K(I,2)) + KLY=MOD(KFA/100,10)*(-1)**MOD(KFA/100,10) + IF(KFA.LT.10) KLY=KFA + IF(MOD(KFA/1000,10).NE.0) KLY=MOD(KFA/1000,10) + KLY=KLY*ISIGN(1,K(I,2)) + +C...Particle history: generation, ancestor, rank. + ELSEIF(J.LE.15) THEN + I2=I + I1=I + 110 KLY=KLY+1 + I2=I1 + I1=K(I1,3) + IF(I1.GT.0.AND.K(I1,1).GT.0.AND.K(I1,1).LE.20) GOTO 110 + IF(J.EQ.15) KLY=I2 + ELSEIF(J.EQ.16) THEN + KFA=IABS(K(I,2)) + IF(K(I,1).LE.20.AND.((KFA.GE.11.AND.KFA.LE.20).OR.KFA.EQ.22.OR. + & (KFA.GT.100.AND.MOD(KFA/10,10).NE.0))) THEN + I1=I + 120 I2=I1 + I1=K(I1,3) + IF(I1.GT.0) THEN + KFAM=IABS(K(I1,2)) + ILP=1 + IF(KFAM.NE.0.AND.KFAM.LE.10) ILP=0 + IF(KFAM.EQ.21.OR.KFAM.EQ.91.OR.KFAM.EQ.92.OR.KFAM.EQ.93) + & ILP=0 + IF(KFAM.GT.100.AND.MOD(KFAM/10,10).EQ.0) ILP=0 + IF(ILP.EQ.1) GOTO 120 + ENDIF + IF(K(I1,1).EQ.12) THEN + DO 130 I3=I1+1,I2 + IF(K(I3,3).EQ.K(I2,3).AND.K(I3,2).NE.91.AND.K(I3,2).NE.92 + & .AND.K(I3,2).NE.93) KLY=KLY+1 + 130 CONTINUE + ELSE + I3=I2 + 140 KLY=KLY+1 + I3=I3+1 + IF(I3.LT.N.AND.K(I3,3).EQ.K(I2,3)) GOTO 140 + ENDIF + ENDIF + +C...Particle coming from collapsing jet system or not. + ELSEIF(J.EQ.17) THEN + I1=I + 150 KLY=KLY+1 + I3=I1 + I1=K(I1,3) + I0=MAX(1,I1) + KC=LYCOMP(K(I0,2)) + IF(I1.EQ.0.OR.K(I0,1).LE.0.OR.K(I0,1).GT.20.OR.KC.EQ.0) THEN + IF(KLY.EQ.1) KLY=-1 + IF(KLY.GT.1) KLY=0 + RETURN + ENDIF + IF(KCHG(KC,2).EQ.0) GOTO 150 + IF(K(I1,1).NE.12) KLY=0 + IF(K(I1,1).NE.12) RETURN + I2=I1 + 160 I2=I2+1 + IF(I2.LT.N.AND.K(I2,1).NE.11) GOTO 160 + K3M=K(I3-1,3) + IF(K3M.GE.I1.AND.K3M.LE.I2) KLY=0 + K3P=K(I3+1,3) + IF(I3.LT.N.AND.K3P.GE.I1.AND.K3P.LE.I2) KLY=0 + +C...Number of decay products. Colour flow. + ELSEIF(J.EQ.18) THEN + IF(K(I,1).EQ.11.OR.K(I,1).EQ.12) KLY=MAX(0,K(I,5)-K(I,4)+1) + IF(K(I,4).EQ.0.OR.K(I,5).EQ.0) KLY=0 + ELSEIF(J.LE.22) THEN + IF(K(I,1).NE.3.AND.K(I,1).NE.13.AND.K(I,1).NE.14) RETURN + IF(J.EQ.19) KLY=MOD(K(I,4)/MSTU(5),MSTU(5)) + IF(J.EQ.20) KLY=MOD(K(I,5)/MSTU(5),MSTU(5)) + IF(J.EQ.21) KLY=MOD(K(I,4),MSTU(5)) + IF(J.EQ.22) KLY=MOD(K(I,5),MSTU(5)) + ELSE + ENDIF + + RETURN + END + +C********************************************************************* + + FUNCTION PLY(I,J) + +C...Purpose: to provide various real-valued event related data. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + DIMENSION PSUM(4) + +C...Set default value. For I = 0 sum of momenta or charges, +C...or invariant mass of system. + PLY=0. + IF(I.LT.0.OR.I.GT.MSTU(4).OR.J.LE.0) THEN + ELSEIF(I.EQ.0.AND.J.LE.4) THEN + DO 100 I1=1,N + IF(K(I1,1).GT.0.AND.K(I1,1).LE.10) PLY=PLY+P(I1,J) + 100 CONTINUE + ELSEIF(I.EQ.0.AND.J.EQ.5) THEN + DO 120 J1=1,4 + PSUM(J1)=0. + DO 110 I1=1,N + IF(K(I1,1).GT.0.AND.K(I1,1).LE.10) PSUM(J1)=PSUM(J1)+P(I1,J1) + 110 CONTINUE + 120 CONTINUE + PLY=SQRT(MAX(0.,PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-PSUM(3)**2)) + ELSEIF(I.EQ.0.AND.J.EQ.6) THEN + DO 130 I1=1,N + IF(K(I1,1).GT.0.AND.K(I1,1).LE.10) PLY=PLY+LYCHGE(K(I1,2))/3. + 130 CONTINUE + ELSEIF(I.EQ.0) THEN + +C...Direct readout of P matrix. + ELSEIF(J.LE.5) THEN + PLY=P(I,J) + +C...Charge, total momentum, transverse momentum, transverse mass. + ELSEIF(J.LE.12) THEN + IF(J.EQ.6) PLY=LYCHGE(K(I,2))/3. + IF(J.EQ.7.OR.J.EQ.8) PLY=P(I,1)**2+P(I,2)**2+P(I,3)**2 + IF(J.EQ.9.OR.J.EQ.10) PLY=P(I,1)**2+P(I,2)**2 + IF(J.EQ.11.OR.J.EQ.12) PLY=P(I,5)**2+P(I,1)**2+P(I,2)**2 + IF(J.EQ.8.OR.J.EQ.10.OR.J.EQ.12) PLY=SQRT(PLY) + +C...Theta and phi angle in radians or degrees. + ELSEIF(J.LE.16) THEN + IF(J.LE.14) PLY=UYANGL(P(I,3),SQRT(P(I,1)**2+P(I,2)**2)) + IF(J.GE.15) PLY=UYANGL(P(I,1),P(I,2)) + IF(J.EQ.14.OR.J.EQ.16) PLY=PLY*180./PARU(1) + +C...True rapidity, rapidity with pion mass, pseudorapidity. + ELSEIF(J.LE.19) THEN + PMR=0. + IF(J.EQ.17) PMR=P(I,5) + IF(J.EQ.18) PMR=UYMASS(211) + PR=MAX(1E-20,PMR**2+P(I,1)**2+P(I,2)**2) + PLY=SIGN(LOG(MIN((SQRT(PR+P(I,3)**2)+ABS(P(I,3)))/SQRT(PR), + & 1E20)),P(I,3)) + +C...Energy and momentum fractions (only to be used in CM frame). + ELSEIF(J.LE.25) THEN + IF(J.EQ.20) PLY=2.*SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2)/PARU(21) + IF(J.EQ.21) PLY=2.*P(I,3)/PARU(21) + IF(J.EQ.22) PLY=2.*SQRT(P(I,1)**2+P(I,2)**2)/PARU(21) + IF(J.EQ.23) PLY=2.*P(I,4)/PARU(21) + IF(J.EQ.24) PLY=(P(I,4)+P(I,3))/PARU(21) + IF(J.EQ.25) PLY=(P(I,4)-P(I,3))/PARU(21) + ENDIF + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYSPHE(SPH,APL) + +C...Purpose: to perform sphericity tensor analysis to give sphericity, +C...aplanarity and the related event axes. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + DIMENSION SM(3,3),SV(3,3) + +C...Calculate matrix to be diagonalized. + NP=0 + DO 110 J1=1,3 + DO 100 J2=J1,3 + SM(J1,J2)=0. + 100 CONTINUE + 110 CONTINUE + PS=0. + DO 140 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 140 + IF(MSTU(41).GE.2) THEN + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR. + & KC.EQ.18) GOTO 140 + IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LYCHGE(K(I,2)).EQ.0) + & GOTO 140 + ENDIF + NP=NP+1 + PA=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2) + PWT=1. + IF(ABS(PARU(41)-2.).GT.0.001) PWT=MAX(1E-10,PA)**(PARU(41)-2.) + DO 130 J1=1,3 + DO 120 J2=J1,3 + SM(J1,J2)=SM(J1,J2)+PWT*P(I,J1)*P(I,J2) + 120 CONTINUE + 130 CONTINUE + PS=PS+PWT*PA**2 + 140 CONTINUE + +C...Very low multiplicities (0 or 1) not considered. + IF(NP.LE.1) THEN + CALL LYERRM(8,'(LYSPHE:) too few particles for analysis') + SPH=-1. + APL=-1. + RETURN + ENDIF + DO 160 J1=1,3 + DO 150 J2=J1,3 + SM(J1,J2)=SM(J1,J2)/PS + 150 CONTINUE + 160 CONTINUE + +C...Find eigenvalues to matrix (third degree equation). + SQ=(SM(1,1)*SM(2,2)+SM(1,1)*SM(3,3)+SM(2,2)*SM(3,3)-SM(1,2)**2- + &SM(1,3)**2-SM(2,3)**2)/3.-1./9. + SR=-0.5*(SQ+1./9.+SM(1,1)*SM(2,3)**2+SM(2,2)*SM(1,3)**2+SM(3,3)* + &SM(1,2)**2-SM(1,1)*SM(2,2)*SM(3,3))+SM(1,2)*SM(1,3)*SM(2,3)+1./27. + SP=COS(ACOS(MAX(MIN(SR/SQRT(-SQ**3),1.),-1.))/3.) + P(N+1,4)=1./3.+SQRT(-SQ)*MAX(2.*SP,SQRT(3.*(1.-SP**2))-SP) + P(N+3,4)=1./3.+SQRT(-SQ)*MIN(2.*SP,-SQRT(3.*(1.-SP**2))-SP) + P(N+2,4)=1.-P(N+1,4)-P(N+3,4) + IF(P(N+2,4).LT.1E-5) THEN + CALL LYERRM(8,'(LYSPHE:) all particles back-to-back') + SPH=-1. + APL=-1. + RETURN + ENDIF + +C...Find first and last eigenvector by solving equation system. + DO 240 I=1,3,2 + DO 180 J1=1,3 + SV(J1,J1)=SM(J1,J1)-P(N+I,4) + DO 170 J2=J1+1,3 + SV(J1,J2)=SM(J1,J2) + SV(J2,J1)=SM(J1,J2) + 170 CONTINUE + 180 CONTINUE + SMAX=0. + DO 200 J1=1,3 + DO 190 J2=1,3 + IF(ABS(SV(J1,J2)).LE.SMAX) GOTO 190 + JA=J1 + JB=J2 + SMAX=ABS(SV(J1,J2)) + 190 CONTINUE + 200 CONTINUE + SMAX=0. + DO 220 J3=JA+1,JA+2 + J1=J3-3*((J3-1)/3) + RL=SV(J1,JB)/SV(JA,JB) + DO 210 J2=1,3 + SV(J1,J2)=SV(J1,J2)-RL*SV(JA,J2) + IF(ABS(SV(J1,J2)).LE.SMAX) GOTO 210 + JC=J1 + SMAX=ABS(SV(J1,J2)) + 210 CONTINUE + 220 CONTINUE + JB1=JB+1-3*(JB/3) + JB2=JB+2-3*((JB+1)/3) + P(N+I,JB1)=-SV(JC,JB2) + P(N+I,JB2)=SV(JC,JB1) + P(N+I,JB)=-(SV(JA,JB1)*P(N+I,JB1)+SV(JA,JB2)*P(N+I,JB2))/ + &SV(JA,JB) + PA=SQRT(P(N+I,1)**2+P(N+I,2)**2+P(N+I,3)**2) + SGN=(-1.)**INT(RLY(0)+0.5) + DO 230 J=1,3 + P(N+I,J)=SGN*P(N+I,J)/PA + 230 CONTINUE + 240 CONTINUE + +C...Middle axis orthogonal to other two. Fill other codes. + SGN=(-1.)**INT(RLY(0)+0.5) + P(N+2,1)=SGN*(P(N+1,2)*P(N+3,3)-P(N+1,3)*P(N+3,2)) + P(N+2,2)=SGN*(P(N+1,3)*P(N+3,1)-P(N+1,1)*P(N+3,3)) + P(N+2,3)=SGN*(P(N+1,1)*P(N+3,2)-P(N+1,2)*P(N+3,1)) + DO 260 I=1,3 + K(N+I,1)=31 + K(N+I,2)=95 + K(N+I,3)=I + K(N+I,4)=0 + K(N+I,5)=0 + P(N+I,5)=0. + DO 250 J=1,5 + V(I,J)=0. + 250 CONTINUE + 260 CONTINUE + +C...Calculate sphericity and aplanarity. Select storing option. + SPH=1.5*(P(N+2,4)+P(N+3,4)) + APL=1.5*P(N+3,4) + MSTU(61)=N+1 + MSTU(62)=NP + IF(MSTU(43).LE.1) MSTU(3)=3 + IF(MSTU(43).GE.2) N=N+3 + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYTHRU(THR,OBL) + +C...Purpose: to perform thrust analysis to give thrust, oblateness +C...and the related event axes. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + DIMENSION TDI(3),TPR(3) + +C...Take copy of particles that are to be considered in thrust analysis. + NP=0 + PS=0. + DO 100 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 100 + IF(MSTU(41).GE.2) THEN + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR. + & KC.EQ.18) GOTO 100 + IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LYCHGE(K(I,2)).EQ.0) + & GOTO 100 + ENDIF + IF(N+NP+MSTU(44)+15.GE.MSTU(4)-MSTU(32)-5) THEN + CALL LYERRM(11,'(LYTHRU:) no more memory left in LUJETS') + THR=-2. + OBL=-2. + RETURN + ENDIF + NP=NP+1 + K(N+NP,1)=23 + P(N+NP,1)=P(I,1) + P(N+NP,2)=P(I,2) + P(N+NP,3)=P(I,3) + P(N+NP,4)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2) + P(N+NP,5)=1. + IF(ABS(PARU(42)-1.).GT.0.001) P(N+NP,5)=P(N+NP,4)**(PARU(42)-1.) + PS=PS+P(N+NP,4)*P(N+NP,5) + 100 CONTINUE + +C...Very low multiplicities (0 or 1) not considered. + IF(NP.LE.1) THEN + CALL LYERRM(8,'(LYTHRU:) too few particles for analysis') + THR=-1. + OBL=-1. + RETURN + ENDIF + +C...Loop over thrust and major. T axis along z direction in latter case. + DO 320 ILD=1,2 + IF(ILD.EQ.2) THEN + K(N+NP+1,1)=31 + PHI=UYANGL(P(N+NP+1,1),P(N+NP+1,2)) + MSTU(33)=1 + CALL LUDBRB(N+1,N+NP+1,0.,-PHI,0D0,0D0,0D0) + THE=UYANGL(P(N+NP+1,3),P(N+NP+1,1)) + CALL LUDBRB(N+1,N+NP+1,-THE,0.,0D0,0D0,0D0) + ENDIF + +C...Find and order particles with highest p (pT for major). + DO 110 ILF=N+NP+4,N+NP+MSTU(44)+4 + P(ILF,4)=0. + 110 CONTINUE + DO 160 I=N+1,N+NP + IF(ILD.EQ.2) P(I,4)=SQRT(P(I,1)**2+P(I,2)**2) + DO 130 ILF=N+NP+MSTU(44)+3,N+NP+4,-1 + IF(P(I,4).LE.P(ILF,4)) GOTO 140 + DO 120 J=1,5 + P(ILF+1,J)=P(ILF,J) + 120 CONTINUE + 130 CONTINUE + ILF=N+NP+3 + 140 DO 150 J=1,5 + P(ILF+1,J)=P(I,J) + 150 CONTINUE + 160 CONTINUE + +C...Find and order initial axes with highest thrust (major). + DO 170 ILG=N+NP+MSTU(44)+5,N+NP+MSTU(44)+15 + P(ILG,4)=0. + 170 CONTINUE + NC=2**(MIN(MSTU(44),NP)-1) + DO 250 ILC=1,NC + DO 180 J=1,3 + TDI(J)=0. + 180 CONTINUE + DO 200 ILF=1,MIN(MSTU(44),NP) + SGN=P(N+NP+ILF+3,5) + IF(2**ILF*((ILC+2**(ILF-1)-1)/2**ILF).GE.ILC) SGN=-SGN + DO 190 J=1,4-ILD + TDI(J)=TDI(J)+SGN*P(N+NP+ILF+3,J) + 190 CONTINUE + 200 CONTINUE + TDS=TDI(1)**2+TDI(2)**2+TDI(3)**2 + DO 220 ILG=N+NP+MSTU(44)+MIN(ILC,10)+4,N+NP+MSTU(44)+5,-1 + IF(TDS.LE.P(ILG,4)) GOTO 230 + DO 210 J=1,4 + P(ILG+1,J)=P(ILG,J) + 210 CONTINUE + 220 CONTINUE + ILG=N+NP+MSTU(44)+4 + 230 DO 240 J=1,3 + P(ILG+1,J)=TDI(J) + 240 CONTINUE + P(ILG+1,4)=TDS + 250 CONTINUE + +C...Iterate direction of axis until stable maximum. + P(N+NP+ILD,4)=0. + ILG=0 + 260 ILG=ILG+1 + THP=0. + 270 THPS=THP + DO 280 J=1,3 + IF(THP.LE.1E-10) TDI(J)=P(N+NP+MSTU(44)+4+ILG,J) + IF(THP.GT.1E-10) TDI(J)=TPR(J) + TPR(J)=0. + 280 CONTINUE + DO 300 I=N+1,N+NP + SGN=SIGN(P(I,5),TDI(1)*P(I,1)+TDI(2)*P(I,2)+TDI(3)*P(I,3)) + DO 290 J=1,4-ILD + TPR(J)=TPR(J)+SGN*P(I,J) + 290 CONTINUE + 300 CONTINUE + THP=SQRT(TPR(1)**2+TPR(2)**2+TPR(3)**2)/PS + IF(THP.GE.THPS+PARU(48)) GOTO 270 + +C...Save good axis. Try new initial axis until a number of tries agree. + IF(THP.LT.P(N+NP+ILD,4)-PARU(48).AND.ILG.LT.MIN(10,NC)) GOTO 260 + IF(THP.GT.P(N+NP+ILD,4)+PARU(48)) THEN + IAGR=0 + SGN=(-1.)**INT(RLY(0)+0.5) + DO 310 J=1,3 + P(N+NP+ILD,J)=SGN*TPR(J)/(PS*THP) + 310 CONTINUE + P(N+NP+ILD,4)=THP + P(N+NP+ILD,5)=0. + ENDIF + IAGR=IAGR+1 + IF(IAGR.LT.MSTU(45).AND.ILG.LT.MIN(10,NC)) GOTO 260 + 320 CONTINUE + +C...Find minor axis and value by orthogonality. + SGN=(-1.)**INT(RLY(0)+0.5) + P(N+NP+3,1)=-SGN*P(N+NP+2,2) + P(N+NP+3,2)=SGN*P(N+NP+2,1) + P(N+NP+3,3)=0. + THP=0. + DO 330 I=N+1,N+NP + THP=THP+P(I,5)*ABS(P(N+NP+3,1)*P(I,1)+P(N+NP+3,2)*P(I,2)) + 330 CONTINUE + P(N+NP+3,4)=THP/PS + P(N+NP+3,5)=0. + +C...Fill axis information. Rotate back to original coordinate system. + DO 350 ILD=1,3 + K(N+ILD,1)=31 + K(N+ILD,2)=96 + K(N+ILD,3)=ILD + K(N+ILD,4)=0 + K(N+ILD,5)=0 + DO 340 J=1,5 + P(N+ILD,J)=P(N+NP+ILD,J) + V(N+ILD,J)=0. + 340 CONTINUE + 350 CONTINUE + CALL LUDBRB(N+1,N+3,THE,PHI,0D0,0D0,0D0) + +C...Calculate thrust and oblateness. Select storing option. + THR=P(N+1,4) + OBL=P(N+2,4)-P(N+3,4) + MSTU(61)=N+1 + MSTU(62)=NP + IF(MSTU(43).LE.1) MSTU(3)=3 + IF(MSTU(43).GE.2) N=N+3 + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYCLUS(NJET) + +C...Purpose: to subdivide the particle content of an event into +C...jets/clusters. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + DIMENSION PS(5) + SAVE NSAV,NP,PS,PSS,RINIT,NPRE,NREM + +C...Functions: distance measure in pT, (pseudo)mass or Durham pT. + R2T(I1,I2)=(P(I1,5)*P(I2,5)-P(I1,1)*P(I2,1)-P(I1,2)*P(I2,2)- + &P(I1,3)*P(I2,3))*2.*P(I1,5)*P(I2,5)/(0.0001+P(I1,5)+P(I2,5))**2 + R2M(I1,I2)=2.*P(I1,4)*P(I2,4)*(1.-(P(I1,1)*P(I2,1)+P(I1,2)* + &P(I2,2)+P(I1,3)*P(I2,3))/(P(I1,5)*P(I2,5))) + R2D(I1,I2)=2.*MIN(P(I1,4),P(I2,4))**2*(1.-(P(I1,1)*P(I2,1)+ + &P(I1,2)*P(I2,2)+P(I1,3)*P(I2,3))/(P(I1,5)*P(I2,5))) + +C...If first time, reset. If reentering, skip preliminaries. + IF(MSTU(48).LE.0) THEN + NP=0 + DO 100 J=1,5 + PS(J)=0. + 100 CONTINUE + PSS=0. + ELSE + NJET=NSAV + IF(MSTU(43).GE.2) N=N-NJET + DO 110 I=N+1,N+NJET + P(I,5)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2) + 110 CONTINUE + IF(MSTU(46).LE.3.OR.MSTU(46).EQ.5) THEN + R2ACC=PARU(44)**2 + ELSE + R2ACC=PARU(45)*PS(5)**2 + ENDIF + NLOOP=0 + GOTO 300 + ENDIF + +C...Find which particles are to be considered in cluster search. + DO 140 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 140 + IF(MSTU(41).GE.2) THEN + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR. + & KC.EQ.18) GOTO 140 + IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LYCHGE(K(I,2)).EQ.0) + & GOTO 140 + ENDIF + IF(N+2*NP.GE.MSTU(4)-MSTU(32)-5) THEN + CALL LYERRM(11,'(LYCLUS:) no more memory left in LUJETS') + NJET=-1 + RETURN + ENDIF + +C...Take copy of these particles, with space left for jets later on. + NP=NP+1 + K(N+NP,3)=I + DO 120 J=1,5 + P(N+NP,J)=P(I,J) + 120 CONTINUE + IF(MSTU(42).EQ.0) P(N+NP,5)=0. + IF(MSTU(42).EQ.1.AND.K(I,2).NE.22) P(N+NP,5)=PMAS(101,1) + P(N+NP,4)=SQRT(P(N+NP,5)**2+P(I,1)**2+P(I,2)**2+P(I,3)**2) + P(N+NP,5)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2) + DO 130 J=1,4 + PS(J)=PS(J)+P(N+NP,J) + 130 CONTINUE + PSS=PSS+P(N+NP,5) + 140 CONTINUE + DO 160 I=N+1,N+NP + K(I+NP,3)=K(I,3) + DO 150 J=1,5 + P(I+NP,J)=P(I,J) + 150 CONTINUE + 160 CONTINUE + PS(5)=SQRT(MAX(0.,PS(4)**2-PS(1)**2-PS(2)**2-PS(3)**2)) + +C...Very low multiplicities not considered. + IF(NP.LT.MSTU(47)) THEN + CALL LYERRM(8,'(LYCLUS:) too few particles for analysis') + NJET=-1 + RETURN + ENDIF + +C...Find precluster configuration. If too few jets, make harder cuts. + NLOOP=0 + IF(MSTU(46).LE.3.OR.MSTU(46).EQ.5) THEN + R2ACC=PARU(44)**2 + ELSE + R2ACC=PARU(45)*PS(5)**2 + ENDIF + RINIT=1.25*PARU(43) + IF(NP.LE.MSTU(47)+2) RINIT=0. + 170 RINIT=0.8*RINIT + NPRE=0 + NREM=NP + DO 180 I=N+NP+1,N+2*NP + K(I,4)=0 + 180 CONTINUE + +C...Sum up small momentum region. Jet if enough absolute momentum. + IF(MSTU(46).LE.2) THEN + DO 190 J=1,4 + P(N+1,J)=0. + 190 CONTINUE + DO 210 I=N+NP+1,N+2*NP + IF(P(I,5).GT.2.*RINIT) GOTO 210 + NREM=NREM-1 + K(I,4)=1 + DO 200 J=1,4 + P(N+1,J)=P(N+1,J)+P(I,J) + 200 CONTINUE + 210 CONTINUE + P(N+1,5)=SQRT(P(N+1,1)**2+P(N+1,2)**2+P(N+1,3)**2) + IF(P(N+1,5).GT.2.*RINIT) NPRE=1 + IF(RINIT.GE.0.2*PARU(43).AND.NPRE+NREM.LT.MSTU(47)) GOTO 170 + IF(NREM.EQ.0) GOTO 170 + ENDIF + +C...Find fastest remaining particle. + 220 NPRE=NPRE+1 + PMAX=0. + DO 230 I=N+NP+1,N+2*NP + IF(K(I,4).NE.0.OR.P(I,5).LE.PMAX) GOTO 230 + IMAX=I + PMAX=P(I,5) + 230 CONTINUE + DO 240 J=1,5 + P(N+NPRE,J)=P(IMAX,J) + 240 CONTINUE + NREM=NREM-1 + K(IMAX,4)=NPRE + +C...Sum up precluster around it according to pT separation. + IF(MSTU(46).LE.2) THEN + DO 260 I=N+NP+1,N+2*NP + IF(K(I,4).NE.0) GOTO 260 + R2=R2T(I,IMAX) + IF(R2.GT.RINIT**2) GOTO 260 + NREM=NREM-1 + K(I,4)=NPRE + DO 250 J=1,4 + P(N+NPRE,J)=P(N+NPRE,J)+P(I,J) + 250 CONTINUE + 260 CONTINUE + P(N+NPRE,5)=SQRT(P(N+NPRE,1)**2+P(N+NPRE,2)**2+P(N+NPRE,3)**2) + +C...Sum up precluster around it according to mass or +C...Durham pT separation. + ELSE + 270 IMIN=0 + R2MIN=RINIT**2 + DO 280 I=N+NP+1,N+2*NP + IF(K(I,4).NE.0) GOTO 280 + IF(MSTU(46).LE.4) THEN + R2=R2M(I,N+NPRE) + ELSE + R2=R2D(I,N+NPRE) + ENDIF + IF(R2.GE.R2MIN) GOTO 280 + IMIN=I + R2MIN=R2 + 280 CONTINUE + IF(IMIN.NE.0) THEN + DO 290 J=1,4 + P(N+NPRE,J)=P(N+NPRE,J)+P(IMIN,J) + 290 CONTINUE + P(N+NPRE,5)=SQRT(P(N+NPRE,1)**2+P(N+NPRE,2)**2+P(N+NPRE,3)**2) + NREM=NREM-1 + K(IMIN,4)=NPRE + GOTO 270 + ENDIF + ENDIF + +C...Check if more preclusters to be found. Start over if too few. + IF(RINIT.GE.0.2*PARU(43).AND.NPRE+NREM.LT.MSTU(47)) GOTO 170 + IF(NREM.GT.0) GOTO 220 + NJET=NPRE + +C...Reassign all particles to nearest jet. Sum up new jet momenta. + 300 TSAV=0. + PSJT=0. + 310 IF(MSTU(46).LE.1) THEN + DO 330 I=N+1,N+NJET + DO 320 J=1,4 + V(I,J)=0. + 320 CONTINUE + 330 CONTINUE + DO 360 I=N+NP+1,N+2*NP + R2MIN=PSS**2 + DO 340 IJET=N+1,N+NJET + IF(P(IJET,5).LT.RINIT) GOTO 340 + R2=R2T(I,IJET) + IF(R2.GE.R2MIN) GOTO 340 + IMIN=IJET + R2MIN=R2 + 340 CONTINUE + K(I,4)=IMIN-N + DO 350 J=1,4 + V(IMIN,J)=V(IMIN,J)+P(I,J) + 350 CONTINUE + 360 CONTINUE + PSJT=0. + DO 380 I=N+1,N+NJET + DO 370 J=1,4 + P(I,J)=V(I,J) + 370 CONTINUE + P(I,5)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2) + PSJT=PSJT+P(I,5) + 380 CONTINUE + ENDIF + +C...Find two closest jets. + R2MIN=2.*MAX(R2ACC,PS(5)**2) + DO 400 ITRY1=N+1,N+NJET-1 + DO 390 ITRY2=ITRY1+1,N+NJET + IF(MSTU(46).LE.2) THEN + R2=R2T(ITRY1,ITRY2) + ELSEIF(MSTU(46).LE.4) THEN + R2=R2M(ITRY1,ITRY2) + ELSE + R2=R2D(ITRY1,ITRY2) + ENDIF + IF(R2.GE.R2MIN) GOTO 390 + IMIN1=ITRY1 + IMIN2=ITRY2 + R2MIN=R2 + 390 CONTINUE + 400 CONTINUE + +C...If allowed, join two closest jets and start over. + IF(NJET.GT.MSTU(47).AND.R2MIN.LT.R2ACC) THEN + IREC=MIN(IMIN1,IMIN2) + IDEL=MAX(IMIN1,IMIN2) + DO 410 J=1,4 + P(IREC,J)=P(IMIN1,J)+P(IMIN2,J) + 410 CONTINUE + P(IREC,5)=SQRT(P(IREC,1)**2+P(IREC,2)**2+P(IREC,3)**2) + DO 430 I=IDEL+1,N+NJET + DO 420 J=1,5 + P(I-1,J)=P(I,J) + 420 CONTINUE + 430 CONTINUE + IF(MSTU(46).GE.2) THEN + DO 440 I=N+NP+1,N+2*NP + IORI=N+K(I,4) + IF(IORI.EQ.IDEL) K(I,4)=IREC-N + IF(IORI.GT.IDEL) K(I,4)=K(I,4)-1 + 440 CONTINUE + ENDIF + NJET=NJET-1 + GOTO 300 + +C...Divide up broad jet if empty cluster in list of final ones. + ELSEIF(NJET.EQ.MSTU(47).AND.MSTU(46).LE.1.AND.NLOOP.LE.2) THEN + DO 450 I=N+1,N+NJET + K(I,5)=0 + 450 CONTINUE + DO 460 I=N+NP+1,N+2*NP + K(N+K(I,4),5)=K(N+K(I,4),5)+1 + 460 CONTINUE + IEMP=0 + DO 470 I=N+1,N+NJET + IF(K(I,5).EQ.0) IEMP=I + 470 CONTINUE + IF(IEMP.NE.0) THEN + NLOOP=NLOOP+1 + ISPL=0 + R2MAX=0. + DO 480 I=N+NP+1,N+2*NP + IF(K(N+K(I,4),5).LE.1.OR.P(I,5).LT.RINIT) GOTO 480 + IJET=N+K(I,4) + R2=R2T(I,IJET) + IF(R2.LE.R2MAX) GOTO 480 + ISPL=I + R2MAX=R2 + 480 CONTINUE + IF(ISPL.NE.0) THEN + IJET=N+K(ISPL,4) + DO 490 J=1,4 + P(IEMP,J)=P(ISPL,J) + P(IJET,J)=P(IJET,J)-P(ISPL,J) + 490 CONTINUE + P(IEMP,5)=P(ISPL,5) + P(IJET,5)=SQRT(P(IJET,1)**2+P(IJET,2)**2+P(IJET,3)**2) + IF(NLOOP.LE.2) GOTO 300 + ENDIF + ENDIF + ENDIF + +C...If generalized thrust has not yet converged, continue iteration. + IF(MSTU(46).LE.1.AND.NLOOP.LE.2.AND.PSJT/PSS.GT.TSAV+PARU(48)) + &THEN + TSAV=PSJT/PSS + GOTO 310 + ENDIF + +C...Reorder jets according to energy. + DO 510 I=N+1,N+NJET + DO 500 J=1,5 + V(I,J)=P(I,J) + 500 CONTINUE + 510 CONTINUE + DO 540 INEW=N+1,N+NJET + PEMAX=0. + DO 520 ITRY=N+1,N+NJET + IF(V(ITRY,4).LE.PEMAX) GOTO 520 + IMAX=ITRY + PEMAX=V(ITRY,4) + 520 CONTINUE + K(INEW,1)=31 + K(INEW,2)=97 + K(INEW,3)=INEW-N + K(INEW,4)=0 + DO 530 J=1,5 + P(INEW,J)=V(IMAX,J) + 530 CONTINUE + V(IMAX,4)=-1. + K(IMAX,5)=INEW + 540 CONTINUE + +C...Clean up particle-jet assignments and jet information. + DO 550 I=N+NP+1,N+2*NP + IORI=K(N+K(I,4),5) + K(I,4)=IORI-N + IF(K(K(I,3),1).NE.3) K(K(I,3),4)=IORI-N + K(IORI,4)=K(IORI,4)+1 + 550 CONTINUE + IEMP=0 + PSJT=0. + DO 570 I=N+1,N+NJET + K(I,5)=0 + PSJT=PSJT+P(I,5) + P(I,5)=SQRT(MAX(P(I,4)**2-P(I,5)**2,0.)) + DO 560 J=1,5 + V(I,J)=0. + 560 CONTINUE + IF(K(I,4).EQ.0) IEMP=I + 570 CONTINUE + +C...Select storing option. Output variables. Check for failure. + MSTU(61)=N+1 + MSTU(62)=NP + MSTU(63)=NPRE + PARU(61)=PS(5) + PARU(62)=PSJT/PSS + PARU(63)=SQRT(R2MIN) + IF(NJET.LE.1) PARU(63)=0. + IF(IEMP.NE.0) THEN + CALL LYERRM(8,'(LYCLUS:) failed to reconstruct as requested') + NJET=-1 + ENDIF + IF(MSTU(43).LE.1) MSTU(3)=NJET + IF(MSTU(43).GE.2) N=N+NJET + NSAV=NJET + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYCELL(NJET) + +C...Purpose: to provide a simple way of jet finding in an eta-phi-ET +C...coordinate frame, as used for calorimeters at hadron colliders. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + +C...Loop over all particles. Find cell that was hit by given particle. + PTLRAT=1./SINH(PARU(51))**2 + NP=0 + NC=N + DO 110 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 110 + IF(P(I,1)**2+P(I,2)**2.LE.PTLRAT*P(I,3)**2) GOTO 110 + IF(MSTU(41).GE.2) THEN + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR. + & KC.EQ.18) GOTO 110 + IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LYCHGE(K(I,2)).EQ.0) + & GOTO 110 + ENDIF + NP=NP+1 + PT=SQRT(P(I,1)**2+P(I,2)**2) + ETA=SIGN(LOG((SQRT(PT**2+P(I,3)**2)+ABS(P(I,3)))/PT),P(I,3)) + IETA=MAX(1,MIN(MSTU(51),1+INT(MSTU(51)*0.5*(ETA/PARU(51)+1.)))) + PHI=UYANGL(P(I,1),P(I,2)) + IPHI=MAX(1,MIN(MSTU(52),1+INT(MSTU(52)*0.5*(PHI/PARU(1)+1.)))) + IETPH=MSTU(52)*IETA+IPHI + +C...Add to cell already hit, or book new cell. + DO 100 IC=N+1,NC + IF(IETPH.EQ.K(IC,3)) THEN + K(IC,4)=K(IC,4)+1 + P(IC,5)=P(IC,5)+PT + GOTO 110 + ENDIF + 100 CONTINUE + IF(NC.GE.MSTU(4)-MSTU(32)-5) THEN + CALL LYERRM(11,'(LYCELL:) no more memory left in LUJETS') + NJET=-2 + RETURN + ENDIF + NC=NC+1 + K(NC,3)=IETPH + K(NC,4)=1 + K(NC,5)=2 + P(NC,1)=(PARU(51)/MSTU(51))*(2*IETA-1-MSTU(51)) + P(NC,2)=(PARU(1)/MSTU(52))*(2*IPHI-1-MSTU(52)) + P(NC,5)=PT + 110 CONTINUE + +C...Smear true bin content by calorimeter resolution. + IF(MSTU(53).GE.1) THEN + DO 130 IC=N+1,NC + PEI=P(IC,5) + IF(MSTU(53).EQ.2) PEI=P(IC,5)*COSH(P(IC,1)) + 120 PEF=PEI+PARU(55)*SQRT(-2.*LOG(MAX(1E-10,RLY(0)))*PEI)* + & COS(PARU(2)*RLY(0)) + IF(PEF.LT.0..OR.PEF.GT.PARU(56)*PEI) GOTO 120 + P(IC,5)=PEF + IF(MSTU(53).EQ.2) P(IC,5)=PEF/COSH(P(IC,1)) + 130 CONTINUE + ENDIF + +C...Remove cells below threshold. + IF(PARU(58).GT.0.) THEN + NCC=NC + NC=N + DO 140 IC=N+1,NCC + IF(P(IC,5).GT.PARU(58)) THEN + NC=NC+1 + K(NC,3)=K(IC,3) + K(NC,4)=K(IC,4) + K(NC,5)=K(IC,5) + P(NC,1)=P(IC,1) + P(NC,2)=P(IC,2) + P(NC,5)=P(IC,5) + ENDIF + 140 CONTINUE + ENDIF + +C...Find initiator cell: the one with highest pT of not yet used ones. + NJ=NC + 150 ETMAX=0. + DO 160 IC=N+1,NC + IF(K(IC,5).NE.2) GOTO 160 + IF(P(IC,5).LE.ETMAX) GOTO 160 + ICMAX=IC + ETA=P(IC,1) + PHI=P(IC,2) + ETMAX=P(IC,5) + 160 CONTINUE + IF(ETMAX.LT.PARU(52)) GOTO 220 + IF(NJ.GE.MSTU(4)-MSTU(32)-5) THEN + CALL LYERRM(11,'(LYCELL:) no more memory left in LUJETS') + NJET=-2 + RETURN + ENDIF + K(ICMAX,5)=1 + NJ=NJ+1 + K(NJ,4)=0 + K(NJ,5)=1 + P(NJ,1)=ETA + P(NJ,2)=PHI + P(NJ,3)=0. + P(NJ,4)=0. + P(NJ,5)=0. + +C...Sum up unused cells within required distance of initiator. + DO 170 IC=N+1,NC + IF(K(IC,5).EQ.0) GOTO 170 + IF(ABS(P(IC,1)-ETA).GT.PARU(54)) GOTO 170 + DPHIA=ABS(P(IC,2)-PHI) + IF(DPHIA.GT.PARU(54).AND.DPHIA.LT.PARU(2)-PARU(54)) GOTO 170 + PHIC=P(IC,2) + IF(DPHIA.GT.PARU(1)) PHIC=PHIC+SIGN(PARU(2),PHI) + IF((P(IC,1)-ETA)**2+(PHIC-PHI)**2.GT.PARU(54)**2) GOTO 170 + K(IC,5)=-K(IC,5) + K(NJ,4)=K(NJ,4)+K(IC,4) + P(NJ,3)=P(NJ,3)+P(IC,5)*P(IC,1) + P(NJ,4)=P(NJ,4)+P(IC,5)*PHIC + P(NJ,5)=P(NJ,5)+P(IC,5) + 170 CONTINUE + +C...Reject cluster below minimum ET, else accept. + IF(P(NJ,5).LT.PARU(53)) THEN + NJ=NJ-1 + DO 180 IC=N+1,NC + IF(K(IC,5).LT.0) K(IC,5)=-K(IC,5) + 180 CONTINUE + ELSEIF(MSTU(54).LE.2) THEN + P(NJ,3)=P(NJ,3)/P(NJ,5) + P(NJ,4)=P(NJ,4)/P(NJ,5) + IF(ABS(P(NJ,4)).GT.PARU(1)) P(NJ,4)=P(NJ,4)-SIGN(PARU(2), + & P(NJ,4)) + DO 190 IC=N+1,NC + IF(K(IC,5).LT.0) K(IC,5)=0 + 190 CONTINUE + ELSE + DO 200 J=1,4 + P(NJ,J)=0. + 200 CONTINUE + DO 210 IC=N+1,NC + IF(K(IC,5).GE.0) GOTO 210 + P(NJ,1)=P(NJ,1)+P(IC,5)*COS(P(IC,2)) + P(NJ,2)=P(NJ,2)+P(IC,5)*SIN(P(IC,2)) + P(NJ,3)=P(NJ,3)+P(IC,5)*SINH(P(IC,1)) + P(NJ,4)=P(NJ,4)+P(IC,5)*COSH(P(IC,1)) + K(IC,5)=0 + 210 CONTINUE + ENDIF + GOTO 150 + +C...Arrange clusters in falling ET sequence. + 220 DO 250 I=1,NJ-NC + ETMAX=0. + DO 230 IJ=NC+1,NJ + IF(K(IJ,5).EQ.0) GOTO 230 + IF(P(IJ,5).LT.ETMAX) GOTO 230 + IJMAX=IJ + ETMAX=P(IJ,5) + 230 CONTINUE + K(IJMAX,5)=0 + K(N+I,1)=31 + K(N+I,2)=98 + K(N+I,3)=I + K(N+I,4)=K(IJMAX,4) + K(N+I,5)=0 + DO 240 J=1,5 + P(N+I,J)=P(IJMAX,J) + V(N+I,J)=0. + 240 CONTINUE + 250 CONTINUE + NJET=NJ-NC + +C...Convert to massless or massive four-vectors. + IF(MSTU(54).EQ.2) THEN + DO 260 I=N+1,N+NJET + ETA=P(I,3) + P(I,1)=P(I,5)*COS(P(I,4)) + P(I,2)=P(I,5)*SIN(P(I,4)) + P(I,3)=P(I,5)*SINH(ETA) + P(I,4)=P(I,5)*COSH(ETA) + P(I,5)=0. + 260 CONTINUE + ELSEIF(MSTU(54).GE.3) THEN + DO 270 I=N+1,N+NJET + P(I,5)=SQRT(MAX(0.,P(I,4)**2-P(I,1)**2-P(I,2)**2-P(I,3)**2)) + 270 CONTINUE + ENDIF + +C...Information about storage. + MSTU(61)=N+1 + MSTU(62)=NP + MSTU(63)=NC-N + IF(MSTU(43).LE.1) MSTU(3)=NJET + IF(MSTU(43).GE.2) N=N+NJET + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYJMAS(PMH,PML) + +C...Purpose: to determine, approximately, the two jet masses that +C...minimize the sum m_H^2 + m_L^2, a la Clavelli and Wyler. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + DIMENSION SM(3,3),SAX(3),PS(3,5) + +C...Reset. + NP=0 + DO 120 J1=1,3 + DO 100 J2=J1,3 + SM(J1,J2)=0. + 100 CONTINUE + DO 110 J2=1,4 + PS(J1,J2)=0. + 110 CONTINUE + 120 CONTINUE + PSS=0. + +C...Take copy of particles that are to be considered in mass analysis. + DO 170 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 170 + IF(MSTU(41).GE.2) THEN + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR. + & KC.EQ.18) GOTO 170 + IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LYCHGE(K(I,2)).EQ.0) + & GOTO 170 + ENDIF + IF(N+NP+1.GE.MSTU(4)-MSTU(32)-5) THEN + CALL LYERRM(11,'(LYJMAS:) no more memory left in LUJETS') + PMH=-2. + PML=-2. + RETURN + ENDIF + NP=NP+1 + DO 130 J=1,5 + P(N+NP,J)=P(I,J) + 130 CONTINUE + IF(MSTU(42).EQ.0) P(N+NP,5)=0. + IF(MSTU(42).EQ.1.AND.K(I,2).NE.22) P(N+NP,5)=PMAS(101,1) + P(N+NP,4)=SQRT(P(N+NP,5)**2+P(I,1)**2+P(I,2)**2+P(I,3)**2) + +C...Fill information in sphericity tensor and total momentum vector. + DO 150 J1=1,3 + DO 140 J2=J1,3 + SM(J1,J2)=SM(J1,J2)+P(I,J1)*P(I,J2) + 140 CONTINUE + 150 CONTINUE + PSS=PSS+(P(I,1)**2+P(I,2)**2+P(I,3)**2) + DO 160 J=1,4 + PS(3,J)=PS(3,J)+P(N+NP,J) + 160 CONTINUE + 170 CONTINUE + +C...Very low multiplicities (0 or 1) not considered. + IF(NP.LE.1) THEN + CALL LYERRM(8,'(LYJMAS:) too few particles for analysis') + PMH=-1. + PML=-1. + RETURN + ENDIF + PARU(61)=SQRT(MAX(0.,PS(3,4)**2-PS(3,1)**2-PS(3,2)**2-PS(3,3)**2)) + +C...Find largest eigenvalue to matrix (third degree equation). + DO 190 J1=1,3 + DO 180 J2=J1,3 + SM(J1,J2)=SM(J1,J2)/PSS + 180 CONTINUE + 190 CONTINUE + SQ=(SM(1,1)*SM(2,2)+SM(1,1)*SM(3,3)+SM(2,2)*SM(3,3)-SM(1,2)**2- + &SM(1,3)**2-SM(2,3)**2)/3.-1./9. + SR=-0.5*(SQ+1./9.+SM(1,1)*SM(2,3)**2+SM(2,2)*SM(1,3)**2+SM(3,3)* + &SM(1,2)**2-SM(1,1)*SM(2,2)*SM(3,3))+SM(1,2)*SM(1,3)*SM(2,3)+1./27. + SP=COS(ACOS(MAX(MIN(SR/SQRT(-SQ**3),1.),-1.))/3.) + SMA=1./3.+SQRT(-SQ)*MAX(2.*SP,SQRT(3.*(1.-SP**2))-SP) + +C...Find largest eigenvector by solving equation system. + DO 210 J1=1,3 + SM(J1,J1)=SM(J1,J1)-SMA + DO 200 J2=J1+1,3 + SM(J2,J1)=SM(J1,J2) + 200 CONTINUE + 210 CONTINUE + SMAX=0. + DO 230 J1=1,3 + DO 220 J2=1,3 + IF(ABS(SM(J1,J2)).LE.SMAX) GOTO 220 + JA=J1 + JB=J2 + SMAX=ABS(SM(J1,J2)) + 220 CONTINUE + 230 CONTINUE + SMAX=0. + DO 250 J3=JA+1,JA+2 + J1=J3-3*((J3-1)/3) + RL=SM(J1,JB)/SM(JA,JB) + DO 240 J2=1,3 + SM(J1,J2)=SM(J1,J2)-RL*SM(JA,J2) + IF(ABS(SM(J1,J2)).LE.SMAX) GOTO 240 + JC=J1 + SMAX=ABS(SM(J1,J2)) + 240 CONTINUE + 250 CONTINUE + JB1=JB+1-3*(JB/3) + JB2=JB+2-3*((JB+1)/3) + SAX(JB1)=-SM(JC,JB2) + SAX(JB2)=SM(JC,JB1) + SAX(JB)=-(SM(JA,JB1)*SAX(JB1)+SM(JA,JB2)*SAX(JB2))/SM(JA,JB) + +C...Divide particles into two initial clusters by hemisphere. + DO 270 I=N+1,N+NP + PSAX=P(I,1)*SAX(1)+P(I,2)*SAX(2)+P(I,3)*SAX(3) + IS=1 + IF(PSAX.LT.0.) IS=2 + K(I,3)=IS + DO 260 J=1,4 + PS(IS,J)=PS(IS,J)+P(I,J) + 260 CONTINUE + 270 CONTINUE + PMS=MAX(1E-10,PS(1,4)**2-PS(1,1)**2-PS(1,2)**2-PS(1,3)**2)+ + &MAX(1E-10,PS(2,4)**2-PS(2,1)**2-PS(2,2)**2-PS(2,3)**2) + +C...Reassign one particle at a time; find maximum decrease of m^2 sum. + 280 PMD=0. + IM=0 + DO 290 J=1,4 + PS(3,J)=PS(1,J)-PS(2,J) + 290 CONTINUE + DO 300 I=N+1,N+NP + PPS=P(I,4)*PS(3,4)-P(I,1)*PS(3,1)-P(I,2)*PS(3,2)-P(I,3)*PS(3,3) + IF(K(I,3).EQ.1) PMDI=2.*(P(I,5)**2-PPS) + IF(K(I,3).EQ.2) PMDI=2.*(P(I,5)**2+PPS) + IF(PMDI.LT.PMD) THEN + PMD=PMDI + IM=I + ENDIF + 300 CONTINUE + +C...Loop back if significant reduction in sum of m^2. + IF(PMD.LT.-PARU(48)*PMS) THEN + PMS=PMS+PMD + IS=K(IM,3) + DO 310 J=1,4 + PS(IS,J)=PS(IS,J)-P(IM,J) + PS(3-IS,J)=PS(3-IS,J)+P(IM,J) + 310 CONTINUE + K(IM,3)=3-IS + GOTO 280 + ENDIF + +C...Final masses and output. + MSTU(61)=N+1 + MSTU(62)=NP + PS(1,5)=SQRT(MAX(0.,PS(1,4)**2-PS(1,1)**2-PS(1,2)**2-PS(1,3)**2)) + PS(2,5)=SQRT(MAX(0.,PS(2,4)**2-PS(2,1)**2-PS(2,2)**2-PS(2,3)**2)) + PMH=MAX(PS(1,5),PS(2,5)) + PML=MIN(PS(1,5),PS(2,5)) + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYFOWO(H10,H20,H30,H40) + +C...Purpose: to calculate the first few Fox-Wolfram moments. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + +C...Copy momenta for particles and calculate H0. + NP=0 + H0=0. + HD=0. + DO 110 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 110 + IF(MSTU(41).GE.2) THEN + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR. + & KC.EQ.18) GOTO 110 + IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LYCHGE(K(I,2)).EQ.0) + & GOTO 110 + ENDIF + IF(N+NP.GE.MSTU(4)-MSTU(32)-5) THEN + CALL LYERRM(11,'(LYFOWO:) no more memory left in LUJETS') + H10=-1. + H20=-1. + H30=-1. + H40=-1. + RETURN + ENDIF + NP=NP+1 + DO 100 J=1,3 + P(N+NP,J)=P(I,J) + 100 CONTINUE + P(N+NP,4)=SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2) + H0=H0+P(N+NP,4) + HD=HD+P(N+NP,4)**2 + 110 CONTINUE + H0=H0**2 + +C...Very low multiplicities (0 or 1) not considered. + IF(NP.LE.1) THEN + CALL LYERRM(8,'(LYFOWO:) too few particles for analysis') + H10=-1. + H20=-1. + H30=-1. + H40=-1. + RETURN + ENDIF + +C...Calculate H1 - H4. + H10=0. + H20=0. + H30=0. + H40=0. + DO 130 I1=N+1,N+NP + DO 120 I2=I1+1,N+NP + CTHE=(P(I1,1)*P(I2,1)+P(I1,2)*P(I2,2)+P(I1,3)*P(I2,3))/ + &(P(I1,4)*P(I2,4)) + H10=H10+P(I1,4)*P(I2,4)*CTHE + H20=H20+P(I1,4)*P(I2,4)*(1.5*CTHE**2-0.5) + H30=H30+P(I1,4)*P(I2,4)*(2.5*CTHE**3-1.5*CTHE) + H40=H40+P(I1,4)*P(I2,4)*(4.375*CTHE**4-3.75*CTHE**2+0.375) + 120 CONTINUE + 130 CONTINUE + +C...Calculate H1/H0 - H4/H0. Output. + MSTU(61)=N+1 + MSTU(62)=NP + H10=(HD+2.*H10)/H0 + H20=(HD+2.*H20)/H0 + H30=(HD+2.*H30)/H0 + H40=(HD+2.*H40)/H0 + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYTABU(MTABU) + +C...Purpose: to evaluate various properties of an event, with +C...statistics accumulated during the course of the run and +C...printed at the end. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + COMMON/LYDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/,/LYDAT3/ + DIMENSION KFIS(100,2),NPIS(100,0:10),KFFS(400),NPFS(400,4), + &FEVFM(10,4),FM1FM(3,10,4),FM2FM(3,10,4),FMOMA(4),FMOMS(4), + &FEVEE(50),FE1EC(50),FE2EC(50),FE1EA(25),FE2EA(25), + &KFDM(8),KFDC(200,0:8),NPDC(200) + SAVE NEVIS,NKFIS,KFIS,NPIS,NEVFS,NPRFS,NFIFS,NCHFS,NKFFS, + &KFFS,NPFS,NEVFM,NMUFM,FM1FM,FM2FM,NEVEE,FE1EC,FE2EC,FE1EA, + &FE2EA,NEVDC,NKFDC,NREDC,KFDC,NPDC + CHARACTER CHAU*16,CHIS(2)*12,CHDC(8)*12 + DATA NEVIS/0/,NKFIS/0/,NEVFS/0/,NPRFS/0/,NFIFS/0/,NCHFS/0/, + &NKFFS/0/,NEVFM/0/,NMUFM/0/,FM1FM/120*0./,FM2FM/120*0./, + &NEVEE/0/,FE1EC/50*0./,FE2EC/50*0./,FE1EA/25*0./,FE2EA/25*0./, + &NEVDC/0/,NKFDC/0/,NREDC/0/ + +C...Reset statistics on initial parton state. + IF(MTABU.EQ.10) THEN + NEVIS=0 + NKFIS=0 + +C...Identify and order flavour content of initial state. + ELSEIF(MTABU.EQ.11) THEN + NEVIS=NEVIS+1 + KFM1=2*IABS(MSTU(161)) + IF(MSTU(161).GT.0) KFM1=KFM1-1 + KFM2=2*IABS(MSTU(162)) + IF(MSTU(162).GT.0) KFM2=KFM2-1 + KFMN=MIN(KFM1,KFM2) + KFMX=MAX(KFM1,KFM2) + DO 100 I=1,NKFIS + IF(KFMN.EQ.KFIS(I,1).AND.KFMX.EQ.KFIS(I,2)) THEN + IKFIS=-I + GOTO 110 + ELSEIF(KFMN.LT.KFIS(I,1).OR.(KFMN.EQ.KFIS(I,1).AND. + & KFMX.LT.KFIS(I,2))) THEN + IKFIS=I + GOTO 110 + ENDIF + 100 CONTINUE + IKFIS=NKFIS+1 + 110 IF(IKFIS.LT.0) THEN + IKFIS=-IKFIS + ELSE + IF(NKFIS.GE.100) RETURN + DO 130 I=NKFIS,IKFIS,-1 + KFIS(I+1,1)=KFIS(I,1) + KFIS(I+1,2)=KFIS(I,2) + DO 120 J=0,10 + NPIS(I+1,J)=NPIS(I,J) + 120 CONTINUE + 130 CONTINUE + NKFIS=NKFIS+1 + KFIS(IKFIS,1)=KFMN + KFIS(IKFIS,2)=KFMX + DO 140 J=0,10 + NPIS(IKFIS,J)=0 + 140 CONTINUE + ENDIF + NPIS(IKFIS,0)=NPIS(IKFIS,0)+1 + +C...Count number of partons in initial state. + NP=0 + DO 160 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.12) THEN + ELSEIF(IABS(K(I,2)).GT.80.AND.IABS(K(I,2)).LE.100) THEN + ELSEIF(IABS(K(I,2)).GT.100.AND.MOD(IABS(K(I,2))/10,10).NE.0) + & THEN + ELSE + IM=I + 150 IM=K(IM,3) + IF(IM.LE.0.OR.IM.GT.N) THEN + NP=NP+1 + ELSEIF(K(IM,1).LE.0.OR.K(IM,1).GT.20) THEN + NP=NP+1 + ELSEIF(IABS(K(IM,2)).GT.80.AND.IABS(K(IM,2)).LE.100) THEN + ELSEIF(IABS(K(IM,2)).GT.100.AND.MOD(IABS(K(IM,2))/10,10).NE.0) + & THEN + ELSE + GOTO 150 + ENDIF + ENDIF + 160 CONTINUE + NPCO=MAX(NP,1) + IF(NP.GE.6) NPCO=6 + IF(NP.GE.8) NPCO=7 + IF(NP.GE.11) NPCO=8 + IF(NP.GE.16) NPCO=9 + IF(NP.GE.26) NPCO=10 + NPIS(IKFIS,NPCO)=NPIS(IKFIS,NPCO)+1 + MSTU(62)=NP + +C...Write statistics on initial parton state. + ELSEIF(MTABU.EQ.12) THEN + FAC=1./MAX(1,NEVIS) + WRITE(MSTU(11),5000) NEVIS + DO 170 I=1,NKFIS + KFMN=KFIS(I,1) + IF(KFMN.EQ.0) KFMN=KFIS(I,2) + KFM1=(KFMN+1)/2 + IF(2*KFM1.EQ.KFMN) KFM1=-KFM1 + CALL LYNAME(KFM1,CHAU) + CHIS(1)=CHAU(1:12) + IF(CHAU(13:13).NE.' ') CHIS(1)(12:12)='?' + KFMX=KFIS(I,2) + IF(KFIS(I,1).EQ.0) KFMX=0 + KFM2=(KFMX+1)/2 + IF(2*KFM2.EQ.KFMX) KFM2=-KFM2 + CALL LYNAME(KFM2,CHAU) + CHIS(2)=CHAU(1:12) + IF(CHAU(13:13).NE.' ') CHIS(2)(12:12)='?' + WRITE(MSTU(11),5100) CHIS(1),CHIS(2),FAC*NPIS(I,0), + & (NPIS(I,J)/FLOAT(NPIS(I,0)),J=1,10) + 170 CONTINUE + +C...Copy statistics on initial parton state into /LYJETS/. + ELSEIF(MTABU.EQ.13) THEN + FAC=1./MAX(1,NEVIS) + DO 190 I=1,NKFIS + KFMN=KFIS(I,1) + IF(KFMN.EQ.0) KFMN=KFIS(I,2) + KFM1=(KFMN+1)/2 + IF(2*KFM1.EQ.KFMN) KFM1=-KFM1 + KFMX=KFIS(I,2) + IF(KFIS(I,1).EQ.0) KFMX=0 + KFM2=(KFMX+1)/2 + IF(2*KFM2.EQ.KFMX) KFM2=-KFM2 + K(I,1)=32 + K(I,2)=99 + K(I,3)=KFM1 + K(I,4)=KFM2 + K(I,5)=NPIS(I,0) + DO 180 J=1,5 + P(I,J)=FAC*NPIS(I,J) + V(I,J)=FAC*NPIS(I,J+5) + 180 CONTINUE + 190 CONTINUE + N=NKFIS + DO 200 J=1,5 + K(N+1,J)=0 + P(N+1,J)=0. + V(N+1,J)=0. + 200 CONTINUE + K(N+1,1)=32 + K(N+1,2)=99 + K(N+1,5)=NEVIS + MSTU(3)=1 + +C...Reset statistics on number of particles/partons. + ELSEIF(MTABU.EQ.20) THEN + NEVFS=0 + NPRFS=0 + NFIFS=0 + NCHFS=0 + NKFFS=0 + +C...Identify whether particle/parton is primary or not. + ELSEIF(MTABU.EQ.21) THEN + NEVFS=NEVFS+1 + MSTU(62)=0 + DO 260 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.20.OR.K(I,1).EQ.13) GOTO 260 + MSTU(62)=MSTU(62)+1 + KC=LYCOMP(K(I,2)) + MPRI=0 + IF(K(I,3).LE.0.OR.K(I,3).GT.N) THEN + MPRI=1 + ELSEIF(K(K(I,3),1).LE.0.OR.K(K(I,3),1).GT.20) THEN + MPRI=1 + ELSEIF(K(K(I,3),2).GE.91.AND.K(K(I,3),2).LE.93) THEN + MPRI=1 + ELSEIF(KC.EQ.0) THEN + ELSEIF(K(K(I,3),1).EQ.13) THEN + IM=K(K(I,3),3) + IF(IM.LE.0.OR.IM.GT.N) THEN + MPRI=1 + ELSEIF(K(IM,1).LE.0.OR.K(IM,1).GT.20) THEN + MPRI=1 + ENDIF + ELSEIF(KCHG(KC,2).EQ.0) THEN + KCM=LYCOMP(K(K(I,3),2)) + IF(KCM.NE.0) THEN + IF(KCHG(KCM,2).NE.0) MPRI=1 + ENDIF + ENDIF + IF(KC.NE.0.AND.MPRI.EQ.1) THEN + IF(KCHG(KC,2).EQ.0) NPRFS=NPRFS+1 + ENDIF + IF(K(I,1).LE.10) THEN + NFIFS=NFIFS+1 + IF(LYCHGE(K(I,2)).NE.0) NCHFS=NCHFS+1 + ENDIF + +C...Fill statistics on number of particles/partons in event. + KFA=IABS(K(I,2)) + KFS=3-ISIGN(1,K(I,2))-MPRI + DO 210 IP=1,NKFFS + IF(KFA.EQ.KFFS(IP)) THEN + IKFFS=-IP + GOTO 220 + ELSEIF(KFA.LT.KFFS(IP)) THEN + IKFFS=IP + GOTO 220 + ENDIF + 210 CONTINUE + IKFFS=NKFFS+1 + 220 IF(IKFFS.LT.0) THEN + IKFFS=-IKFFS + ELSE + IF(NKFFS.GE.400) RETURN + DO 240 IP=NKFFS,IKFFS,-1 + KFFS(IP+1)=KFFS(IP) + DO 230 J=1,4 + NPFS(IP+1,J)=NPFS(IP,J) + 230 CONTINUE + 240 CONTINUE + NKFFS=NKFFS+1 + KFFS(IKFFS)=KFA + DO 250 J=1,4 + NPFS(IKFFS,J)=0 + 250 CONTINUE + ENDIF + NPFS(IKFFS,KFS)=NPFS(IKFFS,KFS)+1 + 260 CONTINUE + +C...Write statistics on particle/parton composition of events. + ELSEIF(MTABU.EQ.22) THEN + FAC=1./MAX(1,NEVFS) + WRITE(MSTU(11),5200) NEVFS,FAC*NPRFS,FAC*NFIFS,FAC*NCHFS + DO 270 I=1,NKFFS + CALL LYNAME(KFFS(I),CHAU) + KC=LYCOMP(KFFS(I)) + MDCYF=0 + IF(KC.NE.0) MDCYF=MDCY(KC,1) + WRITE(MSTU(11),5300) KFFS(I),CHAU,MDCYF,(FAC*NPFS(I,J),J=1,4), + & FAC*(NPFS(I,1)+NPFS(I,2)+NPFS(I,3)+NPFS(I,4)) + 270 CONTINUE + +C...Copy particle/parton composition information into /LYJETS/. + ELSEIF(MTABU.EQ.23) THEN + FAC=1./MAX(1,NEVFS) + DO 290 I=1,NKFFS + K(I,1)=32 + K(I,2)=99 + K(I,3)=KFFS(I) + K(I,4)=0 + K(I,5)=NPFS(I,1)+NPFS(I,2)+NPFS(I,3)+NPFS(I,4) + DO 280 J=1,4 + P(I,J)=FAC*NPFS(I,J) + V(I,J)=0. + 280 CONTINUE + P(I,5)=FAC*K(I,5) + V(I,5)=0. + 290 CONTINUE + N=NKFFS + DO 300 J=1,5 + K(N+1,J)=0 + P(N+1,J)=0. + V(N+1,J)=0. + 300 CONTINUE + K(N+1,1)=32 + K(N+1,2)=99 + K(N+1,5)=NEVFS + P(N+1,1)=FAC*NPRFS + P(N+1,2)=FAC*NFIFS + P(N+1,3)=FAC*NCHFS + MSTU(3)=1 + +C...Reset factorial moments statistics. + ELSEIF(MTABU.EQ.30) THEN + NEVFM=0 + NMUFM=0 + DO 330 IM=1,3 + DO 320 IB=1,10 + DO 310 IP=1,4 + FM1FM(IM,IB,IP)=0. + FM2FM(IM,IB,IP)=0. + 310 CONTINUE + 320 CONTINUE + 330 CONTINUE + +C...Find particles to include, with (pion,pseudo)rapidity and azimuth. + ELSEIF(MTABU.EQ.31) THEN + NEVFM=NEVFM+1 + NLOW=N+MSTU(3) + NUPP=NLOW + DO 410 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 410 + IF(MSTU(41).GE.2) THEN + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR. + & KC.EQ.18) GOTO 410 + IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LYCHGE(K(I,2)).EQ.0) + & GOTO 410 + ENDIF + PMR=0. + IF(MSTU(42).EQ.1.AND.K(I,2).NE.22) PMR=UYMASS(211) + IF(MSTU(42).GE.2) PMR=P(I,5) + PR=MAX(1E-20,PMR**2+P(I,1)**2+P(I,2)**2) + YETA=SIGN(LOG(MIN((SQRT(PR+P(I,3)**2)+ABS(P(I,3)))/SQRT(PR), + & 1E20)),P(I,3)) + IF(ABS(YETA).GT.PARU(57)) GOTO 410 + PHI=UYANGL(P(I,1),P(I,2)) + IYETA=512.*(YETA+PARU(57))/(2.*PARU(57)) + IYETA=MAX(0,MIN(511,IYETA)) + IPHI=512.*(PHI+PARU(1))/PARU(2) + IPHI=MAX(0,MIN(511,IPHI)) + IYEP=0 + DO 340 IB=0,9 + IYEP=IYEP+4**IB*(2*MOD(IYETA/2**IB,2)+MOD(IPHI/2**IB,2)) + 340 CONTINUE + +C...Order particles in (pseudo)rapidity and/or azimuth. + IF(NUPP.GT.MSTU(4)-5-MSTU(32)) THEN + CALL LYERRM(11,'(LYTABU:) no more memory left in LUJETS') + RETURN + ENDIF + NUPP=NUPP+1 + IF(NUPP.EQ.NLOW+1) THEN + K(NUPP,1)=IYETA + K(NUPP,2)=IPHI + K(NUPP,3)=IYEP + ELSE + DO 350 I1=NUPP-1,NLOW+1,-1 + IF(IYETA.GE.K(I1,1)) GOTO 360 + K(I1+1,1)=K(I1,1) + 350 CONTINUE + 360 K(I1+1,1)=IYETA + DO 370 I1=NUPP-1,NLOW+1,-1 + IF(IPHI.GE.K(I1,2)) GOTO 380 + K(I1+1,2)=K(I1,2) + 370 CONTINUE + 380 K(I1+1,2)=IPHI + DO 390 I1=NUPP-1,NLOW+1,-1 + IF(IYEP.GE.K(I1,3)) GOTO 400 + K(I1+1,3)=K(I1,3) + 390 CONTINUE + 400 K(I1+1,3)=IYEP + ENDIF + 410 CONTINUE + K(NUPP+1,1)=2**10 + K(NUPP+1,2)=2**10 + K(NUPP+1,3)=4**10 + +C...Calculate sum of factorial moments in event. + DO 480 IM=1,3 + DO 430 IB=1,10 + DO 420 IP=1,4 + FEVFM(IB,IP)=0. + 420 CONTINUE + 430 CONTINUE + DO 450 IB=1,10 + IF(IM.LE.2) IBIN=2**(10-IB) + IF(IM.EQ.3) IBIN=4**(10-IB) + IAGR=K(NLOW+1,IM)/IBIN + NAGR=1 + DO 440 I=NLOW+2,NUPP+1 + ICUT=K(I,IM)/IBIN + IF(ICUT.EQ.IAGR) THEN + NAGR=NAGR+1 + ELSE + IF(NAGR.EQ.1) THEN + ELSEIF(NAGR.EQ.2) THEN + FEVFM(IB,1)=FEVFM(IB,1)+2. + ELSEIF(NAGR.EQ.3) THEN + FEVFM(IB,1)=FEVFM(IB,1)+6. + FEVFM(IB,2)=FEVFM(IB,2)+6. + ELSEIF(NAGR.EQ.4) THEN + FEVFM(IB,1)=FEVFM(IB,1)+12. + FEVFM(IB,2)=FEVFM(IB,2)+24. + FEVFM(IB,3)=FEVFM(IB,3)+24. + ELSE + FEVFM(IB,1)=FEVFM(IB,1)+NAGR*(NAGR-1.) + FEVFM(IB,2)=FEVFM(IB,2)+NAGR*(NAGR-1.)*(NAGR-2.) + FEVFM(IB,3)=FEVFM(IB,3)+NAGR*(NAGR-1.)*(NAGR-2.)*(NAGR-3.) + FEVFM(IB,4)=FEVFM(IB,4)+NAGR*(NAGR-1.)*(NAGR-2.)*(NAGR-3.)* + & (NAGR-4.) + ENDIF + IAGR=ICUT + NAGR=1 + ENDIF + 440 CONTINUE + 450 CONTINUE + +C...Add results to total statistics. + DO 470 IB=10,1,-1 + DO 460 IP=1,4 + IF(FEVFM(1,IP).LT.0.5) THEN + FEVFM(IB,IP)=0. + ELSEIF(IM.LE.2) THEN + FEVFM(IB,IP)=2.**((IB-1)*IP)*FEVFM(IB,IP)/FEVFM(1,IP) + ELSE + FEVFM(IB,IP)=4.**((IB-1)*IP)*FEVFM(IB,IP)/FEVFM(1,IP) + ENDIF + FM1FM(IM,IB,IP)=FM1FM(IM,IB,IP)+FEVFM(IB,IP) + FM2FM(IM,IB,IP)=FM2FM(IM,IB,IP)+FEVFM(IB,IP)**2 + 460 CONTINUE + 470 CONTINUE + 480 CONTINUE + NMUFM=NMUFM+(NUPP-NLOW) + MSTU(62)=NUPP-NLOW + +C...Write accumulated statistics on factorial moments. + ELSEIF(MTABU.EQ.32) THEN + FAC=1./MAX(1,NEVFM) + IF(MSTU(42).LE.0) WRITE(MSTU(11),5400) NEVFM,'eta' + IF(MSTU(42).EQ.1) WRITE(MSTU(11),5400) NEVFM,'ypi' + IF(MSTU(42).GE.2) WRITE(MSTU(11),5400) NEVFM,'y ' + DO 510 IM=1,3 + WRITE(MSTU(11),5500) + DO 500 IB=1,10 + BYETA=2.*PARU(57) + IF(IM.NE.2) BYETA=BYETA/2**(IB-1) + BPHI=PARU(2) + IF(IM.NE.1) BPHI=BPHI/2**(IB-1) + IF(IM.LE.2) BNAVE=FAC*NMUFM/FLOAT(2**(IB-1)) + IF(IM.EQ.3) BNAVE=FAC*NMUFM/FLOAT(4**(IB-1)) + DO 490 IP=1,4 + FMOMA(IP)=FAC*FM1FM(IM,IB,IP) + FMOMS(IP)=SQRT(MAX(0.,FAC*(FAC*FM2FM(IM,IB,IP)-FMOMA(IP)**2))) + 490 CONTINUE + WRITE(MSTU(11),5600) BYETA,BPHI,BNAVE,(FMOMA(IP),FMOMS(IP), + & IP=1,4) + 500 CONTINUE + 510 CONTINUE + +C...Copy statistics on factorial moments into /LYJETS/. + ELSEIF(MTABU.EQ.33) THEN + FAC=1./MAX(1,NEVFM) + DO 540 IM=1,3 + DO 530 IB=1,10 + I=10*(IM-1)+IB + K(I,1)=32 + K(I,2)=99 + K(I,3)=1 + IF(IM.NE.2) K(I,3)=2**(IB-1) + K(I,4)=1 + IF(IM.NE.1) K(I,4)=2**(IB-1) + K(I,5)=0 + P(I,1)=2.*PARU(57)/K(I,3) + V(I,1)=PARU(2)/K(I,4) + DO 520 IP=1,4 + P(I,IP+1)=FAC*FM1FM(IM,IB,IP) + V(I,IP+1)=SQRT(MAX(0.,FAC*(FAC*FM2FM(IM,IB,IP)-P(I,IP+1)**2))) + 520 CONTINUE + 530 CONTINUE + 540 CONTINUE + N=30 + DO 550 J=1,5 + K(N+1,J)=0 + P(N+1,J)=0. + V(N+1,J)=0. + 550 CONTINUE + K(N+1,1)=32 + K(N+1,2)=99 + K(N+1,5)=NEVFM + MSTU(3)=1 + +C...Reset statistics on Energy-Energy Correlation. + ELSEIF(MTABU.EQ.40) THEN + NEVEE=0 + DO 560 J=1,25 + FE1EC(J)=0. + FE2EC(J)=0. + FE1EC(51-J)=0. + FE2EC(51-J)=0. + FE1EA(J)=0. + FE2EA(J)=0. + 560 CONTINUE + +C...Find particles to include, with proper assumed mass. + ELSEIF(MTABU.EQ.41) THEN + NEVEE=NEVEE+1 + NLOW=N+MSTU(3) + NUPP=NLOW + ECM=0. + DO 570 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GT.10) GOTO 570 + IF(MSTU(41).GE.2) THEN + KC=LYCOMP(K(I,2)) + IF(KC.EQ.0.OR.KC.EQ.12.OR.KC.EQ.14.OR.KC.EQ.16.OR. + & KC.EQ.18) GOTO 570 + IF(MSTU(41).GE.3.AND.KCHG(KC,2).EQ.0.AND.LYCHGE(K(I,2)).EQ.0) + & GOTO 570 + ENDIF + PMR=0. + IF(MSTU(42).EQ.1.AND.K(I,2).NE.22) PMR=UYMASS(211) + IF(MSTU(42).GE.2) PMR=P(I,5) + IF(NUPP.GT.MSTU(4)-5-MSTU(32)) THEN + CALL LYERRM(11,'(LYTABU:) no more memory left in LUJETS') + RETURN + ENDIF + NUPP=NUPP+1 + P(NUPP,1)=P(I,1) + P(NUPP,2)=P(I,2) + P(NUPP,3)=P(I,3) + P(NUPP,4)=SQRT(PMR**2+P(I,1)**2+P(I,2)**2+P(I,3)**2) + P(NUPP,5)=MAX(1E-10,SQRT(P(I,1)**2+P(I,2)**2+P(I,3)**2)) + ECM=ECM+P(NUPP,4) + 570 CONTINUE + IF(NUPP.EQ.NLOW) RETURN + +C...Analyze Energy-Energy Correlation in event. + FAC=(2./ECM**2)*50./PARU(1) + DO 580 J=1,50 + FEVEE(J)=0. + 580 CONTINUE + DO 600 I1=NLOW+2,NUPP + DO 590 I2=NLOW+1,I1-1 + CTHE=(P(I1,1)*P(I2,1)+P(I1,2)*P(I2,2)+P(I1,3)*P(I2,3))/ + & (P(I1,5)*P(I2,5)) + THE=ACOS(MAX(-1.,MIN(1.,CTHE))) + ITHE=MAX(1,MIN(50,1+INT(50.*THE/PARU(1)))) + FEVEE(ITHE)=FEVEE(ITHE)+FAC*P(I1,4)*P(I2,4) + 590 CONTINUE + 600 CONTINUE + DO 610 J=1,25 + FE1EC(J)=FE1EC(J)+FEVEE(J) + FE2EC(J)=FE2EC(J)+FEVEE(J)**2 + FE1EC(51-J)=FE1EC(51-J)+FEVEE(51-J) + FE2EC(51-J)=FE2EC(51-J)+FEVEE(51-J)**2 + FE1EA(J)=FE1EA(J)+(FEVEE(51-J)-FEVEE(J)) + FE2EA(J)=FE2EA(J)+(FEVEE(51-J)-FEVEE(J))**2 + 610 CONTINUE + MSTU(62)=NUPP-NLOW + +C...Write statistics on Energy-Energy Correlation. + ELSEIF(MTABU.EQ.42) THEN + FAC=1./MAX(1,NEVEE) + WRITE(MSTU(11),5700) NEVEE + DO 620 J=1,25 + FEEC1=FAC*FE1EC(J) + FEES1=SQRT(MAX(0.,FAC*(FAC*FE2EC(J)-FEEC1**2))) + FEEC2=FAC*FE1EC(51-J) + FEES2=SQRT(MAX(0.,FAC*(FAC*FE2EC(51-J)-FEEC2**2))) + FEECA=FAC*FE1EA(J) + FEESA=SQRT(MAX(0.,FAC*(FAC*FE2EA(J)-FEECA**2))) + WRITE(MSTU(11),5800) 3.6*(J-1),3.6*J,FEEC1,FEES1,FEEC2,FEES2, + & FEECA,FEESA + 620 CONTINUE + +C...Copy statistics on Energy-Energy Correlation into /LYJETS/. + ELSEIF(MTABU.EQ.43) THEN + FAC=1./MAX(1,NEVEE) + DO 630 I=1,25 + K(I,1)=32 + K(I,2)=99 + K(I,3)=0 + K(I,4)=0 + K(I,5)=0 + P(I,1)=FAC*FE1EC(I) + V(I,1)=SQRT(MAX(0.,FAC*(FAC*FE2EC(I)-P(I,1)**2))) + P(I,2)=FAC*FE1EC(51-I) + V(I,2)=SQRT(MAX(0.,FAC*(FAC*FE2EC(51-I)-P(I,2)**2))) + P(I,3)=FAC*FE1EA(I) + V(I,3)=SQRT(MAX(0.,FAC*(FAC*FE2EA(I)-P(I,3)**2))) + P(I,4)=PARU(1)*(I-1)/50. + P(I,5)=PARU(1)*I/50. + V(I,4)=3.6*(I-1) + V(I,5)=3.6*I + 630 CONTINUE + N=25 + DO 640 J=1,5 + K(N+1,J)=0 + P(N+1,J)=0. + V(N+1,J)=0. + 640 CONTINUE + K(N+1,1)=32 + K(N+1,2)=99 + K(N+1,5)=NEVEE + MSTU(3)=1 + +C...Reset statistics on decay channels. + ELSEIF(MTABU.EQ.50) THEN + NEVDC=0 + NKFDC=0 + NREDC=0 + +C...Identify and order flavour content of final state. + ELSEIF(MTABU.EQ.51) THEN + NEVDC=NEVDC+1 + NDS=0 + DO 670 I=1,N + IF(K(I,1).LE.0.OR.K(I,1).GE.6) GOTO 670 + NDS=NDS+1 + IF(NDS.GT.8) THEN + NREDC=NREDC+1 + RETURN + ENDIF + KFM=2*IABS(K(I,2)) + IF(K(I,2).LT.0) KFM=KFM-1 + DO 650 IDS=NDS-1,1,-1 + IIN=IDS+1 + IF(KFM.LT.KFDM(IDS)) GOTO 660 + KFDM(IDS+1)=KFDM(IDS) + 650 CONTINUE + IIN=1 + 660 KFDM(IIN)=KFM + 670 CONTINUE + +C...Find whether old or new final state. + DO 690 IDC=1,NKFDC + IF(NDS.LT.KFDC(IDC,0)) THEN + IKFDC=IDC + GOTO 700 + ELSEIF(NDS.EQ.KFDC(IDC,0)) THEN + DO 680 I=1,NDS + IF(KFDM(I).LT.KFDC(IDC,I)) THEN + IKFDC=IDC + GOTO 700 + ELSEIF(KFDM(I).GT.KFDC(IDC,I)) THEN + GOTO 690 + ENDIF + 680 CONTINUE + IKFDC=-IDC + GOTO 700 + ENDIF + 690 CONTINUE + IKFDC=NKFDC+1 + 700 IF(IKFDC.LT.0) THEN + IKFDC=-IKFDC + ELSEIF(NKFDC.GE.200) THEN + NREDC=NREDC+1 + RETURN + ELSE + DO 720 IDC=NKFDC,IKFDC,-1 + NPDC(IDC+1)=NPDC(IDC) + DO 710 I=0,8 + KFDC(IDC+1,I)=KFDC(IDC,I) + 710 CONTINUE + 720 CONTINUE + NKFDC=NKFDC+1 + KFDC(IKFDC,0)=NDS + DO 730 I=1,NDS + KFDC(IKFDC,I)=KFDM(I) + 730 CONTINUE + NPDC(IKFDC)=0 + ENDIF + NPDC(IKFDC)=NPDC(IKFDC)+1 + +C...Write statistics on decay channels. + ELSEIF(MTABU.EQ.52) THEN + FAC=1./MAX(1,NEVDC) + WRITE(MSTU(11),5900) NEVDC + DO 750 IDC=1,NKFDC + DO 740 I=1,KFDC(IDC,0) + KFM=KFDC(IDC,I) + KF=(KFM+1)/2 + IF(2*KF.NE.KFM) KF=-KF + CALL LYNAME(KF,CHAU) + CHDC(I)=CHAU(1:12) + IF(CHAU(13:13).NE.' ') CHDC(I)(12:12)='?' + 740 CONTINUE + WRITE(MSTU(11),6000) FAC*NPDC(IDC),(CHDC(I),I=1,KFDC(IDC,0)) + 750 CONTINUE + IF(NREDC.NE.0) WRITE(MSTU(11),6100) FAC*NREDC + +C...Copy statistics on decay channels into /LYJETS/. + ELSEIF(MTABU.EQ.53) THEN + FAC=1./MAX(1,NEVDC) + DO 780 IDC=1,NKFDC + K(IDC,1)=32 + K(IDC,2)=99 + K(IDC,3)=0 + K(IDC,4)=0 + K(IDC,5)=KFDC(IDC,0) + DO 760 J=1,5 + P(IDC,J)=0. + V(IDC,J)=0. + 760 CONTINUE + DO 770 I=1,KFDC(IDC,0) + KFM=KFDC(IDC,I) + KF=(KFM+1)/2 + IF(2*KF.NE.KFM) KF=-KF + IF(I.LE.5) P(IDC,I)=KF + IF(I.GE.6) V(IDC,I-5)=KF + 770 CONTINUE + V(IDC,5)=FAC*NPDC(IDC) + 780 CONTINUE + N=NKFDC + DO 790 J=1,5 + K(N+1,J)=0 + P(N+1,J)=0. + V(N+1,J)=0. + 790 CONTINUE + K(N+1,1)=32 + K(N+1,2)=99 + K(N+1,5)=NEVDC + V(N+1,5)=FAC*NREDC + MSTU(3)=1 + ENDIF + +C...Format statements for output on unit MSTU(11) (default 6). + 5000 FORMAT(///20X,'Event statistics - initial state'/ + &20X,'based on an analysis of ',I6,' events'// + &3X,'Main flavours after',8X,'Fraction',4X,'Subfractions ', + &'according to fragmenting system multiplicity'/ + &4X,'hard interaction',24X,'1',7X,'2',7X,'3',7X,'4',7X,'5', + &6X,'6-7',5X,'8-10',3X,'11-15',3X,'16-25',4X,'>25'/) + 5100 FORMAT(3X,A12,1X,A12,F10.5,1X,10F8.4) + 5200 FORMAT(///20X,'Event statistics - final state'/ + &20X,'based on an analysis of ',I7,' events'// + &5X,'Mean primary multiplicity =',F10.4/ + &5X,'Mean final multiplicity =',F10.4/ + &5X,'Mean charged multiplicity =',F10.4// + &5X,'Number of particles produced per event (directly and via ', + &'decays/branchings)'/ + &5X,'KF Particle/jet MDCY',10X,'Particles',13X,'Antiparticles', + &8X,'Total'/35X,'prim seco prim seco'/) + 5300 FORMAT(1X,I6,4X,A16,I2,5(1X,F11.6)) + 5400 FORMAT(///20X,'Factorial moments analysis of multiplicity'/ + &20X,'based on an analysis of ',I6,' events'// + &3X,'delta-',A3,' delta-phi /bin',10X,'',18X,'', + &18X,'',18X,''/35X,4(' value error ')) + 5500 FORMAT(10X) + 5600 FORMAT(2X,2F10.4,F12.4,4(F12.4,F10.4)) + 5700 FORMAT(///20X,'Energy-Energy Correlation and Asymmetry'/ + &20X,'based on an analysis of ',I6,' events'// + &2X,'theta range',8X,'EEC(theta)',8X,'EEC(180-theta)',7X, + &'EECA(theta)'/2X,'in degrees ',3(' value error')/) + 5800 FORMAT(2X,F4.1,' - ',F4.1,3(F11.4,F9.4)) + 5900 FORMAT(///20X,'Decay channel analysis - final state'/ + &20X,'based on an analysis of ',I6,' events'// + &2X,'Probability',10X,'Complete final state'/) + 6000 FORMAT(2X,F9.5,5X,8(A12,1X)) + 6100 FORMAT(2X,F9.5,5X,'into other channels (more than 8 particles ', + &'or table overflow)') + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYEEVT(KFL,ECM) + +C...Purpose: to handle the generation of an e+e- annihilation jet event. + IMPLICIT DOUBLE PRECISION(D) + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + +C...Check input parameters. + IF(MSTU(12).GE.1) CALL LYLIST(0) + IF(KFL.LT.0.OR.KFL.GT.8) THEN + CALL LYERRM(16,'(LYEEVT:) called with unknown flavour code') + IF(MSTU(21).GE.1) RETURN + ENDIF + IF(KFL.LE.5) ECMMIN=PARJ(127)+2.02*PARF(100+MAX(1,KFL)) + IF(KFL.GE.6) ECMMIN=PARJ(127)+2.02*PMAS(KFL,1) + IF(ECM.LT.ECMMIN) THEN + CALL LYERRM(16,'(LYEEVT:) called with too small CM energy') + IF(MSTU(21).GE.1) RETURN + ENDIF + +C...Check consistency of MSTJ options set. + IF(MSTJ(109).EQ.2.AND.MSTJ(110).NE.1) THEN + CALL LYERRM(6, + & '(LYEEVT:) MSTJ(109) value requires MSTJ(110) = 1') + MSTJ(110)=1 + ENDIF + IF(MSTJ(109).EQ.2.AND.MSTJ(111).NE.0) THEN + CALL LYERRM(6, + & '(LYEEVT:) MSTJ(109) value requires MSTJ(111) = 0') + MSTJ(111)=0 + ENDIF + +C...Initialize alpha_strong and total cross-section. + MSTU(111)=MSTJ(108) + IF(MSTJ(108).EQ.2.AND.(MSTJ(101).EQ.0.OR.MSTJ(101).EQ.1)) + &MSTU(111)=1 + PARU(112)=PARJ(121) + IF(MSTU(111).EQ.2) PARU(112)=PARJ(122) + IF(MSTJ(116).GT.0.AND.(MSTJ(116).GE.2.OR.ABS(ECM-PARJ(151)).GE. + &PARJ(139).OR.10*MSTJ(102)+KFL.NE.MSTJ(119))) CALL LYXTOT(KFL,ECM, + &XTOT) + IF(MSTJ(116).GE.3) MSTJ(116)=1 + PARJ(171)=0. + +C...Add initial e+e- to event record (documentation only). + NTRY=0 + 100 NTRY=NTRY+1 + IF(NTRY.GT.100) THEN + CALL LYERRM(14,'(LYEEVT:) caught in an infinite loop') + RETURN + ENDIF + MSTU(24)=0 + NC=0 + IF(MSTJ(115).GE.2) THEN + NC=NC+2 + CALL LY1ENT(NC-1,11,0.5*ECM,0.,0.) + K(NC-1,1)=21 + CALL LY1ENT(NC,-11,0.5*ECM,PARU(1),0.) + K(NC,1)=21 + ENDIF + +C...Radiative photon (in initial state). + MK=0 + ECMC=ECM + IF(MSTJ(107).GE.1.AND.MSTJ(116).GE.1) CALL LYRADK(ECM,MK,PAK, + &THEK,PHIK,ALPK) + IF(MK.EQ.1) ECMC=SQRT(ECM*(ECM-2.*PAK)) + IF(MSTJ(115).GE.1.AND.MK.EQ.1) THEN + NC=NC+1 + CALL LY1ENT(NC,22,PAK,THEK,PHIK) + K(NC,3)=MIN(MSTJ(115)/2,1) + ENDIF + +C...Virtual exchange boson (gamma or Z0). + IF(MSTJ(115).GE.3) THEN + NC=NC+1 + KF=22 + IF(MSTJ(102).EQ.2) KF=23 + MSTU10=MSTU(10) + MSTU(10)=1 + P(NC,5)=ECMC + CALL LY1ENT(NC,KF,ECMC,0.,0.) + K(NC,1)=21 + K(NC,3)=1 + MSTU(10)=MSTU10 + ENDIF + +C...Choice of flavour and jet configuration. + CALL LYXKFL(KFL,ECM,ECMC,KFLC) + IF(KFLC.EQ.0) GOTO 100 + CALL LYXJET(ECMC,NJET,CUT) + KFLN=21 + IF(NJET.EQ.4) CALL LYX4JT(NJET,CUT,KFLC,ECMC,KFLN,X1,X2,X4, + &X12,X14) + IF(NJET.EQ.3) CALL LYX3JT(NJET,CUT,KFLC,ECMC,X1,X3) + IF(NJET.EQ.2) MSTJ(120)=1 + +C...Fill jet configuration and origin. + IF(NJET.EQ.2.AND.MSTJ(101).NE.5) CALL LY2ENT(NC+1,KFLC,-KFLC,ECMC) + IF(NJET.EQ.2.AND.MSTJ(101).EQ.5) CALL LY2ENT(-(NC+1),KFLC,-KFLC, + &ECMC) + IF(NJET.EQ.3) CALL LY3ENT(NC+1,KFLC,21,-KFLC,ECMC,X1,X3) + IF(NJET.EQ.4.AND.KFLN.EQ.21) CALL LY4ENT(NC+1,KFLC,KFLN,KFLN, + &-KFLC,ECMC,X1,X2,X4,X12,X14) + IF(NJET.EQ.4.AND.KFLN.NE.21) CALL LY4ENT(NC+1,KFLC,-KFLN,KFLN, + &-KFLC,ECMC,X1,X2,X4,X12,X14) + IF(MSTU(24).NE.0) GOTO 100 + DO 110 IP=NC+1,N + K(IP,3)=K(IP,3)+MIN(MSTJ(115)/2,1)+(MSTJ(115)/3)*(NC-1) + 110 CONTINUE + +C...Angular orientation according to matrix element. + IF(MSTJ(106).EQ.1) THEN + CALL LYXDIF(NC,NJET,KFLC,ECMC,CHI,THE,PHI) + CALL LUDBRB(NC+1,N,0.,CHI,0D0,0D0,0D0) + CALL LUDBRB(NC+1,N,THE,PHI,0D0,0D0,0D0) + ENDIF + +C...Rotation and boost from radiative photon. + IF(MK.EQ.1) THEN + DBEK=-PAK/(ECM-PAK) + NMIN=NC+1-MSTJ(115)/3 + CALL LUDBRB(NMIN,N,0.,-PHIK,0D0,0D0,0D0) + CALL LUDBRB(NMIN,N,ALPK,0.,DBEK*SIN(THEK),0D0,DBEK*COS(THEK)) + CALL LUDBRB(NMIN,N,0.,PHIK,0D0,0D0,0D0) + ENDIF + +C...Generate parton shower. Rearrange along strings and check. + IF(MSTJ(101).EQ.5) THEN + CALL LYSHOW(N-1,N,ECMC) + MSTJ14=MSTJ(14) + IF(MSTJ(105).EQ.-1) MSTJ(14)=-1 + IF(MSTJ(105).GE.0) MSTU(28)=0 + CALL LYPREP(0) + MSTJ(14)=MSTJ14 + IF(MSTJ(105).GE.0.AND.MSTU(28).NE.0) GOTO 100 + ENDIF + +C...Fragmentation/decay generation. Information for LYTABU. + IF(MSTJ(105).EQ.1) CALL LYEXEC + MSTU(161)=KFLC + MSTU(162)=-KFLC + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYXTOT(KFL,ECM,XTOT) + +C...Purpose: to calculate total cross-section, including initial +C...state radiation effects. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYDAT1/,/LYDAT2/ + +C...Status, (optimized) Q^2 scale, alpha_strong. + PARJ(151)=ECM + MSTJ(119)=10*MSTJ(102)+KFL + IF(MSTJ(111).EQ.0) THEN + Q2R=ECM**2 + ELSEIF(MSTU(111).EQ.0) THEN + PARJ(168)=MIN(1.,MAX(PARJ(128),EXP(-12.*PARU(1)/ + & ((33.-2.*MSTU(112))*PARU(111))))) + Q2R=PARJ(168)*ECM**2 + ELSE + PARJ(168)=MIN(1.,MAX(PARJ(128),PARU(112)/ECM, + & (2.*PARU(112)/ECM)**2)) + Q2R=PARJ(168)*ECM**2 + ENDIF + ALSPI=UYALPS(Q2R)/PARU(1) + +C...QCD corrections factor in R. + IF(MSTJ(101).EQ.0.OR.MSTJ(109).EQ.1) THEN + RQCD=1. + ELSEIF(IABS(MSTJ(101)).EQ.1.AND.MSTJ(109).EQ.0) THEN + RQCD=1.+ALSPI + ELSEIF(MSTJ(109).EQ.0) THEN + RQCD=1.+ALSPI+(1.986-0.115*MSTU(118))*ALSPI**2 + IF(MSTJ(111).EQ.1) RQCD=MAX(1.,RQCD+(33.-2.*MSTU(112))/12.* + & LOG(PARJ(168))*ALSPI**2) + ELSEIF(IABS(MSTJ(101)).EQ.1) THEN + RQCD=1.+(3./4.)*ALSPI + ELSE + RQCD=1.+(3./4.)*ALSPI-(3./32.+0.519*MSTU(118))*ALSPI**2 + ENDIF + +C...Calculate Z0 width if default value not acceptable. + IF(MSTJ(102).GE.3) THEN + RVA=3.*(3.+(4.*PARU(102)-1.)**2)+6.*RQCD*(2.+(1.-8.*PARU(102)/ + & 3.)**2+(4.*PARU(102)/3.-1.)**2) + DO 100 KFLC=5,6 + VQ=1. + IF(MOD(MSTJ(103),2).EQ.1) VQ=SQRT(MAX(0.,1.-(2.*UYMASS(KFLC)/ + & ECM)**2)) + IF(KFLC.EQ.5) VF=4.*PARU(102)/3.-1. + IF(KFLC.EQ.6) VF=1.-8.*PARU(102)/3. + RVA=RVA+3.*RQCD*(0.5*VQ*(3.-VQ**2)*VF**2+VQ**3) + 100 CONTINUE + PARJ(124)=PARU(101)*PARJ(123)*RVA/(48.*PARU(102)*(1.-PARU(102))) + ENDIF + +C...Calculate propagator and related constants for QFD case. + POLL=1.-PARJ(131)*PARJ(132) + IF(MSTJ(102).GE.2) THEN + SFF=1./(16.*PARU(102)*(1.-PARU(102))) + SFW=ECM**4/((ECM**2-PARJ(123)**2)**2+(PARJ(123)*PARJ(124))**2) + SFI=SFW*(1.-(PARJ(123)/ECM)**2) + VE=4.*PARU(102)-1. + SF1I=SFF*(VE*POLL+PARJ(132)-PARJ(131)) + SF1W=SFF**2*((VE**2+1.)*POLL+2.*VE*(PARJ(132)-PARJ(131))) + HF1I=SFI*SF1I + HF1W=SFW*SF1W + ENDIF + +C...Loop over different flavours: charge, velocity. + RTOT=0. + RQQ=0. + RQV=0. + RVA=0. + DO 110 KFLC=1,MAX(MSTJ(104),KFL) + IF(KFL.GT.0.AND.KFLC.NE.KFL) GOTO 110 + MSTJ(93)=1 + PMQ=UYMASS(KFLC) + IF(ECM.LT.2.*PMQ+PARJ(127)) GOTO 110 + QF=KCHG(KFLC,1)/3. + VQ=1. + IF(MOD(MSTJ(103),2).EQ.1) VQ=SQRT(1.-(2.*PMQ/ECM)**2) + +C...Calculate R and sum of charges for QED or QFD case. + RQQ=RQQ+3.*QF**2*POLL + IF(MSTJ(102).LE.1) THEN + RTOT=RTOT+3.*0.5*VQ*(3.-VQ**2)*QF**2*POLL + ELSE + VF=SIGN(1.,QF)-4.*QF*PARU(102) + RQV=RQV-6.*QF*VF*SF1I + RVA=RVA+3.*(VF**2+1.)*SF1W + RTOT=RTOT+3.*(0.5*VQ*(3.-VQ**2)*(QF**2*POLL-2.*QF*VF*HF1I+ + & VF**2*HF1W)+VQ**3*HF1W) + ENDIF + 110 CONTINUE + RSUM=RQQ + IF(MSTJ(102).GE.2) RSUM=RQQ+SFI*RQV+SFW*RVA + +C...Calculate cross-section, including QCD corrections. + PARJ(141)=RQQ + PARJ(142)=RTOT + PARJ(143)=RTOT*RQCD + PARJ(144)=PARJ(143) + PARJ(145)=PARJ(141)*86.8/ECM**2 + PARJ(146)=PARJ(142)*86.8/ECM**2 + PARJ(147)=PARJ(143)*86.8/ECM**2 + PARJ(148)=PARJ(147) + PARJ(157)=RSUM*RQCD + PARJ(158)=0. + PARJ(159)=0. + XTOT=PARJ(147) + IF(MSTJ(107).LE.0) RETURN + +C...Virtual cross-section. + XKL=PARJ(135) + XKU=MIN(PARJ(136),1.-(2.*PARJ(127)/ECM)**2) + ALE=2.*LOG(ECM/UYMASS(11))-1. + SIGV=ALE/3.+2.*LOG(ECM**2/(UYMASS(13)*UYMASS(15)))/3.-4./3.+ + &1.526*LOG(ECM**2/0.932) + +C...Soft and hard radiative cross-section in QED case. + IF(MSTJ(102).LE.1) THEN + SIGV=1.5*ALE-0.5+PARU(1)**2/3.+2.*SIGV + SIGS=ALE*(2.*LOG(XKL)-LOG(1.-XKL)-XKL) + SIGH=ALE*(2.*LOG(XKU/XKL)-LOG((1.-XKU)/(1.-XKL))-(XKU-XKL)) + +C...Soft and hard radiative cross-section in QFD case. + ELSE + SZM=1.-(PARJ(123)/ECM)**2 + SZW=PARJ(123)*PARJ(124)/ECM**2 + PARJ(161)=-RQQ/RSUM + PARJ(162)=-(RQQ+RQV+RVA)/RSUM + PARJ(163)=(RQV*(1.-0.5*SZM-SFI)+RVA*(1.5-SZM-SFW))/RSUM + PARJ(164)=(RQV*SZW**2*(1.-2.*SFW)+RVA*(2.*SFI+SZW**2-4.+3.*SZM- + & SZM**2))/(SZW*RSUM) + SIGV=1.5*ALE-0.5+PARU(1)**2/3.+((2.*RQQ+SFI*RQV)/RSUM)*SIGV+ + & (SZW*SFW*RQV/RSUM)*PARU(1)*20./9. + SIGS=ALE*(2.*LOG(XKL)+PARJ(161)*LOG(1.-XKL)+PARJ(162)*XKL+ + & PARJ(163)*LOG(((XKL-SZM)**2+SZW**2)/(SZM**2+SZW**2))+ + & PARJ(164)*(ATAN((XKL-SZM)/SZW)-ATAN(-SZM/SZW))) + SIGH=ALE*(2.*LOG(XKU/XKL)+PARJ(161)*LOG((1.-XKU)/(1.-XKL))+ + & PARJ(162)*(XKU-XKL)+PARJ(163)*LOG(((XKU-SZM)**2+SZW**2)/ + & ((XKL-SZM)**2+SZW**2))+PARJ(164)*(ATAN((XKU-SZM)/SZW)- + & ATAN((XKL-SZM)/SZW))) + ENDIF + +C...Total cross-section and fraction of hard photon events. + PARJ(160)=SIGH/(PARU(1)/PARU(101)+SIGV+SIGS+SIGH) + PARJ(157)=RSUM*(1.+(PARU(101)/PARU(1))*(SIGV+SIGS+SIGH))*RQCD + PARJ(144)=PARJ(157) + PARJ(148)=PARJ(144)*86.8/ECM**2 + XTOT=PARJ(148) + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYRADK(ECM,MK,PAK,THEK,PHIK,ALPK) + +C...Purpose: to generate initial state photon radiation. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /LYDAT1/ + +C...Function: cumulative hard photon spectrum in QFD case. + FXK(XX)=2.*LOG(XX)+PARJ(161)*LOG(1.-XX)+PARJ(162)*XX+ + &PARJ(163)*LOG((XX-SZM)**2+SZW**2)+PARJ(164)*ATAN((XX-SZM)/SZW) + +C...Determine whether radiative photon or not. + MK=0 + PAK=0. + IF(PARJ(160).LT.RLY(0)) RETURN + MK=1 + +C...Photon energy range. Find photon momentum in QED case. + XKL=PARJ(135) + XKU=MIN(PARJ(136),1.-(2.*PARJ(127)/ECM)**2) + IF(MSTJ(102).LE.1) THEN + 100 XK=1./(1.+(1./XKL-1.)*((1./XKU-1.)/(1./XKL-1.))**RLY(0)) + IF(1.+(1.-XK)**2.LT.2.*RLY(0)) GOTO 100 + +C...Ditto in QFD case, by numerical inversion of integrated spectrum. + ELSE + SZM=1.-(PARJ(123)/ECM)**2 + SZW=PARJ(123)*PARJ(124)/ECM**2 + FXKL=FXK(XKL) + FXKU=FXK(XKU) + FXKD=1E-4*(FXKU-FXKL) + FXKR=FXKL+RLY(0)*(FXKU-FXKL) + NXK=0 + 110 NXK=NXK+1 + XK=0.5*(XKL+XKU) + FXKV=FXK(XK) + IF(FXKV.GT.FXKR) THEN + XKU=XK + FXKU=FXKV + ELSE + XKL=XK + FXKL=FXKV + ENDIF + IF(NXK.LT.15.AND.FXKU-FXKL.GT.FXKD) GOTO 110 + XK=XKL+(XKU-XKL)*(FXKR-FXKL)/(FXKU-FXKL) + ENDIF + PAK=0.5*ECM*XK + +C...Photon polar and azimuthal angle. + PME=2.*(UYMASS(11)/ECM)**2 + 120 CTHM=PME*(2./PME)**RLY(0) + IF(1.-(XK**2*CTHM*(1.-0.5*CTHM)+2.*(1.-XK)*PME/MAX(PME, + &CTHM*(1.-0.5*CTHM)))/(1.+(1.-XK)**2).LT.RLY(0)) GOTO 120 + CTHE=1.-CTHM + IF(RLY(0).GT.0.5) CTHE=-CTHE + STHE=SQRT(MAX(0.,(CTHM-PME)*(2.-CTHM))) + THEK=UYANGL(CTHE,STHE) + PHIK=PARU(2)*RLY(0) + +C...Rotation angle for hadronic system. + SGN=1. + IF(0.5*(2.-XK*(1.-CTHE))**2/((2.-XK)**2+(XK*CTHE)**2).GT. + &RLY(0)) SGN=-1. + ALPK=ASIN(SGN*STHE*(XK-SGN*(2.*SQRT(1.-XK)-2.+XK)*CTHE)/ + &(2.-XK*(1.-SGN*CTHE))) + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYXKFL(KFL,ECM,ECMC,KFLC) + +C...Purpose: to select flavour for produced qqbar pair. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYDAT1/,/LYDAT2/ + +C...Calculate maximum weight in QED or QFD case. + IF(MSTJ(102).LE.1) THEN + RFMAX=4./9. + ELSE + POLL=1.-PARJ(131)*PARJ(132) + SFF=1./(16.*PARU(102)*(1.-PARU(102))) + SFW=ECMC**4/((ECMC**2-PARJ(123)**2)**2+(PARJ(123)*PARJ(124))**2) + SFI=SFW*(1.-(PARJ(123)/ECMC)**2) + VE=4.*PARU(102)-1. + HF1I=SFI*SFF*(VE*POLL+PARJ(132)-PARJ(131)) + HF1W=SFW*SFF**2*((VE**2+1.)*POLL+2.*VE*(PARJ(132)-PARJ(131))) + RFMAX=MAX(4./9.*POLL-4./3.*(1.-8.*PARU(102)/3.)*HF1I+ + & ((1.-8.*PARU(102)/3.)**2+1.)*HF1W,1./9.*POLL+2./3.* + & (-1.+4.*PARU(102)/3.)*HF1I+((-1.+4.*PARU(102)/3.)**2+1.)*HF1W) + ENDIF + +C...Choose flavour. Gives charge and velocity. + NTRY=0 + 100 NTRY=NTRY+1 + IF(NTRY.GT.100) THEN + CALL LYERRM(14,'(LYXKFL:) caught in an infinite loop') + KFLC=0 + RETURN + ENDIF + KFLC=KFL + IF(KFL.LE.0) KFLC=1+INT(MSTJ(104)*RLY(0)) + MSTJ(93)=1 + PMQ=UYMASS(KFLC) + IF(ECM.LT.2.*PMQ+PARJ(127)) GOTO 100 + QF=KCHG(KFLC,1)/3. + VQ=1. + IF(MOD(MSTJ(103),2).EQ.1) VQ=SQRT(MAX(0.,1.-(2.*PMQ/ECMC)**2)) + +C...Calculate weight in QED or QFD case. + IF(MSTJ(102).LE.1) THEN + RF=QF**2 + RFV=0.5*VQ*(3.-VQ**2)*QF**2 + ELSE + VF=SIGN(1.,QF)-4.*QF*PARU(102) + RF=QF**2*POLL-2.*QF*VF*HF1I+(VF**2+1.)*HF1W + RFV=0.5*VQ*(3.-VQ**2)*(QF**2*POLL-2.*QF*VF*HF1I+VF**2*HF1W)+ + & VQ**3*HF1W + IF(RFV.GT.0.) PARJ(171)=MIN(1.,VQ**3*HF1W/RFV) + ENDIF + +C...Weighting or new event (radiative photon). Cross-section update. + IF(KFL.LE.0.AND.RF.LT.RLY(0)*RFMAX) GOTO 100 + PARJ(158)=PARJ(158)+1. + IF(ECMC.LT.2.*PMQ+PARJ(127).OR.RFV.LT.RLY(0)*RF) KFLC=0 + IF(MSTJ(107).LE.0.AND.KFLC.EQ.0) GOTO 100 + IF(KFLC.NE.0) PARJ(159)=PARJ(159)+1. + PARJ(144)=PARJ(157)*PARJ(159)/PARJ(158) + PARJ(148)=PARJ(144)*86.8/ECM**2 + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYXJET(ECM,NJET,CUT) + +C...Purpose: to select number of jets in matrix element approach. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /LYDAT1/ + DIMENSION ZHUT(5) + +C...Relative three-jet rate in Zhu second order parametrization. + DATA ZHUT/3.0922, 6.2291, 7.4782, 7.8440, 8.2560/ + +C...Trivial result for two-jets only, including parton shower. + IF(MSTJ(101).EQ.0.OR.MSTJ(101).EQ.5) THEN + CUT=0. + +C...QCD and Abelian vector gluon theory: Q^2 for jet rate and R. + ELSEIF(MSTJ(109).EQ.0.OR.MSTJ(109).EQ.2) THEN + CF=4./3. + IF(MSTJ(109).EQ.2) CF=1. + IF(MSTJ(111).EQ.0) THEN + Q2=ECM**2 + Q2R=ECM**2 + ELSEIF(MSTU(111).EQ.0) THEN + PARJ(169)=MIN(1.,PARJ(129)) + Q2=PARJ(169)*ECM**2 + PARJ(168)=MIN(1.,MAX(PARJ(128),EXP(-12.*PARU(1)/ + & ((33.-2.*MSTU(112))*PARU(111))))) + Q2R=PARJ(168)*ECM**2 + ELSE + PARJ(169)=MIN(1.,MAX(PARJ(129),(2.*PARU(112)/ECM)**2)) + Q2=PARJ(169)*ECM**2 + PARJ(168)=MIN(1.,MAX(PARJ(128),PARU(112)/ECM, + & (2.*PARU(112)/ECM)**2)) + Q2R=PARJ(168)*ECM**2 + ENDIF + +C...alpha_strong for R and R itself. + ALSPI=(3./4.)*CF*UYALPS(Q2R)/PARU(1) + IF(IABS(MSTJ(101)).EQ.1) THEN + RQCD=1.+ALSPI + ELSEIF(MSTJ(109).EQ.0) THEN + RQCD=1.+ALSPI+(1.986-0.115*MSTU(118))*ALSPI**2 + IF(MSTJ(111).EQ.1) RQCD=MAX(1.,RQCD+(33.-2.*MSTU(112))/12.* + & LOG(PARJ(168))*ALSPI**2) + ELSE + RQCD=1.+ALSPI-(3./32.+0.519*MSTU(118))*(4.*ALSPI/3.)**2 + ENDIF + +C...alpha_strong for jet rate. Initial value for y cut. + ALSPI=(3./4.)*CF*UYALPS(Q2)/PARU(1) + CUT=MAX(0.001,PARJ(125),(PARJ(126)/ECM)**2) + IF(IABS(MSTJ(101)).LE.1.OR.(MSTJ(109).EQ.0.AND.MSTJ(111).EQ.0)) + & CUT=MAX(CUT,EXP(-SQRT(0.75/ALSPI))/2.) + IF(MSTJ(110).EQ.2) CUT=MAX(0.01,MIN(0.05,CUT)) + +C...Parametrization of first order three-jet cross-section. + 100 IF(MSTJ(101).EQ.0.OR.CUT.GE.0.25) THEN + PARJ(152)=0. + ELSE + PARJ(152)=(2.*ALSPI/3.)*((3.-6.*CUT+2.*LOG(CUT))* + & LOG(CUT/(1.-2.*CUT))+(2.5+1.5*CUT-6.571)*(1.-3.*CUT)+ + & 5.833*(1.-3.*CUT)**2-3.894*(1.-3.*CUT)**3+ + & 1.342*(1.-3.*CUT)**4)/RQCD + IF(MSTJ(109).EQ.2.AND.(MSTJ(101).EQ.2.OR.MSTJ(101).LE.-2)) + & PARJ(152)=0. + ENDIF + +C...Parametrization of second order three-jet cross-section. + IF(IABS(MSTJ(101)).LE.1.OR.MSTJ(101).EQ.3.OR.MSTJ(109).EQ.2.OR. + & CUT.GE.0.25) THEN + PARJ(153)=0. + ELSEIF(MSTJ(110).LE.1) THEN + CT=LOG(1./CUT-2.) + PARJ(153)=ALSPI**2*CT**2*(2.419+0.5989*CT+0.6782*CT**2- + & 0.2661*CT**3+0.01159*CT**4)/RQCD + +C...Interpolation in second/first order ratio for Zhu parametrization. + ELSEIF(MSTJ(110).EQ.2) THEN + IZA=0 + DO 110 IY=1,5 + IF(ABS(CUT-0.01*IY).LT.0.0001) IZA=IY + 110 CONTINUE + IF(IZA.NE.0) THEN + ZHURAT=ZHUT(IZA) + ELSE + IZ=100.*CUT + ZHURAT=ZHUT(IZ)+(100.*CUT-IZ)*(ZHUT(IZ+1)-ZHUT(IZ)) + ENDIF + PARJ(153)=ALSPI*PARJ(152)*ZHURAT + ENDIF + +C...Shift in second order three-jet cross-section with optimized Q^2. + IF(MSTJ(111).EQ.1.AND.IABS(MSTJ(101)).GE.2.AND.MSTJ(101).NE.3. + & AND.CUT.LT.0.25) PARJ(153)=PARJ(153)+(33.-2.*MSTU(112))/12.* + & LOG(PARJ(169))*ALSPI*PARJ(152) + +C...Parametrization of second order four-jet cross-section. + IF(IABS(MSTJ(101)).LE.1.OR.CUT.GE.0.125) THEN + PARJ(154)=0. + ELSE + CT=LOG(1./CUT-5.) + IF(CUT.LE.0.018) THEN + XQQGG=6.349-4.330*CT+0.8304*CT**2 + IF(MSTJ(109).EQ.2) XQQGG=(4./3.)**2*(3.035-2.091*CT+ + & 0.4059*CT**2) + XQQQQ=1.25*(-0.1080+0.01486*CT+0.009364*CT**2) + IF(MSTJ(109).EQ.2) XQQQQ=8.*XQQQQ + ELSE + XQQGG=-0.09773+0.2959*CT-0.2764*CT**2+0.08832*CT**3 + IF(MSTJ(109).EQ.2) XQQGG=(4./3.)**2*(-0.04079+0.1340*CT- + & 0.1326*CT**2+0.04365*CT**3) + XQQQQ=1.25*(0.003661-0.004888*CT-0.001081*CT**2+0.002093* + & CT**3) + IF(MSTJ(109).EQ.2) XQQQQ=8.*XQQQQ + ENDIF + PARJ(154)=ALSPI**2*CT**2*(XQQGG+XQQQQ)/RQCD + PARJ(155)=XQQQQ/(XQQGG+XQQQQ) + ENDIF + +C...If negative three-jet rate, change y' optimization parameter. + IF(MSTJ(111).EQ.1.AND.PARJ(152)+PARJ(153).LT.0..AND. + & PARJ(169).LT.0.99) THEN + PARJ(169)=MIN(1.,1.2*PARJ(169)) + Q2=PARJ(169)*ECM**2 + ALSPI=(3./4.)*CF*UYALPS(Q2)/PARU(1) + GOTO 100 + ENDIF + +C...If too high cross-section, use harder cuts, or fail. + IF(PARJ(152)+PARJ(153)+PARJ(154).GE.1) THEN + IF(MSTJ(110).EQ.2.AND.CUT.GT.0.0499.AND.MSTJ(111).EQ.1.AND. + & PARJ(169).LT.0.99) THEN + PARJ(169)=MIN(1.,1.2*PARJ(169)) + Q2=PARJ(169)*ECM**2 + ALSPI=(3./4.)*CF*UYALPS(Q2)/PARU(1) + GOTO 100 + ELSEIF(MSTJ(110).EQ.2.AND.CUT.GT.0.0499) THEN + CALL LYERRM(26, + & '(LYXJET:) no allowed y cut value for Zhu parametrization') + ENDIF + CUT=0.26*(4.*CUT)**(PARJ(152)+PARJ(153)+PARJ(154))**(-1./3.) + IF(MSTJ(110).EQ.2) CUT=MAX(0.01,MIN(0.05,CUT)) + GOTO 100 + ENDIF + +C...Scalar gluon (first order only). + ELSE + ALSPI=UYALPS(ECM**2)/PARU(1) + CUT=MAX(0.001,PARJ(125),(PARJ(126)/ECM)**2,EXP(-3./ALSPI)) + PARJ(152)=0. + IF(CUT.LT.0.25) PARJ(152)=(ALSPI/3.)*((1.-2.*CUT)* + & LOG((1.-2.*CUT)/CUT)+0.5*(9.*CUT**2-1.)) + PARJ(153)=0. + PARJ(154)=0. + ENDIF + +C...Select number of jets. + PARJ(150)=CUT + IF(MSTJ(101).EQ.0.OR.MSTJ(101).EQ.5) THEN + NJET=2 + ELSEIF(MSTJ(101).LE.0) THEN + NJET=MIN(4,2-MSTJ(101)) + ELSE + RNJ=RLY(0) + NJET=2 + IF(PARJ(152)+PARJ(153)+PARJ(154).GT.RNJ) NJET=3 + IF(PARJ(154).GT.RNJ) NJET=4 + ENDIF + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYX3JT(NJET,CUT,KFL,ECM,X1,X2) + +C...Purpose: to select the kinematical variables of three-jet events. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /LYDAT1/ + DIMENSION ZHUP(5,12) + +C...Coefficients of Zhu second order parametrization. + DATA ((ZHUP(IC1,IC2),IC2=1,12),IC1=1,5)/ + & 18.29, 89.56, 4.541, -52.09, -109.8, 24.90, + & 11.63, 3.683, 17.50, 0.002440, -1.362, -0.3537, + & 11.42, 6.299, -22.55, -8.915, 59.25, -5.855, + & -32.85, -1.054, -16.90, 0.006489, -0.8156, 0.01095, + & 7.847, -3.964, -35.83, 1.178, 29.39, 0.2806, + & 47.82, -12.36, -56.72, 0.04054, -0.4365, 0.6062, + & 5.441, -56.89, -50.27, 15.13, 114.3, -18.19, + & 97.05, -1.890, -139.9, 0.08153, -0.4984, 0.9439, + & -17.65, 51.44, -58.32, 70.95, -255.7, -78.99, + & 476.9, 29.65, -239.3, 0.4745, -1.174, 6.081/ + +C...Dilogarithm of x for x<0.5 (x>0.5 obtained by analytic trick). + DILOG(X)=X+X**2/4.+X**3/9.+X**4/16.+X**5/25.+X**6/36.+X**7/49. + +C...Event type. Mass effect factors and other common constants. + MSTJ(120)=2 + MSTJ(121)=0 + PMQ=UYMASS(KFL) + QME=(2.*PMQ/ECM)**2 + IF(MSTJ(109).NE.1) THEN + CUTL=LOG(CUT) + CUTD=LOG(1./CUT-2.) + IF(MSTJ(109).EQ.0) THEN + CF=4./3. + CN=3. + TR=2. + WTMX=MIN(20.,37.-6.*CUTD) + IF(MSTJ(110).EQ.2) WTMX=2.*(7.5+80.*CUT) + ELSE + CF=1. + CN=0. + TR=12. + WTMX=0. + ENDIF + +C...Alpha_strong and effects of optimized Q^2 scale. Maximum weight. + ALS2PI=PARU(118)/PARU(2) + WTOPT=0. + IF(MSTJ(111).EQ.1) WTOPT=(33.-2.*MSTU(112))/6.*LOG(PARJ(169))* + & ALS2PI + WTMAX=MAX(0.,1.+WTOPT+ALS2PI*WTMX) + +C...Choose three-jet events in allowed region. + 100 NJET=3 + 110 Y13L=CUTL+CUTD*RLY(0) + Y23L=CUTL+CUTD*RLY(0) + Y13=EXP(Y13L) + Y23=EXP(Y23L) + Y12=1.-Y13-Y23 + IF(Y12.LE.CUT) GOTO 110 + IF(Y13**2+Y23**2+2.*Y12.LE.2.*RLY(0)) GOTO 110 + +C...Second order corrections. + IF(MSTJ(101).EQ.2.AND.MSTJ(110).LE.1) THEN + Y12L=LOG(Y12) + Y13M=LOG(1.-Y13) + Y23M=LOG(1.-Y23) + Y12M=LOG(1.-Y12) + IF(Y13.LE.0.5) Y13I=DILOG(Y13) + IF(Y13.GE.0.5) Y13I=1.644934-Y13L*Y13M-DILOG(1.-Y13) + IF(Y23.LE.0.5) Y23I=DILOG(Y23) + IF(Y23.GE.0.5) Y23I=1.644934-Y23L*Y23M-DILOG(1.-Y23) + IF(Y12.LE.0.5) Y12I=DILOG(Y12) + IF(Y12.GE.0.5) Y12I=1.644934-Y12L*Y12M-DILOG(1.-Y12) + WT1=(Y13**2+Y23**2+2.*Y12)/(Y13*Y23) + WT2=CF*(-2.*(CUTL-Y12L)**2-3.*CUTL-1.+3.289868+ + & 2.*(2.*CUTL-Y12L)*CUT/Y12)+ + & CN*((CUTL-Y12L)**2-(CUTL-Y13L)**2-(CUTL-Y23L)**2-11.*CUTL/6.+ + & 67./18.+1.644934-(2.*CUTL-Y12L)*CUT/Y12+(2.*CUTL-Y13L)* + & CUT/Y13+(2.*CUTL-Y23L)*CUT/Y23)+ + & TR*(2.*CUTL/3.-10./9.)+ + & CF*(Y12/(Y12+Y13)+Y12/(Y12+Y23)+(Y12+Y23)/Y13+(Y12+Y13)/Y23+ + & Y13L*(4.*Y12**2+2.*Y12*Y13+4.*Y12*Y23+Y13*Y23)/(Y12+Y23)**2+ + & Y23L*(4.*Y12**2+2.*Y12*Y23+4.*Y12*Y13+Y13*Y23)/(Y12+Y13)**2)/ + & WT1+ + & CN*(Y13L*Y13/(Y12+Y23)+Y23L*Y23/(Y12+Y13))/WT1+ + & (CN-2.*CF)*((Y12**2+(Y12+Y13)**2)*(Y12L*Y23L-Y12L*Y12M-Y23L* + & Y23M+1.644934-Y12I-Y23I)/(Y13*Y23)+(Y12**2+(Y12+Y23)**2)* + & (Y12L*Y13L-Y12L*Y12M-Y13L*Y13M+1.644934-Y12I-Y13I)/ + & (Y13*Y23)+(Y13**2+Y23**2)/(Y13*Y23*(Y13+Y23))- + & 2.*Y12L*Y12**2/(Y13+Y23)**2-4.*Y12L*Y12/(Y13+Y23))/WT1- + & CN*(Y13L*Y23L-Y13L*Y13M-Y23L*Y23M+1.644934-Y13I-Y23I) + IF(1.+WTOPT+ALS2PI*WT2.LE.0.) MSTJ(121)=1 + IF(1.+WTOPT+ALS2PI*WT2.LE.WTMAX*RLY(0)) GOTO 110 + PARJ(156)=(WTOPT+ALS2PI*WT2)/(1.+WTOPT+ALS2PI*WT2) + + ELSEIF(MSTJ(101).EQ.2.AND.MSTJ(110).EQ.2) THEN +C...Second order corrections; Zhu parametrization of ERT. + ZX=(Y23-Y13)**2 + ZY=1.-Y12 + IZA=0 + DO 120 IY=1,5 + IF(ABS(CUT-0.01*IY).LT.0.0001) IZA=IY + 120 CONTINUE + IF(IZA.NE.0) THEN + IZ=IZA + WT2=ZHUP(IZ,1)+ZHUP(IZ,2)*ZX+ZHUP(IZ,3)*ZX**2+(ZHUP(IZ,4)+ + & ZHUP(IZ,5)*ZX)*ZY+(ZHUP(IZ,6)+ZHUP(IZ,7)*ZX)*ZY**2+ + & (ZHUP(IZ,8)+ZHUP(IZ,9)*ZX)*ZY**3+ZHUP(IZ,10)/(ZX-ZY**2)+ + & ZHUP(IZ,11)/(1.-ZY)+ZHUP(IZ,12)/ZY + ELSE + IZ=100.*CUT + WTL=ZHUP(IZ,1)+ZHUP(IZ,2)*ZX+ZHUP(IZ,3)*ZX**2+(ZHUP(IZ,4)+ + & ZHUP(IZ,5)*ZX)*ZY+(ZHUP(IZ,6)+ZHUP(IZ,7)*ZX)*ZY**2+ + & (ZHUP(IZ,8)+ZHUP(IZ,9)*ZX)*ZY**3+ZHUP(IZ,10)/(ZX-ZY**2)+ + & ZHUP(IZ,11)/(1.-ZY)+ZHUP(IZ,12)/ZY + IZ=IZ+1 + WTU=ZHUP(IZ,1)+ZHUP(IZ,2)*ZX+ZHUP(IZ,3)*ZX**2+(ZHUP(IZ,4)+ + & ZHUP(IZ,5)*ZX)*ZY+(ZHUP(IZ,6)+ZHUP(IZ,7)*ZX)*ZY**2+ + & (ZHUP(IZ,8)+ZHUP(IZ,9)*ZX)*ZY**3+ZHUP(IZ,10)/(ZX-ZY**2)+ + & ZHUP(IZ,11)/(1.-ZY)+ZHUP(IZ,12)/ZY + WT2=WTL+(WTU-WTL)*(100.*CUT+1.-IZ) + ENDIF + IF(1.+WTOPT+2.*ALS2PI*WT2.LE.0.) MSTJ(121)=1 + IF(1.+WTOPT+2.*ALS2PI*WT2.LE.WTMAX*RLY(0)) GOTO 110 + PARJ(156)=(WTOPT+2.*ALS2PI*WT2)/(1.+WTOPT+2.*ALS2PI*WT2) + ENDIF + +C...Impose mass cuts (gives two jets). For fixed jet number new try. + X1=1.-Y23 + X2=1.-Y13 + X3=1.-Y12 + IF(4.*Y23*Y13*Y12/X3**2.LE.QME) NJET=2 + IF(MOD(MSTJ(103),4).GE.2.AND.IABS(MSTJ(101)).LE.1.AND.QME*X3+ + & 0.5*QME**2+(0.5*QME+0.25*QME**2)*((1.-X2)/(1.-X1)+ + & (1.-X1)/(1.-X2)).GT.(X1**2+X2**2)*RLY(0)) NJET=2 + IF(MSTJ(101).EQ.-1.AND.NJET.EQ.2) GOTO 100 + +C...Scalar gluon model (first order only, no mass effects). + ELSE + 130 NJET=3 + 140 X3=SQRT(4.*CUT**2+RLY(0)*((1.-CUT)**2-4.*CUT**2)) + IF(LOG((X3-CUT)/CUT).LE.RLY(0)*LOG((1.-2.*CUT)/CUT)) GOTO 140 + YD=SIGN(2.*CUT*((X3-CUT)/CUT)**RLY(0)-X3,RLY(0)-0.5) + X1=1.-0.5*(X3+YD) + X2=1.-0.5*(X3-YD) + IF(4.*(1.-X1)*(1.-X2)*(1.-X3)/X3**2.LE.QME) NJET=2 + IF(MSTJ(102).GE.2) THEN + IF(X3**2-2.*(1.+X3)*(1.-X1)*(1.-X2)*PARJ(171).LT. + & X3**2*RLY(0)) NJET=2 + ENDIF + IF(MSTJ(101).EQ.-1.AND.NJET.EQ.2) GOTO 130 + ENDIF + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYX4JT(NJET,CUT,KFL,ECM,KFLN,X1,X2,X4,X12,X14) + +C...Purpose: to select the kinematical variables of four-jet events. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /LYDAT1/ + DIMENSION WTA(4),WTB(4),WTC(4),WTD(4),WTE(4) + +C...Common constants. Colour factors for QCD and Abelian gluon theory. + PMQ=UYMASS(KFL) + QME=(2.*PMQ/ECM)**2 + CT=LOG(1./CUT-5.) + IF(MSTJ(109).EQ.0) THEN + CF=4./3. + CN=3. + TR=2.5 + ELSE + CF=1. + CN=0. + TR=15. + ENDIF + +C...Choice of process (qqbargg or qqbarqqbar). + 100 NJET=4 + IT=1 + IF(PARJ(155).GT.RLY(0)) IT=2 + IF(MSTJ(101).LE.-3) IT=-MSTJ(101)-2 + IF(IT.EQ.1) WTMX=0.7/CUT**2 + IF(IT.EQ.1.AND.MSTJ(109).EQ.2) WTMX=0.6/CUT**2 + IF(IT.EQ.2) WTMX=0.1125*CF*TR/CUT**2 + ID=1 + +C...Sample the five kinematical variables (for qqgg preweighted in y34). + 110 Y134=3.*CUT+(1.-6.*CUT)*RLY(0) + Y234=3.*CUT+(1.-6.*CUT)*RLY(0) + IF(IT.EQ.1) Y34=(1.-5.*CUT)*EXP(-CT*RLY(0)) + IF(IT.EQ.2) Y34=CUT+(1.-6.*CUT)*RLY(0) + IF(Y34.LE.Y134+Y234-1..OR.Y34.GE.Y134*Y234) GOTO 110 + VT=RLY(0) + CP=COS(PARU(1)*RLY(0)) + Y14=(Y134-Y34)*VT + Y13=Y134-Y14-Y34 + VB=Y34*(1.-Y134-Y234+Y34)/((Y134-Y34)*(Y234-Y34)) + Y24=0.5*(Y234-Y34)*(1.-4.*SQRT(MAX(0.,VT*(1.-VT)*VB*(1.-VB)))* + &CP-(1.-2.*VT)*(1.-2.*VB)) + Y23=Y234-Y34-Y24 + Y12=1.-Y134-Y23-Y24 + IF(MIN(Y12,Y13,Y14,Y23,Y24).LE.CUT) GOTO 110 + Y123=Y12+Y13+Y23 + Y124=Y12+Y14+Y24 + +C...Calculate matrix elements for qqgg or qqqq process. + IC=0 + WTTOT=0. + 120 IC=IC+1 + IF(IT.EQ.1) THEN + WTA(IC)=(Y12*Y34**2-Y13*Y24*Y34+Y14*Y23*Y34+3.*Y12*Y23*Y34+ + & 3.*Y12*Y14*Y34+4.*Y12**2*Y34-Y13*Y23*Y24+2.*Y12*Y23*Y24- + & Y13*Y14*Y24-2.*Y12*Y13*Y24+2.*Y12**2*Y24+Y14*Y23**2+2.*Y12* + & Y23**2+Y14**2*Y23+4.*Y12*Y14*Y23+4.*Y12**2*Y23+2.*Y12*Y14**2+ + & 2.*Y12*Y13*Y14+4.*Y12**2*Y14+2.*Y12**2*Y13+2.*Y12**3)/(2.*Y13* + & Y134*Y234*Y24)+(Y24*Y34+Y12*Y34+Y13*Y24-Y14*Y23+Y12*Y13)/(Y13* + & Y134**2)+2.*Y23*(1.-Y13)/(Y13*Y134*Y24)+Y34/(2.*Y13*Y24) + WTB(IC)=(Y12*Y24*Y34+Y12*Y14*Y34-Y13*Y24**2+Y13*Y14*Y24+2.*Y12* + & Y14*Y24)/(Y13*Y134*Y23*Y14)+Y12*(1.+Y34)*Y124/(Y134*Y234*Y14* + & Y24)-(2.*Y13*Y24+Y14**2+Y13*Y23+2.*Y12*Y13)/(Y13*Y134*Y14)+ + & Y12*Y123*Y124/(2.*Y13*Y14*Y23*Y24) + WTC(IC)=-(5.*Y12*Y34**2+2.*Y12*Y24*Y34+2.*Y12*Y23*Y34+2.*Y12* + & Y14*Y34+2.*Y12*Y13*Y34+4.*Y12**2*Y34-Y13*Y24**2+Y14*Y23*Y24+ + & Y13*Y23*Y24+Y13*Y14*Y24-Y12*Y14*Y24-Y13**2*Y24-3.*Y12*Y13*Y24- + & Y14*Y23**2-Y14**2*Y23+Y13*Y14*Y23-3.*Y12*Y14*Y23-Y12*Y13*Y23)/ + & (4.*Y134*Y234*Y34**2)+(3.*Y12*Y34**2-3.*Y13*Y24*Y34+3.*Y12*Y24* + & Y34+3.*Y14*Y23*Y34-Y13*Y24**2-Y12*Y23*Y34+6.*Y12*Y14*Y34+2.*Y12* + & Y13*Y34-2.*Y12**2*Y34+Y14*Y23*Y24-3.*Y13*Y23*Y24-2.*Y13*Y14* + & Y24+4.*Y12*Y14*Y24+2.*Y12*Y13*Y24+3.*Y14*Y23**2+2.*Y14**2*Y23+ + & 2.*Y14**2*Y12+2.*Y12**2*Y14+6.*Y12*Y14*Y23-2.*Y12*Y13**2- + & 2.*Y12**2*Y13)/(4.*Y13*Y134*Y234*Y34) + WTC(IC)=WTC(IC)+(2.*Y12*Y34**2-2.*Y13*Y24*Y34+Y12*Y24*Y34+ + & 4.*Y13*Y23*Y34+4.*Y12*Y14*Y34+2.*Y12*Y13*Y34+2.*Y12**2*Y34- + & Y13*Y24**2+3.*Y14*Y23*Y24+4.*Y13*Y23*Y24-2.*Y13*Y14*Y24+ + & 4.*Y12*Y14*Y24+2.*Y12*Y13*Y24+2.*Y14*Y23**2+4.*Y13*Y23**2+ + & 2.*Y13*Y14*Y23+2.*Y12*Y14*Y23+4.*Y12*Y13*Y23+2.*Y12*Y14**2+4.* + & Y12**2*Y13+4.*Y12*Y13*Y14+2.*Y12**2*Y14)/(4.*Y13*Y134*Y24*Y34)- + & (Y12*Y34**2-2.*Y14*Y24*Y34-2.*Y13*Y24*Y34-Y14*Y23*Y34+Y13*Y23* + & Y34+Y12*Y14*Y34+2.*Y12*Y13*Y34-2.*Y14**2*Y24-4.*Y13*Y14*Y24- + & 4.*Y13**2*Y24-Y14**2*Y23-Y13**2*Y23+Y12*Y13*Y14-Y12*Y13**2)/ + & (2.*Y13*Y34*Y134**2)+(Y12*Y34**2-4.*Y14*Y24*Y34-2.*Y13*Y24*Y34- + & 2.*Y14*Y23*Y34-4.*Y13*Y23*Y34-4.*Y12*Y14*Y34-4.*Y12*Y13*Y34- + & 2.*Y13*Y14*Y24+2.*Y13**2*Y24+2.*Y14**2*Y23-2.*Y13*Y14*Y23- + & Y12*Y14**2-6.*Y12*Y13*Y14-Y12*Y13**2)/(4.*Y34**2*Y134**2) + WTTOT=WTTOT+Y34*CF*(CF*WTA(IC)+(CF-0.5*CN)*WTB(IC)+CN*WTC(IC))/ + & 8. + ELSE + WTD(IC)=(Y13*Y23*Y34+Y12*Y23*Y34-Y12**2*Y34+Y13*Y23*Y24+2.*Y12* + & Y23*Y24-Y14*Y23**2+Y12*Y13*Y24+Y12*Y14*Y23+Y12*Y13*Y14)/(Y13**2* + & Y123**2)-(Y12*Y34**2-Y13*Y24*Y34+Y12*Y24*Y34-Y14*Y23*Y34-Y12* + & Y23*Y34-Y13*Y24**2+Y14*Y23*Y24-Y13*Y23*Y24-Y13**2*Y24+Y14* + & Y23**2)/(Y13**2*Y123*Y134)+(Y13*Y14*Y12+Y34*Y14*Y12-Y34**2*Y12+ + & Y13*Y14*Y24+2.*Y34*Y14*Y24-Y23*Y14**2+Y34*Y13*Y24+Y34*Y23*Y14+ + & Y34*Y13*Y23)/(Y13**2*Y134**2)-(Y34*Y12**2-Y13*Y24*Y12+Y34*Y24* + & Y12-Y23*Y14*Y12-Y34*Y14*Y12-Y13*Y24**2+Y23*Y14*Y24-Y13*Y14*Y24- + & Y13**2*Y24+Y23*Y14**2)/(Y13**2*Y134*Y123) + WTE(IC)=(Y12*Y34*(Y23-Y24+Y14+Y13)+Y13*Y24**2-Y14*Y23*Y24+Y13* + & Y23*Y24+Y13*Y14*Y24+Y13**2*Y24-Y14*Y23*(Y14+Y23+Y13))/(Y13*Y23* + & Y123*Y134)-Y12*(Y12*Y34-Y23*Y24-Y13*Y24-Y14*Y23-Y14*Y13)/(Y13* + & Y23*Y123**2)-(Y14+Y13)*(Y24+Y23)*Y34/(Y13*Y23*Y134*Y234)+ + & (Y12*Y34*(Y14-Y24+Y23+Y13)+Y13*Y24**2-Y23*Y14*Y24+Y13*Y14*Y24+ + & Y13*Y23*Y24+Y13**2*Y24-Y23*Y14*(Y14+Y23+Y13))/(Y13*Y14*Y134* + & Y123)-Y34*(Y34*Y12-Y14*Y24-Y13*Y24-Y23*Y14-Y23*Y13)/(Y13*Y14* + & Y134**2)-(Y23+Y13)*(Y24+Y14)*Y12/(Y13*Y14*Y123*Y124) + WTTOT=WTTOT+CF*(TR*WTD(IC)+(CF-0.5*CN)*WTE(IC))/16. + ENDIF + +C...Permutations of momenta in matrix element. Weighting. + 130 IF(IC.EQ.1.OR.IC.EQ.3.OR.ID.EQ.2.OR.ID.EQ.3) THEN + YSAV=Y13 + Y13=Y14 + Y14=YSAV + YSAV=Y23 + Y23=Y24 + Y24=YSAV + YSAV=Y123 + Y123=Y124 + Y124=YSAV + ENDIF + IF(IC.EQ.2.OR.IC.EQ.4.OR.ID.EQ.3.OR.ID.EQ.4) THEN + YSAV=Y13 + Y13=Y23 + Y23=YSAV + YSAV=Y14 + Y14=Y24 + Y24=YSAV + YSAV=Y134 + Y134=Y234 + Y234=YSAV + ENDIF + IF(IC.LE.3) GOTO 120 + IF(ID.EQ.1.AND.WTTOT.LT.RLY(0)*WTMX) GOTO 110 + IC=5 + +C...qqgg events: string configuration and event type. + IF(IT.EQ.1) THEN + IF(MSTJ(109).EQ.0.AND.ID.EQ.1) THEN + PARJ(156)=Y34*(2.*(WTA(1)+WTA(2)+WTA(3)+WTA(4))+4.*(WTC(1)+ + & WTC(2)+WTC(3)+WTC(4)))/(9.*WTTOT) + IF(WTA(2)+WTA(4)+2.*(WTC(2)+WTC(4)).GT.RLY(0)*(WTA(1)+WTA(2)+ + & WTA(3)+WTA(4)+2.*(WTC(1)+WTC(2)+WTC(3)+WTC(4)))) ID=2 + IF(ID.EQ.2) GOTO 130 + ELSEIF(MSTJ(109).EQ.2.AND.ID.EQ.1) THEN + PARJ(156)=Y34*(WTA(1)+WTA(2)+WTA(3)+WTA(4))/(8.*WTTOT) + IF(WTA(2)+WTA(4).GT.RLY(0)*(WTA(1)+WTA(2)+WTA(3)+WTA(4))) ID=2 + IF(ID.EQ.2) GOTO 130 + ENDIF + MSTJ(120)=3 + IF(MSTJ(109).EQ.0.AND.0.5*Y34*(WTC(1)+WTC(2)+WTC(3)+WTC(4)).GT. + & RLY(0)*WTTOT) MSTJ(120)=4 + KFLN=21 + +C...Mass cuts. Kinematical variables out. + IF(Y12.LE.CUT+QME) NJET=2 + IF(NJET.EQ.2) GOTO 150 + Q12=0.5*(1.-SQRT(1.-QME/Y12)) + X1=1.-(1.-Q12)*Y234-Q12*Y134 + X4=1.-(1.-Q12)*Y134-Q12*Y234 + X2=1.-Y124 + X12=(1.-Q12)*Y13+Q12*Y23 + X14=Y12-0.5*QME + IF(Y134*Y234/((1.-X1)*(1.-X4)).LE.RLY(0)) NJET=2 + +C...qqbarqqbar events: string configuration, choose new flavour. + ELSE + IF(ID.EQ.1) THEN + WTR=RLY(0)*(WTD(1)+WTD(2)+WTD(3)+WTD(4)) + IF(WTR.LT.WTD(2)+WTD(3)+WTD(4)) ID=2 + IF(WTR.LT.WTD(3)+WTD(4)) ID=3 + IF(WTR.LT.WTD(4)) ID=4 + IF(ID.GE.2) GOTO 130 + ENDIF + MSTJ(120)=5 + PARJ(156)=CF*TR*(WTD(1)+WTD(2)+WTD(3)+WTD(4))/(16.*WTTOT) + 140 KFLN=1+INT(5.*RLY(0)) + IF(KFLN.NE.KFL.AND.0.2*PARJ(156).LE.RLY(0)) GOTO 140 + IF(KFLN.EQ.KFL.AND.1.-0.8*PARJ(156).LE.RLY(0)) GOTO 140 + IF(KFLN.GT.MSTJ(104)) NJET=2 + PMQN=UYMASS(KFLN) + QMEN=(2.*PMQN/ECM)**2 + +C...Mass cuts. Kinematical variables out. + IF(Y24.LE.CUT+QME.OR.Y13.LE.1.1*QMEN) NJET=2 + IF(NJET.EQ.2) GOTO 150 + Q24=0.5*(1.-SQRT(1.-QME/Y24)) + Q13=0.5*(1.-SQRT(1.-QMEN/Y13)) + X1=1.-(1.-Q24)*Y123-Q24*Y134 + X4=1.-(1.-Q24)*Y134-Q24*Y123 + X2=1.-(1.-Q13)*Y234-Q13*Y124 + X12=(1.-Q24)*((1.-Q13)*Y14+Q13*Y34)+Q24*((1.-Q13)*Y12+Q13*Y23) + X14=Y24-0.5*QME + X34=(1.-Q24)*((1.-Q13)*Y23+Q13*Y12)+Q24*((1.-Q13)*Y34+Q13*Y14) + IF(PMQ**2+PMQN**2+MIN(X12,X34)*ECM**2.LE. + & (PARJ(127)+PMQ+PMQN)**2) NJET=2 + IF(Y123*Y134/((1.-X1)*(1.-X4)).LE.RLY(0)) NJET=2 + ENDIF + 150 IF(MSTJ(101).LE.-2.AND.NJET.EQ.2) GOTO 100 + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYXDIF(NC,NJET,KFL,ECM,CHI,THE,PHI) + +C...Purpose: to give the angular orientation of events. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + +C...Charge. Factors depending on polarization for QED case. + QF=KCHG(KFL,1)/3. + POLL=1.-PARJ(131)*PARJ(132) + POLD=PARJ(132)-PARJ(131) + IF(MSTJ(102).LE.1.OR.MSTJ(109).EQ.1) THEN + HF1=POLL + HF2=0. + HF3=PARJ(133)**2 + HF4=0. + +C...Factors depending on flavour, energy and polarization for QFD case. + ELSE + SFF=1./(16.*PARU(102)*(1.-PARU(102))) + SFW=ECM**4/((ECM**2-PARJ(123)**2)**2+(PARJ(123)*PARJ(124))**2) + SFI=SFW*(1.-(PARJ(123)/ECM)**2) + AE=-1. + VE=4.*PARU(102)-1. + AF=SIGN(1.,QF) + VF=AF-4.*QF*PARU(102) + HF1=QF**2*POLL-2.*QF*VF*SFI*SFF*(VE*POLL-AE*POLD)+ + & (VF**2+AF**2)*SFW*SFF**2*((VE**2+AE**2)*POLL-2.*VE*AE*POLD) + HF2=-2.*QF*AF*SFI*SFF*(AE*POLL-VE*POLD)+2.*VF*AF*SFW*SFF**2* + & (2.*VE*AE*POLL-(VE**2+AE**2)*POLD) + HF3=PARJ(133)**2*(QF**2-2.*QF*VF*SFI*SFF*VE+(VF**2+AF**2)* + & SFW*SFF**2*(VE**2-AE**2)) + HF4=-PARJ(133)**2*2.*QF*VF*SFW*(PARJ(123)*PARJ(124)/ECM**2)* + & SFF*AE + ENDIF + +C...Mass factor. Differential cross-sections for two-jet events. + SQ2=SQRT(2.) + QME=0. + IF(MSTJ(103).GE.4.AND.IABS(MSTJ(101)).LE.1.AND.MSTJ(102).LE.1.AND. + &MSTJ(109).NE.1) QME=(2.*UYMASS(KFL)/ECM)**2 + IF(NJET.EQ.2) THEN + SIGU=4.*SQRT(1.-QME) + SIGL=2.*QME*SQRT(1.-QME) + SIGT=0. + SIGI=0. + SIGA=0. + SIGP=4. + +C...Kinematical variables. Reduce four-jet event to three-jet one. + ELSE + IF(NJET.EQ.3) THEN + X1=2.*P(NC+1,4)/ECM + X2=2.*P(NC+3,4)/ECM + ELSE + ECMR=P(NC+1,4)+P(NC+4,4)+SQRT((P(NC+2,1)+P(NC+3,1))**2+ + & (P(NC+2,2)+P(NC+3,2))**2+(P(NC+2,3)+P(NC+3,3))**2) + X1=2.*P(NC+1,4)/ECMR + X2=2.*P(NC+4,4)/ECMR + ENDIF + +C...Differential cross-sections for three-jet (or reduced four-jet). + XQ=(1.-X1)/(1.-X2) + CT12=(X1*X2-2.*X1-2.*X2+2.+QME)/SQRT((X1**2-QME)*(X2**2-QME)) + ST12=SQRT(1.-CT12**2) + IF(MSTJ(109).NE.1) THEN + SIGU=2.*X1**2+X2**2*(1.+CT12**2)-QME*(3.+CT12**2-X1-X2)- + & QME*X1/XQ+0.5*QME*((X2**2-QME)*ST12**2-2.*X2)*XQ + SIGL=(X2*ST12)**2-QME*(3.-CT12**2-2.5*(X1+X2)+X1*X2+QME)+ + & 0.5*QME*(X1**2-X1-QME)/XQ+0.5*QME*((X2**2-QME)*CT12**2-X2)*XQ + SIGT=0.5*(X2**2-QME-0.5*QME*(X2**2-QME)/XQ)*ST12**2 + SIGI=((1.-0.5*QME*XQ)*(X2**2-QME)*ST12*CT12+QME*(1.-X1-X2+ + & 0.5*X1*X2+0.5*QME)*ST12/CT12)/SQ2 + SIGA=X2**2*ST12/SQ2 + SIGP=2.*(X1**2-X2**2*CT12) + +C...Differential cross-sect for scalar gluons (no mass effects). + ELSE + X3=2.-X1-X2 + XT=X2*ST12 + CT13=SQRT(MAX(0.,1.-(XT/X3)**2)) + SIGU=(1.-PARJ(171))*(X3**2-0.5*XT**2)+ + & PARJ(171)*(X3**2-0.5*XT**2-4.*(1.-X1)*(1.-X2)**2/X1) + SIGL=(1.-PARJ(171))*0.5*XT**2+ + & PARJ(171)*0.5*(1.-X1)**2*XT**2 + SIGT=(1.-PARJ(171))*0.25*XT**2+ + & PARJ(171)*0.25*XT**2*(1.-2.*X1) + SIGI=-(0.5/SQ2)*((1.-PARJ(171))*XT*X3*CT13+ + & PARJ(171)*XT*((1.-2.*X1)*X3*CT13-X1*(X1-X2))) + SIGA=(0.25/SQ2)*XT*(2.*(1.-X1)-X1*X3) + SIGP=X3**2-2.*(1.-X1)*(1.-X2)/X1 + ENDIF + ENDIF + +C...Upper bounds for differential cross-section. + HF1A=ABS(HF1) + HF2A=ABS(HF2) + HF3A=ABS(HF3) + HF4A=ABS(HF4) + SIGMAX=(2.*HF1A+HF3A+HF4A)*ABS(SIGU)+2.*(HF1A+HF3A+HF4A)* + &ABS(SIGL)+2.*(HF1A+2.*HF3A+2.*HF4A)*ABS(SIGT)+2.*SQ2* + &(HF1A+2.*HF3A+2.*HF4A)*ABS(SIGI)+4.*SQ2*HF2A*ABS(SIGA)+ + &2.*HF2A*ABS(SIGP) + +C...Generate angular orientation according to differential cross-sect. + 100 CHI=PARU(2)*RLY(0) + CTHE=2.*RLY(0)-1. + PHI=PARU(2)*RLY(0) + CCHI=COS(CHI) + SCHI=SIN(CHI) + C2CHI=COS(2.*CHI) + S2CHI=SIN(2.*CHI) + THE=ACOS(CTHE) + STHE=SIN(THE) + C2PHI=COS(2.*(PHI-PARJ(134))) + S2PHI=SIN(2.*(PHI-PARJ(134))) + SIG=((1.+CTHE**2)*HF1+STHE**2*(C2PHI*HF3-S2PHI*HF4))*SIGU+ + &2.*(STHE**2*HF1-STHE**2*(C2PHI*HF3-S2PHI*HF4))*SIGL+ + &2.*(STHE**2*C2CHI*HF1+((1.+CTHE**2)*C2CHI*C2PHI-2.*CTHE*S2CHI* + &S2PHI)*HF3-((1.+CTHE**2)*C2CHI*S2PHI+2.*CTHE*S2CHI*C2PHI)*HF4)* + &SIGT-2.*SQ2*(2.*STHE*CTHE*CCHI*HF1-2.*STHE*(CTHE*CCHI*C2PHI- + &SCHI*S2PHI)*HF3+2.*STHE*(CTHE*CCHI*S2PHI+SCHI*C2PHI)*HF4)*SIGI+ + &4.*SQ2*STHE*CCHI*HF2*SIGA+2.*CTHE*HF2*SIGP + IF(SIG.LT.SIGMAX*RLY(0)) GOTO 100 + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYONIA(KFL,ECM) + +C...Purpose: to generate Upsilon and toponium decays into three +C...gluons or two gluons and a photon. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + +C...Printout. Check input parameters. + IF(MSTU(12).GE.1) CALL LYLIST(0) + IF(KFL.LT.0.OR.KFL.GT.8) THEN + CALL LYERRM(16,'(LYONIA:) called with unknown flavour code') + IF(MSTU(21).GE.1) RETURN + ENDIF + IF(ECM.LT.PARJ(127)+2.02*PARF(101)) THEN + CALL LYERRM(16,'(LYONIA:) called with too small CM energy') + IF(MSTU(21).GE.1) RETURN + ENDIF + +C...Initial e+e- and onium state (optional). + NC=0 + IF(MSTJ(115).GE.2) THEN + NC=NC+2 + CALL LY1ENT(NC-1,11,0.5*ECM,0.,0.) + K(NC-1,1)=21 + CALL LY1ENT(NC,-11,0.5*ECM,PARU(1),0.) + K(NC,1)=21 + ENDIF + KFLC=IABS(KFL) + IF(MSTJ(115).GE.3.AND.KFLC.GE.5) THEN + NC=NC+1 + KF=110*KFLC+3 + MSTU10=MSTU(10) + MSTU(10)=1 + P(NC,5)=ECM + CALL LY1ENT(NC,KF,ECM,0.,0.) + K(NC,1)=21 + K(NC,3)=1 + MSTU(10)=MSTU10 + ENDIF + +C...Choose x1 and x2 according to matrix element. + NTRY=0 + 100 X1=RLY(0) + X2=RLY(0) + X3=2.-X1-X2 + IF(X3.GE.1..OR.((1.-X1)/(X2*X3))**2+((1.-X2)/(X1*X3))**2+ + &((1.-X3)/(X1*X2))**2.LE.2.*RLY(0)) GOTO 100 + NTRY=NTRY+1 + NJET=3 + IF(MSTJ(101).LE.4) CALL LY3ENT(NC+1,21,21,21,ECM,X1,X3) + IF(MSTJ(101).GE.5) CALL LY3ENT(-(NC+1),21,21,21,ECM,X1,X3) + +C...Photon-gluon-gluon events. Small system modifications. Jet origin. + MSTU(111)=MSTJ(108) + IF(MSTJ(108).EQ.2.AND.(MSTJ(101).EQ.0.OR.MSTJ(101).EQ.1)) + &MSTU(111)=1 + PARU(112)=PARJ(121) + IF(MSTU(111).EQ.2) PARU(112)=PARJ(122) + QF=0. + IF(KFLC.NE.0) QF=KCHG(KFLC,1)/3. + RGAM=7.2*QF**2*PARU(101)/UYALPS(ECM**2) + MK=0 + ECMC=ECM + IF(RLY(0).GT.RGAM/(1.+RGAM)) THEN + IF(1.-MAX(X1,X2,X3).LE.MAX((PARJ(126)/ECM)**2,PARJ(125))) + & NJET=2 + IF(NJET.EQ.2.AND.MSTJ(101).LE.4) CALL LY2ENT(NC+1,21,21,ECM) + IF(NJET.EQ.2.AND.MSTJ(101).GE.5) CALL LY2ENT(-(NC+1),21,21,ECM) + ELSE + MK=1 + ECMC=SQRT(1.-X1)*ECM + IF(ECMC.LT.2.*PARJ(127)) GOTO 100 + K(NC+1,1)=1 + K(NC+1,2)=22 + K(NC+1,4)=0 + K(NC+1,5)=0 + IF(MSTJ(101).GE.5) K(NC+2,4)=MSTU(5)*(NC+3) + IF(MSTJ(101).GE.5) K(NC+2,5)=MSTU(5)*(NC+3) + IF(MSTJ(101).GE.5) K(NC+3,4)=MSTU(5)*(NC+2) + IF(MSTJ(101).GE.5) K(NC+3,5)=MSTU(5)*(NC+2) + NJET=2 + IF(ECMC.LT.4.*PARJ(127)) THEN + MSTU10=MSTU(10) + MSTU(10)=1 + P(NC+2,5)=ECMC + CALL LY1ENT(NC+2,83,0.5*(X2+X3)*ECM,PARU(1),0.) + MSTU(10)=MSTU10 + NJET=0 + ENDIF + ENDIF + DO 110 IP=NC+1,N + K(IP,3)=K(IP,3)+(MSTJ(115)/2)+(KFLC/5)*(MSTJ(115)/3)*(NC-1) + 110 CONTINUE + +C...Differential cross-sections. Upper limit for cross-section. + IF(MSTJ(106).EQ.1) THEN + SQ2=SQRT(2.) + HF1=1.-PARJ(131)*PARJ(132) + HF3=PARJ(133)**2 + CT13=(X1*X3-2.*X1-2.*X3+2.)/(X1*X3) + ST13=SQRT(1.-CT13**2) + SIGL=0.5*X3**2*((1.-X2)**2+(1.-X3)**2)*ST13**2 + SIGU=(X1*(1.-X1))**2+(X2*(1.-X2))**2+(X3*(1.-X3))**2-SIGL + SIGT=0.5*SIGL + SIGI=(SIGL*CT13/ST13+0.5*X1*X3*(1.-X2)**2*ST13)/SQ2 + SIGMAX=(2.*HF1+HF3)*ABS(SIGU)+2.*(HF1+HF3)*ABS(SIGL)+2.*(HF1+ + & 2.*HF3)*ABS(SIGT)+2.*SQ2*(HF1+2.*HF3)*ABS(SIGI) + +C...Angular orientation of event. + 120 CHI=PARU(2)*RLY(0) + CTHE=2.*RLY(0)-1. + PHI=PARU(2)*RLY(0) + CCHI=COS(CHI) + SCHI=SIN(CHI) + C2CHI=COS(2.*CHI) + S2CHI=SIN(2.*CHI) + THE=ACOS(CTHE) + STHE=SIN(THE) + C2PHI=COS(2.*(PHI-PARJ(134))) + S2PHI=SIN(2.*(PHI-PARJ(134))) + SIG=((1.+CTHE**2)*HF1+STHE**2*C2PHI*HF3)*SIGU+2.*(STHE**2*HF1- + & STHE**2*C2PHI*HF3)*SIGL+2.*(STHE**2*C2CHI*HF1+((1.+CTHE**2)* + & C2CHI*C2PHI-2.*CTHE*S2CHI*S2PHI)*HF3)*SIGT-2.*SQ2*(2.*STHE*CTHE* + & CCHI*HF1-2.*STHE*(CTHE*CCHI*C2PHI-SCHI*S2PHI)*HF3)*SIGI + IF(SIG.LT.SIGMAX*RLY(0)) GOTO 120 + CALL LUDBRB(NC+1,N,0.,CHI,0D0,0D0,0D0) + CALL LUDBRB(NC+1,N,THE,PHI,0D0,0D0,0D0) + ENDIF + +C...Generate parton shower. Rearrange along strings and check. + IF(MSTJ(101).GE.5.AND.NJET.GE.2) THEN + CALL LYSHOW(NC+MK+1,-NJET,ECMC) + MSTJ14=MSTJ(14) + IF(MSTJ(105).EQ.-1) MSTJ(14)=-1 + IF(MSTJ(105).GE.0) MSTU(28)=0 + CALL LYPREP(0) + MSTJ(14)=MSTJ14 + IF(MSTJ(105).GE.0.AND.MSTU(28).NE.0) GOTO 100 + ENDIF + +C...Generate fragmentation. Information for LYTABU: + IF(MSTJ(105).EQ.1) CALL LYEXEC + MSTU(161)=110*KFLC+3 + MSTU(162)=0 + + RETURN + END + +C********************************************************************* + + SUBROUTINE LYHEPC(MCONV) + +C...Purpose: to convert JETSET event record contents to or from +C...the standard event record commonblock. +C...Note that HEPEVT is in double precision according to LEP 2 standard. +C...W. H. Bell --- Changed HEPEVT common block to match EvtGen. + PARAMETER (NMXHEP=4000) + COMMON/XHEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), + &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) + REAL*8 PHEP,VHEP + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + SAVE /XHEPEVT/ + SAVE /LYJETS/,/LYDAT1/,/LYDAT2/ + +C...Conversion from JETSET to standard, the easy part. + IF(MCONV.EQ.1) THEN + NEVHEP=0 + IF(N.GT.NMXHEP) CALL LYERRM(8, + & '(LYHEPC:) no more space in /HEPEVT/') + NHEP=MIN(N,NMXHEP) + DO 140 I=1,NHEP + ISTHEP(I)=0 + IF(K(I,1).GE.1.AND.K(I,1).LE.10) ISTHEP(I)=1 + IF(K(I,1).GE.11.AND.K(I,1).LE.20) ISTHEP(I)=2 + IF(K(I,1).GE.21.AND.K(I,1).LE.30) ISTHEP(I)=3 + IF(K(I,1).GE.31.AND.K(I,1).LE.100) ISTHEP(I)=K(I,1) + IDHEP(I)=K(I,2) + JMOHEP(1,I)=K(I,3) + JMOHEP(2,I)=0 + IF(K(I,1).NE.3.AND.K(I,1).NE.13.AND.K(I,1).NE.14) THEN + JDAHEP(1,I)=K(I,4) + JDAHEP(2,I)=K(I,5) + ELSE + JDAHEP(1,I)=0 + JDAHEP(2,I)=0 + ENDIF + DO 100 J=1,5 + PHEP(J,I)=P(I,J) + 100 CONTINUE + DO 110 J=1,4 + VHEP(J,I)=V(I,J) + 110 CONTINUE + +C...Check if new event (from pileup). + IF(I.EQ.1) THEN + INEW=1 + ELSE + IF(K(I,1).EQ.21.AND.K(I-1,1).NE.21) INEW=I + ENDIF + +C...Fill in missing mother information. + IF(I.GE.INEW+2.AND.K(I,1).EQ.21.AND.K(I,3).EQ.0) THEN + IMO1=I-2 + IF(I.GE.INEW+3.AND.K(I-1,1).EQ.21.AND.K(I-1,3).EQ.0) + & IMO1=IMO1-1 + JMOHEP(1,I)=IMO1 + JMOHEP(2,I)=IMO1+1 + ELSEIF(K(I,2).GE.91.AND.K(I,2).LE.93) THEN + I1=K(I,3)-1 + 120 I1=I1+1 + IF(I1.GE.I) CALL LYERRM(8, + & '(LYHEPC:) translation of inconsistent event history') + IF(I1.LT.I.AND.K(I1,1).NE.1.AND.K(I1,1).NE.11) GOTO 120 + KC=LYCOMP(K(I1,2)) + IF(I1.LT.I.AND.KC.EQ.0) GOTO 120 + IF(I1.LT.I.AND.KCHG(KC,2).EQ.0) GOTO 120 + JMOHEP(2,I)=I1 + ELSEIF(K(I,2).EQ.94) THEN + NJET=2 + IF(NHEP.GE.I+3.AND.K(I+3,3).LE.I) NJET=3 + IF(NHEP.GE.I+4.AND.K(I+4,3).LE.I) NJET=4 + JMOHEP(2,I)=MOD(K(I+NJET,4)/MSTU(5),MSTU(5)) + IF(JMOHEP(2,I).EQ.JMOHEP(1,I)) JMOHEP(2,I)= + & MOD(K(I+1,4)/MSTU(5),MSTU(5)) + ENDIF + +C...Fill in missing daughter information. + IF(K(I,2).EQ.94.AND.MSTU(16).NE.2) THEN + DO 130 I1=JDAHEP(1,I),JDAHEP(2,I) + I2=MOD(K(I1,4)/MSTU(5),MSTU(5)) + JDAHEP(1,I2)=I + 130 CONTINUE + ENDIF + IF(K(I,2).GE.91.AND.K(I,2).LE.94) GOTO 140 + I1=JMOHEP(1,I) + IF(I1.LE.0.OR.I1.GT.NHEP) GOTO 140 + IF(K(I1,1).NE.13.AND.K(I1,1).NE.14) GOTO 140 + IF(JDAHEP(1,I1).EQ.0) THEN + JDAHEP(1,I1)=I + ELSE + JDAHEP(2,I1)=I + ENDIF + 140 CONTINUE + DO 150 I=1,NHEP + IF(K(I,1).NE.13.AND.K(I,1).NE.14) GOTO 150 + IF(JDAHEP(2,I).EQ.0) JDAHEP(2,I)=JDAHEP(1,I) + 150 CONTINUE + +C...Conversion from standard to JETSET, the easy part. + ELSE + IF(NHEP.GT.MSTU(4)) CALL LYERRM(8, + & '(LYHEPC:) no more space in /LYJETS/') + N=MIN(NHEP,MSTU(4)) + NKQ=0 + KQSUM=0 + DO 180 I=1,N + K(I,1)=0 + IF(ISTHEP(I).EQ.1) K(I,1)=1 + IF(ISTHEP(I).EQ.2) K(I,1)=11 + IF(ISTHEP(I).EQ.3) K(I,1)=21 + K(I,2)=IDHEP(I) + K(I,3)=JMOHEP(1,I) + K(I,4)=JDAHEP(1,I) + K(I,5)=JDAHEP(2,I) + DO 160 J=1,5 + P(I,J)=PHEP(J,I) + 160 CONTINUE + DO 170 J=1,4 + V(I,J)=VHEP(J,I) + 170 CONTINUE + V(I,5)=0. + IF(ISTHEP(I).EQ.2.AND.PHEP(4,I).GT.PHEP(5,I)) THEN + I1=JDAHEP(1,I) + IF(I1.GT.0.AND.I1.LE.NHEP) V(I,5)=(VHEP(4,I1)-VHEP(4,I))* + & PHEP(5,I)/PHEP(4,I) + ENDIF + +C...Fill in missing information on colour connection in jet systems. + IF(ISTHEP(I).EQ.1) THEN + KC=LYCOMP(K(I,2)) + KQ=0 + IF(KC.NE.0) KQ=KCHG(KC,2)*ISIGN(1,K(I,2)) + IF(KQ.NE.0) NKQ=NKQ+1 + IF(KQ.NE.2) KQSUM=KQSUM+KQ + IF(KQ.NE.0.AND.KQSUM.NE.0) THEN + K(I,1)=2 + ELSEIF(KQ.EQ.2.AND.I.LT.N) THEN + IF(K(I+1,2).EQ.21) K(I,1)=2 + ENDIF + ENDIF + 180 CONTINUE + IF(NKQ.EQ.1.OR.KQSUM.NE.0) CALL LYERRM(8, + & '(LYHEPC:) input parton configuration not colour singlet') + ENDIF + + END + +C********************************************************************* + + SUBROUTINE LYTEST(MTEST) + +C...Purpose: to provide a simple program (disguised as subroutine) to +C...run at installation as a check that the program works as intended. + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /LYJETS/,/LYDAT1/ + DIMENSION PSUM(5),PINI(6),PFIN(6) + +C...Loop over events to be generated. + IF(MTEST.GE.1) CALL LYTABU(20) + NERR=0 + DO 180 IEV=1,600 + +C...Reset parameter values. Switch on some nonstandard features. + MSTJ(1)=1 + MSTJ(3)=0 + MSTJ(11)=1 + MSTJ(42)=2 + MSTJ(43)=4 + MSTJ(44)=2 + PARJ(17)=0.1 + PARJ(22)=1.5 + PARJ(43)=1. + PARJ(54)=-0.05 + MSTJ(101)=5 + MSTJ(104)=5 + MSTJ(105)=0 + MSTJ(107)=1 + IF(IEV.EQ.301.OR.IEV.EQ.351.OR.IEV.EQ.401) MSTJ(116)=3 + +C...Ten events each for some single jets configurations. + IF(IEV.LE.50) THEN + ITY=(IEV+9)/10 + MSTJ(3)=-1 + IF(ITY.EQ.3.OR.ITY.EQ.4) MSTJ(11)=2 + IF(ITY.EQ.1) CALL LY1ENT(1,1,15.,0.,0.) + IF(ITY.EQ.2) CALL LY1ENT(1,3101,15.,0.,0.) + IF(ITY.EQ.3) CALL LY1ENT(1,-2203,15.,0.,0.) + IF(ITY.EQ.4) CALL LY1ENT(1,-4,30.,0.,0.) + IF(ITY.EQ.5) CALL LY1ENT(1,21,15.,0.,0.) + +C...Ten events each for some simple jet systems; string fragmentation. + ELSEIF(IEV.LE.130) THEN + ITY=(IEV-41)/10 + IF(ITY.EQ.1) CALL LY2ENT(1,1,-1,40.) + IF(ITY.EQ.2) CALL LY2ENT(1,4,-4,30.) + IF(ITY.EQ.3) CALL LY2ENT(1,2,2103,100.) + IF(ITY.EQ.4) CALL LY2ENT(1,21,21,40.) + IF(ITY.EQ.5) CALL LY3ENT(1,2101,21,-3203,30.,0.6,0.8) + IF(ITY.EQ.6) CALL LY3ENT(1,5,21,-5,40.,0.9,0.8) + IF(ITY.EQ.7) CALL LY3ENT(1,21,21,21,60.,0.7,0.5) + IF(ITY.EQ.8) CALL LY4ENT(1,2,21,21,-2,40.,0.4,0.64,0.6,0.12,0.2) + +C...Seventy events with independent fragmentation and momentum cons. + ELSEIF(IEV.LE.200) THEN + ITY=1+(IEV-131)/16 + MSTJ(2)=1+MOD(IEV-131,4) + MSTJ(3)=1+MOD((IEV-131)/4,4) + IF(ITY.EQ.1) CALL LY2ENT(1,4,-5,40.) + IF(ITY.EQ.2) CALL LY3ENT(1,3,21,-3,40.,0.9,0.4) + IF(ITY.EQ.3) CALL LY4ENT(1,2,21,21,-2,40.,0.4,0.64,0.6,0.12,0.2) + IF(ITY.GE.4) CALL LY4ENT(1,2,-3,3,-2,40.,0.4,0.64,0.6,0.12,0.2) + +C...A hundred events with random jets (check invariant mass). + ELSEIF(IEV.LE.300) THEN + 100 DO 110 J=1,5 + PSUM(J)=0. + 110 CONTINUE + NJET=2.+6.*RLY(0) + DO 130 I=1,NJET + KFL=21 + IF(I.EQ.1) KFL=INT(1.+4.*RLY(0)) + IF(I.EQ.NJET) KFL=-INT(1.+4.*RLY(0)) + EJET=5.+20.*RLY(0) + THETA=ACOS(2.*RLY(0)-1.) + PHI=6.2832*RLY(0) + IF(I.LT.NJET) CALL LY1ENT(-I,KFL,EJET,THETA,PHI) + IF(I.EQ.NJET) CALL LY1ENT(I,KFL,EJET,THETA,PHI) + IF(I.EQ.1.OR.I.EQ.NJET) MSTJ(93)=1 + IF(I.EQ.1.OR.I.EQ.NJET) PSUM(5)=PSUM(5)+UYMASS(KFL) + DO 120 J=1,4 + PSUM(J)=PSUM(J)+P(I,J) + 120 CONTINUE + 130 CONTINUE + IF(PSUM(4)**2-PSUM(1)**2-PSUM(2)**2-PSUM(3)**2.LT. + & (PSUM(5)+PARJ(32))**2) GOTO 100 + +C...Fifty e+e- continuum events with matrix elements. + ELSEIF(IEV.LE.350) THEN + MSTJ(101)=2 + CALL LYEEVT(0,40.) + +C...Fifty e+e- continuum event with varying shower options. + ELSEIF(IEV.LE.400) THEN + MSTJ(42)=1+MOD(IEV,2) + MSTJ(43)=1+MOD(IEV/2,4) + MSTJ(44)=MOD(IEV/8,3) + CALL LYEEVT(0,90.) + +C...Fifty e+e- continuum events with coherent shower, including top. + ELSEIF(IEV.LE.450) THEN + MSTJ(104)=6 + CALL LYEEVT(0,500.) + +C...Fifty Upsilon decays to ggg or gammagg with coherent shower. + ELSEIF(IEV.LE.500) THEN + CALL LYONIA(5,9.46) + +C...One decay each for some heavy mesons. + ELSEIF(IEV.LE.560) THEN + ITY=IEV-501 + KFLS=2*(ITY/20)+1 + KFLB=8-MOD(ITY/5,4) + KFLC=KFLB-MOD(ITY,5) + CALL LY1ENT(1,100*KFLB+10*KFLC+KFLS,0.,0.,0.) + +C...One decay each for some heavy baryons. + ELSEIF(IEV.LE.600) THEN + ITY=IEV-561 + KFLS=2*(ITY/20)+2 + KFLA=8-MOD(ITY/5,4) + KFLB=KFLA-MOD(ITY,5) + KFLC=MAX(1,KFLB-1) + CALL LY1ENT(1,1000*KFLA+100*KFLB+10*KFLC+KFLS,0.,0.,0.) + ENDIF + +C...Generate event. Find total momentum, energy and charge. + DO 140 J=1,4 + PINI(J)=PLY(0,J) + 140 CONTINUE + PINI(6)=PLY(0,6) + CALL LYEXEC + DO 150 J=1,4 + PFIN(J)=PLY(0,J) + 150 CONTINUE + PFIN(6)=PLY(0,6) + +C...Check conservation of energy, momentum and charge; +C...usually exact, but only approximate for single jets. + MERR=0 + IF(IEV.LE.50) THEN + IF((PFIN(1)-PINI(1))**2+(PFIN(2)-PINI(2))**2.GE.4.) MERR=MERR+1 + EPZREM=PINI(4)+PINI(3)-PFIN(4)-PFIN(3) + IF(EPZREM.LT.0..OR.EPZREM.GT.2.*PARJ(31)) MERR=MERR+1 + IF(ABS(PFIN(6)-PINI(6)).GT.2.1) MERR=MERR+1 + ELSE + DO 160 J=1,4 + IF(ABS(PFIN(J)-PINI(J)).GT.0.0001*PINI(4)) MERR=MERR+1 + 160 CONTINUE + IF(ABS(PFIN(6)-PINI(6)).GT.0.1) MERR=MERR+1 + ENDIF + IF(MERR.NE.0) WRITE(MSTU(11),5000) (PINI(J),J=1,4),PINI(6), + &(PFIN(J),J=1,4),PFIN(6) + +C...Check that all KF codes are known ones, and that partons/particles +C...satisfy energy-momentum-mass relation. Store particle statistics. + DO 170 I=1,N + IF(K(I,1).GT.20) GOTO 170 + IF(LYCOMP(K(I,2)).EQ.0) THEN + WRITE(MSTU(11),5100) I + MERR=MERR+1 + ENDIF + PD=P(I,4)**2-P(I,1)**2-P(I,2)**2-P(I,3)**2-P(I,5)**2 + IF(ABS(PD).GT.MAX(0.1,0.001*P(I,4)**2).OR.P(I,4).LT.0.) THEN + WRITE(MSTU(11),5200) I + MERR=MERR+1 + ENDIF + 170 CONTINUE + IF(MTEST.GE.1) CALL LYTABU(21) + +C...List all erroneous events and some normal ones. + IF(MERR.NE.0.OR.MSTU(24).NE.0.OR.MSTU(28).NE.0) THEN + CALL LYLIST(2) + ELSEIF(MTEST.GE.1.AND.MOD(IEV-5,100).EQ.0) THEN + CALL LYLIST(1) + ENDIF + +C...Stop execution if too many errors. + IF(MERR.NE.0) NERR=NERR+1 + IF(NERR.GE.10) THEN + WRITE(MSTU(11),5300) IEV + STOP + ENDIF + 180 CONTINUE + +C...Summarize result of run. + IF(MTEST.GE.1) CALL LYTABU(22) + IF(NERR.EQ.0) WRITE(MSTU(11),5400) + IF(NERR.GT.0) WRITE(MSTU(11),5500) NERR + +C...Reset commonblock variables changed during run. + MSTJ(2)=3 + PARJ(17)=0. + PARJ(22)=1. + PARJ(43)=0.5 + PARJ(54)=0. + MSTJ(105)=1 + MSTJ(107)=0 + +C...Format statements for output. + 5000 FORMAT(/' Momentum, energy and/or charge were not conserved ', + &'in following event'/' sum of',9X,'px',11X,'py',11X,'pz',11X, + &'E',8X,'charge'/' before',2X,4(1X,F12.5),1X,F8.2/' after',3X, + &4(1X,F12.5),1X,F8.2) + 5100 FORMAT(/5X,'Entry no.',I4,' in following event not known code') + 5200 FORMAT(/5X,'Entry no.',I4,' in following event has faulty ', + &'kinematics') + 5300 FORMAT(/5X,'Ten errors experienced by event ',I3/ + &5X,'Something is seriously wrong! Execution stopped now!') + 5400 FORMAT(//5X,'End result of LYTEST: no errors detected.') + 5500 FORMAT(//5X,'End result of LYTEST:',I2,' errors detected.'/ + &5X,'This should not have happened!') + + RETURN + END + +C********************************************************************* + + BLOCK DATA LYDATA + +C...Purpose: to give default values to parameters and particle and +C...decay data. + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/LYDAT2/KCHG(500,3),PMAS(500,4),PARF(2000),VCKM(4,4) + COMMON/LYDAT3/MDCY(500,3),MDME(2000,2),BRAT(2000),KFDP(2000,5) + COMMON/LYDAT4/CHAF(500) + CHARACTER CHAF*8 + COMMON/LYDATR/MRLU(6),RRLU(100) + SAVE /LYDAT1/,/LYDAT2/,/LYDAT3/,/LYDAT4/,/LYDATR/ + +C...LUDAT1, containing status codes and most parameters. + DATA MSTU/ + & 0, 0, 0, 4000,10000, 500, 2000, 0, 0, 2, + 1 6, 1, 1, 0, 1, 1, 0, 0, 0, 0, + 2 2, 10, 0, 0, 1, 10, 0, 0, 0, 0, + 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4 2, 2, 1, 4, 2, 1, 1, 0, 0, 0, + 5 25, 24, 0, 1, 0, 0, 0, 0, 0, 0, + 6 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 7 30*0, + & 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1 1, 5, 3, 5, 0, 0, 0, 0, 0, 0, + 2 60*0, + 8 7, 410, 1997, 01, 20, 700, 0, 0, 0, 0, + 9 0, 0, 0, 0, 0, 0, 0, 0, 0, 0/ + DATA PARU/ + & 3.1415927, 6.2831854, 0.1973, 5.068, 0.3894, 2.568, 4*0., + 1 0.001, 0.09, 0.01, 0., 0., 0., 0., 0., 0., 0., + 2 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., + 3 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., + 4 2.0, 1.0, 0.25, 2.5, 0.05, 0., 0., 0.0001, 0., 0., + 5 2.5, 1.5, 7.0, 1.0, 0.5, 2.0, 3.2, 0., 0., 0., + 6 40*0., + & 0.00729735, 0.232, 0.007764, 1.0, 1.16639E-5, 0., 0., 0., + & 0., 0., + 1 0.20, 0.25, 1.0, 4.0, 10., 0., 0., 0., 0., 0., + 2 -0.693, -1.0, 0.387, 1.0, -0.08, -1.0, 1.0, 1.0, 1.0, 0., + 3 1.0, -1.0, 1.0, -1.0, 1.0, 0., 0., 0., 0., 0., + 4 5.0, 1.0, 1.0, 0., 1.0, 1.0, 0., 0., 0., 0., + 5 1.0, 0., 0., 0., 1000., 1.0, 1.0, 1.0, 1.0, 0., + 6 1.0, 1.0, 1.0, 1.0, 1.0, 0., 0., 0., 0., 0., + 7 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0., 0., 0., + 8 1.0, 1.0, 1.0, 0.0, 0.0, 1.0, 1.0, 0.0, 0.0, 0., + 9 0., 0., 0., 0., 1.0, 0., 0., 0., 0., 0./ + DATA MSTJ/ + & 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 1 4, 2, 0, 1, 0, 0, 0, 0, 0, 0, + 2 2, 1, 1, 2, 1, 2, 2, 0, 0, 0, + 3 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 4 2, 2, 4, 2, 5, 3, 3, 0, 0, 3, + 5 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, + 6 40*0, + & 5, 2, 7, 5, 1, 1, 0, 2, 0, 2, + 1 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, + 2 80*0/ + DATA PARJ/ + & 0.10, 0.30, 0.40, 0.05, 0.50, 0.50, 0.50, 0., 0., 0., + 1 0.50, 0.60, 0.75, 0., 0., 0., 0., 1.0, 1.0, 0., + 2 0.36, 1.0, 0.01, 2.0, 1.0, 0.4, 0., 0., 0., 0., + 3 0.10, 1.0, 0.8, 1.5, 0., 2.0, 0.2, 2.5, 0.6, 0., + 4 0.3, 0.58, 0.5, 0.9, 0.5, 1.0, 1.0, 1.0, 0., 0., + 5 0.77,0.77,0.77,-0.05,-0.005,-0.00001,-0.00001,-0.00001,1.0,0., + 6 4.5, 0.7, 0., 0.003, 0.5, 0.5, 0., 0., 0., 0., + 7 10., 1000., 100., 1000., 0., 0.7, 10., 0., 0., 0., + 8 0.29, 1.0, 1.0, 0., 10., 10., 0., 0., 0., 0., + 9 0.02, 1.0, 0.2, 0., 0., 0., 0., 0., 0., 0., + & 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., + 1 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., + 2 1.0, 0.25,91.187,2.489, 0.01, 2.0, 1.0, 0.25,0.002, 0., + 3 0., 0., 0., 0., 0.01, 0.99, 0., 0., 0.2, 0., + 4 60*0./ + +C...LUDAT2, with particle data and flavour treatment parameters. + DATA (KCHG(I,1),I= 1, 500)/-1,2,-1,2,-1,2,-1,2,2*0,-3,0,-3,0, + &-3,0,-3,6*0,3,9*0,3,2*0,3,0,-1,44*0,2,-1,2,-1,2,3,11*0,3,0,2*3,0, + &3,0,3,0,3,10*0,3,0,2*3,0,3,0,3,0,3,10*0,3,0,2*3,0,3,0,3,0,3,10*0, + &3,0,2*3,0,3,0,3,0,3,10*0,3,0,2*3,0,3,0,3,0,3,10*0,3,0,2*3,0,3,0, + &3,0,3,70*0,3,0,3,28*0,3,2*0,3,8*0,-3,8*0,3,0,-3,0,3,-3,3*0,3,6,0, + &3,5*0,-3,0,3,-3,0,-3,4*0,-3,0,3,6,-3,0,3,-3,0,-3,0,3,6,0,3,5*0, + &-3,0,3,-3,0,-3,114*0/ + DATA (KCHG(I,2),I= 1, 500)/8*1,12*0,2,16*0,2,1,50*0,-1,410*0/ + DATA (KCHG(I,3),I= 1, 500)/8*1,2*0,8*1,5*0,1,9*0,1,2*0,1,0,2*1, + &41*0,1,0,7*1,10*0,10*1,10*0,10*1,10*0,10*1,10*0,10*1,10*0,10*1, + &10*0,10*1,70*0,3*1,22*0,1,5*0,1,0,2*1,6*0,1,0,2*1,6*0,2*1,0,5*1, + &0,6*1,4*0,6*1,4*0,16*1,4*0,6*1,114*0/ + DATA (PMAS(I,1),I= 1, 500)/0.0099,0.0056,0.199,1.35,5.,160., + &2*250.,2*0.,0.00051,0.,0.1057,0.,1.777,0.,250.,5*0.,91.187,80.25, + &80.,6*0.,500.,900.,500.,3*300.,350.,200.,5000.,60*0.,0.1396, + &0.4977,0.4936,1.8693,1.8645,1.9688,5.2787,5.2786,5.47972,6.594, + &0.135,0.5475,0.9578,2.9788,9.4,320.,2*500.,2*0.,0.7669,0.8961, + &0.8916,2.0101,2.0071,2.11,2*5.325,5.5068,6.602,0.7683,0.782, + &1.0194,3.0969,9.4603,320.,2*500.,2*0.,1.232,2*1.29,2*2.424,2.536, + &2*5.73,5.97,7.3,1.232,1.17,1.4,3.46,9.875,320.,2*500.,2*0.,0.983, + &2*1.429,2*2.272,2.5,2*5.68,5.92,7.25,0.9827,1.,1.4,3.4151,9.8598, + &320.,2*500.,2*0.,1.26,2*1.402,2*2.372,2.56,2*5.78,6.02,7.3,1.26, + &1.282,1.42,3.5106,9.8919,320.,2*500.,2*0.,1.318,1.432,1.425, + &2*2.46,2.61,2*5.83,6.07,7.35,1.318,1.275,1.525,3.5562,9.9132, + &320.,2*500.,2*0.,2*0.4977,8*0.,3.686,3*0.,10.0233,70*0.,1.1156, + &5*0.,2.2849,0.,2.473,2.466,6*0.,5.641,0.,2*5.84,6*0.,0.9396, + &0.9383,0.,1.1974,1.1926,1.1894,1.3213,1.3149,0.,2.4525,2.4529, + &2.4527,2*2.55,2.73,4*0.,3*5.8,2*5.96,6.12,4*0.,1.234,1.233,1.232, + &1.231,1.3872,1.3837,1.3828,1.535,1.5318,1.6724,3*2.5,2*2.63,2.8, + &4*0.,3*5.81,2*5.97,6.13,114*0./ + DATA (PMAS(I,2),I= 1, 500)/22*0.,2.489,2.066,88*0.,0.0002, + &0.001,6*0.,0.149,0.0505,0.0498,7*0.,0.151,0.00843,0.0044,7*0., + &0.155,2*0.09,2*0.02,0.,4*0.05,0.155,0.36,0.08,2*0.01,5*0.,0.057, + &2*0.287,7*0.05,0.057,0.,0.25,0.014,6*0.,0.4,2*0.174,7*0.05,0.4, + &0.024,0.06,0.0009,6*0.,0.11,0.109,0.098,2*0.019,5*0.02,0.11, + &0.185,0.076,0.002,146*0.,4*0.12,0.0394,0.036,0.0358,0.0099, + &0.0091,131*0./ + DATA (PMAS(I,3),I= 1, 500)/22*0.,2*20.,88*0.,0.002,0.005,6*0., + &0.4,2*0.2,7*0.,0.4,0.1,0.015,7*0.,0.25,0.005,0.01,2*0.08,0., + &4*0.1,0.25,0.2,0.001,2*0.02,5*0.,0.05,2*0.4,6*0.1,2*0.05,0.,0.35, + &0.05,6*0.,3*0.3,2*0.1,0.03,4*0.1,0.3,0.05,0.02,0.001,6*0.,0.25, + &4*0.12,5*0.05,0.25,0.17,0.2,0.01,146*0.,4*0.14,0.04,2*0.035, + &2*0.05,131*0./ + DATA (PMAS(I,4),I= 1, 500)/12*0.,658650.,0.,0.0914,68*0.,0.1, + &0.387,15*0.,7804.,0.,3709.,0.32,0.1259,0.135,3*0.387,0.15,110*0., + &15500.,26.75,83*0.,78.88,5*0.,0.057,0.,0.025,0.09,6*0.,0.387,0., + &2*0.387,9*0.,44.3,0.,23.95,49.1,86.9,6*0.,0.13,9*0.,0.387,13*0., + &24.60001,130*0./ + DATA PARF/ + & 0.5, 0.25, 0.5, 0.25, 1., 0.5, 0., 0., 0., 0., + 1 0.5, 0., 0.5, 0., 1., 1., 0., 0., 0., 0., + 2 0.5, 0., 0.5, 0., 1., 1., 0., 0., 0., 0., + 3 0.5, 0., 0.5, 0., 1., 1., 0., 0., 0., 0., + 4 0.5, 0., 0.5, 0., 1., 1., 0., 0., 0., 0., + 5 0.5, 0., 0.5, 0., 1., 1., 0., 0., 0., 0., + 6 0.75, 0.5, 0., 0.1667, 0.0833, 0.1667, 0., 0., 0., 0., + 7 0., 0., 1., 0.3333, 0.6667, 0.3333, 0., 0., 0., 0., + 8 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., + 9 0., 0., 0., 0., 0., 0., 0., 0., 0., 0., + & 0.325, 0.325, 0.5, 1.6, 5.0, 0., 0., 0., 0., 0., + 1 0., 0.11, 0.16, 0.048, 0.50, 0.45, 0.55, 0.60, 0., 0., + 2 0.2, 0.1, 0., 0., 0., 0., 0., 0., 0., 0., + 3 1870*0./ + DATA ((VCKM(I,J),J=1,4),I=1,4)/ + 1 0.95113, 0.04884, 0.00003, 0.00000, + 2 0.04884, 0.94940, 0.00176, 0.00000, + 3 0.00003, 0.00176, 0.99821, 0.00000, + 4 0.00000, 0.00000, 0.00000, 1.00000/ + +C...LUDAT3, with particle decay parameters and data. + DATA (MDCY(I,1),I= 1, 500)/5*0,3*1,6*0,1,0,1,5*0,3*1,6*0,1,0,1, + &2*0,4*1,42*0,7*1,12*0,1,0,15*1,2*0,18*1,2*0,18*1,2*0,18*1,2*0, + &18*1,2*0,18*1,3*0,1,8*0,1,3*0,1,70*0,1,5*0,1,0,2*1,6*0,1,0,2*1, + &9*0,5*1,0,6*1,4*0,6*1,4*0,16*1,4*0,6*1,114*0/ + DATA (MDCY(I,2),I= 1, 500)/1,9,17,25,33,41,50,60,2*0,70,74,76, + &81,83,124,126,132,2*0,135,144,156,172,192,6*0,209,0,231,254,274, + &292,301,304,305,42*0,314,315,319,328,331,336,338,11*0,358,359, + &361,367,430,491,524,560,596,635,666,668,675,681,682,683,684,685, + &2*0,686,688,691,694,697,699,700,701,702,703,704,708,713,721,724, + &733,734,735,2*0,736,737,742,747,749,751,753,755,757,759,761,762, + &765,769,770,771,772,773,2*0,774,775,777,779,781,783,785,787,789, + &791,793,794,799,804,806,808,809,810,2*0,811,813,815,817,819,821, + &823,825,827,829,831,833,846,850,852,854,855,856,2*0,857,863,873, + &884,892,900,904,912,920,924,928,936,945,951,953,955,956,957,2*0, + &958,966,8*0,968,3*0,979,70*0,993,5*0,997,0,1073,1074,6*0,1075,0, + &1092,1093,9*0,1094,1096,1097,1100,1101,0,1103,1104,1105,1106, + &1107,1108,4*0,1109,1110,1111,1112,1113,1114,4*0,1115,1116,1119, + &1122,1123,1126,1129,1132,1134,1136,1140,1141,1142,1143,1145,1147, + &4*0,1148,1149,1150,1151,1152,1153,114*0/ + DATA (MDCY(I,3),I= 1, 500)/5*8,9,2*10,2*0,4,2,5,2,41,2,6,3,2*0, + &9,12,16,20,17,6*0,22,0,23,20,18,9,3,1,9,42*0,1,4,9,3,5,2,20,11*0, + &1,2,6,63,61,33,2*36,39,31,2,7,6,5*1,2*0,2,3*3,2,5*1,4,5,8,3,9, + &3*1,2*0,1,2*5,7*2,1,3,4,5*1,2*0,1,9*2,1,2*5,2*2,3*1,2*0,11*2,13, + &4,2*2,3*1,2*0,6,10,11,2*8,4,2*8,2*4,8,9,6,2*2,3*1,2*0,8,2,8*0,11, + &3*0,14,70*0,4,5*0,76,0,2*1,6*0,17,0,2*1,9*0,2,1,3,1,2,0,6*1,4*0, + &6*1,4*0,1,2*3,1,3*3,2*2,4,3*1,2*2,1,4*0,6*1,114*0/ + DATA (MDME(I,1),I= 1,2000)/6*1,-1,7*1,-1,7*1,-1,7*1,-1,7*1,-1, + &7*1,-1,1,-1,8*1,2*-1,8*1,2*-1,61*1,-1,2*1,-1,6*1,2*-1,7*1,2*-1, + &3*1,-1,6*1,2*-1,6*1,2*-1,3*1,-1,3*1,-1,3*1,5*-1,3*1,-1,6*1,2*-1, + &3*1,-1,11*1,2*-1,6*1,8*-1,3*1,-1,3*1,-1,3*1,5*-1,3*1,4*-1,6*1, + &2*-1,3*1,-1,5*1,-1,8*1,2*-1,3*1,-1,9*1,-1,3*1,-1,9*1,2*-1,2*1,-1, + &16*1,-1,2*1,3*-1,1665*1/ + DATA (MDME(I,2),I= 1,2000)/75*102,42,6*102,2*42,2*0,7*41,2*0, + &24*41,6*102,45,29*102,8*32,8*0,16*32,4*0,8*32,4*0,32,4*0,8*32, + &14*0,16*32,7*0,8*32,4*0,32,7*0,8*32,4*0,32,5*0,4*32,5*0,3*32,0, + &6*32,3*0,12,2*42,2*11,9*42,2*45,31,2*45,2*33,31,2*45,20*46,7*0, + &24*42,41*0,16*42,46*0,10*42,20*0,2*13,14*42,16*0,48,3*13,16*42, + &16*0,48,3*13,16*42,19*0,48,3*13,2*42,0,2*11,28*42,0,2,4*0,2,8*0, + &12,32,86,87,88,3,0,2*3,0,2*3,0,2*3,0,3,6*0,3,3*0,1,0,3,2*0,2*3, + &3*0,1,4*0,12,3*0,4*32,2*4,86,87,88,33*0,12,32,86,87,88,31*0,12,0, + &32,86,87,88,40*0,12,0,32,86,87,88,95*0,12,0,32,86,87,88,2*0,4*42, + &6*0,12,11*0,4*32,2*4,9*0,14*42,52*0,10*13,2*84,3*42,8*0,48,3*13, + &2*42,2*85,14*0,84,5*0,85,886*0/ + DATA (BRAT(I) ,I= 1, 439)/75*0.,1.,6*0.,0.179,0.178,0.116, + &0.235,0.005,0.056,0.018,0.023,0.011,2*0.004,0.0067,0.014,2*0.002, + &2*0.001,0.0022,0.054,0.002,0.016,0.005,0.011,0.0101,5*0.006, + &0.002,2*0.001,5*0.002,6*0.,1.,29*0.,0.15394,0.11936,0.15394, + &0.11926,0.15254,3*0.,0.03368,0.06664,0.03368,0.06664,0.03368, + &0.06664,2*0.,0.3214,0.0165,2*0.,0.0165,0.3207,2*0.,0.00001, + &0.00059,6*0.,3*0.1081,3*0.,0.0003,0.048,0.8705,4*0.,0.0002, + &0.0603,0.,0.0199,0.0008,3*0.,0.143,0.111,0.143,0.111,0.143,0.085, + &2*0.,0.03,0.058,0.03,0.058,0.03,0.058,8*0.,0.25,0.01,2*0.,0.01, + &0.25,4*0.,0.24,5*0.,3*0.08,6*0.,0.01,0.08,0.82,5*0.,0.09,11*0., + &0.01,0.08,0.82,5*0.,0.09,9*0.,1.,6*0.,0.01,0.98,0.01,1.,4*0.215, + &2*0.,2*0.07,0.,1.,2*0.08,0.76,0.08,2*0.105,0.04,0.5,0.08,0.14, + &0.01,0.015,0.005,1.,3*0.,1.,4*0.,1.,0.25,0.01,2*0.,0.01,0.25, + &4*0.,0.24,5*0.,3*0.08,0.,1.,2*0.5,0.635,0.212,0.056,0.017,0.048, + &0.032,0.07,0.065,2*0.005,2*0.011,5*0.001,0.07,0.065,2*0.005, + &2*0.011,5*0.001,0.026,0.019,0.066,0.041,0.045,0.076,0.0073, + &2*0.0047,0.026,0.001,0.0006,0.0066,0.005,2*0.003,2*0.0006, + &2*0.001,0.006,0.005,0.012,0.0057,0.067,0.008,0.0022,0.027,0.004, + &0.019,0.012,0.002,0.009,0.0218,0.001,0.022,0.087,0.001,0.0019, + &0.0015,0.0028,0.034,0.027,2*0.002,2*0.004,2*0.002,0.034,0.027/ + DATA (BRAT(I) ,I= 440, 655)/2*0.002,2*0.004,2*0.002,0.0365, + &0.045,0.073,0.062,3*0.021,0.0061,0.015,0.025,0.0088,0.074,0.0109, + &0.0041,0.002,0.0035,0.0011,0.001,0.0027,2*0.0016,0.0018,0.011, + &0.0063,0.0052,0.018,0.016,0.0034,0.0036,0.0009,0.0006,0.015, + &0.0923,0.018,0.022,0.0077,0.009,0.0075,0.024,0.0085,0.067,0.0511, + &0.017,0.0004,0.0028,0.01,2*0.02,0.03,2*0.005,2*0.02,0.03,2*0.005, + &0.015,0.037,0.028,0.079,0.095,0.052,0.0078,4*0.001,0.028,0.033, + &0.026,0.05,0.01,4*0.005,0.25,0.0952,0.02,0.055,2*0.005,0.008, + &0.012,0.02,0.055,2*0.005,0.008,0.012,0.01,0.03,0.0035,0.011, + &0.0055,0.0042,0.009,0.018,0.015,0.0185,0.0135,0.025,0.0004, + &0.0007,0.0008,0.0014,0.0019,0.0025,0.4291,0.08,0.07,0.02,0.015, + &0.005,0.02,0.055,2*0.005,0.008,0.012,0.02,0.055,2*0.005,0.008, + &0.012,0.01,0.03,0.0035,0.011,0.0055,0.0042,0.009,0.018,0.015, + &0.0185,0.0135,0.025,0.0004,0.0007,0.0008,0.0014,0.0019,0.0025, + &0.4291,0.08,0.07,0.02,0.015,0.005,0.02,0.055,2*0.005,0.008,0.012, + &0.02,0.055,2*0.005,0.008,0.012,0.01,0.03,0.0035,0.011,0.0055, + &0.0042,0.009,0.018,0.015,0.0185,0.0135,0.025,2*0.0002,0.0007, + &2*0.0004,0.0014,0.001,0.0009,0.0025,0.4291,0.08,0.07,0.02,0.015, + &0.005,0.047,0.122,0.006,0.012,0.035,0.012,0.035,0.003,0.007,0.15, + &0.037,0.008,0.002,0.05,0.015,0.003,0.001,0.014,0.042,0.014,0.042/ + DATA (BRAT(I) ,I= 656, 931)/0.24,0.065,0.012,0.003,0.001,0.002, + &0.001,0.002,0.014,0.003,0.988,0.012,0.389,0.319,0.2367,0.049, + &0.005,0.001,0.0003,0.441,0.206,0.3,0.03,0.022,0.001,5*1.,0.99955, + &0.00045,0.665,0.333,0.002,0.666,0.333,0.001,0.65,0.3,0.05,0.56, + &0.44,5*1.,0.99912,0.00079,0.00005,0.00004,0.888,0.085,0.021, + &2*0.003,0.49,0.344,3*0.043,0.023,0.013,0.001,0.0627,0.0597, + &0.8776,3*0.027,0.015,0.045,0.015,0.045,0.77,0.029,4*1.,0.28,0.14, + &0.313,0.157,0.11,0.28,0.14,0.313,0.157,0.11,0.667,0.333,0.667, + &0.333,2*0.5,0.667,0.333,0.667,0.333,4*0.5,1.,0.333,0.334,0.333, + &4*0.25,6*1.,0.667,0.333,0.667,0.333,0.667,0.333,0.667,0.333, + &2*0.5,0.667,0.333,0.667,0.333,4*0.5,1.,0.52,0.26,0.11,2*0.055, + &0.62,0.31,0.035,2*0.0175,0.007,0.993,0.02,0.98,3*1.,2*0.5,0.667, + &0.333,0.667,0.333,0.667,0.333,0.667,0.333,2*0.5,0.667,0.333, + &0.667,0.333,6*0.5,3*0.12,0.097,0.043,4*0.095,4*0.03,4*0.25,0.273, + &0.727,0.35,0.65,3*1.,2*0.35,0.144,0.105,0.048,0.003,0.333,0.166, + &0.168,0.084,0.087,0.043,0.059,2*0.029,0.002,0.332,0.166,0.168, + &0.084,0.086,0.043,0.059,2*0.029,2*0.002,0.3,0.15,0.16,0.08,0.13, + &0.06,0.08,0.04,0.3,0.15,0.16,0.08,0.13,0.06,0.08,0.04,2*0.3, + &2*0.2,0.3,0.15,0.16,0.08,0.13,0.06,0.08,0.04,0.3,0.15,0.16,0.08, + &0.13,0.06,0.08,0.04,2*0.3,2*0.2,2*0.3,2*0.2,2*0.35,0.144,0.105/ + DATA (BRAT(I) ,I= 932,2000)/0.024,2*0.012,0.003,0.566,0.283, + &0.069,0.028,0.023,2*0.0115,0.005,0.003,0.356,2*0.178,0.28, + &2*0.004,0.135,0.865,0.22,0.78,3*1.,0.217,0.124,2*0.193,2*0.135, + &0.002,0.001,0.686,0.314,2*0.0083,0.1866,0.324,0.184,0.027,0.001, + &0.093,0.087,0.078,0.0028,3*0.014,0.008,0.024,0.008,0.024,0.425, + &0.02,0.185,0.088,0.043,0.067,0.066,0.641,0.357,2*0.001,0.018, + &2*0.005,0.003,0.002,2*0.006,0.018,2*0.005,0.003,0.002,2*0.006, + &0.0066,0.025,0.016,0.0088,2*0.005,0.0058,0.005,0.0055,4*0.004, + &2*0.002,2*0.004,0.003,0.002,2*0.003,3*0.002,2*0.001,0.002, + &2*0.001,2*0.002,0.0013,0.0018,5*0.001,4*0.003,2*0.005,2*0.002, + &2*0.001,2*0.002,2*0.001,0.2432,0.057,2*0.035,0.15,2*0.075,0.03, + &2*0.015,2*1.,2*0.105,0.04,0.0077,0.02,0.0235,0.0285,0.0435, + &0.0011,0.0022,0.0044,0.4291,0.08,0.07,0.02,0.015,0.005,2*1., + &0.999,0.001,1.,0.516,0.483,0.001,1.,0.995,0.005,13*1.,0.331, + &0.663,0.006,0.663,0.331,0.006,1.,0.88,2*0.06,0.88,2*0.06,0.88, + &2*0.06,0.667,2*0.333,0.667,0.676,0.234,0.085,0.005,3*1.,4*0.5, + &7*1.,847*0./ + DATA (KFDP(I,1),I= 1, 507)/21,22,23,4*-24,25,21,22,23,4*24,25, + &21,22,23,4*-24,25,21,22,23,4*24,25,21,22,23,4*-24,25,21,22,23, + &4*24,25,37,21,22,23,4*-24,25,2*-37,21,22,23,4*24,25,2*37,22,23, + &-24,25,23,24,-12,22,23,-24,25,23,24,-12,-14,35*16,22,23,-24,25, + &23,24,-89,22,23,-24,25,-37,23,24,37,1,2,3,4,5,6,7,8,21,1,2,3,4,5, + &6,7,8,11,13,15,17,1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18,4*-1, + &4*-3,4*-5,4*-7,-11,-13,-15,-17,1,2,3,4,5,6,7,8,11,13,15,17,21, + &2*22,23,24,1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18,24,37,2*23,25, + &35,4*-1,4*-3,4*-5,4*-7,-11,-13,-15,-17,3*24,1,2,3,4,5,6,7,8,11, + &13,15,17,21,2*22,23,24,23,25,36,1,2,3,4,5,6,7,8,11,13,15,17,21, + &2*22,23,24,23,-1,-3,-5,-7,-11,-13,-15,-17,24,5,6,21,2,1,2,3,4,5, + &6,11,13,15,82,-11,-13,2*2,-12,-14,-16,2*-2,2*-4,-2,-4,2*89,37, + &2*-89,2*5,-37,2*89,4*-1,4*-3,4*-5,4*-7,-11,-13,-15,-17,-13,130, + &310,-13,3*211,12,14,11*-11,11*-13,-311,-313,-311,-313,-20313, + &2*-311,-313,-311,-313,2*111,2*221,2*331,2*113,2*223,2*333,-311, + &-313,2*-321,211,-311,-321,333,-311,-313,-321,211,2*-321,2*-311, + &-321,211,113,8*-11,8*-13,-321,-323,-321,-323,-311,2*-313,-311, + &-313,2*-311,-321,-10323,-321,-323,-321,-311,2*-313,211,111,333, + &3*-321,-311,-313,-321,-313,310,333,211,2*-321,-311,-313,-311,211, + &-321,3*-311,211,113,321,-15,5*-11,5*-13,221,331,333,221,331,333/ + DATA (KFDP(I,1),I= 508, 924)/10221,211,213,211,213,321,323,321, + &323,2212,221,331,333,221,2*2,6*12,6*14,2*16,3*-411,3*-413,2*-411, + &2*-413,2*441,2*443,2*20443,2*2,2*4,2,4,6*12,6*14,2*16,3*-421, + &3*-423,2*-421,2*-423,2*441,2*443,2*20443,2*2,2*4,2,4,6*12,6*14, + &2*16,3*-431,3*-433,2*-431,2*-433,3*441,3*443,3*20443,2*2,2*4,2,4, + &16,2*4,2*12,2*14,2*16,4*2,4*4,2*-11,2*-13,2*-1,2*-3,2*-11,2*-13, + &2*-1,3*22,111,211,2*22,211,22,211,111,3*22,111,82,21,3*0,2*211, + &321,3*311,2*321,421,2*411,2*421,431,511,521,531,541,211,111,13, + &11,211,22,211,2*111,321,130,-213,113,213,211,22,111,11,13,82,11, + &13,15,1,2,3,4,21,22,3*0,223,321,311,323,313,2*311,321,313,323, + &321,423,2*413,2*423,413,523,2*513,2*523,2*513,523,223,213,113, + &-213,313,-313,323,-323,82,21,3*0,221,321,2*311,321,421,2*411,421, + &411,421,521,2*511,2*521,2*511,521,221,211,111,321,130,310,211, + &111,321,130,310,443,82,553,21,3*0,113,213,323,2*313,323,423, + &2*413,2*423,413,523,2*513,2*523,2*513,523,213,-213,10211,10111, + &-10211,2*221,213,2*113,-213,2*321,2*311,313,-313,323,-323,443,82, + &553,21,3*0,213,113,221,223,321,211,321,311,323,313,323,313,321, + &4*311,321,313,323,313,323,311,4*321,421,411,423,413,423,413,421, + &2*411,421,413,423,413,423,411,2*421,411,423,413,521,511,523,513, + &523,513,521,2*511,521,513,523,513,523,511,2*521,511,523,513,511/ + DATA (KFDP(I,1),I= 925,2000)/521,513,523,213,-213,221,223,321, + &130,310,111,211,111,2*211,321,130,310,221,111,321,130,310,221, + &211,111,443,82,553,21,3*0,111,211,-12,12,-14,14,211,111,211,111, + &11,13,82,4*443,10441,20443,445,441,11,13,15,1,2,3,4,21,22,2*553, + &10551,20553,555,2212,2*2112,-12,7*-11,7*-13,2*2224,2*2212,2*2214, + &2*3122,2*3212,2*3214,5*3222,4*3224,2*3322,3324,2*2224,7*2212, + &5*2214,2*2112,2*2114,2*3122,2*3212,2*3214,2*3222,2*3224,4*2,3, + &2*2,1,2*2,2*0,-12,-14,-16,5*4122,441,443,20443,2*-2,2*-4,-2,-4, + &2*0,2112,-12,3122,2212,2112,2212,3*3122,3*4122,4132,4232,0, + &3*5122,5132,5232,0,2112,2212,2*2112,2212,2112,2*2212,3122,3212, + &3112,3122,3222,3112,3122,3222,3212,3322,3312,3322,3312,3122,3322, + &3312,-12,3*4122,2*4132,2*4232,4332,3*5122,5132,5232,5332,847*0/ + DATA (KFDP(I,2),I= 1, 476)/3*1,2,4,6,8,1,3*2,1,3,5,7,2,3*3,2,4, + &6,8,3,3*4,1,3,5,7,4,3*5,2,4,6,8,5,3*6,1,3,5,7,6,5,3*7,2,4,6,8,7, + &4,6,3*8,1,3,5,7,8,5,7,2*11,12,11,12,2*11,2*13,14,13,14,13,11,13, + &-211,-213,-211,-213,-211,-213,3*-211,-321,-323,-321,-323,3*-321, + &4*-211,-213,-211,-213,-211,-213,-211,-213,-211,-213,6*-211,2*15, + &16,15,16,15,18,2*17,18,17,2*18,2*17,-1,-2,-3,-4,-5,-6,-7,-8,21, + &-1,-2,-3,-4,-5,-6,-7,-8,-11,-13,-15,-17,-1,-2,-3,-4,-5,-6,-7,-8, + &-11,-12,-13,-14,-15,-16,-17,-18,2,4,6,8,2,4,6,8,2,4,6,8,2,4,6,8, + &12,14,16,18,-1,-2,-3,-4,-5,-6,-7,-8,-11,-13,-15,-17,21,22,2*23, + &-24,-1,-2,-3,-4,-5,-6,-7,-8,-11,-12,-13,-14,-15,-16,-17,-18,-24, + &-37,22,25,2*36,2,4,6,8,2,4,6,8,2,4,6,8,2,4,6,8,12,14,16,18,23,22, + &25,-1,-2,-3,-4,-5,-6,-7,-8,-11,-13,-15,-17,21,22,2*23,-24,2*25, + &36,-1,-2,-3,-4,-5,-6,-7,-8,-11,-13,-15,-17,21,22,2*23,-24,25,2,4, + &6,8,12,14,16,18,25,-5,-6,21,11,-3,-4,-5,-6,-7,-8,-13,-15,-17,-82, + &12,14,-1,-3,11,13,15,1,4,3,4,1,3,5,3,5,6,4,21,22,4,7,5,2,4,6,8,2, + &4,6,8,2,4,6,8,2,4,6,8,12,14,16,18,14,2*0,14,111,211,111,-11,-13, + &11*12,11*14,2*211,2*213,211,20213,2*321,2*323,211,213,211,213, + &211,213,211,213,211,213,211,213,3*211,213,211,2*321,8*211,2*113, + &2*211,8*12,8*14,2*211,2*213,2*111,221,2*113,223,333,20213,211, + &2*321,323,2*311,313,-211,111,113,2*211,321,2*211,311,321,310,211/ + DATA (KFDP(I,2),I= 477, 857)/-211,4*211,321,4*211,113,2*211,-321, + &16,5*12,5*14,3*211,3*213,211,2*111,2*113,2*-311,2*-313,-2112, + &3*321,323,2*-1,6*-11,6*-13,2*-15,211,213,20213,211,213,20213,431, + &433,431,433,311,313,311,313,311,313,-1,-4,-3,-4,-1,-3,6*-11, + &6*-13,2*-15,211,213,20213,211,213,20213,431,433,431,433,321,323, + &321,323,321,323,-1,-4,-3,-4,-1,-3,6*-11,6*-13,2*-15,211,213, + &20213,211,213,20213,431,433,431,433,221,331,333,221,331,333,221, + &331,333,-1,-4,-3,-4,-1,-3,-15,-3,-1,2*-11,2*-13,2*-15,-1,-4,-3, + &-4,-3,-4,-1,-4,2*12,2*14,2,3,2,3,2*12,2*14,2,1,22,11,22,111,-211, + &211,11,-211,13,-211,111,113,223,22,111,-82,21,3*0,111,22,-211, + &111,22,211,111,22,211,111,22,111,6*22,-211,22,-13,-11,-211,111, + &-211,2*111,-321,310,211,111,2*-211,221,22,-11,-13,-82,-11,-13, + &-15,-1,-2,-3,-4,2*21,3*0,211,-213,113,-211,111,223,213,113,211, + &111,223,211,111,-211,111,321,311,-211,111,211,111,-321,-311,411, + &421,111,-211,111,211,-311,311,-321,321,-82,21,3*0,211,-211,111, + &211,111,211,111,-211,111,311,321,-211,111,211,111,-321,-311,411, + &421,111,-211,111,-321,130,310,-211,111,-321,130,310,22,-82,22,21, + &3*0,211,111,-211,111,211,111,211,111,-211,111,321,311,-211,111, + &211,111,-321,-311,411,421,-211,211,-211,111,2*211,111,-211,211, + &111,211,-321,2*-311,-321,-311,311,-321,321,22,-82,22,21,3*0,111/ + DATA (KFDP(I,2),I= 858,2000)/3*211,-311,22,-211,111,-211,111, + &-211,211,-213,113,223,221,211,111,211,111,2*211,213,113,223,221, + &22,211,111,211,111,4*211,-211,111,-211,111,-211,211,-211,211,321, + &311,321,311,-211,111,-211,111,-211,211,-211,2*211,111,211,111, + &4*211,-321,-311,-321,-311,411,421,411,421,-211,211,111,211,-321, + &130,310,22,-211,111,2*-211,-321,130,310,221,111,-321,130,310,221, + &-211,111,22,-82,22,21,3*0,111,-211,11,-11,13,-13,-211,111,-211, + &111,-11,-13,-82,211,111,221,111,4*22,-11,-13,-15,-1,-2,-3,-4, + &2*21,211,111,3*22,-211,111,22,11,7*12,7*14,-321,-323,-311,-313, + &-311,-313,211,213,211,213,211,213,111,221,331,113,223,111,221, + &113,223,321,323,321,-211,-213,111,221,331,113,223,333,10221,111, + &221,331,113,223,211,213,211,213,321,323,321,323,321,323,311,313, + &311,313,2*-1,-3,-1,2203,3201,3203,2203,2101,2103,2*0,11,13,15, + &-211,-213,-20213,-431,-433,3*3122,1,4,3,4,1,3,2*0,-211,11,22,111, + &211,22,-211,111,22,-211,111,211,2*22,0,-211,111,211,2*22,0, + &2*-211,111,22,111,211,22,211,2*-211,2*111,-211,2*211,111,211, + &-211,2*111,211,-321,-211,111,11,-211,111,211,111,22,111,2*22, + &-211,111,211,3*22,847*0/ + DATA (KFDP(I,3),I= 1, 944)/75*0,14,6*0,2*16,2*0,5*111,310,130, + &2*0,2*111,310,130,321,113,211,223,221,2*113,2*211,2*223,2*221, + &2*113,221,113,2*213,-213,195*0,4*3,4*4,1,4,3,2*2,10*81,25*0,-211, + &3*111,-311,-313,-311,-321,-313,-323,111,221,331,113,223,-311, + &-313,-311,-321,-313,-323,111,221,331,113,223,22*0,111,113,2*211, + &-211,-311,211,111,3*211,-211,7*211,-321,-323,-311,-321,-313,-323, + &-211,-213,-321,-323,-311,-321,-313,-323,-211,-213,22*0,111,113, + &-311,2*-211,211,-211,310,-211,2*111,211,2*-211,-321,-211,2*211, + &-211,111,-211,2*211,0,221,331,333,321,311,221,331,333,321,311, + &20*0,3,0,-411,-413,-10413,-10411,-20413,-415,-411,-413,-10413, + &-10411,-20413,-415,-411,-413,16*0,-4,-1,-4,-3,2*-2,-421,-423, + &-10423,-10421,-20423,-425,-421,-423,-10423,-10421,-20423,-425, + &-421,-423,16*0,-4,-1,-4,-3,2*-2,-431,-433,-10433,-10431,-20433, + &-435,-431,-433,-10433,-10431,-20433,-435,-431,-433,19*0,-4,-1,-4, + &-3,2*-2,3*0,441,443,441,443,441,443,-4,-1,-4,-3,-4,-3,-4,-1,531, + &533,531,533,3,2,3,2,511,513,511,513,1,2,0,-11,0,2*111,-211,-11, + &11,-13,2*221,3*0,111,27*0,111,2*0,22,111,5*0,111,12*0,2*21,103*0, + &-211,2*111,-211,3*111,-211,111,211,14*0,111,6*0,111,-211,8*0,111, + &-211,9*0,111,-211,111,-211,4*0,111,-211,111,-211,8*0,111,-211, + &111,-211,4*0,111,-211,111,-211,11*0,-211,6*0,111,211,4*0,111/ + DATA (KFDP(I,3),I= 945,2000)/13*0,2*111,211,-211,211,-211,7*0, + &-211,111,13*0,2*21,-211,111,6*0,2212,3122,3212,3214,2112,2114, + &2212,2112,3122,3212,3214,2112,2114,2212,2112,52*0,3*3,1,8*0, + &3*4122,8*0,4,1,4,3,2*2,3*0,2112,43*0,3322,861*0/ + DATA (KFDP(I,4),I= 1,2000)/88*0,3*111,8*0,-211,0,-211,3*0,111, + &2*-211,0,111,0,2*111,113,221,111,-213,-211,211,195*0,13*81,41*0, + &111,211,111,211,7*0,111,211,111,211,35*0,2*-211,2*111,211,111, + &-211,2*211,2*-211,2*0,-211,111,-211,111,4*0,-211,111,-211,111, + &34*0,111,-211,3*111,3*-211,2*111,3*-211,4*0,-321,-311,3*0,-321, + &-311,20*0,-3,31*0,6*1,30*0,6*2,33*0,6*3,9*0,8*4,4*0,4*-5,4*0, + &2*-5,7*0,-11,264*0,111,-211,4*0,111,57*0,-211,111,5*0,-211,111, + &52*0,2101,2103,2*2101,19*0,6*2101,909*0/ + DATA (KFDP(I,5),I= 1,2000)/90*0,111,16*0,111,7*0,111,0,2*111, + &303*0,-211,2*111,-211,111,-211,111,54*0,111,-211,3*111,-211,111, + &1510*0/ + +C...LUDAT4, with character strings. + DATA (CHAF(I) ,I= 1, 281)/'d','u','s','c','b','t','l','h', + &2*' ','e','nu_e','mu','nu_mu','tau','nu_tau','chi','nu_chi', + &2*' ','g','gamma','Z','W','H',2*' ','reggeon','pomeron',2*' ', + &'Z''','Z"','W''','H''','A','H','eta_tech','LQ_ue','R',40*' ', + &'specflav','rndmflav','phasespa','c-hadron','b-hadron', + &'t-hadron','l-hadron','h-hadron','Wvirt','diquark','cluster', + &'string','indep.','CMshower','SPHEaxis','THRUaxis','CLUSjet', + &'CELLjet','table',' ','pi',2*'K',2*'D','D_s',2*'B','B_s','B_c', + &'pi','eta','eta''','eta_c','eta_b','eta_t','eta_l','eta_h',2*' ', + &'rho',2*'K*',2*'D*','D*_s',2*'B*','B*_s','B*_c','rho','omega', + &'phi','J/psi','Upsilon','Theta','Theta_l','Theta_h',2*' ','b_1', + &2*'K_1',2*'D_1','D_1s',2*'B_1','B_1s','B_1c','b_1','h_1','h''_1', + &'h_1c','h_1b','h_1t','h_1l','h_1h',2*' ','a_0',2*'K*_0',2*'D*_0', + &'D*_0s',2*'B*_0','B*_0s','B*_0c','a_0','f_0','f''_0','chi_0c', + &'chi_0b','chi_0t','chi_0l','chi_0h',2*' ','a_1',2*'K*_1', + &2*'D*_1','D*_1s',2*'B*_1','B*_1s','B*_1c','a_1','f_1','f''_1', + &'chi_1c','chi_1b','chi_1t','chi_1l','chi_1h',2*' ','a_2', + &2*'K*_2',2*'D*_2','D*_2s',2*'B*_2','B*_2s','B*_2c','a_2','f_2', + &'f''_2','chi_2c','chi_2b','chi_2t','chi_2l','chi_2h',2*' ','K_L', + &'K_S',8*' ','psi''',3*' ','Upsilon''',45*' ','pi_diffr'/ + DATA (CHAF(I) ,I= 282, 500)/'n_diffr','p_diffr','rho_diff', + &'omega_di','phi_diff','J/psi_di',18*' ','Lambda',5*' ', + &'Lambda_c',' ',2*'Xi_c',6*' ','Lambda_b',' ',2*'Xi_b',6*' ','n', + &'p',' ',3*'Sigma',2*'Xi',' ',3*'Sigma_c',2*'Xi''_c','Omega_c', + &4*' ',3*'Sigma_b',2*'Xi''_b','Omega_b',4*' ',4*'Delta', + &3*'Sigma*',2*'Xi*','Omega',3*'Sigma*_c',2*'Xi*_c','Omega*_c', + &4*' ',3*'Sigma*_b',2*'Xi*_b','Omega*_b',114*' '/ + +C...LUDATR, with initial values for the random number generator. + DATA MRLU/19780503,0,0,97,33,0/ + + END + +C********************************************************************* + + SUBROUTINE LYTAUD(ITAU,IORIG,KFORIG,NDECAY) + +C...Dummy routine, to be replaced by user, to handle the decay of a +C...polarized tau lepton. +C...Input: +C...ITAU is the position where the decaying tau is stored in /LYJETS/. +C...IORIG is the position where the mother of the tau is stored; +C... is 0 when the mother is not stored. +C...KFORIG is the flavour of the mother of the tau; +C... is 0 when the mother is not known. +C...Note that IORIG=0 does not necessarily imply KFORIG=0; +C... e.g. in B hadron semileptonic decays the W propagator +C... is not explicitly stored but the W code is still unambiguous. +C...Output: +C...NDECAY is the number of decay products in the current tau decay. +C...These decay products should be added to the /LYJETS/ common block, +C...in positions N+1 through N+NDECAY. For each product I you must +C...give the flavour codes K(I,2) and the five-momenta P(I,1), P(I,2), +C...P(I,3), P(I,4) and P(I,5). The rest will be stored automatically. + + COMMON/LYJETS/N,K(4000,5),P(4000,5),V(4000,5) + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /LYJETS/,/LYDAT1/ + +C...Stop program if this routine is ever called. +C...You should not copy these lines to your own routine. + NDECAY=ITAU+IORIG+KFORIG + WRITE(MSTU(11),5000) + IF(RLY(0).LT.10.) STOP + +C...Format for error printout. + 5000 FORMAT(1X,'Error: you did not link your LYTAUD routine ', + &'correctly.'/1X,'Dummy routine in JETSET file called instead.'/ + &1X,'Execution stopped!') + + + RETURN + END diff --git a/TEvtGen/EvtGenModels/jetsetCDF.F b/TEvtGen/EvtGenModels/jetsetCDF.F new file mode 100644 index 00000000000..c1027d6cd01 --- /dev/null +++ b/TEvtGen/EvtGenModels/jetsetCDF.F @@ -0,0 +1,138 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See EvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: jetset1.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C +C------------------------------------------------------------------------ + subroutine jetsetcdf(ip,m,ndaug,kf,km,px,py,pz,e) + +C +C interface to JETSET 7.4 to have one particle decayed +C including possibly fragmentation, if the decay products include +C partons. +C + + implicit none + + INTEGER MSTU,MSTJ + REAL PARU,PARJ + COMMON/LYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + SAVE /LYDAT1/ + + common/lyjets/n,k(4000,5),p(4000,5),v(4000,5) + + integer n,k + real p,v + + integer ndmax + parameter (ndmax=100) + + integer lycomp + external lycomp + + integer ip,kf(ndmax),i,ndaug,km(ndmax) + integer kp,kid,ipart1,ipart + real*8 m,px(ndmax),py(ndmax),pz(ndmax),e(ndmax) + + integer ip1 + real qmax + +c used to use ly1ent both since it does not set the mass +c of the daughter we have to manipulate the common blocks our +c self. ryd April 25-1999 + +c call ly1ent(1,ip,0.0,0.0,0.0) + + K(1,1)=1 + K(1,2)=ip + P(1,5)=m + P(1,4)=m + P(1,1)=0.0 + P(1,2)=0.0 + P(1,3)=0.0 + n=1 + + +c now we can decay this particle + call lydecy(1) + +C code copied from LUEXEC to avoid error with shower +C switched on +C...Decay products may develop a shower. + IF(MSTJ(92).GT.0) THEN + IP1=MSTJ(92) + QMAX=SQRT(MAX(0.,(P(IP1,4)+P(IP1+1,4))**2-(P(IP1,1)+P(IP1+1, + & 1))**2-(P(IP1,2)+P(IP1+1,2))**2-(P(IP1,3)+P(IP1+1,3))**2)) + CALL LYSHOW(IP1,IP1+1,QMAX) + CALL LYPREP(IP1) + MSTJ(92)=0 + ELSEIF(MSTJ(92).LT.0) THEN + IP1=-MSTJ(92) + CALL LYSHOW(IP1,-3,P(IP1,5)) + CALL LYPREP(IP1) + MSTJ(92)=0 + ENDIF + +c +c for debugging: +c call lylist(1) +c + mstj(21)=0 + call lyexec + mstj(21)=2 + +c find partons, delete secondary partons, set mother pointers + + ndaug = 0 + ipart1 = 1 + ipart = 1 + + do 10 i=2,n + kp = k(i,3) + kid = k(i,2) + if (abs(kid) .ge. 1 .and. abs(kid) .le. 8 + 1 .or. kid .eq. 21 + 2 .or. kid .ge. 91 .and. kid .le. 94) then + if (ipart1 .eq. 1) ipart1 = i + ipart = i + if (kp .ne. 1) goto 10 + kp = 0 + else + if (kp .gt. ipart) then + goto 10 + elseif (kp .ge. ipart1) then + kp = ipart1-1 + else + kp = 0 + endif + endif + ndaug = ndaug + 1 + km(ndaug)=kp + kf(ndaug)=kid + px(ndaug)=p(i,1) + py(ndaug)=p(i,2) + pz(ndaug)=p(i,3) + e(ndaug)=p(i,4) +c +c for debugging: +c print '( 2I5,I12,4F12.4 )',ndaug,km(ndaug),kf(ndaug), +c 1 px(ndaug),py(ndaug),pz(ndaug),e(ndaug) +c + 10 continue + + end + + diff --git a/TEvtGen/EvtGenModels/jetsetcont.F b/TEvtGen/EvtGenModels/jetsetcont.F new file mode 100644 index 00000000000..6ec8ab9df6a --- /dev/null +++ b/TEvtGen/EvtGenModels/jetsetcont.F @@ -0,0 +1,69 @@ +C-------------------------------------------------------------------------- +C +C Environment: +C This software is part of the EvtGen package developed jointly +C for the BaBar and CLEO collaborations. If you use all or part +C of it, please give an appropriate acknowledgement. +C +C Copyright Information: See EvtGen/COPYRIGHT +C Copyright (C) 1998 Caltech, UCSB +C +C Module: jetsetcont.F +C +C Description: +C +C Modification history: +C +C DJL/RYD August 11, 1998 Module created +C +C------------------------------------------------------------------------ + subroutine jetsetcont(energy,flavor,ndaug,kf,px,py,pz,e) + + + + implicit none + + common/lujets/n,k(4000,5),p(4000,5),v(4000,5) + + integer n,k + real p,v + + real*8 energy + + real senergy + + integer lucomp + external lucomp + + integer flavor,kf(100),i,ndaug + real*8 px(100),py(100),pz(100),e(100) + + senergy=energy + + + call lu2ent(0,flavor,-flavor,senergy) + + + ndaug=0 + + do 10,i=4,n + +c only wants the particles that are created from the +c fragmentation, not the secondary daugthers. + + if (k(i,3).eq.3) then + kf(i-3)=k(i,2) + px(i-3)=p(i,1) + py(i-3)=p(i,2) + pz(i-3)=p(i,3) + e(i-3)=p(i,4) + ndaug=ndaug+1 + endif + +10 continue + + + end + + + diff --git a/TEvtGen/EvtGenModels/pykcut.F b/TEvtGen/EvtGenModels/pykcut.F new file mode 100644 index 00000000000..a191ccb5fe9 --- /dev/null +++ b/TEvtGen/EvtGenModels/pykcut.F @@ -0,0 +1,80 @@ + +C********************************************************************* + +C...PYKCUT +C...Dummy routine, which the user can replace in order to make cuts on +C...the kinematics on the parton level before the matrix elements are +C...evaluated and the event is generated. The cross-section estimates +C...will automatically take these cuts into account, so the given +C...values are for the allowed phase space region only. MCUT=0 means +C...that the event has passed the cuts, MCUT=1 that it has failed. + + SUBROUTINE PYKCUT(MCUT) + +C...Double precision and integer declarations. + IMPLICIT DOUBLE PRECISION(A-H, O-Z) + IMPLICIT INTEGER(I-N) + INTEGER PYK,PYCHGE,PYCOMP +C...Commonblocks. + COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) + COMMON/PYINT1/MINT(400),VINT(400) + COMMON/PYINT2/ISET(500),KFPR(500,2),COEF(500,20),ICOL(40,4,2) + COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200) + SAVE /PYDAT1/,/PYINT1/,/PYINT2/,/PYPARS/ + +C...Set default value (accepting event) for MCUT. + MCUT=0 + +C...Read out subprocess number. + ISUB=MINT(1) + ISTSB=ISET(ISUB) + +C...Read out tau, y*, cos(theta), tau' (where defined, else =0). + TAU=VINT(21) + YST=VINT(22) + CTH=0D0 + IF(ISTSB.EQ.2.OR.ISTSB.EQ.4) CTH=VINT(23) + TAUP=0D0 + IF(ISTSB.GE.3.AND.ISTSB.LE.5) TAUP=VINT(26) + +C...Calculate x_1, x_2, x_F. + IF(ISTSB.LE.2.OR.ISTSB.GE.5) THEN + X1=SQRT(TAU)*EXP(YST) + X2=SQRT(TAU)*EXP(-YST) + ELSE + X1=SQRT(TAUP)*EXP(YST) + X2=SQRT(TAUP)*EXP(-YST) + ENDIF + XF=X1-X2 + +C...Calculate shat, that, uhat, p_T^2. + SHAT=TAU*VINT(2) + SQM3=VINT(63) + SQM4=VINT(64) + RM3=SQM3/SHAT + RM4=SQM4/SHAT + BE34=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4)) + RPTS=4D0*VINT(71)**2/SHAT + BE34L=SQRT(MAX(0D0,(1D0-RM3-RM4)**2-4D0*RM3*RM4-RPTS)) + RM34=2D0*RM3*RM4 + RSQM=1D0+RM34 + RTHM=(4D0*RM3*RM4+RPTS)/(1D0-RM3-RM4+BE34L) + THAT=-0.5D0*SHAT*MAX(RTHM,1D0-RM3-RM4-BE34*CTH) + UHAT=-0.5D0*SHAT*MAX(RTHM,1D0-RM3-RM4+BE34*CTH) + PT2=MAX(VINT(71)**2,0.25D0*SHAT*BE34**2*(1D0-CTH**2)) + +C...Decisions by user to be put here. +C WRITE (*,*) "PYKCUT : ",SQRT(SHAT) + IF(SHAT.LE.PARP(2)*PARP(2)) MCUT=1 +C...Stop program if this routine is ever called. +C...You should not copy these lines to your own routine. +C WRITE(MSTU(11),5000) +C IF(PYR(0).LT.10D0) STOP + +C...Format for error printout. + 5000 FORMAT(1X,'Error: you did not link your PYKCUT routine ', + &'correctly.'/1X,'Dummy routine in PYTHIA file called instead.'/ + &1X,'Execution stopped!') + + RETURN + END diff --git a/TEvtGen/EvtGenModels/pytime.F b/TEvtGen/EvtGenModels/pytime.F new file mode 100644 index 00000000000..7020d72bded --- /dev/null +++ b/TEvtGen/EvtGenModels/pytime.F @@ -0,0 +1,76 @@ + +C********************************************************************* + +C...PYTIME +C...Finds current date and time. +C...Since this task is not standardized in Fortran 77, the routine +C...is dummy, to be replaced by the user. Examples are given for +C...the Fortran 90 routine DEC Fortran 77, GNU Linux g77, and what to +C...do if you do not have access to suitable routines. + + SUBROUTINE PYTIME(IDATI) + +C...Double precision and integer declarations. + IMPLICIT DOUBLE PRECISION(A-H, O-Z) + IMPLICIT INTEGER(I-N) +C INTEGER PYK,PYCHGE,PYCOMP +C CHARACTER*8 ATIME +C...Local array. + INTEGER IDATI(6),IDTEMP(3) + +C...Example 0: if you do not have suitable routines. + DO 100 J=1,6 + IDATI(J)=0 + 100 CONTINUE + +C...Example 1: Fortran 90 routine. +C INTEGER IVAL(8) +C CALL DATE_AND_TIME(VALUES=IVAL) +C IDATI(1)=IVAL(1) +C IDATI(2)=IVAL(2) +C IDATI(3)=IVAL(3) +C IDATI(4)=IVAL(5) +C IDATI(5)=IVAL(6) +C IDATI(6)=IVAL(7) + +C...Example 2: DEC Fortran 77. AIX. +C CALL IDATE(IMON,IDAY,IYEAR) +C IDATI(1)=IYEAR +C IDATI(2)=IMON +C IDATI(3)=IDAY +C CALL ITIME(IHOUR,IMIN,ISEC) +C IDATI(4)=IHOUR +C IDATI(5)=IMIN +C IDATI(6)=ISEC + +C...Example 3: DEC Fortran, IRIX, IRIX64. +C CALL IDATE(IMON,IDAY,IYEAR) +C IDATI(1)=IYEAR +C IDATI(2)=IMON +C IDATI(3)=IDAY +C CALL TIME(ATIME) +C IHOUR=0 +C IMIN=0 +C ISEC=0 +C READ(ATIME(1:2),'(I2)') IHOUR +C READ(ATIME(4:5),'(I2)') IMIN +C READ(ATIME(7:8),'(I2)') ISEC +C IDATI(4)=IHOUR +C IDATI(5)=IMIN +C IDATI(6)=ISEC + +C...Example 4: GNU LINUX libU77, SunOS. + CALL IDATE(IDTEMP) + IDATI(1)=IDTEMP(3) + IDATI(2)=IDTEMP(2) + IDATI(3)=IDTEMP(1) + CALL ITIME(IDTEMP) + IDATI(4)=IDTEMP(1) + IDATI(5)=IDTEMP(2) + IDATI(6)=IDTEMP(3) + +C...Common code to ensure right century. + IDATI(1)=2000+MOD(IDATI(1),100) + + RETURN + END diff --git a/TEvtGen/EvtGenModels/rly.cxx b/TEvtGen/EvtGenModels/rly.cxx new file mode 100644 index 00000000000..f439212cdde --- /dev/null +++ b/TEvtGen/EvtGenModels/rly.cxx @@ -0,0 +1,13 @@ +// $Id: rly.cc,v 1.1 2009/02/18 03:34:11 ryd Exp $ +// +// Define random number generators used by JETSET + +#include "EvtGenBase/EvtRandom.hh" + +extern "C" { + extern float rly_(); +} + +float rly_(){ + return EvtRandom::Flat(); +} diff --git a/TEvtGen/EvtGenModels/stdhep.inc b/TEvtGen/EvtGenModels/stdhep.inc new file mode 100644 index 00000000000..dcb14a08a33 --- /dev/null +++ b/TEvtGen/EvtGenModels/stdhep.inc @@ -0,0 +1,39 @@ +C******************************************************* +C --------------------------------------------------------------------- +C The stdhep event common +C --------------------------------------------------------------------- +C This is the "official" event common of the HEP community for MC events. +C NEVHEP = event number +C NHEP = number of particles ("lines") +C ISTHEP(N) = stability code; 0 if stable, 1 if decays. +C IDHEP(I) = particle ID code; see PDG '92, III.73 +C JMOHEP(1,I) = line number of mother particle +C JMOHEP(2,I) = line number of last mother particle, if formed by string +C JDAHEP(1,I) = line number of 1st daughter particle +C JDAHEP(2,I) = line number of last daughter particle - MUST BE CONSECUTIVE! +C PHEP(5,I) = px,py,pz,E,m of particle +C VHEP(4,I) = x,y,z,L of production vertex + + INTEGER nmxhep ! maximum number of particles + PARAMETER ( nmxhep=4000) + REAL*8 phep, vhep ! to be real*4 or *8 depending on host + INTEGER nevhep,nhep,isthep,idhep,jmohep, + $ jdahep + COMMON /hepevt/ + $ nevhep, ! serial number + $ nhep, ! number of particles + $ isthep(nmxhep), ! status code + $ idhep(nmxhep), ! particle ident KF + $ jmohep(2,nmxhep), ! parent particles + $ jdahep(2,nmxhep), ! childreen particles + $ phep(5,nmxhep), ! four-momentum, mass [GeV] + $ vhep(4,nmxhep) ! vertex [mm] + + + +c$$$ INTEGER NMXHEP,NEVHEP,NHEP,ISTHEP,IDHEP,JMOHEP,JDAHEP +c$$$ REAL PHEP,VHEP +c$$$ PARAMETER (NMXHEP=2000) +c$$$ COMMON/STDHEP/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), +c$$$ *JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) +c$$$ SAVE /STDHEP/ diff --git a/TEvtGen/PHOTOS/CMakeLists.txt b/TEvtGen/PHOTOS/CMakeLists.txt new file mode 100644 index 00000000000..cb49e203dc5 --- /dev/null +++ b/TEvtGen/PHOTOS/CMakeLists.txt @@ -0,0 +1,25 @@ +# -*- mode: cmake -*- +# Create a library called "lib" which includes the source files given in +# the array . +# The extension is already found. Any number of sources could be listed here. + +set(INCLUDE_DIRECTORIES +${CMAKE_SOURCE_DIR}/PHOTOS +#${CMAKE_SOURCE_DIR}/MICROCERN/kerngen +${ROOT_INCLUDE_DIR} +) + +include_directories( ${INCLUDE_DIRECTORIES}) + +set(LINK_DIRECTORIES +${ROOT_LIBRARY_DIR} +) + +link_directories( ${LINK_DIRECTORIES}) + +ADD_DEFINITIONS( ${CLIBDEFS} ) + +SetModule() + +include(CMake_libPHOTOS.txt) + diff --git a/TEvtGen/PHOTOS/CMake_libPHOTOS.txt b/TEvtGen/PHOTOS/CMake_libPHOTOS.txt new file mode 100644 index 00000000000..d339d46f7a7 --- /dev/null +++ b/TEvtGen/PHOTOS/CMake_libPHOTOS.txt @@ -0,0 +1,59 @@ +# -*- mode: cmake -*- + +Set(SRCS) + +set(CSRCS +#geteni.c +#fchput.c +#fchtak.c +#dummies.c +) + +set(FSRCS +phcork.F +phint.F +phint1.F +phlupa.F +phoan1.F +phoan2.F +phobo3.F +phobos.F +phocha.F +phochk.F +phocin.F +phocor.F +phodo.F +phoene.F +phoerr.F +phofac.F +phoin.F +phoinf.F +phoini.F +phomak.F +phooma.F +phoout.F +phopre.F +phoran.F +phorep.F +phorin.F +phoro2.F +phoro3.F +phospi.F +photos.F +photos_get.F +photos_make.F +photos_set.F +photri.F +photwo.F +phtype.F +) + + +# fill list of header files from list of source files +# by exchanging the file extension +String(REPLACE ".cxx" ".h" HDRS "${SRCS}") + +Set(SRCS ${SRCS} ${FSRCS} ${CSRCS}) + +AddLibrary(photos "${SRCS}" "${HDRS}") + diff --git a/TEvtGen/PHOTOS/module.mk b/TEvtGen/PHOTOS/module.mk new file mode 100644 index 00000000000..bb917cae425 --- /dev/null +++ b/TEvtGen/PHOTOS/module.mk @@ -0,0 +1,545 @@ +#************************************************************************** +#**** This file is automatically generated from the mkmodules script ***** +#**** DO NOT EDIT!! ***** +#************************************************************************** +#-*- Mode: Makefile -*- + +#********** This part is for package photos *********** + +#Determine if it's a library or a executable +TYPE=lib + +# Package head directory, source and include directories +MODDIR:=PHOTOS +MODDIRS:=$(MODDIR) +MODDIRI:=$(MODDIR) +MODDIRO:=$(MODDIR)/tgt_$(ALICE_TARGET) +MODDIRC:=$(MODDIR)/check +MODDIRZ:=$(MODDIR)/smell +PHOTOSDIRO:=PHOTOS/tgt_$(ALICE_TARGET) + +# Reseting variables before importing pkg-file +SRCS:= +HDRS:= +FSRCS:= +DHDR:= +CSRCS:= +CHDRS:= +EINCLUDE:= +EDEFINE:= +ELIBS:= +ELIBSDIR:= +PACKFFLAGS:= +PACKCXXFLAGS:= +PACKCFLAGS:= +PACKDYFLAGS:= +PACKSOFLAGS:= +PACKLDFLAGS:= +PACKBLIBS:= +EXPORT:= +EHDRS:= +CINTHDRS:= +CINTAUTOLINK:= +ARLIBS:= +SHLIBS:= + +#-*- Mode: Makefile -*- + +FSRCS= phcork.F phint.F phint1.F phlupa.F phoan1.F phoan2.F phobo3.F \ +phobos.F phocha.F phochk.F phocin.F phocor.F phodo.F phoene.F phoerr.F \ +phofac.F phoin.F phoinf.F phoini.F phomak.F phooma.F phoout.F phopre.F \ +phoran.F phorep.F phorin.F phoro2.F phoro3.F phospi.F photos.F photos_get.F \ +photos_make.F photos_set.F photri.F photwo.F phtype.F + +#CSRCS= geteni.c fchput.c fchtak.c dummies.c + +#ifneq (,$(findstring macosx,$(ALICE_TARGET))) +#CSRCS+=lnblnk.c +#endif + +EINCLUDE:= + +#PACKFFLAGS := $(FFLAGS) -IMICROCERN/kerngen +PACKFFLAGS := $(FFLAGS) -IPYTHIA6 -L$(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET) -lpythia6 + + +#-*- Mode: Makefile -*- + + +ifndef PACKFFLAGS +photosFFLAGS:=$(FFLAGS) +else +photosFFLAGS:=$(PACKFFLAGS) +endif + +ifndef PACKCFLAGS +photosCFLAGS:=$(CFLAGS) +else +photosCFLAGS:=$(PACKCFLAGS) +endif + +ifndef PACKCXXFLAGS +photosCXXFLAGS:=$(CXXFLAGS) +else +photosCXXFLAGS:=$(PACKCXXFLAGS) +endif + +ifndef PACKSOFLAGS +photosSOFLAGS:=$(SOFLAGS) +else +photosSOFLAGS:=$(PACKSOFLAGS) +endif + +ifdef DYEXT +ifndef PACKDYFLAGS +photosDYFLAGS:=$(DYFLAGS) +else +photosDYFLAGS:=$(PACKDYFLAGS) +endif +endif + +ifndef PACKLDFLAGS +photosLDFLAGS:=$(LDFLAGS) +else +photosLDFLAGS:=$(PACKLDFLAGS) +endif + +ifndef PACKDCXXFLAGS +photosDCXXFLAGS:=$(CXXFLAGSNO) +else +photosDCXXFLAGS:=$(PACKDCXXFLAGS) +endif + +ifndef PACKBLIBS +photosBLIBS:=$(LIBS) +else +photosBLIBS:=$(PACKBLIBS) +endif + +WITHDICT= +ifneq ($(DHDR),) +WITHDICT=YES +else +ifneq ($(CINTAUTOLINK),) +WITHDICT=YES +endif +endif + +# Headerfiles exported to common place: +photosEXPORT:=$(EXPORT) +photosEXPORTDEST:=$(patsubst %,$(EXPORTDIR)/%,$(EXPORT)) + + +#Extra include,libs, defines etc. + +photosDEFINE:=$(EDEFINE) -D_MODULE_=\"PHOTOS\" + +photosINC:=$(patsubst %,-I%,$(EINCLUDE)) -IPHOTOS + +photosELIBS:=$(patsubst %,-l%,$(ELIBS)) +photosELIBSDEP:=$(patsubst %,lib/tgt_$(ALICE_TARGET)/lib%.$(SOEXT),$(ELIBS)) +photosELIBSDIR:=$(patsubst %,-L%,$(ELIBSDIR)) + +#c sources and headers + +photosCS:=$(patsubst %,$(MODDIR)/%,$(CSRCS)) +photosCH:=$(patsubst %,$(MODDIR)/%,$(CHDRS)) + +#Fortran sources +photosFS:=$(patsubst %,$(MODDIR)/%,$(FSRCS)) + +#c++ sources and header +photosS:=$(patsubst %,$(MODDIR)/%,$(SRCS)) +photosH:=$(patsubst %,$(MODDIR)/%,$(HDRS)) $(EHDRS) + +############################################################################# +# +# If special rootcint headerfiles is specified use them +# else use all headers + +ifndef CINTHDRS +photosCINTHDRS:=$(photosH) +else +photosCINTHDRS:=$(CINTHDRS:%=PHOTOS/%) +#photosCINTHDRS:=$(pathsubst %,PHOTOS/%,$(CINTHDRS)) +endif +photosCINTCLASSES:=$(patsubst %.h,%,$(notdir $(photosCINTHDRS))) +############################################################################# + +# Package Dictionary +ifneq ($(DHDR),) +photosDH:=$(MODDIR)/$(DHDR) +else +photosDH:= +endif +ifneq ($(CINTAUTOLINK),) +photosDAL:=$(MODDIRO)/G__photosAutoLinkDef.h +photosDH+=$(photosDAL) +endif + +#All objects +photosCXXO:=$(patsubst %,$(MODDIRO)/%, $(SRCS:.cxx=.o)) +photosCO:=$(patsubst %,$(MODDIRO)/%, $(CSRCS:.c=.o)) +photosSMALLFO:=$(patsubst %.f,$(MODDIRO)/%.o, $(filter %.f, $(FSRCS))) +photosCAPITFO:=$(patsubst %.F,$(MODDIRO)/%.o, $(filter %.F, $(FSRCS))) +photosFO:=$(photosSMALLFO) $(photosCAPITFO) +photosO:= $(photosCXXO) $(photosFO) $(photosCO) +photosCHV:=$(patsubst %,$(MODDIRC)/%, $(SRCS:.cxx=.viol)) +photosSML:=$(sort $(patsubst %,$(MODDIRZ)/%, $(filter $(SRCS:.cxx=.smell),$(HDRS:.h=.smell)))) + + +ifdef WITHDICT + photosDS:=$(MODDIRO)/G__photos.cxx + photosDO:=$(MODDIRO)/G__photos.o + photosDDEP:=$(photosDO:.o=.d) + photosDEP:=$(photosO:.o=.d) $(photosDDEP) +else + photosDS:= + photosDO:= + photosDDEP:= + photosDEP:=$(photosO:.o=.d) +endif + + +#The actual library file + +photosLIB:=$(LIBPATH)/libphotos.$(SOEXT) + +ifneq ($(DYEXT),) +photosDLIB:=$(LIBPATH)/libphotos.$(DYEXT) +endif + +photosALIB:=$(LIBPATH)/libphotos.$(AEXT) + +#Add this to the modules libs +ifeq ($(TYPE),lib) +PHOTOSLIBS += $(photosLIB) +PHOTOSALIBS += $(photosALIB) +ifneq ($(DYEXT),) +PHOTOSDLIBS += $(photosDLIB) +endif +endif + +#The actual binary file + +photosBIN:=$(BINPATH)/photos + +#Add to modules list of binaries +PHOTOSBINS += $(photosBIN) + +# Use in the main Makefile + +ifeq ($(TYPE),lib) +ALLLIBS += $(photosLIB) +ALLALIBS += $(photosALIB) +ifneq ($(DYEXT),) +ALLLIBS += $(photosDLIB) +endif +BINLIBS += -lphotos +else +ALLEXECS += $(photosBIN) +endif + +ifeq ($(DYEXT),) +photosLIB := $(photosLIB) +else +photosLIB := $(photosLIB) +endif + +# include all dependence files +INCLUDEFILES +=$(photosDEP) + +EXPORTFILES += $(photosEXPORTDEST) + +#local rules + +#The exportfiles only include if any!! + +ifdef photosEXPORT +#$(photosEXPORTDEST): $(patsubst %,PHOTOS/%,$(photosEXPORT)) + +$(photosEXPORTDEST): $(EXPORTDIR)/%.h: PHOTOS/%.h +ifndef ALIQUIET + @echo "***** Copying file $^ to $@ *****" +endif + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + @cp $^ $@ +endif + +#------------------------------------------------------------------------ + +ifneq (,$(findstring macosx,$(ALICE_TARGET))) +$(photosLIB): $(photosDLIB) $(photosO) $(photosDO) PHOTOS/module.mk +ifndef ALIQUIET + @echo "***** Linking library $@ *****" +endif + $(MUTE)rm -f $@; cd $(dir $@); ln -s $(notdir $(photosDLIB)) $(notdir $@) +else +$(photosLIB):$(photosO) $(photosDO) PHOTOS/module.mk +ifndef ALIQUIET + @echo "***** Linking library $@ *****" +endif + \rm -f "$(CURDIR)"/$@ ;\ + cd $(PHOTOSDIRO) ;\ + $(SHLD) $(photosSOFLAGS) -o "$(CURDIR)"/$@ $(patsubst $(PHOTOSDIRO)/%,%,$(photosO) $(photosDO)) $(photosELIBSDIR) $(photosELIBS) $(SHLIB);\ + chmod a-w "$(CURDIR)"/$@ ;\ + cd $(ALICE_ROOT) +endif + +ifneq ($(DYEXT),) +$(photosDLIB):$(photosO) $(photosDO) PHOTOS/module.mk +ifndef ALIQUIET + @echo "***** Linking library $@ *****" +endif + \rm -f "$(CURDIR)"/$@ ;\ + cd $(PHOTOSDIRO) ;\ + $(DYLD) $(photosDYFLAGS) -o "$(CURDIR)"/$@ $(patsubst $(PHOTOSDIRO)/%,%,$(photosO) $(photosDO)) $(photosELIBSDIR) $(photosELIBS) $(DYLIB);\ + chmod a-w "$(CURDIR)"/$@ ;\ + cd $(ALICE_ROOT) +endif + +#------------------------------------------------------------------------ + +$(photosALIB):$(photosO) $(photosDO) PHOTOS/module.mk +ifndef ALIQUIET + @echo "***** Linking static library $@ *****" +endif + \rm -f "$(CURDIR)"/$@ ;\ + cd $(PHOTOSDIRO) ;\ + $(ALLD) $(ALFLAGS) "$(CURDIR)"/$@ $(patsubst $(PHOTOSDIRO)/%,%,$(photosO) $(photosDO)) $(photosELIBSDIR) $(photosELIBS) $(ALLIB);\ + cd $(ALICE_ROOT) + + +$(photosBIN):$(photosO) $(photosDO) PHOTOS/module.mk +ifndef ALIQUIET + @echo "***** Making executable $@ *****" +endif +ifeq ($(ALIPROFILE),YES) + $(MUTE)$(LD) $(photosLDFLAGS) $(photosO) $(ARLIBS) $(SHLIBS) $(photosBLIBS) $(EXEFLAGS) -o $@ +else + $(MUTE)$(LD) $(photosLDFLAGS) $(photosO) $(photosDO) $(BINLIBDIRS) $(photosELIBSDIR) $(photosELIBS) $(photosBLIBS) $(EXEFLAGS) -o $@ +endif + +$(photosDAL): $(photosCINTHDRS) PHOTOS/module.mk +ifndef ALIQUIET + @echo "***** Creating $@ *****"; +endif + $(MUTE)echo '//automatically generated ROOT DICT definition' > $@ + $(MUTE)echo '//!!! DO NOT EDIT THIS FILE !!!' >> $@ + $(MUTE)echo '#ifdef __CINT__' >> $@ + $(MUTE)echo '#pragma link off all globals;' >> $@ + $(MUTE)echo '#pragma link off all classes;' >> $@ + $(MUTE)echo '#pragma link off all functions;' >> $@ + $(MUTE)$(foreach i, $(photosCINTCLASSES), \ + echo "#pragma link C++ class $(i)+;" >> $@ ;) + $(MUTE)echo '#endif' >> $@ + +$(photosDS): $(photosCINTHDRS) $(photosDH) PHOTOS/module.mk +ifndef ALIQUIET + @echo "***** Creating $@ *****"; +endif + @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) + @\rm -f $(patsubst %.cxx,%.d, $@) + $(MUTE)rootcint -f $@ -c $(photosDEFINE) $(CINTFLAGS) $(photosINC) $(photosCINTHDRS) $(photosDH) + +$(photosDO): $(photosDS) +ifndef ALIQUIET + @echo "***** Compiling $< *****"; +endif + $(MUTE)$(CXX) $(photosDEFINE) -c $(photosINC) -I$(ALICE_ROOT) $< -o $@ $(photosDCXXFLAGS) + + +#Different targets for the module + +ifeq ($(TYPE),lib) +all-PHOTOS: $(photosLIB) +ifneq ($(DYEXT),) +all-PHOTOS: $(photosDLIB) +endif +else +all-PHOTOS: $(photosBIN) +endif + + +depend-photos: $(photosDEP) + +# determination of object files +$(photosCXXO): $(MODDIRO)/%.o: $(MODDIR)/%.cxx $(MODDIRO)/%.d +ifndef ALIQUIET + @echo "***** Compiling $< *****"; +endif + @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) + $(MUTE)$(CXX) $(photosDEFINE) -c $(photosINC) $< -o $@ $(photosCXXFLAGS) + +$(photosCAPITFO): $(MODDIRO)/%.o: $(MODDIR)/%.F $(MODDIRO)/%.d +ifndef ALIQUIET + @echo "***** Compiling $< *****"; +endif + @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) + $(MUTE)$(F77) -c $(photosINC) $< -o $@ $(photosFFLAGS) + +$(photosSMALLFO): $(MODDIRO)/%.o: $(MODDIR)/%.f $(MODDIRO)/%.d +ifndef ALIQUIET + @echo "***** Compiling $< *****"; +endif + @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) + $(MUTE)$(F77) -c $(photosINC) $< -o $@ $(photosFFLAGS) + +$(photosCO): $(MODDIRO)/%.o: $(MODDIR)/%.c $(MODDIRO)/%.d +ifndef ALIQUIET + @echo "***** Compiling $< *****"; +endif + @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) + $(MUTE)$(CC) $(photosDEFINE) -c $(photosINC) $< -o $@ $(photosCFLAGS) + +$(photosDDEP): $(photosDS) +ifndef ALIQUIET + @echo "***** Making dependences for $< *****"; +endif + @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) + @share/alibtool depend "$(photosELIBSDIR) $(photosINC) $(DEPINC) $<" > $@ + +$(photosCXXO:.o=.d): $(MODDIRO)/%.d: $(MODDIRS)/%.cxx +ifndef ALIQUIET + @echo "***** Making dependences for $< *****"; +endif + @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) + @share/alibtool depend "$(photosDEFINE) $(photosELIBSDIR) $(photosINC) $(DEPINC) $<" > $@ + +$(photosSMALLFO:.o=.d): $(MODDIRO)/%.d: $(MODDIRS)/%.f +ifndef ALIQUIET + @echo "***** Making dependences for $< *****"; +endif + @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) + @share/alibtool dependF "$(photosELIBSDIR) $(photosINC) $(DEPINC) $<" > $@ + +$(photosCAPITFO:.o=.d): $(MODDIRO)/%.d: $(MODDIRS)/%.F +ifndef ALIQUIET + @echo "***** Making dependences for $< *****"; +endif + @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) + $(MUTE)share/alibtool dependF "$(photosELIBSDIR) $(photosINC) $(DEPINC) $<" > $@ + +$(photosCO:.o=.d): $(MODDIRO)/%.d: $(MODDIRS)/%.c +ifndef ALIQUIET + @echo "***** Making dependences for $< *****"; +endif + @(if [ ! -d '$(dir $@)' ]; then echo "***** Making directory $(dir $@) *****"; mkdir -p $(dir $@); fi;) + @share/alibtool depend "$(photosDEFINE) $(photosELIBSDIR) $(photosINC) $(DEPINC) $<" > $@ + +.PRECIOUS: $(patsubst %.cxx,$(MODDIRO)/%.d,$(SRCS)) +.PRECIOUS: $(patsubst %.c,$(MODDIRO)/%.d,$(CSRCS)) +.PRECIOUS: $(patsubst %.F,$(MODDIRO)/%.d,$(patsubst %.f,$(MODDIRO)/%.d,$(FSRCS))) + +check-PHOTOS: $(photosCHV) + +# IRST coding rule check +$(photosCHV:.viol=.i): $(MODDIRC)/%.i: $(MODDIR)/%.cxx $(MODDIRO)/%.d + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + $(MUTE)$(CXX) -E $(photosDEFINE) $(photosINC) -I. $< > $@ $(photosCXXFLAGS) + @cd $(dir $@) ; $(IRST_INSTALLDIR)/patch/patch4alice.prl $(notdir $@) + +# IRST coding rule check +$(photosCHV): $(MODDIRC)/%.viol: $(MODDIRC)/%.i + $(MUTE)echo $@ ; $(CODE_CHECK) $< $(shell echo $(dir $<) | sed -e 's:/check::') > $@ + +.SECONDARY: $(photosCHV:.viol=.i) $(photosCHI:.viol=.ii) + +PACKREVENG += $(photosCHV:.viol=.ii) + +# IRST code smell checker + +smell-PHOTOS: $(photosSML) + +$(photosSML:.smell=_cxx.ml) : $(MODDIRZ)/%_cxx.ml : $(MODDIR)/%.cxx + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + $(MUTE)src2srcml $< $@ + +$(photosSML:.smell=_h.ml) : $(MODDIRZ)/%_h.ml : $(MODDIR)/%.h + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + $(MUTE)src2srcml $< $@ + +$(photosSML) : $(MODDIRZ)/%.smell : $(MODDIRZ)/%_cxx.ml $(MODDIRZ)/%_h.ml + $(MUTE)echo smelling $@ + $(MUTE)java -classpath $(SMELL_DETECTOR_DIR):$(SMELL_DETECTOR_DIR)/xom-1.1.jar -Xmx500m SmellDetector $^ > $@ + $(MUTE)[ -s $@ ] || touch $@ + +.SECONDARY: $(photosSML:.smell=_cxx.ml) $(photosSML:.smell=_h.ml) + +# targets to create .par archives (jgrosseo) +photos.par: $(patsubst %,PHOTOS/photos/%,$(filter-out dict.%, $(HDRS) $(SRCS) $(DHDR) $(PKGFILE) $(FSRCS) Makefile Makefile.arch libphotos.pkg PROOF-INF)) + @echo "Creating archive" $@ ... + @cd PHOTOS; (tar cfzh ../$@ photos 2> /dev/null && echo "package" $@ "created in" $(PWD)/$@) || (tar cfzh /tmp/$@ photos 2> /dev/null && echo "package" $@ "created in /tmp/"$@) + @rm -rf PHOTOS/photos + +PHOTOS/photos/Makefile: PHOTOS/Makefile + @echo Copying $< to $@ with transformations + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + @sed 's/include \$$(ROOTSYS)\/test\/Makefile.arch/include Makefile.arch/; s/PACKAGE = .*/PACKAGE = photos/' < $^ > $@ + +PHOTOS/photos/Makefile.arch: $(ROOTSYS)/test/Makefile.arch + @echo Copying $< to $@ + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + @cp -pR $^ $@ + +PHOTOS/photos/PROOF-INF: PHOTOS/PROOF-INF.photos + @echo Copying $< to $@ + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + @cp -pR $^ $@ + +PHOTOS/photos/%: PHOTOS/% + @echo Copying $< to $@ + @[ -d $(dir $@) ] || mkdir -p $(dir $@) + @cp -pR $< $@ + +test-photos.par: photos.par + @echo "INFO: The file $< is now tested, in case of an error check in par-tmp/photos." + @mkdir -p par-tmp + @cd par-tmp; tar xfz ../$<; cd $(subst .par,,$<); PROOF-INF/BUILD.sh + @rm -rf par-tmp/photos + @echo "INFO: Testing succeeded (already cleaned up)" +#-*- Mode: Makefile -*- + + +reveng-PHOTOS: PHOTOS/check/classDiagram.dot + +PHOTOS/check/classDiagram.dot: $(PACKREVENG) + @$(REV_ENG) $^ + @-mv classDiagram.dot $@ + +revdisp-PHOTOS: reveng-PHOTOS + @echo revdisp for PHOTOS + @cd PHOTOS/check ; \ + $(IRST_INSTALLDIR)/webreveng/create-class-diagram-pages.sh + @sed -e "s/STEER/PHOTOS/g" < $(IRST_INSTALLDIR)/webreveng/WWW/STEER/HomePage.html > PHOTOS/check/HomePage.html + +PACKREVENG = + +# Clean option for the whole module +clean-PHOTOS: +ifndef ALIQUIET + @echo "***** Cleaning PHOTOS *****" +endif + $(MUTE)rm PHOTOS/module.mk + $(MUTE)rm -rf PHOTOS/tgt_$(ALICE_TARGET) + $(MUTE)rm -f $(PHOTOSLIBS) + $(MUTE)rm -f $(PHOTOSBINS) + +clean-check-PHOTOS: +ifndef ALIQUIET + @echo "***** Cleaning code check for PHOTOS *****" +endif + $(MUTE)rm -f `find PHOTOS/check -name '*.i'` `find PHOTOS/check -name '*.ii'` `find PHOTOS/check -name '*.viol'` + +clean-smell-PHOTOS: +ifndef ALIQUIET + @echo "***** Cleaning code smell for PHOTOS *****" +endif + $(MUTE)rm -f `find PHOTOS/check -name '*.ml'` `find PHOTOS/check -name '*.smell'` + +clean-reveng-PHOTOS: +ifndef ALIQUIET + @echo "***** Cleaning reverse engineering files for PHOTOS *****" +endif + $(MUTE)rm -f `find PHOTOS/check -name '*.dot'` + diff --git a/TEvtGen/PHOTOS/phcork.F b/TEvtGen/PHOTOS/phcork.F new file mode 100644 index 00000000000..9eaaa7381be --- /dev/null +++ b/TEvtGen/PHOTOS/phcork.F @@ -0,0 +1,199 @@ + + + + SUBROUTINE PHCORK(MODCOR) + implicit none +C.---------------------------------------------------------------------- +C. +C. PHCORK: corrects kinmatics of subbranch needed if host program +C. produces events with the shaky momentum conservation +C +C. Input Parameters: Common /PHOEVT/, MODCOR +C. MODCOR >0 type of action +C. =1 no action +C. =2 corrects energy from mass +C. =3 corrects mass from energy +C. =4 corrects energy from mass for +C. particles up to .4 GeV mass, +C. for heavier ones corrects mass, +C. =0 execution mode +C. +C. Output Parameters: corrected /PHOEVT/ +C. +C. Author(s): P.Golonka, Z. Was Created at: 01/02/99 +C. Modified : 08/02/99 +C.---------------------------------------------------------------------- + INTEGER NMXPHO + PARAMETER (NMXPHO=10000) + + REAL*8 M,P2,PX,PY,PZ,E,EN,MCUT + INTEGER MODCOR,MODOP,I,IEV,IPRINT + INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO + REAL*8 PPHO,VPHO + COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO), + &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO) + + INTEGER PHLUN + COMMON/PHOLUN/PHLUN + + COMMON /PHNUM/ IEV + SAVE MODOP + DATA MODOP /0/ + SAVE IPRINT + DATA IPRINT /0/ + SAVE MCUT + IF (MODCOR.NE.0) THEN +C INITIALIZATION + MODOP=MODCOR + + WRITE(PHLUN,*) 'Message from PHCORK(MODCOR):: initialization' + IF (MODOP.EQ.1) THEN + WRITE(PHLUN,*) 'MODOP=1 -- no corrections on event: DEFAULT' + ELSEIF (MODOP.EQ.2) THEN + WRITE(PHLUN,*) 'MODOP=2 -- corrects Energy from mass' + ELSEIF (MODOP.EQ.3) THEN + WRITE(PHLUN,*) 'MODOP=3 -- corrects mass from Energy' + ELSEIF (MODOP.EQ.4) THEN + WRITE(PHLUN,*) 'MODOP=4 -- corrects Energy from mass to Mcut' + WRITE(PHLUN,*) ' and mass from energy above Mcut ' + MCUT=0.4 + WRITE(PHLUN,*) 'Mcut=',MCUT,'GeV' + ELSE + WRITE(PHLUN,*) 'PHCORK wrong MODCOR=',MODCOR + STOP + ENDIF + RETURN + ENDIF + + IF (MODOP.EQ.0.AND.MODCOR.EQ.0) THEN + WRITE(PHLUN,*) 'PHCORK lack of initialization' + STOP + ENDIF + +C execution mode +C ============== +C ============== + + + PX=0 + PY=0 + PZ=0 + E =0 + + IF (MODOP.EQ.1) THEN +C ----------------------- +C In this case we do nothing + RETURN + ELSEIF(MODOP.EQ.2) THEN +C ----------------------- +CC lets loop thru all daughters and correct their energies +CC according to E^2=p^2+m^2 + + DO I=3,NPHO + + PX=PX+PPHO(1,I) + PY=PY+PPHO(2,I) + PZ=PZ+PPHO(3,I) + + P2=PPHO(1,I)**2+PPHO(2,I)**2+PPHO(3,I)**2 + + EN=SQRT( PPHO(5,I)**2 + P2) + + IF (IPRINT.EQ.1) + & WRITE(PHLUN,*) 'CORRECTING ENERGY OF ',I,':', + & PPHO(4,I),'=>',EN + + PPHO(4,I)=EN + E = E+PPHO(4,I) + + ENDDO + + ELSEIF(MODOP.EQ.3) THEN +C ----------------------- + +CC lets loop thru all daughters and correct their masses +CC according to E^2=p^2+m^2 + + DO I=3,NPHO + + PX=PX+PPHO(1,I) + PY=PY+PPHO(2,I) + PZ=PZ+PPHO(3,I) + E = E+PPHO(4,I) + + P2=PPHO(1,I)**2+PPHO(2,I)**2+PPHO(3,I)**2 + + M=SQRT(ABS( PPHO(4,I)**2 - P2)) + + IF (IPRINT.EQ.1) + & WRITE(PHLUN,*) 'CORRECTING MASS OF ',I,':', + & PPHO(5,I),'=>',M + + PPHO(5,I)=M + + ENDDO + + + ELSEIF(MODOP.EQ.4) THEN +C ----------------------- + +CC lets loop thru all daughters and correct their masses +CC or energies according to E^2=p^2+m^2 + + DO I=3,NPHO + + PX=PX+PPHO(1,I) + PY=PY+PPHO(2,I) + PZ=PZ+PPHO(3,I) + + P2=PPHO(1,I)**2+PPHO(2,I)**2+PPHO(3,I)**2 + + M=SQRT(ABS( PPHO(4,I)**2 - P2)) + + IF (M.GT.MCUT) THEN + IF (IPRINT.EQ.1) + & WRITE(PHLUN,*) 'CORRECTING MASS OF ',I,':', + & PPHO(5,I),'=>',M + PPHO(5,I)=M + E = E+PPHO(4,I) + ELSE + + EN=SQRT( PPHO(5,I)**2 + P2) + + IF (IPRINT.EQ.1) + & WRITE(PHLUN,*) 'CORRECTING ENERGY OF ',I,':', + & PPHO(4,I),'=>',EN + + PPHO(4,I)=EN + E = E+PPHO(4,I) + ENDIF + + ENDDO + ENDIF +C ----- + + IF (IPRINT.EQ.1) THEN + WRITE(PHLUN,*) 'CORRECTING MOTHER' + WRITE(PHLUN,*) 'PX:',PPHO(1,1),'=>',PX-PPHO(1,2) + WRITE(PHLUN,*) 'PY:',PPHO(2,1),'=>',PY-PPHO(2,2) + WRITE(PHLUN,*) 'PZ:',PPHO(3,1),'=>',PZ-PPHO(3,2) + WRITE(PHLUN,*) ' E:',PPHO(4,1),'=>',E-PPHO(4,2) + ENDIF + + PPHO(1,1)=PX-PPHO(1,2) + PPHO(2,1)=PY-PPHO(2,2) + PPHO(3,1)=PZ-PPHO(3,2) + PPHO(4,1)=E -PPHO(4,2) + + P2=PPHO(1,1)**2+PPHO(2,1)**2+PPHO(3,1)**2 + + IF (PPHO(4,1)**2.GT.P2) THEN + M=SQRT( PPHO(4,1)**2 - P2 ) + IF (IPRINT.EQ.1) + & WRITE(PHLUN,*) ' M:',PPHO(5,1),'=>',M + PPHO(5,1)=M + ENDIF + + CALL PHLUPA(25) + + END diff --git a/TEvtGen/PHOTOS/phint.F b/TEvtGen/PHOTOS/phint.F new file mode 100644 index 00000000000..7cdb11ab47c --- /dev/null +++ b/TEvtGen/PHOTOS/phint.F @@ -0,0 +1,103 @@ + + FUNCTION PHINT(IDUM) +C.---------------------------------------------------------------------- +C. +C. PHINT: PHotos INTerference +C. +C. Purpose: Calculates interference between emission of photons from +C. different possible chaged daughters stored in +C. the HEP common /PHOEVT/. +C. +C. Input Parameter: commons /PHOEVT/ /PHOMOM/ /PHOPHS/ +C. +C. +C. Output Parameters: +C. +C. +C. Author(s): Z. Was, Created at: 10/08/93 +C. Last Update: +C. +C.---------------------------------------------------------------------- + + IMPLICIT NONE + REAL*8 PHINT,phint1 + REAL*8 PHOCHA + INTEGER IDUM + INTEGER NMXPHO + PARAMETER (NMXPHO=10000) + INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO + REAL*8 PPHO,VPHO + COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO), + &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO) + DOUBLE PRECISION MCHSQR,MNESQR + REAL*8 PNEUTR + COMMON/PHOMOM/MCHSQR,MNESQR,PNEUTR(5) + DOUBLE PRECISION COSTHG,SINTHG + REAL*8 XPHMAX,XPHOTO + COMMON/PHOPHS/XPHMAX,XPHOTO,COSTHG,SINTHG + REAL*8 MPASQR,XX,BETA,PQ1(4),PQ2(4),PPHOT(4) + REAL*8 SS,PP2,PP,E1,E2,Q1,Q2,COSTHE + LOGICAL IFINT + INTEGER K,IDENT +C + DO K=JDAPHO(2,1),JDAPHO(1,1),-1 + IF(IDPHO(K).NE.22) THEN + IDENT=K + GOTO 20 + ENDIF + ENDDO + 20 CONTINUE +C check if there is a photon + IFINT= NPHO.GT.IDENT +C check if it is two body + gammas reaction + IFINT= IFINT.AND.(IDENT-JDAPHO(1,1)).EQ.1 +C check if two body was particle antiparticle (we improve on it ! +C IFINT= IFINT.AND.IDPHO(JDAPHO(1,1)).EQ.-IDPHO(IDENT) +C check if particles were charged + IFINT= IFINT.AND.abs(PHOCHA(IDPHO(IDENT))).GT.0.01D0 +C check if they have both charge + IFINT= IFINT.AND. + $ abs(PHOCHA(IDPHO(JDAPHO(1,1)))).gt.0.01D0 +C calculates interference weight contribution + IF(IFINT) THEN + MPASQR = PPHO(5,1)**2 + XX=4.D0*MCHSQR/MPASQR*(1.-XPHOTO)/(1.-XPHOTO+(MCHSQR-MNESQR)/ + & MPASQR)**2 + BETA=SQRT(1.D0-XX) + PHINT = 2D0/(1D0+COSTHG**2*BETA**2) + SS =MPASQR*(1.D0-XPHOTO) + PP2=((SS-MCHSQR-MNESQR)**2-4*MCHSQR*MNESQR)/SS/4 + PP =SQRT(PP2) + E1 =SQRT(PP2+MCHSQR) + E2 =SQRT(PP2+MNESQR) + PHINT= (E1+E2)**2/((E2+COSTHG*PP)**2+(E1-COSTHG*PP)**2) +C + q1=PHOCHA(IDPHO(JDAPHO(1,1))) + q2=PHOCHA(IDPHO(IDENT)) + do k=1,4 + pq1(k)=ppho(k,JDAPHO(1,1)) + pq2(k)=ppho(k,JDAPHO(1,1)+1) + pphot(k)=ppho(k,npho) + enddo + costhe=(pphot(1)*pq1(1)+pphot(2)*pq1(2)+pphot(3)*pq1(3)) + costhe=costhe/sqrt(pq1(1)**2+pq1(2)**2+pq1(3)**2) + costhe=costhe/sqrt(pphot(1)**2+pphot(2)**2+pphot(3)**2) +C +! --- this IF checks whether JDAPHO(1,1) was MCH or MNE. +! --- COSTHG angle (and in-generation variables) may be better choice +! --- than costhe. note that in the formulae below amplitudes were +! --- multiplied by (E2+COSTHG*PP)*(E1-COSTHG*PP). + IF (costhg*costhe.GT.0) then + + PHINT= (q1*(E2+COSTHG*PP)-q2*(E1-COSTHG*PP))**2 + & /(q1**2*(E2+COSTHG*PP)**2+q2**2*(E1-COSTHG*PP)**2) + ELSE + + PHINT= (q1*(E1-COSTHG*PP)-q2*(E2+COSTHG*PP))**2 + & /(q1**2*(E1-COSTHG*PP)**2+q2**2*(E2+COSTHG*PP)**2) + ENDIF + ELSE + PHINT = 1D0 + ENDIF + phint1=1 + END diff --git a/TEvtGen/PHOTOS/phint1.F b/TEvtGen/PHOTOS/phint1.F new file mode 100644 index 00000000000..c2cd49d2138 --- /dev/null +++ b/TEvtGen/PHOTOS/phint1.F @@ -0,0 +1,67 @@ + FUNCTION PHINT1(IDUM) +C.---------------------------------------------------------------------- +C. +C. PHINT: PHotos INTerference (Old version kept for tests only. +C. +C. Purpose: Calculates interference between emission of photons from +C. different possible chaged daughters stored in +C. the HEP common /PHOEVT/. +C. +C. Input Parameter: commons /PHOEVT/ /PHOMOM/ /PHOPHS/ +C. +C. +C. Output Parameters: +C. +C. +C. Author(s): Z. Was, Created at: 10/08/93 +C. Last Update: 15/03/99 +C. +C.---------------------------------------------------------------------- + + IMPLICIT NONE + REAL*8 PHINT,phint1 + REAL*8 PHOCHA + INTEGER IDUM + INTEGER NMXPHO + PARAMETER (NMXPHO=10000) + INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO + REAL*8 PPHO,VPHO + COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO), + &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO) + DOUBLE PRECISION MCHSQR,MNESQR + REAL*8 PNEUTR + COMMON/PHOMOM/MCHSQR,MNESQR,PNEUTR(5) + DOUBLE PRECISION COSTHG,SINTHG + REAL*8 XPHMAX,XPHOTO + COMMON/PHOPHS/XPHMAX,XPHOTO,COSTHG,SINTHG + REAL*8 MPASQR,XX,BETA + LOGICAL IFINT + INTEGER K,IDENT +C + DO K=JDAPHO(2,1),JDAPHO(1,1),-1 + IF(IDPHO(K).NE.22) THEN + IDENT=K + GOTO 20 + ENDIF + ENDDO + 20 CONTINUE +C check if there is a photon + IFINT= NPHO.GT.IDENT +C check if it is two body + gammas reaction + IFINT= IFINT.AND.(IDENT-JDAPHO(1,1)).EQ.1 +C check if two body was particle antiparticle + IFINT= IFINT.AND.IDPHO(JDAPHO(1,1)).EQ.-IDPHO(IDENT) +C check if particles were charged + IFINT= IFINT.AND.PHOCHA(IDPHO(IDENT)).NE.0 +C calculates interference weight contribution + IF(IFINT) THEN + MPASQR = PPHO(5,1)**2 + XX=4.D0*MCHSQR/MPASQR*(1.D0-XPHOTO)/(1.D0-XPHOTO+(MCHSQR-MNESQR) + & /MPASQR)**2 + BETA=SQRT(1.D0-XX) + PHINT = 2D0/(1D0+COSTHG**2*BETA**2) + ELSE + PHINT = 1D0 + ENDIF + phint1=1 + END diff --git a/TEvtGen/PHOTOS/phlupa.F b/TEvtGen/PHOTOS/phlupa.F new file mode 100644 index 00000000000..2e2da71d0d5 --- /dev/null +++ b/TEvtGen/PHOTOS/phlupa.F @@ -0,0 +1,59 @@ + SUBROUTINE PHLUPA(IPOINT) +C.---------------------------------------------------------------------- +C. +C. PHLUPA: debugging tool +C. +C. Purpose: NONE, eventually may printout content of the +C. /PHOEVT/ common +C. +C. Input Parameters: Common /PHOEVT/ and /PHNUM/ +C. latter may have number of the event. +C. +C. Output Parameters: None +C. +C. Author(s): Z. Was Created at: 30/05/93 +C. Last Update: 10/08/93 +C. +C.---------------------------------------------------------------------- + INTEGER NMXPHO + PARAMETER (NMXPHO=10000) + INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO + REAL*8 PPHO,VPHO + COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO), + &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO) + COMMON /PHNUM/ IEV + INTEGER PHLUN + COMMON/PHOLUN/PHLUN + DIMENSION SUM(5) + IF (IPOINT.LT.3000) RETURN + IOUT=56 + IF (IEV.LT.1000) THEN + DO I=1,5 + SUM(I)=0.0D0 + ENDDO + WRITE(PHLUN,*) 'EVENT NR=',IEV, + $ 'WE ARE TESTING /PHOEVT/ at IPOINT=',IPOINT + WRITE(PHLUN,10) + I=1 + WRITE(PHLUN,20) IDPHO(I),PPHO(1,I),PPHO(2,I),PPHO(3,I), + $ PPHO(4,I),PPHO(5,I),JDAPHO(1,I),JDAPHO(2,I) + I=2 + WRITE(PHLUN,20) IDPHO(I),PPHO(1,I),PPHO(2,I),PPHO(3,I), + $ PPHO(4,I),PPHO(5,I),JDAPHO(1,I),JDAPHO(2,I) + WRITE(PHLUN,*) ' ' + DO I=3,NPHO + WRITE(PHLUN,20) IDPHO(I),PPHO(1,I),PPHO(2,I),PPHO(3,I), + $ PPHO(4,I),PPHO(5,I),JMOPHO(1,I),JMOPHO(2,I) + DO J=1,4 + SUM(J)=SUM(J)+PPHO(J,I) + ENDDO + ENDDO + SUM(5)=SQRT(ABS(SUM(4)**2-SUM(1)**2-SUM(2)**2-SUM(3)**2)) + WRITE(PHLUN,30) SUM + 10 FORMAT(1X,' ID ','p_x ','p_y ','p_z ', + $ 'E ','m ', + $ 'ID-MO_DA1','ID-MO DA2' ) + 20 FORMAT(1X,I4,5(F9.3),2I9) + 30 FORMAT(1X,' SUM',5(F9.3)) + ENDIF + END diff --git a/TEvtGen/PHOTOS/phoan1.F b/TEvtGen/PHOTOS/phoan1.F new file mode 100644 index 00000000000..072b36e1126 --- /dev/null +++ b/TEvtGen/PHOTOS/phoan1.F @@ -0,0 +1,29 @@ + FUNCTION PHOAN1(X,Y) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays calculation of ANgle '1' +C. +C. Purpose: Calculate angle from X and Y +C. +C. Input Parameters: X, Y +C. +C. Output Parameter: Function value +C. +C. Author(s): S. Jadach Created at: 01/01/89 +C. B. van Eijk Last Update: 02/01/90 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + DOUBLE PRECISION PHOAN1 + REAL*8 X,Y + REAL*8 PI,TWOPI + COMMON/PHPICO/PI,TWOPI + IF (ABS(Y).LT.ABS(X)) THEN + PHOAN1=ATAN(ABS(Y/X)) + IF (X.LE.0.D0) PHOAN1=PI-PHOAN1 + ELSE + PHOAN1=ACOS(X/SQRT(X**2+Y**2)) + ENDIF + IF (Y.LT.0.D0) PHOAN1=TWOPI-PHOAN1 + RETURN + END diff --git a/TEvtGen/PHOTOS/phoan2.F b/TEvtGen/PHOTOS/phoan2.F new file mode 100644 index 00000000000..d997e11abec --- /dev/null +++ b/TEvtGen/PHOTOS/phoan2.F @@ -0,0 +1,28 @@ + FUNCTION PHOAN2(X,Y) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays calculation of ANgle '2' +C. +C. Purpose: Calculate angle from X and Y +C. +C. Input Parameters: X, Y +C. +C. Output Parameter: Function value +C. +C. Author(s): S. Jadach Created at: 01/01/89 +C. B. van Eijk Last Update: 02/01/90 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + DOUBLE PRECISION PHOAN2 + REAL*8 X,Y + REAL*8 PI,TWOPI + COMMON/PHPICO/PI,TWOPI + IF (ABS(Y).LT.ABS(X)) THEN + PHOAN2=ATAN(ABS(Y/X)) + IF (X.LE.0.D0) PHOAN2=PI-PHOAN2 + ELSE + PHOAN2=ACOS(X/SQRT(X**2+Y**2)) + ENDIF + RETURN + END diff --git a/TEvtGen/PHOTOS/phobo3.F b/TEvtGen/PHOTOS/phobo3.F new file mode 100644 index 00000000000..7bcdca0bfb1 --- /dev/null +++ b/TEvtGen/PHOTOS/phobo3.F @@ -0,0 +1,25 @@ + SUBROUTINE PHOBO3(ANGLE,PVEC) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays BOost routine '3' +C. +C. Purpose: Boost vector PVEC along z-axis where ANGLE = EXP(ETA), +C. ETA is the hyperbolic velocity. +C. +C. Input Parameters: ANGLE, PVEC +C. +C. Output Parameter: PVEC +C. +C. Author(s): S. Jadach Created at: 01/01/89 +C. B. van Eijk Last Update: 02/01/90 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + DOUBLE PRECISION QPL,QMI,ANGLE + REAL*8 PVEC(4) + QPL=(PVEC(4)+PVEC(3))*ANGLE + QMI=(PVEC(4)-PVEC(3))/ANGLE + PVEC(3)=(QPL-QMI)/2.D0 + PVEC(4)=(QPL+QMI)/2.D0 + RETURN + END diff --git a/TEvtGen/PHOTOS/phobos.F b/TEvtGen/PHOTOS/phobos.F new file mode 100644 index 00000000000..2ce1ed8e3de --- /dev/null +++ b/TEvtGen/PHOTOS/phobos.F @@ -0,0 +1,79 @@ + SUBROUTINE PHOBOS(IP,PBOOS1,PBOOS2,FIRST,LAST) +C.---------------------------------------------------------------------- +C. +C. PHOBOS: PHOton radiation in decays BOoSt routine +C. +C. Purpose: Boost particles in cascade decay to parent rest frame +C. and boost back with modified boost vector. +C. +C. Input Parameters: IP: pointer of particle starting chain +C. to be boosted +C. PBOOS1: Boost vector to rest frame, +C. PBOOS2: Boost vector to modified frame, +C. FIRST: Pointer to first particle to be boos- +C. ted (/PH_HEPEVT/), +C. LAST: Pointer to last particle to be boos- +C. ted (/PH_HEPEVT/). +C. +C. Output Parameters: Common /PH_HEPEVT/. +C. +C. Author(s): B. van Eijk Created at: 13/02/90 +C. Z. Was Last Update: 16/11/93 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + DOUBLE PRECISION BET1(3),BET2(3),GAM1,GAM2,PB,DATA + INTEGER I,J,FIRST,LAST,MAXSTA,NSTACK,IP + PARAMETER (MAXSTA=10000) + INTEGER STACK(MAXSTA) + REAL*8 PBOOS1(5),PBOOS2(5) + INTEGER NMXHEP + PARAMETER (NMXHEP=10000) + INTEGER IDHEP,ISTHEP,JDAHEP,JMOHEP,NEVHEP,NHEP + REAL*8 PHEP,VHEP + COMMON/PH_HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), + &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) + IF ((LAST.EQ.0).OR.(LAST.LT.FIRST)) RETURN + NSTACK=0 + DO 10 J=1,3 + BET1(J)=-PBOOS1(J)/PBOOS1(5) + 10 BET2(J)=PBOOS2(J)/PBOOS2(5) + GAM1=PBOOS1(4)/PBOOS1(5) + GAM2=PBOOS2(4)/PBOOS2(5) +C-- +C-- Boost vector to parent rest frame... + 20 DO 50 I=FIRST,LAST + PB=BET1(1)*PHEP(1,I)+BET1(2)*PHEP(2,I)+BET1(3)*PHEP(3,I) + IF (JMOHEP(1,I).EQ.IP) THEN + DO 30 J=1,3 + 30 PHEP(J,I)=PHEP(J,I)+BET1(J)*(PHEP(4,I)+PB/(GAM1+1.D0)) + PHEP(4,I)=GAM1*PHEP(4,I)+PB +C-- +C-- ...and boost back to modified parent frame. + PB=BET2(1)*PHEP(1,I)+BET2(2)*PHEP(2,I)+BET2(3)*PHEP(3,I) + DO 40 J=1,3 + 40 PHEP(J,I)=PHEP(J,I)+BET2(J)*(PHEP(4,I)+PB/(GAM2+1.D0)) + PHEP(4,I)=GAM2*PHEP(4,I)+PB + IF (JDAHEP(1,I).NE.0) THEN + NSTACK=NSTACK+1 +C-- +C-- Check on stack length... + IF (NSTACK.GT.MAXSTA) THEN + DATA=NSTACK + CALL PHOERR(7,'PHOBOS',DATA) + ENDIF + STACK(NSTACK)=I + ENDIF + ENDIF + 50 CONTINUE + IF (NSTACK.NE.0) THEN +C-- +C-- Now go one step further in the decay tree... + FIRST=JDAHEP(1,STACK(NSTACK)) + LAST=JDAHEP(2,STACK(NSTACK)) + IP=STACK(NSTACK) + NSTACK=NSTACK-1 + GOTO 20 + ENDIF + RETURN + END diff --git a/TEvtGen/PHOTOS/phocha.F b/TEvtGen/PHOTOS/phocha.F new file mode 100644 index 00000000000..ce6d603b1b8 --- /dev/null +++ b/TEvtGen/PHOTOS/phocha.F @@ -0,0 +1,61 @@ + FUNCTION PHOCHA(IDHEP) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays CHArge determination +C. +C. Purpose: Calculate the charge of particle with code IDHEP. The +C. code of the particle is defined by the Particle Data +C. Group in Phys. Lett. B204 (1988) 1. +C. +C. Input Parameter: IDHEP +C. +C. Output Parameter: Funtion value = charge of particle with code +C. IDHEP +C. +C. Author(s): E. Barberio and B. van Eijk Created at: 29/11/89 +C. Last update: 02/01/90 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + REAL*8 PHOCHA + INTEGER IDHEP,IDABS,Q1,Q2,Q3 +C-- +C-- Array 'CHARGE' contains the charge of the first 101 particles ac- +C-- cording to the PDG particle code... (0 is added for convenience) + REAL*8 CHARGE(0:100) + DATA CHARGE/ 0.D0, + &-0.3333333333D0, 0.6666666667D0, -0.3333333333D0, 0.6666666667D0, + &-0.3333333333D0, 0.6666666667D0, -0.3333333333D0, 0.6666666667D0, + & 2*0.D0, -1.D0, 0.D0, -1.D0, 0.D0, -1.D0, 0.D0, -1.D0, 6*0.D0, + & 1.D0, 12*0.D0, 1.D0, 63*0.D0/ + IDABS=ABS(IDHEP) + IF (IDABS.LE.100) THEN +C-- +C-- Charge of quark, lepton, boson etc.... + PHOCHA = CHARGE(IDABS) + ELSE +C-- +C-- Check on particle build out of quarks, unpack its code... + Q3=MOD(IDABS/1000,10) + Q2=MOD(IDABS/100,10) + Q1=MOD(IDABS/10,10) + IF (Q3.EQ.0) THEN +C-- +C-- ...meson... + IF(MOD(Q2,2).EQ.0) THEN + PHOCHA=CHARGE(Q2)-CHARGE(Q1) + ELSE + PHOCHA=CHARGE(Q1)-CHARGE(Q2) + ENDIF + ELSE +C-- +C-- ...diquarks or baryon. + PHOCHA=CHARGE(Q1)+CHARGE(Q2)+CHARGE(Q3) + ENDIF + ENDIF +C-- +C-- Find the sign of the charge... + IF (IDHEP.LT.0.D0) PHOCHA=-PHOCHA + IF (PHOCHA**2.lt.1d-6) PHOCHA=0.D0 + RETURN + END diff --git a/TEvtGen/PHOTOS/phochk.F b/TEvtGen/PHOTOS/phochk.F new file mode 100644 index 00000000000..0cfdabc7958 --- /dev/null +++ b/TEvtGen/PHOTOS/phochk.F @@ -0,0 +1,106 @@ + SUBROUTINE PHOCHK(JFIRST) +C.---------------------------------------------------------------------- +C. +C. PHOCHK: checking branch. +C. +C. Purpose: checks whether particles in the common block /PHOEVT/ +C. can be served by PHOMAK. +C. JFIRST is the position in /PH_HEPEVT/ (!) of the first +C. daughter of sub-branch under action. +C. +C. +C. Author(s): Z. Was Created at: 22/10/92 +C. Last Update: 16/10/93 +C. +C.---------------------------------------------------------------------- +C ******************** + IMPLICIT NONE + INTEGER NMXPHO + PARAMETER (NMXPHO=10000) + INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO + REAL*8 PPHO,VPHO + COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO), + &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO) + LOGICAL CHKIF + COMMON/PHOIF/CHKIF(NMXPHO) + INTEGER NMXHEP + PARAMETER (NMXHEP=10000) + LOGICAL QEDRAD + COMMON/PHOQED/QEDRAD(NMXHEP) + INTEGER JFIRST + LOGICAL F + INTEGER IDABS,NLAST,I,IPPAR + LOGICAL INTERF,ISEC,IFTOP + REAL*8 FINT,FSEC + COMMON /PHOKEY/ FSEC,FINT,INTERF,ISEC,IFTOP + LOGICAL IFRAD + INTEGER IDENT,K +C these are OK .... if you do not like somebody else, add here. + F(IDABS)= + & ( ((IDABS.GT.9).AND.(IDABS.LE.40)) .OR. (IDABS.GT.100) ) + & .AND.(IDABS.NE.21) + $ .AND.(IDABS.NE.2101).AND.(IDABS.NE.3101).AND.(IDABS.NE.3201) + & .AND.(IDABS.NE.1103).AND.(IDABS.NE.2103).AND.(IDABS.NE.2203) + & .AND.(IDABS.NE.3103).AND.(IDABS.NE.3203).AND.(IDABS.NE.3303) +C + NLAST = NPHO +C + IPPAR=1 +C checking for good particles + DO 10 I=IPPAR,NLAST + IDABS = ABS(IDPHO(I)) +C possibly call on PHZODE is a dead (to be omitted) code. + CHKIF(I)= F(IDABS) .AND.F(ABS(IDPHO(1))) + & .AND. (IDPHO(2).EQ.0) + IF(I.GT.2) CHKIF(I)=CHKIF(I).AND.QEDRAD(JFIRST+I-IPPAR-2) + 10 CONTINUE +C-- +C now we go to special cases, where CHKIF(I) will be overwritten +C-- + IF(IFTOP) THEN +C special case of top pair production + DO K=JDAPHO(2,1),JDAPHO(1,1),-1 + IF(IDPHO(K).NE.22) THEN + IDENT=K + GOTO 15 + ENDIF + ENDDO + 15 CONTINUE + IFRAD=((IDPHO(1).EQ.21).AND.(IDPHO(2).EQ.21)) + & .OR. ((ABS(IDPHO(1)).LE.6).AND.((IDPHO(2)).EQ.(-IDPHO(1)))) + IFRAD=IFRAD + & .AND.(ABS(IDPHO(3)).EQ.6).AND.((IDPHO(4)).EQ.(-IDPHO(3))) + & .AND.(IDENT.EQ.4) + IF(IFRAD) THEN + DO 20 I=IPPAR,NLAST + CHKIF(I)= .TRUE. + IF(I.GT.2) CHKIF(I)=CHKIF(I).AND.QEDRAD(JFIRST+I-IPPAR-2) + 20 CONTINUE + ENDIF + ENDIF +C-- +C-- + IF(IFTOP) THEN +C special case of top decay + DO K=JDAPHO(2,1),JDAPHO(1,1),-1 + IF(IDPHO(K).NE.22) THEN + IDENT=K + GOTO 25 + ENDIF + ENDDO + 25 CONTINUE + IFRAD=((ABS(IDPHO(1)).EQ.6).AND.(IDPHO(2).EQ.0)) + IFRAD=IFRAD + & .AND.((ABS(IDPHO(3)).EQ.24).AND.(ABS(IDPHO(4)).EQ.5) + & .OR.(ABS(IDPHO(3)).EQ.5).AND.(ABS(IDPHO(4)).EQ.24)) + & .AND.(IDENT.EQ.4) + IF(IFRAD) THEN + DO 30 I=IPPAR,NLAST + CHKIF(I)= .TRUE. + IF(I.GT.2) CHKIF(I)=CHKIF(I).AND.QEDRAD(JFIRST+I-IPPAR-2) + 30 CONTINUE + ENDIF + ENDIF +C-- +C-- + END diff --git a/TEvtGen/PHOTOS/phocin.F b/TEvtGen/PHOTOS/phocin.F new file mode 100644 index 00000000000..5ea1789a5b2 --- /dev/null +++ b/TEvtGen/PHOTOS/phocin.F @@ -0,0 +1,91 @@ + SUBROUTINE PHOCIN +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton Common INitialisation +C. +C. Purpose: Initialisation of parameters in common blocks. +C. +C. Input Parameters: None +C. +C. Output Parameters: Commons /PHOLUN/, /PHOPHO/, /PHOCOP/, /PHPICO/ +C. and /PHSEED/. +C. +C. Author(s): B. van Eijk Created at: 26/11/89 +C. Z. Was Last Update: 10/08/93 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + INTEGER NMXHEP + PARAMETER (NMXHEP=10000) + LOGICAL QEDRAD + COMMON/PHOQED/QEDRAD(NMXHEP) + INTEGER PHLUN + COMMON/PHOLUN/PHLUN + REAL*8 ALPHA,XPHCUT + COMMON/PHOCOP/ALPHA,XPHCUT + REAL*8 PI,TWOPI + COMMON/PHPICO/PI,TWOPI + INTEGER ISEED,I97,J97 + REAL*8 URAN,CRAN,CDRAN,CMRAN + COMMON/PHSEED/ISEED(2),I97,J97,URAN(97),CRAN,CDRAN,CMRAN + INTEGER PHOMES + PARAMETER (PHOMES=10) + INTEGER STATUS + COMMON/PHOSTA/STATUS(PHOMES) + LOGICAL INTERF,ISEC,IFTOP + REAL*8 FINT,FSEC + COMMON /PHOKEY/ FSEC,FINT,INTERF,ISEC,IFTOP + INTEGER INIT,I + SAVE INIT + DATA INIT/ 0/ +C-- +C-- Return if already initialized... + IF (INIT.NE.0) RETURN + INIT=1 +C-- +C-- Preset switch for photon emission to 'TRUE' for each particle in +C-- /PH_HEPEVT/, this interface is needed for KORALB and KORALZ... + DO 10 I=1,NMXHEP + 10 QEDRAD(I)=.TRUE. +C-- +C-- Logical output unit for printing of PHOTOS error messages + PHLUN=6 +C-- +C-- Set cut parameter for photon radiation + XPHCUT=0.01D0 +C-- +C-- Define some constants + ALPHA=0.00729735039D0 + PI=3.14159265358979324D0 + TWOPI=6.28318530717958648D0 +C-- +C-- Default seeds Marsaglia and Zaman random number generator + ISEED(1)=1802 + ISEED(2)=9373 +C-- +C-- Iitialization for extra options +C-- (1) +C-- Interference weight for two body symmetric channels only. + INTERF=.TRUE. +C-- (2) +C-- Second order - double photon switch + ISEC=.TRUE. +C-- (3) +C-- Emision in the hard process g g (q qbar) --> t tbar +C-- t --> W b + IFTOP=.TRUE. +C-- +C-- further initialization done automatically + IF (INTERF) THEN +C-- best choice is if FINT=2**N where N+1 is maximal number +C-- of charged daughters +C-- see report on overweihted events + FINT=2.0D0 + ELSE + FINT=1.0D0 + ENDIF +C-- Initialise status counter for warning messages + DO 20 I=1,PHOMES + 20 STATUS(I)=0 + RETURN + END diff --git a/TEvtGen/PHOTOS/phocor.F b/TEvtGen/PHOTOS/phocor.F new file mode 100644 index 00000000000..da51db71a03 --- /dev/null +++ b/TEvtGen/PHOTOS/phocor.F @@ -0,0 +1,65 @@ + FUNCTION PHOCOR(MPASQR,MCHREN,ME) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays CORrection weight from +C. matrix elements +C. +C. Purpose: Calculate photon angle. The reshaping functions will +C. have to depend on the spin S of the charged particle. +C. We define: ME = 2 * S + 1 ! +C. +C. Input Parameters: MPASQR: Parent mass squared, +C. MCHREN: Renormalised mass of charged system, +C. ME: 2 * spin + 1 determines matrix element +C. +C. Output Parameter: Function value. +C. +C. Author(s): Z. Was, B. van Eijk Created at: 26/11/89 +C. Last Update: 21/03/93 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + DOUBLE PRECISION MPASQR,MCHREN,BETA,XX,YY,DATA + INTEGER ME + REAL*8 PHOCOR,PHOFAC,WT1,WT2,WT3 + DOUBLE PRECISION MCHSQR,MNESQR + REAL*8 PNEUTR + COMMON/PHOMOM/MCHSQR,MNESQR,PNEUTR(5) + DOUBLE PRECISION COSTHG,SINTHG + REAL*8 XPHMAX,XPHOTO + COMMON/PHOPHS/XPHMAX,XPHOTO,COSTHG,SINTHG + INTEGER IREP + REAL*8 PROBH,CORWT,XF + COMMON/PHOPRO/PROBH,CORWT,XF,IREP +C-- +C-- Shaping (modified by ZW)... + XX=4.D0*MCHSQR/MPASQR*(1.D0-XPHOTO)/(1.D0-XPHOTO+(MCHSQR-MNESQR)/ + &MPASQR)**2 + IF (ME.EQ.1) THEN + YY=1.D0 + WT3=(1.D0-XPHOTO/XPHMAX)/((1.D0+(1.D0-XPHOTO/XPHMAX)**2)/2.D0) + ELSEIF (ME.EQ.2) THEN + YY=0.5D0*(1.D0-XPHOTO/XPHMAX+1.D0/(1.D0-XPHOTO/XPHMAX)) + WT3=1.D0 + ELSEIF ((ME.EQ.3).OR.(ME.EQ.4).OR.(ME.EQ.5)) THEN + YY=1.D0 + WT3=(1.D0+(1.D0-XPHOTO/XPHMAX)**2-(XPHOTO/XPHMAX)**3)/ + & (1.D0+(1.D0-XPHOTO/XPHMAX)** 2) + ELSE + DATA=(ME-1.D0)/2.D0 + CALL PHOERR(6,'PHOCOR',DATA) + YY=1.D0 + WT3=1.D0 + ENDIF + BETA=SQRT(1.D0-XX) + WT1=(1.D0-COSTHG*SQRT(1.D0-MCHREN))/(1.D0-COSTHG*BETA) + WT2=(1.D0-XX/YY/(1.D0-BETA**2*COSTHG**2))*(1.D0+COSTHG*BETA)/2.D0 + WT2=WT2*PHOFAC(1) + PHOCOR=WT1*WT2*WT3 + CORWT=PHOCOR + IF (PHOCOR.GT.1.D0) THEN + DATA=PHOCOR + CALL PHOERR(3,'PHOCOR',DATA) + ENDIF + RETURN + END diff --git a/TEvtGen/PHOTOS/phodo.F b/TEvtGen/PHOTOS/phodo.F new file mode 100644 index 00000000000..500c8636f49 --- /dev/null +++ b/TEvtGen/PHOTOS/phodo.F @@ -0,0 +1,181 @@ + SUBROUTINE PHODO(IP,NCHARB,NEUDAU) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays DOing of KINematics +C. +C. Purpose: Starting from the charged particle energy/momentum, +C. PNEUTR, photon energy fraction and photon angle with +C. respect to the axis formed by charged particle energy/ +C. momentum vector and PNEUTR, scale the energy/momentum, +C. keeping the original direction of the neutral system in +C. the lab. frame untouched. +C. +C. Input Parameters: IP: Pointer to decaying particle in +C. /PHOEVT/ and the common itself +C. NCHARB: pointer to the charged radiating +C. daughter in /PHOEVT/. +C. NEUDAU: pointer to the first neutral daughter +C. Output Parameters: Common /PHOEVT/, with photon added. +C. +C. Author(s): Z. Was, B. van Eijk Created at: 26/11/89 +C. Last Update: 27/05/93 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + DOUBLE PRECISION PHOAN1,PHOAN2,ANGLE,FI1,FI3,FI4,FI5,TH1,TH3,TH4 + DOUBLE PRECISION PARNE,QNEW,QOLD,DATA + INTEGER IP,FI3DUM,I,J,NEUDAU,FIRST,LAST + INTEGER NCHARB + REAL*8 EPHOTO,PMAVIR,PHOTRI + REAL*8 GNEUT,PHORAN,CCOSTH,SSINTH,PVEC(4) + INTEGER NMXPHO + PARAMETER (NMXPHO=10000) + INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO + REAL*8 PPHO,VPHO + COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO), + &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO) + DOUBLE PRECISION MCHSQR,MNESQR + REAL*8 PNEUTR + COMMON/PHOMOM/MCHSQR,MNESQR,PNEUTR(5) + DOUBLE PRECISION COSTHG,SINTHG + REAL*8 XPHMAX,XPHOTO + COMMON/PHOPHS/XPHMAX,XPHOTO,COSTHG,SINTHG + REAL*8 PI,TWOPI + COMMON/PHPICO/PI,TWOPI +C-- + EPHOTO=XPHOTO*PPHO(5,IP)/2.D0 + PMAVIR=SQRT(PPHO(5,IP)*(PPHO(5,IP)-2.D0*EPHOTO)) +C-- +C-- Reconstruct kinematics of charged particle and neutral system + FI1=PHOAN1(PNEUTR(1),PNEUTR(2)) +C-- +C-- Choose axis along z of PNEUTR, calculate angle between x and y +C-- components and z and x-y plane and perform Lorentz transform... + TH1=PHOAN2(PNEUTR(3),SQRT(PNEUTR(1)**2+PNEUTR(2)**2)) + CALL PHORO3(-FI1,PNEUTR(1)) + CALL PHORO2(-TH1,PNEUTR(1)) +C-- +C-- Take away photon energy from charged particle and PNEUTR ! Thus +C-- the onshell charged particle decays into virtual charged particle +C-- and photon. The virtual charged particle mass becomes: +C-- SQRT(PPHO(5,IP)*(PPHO(5,IP)-2*EPHOTO)). Construct new PNEUTR mo- +C-- mentum in the rest frame of the parent: +C-- 1) Scaling parameters... + QNEW=PHOTRI(PMAVIR,PNEUTR(5),PPHO(5,NCHARB)) + QOLD=PNEUTR(3) + GNEUT=(QNEW**2+QOLD**2+MNESQR)/(QNEW*QOLD+SQRT((QNEW**2+MNESQR)* + &(QOLD**2+MNESQR))) + IF (GNEUT.LT.1.D0) THEN + DATA=0.D0 + CALL PHOERR(4,'PHOKIN',DATA) + ENDIF + PARNE=GNEUT-SQRT(MAX(GNEUT**2-1.0D0,0.D0)) +C-- +C-- 2) ...reductive boost... + CALL PHOBO3(PARNE,PNEUTR) +C-- +C-- ...calculate photon energy in the reduced system... + NPHO=NPHO+1 + ISTPHO(NPHO)=1 + IDPHO(NPHO) =22 +C-- Photon mother and daughter pointers ! + JMOPHO(1,NPHO)=IP + JMOPHO(2,NPHO)=0 + JDAPHO(1,NPHO)=0 + JDAPHO(2,NPHO)=0 + PPHO(4,NPHO)=EPHOTO*PPHO(5,IP)/PMAVIR +C-- +C-- ...and photon momenta + CCOSTH=-COSTHG + SSINTH=SINTHG + TH3=PHOAN2(CCOSTH,SSINTH) + FI3=TWOPI*PHORAN(FI3DUM) + PPHO(1,NPHO)=PPHO(4,NPHO)*SINTHG*COS(FI3) + PPHO(2,NPHO)=PPHO(4,NPHO)*SINTHG*SIN(FI3) +C-- +C-- Minus sign because axis opposite direction of charged particle ! + PPHO(3,NPHO)=-PPHO(4,NPHO)*COSTHG + PPHO(5,NPHO)=0.D0 +C-- +C-- Rotate in order to get photon along z-axis + CALL PHORO3(-FI3,PNEUTR(1)) + CALL PHORO3(-FI3,PPHO(1,NPHO)) + CALL PHORO2(-TH3,PNEUTR(1)) + CALL PHORO2(-TH3,PPHO(1,NPHO)) + ANGLE=EPHOTO/PPHO(4,NPHO) +C-- +C-- Boost to the rest frame of decaying particle + CALL PHOBO3(ANGLE,PNEUTR(1)) + CALL PHOBO3(ANGLE,PPHO(1,NPHO)) +C-- +C-- Back in the parent rest frame but PNEUTR not yet oriented ! + FI4=PHOAN1(PNEUTR(1),PNEUTR(2)) + TH4=PHOAN2(PNEUTR(3),SQRT(PNEUTR(1)**2+PNEUTR(2)**2)) + CALL PHORO3(FI4,PNEUTR(1)) + CALL PHORO3(FI4,PPHO(1,NPHO)) +C-- + DO 60 I=2,4 + 60 PVEC(I)=0.D0 + PVEC(1)=1.D0 + CALL PHORO3(-FI3,PVEC) + CALL PHORO2(-TH3,PVEC) + CALL PHOBO3(ANGLE,PVEC) + CALL PHORO3(FI4,PVEC) + CALL PHORO2(-TH4,PNEUTR) + CALL PHORO2(-TH4,PPHO(1,NPHO)) + CALL PHORO2(-TH4,PVEC) + FI5=PHOAN1(PVEC(1),PVEC(2)) +C-- +C-- Charged particle restores original direction + CALL PHORO3(-FI5,PNEUTR) + CALL PHORO3(-FI5,PPHO(1,NPHO)) + CALL PHORO2(TH1,PNEUTR(1)) + CALL PHORO2(TH1,PPHO(1,NPHO)) + CALL PHORO3(FI1,PNEUTR) + CALL PHORO3(FI1,PPHO(1,NPHO)) +C-- See whether neutral system has multiplicity larger than 1... + IF ((JDAPHO(2,IP)-JDAPHO(1,IP)).GT.1) THEN +C-- Find pointers to components of 'neutral' system +C-- + FIRST=NEUDAU + LAST=JDAPHO(2,IP) + DO 70 I=FIRST,LAST + IF (I.NE.NCHARB.AND.(JMOPHO(1,I).EQ.IP)) THEN +C-- +C-- Reconstruct kinematics... + CALL PHORO3(-FI1,PPHO(1,I)) + CALL PHORO2(-TH1,PPHO(1,I)) +C-- +C-- ...reductive boost + CALL PHOBO3(PARNE,PPHO(1,I)) +C-- +C-- Rotate in order to get photon along z-axis + CALL PHORO3(-FI3,PPHO(1,I)) + CALL PHORO2(-TH3,PPHO(1,I)) +C-- +C-- Boost to the rest frame of decaying particle + CALL PHOBO3(ANGLE,PPHO(1,I)) +C-- +C-- Back in the parent rest-frame but PNEUTR not yet oriented. + CALL PHORO3(FI4,PPHO(1,I)) + CALL PHORO2(-TH4,PPHO(1,I)) +C-- +C-- Charged particle restores original direction + CALL PHORO3(-FI5,PPHO(1,I)) + CALL PHORO2(TH1,PPHO(1,I)) + CALL PHORO3(FI1,PPHO(1,I)) + ENDIF + 70 CONTINUE + ELSE +C-- +C-- ...only one 'neutral' particle in addition to photon! + DO 80 J=1,4 + 80 PPHO(J,NEUDAU)=PNEUTR(J) + ENDIF +C-- +C-- All 'neutrals' treated, fill /PHOEVT/ for charged particle... + DO 90 J=1,3 + 90 PPHO(J,NCHARB)=-(PPHO(J,NPHO)+PNEUTR(J)) + PPHO(4,NCHARB)=PPHO(5,IP)-(PPHO(4,NPHO)+PNEUTR(4)) +C-- + END diff --git a/TEvtGen/PHOTOS/phoene.F b/TEvtGen/PHOTOS/phoene.F new file mode 100644 index 00000000000..98b26147059 --- /dev/null +++ b/TEvtGen/PHOTOS/phoene.F @@ -0,0 +1,85 @@ + SUBROUTINE PHOENE(MPASQR,MCHREN,BETA,IDENT) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays calculation of photon ENErgy +C. fraction +C. +C. Purpose: Subroutine returns photon energy fraction (in (parent +C. mass)/2 units) for the decay bremsstrahlung. +C. +C. Input Parameters: MPASQR: Mass of decaying system squared, +C. XPHCUT: Minimum energy fraction of photon, +C. XPHMAX: Maximum energy fraction of photon. +C. +C. Output Parameter: MCHREN: Renormalised mass squared, +C. BETA: Beta factor due to renormalisation, +C. XPHOTO: Photon energy fraction, +C. XF: Correction factor for PHOFAC. +C. +C. Author(s): S. Jadach, Z. Was Created at: 01/01/89 +C. B. van Eijk Last Update: 26/03/93 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + DOUBLE PRECISION MPASQR,MCHREN,BIGLOG,BETA,DATA + INTEGER IWT1,IRN,IWT2 + REAL*8 PRSOFT,PRHARD,PHORAN,PHOFAC + DOUBLE PRECISION MCHSQR,MNESQR + REAL*8 PNEUTR + INTEGER IDENT + REAL*8 PHOCHA + COMMON/PHOMOM/MCHSQR,MNESQR,PNEUTR(5) + DOUBLE PRECISION COSTHG,SINTHG + REAL*8 XPHMAX,XPHOTO + COMMON/PHOPHS/XPHMAX,XPHOTO,COSTHG,SINTHG + REAL*8 ALPHA,XPHCUT + COMMON/PHOCOP/ALPHA,XPHCUT + REAL*8 PI,TWOPI + COMMON/PHPICO/PI,TWOPI + INTEGER IREP + REAL*8 PROBH,CORWT,XF + COMMON/PHOPRO/PROBH,CORWT,XF,IREP + LOGICAL INTERF,ISEC,IFTOP + REAL*8 FINT,FSEC + COMMON /PHOKEY/ FSEC,FINT,INTERF,ISEC,IFTOP +C-- + IF (XPHMAX.LE.XPHCUT) THEN + XPHOTO=0.0D0 + RETURN + ENDIF +C-- Probabilities for hard and soft bremstrahlung... + MCHREN=4.D0*MCHSQR/MPASQR/(1.D0+MCHSQR/MPASQR)**2 + BETA=SQRT(1.D0-MCHREN) + BIGLOG=LOG(MPASQR/MCHSQR*(1.D0+BETA)**2/4.D0* + & (1.D0+MCHSQR/MPASQR)**2) + PRHARD=ALPHA/PI/BETA*BIGLOG*(LOG(XPHMAX/XPHCUT)-.75D0+XPHCUT/ + &XPHMAX-.25D0*XPHCUT**2/XPHMAX**2) + PRHARD=PRHARD*PHOCHA(IDENT)**2*FINT*FSEC + IF (IREP.EQ.0) PROBH=0.D0 + PRHARD=PRHARD*PHOFAC(0) + PROBH=PRHARD + PRSOFT=1.D0-PRHARD +C-- +C-- Check on kinematical bounds + IF (PRSOFT.LT.0.1D0) THEN + DATA=PRSOFT + CALL PHOERR(2,'PHOENE',DATA) + ENDIF + IF (PHORAN(IWT1).LT.PRSOFT) THEN +C-- +C-- No photon... (ie. photon too soft) + XPHOTO=0.D0 + ELSE +C-- +C-- Hard photon... (ie. photon hard enough). +C-- Calculate Altarelli-Parisi Kernel + 10 XPHOTO=EXP(PHORAN(IRN)*LOG(XPHCUT/XPHMAX)) + XPHOTO=XPHOTO*XPHMAX + IF (PHORAN(IWT2).GT.((1.D0+(1.D0-XPHOTO/XPHMAX)**2)/2.D0)) + & GOTO 10 + ENDIF +C-- +C-- Calculate parameter for PHOFAC function + XF=4.D0*MCHSQR*MPASQR/(MPASQR+MCHSQR-MNESQR)**2 + RETURN + END diff --git a/TEvtGen/PHOTOS/phoerr.F b/TEvtGen/PHOTOS/phoerr.F new file mode 100644 index 00000000000..b74f83c086a --- /dev/null +++ b/TEvtGen/PHOTOS/phoerr.F @@ -0,0 +1,116 @@ + SUBROUTINE PHOERR(IMES,TEXT,DATA) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays ERRror handling +C. +C. Purpose: Inform user about (fatal) errors and warnings generated +C. by either the user or the program. +C. +C. Input Parameters: IMES, TEXT, DATA +C. +C. Output Parameters: None +C. +C. Author(s): B. van Eijk Created at: 29/11/89 +C. Last Update: 10/01/92 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + DOUBLE PRECISION DATA + INTEGER IMES,IERROR + REAL*8 SDATA + INTEGER PHLUN + COMMON/PHOLUN/PHLUN + INTEGER PHOMES + PARAMETER (PHOMES=10) + INTEGER STATUS + COMMON/PHOSTA/STATUS(PHOMES) + CHARACTER TEXT*(*) + SAVE IERROR +C-- security STOP switch + LOGICAL ISEC + SAVE ISEC + DATA ISEC /.TRUE./ + DATA IERROR/ 0/ + IF (IMES.LE.PHOMES) STATUS(IMES)=STATUS(IMES)+1 +C-- +C-- Count number of non-fatal errors... + IF ((IMES.EQ. 6).AND.(STATUS(IMES).GE.2)) RETURN + IF ((IMES.EQ.10).AND.(STATUS(IMES).GE.2)) RETURN + SDATA=DATA + WRITE(PHLUN,9000) + WRITE(PHLUN,9120) + GOTO (10,20,30,40,50,60,70,80,90,100),IMES + WRITE(PHLUN,9130) IMES + GOTO 120 + 10 WRITE(PHLUN,9010) TEXT,INT(SDATA) + GOTO 110 + 20 WRITE(PHLUN,9020) TEXT,SDATA + GOTO 110 + 30 WRITE(PHLUN,9030) TEXT,SDATA + GOTO 110 + 40 WRITE(PHLUN,9040) TEXT + GOTO 110 + 50 WRITE(PHLUN,9050) TEXT,INT(SDATA) + GOTO 110 + 60 WRITE(PHLUN,9060) TEXT,SDATA + GOTO 130 + 70 WRITE(PHLUN,9070) TEXT,INT(SDATA) + GOTO 110 + 80 WRITE(PHLUN,9080) TEXT,INT(SDATA) + GOTO 110 + 90 WRITE(PHLUN,9090) TEXT,INT(SDATA) + GOTO 110 + 100 WRITE(PHLUN,9100) TEXT,SDATA + GOTO 130 + 110 CONTINUE + WRITE(PHLUN,9140) + WRITE(PHLUN,9120) + WRITE(PHLUN,9000) + IF (ISEC) THEN + STOP + ELSE + GOTO 130 + ENDIF + 120 IERROR=IERROR+1 + IF (IERROR.GE.10) THEN + WRITE(PHLUN,9150) + WRITE(PHLUN,9120) + WRITE(PHLUN,9000) + IF (ISEC) THEN + STOP + ELSE + GOTO 130 + ENDIF + ENDIF + 130 WRITE(PHLUN,9120) + WRITE(PHLUN,9000) + RETURN + 9000 FORMAT(1H ,80('*')) + 9010 FORMAT(1H ,'* ',A,': Too many charged Particles, NCHARG =',I6,T81, + &'*') + 9020 FORMAT(1H ,'* ',A,': Too much Bremsstrahlung required, PRSOFT = ', + &F15.6,T81,'*') + 9030 FORMAT(1H ,'* ',A,': Combined Weight is exceeding 1., Weight = ', + &F15.6,T81,'*') + 9040 FORMAT(1H ,'* ',A, + &': Error in Rescaling charged and neutral Vectors',T81,'*') + 9050 FORMAT(1H ,'* ',A, + &': Non matching charged Particle Pointer, NCHARG = ',I5,T81,'*') + 9060 FORMAT(1H ,'* ',A, + &': Do you really work with a Particle of Spin: ',F4.1,' ?',T81, + &'*') + 9070 FORMAT(1H ,'* ',A, ': Stack Length exceeded, NSTACK = ',I5 ,T81, + &'*') + 9080 FORMAT(1H ,'* ',A, + &': Random Number Generator Seed(1) out of Range: ',I8,T81,'*') + 9090 FORMAT(1H ,'* ',A, + &': Random Number Generator Seed(2) out of Range: ',I8,T81,'*') + 9100 FORMAT(1H ,'* ',A, + &': Available Phase Space below Cut-off: ',F15.6,' GeV/c^2',T81, + &'*') + 9120 FORMAT(1H ,'*',T81,'*') + 9130 FORMAT(1H ,'* Funny Error Message: ',I4,' ! What to do ?',T81,'*') + 9140 FORMAT(1H ,'* Fatal Error Message, I stop this Run !',T81,'*') + 9150 FORMAT(1H ,'* 10 Error Messages generated, I stop this Run !',T81, + &'*') + END diff --git a/TEvtGen/PHOTOS/phofac.F b/TEvtGen/PHOTOS/phofac.F new file mode 100644 index 00000000000..de114d9938c --- /dev/null +++ b/TEvtGen/PHOTOS/phofac.F @@ -0,0 +1,53 @@ + FUNCTION PHOFAC(MODE) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays control FACtor +C. +C. Purpose: This is the control function for the photon spectrum and +C. final weighting. It is called from PHOENE for genera- +C. ting the raw photon energy spectrum (MODE=0) and in PHO- +C. COR to scale the final weight (MODE=1). The factor con- +C. sists of 3 terms. Addition of the factor FF which mul- +C. tiplies PHOFAC for MODE=0 and divides PHOFAC for MODE=1, +C. does not affect the results for the MC generation. An +C. appropriate choice for FF can speed up the calculation. +C. Note that a too small value of FF may cause weight over- +C. flow in PHOCOR and will generate a warning, halting the +C. execution. PRX should be included for repeated calls +C. for the same event, allowing more particles to radiate +C. photons. At the first call IREP=0, for more than 1 +C. charged decay products, IREP >= 1. Thus, PRSOFT (no +C. photon radiation probability in the previous calls) +C. appropriately scales the strength of the bremsstrahlung. +C. +C. Input Parameters: MODE, PROBH, XF +C. +C. Output Parameter: Function value +C. +C. Author(s): S. Jadach, Z. Was Created at: 01/01/89 +C. B. van Eijk Last Update: 13/02/90 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + REAL*8 PHOFAC,FF,PRX + INTEGER MODE + INTEGER IREP + REAL*8 PROBH,CORWT,XF + COMMON/PHOPRO/PROBH,CORWT,XF,IREP + SAVE PRX,FF + DATA PRX,FF/ 0.D0, 0.D0/ + IF (MODE.EQ.0) THEN + IF (IREP.EQ.0) PRX=1.D0 + PRX=PRX/(1.D0-PROBH) + FF=1.D0 +C-- +C-- Following options are not considered for the time being... +C-- (1) Good choice, but does not save very much time: +C-- FF=(1.0D0-SQRT(XF)/2.0D0)/(1.0+SQRT(XF)/2.0D0) +C-- (2) Taken from the blue, but works without weight overflows... +C-- FF=(1.D0-XF/(1-(1-SQRT(XF))**2))*(1+(1-SQRT(XF))/SQRT(1-XF))/2 + PHOFAC=FF*PRX + ELSE + PHOFAC=1.D0/FF + ENDIF + END diff --git a/TEvtGen/PHOTOS/phoin.F b/TEvtGen/PHOTOS/phoin.F new file mode 100644 index 00000000000..7e07b1b0705 --- /dev/null +++ b/TEvtGen/PHOTOS/phoin.F @@ -0,0 +1,123 @@ + SUBROUTINE PHOIN(IP,BOOST,NHEP0) +C.---------------------------------------------------------------------- +C. +C. PHOIN: PHOtos INput +C. +C. Purpose: copies IP branch of the common /PH_HEPEVT/ into /PHOEVT/ +C. moves branch into its CMS system. +C. +C. Input Parameters: IP: pointer of particle starting branch +C. to be copied +C. BOOST: Flag whether boost to CMS was or was +C . not performed. +C. +C. Output Parameters: Commons: /PHOEVT/, /PHOCMS/ +C. +C. Author(s): Z. Was Created at: 24/05/93 +C. Last Update: 16/11/93 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + INTEGER NMXHEP + PARAMETER (NMXHEP=10000) + INTEGER IDHEP,ISTHEP,JDAHEP,JMOHEP,NEVHEP,NHEP + REAL*8 PHEP,VHEP + COMMON/PH_HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), + &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) + INTEGER NMXPHO + PARAMETER (NMXPHO=10000) + INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO + REAL*8 PPHO,VPHO + COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO), + &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO) + INTEGER IP,IP2,I,FIRST,LAST,LL,NA + LOGICAL BOOST + INTEGER J,NHEP0 + DOUBLE PRECISION BET(3),GAM,PB + COMMON /PHOCMS/ BET,GAM + LOGICAL INTERF,ISEC,IFTOP + REAL*8 FINT,FSEC + COMMON /PHOKEY/ FSEC,FINT,INTERF,ISEC,IFTOP +C-- +C let's calculate size of the little common entry + FIRST=JDAHEP(1,IP) + LAST =JDAHEP(2,IP) + NPHO=3+LAST-FIRST+NHEP-NHEP0 + NEVPHO=NPHO +C let's take in decaying particle + IDPHO(1)=IDHEP(IP) + JDAPHO(1,1)=3 + JDAPHO(2,1)=3+LAST-FIRST + DO I=1,5 + PPHO(I,1)=PHEP(I,IP) + ENDDO +C let's take in eventual second mother + IP2=JMOHEP(2,JDAHEP(1,IP)) + IF((IP2.NE.0).AND.(IP2.NE.IP)) THEN + IDPHO(2)=IDHEP(IP2) + JDAPHO(1,2)=3 + JDAPHO(2,2)=3+LAST-FIRST + DO I=1,5 + PPHO(I,2)=PHEP(I,IP2) + ENDDO + ELSE + IDPHO(2)=0 + DO I=1,5 + PPHO(I,2)=0.0D0 + ENDDO + ENDIF +C let's take in daughters + DO LL=0,LAST-FIRST + IDPHO(3+LL)=IDHEP(FIRST+LL) + JMOPHO(1,3+LL)=JMOHEP(1,FIRST+LL) + IF (JMOHEP(1,FIRST+LL).EQ.IP) JMOPHO(1,3+LL)=1 + DO I=1,5 + PPHO(I,3+LL)=PHEP(I,FIRST+LL) + ENDDO + ENDDO + IF (NHEP.GT.NHEP0) THEN +C let's take in illegitimate daughters + NA=3+LAST-FIRST + DO LL=1,NHEP-NHEP0 + IDPHO(NA+LL)=IDHEP(NHEP0+LL) + JMOPHO(1,NA+LL)=JMOHEP(1,NHEP0+LL) + IF (JMOHEP(1,NHEP0+LL).EQ.IP) JMOPHO(1,NA+LL)=1 + DO I=1,5 + PPHO(I,NA+LL)=PHEP(I,NHEP0+LL) + ENDDO + ENDDO +C-- there is NHEP-NHEP0 daugters more. + JDAPHO(2,1)=3+LAST-FIRST+NHEP-NHEP0 + ENDIF + CALL PHLUPA(1) + CALL PHCORK(0) +C special case of t tbar production process + IF(IFTOP) CALL PHOTWO(0) + BOOST=.FALSE. +C-- Check whether parent is in its rest frame... + IF ( (ABS(PPHO(4,1)-PPHO(5,1)).GT.PPHO(5,1)*1.D-8) + $ .AND.(PPHO(5,1).NE.0)) THEN + BOOST=.TRUE. +C-- +C-- Boost daughter particles to rest frame of parent... +C-- Resultant neutral system already calculated in rest frame ! + DO 10 J=1,3 + 10 BET(J)=-PPHO(J,1)/PPHO(5,1) + GAM=PPHO(4,1)/PPHO(5,1) + DO 30 I=JDAPHO(1,1),JDAPHO(2,1) + PB=BET(1)*PPHO(1,I)+BET(2)*PPHO(2,I)+BET(3)*PPHO(3,I) + DO 20 J=1,3 + 20 PPHO(J,I)=PPHO(J,I)+BET(J)*(PPHO(4,I)+PB/(GAM+1.D0)) + 30 PPHO(4,I)=GAM*PPHO(4,I)+PB +C-- Finally boost mother as well + I=1 + PB=BET(1)*PPHO(1,I)+BET(2)*PPHO(2,I)+BET(3)*PPHO(3,I) + DO J=1,3 + PPHO(J,I)=PPHO(J,I)+BET(J)*(PPHO(4,I)+PB/(GAM+1.D0)) + ENDDO + PPHO(4,I)=GAM*PPHO(4,I)+PB + ENDIF +C special case of t tbar production process + IF(IFTOP) CALL PHOTWO(1) + CALL PHLUPA(2) + END diff --git a/TEvtGen/PHOTOS/phoinf.F b/TEvtGen/PHOTOS/phoinf.F new file mode 100644 index 00000000000..bcdfa14eece --- /dev/null +++ b/TEvtGen/PHOTOS/phoinf.F @@ -0,0 +1,98 @@ + SUBROUTINE PHOINF +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays general INFo +C. +C. Purpose: Print PHOTOS info +C. +C. Input Parameters: PHOLUN +C. +C. Output Parameters: PHOVN1, PHOVN2 +C. +C. Author(s): B. van Eijk Created at: 12/04/90 +C. Last Update: 02/10/93 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + INTEGER IV1,IV2,IV3 + INTEGER PHOVN1,PHOVN2 + COMMON/PHOVER/PHOVN1,PHOVN2 + INTEGER PHLUN + COMMON/PHOLUN/PHLUN + LOGICAL INTERF,ISEC,IFTOP + REAL*8 FINT,FSEC + COMMON /PHOKEY/ FSEC,FINT,INTERF,ISEC,IFTOP + REAL*8 ALPHA,XPHCUT + COMMON/PHOCOP/ALPHA,XPHCUT +C-- +C-- PHOTOS version number and release date + PHOVN1=202 + PHOVN2=150399 +C-- +C-- Print info + WRITE(PHLUN,9000) + WRITE(PHLUN,9020) + WRITE(PHLUN,9010) + WRITE(PHLUN,9030) + IV1=PHOVN1/100 + IV2=PHOVN1-IV1*100 + WRITE(PHLUN,9040) IV1,IV2 + IV1=PHOVN2/10000 + IV2=(PHOVN2-IV1*10000)/100 + IV3=PHOVN2-IV1*10000-IV2*100 + WRITE(PHLUN,9050) IV1,IV2,IV3 + WRITE(PHLUN,9030) + WRITE(PHLUN,9010) + WRITE(PHLUN,9060) + WRITE(PHLUN,9010) + WRITE(PHLUN,9070) + WRITE(PHLUN,9010) + WRITE(PHLUN,9020) + WRITE(PHLUN,9010) + WRITE(PHLUN,9064) INTERF,ISEC,IFTOP,ALPHA,XPHCUT + WRITE(PHLUN,9010) + IF (INTERF) WRITE(PHLUN,9061) + IF (ISEC) WRITE(PHLUN,9062) + IF (IFTOP) WRITE(PHLUN,9063) + WRITE(PHLUN,9080) + WRITE(PHLUN,9010) + WRITE(PHLUN,9020) + RETURN + 9000 FORMAT(1H1) + 9010 FORMAT(1H ,'*',T81,'*') + 9020 FORMAT(1H ,80('*')) + 9030 FORMAT(1H ,'*',26X,26('='),T81,'*') + 9040 FORMAT(1H ,'*',28X,'PHOTOS, Version: ',I2,'.',I2,T81,'*') + 9050 FORMAT(1H ,'*',28X,'Released at: ',I2,'/',I2,'/',I2,T81,'*') + 9060 FORMAT(1H ,'*',18X,'PHOTOS QED Corrections in Particle Decays', + &T81,'*') + 9061 FORMAT(1H ,'*',18X,'option with interference is active ', + &T81,'*') + 9062 FORMAT(1H ,'*',18X,'option with double photons is active ', + &T81,'*') + 9063 FORMAT(1H ,'*',18X,'emision in t tbar production is active ', + &T81,'*') + 9064 FORMAT(1H ,'*',18X,'Internal input parameters:',T81,'*' + &,/, 1H ,'*',T81,'*' + &,/, 1H ,'*',18X,'INTERF=',L2,' ISEC=',L2,' IFTOP=',L2,T81,'*' + &,/, 1H ,'*',18X,'ALPHA_QED=',F8.5,' XPHCUT=',F8.5,T81,'*') + 9070 FORMAT(1H ,'*',9X,'Monte Carlo Program - by E. Barberio, B. van Ei + &jk and Z. Was',T81,'*',/, + & 1H ,'*',9X,'From version 2.0 on - by E.B. and Z.W.',T81,'*') + 9080 FORMAT( 1H ,'*',9X,' ',T81,'*',/, + & 1H ,'*',9X, + & ' WARNING (1): /HEPEVT/ is not anymore the standard common block' + & ,T81,'*',/, + & 1H ,'*',9X,' ',T81,'*',/, + & 1H ,'*',9X, + & ' PHOTOS expects /HEPEVT/ to have REAL*4 variables. To change to' + & ,T81,'*',/, 1H ,'*',9X, + & ' REAL*8 modify its declaration in subr. PHOTOS_GET PHOTOS_SET:' + & ,T81,'*',/, 1H ,'*',9X, + & ' REAL*8 d_h_phep, d_h_vhep' + & ,T81,'*',/, 1H ,'*',9X, + & ' WARNING (2): check dims. of /hepevt/ /phoqed/ /ph_hepevt/.' + & ,T81,'*',/, 1H ,'*',9X, + & ' HERE: d_h_nmxhep=4000 and NMXHEP=10000' + & ,T81,'*') + END diff --git a/TEvtGen/PHOTOS/phoini.F b/TEvtGen/PHOTOS/phoini.F new file mode 100644 index 00000000000..6a52602a4ca --- /dev/null +++ b/TEvtGen/PHOTOS/phoini.F @@ -0,0 +1,128 @@ +*///////////////////////////////////////////////////////////////////////////////////// +*// // +*// !!!!!!! WARNING!!!!! This source may be agressive !!!! // +*// // +*// Due to short common block names it may owerwrite variables in other parts // +*// of the code. // +*// // +*// One should add suffix c_Photos_ to names of all commons as soon as possible!! // +*// // +*///////////////////////////////////////////////////////////////////////////////////// + +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOtos CDE's +C. +C. Purpose: Keep definitions for PHOTOS QED correction Monte Carlo. +C. +C. Input Parameters: None +C. +C. Output Parameters: None +C. +C. Author(s): Z. Was, B. van Eijk Created at: 29/11/89 +C. Last Update: 10/08/93 +C. +C. ========================================================= +C. General Structure Information: = +C. ========================================================= +C: ROUTINES: +C. 1) INITIALIZATION: +C. PHOCDE +C. PHOINI +C. PHOCIN +C. PHOINF +C. 2) GENERAL INTERFACE: +C. PHOTOS +C. PHOTOS_GET +C. PHOTOS_SET +C. PHOTOS_MAKE +C. PHOBOS +C. PHOIN +C. PHOTWO (specific interface +C. PHOOUT +C. PHOCHK +C. PHTYPE (specific interface +C. PHOMAK (specific interface +C. 3) QED PHOTON GENERATION: +C. PHINT +C. PHOPRE +C. PHOOMA +C. PHOENE +C. PHOCOR +C. PHOFAC +C. PHODO +C. 4) UTILITIES: +C. PHOTRI +C. PHOAN1 +C. PHOAN2 +C. PHOBO3 +C. PHORO2 +C. PHORO3 +C. PHORIN +C. PHORAN +C. PHOCHA +C. PHOSPI +C. PHOERR +C. PHOREP +C. PHLUPA +C. PHCORK +C. COMMONS: +C. NAME USED IN SECT. # OF OCC. Comment +C. PHOQED 1) 2) 3 Flags whether emisson to be gen. +C. PHOLUN 1) 4) 6 Output device number +C. PHOCOP 1) 3) 4 photon coupling & min energy +C. PHPICO 1) 3) 4) 5 PI & 2*PI +C. PHSEED 1) 4) 3 RN seed +C. PHOSTA 1) 4) 3 Status information +C. PHOKEY 1) 2) 3) 7 Keys for nonstandard application +C. PHOVER 1) 1 Version info for outside +C. HEPEVT 2) 2 PDG common +C. PH_HEPEVT2) 8 PDG common internal +C. PHOEVT 2) 3) 10 PDG branch +C. PHOIF 2) 3) 2 emission flags for PDG branch +C. PHOMOM 3) 5 param of char-neutr system +C. PHOPHS 3) 5 photon momentum parameters +C. PHOPRO 3) 4 var. for photon rep. (in branch) +C. PHOCMS 2) 3 parameters of boost to branch CMS +C. PHNUM 4) 1 event number from outside +C.---------------------------------------------------------------------- + SUBROUTINE PHOINI +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays INItialisation +C. +C. Purpose: Initialisation routine for the PHOTOS QED radiation +C. package. Should be called at least once before a call +C. to the steering program 'PHOTOS' is made. +C. +C. Input Parameters: None +C. +C. Output Parameters: None +C. +C. Author(s): Z. Was, B. van Eijk Created at: 26/11/89 +C. Last Update: 12/04/90 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + INTEGER INIT + SAVE INIT + DATA INIT/ 0/ +C-- +C-- Return if already initialized... + IF (INIT.NE.0) RETURN + INIT=1 +C-- +C-- Preset parameters in PHOTOS commons + CALL PHOCIN +C-- +C-- Print info + CALL PHOINF +C-- +C-- Initialization of kinematic correction against rounding errors. +C-- Default parameter is 1 (no correction) optionally 2, 3, 4 + CALL PHCORK(1) +C-- +C-- Initialize Marsaglia and Zaman random number generator + CALL PHORIN + RETURN + END diff --git a/TEvtGen/PHOTOS/phomak.F b/TEvtGen/PHOTOS/phomak.F new file mode 100644 index 00000000000..bb66fb93076 --- /dev/null +++ b/TEvtGen/PHOTOS/phomak.F @@ -0,0 +1,58 @@ + SUBROUTINE PHOMAK(IPPAR,NHEP0) +C.---------------------------------------------------------------------- +C. +C. PHOMAK: PHOtos MAKe +C. +C. Purpose: Single or double bremstrahlung radiative corrections +C. are generated in the decay of the IPPAR-th particle in +C. the HEP common /PH_HEPEVT/. Example of the use of +C. general tools. +C. +C. Input Parameter: IPPAR: Pointer to decaying particle in +C. /PH_HEPEVT/ and the common itself +C. +C. Output Parameters: Common /PH_HEPEVT/, either with or without +C. particles added. +C. +C. Author(s): Z. Was, Created at: 26/05/93 +C. Last Update: +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + DOUBLE PRECISION DATA + REAL*8 PHORAN + INTEGER IP,IPPAR,NCHARG + INTEGER WTDUM,IDUM,NHEP0 + INTEGER NCHARB,NEUDAU + REAL*8 RN,WT,PHINT + LOGICAL BOOST + INTEGER NMXHEP + PARAMETER (NMXHEP=10000) + INTEGER IDHEP,ISTHEP,JDAHEP,JMOHEP,NEVHEP,NHEP + REAL*8 PHEP,VHEP + COMMON/PH_HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), + &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) + LOGICAL INTERF,ISEC,IFTOP + REAL*8 FINT,FSEC + COMMON /PHOKEY/ FSEC,FINT,INTERF,ISEC,IFTOP +C-- + IP=IPPAR + IDUM=1 + NCHARG=0 +C-- + CALL PHOIN(IP,BOOST,NHEP0) + CALL PHOCHK(JDAHEP(1,IP)) + WT=0.0D0 + CALL PHOPRE(1,WT,NEUDAU,NCHARB) + IF (WT.EQ.0.0D0) RETURN + RN=PHORAN(WTDUM) +C PHODO is caling PHORAN, thus change of series if it is moved before if + CALL PHODO(1,NCHARB,NEUDAU) + IF (INTERF) WT=WT*PHINT(IDUM)/FINT + DATA=WT + IF (WT.GT.1.0D0) CALL PHOERR(3,'WT_INT',DATA) + IF (RN.LE.WT) THEN + CALL PHOOUT(IP,BOOST,NHEP0) + ENDIF + RETURN + END diff --git a/TEvtGen/PHOTOS/phooma.F b/TEvtGen/PHOTOS/phooma.F new file mode 100644 index 00000000000..849ab4861d0 --- /dev/null +++ b/TEvtGen/PHOTOS/phooma.F @@ -0,0 +1,49 @@ + SUBROUTINE PHOOMA(IFIRST,ILAST,POINTR) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays Order MAss vector +C. +C. Purpose: Order the contents of array 'POINTR' according to the +C. decreasing value in the array 'MASS'. +C. +C. Input Parameters: IFIRST, ILAST: Pointers to the vector loca- +C. tion be sorted, +C. POINTR: Unsorted array with pointers to +C. /PHOEVT/. +C. +C. Output Parameter: POINTR: Sorted arrays with respect to +C. particle mass 'PPHO(5,*)'. +C. +C. Author(s): B. van Eijk Created at: 28/11/89 +C. Last Update: 27/05/93 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + INTEGER NMXPHO + PARAMETER (NMXPHO=10000) + INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO + REAL*8 PPHO,VPHO + COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO), + &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO) + INTEGER IFIRST,ILAST,I,J,BUFPOI,POINTR(NMXPHO) + REAL*8 BUFMAS,MASS(NMXPHO) + IF (IFIRST.EQ.ILAST) RETURN +C-- +C-- Copy particle masses + DO 10 I=IFIRST,ILAST + 10 MASS(I)=PPHO(5,POINTR(I)) +C-- +C-- Order the masses in a decreasing series + DO 30 I=IFIRST,ILAST-1 + DO 20 J=I+1,ILAST + IF (MASS(J).LE.MASS(I)) GOTO 20 + BUFPOI=POINTR(J) + POINTR(J)=POINTR(I) + POINTR(I)=BUFPOI + BUFMAS=MASS(J) + MASS(J)=MASS(I) + MASS(I)=BUFMAS + 20 CONTINUE + 30 CONTINUE + RETURN + END diff --git a/TEvtGen/PHOTOS/phoout.F b/TEvtGen/PHOTOS/phoout.F new file mode 100644 index 00000000000..99151893a6d --- /dev/null +++ b/TEvtGen/PHOTOS/phoout.F @@ -0,0 +1,79 @@ + SUBROUTINE PHOOUT(IP,BOOST,NHEP0) +C.---------------------------------------------------------------------- +C. +C. PHOOUT: PHOtos OUTput +C. +C. Purpose: copies back IP branch of the common /PH_HEPEVT/ from +C. /PHOEVT/ moves branch back from its CMS system. +C. +C. Input Parameters: IP: pointer of particle starting branch +C. to be given back. +C. BOOST: Flag whether boost to CMS was or was +C . not performed. +C. +C. Output Parameters: Common /PHOEVT/, +C. +C. Author(s): Z. Was Created at: 24/05/93 +C. Last Update: +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + INTEGER NMXHEP + PARAMETER (NMXHEP=10000) + INTEGER IDHEP,ISTHEP,JDAHEP,JMOHEP,NEVHEP,NHEP + REAL*8 PHEP,VHEP + COMMON/PH_HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), + &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) + INTEGER NMXPHO + PARAMETER (NMXPHO=10000) + INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO + REAL*8 PPHO,VPHO + COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO), + &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO) + INTEGER IP,LL,FIRST,LAST,I + LOGICAL BOOST + INTEGER NN,J,K,NHEP0,NA + DOUBLE PRECISION BET(3),GAM,PB + COMMON /PHOCMS/ BET,GAM + IF(NPHO.EQ.NEVPHO) RETURN +C-- When parent was not in its rest-frame, boost back... + CALL PHLUPA(10) + IF (BOOST) THEN + DO 110 J=JDAPHO(1,1),JDAPHO(2,1) + PB=-BET(1)*PPHO(1,J)-BET(2)*PPHO(2,J)-BET(3)*PPHO(3,J) + DO 100 K=1,3 + 100 PPHO(K,J)=PPHO(K,J)-BET(K)*(PPHO(4,J)+PB/(GAM+1.D0)) + 110 PPHO(4,J)=GAM*PPHO(4,J)+PB +C-- ...boost photon, or whatever else has shown up + DO NN=NEVPHO+1,NPHO + PB=-BET(1)*PPHO(1,NN)-BET(2)*PPHO(2,NN)-BET(3)*PPHO(3,NN) + DO 120 K=1,3 + 120 PPHO(K,NN)=PPHO(K,NN)-BET(K)*(PPHO(4,NN)+PB/(GAM+1.D0)) + PPHO(4,NN)=GAM*PPHO(4,NN)+PB + ENDDO + ENDIF + FIRST=JDAHEP(1,IP) + LAST =JDAHEP(2,IP) +C let's take in original daughters + DO LL=0,LAST-FIRST + IDHEP(FIRST+LL) = IDPHO(3+LL) + DO I=1,5 + PHEP(I,FIRST+LL) = PPHO(I,3+LL) + ENDDO + ENDDO +C let's take newcomers to the end of HEPEVT. + NA=3+LAST-FIRST + DO LL=1,NPHO-NA + IDHEP(NHEP0+LL) = IDPHO(NA+LL) + ISTHEP(NHEP0+LL)=ISTPHO(NA+LL) + JMOHEP(1,NHEP0+LL)=IP + JMOHEP(2,NHEP0+LL)=JMOHEP(2,JDAHEP(1,IP)) + JDAHEP(1,NHEP0+LL)=0 + JDAHEP(2,NHEP0+LL)=0 + DO I=1,5 + PHEP(I,NHEP0+LL) = PPHO(I,NA+LL) + ENDDO + ENDDO + NHEP=NHEP+NPHO-NEVPHO + CALL PHLUPA(20) + END diff --git a/TEvtGen/PHOTOS/phopre.F b/TEvtGen/PHOTOS/phopre.F new file mode 100644 index 00000000000..022e5df4c00 --- /dev/null +++ b/TEvtGen/PHOTOS/phopre.F @@ -0,0 +1,173 @@ + + + SUBROUTINE PHOPRE(IPARR,WT,NEUDAU,NCHARB) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: Photon radiation in decays +C. +C. Purpose: Order (alpha) radiative corrections are generated in +C. the decay of the IPPAR-th particle in the HEP-like +C. common /PHOEVT/. Photon radiation takes place from one +C. of the charged daughters of the decaying particle IPPAR +C. WT is calculated, eventual rejection will be performed +C. later after inclusion of interference weight. +C. +C. Input Parameter: IPPAR: Pointer to decaying particle in +C. /PHOEVT/ and the common itself, +C. +C. Output Parameters: Common /PHOEVT/, either with or without a +C. photon(s) added. +C. WT weight of the configuration +C. +C. Author(s): Z. Was, B. van Eijk Created at: 26/11/89 +C. Last Update: 26/05/93 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + DOUBLE PRECISION MINMAS,MPASQR,MCHREN + DOUBLE PRECISION BETA,EPS,DEL1,DEL2,DATA + REAL*8 PHOCHA,PHOSPI,PHORAN,PHOCOR,MASSUM + INTEGER IP,IPARR,IPPAR,I,J,ME,NCHARG,NEUPOI,NLAST,THEDUM + INTEGER IDABS,IDUM + INTEGER NCHARB,NEUDAU + REAL*8 WT + INTEGER NMXPHO + PARAMETER (NMXPHO=10000) + INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO + REAL*8 PPHO,VPHO + COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO), + &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO) + LOGICAL CHKIF + COMMON/PHOIF/CHKIF(NMXPHO) + INTEGER CHAPOI(NMXPHO) + DOUBLE PRECISION MCHSQR,MNESQR + REAL*8 PNEUTR + COMMON/PHOMOM/MCHSQR,MNESQR,PNEUTR(5) + DOUBLE PRECISION COSTHG,SINTHG + REAL*8 XPHMAX,XPHOTO + COMMON/PHOPHS/XPHMAX,XPHOTO,COSTHG,SINTHG + REAL*8 ALPHA,XPHCUT + COMMON/PHOCOP/ALPHA,XPHCUT + INTEGER IREP + REAL*8 PROBH,CORWT,XF + COMMON/PHOPRO/PROBH,CORWT,XF,IREP +C-- + IPPAR=IPARR +C-- Store pointers for cascade treatement... + IP=IPPAR + NLAST=NPHO + IDUM=1 +C-- +C-- Check decay multiplicity.. + IF (JDAPHO(1,IP).EQ.0) RETURN +C-- +C-- Loop over daughters, determine charge multiplicity + 10 NCHARG=0 + IREP=0 + MINMAS=0.D0 + MASSUM=0.D0 + DO 20 I=JDAPHO(1,IP),JDAPHO(2,IP) +C-- +C-- +C-- Exclude marked particles, quarks and gluons etc... + IDABS=ABS(IDPHO(I)) + IF (CHKIF(I-JDAPHO(1,IP)+3)) THEN + IF (PHOCHA(IDPHO(I)).NE.0) THEN + NCHARG=NCHARG+1 + IF (NCHARG.GT.NMXPHO) THEN + DATA=NCHARG + CALL PHOERR(1,'PHOTOS',DATA) + ENDIF + CHAPOI(NCHARG)=I + ENDIF + MINMAS=MINMAS+PPHO(5,I)**2 + ENDIF + MASSUM=MASSUM+PPHO(5,I) + 20 CONTINUE + IF (NCHARG.NE.0) THEN +C-- +C-- Check that sum of daughter masses does not exceed parent mass + IF ((PPHO(5,IP)-MASSUM)/PPHO(5,IP).GT.2.D0*XPHCUT) THEN +C-- +C-- Order charged particles according to decreasing mass, this to +C-- increase efficiency (smallest mass is treated first). + IF (NCHARG.GT.1) CALL PHOOMA(1,NCHARG,CHAPOI) +C-- + 30 CONTINUE + DO 70 J=1,3 + 70 PNEUTR(J)=-PPHO(J,CHAPOI(NCHARG)) + PNEUTR(4)=PPHO(5,IP)-PPHO(4,CHAPOI(NCHARG)) +C-- +C-- Calculate invariant mass of 'neutral' etc. systems + MPASQR=PPHO(5,IP)**2 + MCHSQR=PPHO(5,CHAPOI(NCHARG))**2 + IF ((JDAPHO(2,IP)-JDAPHO(1,IP)).EQ.1) THEN + NEUPOI=JDAPHO(1,IP) + IF (NEUPOI.EQ.CHAPOI(NCHARG)) NEUPOI=JDAPHO(2,IP) + MNESQR=PPHO(5,NEUPOI)**2 + PNEUTR(5)=PPHO(5,NEUPOI) + ELSE + MNESQR=PNEUTR(4)**2-PNEUTR(1)**2-PNEUTR(2)**2-PNEUTR(3)**2 + MNESQR=MAX(MNESQR,MINMAS-MCHSQR) + PNEUTR(5)=SQRT(MNESQR) + ENDIF +C-- +C-- Determine kinematical limit... + XPHMAX=(MPASQR-(PNEUTR(5)+PPHO(5,CHAPOI(NCHARG)))**2)/MPASQR +C-- +C-- Photon energy fraction... + CALL PHOENE(MPASQR,MCHREN,BETA,IDPHO(CHAPOI(NCHARG))) +C-- +C-- Energy fraction not too large (very seldom) ? Define angle. + IF ((XPHOTO.LT.XPHCUT).OR.(XPHOTO.GT.XPHMAX)) THEN +C-- +C-- No radiation was accepted, check for more daughters that may ra- +C-- diate and correct radiation probability... + NCHARG=NCHARG-1 + IF (NCHARG.GT.0) THEN + IREP=IREP+1 + GOTO 30 + ENDIF + ELSE +C-- +C-- Angle is generated in the frame defined by charged vector and +C-- PNEUTR, distribution is taken in the infrared limit... + EPS=MCHREN/(1.D0+BETA) +C-- +C-- Calculate sin(theta) and cos(theta) from interval variables + DEL1=(2.D0-EPS)*(EPS/(2.D0-EPS))**PHORAN(THEDUM) + DEL2=2.D0-DEL1 + COSTHG=(1.D0-DEL1)/BETA + SINTHG=SQRT(DEL1*DEL2-MCHREN)/BETA +C-- +C-- Determine spin of particle and construct code for matrix element + ME=2.D0*PHOSPI(IDPHO(CHAPOI(NCHARG)))+1.D0 +C-- +C-- Weighting procedure with 'exact' matrix element, reconstruct kine- +C-- matics for photon, neutral and charged system and update /PHOEVT/. +C-- Find pointer to the first component of 'neutral' system + DO I=JDAPHO(1,IP),JDAPHO(2,IP) + IF (I.NE.CHAPOI(NCHARG)) THEN + NEUDAU=I + GOTO 51 + ENDIF + ENDDO +C-- +C-- Pointer not found... + DATA=NCHARG + CALL PHOERR(5,'PHOKIN',DATA) + 51 CONTINUE + NCHARB=CHAPOI(NCHARG) + NCHARB=NCHARB-JDAPHO(1,IP)+3 + NEUDAU=NEUDAU-JDAPHO(1,IP)+3 + WT=PHOCOR(MPASQR,MCHREN,ME) + + ENDIF + ELSE + DATA=PPHO(5,IP)-MASSUM + CALL PHOERR(10,'PHOTOS',DATA) + ENDIF + ENDIF +C-- + RETURN + END diff --git a/TEvtGen/PHOTOS/phoran.F b/TEvtGen/PHOTOS/phoran.F new file mode 100644 index 00000000000..fce63604533 --- /dev/null +++ b/TEvtGen/PHOTOS/phoran.F @@ -0,0 +1,41 @@ + FUNCTION PHORAN(IDUM) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays RANdom number generator based +C. on Marsaglia Algorithm +C. +C. Purpose: Generate uniformly distributed random numbers between +C. 0 and 1. Super long period: 2**144. See also: +C. G. Marsaglia and A. Zaman, FSU-SCR-87-50, for seed mo- +C. difications to this version see: F. James DD-Report, +C. November 1988. The generator has to be initialized by +C. a call to PHORIN. +C. +C. Input Parameters: IDUM (integer dummy) +C. +C. Output Parameters: Function value +C. +C. Author(s): B. van Eijk, G. Marsaglia and Created at: 27/09/89 +C. A. Zaman Last Update: 27/09/89 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + REAL*8 PHORAN + INTEGER IDUM + INTEGER ISEED,I97,J97 + REAL*8 URAN,CRAN,CDRAN,CMRAN + COMMON/PHSEED/ISEED(2),I97,J97,URAN(97),CRAN,CDRAN,CMRAN + 10 PHORAN=URAN(I97)-URAN(J97) + IF (PHORAN.LT.0.D0) PHORAN=PHORAN+1.D0 + URAN(I97)=PHORAN + I97=I97-1 + IF (I97.EQ.0) I97=97 + J97=J97-1 + IF (J97.EQ.0) J97=97 + CRAN=CRAN-CDRAN + IF (CRAN.LT.0.D0) CRAN=CRAN+CMRAN + PHORAN=PHORAN-CRAN + IF (PHORAN.LT.0.D0) PHORAN=PHORAN+1.D0 + IF (PHORAN.LE.0.D0) GOTO 10 + RETURN + END diff --git a/TEvtGen/PHOTOS/phorep.F b/TEvtGen/PHOTOS/phorep.F new file mode 100644 index 00000000000..dab17cf7d37 --- /dev/null +++ b/TEvtGen/PHOTOS/phorep.F @@ -0,0 +1,56 @@ + SUBROUTINE PHOREP +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays run summary REPort +C. +C. Purpose: Inform user about success and/or restrictions of PHOTOS +C. encountered during execution. +C. +C. Input Parameters: Common /PHOSTA/ +C. +C. Output Parameters: None +C. +C. Author(s): B. van Eijk Created at: 10/01/92 +C. Last Update: 10/01/92 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + INTEGER PHLUN + COMMON/PHOLUN/PHLUN + INTEGER PHOMES + PARAMETER (PHOMES=10) + INTEGER STATUS + COMMON/PHOSTA/STATUS(PHOMES) + INTEGER I + LOGICAL ERROR + ERROR=.FALSE. + WRITE(PHLUN,9000) + WRITE(PHLUN,9010) + WRITE(PHLUN,9020) + WRITE(PHLUN,9030) + WRITE(PHLUN,9040) + WRITE(PHLUN,9030) + WRITE(PHLUN,9020) + DO 10 I=1,PHOMES + IF (STATUS(I).EQ.0) GOTO 10 + IF ((I.EQ.6).OR.(I.EQ.10)) THEN + WRITE(PHLUN,9050) I,STATUS(I) + ELSE + ERROR=.TRUE. + WRITE(PHLUN,9060) I,STATUS(I) + ENDIF + 10 CONTINUE + IF (.NOT.ERROR) WRITE(PHLUN,9070) + WRITE(PHLUN,9020) + WRITE(PHLUN,9010) + RETURN + 9000 FORMAT(1H1) + 9010 FORMAT(1H ,80('*')) + 9020 FORMAT(1H ,'*',T81,'*') + 9030 FORMAT(1H ,'*',26X,25('='),T81,'*') + 9040 FORMAT(1H ,'*',30X,'PHOTOS Run Summary',T81,'*') + 9050 FORMAT(1H ,'*',22X,'Warning #',I2,' occured',I6,' times',T81,'*') + 9060 FORMAT(1H ,'*',23X,'Error #',I2,' occured',I6,' times',T81,'*') + 9070 FORMAT(1H ,'*',16X,'PHOTOS Execution has successfully terminated', + &T81,'*') + END diff --git a/TEvtGen/PHOTOS/phorin.F b/TEvtGen/PHOTOS/phorin.F new file mode 100644 index 00000000000..199429753c1 --- /dev/null +++ b/TEvtGen/PHOTOS/phorin.F @@ -0,0 +1,59 @@ + SUBROUTINE PHORIN +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays RANdom number generator init +C. +C. Purpose: Initialse PHORAN with the user specified seeds in the +C. array ISEED. For details see also: F. James CERN DD- +C. Report November 1988. +C. +C. Input Parameters: ISEED(*) +C. +C. Output Parameters: URAN, CRAN, CDRAN, CMRAN, I97, J97 +C. +C. Author(s): B. van Eijk and F. James Created at: 27/09/89 +C. Last Update: 22/02/90 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + DOUBLE PRECISION DATA + REAL*8 S,T + INTEGER I,IS1,IS2,IS3,IS4,IS5,J + INTEGER ISEED,I97,J97 + REAL*8 URAN,CRAN,CDRAN,CMRAN + COMMON/PHSEED/ISEED(2),I97,J97,URAN(97),CRAN,CDRAN,CMRAN +C-- +C-- Check value range of seeds + IF ((ISEED(1).LT.0).OR.(ISEED(1).GE.31328)) THEN + DATA=ISEED(1) + CALL PHOERR(8,'PHORIN',DATA) + ENDIF + IF ((ISEED(2).LT.0).OR.(ISEED(2).GE.30081)) THEN + DATA=ISEED(2) + CALL PHOERR(9,'PHORIN',DATA) + ENDIF +C-- +C-- Calculate Marsaglia and Zaman seeds (by F. James) + IS1=MOD(ISEED(1)/177,177)+2 + IS2=MOD(ISEED(1),177)+2 + IS3=MOD(ISEED(2)/169,178)+1 + IS4=MOD(ISEED(2),169) + DO 20 I=1,97 + S=0.D0 + T=0.5D0 + DO 10 J=1,24 + IS5=MOD (MOD(IS1*IS2,179)*IS3,179) + IS1=IS2 + IS2=IS3 + IS3=IS5 + IS4=MOD(53*IS4+1,169) + IF (MOD(IS4*IS5,64).GE.32) S=S+T + 10 T=0.5D0*T + 20 URAN(I)=S + CRAN=362436.D0/16777216.D0 + CDRAN=7654321.D0/16777216.D0 + CMRAN=16777213.D0/16777216.D0 + I97=97 + J97=33 + RETURN + END diff --git a/TEvtGen/PHOTOS/phoro2.F b/TEvtGen/PHOTOS/phoro2.F new file mode 100644 index 00000000000..a216372f961 --- /dev/null +++ b/TEvtGen/PHOTOS/phoro2.F @@ -0,0 +1,25 @@ + SUBROUTINE PHORO2(ANGLE,PVEC) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays ROtation routine '2' +C. +C. Purpose: Rotate x and z components of vector PVEC around angle +C. 'ANGLE'. +C. +C. Input Parameters: ANGLE, PVEC +C. +C. Output Parameter: PVEC +C. +C. Author(s): S. Jadach Created at: 01/01/89 +C. B. van Eijk Last Update: 02/01/90 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + DOUBLE PRECISION CS,SN,ANGLE + REAL*8 PVEC(4) + CS=COS(ANGLE)*PVEC(1)+SIN(ANGLE)*PVEC(3) + SN=-SIN(ANGLE)*PVEC(1)+COS(ANGLE)*PVEC(3) + PVEC(1)=CS + PVEC(3)=SN + RETURN + END diff --git a/TEvtGen/PHOTOS/phoro3.F b/TEvtGen/PHOTOS/phoro3.F new file mode 100644 index 00000000000..aac7ca744c1 --- /dev/null +++ b/TEvtGen/PHOTOS/phoro3.F @@ -0,0 +1,25 @@ + SUBROUTINE PHORO3(ANGLE,PVEC) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays ROtation routine '3' +C. +C. Purpose: Rotate x and y components of vector PVEC around angle +C. 'ANGLE'. +C. +C. Input Parameters: ANGLE, PVEC +C. +C. Output Parameter: PVEC +C. +C. Author(s): S. Jadach Created at: 01/01/89 +C. B. van Eijk Last Update: 02/01/90 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + DOUBLE PRECISION CS,SN,ANGLE + REAL*8 PVEC(4) + CS=COS(ANGLE)*PVEC(1)-SIN(ANGLE)*PVEC(2) + SN=SIN(ANGLE)*PVEC(1)+COS(ANGLE)*PVEC(2) + PVEC(1)=CS + PVEC(2)=SN + RETURN + END diff --git a/TEvtGen/PHOTOS/phospi.F b/TEvtGen/PHOTOS/phospi.F new file mode 100644 index 00000000000..c55f709c480 --- /dev/null +++ b/TEvtGen/PHOTOS/phospi.F @@ -0,0 +1,42 @@ + FUNCTION PHOSPI(IDHEP) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays function for SPIn determina- +C. tion +C. +C. Purpose: Calculate the spin of particle with code IDHEP. The +C. code of the particle is defined by the Particle Data +C. Group in Phys. Lett. B204 (1988) 1. +C. +C. Input Parameter: IDHEP +C. +C. Output Parameter: Funtion value = spin of particle with code +C. IDHEP +C. +C. Author(s): E. Barberio and B. van Eijk Created at: 29/11/89 +C. Last update: 02/01/90 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + REAL*8 PHOSPI + INTEGER IDHEP,IDABS +C-- +C-- Array 'SPIN' contains the spin of the first 100 particles accor- +C-- ding to the PDG particle code... + REAL*8 SPIN(100) + DATA SPIN/ 8*.5D0, 1.D0, 0.D0, 8*.5D0, 2*0.D0, 4*1.D0, 76*0.D0/ + IDABS=ABS(IDHEP) +C-- +C-- Spin of quark, lepton, boson etc.... + IF (IDABS.LE.100) THEN + PHOSPI=SPIN(IDABS) + ELSE +C-- +C-- ...other particles, however... + PHOSPI=(MOD(IDABS,10)-1.D0)/2.D0 +C-- +C-- ...K_short and K_long are special !! + PHOSPI=MAX(PHOSPI,0.D0) + ENDIF + RETURN + END diff --git a/TEvtGen/PHOTOS/photos.F b/TEvtGen/PHOTOS/photos.F new file mode 100644 index 00000000000..8b3b43e95a4 --- /dev/null +++ b/TEvtGen/PHOTOS/photos.F @@ -0,0 +1,22 @@ + SUBROUTINE PHOTOS(ID) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: General search routine + _GET + _SET +C. +C. Purpose: /HEPEVT/ is not anymore a standard at least +C. REAL*8 REAL*4 are in use. PHOTOS_GET and PHOTOS_SET +C. were to be introduced. +C. +C. +C. Input Parameters: ID see routine PPHOTOS_MAKE +C. +C. Output Parameters: None +C. +C. Author(s): Z. Was Created at: 21/07/98 +C. Last Update: 21/07/98 +C. +C.---------------------------------------------------------------------- + CALL PHOTOS_GET + CALL PHOTOS_MAKE(ID) + CALL PHOTOS_SET + END diff --git a/TEvtGen/PHOTOS/photos_get.F b/TEvtGen/PHOTOS/photos_get.F new file mode 100644 index 00000000000..ee4ebb623e1 --- /dev/null +++ b/TEvtGen/PHOTOS/photos_get.F @@ -0,0 +1,62 @@ + + SUBROUTINE PHOTOS_GET +C.---------------------------------------------------------------------- +C. +C. Getter for PHOTOS: +C. +C. Purpose: Copies /HEPEVT/ into /PH_HEPEVT/ +C. +C. +C. Input Parameters: None +C. +C. Output Parameters: None +C. +C. Author(s): Z. Was Created at: 21/07/98 +C. Last Update: 21/07/98 +C. +C.---------------------------------------------------------------------- + + IMPLICIT NONE + INTEGER d_h_nmxhep ! maximum number of particles + PARAMETER ( d_h_nmxhep=4000) + REAL*8 d_h_phep, d_h_vhep ! to be real*4 or *8 depending on host + INTEGER d_h_nevhep,d_h_nhep,d_h_isthep,d_h_idhep,d_h_jmohep, + $ d_h_jdahep + COMMON /hepevt/ + $ d_h_nevhep, ! serial number + $ d_h_nhep, ! number of particles + $ d_h_isthep(d_h_nmxhep), ! status code + $ d_h_idhep(d_h_nmxhep), ! particle ident KF + $ d_h_jmohep(2,d_h_nmxhep), ! parent particles + $ d_h_jdahep(2,d_h_nmxhep), ! childreen particles + $ d_h_phep(5,d_h_nmxhep), ! four-momentum, mass [GeV] + $ d_h_vhep(4,d_h_nmxhep) ! vertex [mm] +* ---------------------------------------------------------------------- +! LOGICAL d_h_qedrad +! COMMON /phoqed/ +! $ d_h_qedrad(d_h_nmxhep) ! Photos flag + INTEGER NMXHEP + PARAMETER (NMXHEP=10000) + INTEGER IDHEP,ISTHEP,JDAHEP,JMOHEP,NEVHEP,NHEP + REAL*8 PHEP,VHEP + COMMON/PH_HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), + &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) + LOGICAL QEDRAD + COMMON/PHOQED/QEDRAD(NMXHEP) + integer k,l + nevhep= d_h_nevhep ! serial number + nhep = d_h_nhep ! number of particles + DO K=1,nhep + isthep(k) =d_h_isthep(k) ! status code + idhep(k) =d_h_idhep(k) ! particle ident KF + jmohep(1,k) =d_h_jmohep(1,k) ! parent particles + jdahep(1,k) =d_h_jdahep(1,k) ! childreen particles + jmohep(2,k) =d_h_jmohep(2,k) ! parent particles + jdahep(2,k) =d_h_jdahep(2,k) ! childreen particles + DO l=1,4 + phep(l,k) =d_h_phep(l,k) ! four-momentum, mass [GeV] + vhep(l,k) =d_h_vhep(l,k) ! vertex [mm] + ENDDO + phep(5,k) =d_h_phep(5,k) ! four-momentum, mass [GeV] + ENDDO + END diff --git a/TEvtGen/PHOTOS/photos_make.F b/TEvtGen/PHOTOS/photos_make.F new file mode 100644 index 00000000000..2c2077bf37a --- /dev/null +++ b/TEvtGen/PHOTOS/photos_make.F @@ -0,0 +1,166 @@ + SUBROUTINE PHOTOS_MAKE(IPARR) +C.---------------------------------------------------------------------- +C. +C. PHOTOS_MAKE: General search routine +C. +C. Purpose: Search through the /PH_HEPEVT/ standard HEP common, sta- +C. rting from the IPPAR-th particle. Whenevr branching +C. point is found routine PHTYPE(IP) is called. +C. Finally if calls on PHTYPE(IP) modified entries, common +C /PH_HEPEVT/ is ordered. +C. +C. Input Parameter: IPPAR: Pointer to decaying particle in +C. /PH_HEPEVT/ and the common itself, +C. +C. Output Parameters: Common /PH_HEPEVT/, either with or without +C. new particles added. +C. +C. Author(s): Z. Was, B. van Eijk Created at: 26/11/89 +C. Last Update: 30/08/93 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + REAL*8 PHOTON(5) + INTEGER IP,IPARR,IPPAR,I,J,K,L,NLAST + DOUBLE PRECISION DATA + INTEGER MOTHER,POSPHO + LOGICAL CASCAD + INTEGER NMXHEP + PARAMETER (NMXHEP=10000) + INTEGER IDHEP,ISTHEP,JDAHEP,JMOHEP,NEVHEP,NHEP + REAL*8 PHEP,VHEP + COMMON/PH_HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), + &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) + LOGICAL QEDRAD + COMMON/PHOQED/QEDRAD(NMXHEP) + INTEGER NMXPHO + PARAMETER (NMXPHO=10000) + INTEGER ISTACK(0:NMXPHO),NUMIT,NTRY,KK,LL,II,NA,FIRST,LAST + INTEGER FIRSTA,LASTA,IPP,IDA1,IDA2,MOTHER2,IDPHO,ISPHO + REAL*8 PORIG(5,NMXPHO) +C-- + IPPAR=ABS(IPARR) +C-- Store pointers for cascade treatement... + IP=IPPAR + NLAST=NHEP + CASCAD=.FALSE. +C-- +C-- Check decay multiplicity and minimum of correctness.. + IF ((JDAHEP(1,IP).EQ.0).OR.(JMOHEP(1,JDAHEP(1,IP)).NE.IP)) RETURN +C-- +C-- single branch mode +C-- we start looking for the decay points in the cascade +C-- IPPAR is original position where the program was called + ISTACK(0)=IPPAR +C-- NUMIT denotes number of secondary decay branches + NUMIT=0 +C-- NTRY denotes number of secondary branches already checked for +C-- for existence of further branches + NTRY=0 +C-- let's search if IPARR does not prevent searching. + IF (IPARR.GT.0) THEN + 30 CONTINUE + DO I=JDAHEP(1,IP),JDAHEP(2,IP) + IF (JDAHEP(1,I).NE.0.AND.JMOHEP(1,JDAHEP(1,I)).EQ.I) THEN + NUMIT=NUMIT+1 + IF (NUMIT.GT.NMXPHO) THEN + DATA=NUMIT + CALL PHOERR(7,'PHOTOS',DATA) + ENDIF + ISTACK(NUMIT)=I + ENDIF + ENDDO + IF(NUMIT.GT.NTRY) THEN + NTRY=NTRY+1 + IP=ISTACK(NTRY) + GOTO 30 + ENDIF + ENDIF +C-- let's do generation + DO 25 KK=0,NUMIT + NA=NHEP + FIRST=JDAHEP(1,ISTACK(KK)) + LAST=JDAHEP(2,ISTACK(KK)) + DO II=1,LAST-FIRST+1 + DO LL=1,5 + PORIG(LL,II)=PHEP(LL,FIRST+II-1) + ENDDO + ENDDO +C-- + CALL PHTYPE(ISTACK(KK)) +C-- +C-- Correct energy/momentum of cascade daughters + IF(NHEP.GT.NA) THEN + DO II=1,LAST-FIRST+1 + IPP=FIRST+II-1 + FIRSTA=JDAHEP(1,IPP) + LASTA=JDAHEP(2,IPP) + IF(JMOHEP(1,IPP).EQ.ISTACK(KK)) + $ CALL PHOBOS(IPP,PORIG(1,II),PHEP(1,IPP),FIRSTA,LASTA) + ENDDO + ENDIF + 25 CONTINUE +C-- +C-- rearrange /PH_HEPEVT/ to get correct order.. + IF (NHEP.GT.NLAST) THEN + DO 160 I=NLAST+1,NHEP +C-- +C-- Photon mother and position... + MOTHER=JMOHEP(1,I) + POSPHO=JDAHEP(2,MOTHER)+1 +C-- Intermediate save of photon energy/momentum and pointers + DO 90 J=1,5 + 90 PHOTON(J)=PHEP(J,I) + ISPHO =ISTHEP(I) + IDPHO =IDHEP(I) + MOTHER2 =JMOHEP(2,I) + IDA1 =JDAHEP(1,I) + IDA2 =JDAHEP(2,I) +C-- +C-- Exclude photon in sequence ! + IF (POSPHO.NE.NHEP) THEN +C-- +C-- +C-- Order /PH_HEPEVT/ + DO 120 K=I,POSPHO+1,-1 + ISTHEP(K)=ISTHEP(K-1) + QEDRAD(K)=QEDRAD(K-1) + IDHEP(K)=IDHEP(K-1) + DO 100 L=1,2 + JMOHEP(L,K)=JMOHEP(L,K-1) + 100 JDAHEP(L,K)=JDAHEP(L,K-1) + DO 110 L=1,5 + 110 PHEP(L,K)=PHEP(L,K-1) + DO 120 L=1,4 + 120 VHEP(L,K)=VHEP(L,K-1) +C-- +C-- Correct pointers assuming most dirty /PH_HEPEVT/... + DO 130 K=1,NHEP + DO 130 L=1,2 + IF ((JMOHEP(L,K).NE.0).AND.(JMOHEP(L,K).GE. + & POSPHO)) JMOHEP(L,K)=JMOHEP(L,K)+1 + IF ((JDAHEP(L,K).NE.0).AND.(JDAHEP(L,K).GE. + & POSPHO)) JDAHEP(L,K)=JDAHEP(L,K)+1 + 130 CONTINUE +C-- +C-- Store photon energy/momentum + DO 140 J=1,5 + 140 PHEP(J,POSPHO)=PHOTON(J) + ENDIF +C-- +C-- Store pointers for the photon... + JDAHEP(2,MOTHER)=POSPHO + ISTHEP(POSPHO)=ISPHO + IDHEP(POSPHO)=IDPHO + JMOHEP(1,POSPHO)=MOTHER + JMOHEP(2,POSPHO)=MOTHER2 + JDAHEP(1,POSPHO)=IDA1 + JDAHEP(2,POSPHO)=IDA2 +C-- +C-- Get photon production vertex position + DO 150 J=1,4 + 150 VHEP(J,POSPHO)=VHEP(J,POSPHO-1) + 160 CONTINUE + ENDIF + RETURN + END diff --git a/TEvtGen/PHOTOS/photos_set.F b/TEvtGen/PHOTOS/photos_set.F new file mode 100644 index 00000000000..431e5eb32d2 --- /dev/null +++ b/TEvtGen/PHOTOS/photos_set.F @@ -0,0 +1,63 @@ + + + SUBROUTINE PHOTOS_SET +C.---------------------------------------------------------------------- +C. +C. Setter for PHOTOS: +C. +C. Purpose: Copies /PH_HEPEVT/ into /HEPEVT/ +C. +C. +C. Input Parameters: None +C. +C. Output Parameters: None +C. +C. Author(s): Z. Was Created at: 21/07/98 +C. Last Update: 21/07/98 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + INTEGER d_h_nmxhep ! maximum number of particles + PARAMETER ( d_h_nmxhep=4000) + REAL*8 d_h_phep, d_h_vhep ! to be real*4 or *8 depending on host + INTEGER d_h_nevhep,d_h_nhep,d_h_isthep,d_h_idhep,d_h_jmohep, + $ d_h_jdahep + COMMON /hepevt/ + $ d_h_nevhep, ! serial number + $ d_h_nhep, ! number of particles + $ d_h_isthep(d_h_nmxhep), ! status code + $ d_h_idhep(d_h_nmxhep), ! particle ident KF + $ d_h_jmohep(2,d_h_nmxhep), ! parent particles + $ d_h_jdahep(2,d_h_nmxhep), ! childreen particles + $ d_h_phep(5,d_h_nmxhep), ! four-momentum, mass [GeV] + $ d_h_vhep(4,d_h_nmxhep) ! vertex [mm] +* ---------------------------------------------------------------------- +! LOGICAL d_h_qedrad +! COMMON /phoqed/ +! $ d_h_qedrad(d_h_nmxhep) ! Photos flag + INTEGER NMXHEP + PARAMETER (NMXHEP=10000) + INTEGER IDHEP,ISTHEP,JDAHEP,JMOHEP,NEVHEP,NHEP + REAL*8 PHEP,VHEP + COMMON/PH_HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), + &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) + LOGICAL QEDRAD + COMMON/PHOQED/QEDRAD(NMXHEP) + INTEGER K,L + + d_h_nevhep= nevhep ! serial number + d_h_nhep = nhep ! number of particles + DO K=1,nhep + d_h_isthep(k) =isthep(k) ! status code + d_h_idhep(k) =idhep(k) ! particle ident KF + d_h_jmohep(1,k) =jmohep(1,k) ! parent particles + d_h_jdahep(1,k) =jdahep(1,k) ! childreen particles + d_h_jmohep(2,k) =jmohep(2,k) ! parent particles + d_h_jdahep(2,k) =jdahep(2,k) ! childreen particles + DO l=1,4 + d_h_phep(l,k) =phep(l,k) ! four-momentum, mass [GeV] + d_h_vhep(l,k) =vhep(l,k) ! vertex [mm] + ENDDO + d_h_phep(5,k) =phep(5,k) ! four-momentum, mass [GeV] + ENDDO + END diff --git a/TEvtGen/PHOTOS/photri.F b/TEvtGen/PHOTOS/photri.F new file mode 100644 index 00000000000..8a2f806d21b --- /dev/null +++ b/TEvtGen/PHOTOS/photri.F @@ -0,0 +1,28 @@ + FUNCTION PHOTRI(A,B,C) +C.---------------------------------------------------------------------- +C. +C. PHOTOS: PHOton radiation in decays calculation of TRIangle fie +C. +C. Purpose: Calculation of triangle function for phase space. +C. +C. Input Parameters: A, B, C (Virtual) particle masses. +C. +C. Output Parameter: Function value = +C. SQRT(LAMBDA(A**2,B**2,C**2))/(2*A) +C. +C. Author(s): B. van Eijk Created at: 15/11/89 +C. Last Update: 02/01/90 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + DOUBLE PRECISION DA,DB,DC,DAPB,DAMB,DTRIAN + REAL*8 A,B,C,PHOTRI + DA=A + DB=B + DC=C + DAPB=DA+DB + DAMB=DA-DB + DTRIAN=SQRT((DAMB-DC)*(DAPB+DC)*(DAMB+DC)*(DAPB-DC)) + PHOTRI=DTRIAN/(DA+DA) + RETURN + END diff --git a/TEvtGen/PHOTOS/photwo.F b/TEvtGen/PHOTOS/photwo.F new file mode 100644 index 00000000000..8bb9229a8b8 --- /dev/null +++ b/TEvtGen/PHOTOS/photwo.F @@ -0,0 +1,59 @@ + SUBROUTINE PHOTWO(MODE) +C.---------------------------------------------------------------------- +C. +C. PHOTWO: PHOtos but TWO mothers allowed +C. +C. Purpose: Combines two mothers into one in /PHOEVT/ +C. necessary eg in case of g g (q qbar) --> t tbar +C. +C. Input Parameters: Common /PHOEVT/ (/PHOCMS/) +C. +C. Output Parameters: Common /PHOEVT/, (stored mothers) +C. +C. Author(s): Z. Was Created at: 5/08/93 +C. Last Update:10/08/93 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + INTEGER NMXPHO + PARAMETER (NMXPHO=10000) + INTEGER IDPHO,ISTPHO,JDAPHO,JMOPHO,NEVPHO,NPHO + REAL*8 PPHO,VPHO + COMMON/PHOEVT/NEVPHO,NPHO,ISTPHO(NMXPHO),IDPHO(NMXPHO), + &JMOPHO(2,NMXPHO),JDAPHO(2,NMXPHO),PPHO(5,NMXPHO),VPHO(4,NMXPHO) + DOUBLE PRECISION BET(3),GAM + COMMON /PHOCMS/ BET,GAM + INTEGER I,MODE + REAL*8 MPASQR + LOGICAL IFRAD +C logical IFRAD is used to tag cases when two mothers may be +C merged to the sole one. +C So far used in case: +C 1) of t tbar production +C +C t tbar case + IF(MODE.EQ.0) THEN + IFRAD=(IDPHO(1).EQ.21).AND.(IDPHO(2).EQ.21) + IFRAD=IFRAD.OR.(IDPHO(1).EQ.-IDPHO(2).AND.ABS(IDPHO(1)).LE.6) + IFRAD=IFRAD + & .AND.(ABS(IDPHO(3)).EQ.6).AND.(ABS(IDPHO(4)).EQ.6) + MPASQR= (PPHO(4,1)+PPHO(4,2))**2-(PPHO(3,1)+PPHO(3,2))**2 + & -(PPHO(2,1)+PPHO(2,2))**2-(PPHO(1,1)+PPHO(1,2))**2 + IFRAD=IFRAD.AND.(MPASQR.GT.0.0D0) + IF(IFRAD) THEN +c.....combining first and second mother + DO I=1,4 + PPHO(I,1)=PPHO(I,1)+PPHO(I,2) + ENDDO + PPHO(5,1)=SQRT(MPASQR) +c.....removing second mother, + DO I=1,5 + PPHO(I,2)=0.0D0 + ENDDO + ENDIF + ELSE +C boosting of the mothers to the reaction frame not implemented yet. +C to do it in mode 0 original mothers have to be stored in new comon (?) +C and in mode 1 boosted to cms. + ENDIF + END diff --git a/TEvtGen/PHOTOS/phtype.F b/TEvtGen/PHOTOS/phtype.F new file mode 100644 index 00000000000..e6bc108b238 --- /dev/null +++ b/TEvtGen/PHOTOS/phtype.F @@ -0,0 +1,56 @@ + SUBROUTINE PHTYPE(ID) +C.---------------------------------------------------------------------- +C. +C. PHTYPE: Central manadgement routine. +C. +C. Purpose: defines what kind of the +C. actions will be performed at point ID. +C. +C. Input Parameters: ID: pointer of particle starting branch +C. in /PH_HEPEVT/ to be treated. +C. +C. Output Parameters: Common /PH_HEPEVT/. +C. +C. Author(s): Z. Was Created at: 24/05/93 +C. Last Update: 01/10/93 +C. +C.---------------------------------------------------------------------- + IMPLICIT NONE + INTEGER NMXHEP + PARAMETER (NMXHEP=10000) + INTEGER IDHEP,ISTHEP,JDAHEP,JMOHEP,NEVHEP,NHEP + REAL*8 PHEP,VHEP + COMMON/PH_HEPEVT/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), + &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) + LOGICAL INTERF,ISEC,IFTOP + REAL*8 FINT,FSEC + COMMON /PHOKEY/ FSEC,FINT,INTERF,ISEC,IFTOP + INTEGER ID,NHEP0 + LOGICAL IPAIR + REAL*8 RN,PHORAN + INTEGER WTDUM +C-- + IPAIR=.TRUE. +C-- Check decay multiplicity.. + IF (JDAHEP(1,ID).EQ.0) RETURN +C IF (JDAHEP(1,ID).EQ.JDAHEP(2,ID)) RETURN +C-- + NHEP0=NHEP +C-- + IF(ISEC) THEN +C-- double photon emission + FSEC=1.0D0 + RN=PHORAN(WTDUM) + IF (RN.GE.0.5D0) THEN + CALL PHOMAK(ID,NHEP0) + CALL PHOMAK(ID,NHEP0) + ENDIF + ELSE +C-- single photon emission + FSEC=1.0D0 + CALL PHOMAK(ID,NHEP0) + ENDIF +C-- +C-- electron positron pair (coomented out for a while +C IF (IPAIR) CALL PHOPAR(ID,NHEP0) + END diff --git a/TEvtGen/PHOTOS/tgt_linux/phcork.d b/TEvtGen/PHOTOS/tgt_linux/phcork.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phcork.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phint.d b/TEvtGen/PHOTOS/tgt_linux/phint.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phint.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phint1.d b/TEvtGen/PHOTOS/tgt_linux/phint1.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phint1.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phlupa.d b/TEvtGen/PHOTOS/tgt_linux/phlupa.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phlupa.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phoan1.d b/TEvtGen/PHOTOS/tgt_linux/phoan1.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phoan1.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phoan2.d b/TEvtGen/PHOTOS/tgt_linux/phoan2.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phoan2.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phobo3.d b/TEvtGen/PHOTOS/tgt_linux/phobo3.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phobo3.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phobos.d b/TEvtGen/PHOTOS/tgt_linux/phobos.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phobos.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phocha.d b/TEvtGen/PHOTOS/tgt_linux/phocha.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phocha.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phochk.d b/TEvtGen/PHOTOS/tgt_linux/phochk.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phochk.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phocin.d b/TEvtGen/PHOTOS/tgt_linux/phocin.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phocin.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phocor.d b/TEvtGen/PHOTOS/tgt_linux/phocor.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phocor.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phodo.d b/TEvtGen/PHOTOS/tgt_linux/phodo.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phodo.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phoene.d b/TEvtGen/PHOTOS/tgt_linux/phoene.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phoene.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phoerr.d b/TEvtGen/PHOTOS/tgt_linux/phoerr.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phoerr.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phofac.d b/TEvtGen/PHOTOS/tgt_linux/phofac.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phofac.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phoin.d b/TEvtGen/PHOTOS/tgt_linux/phoin.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phoin.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phoinf.d b/TEvtGen/PHOTOS/tgt_linux/phoinf.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phoinf.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phoini.d b/TEvtGen/PHOTOS/tgt_linux/phoini.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phoini.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phomak.d b/TEvtGen/PHOTOS/tgt_linux/phomak.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phomak.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phooma.d b/TEvtGen/PHOTOS/tgt_linux/phooma.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phooma.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phoout.d b/TEvtGen/PHOTOS/tgt_linux/phoout.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phoout.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phopre.d b/TEvtGen/PHOTOS/tgt_linux/phopre.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phopre.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phoran.d b/TEvtGen/PHOTOS/tgt_linux/phoran.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phoran.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phorep.d b/TEvtGen/PHOTOS/tgt_linux/phorep.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phorep.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phorin.d b/TEvtGen/PHOTOS/tgt_linux/phorin.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phorin.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phoro2.d b/TEvtGen/PHOTOS/tgt_linux/phoro2.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phoro2.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phoro3.d b/TEvtGen/PHOTOS/tgt_linux/phoro3.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phoro3.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phospi.d b/TEvtGen/PHOTOS/tgt_linux/phospi.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phospi.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/photos.d b/TEvtGen/PHOTOS/tgt_linux/photos.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/photos.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/photos_get.d b/TEvtGen/PHOTOS/tgt_linux/photos_get.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/photos_get.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/photos_make.d b/TEvtGen/PHOTOS/tgt_linux/photos_make.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/photos_make.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/photos_set.d b/TEvtGen/PHOTOS/tgt_linux/photos_set.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/photos_set.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/photri.d b/TEvtGen/PHOTOS/tgt_linux/photri.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/photri.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/photwo.d b/TEvtGen/PHOTOS/tgt_linux/photwo.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/photwo.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/PHOTOS/tgt_linux/phtype.d b/TEvtGen/PHOTOS/tgt_linux/phtype.d new file mode 100644 index 00000000000..792d6005489 --- /dev/null +++ b/TEvtGen/PHOTOS/tgt_linux/phtype.d @@ -0,0 +1 @@ +# diff --git a/TEvtGen/README.txt b/TEvtGen/README.txt new file mode 100644 index 00000000000..871e3d081b2 --- /dev/null +++ b/TEvtGen/README.txt @@ -0,0 +1,55 @@ +//------------------------------------------------------------------------------// + EvtGen is a particle decay simulator specifically designed for the needs of + B-physics studies. Complete manual of EvtGen is available at address: + http://robbep.home.cern.ch/robbep/EvtGen/GuideEvtGen.pdf +//------------------------------------------------------------------------------// + +[14/12/2009] + 1)This module contains: + + - EvtGen original code organized in three directories: + EvtGenBase-EvtGenModels-EvtGen. EvtGenModels directory contains all models + avilable in EvtGen to decay particles. + + - The interface classes AliGenEvtGen and AliDecayerEvtGen for AliRoot users: + the methods to decay particles are in AliDecayerEvtGen which represents + the implementation of AliDecayer using EvtGen package + + 2)EvtGen required libphotos.so to generate Final State Radiation. Photos code is + located in PHOTOS directory. + + 3)The implemented cases to force beauty hadrons interest those channels: + B->J/psi+X - B->J/psi+X,J/psi->e-e+ - B->J/psi+X,J/psi->mu-mu+ - B->e+X. + Those are decayed by exclusive models of EvtGen, and all parameters and + models used to decay them are not modified with respect to the official + EvtGen release. Some of particles produced in the decay chain (i.e. Lamda_c + from Lambda_b, Xi_c0 from Xi_b-, etc...) are decayed by Pythia with the + configuration setting in the AliDecayerPythia. + + 4)Polarization is still to be implemented in the interface classes. + It would be done soon. + + 5)To use EvtGen to decay beauty particles adjust those lines in the Config.C: + + //----- load libraries (after loading libpythia6.so) + gSystem->Load("libphotos.so"); + gSystem->Load("libEvtGenBase"); + gSystem->Load("libEvtGenModels"); + gSystem->Load("libEvtGen"); + gSystem->Load("libTEvtGen"); + + //----- declare an AliGenCocktail + AliGenCocktail *generCock=new AliGenCocktail(); + generCock->UsePerEventRates(); + + //----- declare Pythia configuration: switch-off beauty decays in Pythia + AliGenPythia *pythia= ..... + .... + pythia->SetForceDecay(kNoDecayBeauty); + + //----- declare EvtGen configuration and put the two generators in the cocktail + AliGenEvtGen *gene = new AliGenEvtGen(); + gene->SetForceDecay(kBJpsiDiElectron); + gene->SetParticleSwitchedOff(AliGenEvtGen::kBeautyPart); + generCock->AddGenerator(pythia, "Pythia", 1.); + generCock->AddGenerator(gene,"gene",1.); diff --git a/TEvtGen/TEvtGenLinkDef.h b/TEvtGen/TEvtGenLinkDef.h new file mode 100644 index 00000000000..68ef1d9e55f --- /dev/null +++ b/TEvtGen/TEvtGenLinkDef.h @@ -0,0 +1,11 @@ +#ifdef __CINT__ + +#pragma link off all globals; +#pragma link off all classes; +#pragma link off all functions; + +#pragma link C++ class AliDecayerEvtGen+; +#pragma link C++ class AliGenEvtGen+; + +#endif + diff --git a/TEvtGen/libEvtGen.pkg b/TEvtGen/libEvtGen.pkg new file mode 100644 index 00000000000..991cfef8a42 --- /dev/null +++ b/TEvtGen/libEvtGen.pkg @@ -0,0 +1,20 @@ +#-*- Mode: Makefile -*- + +SRCS:= EvtGen/EvtGen.cxx EvtGen/EvtCheckDecays.cxx + +HDRS:= $(SRCS:.cxx=.hh) + +DHDR:=EvtGen/EvtGenLinkDef.h + +EXPORT:= + +CSRCS:= + + +FSRCS:= + + +ifeq (win32gcc,$(ALICE_TARGET)) +PACKSOFLAGS:= $(SOFLAGS) -L$(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET) \ + -lEvtGenBase -lEvtGenModels +endif diff --git a/TEvtGen/libEvtGenBase.pkg b/TEvtGen/libEvtGenBase.pkg new file mode 100644 index 00000000000..19ff9c47690 --- /dev/null +++ b/TEvtGen/libEvtGenBase.pkg @@ -0,0 +1,256 @@ +#-*- Mode: Makefile -*- +SRCS:= EvtGenBase/Evt3Rank3C.cxx \ +EvtGenBase/EvtAbsLineShape.cxx \ +EvtGenBase/EvtAmp.cxx \ +EvtGenBase/EvtAmpIndex.cxx \ +EvtGenBase/EvtAmpSubIndex.cxx \ +EvtGenBase/EvtBlattWeisskopf.cxx \ +EvtGenBase/EvtBreitWignerPdf.cxx \ +EvtGenBase/EvtCGCoefSingle.cxx \ +EvtGenBase/EvtCPUtil.cxx \ +EvtGenBase/EvtComplex.cxx \ +EvtGenBase/EvtConst.cxx \ +EvtGenBase/EvtCyclic3.cxx \ +EvtGenBase/EvtDalitzCoord.cxx \ +EvtGenBase/EvtDalitzFlatPdf.cxx \ +EvtGenBase/EvtDalitzPlot.cxx \ +EvtGenBase/EvtDalitzPoint.cxx \ +EvtGenBase/EvtDalitzResPdf.cxx \ +EvtGenBase/EvtDalitzReso.cxx \ +EvtGenBase/EvtDecayAmp.cxx \ +EvtGenBase/EvtDecayBase.cxx \ +EvtGenBase/EvtDecayIncoherent.cxx \ +EvtGenBase/EvtDecayMode.cxx \ +EvtGenBase/EvtDecayParm.cxx \ +EvtGenBase/EvtDecayProb.cxx \ +EvtGenBase/EvtDecayTable.cxx \ +EvtGenBase/EvtDiLog.cxx \ +EvtGenBase/EvtDiracParticle.cxx \ +EvtGenBase/EvtDiracSpinor.cxx \ +EvtGenBase/EvtEvalHelAmp.cxx \ +EvtGenBase/EvtFlatLineShape.cxx \ +EvtGenBase/EvtFlatte.cxx \ +EvtGenBase/EvtGammaMatrix.cxx \ +EvtGenBase/EvtGenKine.cxx \ +EvtGenBase/EvtHighSpinParticle.cxx \ +EvtGenBase/EvtId.cxx \ +EvtGenBase/EvtIdSet.cxx \ +EvtGenBase/EvtIntegPdf1D.cxx \ +EvtGenBase/EvtIntervalFlatPdf.cxx \ +EvtGenBase/EvtKine.cxx \ +EvtGenBase/EvtLASSAmp.cxx \ +EvtGenBase/EvtMBreitWigner.cxx \ +EvtGenBase/EvtMHelAmp.cxx \ +EvtGenBase/EvtMNode.cxx \ +EvtGenBase/EvtMParticle.cxx \ +EvtGenBase/EvtMRes.cxx \ +EvtGenBase/EvtMTree.cxx \ +EvtGenBase/EvtMTrivialLS.cxx \ +EvtGenBase/EvtManyDeltaFuncLineShape.cxx \ +EvtGenBase/EvtMassAmp.cxx \ +EvtGenBase/EvtModel.cxx \ +EvtGenBase/EvtModelAlias.cxx \ +EvtGenBase/EvtMultiChannelParser.cxx \ +EvtGenBase/EvtNeutrinoParticle.cxx \ +EvtGenBase/EvtNonresonantAmp.cxx \ +EvtGenBase/EvtOrthogVector.cxx \ +EvtGenBase/EvtPDL.cxx \ +EvtGenBase/EvtParser.cxx \ +EvtGenBase/EvtPartProp.cxx \ +EvtGenBase/EvtParticle.cxx \ +EvtGenBase/EvtParticleDecay.cxx \ +EvtGenBase/EvtParticleDecayList.cxx \ +EvtGenBase/EvtParticleFactory.cxx \ +EvtGenBase/EvtPhotonParticle.cxx \ +EvtGenBase/EvtPoint1D.cxx \ +EvtGenBase/EvtPropBreitWigner.cxx \ +EvtGenBase/EvtPropBreitWignerRel.cxx \ +EvtGenBase/EvtPropFlatte.cxx \ +EvtGenBase/EvtPropGounarisSakurai.cxx \ +EvtGenBase/EvtPto3PAmp.cxx \ +EvtGenBase/EvtPto3PAmpFactory.cxx \ +EvtGenBase/EvtPto3PAmpSmpResolution.cxx \ +EvtGenBase/EvtRadCorr.cxx \ +EvtGenBase/EvtRanFor.cxx \ +EvtGenBase/EvtRandom.cxx \ +EvtGenBase/EvtRanf.cxx \ +EvtGenBase/EvtRaritaSchwinger.cxx \ +EvtGenBase/EvtRaritaSchwingerParticle.cxx \ +EvtGenBase/EvtRelBreitWignerBarrierFact.cxx \ +EvtGenBase/EvtReport.cxx \ +EvtGenBase/EvtResonance.cxx \ +EvtGenBase/EvtResonance2.cxx \ +EvtGenBase/EvtScalarParticle.cxx \ +EvtGenBase/EvtSecondary.cxx \ +EvtGenBase/EvtSemiLeptonicAmp.cxx \ +EvtGenBase/EvtSemiLeptonicBaryonAmp.cxx \ +EvtGenBase/EvtSemiLeptonicScalarAmp.cxx \ +EvtGenBase/EvtSemiLeptonicTensorAmp.cxx \ +EvtGenBase/EvtSemiLeptonicVectorAmp.cxx \ +EvtGenBase/EvtSimpleRandomEngine.cxx \ +EvtGenBase/EvtSpinAmp.cxx \ +EvtGenBase/EvtSpinDensity.cxx \ +EvtGenBase/EvtSpinType.cxx \ +EvtGenBase/EvtStdHep.cxx \ +EvtGenBase/EvtStringParticle.cxx \ +EvtGenBase/EvtSymTable.cxx \ +EvtGenBase/EvtTensor3C.cxx \ +EvtGenBase/EvtTensor4C.cxx \ +EvtGenBase/EvtTensorParticle.cxx \ +EvtGenBase/EvtTwoBodyKine.cxx \ +EvtGenBase/EvtTwoBodyVertex.cxx \ +EvtGenBase/EvtValError.cxx \ +EvtGenBase/EvtVector3C.cxx \ +EvtGenBase/EvtVector3R.cxx \ +EvtGenBase/EvtVector4C.cxx \ +EvtGenBase/EvtVector4R.cxx \ +EvtGenBase/EvtVectorParticle.cxx \ +EvtGenBase/EvtdFunction.cxx \ +EvtGenBase/EvtdFunctionSingle.cxx + +HDRS:= EvtGenBase/Evt3Rank3C.hh \ +EvtGenBase/EvtAbsBinning.hh \ +EvtGenBase/EvtAbsLineShape.hh \ +EvtGenBase/EvtAbsRadCorr.hh \ +EvtGenBase/EvtAmpAmpPdf.hh \ +EvtGenBase/EvtAmpFactory.hh \ +EvtGenBase/EvtAmp.hh \ +EvtGenBase/EvtAmpIndex.hh \ +EvtGenBase/EvtAmplitude.hh \ +EvtGenBase/EvtAmplitudeSum.hh \ +EvtGenBase/EvtAmpPdf.hh \ +EvtGenBase/EvtAmpSubIndex.hh \ +EvtGenBase/EvtBlattWeisskopf.hh \ +EvtGenBase/EvtBreitWignerPdf.hh \ +EvtGenBase/EvtCGCoefSingle.hh \ +EvtGenBase/EvtComplex.hh \ +EvtGenBase/EvtConst.hh \ +EvtGenBase/EvtCPUtil.hh \ +EvtGenBase/EvtCyclic3.hh \ +EvtGenBase/EvtDalitzCoord.hh \ +EvtGenBase/EvtDalitzFlatPdf.hh \ +EvtGenBase/EvtDalitzPlot.hh \ +EvtGenBase/EvtDalitzPoint.hh \ +EvtGenBase/EvtDalitzReso.hh \ +EvtGenBase/EvtDalitzResPdf.hh \ +EvtGenBase/EvtDecayAmp.hh \ +EvtGenBase/EvtDecayBase.hh \ +EvtGenBase/EvtDecayIncoherent.hh \ +EvtGenBase/EvtDecayMode.hh \ +EvtGenBase/EvtDecayParm.hh \ +EvtGenBase/EvtDecayProb.hh \ +EvtGenBase/EvtDecayTable.hh \ +EvtGenBase/EvtdFunction.hh \ +EvtGenBase/EvtdFunctionSingle.hh \ +EvtGenBase/EvtDiLog.hh \ +EvtGenBase/EvtDiracParticle.hh \ +EvtGenBase/EvtDiracSpinor.hh \ +EvtGenBase/EvtEvalHelAmp.hh \ +EvtGenBase/EvtFlatAmp.hh \ +EvtGenBase/EvtFlatLineShape.hh \ +EvtGenBase/EvtFlatte.hh \ +EvtGenBase/EvtGammaMatrix.hh \ +EvtGenBase/EvtGenKine.hh \ +EvtGenBase/EvtHighSpinParticle.hh \ +EvtGenBase/EvtId.hh \ +EvtGenBase/EvtIdSet.hh \ +EvtGenBase/EvtIntegPdf1D.hh \ +EvtGenBase/EvtIntervalFlatPdf.hh \ +EvtGenBase/EvtKine.hh \ +EvtGenBase/EvtLASSAmp.hh \ +EvtGenBase/EvtMacros.hh \ +EvtGenBase/EvtManyDeltaFuncLineShape.hh \ +EvtGenBase/EvtMassAmp.hh \ +EvtGenBase/EvtMatrix.hh \ +EvtGenBase/EvtMBreitWigner.hh \ +EvtGenBase/EvtMHelAmp.hh \ +EvtGenBase/EvtMNode.hh \ +EvtGenBase/EvtModelAlias.hh \ +EvtGenBase/EvtModel.hh \ +EvtGenBase/EvtMParticle.hh \ +EvtGenBase/EvtMRes.hh \ +EvtGenBase/EvtMTree.hh \ +EvtGenBase/EvtMTrivialLS.hh \ +EvtGenBase/EvtMultiChannelParser.hh \ +EvtGenBase/EvtNeutrinoParticle.hh \ +EvtGenBase/EvtNonresonantAmp.hh \ +EvtGenBase/EvtOrthogVector.hh \ +EvtGenBase/EvtParser.hh \ +EvtGenBase/EvtParticleDecay.hh \ +EvtGenBase/EvtParticleDecayList.hh \ +EvtGenBase/EvtParticleFactory.hh \ +EvtGenBase/EvtParticle.hh \ +EvtGenBase/EvtPartProp.hh \ +EvtGenBase/EvtPatches.hh \ +EvtGenBase/EvtPdf.hh \ +EvtGenBase/EvtPdfMax.hh \ +EvtGenBase/EvtPdfSum.hh \ +EvtGenBase/EvtPDL.hh \ +EvtGenBase/EvtPhotonParticle.hh \ +EvtGenBase/EvtPoint1D.hh \ +EvtGenBase/EvtPointPred.hh \ +EvtGenBase/EvtPredGen.hh \ +EvtGenBase/EvtPropagator.hh \ +EvtGenBase/EvtPropBreitWigner.hh \ +EvtGenBase/EvtPropBreitWignerRel.hh \ +EvtGenBase/EvtPropFlatte.hh \ +EvtGenBase/EvtPropGounarisSakurai.hh \ +EvtGenBase/EvtPto3PAmpFactory.hh \ +EvtGenBase/EvtPto3PAmp.hh \ +EvtGenBase/EvtPto3PAmpSmpResolution.hh \ +EvtGenBase/EvtRadCorr.hh \ +EvtGenBase/EvtRandomEngine.hh \ +EvtGenBase/EvtRandom.hh \ +EvtGenBase/EvtRaritaSchwinger.hh \ +EvtGenBase/EvtRaritaSchwingerParticle.hh \ +EvtGenBase/EvtRelBreitWignerBarrierFact.hh \ +EvtGenBase/EvtReport.hh \ +EvtGenBase/EvtResonance2.hh \ +EvtGenBase/EvtResonance.hh \ +EvtGenBase/EvtScalarParticle.hh \ +EvtGenBase/EvtSecondary.hh \ +EvtGenBase/EvtSemiLeptonicAmp.hh \ +EvtGenBase/EvtSemiLeptonicBaryonAmp.hh \ +EvtGenBase/EvtSemiLeptonicFF.hh \ +EvtGenBase/EvtSemiLeptonicScalarAmp.hh \ +EvtGenBase/EvtSemiLeptonicTensorAmp.hh \ +EvtGenBase/EvtSemiLeptonicVectorAmp.hh \ +EvtGenBase/EvtSimpleRandomEngine.hh \ +EvtGenBase/EvtSpinAmp.hh EvtGenBase/EvtSpinDensity.hh \ +EvtGenBase/EvtSpinType.hh \ +EvtGenBase/EvtStatus.hh \ +EvtGenBase/EvtStdHep.hh \ +EvtGenBase/EvtStdlibRandomEngine.hh \ +EvtGenBase/EvtStreamAdapter.hh \ +EvtGenBase/EvtStreamInputIterator.hh \ +EvtGenBase/EvtStringHash.hh \ +EvtGenBase/EvtStringParticle.hh \ +EvtGenBase/EvtSymTable.hh \ +EvtGenBase/EvtTensor3C.hh \ +EvtGenBase/EvtTensor4C.hh \ +EvtGenBase/EvtTensorParticle.hh \ +EvtGenBase/EvtTwoBodyKine.hh \ +EvtGenBase/EvtTwoBodyVertex.hh \ +EvtGenBase/EvtValError.hh \ +EvtGenBase/EvtVector3C.hh \ +EvtGenBase/EvtVector3R.hh \ +EvtGenBase/EvtVector4C.hh \ +EvtGenBase/EvtVector4R.hh \ +EvtGenBase/EvtVectorParticle.hh + +EINCLUDE:= TEvtGen TEvtGen/EvtGenBase + +DHDR:=EvtGenBase/EvtGenBaseLinkDef.h + +EXPORT:= + +CSRCS:= + + +FSRCS:= + +ifeq (win32gcc,$(ALICE_TARGET)) +PACKSOFLAGS:= $(SOFLAGS) -L$(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET) \ + -L$(shell root-config --libdir)\include + +endif diff --git a/TEvtGen/libEvtGenModels.pkg b/TEvtGen/libEvtGenModels.pkg new file mode 100644 index 00000000000..62e53bf033e --- /dev/null +++ b/TEvtGen/libEvtGenModels.pkg @@ -0,0 +1,306 @@ +#-*- Mode: Makefile -*- +#include $(ROOTSYS)/etc/vmc/Makefile.linux + +SRCS:= EvtGenModels/EvtBBScalar.cxx EvtGenModels/EvtBHadronic.cxx \ +EvtGenModels/EvtBTo3piCP.cxx \ +EvtGenModels/EvtBTo4piCP.cxx \ +EvtGenModels/EvtBToKpipiCP.cxx \ +EvtGenModels/EvtBToPlnuBK.cxx \ +EvtGenModels/EvtBToPlnuBKFF.cxx \ +EvtGenModels/EvtBToVlnuBall.cxx \ +EvtGenModels/EvtBToVlnuBallFF.cxx \ +EvtGenModels/EvtBsquark.cxx \ +EvtGenModels/EvtBto2piCPiso.cxx \ +EvtGenModels/EvtBtoKD3P.cxx \ +EvtGenModels/EvtBtoKpiCPiso.cxx \ +EvtGenModels/EvtBtoXsEtap.cxx \ +EvtGenModels/EvtBtoXsgamma.cxx \ +EvtGenModels/EvtBtoXsgammaAbsModel.cxx \ +EvtGenModels/EvtBtoXsgammaAliGreub.cxx \ +EvtGenModels/EvtBtoXsgammaFermiUtil.cxx \ +EvtGenModels/EvtBtoXsgammaFixedMass.cxx \ +EvtGenModels/EvtBtoXsgammaFlatEnergy.cxx \ +EvtGenModels/EvtBtoXsgammaKagan.cxx \ +EvtGenModels/EvtBtoXsgammaRootFinder.cxx \ +EvtGenModels/EvtBtoXsll.cxx \ +EvtGenModels/EvtBtoXsllUtil.cxx \ +EvtGenModels/EvtCBTo3piMPP.cxx \ +EvtGenModels/EvtCBTo3piP00.cxx \ +EvtGenModels/EvtD0mixDalitz.cxx \ +EvtGenModels/EvtDDalitz.cxx \ +EvtGenModels/EvtDMix.cxx \ +EvtGenModels/EvtEtaDalitz.cxx \ +EvtGenModels/EvtFlatQ2.cxx \ +EvtGenModels/EvtGoityRoberts.cxx \ +EvtGenModels/EvtHQET.cxx \ +EvtGenModels/EvtHQET2.cxx \ +EvtGenModels/EvtHQET2FF.cxx \ +EvtGenModels/EvtHQETFF.cxx \ +EvtGenModels/EvtHelAmp.cxx \ +EvtGenModels/EvtHypNonLepton.cxx \ +EvtGenModels/EvtISGW.cxx \ +EvtGenModels/EvtISGW2.cxx \ +EvtGenModels/EvtISGW2FF.cxx \ +EvtGenModels/EvtISGWFF.cxx \ +EvtGenModels/EvtItgAbsFunction.cxx \ +EvtGenModels/EvtItgAbsIntegrator.cxx \ +EvtGenModels/EvtItgFourCoeffFcn.cxx \ +EvtGenModels/EvtItgFunction.cxx \ +EvtGenModels/EvtItgPtrFunction.cxx \ +EvtGenModels/EvtItgSimpsonIntegrator.cxx \ +EvtGenModels/EvtItgThreeCoeffFcn.cxx \ +EvtGenModels/EvtItgTwoCoeffFcn.cxx \ +EvtGenModels/EvtKKLambdaC.cxx \ +EvtGenModels/EvtKKLambdaCFF.cxx \ +EvtGenModels/EvtKstarnunu.cxx \ +EvtGenModels/EvtKstarstargamma.cxx \ +EvtGenModels/EvtLNuGamma.cxx \ +EvtGenModels/EvtLambdaP_BarGamma.cxx \ +EvtGenModels/EvtLb2Lll.cxx \ +EvtGenModels/EvtMelikhov.cxx \ +EvtGenModels/EvtMelikhovFF.cxx \ +EvtGenModels/EvtModelReg.cxx \ +EvtGenModels/EvtMultibody.cxx \ +EvtGenModels/EvtOmegaDalitz.cxx \ +EvtGenModels/EvtPFermi.cxx \ +EvtGenModels/EvtPHOTOS.cxx \ +EvtGenModels/EvtPartWave.cxx \ +EvtGenModels/EvtPhiDalitz.cxx \ +EvtGenModels/EvtPhsp.cxx \ +EvtGenModels/EvtPi0Dalitz.cxx \ +EvtGenModels/EvtPropSLPole.cxx \ +EvtGenModels/EvtPto3P.cxx EvtGenModels/EvtSLBKPole.cxx \ +EvtGenModels/EvtSLBKPoleFF.cxx \ +EvtGenModels/EvtSLN.cxx \ +EvtGenModels/EvtSLPole.cxx \ +EvtGenModels/EvtSLPoleFF.cxx \ +EvtGenModels/EvtSSDCP.cxx \ +EvtGenModels/EvtSSSCP.cxx \ +EvtGenModels/EvtSSSCPT.cxx \ +EvtGenModels/EvtSSSCPpng.cxx \ +EvtGenModels/EvtSTS.cxx \ +EvtGenModels/EvtSTSCP.cxx \ +EvtGenModels/EvtSVPCP.cxx \ +EvtGenModels/EvtSVPHelAmp.cxx \ +EvtGenModels/EvtSVS.cxx \ +EvtGenModels/EvtSVSCP.cxx \ +EvtGenModels/EvtSVSCPLH.cxx \ +EvtGenModels/EvtSVSCPiso.cxx \ +EvtGenModels/EvtSVSNONCPEIGEN.cxx \ +EvtGenModels/EvtSVVCP.cxx \ +EvtGenModels/EvtSVVCPLH.cxx \ +EvtGenModels/EvtSVVHelAmp.cxx \ +EvtGenModels/EvtSVVHelCPMix.cxx \ +EvtGenModels/EvtSVVNONCPEIGEN.cxx \ +EvtGenModels/EvtSingleParticle.cxx \ +EvtGenModels/EvtSll.cxx \ +EvtGenModels/EvtTSS.cxx \ +EvtGenModels/EvtTVSPwave.cxx \ +EvtGenModels/EvtTauHadnu.cxx \ +EvtGenModels/EvtTauScalarnu.cxx \ +EvtGenModels/EvtTauVectornu.cxx \ +EvtGenModels/EvtTaulnunu.cxx \ +EvtGenModels/EvtVPHOtoV.cxx \ +EvtGenModels/EvtVPHOtoVISR.cxx \ +EvtGenModels/EvtVPHOtoVISRHi.cxx \ +EvtGenModels/EvtVSPPwave.cxx \ +EvtGenModels/EvtVSS.cxx \ +EvtGenModels/EvtVSSBMixCPT.cxx \ +EvtGenModels/EvtVSSMix.cxx \ +EvtGenModels/EvtVVP.cxx \ +EvtGenModels/EvtVVPIPI_WEIGHTED.cxx \ +EvtGenModels/EvtVVSPwave.cxx \ +EvtGenModels/EvtVVpipi.cxx \ +EvtGenModels/EvtVectorIsr.cxx \ +EvtGenModels/EvtVll.cxx \ +EvtGenModels/EvtVtoSll.cxx \ +EvtGenModels/EvtVub.cxx \ +EvtGenModels/EvtVubAC.cxx \ +EvtGenModels/EvtVubBLNP.cxx \ +EvtGenModels/EvtVubBLNPHybrid.cxx \ +EvtGenModels/EvtVubHybrid.cxx \ +EvtGenModels/EvtVubNLO.cxx \ +EvtGenModels/EvtVubdGamma.cxx \ +EvtGenModels/EvtWilsonCoeficients.cxx \ +EvtGenModels/EvtY3SToY1SpipiMoxhay.cxx \ +EvtGenModels/EvtYmSToYnSpipiCLEO.cxx \ +EvtGenModels/EvtbTosllAli.cxx \ +EvtGenModels/EvtbTosllAliFF.cxx \ +EvtGenModels/EvtbTosllAmp.cxx \ +EvtGenModels/EvtbTosllBall.cxx \ +EvtGenModels/EvtbTosllBallFF.cxx \ +EvtGenModels/EvtbTosllScalarAmp.cxx \ +EvtGenModels/EvtbTosllVectorAmp.cxx \ +EvtGenModels/rly.cxx \ +EvtGenModels/EvtPycont.cxx \ +EvtGenModels/EvtPyGaGa.cxx \ +EvtGenModels/EvtPythia.cxx + + +HDRS:= EvtGenModels/EvtBBScalar.hh \ +EvtGenModels/EvtBHadronic.hh \ +EvtGenModels/EvtBsquark.hh \ +EvtGenModels/EvtBto2piCPiso.hh \ +EvtGenModels/EvtBTo3piCP.hh \ +EvtGenModels/EvtBTo4piCP.hh \ +EvtGenModels/EvtBtoKD3P.hh \ +EvtGenModels/EvtBtoKpiCPiso.hh \ +EvtGenModels/EvtBToKpipiCP.hh \ +EvtGenModels/EvtBToPlnuBKFF.hh \ +EvtGenModels/EvtBToPlnuBK.hh \ +EvtGenModels/EvtbTosllAliFF.hh \ +EvtGenModels/EvtbTosllAli.hh \ +EvtGenModels/EvtbTosllAmp.hh \ +EvtGenModels/EvtbTosllBallFF.hh \ +EvtGenModels/EvtbTosllBall.hh \ +EvtGenModels/EvtbTosllFF.hh \ +EvtGenModels/EvtbTosllScalarAmp.hh \ +EvtGenModels/EvtbTosllVectorAmp.hh \ +EvtGenModels/EvtBToVlnuBallFF.hh \ +EvtGenModels/EvtBToVlnuBall.hh \ +EvtGenModels/EvtBtoXsEtap.hh \ +EvtGenModels/EvtBtoXsgammaAbsModel.hh \ +EvtGenModels/EvtBtoXsgammaAliGreub.hh \ +EvtGenModels/EvtBtoXsgammaFermiUtil.hh \ +EvtGenModels/EvtBtoXsgammaFixedMass.hh \ +EvtGenModels/EvtBtoXsgammaFlatEnergy.hh \ +EvtGenModels/EvtBtoXsgamma.hh \ +EvtGenModels/EvtBtoXsgammaKagan.hh \ +EvtGenModels/EvtBtoXsgammaRootFinder.hh \ +EvtGenModels/EvtBtoXsll.hh \ +EvtGenModels/EvtBtoXsllUtil.hh \ +EvtGenModels/EvtCBTo3piMPP.hh \ +EvtGenModels/EvtCBTo3piP00.hh \ +EvtGenModels/EvtD0mixDalitz.hh \ +EvtGenModels/EvtDDalitz.hh \ +EvtGenModels/EvtDMix.hh \ +EvtGenModels/EvtEtaDalitz.hh \ +EvtGenModels/EvtFlatQ2.hh \ +EvtGenModels/EvtGoityRoberts.hh \ +EvtGenModels/EvtHelAmp.hh \ +EvtGenModels/EvtHQET2FF.hh \ +EvtGenModels/EvtHQET2.hh \ +EvtGenModels/EvtHQETFF.hh \ +EvtGenModels/EvtHQET.hh \ +EvtGenModels/EvtHypNonLepton.hh \ +EvtGenModels/EvtIntervalDecayAmp.hh \ +EvtGenModels/EvtISGW2FF.hh \ +EvtGenModels/EvtISGW2.hh \ +EvtGenModels/EvtISGWFF.hh \ +EvtGenModels/EvtISGW.hh \ +EvtGenModels/EvtItgAbsFunction.hh \ +EvtGenModels/EvtItgAbsIntegrator.hh \ +EvtGenModels/EvtItgFourCoeffFcn.hh \ +EvtGenModels/EvtItgFunction.hh \ +EvtGenModels/EvtItgPtrFunction.hh \ +EvtGenModels/EvtItgSimpsonIntegrator.hh \ +EvtGenModels/EvtItgThreeCoeffFcn.hh \ +EvtGenModels/EvtItgTwoCoeffFcn.hh \ +EvtGenModels/EvtKKLambdaCFF.hh \ +EvtGenModels/EvtKKLambdaC.hh \ +EvtGenModels/EvtKstarnunu.hh \ +EvtGenModels/EvtKstarstargamma.hh \ +EvtGenModels/EvtLambdaP_BarGamma.hh \ +EvtGenModels/EvtLb2Lll.hh \ +EvtGenModels/EvtLNuGamma.hh \ +EvtGenModels/EvtMelikhovFF.hh \ +EvtGenModels/EvtMelikhov.hh \ +EvtGenModels/EvtModelReg.hh \ +EvtGenModels/EvtMultibody.hh \ +EvtGenModels/EvtOmegaDalitz.hh \ +EvtGenModels/EvtPartWave.hh \ +EvtGenModels/EvtPFermi.hh \ +EvtGenModels/EvtPhiDalitz.hh \ +EvtGenModels/EvtPHOTOS.hh \ +EvtGenModels/EvtPhsp.hh \ +EvtGenModels/EvtPi0Dalitz.hh \ +EvtGenModels/EvtPropSLPole.hh \ +EvtGenModels/EvtPto3P.hh \ +EvtGenModels/EvtSingleParticle.hh \ +EvtGenModels/EvtSLBKPoleFF.hh \ +EvtGenModels/EvtSLBKPole.hh \ +EvtGenModels/EvtSll.hh \ +EvtGenModels/EvtSLN.hh \ +EvtGenModels/EvtSLPoleFF.hh \ +EvtGenModels/EvtSLPole.hh \ +EvtGenModels/EvtSSDCP.hh \ +EvtGenModels/EvtSSSCP.hh \ +EvtGenModels/EvtSSSCPpng.hh \ +EvtGenModels/EvtSSSCPT.hh \ +EvtGenModels/EvtSTSCP.hh \ +EvtGenModels/EvtSTS.hh \ +EvtGenModels/EvtSVPCP.hh \ +EvtGenModels/EvtSVPHelAmp.hh \ +EvtGenModels/EvtSVSCP.hh \ +EvtGenModels/EvtSVSCPiso.hh \ +EvtGenModels/EvtSVSCPLH.hh \ +EvtGenModels/EvtSVS.hh \ +EvtGenModels/EvtSVSNONCPEIGEN.hh \ +EvtGenModels/EvtSVVCP.hh \ +EvtGenModels/EvtSVVCPLH.hh \ +EvtGenModels/EvtSVVHelAmp.hh \ +EvtGenModels/EvtSVVHelCPMix.hh \ +EvtGenModels/EvtSVVNONCPEIGEN.hh \ +EvtGenModels/EvtTauHadnu.hh \ +EvtGenModels/EvtTaulnunu.hh \ +EvtGenModels/EvtTauScalarnu.hh \ +EvtGenModels/EvtTauVectornu.hh \ +EvtGenModels/EvtTSS.hh \ +EvtGenModels/EvtTVSPwave.hh \ +EvtGenModels/EvtVectorIsr.hh \ +EvtGenModels/EvtVll.hh \ +EvtGenModels/EvtVPHOtoV.hh \ +EvtGenModels/EvtVPHOtoVISR.hh \ +EvtGenModels/EvtVPHOtoVISRHi.hh \ +EvtGenModels/EvtVSPPwave.hh \ +EvtGenModels/EvtVSSBMixCPT.hh \ +EvtGenModels/EvtVSS.hh \ +EvtGenModels/EvtVSSMix.hh \ +EvtGenModels/EvtVtoSll.hh \ +EvtGenModels/EvtVubAC.hh EvtGenModels/EvtVubBLNP.hh EvtGenModels/EvtVubBLNPHybrid.hh \ +EvtGenModels/EvtVubdGamma.hh \ +EvtGenModels/EvtVub.hh EvtGenModels/EvtVubHybrid.hh \ +EvtGenModels/EvtVubNLO.hh EvtGenModels/EvtVVP.hh \ +EvtGenModels/EvtVVpipi.hh \ +EvtGenModels/EvtVVPIPI_WEIGHTED.hh \ +EvtGenModels/EvtVVSPwave.hh \ +EvtGenModels/EvtWilsonCoeficients.hh \ +EvtGenModels/EvtY3SToY1SpipiMoxhay.hh \ +EvtGenModels/EvtYmSToYnSpipiCLEO.hh \ +EvtGenModels/EvtPycont.hh \ +EvtGenModels/EvtPyGaGa.hh \ +EvtGenModels/EvtPythia.hh + + +DHDR:=EvtGenModels/EvtGenModelsLinkDef.h + +EXPORT:= + +CSRCS:= + +EINCLUDE:= TEvtGen TEvtGen/EvtGenModels +#EINCLUDE:=FASTSIM + +FSRCS:= \ +EvtGenModels/EvtBTo3pi.F \ +EvtGenModels/EvtBTo3piMPP.F \ +EvtGenModels/EvtBTo3piP00.F \ +EvtGenModels/EvtBToKpipi.F \ +EvtGenModels/EvtLi2Spence.F \ +EvtGenModels/begevtgenget.F \ +EvtGenModels/begevtgengetx.F \ +EvtGenModels/begevtgenstore.F \ +EvtGenModels/begevtgenstorex.F \ +EvtGenModels/pykcut.F \ +EvtGenModels/pytime.F \ +EvtGenModels/Pythia.F + + + + + + +ifeq (win32gcc,$(ALICE_TARGET)) +PACKSOFLAGS:= $(SOFLAGS) -L$(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET) -lphotos -lEvtGenBase -llhapdf -lpythia6 + +endif diff --git a/TEvtGen/libTEvtGen.pkg b/TEvtGen/libTEvtGen.pkg new file mode 100644 index 00000000000..3373598acf2 --- /dev/null +++ b/TEvtGen/libTEvtGen.pkg @@ -0,0 +1,16 @@ +#-*- Mode: Makefile -*- + +SRCS = AliDecayerEvtGen.cxx AliGenEvtGen.cxx + +HDRS:= $(SRCS:.cxx=.h) + +DHDR:= TEvtGenLinkDef.h + +EINCLUDE:=TEvtGen EVGEN + +ifeq (win32gcc,$(ALICE_TARGET)) +PACKSOFLAGS:= $(SOFLAGS) -L$(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET) -lSTEERBase -lSTEER -lFASTSIM\ + -lESD -lAOD -lANALYSIS -lANALYSISalice -lEVGEN -llhapdf\ + -L$(shell root-config --libdir) -lEG -lVMC\ + -L$(ALICE_ROOT)/TEvtGen/EvtGen -lEvtGen -lEvtGenBase -lEvtGenModels +endif diff --git a/TEvtGen/libphotos.pkg b/TEvtGen/libphotos.pkg new file mode 100644 index 00000000000..5b76cc00ab9 --- /dev/null +++ b/TEvtGen/libphotos.pkg @@ -0,0 +1,51 @@ +#-*- Mode: Makefile -*- + +FSRCS= \ +PHOTOS/phcork.F \ +PHOTOS/phint.F \ +PHOTOS/phint1.F \ +PHOTOS/phlupa.F \ +PHOTOS/phoan1.F \ +PHOTOS/phoan2.F \ +PHOTOS/phobo3.F \ +PHOTOS/phobos.F \ +PHOTOS/phocha.F \ +PHOTOS/phochk.F \ +PHOTOS/phocin.F \ +PHOTOS/phocor.F \ +PHOTOS/phodo.F \ +PHOTOS/phoene.F \ +PHOTOS/phoerr.F \ +PHOTOS/phofac.F \ +PHOTOS/phoin.F \ +PHOTOS/phoinf.F \ +PHOTOS/phoini.F \ +PHOTOS/phomak.F \ +PHOTOS/phooma.F \ +PHOTOS/phoout.F \ +PHOTOS/phopre.F \ +PHOTOS/phoran.F \ +PHOTOS/phorep.F \ +PHOTOS/phorin.F \ +PHOTOS/phoro2.F \ +PHOTOS/phoro3.F \ +PHOTOS/phospi.F \ +PHOTOS/photos.F \ +PHOTOS/photos_get.F \ +PHOTOS/photos_make.F \ +PHOTOS/photos_set.F \ +PHOTOS/photri.F \ +PHOTOS/photwo.F \ +PHOTOS/phtype.F + +#CSRCS= geteni.c fchput.c fchtak.c dummies.c + +#ifneq (,$(findstring macosx,$(ALICE_TARGET))) +#CSRCS+=lnblnk.c +#endif + +EINCLUDE:= + +#PACKFFLAGS := $(FFLAGS) -IMICROCERN/kerngen +PACKFFLAGS := $(FFLAGS) -IPYTHIA6 -L$(ALICE_ROOT)/lib/tgt_$(ALICE_TARGET) + -- 2.43.0